
Moving on to feature correspondence, I implemented NCC (Normalized Cross-Correlation). Basically, NCC compares the intensity of the pixels in a window around each pair of feature points in two images. Each NCC "score" is thresholded and the point with the highest NCC score is chosen as the match. This method is usually used to establish the displacement of the camera. The matches can then be passed on to RANSAC to establish additional matches.
Here's an example of NCC working correctly. The first image contains the feature point (red circle) being matched in the second image (white circle).

Here's an example of an NCC mismatch. I used green circles to indicate the thresholded NCC matches and white circles to indicate the maximum. Even though the correct point passes the threshold, it does not have the maximum NCC score.

Unfortunately, most of the time NCC did not find the correct match or the correct match did not score high enough to even pass the threshold for my globe and rubik's cube testsets. A temporary fix would be to manually match a set of features (have the user click on them) , but this would also be very time consuming.
1 comment:
It looks like you are learning/doing some cool stuff. I came upon your blog during my random sojourn through the "next blog" button and wanted to let you know that I visited. I am also interested in knowing why you blog.
Post a Comment