From 14299a0621bd90b379eb1014aaa23a76d0169f5c Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Tue, 14 Jun 2011 17:28:23 -0400 Subject: Actually it's gotta be in C++ --- face-detection.c | 42 ------------------------------------------ face-detection.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 42 deletions(-) delete mode 100644 face-detection.c create mode 100644 face-detection.cpp diff --git a/face-detection.c b/face-detection.c deleted file mode 100644 index e2962d7..0000000 --- a/face-detection.c +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include -#include - -int main(int argc, char **argv) -{ - CvCapture *capture = 0; - IplImage *frame = 0; - IplImage *small = 0; - int key = 0; - capture = cvCreateCameraCapture(-1); - if (!capture) { - fprintf(stderr, "Webcam no bueno.\n"); - return 1; - } - cvNamedWindow("Jason's Wonderful OpenCV Test", CV_WINDOW_AUTOSIZE); - CvMemStorage* storage = cvCreateMemStorage(0); - CvHaarClassifierCascade* cascade = (CvHaarClassifierCascade*)cvLoad("/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml"); - static CvScalar colors[] = {{{0, 255, 255}}, {{0, 128, 255}}, {{0, 255, 255}}, {{255, 0, 255}}}; - - while (key != 'q') { - frame = cvQueryFrame(capture); - if (!frame) - break; - - small = cvCreateImage(cvSize(frame->width / 2, frame->height / 2), IPL_DEPTH_8U, 3); - cvPyrDown(frame, small, CV_GAUSSIAN_5x5); - cvClearMemStorage(storage); - CvSeq* objects = cvHaarDetectObjects(small, cascade, storage, 1.1, 4, CV_HAAR_DO_CANNY_PRUNING); - cvReleaseImage(&small); - CvRect* r; - for (int i = 0; i < (objects ? objects->total : 0); i++) { - r = (CvRect*)cvGetSeqElem(objects, i); - cvRectangle(frame, cvPoint(r->x * 2, r->y * 2), cvPoint((r->x + r->width) * 2, (r->y + r->height) * 2), colors[i % 8], 2); - } - cvShowImage("Jason's Wonderful OpenCV Test", frame); - key = cvWaitKey(1); - } - cvDestroyWindow("Jason's Wonderful OpenCV Test"); - cvReleaseCapture(&capture); - return 0; -} \ No newline at end of file diff --git a/face-detection.cpp b/face-detection.cpp new file mode 100644 index 0000000..e2962d7 --- /dev/null +++ b/face-detection.cpp @@ -0,0 +1,42 @@ +#include +#include +#include + +int main(int argc, char **argv) +{ + CvCapture *capture = 0; + IplImage *frame = 0; + IplImage *small = 0; + int key = 0; + capture = cvCreateCameraCapture(-1); + if (!capture) { + fprintf(stderr, "Webcam no bueno.\n"); + return 1; + } + cvNamedWindow("Jason's Wonderful OpenCV Test", CV_WINDOW_AUTOSIZE); + CvMemStorage* storage = cvCreateMemStorage(0); + CvHaarClassifierCascade* cascade = (CvHaarClassifierCascade*)cvLoad("/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml"); + static CvScalar colors[] = {{{0, 255, 255}}, {{0, 128, 255}}, {{0, 255, 255}}, {{255, 0, 255}}}; + + while (key != 'q') { + frame = cvQueryFrame(capture); + if (!frame) + break; + + small = cvCreateImage(cvSize(frame->width / 2, frame->height / 2), IPL_DEPTH_8U, 3); + cvPyrDown(frame, small, CV_GAUSSIAN_5x5); + cvClearMemStorage(storage); + CvSeq* objects = cvHaarDetectObjects(small, cascade, storage, 1.1, 4, CV_HAAR_DO_CANNY_PRUNING); + cvReleaseImage(&small); + CvRect* r; + for (int i = 0; i < (objects ? objects->total : 0); i++) { + r = (CvRect*)cvGetSeqElem(objects, i); + cvRectangle(frame, cvPoint(r->x * 2, r->y * 2), cvPoint((r->x + r->width) * 2, (r->y + r->height) * 2), colors[i % 8], 2); + } + cvShowImage("Jason's Wonderful OpenCV Test", frame); + key = cvWaitKey(1); + } + cvDestroyWindow("Jason's Wonderful OpenCV Test"); + cvReleaseCapture(&capture); + return 0; +} \ No newline at end of file -- cgit v1.2.3-59-g8ed1b