Opencv findContours和drawContours尽管不应该在MSCOCO分段蒙版上引发错误

问题描述

我试图从二进制蒙版(从MSCOCO数据集中)获取轮廓。

opencv 3.4.11.41(2020-07-18发行)以某种方式使用此代码

x = coco.annToMask(ann) * 255
_,contour,_ = cv2.findContours(x,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)

提高

TypeError:参数'image'的预期Ptr

但是,如果我在这两行之间插入cv2.threshold

x = coco.annToMask(ann) * 255
ret,thresh = cv2.threshold(x,50,255,cv2.THRESH_BINARY)
_,_ = cv2.findContours(thresh,cv2.CHAIN_APPROX_NONE)

即使xthresh实际上与变量检查相同,但它们都是@R_502_4399@且数据类型为uint8且{{1 }}将每个像素返回为x == thresh

这不是4.4的问题,因为它应该在同一天发布。

这仅仅是bug还是opencv的数组在C ++方面具有一些属性 与numpy不同,我在python中看不到?

4.4正常工作的方式使我认为可以解决此问题。

Edit1

实际上,即使4.4 True可以正常工作,当findContours出现错误时,它也会得到完全相同的错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)