📄 olppl.asv
字号:
%clear all
%clc
%close all
tic
global wtype
% %
%while 1
vidobj=videoinput('winvideo',1);
%vidRes = get(vidobj, 'VideoResolution');
%nBands = get(vidobj, 'NumberOfBands');
% hImage = image( zeros(vidRes(2), vidRes(1), nBands) );
preview(vidobj);
wtype = getsnapshot(vidobj);
%wtype = rgb2gray(wtype);
imagesc(wtype), colormap(gray);
title('Input image','fontsize',18)
closepreview(vidobj);
y=conv_rgb(wtype);
y=imresize(y,[300 300],'nearest');
[modu] = ftr_ext(y);
% TrainDatabasePath = uigetdir('D:\matlab1\meenakshi code\TrainDatabase', 'Select training database path' );
TrainDatabasePath = ('D:\matlab1\meenakshi code\TrainDatabase');
%TestDatabasePath = uigetdir('D:\matlab1\meenakshi code\TestDatabase', 'Select test database path');
TestDatabasePath = ('D:\matlab1\meenakshi code\TestDatabase');
% prompt = {'Enter test image name :'};
% dlg_title = 'Input of Laplacian Face Recognition System';
% num_lines= 1;
def = {'1'};
% TestImage = inputdlg(prompt,dlg_title,num_lines,def);
TestImage = strcat(TestDatabasePath,'\',char(),'.jpg');
im = imread(TestImage);
T = CreateDatabase(TrainDatabasePath);
[m, A, L_eig_vec,Eigenfaces] = EigenfaceCore(T);
options = [];
options.Metric = 'Euclidean';
options.NeighborMode = 'KNN';
options.k = 5;
options.WeightMode = 'HeatKernel';
options.t = 1;
W = constructWnew(T',options);
sizeW=size(W);
[eigvector, eigvalue, bSuccess, elapse,Y,e] = OLPPface( W, options,T,A,L_eig_vec);
[kl, Euc_dist] = Recognitionolpp(TestImage, m, A, eigvector, eigvalue, Y);
if(kl==0)
[Euc_dist_min , Recognized_index] = min(Euc_dist);
OutputName = strcat(int2str(Recognized_index),'.jpg');
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
imshow(im)
title('Test Image');
%figure,imshow(uint8(e*10^3));
%title('laplacian Image');
figure,imshow('REC.jpg');
str = strcat('Matched image is : ',OutputName);
disp(str)
else
imshow(im)
title('Test Image');
OutputName=('notrec.jpg');
SelectedImage = imread('notrec.jpg');
figure,imshow(SelectedImage);
end
toc
s11 = serial('COM1','BaudRate',9600);
% fopen(s11);
%a11 = fscanf(s11);
%fclose(s11);
%if a11=='1'
if ((Recognized_index>10 && Recognized_index<21))
fopen(s11);
fprintf(s11,'%s','a');
fclose(s11);
% elseif ((value1>10 && value1<21))
% fopen(s11);
% fprintf(s11,'%s','b');
% fclose(s11);
% elseif ((value1>20 && value1<31))
% fopen(s11);
% fprintf(s11,'%s','c');
% fclose(s11);
else
fopen(s11);
fprintf(s11,'%s','d');
fclose(s11);
end
%
% %end
t=toc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -