Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

What to do with DMatch value ?

I have this code for image matching using ORB

  FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB);
    DescriptorExtractor descriptor = DescriptorExtractor.create(DescriptorExtractor.ORB);;
    DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING);
    File root = Environment.getExternalStorageDirectory();
    File file = new File( root, "nano1.jpg");
    File file2 = new File( root, "nano2.jpg");
    Log.d(LOG_TAG, "File " + file.exists() + " & "+ file2.exists() + " " + root.getAbsolutePath());

    //first image
    Mat img1 = Highgui.imread(file.getAbsolutePath());
    Mat descriptors1 = new Mat();
    MatOfKeyPoint keypoints1 = new MatOfKeyPoint();

    detector.detect(img1, keypoints1);
    descriptor.compute(img1, keypoints1, descriptors1);

    //second image
    Mat img2 = Highgui.imread(file2.getAbsolutePath());
    Mat descriptors2 = new Mat();
    MatOfKeyPoint keypoints2 = new MatOfKeyPoint();

    detector.detect(img2, keypoints2);
    descriptor.compute(img2, keypoints2, descriptors2);


    //matcher should include 2 different image's descriptors
    MatOfDMatch  matches = new MatOfDMatch();             
    matcher.match(descriptors1,descriptors2,matches);
    Log.d(LOG_TAG, "size " + matches.size());

    //feature and connection colors
    Scalar RED = new Scalar(255,0,0);
    Scalar GREEN = new Scalar(0,255,0);
    //output image
    Mat outputImg = new Mat();
    MatOfByte drawnMatches = new MatOfByte();
    //this will draw all matches, works fine
    Features2d.drawMatches(img1, keypoints1, img2, keypoints2, matches, 
            outputImg, GREEN, RED,  drawnMatches, Features2d.NOT_DRAW_SINGLE_POINTS);
    int DIST_LIMIT = 80;
    List<DMatch> matchList = matches.toList();
    List<DMatch> matches_final = new ArrayList<DMatch>();
    for(int i=0; i<matchList.size(); i++){
        if(matchList.get(i).distance <= DIST_LIMIT){
            matches_final.add(matches.toList().get(i));
        }
    }

    MatOfDMatch matches_final_mat = new MatOfDMatch();
    matches_final_mat.fromList(matches_final);
    for(int i=0; i< matches_final.size(); i++){
        Log.d(LOG_TAG,""+ matches_final.get(i));
    }

And in the matches I get

    08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=0, trainIdx=8, imgIdx=0, distance=63.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=1, trainIdx=81, imgIdx=0, distance=78.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=2, trainIdx=162, imgIdx=0, distance=73.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=3, trainIdx=189, imgIdx=0, distance=75.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=4, trainIdx=88, imgIdx=0, distance=77.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=5, trainIdx=89, imgIdx=0, distance=60.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=6, trainIdx=81, imgIdx=0, distance=78.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=7, trainIdx=68, imgIdx=0, distance=57.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=8, trainIdx=298, imgIdx=0, distance=48.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=9, trainIdx=12, imgIdx=0, distance=39.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=10, trainIdx=479, imgIdx=0, distance=66.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=11, trainIdx=480, imgIdx=0, distance=63.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=12, trainIdx=125, imgIdx=0, distance=56.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=13, trainIdx=298, imgIdx=0, distance=71.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=14, trainIdx=37, imgIdx=0, distance=72.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=15, trainIdx=174, imgIdx=0, distance=74.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=16, trainIdx=328, imgIdx=0, distance=79.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=17, trainIdx=319, imgIdx=0, distance=76.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=18, trainIdx=290, imgIdx=0, distance=65.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=19, trainIdx=256, imgIdx=0, distance=32.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=20, trainIdx=164, imgIdx=0, distance=58.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=21, trainIdx=34, imgIdx=0, distance=53.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=22, trainIdx=382, imgIdx=0, distance=69.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=23, trainIdx=211, imgIdx=0, distance=41.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=24, trainIdx=18, imgIdx=0, distance=79.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=25, trainIdx=256, imgIdx=0, distance=68.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=26, trainIdx=493, imgIdx=0, distance=67.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=27, trainIdx=119, imgIdx=0, distance=78.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=28, trainIdx=7, imgIdx=0, distance=51.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=29, trainIdx=87, imgIdx=0, distance=61.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=30, trainIdx=12, imgIdx=0, distance=24.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=31, trainIdx=458, imgIdx=0, distance=71.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=32, trainIdx=115, imgIdx=0, distance=77.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=33, trainIdx=92, imgIdx=0, distance=63.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=34, trainIdx=114, imgIdx=0, distance=54.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=35, trainIdx=461, imgIdx=0, distance=80.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=36, trainIdx=474, imgIdx=0, distance=69.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=37, trainIdx=398, imgIdx=0, distance=68.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=38, trainIdx=356, imgIdx=0, distance=76.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=39, trainIdx=428, imgIdx=0, distance=72.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=40, trainIdx=121, imgIdx=0, distance=64.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=41, trainIdx=494, imgIdx=0, distance=77.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=42, trainIdx=7, imgIdx=0, distance=63.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=43, trainIdx=238, imgIdx=0, distance=61.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=44, trainIdx=479, imgIdx=0, distance=50.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=45, trainIdx=367, imgIdx=0, distance=67.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=47, trainIdx=248, imgIdx=0, distance=56.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=48, trainIdx=424, imgIdx=0, distance=69.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=49, trainIdx=20, imgIdx=0, distance=59.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=50, trainIdx=12, imgIdx=0, distance=44.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=51, trainIdx=256, imgIdx=0, distance=59.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=52, trainIdx=486, imgIdx=0, distance=74.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=53, trainIdx=422, imgIdx=0, distance=75.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=54, trainIdx=479, imgIdx=0, distance=52.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=55, trainIdx=298, imgIdx=0, distance=37.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=56, trainIdx=279, imgIdx=0, distance=73.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=57, trainIdx=223, imgIdx=0, distance=71.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=58, trainIdx=405, imgIdx=0, distance=74.0]

