⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fasttrainer.m

📁 eye detection sample in matlab. Eyetrackers can analyze a driver’s level of attentiveness while driv
💻 M
📖 第 1 页 / 共 2 页
字号:
    disp('cant go down');else    y=y+1;    coord(1,1)=y;    shownose(handles,x,y);end% --------------------------------------------------------------------function varargout = rNose_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(1,1);x=coord(1,2);if x == size(im,2)-18    disp('cant go right');else    x=x+1;    coord(1,2)=x;    shownose(handles,x,y);end% --------------------------------------------------------------------function varargout = lNose_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(1,1);x=coord(1,2);if x == 1    disp('cant go left');else    x=x-1;    coord(1,2)=x;    shownose(handles,x,y)end% --------------------------------------------------------------------function showmouth(handles,x,y)global im;axes(handles.xmouth);mouth = histeq(im(y:y+12,x:x+26),255);    imshow(mouth);    load EC;    [l,sc] = osuSVMclass(reshape(mouth,13*27,1),MC.n, MC.alpha, MC.sv,MC.b, MC.params);        scoretext=sprintf('(%d,%d) %.2f',y,x,sc);    set(handles.MouthScore,'string',scoretext);% --------------------------------------------------------------------function varargout = uMouth_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(2,1);x=coord(2,2);if y == 1    disp('cant go up');else    y=y-1;    coord(2,1)=y;    showmouth(handles,x,y);end% --------------------------------------------------------------------function varargout = dMouth_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(2,1);x=coord(2,2);if y == size(im,1)-13    disp('cant go down');else    y=y+1;    coord(2,1)=y;    showmouth(handles,x,y);end% --------------------------------------------------------------------function varargout = rMouth_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(2,1);x=coord(2,2);if x == size(im,2)-27    disp('cant go right');else    x=x+1;    coord(2,2)=x;    showmouth(handles,x,y);end% --------------------------------------------------------------------function varargout = lMouth_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(2,1);x=coord(2,2);if x == 1    disp('cant go left');else    x=x-1;    coord(2,2)=x;    showmouth(handles,x,y);end% --------------------------------------------------------------------function varargout = trainNotMouth_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(2,1);x=coord(2,2);load mouths;tmp = reshape(im(y:y+12,x:x+26),351,1);tmp = histeq(tmp,255);labels=[labels 2];samples=[samples tmp];save mouths labels samples%if (mod(size(samples,2),20)==0)load ECdisp('training...');[MC.alpha, MC.sv, MC.b, MC.params, MC.n]=osuSVMTrain(samples,labels, MC.params);save EC EC NC MC NBC[mouthy,mouthx]=locate(im,2);coord(2,1)=mouthy;coord(2,2)=mouthx;showmouth(handles,mouthx,mouthy);%end;% --------------------------------------------------------------------function varargout = shownb(handles,x,y)global im;    axes(handles.xnb);    nb = histeq(im(y:y+13,x:x+15),255);    imshow(nb);    load EC;    [l,sc] = osuSVMclass(reshape(nb,224,1),NBC.n, NBC.alpha, NBC.sv,NBC.b, NBC.params);    scoretext=sprintf('(%d,%d) %.2f',y,x,sc);    set(handles.NBScore,'string',scoretext);% --------------------------------------------------------------------function varargout = uNoseBridge_Callback(h, eventdata, handles, varargin)global coord;y=coord(5,1);x=coord(5,2);if y == 1    disp('cant go up');else    y=y-1;    coord(5,1)=y;    shownb(handles,x,y);end% --------------------------------------------------------------------function varargout = dNoseBridge_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(5,1);x=coord(5,2);if y == size(im,1)-13    disp('cant go down');else    y=y+1;    coord(5,1)=y;    shownb(handles,x,y);end% --------------------------------------------------------------------function varargout = rNoseBridge_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(5,1);x=coord(5,2);if x == size(im,2)-16    disp('cant go right');else    x=x+1;    coord(5,2)=x;    shownb(handles,x,y);end% --------------------------------------------------------------------function varargout = lNoseBridge_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(5,1);x=coord(5,2);if x == 1    disp('cant go left');else    x=x-1;    coord(5,2)=x;    shownb(handles,x,y);end% --------------------------------------------------------------------function varargout = trainNotNoseBridge_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(5,1);x=coord(5,2);load nbs;tmp = reshape(im(y:y+13,x:x+15),224,1);tmp = histeq(tmp,255);labels=[labels 2];samples=[samples tmp];save nbs labels samples%if (mod(size(samples,2),20)==0)load ECdisp('training...');[NBC.alpha, NBC.sv, NBC.b, NBC.params, NBC.n]=osuSVMTrain(samples,labels, NBC.params);save EC EC NC MC NBC[nby,nbx]=locate(im,5);%sprintf('righteye position is: %d %d',righteyey,righteyex);axes(handles.xnb);imshow(im(nby:nby+13,nbx:nbx+15));coord(5,1)=nby;coord(5,2)=nbx;%end;% --------------------------------------------------------------------function varargout = trainPerson_Callback(h, eventdata, handles, varargin)global im;global coord;load ECnose = reshape(im(coord(1,1):coord(1,1)+17,coord(1,2):coord(1,2)+12),234,1);mouth = reshape(im(coord(2,1):coord(2,1)+12,coord(2,2):coord(2,2)+26),351,1);lefteye = reshape(im(coord(3,1):coord(3,1)+14,coord(3,2):coord(3,2)+14),225,1);righteye = reshape(im(coord(4,1):coord(4,1)+14,coord(4,2):coord(4,2)+14),225,1);nb = reshape(im(coord(5,1):coord(5,1)+13,coord(5,2):coord(5,2)+15),224,1);tset=[nose;mouth;lefteye;righteye;nb];newLabel = 1;load trainingsetlabels=[labels newLabel];samples=[samples tset];%load TS %TS=TrainingSet%[TS.alpha, TS.sv, TS.b, TS.params, TS.n]=LinearSVC(samples,labels);%save TS TSsave trainingset samples labelsdisp('FINISHED TRAINING');% --TrainEye--------------------------------------------------------------function varargout = pushbutton55_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(4,1);x=coord(4,2);load eyestmp = reshape(im(y:y+14,x:x+14),225,1);tmp = histeq(tmp,255);labels=[1 labels];samples=[tmp samples];save eyes labels samplesif (mod(size(samples,2),20)==0)load EC[EC.alpha, EC.sv, EC.b, EC.params, EC.n]=osuSVMTrain(samples,labels, EC.params,2);save EC EC NC MC NBCend;% --------------------------------------------------------------------function varargout = TrainNoseBridge_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(5,1);x=coord(5,2);load nbs;tmp = reshape(im(y:y+13,x:x+15),224,1);tmp = histeq(tmp,255);labels=[1 labels];samples=[tmp samples];save nbs labels samplesif (mod(size(samples,2),20)==0)load EC[NBC.alpha, NBC.sv, NBC.b, NBC.params, NBC.n]=osuSVMTrain(samples,labels, NBC.params,2);save EC EC NC MC NBCend% --------------------------------------------------------------------function varargout = TrainLeftEye_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(3,1);x=coord(3,2);load eyestmp = reshape(im(y:y+14,x:x+14),225,1);tmp = histeq(tmp,255);labels=[1 labels];samples=[tmp samples];save eyes labels samplesif (mod(size(samples,2),20)==0)load EC[EC.alpha, EC.sv, EC.b, EC.params, EC.n]=osuSVMTrain(samples,labels, EC.params,2);save EC EC NC MC NBCend% --------------------------------------------------------------------function varargout = TrainMouth_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(2,1);x=coord(2,2);load mouths;tmp = reshape(im(y:y+12,x:x+26),351,1);tmp = histeq(tmp,255);labels=[1 labels];samples=[tmp samples];save mouths labels samplesif (mod(size(samples,2),20)==0)load EC[MC.alpha, MC.sv, MC.b, MC.params, MC.n]=osuSVMTrain(samples,labels, MC.params);save EC EC NC MC NBCend% --------------------------------------------------------------------function varargout = TrainNose_Callback(h, eventdata, handles, varargin)global im;global coord;y=coord(1,1);x=coord(1,2);load nosestmp = reshape(im(y:y+17,x:x+12),234,1);tmp = histeq(tmp,255);labels=[1 labels];samples=[tmp samples];save noses labels samplesif (mod(size(samples,2),20)==0)load EC[NC.alpha, NC.sv, NC.b, NC.params, NC.n]=osuSVMTrain(samples,labels, NC.params,2);save EC EC NC MC NBCend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -