查找OpenCV的点的集合的轮廓(Find contour of the set of points

2019-09-16 16:42发布

我试图找到从OpenCV的MSER检测的图像对象。 但功能cvExtractMSER返回没有轮廓,但设置分( CvSeq ),创造数字:

(1, 4), (2, 3), (2, 4), (3, 2), (3, 3), (3, 4), (4, 1), (4, 2), (4, 3), (4, 4), ...

但我需要轮廓的只有两点:

(1, 4), (8, 4), (8, 1), (4, 1)

我如何才能找到这个轮廓?

我认为,最简单的(但不是最快)的方法是:

  • 得出的B / W图像的所有点(怎么样?逐点?)
  • 使用findContours对新的图像轮廓发现

Answer 1:

之一在findContours()的选项是通过一个参数,将删除所有点除了终点上的直的水平,垂直,或对角线。 如果你创建一个图像,绘制你所列出的点,然后findContours()能为你做的工作休息。

CV_CHAIN_APPROX_SIMPLE压缩水平,垂直和对角线段和只剩他们的终点。 例如,上右矩形的轮廓被编码有4分。

http://opencv.itseez.com/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=findcontours#findcontours



Answer 2:

如果我理解正确的话,你正在寻找到的物体的角落。

您可以通过countours的列表迭代,写一个简单的逻辑做简单的坐标比较来检测4个角



文章来源: Find contour of the set of points in OpenCV