Now the two images are identical so basically how i identify the similar images

What to do with DMatch value ?

I have this code for image matching using ORB

  FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB);
    DescriptorExtractor descriptor = DescriptorExtractor.create(DescriptorExtractor.ORB);;
    DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING);
    File root = Environment.getExternalStorageDirectory();
    File file = new File( root, "nano1.jpg");
    File file2 = new File( root, "nano2.jpg");
    Log.d(LOG_TAG, "File " + file.exists() + " & "+ file2.exists() + " " + root.getAbsolutePath());

    //first image
    Mat img1 = Highgui.imread(file.getAbsolutePath());
    Mat descriptors1 = new Mat();
    MatOfKeyPoint keypoints1 = new MatOfKeyPoint();

    detector.detect(img1, keypoints1);
    descriptor.compute(img1, keypoints1, descriptors1);

    //second image
    Mat img2 = Highgui.imread(file2.getAbsolutePath());
    Mat descriptors2 = new Mat();
    MatOfKeyPoint keypoints2 = new MatOfKeyPoint();

    detector.detect(img2, keypoints2);
    descriptor.compute(img2, keypoints2, descriptors2);


    //matcher should include 2 different image's descriptors
    MatOfDMatch  matches = new MatOfDMatch();             
    matcher.match(descriptors1,descriptors2,matches);
    Log.d(LOG_TAG, "size " + matches.size());

    //feature and connection colors
    Scalar RED = new Scalar(255,0,0);
    Scalar GREEN = new Scalar(0,255,0);
    //output image
    Mat outputImg = new Mat();
    MatOfByte drawnMatches = new MatOfByte();
    //this will draw all matches, works fine
    Features2d.drawMatches(img1, keypoints1, img2, keypoints2, matches, 
            outputImg, GREEN, RED,  drawnMatches, Features2d.NOT_DRAW_SINGLE_POINTS);
    int DIST_LIMIT = 80;
    List<DMatch> matchList = matches.toList();
    List<DMatch> matches_final = new ArrayList<DMatch>();
    for(int i=0; i<matchList.size(); i++){
        if(matchList.get(i).distance <= DIST_LIMIT){
            matches_final.add(matches.toList().get(i));
        }
    }

    MatOfDMatch matches_final_mat = new MatOfDMatch();
    matches_final_mat.fromList(matches_final);
    for(int i=0; i< matches_final.size(); i++){
        Log.d(LOG_TAG,""+ matches_final.get(i));
    }

