Matlab肤色分割

一、目标:

  1. 肤色分割。找一张人脸图像,尝试进行肤色分割。

二、函数分析:

1、rgb2hsv()

    定义:将RGB颜色转换为HSV

    形式:HSV = rgb2hsv(RGB)

    描述:将RGB图像的红色、绿色和蓝色值转换为HSV图像的色调、饱和度和值(HSV)值。

RGB转HSV公式:

2、rgb2ycbcr()

    定义:将RGB颜色值转换为YCbCr颜色空间

    形式:YCBCR = rgb2ycbcr(RGB)

    描述:将RGB图像的红色、绿色和蓝色值转换为YCbCr图像的亮度(Y)和 色度(Cb和Cr)值。

RGB转换成YcbCr公式:

三、代码展示:

1、采用RGB转HSV方式

% 1、肤色分割。找一张人脸图像,尝试进行肤色分割。 
%
% @author: jackma
% @time:   2020-11-19 21:33
% @URL:   www.jackrma.com
% @Copyright:博客所有权归本人和CSDN所有,如有转载请在显著位置给出博文
%            链接和作者姓名,否则本人将付诸法律。
% @edit: 

close all
clear
I=imread('hg.jpg');
figure,imshow(I);
I=double(I);
%I2=I;
I2=rgb2hsv(I); % RGB转HSV
figure,imshow(I2);
R=I(:,:,1);
G=I(:,:,2);
B=I(:,:,3);
y=16+0.258*R+0.505*G+0.090*B;
cb=128-0.148*R+0.291*G+0.439*B;
cr=128+0.439*R-0.368*G-0.071*B;
[w, h]=size(I(:,:,1));
hue=I2(:,:,1);
saturation=I2(:,:,2);
value=I2(:,:,3);
for i=1:w
  for j=1:h
    if 140<=cr(i,j) && cr(i,j)<=165 && 140<=cb(i,j) && cb(i,j)<=195 && hue(i,j)<=0.1 && 0.01<=hue(i,j) && 0<=y(i,j) && y(i,j)<=255
      segment(i,j)=1;
     else
        segment(i,j)=0;
     end
  end
end
im(:,:,1)=I(:,:,1).*segment;
im(:,:,2)=I(:,:,2).*segment;
im(:,:,3)=I(:,:,3).*segment;
figure,imshow(segment);
figure,imshow(uint8(im));

1.2、结果展示及分析:

                                                   图1 原始图像

                                                 图2 HSV图像

                                                      图3 分割图

                                                   图4 肤色分割图

 

2、采用RGB转YCbcR方式

% 1、肤色分割。找一张人脸图像,尝试进行肤色分割。 
%
% @author: jackma
% @time:   2020-11-19 21:33
% @URL:   www.jackmark.top
% @edit: 
% YCBCR方式
img=imread('3.jpg');

% segmentasi
img=rgb2ycbcr(img);
figure, imshow(img); % YCBCR图像
for i=1:size(img,1)      % 根据肤色模型将图像二值化 
    for j= 1:size(img,2)
        cb = img(i,j,2);
        cr = img(i,j,3);
        if(~(cr > 132 && cr < 173 && cb > 76 && cb < 126))
            img(i,j,1)=235;
            img(i,j,2)=128;
            img(i,j,3)=128;
        end
    end
end
img=ycbcr2rgb(img);

% tampilkan citra
figure, imshow(img);

2.2、结果展示及分析:

                                            图5 原图

            

                                                 图6 RGB转YcbcR图   

    

                                                   图7 肤色分割图

具体整个项目代码放在CSDN分享中

链接:https://download.csdn.net/download/qq_38605089/13187130

(免积分,关注即可下载)

 

 

  • 13
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值