Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 查找形状内部没有负区域的轮廓_Opencv - Fatal编程技术网

Opencv 查找形状内部没有负区域的轮廓

Opencv 查找形状内部没有负区域的轮廓,opencv,Opencv,作为对的后续问题,我使用OpenCV的findContours()来检测黑白相间的形状(为了使函数更好地工作,我将颜色反转)。在下图中,OpenCV将“g”和内碗的外部形状检测为不同的形状: 我可以使用层次结构来丢弃其他形状中的形状,但我宁愿避免使用层次结构,以防OpenCV检测到整个图像周围的总体轮廓。findContours是否进行了一些调整,使其仅查找连续像素而不查找内部负片形状?您是指CV\u RETR\u EXTERNAL标志?这只会找到外部轮廓,但在您的情况下,它可能会找到更外部

作为对的后续问题,我使用OpenCV的
findContours()
来检测黑白相间的形状(为了使函数更好地工作,我将颜色反转)。在下图中,OpenCV将“g”和内碗的外部形状检测为不同的形状:


我可以使用层次结构来丢弃其他形状中的形状,但我宁愿避免使用层次结构,以防OpenCV检测到整个图像周围的总体轮廓。
findContours
是否进行了一些调整,使其仅查找连续像素而不查找内部负片形状?

您是指
CV\u RETR\u EXTERNAL
标志?这只会找到外部轮廓,但在您的情况下,它可能会找到更外部的背景。或者你是指g的整个黑色部分,而不仅仅是轮廓?那也许就是你要找的是的,我要找的是
connectedcomponents
。我只是重构了我的代码,它更干净了,也就是说,因为我不处理轮廓的层次结构。你想写一个答案吗?当我阅读关于分水岭变换的教程时,我错过了连接组件的这个功能。多亏了这个方法,我将代码从200行重构到120行,而且更加健壮。很高兴听到它帮助了你。我会在周末写下答案,详细说明:)