请选择 进入手机版 | 继续访问电脑版

Hello Mat

 找回密码
 立即注册
查看: 4737|回复: 1

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

[复制链接]

1278

主题

1504

帖子

90

金钱

管理员

Rank: 9Rank: 9Rank: 9

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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复

使用道具 举报

1278

主题

1504

帖子

90

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22549
 楼主| 发表于 2017-2-5 11:45:46 | 显示全部楼层
二值化图像转化为对应的RGB图像,程序如下:
  1. R = immultiply(RIma,H1);  % 交运算
  2. G = immultiply(GIma,H1);  % 交运算
  3. B = immultiply(BIma,H1);  % 交运算
  4. im = cat(3,R,G,B);        % 合成3-D数组
  5. figure('color',[1,1,1])
  6. subplot(1,2,1),imshow(Ima);title('输入的检测皮肤的图象');
  7. subplot(1,2,2),imshow(im);title('输出的检测皮肤的图象');
复制代码
算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Python|Opencv|MATLAB|Halcom.cn ( 蜀ICP备16027072号 )

GMT+8, 2024-3-28 22:05 , Processed in 0.230344 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表