适合由尖角分开的弯曲边缘

时间:2018-05-29 17:18:41

标签: opencv edge-detection opencv-contour

编辑:为了进一步澄清我的问题是否不明确,

  • 输入:下面的图片
  • 输出:边缘1上的点,边缘2上的点,边缘3上的点以及边缘4上的点。(我有一个问题找到轮廓。我只是无法分离四条边上的每一条点。我想将这些点分组为四个单独的边缘,这样我就可以将四条单独的曲线分别给它们了) / LI>

我的问题是检测点并将单独的曲线拟合到对象的每个弯曲边缘,如下图所示(所示图像是一个示例。每个对象的实际形状不同,但是会有一个尖角或从一个边缘到另一个边缘的斜率变化):

enter image description here

解决这个问题的一种方法是将每条边上的点/像素(上例中的四条线)分开,并在每条边上拟合多项式。通过搜索一下,我了解到Hough变换可用于检测OpenCV中的直边,但不能用于弯曲边缘。我也试过检测轮廓,但它没有分离出封闭形状的边缘。边缘被认为与相邻边缘分离的主要标准是斜率发生急剧变化。

有人能告诉我如何实现这个目标吗?由于我的任务的其他模块,我更喜欢使用C ++和OpenCV。

1 个答案:

答案 0 :(得分:2)

您要做的主要是在轮廓中找到高曲率点。有几种曲率估计方法。一些是基于强度的局部导数,一些是基于沿曲线的像素的排列。这个问题与角点检测非常接近。

您可能会对以下参考文献感兴趣:“比较研究 关于2D曲率估计,Simon Hermann和Reinhard Klette“或”噪声曲线中的曲率估计,Thanh Phuong Nguyen,Isabelle Debled-Rennesson“。请注意,由于数字域中的曲率估计不安,因此在该主题上存在大量文献。二阶导数。