Merge pull request #19191 from OrestChura:oc/morphEx_perftest

pull/19247/head
Alexander Alekhin 4 years ago
commit 701744c621
  1. 2
      modules/gapi/perf/common/gapi_imgproc_perf_tests.hpp
  2. 43
      modules/gapi/perf/common/gapi_imgproc_perf_tests_inl.hpp
  3. 20
      modules/gapi/perf/cpu/gapi_imgproc_perf_tests_cpu.cpp
  4. 2
      modules/gapi/test/common/gapi_imgproc_tests.hpp
  5. 2
      modules/gapi/test/common/gapi_imgproc_tests_inl.hpp

@ -30,6 +30,8 @@ class ErodePerfTest : public TestPerfParams<tuple<compare_f, MatType,i
class Erode3x3PerfTest : public TestPerfParams<tuple<compare_f, MatType,cv::Size,int, cv::GCompileArgs>> {}; class Erode3x3PerfTest : public TestPerfParams<tuple<compare_f, MatType,cv::Size,int, cv::GCompileArgs>> {};
class DilatePerfTest : public TestPerfParams<tuple<compare_f, MatType,int,cv::Size,int, cv::GCompileArgs>> {}; class DilatePerfTest : public TestPerfParams<tuple<compare_f, MatType,int,cv::Size,int, cv::GCompileArgs>> {};
class Dilate3x3PerfTest : public TestPerfParams<tuple<compare_f, MatType,cv::Size,int, cv::GCompileArgs>> {}; class Dilate3x3PerfTest : public TestPerfParams<tuple<compare_f, MatType,cv::Size,int, cv::GCompileArgs>> {};
class MorphologyExPerfTest : public TestPerfParams<tuple<compare_f,MatType,cv::Size,
cv::MorphTypes,cv::GCompileArgs>> {};
class SobelPerfTest : public TestPerfParams<tuple<compare_f, MatType,int,cv::Size,int,int,int, cv::GCompileArgs>> {}; class SobelPerfTest : public TestPerfParams<tuple<compare_f, MatType,int,cv::Size,int,int,int, cv::GCompileArgs>> {};
class SobelXYPerfTest : public TestPerfParams<tuple<compare_f, MatType,int,cv::Size,int,int, cv::GCompileArgs>> {}; class SobelXYPerfTest : public TestPerfParams<tuple<compare_f, MatType,int,cv::Size,int,int, cv::GCompileArgs>> {};
class LaplacianPerfTest : public TestPerfParams<tuple<compare_f, MatType,int,cv::Size,int, class LaplacianPerfTest : public TestPerfParams<tuple<compare_f, MatType,int,cv::Size,int,

