我无法正确使用 OpenCV Java 库,以下代码崩溃:
MatOfKeyPoint keypoints = new MatOfKeyPoint();
this.myFeatures.detect(inputImage, keypoints);
我认为关键点是我传递给detect函数并接收回来的可变对象。例如,稍后我想做:
Features2d.drawKeypoints(inputImage, keypoints, outputImage);
我在这里做错了什么?谢谢。
问题已解决 - 您不仅必须转换颜色类型,而且 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...