人脸脸部的皮肤具有一定的规律(都落在某个YCbCr表示的一个椭圆区域内),符合此规律的辨识为人脸
程序:(自己写, 但结果颜色很奇怪)
function [] = detection()
clear;
close all;
l = imread('2-2.jpg');
figure(1);
imshow(l);
l=double(l);
k=rgb2ycbcr(l);
imshow(k);
f=zeros(267,400);
for i= 1:267
for j=1:400
%Y=0.257*l(i,j,1)+0.504*l(i,j,2)+0.098*l(i,j,3);
%Cb=0.148*l(i,j,1)-0.291*l(i,j,2)+0.439*l(i,j,3);
%Cr=0.439*l(i,j,1)-0.368*l(i,j,2)-0.071*l(i,j,3);
Y=k(i,j,1);
Cb=k(i,j,2);
Cr=k(i,j,3);
%Wci(Y)
if(Y<125)
Wcb =23+(Y-16)*(46.97-23)/(125-16);
Wcr =20+(Y-16)*(38.76-20)/(125-16);
aCb =108+(125-Y)*(118-108)/(125-16);%aCi(Y)(Ci(Y)平均数)
aCr =154-(125-Y)*(154-144)/(125-16);
end
if(Y>188)
Wcb =14+(235-Y)*(46.97-14)/(235-188);
Wcr =10+(235-Y)*(38.76-10)/(235-188);
aCb =108+(Y-188)*(118-108)/(235-188);
aCr =154-(Y-188)*(154-132)/(235-188);
end
%Cia(Y)代表Ci'(Y)
if (125&l

该博客介绍了一个基于Matlab的人脸分割程序,利用YCbCr色彩空间和椭圆模型来识别并分割出人脸区域。程序通过计算YCbCr通道的权重和阈值,将图像像素映射到椭圆区域内,实现人脸检测。最终结果展示了一个原始图像及其经过人脸分割后的效果。
最低0.47元/天 解锁文章
1039

被折叠的 条评论
为什么被折叠?



