人脸皮肤颜色分层 matlab,Matlab基于肤色分割的人脸检测

%这个程序是对一段avi视频进行人脸检测,要求背景比较简单,

%因为把膨胀腐蚀的部分去掉了,所以实时性还不错,下面的图片是取的其中的某一帧。

clear all;

clc;

close all;

avi = aviread('1.avi');

video={avi.cdata};

L=length(video);

aviobj = avifile('E:\program\video_face\newmovie');

aviobj.Quality = 100;

aviobj.compression='None';

%for a = 1:length(video)      %总循环

for a = 1:(L/4)      %总循环

M=video{a};

%imshow(M);hold on;

I=double(M);

[hue,s,v]=rgb2hsv(I);

segment=zeros(size(I(:,:,1)));

im=zeros(size(I(:,:,1)));

face=zeros(size(I(:,:,1)));

cb =  0.148* I(:,:,1) - 0.291* I(:,:,2) + 0.439 * I(:,:,3) + 128;

cr =  0.439* I(:,:,1) - 0.368* I(:,:,2) - 0.071 * I(:,:,3) + 128;

[w,h]=size(I(:,:,1));

for i=1:w

for j=1:h

if  140<=cr(i,j) & cr(i,j)<=165 & 140<=cb(i,j) & cb(i,j)<=195 & 0.01<=hue(i,j) & hue(i,j)<=0.1

segment(i,j)=1;

else

segment(i,j)=0;

end

end

end

im(:,:,1)=I(:,:,1).*segment(:,:);

im(:,:,2)=I(:,:,2).*segment(:,:);

im(:,:,3)=I(:,:,3).*segment(:,:);

skin_region=segment;

bw_face=rgb2gray(im);

bw_face=bwboundaries(bw_face);

bw_face_sz=size(bw_face);

for k=1:bw_face_sz(1)

bnd=bw_face{k};

rb2=double(max(bnd));

lt2=double(min(bnd));

if (max(rb2-lt2)>20)

%  rectangle('Position',[lt2(2)左列,lt2(1)上行,rb2(2)-lt2(2)宽,rb2(1)-lt2(1)高],'EdgeColor','g'); %画矩形

%rectangle('Position',[lt2(2),lt2(1),rb2(2)-lt2(2),rb2(1)-lt2(1)],'EdgeColor','g');

j=lt2(2):rb2(2);M(lt2(1),j,1)=0;M(rb2(1),j,1)=0;

i=lt2(1):rb2(1);M(i,lt2(2),1)=0;M(i,rb2(2),1)=0;

j=lt2(2):rb2(2);M(lt2(1),j,2)=200;M(rb2(1),j,2)=200;

i=lt2(1):rb2(1);M(i,lt2(2),2)=200;M(i,rb2(2),2)=200;

j=lt2(2):rb2(2);M(lt2(1),j,3)=140;M(rb2(1),j,3)=140;

i=lt2(1):rb2(1);M(i,lt2(2),3)=140;M(i,rb2(2),3)=140;

end

end

%imshow(M);

aviobj = addframe(aviobj,uint8(M));

end  %总循环结束

aviobj=close(aviobj);

mov = aviread('E:\program\video_face\newmovie');

movie(mov);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值