1.cv2.createAlignMTB() 主要是计算2张图像的位移,假设位移移动不大

而且计算的是全局的位移

参考下面的链接:
https://blog.csdn.net/LuohenYJ/article/details/89712234
https://blog.csdn.net/LuohenYJ/article/details/89840655
https://docs.opencv.org/4.x/d2/df0/tutorial_py_hdr.html
方便理解

使用代码:

print("Aligning images ... ")
alignMTB = cv2.createAlignMTB()
alignMTB.process(img_list, img_list)

2.多曝光图像的aline算法:median thresold bitmap原理讲解

https://blog.csdn.net/weixin_44735951/article/details/88941012

在这里插入图片描述

  1. 转换为灰度图或者利用G通道

  2. 利用均值或者中值,作为阈值得到二值图像。之所以不用sober,canny是因为不同曝光下检测到的边缘一致性比较低。

  3. 计算均值和中值的时候,对于严重过曝或者过暗的图像,可能因为大量的255,0像素导致 计算的均值 接近255和0。一个更鲁棒的方法计算均值或者中值是 排除 250以上或者5以下的像素

  4. 接下来就是通过阈值图像进行异或运算,这样差异为1。那么我们通过遍历其中一个图像的位移dx,dy,计算 error_sum, 寻找最恰到的dx,dy

  5. 考虑到dx,dy可能太大,利用金字塔减少计算量,从最后一层开始,每次搜索范围就是 [-1,1]很小
    在这里插入图片描述

  6. 异或运算计算差异的时候还有一个问题是 在均值附近的一些区域,两张不同曝光的图像的二值图可能被引入一些噪声,此时可以计算图像的 exclusion mask,标记,在均值[-4,4]的区域。 这两张曝光图的exclusion mask 和 xor异或运算得到差异图 再进行与运算,得到更清晰的差异。
    在这里插入图片描述

3.图像拼接算法stitch

http://www.s1nh.org/post/A-survey-on-image-mosaicing-techniques/

如图所示,图像拼接分为四个步骤:图像匹配(registration)、重投影(reprojection)、缝合(stitching)和融合(blending)。

stitch中的配准 主要是不同视角的图像重合区域不会太大,主要是根据特征点求转换矩阵。

而视频前后帧这种配准,小位移,重合区域多,主要利用光流。

还有特殊的图像就是多帧曝光,小位移,重合区域多,但是亮度差异有点大。

4.多曝光融合工具箱

https://github.com/Galaxies99/AlignHDRToolkit

介绍了一些配准方法。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部