And in the matches I get

 08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=0, trainIdx=8, imgIdx=0, distance=63.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=1, trainIdx=81, imgIdx=0, distance=78.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=2, trainIdx=162, imgIdx=0, distance=73.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=3, trainIdx=189, imgIdx=0, distance=75.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=4, trainIdx=88, imgIdx=0, distance=77.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=5, trainIdx=89, imgIdx=0, distance=60.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=6, trainIdx=81, imgIdx=0, distance=78.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=7, trainIdx=68, imgIdx=0, distance=57.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=8, trainIdx=298, imgIdx=0, distance=48.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=9, trainIdx=12, imgIdx=0, distance=39.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=10, trainIdx=479, imgIdx=0, distance=66.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=11, trainIdx=480, imgIdx=0, distance=63.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=12, trainIdx=125, imgIdx=0, distance=56.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=13, trainIdx=298, imgIdx=0, distance=71.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=14, trainIdx=37, imgIdx=0, distance=72.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=15, trainIdx=174, imgIdx=0, distance=74.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=16, trainIdx=328, imgIdx=0, distance=79.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=17, trainIdx=319, imgIdx=0, distance=76.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=18, trainIdx=290, imgIdx=0, distance=65.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=19, trainIdx=256, imgIdx=0, distance=32.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=20, trainIdx=164, imgIdx=0, distance=58.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=21, trainIdx=34, imgIdx=0, distance=53.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=22, trainIdx=382, imgIdx=0, distance=69.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=23, trainIdx=211, imgIdx=0, distance=41.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=24, trainIdx=18, imgIdx=0, distance=79.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=25, trainIdx=256, imgIdx=0, distance=68.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=26, trainIdx=493, imgIdx=0, distance=67.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=27, trainIdx=119, imgIdx=0, distance=78.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=28, trainIdx=7, imgIdx=0, distance=51.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=29, trainIdx=87, imgIdx=0, distance=61.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=30, trainIdx=12, imgIdx=0, distance=24.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=31, trainIdx=458, imgIdx=0, distance=71.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=32, trainIdx=115, imgIdx=0, distance=77.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=33, trainIdx=92, imgIdx=0, distance=63.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=34, trainIdx=114, imgIdx=0, distance=54.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=35, trainIdx=461, imgIdx=0, distance=80.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=36, trainIdx=474, imgIdx=0, distance=69.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=37, trainIdx=398, imgIdx=0, distance=68.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=38, trainIdx=356, imgIdx=0, distance=76.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=39, trainIdx=428, imgIdx=0, distance=72.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=40, trainIdx=121, imgIdx=0, distance=64.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=41, trainIdx=494, imgIdx=0, distance=77.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=42, trainIdx=7, imgIdx=0, distance=63.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=43, trainIdx=238, imgIdx=0, distance=61.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=44, trainIdx=479, imgIdx=0, distance=50.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=45, trainIdx=367, imgIdx=0, distance=67.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=47, trainIdx=248, imgIdx=0, distance=56.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=48, trainIdx=424, imgIdx=0, distance=69.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=49, trainIdx=20, imgIdx=0, distance=59.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=50, trainIdx=12, imgIdx=0, distance=44.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=51, trainIdx=256, imgIdx=0, distance=59.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=52, trainIdx=486, imgIdx=0, distance=74.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=53, trainIdx=422, imgIdx=0, distance=75.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=54, trainIdx=479, imgIdx=0, distance=52.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=55, trainIdx=298, imgIdx=0, distance=37.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=56, trainIdx=279, imgIdx=0, distance=73.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=57, trainIdx=223, imgIdx=0, distance=71.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=58, trainIdx=405, imgIdx=0, distance=74.0]

Now the two images are identical so basically how i identify the similar images

What to do with DMatch value ?

I have this code for image matching using ORB

  FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB);
    DescriptorExtractor descriptor = DescriptorExtractor.create(DescriptorExtractor.ORB);;
    DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING);
    File root = Environment.getExternalStorageDirectory();
    File file = new File( root, "nano1.jpg");
    File file2 = new File( root, "nano2.jpg");
    Log.d(LOG_TAG, "File " + file.exists() + " & "+ file2.exists() + " " + root.getAbsolutePath());

    //first image
    Mat img1 = Highgui.imread(file.getAbsolutePath());
    Mat descriptors1 = new Mat();
    MatOfKeyPoint keypoints1 = new MatOfKeyPoint();

    detector.detect(img1, keypoints1);
    descriptor.compute(img1, keypoints1, descriptors1);

    //second image
    Mat img2 = Highgui.imread(file2.getAbsolutePath());
    Mat descriptors2 = new Mat();
    MatOfKeyPoint keypoints2 = new MatOfKeyPoint();

    detector.detect(img2, keypoints2);
    descriptor.compute(img2, keypoints2, descriptors2);


    //matcher should include 2 different image's descriptors
    MatOfDMatch  matches = new MatOfDMatch();             
    matcher.match(descriptors1,descriptors2,matches);
    Log.d(LOG_TAG, "size " + matches.size());

    //feature and connection colors
    Scalar RED = new Scalar(255,0,0);
    Scalar GREEN = new Scalar(0,255,0);
    //output image
    Mat outputImg = new Mat();
    MatOfByte drawnMatches = new MatOfByte();
    //this will draw all matches, works fine
    Features2d.drawMatches(img1, keypoints1, img2, keypoints2, matches, 
            outputImg, GREEN, RED,  drawnMatches, Features2d.NOT_DRAW_SINGLE_POINTS);
    int DIST_LIMIT = 80;
    List<DMatch> matchList = matches.toList();
    List<DMatch> matches_final = new ArrayList<DMatch>();
    for(int i=0; i<matchList.size(); i++){
        if(matchList.get(i).distance <= DIST_LIMIT){
            matches_final.add(matches.toList().get(i));
        }
    }

    MatOfDMatch matches_final_mat = new MatOfDMatch();
    matches_final_mat.fromList(matches_final);
    for(int i=0; i< matches_final.size(); i++){
        Log.d(LOG_TAG,""+ matches_final.get(i));
    }

