对于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',[1,1,1])
- 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('人肤色分割')
复制代码
|