天天看點

MATLAB實作非線性動态範圍調整算法

實驗内容

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

繼續閱讀