close all
clear all
clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读入图像
I=imread('41.jpg'); %读入图像
[Ix,Iy,Iz]=size(I);
if Ix>400&Iy>300
I=imresize(I,[400,Iy*400/Ix],'nearest');%图像大小变换
end
figure
imshow(I)
title('原始图像')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 皮肤检测
I=double(I); %整数转化为小数
[hue,s,v]=rgb2hsv(I); %RGB颜色空间转化为HSV颜色空间
YCBCR = rgb2ycbcr(I);; %RGB颜色空间转化为YCbCr颜色空间
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; %RGB颜色空间转化为YCrCb颜色空间
[w h]=size(I(:,:,1)); %图像大小
for i=1:w
for j=1:h
if 145<=cr(i,j)&cr(i,j)<=170&145<=cb(i,j)&cb(i,j)<=195&0.01<=hue(i,j)&hue(i,j)<=0.15 %分离出黄色皮肤区域
segment(i,j)=1; %皮肤区域
else
segment(i,j)=0;
end
end
end
figure
imshow(segment);
skin=segment;
skin=bwareaopen(skin,round(w*h/900));%去除少像素连通区域
se=strel('disk',5);
skin=imdilate(skin,se); %膨胀作用
im(:,:,1)=I(:,:,1).*skin;
im(:,:,2)=I(:,:,2).*skin;
im(:,:,3)=I(:,:,3).*skin;
figure
imshow(uint8(im));
title('皮肤区域')
人脸检测中的皮肤检测程序
需积分: 50 136 浏览量
2009-10-09
16:41:58
上传
评论 1
收藏 172KB RAR 举报
lihuan317
- 粉丝: 7
- 资源: 23
最新资源
- 黑苹果OC引导-0.9.1
- Redis 服务等过期策略和内存淘汰策略解析
- debian配置FTP服务
- 基于Matlab和CPLEX的2变量机组组合调度程序(注释完全,可直接运行)(文档加Matlab源码)
- 基于TMS320F2812设计复合频率信号频率计AD09硬件(原理图+PCB )+CCS软件源码+详细设计文档资料.zip
- MultivariateAnalysis(目标规划、多元分析与插值的相关例子)(注释完全,可直接运行)(文档加Matlab源码)
- 黑苹果OC引导-0.9.2
- 数据库实验-王珊.doc
- unity读取excel工具 使用3.5即可
- Matplotlib 是一个 Python 的绘图库 Matplotlib 绘图指南与功能介绍.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