void SuperResolution::RunTest(cv::Ptr<cv::superres::SuperResolution> superRes) { const std::string inputVideoName = cvtest::TS::ptr()->get_data_path() + "car.avi"; const int scale = 2; const int iterations = 100; const int temporalAreaRadius = 2; ASSERT_FALSE( superRes.empty() ); const int btvKernelSize = superRes->getInt("btvKernelSize"); superRes->set("scale", scale); superRes->set("iterations", iterations); superRes->set("temporalAreaRadius", temporalAreaRadius); cv::Ptr<cv::superres::FrameSource> goldSource(new AllignedFrameSource(cv::superres::createFrameSource_Video(inputVideoName), scale)); cv::Ptr<cv::superres::FrameSource> lowResSource(new DegradeFrameSource(new AllignedFrameSource(cv::superres::createFrameSource_Video(inputVideoName), scale), scale)); // skip first frame cv::Mat frame; lowResSource->nextFrame(frame); goldSource->nextFrame(frame); cv::Rect inner(btvKernelSize, btvKernelSize, frame.cols - 2 * btvKernelSize, frame.rows - 2 * btvKernelSize); superRes->setInput(lowResSource); double srAvgMSSIM = 0.0; const int count = 10; cv::Mat goldFrame, superResFrame; for (int i = 0; i < count; ++i) { goldSource->nextFrame(goldFrame); ASSERT_FALSE( goldFrame.empty() ); superRes->nextFrame(superResFrame); ASSERT_FALSE( superResFrame.empty() ); const double srMSSIM = MSSIM(goldFrame(inner), superResFrame); srAvgMSSIM += srMSSIM; } srAvgMSSIM /= count; EXPECT_GE( srAvgMSSIM, 0.5 ); }
void setThreshold( double threshold1, double threshold2, double threshold3 ) { eigenfaceRecognizor->set("threshold", threshold1); fisherfaceRecognizor->set("threshold", threshold2); LBPHRecognizor->set("threshold", threshold3); }