OpenCV MSER实现为Android和桌面版本产生不同的结果

时间:2015-08-22 10:40:49

标签: android opencv desktop mser

对于桌面和Android版本的OpenCV 3.0,似乎MSER算法的工作方式不同。根据运行OpenCV的平台(桌面或Android),下面的代码产生不同的结果:

Mat img = Imgcodecs.imread(filename, Imgcodecs.IMREAD_GRAYSCALE);
MatOfKeyPoint mokp = new MatOfKeyPoint();
FeatureDetector fd = FeatureDetector.create(FeatureDetector.MSER);
fd.detect(img, mokp);

然后

System.out.println("Mat of key points = " + mokp.rows() + "x" + mokp.cols());

(适用于桌面)或

Log.i(TAG, "Mat of key points = " + mokp.rows() + "x" + mokp.cols()); 

(对于android)

这是我在日志中得到的:

Mat of key points = 79x1

(桌面)

Mat of key points = 216x1

(机器人)

为什么会有区别?是否有任何MSER默认设置,对于桌面和Android有什么不同?我被困在这里,任何帮助都非常感激。

1 个答案:

答案 0 :(得分:1)

我发现了问题 - 桌面和Android上不同版本的OpenCV。版本3.0显然使用MSER的不同默认参数而不是3.0 RC1。

得到一些提示here.