我正在使用典型的检测器-描述符-匹配器组合来检测和匹配一对图像的特征,然后使用findHomography
生成变换矩阵。
在此之后,我希望将两个图像重叠(第二个图像 (imgTrain
) 在第一个图像 (imgQuery
) 上),因此我使用变换矩阵对第二个图像进行了变形:
cv::Mat imgQuery, imgTrain;
...
TRANSFORMATION_MATRIX = cv::findHomography(...)
...
cv::Mat imgTrainWarped;
cv::warpPerspective(imgTrain, imgTrainWarped, TRANSFORMATION_MATRIX, imgTrain.size());
从这里开始,我不知道如何制作一个包含原始
imgQuery
和变形的imgTrainWarped
的图像。考虑两种情况:
1)最终图像的大小与imgQuery
的大小相同。
2)最终图像的大小足够大,可以容纳imgQuery
和imgTrainWarped
,因为它们只有部分重叠,而不是完全重叠。我理解第二种情况可能会在图像周围出现黑色/空白区域。
cv::imwrite
函数将imgTrainWarped
和imgQuery
保存并分享给我吗? - MickaimgQuery
而不是imgTrain
?因为在扭曲图像(复制之前),imgQuery
的部分是可见的?!我的意思是,您发布的imgTrainWarped
看起来像您发布的imgQuery
向上平移。相反,它应该看起来像imgTrain
向上平移... - Micka