Add sanity checks to objdetect module perf tests

This commit is contained in:
Andrey Kamaev 2012-10-09 15:28:10 +04:00
parent c146c54bcd
commit e2ff0ed1fb
2 changed files with 24 additions and 5 deletions

View File

@ -38,17 +38,20 @@ PERF_TEST_P(ImageName_MinSize, CascadeClassifierLBPFrontalFace,
if (img.empty())
FAIL() << "Can't load source image";
vector<Rect> res;
vector<Rect> faces;
equalizeHist(img, img);
declare.in(img);
while(next())
{
res.clear();
faces.clear();
startTimer();
cc.detectMultiScale(img, res, 1.1, 3, 0, minSize);
cc.detectMultiScale(img, faces, 1.1, 3, 0, minSize);
stopTimer();
}
std::sort(faces.begin(), faces.end(), comparators::RectLess());
SANITY_CHECK(faces);
}

View File

@ -473,10 +473,26 @@ int main(int argc, char **argv)\
#define TEST_CYCLE() for(; startTimer(), next(); stopTimer())
#define TEST_CYCLE_MULTIRUN(runsNum) for(declare.runs(runsNum); startTimer(), next(); stopTimer()) for(int r = 0; r < runsNum; ++r)
//flags
namespace perf
{
//GTEST_DECLARE_int32_(allowed_outliers);
namespace comparators
{
template<typename T>
struct CV_EXPORTS RectLess_
{
bool operator()(const cv::Rect_<T>& r1, const cv::Rect_<T>& r2) const
{
return r1.x < r2.x
|| (r1.x == r2.x && r1.y < r2.y)
|| (r1.x == r2.x && r1.y == r2.y && r1.width < r2.width)
|| (r1.x == r2.x && r1.y == r2.y && r1.width == r2.width && r1.height < r2.height);
}
};
typedef RectLess_<int> RectLess;
} //namespace comparators
} //namespace perf
#endif //__OPENCV_TS_PERF_HPP__