iToF相机可以输出IR图像和深度图。由于深度图和IR图像来自同一个传感器输出,这两幅图像在时间上完全对齐,并且在空间上逐像素对齐。相机传感器将像素的光强度转换为等效的数字值,这个数值与像素的光强度成正比,因此具有线性关系。但是,人眼感知图像的方式是光强度的对数函数,而不是线性函数。如果传感器的图像直接显示在显示设备上,由于传感器和人眼感知的差异,场景会显得不自然。如何调整IR图像补偿这种差异的呢?在本文中,让我们深入研究一下。
Table of Contents
IR图像增益(Gain)
增益可以改变图像的亮度,用于控制相机传感器信号的放大,包括背景噪声。关系如下:
设置不同增益对IR图像的影响如下:
IR图像伽马值(Gamma)
在相机中,Gamma指的是将相机记录的线性值编码为非线性关系(或反向解码过程)。Gamma code的开发是为了补偿阴极射线管(CRT)显示器的亮度特性。关系如下:
IR图像伽马矫正(Gamma Correction)
伽马矫正是一种机器视觉技术,用于纠正数字图像读取与人眼感知之间的差异,主要影响中间色调。伽马矫正是指在图像显示之前应用显示器的反伽马曲线以获得最终输出颜色。我们将输出的每个线性色彩乘以这个反伽马曲线,平衡所有颜色,使得结果颜色变得线性。在处理反射表面时,可能会出现反射光斑,而光斑周围的环境对人眼来说不可见,使用伽马矫正可以在一定程度上抵消这种效果,实现过程如下:
设置不同校正值对图像的影响如下:
软件SDK 中Gain和 Gamma Correction的API
例程参考:
BaseSDK/Windows/Samples/Base/NYX650/DeviceParamSetGet。
获取Gain相关API如下:
//设置设备的增益值
ScStatus scSetIRGMMGain(ScDeviceHandle device, uint8_t gmmgain);
//获取当前设备的增益值设置
ScStatus scGetIRGMMGain(ScDeviceHandle device, uint8_t* pGmmgain);
例程参考:
BaseSDK/Windows/Samples/Base/NYX650/IRGMMCorrectionSetGet。
获取Gamma Correction相关API如下:
//设置设备的伽马矫正值
ScStatus scSetIRGMMCorrection(ScDeviceHandle device, const ScIRGMMCorrectionParams params);
//获取当前设备的伽马矫正值设置
ScStatus scGetIRGMMCorrection(ScDeviceHandle device, ScIRGMMCorrectionParams* pParams);