opencv 視訊中人臉檢測
阿新 • • 發佈:2018-12-24
opencv 視訊中人臉檢測
先看一下執行結果:
原始碼:
//標頭檔案 #include<opencv2/objdetect/objdetect.hpp> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> using namespace cv; //人臉檢測的類 CascadeClassifier faceCascade; int main() { faceCascade.load("haarcascade_frontalface_alt2.xml"); //載入分類器,注意檔案路徑 VideoCapture cap; //cap.open(0); //開啟攝像頭 cap.open("1.mp4"); //開啟視訊 Mat img, imgGray; vector<Rect> faces; int c = 0; if (!cap.isOpened()) { return 1; } while (c != 27) { cap >> img; //讀取幀 if (img.channels() == 3) { cvtColor(img, imgGray, CV_RGB2GRAY); //變成灰色影象 } else { imgGray = img; } faceCascade.detectMultiScale(imgGray, faces, 1.2, 6, 0, Size(0, 0)); //檢測人臉 if (faces.size()>0) { for (int i = 0; i<faces.size(); i++) { rectangle(img, Point(faces[i].x, faces[i].y), Point(faces[i].x + faces[i].width, faces[i].y + faces[i].height), Scalar(0, 255, 0), 1, 8); //框出人臉位置 } } imshow("Camera", img); //一幀一幀圖片進行播放 c = waitKey(1); //延遲時間 } return 0; }
希望對你有幫助。