0

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

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()); 

(适用于安卓)

这是我在日志中得到的:

Mat of key points = 79x1

(桌面)

Mat of key points = 216x1

(安卓)

为什么有区别?是否有任何 MSER 默认设置,对于桌面和安卓来说是不同的?我被困在这里,非常感谢任何帮助。

4

1 回答 1

1

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

这里有一些提示

于 2015-08-22T14:09:29.523 回答