人脸检测
来源:互联网 发布:苹果键盘能在windows 编辑:程序博客网 时间:2024/05/22 16:43
function facedetec() sum=0; % clc,close all; iptsetpref('ImshowBorder', 'tight') f=imread('faces.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);
0 0
- 人脸检测的harr检测函数
- 人脸检测or五官检测
- OpenCV:人脸检测和行人检测
- 目标检测之人脸检测
- 人脸识别--活体检测(眨眼检测)
- Adaboost 人脸检测
- 人脸检测技术
- 人脸检测
- 人脸检测
- 人脸器官检测
- opencv 检测人脸
- adaboost人脸检测
- 人脸检测
- HARR人脸检测
- opencv检测人脸
- 人脸检测
- 人脸检测 opencv
- javacv 人脸检测
- 一个简单的自定义控件
- intellij16用maven搭建spring+springmvc+mybatis框架
- 【杭电 2111】 Saving HDU
- 关于jquery绑定事件重复触发的处理
- CodeForces 611ANew Year and Days (新年存钱计划)
- 人脸检测
- 利用VBA自动保存outlook附件
- 使用hibernate根据配置的实体bean类无法自动创建数据库表
- spring事务管理UnexpectedRollbackException
- 让你提升命令行效率的Bash快捷键
- App中WebView元素的定位方式
- php依赖注入相关理解
- java JSON学习—List集合转换成JSON对象
- java设计模式-----单例设计模式