我有一个Mat contours
,并且用contour
近似了每个approxPolyDP
。
我现在要检测的是矩形,三角形,圆形等形式。还有用其他颜色或使用 Canvas 等重绘它们。
有没有利用轮廓的方法?如何访问Mat contours
中的点并将其进一步简化(删除变形,或者如果两个重要点靠得很近,可以安全地删除其中之一)?
我正在用Java(Android)开发,所以并不是我可以使用所有的C/C++方法/类型(否则JNI调用会很浪费)。
最佳答案
轮廓返回为 vector >轮廓。通过执行以下操作,您可以在C++中轻松访问它们:
vector<vector<Point> > contours;
findContours(..,contours,...);
contours.at(0).at(0) //first point of first contour
如果要使用垫子访问它们,则需要测试产生的布置。尽管应该说,JNI和android opencv应该很容易,但它应该非常容易。
关于java - 如何在OpenCV中从轮廓提取简单的几何形式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9663841/