在经过人们大量的实验之后,在YCbCr颜色空间属于肤色的范围是:Cr属于(105,127),Cb属于(137,162),通过判断像素点的Cr、Cb值是否在上述范围之内,来判断该像素点是否是肤色。 编写肤色检测模型程序如下: - clc,clear,close all % 清屏、清工作区、关闭窗口
- warning off % 消除警告
- feature jit off % 加速代码执行
- im=imread('1.jpg'); % 读图
- im_gray=rgb2gray(im); % 转为灰度图像
- R=im(:,:,1);G=im(:,:,2);B=im(:,:,3);
- ycrcb_im = rgb2ycrcb(R,G,B);
- ycrcb_im = im2uint8(ycrcb_im);
- Cr = ycrcb_im(:,:,2);
- Cb = ycrcb_im(:,:,3);
- bw = zeros(size(R,1),size(R,2)); % 初始化矩阵
- for i =1:size(R,1)
- for j=1:size(R,2)
- if Cr(i,j)>=105&&Cr(i,j)<=118 && Cb(i,j)>=105&&Cb(i,j)<=162
- bw(i,j)=1;
- else
- bw(i,j)=0;
- end
- end
- end
- subplot(121),subimage(im) % 显示图像
- axis off
- title('RGB')
- subplot(122),subimage(bw)
- axis off
- title('BW')
复制代码
|