Path: blob/master/modules/objdetect/perf/opencl/perf_cascades.cpp
16358 views
#include "../perf_precomp.hpp"1#include <opencv2/imgproc.hpp>23#include "opencv2/ts/ocl_perf.hpp"45namespace opencv_test6{7using namespace perf;89typedef tuple<std::string, std::string, int> Cascade_Image_MinSize_t;10typedef perf::TestBaseWithParam<Cascade_Image_MinSize_t> Cascade_Image_MinSize;1112#ifdef HAVE_OPENCL1314OCL_PERF_TEST_P(Cascade_Image_MinSize, CascadeClassifier,15testing::Combine(16testing::Values( string("cv/cascadeandhog/cascades/haarcascade_frontalface_alt.xml"),17string("cv/cascadeandhog/cascades/haarcascade_frontalface_alt2.xml"),18string("cv/cascadeandhog/cascades/lbpcascade_frontalface.xml") ),19testing::Values( string("cv/shared/lena.png"),20string("cv/cascadeandhog/images/bttf301.png"),21string("cv/cascadeandhog/images/class57.png") ),22testing::Values(30, 64, 90) ) )23{24const string cascadePath = get<0>(GetParam());25const string imagePath = get<1>(GetParam());26int min_size = get<2>(GetParam());27Size minSize(min_size, min_size);2829CascadeClassifier cc( getDataPath(cascadePath) );30if (cc.empty())31FAIL() << "Can't load cascade file: " << getDataPath(cascadePath);3233Mat img = imread(getDataPath(imagePath), IMREAD_GRAYSCALE);34if (img.empty())35FAIL() << "Can't load source image: " << getDataPath(imagePath);3637vector<Rect> faces;3839equalizeHist(img, img);40declare.in(img).time(60);4142UMat uimg = img.getUMat(ACCESS_READ);4344while(next())45{46faces.clear();47cvtest::ocl::perf::safeFinish();4849startTimer();50cc.detectMultiScale(uimg, faces, 1.1, 3, 0, minSize);51stopTimer();52}5354sort(faces.begin(), faces.end(), comparators::RectLess());55SANITY_CHECK(faces, min_size/5);56}5758#endif //HAVE_OPENCL5960} // namespace616263