opencv - 包含不需要的点的轮廓近似

标签 opencv polygon shapes approximation

您好,我有一个多边形问题。我不知道要找什么,所以我决定在这里问。下图显示了一个简单的形状。使用 OpenCV 的 findContours() 检测轮廓并近似于 CV_CHAIN_APPROX_TC89_KCOS (对于那些想知道这是如何完成的人)算法,以便将一条线上的所有点汇总到一条线上。 所以无论如何,一些轮廓包含某种形状,我称之为噪音。下图显示了噪声的含义。红线是轮廓。 (抱歉没有ms绘画技巧)

enter image description here

我的目标是重新定义形状以近似形状,但忽略此“噪音”。所以轮廓应该是这样的。蓝线显示修正后的轮廓。

enter image description here

最佳答案

  1. 尝试使用...cvGoodFeatuersToTrack() 检测角点...但是有一个标准,即角点之间应该有足够的距离...如果角点形成一个簇,则丢弃它们.
  2. 从轮廓中的点列表中...选择具有(最高 x,最高 y),(最高 x,最低 y),(最低 x,最高 y)和(最低 x,最低 y)的点)...现在加入这四个点...
  3. 如果角落本身有“噪声”,请尝试使用 Hough 变换检测图像中的直线...

关于opencv - 包含不需要的点的轮廓近似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14376582/

相关文章:

python - 使用 Python openCV 从实时提要(网络摄像头)中提取光流作为数据(数字)

python - PSNR的OpenCV实现对于两个相同的图像返回值361

algorithm - 如何以编程方式找到多边形的方向?

union - 多边形操作库

android - 在Android中绘画时如何屏蔽掉一个简单的区域?

python - CentOS上用python模块安装OpenCV出错

opencv - openCV 中的色相和饱和度范围似乎相互冲突

c++ - 如何确定图像中多边形的面积

c# - 如何在 WPF 中指定 Canvas 上椭圆形状的位置?

java - 如何让每个切换按钮执行不同的操作?