基于MATLAB的人脸识别源程序Word格式.doc

上传人:b****2 文档编号:14178714 上传时间:2022-10-19 格式:DOC 页数:16 大小:76.50KB
下载 相关 举报
基于MATLAB的人脸识别源程序Word格式.doc_第1页
第1页 / 共16页
基于MATLAB的人脸识别源程序Word格式.doc_第2页
第2页 / 共16页
基于MATLAB的人脸识别源程序Word格式.doc_第3页
第3页 / 共16页
基于MATLAB的人脸识别源程序Word格式.doc_第4页
第4页 / 共16页
基于MATLAB的人脸识别源程序Word格式.doc_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于MATLAB的人脸识别源程序Word格式.doc

《基于MATLAB的人脸识别源程序Word格式.doc》由会员分享,可在线阅读,更多相关《基于MATLAB的人脸识别源程序Word格式.doc(16页珍藏版)》请在冰豆网上搜索。

基于MATLAB的人脸识别源程序Word格式.doc

rr(i,j)=R1(i,j)/RGB(i,j);

gg(i,j)=G1(i,j)/RGB(i,j);

end

rrr=mean(rr);

r=mean(rrr);

ggg=mean(gg);

g=mean(ggg);

2.均值和协方差

t1=imread('

D:

\matlab\皮肤库\1.jpg'

);

[r1,g1]=rgb_RGB(t1);

