2个回答
展开全部
你这个问题说的太大了,按我的理解,是只检测有没有人脸,而不检测是谁是吧。那就比较简单。
计算的原理是当图中一片区域出现某个颜色的时候(比如黄种人就是黄色,这个颜色往往是个范围)则认为是有人。
我写的程序如下:
f = imread('123.jpg');%人脸的读取图像,往往是一个三维的,比如320*240*3,后面的3表示有rgb三种基色。
[m,n,k]=size(f);%得到维度值,比如m=320;n=240;k=3
jg=zeros(m,n);%定义一个m*n的0矩阵,当发现f里有颜色和人脸一样使,把当前值赋值为1
for i=1:m
for j=1:n
if f(i,j,1)>150 && f(i,j,1)<200 ... %这个颜色范围你可以自己调整,我用的数据
&& f(i,j,2)>150 && f(i,j,2)<200 ... %是我用屏幕吸色器随便找了人脸看了下大体范围
&& f(i,j,3)>100 && f(i,j,3)<150 %其中的三个点表示和下面的一行是一个语句。
jg(i,j)=1; %当发现f里有颜色和人脸一样使,把当前值赋值为1
end
end
end
%下面的程序完成:如果某个25的小方块内有20个点以上满足上面的条件则认为有人脸。
aa=0;
for i=1:m-5
for j=1:n-5
if sum(sum(jg(i:i+5,j:j+5)))>20
aa=1;
break;
end
end
end
if aa==0
'无人脸'
else
'有人脸'
end
计算的原理是当图中一片区域出现某个颜色的时候(比如黄种人就是黄色,这个颜色往往是个范围)则认为是有人。
我写的程序如下:
f = imread('123.jpg');%人脸的读取图像,往往是一个三维的,比如320*240*3,后面的3表示有rgb三种基色。
[m,n,k]=size(f);%得到维度值,比如m=320;n=240;k=3
jg=zeros(m,n);%定义一个m*n的0矩阵,当发现f里有颜色和人脸一样使,把当前值赋值为1
for i=1:m
for j=1:n
if f(i,j,1)>150 && f(i,j,1)<200 ... %这个颜色范围你可以自己调整,我用的数据
&& f(i,j,2)>150 && f(i,j,2)<200 ... %是我用屏幕吸色器随便找了人脸看了下大体范围
&& f(i,j,3)>100 && f(i,j,3)<150 %其中的三个点表示和下面的一行是一个语句。
jg(i,j)=1; %当发现f里有颜色和人脸一样使,把当前值赋值为1
end
end
end
%下面的程序完成:如果某个25的小方块内有20个点以上满足上面的条件则认为有人脸。
aa=0;
for i=1:m-5
for j=1:n-5
if sum(sum(jg(i:i+5,j:j+5)))>20
aa=1;
break;
end
end
end
if aa==0
'无人脸'
else
'有人脸'
end
像素数据
2023-08-25 广告
2023-08-25 广告
人脸识别技术在多个领域得到了应用:1. 安防监控:在公共场所,如地铁站、机场、火车站等,人脸识别技术可以用于识别嫌疑人或者追踪犯罪嫌疑人,以预防和打击恐怖袭击,保障公共安全。2. 门禁管理:人脸识别技术可以方便快捷地验证身份,使门禁管理更加...
点击进入详情页
本回答由像素数据提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询