我正在尝试使用OpenCV和Python计算图像中的精明边缘(ndarray)。
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时丢失精度,您可以先将比例调整为255格式,只需执行以下操作:
这里我认为图像是一个numpy数组,np代表numpy。我希望它能帮助别人!
切片1将需要铸造或创建为uint8。CV_8U只是uint8数据类型的别名。
相关问题 更多 >
编程相关推荐