#java #opencv #image-processing #feature-detection #orb
#java #opencv #обработка изображений #функция-обнаружение #orb
Вопрос:
Я пытаюсь объединить два изображения, но ORB не находит ключевых точек. Это всего лишь пример использования того же изображения, темные точки вызваны получением и не являются хорошими ориентирами, поэтому я применяю маску, чтобы избежать их. Проблема в том, что никакие ключевые точки не обнаруживаются, если черные точки замаскированы, и мне интересно, в чем проблема.
final ORB orb = ORB.create(100);
MatOfKeyPoint keypoints = new MatOfKeyPoint();
Mat descriptors = new Mat();
final Mat ones = Mat.ones(426, 195, CV_8U);
orb.detectAndCompute(draw, zeroMask, keypoints, descriptors);
MatOfKeyPoint keypoints2 = new MatOfKeyPoint();
Mat descriptors2 = new Mat();
final List<KeyPoint> keyPoints = keypoints.toList();
orb.detectAndCompute(draw, zeroMask, keypoints2, descriptors2);
final DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING);
final MatOfDMatch matches = new MatOfDMatch();
matcher.match(descriptors, descriptors2, matches);
final Mat links = new Mat();
final MatOfByte ones1 = new MatOfByte();
org.opencv.features2d.Features2d.drawMatches(draw, keypoints, draw, keypoints2, matches, links, new Scalar(0), new Scalar(0), ones1);
Комментарии:
1. Можете ли вы указать на какие-либо ключевые моменты на этом изображении? Я не могу. Неудивительно, что алгоритм тоже не может.
2. @CrisLuengo Какой метод я должен использовать вместо этого, чтобы выровнять и объединить два изображения такого рода?
3. См. раздел Общие сведения о функциях . На этом изображении нет угла. Вы можете использовать такой метод, как
template matching
.