clear all;
J= imread('c:\bmp\t13.bmp');%imread('76.jpg');
I=rgb2gray(J);%360*600
[w h]=size(I);
J = imadjust(I,[0.3 0.7],[]);
figure(55), imshow(J);
% % 直方图均衡化,用来增加对比度的
% J = imadjust(I,[0.3 0.7],[]);
% imshow(I),
%ICLS 函数
%function ICLS(I);
H=fspecial('gaussian',6,4);%高斯低通滤波器ff
%H2=fspecial('gaussian',5,3);
% I=imfilter(I,H,'circular','conv');
% figure;imshow(I);
Q=fspecial('laplacian',0.9);%拉普拉斯高通滤波器
%Q2=fspecial('laplacian',0);
%H(320,240)=0;
H(w,h)=0;
Q(w,h)=0;
ffG=fft2(I);
ffH=fft2(H);
ffQ=fft2(Q);
HH=conj(ffH);%H*—H共轭
Hm=abs(ffH);%H的模
Qm=abs(ffQ);%Q的模
r=0.2*max(max(Hm))/max(max(Qm));
r1=max(max(Hm));
r2=max(max(Qm));
T=HH./(Hm.^2+r*Qm.^2);%中间变量
%ffFe0=[HH.*ffG]./[Hm.^2+r*Qm.^2];
ffF0=T.*ffG; % 初始值
Sk=ffG-ffF0.*ffH; %初始值
ek=0.5;
K=0;
while (ek>0.01)%(ek>0.05)
K=K+1;
ffF1=ffF0+T.*Sk;
Skk=r*((Qm.^2).*Sk)./(Hm.^2+r*Qm.^2);
ek=(norm(Sk)^2-norm(Skk)^2)/norm(Sk)^2;
t1=norm(Sk); t2=norm(Skk);
ffF0=ffF1;
Sk=Skk;
end;
B=ifft2(ffF0);
B2=uint8(B);
figure(1); %算法处理后的初始图像
imshow(B2);
% 直方图
figure(2); %直方图
% subplot(1,2,1);
imhist(B2,255);
%未优化二值图
level2 = graythresh(B2);
level=level2*255;
BW=im2bw(I,level2);
% figure(3);%未优化二值图
% imshow(BW);
%优化后二值图
b1=18;
b2=55;
w1=150;
w2=245;
J1=B2;
t=find(J1<b1);
J1(t)=b1;
% J1(t)=0;
t=find(J1>=b2&J1<level);
J1(t)=b2;
t=find(J1>=level&J1<w1);
J1(t)=w1;
t=find(J1>=w2);
J1(t)=w2;
figure(4);%优化的二值图
imshow(J1);
% %高斯高通滤波一下看看什么情况,,高通滤波之后很暗.. 高斯低通滤波后图像是平滑了
% %但是间隙也小了。,对二值化不利。故 劝w1omment
% HH=fspecial('gb21ussib21n',3,4);
% % QQ=fspecial('lb21plb21w1ib21n',0);
% b2b2=imfilter(b22,HH,'w1onv');
% % b2b2b2=imfilter(b2b2,QQ,'w1onv');
% figure;imshow(b2b2);
% % figure;imshow(b2b2b2);
%均值滤波
M=fspecial('average',3);
MM=imfilter(B2,M,'conv');
MMM=imfilter(J1,M,'conv');
figure(5);imshow(MM);%初始图中值滤波
figure(6);imshow(MMM);%优化后二值图中值滤波
% % % 直方图均衡化,用来增加对比度的
% J = imadjust(MMM);
% figure, imshow(J);
%sub2plot(1,2,2);
% figure;
% imshow(b2W);
%备注
% figure(1); %算法处理后的初始图像
% figure(2); %直方图
% figure(3);%未优化二值图
% figure(4);%优化的二值图
% figure(5);%初始图中值滤波
% figure(6);%优化后二值图中值滤波