0

I would like to develop, for academic purpouse, an object recognition system that uses (among other things) edges or corners matching.

Basically I extract corner information on my model image then i try to find this object inside a query image using corner information.

Do you have any hint within OpenCV?

Ps. I know I could use SIFT/SURF/ORB but in this case i need to match corner or edges

  • 1
    That's what SIFT's doing, matching keypoints (i.e. corners, rather than edges, edges are not a good options for matching purposes by the way) – CTZStef Jul 28 '12 at 01:07

1 Answers1

2

What about Hough transform (contour matching)? Look at matchShapes function.

ArtemStorozhuk
  • 8,715
  • 4
  • 35
  • 53
  • Wow interesting, will have a look. Do I need to do the hough trasform first or can I use for example a Canny Edge detector for the shape? – dynamic Jul 28 '12 at 10:15
  • And are you aware of any c++ code example of matchShapes ? I can't find any in samples folder – dynamic Jul 28 '12 at 10:33
  • @yes123 You have to findContours of each contour (of course before this you have to somehow convert image to 1bit) and after this use matchShapes. – ArtemStorozhuk Jul 28 '12 at 10:33
  • @yes123 If I'm not mistaken first two parameters are `vector`. Try it. – ArtemStorozhuk Jul 28 '12 at 10:56
  • Hu transform for contours matching? Very interesting. Could you give some references? – krzych Jul 31 '12 at 18:13
  • @krzych MatchShapes actually uses HoughTransform... Read docs. – ArtemStorozhuk Jul 31 '12 at 19:12
  • 1
    Can you reference? I see that it uses Hu invariant moments. Also seen implementation, and no mark of Hough transform. – krzych Jul 31 '12 at 19:14
  • @krzych actually Hough transform uses for circles/squares/lines/etc detection so you can match shapes using this transform. Sorry, no proof link. – ArtemStorozhuk Jul 31 '12 at 19:21
  • I think you misunderstand something. Matching shapes is determining wheather two shapes are the same or not. And Hu invariant moments are used to it. Hough transform is used to detect circles/lines etc. Detection is not matching. – krzych Jul 31 '12 at 19:23