最近我正在使用OpenCV
开发Android应用程序。现在我遇到了一个问题:
Imgproc.findContours(grayMat, contours1, new Mat(), Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE);
在此功能之后,我想调用Imgproc.MatchShapes
来检测2个图像是否匹配。但在Java版本下,MatchShapes需要Mat类型的参数
如何将List<MatOfPoint>
转换为Mat?
答案 0 :(得分:0)
用于检测轮廓的函数返回MatOfPoints
的列表。每个轮廓 - 因为可能有很多 - 都有自己的MatOfPoints
。
您必须找到一种方法来选择要与Imgproc.MatchShapes
一起使用的轮廓。如果您知道只有一个,那么只需使用List<MatOfPoints>
中的第一个条目即可。如果你想要最大的一个,使用一些轮廓属性来找到最大的轮廓。如果你有时间,你可以检查每一个轮廓。
然后,一旦找到了要比较的单个轮廓,就可以使用MatOfPoints
。根据{{3}},它们完全兼容。