SURF keypoints?

asked 2015-05-20 07:08:00 -0600

dmngu9 gravatar image

This might be a dumb question. In the tutorial, if i have 2 same pattern but with different colors, Does that affect the keypoint and matching in SURF?

edit retag flag offensive close merge delete

Comments

Good question, have you tested it?

thdrksdfthmn gravatar imagethdrksdfthmn ( 2015-05-20 09:28:34 -0600 )edit

there are variants of SURF, that respect colour, but opencv's current impl only looks at grayscale intensity.

berak gravatar imageberak ( 2015-05-20 13:57:44 -0600 )edit

im using rgb image? sometimes it works, sometimes it doesnt

dmngu9 gravatar imagedmngu9 ( 2015-05-20 23:27:20 -0600 )edit

That means that the difference between the colors converted to grayscale is big enough to consider it as a SURF feature...

thdrksdfthmn gravatar imagethdrksdfthmn ( 2015-05-21 02:22:12 -0600 )edit

can i ask you about point2f? When i declare cvPoint(200,100), it means the point is at rows 200th and column 100th right? But sometimes people declare as double i =100.09, double j = 300.5 and cvPoint(i,j)? What does Point2f means?

I thought the coordinates of a point is based on rows and columns of the image. And decimal values should not exist

dmngu9 gravatar imagedmngu9 ( 2015-05-21 05:19:04 -0600 )edit

cv::Point_ is a template, cv::Point is the int specialization of the template, while the cv::Point2f is the specialization for float. I suppose that the keypoints may be located between the pixels (I couldn't find an example, but imagine a simple case: 2 pixels, one black and one white, the center is between them, and if the image is rotated, then the center is moving to [1.3, 0.9])

thdrksdfthmn gravatar imagethdrksdfthmn ( 2015-05-21 06:20:07 -0600 )edit
1

@dmngu9: Careful, first x, then y, i.e., Point a(4,6) means a.x has value 4 and a.y has value 6. x typically refers to the columns and y to the rows (i.e. the other way around you wanted to use it!).

Guanta gravatar imageGuanta ( 2015-05-24 11:51:07 -0600 )edit