Почему ORB не находит ключевые точки

#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 .