【學習opencv 十五】opencv3/C++ haar 特徵人臉檢測(源碼)

基於opencv3/C++ haar 特徵人臉檢測(源碼)

源碼:

#include "opencv2/opencv.hpp"   
#include "opencv/cvaux.hpp"   

using namespace std;   
using namespace cv;   

int main( int argc, char** argv)
{   
    if(argc != 2){
    cout<<"NULL"<<endl;
    return 0;
    }

    Mat src =imread(argv[1],-1);
    if(src.empty()) return -1;
    namedWindow("src",WINDOW_AUTOSIZE);
    imshow("src",src);
    CascadeClassifier face_cascade;
    String file1 = "/data/haarcascades/haarcascade_frontalface_alt.xml";
    if( !face_cascade.load(file1) )
    {    
        printf("can not load the file... xml\n");
        return -1;
    }
    vector<Rect> faces;   
    Mat gray_image; 
    cvtColor( src, gray_image, CV_BGR2GRAY );  
    //直方圖均衡化  
    equalizeHist( gray_image, gray_image );   
    face_cascade.detectMultiScale( gray_image, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(1, 1) );   
    //框選出臉部區域
    for (int i = 0; i < faces.size(); i++)
    {
        RNG rng(i);
        Scalar color = Scalar(rng.uniform(0,255), rng.uniform(0,255), 20);
        rectangle(src, faces[static_cast<int>(i)], color, 2, 8, 0);
    } 
    imshow("face", src );   
    waitKey(0);
    return 0;
}   

實驗原圖1:
在這裏插入圖片描述
實驗原圖2:
在這裏插入圖片描述
實驗結果1:
在這裏插入圖片描述
實驗結果2:
在這裏插入圖片描述

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