10
我想使用OpenCV和Python计算图像(ndarray)中的Canny边缘。使用OpenCV的2D图像中的深度错误Python
slice1 = slices[15,:,:]
slice1 = slice1[40:80,60:100]
print slice1.shape
print slice1.dtype
slicecanny = cv2.Canny(slice1, 1, 100)
输出:
(40, 40)
float64
...
error: /Users/jmerkow/code/opencv-2.4.6.1/modules/imgproc/src/canny.cpp:49:
error: (-215) src.depth() == CV_8U in function Canny
出于某种原因,我得到上述错误。任何想法为什么?
您可能需要将数据类型转换为float(CV_32F),因为canny做了高斯过滤(如果OpenCV使用Filter2D)需要float数据输入。 – jgmao
我试图转换为float32和整数,而不是运气。我也试过:slice2 = cv2.GaussianBlur(slice1,(5,5),1) slicecanny = cv2.Canny(slice2,1,100) – jmerkow
在你的错误输出中:error:(-215)src.depth()==函数Canny中的CV_8U。可能是我完成了错误的方向。你有没有尝试转换为CV_8U作为输入(不是整数,因为整数不是UInt8)。 – jgmao