提取下图中的人脸,大致操作步骤: rgb**--ycbcr--获取cr分量--根据肤色范围提取ROI–二值化--小对象去除--填充坑洞--垂直投影--根据投影分割成薯条--根据垂直投影分割图使用find找到最高行、最低行--根据坐标分割原图** [

](http://www.wjgbaby.com/wp-content/uploads/2017/12/17121301-300x201.jpg)
](http://www.wjgbaby.com/wp-content/uploads/2017/12/17121301-300x201.jpg)

clear,clc,close all;
f=imread(‘qqm.jpg’);
imshow(f);
fycc=rgb2ycbcr(f); %rgb->ycbcr
cr=fycc(:,:,3); %获取cr分量
cr(cr>140&cr<160)=255; %根据肤色范围提取ROI
cr(cr~=255)=0;
cr=im2bw(cr);
cr=bwareaopen(cr,200); %删除小对象
cr=imfill(cr,’holes’); %填充坑洞
figure,imshow(cr);

sumh=sum(cr);
figure,plot(sumh); %垂直投影
[h.w]=size(cr);
a=1;b=1;
while(sumh(a)==0)
a=a+1;
end
b=a;
while(sumh(b)>0)
b=b+1;
end
crsplit=cr(:,a:b);
figure,imshow(crsplit);
[rs,cs]=find(crsplit); %使用find找到最高行,最低行
c=min(rs);d=max(rs);
result=f(c:d,a:b,:);
figure,imshow(result);

结果如下:[

](http://www.wjgbaby.com/wp-content/uploads/2017/12/17121302-300x191.jpg)
](http://www.wjgbaby.com/wp-content/uploads/2017/12/17121302-300x191.jpg)