⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 junhenhua.m

📁 对人脸的均衡化处理
💻 M
字号:

clear

filename='C:\Documents and Settings\kh\桌面\WFSVDFACE\WFSVDFACE\gotone\asewil\asewil.10.jpg'
A1=imread(filename);
A=rgb2gray(A1);
[w1,w2,w3]=size(A)
figure(1)
imshow(A,[0,255])
figure(2)

[LL1,HL1,LH1,HH1]=dwt2(A,'db1')
subplot(2,2,1);
imshow(LL1,[]);
subplot(2,2,2);
imshow(HL1,[]);
subplot(2,2,3);
imshow(LH1,[]);
subplot(2,2,4);
imshow(HH1,[]);

figure(3)

[LL2,HL2,LH2,HH2]=dwt2(LL1,'db1')
subplot(2,2,1);
imshow(LL2,[]);
subplot(2,2,2);
imshow(HL2,[]);
subplot(2,2,3);
imshow(LH2,[]);
subplot(2,2,4);
imshow(HH2,[]);

figure(4)

[LL3,HL3,LH3,HH3]=dwt2(LL2,'db1')
subplot(2,2,1);
imshow(LL3,[]);
subplot(2,2,2);
imshow(HL3,[]);
subplot(2,2,3);
imshow(LH3,[]);
subplot(2,2,4);
imshow(HH3,[]);


%奇异值分解
LL1=double(LL1);
[U,S,V] = svd(LL1);
TEZHEN1=S(1:20,1:20)

fid=fopen('write.txt','a');  
fprintf(fid,'\n'); 
fprintf(fid,'%4s%d    ', filename);
fprintf(fid,'     第一个小波系数');
%--换行
fprintf(fid,'\n');  
S=double(S);

for i = 1:20
   fprintf(fid,'%f    ', S(i,i)) ;  
end
 fprintf(fid,'\n'); 
 fprintf(fid,'    归一化后  第一个小波系数');
 sum=0;
 for i = 1:20
   sum=sum+S(i,i) ;  
end
 fprintf(fid,'\n'); 
 for i = 1:20
   fprintf(fid,'%f    ', S(i,i)/sum) ;  
end
 fprintf(fid,'\n'); 
fclose(fid)


LL2=double(LL2);
[U,S,V] = svd(LL2);
TEZHEN2=S(1:20,1:20)


fid=fopen('write.txt','a');  
fprintf(fid,'\n'); 
fprintf(fid,'%4s%d    ', filename);
fprintf(fid,'     第二个小波系数');
%--换行
fprintf(fid,'\n');  
S=double(S);
for i = 1:20
   fprintf(fid,'%f    ', S(i,i)) ;  
end
 fprintf(fid,'\n'); 
 fprintf(fid,'    归一化后  第二个小波系数');
 sum=0;
 for i = 1:20
   sum=sum+S(i,i) ;  
end
 fprintf(fid,'\n'); 
 for i = 1:20
   fprintf(fid,'%f    ', S(i,i)/sum) ;  
end
 fprintf(fid,'\n'); 
fclose(fid)


LL3=double(LL3);
[U,S,V] = svd(LL3);
TEZHEN3=S(1:15,1:15)

fid=fopen('write.txt','a');  
fprintf(fid,'\n'); 
fprintf(fid,'%4s%d    ', filename);
fprintf(fid,'     第三个小波系数');
%--换行
fprintf(fid,'\n');  
S=double(S);
for i = 1:15
   fprintf(fid,'%f    ', S(i,i)) ;  
end
 fprintf(fid,'\n');  

 fprintf(fid,'    归一化后  第三个小波系数');
 sum=0;
 sum=0;
 for i = 1:15
   sum=sum+S(i,i) ;  
end
 fprintf(fid,'\n'); 
 for i = 1:15
   fprintf(fid,'%f    ', S(i,i)/sum) ;  
end
 fprintf(fid,'\n'); 
 
 
 
fclose(fid)


%以直方图均衡化
figure(5)
%A1=imread('D:\WFSVDFACE\gotone\9336923.18.jpg');
%A=rgb2gray(A1);

J=imadjust(A,stretchlim(A),[]);

imshow(J,[0,255])
figure(6)
subplot(2,2,1);imshow(A)
subplot(2,2,2);imhist(A)
subplot(2,2,3);imshow(J)
subplot(2,2,4);imhist(J)

