【发布时间】:2017-02-22 22:32:30
【问题描述】:
我在 Emacs 的 python shell 中使用 OpenCV 的 cv2.Canny() 函数时遇到了一个非常奇怪的问题。当我运行cv2.Canny(img, thresh1, thresh2) 时,我收到错误消息
OpenCV 错误:cv::Canny 中的断言失败(深度 == CV_8U),文件 D:\Build\OpenCV\opencv-3.2.0\modules\imgproc\src\canny.cpp,第 845 行 Traceback(最近一次调用最后一次):文件“”,第 1 行,在 文件“../myscript.py”, 第 34 行,在 线 = cv2.HoughLines(edges,1,np.pi/180,200) cv2.error: D:\Build\OpenCV\opencv-3.2.0\modules\imgproc\src\canny.cpp:845: 错误: (-215) 函数 cv::Canny 中的深度 == CV_8U
我的电脑上什至没有 D 盘,为什么源代码有这个问题?它应该已经编译了..
我没有观察到 python-opencv 中的任何其他函数导致此问题。我也尝试安装不同的版本,这个特定的函数调用也出现同样的错误,但是由于canny.cpp文件的版本不同,所以行号会有所不同。
但是,当我在 System Python Shell 中运行同一行时,一切都很好......
我的系统环境:
windows7 64bit
python 3.5
python-opencv: 3.1, or 3.2
emacs 25.1.1
【问题讨论】:
-
您的
img需要转换为uint8. CV_8U。导入 numpy 并在加载图像img= np.uint8(img)后添加以下行。之后使用cv2.Canny。 -
但是为什么我使用系统python shell时没有错误?