2015-07-10 367 views
0

最近我在開發使用OpenCV的android應用程序。現在我遇到一個問題:如何將List <MatofPoint>轉換爲opencv中的Mat?

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

此功能後,我想打電話給Imgproc.MatchShapes檢測2個圖像是否匹配。但是在Java版本下,MatchShapes需要Mat類型的參數。
如何將List<MatOfPoint>轉換爲Mat?

+0

不知道Java,但contours1應該是某事像ListOfListOfPoints(因爲每個輪廓應該是點的列表) – Micka

+0

,你不需要從看到[MatOfPoint類擴展墊] [1] [1]:http://stackoverflow.com/questions/12380594/opencv-android-convert-matofpoint-to-mat – Sinned

回答

0

用於檢測輪廓的功能將返回一個MatOfPoints的列表。每個輪廓 - 因爲可以有很多 - 有它自己的MatOfPoints

您必須找到一種方法來選擇您想要使用的輪廓Imgproc.MatchShapes。如果你知道只有一個,那麼只需使用List<MatOfPoints>中的第一個條目。如果您想要最大的輪廓,請使用一些輪廓屬性來查找最大輪廓。如果你有時間,你可以檢查每一個輪廓。

然後,一旦找到想要比較的單個輪廓,就可以使用該MatOfPoints。根據this StackOverflow question,它們完全兼容。

相關問題