Opencv FindContours supports only CV_8UC1 images

使用findContours时遇到了这么一个问题
Opencv FindContours supports only CV_8UC1 images_第1张图片

解决方法:

根据错误提示发现,findContours()方法支持的image只能是CV_8UC1类型,我当时看到这里时懵逼的,啥是CV_8UC1????下面这个链接是博主Young__Fan的文章,写的非常详细易懂。
OpenCV 创建图像时,CV_8UC1,CV_32FC3,CV_32S等参数的含义

然后我就检查了一下我的图像类型,发现是三通道的,不是单通道的灰度图,所以就转换一下即可,因为本身img就是灰度图,虽然它是三通道的,但后面两个通道的值都为0,所以直接使用切片即可

#img是numpy.ndarray类型
>>>img.shape
(500, 1010, 3)
#采用切片,只留第一个channel
>>>img=img[::0]
>>>img.shape
(500, 1010, 1)

你可能感兴趣的:(openCV)