Opencv 查找形状内部没有负区域的轮廓
作为对的后续问题,我使用OpenCV的Opencv 查找形状内部没有负区域的轮廓,opencv,Opencv,作为对的后续问题,我使用OpenCV的findContours()来检测黑白相间的形状(为了使函数更好地工作,我将颜色反转)。在下图中,OpenCV将“g”和内碗的外部形状检测为不同的形状: 我可以使用层次结构来丢弃其他形状中的形状,但我宁愿避免使用层次结构,以防OpenCV检测到整个图像周围的总体轮廓。findContours是否进行了一些调整,使其仅查找连续像素而不查找内部负片形状?您是指CV\u RETR\u EXTERNAL标志?这只会找到外部轮廓,但在您的情况下,它可能会找到更外部
findContours()
来检测黑白相间的形状(为了使函数更好地工作,我将颜色反转)。在下图中,OpenCV将“g”和内碗的外部形状检测为不同的形状:
我可以使用层次结构来丢弃其他形状中的形状,但我宁愿避免使用层次结构,以防OpenCV检测到整个图像周围的总体轮廓。
findContours
是否进行了一些调整,使其仅查找连续像素而不查找内部负片形状?您是指CV\u RETR\u EXTERNAL
标志?这只会找到外部轮廓,但在您的情况下,它可能会找到更外部的背景。或者你是指g的整个黑色部分,而不仅仅是轮廓?那也许就是你要找的是的,我要找的是connectedcomponents
。我只是重构了我的代码,它更干净了,也就是说,因为我不处理轮廓的层次结构。你想写一个答案吗?当我阅读关于分水岭变换的教程时,我错过了连接组件的这个功能。多亏了这个方法,我将代码从200行重构到120行,而且更加健壮。很高兴听到它帮助了你。我会在周末写下答案,详细说明:)