1 | initial version |
Surf is looking for eye-catching points. This occurs inter alia by the contrast between the umligenden pixels. I think your buildings have very few of these points.
Here are some Tips:
Maybe you can try a Sobel and add it to the sharpened Images. I think that would give you more matching Keypoints at the roof area and on the buildings.
You should also use a dynamic threshold for matching!. Like:
if((matches2[i][0].distance < 0.56*(matches2[i][1].distance)) && ((int) matches2[i].size()<=2 && (int) matches2[i].size()>0))
You could also try a KNN-Matcher instead of a BF-Matcher.