簡體   English   中英

如何在 Emgu CV 中執行模板匹配

[英]How to perform to Template Matching in Emgu CV

先生,

我是 Emgu CV 的新手。我正在制作人臉識別軟件。我能夠使用 HaarCascade xml 分類器檢測人臉。但我堅持下一步如何識別人臉。請告訴我如何使用 MatchTemplate function...

我在網上找到了這段代碼

Image<Gray, Byte> templateImage = new Image<Gray, Byte>(bmpSnip);
Image<Gray, float> resultImage = sourceImage.MatchTemplate(templateImage,Emgu.CV.CvEnum.TM_TYPE.CV_TM_CCOEFF_NORMED);

float[,,] matches = resultImage.Data;
for (int x = 0; x < matches.GetLength(1); x++)
{
for (int y = 0; y < matches.GetLength(0); y++)
{
double matchScore = matches[y, x, 0];
if (matchScore > 0.75)
{
Rectangle rect = new Rectangle(new Point(x,y), new Size(1, 1));
imgSource.Draw(rect, new Bgr(Color.Blue), 1);
}
}

我不明白這段代碼......首先,這段代碼不起作用......其次,如果有人知道如何正確地做......請發布代碼......

MatchTemplate 方法最初設計用於匹配具有定義特征的對象。 一張臉,而對於您和我來說,可能對 MatchTemplate 中使用的 FFT 方法具有定義特征,但定義特征根本不足以進行人臉識別。 Surya 是正確的,因為比較會很有趣,我建議最好的方法是將模板面部圖像的區域與相機識別的面部進行匹配。 因此,例如,您將使用眼睛的 position 並將 MatchTemplate 應用到同一位置,然后對這些特征進行匹配以估計整體准確度。

但是,您固有的重大問題是執行時間。 使用大型人臉數據庫,MatchTemplate 不會顯着減少數據集以允許實時處理。

特征識別器是一種更安全、更有效的方法。 它比創建自己的算法更可靠,速度也更快。 請在此處查看我的文章,了解如何實現它:

http://www.codeproject.com/Articles/261550/EMGU-Multiple-Face-Recognition-using-PCA-and-Paral

希望這可以幫助,

干杯,

克里斯

暫無
暫無

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

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