faceRecognize沒有成員函數getMat問題解決

最近在做人臉識別的東西,網上有很多教程,有一篇必看的那就是opencv官方給出的人臉識別的三種算法以及源代碼,也就是recongnizer face with opencv,網上流傳着中文版,但那個代碼是opencv2.4的,如果你安裝的是vs2015,那一般就用不了opencv2因爲opencv2沒有14的庫,所以直接搬那個文章的代碼到opencv3會有很多問題,比如無法打開源文件contrib.hpp,因爲opencv3以上已經移除了contrib所以要用cmake重新編譯當然我要說的重點不是這個,你已經完成了這些工作以後去調試人臉識別的代碼會發現,網上的那篇文章的代碼會出現一些問題,比如它有如下語句

 Mat eigenvalues = model->getMat("eigenvalues");
    Mat W = model->getMat("eigenvectors");
    Mat mean = model->getMat("mean");
編譯的時候會報錯faceRecognize沒有成員函數getMat,還有未定義標識符
subspaceProject之類的錯誤,那是因爲opencv3裏面的用法和opencv2不同了,網上很少給出這個解決辦法,有幾個人提問過這個問題但都是國外的也沒有什麼清晰的解答,所以我在此寫了一篇博客就是爲了解答這個問題,解決辦法其實很簡單,opencv官方已經給出了opencv3的人臉識別源代碼只是網上流傳的都是2的我們都沒有見過3的,我們可以看到在這裏面contrib.hpp被換成了face.hpp而且加上了名稱空間cv;;face,getMat也被其他方法取代,總之整體沒有什麼差別,思路還是一樣,只是表達方式變了,因爲opencv3還沒有很多人用,所以網上這方面的資料少之又少,在此我寫一篇小文章幫遇到和我相同問題的人解決這個問題,下面附一個官方網址opencv3.2.0的人臉識別源代碼其他的其實自己都可以去官網找到

http://docs.opencv.org/3.2.0/da/d60/tutorial_face_main.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章