承接上篇的OpenCV3.1安裝配置,這裏寫了調用OpenCV的一些人臉識別C++方法。html
OpenCV很是方便,擁有各類圖片處理的功能,我的只瞭解了部分關於人臉識別方面的知識。這裏介紹:人臉的識別,圖片灰度化的例子,方便你們入門學習。git
首先建立一個解決方案(OpenCVInstance1)並配置OpenCV 3.1的調用(參照上篇:關於OpenCV 3.1的搭建使用經驗)。配置後便可開始使用OpenCV3.1的功能,如下爲使用的兩個例子方法:github
void rectface(char* url, char* url2); int grayface(char* url, char* url2);
rectface()方法用於對圖片中人臉「加框」識別。算法
grayface()方法用於灰度化圖片並截取人臉圖片。學習
原圖:url
rectface()方法加框後:.net
grayface()方法灰度化並截取人臉後:code
OpenCV支持三種圖像特徵分類器:HOG特徵、LBP特徵、Haar特徵,這裏使用Haar特徵分類器。xml
1、Haar特徵分類器htm
這裏人臉識別使用到Haar特徵分類器。Haar特徵分類器是是Boosting算法的一個應用,它使用級聯分類器對圖片進行分析,經過人臉特徵值來識別出人臉。涉及算法方面知識複雜,這裏只是介紹使用。在OpenCV的目錄下帶有各類特徵分類器文件(.xml):%OpenCV_HOME%\install\etc;例子項目中使用的是haarcascade_frontalface_alt.xml。
Haar特徵參考文章:http://blog.csdn.net/liulina603/article/details/8617281
http://www.cnblogs.com/ello/archive/2012/04/28/2475419.html
2、灰度化
特徵分類器對圖片的分析,主要是對指定區域中,不一樣像素點的色彩差來區分,而灰度圖更加清晰反映圖像特徵,因此通常先將圖片進行灰度化。
本項目源碼(GitHub): https://github.com/alvinlovelife/OpenCV-Instance.git