2012-03-12 91 views
4

我有一个Mat contours和我近似每个contourapproxPolyDP。 我想要做的就是检测矩形,三角形,圆形等形状。并且例如用不同的颜色或使用画布等重新绘制它们。如何从轮廓提取简单的几何形式在opencv

有没有利用轮廓的方法?我如何访问Mat contours中的点并将它们简化得更远(消除变形或如果两个重要点非常接近,我可以安全地移除其中的一个点)?

我正在开发Java(Android),所以不是每个C/C++方法/类型都可用于我(或者JNI调用将是浪费)。

回答

1

轮廓以矢量>轮廓形式返回。你可以做这样的事情很容易用C访问这些++:

vector<vector<Point> > contours; 
findContours(..,contours,...); 
contours.at(0).at(0) //first point of first contour 

如果您使用的是垫,那么你将需要测试产生什么样的安排访问它们。尽管如此,它应该很容易,但是JNI和android opencv是一种痛苦。