相关疑难解决方法(0)

如何裁掉凸性缺陷?

我正试图从轮廓中检测并精确定位图像中的一些物体.我得到的轮廓通常包括一些噪音(可能形成背景,我不知道).对象看起来应该类似于矩形或正方形,如:

在此输入图像描述

我通过形状匹配(cv::matchShapes)来获得非常好的结果,以检测其中包含这些对象的轮廓,有无噪音,但是在出现噪音的情况下我会遇到精确定位的问题.

噪音看起来像:

在此输入图像描述 要么 在此输入图像描述 例如.

我的想法是找到凸起缺陷,如果它们变得太强,就会以某种方式去除导致凹陷的部分.检测缺陷是可以的,通常我会在每个"不需要的结构"中得到两个缺陷,但我仍然坚持如何决定从轮廓中删除点的位置和位置.

这里有一些轮廓,它们的面具(因此你可以很容易地提取轮廓)和包括阈值凸面缺陷的凸包:

在此输入图像描述在此输入图像描述在此输入图像描述

在此输入图像描述在此输入图像描述在此输入图像描述

在此输入图像描述在此输入图像描述在此输入图像描述

在此输入图像描述在此输入图像描述在此输入图像描述

在此输入图像描述在此输入图像描述在此输入图像描述

在此输入图像描述在此输入图像描述在此输入图像描述

在此输入图像描述在此输入图像描述在此输入图像描述

在此输入图像描述在此输入图像描述在此输入图像描述

在此输入图像描述在此输入图像描述在此输入图像描述

我是否可以在轮廓中走动并在局部判断轮廓是否执行"左转"(如果顺时针方向行走),如果是,则移除轮廓点直到下一个左转弯?也许从凸性缺陷开始?

我在寻找算法或代码,编程语言应该不重要,算法更重要.

opencv image-processing contour computer-vision convexity-defects

10
推荐指数
2
解决办法
1976
查看次数