关于图像动态范围的理解

动态范围:指一个系统(如图像传感器、相机或图像)能够同时记录的最亮区域(高光)与最暗区域(阴影)之间的亮度比值。它反映了系统对极端明暗差异的捕捉能力,通常以分贝(dB) 或档(stops)表示。

以下基于图像进行介绍:

1.理论动态范围

以位深为8bit的图像来说,每个通道(R/G/B)有28=256个亮度等级(0-255),下面以1表示最暗的亮度值,256表示最亮的亮度值,则有:

表示动态范围(DR)为:

DR(stops) = log2(256/1)=8

分贝(dB)表示:动态范围(DR)=20*log(最大亮度值/最小亮度值)

DR (dB) = 20 * log(256 / 1) ≈ 48dB

2.实际动态范围

实际获取图像过程中,传感器在低光照的环境下会引入噪声(如读出噪声、暗电流噪声等)。当信号强度接近噪声水平时,有效信息会被噪声淹没,导致暗部细节丢失。在这种情况下,实际动态范围会低于理论值,图像的动态范围定义为最亮有效亮度Lmax与最暗有效亮度Lmin的比值。

表示动态范围(DR)为:

DR(stops) = log2(Lmax / Lmin)

分贝(dB)表示:

DR (dB) = 20 * log(Lmax / Lmin)

参数定义:

Lmax:图像中未过曝的最亮区域亮度值(需排除纯白或饱和像素)。

Lmin:图像中高于噪声基底的最暗区域亮度值(需排除纯黑或无效像素)。

3.测量步骤

以RGB图像为例:

(1)转换图像为亮度通道

方法:将彩色图像转换为亮度通道。

对于RGB图像,使用公式:

L=0.2126×R+0.7152×G+0.0722×B

如下图:左图为RGB图像,右图为转换后的仅含有亮度信息的图像

(2)确定Lmax和Lmin

排除异常值:如设定亮度值大于或等于250为过曝,而小于或等于5为纯黑

统计有效范围:设定过曝的像素为无效像素,相对应地在有效像素中统计最大的亮度值Lmax;取纯黑像素中的中值以避免噪声干扰。

(3)计算动态范围

DR(stops) = log2(Lmax / Lmin)

DR (dB) = 20 * log(Lmax / Lmin)

Matlab代码如下:

org_img = imread("IMG_2451.jpg");

img = imrotate(org_img,-90);

figure;

subplot(2,3,1),imshow(img),title('原图');

subplot(2,3,3),imhist(img),title('直方图');

[height,width,channel] = size(img);

img_R = img(:,:,1);

img_G = img(:,:,2);

img_B = img(:,:,3);

subplot(2,3,4),imshow(img_R),title('R通道');

subplot(2,3,5),imshow(img_G),title('G通道');

subplot(2,3,6),imshow(img_B),title('B通道');

img_l = img_R*0.2126 + img_G * 0.7512 + img_B * 0.0722;

subplot(2,3,2),imshow(img_l);,title('亮度图');

Lmax_threshold = 250;

Lmin_threshold = 5;

Lmax = 0;

Lmin = 255;

for i = 1 : height

for j = 1 : width

if img_l(i,j) < 250 && img(i,j) > Lmax

Lmax = img_l(i,j);

end

if img_l(i,j) > 5 && img_l(i,j) < Lmin

Lmin = img_l(i,j);

end

end

end

if Lmax < Lmin

disp('动态范围异常!请检查!');

else

DR_stops = log2(single(Lmax)/single(Lmin));

DR_dB = 20 * log(single(Lmax)/single(Lmin));

str = sprintf('The value of DR_stops and DR_dB are %f and %f,', DR_stops,DR_dB);

disp(str);

end

其结果如:The value of DR_stops and DR_dB are 4.954196 and 68.679741

在实际测量中,图像噪声基底的测量需要结合硬件操作和数据分析,核心是通过暗场图像(Dark Frame)的统计特性来确定噪声基底。以下是具体步骤及注意事项:

1.固定ISO,使用还未进行降噪的sensor raw图进行分析

2.镜头完全遮光

3.设置固定的曝光时间

4.拍摄至少10-20张图像

5.一般为了提升精度使用多帧平均法。

(1)通过多帧平均抑制随机噪声,保留固定模式噪声,计算平均暗场图像:

其中,Di为第i张暗场图像

(2)为了从单帧暗场图像中减去固定模式噪声,分离出随机噪声成分,需要计算每帧的残差图像:

(3) 计算噪声基底
逐像素标准差: 对每个像素 D(x,y) ,计算其在所有残差图像中的标准差 σ (x,y)

残差图像中无需再次减去均值,其原因在于残差已隐含均值归零。
全局噪声基底: 对所有像素的标准差取平均,得到图像的噪声基底:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值