Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2010-04-21
年龄: 37
帖子: 1
声望力: 0 ![]() |
![]()
这是我根据一本书叙述的人脸检测的方法写的一段程序,是对肤色部分先进行标记,
步骤如下,第一步是把图像的RGB转换成rgb,其转换的式子如下所示, r=R./(R+G+B); b=B./(R+G+B); g=G./(R+G+B); Q1,Q2,W1。r,g是肤色的约束条件,以下是我编的程序对肤色部分进行标识1其他标识0,希望高手指点一下 Im=imread('d:\1215.jpg'); R=Im(:,:,1); G=Im(:,:,2); B=Im(:,:,3); R=double(R); G=double(G); B=double(B); C=imadd(R,G); D=imadd(C,B); r=R./D; b=B./D; g=G./D; Q1=-1.3767.*r.*r+1.0743.*r+0.1452; Q2=-0.776.*r.*r+0.5601.*r+0.1766; W=(r-0.33).*(r-0.33)+(g-0.33).*(g-0.33); [n,m]=size(r); for i=1:n for j=1:m if((r(i,j)>0.2&r(i,j)<0.6)& (g(i,j)<Q1(i,j))&(g(i,j)>Q2(i,j))&(W(i,j)>0.004)) Im(i,j)=1; else Im(i,j)=0; end end end 我感觉不对劲的是,size(Im),是796 550 3 而size(R)或者size(r)为什么是796 550,呢。。大家能解释下吗? |
![]() |
![]() |