Flash下被摄体的对比度增强

信息处理 图片
2022-02-17 23:10:33

对于机器视觉应用,我们使用 IR 闪光灯拍摄持续时间短 (50uSec) 的单色照片。我们得到的图像质量不错,但是浅色主题(浅蓝色、浅绿色、黄色)全部丢失或变得不那么明显。

我们将这些 10 位图像转换为 8 位图像,并以已经导致问题的方式查看它们。这可能是我们可以通过非线性 10-8 位压扩来解决的问题,所以我不担心这部分。如果我在支持 10 位的显示器上查看图像,我仍然会看到它们非常非常弱。我的目标是提升他们。

在我查看它们的原始数据中,假设表面平均值为 800(漂亮的白色),这些浅色主题为 760-780 范围,因此信息在那里但不可见。(附带说明,如果我在正常光线下以非常长的曝光时间(1 毫秒)拍摄同一物体的照片,我会看到所有细节,所以闪光灯也是造成问题的原因)。

找回这些丢失信息的最佳方法是什么?我们仍然可以访问 10 位原始图像数据,我可以使用什么类型的算法来获取它们。

1个回答

您可以对源图像执行色调映射,然后将结果转换为 8 位。

全局色调映射

仅取决于像素值,即

H[x,y] = G(I[x,y])

输出图像像素 H[x,y] 只是使用色调映射算子 G 处理的输入像素值。这允许查找表保存所有可能的值(即 10 位图像中的 0 - 1023)。

局部色调映射

适用于像素值及其邻域,即

H[x,y] = G(I, x, y)

这些运算符本质上更复杂,但会在结果图像中产生更多细节。

转换

应用色调映射后,图像可以轻松转换为 8 位:

O[x,y] = H[x,y] >> 2

其中 (>> 2) 移位两位,或除以 4。

可以将转换合并到色调映射步骤中,例如,全局色调映射中查找表的条目可以这样定义:

g[i] = (log2(i + 1) * 102.3) >> 1

请注意,运算符是针对输入值范围调整为 0-1023 的对数曲线。该运算符还包含到 8 位的转换。

样品

有关维基百科的更多信息