| 查看: 1501 | 回复: 9 | |||
[交流]
【求助】人脸检测 已有9人参与
|
| 大家好,我现在在做人脸识别,但是由于现在需要做一些关于人脸检测的部分,所以想向群里的群友请教一些关于人脸检测的代码,谢谢大家分享。 |
» 猜你喜欢
职称评审没过,求安慰
已经有51人回复
毕业后当辅导员了,天天各种学生超烦
已经有5人回复
26申博自荐
已经有3人回复
A期刊撤稿
已经有4人回复
垃圾破二本职称评审标准
已经有17人回复
投稿Elsevier的Neoplasia杂志,到最后选publishing options时页面空白,不能完成投稿
已经有22人回复
EST投稿状态问题
已经有7人回复
» 本主题相关价值贴推荐,对您同样有帮助:
基于子空间的人脸识别【无重复】
已经有104人回复
人脸识别电子书Handbook of Face Recognition 2nd Edition【已搜,无重复】
已经有36人回复
(讨论)人脸识别算法研究
已经有15人回复
有基于彩色空间做人脸识别的吗?来讨论一下大牛杨建的文章吧
已经有3人回复
人脸识别的热难点问题
已经有7人回复
【求助】人脸识别
已经有8人回复
【讨论】有做人脸识别,舌相医学诊断的吗,导师今天传给我一篇文章,说这个方向很新
已经有16人回复
【讨论】ZZ个人开发的人脸识别软件,大家可以来比较一下算法能力
已经有9人回复
2楼2010-11-29 08:21:03
3楼2010-12-01 17:24:22
just1do1it
禁虫 (正式写手)
★
小木虫(金币+0.5):给个红包,谢谢回帖交流
小木虫(金币+0.5):给个红包,谢谢回帖交流
|
本帖内容被屏蔽 |
4楼2010-12-17 13:26:20
image_pro
新虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 417.3
- 散金: 20
- 帖子: 37
- 在线: 7.8小时
- 虫号: 1171273
- 注册: 2010-12-16
- 专业: 控制理论与方法
5楼2010-12-21 16:01:22

