我正在尝试使用带有Python的OpenCV计算图像(ndarray)中的Canny Edges。

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

由于某种原因,我收到上述错误。有什么想法吗?

最佳答案

Slice1将需要强制转换或创建为uint8。 CV_8U只是数据类型uint8的别名。

import numpy as np
slice1Copy = np.uint8(slice1)
slicecanny = cv2.Canny(slice1Copy,1,100)

10-06 08:40