0

with inspire of this tutorial: Feature Matching, I'm trying to do template matching and clustering of image set I have.

The dataset I have in most of it, the image is straight ( maybe 10-degree rotate max ) I would like to use this information to have better matches, I have noticed that sometimes I have a false match that when I display the match I can see the match vectors are all in different angles (not straight line ) how can I check if the match it's got is a straight line or rotate?

Thanks for the help

Michael
  • 149
  • 2
  • 11

2 Answers2

0

I'm not sure to understand everything, what do you mean by straight image?

And for the matches, when you compare two images, you will probably have many features that correspond between those two images, and you cannot ensure that they all describe a straight line, you can just assume having kind of straight lines when you try to find an object in an image as in the example, but this is just a representation...

If you only want to do clustering, I advise you to compare features only without doing some matching, you'll probably find a cluster of common features for some images that you can regroup

Fou
  • 161
  • 1
  • 9
  • in [1](http://cuijinqiang.blogspot.co.il/2013/05/opencv-surf-feature-matching.html) you can see an example of two images with not straight line I'm looking more for understanding the results I got from bf.match(d1, d2) and how to analyze the matched key points – Michael Dec 07 '17 at 10:04
  • Ok I understand more now! I suggest you to compute a mean direction vector and to remove points having an angle greater that the given threshold of 10° – Fou Dec 07 '17 at 10:16
0

So ORB and SIFT try to match features in a pair of images. The reason why you have mismatching is because some of the features are too similar and the system mistakes them as a match.

You will need to increase your detector's threshold the matcher's acceptable matches.

Hayley
  • 29
  • 4