- , . . , . :
1. .
2. .
3. .
.
, .
, (. 1).
, , , . , , , . 2.
, , . 2 . 1.
. 1. .
. 2. , .
. [2], , .
:
(9) |
- , - ; - ; , - , - (, ), , - ; - .
(9). - (9), . 3. , .
|
|
. 3. (1 - , 2 - (9)).
. 3 , . . (9). , . .
%, % clear;%===== =====L=imread('image1.tif');[N M]=size(L);m=15;n=15;n1=fix(n/2);m1=fix(m/2);%=== =====a=L(1,1);b=L(1,M);c=L(N,1);d=L(N,M);for i=1:n1; for j=1:m1; L1(i,j)=a; L3(i,j)=b; L6(i,j)=c; L8(i,j)=d; end;end; L2=L(1,1:M); L02=L2; for i=1:n1-1; L2=[L2;L02]; end; L7=L(N,1:M); L07=L7; for i=1:n1-1; L7=[L7;L07]; end; L4=L(1:N,1); L4=L4'; L04=L4; for i=1:m1-1; L4=[L4;L04]; end; L4=L4'; L5=L(1:N,M); L5=L5'; L05=L5; for i=1:m1-1; L5=[L5;L05]; end; L5=L5'; L1=[L1;L4]; L1=[L1;L6]; L1=L1'; L2=[L2;L]; L2=[L2;L7]; L2=L2'; L3=[L3;L5]; L3=[L3;L8]; L3=L3'; L1=[L1;L2]; L1=[L1;L3]; Lr=L1';clear L2;clear L3;clear L4;clear L5;clear L6;clear L7;clear L8;clear L02;clear L04;clear L05;clear L07;clear L1;clear L;%===== =====Entropia=ones(N+2*n1,M+2*m1); for i=1+n1:N+n1; disp(i) for j=1+n1:M+m1; if j==1+m1; D=0; for a=-n1:n1; for b=-m1:m1; D(n1+1+a,m1+1+b)=Lr(i+a,j+b); end; end; end; if j>1+m1; for a=-n1:n1; D(n1+1+a,m+1)=Lr(i+a,j+m1); end; D=D(1:n,2:m+1); end; Pk_vektor=hist(D(:),max(max(D))-min(min(D))+1)/(n*m); for ind=1:length(Pk_vektor); if Pk_vektor(ind)==0; Pk_vektor(ind)=1; end; end; Entropia(i,j)=-sum(Pk_vektor.*log(Pk_vektor)); end; end;n_filter=3;m_filter=n_filter;F=ones(n_filter,m_filter);Lser=filter2(F,Lr,'same')/(n_filter*m_filter);clear n_filter;clear m_filter;clear F;amax=.7;amin=.5;%===== =====C=abs(Lr-Lser)./(Lr+Lser+eps);alfa=amin+.2.*(1-exp(-((Entropia./max(max(Entropia))-.5).^2)./(2*.14^2))).^3;C=C.^alfa;for i=1+n1:N+n1;for j=1+n1:M+m1; if Lr(i,j)>=Lser(i,j); Lvyh(i,j)=Lser(i,j)*(1+C(i,j))/(1-C(i,j)+eps); else Lvyh(i,j)=Lser(i,j)*(1-C(i,j))/(1+C(i,j)); end; %===== ===== if Lvyh(i,j)>=255; Lvyh(i,j)=255; end; if Lvyh(i,j)<=0; Lvyh(i,j)=0; end;end;end;Lvyh=Lvyh(n1+1:N+n1,m1+1:M+m1);Lvyh=round(Lvyh);L=Lr(n1+1:N+n1,m1+1:M+m1);%===== =====colormap(gray(255));subplot(221);image(L');axis('image'); subplot(222);image(Lvyh');axis('image'); .) | ) |
) | ) |
. - : ) ; ) , ; ) , ; ) , .
|
|
) | ) | ) |
. - : ) ; ) , ; ) , .
%, () ()% ( )clear;%===== =====L=imread('im.tif');[N M]=size(L);%===== =====m=5;n=m;n1=fix(n/2);m1=fix(m/2);R=255;%===== =====a=L(1,1);b=L(1,M);c=L(N,1);d=L(N,M);for i=1:n1; for j=1:m1; L1(i,j)=a; L3(i,j)=b; L6(i,j)=c; L8(i,j)=d; end;end; L2=L(1,1:M); L02=L2; for i=1:n1-1; L2=[L2;L02]; end; L7=L(N,1:M); L07=L7; for i=1:n1-1; L7=[L7;L07]; end; L4=L(1:N,1); L4=L4'; L04=L4; for i=1:m1-1; L4=[L4;L04]; end; L4=L4'; L5=L(1:N,M); L5=L5'; L05=L5; for i=1:m1-1; L5=[L5;L05]; end; L5=L5'; L1=[L1;L4]; L1=[L1;L6]; L1=L1'; L2=[L2;L]; L2=[L2;L7]; L2=L2'; L3=[L3;L5]; L3=[L3;L8]; L3=L3'; L1=[L1;L2]; L1=[L1;L3]; Lr=L1';clear L2;clear L3;clear L4;clear L5;clear L6;clear L7;clear L8;clear L02;clear L04;clear L05;clear L07;clear L1;clear L;%===== =====F=ones(n,m);Lser=filter2(F,Lr,'same')/(n*m);=abs(Lr-Lser)/(Lr+Lser);CMIN=min(min(C));CMAX=max(max(C));alfa=.9; %===== =====%===== ( a>1 a<1) =====C=((C-CMIN)./(CMAX-CMIN)).^alfa;%===== =====for i=1+n1:N+n1; disp(i)for j=1+m1:M+m1; if Lr(i,j)>=Lser(i,j); Lvyh(i,j)=Lser(i,j)*(1+C(i,j))/(1-C(i,j)); else Lvyh(i,j)=Lser(i,j)*(1-C(i,j))/(1+C(i,j)); end; if Lvyh(i,j)>=R; Lvyh(i,j)=R; end; if Lvyh(i,j)<=0; Lvyh(i,j)=0; end;end;end;Lvyh=Lvyh(n1+1:N+n1,m1+1:M+m1);Lvyh=round(Lvyh);L=Lroshyrena(n1+1:N+n1,m1+1:M+m1);%===== =====subplot(221);imshow(L');axis('image');subplot(222);imshow(Lvyh');axis('image');) | ) , |
) () | ) () |
. .
|
|
, .
%, () ()% ( )clear;%===== =====L=imread('im1.bmp');L=L(:,:,1);L=double(L)./255;[N M]=size(L);%===== =====m=17;n=m;n1=fix(n/2);m1=fix(m/2);R=255/255;%===== =====a=L(1,1);b=L(1,M);c=L(N,1);d=L(N,M);for i=1:n1; for j=1:m1; L1(i,j)=a; L3(i,j)=b; L6(i,j)=c; L8(i,j)=d; end;end; L2=L(1,1:M); L02=L2; for i=1:n1-1; L2=[L2;L02]; end; L7=L(N,1:M); L07=L7; for i=1:n1-1; L7=[L7;L07]; end; L4=L(1:N,1); L4=L4'; L04=L4; for i=1:m1-1; L4=[L4;L04]; end; L4=L4'; L5=L(1:N,M); L5=L5'; L05=L5; for i=1:m1-1; L5=[L5;L05]; end; L5=L5'; L1=[L1;L4]; L1=[L1;L6]; L1=L1'; L2=[L2;L]; L2=[L2;L7]; L2=L2'; L3=[L3;L5]; L3=[L3;L8]; L3=L3'; L1=[L1;L2]; L1=[L1;L3]; Lr=L1';clear L2;clear L3;clear L4;clear L5;clear L6;clear L7;clear L8;clear L02;clear L04;clear L05;clear L07;clear L1;clear L;alfa=5; %===== =====%===== =====C=zeros(N+n+1,M+m+1);C1=zeros(N+n+1,M+m+1);for i=1+n1:N+n1; disp(i)for j=1+m1:M+m1; if j==1+m1; D=0; for a=-n1:n1; for b=-m1:m1; D(n1+1+a,m1+1+b)=Lr(i+a,j+b); end; end; end; if j>(1+m1); for a=-n1:n1; D(n1+1+a,m+1)=Lr(i+a,j+m1); end; D=D(1:n,2:m+1); end; Lser(i,j)=sum(sum(D))/(n*m); C(i,j)=abs((Lr(i,j)-Lser(i,j))/(Lr(i,j)+Lser(i,j))); end; end;for i=1+n1:N+n1; disp(i)for j=1+m1:M+m1; if j==1+m1; D=0; for a=-n1:n1; for b=-m1:m1; D(n1+1+a,m1+1+b)=C(i+a,j+b); end; end; end; if j>(1+m1); for a=-n1:n1; D(n1+1+a,m+1)=C(i+a,j+m1); end; D=D(1:n,2:m+1); end; CMIN(i,j)=min(min(D)); CMAX(i,j)=max(max(D)); C1(i,j)=((C(i,j)-CMIN(i,j))/(CMAX(i,j)-CMIN(i,j)))^alfa; if C1(i,j)>1; C1(i,j)=1; end; if C1(i,j)<0; C1(i,j)=0; end; if Lr(i,j)>=Lser(i,j); Lvyh(i,j)=Lser(i,j)*(1+C1(i,j))/(1-C1(i,j)+eps); else Lvyh(i,j)=Lser(i,j)*(1-C1(i,j))/(1+C1(i,j)); end; if Lvyh(i,j)>R; Lvyh(i,j)=R; end; if Lvyh(i,j)<0; Lvyh(i,j)=0; end;end;end;Lvyh=Lvyh(n1+1:N+n1,m1+1:M+m1);L=Lr(n1+1:N+n1,m1+1:M+m1);%===== =====subplot(221);imshow(L');axis('image');subplot(222);imshow(Lvyh');axis('image');.
- Dash L., Chatterji B.N. Adaptive contrast enhancement and de-enhancement // Pattern Recognition, 1992. - V. 24, 4. - P.289 - 302.
- .. : . . : 05.13.06. - , 1999. - 369 .