Advertisement
Guest User

OpenCV + OpenCL-based face detection

a guest
Oct 6th, 2014
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. #include <opencv2/ocl/ocl.hpp>
  2. #include <opencv2/highgui/highgui.hpp>
  3. #include <QDateTime>
  4. #include <QDebug>
  5.  
  6. int main()
  7. {
  8.     cv::ocl::OclCascadeClassifier detector;
  9.     detector.load("/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml");
  10.     cv::VideoCapture capture(0);
  11.     cv::Mat frame;
  12.     std::vector<cv::Rect> faces;
  13.     cv::ocl::oclMat oclFrame;
  14.  
  15.     int counter = 0;
  16.     double uploadTime = 0;
  17.     double detectTime = 0;
  18.     int N = 500;
  19.     while (counter < N && capture.read(frame))
  20.     {
  21.         QDateTime beforeUpload = QDateTime::currentDateTime();
  22.         oclFrame.upload(frame);
  23.         QDateTime afterUpload = QDateTime::currentDateTime();
  24.  
  25.         detector.detectMultiScale(oclFrame, faces);
  26.         QDateTime afteDetect = QDateTime::currentDateTime();
  27.  
  28.         uploadTime += beforeUpload.msecsTo(afterUpload);
  29.         detectTime += afterUpload.msecsTo(afteDetect);
  30.  
  31.         for (const auto &r : faces)
  32.             cv::rectangle(frame, r, cv::Scalar(0, 255, 0));
  33.  
  34.         cv::imshow("test", frame);
  35.         cv::waitKey(1);
  36.         counter++;
  37.     }
  38.  
  39.     uploadTime /= N;
  40.     detectTime /= N;
  41.  
  42.     qDebug() << "uploadTime:" << uploadTime;
  43.     qDebug() << "detectTime:" << detectTime;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement