function varargout = face_recognise_system(varargin)
% FACE_RECOGNISE_SYSTEM M-file for face_recognise_system.fig
% FACE_RECOGNISE_SYSTEM, by itself, creates a new FACE_RECOGNISE_SYSTEM or raises the existing
% singleton*.
%
% H = FACE_RECOGNISE_SYSTEM returns the handle to a new FACE_RECOGNISE_SYSTEM or the handle to
% the existing singleton*.
%
% FACE_RECOGNISE_SYSTEM('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in FACE_RECOGNISE_SYSTEM.M with the given input arguments.
%
% FACE_RECOGNISE_SYSTEM('Property','Value',...) creates a new FACE_RECOGNISE_SYSTEM or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before face_recognise_system_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to face_recognise_system_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help face_recognise_system
% Last Modified by GUIDE v2.5 04-Mar-2008 15:25:54
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @face_recognise_system_OpeningFcn, ...
'gui_OutputFcn', @face_recognise_system_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before face_recognise_system is made visible.
function face_recognise_system_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to face_recognise_system (see VARARGIN)
% Choose default command line output for face_recognise_system
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
dos(['rename ' cd '\facefind.m facefind.dll'])
% UIWAIT makes face_recognise_system wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = face_recognise_system_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
clc
delete(imaqfind)
vid=videoinput('winvideo',1,'RGB24_320x240');
axes(handles.axes16);
triggerconfig(vid,'manual');
set(vid,'FramesPerTrigger',1 );
set(vid,'TriggerRepeat', Inf);
start(vid);
while(1)
trigger(vid);
im=getdata(vid,1);
imshow(im);
set(handles.axes16,'userdata',im)
pause(.4)
end
stop(vid)
preview(vid);
% --- Executes on button press in a_data.
function a_data_Callback(hObject, eventdata, handles)
% hObject handle to a_data (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
try
im=get(handles.axes16,'userdata');
end
dir_pic=dir([cd '\data\*.jpg']);
n_pic=size(dir_pic,1);
for i=1:2
beep
try
im=get(handles.axes16,'userdata');
catch
[inputfilename,dirname] = uigetfile('*.*');
inputfilename = [dirname, inputfilename];
im = imread(inputfilename);
end
imwrite(im,[cd '\data1\' num2str(i+n_pic) '.jpg'])
%%
x = im;
if (size(x,3)>1)%if RGB image make gray scale
try
x=rgb2gray(x);%image toolbox dependent
catch
x=sum(double(x),3)/3;%if no image toolbox do simple sum
end
end
x=double(x);%make sure the input is double format
[output,count,m,svec]=facefind(x,32,inf,3,3,1);%full scan
b=[output(1)-(output(2)-output(1))*0.3 ...
output(2)+(output(2)-output(1))*0.3...
output(3)-(output(4)-output(3))*0.6...
output(4)+(output(4)-output(3))*0.3];
syms x0 y0 r x y
F=(x-x0)^2+(y-y0)^2-r^2;
g=solve(subs(F,[x,y],[(b(2)+b(1))/2 b(4)]),...
subs(F,[x,y],[b(1) b(3)-(b(3)-b(4))*3/4]),...
subs(F,[x,y],[b(2) b(3)-(b(3)-b(4))*3/4]));
im1=im;
im1(1 :b(3),: ,:)=0;
im1(b(4):end ,: ,:)=0;
im1(: ,1 :b(1) ,:)=0;
im1(: ,b(2):end ,:)=0;
%%
imwrite(im1,[cd '\data\' num2str(i+n_pic) '.jpg'])
imwrite(imresize(imcrop(im1,[b(1) b(3) b(2)-b(1) b(4)-b(3)]),[240 320]),[cd '\data2\' num2str(i+n_pic) '.jpg'])
imshow(im1);
pause(1)
end
beep
stop(vid)
% --- Executes on button press in check.
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
clc
try
% ddddddddd
im=get(handles.axes16,'userdata');
catch
[inputfilename,dirname] = uigetfile('*.*');
inputfilename = [dirname, inputfilename];
im = imread(inputfilename);
set(handles.axes16,'userdata',im)
end
% im = imresize(im ,[240 320]);
dir_pic=dir([cd '\test\*.jpg']);
n_pic=size(dir_pic,1);
imwrite(im,[cd '\test\' num2str(n_pic+1) '.jpg'])
%% input 1
axes(handles.axesi1),imshow(im)
%% data-11
TrainDatabasePath =[cd '\data'];
TestDatabasePath = [cd '\test'];
TestImage = num2str(n_pic+1);
TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
T = CreateDatabase(TrainDatabasePath);
[m, A, Eigenfaces] = EigenfaceCore(T);
OutputName = Recognition(TestImage, m, A, Eigenfaces,11);
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
% axes(handles.axesi1)
% imshow(im)
% title('Test Image');
axes(handles.axes11)
imshow(SelectedImage);
title('Equivalent Image');
%% 2-11
TrainDatabasePath =[cd '\data'];
TestDatabasePath = [cd '\test'];
TestImage = num2str(n_pic+1);
TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
T = CreateDatabase2(TrainDatabasePath);
[m V_PCA V_Fisher ProjectedImages_Fisher] = FisherfaceCore2(T);
OutputName = Recognition2(TestImage, m, V_PCA, V_Fisher, ProjectedImages_Fisher);
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
axes(handles.axes1)
imshow(SelectedImage);
%% data2-13
% axes(handles.axesi1)
% TrainDatabasePath =[cd '\data2'];
% TestDatabasePath = [cd '\test'];
%
% TestImage = num2str(n_pic+1);
% TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
% im = imread([cd '\Test\' num2str(n_pic+1) '.jpg']);
% T = CreateDatabase(TrainDatabasePath);
% [m, A, Eigenfaces] = EigenfaceCore(T);
% OutputName = Recognition(TestImage, m, A, Eigenfaces,13);
%
% SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
% SelectedImage = imread(SelectedImage);
% axes(handles.axes13)
% imshow(SelectedImage);
%% input 2
% axes(handles.axesi2)
% %% data-21
% TrainDatabasePath =[cd '\data'];
% TestDatabasePath = [cd '\test'];
%
% TestImage = num2str(n_pic+1);
% TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
%
% T = CreateDatabase(TrainDatabasePath);
% [m, A, Eigenfaces] = EigenfaceCore(T);
% OutputName = Recognition(TestImage, m, A, Eigenfaces,21);
%
% SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
% SelectedImage = imread(SelectedImage);
% % axes(handles.axesi1)
% % imshow(im)
% % title('Test Image');
% axes(handles.axes21)
%
% imshow(SelectedImage);
% title('Equivalent Image');
%% data1-22
axes(handles.axesi2)
TrainDatabasePath =[cd '\data1'];
TestDatabasePath = [cd '\test'];
TestImage = num2str(n_pic+1);
TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
% im = imread([cd '\Test\' num2str(n_pic+1) '.jpg']);
T = CreateDatabase(TrainDatabasePath);
[m, A, Eigenfaces] = EigenfaceCore(T);
OutputName = Recognition(TestImage, m, A, Eigenfaces,22);
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
axes(handles.axes22)
imshow(SelectedImage);
%% 2-22
TrainDatabasePath =[cd '\data1'];
TestDatabasePath = [cd '\test'];
TestImage = num2str(n_pic+1);
TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
T = CreateDatabase2(TrainDatabasePath);
[m V_PCA V_Fisher ProjectedImages_Fisher] = FisherfaceCore2(T);
OutputName = Recognition2(TestImage, m, V_PCA, V_Fisher, ProjectedImages_Fisher);
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
axes(handles.axes2)
imshow(SelectedImage);
%% input 3
% axes(handles.axesi3)
% %% data-31
% TrainDatabasePath =[cd '\data'];
% TestDatabasePath = [cd '\test'];
%
% TestImage = num2str(n_pic+1);
% TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
%
% T = CreateDatabase(TrainDatabasePath);
% [m, A, Eigenfaces] = EigenfaceCore(T);
% OutputName = Recognition(TestImage, m, A, Eigenfaces,31);
%
% SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
% SelectedImage = imread(SelectedImage);
% % axes(handles.axesi1)
% % imshow(im)
% % title('Test Image');
% axes(handles.axes31)
%
% imshow(SelectedImage);
% title('Equivalent Image');
%% data1-32
% axes(handles.axesi3)
% TrainDatabasePath =[cd '\data1'];
% TestDatabasePath = [cd '\test'];
%
% TestImage = num2str(n_pic+1);
% TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
% % im = imread([cd '\Test\' num2str(n_pic+1) '.jpg']);
% T = CreateDatabase(TrainDatabasePath);
% [m, A, Eigenfaces] = EigenfaceCore(T);
% OutputName = Recognition(TestImage, m, A, Eigenfaces);
%
% SelectedImage = strcat(TrainDatabasePath,'\',OutputName,32);
% SelectedImage = imread(SelectedImage);
% axes(handles.axes32)
% imshow(SelectedImage);
%% 1-33
axes(handles.axesi3)
TrainDatabasePath =[cd '\data2'];
TestDatabasePath = [cd '\test'];
TestImage = num2str(n_pic+1);
TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
im = imread([cd '\Test\' num2str(n_pic+1) '.jpg']);
T = CreateDatabase(TrainDatabasePath);
[m, A, Eigenfaces] = EigenfaceCore(T);
OutputName = Recognition(TestImage, m, A, Eigenfaces,33);
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
axes(handles.axes33)
imshow(SelectedImage);
% str = strcat('Matched image is : ',OutputName);
% disp(str)
%% 2-33
TrainDatabasePath =[cd '\data2'];
TestDatabasePath = [cd '\test'];
TestImage = num2str(n_pic+1);
TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
im = imread([cd '\Test\' num2str(n_pic+1) '.jpg']);
T = CreateDatabase2(TrainDatabasePath);
[m V_PCA V_Fisher ProjectedImages_Fisher] = FisherfaceCore2(T);
OutputName = Recognition2(TestImage, m, V_PCA, V_Fisher, ProjectedImages_Fisher);
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
axes(handles.axes3)
imshow(SelectedImage);
axes(handles.axes16);%% for output function ****************
function np_Callback(hObject, eventdata, handles)
% hObject handle to np (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of np as text
% str2double(get(hObject,'String')) returns contents of np as a double
% --- Executes during object creation, after setting all properties.
function np_CreateFcn(hObject, eventdata, handles)
% hObject handle to np (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes when user attempts to close figure1.
function figure1_CloseRequestFcn(hObject, eventdata, handles)
% hObject handle to figure1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: delete(hObject) closes the figure
dos(['rename ' cd '\facefind.dll facefind.m'])
delete(hObject);
vid=imaqfind;
stop(vid)
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
clc
try
ddddddddd
im=get(handles.axes16,'userdata');
catch
[inputfilename,dirname] = uigetfile('*.*');
inputfilename = [dirname, inputfilename];
im = imread(inputfilename);
set(handles.axes16,'userdata',im)
end
% im = imresize(im ,[240 320]);
dir_pic=dir([cd '\test\*.jpg']);
n_pic=size(dir_pic,1);
imwrite(im,[cd '\test\' num2str(n_pic+1) '.jpg'])
%% input 1
axes(handles.axesi1),imshow(im)
%% data-11
TrainDatabasePath =[cd '\data'];
TestDatabasePath = [cd '\test'];
TestImage = num2str(n_pic+1);
TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
T = CreateDatabase(TrainDatabasePath);
[m, A, Eigenfaces] = EigenfaceCore(T);
OutputName = Recognition(TestImage, m, A, Eigenfaces,11);
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
% axes(handles.axesi1)
% imshow(im)
% title('Test Image');
axes(handles.axes11)
imshow(SelectedImage);
title('Equivalent Image');
%% 2-11
TrainDatabasePath =[cd '\data'];
TestDatabasePath = [cd '\test'];
TestImage = num2str(n_pic+1);
TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
T = CreateDatabase2(TrainDatabasePath);
[m V_PCA V_Fisher ProjectedImages_Fisher] = FisherfaceCore2(T);
OutputName = Recognition2(TestImage, m, V_PCA, V_Fisher, ProjectedImages_Fisher);
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
axes(handles.axes1)
imshow(SelectedImage);
%% data2-13
% axes(handles.axesi1)
% TrainDatabasePath =[cd '\data2'];
% TestDatabasePath = [cd '\test'];
%
% TestImage = num2str(n_pic+1);
% TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
% im = imread([cd '\Test\' num2str(n_pic+1) '.jpg']);
% T = CreateDatabase(TrainDatabasePath);
% [m, A, Eigenfaces] = EigenfaceCore(T);
% OutputName = Recognition(TestImage, m, A, Eigenfaces,13);
%
% SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
% SelectedImage = imread(SelectedImage);
% axes(handles.axes13)
% imshow(SelectedImage);
%% input 2
% axes(handles.axesi2)
% %% data-21
% TrainDatabasePath =[cd '\data'];
% TestDatabasePath = [cd '\test'];
%
% TestImage = num2str(n_pic+1);
% TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
%
% T = CreateDatabase(TrainDatabasePath);
% [m, A, Eigenfaces] = EigenfaceCore(T);
% OutputName = Recognition(TestImage, m, A, Eigenfaces,21);
%
% SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
% SelectedImage = imread(SelectedImage);
% % axes(handles.axesi1)
% % imshow(im)
% % title('Test Image');
% axes(handles.axes21)
%
% imshow(SelectedImage);
% title('Equivalent Image');
%% data1-22
axes(handles.axesi2)
TrainDatabasePath =[cd '\data1'];
TestDatabasePath = [cd '\test'];
TestImage = num2str(n_pic+1);
TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
% im = imread([cd '\Test\' num2str(n_pic+1) '.jpg']);
T = CreateDatabase(TrainDatabasePath);
[m, A, Eigenfaces] = EigenfaceCore(T);
OutputName = Recognition(TestImage, m, A, Eigenfaces,22);
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
axes(handles.axes22)
imshow(SelectedImage);
%% 2-22
TrainDatabasePath =[cd '\data1'];
TestDatabasePath = [cd '\test'];
TestImage = num2str(n_pic+1);
TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
T = CreateDatabase2(TrainDatabasePath);
[m V_PCA V_Fisher ProjectedImages_Fisher] = FisherfaceCore2(T);
OutputName = Recognition2(TestImage, m, V_PCA, V_Fisher, ProjectedImages_Fisher);
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
axes(handles.axes2)
imshow(SelectedImage);
%% input 3
% axes(handles.axesi3)
% %% data-31
% TrainDatabasePath =[cd '\data'];
% TestDatabasePath = [cd '\test'];
%
% TestImage = num2str(n_pic+1);
% TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
%
% T = CreateDatabase(TrainDatabasePath);
% [m, A, Eigenfaces] = EigenfaceCore(T);
% OutputName = Recognition(TestImage, m, A, Eigenfaces,31);
%
% SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
% SelectedImage = imread(SelectedImage);
% % axes(handles.axesi1)
% % imshow(im)
% % title('Test Image');
% axes(handles.axes31)
%
% imshow(SelectedImage);
% title('Equivalent Image');
%% data1-32
% axes(handles.axesi3)
% TrainDatabasePath =[cd '\data1'];
% TestDatabasePath = [cd '\test'];
%
% TestImage = num2str(n_pic+1);
% TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
% % im = imread([cd '\Test\' num2str(n_pic+1) '.jpg']);
% T = CreateDatabase(TrainDatabasePath);
% [m, A, Eigenfaces] = EigenfaceCore(T);
% OutputName = Recognition(TestImage, m, A, Eigenfaces);
%
% SelectedImage = strcat(TrainDatabasePath,'\',OutputName,32);
% SelectedImage = imread(SelectedImage);
% axes(handles.axes32)
% imshow(SelectedImage);
%% 1-33
axes(handles.axesi3)
TrainDatabasePath =[cd '\data2'];
TestDatabasePath = [cd '\test'];
TestImage = num2str(n_pic+1);
TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
im = imread([cd '\Test\' num2str(n_pic+1) '.jpg']);
T = CreateDatabase(TrainDatabasePath);
[m, A, Eigenfaces] = EigenfaceCore(T);
OutputName = Recognition(TestImage, m, A, Eigenfaces,33);
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
axes(handles.axes33)
imshow(SelectedImage);
% str = strcat('Matched image is : ',OutputName);
% disp(str)
%% 2-33
TrainDatabasePath =[cd '\data2'];
TestDatabasePath = [cd '\test'];
TestImage = num2str(n_pic+1);
TestImage = strcat(TestDatabasePath,'\',char(TestImage),'.jpg');
im = imread([cd '\Test\' num2str(n_pic+1) '.jpg']);
T = CreateDatabase2(TrainDatabasePath);
[m V_PCA V_Fisher ProjectedImages_Fisher] = FisherfaceCore2(T);
OutputName = Recognition2(TestImage, m, V_PCA, V_Fisher, ProjectedImages_Fisher);
SelectedImage = strcat(TrainDatabasePath,'\',OutputName);
SelectedImage = imread(SelectedImage);
axes(handles.axes3)
imshow(SelectedImage);
axes(handles.axes16);%% for output function ****************