6楼2010-12-22 13:54:19
★
小木虫(金币+0.5):给个红包,谢谢回帖交流
小木虫(金币+0.5):给个红包,谢谢回帖交流
|
本帖内容被屏蔽 |
7楼2010-12-22 19:04:39
8楼2013-04-12 12:04:06
★
小木虫: 金币+0.5, 给个红包,谢谢回帖
小木虫: 金币+0.5, 给个红包,谢谢回帖
|
基于pca人脸识别 %训练部分 获取特征脸 [m,n]=size(imread('F:/matlab/PCA_face_recognition/11/1.bmp')); %获取训练图片的尺寸 allsamples=[]; for i=1:10 str1='F:/matlab/PCA_face_recognition/11/'; str2=num2str(i); str3='.bmp'; a=imread(strcat(str1,str2,str3)); %读入训练图片 P1=a(1:m*n); P2=double(P1); allsamples=[allsamples;P2]; % allsamples中每一行代表一张图片 end samplemean=mean(allsamples); %平均图片 for i=1:10 xmean(i, =allsamples(i, -samplemean;end sigma=xmean*xmean'; [V,D]=eig(sigma); D1=diag(D); DR=flipud(D1); %特征值排序 VR=fliplr(V); dsum=0; for j=1:11; %选取一定数量的特征值 dsum=dsum+DR(j); if(dsum/sum(DR)>0.95) break; end end base=xmean'*VR(:,1:j)*diag(DR(1:j).^(-1/2)); for j=1:6 str1='F:/matlab/PCA_face_recognition/test/' str2=num2str(j); str3='.bmp'; tst=imread(strcat(str1,str2,str3)); P2=tst(1:m*n); b=double(P2); % b=double(reshape(tst,1,m*n)); test11=b-samplemean; %计算测试图片相对于平均值的偏差 c=test11*base; IMG=base*c'; %计算由特征向量重构的偏差值 IMG=IMG'; faa1=(test11-IMG)*(test11-IMG)'; if (faa1<=7300000) %设定阈值 tst(1:10,1:100)=0; %用黑色矩形边框标记人脸区域 tst(91:100,1:100)=0; tst(1:100,1:10)=0; tst(1:100,91:100)=0; end subplot(2,3,j); imshow(tst); %显示结果 y=mat2gray(test11); end |
9楼2013-04-14 17:16:35
v.cc
木虫 (著名写手)
- 应助: 3 (幼儿园)
- 金币: 1877.5
- 散金: 256
- 红花: 3
- 帖子: 1771
- 在线: 119.2小时
- 虫号: 4185710
- 注册: 2015-10-30
- 专业: 控制理论与方法
★
小木虫: 金币+0.5, 给个红包,谢谢回帖
小木虫: 金币+0.5, 给个红包,谢谢回帖
|
%%%% 肤色的人脸检测研究 % clc,close all; f=imread('face.jpg'); Ori_Face=f; copy=f; img=f; % figure,imshow(f); f=rgb2ycbcr(f);%rgb转换为ycbcr %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % figure,imshow(f); f_cb=f(:,:,2); f_cr=f(:,:,3); f= (f_cb>=100) & (f_cb<=127) & (f_cr>=138) &(f_cr<=170) ; %皮肤颜色在ycbcr色度空间的分布范围为:100<=cb<=127,138<=cr<=170 figure(1); imshow(f); %K=medfilt2(f,[5 5]);%5×5中值滤波,去除噪声 %figure,imshow(f); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%利用开闭运算的方法消除噪声 se=strel('square',3); f=imopen(f,se); f=imclose(f,se); figure(2),imshow(f); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%填孔处理 f=imfill(f,'holes'); figure(3),imshow(f); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%重构法 fe=imerode(f,ones(8,7)); fo=imopen(f,ones(8,7)); f=imreconstruct(fe,f); figure(4),imshow(f); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相关匹配,作用不大,可注释掉 %w=ones(3);%w为模板大小. %f=imfilter(f,w); %figure(5),imshow(f); % [M,N]=size(f); % f=fft2(f); % w=conj(fft2(w,M,N)); % g=real(ifft2(w.*f)); % gs=gscale(g); % figure,imshow(gs); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %人脸候选区筛选时,由于头部部分重合,以及头部与其他 %部分,例如衣服等的连接,对筛选造成了困难,故应先利用 %闭运算操作,断开连接,再进行处理. se1=strel('square',8); f=imerode(f,se1); f=imdilate(f,se1); figure(6),imshow(f); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%区域连通 [L,num]=bwlabeln(f,4); for i=1:num; [r,c]=find(L==i); r_temp=max(r)-min(r); c_temp=max(c)-min(c); temp=size(r); sum=sum+temp(1); area_sq=r_temp*c_temp; area=size(find(L==i),1); ratio=area/area_sq; if (r_temp/c_temp<0.8)|(r_temp/c_temp>2)|temp(1)>2000|temp(1)<200|ratio<0.6 %脸部区域<250的去掉,一般为手或其他干扰. %利用脸部宽长比的大概上下限来确定一个模板范围. %矩形面积area_sq=目标区长度*宽度,目标区面积为area,若area/area_sq<0.6,认为不是人脸区,删除之. for j=1:temp(1); L(r(j),c(j))=0; end else continue; end end L=bwperim(L,8);%边缘检测,检测出人脸的边缘区域 L=uint8(L); z=find(L( >0);L(z)=255; % ave=sum/num;%ave=696. figure(7),imshow(L); L_r=L; L_g=L; L_b=L; L_rgb=cat(3,L_r,L_g,L_b);%在原图上加框 % figure,imshow(L_rgb); img1_r=min(L_r+img(:,:,1),255); img1_g=min(L_g+img(:,:,2),255); img1_b=min(L_b+img(:,:,3),255); img1=cat(3,img1_r,img1_g,img1_b); figure(8),imshow(img1); |
10楼2016-04-15 12:31:15













回复此楼
=allsamples(i,