5

I am trying to use OpenCV to match images like these:

img1 img2 http://img849.imageshack.us/img849/8177/clearz.jpg

And I need to find the best intersection of them.

I tried using SURFDetector and matching using BruteforceMatcher, but finds descriptors not equal.

Tell me please the correct way to solve problem.

Glorfindel
  • 21,988
  • 13
  • 81
  • 109
Famos
  • 261
  • 4
  • 13

2 Answers2

5

Did you have a look to this code example? Here you can see how to find an object using SURF descriptors. Go to main(), and check the code step by step. You can try it with your images and it should work. Other approaches use SIFT and FAST detectors.

Good luck. If you don't get results keep trying, at the beggining it is hard.

Jav_Rock
  • 22,059
  • 20
  • 123
  • 164
  • 1
    I think using SIFT might give good results. You can check my [answer to a different question](http://stackoverflow.com/a/8644769/884412) for some more info about SIFT and links to SIFT implementations – penelope Jan 17 '12 at 14:32
  • 1
    Sure, I also use SIFT for some aplications. – Jav_Rock Jan 17 '12 at 15:05
  • I already try this examples, and another examples from "Learning OpenCV" and "OpenCV 2 Computer Vision Application Programming Cookbook", but i cannot find good parameters for left image, for right i find grid and all interest point. – Famos Jan 17 '12 at 17:01
2

You might want to apply a median filter first, to remove the noise. This will probably lead to better results for the matching, because the left image is pretty noisy.

It will also smooth the image a bit, which is good, because it leaves out the details, and you are looking for larger structures.

You will have to try out different sizes of the filter for the best result.

Geerten
  • 1,027
  • 1
  • 9
  • 22