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

she*_*per 3 python emacs opencv

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

OpenCV错误:cv :: Canny,文件D:\ Build \ OpenCV \ opencv-3.2.0 \ modules \ imgproc \ src \ canny.cpp,行845追溯中的断言失败(深度== CV_8U) :文件“”,第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
Run Code Online (Sandbox Code Playgroud)

Meg*_*rdy 5

问题是您的图像(或其中一个图像)不是8位格式(8位格式表示三个通道中的每个通道都处于[0,255])。

您可以通过添加以下内容来更改此设置:

img = img.astype(np.uint8)

在致电cv2.Canny之前