[LL1,HL1,LH1,HH1]=dwt2(J,'db1')
[LL2,HL2,LH2,HH2]=dwt2(LL1,'db1')
[LL3,HL3,LH3,HH3]=dwt2(LL2,'db1')
LL1=double(LL1);
[U,S,V] = svd(LL1);
TEZHEN1=S(1:20,1:20)

fid=fopen('write.txt','a');  
fprintf(fid,'\n'); 
fprintf(fid,'%4s%d    ', filename);
fprintf(fid,'    均衡化后  第一个小波系数');
%--换行
fprintf(fid,'\n');  
S=double(S);
for i = 1:20
   fprintf(fid,'%f    ', S(i,i)) ;  
end
 fprintf(fid,'\n');  
 fprintf(fid,'    均衡化归一化后  第一个小波系数');
 sum=0;
 for i = 1:20
   sum=sum+S(i,i) ;  
end
 fprintf(fid,'\n'); 
 for i = 1:20
   fprintf(fid,'%f     ', S(i,i)/sum) ;  
end
 fprintf(fid,'\n'); 
fclose(fid)




LL2=double(LL2);
[U,S,V] = svd(LL2);
TEZHEN2=S(1:20,1:20)

fid=fopen('write.txt','a');  
fprintf(fid,'\n'); 
fprintf(fid,'%4s%d    ', filename);
fprintf(fid,'    均衡化后  第二个小波系数');
%--换行
fprintf(fid,'\n');  
S=double(S);
for i = 1:20
   fprintf(fid,'%f    ', S(i,i)) ;  
end
 fprintf(fid,'\n'); 
 
 
 fprintf(fid,'    均衡化归一化后  第二个小波系数');
 sum=0;
 for i = 1:20
   sum=sum+S(i,i) ;  
end
 fprintf(fid,'\n'); 
 for i = 1:20
   fprintf(fid,'%f     ', S(i,i)/sum) ;  
end
 fprintf(fid,'\n');  
fclose(fid)




LL3=double(LL3);
[U,S,V] = svd(LL3);
TEZHEN3=S(1:15,1:15)


fid=fopen('write.txt','a');  
fprintf(fid,'\n'); 
fprintf(fid,'%4s%d    ', filename);
fprintf(fid,'    均衡化后  第三个小波系数');
%--换行
fprintf(fid,'\n');  
S=double(S);
for i = 1:15
   fprintf(fid,'%f    ', S(i,i)) ;  
end

 fprintf(fid,'\n'); 
 fprintf(fid,'    均衡化归一化后  第三个小波系数');
 sum=0;
 for i = 1:15
   sum=sum+S(i,i) ;  
end
 fprintf(fid,'\n'); 
 for i = 1:15
   fprintf(fid,'%f    ', S(i,i)/sum) ;  
end
 fprintf(fid,'\n'); 
 
 
fclose(fid)

%边缘检测
figure(7)
BW1=edge(A,'sobel');
imshow(BW1);

figure(8)
%BW2=~im2bw(BW1);
%BW3=imfill(BW2,'hole');
%BW3=imfill(BW2);
%BW3=imcomplement(imfill(imcomplement(BW2),'hole'));
BW3=bwmorph(BW1,'thin',Inf);
imshow(BW3);

figure(9)
%BW4=medfilt2(BW1,[2,2]);
%h=[  1  1  1;     0  1  0;     1  1  1];
%BW4=conv2(J,h);
BW4=bwperim(BW1,4);

imshow(BW4);


% [y0detect,x0detect,Accumulator] = houghcircle(Imbinary,r,thresh,region)

%[y0detect,x0detect,Accumulator] = houghcircle(A,20,4,[0,0,180,180])
%[y0detect,x0detect,Accumulator] = houghcircle(BW1,60,4,[80,80,80,80])








%-读ascii
%fid = fopen('data.txt');
%--读取第1个数据(字符型),取6个字符
%head = fscanf(fid,'%6s',1); 
%--再读取一个实数,因为用'%d',没指定长度,直到遇见空格
%h = fscanf(fid,'%d',1); 
%--读取8个数据,写成2*4矩阵(浮点数型),读取的数按列写入,所以转置,得原来顺序
%data = (fscanf(fid,'%g',[4 2]))'; 
%--关闭通道
%fclose(fid)


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -