7

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

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

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

Features2d.drawKeypoints(inputImage, keypoints, outputImage);

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

4

1 回答 1

10

问题已解决 - 您不仅必须转换颜色类型,而且 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...

于 2013-04-24T04:52:57.473 回答