在没有红外滤光片的情况下正确拍摄图像的颜色值

信息处理 图像处理 颜色
2022-02-09 10:09:57

我有一个Raspberry Pi NoIR 相机我想在白天在光线充足的房间里拍照。

不幸的是,图片上的颜色看起来不像普通相机所期望的那样。我猜原因是:

(NoIR = 无红外线。)这意味着您在白天拍摄的照片看起来非常好奇,但它使您能够通过红外线照明在黑暗中看到。

这篇文章指出,您只能在白天通过使用额外的红外滤光片或使用“普通”相机来解决这个问题。

所以图片似乎缺少任何绿色值,加上一些黑色值出现红色/紫色。

在此处输入图像描述

我可以以编程方式或使用 gimp 将过滤器应用于图像,我想知道如何处理这样的任务?这可以通过一些简单的色彩校正算法来解决吗?甚至可以在不使用额外的“硬件”红外滤镜的情况下恢复这种效果吗?

提前致谢

3个回答

不幸的是,目前还没有任何已知的信号处理方法可以提供您想要的。相反,您必须使用硬件光学 IR 滤光片来阻止传入的 IR 波,然后再进入您的传感器。

光学图像是由传感器像素捕获的强度值阵列,这些像素在曝光期间被入射电磁波照亮。在捕获过程中,静态图像采样是在 2D 传感器表面上执行的,这与捕获传入声压波基于时间的变化的音频采样不同。

现在静态图像采样没有捕捉到入射电磁波的时间变化。所以那些像素阵列只代表了光照强度的空间分布I(x,y)穿过传感器表面,通过聚焦透镜系统在其上形成图像。因此,光的波长的时间属性在样本中没有体现出来,并且不能在以后进行处理以进行修改。

请注意,相机系统还沿时间(时间)维度对波进行采样,即电影;但是它通常最大每秒大约几百帧。给定可见光谱所需的带宽关于1014Hz([400-700] nm 的可见光,加上红外光谱到至少 1000 nm 的近红外),这将需要一个大约为1014赫兹。如此高的数据速率对于典型成像设备的商业应用是不实用的。

因此,对于您的 Sony NoIR 摄像头,入射电磁波的时间光谱信息不会被捕获,也不会由图像像素表示,因此无法通过任何进一步的方式进行处理。

因此,您应该在相机传感器或镜头前物理放置一个 IR 阻挡滤光片。带有内置摄像头的旧 GSM 手机可能包含红外滤光片..?

可以重新训练设计用于对水下图像进行颜色校正的 CNN,但使用 IR-cut/No IR-cut 图像对进行训练。理想情况下,这些对应该来自同一个摄像机和激活和停用 IR-cut 的相同场景,或者通过在图像之间手动引入 IR-cut 过滤器。请注意每个图像对之间主题或多或少相同的重要性。

这是一种用于水下颜色校正的 CNN。我不确定这是否代表了最先进的技术,但它有一个培训程序并且有据可查。

水下GAN(UGAN)

q^r,q^g,q^g是在每个红色、绿色和蓝色像素处收集的估计光子数。

大约,使用 IR 截止滤光片,q^r=krqr,q^g=kgqg,q^b=kbqb, 在哪里kx是像素在其预期颜色中的增益,并且qx是撞击像素的光子数。不仅是三个方程和三个未知数,而且是三个未知数中的三个简单方程。

取出切割过滤器,你得到

q^r=krqr+kirqiq^g=kgqg+kigqiq^b=kbqb+kibqi

现在你有了三个方程 但即使你不想知道qi第四个未知数。由于材料的变化和不同的照明水平,你无法知道什么qi是针对每个像素的,因此您永远无法真正解决您想要的三个未知数

您最好的选择是带有滤光片的相机。其次是在你的相机上贴上一个滤光片。遥远的第三个是在事后尝试纠正 IR,但从这里很难到达那里。

(作为一个有趣的科学实验,将您看到的颜色与仅由漫射阳光照亮的同一场景进行比较,以及用 LED 灯照亮部分场景的场景 - LED 灯 + 没有阳光应该会给您带来相当自然的颜色,因为到没有近红外。阳光(或白炽灯)应该给你很多近红外,和很多颜色失真)。