基于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('人肤色分割')
二值化图像转化为对应的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]