我正在构建一个应用程序,它将拍摄一个人的整个身体的图像,并将为该人制作一张“照片”。如何从面部检测正方形中获取“面部照片”?
照片意味着一个人的整个脸部,脖子,头发和耳朵的图像在相同的一般大小的另一个面部照片。
目前我使用
http://askernest.com/archive/2008/05/03/face-detection-in-c.aspx
实现OpenCV的,我使用
harrcascade_frontalface_default.xml
harrcascade_frontalface_alt.xml
harrcascade_frontalface_alt2.xml
harrcascade_frontalface_alt_tree.xml
我的级联。
我使用所有的级联,因为一个人不会检测到我的所有面孔。当我得到所有级联检测到的所有面孔后,我找到了我的平均平方,并用它来最终猜测面部照片的高度和宽度。
我的问题是3部分。
我现在的过程相当缓慢。我如何加快检测过程?
编辑:我发现处理时间与照片大小直接相关。减少照片的大小可能会有所帮助。单个级联不会检测到我遇到的所有面,所以我使用它们全部。这当然会产生许多不同的正方形和一些误报。我可以使用什么方法来识别误报并将其排除在平均平方计算之外?恩。
编辑:我正在执行标准差内的平均值。将很快发布代码。我不完全确定最好的方法找到面部的平方坐标的照片。我在哪里可以找到面部照片比例?
编辑:解决了这一个。假设我所有的头都是他们面部的比例。static public Rectangle GetMugshotRectangle(Rectangle rFace) { int y2, x2, w2, h2; //adjust as neccessary double heightRatio = 2; y2 = Convert.ToInt32(rFace.Y - rFace.Height * (heightRatio - 1.0)/2.0); h2 = Convert.ToInt32(rFace.Height * heightRatio); //height to width ratio is 1.25 : 1 in mugshots w2 = Convert.ToInt32(h2 * 4/5); x2 = Convert.ToInt32((rFace.X + rFace.Width/2) - w2/2); return new Rectangle(x2, y2, w2, h2); }
我只需要摆脱那些误报。
好吧,让那4个问题。
我们的摄像头,我们将使用目前无佣金,所以我没有在目前的捕获图像的方法。我在哪里可以找到非纯粹的人的全身图像像谷歌的图像搜索全身图像?
编辑:“人站在”打造一个良好的搜索:)
找到头肩膀档案文件是托马斯海登堂吗? – 2011-04-21 20:43:49
这是蜘蛛侠的沙盒哈哈 – 2011-04-21 21:01:32