我正在構建一個應用程序,它將拍攝一個人的整個身體的圖像,並將爲該人制作一張「照片」。如何從面部檢測正方形中獲取「面部照片」?
照片意味着一個人的整個臉部,脖子,頭髮和耳朵的圖像在相同的一般大小的另一個面部照片。
目前我使用
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