實驗内容
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實作非線性動态範圍調整算法