Halcom 发表于 2017-2-5 11:44:52

基于HSV颜色空间的人脸图像分割

   对于HSV彩色模型来说,它能将亮度信息和色度信息从输入图像中分离出来,并且能够独立表示。H分量代表图像的纯色彩信息,即其表示的是图像的颜色信息;S分量代表图像的饱和度信息,即其表示的是图像的颜色的深浅;V分量代表图像的亮度信息,即其表示的是图像的颜色的亮度。由此可见,H分量只表示目标的彩色信息,相对RGB颜色模型来说,受光照变化的影响缓慢。选择H分量作为人脸皮肤颜色分割的参数,可以降低光照影响的作用。    基于HSV颜色空间模型的人脸肤色分割如下:Ima=imread('1.jpg');               %% 读入图象
RIma=Ima(:,:,1);GIma=Ima(:,:,2);BIma=Ima(:,:,3);
HSVIma = rgb2hsv(Ima);                  %% 转换图象格式
H = HSVIma(:,:,1);                     %% 提取色相图象
V = HSVIma(:,:,3);                     %% 提取明亮度图象
%%
figure('color',)
subplot(2,2,1),imshow(Ima);title('输入的检测皮肤的图象');
subplot(2,2,2),imshow(H);title('色度H分量')
subplot(2,2,3),imshow(V);title('亮度V分量')
H1 = im2bw(H,0.16);                              % 二值化
H1 = ~H1;                                        % 取反操作
H1 = bwareaopen(H1,100);                        % 剔除小块
subplot(2,2,4),imshow(H1);title('人肤色分割')

Halcom 发表于 2017-2-5 11:45:46

二值化图像转化为对应的RGB图像,程序如下:
R = immultiply(RIma,H1);% 交运算
G = immultiply(GIma,H1);% 交运算
B = immultiply(BIma,H1);% 交运算
im = cat(3,R,G,B);      % 合成3-D数组
figure('color',)
subplot(1,2,1),imshow(Ima);title('输入的检测皮肤的图象');
subplot(1,2,2),imshow(im);title('输出的检测皮肤的图象');
页: [1]
查看完整版本: 基于HSV颜色空间的人脸图像分割