-
大小: 3KB文件類型: .m金幣: 2下載: 1 次發(fā)布日期: 2021-06-04
- 語言: Matlab
- 標(biāo)簽: matlab??retinex??圖像增強(qiáng)??多尺度??
資源簡介
即對圖像R、G、B分別計算,并加權(quán)求和。 在MSR算法的增強(qiáng)過程中,圖像可能會增加了噪聲而造成對圖像的局部區(qū)域色彩失真,使得物體的真真顏色效果不能很好的呈現(xiàn)出來,從而影響了整體視覺效果。為了彌補(bǔ)這個缺點,一般情況下會采用帶色彩恢復(fù)因子C的多尺度算法來解決。
代碼片段和文件信息
close?all;
clear?all;
clc;??
I=imread(‘1.jpg‘);
if?size(I3)?~=?3
????error(‘請輸入彩色圖像!‘);
end
R=I(::1);
G=I(::2);
B=I(::3);
[N1M1]=size(R);
R0=double(R);
G0=double(G);
B0=double(B);
%?取對數(shù)
Rlog=log(R0+1);
Glog=log(G0+1);
Blog=log(B0+1);
%?傅里葉變換
Rfft2=fft2(R0);
Gfft2=fft2(G0);
Bfft2=fft2(B0);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%?高斯濾波函數(shù)
%?可以設(shè)置不同的sigma處理后取均值
sigma=128;
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ù)進(jìn)行二維傅里葉變換
Ffft=fft2(double(F));
%?卷積運算
DR0=Rfft2.*Ffft;
DG0=Gfft2.*Ffft;
DB0=Bfft2.*Ffft;
DR=ifft2(DR0);
DG=ifft2(DG0);
DB=ifft2(DB0);
%?在對數(shù)域中,用原圖像減去低通濾波后的的圖像,得到高頻增強(qiáng)圖像
DRdouble=double(DR);
DGdouble=double(DG);
DBdouble=double(DB);
DRlog=log(DRdouble+1);
DGlog=log(DGdouble+1);
DBlog=log(DBdouble+1);
Rr0=Rlog-DRlog;
Gg0=Glog-DGlog;
Bb0=Blog-DBlog;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sigma=256;
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ù)進(jìn)行二維傅里葉變換
Ffft=fft2(double(F));
%?卷積運算
DR0=Rfft2.*Ffft;
DG0=Gfft2.*Ffft;
DB0=Bfft2.*Ffft;
DR=ifft2(DR0);
DG=ifft2(DG0);
DB=ifft2(DB0);
%?在對數(shù)域中,用原圖像減去低通濾波后的的圖像,得到高頻增強(qiáng)圖像
DRdouble=double(DR);
DGdouble=double(DG);
DBdouble=double(DB);
DRlog=log(DRdouble+1);
DGlog=log(DGdouble+1);
DBlog=log(DBdouble+1);
Rr1=Rlog-DRlog;
Gg1=Glog-DGlog;
Bb1=Blog-DBlog;
- 上一篇:滯回電壓比較器仿真
- 下一篇:基于MATLAB的Fisher線性判別代碼
評論
共有 條評論