实验内容
MATLAB实现非线性动态范围调整算法
实验原理
提出非线性动态范围调整,是因为线性动态范围调整的分段线性影射不够光滑。非线性动态范围调整,要求可以用光滑的曲线来实现。考虑到人眼对视觉信号的处理过程中,有一个近似对数算子的环节,因此,可采用对数运算来实现非线性动态范围调整
实现方法
MATLAB实现非线性动态范围调整算法 实现源码
function [J]=dynamic_range(I)
I = double(I); %将I数据转换为double类型
C = 105.8865; % C*lg(1+255)=255
[m,n,l] = size(I); %读取图像行数、列数
J = zeros(m,n,l);
% 方法1:每一行每一列分开计算
for i=1:m
for j=1:n
J(i,j,:) = C*(log10(1+I(i,j,:)));
end
end
% 方法2:对整个公式计算
J = C*(log10(1+I));
J = uint8(J);
测试代码
F = imread('');
[G]=dynamic_range(F);
figure,imshow(G)
效果演示
MATLAB实现非线性动态范围调整算法