几张不同曝光时间的图像序列,从3ms到800ms
欠曝
一般
过曝
代码
import cv2 as cv
import numpy as np
# 将曝光图像序列加载到列表中
img_fn = ["0.png", "1.png", "2.png","3.png", "4.png","5.png","6.png","7.png"]
img_list = [cv.imread(fn) for fn in img_fn]
# 将曝光合成HDR图像
merge_mertens = cv.createMergeMertens()
res_mertens = merge_mertens.process(img_list)
# 转化数据类型为8-bit
res_mertens_8bit = np.clip(res_mertens*255, 0, 255).astype('uint8')
cv.namedWindow(u"fusion_mertens",0)#可以拖动窗口大小
cv.resizeWindow(u"fusion_mertens", 640, 480)#设置窗口大小
cv.moveWindow(u"fusion_mertens",1200,500)#设置窗口位置
cv.imshow("fusion_mertens", res_mertens_8bit)
cv.waitKey(0)
合成效果
共有3种方式,用的mertens方式
其他的debevec和robertson方式一方面报错另一方面显示出来的效果也属实8行