用opencv识别点的正方形

时间:2015-04-09 10:39:38

标签: c++ opencv

我的图像中有四个正方形点,每个点有四个角点和其他内部点...

将每个标识为单独的正方形的最佳方法是什么,以便我可以将其单独处理为Mat或ROI?

它们可能会倾斜,因此2d中的边可能看起来不相等,但每个边的点数相同,并且每个边可以包含在4边多边形中。

我有这个:

http://i58.tinypic.com/wwdw0l.jpg

......我想谈谈这个问题:

http://i59.tinypic.com/2dm9gtl.jpg

非常感谢。

c ++,visual studio,opencv

2 个答案:

答案 0 :(得分:0)

  1. 首先,应检测小斑点,即通过cv::SimpleBlobDetector类,

  2. 使用cv::kmeans()查找blob群集的中心并对群集周围的blob进行分组,

  3. 最后,cv::minAreaRect()会找到包围聚类2D点集的最小区域的旋转矩形。

答案 1 :(得分:0)

谢谢Kornel!查找轮廓,找到时刻,在中心点使用kmeans,如下所示:

http://answers.opencv.org/question/36751/kmeans-clustering-for-vectorpoint2f-data-structure/

并使用rotaterect来获取边缘。