📄 image recognition.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -