源码如下: %%%%% Reading of a RGB image i=imread('face8.jpg'); I=rgb2gray(i); BW=im2bw(I); figure,imshow(BW) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% minimisation of background portion [n1 n2]=size(BW); r=floor(n1/10); c=floor(n2/10); x1=1;x2=r; s=r*c; for i=1:10 y1=1;y2=c; for j=1:10 if (y2<=c | y2>=9*c) | (x1==1 | x2==r*10) loc=find(BW(x1:x2, y1:y2)==0); [o p]=size(loc); pr=o*100/s; if pr<=100 BW(x1:x2, y1:y2)=0; r1=x1;r2=x2;s1=y1;s2=y2; pr1=0; end imshow(BW); end y1=y1+c; y2=y2+c; end x1=x1+r; x2=x2+r; end figure,imshow(BW) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% detection of face object L = bwlabel(BW,8); BB = regionprops(L, 'BoundingBox'); BB1=struct2cell(BB); BB2=cell2mat(BB1); [s1 s2]=size(BB2); mx=0; for k=3:4:s2-1 p=BB2(1,k)*BB2(1,k+1); if p>mx & (BB2(1,k)/BB2(1,k+1))<1.8 mx=p; j=k; end end figure,imshow(I); hold on; rectangle('Position',[BB2(1,j-2),BB2(1,j-1),BB2(1,j),BB2(1,j+1)],'EdgeColor','r' )
- 1
- zhangtonghui8162014-06-30处理误差很大啊,我尝试了其他很多图片,很多都直接找错地方。不过还是谢谢楼主的分享。
- 坤哥的洋葱头2014-07-16我感觉也是有一点点缺陷,不过都还好吧。
- jeetleo2012-07-19呵呵,好用好用,正在愁脸部识别的assignment怎么搞呢。
- gaetana2013-08-28挺好的,处理彩色图好,直接处理灰度图效果没有彩图好。
- chenyuwork2012-05-10能够定位图片中脸的位置,但并不是很精确,如果脸很小,锁定的区域会很大
- 粉丝: 1
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助