您好,我有一个多边形问题。我不知道要找什么,所以我决定在这里问。下图显示了一个简单的形状。使用 OpenCV 的 findContours() 检测轮廓并近似于 CV_CHAIN_APPROX_TC89_KCOS (对于那些想知道这是如何完成的人)算法,以便将一条线上的所有点汇总到一条线上。 所以无论如何,一些轮廓包含某种形状,我称之为噪音。下图显示了噪声的含义。红线是轮廓。 (抱歉没有ms绘画技巧)
我的目标是重新定义形状以近似形状,但忽略此“噪音”。所以轮廓应该是这样的。蓝线显示修正后的轮廓。
最佳答案
- 尝试使用...
cvGoodFeatuersToTrack()
检测角点...但是有一个标准,即角点之间应该有足够的距离...如果角点形成一个簇,则丢弃它们. - 从轮廓中的点列表中...选择具有(最高 x,最高 y),(最高 x,最低 y),(最低 x,最高 y)和(最低 x,最低 y)的点)...现在加入这四个点...
- 如果角落本身有“噪声”,请尝试使用 Hough 变换检测图像中的直线...
关于opencv - 包含不需要的点的轮廓近似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14376582/