And in the matches I get

08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=0, trainIdx=8, imgIdx=0, distance=63.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=1, trainIdx=81, imgIdx=0, distance=78.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=2, trainIdx=162, imgIdx=0, distance=73.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=3, trainIdx=189, imgIdx=0, distance=75.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=4, trainIdx=88, imgIdx=0, distance=77.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=5, trainIdx=89, imgIdx=0, distance=60.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=6, trainIdx=81, imgIdx=0, distance=78.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=7, trainIdx=68, imgIdx=0, distance=57.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=8, trainIdx=298, imgIdx=0, distance=48.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=9, trainIdx=12, imgIdx=0, distance=39.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=10, trainIdx=479, imgIdx=0, distance=66.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=11, trainIdx=480, imgIdx=0, distance=63.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=12, trainIdx=125, imgIdx=0, distance=56.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=13, trainIdx=298, imgIdx=0, distance=71.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=14, trainIdx=37, imgIdx=0, distance=72.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=15, trainIdx=174, imgIdx=0, distance=74.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=16, trainIdx=328, imgIdx=0, distance=79.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=17, trainIdx=319, imgIdx=0, distance=76.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=18, trainIdx=290, imgIdx=0, distance=65.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=19, trainIdx=256, imgIdx=0, distance=32.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=20, trainIdx=164, imgIdx=0, distance=58.0]
08-08 14:59:29.569: D/FdActivity(9001): DMatch [queryIdx=21, trainIdx=34, imgIdx=0, distance=53.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=22, trainIdx=382, imgIdx=0, distance=69.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=23, trainIdx=211, imgIdx=0, distance=41.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=24, trainIdx=18, imgIdx=0, distance=79.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=25, trainIdx=256, imgIdx=0, distance=68.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=26, trainIdx=493, imgIdx=0, distance=67.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=27, trainIdx=119, imgIdx=0, distance=78.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=28, trainIdx=7, imgIdx=0, distance=51.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=29, trainIdx=87, imgIdx=0, distance=61.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=30, trainIdx=12, imgIdx=0, distance=24.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=31, trainIdx=458, imgIdx=0, distance=71.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=32, trainIdx=115, imgIdx=0, distance=77.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=33, trainIdx=92, imgIdx=0, distance=63.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=34, trainIdx=114, imgIdx=0, distance=54.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=35, trainIdx=461, imgIdx=0, distance=80.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=36, trainIdx=474, imgIdx=0, distance=69.0]
08-08 14:59:29.579: D/FdActivity(9001): DMatch [queryIdx=37, trainIdx=398, imgIdx=0, distance=68.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=38, trainIdx=356, imgIdx=0, distance=76.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=39, trainIdx=428, imgIdx=0, distance=72.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=40, trainIdx=121, imgIdx=0, distance=64.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=41, trainIdx=494, imgIdx=0, distance=77.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=42, trainIdx=7, imgIdx=0, distance=63.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=43, trainIdx=238, imgIdx=0, distance=61.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=44, trainIdx=479, imgIdx=0, distance=50.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=45, trainIdx=367, imgIdx=0, distance=67.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=47, trainIdx=248, imgIdx=0, distance=56.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=48, trainIdx=424, imgIdx=0, distance=69.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=49, trainIdx=20, imgIdx=0, distance=59.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=50, trainIdx=12, imgIdx=0, distance=44.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=51, trainIdx=256, imgIdx=0, distance=59.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=52, trainIdx=486, imgIdx=0, distance=74.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=53, trainIdx=422, imgIdx=0, distance=75.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=54, trainIdx=479, imgIdx=0, distance=52.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=55, trainIdx=298, imgIdx=0, distance=37.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=56, trainIdx=279, imgIdx=0, distance=73.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=57, trainIdx=223, imgIdx=0, distance=71.0]
08-08 14:59:29.589: D/FdActivity(9001): DMatch [queryIdx=58, trainIdx=405, imgIdx=0, distance=74.0]

Now how can i identify the similar imagesimages ?