【问题标题】:How to correct uneven illumination in images using MATLAB?如何使用 MATLAB 校正图像中的不均匀照明?
【发布时间】:2023-03-31 15:22:01
【问题描述】:

我正在使用 MATLAB 在视频中执行特征检测。视频不同部分的光照条件不同,导致在将 RGB 图像转换为二进制图像时,某些部分会被忽略。

视频特定部分的照明条件也会随着视频的播放而变化。

您能否建议在 MATLAB 中平衡帧和视频的照明的最佳方法?

【问题讨论】:

标签: matlab image-processing computer-vision lighting


【解决方案1】:

您有两种选择,具体取决于您要检测的功能以及您要对视频执行的操作。

  1. 忽略图像的照明,因为(正如您所得出的结论)这包含对您的特征检测无用甚至误导的信息。
  2. 尝试修复照明不均匀(这是您要求的)。

1) 很容易做到:将您的图像转换为colourspace,在单独的通道中分离照明,例如:HSV(忽略 V 通道)Lab(忽略 L)YUV(忽略 Y) 并在剩余的两个通道上执行特征检测。在这些 HSV 中是最好的(正如 Yves Daoust 在 cmets 中指出的那样),YUV 和 Lab 在 UV/ab 通道中留下了一些照明信息。根据我的经验,最后两个也可以根据您的情况使用,但 HSV 是最好的。

2) 更难。我首先将图像转换为 HSV。然后你只对 V 通道进行修复:

  • gaussian blur 应用于具有非常大的 sigma 值的 V 通道图像。这为您提供了照明的局部平均值。计算此图像的全局平均 V 值(这是一个数字)。然后从每个像素的实际 V 值中减去局部平均值并添加全局平均值。您现在已经完成了非常粗略的照明均衡。您可以稍微调整一下 sigma 的值,以找到最适合的值。
  • 如果失败,请查看选项zenopy gives in his answer.

无论您选择哪种方法,我都建议您专注于您想要做的事情(即检测特征)并选择中间步骤,例如足以满足您需求的步骤。赶快尝试一下,看看这对您的特征检测有何帮助,

【讨论】:

  • 忽略 Lab 的 L 或 YUV 的 Y 不会那么好;这些量是光照的递增函数(不是齐次量)。饱和度/值对更合适,因为这些坐标基于 RGB 分量的比率,因此对照明不敏感。也可以使用 xyz(不是 XYZ)中的任何对。
  • 消除照明变化不是原始海报问题的重点吗?因此忽略 L/Y 或 V 是一个足够好的方便快捷方式?
  • 没有。 Lab 的坐标 -ab 和 YUV 的坐标 -UV 仍然包含光照信息(对于暗图像它们较小,对于亮图像它们较大;-ab 与强度的三次根成正比,-UV 与强度成正比)。 HSV 和 xyz 的 HS- 与光照无关。
  • 啊,是的,你是对的。我是马虎和健忘。以我的经验,一个丢弃的 L 或 Y 通道通常为简单的情况提供足够的照明不敏感。这很方便,尤其是在您通常可以直接从相机获取的 YUV 的情况下。
  • jilles,很抱歉,我不得不最后一次解释这个问题。 -YUV 的UV 根本不提供照明不敏感。它们只是 RGB 的线性组合。如果将光量加倍,则 R、G、B 和 Y、U 和 V 加倍。 Lab 中的 -ab 情况更奇特,因为它是强度的 1/3 次方。如果你将强度加倍,a 和 b 将乘以 2 = 1.26 的立方根。相反,当你加倍强度时,HSV 的 H 和 S 绝对保持不变。只有 RATIOS 涉及 R、G、B 组件时,您才会变得不敏感。
【解决方案2】:

这不是一件小事task,但有很多方法可以尝试克服它。我可以建议您从实现retinex 算法开始,或者使用其他的实现:http://www.cs.sfu.ca/~colour/publications/IST-2000/

基本思想是Luminance(观察到的图像强度)= Illumination(入射光)x Reflectance(反射百分比):

L(x,y) = I(x,y) x R(x,y) 

而且你对 R 部分感兴趣。

要处理每一帧的彩色图像,首先移动到 hsv 颜色空间并在 v(值)部分上操作 retinex。

希望这是有道理的。

【讨论】:

【解决方案3】:

除了单个图像的照明不均匀(由 Retinex 或高通滤波解决)之外,您还可以考虑视频中的自动增益校正。

这个想法是通过对颜色分量应用线性变换来归一化图像强度,这样所有三个通道的平均值和标准偏差组合成为预定义值(平均值 -> 128,标准偏差 -> 64 )。

直方图均衡将具有“标准化”强度级别的类似效果。

不幸的是,大的场景变化会影响这个过程,以至于背景的强度不会像你期望的那样保持不变。

【讨论】:

    猜你喜欢
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2015-11-16
    • 2019-12-18
    • 2021-01-04
    • 2014-11-02
    • 1970-01-01
    相关资源
    最近更新 更多