我试图找到从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
对新的图像轮廓发现
之一在findContours()的选项是通过一个参数,将删除所有点除了终点上的直的水平,垂直,或对角线。 如果你创建一个图像,绘制你所列出的点,然后findContours()能为你做的工作休息。
CV_CHAIN_APPROX_SIMPLE压缩水平,垂直和对角线段和只剩他们的终点。 例如,上右矩形的轮廓被编码有4分。
http://opencv.itseez.com/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=findcontours#findcontours
如果我理解正确的话,你正在寻找到的物体的角落。
您可以通过countours的列表迭代,写一个简单的逻辑做简单的坐标比较来检测4个角 。