关于findcontours函数的具体参数介绍参见博客:
中文版:Opencv 轮廓检测相关api文档
英文版:官方文档
调用findcontours()方法时,所需的参数在python环境和java环境都是差不多的。
如果出现这个报错,就可以锁定为是输入参数的格式不是所需要的8uC1 或 32sC1。(可以看出这个方法只支持单通道图像)
先来看看这个函数需要的参数:
c++:
void findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method

当使用OpenCV的findContours()方法时,可能会遇到'FindContours support only 8uC1 and 32sC1 images'的错误。此错误意味着输入图像格式不正确。函数只接受8位单通道(8uC1)或32位整型(32sC1)图像。在Java环境下,如果图像已经是8UC1格式,确保设置mode参数为RETR_EXTERNAL。如果使用CV_RETR_CCOMP或CV_RETR_FLOODFILL,需要32SC1格式的图像。另外,如果遇到'Unsupported data type (=4)',表明数据类型不被支持,需要将数据转换为CV_8UC1。最后,使用drawContours()绘制轮廓时,参数格式要保持一致。
最低0.47元/天 解锁文章
3631

被折叠的 条评论
为什么被折叠?



