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)
问题是您的图像(或其中一个图像)不是8位格式(8位格式表示三个通道中的每个通道都处于[0,255])。
您可以通过添加以下内容来更改此设置:
img = img.astype(np.uint8)
在致电cv2.Canny之前