说我有无人驾驶小飞机拍摄的2张航拍照片(实际上我有一些航拍视频......很多照片)。图像来自相同的区域,但来自不同的角度和高度。关于如何将它们匹配在一起的任何想法?
我使用SIFT
从2张图片中获取匹配点,并获得了大约250个匹配的pary.Then我使用RANSAC
将数字减少到大约150个匹配点。但我不是没有如何将一个图像扭曲到另一个图像?
目前,我在cvWarpPerspective()
中使用cvWarpImage()
和OpenCV
,但cvWarpPerspective()
只需要4对点进行图片注册。结果并不完全准确。而且我还没有使用超过146分。
我该怎么办?
答案 0 :(得分:0)
使用OpenCV的findHomography
函数查找Homography矩阵。
Mat H;
H = findHomography(homographyPoints1, homographyPoints2, CV_LMEDS);
warpPerspective(img1, oimg1, H, img1.size(), INTER_NEAREST);
扭曲两个图像,您将获得两个输出图像。你可以在这里使用全部150分。在homographyPoints1和homographyPoints2(或其他一些向量)中推送匹配的150个关键点并使用CV_LMEDS
。 CV_RANSAC
将随机选择4到8个点并计算可能不准确的单应性。