使用cv2.findContours函数传入参数的数据类型问题

Posted 简约的信仰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用cv2.findContours函数传入参数的数据类型问题相关的知识,希望对你有一定的参考价值。

使用cv2.findContours函数传入参数的数据类型问题

两次遇到使用这个函数传入图像的数据类型匹配问题,在这里记录一下

cv2.findContours(img[i], cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)

这个报错显示当使用 cv2.RETR_EXTERNAL模式时,只支持CV_8UC1类型的图像,不能使用CV_32SC1,对应的数据类型为uint8 和 float32

直接使用astype修改为np.uint8未成功

解决方法:

在使用SimpleITK读入时就使用sitk.sitkUInt8类型读取,这样得到np.array的数据类型就为np.uint8

查看数据类型

同样,在使用cv2中的函数有些需要转成float32,可以在SimpleITK读取的时候就使用sitk.sitkFloat32

以上是关于使用cv2.findContours函数传入参数的数据类型问题的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV-Python教程:22.轮廓层级

python怎么识别图片中每个线的基本形状

【python】opencv库中cv2.findContours()和cv2.drawContours()函数

opencv 9 -- 轮廓 层次结构

opencv 9 -- 轮廓 层次结构

python调用cv2.findContours时报错:ValueError: not enough values to unpack (expected 3, got 2)