假设我们有两个有限的线段,每个线段由两个点(在两个空间中)定义.我想找到一种方法来获得这两条线的交点.最后,我想将其扩展到一组连接的线段.
我在这里找到了一个很好的解决方案:Python - matplotlib:找到线图的交集.然而,这依赖于scipy,我相信它需要BLAS,这是出于各种原因我想避免.
matplotlib有一个名为Path的模块,它有一个intersects_path()函数(http://matplotlib.org/api/path_api.html#matplotlib.path.Path.intersects_path),它对于交集的存在返回true或false,但是不是我要求的具体位置.
有谁知道这个干净的方法?
我想出的任何解决方案都很冗长,如果解决方案已经存在,我真的不想重新发明轮子.
谢谢!
我试图在更大的C#程序中追踪内存泄漏,该程序产生多个线程.在这个过程中,我创建了一个小方程序,我用它来测试一些基本的东西,我发现了一些我真的不明白的行为.
class Program
{
static void test()
{
}
static void Main(string[] args)
{
while (true)
{
Thread test_thread = new Thread(() => test());
test_thread.Start();
Thread.Sleep(20);
}
}
}
Run Code Online (Sandbox Code Playgroud)
运行这个程序,我看到程序的内存使用量稳步增加而没有停止.在短短几分钟内,内存使用量超过100MB并继续攀升.如果我注释掉test_thread.Start();行,那么程序使用的内存最大可以达到几兆字节,并且会升级.我还尝试使用GC.Collect()在while循环结束时强制进行垃圾收集,但它似乎没有做任何事情.
我认为一旦函数完成执行允许GC拖动它就会取消引用该线程,但这似乎并没有发生.我不能在这里深入理解更深层次的东西,我将非常感谢帮助解决这个问题.提前致谢!
我想写一个chrome扩展,它不仅列出了历史记录中访问过的URL,还列出了引用的URL.例如,如果我点击谷歌的维基百科,它应该说"维基百科:谷歌提到".
我最初的尝试是为相关的URL取一个HistoryItem,提取它最近的VisitItem,然后使用referVisitId来追踪初始URL,但这是我被卡住的地方.我的问题归结为不理解referVisitId的含义.它是打开新页面的历史项目的ID吗?它是由URL点击启动的VisitItem的ID吗?文档说明它是"推荐人的访问ID",但这仍然让我感到困惑.
1)referVisitId是什么意思?
2)我可以使用referVisitId来追踪引用网址吗?如果是这样,怎么样?
感谢您的时间!
考虑以下简单的python代码:
import matplotlib.pyplot as mplot
mplot.plot([1,2,3,4],[1,2,3,4])
Run Code Online (Sandbox Code Playgroud)
脚本运行时此脚本没有问题,但是如果我关闭python控制台(通过单击红色x),我会收到以下错误:
Fatal Python error: PyEval_RrestoreThread: NULL tstate
Run Code Online (Sandbox Code Playgroud)
如果我使用ctrl + Z退出python控制台不会发生此问题.在我看来,如果我存在第一种方式,有一些悬挂过程没有正确终止.我试过添加
mplot.close('all')
Run Code Online (Sandbox Code Playgroud)
到脚本的末尾,但我得到以下结果错误:
can't invoke "event" command: application has been destroyed while executing
"event generate $w <<ThemeChanged>>"
(procedure "ttk::ThemeChanged" line 6)
invoke from within
"ttk::ThemeChanged"
Run Code Online (Sandbox Code Playgroud)
我正在运行Python 3.3 x86.任何人都可以帮我理解这个问题吗?
谢谢!
我正在尝试使用cxFreeze为我的python脚本编译可执行文件.在我需要为我的脚本导入的许多库中,有两个似乎与cxFreeze失败了.特别要考虑以下test.py脚本:
print('matplotlib.pyplot')
import matplotlib.pyplot
Run Code Online (Sandbox Code Playgroud)
使用cxFreeze进行编译并运行时会提供以下输出:
另外,以下test.py脚本:
print('BeautifulSoup from bs4')
from bs4 import BeautifulSoup
Run Code Online (Sandbox Code Playgroud)
用cxFreeze编译后,产生以下输出:

我的cxFreeze的setup.py文件如下所示:
import sys
from cx_Freeze import setup, Executable
setup(
name = "myname",
version = "1.0",
description = "some description",
executables = [Executable("test.py", base = None)]
)
Run Code Online (Sandbox Code Playgroud)
我正在运行Python 3.3 x86,并在Windows 7上使用32位版本的cxFreeze(最新版本).
我在追逐这个问题时遇到了麻烦.首先,我的计算机上不存在目录"C:\ Python\32-bit ...",因此我不清楚为什么cxFreeze试图查看那里.有没有人知道如何处理这个问题,或者已经处理过这个问题?
我正在尝试使用 OpenCV(python 绑定)连接到 UDP 多播并恢复单个接收到的帧以进行后处理。
我可以通过 VLC 连接到我的多播,并且 VLC 显示广播完全没有问题。VLC 报告其用于解码的编解码器是 H264 - MPEG-4 AVC(第 10 部分)。
当我尝试使用 OpenCV 进行解码时,我确实看到了视频流,但许多帧出现碎片。这些帧看起来就像最后一行像素刚刚重复填充图像的其余部分(有时占整个图像的 75% 或更多)。OpenCV 报告解码错误(解码 MB ....、 bytestream 时出错)。
有没有办法强制 OpenCV 使用 VLC 使用的任何编解码器?我尝试指定 OpenCV 代码中使用的特定编解码器,但似乎没有效果。
我正在使用的代码如下:
import numpy as np
import cv2
from cv2 import cv
cap = cv2.VideoCapture()
cap.set(cv.CV_CAP_PROP_FOURCC, cv.CV_FOURCC('A','V','C','1'))
cwi=cap.open(r'myurlandport')
counter = 0
while(cap.isOpened()):
ret, frame = cap.read()
counter += 1
if counter % 30 == 0:
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud) 我正在寻求更多了解numpy浮点数的"resolution"参数(我猜任何计算机定义的浮点数).
请考虑以下脚本:
import numpy as np
a = np.finfo(10.1)
print a
Run Code Online (Sandbox Code Playgroud)
我得到一个输出,其中打印出来:
precision=15 resolution= 1.0000000000000001e-15
max= 1.797(...)e+308
min= -max
Run Code Online (Sandbox Code Playgroud)
numpy文档指定:"resolution :(适当类型的浮点数)此类型的近似小数分辨率,即10** - 精度." 资源
分辨率是从精度得出的,但不幸的是,这个定义有点圆形"precision(int):这种浮点精确的小数位数." 资源
我知道浮点数只是实数的有限表示,因此它们的表示有误差,而精度可能是这种偏差的量度.但实际上,如果我使用小于分辨率的数字执行操作,是否意味着我应该期望结果是错误的?如果给出精度,我怎样才能量化两个浮点数的误差?如果分辨率与1e-15一样"大",为什么最小允许数量大约为1e-308?
先感谢您!
python ×5
matplotlib ×3
c# ×1
cx-freeze ×1
ffmpeg ×1
javascript ×1
memory-leaks ×1
numpy ×1
opencv ×1
precision ×1