Stitching aerial photographs

I am trying to stitch 2 aerial images together with a very small overlap, probably <500 px overlap. These images have a resolution of 3600x2100. I am using the OpenCV library to accomplish this task.

Here is my approach:

1. Find feature points and match points between the two images.
2. Find homography between two images
3. Warp one of the images using the homgraphy
4. Stitch the two images

Now I'm trying to get this to work with two images. I am having problems with step 3 and possibly with step 2. I used findHomography()from the OpenCV library to capture my homography between two images. Then I named warpPerspective()on one of my images using homography.

The problem with the approach is that the converted image is distorted. Also, it seems that only a certain part of the image is transformed. I do not know why this does not transform the whole image.

Can someone give me some tips on how I should approach this issue?
thank

+5
source share
3 answers

In the results that you published, I see that you have at least one mismatch of key points. If you use findHomography(src, dst, 0), it will ruin your homography. Use instead findHomography(src, dst, CV_RANSAC).

You can also use warpAffineinstead warpPerspective.

. , , , . , . , :

  • ( ) x_avg
  • <x_avg, x_match>
  • discard x_match,
+3

, , . , , SIFT SURF . ( ).

, : OpenCV -

+1

, , , - . , . , RANSAC FindHomography() OpenCV ( CV_RANSAC ), - , , . , , FindHomography, 4 .

0
source

All Articles