image recognition.m

来自「协同神经网络的程序」· M 代码 · 共 84 行

M
84
字号
clear all
clc

NumOfImage = 34;
width=32;
hight=32;

for i = 1: NumOfImage
%   i
   R=imread(num2str(i),'bmp');
	B=(R(:))';
	v(i,:)=double(B);
   vmean(i)=mean(i,:);
   v(i,:)=v(i,:)-mean(v(i,:));
   v(i,:)=v(i,:)/norm(v(i,:));
end
%size(v)
%pause

%we get the value of pinv v
VV = (pinv(v))';
%size(VV)

%Q is the row parament
R=imread('q','bmp');
Q=double(R(:));
Qmean= mean(Q);
Q=Q-mean(Q);
Q=Q/norm(Q);

%A is the order parameter
maxA = -1000;
minA = 1000;
for k=1:NumOfImage
   A(k)=VV(k,:)*Q;
   if(A(k)>maxA) maxA = A(k);end
   if(A(k)<minA) minA = A(k);end
end
%A
%pause


%序参量演化方程
%baojie 2001-05-21

%the number of order parameter
NumberOfOP = NumOfImage;
%the number of step
NumberOfStep = 100;

%prepare attention parameter
for m=1:NumberOfOP
%    lmd(m)=1;
     lmd(m)=1-abs(vmean(m)-Qmean)/max(Qmean,255-Qmean);
end
%lmd(1)=1.2;

maxL = -1000;
minL = 1000;
for k=1:NumberOfOP
   if(lmd(k)>maxL) maxL = lmd(k);end
   if(lmd(k)<minL) minL = lmd(k);end
end
   
%parameter
B=1;C=1;

for n=1:NumberOfStep
%    n
    %global field 
    D(n)=0;
    for m=1:NumberOfOP
      D(n)=D(n)+(B+C)*A(n,m)*A(n,m);
    end
    
    %evloution function
    speed = 0.1/D(n);
    %speed = 0.3;
    
    for k=1:NumberOfOP
      A(n+1,k)=speed * A(n,k)*(lmd(k)-D(n)+B*A(n,k)*A(n,k))+A(n,k);
    end
    
    %

⌨️ 快捷键说明

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