gpt4 book ai didi

运行 cv2.Canny() 时 Emacs 中的 python opencv 错误

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

我在 Emacs 的 python shell 中使用 OpenCV 的 cv2.Canny() 函数时遇到了一个非常奇怪的问题。当我运行 cv2.Canny(img, thresh1, thresh2) 时,我收到错误消息

OpenCV Error: Assertion failed (depth == CV_8U) in cv::Canny, file D:\Build\OpenCV\opencv-3.2.0\modules\imgproc\src\canny.cpp, line 845 Traceback (most recent call last): File "", line 1, in File "../myscript.py", line 34, in lines = cv2.HoughLines(edges,1,np.pi/180,200) cv2.error: D:\Build\OpenCV\opencv-3.2.0\modules\imgproc\src\canny.cpp:845: error: (-215) depth == CV_8U in function cv::Canny

我的电脑连D盘都没有,为什么源代码有这个问题?它应该已经被编译了..

我没有观察到 python-opencv 中的任何其他函数会导致此问题。我也尝试安装不同的版本,对于这个特定的函数调用,同样的错误,但是行号不同,因为 canny.cpp 文件是不同的版本。

但是,当我在 System Python Shell 中运行同一行时,一切都很好......

我的系统环境:

windows7 64bit
python 3.5
python-opencv: 3.1, or 3.2
emacs 25.1.1

最佳答案

问题是您的图片(或其中一张图片)不是 8 位格式(8 位格式意味着三个 channel 中的每一个都在 [0,255] 中)。

您可以通过添加以下内容来更改它:

img = img.astype(np.uint8)

在调用 cv2.Canny 之前。

关于运行 cv2.Canny() 时 Emacs 中的 python opencv 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42403551/

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