我试图使用OpenCV库比较两个图像(确定它们是否相似).我配置了java包装器,并发现我正在尝试重写为Java的几个教程(大多数在C/C++中).我正在使用特征检测方法.
问题是我现在的算法没有产生任何合理的结果(它声称两个相似的图像没有什么共同点,并且找到完全不同的其他两个图像之间的匹配).有人可以建议如何使用openCV匹配器来产生一些合理的结果?
这是我的图像比较代码
private static void compareImages(String path1, String path2) {
System.out.println(path1 + "-" + path2);
FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB);
DescriptorExtractor descriptor = DescriptorExtractor.create(DescriptorExtractor.ORB);
DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING);
// first image
Mat img1 = Imgcodecs.imread(path1, Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE);
Mat descriptors1 = new Mat();
MatOfKeyPoint keypoints1 = new MatOfKeyPoint();
detector.detect(img1, keypoints1);
descriptor.compute(img1, keypoints1, desc