我想使用OpenCV做一些人臉識別(未檢測)的東西。我發現這篇文章有一些代碼:如何使用OpenCV進行人臉識別?
http://www.cognotics.com/opencv/servo_2007_series/index.html
然而,這個代碼是使用舊的C風格的OpenCV的API編寫的。是否有人使用OpenCV 2.3.1等更新版本的C++ API版本?
我想使用OpenCV做一些人臉識別(未檢測)的東西。我發現這篇文章有一些代碼:如何使用OpenCV進行人臉識別?
http://www.cognotics.com/opencv/servo_2007_series/index.html
然而,這個代碼是使用舊的C風格的OpenCV的API編寫的。是否有人使用OpenCV 2.3.1等更新版本的C++ API版本?
我正在使用C++ api爲我的工程師學位做臉部識別項目。我認爲所有關於C++中的人臉識別都相當簡單,甚至比C(更少的指針)更簡單。要使用PCA,您需要一個名爲PCA的類here。只要使用正確的方法並閱讀理解文檔。爲了用輸入數據構建矩陣,我創建了一個適當大小的矩陣,然後將圖片粘貼爲行(使用方法重塑)(cv :: Mat中有一個方法,可以讓您輕鬆獲取矩陣的一行)。你只需要保持確保基礎數據和測試的數據具有相同的參數(通道,大小等)
編輯:
using namespace cv; //somewhere near top
將數據插入到數據矩陣:
62 Mat reshaped=img.reshape(1,1);
63 Mat dataRow=_data.row(y++);
64 resize(reshaped,dataRow,dataRow.size(),0,0,CV_INTER_LINEAR);
計算PCA:
251 _pca(_data,Mat(),CV_PCA_DATA_AS_ROW); //compute pca
252 _pca.project(_data,_vectors); // project original data to new coordinates
至於OpenCV中的doc使用並不是最好的選擇,花一些時間閱讀並不會傷害到它。大多數c api函數在C++ api中都有它們的等價物,你只需要做一些「寫入搜索窗口並按回車」搜索。而且,在C++中也有教程來掌握C++ api。
您能分享一些代碼嗎? –
更新:OpenCV 2.4.2現在帶有非常新的cv::FaceRecognizer。請參閱非常詳細的文檔:
我已經發布libfacerec,一個現代化的人臉識別庫OpenCV的C++ API(BSD許可證)。 libfacerec沒有額外的依賴關係,並實現了特徵臉方法,Fisherfaces方法和局部二值模式直方圖。部分圖書館將被包含在OpenCV 2.4中。
的libfacerec的最新版本,請訪問:
圖書館與即將到來的OpenCV的2.4記住了OpenCV的2.3.1寫的,所以我不支持OpenCV版本早於2.3.1。這個項目是一個CMake項目,具有良好的文檔API,還有一個關於性別分類的教程。
如果你想了解這些算法是如何工作的,你可能想要看我的指南人臉識別(包括Python和GNU八度:您可以看到文檔的HTML版本/ MATLAB示例):
的相對前列出版物是:
[OpenCV中的人臉識別]的可能的副本(http://stackoverflow.com/questions/4856929/face-recognition-in-opencv) – Kiran