基于YCbCr色彩模型的简易肤色识别器

一、实验方法

       实验共选取了12张图像,利用画笔工具在每幅图像上选取5个点,并分别记录RGB值。取点方式如下图所示:

       总共70个点,R,G,B的值分别如下表所示:

         RGB色彩模型和YCbCr色彩模型的互化变换公式:

         将上述70个点分别带入公式,分别求出Y,Cb,Cr的最大值和最小值如下表所示:

          测试的5张实验效果图分别如下:

         在算法对场景照明的敏感度方面,同一图片在不同场景照明下的对比图分别如下所示:

          当在场景照明发生变化,变暗的情况下肤色与背景差异变小,难以监测到所有的皮肤,所以所设计的算法对场景照明具有较低的适应性。

 二、程序代码

files=dir('C:UserskkzhangDesktopfuse*.jpg');
for i=1:length(files)
    s=files(i).name;
    RGB=imread(s);
    YCbCr=rgb2ycbcr(RGB);
    Y=YCbCr(:,:,1);
    Cb=YCbCr(:,:,2);
    Cr=YCbCr(:,:,3);
    imshow(RGB);title('RGB');
    figure,imshow(YCbCr);title('YCbCr'); 
    I=RGB;
    rows=size(YCbCr,1);
    columns=size(YCbCr,2); 
    for i=1:rows
        for j=1:columns
            if    87<Y(i,j)&&Y(i,j)<230&&93<Cb(i,j)&&Cb(i,j)<123&&134<Cr(i,j)&&Cr(i,j)<173 %肤色范围
                I(i,j,:)=255;
            else 
                I(i,j,:)=0;
            end
        end
    end
    figure,imshow(I); 
end

实验图像:https://pan.baidu.com/s/1l4rbTBjOYK-cGKApD2e-_A

 怀绝望之心,行希望之事。

转载需说明出处,笔者总结之前的知识,与大家分享,有问题的可以留给我哦~

原文地址:https://www.cnblogs.com/lemonzhang/p/9254702.html