Skip to content

Instantly share code, notes, and snippets.

@aoirint
Created September 18, 2017 10:49
Show Gist options
  • Save aoirint/80ec5dad9ed5904f4e8b7a9e58492bf3 to your computer and use it in GitHub Desktop.
Save aoirint/80ec5dad9ed5904f4e8b7a9e58492bf3 to your computer and use it in GitHub Desktop.
OpenCVでカメラから映像取ってhaar-likeで顔検出するテスト
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main() {
VideoCapture cap(0);
if (!cap.isOpened()) {
return -1;
}
VideoWriter writer("frames.avi", CV_FOURCC_DEFAULT, 15.0, Size(640, 480));
if (!writer.isOpened()) {
return -1;
}
cap.set(CAP_PROP_FPS, 15);
CascadeClassifier casc_face("haarcascade_frontalface_alt.xml");
while (1) {
Mat frame;
cap >> frame;
Mat gray;
cvtColor(frame, gray, CV_BGR2GRAY);
vector<Rect> faces;
casc_face.detectMultiScale(gray, faces);
namedWindow("frame", WINDOW_AUTOSIZE);
for (int i = 0, n = faces.size(); i < n; i++) {
Rect face = faces[i];
rectangle(frame, face, Scalar(255, 0, 0), 2);
}
imshow("frame", frame);
char key = waitKey(1);
if (key == 'q') {
break;
}
else if (key == 's') {
imwrite("frame.png", frame);
}
writer << frame;
}
destroyAllWindows();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment