我无法正常使用OpenCV Java库,以下代码崩溃:
MatOfKeyPoint keypoints = new MatOfKeyPoint();
this.myFeatures.detect(inputImage, keypoints);
我认为关键点是这个可变对象,我将其传递给detect
函数并接收回来。例如。后来我想做:
Features2d.drawKeypoints(inputImage, keypoints, outputImage);
我在这里做错了什么?感谢。
答案 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
...