資源簡介
matlab代碼實現的retinex圖像增強
代碼片段和文件信息
clear
clc
tic
%*****************參數***********
k1=225;
k2=3000;?
k3=80000;
k4=10000;
r=81;
c?=?0.01;
nn=floor((r+1)/2);???%?計算中心
%?nn=0;
string?=?‘night3‘;
string1?=?[string?‘.bmp‘];
I?=?imread(string1);
subplot(131);
imshow(I);
f=I(::1);
ff=I(::2);
fff=I(::3);
Img1?=?double(f);
Img2?=?double(ff);
Img3?=?double(fff);
[mn]=size(f);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
b?=?zeros(rr);
bb?=?zeros(rr);
bbb?=?zeros(rr);
for?i=1:r
????for?j=1:r
????????b(ij)?=exp(-((i-nn)^2+(j-nn)^2)/k1)/k4;????????%高斯函數1
???end
end
tiaojie1?=?1/sum(sum(b));
b?=?tiaojie1.*b;
for?i=1:r
????for?j=1:r
????????bb(ij)?=exp(-((i-nn)^2+(j-nn)^2)/k2)/k4;???????%高斯函數2
???end
end
tiaojie2?=?1/sum(sum(bb));
bb?=?tiaojie2.*bb;
for?i=1:r
????for?j=1:r
????????bbb(ij)?=exp(-((i-nn)^2+(j-nn)^2)/k3)/k4;??????%高斯函數3
???end
end
tiaojie3?=?1/sum(sum(bbb));
bbb?=?tiaojie3.*bbb;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%對R分量的處理%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
K=imfilter(Img1b);
KK=imfilter(Img1bb);
KKK=imfilter(Img1bbb);
G?=?zeros(mn);
for?i=1:m
????for?j=1:n??????
???????G(ij)=1/3*(log(Img1(ij)+c)-log(K(ij)+c));
????????G(ij)=1/3*(log(Img1(ij)+c)-log(KK(ij)+c))+G(ij);
?????????G(ij)=1/3*(log(Img1(ij)+c)-log(KKK(ij)+c))+G(ij);
????end
end
G?=?3*G+50;
mi=min(min(G));
ma=max(max(G));
L=(G-mi)*255/(ma-mi);
%%%%%%%%%%%%%%對G分量的處理%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
K=imfilter(Img2b);
KK=imfilter(Img2bb);
KKK=imfilter(Img2bbb);
for?i=1:m
????for?j=1:n??????
???????G(ij)=1/3*(log(Img2(ij)+c)-log(K(ij)+c));
????????G(ij)=1/3*(log(Img2(ij)+c)-log(KK(ij)+c))+G(ij);
?????????G(ij)=1/3*(log(Img2(ij)+c)-log(KKK(ij)+c))+G(ij);
????end
end
G?=?3*G+50;
mi=min(min(G));
ma=max(max(G));
LL=(G-mi)*255/(ma-mi);
%%%%%%%%%%%%%隨B分量的處理%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
K=imfilter(Img3b);
KK=imfilter(Img3bb);
KKK=imfilter(Img3bbb);
for?i=1:m
????for?j=1:n??????
???????G(ij)=1/3*(log(Img3(ij)+c)-log(K(ij)+c));
????????G(ij)=1/3*(log(Img3(ij)+c)-log(KK(ij)+c))+G(ij);
?????????G(ij)=1/3*(log(Img3(ij)+c)-log(KKK(ij)+c))+G(ij);
????end
end
G?=?3*G+50;
mi=min(min(G));
ma=max(max(G));
LLL=(G-mi)*255/(ma-mi);
%%%%%%%%%%%%對彩色圖像的綜合處理?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I(::1)=?L;
I1?=?adapthisteq(I(::1));
I(::2)=?LL;
I2?=?adapthisteq(I(::2));
I(::3)=?LLL;
I3?=?adapthisteq(I(::3));
msr1?=?cat(3LLLLLL);
msr2?=?cat(3I1I2I3);
subplot(132);
imshow(uint8(msr1));
subplot(133);
imshow(uint8(msr2));
string2?=?[string?‘result.jpg‘];
imwrite(uint8(msr2)string2);
toc
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????360054??2011-02-25?11:10??night3.bmp
?????文件???????2684??2011-03-03?14:52??retinex.m
-----------?---------??----------?-----??----
???????????????362738????????????????????2
評論
共有 條評論