Просмотр совпавших функций в конвейере сшивания OpenCV - PullRequest
0 голосов
/ 10 декабря 2018

У меня возникла проблема с проблемой двухмерного сшивания, как указано здесь: ссылка

Я хочу увидеть соответствие объектов, которое происходит в конвейере сшивания.Я могу сделать это, написав алгоритм сшивания самостоятельно, как показано ниже:

Однако, может ли кто-нибудь сказать мне, как получить эту информацию из конвейера сшивания ?.Я хочу увидеть соответствующие функции в другом файле.

double minDist = Double.MAX_VALUE;
double maxDist = 0;
double distance;
for (int i = 0; i < matchesArr.length; i++) {
    distance = matchesArr[i].distance;
    if (distance < minDist)
        minDist = distance;
    else if (distance > maxDist)
        maxDist = distance;
}

final double thresholdFactor = 3.5;
List<DMatch> good_matches = new Vector<DMatch>();
for (int i = 0; i < matchesArr.length; i++) {
    if (matchesArr[i].distance <= thresholdFactor * minDist) {
        good_matches.add(matchesArr[i]);
    }
}

LinkedList<Point> listImage1 = new LinkedList<Point>();
LinkedList<Point> listImage2 = new LinkedList<Point>();

List<KeyPoint> keyPointsList1 = keyPoints1.toList();
List<KeyPoint> keyPointsList2 = keyPoints2.toList();

for (int i = 0; i < good_matches.size(); i++) {
    listImage1.addLast(keyPointsList1.get(good_matches.get(i).queryIdx).pt);
    listImage2.addLast(keyPointsList2.get(good_matches.get(i).trainIdx).pt);
}

MatOfDMatch goodMatches = new MatOfDMatch();
goodMatches.fromList(good_matches);

Features2d.drawMatches(processedImage1, keyPoints1, processedImage2, keyPoints2, goodMatches, imgMatch, new Scalar(254, 0, 0), new Scalar(254, 0, 0), new MatOfByte(), 2);
boolean imageMatched = imgcodecs.imwrite("imageMatched.jpg", imgMatch);
...