人脸识别MATLAB代码

  • 格式:doc
  • 大小:68.50 KB
  • 文档页数:11

下载文档原格式

  / 24
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.色彩空间转换

function [r,g]=rgb_RGB(Ori_Face)

R=Ori_Face(:,:,1);

G=Ori_Face(:,:,2);

B=Ori_Face(:,:,3);

R1=im2double(R); % 将uint8型转换成double型G1=im2double(G);

B1=im2double(B);

RGB=R1+G1+B1;

row=size(Ori_Face,1); % 行像素

column=size(Ori_Face,2); % 列像素

for i=1:row

for j=1:column

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

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

end

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('D:\matlab\皮肤库\2.jpg');[r2,g2]=rgb_RGB(t2); t3=imread('D:\matlab\皮肤库\3.jpg');[r3,g3]=rgb_RGB(t3); t4=imread('D:\matlab\皮肤库\4.jpg');[r4,g4]=rgb_RGB(t4); t5=imread('D:\matlab\皮肤库\5.jpg');[r5,g5]=rgb_RGB(t5); t6=imread('D:\matlab\皮肤库\6.jpg');[r6,g6]=rgb_RGB(t6); t7=imread('D:\matlab\皮肤库\7.jpg');[r7,g7]=rgb_RGB(t7); t8=imread('D:\matlab\皮肤库\8.jpg');[r8,g8]=rgb_RGB(t8);

t9=imread('D:\matlab\皮肤库\9.jpg');[r9,g9]=rgb_RGB(t9);

t10=imread('D:\matlab\皮肤库\10.jpg');[r10,g10]=rgb_RGB(t10);

t11=imread('D:\matlab\皮肤库\11.jpg');[r11,g11]=rgb_RGB(t11);

t12=imread('D:\matlab\皮肤库\12.jpg');[r12,g12]=rgb_RGB(t12);

t13=imread('D:\matlab\皮肤库\13.jpg');[r13,g13]=rgb_RGB(t13);

t14=imread('D:\matlab\皮肤库\14.jpg');[r14,g14]=rgb_RGB(t14);

t15=imread('D:\matlab\皮肤库\15.jpg');[r15,g15]=rgb_RGB(t15);

t16=imread('D:\matlab\皮肤库\16.jpg');[r16,g16]=rgb_RGB(t16);

t17=imread('D:\matlab\皮肤库\17.jpg');[r17,g17]=rgb_RGB(t17);

t18=imread('D:\matlab\皮肤库\18.jpg');[r18,g18]=rgb_RGB(t18);

t19=imread('D:\matlab\皮肤库\19.jpg');[r19,g19]=rgb_RGB(t19);

t20=imread('D:\matlab\皮肤库\20.jpg');[r20,g20]=rgb_RGB(t20);

t21=imread('D:\matlab\皮肤库\21.jpg');[r21,g21]=rgb_RGB(t21);

t22=imread('D:\matlab\皮肤库\22.jpg');[r22,g22]=rgb_RGB(t22);

t23=imread('D:\matlab\皮肤库\23.jpg');[r23,g23]=rgb_RGB(t23);

t24=imread('D:\matlab\皮肤库\24.jpg');[r24,g24]=rgb_RGB(t24);

t25=imread('D:\matlab\皮肤库\25.jpg');[r25,g25]=rgb_RGB(t25);

t26=imread('D:\matlab\皮肤库\26.jpg');[r26,g26]=rgb_RGB(t26);

t27=imread('D:\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);

[m n] =size(bw);

bw=double(bw);

xmean =0; ymean = 0;

for i=1:m,

for j=1:n,

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

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

end;

end;

if(area==0)

xmean=0;

ymean=0;

else

xmean = xmean/area;

ymean = ymean/area;

xmean = round(xmean);

ymean = round(ymean);

end

4. 求偏转角度

function [theta] = orient(bw,xmean,ymean) [m n] =size(bw);

bw=double(bw);

a = 0;

b = 0;

c = 0;

for i=1:m,

for j=1:n,

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);