inline void quality_test(cv::Ptr<quality::QualityBase> ptr, const TMat& cmp, const Scalar& expected, const std::size_t quality_maps_expected = 1, const bool empty_expected = false ) { std::vector<cv::Mat> qMats = {}; ptr->getQualityMaps(qMats); EXPECT_TRUE( qMats.empty()); quality_expect_near( expected, ptr->compute(cmp)); if (empty_expected) EXPECT_TRUE(ptr->empty()); else EXPECT_FALSE(ptr->empty()); ptr->getQualityMaps(qMats); EXPECT_EQ( qMats.size(), quality_maps_expected); for (auto& qm : qMats) { EXPECT_GT(qm.rows, 0); EXPECT_GT(qm.cols, 0); } ptr->clear(); EXPECT_TRUE(ptr->empty()); }
// static method TEST(TEST_CASE_NAME, static_ ) { quality_expect_near( quality::QualityBRISQUE::compute( get_testfile_1a() , cvtest::findDataFile(MODEL_FNAME, false) , cvtest::findDataFile(RANGE_FNAME, false) ) , BRISQUE_EXPECTED_1 ); }
// static method TEST(TEST_CASE_NAME, static_ ) { std::vector<cv::Mat> qMats = {}; quality_expect_near(quality::QualityMSE::compute(get_testfile_1a(), get_testfile_1a(), qMats), cv::Scalar(0.)); // ref vs ref == 0 EXPECT_EQ(qMats.size(), 1U); }