From 52dbbae82c0269dc9db805b4f4939cde72391d9b Mon Sep 17 00:00:00 2001 From: yao Date: Tue, 7 May 2013 16:14:50 +0800 Subject: [PATCH 1/8] some cleanup, remove some commented codes --- modules/ocl/test/test_arithm.cpp | 4 --- modules/ocl/test/test_blend.cpp | 15 ++------- modules/ocl/test/test_columnsum.cpp | 16 ++-------- modules/ocl/test/test_filters.cpp | 25 ++------------- modules/ocl/test/test_gemm.cpp | 3 +- modules/ocl/test/test_haar.cpp | 6 ---- modules/ocl/test/test_imgproc.cpp | 37 ++-------------------- modules/ocl/test/test_match_template.cpp | 5 --- modules/ocl/test/test_matrix_operation.cpp | 28 +++------------- modules/ocl/test/test_pyrdown.cpp | 11 ------- modules/ocl/test/test_pyrlk.cpp | 12 ------- modules/ocl/test/test_pyrup.cpp | 3 -- modules/ocl/test/test_split_merge.cpp | 12 ++----- 13 files changed, 18 insertions(+), 159 deletions(-) diff --git a/modules/ocl/test/test_arithm.cpp b/modules/ocl/test/test_arithm.cpp index e46fdbddd1..81dab430ee 100644 --- a/modules/ocl/test/test_arithm.cpp +++ b/modules/ocl/test/test_arithm.cpp @@ -125,10 +125,6 @@ PARAM_TEST_CASE(ArithmTestBase, MatType, bool) val = cv::Scalar(rng.uniform(-10.0, 10.0), rng.uniform(-10.0, 10.0), rng.uniform(-10.0, 10.0), rng.uniform(-10.0, 10.0)); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); } void random_roi() diff --git a/modules/ocl/test/test_blend.cpp b/modules/ocl/test/test_blend.cpp index f9c8657d04..fcc1925435 100644 --- a/modules/ocl/test/test_blend.cpp +++ b/modules/ocl/test/test_blend.cpp @@ -33,20 +33,14 @@ void blendLinearGold(const cv::Mat &img1, const cv::Mat &img2, const cv::Mat &we PARAM_TEST_CASE(Blend, cv::Size, MatType/*, UseRoi*/) { - //std::vector oclinfo; cv::Size size; int type; bool useRoi; virtual void SetUp() { - //devInfo = GET_PARAM(0); size = GET_PARAM(0); type = GET_PARAM(1); - /*useRoi = GET_PARAM(3);*/ - - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); } }; @@ -59,12 +53,9 @@ TEST_P(Blend, Accuracy) cv::Mat weights1 = randomMat(size, CV_32F, 0, 1); cv::Mat weights2 = randomMat(size, CV_32F, 0, 1); - cv::ocl::oclMat gimg1(size, type), gimg2(size, type), gweights1(size, CV_32F), gweights2(size, CV_32F); - cv::ocl::oclMat dst(size, type); - gimg1.upload(img1); - gimg2.upload(img2); - gweights1.upload(weights1); - gweights2.upload(weights2); + cv::ocl::oclMat gimg1(img1), gimg2(img2), gweights1(weights1), gweights2(weights2); + cv::ocl::oclMat dst; + cv::ocl::blendLinear(gimg1, gimg2, gweights1, gweights2, dst); cv::Mat result; cv::Mat result_gold; diff --git a/modules/ocl/test/test_columnsum.cpp b/modules/ocl/test/test_columnsum.cpp index 9bd2e6f8ef..bf389d1b84 100644 --- a/modules/ocl/test/test_columnsum.cpp +++ b/modules/ocl/test/test_columnsum.cpp @@ -47,27 +47,16 @@ #include "precomp.hpp" #include -/////////////////////////////////////////////////////////////////////////////// -/// ColumnSum - #ifdef HAVE_OPENCL -//////////////////////////////////////////////////////////////////////// -// ColumnSum - -PARAM_TEST_CASE(ColumnSum, cv::Size, bool ) +PARAM_TEST_CASE(ColumnSum, cv::Size) { cv::Size size; cv::Mat src; - bool useRoi; - //std::vector oclinfo; virtual void SetUp() { size = GET_PARAM(0); - useRoi = GET_PARAM(1); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); } }; @@ -99,8 +88,7 @@ TEST_P(ColumnSum, Accuracy) } } -INSTANTIATE_TEST_CASE_P(GPU_ImgProc, ColumnSum, testing::Combine( - DIFFERENT_SIZES, testing::Values(Inverse(false), Inverse(true)))); +INSTANTIATE_TEST_CASE_P(GPU_ImgProc, ColumnSum, DIFFERENT_SIZES); #endif diff --git a/modules/ocl/test/test_filters.cpp b/modules/ocl/test/test_filters.cpp index 70d4079445..d598b6a18f 100644 --- a/modules/ocl/test/test_filters.cpp +++ b/modules/ocl/test/test_filters.cpp @@ -285,7 +285,7 @@ PARAM_TEST_CASE(LaplacianTestBase, MatType, int) //src mat with roi cv::Mat mat_roi; cv::Mat dst_roi; - //std::vector oclinfo; + //ocl dst mat for testing cv::ocl::oclMat gdst_whole; @@ -304,10 +304,6 @@ PARAM_TEST_CASE(LaplacianTestBase, MatType, int) mat = randomMat(rng, size, type, 5, 16, false); dst = randomMat(rng, size, type, 5, 16, false); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); } void random_roi() @@ -388,7 +384,7 @@ PARAM_TEST_CASE(ErodeDilateBase, MatType, int) //src mat with roi cv::Mat mat1_roi; cv::Mat dst_roi; - //std::vector oclinfo; + //ocl dst mat for testing cv::ocl::oclMat gdst_whole; @@ -518,7 +514,7 @@ PARAM_TEST_CASE(Sobel, MatType, int, int, int, int) //src mat with roi cv::Mat mat1_roi; cv::Mat dst_roi; - //std::vector oclinfo; + //ocl dst mat for testing cv::ocl::oclMat gdst_whole; @@ -540,11 +536,6 @@ PARAM_TEST_CASE(Sobel, MatType, int, int, int, int) mat1 = randomMat(rng, size, type, 5, 16, false); dst = randomMat(rng, size, type, 5, 16, false); - - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); } void random_roi() @@ -622,7 +613,6 @@ PARAM_TEST_CASE(Scharr, MatType, int, int, int) //src mat with roi cv::Mat mat1_roi; cv::Mat dst_roi; - //std::vector oclinfo; //ocl dst mat for testing cv::ocl::oclMat gdst_whole; @@ -645,10 +635,6 @@ PARAM_TEST_CASE(Scharr, MatType, int, int, int) mat1 = randomMat(rng, size, type, 5, 16, false); dst = randomMat(rng, size, type, 5, 16, false); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); } void random_roi() @@ -729,7 +715,6 @@ PARAM_TEST_CASE(GaussianBlur, MatType, cv::Size, int) //src mat with roi cv::Mat mat1_roi; cv::Mat dst_roi; - //std::vector oclinfo; //ocl dst mat for testing cv::ocl::oclMat gdst_whole; @@ -752,10 +737,6 @@ PARAM_TEST_CASE(GaussianBlur, MatType, cv::Size, int) mat1 = randomMat(rng, size, type, 5, 16, false); dst = randomMat(rng, size, type, 5, 16, false); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); } void random_roi() diff --git a/modules/ocl/test/test_gemm.cpp b/modules/ocl/test/test_gemm.cpp index c26a8481f2..a5d90ff01c 100644 --- a/modules/ocl/test/test_gemm.cpp +++ b/modules/ocl/test/test_gemm.cpp @@ -53,13 +53,12 @@ PARAM_TEST_CASE(Gemm, int, cv::Size, int) int type; cv::Size mat_size; int flags; - //vector info; + virtual void SetUp() { type = GET_PARAM(0); mat_size = GET_PARAM(1); flags = GET_PARAM(2); - //cv::ocl::getDevice(info); } }; diff --git a/modules/ocl/test/test_haar.cpp b/modules/ocl/test/test_haar.cpp index 9bff324662..eab6769214 100644 --- a/modules/ocl/test/test_haar.cpp +++ b/modules/ocl/test/test_haar.cpp @@ -63,7 +63,6 @@ struct getRect PARAM_TEST_CASE(HaarTestBase, int, int) { - //std::vector oclinfo; cv::ocl::OclCascadeClassifier cascade, nestedCascade; cv::CascadeClassifier cpucascade, cpunestedCascade; // Mat img; @@ -82,11 +81,6 @@ PARAM_TEST_CASE(HaarTestBase, int, int) cout << "ERROR: Could not load classifier cascade" << endl; return; } - //int devnums = getDevice(oclinfo); - //CV_Assert(devnums>0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); - //cv::ocl::setBinpath("E:\\"); } }; diff --git a/modules/ocl/test/test_imgproc.cpp b/modules/ocl/test/test_imgproc.cpp index 9cc6c1c898..92e2ee9d4b 100644 --- a/modules/ocl/test/test_imgproc.cpp +++ b/modules/ocl/test/test_imgproc.cpp @@ -327,7 +327,7 @@ PARAM_TEST_CASE(ImgprocTestBase, MatType, MatType, MatType, MatType, MatType, bo cv::Mat mask_roi; cv::Mat dst_roi; cv::Mat dst1_roi; //bak - //std::vector oclinfo; + //ocl mat cv::ocl::oclMat clmat1; cv::ocl::oclMat clmat2; @@ -352,10 +352,6 @@ PARAM_TEST_CASE(ImgprocTestBase, MatType, MatType, MatType, MatType, MatType, bo cv::RNG &rng = TS::ptr()->get_rng(); cv::Size size(MWIDTH, MHEIGHT); double min = 1, max = 20; - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); if(type1 != nulltype) { @@ -720,7 +716,7 @@ PARAM_TEST_CASE(WarpTestBase, MatType, int) //src mat with roi cv::Mat mat1_roi; cv::Mat dst_roi; - //std::vector oclinfo; + //ocl dst mat for testing cv::ocl::oclMat gdst_whole; @@ -740,10 +736,6 @@ PARAM_TEST_CASE(WarpTestBase, MatType, int) mat1 = randomMat(rng, size, type, 5, 16, false); dst = randomMat(rng, size, type, 5, 16, false); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); } void random_roi() @@ -905,9 +897,6 @@ PARAM_TEST_CASE(Remap, MatType, MatType, MatType, int, int) interpolation = GET_PARAM(3); bordertype = GET_PARAM(4); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - cv::RNG &rng = TS::ptr()->get_rng(); cv::Size srcSize = cv::Size(MWIDTH, MHEIGHT); cv::Size map1Size = cv::Size(MWIDTH, MHEIGHT); @@ -1051,7 +1040,6 @@ PARAM_TEST_CASE(Resize, MatType, cv::Size, double, double, int) int dstx; int dsty; - //std::vector oclinfo; //src mat with roi cv::Mat mat1_roi; cv::Mat dst_roi; @@ -1090,10 +1078,6 @@ PARAM_TEST_CASE(Resize, MatType, cv::Size, double, double, int) mat1 = randomMat(rng, size, type, 5, 16, false); dst = randomMat(rng, dsize, type, 5, 16, false); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); } void random_roi() @@ -1181,7 +1165,7 @@ PARAM_TEST_CASE(Threshold, MatType, ThreshOp) //src mat with roi cv::Mat mat1_roi; cv::Mat dst_roi; - //std::vector oclinfo; + //ocl dst mat for testing cv::ocl::oclMat gdst_whole; @@ -1199,11 +1183,6 @@ PARAM_TEST_CASE(Threshold, MatType, ThreshOp) mat1 = randomMat(rng, size, type, 5, 16, false); dst = randomMat(rng, size, type, 5, 16, false); - - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); } void random_roi() @@ -1288,7 +1267,6 @@ PARAM_TEST_CASE(meanShiftTestBase, MatType, MatType, int, int, cv::TermCriteria) cv::ocl::oclMat gdst; cv::ocl::oclMat gdstCoor; - //std::vector oclinfo; //ocl mat with roi cv::ocl::oclMat gsrc_roi; cv::ocl::oclMat gdst_roi; @@ -1311,10 +1289,6 @@ PARAM_TEST_CASE(meanShiftTestBase, MatType, MatType, int, int, cv::TermCriteria) dst = randomMat(rng, size, type, 5, 16, false); dstCoor = randomMat(rng, size, typeCoor, 5, 16, false); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); } void random_roi() @@ -1436,7 +1410,6 @@ PARAM_TEST_CASE(histTestBase, MatType, MatType) cv::ocl::oclMat gdst_hist; //ocl mat with roi cv::ocl::oclMat gsrc_roi; - // std::vector oclinfo; virtual void SetUp() { @@ -1447,10 +1420,6 @@ PARAM_TEST_CASE(histTestBase, MatType, MatType) src = randomMat(rng, size, type_src, 0, 256, false); - // int devnums = getDevice(oclinfo); - // CV_Assert(devnums > 0); - //if you want to use undefault device, set it here - //setDevice(oclinfo[0]); } void random_roi() diff --git a/modules/ocl/test/test_match_template.cpp b/modules/ocl/test/test_match_template.cpp index 5da7f01cd8..e6f1f7080d 100644 --- a/modules/ocl/test/test_match_template.cpp +++ b/modules/ocl/test/test_match_template.cpp @@ -62,7 +62,6 @@ PARAM_TEST_CASE(MatchTemplate8U, cv::Size, TemplateSize, Channels, TemplateMetho cv::Size templ_size; int cn; int method; - //std::vector oclinfo; virtual void SetUp() { @@ -70,8 +69,6 @@ PARAM_TEST_CASE(MatchTemplate8U, cv::Size, TemplateSize, Channels, TemplateMetho templ_size = GET_PARAM(1); cn = GET_PARAM(2); method = GET_PARAM(3); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); } }; @@ -114,8 +111,6 @@ PARAM_TEST_CASE(MatchTemplate32F, cv::Size, TemplateSize, Channels, TemplateMeth templ_size = GET_PARAM(1); cn = GET_PARAM(2); method = GET_PARAM(3); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); } }; diff --git a/modules/ocl/test/test_matrix_operation.cpp b/modules/ocl/test/test_matrix_operation.cpp index ef11aaa132..cfcafbcfc2 100644 --- a/modules/ocl/test/test_matrix_operation.cpp +++ b/modules/ocl/test/test_matrix_operation.cpp @@ -72,7 +72,7 @@ PARAM_TEST_CASE(ConvertToTestBase, MatType, MatType) //src mat with roi cv::Mat mat_roi; cv::Mat dst_roi; - //std::vector oclinfo; + //ocl dst mat for testing cv::ocl::oclMat gdst_whole; @@ -90,11 +90,6 @@ PARAM_TEST_CASE(ConvertToTestBase, MatType, MatType) mat = randomMat(rng, size, type, 5, 16, false); dst = randomMat(rng, size, type, 5, 16, false); - //std::vector oclinfo; - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); } void random_roi() @@ -175,7 +170,7 @@ PARAM_TEST_CASE(CopyToTestBase, MatType, bool) cv::Mat mat_roi; cv::Mat mask_roi; cv::Mat dst_roi; - //std::vector oclinfo; + //ocl dst mat for testing cv::ocl::oclMat gdst_whole; @@ -197,10 +192,6 @@ PARAM_TEST_CASE(CopyToTestBase, MatType, bool) cv::threshold(mask, mask, 0.5, 255., CV_8UC1); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); } void random_roi() @@ -301,7 +292,7 @@ PARAM_TEST_CASE(SetToTestBase, MatType, bool) //src mat with roi cv::Mat mat_roi; cv::Mat mask_roi; - //std::vector oclinfo; + //ocl dst mat for testing cv::ocl::oclMat gmat_whole; @@ -322,10 +313,6 @@ PARAM_TEST_CASE(SetToTestBase, MatType, bool) cv::threshold(mask, mask, 0.5, 255., CV_8UC1); val = cv::Scalar(rng.uniform(-10.0, 10.0), rng.uniform(-10.0, 10.0), rng.uniform(-10.0, 10.0), rng.uniform(-10.0, 10.0)); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); } void random_roi() @@ -417,7 +404,7 @@ PARAM_TEST_CASE(convertC3C4, MatType, cv::Size) //src mat with roi cv::Mat mat1_roi; cv::Mat dst_roi; - //std::vector oclinfo; + //ocl dst mat for testing cv::ocl::oclMat gdst_whole; @@ -430,13 +417,6 @@ PARAM_TEST_CASE(convertC3C4, MatType, cv::Size) type = GET_PARAM(0); ksize = GET_PARAM(1); - - - //dst = randomMat(rng, size, type, 5, 16, false); - //int devnums = getDevice(oclinfo); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[1]); } void random_roi() diff --git a/modules/ocl/test/test_pyrdown.cpp b/modules/ocl/test/test_pyrdown.cpp index c7233cc78a..a67e0b0ac6 100644 --- a/modules/ocl/test/test_pyrdown.cpp +++ b/modules/ocl/test/test_pyrdown.cpp @@ -65,15 +65,6 @@ PARAM_TEST_CASE(PyrDown, MatType, int) { type = GET_PARAM(0); channels = GET_PARAM(1); - - //int devnums = getDevice(oclinfo); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); - } - - void Cleanup() - { } }; @@ -97,8 +88,6 @@ TEST_P(PyrDown, Mat) char s[1024] = {0}; EXPECT_MAT_NEAR(dst, dst_cpu, dst.depth() == CV_32F ? 1e-4f : 1.0f, s); - - Cleanup(); } } diff --git a/modules/ocl/test/test_pyrlk.cpp b/modules/ocl/test/test_pyrlk.cpp index 7c747ee4fc..064cb30bd8 100644 --- a/modules/ocl/test/test_pyrlk.cpp +++ b/modules/ocl/test/test_pyrlk.cpp @@ -50,19 +50,7 @@ using namespace cvtest; using namespace testing; using namespace std; -//#define DUMP - -///////////////////////////////////////////////////////////////////////////////////////////////// -// BroxOpticalFlow extern string workdir; -#define BROX_OPTICAL_FLOW_DUMP_FILE "opticalflow/brox_optical_flow.bin" -#define BROX_OPTICAL_FLOW_DUMP_FILE_CC20 "opticalflow/brox_optical_flow_cc20.bin" - - -///////////////////////////////////////////////////////////////////////////////////////////////// -// PyrLKOpticalFlow - -//IMPLEMENT_PARAM_CLASS(UseGray, bool) PARAM_TEST_CASE(Sparse, bool, bool) { diff --git a/modules/ocl/test/test_pyrup.cpp b/modules/ocl/test/test_pyrup.cpp index 9889b92ac0..b2d45ef4fd 100644 --- a/modules/ocl/test/test_pyrup.cpp +++ b/modules/ocl/test/test_pyrup.cpp @@ -58,12 +58,9 @@ PARAM_TEST_CASE(PyrUp, MatType, int) { int type; int channels; - //std::vector oclinfo; virtual void SetUp() { - //int devnums = cv::ocl::getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); type = GET_PARAM(0); channels = GET_PARAM(1); } diff --git a/modules/ocl/test/test_split_merge.cpp b/modules/ocl/test/test_split_merge.cpp index f41d16eeee..5543bbac41 100644 --- a/modules/ocl/test/test_split_merge.cpp +++ b/modules/ocl/test/test_split_merge.cpp @@ -87,7 +87,7 @@ PARAM_TEST_CASE(MergeTestBase, MatType, int) //dst mat with roi cv::Mat dst_roi; - //std::vector oclinfo; + //ocl dst mat for testing cv::ocl::oclMat gdst_whole; @@ -112,10 +112,6 @@ PARAM_TEST_CASE(MergeTestBase, MatType, int) mat4 = randomMat(rng, size, CV_MAKETYPE(type, 1), 5, 16, false); dst = randomMat(rng, size, CV_MAKETYPE(type, channels), 5, 16, false); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); } void random_roi() @@ -252,7 +248,7 @@ PARAM_TEST_CASE(SplitTestBase, MatType, int) cv::Mat dst2_roi; cv::Mat dst3_roi; cv::Mat dst4_roi; - //std::vector oclinfo; + //ocl dst mat for testing cv::ocl::oclMat gdst1_whole; cv::ocl::oclMat gdst2_whole; @@ -280,10 +276,6 @@ PARAM_TEST_CASE(SplitTestBase, MatType, int) dst3 = randomMat(rng, size, CV_MAKETYPE(type, 1), 5, 16, false); dst4 = randomMat(rng, size, CV_MAKETYPE(type, 1), 5, 16, false); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); } void random_roi() From e4d3378230686510663528827400969e8a6ebe0c Mon Sep 17 00:00:00 2001 From: yao Date: Wed, 8 May 2013 15:12:12 +0800 Subject: [PATCH 2/8] simplify logics in filter tests, remove redundant code in arithm tests --- modules/ocl/test/test_arithm.cpp | 280 ++++----------- modules/ocl/test/test_filters.cpp | 566 +++++------------------------- 2 files changed, 161 insertions(+), 685 deletions(-) diff --git a/modules/ocl/test/test_arithm.cpp b/modules/ocl/test/test_arithm.cpp index 81dab430ee..e23b3d104a 100644 --- a/modules/ocl/test/test_arithm.cpp +++ b/modules/ocl/test/test_arithm.cpp @@ -12,6 +12,7 @@ // // Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved. // Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. // Third party copyrights are property of their respective owners. // // @Authors @@ -21,6 +22,7 @@ // Jiang Liyuan,jlyuan001.good@163.com // Rock Li, Rock.Li@amd.com // Zailong Wu, bullet@yeah.net +// Yao Wang, bitwangyaoyao@gmail.com // // Redistribution and use in source and binary forms, with or without modification, // are permitted provided that the following conditions are met: @@ -87,14 +89,13 @@ PARAM_TEST_CASE(ArithmTestBase, MatType, bool) int maskx; int masky; - //src mat with roi cv::Mat mat1_roi; cv::Mat mat2_roi; cv::Mat mask_roi; cv::Mat dst_roi; cv::Mat dst1_roi; //bak - //std::vector oclinfo; + //ocl dst mat for testing cv::ocl::oclMat gdst_whole; cv::ocl::oclMat gdst1_whole; //bak @@ -202,17 +203,12 @@ TEST_P(Lut, Mat) cv::Mat cpu_dst; gdst_whole.download (cpu_dst); - char s[1024]; - sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0, s); + EXPECT_MAT_NEAR(dst, cpu_dst, 0, ""); } } - - ////////////////////////////////exp///////////////////////////////////////////////// - struct Exp : ArithmTestBase {}; TEST_P(Exp, Mat) @@ -227,16 +223,13 @@ TEST_P(Exp, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char s[1024]; - sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 2, s); + EXPECT_MAT_NEAR(dst, cpu_dst, 2, ""); } } ////////////////////////////////log///////////////////////////////////////////////// - struct Log : ArithmTestBase {}; TEST_P(Log, Mat) @@ -245,24 +238,17 @@ TEST_P(Log, Mat) { random_roi(); - cv::log(mat1_roi, dst_roi); cv::ocl::log(gmat1, gdst); cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char s[1024]; - sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1, s); - + EXPECT_MAT_NEAR(dst, cpu_dst, 1, ""); } } - - ////////////////////////////////add///////////////////////////////////////////////// - struct Add : ArithmTestBase {}; TEST_P(Add, Mat) @@ -276,9 +262,7 @@ TEST_P(Add, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char s[1024]; - sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, s); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); } } @@ -293,9 +277,7 @@ TEST_P(Add, Mat_Mask) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char s[1024]; - sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, s); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); } } TEST_P(Add, Scalar) @@ -309,9 +291,7 @@ TEST_P(Add, Scalar) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char s[1024]; - sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, s); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } @@ -326,9 +306,7 @@ TEST_P(Add, Scalar_Mask) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char s[1024]; - sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, s); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } @@ -348,9 +326,7 @@ TEST_P(Sub, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char s[1024]; - sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, s); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); } } @@ -365,11 +341,10 @@ TEST_P(Sub, Mat_Mask) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char s[1024]; - sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, s); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); } } + TEST_P(Sub, Scalar) { for(int j = 0; j < LOOP_TIMES; j++) @@ -381,9 +356,7 @@ TEST_P(Sub, Scalar) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char s[1024]; - sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, s); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } @@ -398,9 +371,7 @@ TEST_P(Sub, Scalar_Mask) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char s[1024]; - sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, s); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } @@ -420,9 +391,7 @@ TEST_P(Mul, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char s[1024]; - sprintf(s, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, s); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); } } @@ -440,9 +409,7 @@ TEST_P(Mul, Mat_Scalar) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.001, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.001, ""); } } @@ -461,10 +428,7 @@ TEST_P(Div, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1, ""); } } @@ -482,10 +446,7 @@ TEST_P(Div, Mat_Scalar) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.001, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.001, ""); } } @@ -503,10 +464,7 @@ TEST_P(Absdiff, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0, ""); } } @@ -521,10 +479,7 @@ TEST_P(Absdiff, Mat_Scalar) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } @@ -546,10 +501,8 @@ TEST_P(CartToPolar, angleInDegree) cv::Mat cpu_dst1; gdst1_whole.download(cpu_dst1); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, sss); - EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, ""); + EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, ""); } } @@ -567,16 +520,12 @@ TEST_P(CartToPolar, angleInRadians) cv::Mat cpu_dst1; gdst1_whole.download(cpu_dst1); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, sss); - EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, ""); + EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, ""); } } - - struct PolarToCart : ArithmTestBase {}; TEST_P(PolarToCart, angleInDegree) @@ -593,11 +542,9 @@ TEST_P(PolarToCart, angleInDegree) cv::Mat cpu_dst1; gdst1_whole.download(cpu_dst1); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, sss); - EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, ""); + EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, ""); } } @@ -615,11 +562,9 @@ TEST_P(PolarToCart, angleInRadians) cv::Mat cpu_dst1; gdst1_whole.download(cpu_dst1); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, sss); - EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, ""); + EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, ""); } } @@ -639,16 +584,12 @@ TEST_P(Magnitude, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } - - struct Transpose : ArithmTestBase {}; TEST_P(Transpose, Mat) @@ -662,17 +603,13 @@ TEST_P(Transpose, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } - - struct Flip : ArithmTestBase {}; TEST_P(Flip, X) @@ -686,10 +623,8 @@ TEST_P(Flip, X) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } @@ -704,10 +639,8 @@ TEST_P(Flip, Y) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } @@ -722,15 +655,12 @@ TEST_P(Flip, BOTH) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } - struct MinMax : ArithmTestBase {}; TEST_P(MinMax, MAT) @@ -761,12 +691,8 @@ TEST_P(MinMax, MAT) double minVal_, maxVal_; cv::ocl::minMax(gmat1, &minVal_, &maxVal_); - //check results - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - - EXPECT_DOUBLE_EQ(minVal_, minVal) << sss; - EXPECT_DOUBLE_EQ(maxVal_, maxVal) << sss; + EXPECT_DOUBLE_EQ(minVal_, minVal); + EXPECT_DOUBLE_EQ(maxVal_, maxVal); } } @@ -799,12 +725,8 @@ TEST_P(MinMax, MASK) double minVal_, maxVal_; cv::ocl::minMax(gmat1, &minVal_, &maxVal_, gmask); - //check results - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - - EXPECT_DOUBLE_EQ(minVal_, minVal) << sss; - EXPECT_DOUBLE_EQ(maxVal_, maxVal) << sss; + EXPECT_DOUBLE_EQ(minVal_, minVal); + EXPECT_DOUBLE_EQ(maxVal_, maxVal); } } @@ -915,17 +837,13 @@ TEST_P(MinMaxLoc, MAT) error1 = ::abs(mat1_roi.at(maxLoc_) - mat1_roi.at(maxLoc)); } - //check results - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); + EXPECT_DOUBLE_EQ(minVal_, minVal); + EXPECT_DOUBLE_EQ(maxVal_, maxVal); + EXPECT_DOUBLE_EQ(minlocVal_, minlocVal); + EXPECT_DOUBLE_EQ(maxlocVal_, maxlocVal); - EXPECT_DOUBLE_EQ(minVal_, minVal) << sss; - EXPECT_DOUBLE_EQ(maxVal_, maxVal) << sss; - EXPECT_DOUBLE_EQ(minlocVal_, minlocVal) << sss; - EXPECT_DOUBLE_EQ(maxlocVal_, maxlocVal) << sss; - - EXPECT_DOUBLE_EQ(error0, 0.0) << sss; - EXPECT_DOUBLE_EQ(error1, 0.0) << sss; + EXPECT_DOUBLE_EQ(error0, 0.0); + EXPECT_DOUBLE_EQ(error1, 0.0); } } @@ -1036,17 +954,13 @@ TEST_P(MinMaxLoc, MASK) error1 = ::abs(mat1_roi.at(maxLoc_) - mat1_roi.at(maxLoc)); } - //check results - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); + EXPECT_DOUBLE_EQ(minVal_, minVal); + EXPECT_DOUBLE_EQ(maxVal_, maxVal); + EXPECT_DOUBLE_EQ(minlocVal_, minlocVal); + EXPECT_DOUBLE_EQ(maxlocVal_, maxlocVal); - EXPECT_DOUBLE_EQ(minVal_, minVal) << sss; - EXPECT_DOUBLE_EQ(maxVal_, maxVal) << sss; - EXPECT_DOUBLE_EQ(minlocVal_, minlocVal) << sss; - EXPECT_DOUBLE_EQ(maxlocVal_, maxlocVal) << sss; - - EXPECT_DOUBLE_EQ(error0, 0.0) << sss; - EXPECT_DOUBLE_EQ(error1, 0.0) << sss; + EXPECT_DOUBLE_EQ(error0, 0.0); + EXPECT_DOUBLE_EQ(error1, 0.0); } } @@ -1060,14 +974,12 @@ TEST_P(Sum, MAT) random_roi(); Scalar cpures = cv::sum(mat1_roi); Scalar gpures = cv::ocl::sum(gmat1); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); //check results - EXPECT_NEAR(cpures[0], gpures[0], 0.1) << sss; - EXPECT_NEAR(cpures[1], gpures[1], 0.1) << sss; - EXPECT_NEAR(cpures[2], gpures[2], 0.1) << sss; - EXPECT_NEAR(cpures[3], gpures[3], 0.1) << sss; + EXPECT_NEAR(cpures[0], gpures[0], 0.1); + EXPECT_NEAR(cpures[1], gpures[1], 0.1); + EXPECT_NEAR(cpures[2], gpures[2], 0.1); + EXPECT_NEAR(cpures[3], gpures[3], 0.1); } } @@ -1082,11 +994,7 @@ TEST_P(CountNonZero, MAT) int cpures = cv::countNonZero(mat1_roi); int gpures = cv::ocl::countNonZero(gmat1); - //check results - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - - EXPECT_DOUBLE_EQ((double)cpures, (double)gpures) << sss; + EXPECT_DOUBLE_EQ((double)cpures, (double)gpures); } } @@ -1112,9 +1020,7 @@ TEST_P(Phase, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-2, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-2, ""); } } } @@ -1134,10 +1040,8 @@ TEST_P(Bitwise_and, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); } } @@ -1152,10 +1056,8 @@ TEST_P(Bitwise_and, Mat_Mask) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); } } TEST_P(Bitwise_and, Scalar) @@ -1169,10 +1071,8 @@ TEST_P(Bitwise_and, Scalar) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } @@ -1188,11 +1088,8 @@ TEST_P(Bitwise_and, Scalar_Mask) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char *sss = new char[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); - delete[] sss; + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } @@ -1213,10 +1110,8 @@ TEST_P(Bitwise_or, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); } } @@ -1231,10 +1126,8 @@ TEST_P(Bitwise_or, Mat_Mask) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); } } TEST_P(Bitwise_or, Scalar) @@ -1248,10 +1141,8 @@ TEST_P(Bitwise_or, Scalar) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } @@ -1266,10 +1157,8 @@ TEST_P(Bitwise_or, Scalar_Mask) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } @@ -1290,10 +1179,8 @@ TEST_P(Bitwise_xor, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); } } @@ -1308,10 +1195,8 @@ TEST_P(Bitwise_xor, Mat_Mask) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); } } TEST_P(Bitwise_xor, Scalar) @@ -1325,10 +1210,8 @@ TEST_P(Bitwise_xor, Scalar) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } @@ -1343,10 +1226,8 @@ TEST_P(Bitwise_xor, Scalar_Mask) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } @@ -1366,10 +1247,8 @@ TEST_P(Bitwise_not, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); } } @@ -1386,7 +1265,7 @@ TEST_P(Compare, Mat) } int cmp_codes[] = {CMP_EQ, CMP_GT, CMP_GE, CMP_LT, CMP_LE, CMP_NE}; - const char *cmp_str[] = {"CMP_EQ", "CMP_GT", "CMP_GE", "CMP_LT", "CMP_LE", "CMP_NE"}; + //const char *cmp_str[] = {"CMP_EQ", "CMP_GT", "CMP_GE", "CMP_LT", "CMP_LE", "CMP_NE"}; int cmp_num = sizeof(cmp_codes) / sizeof(int); for (int i = 0; i < cmp_num; ++i) @@ -1401,10 +1280,8 @@ TEST_P(Compare, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "cmptype=%s, roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", cmp_str[i], roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); } } @@ -1430,10 +1307,7 @@ TEST_P(Pow, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1, ""); } } @@ -1464,16 +1338,13 @@ TEST_P(MagnitudeSqr, Mat) // end = cv::getTickCount(); - cv::ocl::oclMat clmat1(mat1), clmat2(mat2), cldst; cv::ocl::magnitudeSqr(clmat1, clmat2, cldst); cv::Mat cpu_dst; cldst.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_dst, 1, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1, ""); } } @@ -1498,10 +1369,7 @@ TEST_P(AddWeighted, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, maskx, masky, src2x, src2y); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } diff --git a/modules/ocl/test/test_filters.cpp b/modules/ocl/test/test_filters.cpp index d598b6a18f..dbca326937 100644 --- a/modules/ocl/test/test_filters.cpp +++ b/modules/ocl/test/test_filters.cpp @@ -12,6 +12,7 @@ // // Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved. // Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. // Third party copyrights are property of their respective owners. // // @Authors @@ -19,6 +20,7 @@ // Jia Haipeng, jiahaipeng95@gmail.com // Zero Lin, Zero.Lin@amd.com // Zhang Ying, zhangying913@gmail.com +// Yao Wang, bitwangyaoyao@gmail.com // // Redistribution and use in source and binary forms, with or without modification, // are permitted provided that the following conditions are met: @@ -55,121 +57,13 @@ using namespace testing; using namespace std; -PARAM_TEST_CASE(FilterTestBase, MatType, bool) +PARAM_TEST_CASE(FilterTestBase, + MatType, + cv::Size, // kernel size + cv::Size, // dx,dy + int // border type, or iteration + ) { - int type; - cv::Scalar val; - - //src mat - cv::Mat mat1; - cv::Mat mat2; - cv::Mat mask; - cv::Mat dst; - cv::Mat dst1; //bak, for two outputs - - // set up roi - int roicols; - int roirows; - int src1x; - int src1y; - int src2x; - int src2y; - int dstx; - int dsty; - int maskx; - int masky; - - //src mat with roi - cv::Mat mat1_roi; - cv::Mat mat2_roi; - cv::Mat mask_roi; - cv::Mat dst_roi; - cv::Mat dst1_roi; //bak - //std::vector oclinfo; - //ocl dst mat for testing - cv::ocl::oclMat gdst_whole; - cv::ocl::oclMat gdst1_whole; //bak - - //ocl mat with roi - cv::ocl::oclMat gmat1; - cv::ocl::oclMat gmat2; - cv::ocl::oclMat gdst; - cv::ocl::oclMat gdst1; //bak - cv::ocl::oclMat gmask; - - virtual void SetUp() - { - type = GET_PARAM(0); - - cv::RNG &rng = TS::ptr()->get_rng(); - cv::Size size(MWIDTH, MHEIGHT); - - mat1 = randomMat(rng, size, type, 5, 16, false); - mat2 = randomMat(rng, size, type, 5, 16, false); - dst = randomMat(rng, size, type, 5, 16, false); - dst1 = randomMat(rng, size, type, 5, 16, false); - mask = randomMat(rng, size, CV_8UC1, 0, 2, false); - - cv::threshold(mask, mask, 0.5, 255., CV_8UC1); - - val = cv::Scalar(rng.uniform(-10.0, 10.0), rng.uniform(-10.0, 10.0), rng.uniform(-10.0, 10.0), rng.uniform(-10.0, 10.0)); - } - - void random_roi() - { -#ifdef RANDOMROI - //randomize ROI - cv::RNG &rng = TS::ptr()->get_rng(); - roicols = rng.uniform(1, mat1.cols); - roirows = rng.uniform(1, mat1.rows); - src1x = rng.uniform(0, mat1.cols - roicols); - src1y = rng.uniform(0, mat1.rows - roirows); - src2x = rng.uniform(0, mat2.cols - roicols); - src2y = rng.uniform(0, mat2.rows - roirows); - dstx = rng.uniform(0, dst.cols - roicols); - dsty = rng.uniform(0, dst.rows - roirows); - maskx = rng.uniform(0, mask.cols - roicols); - masky = rng.uniform(0, mask.rows - roirows); -#else - roicols = mat1.cols; - roirows = mat1.rows; - src1x = 0; - src1y = 0; - src2x = 0; - src2y = 0; - dstx = 0; - dsty = 0; - maskx = 0; - masky = 0; -#endif - mat1_roi = mat1(Rect(src1x, src1y, roicols, roirows)); - mat2_roi = mat2(Rect(src2x, src2y, roicols, roirows)); - mask_roi = mask(Rect(maskx, masky, roicols, roirows)); - dst_roi = dst(Rect(dstx, dsty, roicols, roirows)); - dst1_roi = dst1(Rect(dstx, dsty, roicols, roirows)); - - gdst_whole = dst; - gdst = gdst_whole(Rect(dstx, dsty, roicols, roirows)); - - gdst1_whole = dst1; - gdst1 = gdst1_whole(Rect(dstx, dsty, roicols, roirows)); - - gmat1 = mat1_roi; - gmat2 = mat2_roi; - gmask = mask_roi; - } - -}; - -///////////////////////////////////////////////////////////////////////////////////////////////// -// blur - -PARAM_TEST_CASE(Blur, MatType, cv::Size, int) -{ - int type; - cv::Size ksize; - int bordertype; - //src mat cv::Mat mat1; cv::Mat dst; @@ -185,7 +79,7 @@ PARAM_TEST_CASE(Blur, MatType, cv::Size, int) //src mat with roi cv::Mat mat1_roi; cv::Mat dst_roi; - //std::vector oclinfo; + //ocl dst mat for testing cv::ocl::oclMat gdst_whole; @@ -193,23 +87,6 @@ PARAM_TEST_CASE(Blur, MatType, cv::Size, int) cv::ocl::oclMat gmat1; cv::ocl::oclMat gdst; - virtual void SetUp() - { - type = GET_PARAM(0); - ksize = GET_PARAM(1); - bordertype = GET_PARAM(2); - - cv::RNG &rng = TS::ptr()->get_rng(); - cv::Size size(MWIDTH, MHEIGHT); - - mat1 = randomMat(rng, size, type, 5, 16, false); - dst = randomMat(rng, size, type, 5, 16, false); - //int devnums = getDevice(oclinfo, OPENCV_DEFAULT_OPENCL_DEVICE); - //CV_Assert(devnums > 0); - ////if you want to use undefault device, set it here - ////setDevice(oclinfo[0]); - } - void random_roi() { #ifdef RANDOMROI @@ -236,12 +113,33 @@ PARAM_TEST_CASE(Blur, MatType, cv::Size, int) gdst_whole = dst; gdst = gdst_whole(Rect(dstx, dsty, roicols, roirows)); - gmat1 = mat1_roi; } }; +///////////////////////////////////////////////////////////////////////////////////////////////// +// blur +struct Blur : FilterTestBase +{ + int type; + cv::Size ksize; + int bordertype; + + virtual void SetUp() + { + type = GET_PARAM(0); + ksize = GET_PARAM(1); + bordertype = GET_PARAM(3); + + cv::RNG &rng = TS::ptr()->get_rng(); + cv::Size size(MWIDTH, MHEIGHT); + + mat1 = randomMat(rng, size, type, 5, 16, false); + dst = randomMat(rng, size, type, 5, 16, false); + } +}; + TEST_P(Blur, Mat) { for(int j = 0; j < LOOP_TIMES; j++) @@ -253,9 +151,8 @@ TEST_P(Blur, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d", roicols, roirows, src1x, src1y, dstx, dsty); - EXPECT_MAT_NEAR(dst, cpu_dst, 1.0, sss); + + EXPECT_MAT_NEAR(dst, cpu_dst, 1.0, ""); } } @@ -264,34 +161,10 @@ TEST_P(Blur, Mat) ///////////////////////////////////////////////////////////////////////////////////////////////// //Laplacian - -PARAM_TEST_CASE(LaplacianTestBase, MatType, int) +struct Laplacian : FilterTestBase { int type; - int ksize; - - //src mat - cv::Mat mat; - cv::Mat dst; - - // set up roi - int roicols; - int roirows; - int srcx; - int srcy; - int dstx; - int dsty; - - //src mat with roi - cv::Mat mat_roi; - cv::Mat dst_roi; - - //ocl dst mat for testing - cv::ocl::oclMat gdst_whole; - - //ocl mat with roi - cv::ocl::oclMat gmat; - cv::ocl::oclMat gdst; + cv::Size ksize; virtual void SetUp() { @@ -301,58 +174,26 @@ PARAM_TEST_CASE(LaplacianTestBase, MatType, int) cv::RNG &rng = TS::ptr()->get_rng(); cv::Size size(MWIDTH, MHEIGHT); - mat = randomMat(rng, size, type, 5, 16, false); + mat1 = randomMat(rng, size, type, 5, 16, false); dst = randomMat(rng, size, type, 5, 16, false); } - void random_roi() - { -#ifdef RANDOMROI - //randomize ROI - cv::RNG &rng = TS::ptr()->get_rng(); - roicols = rng.uniform(2, mat.cols); - roirows = rng.uniform(2, mat.rows); - srcx = rng.uniform(0, mat.cols - roicols); - srcy = rng.uniform(0, mat.rows - roirows); - dstx = rng.uniform(0, dst.cols - roicols); - dsty = rng.uniform(0, dst.rows - roirows); -#else - roicols = mat.cols; - roirows = mat.rows; - srcx = 0; - srcy = 0; - dstx = 0; - dsty = 0; -#endif - - mat_roi = mat(Rect(srcx, srcy, roicols, roirows)); - dst_roi = dst(Rect(dstx, dsty, roicols, roirows)); - - gdst_whole = dst; - gdst = gdst_whole(Rect(dstx, dsty, roicols, roirows)); - - gmat = mat_roi; - } }; -struct Laplacian : LaplacianTestBase {}; - TEST_P(Laplacian, Accuracy) { for(int j = 0; j < LOOP_TIMES; j++) { random_roi(); - cv::Laplacian(mat_roi, dst_roi, -1, ksize, 1); - cv::ocl::Laplacian(gmat, gdst, -1, ksize, 1); + cv::Laplacian(mat1_roi, dst_roi, -1, ksize.width, 1); + cv::ocl::Laplacian(gmat1, gdst, -1, ksize.width, 1); cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d", roicols, roirows, srcx, srcy, dstx, dsty); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } } @@ -360,8 +201,7 @@ TEST_P(Laplacian, Accuracy) ///////////////////////////////////////////////////////////////////////////////////////////////// // erode & dilate - -PARAM_TEST_CASE(ErodeDilateBase, MatType, int) +struct ErodeDilate : FilterTestBase { int type; int iterations; @@ -369,33 +209,10 @@ PARAM_TEST_CASE(ErodeDilateBase, MatType, int) //erode or dilate kernel cv::Mat kernel; - //src mat - cv::Mat mat1; - cv::Mat dst; - - // set up roi - int roicols; - int roirows; - int src1x; - int src1y; - int dstx; - int dsty; - - //src mat with roi - cv::Mat mat1_roi; - cv::Mat dst_roi; - - //ocl dst mat for testing - cv::ocl::oclMat gdst_whole; - - //ocl mat with roi - cv::ocl::oclMat gmat1; - cv::ocl::oclMat gdst; - virtual void SetUp() { type = GET_PARAM(0); - iterations = GET_PARAM(1); + iterations = GET_PARAM(3); cv::RNG &rng = TS::ptr()->get_rng(); cv::Size size(MWIDTH, MHEIGHT); @@ -407,43 +224,11 @@ PARAM_TEST_CASE(ErodeDilateBase, MatType, int) } - void random_roi() - { -#ifdef RANDOMROI - //randomize ROI - cv::RNG &rng = TS::ptr()->get_rng(); - roicols = rng.uniform(2, mat1.cols); - roirows = rng.uniform(2, mat1.rows); - src1x = rng.uniform(0, mat1.cols - roicols); - src1y = rng.uniform(0, mat1.rows - roirows); - dstx = rng.uniform(0, dst.cols - roicols); - dsty = rng.uniform(0, dst.rows - roirows); -#else - roicols = mat1.cols; - roirows = mat1.rows; - src1x = 0; - src1y = 0; - dstx = 0; - dsty = 0; -#endif - - mat1_roi = mat1(Rect(src1x, src1y, roicols, roirows)); - dst_roi = dst(Rect(dstx, dsty, roicols, roirows)); - - gdst_whole = dst; - gdst = gdst_whole(Rect(dstx, dsty, roicols, roirows)); - - - gmat1 = mat1_roi; - } - }; // erode -struct Erode : ErodeDilateBase {}; - -TEST_P(Erode, Mat) +TEST_P(ErodeDilate, Mat) { for(int j = 0; j < LOOP_TIMES; j++) { @@ -454,81 +239,39 @@ TEST_P(Erode, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d", roicols, roirows, src1x, src1y, dstx, dsty); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } - -} - - - - - -// dilate - -struct Dilate : ErodeDilateBase {}; - -TEST_P(Dilate, Mat) -{ for(int j = 0; j < LOOP_TIMES; j++) { random_roi(); - cv::erode(mat1_roi, dst_roi, kernel, Point(-1, -1), iterations); - cv::ocl::erode(gmat1, gdst, kernel, Point(-1, -1), iterations); + cv::dilate(mat1_roi, dst_roi, kernel, Point(-1, -1), iterations); + cv::ocl::dilate(gmat1, gdst, kernel, Point(-1, -1), iterations); cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d", roicols, roirows, src1x, src1y, dstx, dsty); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); } - } - - ///////////////////////////////////////////////////////////////////////////////////////////////// // Sobel - -PARAM_TEST_CASE(Sobel, MatType, int, int, int, int) +struct Sobel : FilterTestBase { int type; int dx, dy, ksize, bordertype; - //src mat - cv::Mat mat1; - cv::Mat dst; - - // set up roi - int roicols; - int roirows; - int src1x; - int src1y; - int dstx; - int dsty; - - //src mat with roi - cv::Mat mat1_roi; - cv::Mat dst_roi; - - //ocl dst mat for testing - cv::ocl::oclMat gdst_whole; - - //ocl mat with roi - cv::ocl::oclMat gmat1; - cv::ocl::oclMat gdst; - virtual void SetUp() { type = GET_PARAM(0); - dx = GET_PARAM(1); - dy = GET_PARAM(2); - ksize = GET_PARAM(3); - bordertype = GET_PARAM(4); + Size s = GET_PARAM(1); + ksize = s.width; + s = GET_PARAM(2); + dx = s.width; + dy = s.height; + bordertype = GET_PARAM(3); cv::RNG &rng = TS::ptr()->get_rng(); @@ -538,36 +281,6 @@ PARAM_TEST_CASE(Sobel, MatType, int, int, int, int) dst = randomMat(rng, size, type, 5, 16, false); } - void random_roi() - { -#ifdef RANDOMROI - //randomize ROI - cv::RNG &rng = TS::ptr()->get_rng(); - roicols = rng.uniform(2, mat1.cols); - roirows = rng.uniform(2, mat1.rows); - src1x = rng.uniform(0, mat1.cols - roicols); - src1y = rng.uniform(0, mat1.rows - roirows); - dstx = rng.uniform(0, dst.cols - roicols); - dsty = rng.uniform(0, dst.rows - roirows); -#else - roicols = mat1.cols; - roirows = mat1.rows; - src1x = 0; - src1y = 0; - dstx = 0; - dsty = 0; -#endif - - mat1_roi = mat1(Rect(src1x, src1y, roicols, roirows)); - dst_roi = dst(Rect(dstx, dsty, roicols, roirows)); - - gdst_whole = dst; - gdst = gdst_whole(Rect(dstx, dsty, roicols, roirows)); - - - gmat1 = mat1_roi; - } - }; TEST_P(Sobel, Mat) @@ -581,10 +294,8 @@ TEST_P(Sobel, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d", roicols, roirows, src1x, src1y, dstx, dsty); - EXPECT_MAT_NEAR(dst, cpu_dst, 1, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1, ""); } } @@ -592,39 +303,17 @@ TEST_P(Sobel, Mat) ///////////////////////////////////////////////////////////////////////////////////////////////// // Scharr - -PARAM_TEST_CASE(Scharr, MatType, int, int, int) +struct Scharr : FilterTestBase { int type; int dx, dy, bordertype; - //src mat - cv::Mat mat1; - cv::Mat dst; - - // set up roi - int roicols; - int roirows; - int src1x; - int src1y; - int dstx; - int dsty; - - //src mat with roi - cv::Mat mat1_roi; - cv::Mat dst_roi; - //ocl dst mat for testing - cv::ocl::oclMat gdst_whole; - - //ocl mat with roi - cv::ocl::oclMat gmat1; - cv::ocl::oclMat gdst; - virtual void SetUp() { type = GET_PARAM(0); - dx = GET_PARAM(1); - dy = GET_PARAM(2); + Size s = GET_PARAM(2); + dx = s.width; + dy = s.height; bordertype = GET_PARAM(3); dx = 1; dy = 0; @@ -637,36 +326,6 @@ PARAM_TEST_CASE(Scharr, MatType, int, int, int) } - void random_roi() - { -#ifdef RANDOMROI - //randomize ROI - cv::RNG &rng = TS::ptr()->get_rng(); - roicols = rng.uniform(2, mat1.cols); - roirows = rng.uniform(2, mat1.rows); - src1x = rng.uniform(0, mat1.cols - roicols); - src1y = rng.uniform(0, mat1.rows - roirows); - dstx = rng.uniform(0, dst.cols - roicols); - dsty = rng.uniform(0, dst.rows - roirows); -#else - roicols = mat1.cols; - roirows = mat1.rows; - src1x = 0; - src1y = 0; - dstx = 0; - dsty = 0; -#endif - - mat1_roi = mat1(Rect(src1x, src1y, roicols, roirows)); - dst_roi = dst(Rect(dstx, dsty, roicols, roirows)); - - gdst_whole = dst; - gdst = gdst_whole(Rect(dstx, dsty, roicols, roirows)); - - - gmat1 = mat1_roi; - } - }; TEST_P(Scharr, Mat) @@ -680,10 +339,8 @@ TEST_P(Scharr, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d", roicols, roirows, src1x, src1y, dstx, dsty); - EXPECT_MAT_NEAR(dst, cpu_dst, 1, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1, ""); } } @@ -691,42 +348,18 @@ TEST_P(Scharr, Mat) ///////////////////////////////////////////////////////////////////////////////////////////////// // GaussianBlur - -PARAM_TEST_CASE(GaussianBlur, MatType, cv::Size, int) +struct GaussianBlur : FilterTestBase { int type; cv::Size ksize; int bordertype; - double sigma1, sigma2; - //src mat - cv::Mat mat1; - cv::Mat dst; - - // set up roi - int roicols; - int roirows; - int src1x; - int src1y; - int dstx; - int dsty; - - //src mat with roi - cv::Mat mat1_roi; - cv::Mat dst_roi; - //ocl dst mat for testing - cv::ocl::oclMat gdst_whole; - - //ocl mat with roi - cv::ocl::oclMat gmat1; - cv::ocl::oclMat gdst; - virtual void SetUp() { type = GET_PARAM(0); ksize = GET_PARAM(1); - bordertype = GET_PARAM(2); + bordertype = GET_PARAM(3); cv::RNG &rng = TS::ptr()->get_rng(); cv::Size size(MWIDTH, MHEIGHT); @@ -739,36 +372,6 @@ PARAM_TEST_CASE(GaussianBlur, MatType, cv::Size, int) } - void random_roi() - { -#ifdef RANDOMROI - //randomize ROI - cv::RNG &rng = TS::ptr()->get_rng(); - roicols = rng.uniform(2, mat1.cols); - roirows = rng.uniform(2, mat1.rows); - src1x = rng.uniform(0, mat1.cols - roicols); - src1y = rng.uniform(0, mat1.rows - roirows); - dstx = rng.uniform(0, dst.cols - roicols); - dsty = rng.uniform(0, dst.rows - roirows); -#else - roicols = mat1.cols; - roirows = mat1.rows; - src1x = 0; - src1y = 0; - dstx = 0; - dsty = 0; -#endif - - mat1_roi = mat1(Rect(src1x, src1y, roicols, roirows)); - dst_roi = dst(Rect(dstx, dsty, roicols, roirows)); - - gdst_whole = dst; - gdst = gdst_whole(Rect(dstx, dsty, roicols, roirows)); - - - gmat1 = mat1_roi; - } - }; TEST_P(GaussianBlur, Mat) @@ -782,47 +385,52 @@ TEST_P(GaussianBlur, Mat) cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d", roicols, roirows, src1x, src1y, dstx, dsty); - EXPECT_MAT_NEAR(dst, cpu_dst, 1.0, sss); + EXPECT_MAT_NEAR(dst, cpu_dst, 1.0, ""); } } -INSTANTIATE_TEST_CASE_P(Filter, Blur, Combine(Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4), +INSTANTIATE_TEST_CASE_P(Filter, Blur, Combine( + Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4), Values(cv::Size(3, 3), cv::Size(5, 5), cv::Size(7, 7)), + Values(Size(0, 0)), //not use Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE, (MatType)cv::BORDER_REFLECT, (MatType)cv::BORDER_REFLECT_101))); INSTANTIATE_TEST_CASE_P(Filters, Laplacian, Combine( - Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC3, CV_32FC4), - Values(1, 3))); + Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC3, CV_32FC4), + Values(Size(3, 3)), + Values(Size(0, 0)), //not use + Values(0))); //not use -INSTANTIATE_TEST_CASE_P(Filter, Erode, Combine(Values(CV_8UC1, CV_8UC4, CV_32FC1, CV_32FC4), Values(1))); - -//INSTANTIATE_TEST_CASE_P(Filter, Erode, Combine(Values(CV_8UC1, CV_8UC1), Values(false))); - -INSTANTIATE_TEST_CASE_P(Filter, Dilate, Combine(Values(CV_8UC1, CV_8UC4, CV_32FC1, CV_32FC4), Values(1))); - -//INSTANTIATE_TEST_CASE_P(Filter, Dilate, Combine(Values(CV_8UC1, CV_8UC1), Values(false))); +INSTANTIATE_TEST_CASE_P(Filter, ErodeDilate, Combine( + Values(CV_8UC1, CV_8UC4, CV_32FC1, CV_32FC4), + Values(Size(0, 0)), //not use + Values(Size(0, 0)), //not use + Values(1))); -INSTANTIATE_TEST_CASE_P(Filter, Sobel, Combine(Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC3, CV_32FC4), - Values(1, 2), Values(0, 1), Values(3, 5), Values((MatType)cv::BORDER_CONSTANT, - (MatType)cv::BORDER_REPLICATE))); +INSTANTIATE_TEST_CASE_P(Filter, Sobel, Combine( + Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC3, CV_32FC4), + Values(Size(3, 3), Size(5, 5)), + Values(Size(1, 0), Size(1, 1), Size(2, 0), Size(2, 1)), + Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE))); INSTANTIATE_TEST_CASE_P(Filter, Scharr, Combine( - Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4), Values(0, 1), Values(0, 1), - Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE))); + Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4), + Values(Size(0, 0)), //not use + Values(Size(0, 0), Size(0, 1), Size(1, 0), Size(1, 1)), + Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE))); INSTANTIATE_TEST_CASE_P(Filter, GaussianBlur, Combine( - Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4), - Values(cv::Size(3, 3), cv::Size(5, 5)), - Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE))); + Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4), + Values(Size(3, 3), Size(5, 5)), + Values(Size(0, 0)), //not use + Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE))); From 3928c1ee26deb3a51a1479225f04f4bdc7f5374d Mon Sep 17 00:00:00 2001 From: yao Date: Wed, 8 May 2013 15:21:53 +0800 Subject: [PATCH 3/8] add copyrights --- modules/ocl/test/test_blend.cpp | 44 +++++++++++++++++++ modules/ocl/test/test_brute_force_matcher.cpp | 14 +++--- modules/ocl/test/test_haar.cpp | 1 + modules/ocl/test/test_imgproc.cpp | 1 + modules/ocl/test/test_matrix_operation.cpp | 1 + modules/ocl/test/test_split_merge.cpp | 1 + 6 files changed, 57 insertions(+), 5 deletions(-) diff --git a/modules/ocl/test/test_blend.cpp b/modules/ocl/test/test_blend.cpp index fcc1925435..7e58303723 100644 --- a/modules/ocl/test/test_blend.cpp +++ b/modules/ocl/test/test_blend.cpp @@ -1,3 +1,47 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Nathan, liujun@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ #include "precomp.hpp" #include diff --git a/modules/ocl/test/test_brute_force_matcher.cpp b/modules/ocl/test/test_brute_force_matcher.cpp index d658c32d16..83182fe944 100644 --- a/modules/ocl/test/test_brute_force_matcher.cpp +++ b/modules/ocl/test/test_brute_force_matcher.cpp @@ -7,12 +7,16 @@ // copy or use the software. // // -// Intel License Agreement +// License Agreement // For Open Source Computer Vision Library // -// Copyright (C) 2010-2012, Multicoreware inc., all rights reserved. +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. // Third party copyrights are property of their respective owners. // +// @Authors +// Nathan, liujun@multicorewareinc.com +// // Redistribution and use in source and binary forms, with or without modification, // are permitted provided that the following conditions are met: // @@ -21,12 +25,12 @@ // // * Redistribution's in binary form must reproduce the above copyright notice, // this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. +// and/or other oclMaterials provided with the distribution. // -// * The name of Intel Corporation may not be used to endorse or promote products +// * The name of the copyright holders may not be used to endorse or promote products // derived from this software without specific prior written permission. // -// This software is provided by the copyright holders and contributors "as is" and +// This software is provided by the copyright holders and contributors as is and // any express or implied warranties, including, but not limited to, the implied // warranties of merchantability and fitness for a particular purpose are disclaimed. // In no event shall the Intel Corporation or contributors be liable for any direct, diff --git a/modules/ocl/test/test_haar.cpp b/modules/ocl/test/test_haar.cpp index eab6769214..c28f6ddd97 100644 --- a/modules/ocl/test/test_haar.cpp +++ b/modules/ocl/test/test_haar.cpp @@ -12,6 +12,7 @@ // // Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved. // Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. // Third party copyrights are property of their respective owners. // // @Authors diff --git a/modules/ocl/test/test_imgproc.cpp b/modules/ocl/test/test_imgproc.cpp index 92e2ee9d4b..29e246adc2 100644 --- a/modules/ocl/test/test_imgproc.cpp +++ b/modules/ocl/test/test_imgproc.cpp @@ -12,6 +12,7 @@ // // Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved. // Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. // Third party copyrights are property of their respective owners. // // @Authors diff --git a/modules/ocl/test/test_matrix_operation.cpp b/modules/ocl/test/test_matrix_operation.cpp index cfcafbcfc2..654e1a61f3 100644 --- a/modules/ocl/test/test_matrix_operation.cpp +++ b/modules/ocl/test/test_matrix_operation.cpp @@ -12,6 +12,7 @@ // // Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved. // Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. // Third party copyrights are property of their respective owners. // // @Authors diff --git a/modules/ocl/test/test_split_merge.cpp b/modules/ocl/test/test_split_merge.cpp index 5543bbac41..2d60b2830b 100644 --- a/modules/ocl/test/test_split_merge.cpp +++ b/modules/ocl/test/test_split_merge.cpp @@ -12,6 +12,7 @@ // // Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved. // Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. // Third party copyrights are property of their respective owners. // // @Authors From 1a53e2cfb20cde771f29d8e6a9c66656be014146 Mon Sep 17 00:00:00 2001 From: yao Date: Wed, 8 May 2013 15:27:35 +0800 Subject: [PATCH 4/8] remove interpolation.hpp --- modules/ocl/test/interpolation.hpp | 120 ----------------------------- modules/ocl/test/precomp.hpp | 1 - 2 files changed, 121 deletions(-) delete mode 100644 modules/ocl/test/interpolation.hpp diff --git a/modules/ocl/test/interpolation.hpp b/modules/ocl/test/interpolation.hpp deleted file mode 100644 index fb89e701d7..0000000000 --- a/modules/ocl/test/interpolation.hpp +++ /dev/null @@ -1,120 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// Intel License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000, Intel Corporation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef __OPENCV_TEST_INTERPOLATION_HPP__ -#define __OPENCV_TEST_INTERPOLATION_HPP__ - -template T readVal(const cv::Mat &src, int y, int x, int c, int border_type, cv::Scalar borderVal = cv::Scalar()) -{ - if (border_type == cv::BORDER_CONSTANT) - return (y >= 0 && y < src.rows && x >= 0 && x < src.cols) ? src.at(y, x * src.channels() + c) : cv::saturate_cast(borderVal.val[c]); - - return src.at(cv::borderInterpolate(y, src.rows, border_type), cv::borderInterpolate(x, src.cols, border_type) * src.channels() + c); -} - -template struct NearestInterpolator -{ - static T getValue(const cv::Mat &src, float y, float x, int c, int border_type, cv::Scalar borderVal = cv::Scalar()) - { - return readVal(src, cvFloor(y), cvFloor(x), c, border_type, borderVal); - } -}; - -template struct LinearInterpolator -{ - static T getValue(const cv::Mat &src, float y, float x, int c, int border_type, cv::Scalar borderVal = cv::Scalar()) - { - x -= 0.5f; - y -= 0.5f; - - int x1 = cvFloor(x); - int y1 = cvFloor(y); - int x2 = x1 + 1; - int y2 = y1 + 1; - - float res = 0; - - res += readVal(src, y1, x1, c, border_type, borderVal) * ((x2 - x) * (y2 - y)); - res += readVal(src, y1, x2, c, border_type, borderVal) * ((x - x1) * (y2 - y)); - res += readVal(src, y2, x1, c, border_type, borderVal) * ((x2 - x) * (y - y1)); - res += readVal(src, y2, x2, c, border_type, borderVal) * ((x - x1) * (y - y1)); - - return cv::saturate_cast(res); - } -}; - -template struct CubicInterpolator -{ - static float getValue(float p[4], float x) - { - return p[1] + 0.5 * x * (p[2] - p[0] + x * (2.0 * p[0] - 5.0 * p[1] + 4.0 * p[2] - p[3] + x * (3.0 * (p[1] - p[2]) + p[3] - p[0]))); - } - - static float getValue(float p[4][4], float x, float y) - { - float arr[4]; - - arr[0] = getValue(p[0], x); - arr[1] = getValue(p[1], x); - arr[2] = getValue(p[2], x); - arr[3] = getValue(p[3], x); - - return getValue(arr, y); - } - - static T getValue(const cv::Mat &src, float y, float x, int c, int border_type, cv::Scalar borderVal = cv::Scalar()) - { - int ix = cvRound(x); - int iy = cvRound(y); - - float vals[4][4] = - { - {readVal(src, iy - 2, ix - 2, c, border_type, borderVal), readVal(src, iy - 2, ix - 1, c, border_type, borderVal), readVal(src, iy - 2, ix, c, border_type, borderVal), readVal(src, iy - 2, ix + 1, c, border_type, borderVal)}, - {readVal(src, iy - 1, ix - 2, c, border_type, borderVal), readVal(src, iy - 1, ix - 1, c, border_type, borderVal), readVal(src, iy - 1, ix, c, border_type, borderVal), readVal(src, iy - 1, ix + 1, c, border_type, borderVal)}, - {readVal(src, iy , ix - 2, c, border_type, borderVal), readVal(src, iy , ix - 1, c, border_type, borderVal), readVal(src, iy , ix, c, border_type, borderVal), readVal(src, iy , ix + 1, c, border_type, borderVal)}, - {readVal(src, iy + 1, ix - 2, c, border_type, borderVal), readVal(src, iy + 1, ix - 1, c, border_type, borderVal), readVal(src, iy + 1, ix, c, border_type, borderVal), readVal(src, iy + 1, ix + 1, c, border_type, borderVal)}, - }; - - return cv::saturate_cast(getValue(vals, (x - ix + 2.0) / 4.0, (y - iy + 2.0) / 4.0)); - } -}; - -#endif // __OPENCV_TEST_INTERPOLATION_HPP__ diff --git a/modules/ocl/test/precomp.hpp b/modules/ocl/test/precomp.hpp index eec938ee81..090c9b3d3e 100644 --- a/modules/ocl/test/precomp.hpp +++ b/modules/ocl/test/precomp.hpp @@ -71,7 +71,6 @@ #include "opencv2/ocl/ocl.hpp" #include "utility.hpp" -#include "interpolation.hpp" //#include "add_test_info.h" #endif From 35c6860f061fe8fae1597978499fac31c26d4a71 Mon Sep 17 00:00:00 2001 From: yao Date: Wed, 8 May 2013 16:08:33 +0800 Subject: [PATCH 5/8] further simplify the logics in filter tests --- modules/ocl/test/test_filters.cpp | 123 +++++++----------------------- 1 file changed, 28 insertions(+), 95 deletions(-) diff --git a/modules/ocl/test/test_filters.cpp b/modules/ocl/test/test_filters.cpp index dbca326937..cf36360a56 100644 --- a/modules/ocl/test/test_filters.cpp +++ b/modules/ocl/test/test_filters.cpp @@ -116,6 +116,19 @@ PARAM_TEST_CASE(FilterTestBase, gmat1 = mat1_roi; } + void Init(int mat_type) + { + cv::Size size(MWIDTH, MHEIGHT); + mat1 = randomMat(size, mat_type, 5, 16); + dst = randomMat(size, mat_type, 5, 16); + } + + void Near(double threshold) + { + cv::Mat cpu_dst; + gdst_whole.download(cpu_dst); + EXPECT_MAT_NEAR(dst, cpu_dst, threshold, ""); + } }; ///////////////////////////////////////////////////////////////////////////////////////////////// @@ -131,12 +144,7 @@ struct Blur : FilterTestBase type = GET_PARAM(0); ksize = GET_PARAM(1); bordertype = GET_PARAM(3); - - cv::RNG &rng = TS::ptr()->get_rng(); - cv::Size size(MWIDTH, MHEIGHT); - - mat1 = randomMat(rng, size, type, 5, 16, false); - dst = randomMat(rng, size, type, 5, 16, false); + Init(type); } }; @@ -145,20 +153,13 @@ TEST_P(Blur, Mat) for(int j = 0; j < LOOP_TIMES; j++) { random_roi(); - cv::blur(mat1_roi, dst_roi, ksize, Point(-1, -1), bordertype); cv::ocl::blur(gmat1, gdst, ksize, Point(-1, -1), bordertype); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1.0, ""); + Near(1.0); } - } - ///////////////////////////////////////////////////////////////////////////////////////////////// //Laplacian struct Laplacian : FilterTestBase @@ -170,15 +171,8 @@ struct Laplacian : FilterTestBase { type = GET_PARAM(0); ksize = GET_PARAM(1); - - cv::RNG &rng = TS::ptr()->get_rng(); - cv::Size size(MWIDTH, MHEIGHT); - - mat1 = randomMat(rng, size, type, 5, 16, false); - dst = randomMat(rng, size, type, 5, 16, false); - + Init(type); } - }; TEST_P(Laplacian, Accuracy) @@ -186,14 +180,9 @@ TEST_P(Laplacian, Accuracy) for(int j = 0; j < LOOP_TIMES; j++) { random_roi(); - cv::Laplacian(mat1_roi, dst_roi, -1, ksize.width, 1); cv::ocl::Laplacian(gmat1, gdst, -1, ksize.width, 1); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -213,45 +202,28 @@ struct ErodeDilate : FilterTestBase { type = GET_PARAM(0); iterations = GET_PARAM(3); - - cv::RNG &rng = TS::ptr()->get_rng(); - cv::Size size(MWIDTH, MHEIGHT); - - mat1 = randomMat(rng, size, type, 5, 16, false); - dst = randomMat(rng, size, type, 5, 16, false); + Init(type); // rng.fill(kernel, cv::RNG::UNIFORM, cv::Scalar::all(0), cv::Scalar::all(3)); - kernel = randomMat(rng, Size(3, 3), CV_8UC1, 0, 3, false); - + kernel = randomMat(Size(3, 3), CV_8UC1, 0, 3); } }; -// erode - TEST_P(ErodeDilate, Mat) { for(int j = 0; j < LOOP_TIMES; j++) { random_roi(); - cv::erode(mat1_roi, dst_roi, kernel, Point(-1, -1), iterations); cv::ocl::erode(gmat1, gdst, kernel, Point(-1, -1), iterations); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } for(int j = 0; j < LOOP_TIMES; j++) { random_roi(); cv::dilate(mat1_roi, dst_roi, kernel, Point(-1, -1), iterations); cv::ocl::dilate(gmat1, gdst, kernel, Point(-1, -1), iterations); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -272,15 +244,8 @@ struct Sobel : FilterTestBase dx = s.width; dy = s.height; bordertype = GET_PARAM(3); - - - cv::RNG &rng = TS::ptr()->get_rng(); - cv::Size size(MWIDTH, MHEIGHT); - - mat1 = randomMat(rng, size, type, 5, 16, false); - dst = randomMat(rng, size, type, 5, 16, false); + Init(type); } - }; TEST_P(Sobel, Mat) @@ -288,16 +253,10 @@ TEST_P(Sobel, Mat) for(int j = 0; j < LOOP_TIMES; j++) { random_roi(); - cv::Sobel(mat1_roi, dst_roi, -1, dx, dy, ksize, /*scale*/0.00001,/*delta*/0, bordertype); cv::ocl::Sobel(gmat1, gdst, -1, dx, dy, ksize,/*scale*/0.00001,/*delta*/0, bordertype); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1, ""); + Near(1); } - } @@ -315,17 +274,8 @@ struct Scharr : FilterTestBase dx = s.width; dy = s.height; bordertype = GET_PARAM(3); - dx = 1; - dy = 0; - - cv::RNG &rng = TS::ptr()->get_rng(); - cv::Size size(MWIDTH, MHEIGHT); - - mat1 = randomMat(rng, size, type, 5, 16, false); - dst = randomMat(rng, size, type, 5, 16, false); - + Init(type); } - }; TEST_P(Scharr, Mat) @@ -333,14 +283,9 @@ TEST_P(Scharr, Mat) for(int j = 0; j < LOOP_TIMES; j++) { random_roi(); - cv::Scharr(mat1_roi, dst_roi, -1, dx, dy, /*scale*/1,/*delta*/0, bordertype); cv::ocl::Scharr(gmat1, gdst, -1, dx, dy,/*scale*/1,/*delta*/0, bordertype); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1, ""); + Near(1); } } @@ -360,18 +305,11 @@ struct GaussianBlur : FilterTestBase type = GET_PARAM(0); ksize = GET_PARAM(1); bordertype = GET_PARAM(3); - + Init(type); cv::RNG &rng = TS::ptr()->get_rng(); - cv::Size size(MWIDTH, MHEIGHT); - sigma1 = rng.uniform(0.1, 1.0); sigma2 = rng.uniform(0.1, 1.0); - - mat1 = randomMat(rng, size, type, 5, 16, false); - dst = randomMat(rng, size, type, 5, 16, false); - } - }; TEST_P(GaussianBlur, Mat) @@ -379,14 +317,9 @@ TEST_P(GaussianBlur, Mat) for(int j = 0; j < LOOP_TIMES; j++) { random_roi(); - cv::GaussianBlur(mat1_roi, dst_roi, ksize, sigma1, sigma2, bordertype); cv::ocl::GaussianBlur(gmat1, gdst, ksize, sigma1, sigma2, bordertype); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1.0, ""); + Near(1); } } @@ -423,7 +356,7 @@ INSTANTIATE_TEST_CASE_P(Filter, Sobel, Combine( INSTANTIATE_TEST_CASE_P(Filter, Scharr, Combine( Values(CV_8UC1, CV_8UC3, CV_8UC4, CV_32FC1, CV_32FC4), Values(Size(0, 0)), //not use - Values(Size(0, 0), Size(0, 1), Size(1, 0), Size(1, 1)), + Values(Size(0, 1), Size(1, 0)), Values((MatType)cv::BORDER_CONSTANT, (MatType)cv::BORDER_REPLICATE))); INSTANTIATE_TEST_CASE_P(Filter, GaussianBlur, Combine( From b6313951dce1900b201b1fac6919d668f5b06d91 Mon Sep 17 00:00:00 2001 From: yao Date: Wed, 8 May 2013 17:07:44 +0800 Subject: [PATCH 6/8] use clean EXPECT_MAT_NEAR (no string output) --- modules/ocl/test/test_arithm.cpp | 286 +++++++----------------------- modules/ocl/test/test_blend.cpp | 2 +- modules/ocl/test/test_calib3d.cpp | 2 +- modules/ocl/test/test_color.cpp | 6 +- modules/ocl/test/test_filters.cpp | 2 +- modules/ocl/test/test_hog.cpp | 3 +- modules/ocl/test/test_imgproc.cpp | 138 ++++---------- modules/ocl/test/utility.hpp | 8 +- 8 files changed, 108 insertions(+), 339 deletions(-) diff --git a/modules/ocl/test/test_arithm.cpp b/modules/ocl/test/test_arithm.cpp index e23b3d104a..9b9cec9381 100644 --- a/modules/ocl/test/test_arithm.cpp +++ b/modules/ocl/test/test_arithm.cpp @@ -172,14 +172,26 @@ PARAM_TEST_CASE(ArithmTestBase, MatType, bool) gmask = mask_roi; //end } + void Near(double threshold = 0.) + { + cv::Mat cpu_dst; + gdst_whole.download(cpu_dst); + EXPECT_MAT_NEAR(dst, cpu_dst, threshold); + } + + void Near1(double threshold = 0.) + { + cv::Mat cpu_dst1; + gdst1_whole.download(cpu_dst1); + EXPECT_MAT_NEAR(dst1, cpu_dst1, threshold); + } + }; ////////////////////////////////lut///////////////////////////////////////////////// - struct Lut : ArithmTestBase {}; #define VARNAME(A) string(#A); - TEST_P(Lut, Mat) { @@ -200,10 +212,7 @@ TEST_P(Lut, Mat) cv::LUT(mat1_roi, mat2_roi, dst_roi); cv::ocl::LUT(gmat1, gmat2, gdst); - - cv::Mat cpu_dst; - gdst_whole.download (cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 0, ""); + Near(0); } } @@ -219,12 +228,7 @@ TEST_P(Exp, Mat) cv::exp(mat1_roi, dst_roi); cv::ocl::exp(gmat1, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 2, ""); - + Near(2); } } @@ -240,10 +244,7 @@ TEST_P(Log, Mat) cv::log(mat1_roi, dst_roi); cv::ocl::log(gmat1, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 1, ""); + Near(1); } } @@ -259,10 +260,7 @@ TEST_P(Add, Mat) cv::add(mat1_roi, mat2_roi, dst_roi); cv::ocl::add(gmat1, gmat2, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); + Near(0); } } @@ -274,12 +272,10 @@ TEST_P(Add, Mat_Mask) cv::add(mat1_roi, mat2_roi, dst_roi, mask_roi); cv::ocl::add(gmat1, gmat2, gdst, gmask); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); + Near(0); } } + TEST_P(Add, Scalar) { for(int j = 0; j < LOOP_TIMES; j++) @@ -288,10 +284,7 @@ TEST_P(Add, Scalar) cv::add(mat1_roi, val, dst_roi); cv::ocl::add(gmat1, val, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -303,10 +296,7 @@ TEST_P(Add, Scalar_Mask) cv::add(mat1_roi, val, dst_roi, mask_roi); cv::ocl::add(gmat1, val, gdst, gmask); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -323,10 +313,7 @@ TEST_P(Sub, Mat) cv::subtract(mat1_roi, mat2_roi, dst_roi); cv::ocl::subtract(gmat1, gmat2, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); + Near(0); } } @@ -338,10 +325,7 @@ TEST_P(Sub, Mat_Mask) cv::subtract(mat1_roi, mat2_roi, dst_roi, mask_roi); cv::ocl::subtract(gmat1, gmat2, gdst, gmask); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); + Near(0); } } @@ -353,10 +337,7 @@ TEST_P(Sub, Scalar) cv::subtract(mat1_roi, val, dst_roi); cv::ocl::subtract(gmat1, val, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -368,10 +349,7 @@ TEST_P(Sub, Scalar_Mask) cv::subtract(mat1_roi, val, dst_roi, mask_roi); cv::ocl::subtract(gmat1, val, gdst, gmask); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -388,10 +366,7 @@ TEST_P(Mul, Mat) cv::multiply(mat1_roi, mat2_roi, dst_roi); cv::ocl::multiply(gmat1, gmat2, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); + Near(0); } } @@ -406,10 +381,7 @@ TEST_P(Mul, Mat_Scalar) cv::multiply(mat1_roi, mat2_roi, dst_roi, s); cv::ocl::multiply(gmat1, gmat2, gdst, s); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.001, ""); + Near(.001); } } @@ -425,10 +397,7 @@ TEST_P(Div, Mat) cv::divide(mat1_roi, mat2_roi, dst_roi); cv::ocl::divide(gmat1, gmat2, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 1, ""); + Near(1); } } @@ -443,10 +412,7 @@ TEST_P(Div, Mat_Scalar) cv::divide(mat1_roi, mat2_roi, dst_roi, s); cv::ocl::divide(gmat1, gmat2, gdst, s); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.001, ""); + Near(.001); } } @@ -461,10 +427,7 @@ TEST_P(Absdiff, Mat) cv::absdiff(mat1_roi, mat2_roi, dst_roi); cv::ocl::absdiff(gmat1, gmat2, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 0, ""); + Near(0); } } @@ -476,10 +439,7 @@ TEST_P(Absdiff, Mat_Scalar) cv::absdiff(mat1_roi, val, dst_roi); cv::ocl::absdiff(gmat1, val, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -495,14 +455,8 @@ TEST_P(CartToPolar, angleInDegree) cv::cartToPolar(mat1_roi, mat2_roi, dst_roi, dst1_roi, 1); cv::ocl::cartToPolar(gmat1, gmat2, gdst, gdst1, 1); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - cv::Mat cpu_dst1; - gdst1_whole.download(cpu_dst1); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, ""); - EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, ""); + Near(.5); + Near1(.5); } } @@ -514,14 +468,8 @@ TEST_P(CartToPolar, angleInRadians) cv::cartToPolar(mat1_roi, mat2_roi, dst_roi, dst1_roi, 0); cv::ocl::cartToPolar(gmat1, gmat2, gdst, gdst1, 0); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - cv::Mat cpu_dst1; - gdst1_whole.download(cpu_dst1); - EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, ""); - EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, ""); + Near(.5); + Near1(.5); } } @@ -536,15 +484,8 @@ TEST_P(PolarToCart, angleInDegree) cv::polarToCart(mat1_roi, mat2_roi, dst_roi, dst1_roi, 1); cv::ocl::polarToCart(gmat1, gmat2, gdst, gdst1, 1); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - cv::Mat cpu_dst1; - gdst1_whole.download(cpu_dst1); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, ""); - EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, ""); + Near(.5); + Near1(.5); } } @@ -556,15 +497,8 @@ TEST_P(PolarToCart, angleInRadians) cv::polarToCart(mat1_roi, mat2_roi, dst_roi, dst1_roi, 0); cv::ocl::polarToCart(gmat1, gmat2, gdst, gdst1, 0); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - cv::Mat cpu_dst1; - gdst1_whole.download(cpu_dst1); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.5, ""); - EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.5, ""); + Near(.5); + Near1(.5); } } @@ -581,11 +515,7 @@ TEST_P(Magnitude, Mat) cv::magnitude(mat1_roi, mat2_roi, dst_roi); cv::ocl::magnitude(gmat1, gmat2, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -600,16 +530,11 @@ TEST_P(Transpose, Mat) cv::transpose(mat1_roi, dst_roi); cv::ocl::transpose(gmat1, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } - struct Flip : ArithmTestBase {}; TEST_P(Flip, X) @@ -620,11 +545,7 @@ TEST_P(Flip, X) cv::flip(mat1_roi, dst_roi, 0); cv::ocl::flip(gmat1, gdst, 0); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -636,11 +557,7 @@ TEST_P(Flip, Y) cv::flip(mat1_roi, dst_roi, 1); cv::ocl::flip(gmat1, gdst, 1); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -652,11 +569,7 @@ TEST_P(Flip, BOTH) cv::flip(mat1_roi, dst_roi, -1); cv::ocl::flip(gmat1, gdst, -1); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -1016,11 +929,7 @@ TEST_P(Phase, Mat) random_roi(); cv::phase(mat1_roi, mat2_roi, dst_roi, angelInDegrees ? true : false); cv::ocl::phase(gmat1, gmat2, gdst, angelInDegrees ? true : false); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-2, ""); + Near(1e-2); } } } @@ -1037,11 +946,7 @@ TEST_P(Bitwise_and, Mat) cv::bitwise_and(mat1_roi, mat2_roi, dst_roi); cv::ocl::bitwise_and(gmat1, gmat2, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); + Near(0); } } @@ -1053,13 +958,10 @@ TEST_P(Bitwise_and, Mat_Mask) cv::bitwise_and(mat1_roi, mat2_roi, dst_roi, mask_roi); cv::ocl::bitwise_and(gmat1, gmat2, gdst, gmask); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); + Near(0); } } + TEST_P(Bitwise_and, Scalar) { for(int j = 0; j < LOOP_TIMES; j++) @@ -1068,12 +970,7 @@ TEST_P(Bitwise_and, Scalar) cv::bitwise_and(mat1_roi, val, dst_roi); cv::ocl::bitwise_and(gmat1, val, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); - + Near(1e-5); } } @@ -1085,11 +982,7 @@ TEST_P(Bitwise_and, Scalar_Mask) cv::bitwise_and(mat1_roi, val, dst_roi, mask_roi); cv::ocl::bitwise_and(gmat1, val, gdst, gmask); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -1107,11 +1000,7 @@ TEST_P(Bitwise_or, Mat) cv::bitwise_or(mat1_roi, mat2_roi, dst_roi); cv::ocl::bitwise_or(gmat1, gmat2, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); + Near(0); } } @@ -1123,13 +1012,10 @@ TEST_P(Bitwise_or, Mat_Mask) cv::bitwise_or(mat1_roi, mat2_roi, dst_roi, mask_roi); cv::ocl::bitwise_or(gmat1, gmat2, gdst, gmask); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); + Near(0); } } + TEST_P(Bitwise_or, Scalar) { for(int j = 0; j < LOOP_TIMES; j++) @@ -1138,11 +1024,7 @@ TEST_P(Bitwise_or, Scalar) cv::bitwise_or(mat1_roi, val, dst_roi); cv::ocl::bitwise_or(gmat1, val, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -1154,11 +1036,7 @@ TEST_P(Bitwise_or, Scalar_Mask) cv::bitwise_or(mat1_roi, val, dst_roi, mask_roi); cv::ocl::bitwise_or(gmat1, val, gdst, gmask); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -1176,11 +1054,7 @@ TEST_P(Bitwise_xor, Mat) cv::bitwise_xor(mat1_roi, mat2_roi, dst_roi); cv::ocl::bitwise_xor(gmat1, gmat2, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); + Near(0); } } @@ -1192,13 +1066,10 @@ TEST_P(Bitwise_xor, Mat_Mask) cv::bitwise_xor(mat1_roi, mat2_roi, dst_roi, mask_roi); cv::ocl::bitwise_xor(gmat1, gmat2, gdst, gmask); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); + Near(0); } } + TEST_P(Bitwise_xor, Scalar) { for(int j = 0; j < LOOP_TIMES; j++) @@ -1207,11 +1078,7 @@ TEST_P(Bitwise_xor, Scalar) cv::bitwise_xor(mat1_roi, val, dst_roi); cv::ocl::bitwise_xor(gmat1, val, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -1223,11 +1090,7 @@ TEST_P(Bitwise_xor, Scalar_Mask) cv::bitwise_xor(mat1_roi, val, dst_roi, mask_roi); cv::ocl::bitwise_xor(gmat1, val, gdst, gmask); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } @@ -1244,11 +1107,7 @@ TEST_P(Bitwise_not, Mat) cv::bitwise_not(mat1_roi, dst_roi); cv::ocl::bitwise_not(gmat1, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); + Near(0); } } @@ -1277,11 +1136,7 @@ TEST_P(Compare, Mat) cv::compare(mat1_roi, mat2_roi, dst_roi, cmp_codes[i]); cv::ocl::compare(gmat1, gmat2, gdst, cmp_codes[i]); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, ""); + Near(0); } } @@ -1303,11 +1158,7 @@ TEST_P(Pow, Mat) double p = 4.5; cv::pow(mat1_roi, p, dst_roi); cv::ocl::pow(gmat1, p, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1, ""); + Near(1); } } @@ -1344,7 +1195,7 @@ TEST_P(MagnitudeSqr, Mat) cv::Mat cpu_dst; cldst.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, 1, ""); + EXPECT_MAT_NEAR(dst, cpu_dst, 1); } } @@ -1365,18 +1216,13 @@ TEST_P(AddWeighted, Mat) cv::ocl::addWeighted(gmat1, alpha, gmat2, beta, gama, gdst); - - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1e-5, ""); + Near(1e-5); } } - //********test**************** INSTANTIATE_TEST_CASE_P(Arithm, Lut, Combine( diff --git a/modules/ocl/test/test_blend.cpp b/modules/ocl/test/test_blend.cpp index 7e58303723..292353be60 100644 --- a/modules/ocl/test/test_blend.cpp +++ b/modules/ocl/test/test_blend.cpp @@ -109,7 +109,7 @@ TEST_P(Blend, Accuracy) else blendLinearGold(img1, img2, weights1, weights2, result_gold); - EXPECT_MAT_NEAR(result_gold, result, CV_MAT_DEPTH(type) == CV_8U ? 1.f : 1e-5f, 0); + EXPECT_MAT_NEAR(result_gold, result, CV_MAT_DEPTH(type) == CV_8U ? 1.f : 1e-5f); } INSTANTIATE_TEST_CASE_P(GPU_ImgProc, Blend, Combine( diff --git a/modules/ocl/test/test_calib3d.cpp b/modules/ocl/test/test_calib3d.cpp index 179829e0e6..4c635682c9 100644 --- a/modules/ocl/test/test_calib3d.cpp +++ b/modules/ocl/test/test_calib3d.cpp @@ -129,7 +129,7 @@ TEST_P(StereoMatchBP, Regression) bp(d_left, d_right, d_disp); d_disp.download(disp); disp.convertTo(disp, disp_gold.depth()); - EXPECT_MAT_NEAR(disp_gold, disp, 0.0, ""); + EXPECT_MAT_NEAR(disp_gold, disp, 0.0); } INSTANTIATE_TEST_CASE_P(OCL_Calib3D, StereoMatchBP, testing::Combine(testing::Values(64), testing::Values(8),testing::Values(2),testing::Values(25.0f), diff --git a/modules/ocl/test/test_color.cpp b/modules/ocl/test/test_color.cpp index 202967b7a6..9748104de6 100644 --- a/modules/ocl/test/test_color.cpp +++ b/modules/ocl/test/test_color.cpp @@ -100,7 +100,7 @@ PARAM_TEST_CASE(CvtColor, cv::Size, MatDepth) cv::cvtColor(src, dst_gold, CVTCODE(name));\ cv::Mat dst_mat;\ dst.download(dst_mat);\ - EXPECT_MAT_NEAR(dst_gold, dst_mat, 1e-5, "");\ + EXPECT_MAT_NEAR(dst_gold, dst_mat, 1e-5);\ } //add new ones here using macro @@ -141,7 +141,7 @@ TEST_P(CvtColor_Gray2RGB, Accuracy) cv::cvtColor(src, dst_gold, code); cv::Mat dst_mat; dst.download(dst_mat); - EXPECT_MAT_NEAR(dst_gold, dst_mat, 1e-5, ""); + EXPECT_MAT_NEAR(dst_gold, dst_mat, 1e-5); } @@ -171,7 +171,7 @@ TEST_P(CvtColor_YUV420, Accuracy) cv::Mat dst_mat; dst.download(dst_mat); MAT_DIFF(dst_mat, dst_gold); - EXPECT_MAT_NEAR(dst_gold, dst_mat, 1e-5, ""); + EXPECT_MAT_NEAR(dst_gold, dst_mat, 1e-5); } INSTANTIATE_TEST_CASE_P(OCL_ImgProc, CvtColor, testing::Combine( diff --git a/modules/ocl/test/test_filters.cpp b/modules/ocl/test/test_filters.cpp index cf36360a56..316076cc35 100644 --- a/modules/ocl/test/test_filters.cpp +++ b/modules/ocl/test/test_filters.cpp @@ -127,7 +127,7 @@ PARAM_TEST_CASE(FilterTestBase, { cv::Mat cpu_dst; gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, threshold, ""); + EXPECT_MAT_NEAR(dst, cpu_dst, threshold); } }; diff --git a/modules/ocl/test/test_hog.cpp b/modules/ocl/test/test_hog.cpp index 02cfe65b8a..c95c25fe95 100644 --- a/modules/ocl/test/test_hog.cpp +++ b/modules/ocl/test/test_hog.cpp @@ -240,8 +240,7 @@ TEST_P(HOG, Detect) } } - char s[100] = {0}; - EXPECT_MAT_NEAR(cv::Mat(d_comp), cv::Mat(comp), 3, s); + EXPECT_MAT_NEAR(cv::Mat(d_comp), cv::Mat(comp), 3); } diff --git a/modules/ocl/test/test_imgproc.cpp b/modules/ocl/test/test_imgproc.cpp index 29e246adc2..664f8a3919 100644 --- a/modules/ocl/test/test_imgproc.cpp +++ b/modules/ocl/test/test_imgproc.cpp @@ -442,6 +442,13 @@ PARAM_TEST_CASE(ImgprocTestBase, MatType, MatType, MatType, MatType, MatType, bo clmask_roi = clmask(Rect(maskx, masky, roicols, roirows)); } } + + void Near(double threshold) + { + cv::Mat cpu_cldst; + cldst.download(cpu_cldst); + EXPECT_MAT_NEAR(dst, cpu_cldst, threshold); + } }; ////////////////////////////////equalizeHist////////////////////////////////////////// @@ -461,11 +468,7 @@ TEST_P(equalizeHist, Mat) random_roi(); cv::equalizeHist(mat1_roi, dst_roi); cv::ocl::equalizeHist(clmat1_roi, cldst_roi); - cv::Mat cpu_cldst; - cldst.download(cpu_cldst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,dst1x=%d,dst1y=%d,maskx=%d,masky=%d,src2x=%d,src2y=%d", roicols, roirows, src1x, src1y, dstx, dsty, dst1x, dst1y, maskx, masky, src2x, src2y); - EXPECT_MAT_NEAR(dst, cpu_cldst, 1.1, sss); + Near(1.1); } } } @@ -485,7 +488,7 @@ TEST_P(bilateralFilter, Mat) int d = 2 * radius + 1; double sigmaspace = 20.0; int bordertype[] = {cv::BORDER_CONSTANT, cv::BORDER_REPLICATE, cv::BORDER_REFLECT, cv::BORDER_WRAP, cv::BORDER_REFLECT_101}; - const char *borderstr[] = {"BORDER_CONSTANT", "BORDER_REPLICATE", "BORDER_REFLECT", "BORDER_WRAP", "BORDER_REFLECT_101"}; + //const char *borderstr[] = {"BORDER_CONSTANT", "BORDER_REPLICATE", "BORDER_REFLECT", "BORDER_WRAP", "BORDER_REFLECT_101"}; if (mat1.depth() != CV_8U || mat1.type() != dst.type()) { @@ -514,25 +517,7 @@ TEST_P(bilateralFilter, Mat) cv::bilateralFilter(mat1_roi, dst_roi, d, sigmacolor, sigmaspace, bordertype[i] | cv::BORDER_ISOLATED); cv::ocl::bilateralFilter(clmat1_roi, cldst_roi, d, sigmacolor, sigmaspace, bordertype[i] | cv::BORDER_ISOLATED); - - cv::Mat cpu_cldst; - cldst.download(cpu_cldst); - - - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,radius=%d,boredertype=%s", roicols, roirows, src1x, src1y, dstx, dsty, radius, borderstr[i]); - //for(int i=0;i(i,j)!=cpu_cldst.at(i,j)) - // cout<< i <<" "<< j <<" "<< (int)dst.at(i,j)<<" "<< (int)cpu_cldst.at(i,j)<<" "; - // } - // cout<get_rng(); int top = rng.uniform(0, 10); int bottom = rng.uniform(0, 10); @@ -584,24 +569,12 @@ TEST_P(CopyMakeBorder, Mat) cv::Mat cpu_cldst; #ifndef RANDOMROI cldst_roi.download(cpu_cldst); + EXPECT_MAT_NEAR(dst_roi, cpu_cldst, 0.0); #else cldst.download(cpu_cldst); + EXPECT_MAT_NEAR(dst, cpu_cldst, 0.0); #endif - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x=%d,src1y=%d,dstx=%d,dsty=%d,dst1x=%d,dst1y=%d,top=%d,bottom=%d,left=%d,right=%d, bordertype=%s", roicols, roirows, src1x, src1y, dstx, dsty, dst1x, dst1y, top, bottom, left, right, borderstr[i]); -#ifndef RANDOMROI - EXPECT_MAT_NEAR(dst_roi, cpu_cldst, 0.0, sss); -#else - //for(int i=0;i(i,j)<<" "; - //} - //cout< Date: Thu, 9 May 2013 17:57:13 +0800 Subject: [PATCH 7/8] fix warnings, unify test names --- modules/ocl/test/test_arithm.cpp | 33 ++++------------- modules/ocl/test/test_blend.cpp | 2 +- modules/ocl/test/test_columnsum.cpp | 2 +- modules/ocl/test/test_filters.cpp | 4 +-- modules/ocl/test/test_hog.cpp | 2 +- modules/ocl/test/test_match_template.cpp | 8 ++--- modules/ocl/test/test_matrix_operation.cpp | 42 ++++------------------ modules/ocl/test/test_moments.cpp | 10 +++--- modules/ocl/test/test_pyrdown.cpp | 8 ++--- modules/ocl/test/test_pyrup.cpp | 7 ++-- modules/ocl/test/test_split_merge.cpp | 26 +++----------- 11 files changed, 34 insertions(+), 110 deletions(-) diff --git a/modules/ocl/test/test_arithm.cpp b/modules/ocl/test/test_arithm.cpp index 9b9cec9381..d12cef0b22 100644 --- a/modules/ocl/test/test_arithm.cpp +++ b/modules/ocl/test/test_arithm.cpp @@ -174,16 +174,12 @@ PARAM_TEST_CASE(ArithmTestBase, MatType, bool) void Near(double threshold = 0.) { - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, threshold); + EXPECT_MAT_NEAR(dst, Mat(gdst_whole), threshold); } void Near1(double threshold = 0.) - { - cv::Mat cpu_dst1; - gdst1_whole.download(cpu_dst1); - EXPECT_MAT_NEAR(dst1, cpu_dst1, threshold); + { + EXPECT_MAT_NEAR(dst1, Mat(gdst1_whole), threshold); } }; @@ -1169,33 +1165,18 @@ TEST_P(MagnitudeSqr, Mat) { for(int j = 0; j < LOOP_TIMES; j++) { - // random_roi(); - // int64 start, end; - // start = cv::getTickCount(); + random_roi(); for(int i = 0; i < mat1.rows; ++i) for(int j = 0; j < mat1.cols; ++j) { float val1 = mat1.at(i, j); float val2 = mat2.at(i, j); - ((float *)(dst.data))[i * dst.step / 4 + j] = val1 * val1 + val2 * val2; - - // float val1 =((float *)( mat1.data))[(i*mat1.step/8 +j)*2]; - // - // float val2 =((float *)( mat1.data))[(i*mat1.step/8 +j)*2+ 1 ]; - - // ((float *)(dst.data))[i*dst.step/4 +j]= val1 * val1 +val2 * val2; } - // end = cv::getTickCount(); - - cv::ocl::oclMat clmat1(mat1), clmat2(mat2), cldst; - cv::ocl::magnitudeSqr(clmat1, clmat2, cldst); - - cv::Mat cpu_dst; - cldst.download(cpu_dst); - - EXPECT_MAT_NEAR(dst, cpu_dst, 1); + cv::ocl::oclMat clmat1(mat1), clmat2(mat2); + cv::ocl::magnitudeSqr(clmat1, clmat2, gdst); + Near(1); } } diff --git a/modules/ocl/test/test_blend.cpp b/modules/ocl/test/test_blend.cpp index 292353be60..fa1aea1727 100644 --- a/modules/ocl/test/test_blend.cpp +++ b/modules/ocl/test/test_blend.cpp @@ -112,7 +112,7 @@ TEST_P(Blend, Accuracy) EXPECT_MAT_NEAR(result_gold, result, CV_MAT_DEPTH(type) == CV_8U ? 1.f : 1e-5f); } -INSTANTIATE_TEST_CASE_P(GPU_ImgProc, Blend, Combine( +INSTANTIATE_TEST_CASE_P(OCL_ImgProc, Blend, Combine( DIFFERENT_SIZES, testing::Values(MatType(CV_8UC1), MatType(CV_8UC3), MatType(CV_8UC4), MatType(CV_32FC1), MatType(CV_32FC4)) )); diff --git a/modules/ocl/test/test_columnsum.cpp b/modules/ocl/test/test_columnsum.cpp index bf389d1b84..231f0657b0 100644 --- a/modules/ocl/test/test_columnsum.cpp +++ b/modules/ocl/test/test_columnsum.cpp @@ -88,7 +88,7 @@ TEST_P(ColumnSum, Accuracy) } } -INSTANTIATE_TEST_CASE_P(GPU_ImgProc, ColumnSum, DIFFERENT_SIZES); +INSTANTIATE_TEST_CASE_P(OCL_ImgProc, ColumnSum, DIFFERENT_SIZES); #endif diff --git a/modules/ocl/test/test_filters.cpp b/modules/ocl/test/test_filters.cpp index 316076cc35..cfd57413e1 100644 --- a/modules/ocl/test/test_filters.cpp +++ b/modules/ocl/test/test_filters.cpp @@ -125,9 +125,7 @@ PARAM_TEST_CASE(FilterTestBase, void Near(double threshold) { - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - EXPECT_MAT_NEAR(dst, cpu_dst, threshold); + EXPECT_MAT_NEAR(dst, Mat(gdst_whole), threshold); } }; diff --git a/modules/ocl/test/test_hog.cpp b/modules/ocl/test/test_hog.cpp index c95c25fe95..cfc4e3963f 100644 --- a/modules/ocl/test/test_hog.cpp +++ b/modules/ocl/test/test_hog.cpp @@ -244,7 +244,7 @@ TEST_P(HOG, Detect) } -INSTANTIATE_TEST_CASE_P(GPU_ImgProc, HOG, testing::Combine( +INSTANTIATE_TEST_CASE_P(OCL_ObjDetect, HOG, testing::Combine( testing::Values(cv::Size(64, 128), cv::Size(48, 96)), testing::Values(MatType(CV_8UC1), MatType(CV_8UC4)))); diff --git a/modules/ocl/test/test_match_template.cpp b/modules/ocl/test/test_match_template.cpp index e6f1f7080d..a393abdeb3 100644 --- a/modules/ocl/test/test_match_template.cpp +++ b/modules/ocl/test/test_match_template.cpp @@ -89,12 +89,10 @@ TEST_P(MatchTemplate8U, Accuracy) cv::Mat dst_gold; cv::matchTemplate(image, templ, dst_gold, method); - char sss [100] = ""; - cv::Mat mat_dst; dst.download(mat_dst); - EXPECT_MAT_NEAR(dst_gold, mat_dst, templ_size.area() * 1e-1, sss); + EXPECT_MAT_NEAR(dst_gold, mat_dst, templ_size.area() * 1e-1); } PARAM_TEST_CASE(MatchTemplate32F, cv::Size, TemplateSize, Channels, TemplateMethod) @@ -125,12 +123,10 @@ TEST_P(MatchTemplate32F, Accuracy) cv::Mat dst_gold; cv::matchTemplate(image, templ, dst_gold, method); - char sss [100] = ""; - cv::Mat mat_dst; dst.download(mat_dst); - EXPECT_MAT_NEAR(dst_gold, mat_dst, templ_size.area() * 1e-1, sss); + EXPECT_MAT_NEAR(dst_gold, mat_dst, templ_size.area() * 1e-1); } INSTANTIATE_TEST_CASE_P(OCL_ImgProc, MatchTemplate8U, diff --git a/modules/ocl/test/test_matrix_operation.cpp b/modules/ocl/test/test_matrix_operation.cpp index 654e1a61f3..92d810818b 100644 --- a/modules/ocl/test/test_matrix_operation.cpp +++ b/modules/ocl/test/test_matrix_operation.cpp @@ -135,12 +135,7 @@ TEST_P(ConvertTo, Accuracy) mat_roi.convertTo(dst_roi, dst_type); gmat.convertTo(gdst, dst_type); - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,srcx =%d,srcy=%d,dstx=%d,dsty=%d", roicols, roirows, srcx , srcy, dstx, dsty); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss); + EXPECT_MAT_NEAR(dst, Mat(gdst_whole), 0.0); } } @@ -242,12 +237,7 @@ TEST_P(CopyTo, Without_mask) mat_roi.copyTo(dst_roi); gmat.copyTo(gdst); - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,srcx =%d,srcy=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d", roicols, roirows, srcx , srcy, dstx, dsty, maskx, masky); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss); + EXPECT_MAT_NEAR(dst, Mat(gdst_whole), 0.0); } } @@ -260,12 +250,7 @@ TEST_P(CopyTo, With_mask) mat_roi.copyTo(dst_roi, mask_roi); gmat.copyTo(gdst, gmask); - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,srcx =%d,srcy=%d,dstx=%d,dsty=%d,maskx=%d,masky=%d", roicols, roirows, srcx , srcy, dstx, dsty, maskx, masky); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss); + EXPECT_MAT_NEAR(dst, Mat(gdst_whole), 0.0); } } @@ -357,12 +342,7 @@ TEST_P(SetTo, Without_mask) mat_roi.setTo(val); gmat.setTo(val); - cv::Mat cpu_dst; - gmat_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,srcx =%d,srcy=%d,maskx=%d,masky=%d", roicols, roirows, srcx , srcy, maskx, masky); - - EXPECT_MAT_NEAR(mat, cpu_dst, 1., sss); + EXPECT_MAT_NEAR(mat, Mat(gmat_whole), 1.); } } @@ -375,12 +355,7 @@ TEST_P(SetTo, With_mask) mat_roi.setTo(val, mask_roi); gmat.setTo(val, gmask); - cv::Mat cpu_dst; - gmat_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,srcx =%d,srcy=%d,maskx=%d,masky=%d", roicols, roirows, srcx , srcy, maskx, masky); - - EXPECT_MAT_NEAR(mat, cpu_dst, 1., sss); + EXPECT_MAT_NEAR(mat, Mat(gmat_whole), 1.); } } @@ -464,11 +439,8 @@ TEST_P(convertC3C4, Accuracy) mat1 = randomMat(rng, size, type, 0, 40, false); gmat1 = mat1; - cv::Mat cpu_dst; - gmat1.download(cpu_dst); - char sss[1024]; - sprintf(sss, "cols=%d,rows=%d", mat1.cols, mat1.rows); - EXPECT_MAT_NEAR(mat1, cpu_dst, 0.0, sss); + + EXPECT_MAT_NEAR(mat1, Mat(gmat1), 0.0); } } diff --git a/modules/ocl/test/test_moments.cpp b/modules/ocl/test/test_moments.cpp index 715ad8963a..98c66def31 100644 --- a/modules/ocl/test/test_moments.cpp +++ b/modules/ocl/test/test_moments.cpp @@ -10,7 +10,7 @@ using namespace cvtest; using namespace testing; using namespace std; extern string workdir; -PARAM_TEST_CASE(MomentsTestBase, MatType, bool) +PARAM_TEST_CASE(MomentsTest, MatType, bool) { int type; cv::Mat mat1; @@ -30,13 +30,13 @@ PARAM_TEST_CASE(MomentsTestBase, MatType, bool) Mat gpu_dst, cpu_dst; HuMoments(cpu, cpu_dst); HuMoments(gpu, gpu_dst); - EXPECT_MAT_NEAR(gpu_dst,cpu_dst, .5, ""); + EXPECT_MAT_NEAR(gpu_dst,cpu_dst, .5); } }; -struct ocl_Moments : MomentsTestBase {}; -TEST_P(ocl_Moments, Mat) + +TEST_P(MomentsTest, Mat) { bool binaryImage = 0; SetUp(); @@ -67,6 +67,6 @@ TEST_P(ocl_Moments, Mat) } } -INSTANTIATE_TEST_CASE_P(Moments, ocl_Moments, Combine( +INSTANTIATE_TEST_CASE_P(OCL_ImgProc, MomentsTest, Combine( Values(CV_8UC1, CV_16UC1, CV_16SC1, CV_64FC1), Values(true,false))); #endif // HAVE_OPENCL diff --git a/modules/ocl/test/test_pyrdown.cpp b/modules/ocl/test/test_pyrdown.cpp index a67e0b0ac6..6d00fb5e45 100644 --- a/modules/ocl/test/test_pyrdown.cpp +++ b/modules/ocl/test/test_pyrdown.cpp @@ -83,15 +83,11 @@ TEST_P(PyrDown, Mat) cv::pyrDown(src, dst_cpu); cv::ocl::pyrDown(gsrc, gdst); - cv::Mat dst; - gdst.download(dst); - char s[1024] = {0}; - - EXPECT_MAT_NEAR(dst, dst_cpu, dst.depth() == CV_32F ? 1e-4f : 1.0f, s); + EXPECT_MAT_NEAR(dst_cpu, Mat(gdst), type == CV_32F ? 1e-4f : 1.0f); } } -INSTANTIATE_TEST_CASE_P(GPU_ImgProc, PyrDown, Combine( +INSTANTIATE_TEST_CASE_P(OCL_ImgProc, PyrDown, Combine( Values(CV_8U, CV_32F), Values(1, 3, 4))); diff --git a/modules/ocl/test/test_pyrup.cpp b/modules/ocl/test/test_pyrup.cpp index b2d45ef4fd..afd3e8b1b8 100644 --- a/modules/ocl/test/test_pyrup.cpp +++ b/modules/ocl/test/test_pyrup.cpp @@ -77,17 +77,14 @@ TEST_P(PyrUp, Accuracy) ocl::oclMat dst; ocl::oclMat srcMat(src); ocl::pyrUp(srcMat, dst); - Mat cpu_dst; - dst.download(cpu_dst); - char s[100] = {0}; - EXPECT_MAT_NEAR(dst_gold, cpu_dst, (src.depth() == CV_32F ? 1e-4f : 1.0), s); + EXPECT_MAT_NEAR(dst_gold, Mat(dst), (type == CV_32F ? 1e-4f : 1.0)); } } -INSTANTIATE_TEST_CASE_P(GPU_ImgProc, PyrUp, testing::Combine( +INSTANTIATE_TEST_CASE_P(OCL_ImgProc, PyrUp, testing::Combine( Values(CV_8U, CV_32F), Values(1, 3, 4))); diff --git a/modules/ocl/test/test_split_merge.cpp b/modules/ocl/test/test_split_merge.cpp index 2d60b2830b..854ce309c2 100644 --- a/modules/ocl/test/test_split_merge.cpp +++ b/modules/ocl/test/test_split_merge.cpp @@ -202,12 +202,7 @@ TEST_P(Merge, Accuracy) cv::merge(dev_src, dst_roi); cv::ocl::merge(dev_gsrc, gdst); - cv::Mat cpu_dst; - gdst_whole.download(cpu_dst); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,src1x =%d,src1y=%d,src2x =%d,src2y=%d,src3x =%d,src3y=%d,src4x =%d,src4y=%d,dstx=%d,dsty=%d", roicols, roirows, src1x, src1y, src2x , src2y, src3x , src3y, src4x , src4y, dstx, dsty); - - EXPECT_MAT_NEAR(dst, cpu_dst, 0.0, sss); + EXPECT_MAT_NEAR(dst, Mat(gdst_whole), 0.0); } } @@ -349,28 +344,17 @@ TEST_P(Split, Accuracy) cv::split(mat_roi, dev_dst); cv::ocl::split(gmat, dev_gdst); - cv::Mat cpu_dst1; - cv::Mat cpu_dst2; - cv::Mat cpu_dst3; - cv::Mat cpu_dst4; - gdst1_whole.download(cpu_dst1); - gdst2_whole.download(cpu_dst2); - gdst3_whole.download(cpu_dst3); - gdst4_whole.download(cpu_dst4); - char sss[1024]; - sprintf(sss, "roicols=%d,roirows=%d,dst1x =%d,dsty=%d,dst2x =%d,dst2y=%d,dst3x =%d,dst3y=%d,dst4x =%d,dst4y=%d,srcx=%d,srcy=%d", roicols, roirows, dst1x , dst1y, dst2x , dst2y, dst3x , dst3y, dst4x , dst4y, srcx, srcy); - if(channels >= 1) - EXPECT_MAT_NEAR(dst1, cpu_dst1, 0.0, sss); + EXPECT_MAT_NEAR(dst1, Mat(gdst1_whole), 0.0); if(channels >= 2) - EXPECT_MAT_NEAR(dst2, cpu_dst2, 0.0, sss); + EXPECT_MAT_NEAR(dst2, Mat(gdst2_whole), 0.0); if(channels >= 3) - EXPECT_MAT_NEAR(dst3, cpu_dst3, 0.0, sss); + EXPECT_MAT_NEAR(dst3, Mat(gdst3_whole), 0.0); if(channels >= 4) - EXPECT_MAT_NEAR(dst4, cpu_dst4, 0.0, sss); + EXPECT_MAT_NEAR(dst4, Mat(gdst4_whole), 0.0); } } From e23884a238efae54505c918ec97978ef3e5daff8 Mon Sep 17 00:00:00 2001 From: yao Date: Mon, 13 May 2013 15:04:23 +0800 Subject: [PATCH 8/8] fix the warnings in fft tests --- modules/ocl/test/test_fft.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/ocl/test/test_fft.cpp b/modules/ocl/test/test_fft.cpp index 0fee8b03d4..fda55ddcc2 100644 --- a/modules/ocl/test/test_fft.cpp +++ b/modules/ocl/test/test_fft.cpp @@ -68,7 +68,7 @@ TEST_P(Dft, C2C) cv::dft(a, b_gold, dft_flags); cv::ocl::dft(cv::ocl::oclMat(a), d_b, a.size(), dft_flags); - EXPECT_MAT_NEAR(b_gold, cv::Mat(d_b), a.size().area() * 1e-4, ""); + EXPECT_MAT_NEAR(b_gold, cv::Mat(d_b), a.size().area() * 1e-4); } TEST_P(Dft, R2C) @@ -81,11 +81,11 @@ TEST_P(Dft, R2C) cv::dft(a, b_gold, cv::DFT_COMPLEX_OUTPUT | dft_flags); b_gold_roi = b_gold(cv::Rect(0, 0, d_b.cols, d_b.rows)); - EXPECT_MAT_NEAR(b_gold_roi, cv::Mat(d_b), a.size().area() * 1e-4, ""); + EXPECT_MAT_NEAR(b_gold_roi, cv::Mat(d_b), a.size().area() * 1e-4); cv::Mat c_gold; cv::dft(b_gold, c_gold, cv::DFT_INVERSE | cv::DFT_REAL_OUTPUT | cv::DFT_SCALE); - EXPECT_MAT_NEAR(b_gold_roi, cv::Mat(d_b), a.size().area() * 1e-4, ""); + EXPECT_MAT_NEAR(b_gold_roi, cv::Mat(d_b), a.size().area() * 1e-4); } TEST_P(Dft, R2CthenC2R) @@ -95,7 +95,7 @@ TEST_P(Dft, R2CthenC2R) cv::ocl::oclMat d_b, d_c; cv::ocl::dft(cv::ocl::oclMat(a), d_b, a.size(), 0); cv::ocl::dft(d_b, d_c, a.size(), cv::DFT_SCALE | cv::DFT_INVERSE | cv::DFT_REAL_OUTPUT); - EXPECT_MAT_NEAR(a, d_c, a.size().area() * 1e-4, ""); + EXPECT_MAT_NEAR(a, d_c, a.size().area() * 1e-4); }