gpt4 book ai didi

python - scipy.signal.sepfir2d 中的类型错误

转载 作者:太空宇宙 更新时间:2023-11-03 23:03:54 25 4
gpt4 key购买 nike

我正在尝试计算光流的导数(引用 in my previous SO question),但在执行计算时遇到了 TypeError。

我首先阅读了使用 OpenCV 的视频,并使用它的光流方法找到了速度。然后我使用 scipy.signal 库对速度运行高斯滤波器并计算导数。

cv.CalcOpticalFlowLK(prev_frame, curr_frame, (11, 11), velx, vely)

# ... convert velx and vely to numpy arrays ...

# Set up the gaussian filter and its derivative.
sigmaBlur = 1
sigmaGrey = 4
gBlurSize = 2 * np.around(2.5 * sigmaBlur) + 1
x = np.mgrid[1:gBlurSize + 1] - np.around((gBlurSize + 1) / 2)
gFilt = np.exp(-(x ** 2) / (2 * (sigmaBlur ** 2)))
gFilt /= np.sum(gFilt)
gxFilt = (-x / (sigmaBlur ** 2)) * gFilt

# Now calculate the derivative of the velocity.
res = scipy.signal.sepfir2d(velx, gxFilt, gFilt)

# ... 3 more calls to sepfir2d ... #

不幸的是,在调用 sepfir2d 时,我收到以下错误:

TypeError: array cannot be safely cast to required type

documentation on the Scipy website非常稀疏,我找不到很多其他使用它的例子。 sepfir2d 的所有三个参数都是 numpy 数组; velx 是一个矩阵,gxFilt 和 gFilt 都是相同长度的向量(我认为在这种情况下为 5)。 知道为什么会出现类型错误吗?

最佳答案

经过多次测试(查看 sepfir2d 的源代码完全没有帮助),事实证明问题出在我的 velxvely 是在需要 64 位时使用 32 位浮点基元。这样就解决了。

关于python - scipy.signal.sepfir2d 中的类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7968539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com