t2=imread('

\matlab\皮肤库\2.jpg'

[r2,g2]=rgb_RGB(t2);

t3=imread('

\matlab\皮肤库\3.jpg'

[r3,g3]=rgb_RGB(t3);

t4=imread('

\matlab\皮肤库\4.jpg'

[r4,g4]=rgb_RGB(t4);

t5=imread('

\matlab\皮肤库\5.jpg'

[r5,g5]=rgb_RGB(t5);

t6=imread('

\matlab\皮肤库\6.jpg'

[r6,g6]=rgb_RGB(t6);

t7=imread('

\matlab\皮肤库\7.jpg'

[r7,g7]=rgb_RGB(t7);

t8=imread('

\matlab\皮肤库\8.jpg'

[r8,g8]=rgb_RGB(t8);

t9=imread('

\matlab\皮肤库\9.jpg'

[r9,g9]=rgb_RGB(t9);

t10=imread('

\matlab\皮肤库\10.jpg'

[r10,g10]=rgb_RGB(t10);

t11=imread('

\matlab\皮肤库\11.jpg'

[r11,g11]=rgb_RGB(t11);

t12=imread('

\matlab\皮肤库\12.jpg'

[r12,g12]=rgb_RGB(t12);

t13=imread('

\matlab\皮肤库\13.jpg'

[r13,g13]=rgb_RGB(t13);

t14=imread('

\matlab\皮肤库\14.jpg'

[r14,g14]=rgb_RGB(t14);

t15=imread('

\matlab\皮肤库\15.jpg'

[r15,g15]=rgb_RGB(t15);

t16=imread('

\matlab\皮肤库\16.jpg'

[r16,g16]=rgb_RGB(t16);

t17=imread('

\matlab\皮肤库\17.jpg'

[r17,g17]=rgb_RGB(t17);

t18=imread('

\matlab\皮肤库\18.jpg'

[r18,g18]=rgb_RGB(t18);

t19=imread('

\matlab\皮肤库\19.jpg'

[r19,g19]=rgb_RGB(t19);

t20=imread('

\matlab\皮肤库\20.jpg'

[r20,g20]=rgb_RGB(t20);

t21=imread('

\matlab\皮肤库\21.jpg'

[r21,g21]=rgb_RGB(t21);

t22=imread('

\matlab\皮肤库\22.jpg'

[r22,g22]=rgb_RGB(t22);

t23=imread('

\matlab\皮肤库\23.jpg'

[r23,g23]=rgb_RGB(t23);

t24=imread('

\matlab\皮肤库\24.jpg'

[r24,g24]=rgb_RGB(t24);

t25=imread('

\matlab\皮肤库\25.jpg'

[r25,g25]=rgb_RGB(t25);

t26=imread('

\matlab\皮肤库\26.jpg'

[r26,g26]=rgb_RGB(t26);

t27=imread('

\matlab\皮肤库\27.jpg'

[r27,g27]=rgb_RGB(t27);

r=cat(1,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r27);

g=cat(1,g1,g2,g3,g4,g5,g6,g7,g8,g9,g10,g11,g12,g13,g14,g15,g16,g17,g18,g19,g20,g21,g22,g23,g24,g25,g26,g27);

m=mean([r,g])

n=cov([r,g])

3.求质心

function[xmean,ymean]=center(bw)

bw=bwfill(bw,'

holes'

area=bwarea(bw);

[mn]=size(bw);

bw=double(bw);

xmean=0;

ymean=0;

m,

n,

xmean=xmean+j*bw(i,j);

ymean=ymean+i*bw(i,j);

end;

if(area==0)

xmean=0;

ymean=0;

else

xmean=xmean/area;

ymean=ymean/area;

xmean=round(xmean);

ymean=round(ymean);

4.求偏转角度

function[theta]=orient(bw,xmean,ymean)

a=0;

b=0;

c=0;

a=a+(j-xmean)^2*bw(i,j);

b=b+(j-xmean)*(i-ymean)*bw(i,j);

c=c+(i-ymean)^2*bw(i,j);

b=2*b;

theta=atan(b/(a-c))/2;

theta=theta*(180/pi);

%从幅度转换到角度

5.找区域边界

function[left,right,up,down]=bianjie(A)

[mn]=size(A);

left=-1;

right=-1;

up=-1;

down=-1;

fori=1:

if(A(i,j)~=0)

left=j;

break;

 

end;

if(left~=-1)break;

forj=n:

-1:

1,

if(A(i,j)~=0)

right=j;

if(right~=-1)break;

up=i;

if(up~=-1)

fori=m:

forj=1:

down=i;

if(down~=-1)

6.求起始坐标

functionnewcoord=checklimit(coord,maxval)

newcoord=coord;

if(newcoord<

1)

newcoord=1;

if(newcoord>

maxval)

newcoord=maxval;

7.模板匹配

function[ccorr,mfit,RectCoord]=mobanpipei(mult,frontalmodel,ly,wx,cx,cy,angle)

frontalmodel=rgb2gray(frontalmodel);

model_rot=imresize(frontalmodel,[lywx],'

bilinear'

%调整模板大小

model_rot=imrotate(model_rot,angle,'

%旋转模板

[l,r,u,d]=bianjie(model_rot);

%求边界坐标

bwmodel_rot=imcrop(model_rot,[lu(r-l)(d-u)]);

%选择模板人脸区域

[modx,mody]=center(bwmodel_rot);

%求质心

[morig,norig]=size(bwmodel_rot);

%产生一个覆盖了人脸模板的灰度图像

mfit=zeros(size(mult));

mfitbw=zeros(size(mult));

[limy,limx]=size(mfit);

%计算原图像中人脸模板的坐标

startx=cx-modx;

starty=cy-mody;

endx=startx+norig-1;

endy=starty+morig-1;

startx=checklimit(startx,limx);

starty=checklimit(starty,limy);

endx=checklimit(endx,limx);

endy=checklimit(endy,limy);

fori=starty:

endy,

forj=startx:

endx,

mfit(i,j)=model_rot(i-starty+1,j-startx+1);

ccorr=corr2(mfit,mult) 

%计算相关度

[l,r,u,d]=bianjie(bwmodel_rot);

sx=startx+l;

sy=starty+u;

RectCoord=[sxsy(r-1)(d-u)];

%产生矩形坐标

8.主程序

clear;

[fname,pname]=uigetfile({'

*.jpg'

;

'

*.bmp'

*.tif'

*.gif'

},'

Plea

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1