@ -491,6 +491,49 @@ PERF_TEST_P_(Dilate3x3PerfTest, TestPerformance)
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
PERF_TEST_P_(MorphologyExPerfTest, TestPerformance)
{
compare_f cmpF;
MatType type = 0;
cv::MorphTypes op = cv::MORPH_ERODE;
cv::Size sz;
cv::GCompileArgs compile_args;
std::tie(cmpF, type, sz, op, compile_args) = GetParam();
initMatrixRandN(type, sz, type, false);
cv::MorphShapes defShape = cv::MORPH_RECT;
int defKernSize = 3;
cv::Mat kernel = cv::getStructuringElement(defShape, cv::Size(defKernSize, defKernSize));
// OpenCV code /////////////////////////////////////////////////////////////
{
cv::morphologyEx(in_mat1, out_mat_ocv, op, kernel);
}
// G-API code //////////////////////////////////////////////////////////////
cv::GMat in;
auto out = cv::gapi::morphologyEx(in, op, kernel);
cv::GComputation c(in, out);
// Warm-up graph engine:
c.apply(in_mat1, out_mat_gapi, std::move(compile_args));
TEST_CYCLE()
{
c.apply(in_mat1, out_mat_gapi);
}
// Comparison //////////////////////////////////////////////////////////////
{
EXPECT_TRUE(cmpF(out_mat_gapi, out_mat_ocv));
EXPECT_EQ(out_mat_gapi.size(), sz);
}
SANITY_CHECK_NOTHING();
}
//------------------------------------------------------------------------------
PERF_TEST_P_(SobelPerfTest, TestPerformance) PERF_TEST_P_(SobelPerfTest, TestPerformance)
{ {
compare_f cmpF; compare_f cmpF;

@ -104,6 +104,26 @@ INSTANTIATE_TEST_CASE_P(Dilate3x3PerfTestCPU, Dilate3x3PerfTest,
Values(1, 2, 4), Values(1, 2, 4),
Values(cv::compile_args(IMGPROC_CPU)))); Values(cv::compile_args(IMGPROC_CPU))));
INSTANTIATE_TEST_CASE_P(MorphologyExPerfTestCPU, MorphologyExPerfTest,
Combine(Values(AbsExact().to_compare_f()),
Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
Values(szVGA, sz720p, sz1080p),
Values(cv::MorphTypes::MORPH_ERODE,
cv::MorphTypes::MORPH_DILATE,
cv::MorphTypes::MORPH_OPEN,
cv::MorphTypes::MORPH_CLOSE,
cv::MorphTypes::MORPH_GRADIENT,
cv::MorphTypes::MORPH_TOPHAT,
cv::MorphTypes::MORPH_BLACKHAT),
Values(cv::compile_args(IMGPROC_CPU))));
INSTANTIATE_TEST_CASE_P(MorphologyExHitMissPerfTestCPU, MorphologyExPerfTest,
Combine(Values(AbsExact().to_compare_f()),
Values(CV_8UC1),
Values(szVGA, sz720p, sz1080p),
Values(cv::MorphTypes::MORPH_HITMISS),
Values(cv::compile_args(IMGPROC_CPU))));
INSTANTIATE_TEST_CASE_P(SobelPerfTestCPU, SobelPerfTest, INSTANTIATE_TEST_CASE_P(SobelPerfTestCPU, SobelPerfTest,
Combine(Values(AbsExact().to_compare_f()), Combine(Values(AbsExact().to_compare_f()),
Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1), Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1),

@ -46,7 +46,7 @@ GAPI_TEST_FIXTURE(Erode3x3Test, initMatrixRandN, FIXTURE_API(CompareMats,int), 2
GAPI_TEST_FIXTURE(DilateTest, initMatrixRandN, FIXTURE_API(CompareMats,int,int), 3, GAPI_TEST_FIXTURE(DilateTest, initMatrixRandN, FIXTURE_API(CompareMats,int,int), 3,
cmpF, kernSize, kernType) cmpF, kernSize, kernType)
GAPI_TEST_FIXTURE(Dilate3x3Test, initMatrixRandN, FIXTURE_API(CompareMats,int), 2, cmpF, numIters) GAPI_TEST_FIXTURE(Dilate3x3Test, initMatrixRandN, FIXTURE_API(CompareMats,int), 2, cmpF, numIters)
GAPI_TEST_FIXTURE(MorphologyExTest, initMatrixRandN, FIXTURE_API(CompareMats,MorphTypes), GAPI_TEST_FIXTURE(MorphologyExTest, initMatrixRandN, FIXTURE_API(CompareMats,cv::MorphTypes),
2, cmpF, op) 2, cmpF, op)
GAPI_TEST_FIXTURE(SobelTest, initMatrixRandN, FIXTURE_API(CompareMats,int,int,int), 4, GAPI_TEST_FIXTURE(SobelTest, initMatrixRandN, FIXTURE_API(CompareMats,int,int,int), 4,
cmpF, kernSize, dx, dy) cmpF, kernSize, dx, dy)

@ -313,7 +313,7 @@ TEST_P(Dilate3x3Test, AccuracyTest)
TEST_P(MorphologyExTest, AccuracyTest) TEST_P(MorphologyExTest, AccuracyTest)
{ {
MorphShapes defShape = cv::MORPH_RECT; cv::MorphShapes defShape = cv::MORPH_RECT;
int defKernSize = 3; int defKernSize = 3;
cv::Mat kernel = cv::getStructuringElement(defShape, cv::Size(defKernSize, defKernSize)); cv::Mat kernel = cv::getStructuringElement(defShape, cv::Size(defKernSize, defKernSize));

Loading…
Cancel
Save