📄 pcnnmm.txt
字号:
name=15;
%F=imread(['lena0.',num2str(name),'.bmp']);
%F=imread(['barbara0.',num2str(name),'.png']);
F=imread(['fingerprint0.',num2str(name),'.png']);
F=im2double(F);
[m,n]=size(F);
row1=F(1,:);
row2=F(m,:);
F=[row1;F;row2];
column1=F(:,1);
column2=F(:,n);
F=[column1,F,column2];
[m,n]=size(F);
W=[0.5,1,0.5;1,0,1;0.5,1,0.5];
se=[1,1;1,1];
b=0.1;
a=0.1;
v=1.6;%%
L=zeros(m,n);%输入矩阵L
Y=ones(m,n);%输出
M=v*Y;
U=zeros(m,n);%内部活动项
%求L
for i=2:m-1
for j=2:n-1
for k=1:3
for l=1:3
L(i,j)=L(i,j)+W(k,l)*Y(i-2+k,j-2+l);
end
end
end
end
%求U
U=F.*(1+b*L);
%求输出
for i=2:m-1
for j=2:n-1
if U(i,j)-M(i,j)>=0
Y(i,j)=1;
for k=1:3
for l=1:3
J(k,l)=F(i-2+k,j-2+l);
end
end
A=imopen(J,se);
B=imclose(A,se);
%for k=1:3
%for l=1:3
%F(i-2+k,j-2+l)=B(k,l);
F(i,j)=B(2,2);
%end
%end
end
end
end
I = ones(m,n);
F = imsubtract(I,F);
L=zeros(m,n);%输入矩阵L
Y=ones(m,n);%输出
%求L
for i=2:m-1
for j=2:n-1
for k=1:3
for l=1:3
L(i,j)=L(i,j)+W(k,l)*Y(i-2+k,j-2+l);
end
end
end
end
%求U
U=F.*(1+b*L);
%求输出
for i=2:m-1
for j=2:n-1
if U(i,j)-M(i,j)>=0
Y(i,j)=1;
for k=1:3
for l=1:3
J(k,l)=F(i-2+k,j-2+l);
end
end
A=imopen(J,se);
B=imclose(A,se);
%for k=1:3
%for l=1:3
%F(i-2+k,j-2+l)=B(k,l);
F(i,j)=B(2,2);
%end
%end
end
end
end
I = ones(m,n);
F = imsubtract(I,F);
F(m,:)=[];
F(:,n)=[];
F(1,:)=[];
F(:,1)=[];
figure;imshow(F);
%imwrite(F,['outpcnnmm',num2str(name),'.bmp']);
%imwrite(F,['barbarapcnnmm',num2str(name),'.bmp']);
imwrite(F,['fingerprintpcnnmm',num2str(name),'.bmp']);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -