資源簡介
《數(shù)字圖像處理高級應(yīng)用》中的代碼,注意是單尺度的Retinex呦~
代碼片段和文件信息
clear;
close?all;
%?讀入圖像
I?=?imread(‘B.jpg‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?R分量?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%?取輸入分量的R分量
R?=?I(::1);
[N1M1]?=?size(R);
%%%%%%%%%%%%%%%??步驟一:對圖像取對數(shù),將照射光分量和反射光分量分離%%%%%%%%%%%
%?對R分量進行數(shù)據(jù)轉(zhuǎn)換,并對其取對數(shù)
R0?=?double(R);
Rlog?=?log(R0+1);??
%%%%%%%%%%%%%%%??步驟二:用高斯模板對原圖像作卷積,得到低通濾波后的圖像D?%%%%%%%%%%
%?對R分量進行二維傅里葉變換
Rfft2?=?fft2(R0);
%?形成高斯濾波函數(shù)
sigma?=?250;
F?=?zeros(N1M1);
for?i?=?1:N1
????for?j?=?1:M1
????????F(ij)?=?exp(-((i-N1/2)^2+(j-M1/2)^2)/(2*sigma*sigma));
????end
end
F?=?F./(sum(F(:)));??%?矩陣歸一化??
%?對高斯濾波函數(shù)進行二維傅里葉變換
Ffft?=?fft2(double(F));
%?對R分量與高斯濾波函數(shù)進行卷積運算
DR0?=?Rfft2.*?Ffft;
DR?=?ifft2(DR0);
%%%%%%%%%%%%%%%??步驟三:在對數(shù)域中,用原圖像減去低通濾波后的圖像,得到高頻增強圖像?%%%%%%%%%%
DRdouble?=?double(DR);
DRlog?=?log(DRdouble?+?1);
Rr?=?Rlog?-?DRlog;
%%%%%%%%%%%%%%%??步驟四:取反對數(shù)得到增強后的圖像分量?%%%%%%%%%%
EXPRr?=?exp(Rr);
%%%%%%%%%%%%%%%??步驟五:作對比度增強?%%%%%%%%%%
MIN?=?min(min(EXPRr));
MAX?=?max(max(EXPRr));
EXPRr?=?(EXPRr?-?MIN)/(MAX?-?MIN);
EXPRr?=?adapthisteq(EXPRr);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?G分量?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%?取輸入分量的G分量
G?=?I(::2);
[N1M1]?=?size(G);
%%%%%%%%%%%%%%%??步驟一:對圖像取對數(shù),將照射光分量和反射光分量分離%%%%%%%%%%%
%?對G分量進行數(shù)據(jù)轉(zhuǎn)換,并對其取對數(shù)
G0?=?double(G);
Glog?=?log(G0+1);???%??????????????????????????加1干嘛
%%%%%%%%%%%%%%%??步驟二:用高斯模板對原圖像作卷積,得到低通濾波后的圖像D?%%%%%%%%%%
%?對G分量進行二維傅里葉變換
Gfft2?=?fft2(G0);
%?形成高斯濾波函數(shù)
sigma?=?250;
for?i?=?1:N1
????for?j?=?1:M1
????????F(ij)?=?exp(?-?((i?-?N1/2)^2?+?(j?-?M1/2)^2)/(2?*?sigma?*?sigma));
????end
end
F?=?F./(sum(F(:)));
%?對高斯濾波函數(shù)進行二維傅里葉變換
Ffft?=?fft2(double(F
- 上一篇:jpeg圖像壓縮編解碼程序
- 下一篇:粒子群PSO優(yōu)化LSSVM的完整程序
評論
共有 條評論