结构光中多重曝光图像融合算法

算法参考自文章:[1] ZHANG S, YAU S. High dynamic range scanning technique[J]. Optical Engineering, 2009, 48(3): 33604.

1.基本背景

当前数字图像的动态范围(一般为0-255)远小于自然界真实场景,难以获取高质量的图像细节。应用到结构光领域,像素过暗会导致调制度过低噪声大,相位计算误差大,重建质量差;像素过饱和会导致相位计算直接错误,重建不出点云。传统的高动态范围图像关注于图像的细节显示,会对每个像素计算权重进行融合,但在结构光中直接进行应用会导致后续的相位计算发生错误,因此需要不同的方法。
结构光中多重曝光图像融合算法_第1张图片
下图使用的是4步相移公式,与Song Zhang的三步相移有所区别。
结构光中多重曝光图像融合算法_第2张图片

2.算法基本原理

采集多种不同曝光时间下的条纹图像,同一位置选取最大但不饱和的像素作为融合后图像的像素。但考虑到后续的相位计算,因此必须满足统一频率下所有条纹图像的同一位置不发生过曝光。基础流程如图所示,这里用的是三步相移,因此需要保证三张图像同一位置不发生过曝。
结构光中多重曝光图像融合算法_第3张图片

3.算法基本流程(基于opencv建议流程)

  1. 从低曝光到高曝光,循环读取单步频率所对应的条纹图像(4步即为4张,3步则为3张),以最低曝光时间的图像为初始融合图像。
  2. 将所有图像进行二值化,过曝光的置为1,未曝光的置为0
  3. 将二值化后的图像相加,将大于等于1的像素置为0,其他的置为1,即可得出掩模矩阵。
  4. 融合图像 = 当前读取条纹图像*掩模矩阵 + (1-掩模矩阵)*融合图像

算法实现较为简单,因此暂不公布实例。

你可能感兴趣的:(结构光,多重曝光融合,高动态,算法,opencv,人工智能)