您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python,OpenCV —对齐并覆盖多个图像,一个接一个

Python,OpenCV —对齐并覆盖多个图像,一个接一个

单应组成,所以如果你有间单应img1img2之间,img2img3那么这两个单应性的组合物提供之间的单应img1img3

您的尺寸不正确,因为您正试图匹配img3包含img1和的拼接图像img2。但是您不需要这样做。在每对连续的图像之间都有所有的单应性之前,请不要缝合它们。然后,您可以采用以下两种方式之一进行操作:从背面或正面进行工作。我将使用h31来指代扭曲img3为的坐标的单应性img1

从前面(伪代码):

warp img2 into coordinates of img1 with h21
warp img3 into coordinates of img1 with h31 = h32 @ h21
warp img4 into coordinates of img1 with h41 = h43 @ h31
...
stitch/blend images together

@是矩阵乘法运算符,它将实现我们的单应性构图(请注意,用单应性的最后一项进行除法是最安全的,以确保它们均按相同比例缩放)。

从后面(伪代码):

...
warp prev stitched img into coordinates of img3 with h43
stitch warped stitched img with img3
warp prev stitched img into coordinates of img2 with h32
stitch warped stitched img with img2
warp prev stitched img into coordinates of img1 with h21
stitch warped stitched img with img1

这个想法是,您可以从正面开始,然后将所有内容扭曲到第一个图像坐标系中,或者从背面开始,将所有内容扭曲到上一个图像并进行绣制,然后将那个已缝制的图像扭曲到先前的图像中,然后重复。我认为第一种方法可能更容易。无论哪种情况,您都必须担心单应性估计中误差的传播,因为它们会在多个组合单应性上累积。

这是将多个图像与同形异义词混合在一起的幼稚方法。更复杂的方法是使用捆绑调整,该调整考虑了所有图像的特征点。为了获得良好的融合效果,需要进行增益补偿以消除相机的增益调整和渐晕,然后进行多波段融合以防止模糊。见布朗和Lowe的开创性的论文在这里一个光辉的榜样和免费demo软件在这里

python 2022/1/1 18:25:35 有183人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