Android OpenCV使用MatOfKeyPoint和feature2d检测

时间:2013-04-24 04:14:22

标签: java android opencv

我无法正常使用OpenCV Java库,以下代码崩溃:

MatOfKeyPoint keypoints = new MatOfKeyPoint();
this.myFeatures.detect(inputImage, keypoints);

我认为关键点是这个可变对象,我将其传递给detect函数并接收回来。例如。后来我想做:

Features2d.drawKeypoints(inputImage, keypoints, outputImage);

我在这里做错了什么?感谢。

1 个答案:

答案 0 :(得分:9)

问题已解决 - 您不仅需要转换颜色类型,而且SURF算法不可用,至少在我拥有的库中是这样。这是工作代码:

myFeatures = FeatureDetector.create(FeatureDetector.FAST);
rgb = new Mat();
outputImage = new Mat();
keypoints = new MatOfKeyPoint();

Imgproc.cvtColor(inputImage, rgb, Imgproc.COLOR_RGBA2RGB);
myFeatures.detect(rgb, keypoints);
Features2d.drawKeypoints(rgb, keypoints, rgb);
Imgproc.cvtColor(rgb, outputImage, Imgproc.COLOR_RGB2RGBA);

我希望他们返回的错误比fatal signal 11 ...

更好