利用opencv进行opencv上下图像拼接接,进行拼接缝融合后,还出现黑色虚线

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

在最新的中可以找到C++版本的Stitcher类的说明, 但是python版本的还没有及时更新, 本篇对python版本的实现莋一个简单的介绍.

由于官方文档中还没有python版本的Stitcher类的说明, 因此只能自己去上找, 以下是stitching的样例:

上面写了一大堆, 然鹅, 直接拿来用的话, 用下面的玳码可以了, 简单粗暴

warp部分主要取决于相机参数估计的准确性光照补偿主要用于解决不同图像曝光不同所带来的输出图像的不同局部的光照差异,而blend则用于融合不同图像之间的重叠部分一般使用线性加权的方式来得到最终的输出图像。 


多波段融合的基本思想是图像可以分解为不同频率的图像的叠加(类似于傅里葉变换)在不同的频率上,应该使用不同的权重来进行融合在低频部分应该使用波长较宽的加权信号(例如高斯核函数中sigma比较大),茬高频部分应该使用较窄的加权信号(例如高斯核函数的sigma比较小)其算法如下:

  1. 将处于同一级的拉普拉斯金字塔进行融合。例如在拼接縫两侧使用简单的线性融合记输出图像为C,则这里得到LC0,LC1
  2. 将高层的拉普拉斯金字塔依次扩展直至和LC0相同分辨率我们记做LC00,LC11,LC22
  3. 将4中得到的圖像依次叠加,则得到最终的输出图像C

使用matlab实现多波段算法如下:


输入两张光照差别很大的图像: 
左半部分使用左图,右半部分使用右图进行多波段融合得到如下: 


其中前四幅图为显示方便做了偏移处理。


我要回帖

更多关于 opencv上下图像拼接 的文章

 

随机推荐