簡體   English   中英

將兩個Haar Cascade xml文件與EmguCV檢測和識別一起使用

[英]Use two Haar Cascade xml files with EmguCV detection and recognition

通過EmguCV,我使用單個haarcascade_face.xml:

face = new HaarCascade(xmlPath); 

從目錄附加:

string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "folder\\haarcascade_face.xml");

這種檢測或識別方式適用於特定的xml文件面部內容:

f = new HaarCascade(path); 

如果我將xml更改為另一種(例如haarcascade_hand.xml),則采用相同的方法,檢測和識別適用於不同的對象。

我不是在問如何通過單進程檢測和識別不同的對象,因為我正在使用面孔進行操作:

MCvAvgComp[][] fd = gray.DetectHaarCascade(f, 1.2, 10, Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20)); 

我的問題是,是否有辦法以某種方式將haarcascade_face.xml和haarcascade_hand.xml都用於單個進程檢測,而不是在正確的意義上進行識別,而是區分被檢測對象使用哪個特定的.xml。

據我所知,我不能將兩個haar級聯合並到一個檢測器中,但是我可以運行兩個檢測器來檢測兩個不同的事物。 我猜在處理過程中每個文件的路徑之間的迭代應該是完全不正確的方法

任何建議指南或示例將非常有幫助

依次執行圖像中的臉部和手部檢測怎么樣。 它要求您注冊2個Haar檢測器並將其應用於每個圖像。

//register 2 Haar detectors
string face_path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "folder\\haarcascade_face.xml");
string hand_path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "folder\\haarcascade_hand.xml");

HaarCascade face = new HaarCascade(face_path); 
HaarCascade hand= new HaarCascade(hand_path); 

//for every image
MCvAvgComp[][] fd = gray.DetectHaarCascade(face, 1.2, 10, Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20));
MCvAvgComp[][] hd = gray.DetectHaarCascade(hand, 1.2, 10, Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM