如何在opencv中将List <matofpoint>转换为Mat?

时间:2015-07-10 03:51:20

标签: opencv mat

最近我正在使用OpenCV开发Android应用程序。现在我遇到了一个问题:

Imgproc.findContours(grayMat, contours1, new Mat(), Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE);

在此功能之后,我想调用Imgproc.MatchShapes来检测2个图像是否匹配。但在Java版本下,MatchShapes需要Mat类型的参数 如何将List<MatOfPoint>转换为Mat?

1 个答案:

答案 0 :(得分:0)

用于检测轮廓的函数返回MatOfPoints的列表。每个轮廓 - 因为可能有很多 - 都有自己的MatOfPoints

您必须找到一种方法来选择要与Imgproc.MatchShapes一起使用的轮廓。如果您知道只有一个,那么只需使用List<MatOfPoints>中的第一个条目即可。如果你想要最大的一个,使用一些轮廓属性来找到最大的轮廓。如果你有时间,你可以检查每一个轮廓。

然后,一旦找到了要比较的单个轮廓,就可以使用MatOfPoints。根据{{​​3}},它们完全兼容。