📄 morpnn.m
字号:
clc
clear
'start morphological neural networks'
t1=clock; %计时开始
load F:\data(important)\T72_mag.mat %%%%读入T72的数据图像
T72=mobandata;
[rt72,ct72]=size(T72);
load F:\data(important)\BMP_mag.mat %%%%%%读入BMP的数据图像
BMP=mobandata;
[rbmp,cbmp]=size(BMP);
%%%%%得到100×100的T72子图像中心为(50,64)
for i=1:ct72
t72{1,i}= imcrop(T72{1,i},[26 26 99 99]); %%%调整图像的大小为100×100
end
%%%%%得到100×100的BMP子图像中心为(50,64)
for i=1:cbmp
bmp{1,i}= imcrop(BMP{1,i},[26 26 99 99]); %%%调整图像的大小为100×100
end
%%%%%%%%%% hit_miss extraction character %%%%%%%%%%%%%%%%%%%%%%
SEm1 = rand(3,3) ;
SEh2 = rand(3,3) ; %%%% character extraction structuring elments SE1 and SE2
%%%t72 feature map
[M,N]=size(t72{1,1});
Fmap=zeros(100,100);
t=4;
F=zeros(t,25*25);
for k=1:t
for i=2:M-1
for j=2:N-1
I=[t72{1,k}(i-1,j-1) t72{1,k}(i-1,j) t72{1,k}(i-1,j+1);t72{1,k}(i,j-1) t72{1,k}(i,j) t72{1,k}(i,j+1);t72{1,k}(i+1,j-1) t72{1,k}(i+1,j) t72{1,k}(i+1,j+1)];
Miss=I+SEm1;
Hit=I-SEh2;
Miss=reshape(Miss,1,9);
Hit=reshape(Hit,1,9);
Fmap(i,j)=min(Miss)-max(Hit); %得到feature map
end
end
Fmap11=downsample(Fmap,4); %%%% 行downsample rate 4
Fmap1=reshape(Fmap11.',1,100*25);
fmap1=downsample(Fmap1,4); %%%% 列downsample rate 4
F(k,:)=fmap1;
end
% imshow(reshape(fmap1,25,25));brighten(0.7)
%%%% bmp feature map
[M,N]=size(bmp{1,1});
Fmap1=zeros(100,100);
t=4;
F1=zeros(t,25*25);
for k=1:t
for i=2:M-1
for j=2:N-1
I=[bmp{1,k}(i-1,j-1) bmp{1,k}(i-1,j) bmp{1,k}(i-1,j+1);bmp{1,k}(i,j-1) bmp{1,k}(i,j) bmp{1,k}(i,j+1);bmp{1,k}(i+1,j-1) bmp{1,k}(i+1,j) bmp{1,k}(i+1,j+1)];
Miss1=I+SEm1;
Hit1=I-SEh2;
Miss1=reshape(Miss1,1,9);
Hit1=reshape(Hit1,1,9);
Fmap1(i,j)=min(Miss1)-max(Hit1); %得到feature map
end
end
Fmap22=downsample(Fmap1,4); %%%% 行downsample rate 4
Fmap2=reshape(Fmap22.',1,100*25);
fmap2=downsample(Fmap2,4); %%%% 列downsample rate 4
F1(k,:)=fmap2;
end
%%%%%%%%%%%%%%%%% train samples 4t72 4bmp %%%%%%%%%%%%%%%%%%
P=zeros(8,25*25);
P(1:2:7,:)=F(:,:);
P(2:2:8,:)=F1(:,:);
P1=P.';
%%%%%%%%%% hit_miss extraction character %%%%%%%%%%%%%%%%%%%%%%
% SEm1 = rand(3,3) ;
% SEh2 = rand(3,3) ; %%%% character extraction structuring elments SE1 and SE2
%%%t72 feature map
[M,N]=size(t72{1,1});
Fmap=zeros(100,100);
t=4;
F=zeros(t,25*25);
for k=2:5
for i=2:M-1
for j=2:N-1
I=[t72{1,k}(i-1,j-1) t72{1,k}(i-1,j) t72{1,k}(i-1,j+1);t72{1,k}(i,j-1) t72{1,k}(i,j) t72{1,k}(i,j+1);t72{1,k}(i+1,j-1) t72{1,k}(i+1,j) t72{1,k}(i+1,j+1)];
Miss=I+SEm1;
Hit=I-SEh2;
Miss=reshape(Miss,1,9);
Hit=reshape(Hit,1,9);
Fmap(i,j)=min(Miss)-max(Hit); %得到feature map
end
end
Fmap11=downsample(Fmap,4); %%%% 行downsample rate 4
Fmap1=reshape(Fmap11.',1,100*25);
fmap1=downsample(Fmap1,4); %%%% 列downsample rate 4
F(k-1,:)=fmap1;
end
%%%% bmp feature map
[M,N]=size(bmp{1,1});
Fmap1=zeros(100,100);
t=4;
F1=zeros(t,25*25);
for k=2:5
for i=2:M-1
for j=2:N-1
I=[bmp{1,k}(i-1,j-1) bmp{1,k}(i-1,j) bmp{1,k}(i-1,j+1);bmp{1,k}(i,j-1) bmp{1,k}(i,j) bmp{1,k}(i,j+1);bmp{1,k}(i+1,j-1) bmp{1,k}(i+1,j) bmp{1,k}(i+1,j+1)];
Miss1=I+SEm1;
Hit1=I-SEh2;
Miss1=reshape(Miss1,1,9);
Hit1=reshape(Hit1,1,9);
Fmap1(i,j)=min(Miss1)-max(Hit1); %得到feature map
end
end
Fmap22=downsample(Fmap1,4); %%%% 行downsample rate 4
Fmap2=reshape(Fmap22.',1,100*25);
fmap2=downsample(Fmap2,4); %%%% 列downsample rate 4
F1(k-1,:)=fmap2;
end
%%%%%%%%%%%%%%%%% train samples 4t72 4bmp 4btr%%%%%%%%%%%%%%%%%%
PP=zeros(8,25*25);
PP(1:2:7,:)=F(:,:);
PP(2:2:8,:)=F1(:,:);
PP1=PP.';
res=[1 2 1 2 1 2 1 2];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%权值%%%%%%%%%%%%%%%%%%%%%
% %目标值
% targett72 = [1,0,0]';
% targetbmp = [0,1,0]' ;
% targetbtr = [0,0,1]' ;
% % target=[1 1 1 1 0 0 0 0 0 0 0 0;0 0 0 0 1 1 1 1 0 0 0 0;0 0 0 0 0 0 0 0 1 1 1 1];
% Tc=[1 1 1 1 2 2 2 2 3 3 3 3 ];
%%%%%%%%%%%networks design%%%%%%%%%%%%%%%%%%%%%%%%
T=ind2vec(res);
spread=0.7;
net=newpnn(P1,T,spread);
y=sim(net,P1);
yc=vec2ind(y);
y1=sim(net,PP1);
y1c=vec2ind(y1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -