Code covered by the BSD License
-
[L]=lineint(I,C,r,n,part)
function to calculate the normalised line integral around a circular contour
-
[O]=drawcircle(I,C,r,n)
function to generate the pixels on the boundary of a regular polygon of n sides
-
[b,r,blur]=partiald(I,C,rmin,...
function to find the partial derivative
-
[ci,cp,out]=thresh(I,rmin,rma...
function to search for the centre coordinates of the pupil and the iris
-
[cp]=search(im,rmin,rmax,x,y,...
function to detect the pupil boundary
-
getEigenEye.m
% Purpose : Detect Pupil from given image
-
getEye(img,out)
% Purpose : find position of Pupil within an Image
-
getEyes(left,right)
% Purpose : Detection of both Pupils from two detail images
-
getFeatures.m
% Purpose : Find boxes of interest for Eyes, Mouth and Nose
-
getMouth(pic)
% Purpose : find position of Mouth within an Image
-
getNose(pic)
% Purpose : find position of Mouth within an Image
-
getPoints.m
% Purpose : Detection distinct points for Mouth, Nostrils, Eyes
-
getResolution.m
% Purpose : Finds the highest possible resolution of an video input device.
-
eyetracking.m
-
View all files
from
Fast Eyetracking
by Peter Aldrian
Extract feature points from faces to track eye's
movement
|
| getMouth(pic)
|
function [x, y, bw] = getMouth(pic)
%
% Purpose : find position of Mouth within an Image
%
% Uses (syntax) :
% [x, y, bw] = getMouth(pic)
%
% Input Parameters :
% pic := RGB-Image (m-by-n-by-3 matrix); bounding box of Mouth
%
% Return Parameters :
% x := x-value of Eye's center
% y := y-value of Eye's center
% bw := Binary-Image (m-by-n matrix)
%
% Description and algorithms:
% Calculates the position of the Mouth based on the Image's Hue and
% Saturation
%
% Author : Peter Aldrian, Uwe Meier, Andre Pura
% Date : August 12, 2009
% Version : 1.0
% -------------------------------------------------------------------------
% (c) 2009, Meier, University of Leoben, Leoben, Austria
% email: aldrian.peter@gmail.com uwemei@gmail.com andre.pura@gmail.com
% -------------------------------------------------------------------------
si = size(pic);
% Convert RGB to HSV
[h,s,v] = rgb2hsv(pic);
% Erode Hue
se = strel('disk',5);
erodedHue = imerode(h,se);
% Dilate Hue
se = strel('disk',8);
dilatedErodedHue = imdilate(erodedHue,se);
% Convert Image to binary Image
bw = im2bw(dilatedErodedHue,graythresh(dilatedErodedHue));
% multiply found values with saturation and only use pixel which have a
% value above a certain thresh
s = s .* bw;
maximum = max(max(s));
s(s<maximum*0.5)=0;
% Find non-zero pixels and calculate mean point
[y x] = find(s);
x = mean(x);
y = mean(y);
clearvars -except x y bw
end
|
|
Contact us at files@mathworks.com