Why ORB does not find keypoints

258 views Asked by At

enter image description here

Im trying to merge two images but ORB does not find keypoints. This is just an example using the same image, dark points are caused by acquisition and are not good reference points so I apply a mask to avoid them. The problem is that no keypoints are detected if black points are masked and I wonder what the problem is.

    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);
0

There are 0 answers