📄 junhenhua.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 + -