From 6b6c7ccfea4a8b83e37983ff796e8296b8e9cd50 Mon Sep 17 00:00:00 2001 From: Alexander Karsakov Date: Wed, 27 Aug 2014 17:58:48 +0400 Subject: [PATCH] Added accuracy tests with real and generated data --- modules/imgproc/test/ocl/test_houghlines.cpp | 35 ++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/modules/imgproc/test/ocl/test_houghlines.cpp b/modules/imgproc/test/ocl/test_houghlines.cpp index 2d78c04..ad27e10 100644 --- a/modules/imgproc/test/ocl/test_houghlines.cpp +++ b/modules/imgproc/test/ocl/test_houghlines.cpp @@ -53,10 +53,45 @@ PARAM_TEST_CASE(HoughLinesTestBase, double, double, int) src.copyTo(usrc); } + + virtual void readRealTestData() + { + Mat img = readImage("shared/pic5.png", IMREAD_GRAYSCALE); + Canny(img, src, 100, 150, 3); + + src.copyTo(usrc); + } + + virtual void Near(double eps = 0.) + { + EXPECT_EQ(dst.size(), udst.size()); + + if (dst.total() > 0) + { + Mat lines_cpu, lines_gpu; + dst.copyTo(lines_cpu); + udst.copyTo(lines_gpu); + + std::sort(lines_cpu.begin(), lines_cpu.end(), Vec2fComparator()); + std::sort(lines_gpu.begin(), lines_gpu.end(), Vec2fComparator()); + + EXPECT_LE(TestUtils::checkNorm2(lines_cpu, lines_gpu), eps); + } + } }; typedef HoughLinesTestBase HoughLines; +OCL_TEST_P(HoughLines, RealImage) +{ + readRealTestData(); + + OCL_OFF(cv::HoughLines(src, dst, rhoStep, thetaStep, threshold)); + OCL_ON(cv::HoughLines(usrc, udst, rhoStep, thetaStep, threshold)); + + Near(1e-5); +} + OCL_TEST_P(HoughLines, GeneratedImage) { for (int j = 0; j < test_loop_times; j++) -- 2.7.4