No BSD License  

Highlights from
face recognise system

image thumbnail
from face recognise system by morteza ahmadi
face recognise system

face_recognise_system(varargin)
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 ****************


Contact us at files@mathworks.com