1 // This file is part of OpenCV project.
2 // It is subject to the license terms in the LICENSE file found in the top-level directory
3 // of this distribution and at http://opencv.org/license.html.
5 // Copyright (C) 2018-2019 Intel Corporation
8 #include "../test_precomp.hpp"
9 #include "../common/gapi_core_tests.hpp"
11 #define CORE_GPU cv::gapi::core::gpu::kernels()
16 // FIXME: Wut? See MulTestGPU/MathOpTest below (duplicate?)
17 INSTANTIATE_TEST_CASE_P(AddTestGPU, MathOpTest,
18 Combine(Values(ADD, MUL),
20 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
22 Values(cv::Size(1280, 720),
25 Values( -1, CV_8U, CV_16U, CV_32F ),
26 /*init output matrices or not*/ testing::Bool(),
28 Values(cv::compile_args(CORE_GPU))),
29 opencv_test::PrintMathOpCoreParams());
31 INSTANTIATE_TEST_CASE_P(MulTestGPU, MathOpTest,
34 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
35 Values(1.0, 0.5, 2.0),
36 Values(cv::Size(1280, 720),
39 Values( -1, CV_8U, CV_16U, CV_32F ),
40 /*init output matrices or not*/ testing::Bool(),
42 Values(cv::compile_args(CORE_GPU))),
43 opencv_test::PrintMathOpCoreParams());
45 INSTANTIATE_TEST_CASE_P(SubTestGPU, MathOpTest,
48 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
50 Values(cv::Size(1280, 720),
53 Values( -1, CV_8U, CV_16U, CV_32F ),
54 /*init output matrices or not*/ testing::Bool(),
56 Values(cv::compile_args(CORE_GPU))),
57 opencv_test::PrintMathOpCoreParams());
59 INSTANTIATE_TEST_CASE_P(DivTestGPU, MathOpTest,
62 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
63 Values (1.0, 0.5, 2.0),
64 Values(cv::Size(1280, 720),
67 Values( -1, CV_8U, CV_16U, CV_32F ),
68 /*init output matrices or not*/ testing::Bool(),
70 Values(cv::compile_args(CORE_GPU))),
71 opencv_test::PrintMathOpCoreParams());
73 INSTANTIATE_TEST_CASE_P(MulTestGPU, MulDoubleTest,
74 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
75 Values(cv::Size(1280, 720),
78 Values( -1, CV_8U, CV_16U, CV_32F ),
79 /*init output matrices or not*/ testing::Bool(),
80 Values(cv::compile_args(CORE_GPU))));
82 INSTANTIATE_TEST_CASE_P(DivTestGPU, DivTest,
83 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
84 Values(cv::Size(1280, 720),
87 Values( -1, CV_8U, CV_16U, CV_32F ),
88 /*init output matrices or not*/ testing::Bool(),
89 Values(cv::compile_args(CORE_GPU))));
91 INSTANTIATE_TEST_CASE_P(DivCTestGPU, DivCTest,
92 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
93 Values(cv::Size(1280, 720),
96 Values( -1, CV_8U, CV_16U, CV_32F ),
97 /*init output matrices or not*/ testing::Bool(),
98 Values(cv::compile_args(CORE_GPU))));
100 INSTANTIATE_TEST_CASE_P(MeanTestGPU, MeanTest,
101 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
102 Values(cv::Size(1280, 720),
105 /*init output matrices or not*/ testing::Bool(),
106 Values(cv::compile_args(CORE_GPU))));
108 //TODO: mask test doesn't work
110 INSTANTIATE_TEST_CASE_P(MaskTestGPU, MaskTest,
111 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
112 Values(cv::Size(1280, 720),
115 /*init output matrices or not*/ testing::Bool(),
116 Values(cv::compile_args(CORE_GPU))));
119 INSTANTIATE_TEST_CASE_P(SelectTestGPU, SelectTest,
120 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
121 Values(cv::Size(1280, 720),
124 /*init output matrices or not*/ testing::Bool(),
125 Values(cv::compile_args(CORE_GPU))));
127 INSTANTIATE_TEST_CASE_P(Polar2CartGPU, Polar2CartTest,
128 Combine(Values(cv::Size(1280, 720),
131 /*init output matrices or not*/ testing::Bool(),
132 Values(cv::compile_args(CORE_GPU))));
134 INSTANTIATE_TEST_CASE_P(Cart2PolarGPU, Cart2PolarTest,
135 Combine(Values(cv::Size(1280, 720),
138 /*init output matrices or not*/ testing::Bool(),
139 Values(cv::compile_args(CORE_GPU))));
141 INSTANTIATE_TEST_CASE_P(CompareTestGPU, CmpTest,
142 Combine(Values(CMP_EQ, CMP_GE, CMP_NE, CMP_GT, CMP_LT, CMP_LE),
144 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
145 Values(cv::Size(1280, 720),
148 /*init output matrices or not*/ testing::Bool(),
149 Values(cv::compile_args(CORE_GPU))),
150 opencv_test::PrintCmpCoreParams());
152 INSTANTIATE_TEST_CASE_P(BitwiseTestGPU, BitwiseTest,
153 Combine(Values(AND, OR, XOR),
154 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1),
155 Values(cv::Size(1280, 720),
158 /*init output matrices or not*/ testing::Bool(),
159 Values(cv::compile_args(CORE_GPU))),
160 opencv_test::PrintBWCoreParams());
162 INSTANTIATE_TEST_CASE_P(BitwiseNotTestGPU, NotTest,
163 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
164 Values(cv::Size(1280, 720),
167 /*init output matrices or not*/ testing::Bool(),
168 Values(cv::compile_args(CORE_GPU))));
170 INSTANTIATE_TEST_CASE_P(MinTestGPU, MinTest,
171 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
172 Values(cv::Size(1280, 720),
175 /*init output matrices or not*/ testing::Bool(),
176 Values(cv::compile_args(CORE_GPU))));
178 INSTANTIATE_TEST_CASE_P(MaxTestGPU, MaxTest,
179 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
180 Values(cv::Size(1280, 720),
183 /*init output matrices or not*/ testing::Bool(),
184 Values(cv::compile_args(CORE_GPU))));
186 INSTANTIATE_TEST_CASE_P(SumTestGPU, SumTest,
187 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
188 Values(cv::Size(1280, 720),
191 /*init output matrices or not*/ testing::Bool(),
192 Values(AbsToleranceScalar(1e-3).to_compare_f()),//TODO: too relaxed?
193 Values(cv::compile_args(CORE_GPU))));
195 INSTANTIATE_TEST_CASE_P(AbsDiffTestGPU, AbsDiffTest,
196 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
197 Values(cv::Size(1280, 720),
200 /*init output matrices or not*/ testing::Bool(),
201 Values(cv::compile_args(CORE_GPU))));
203 INSTANTIATE_TEST_CASE_P(AbsDiffCTestGPU, AbsDiffCTest,
204 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
205 Values(cv::Size(1280, 720),
208 /*init output matrices or not*/ testing::Bool(),
209 Values(cv::compile_args(CORE_GPU))));
211 INSTANTIATE_TEST_CASE_P(AddWeightedTestGPU, AddWeightedTest,
212 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
213 Values(cv::Size(1280, 720),
216 Values( -1, CV_8U, CV_16U, CV_32F ),
217 /*init output matrices or not*/ testing::Bool(),
218 Values(Tolerance_FloatRel_IntAbs(1e-6, 1).to_compare_f()),
219 Values(cv::compile_args(CORE_GPU))));
221 INSTANTIATE_TEST_CASE_P(NormTestGPU, NormTest,
222 Combine(Values(NORM_INF, NORM_L1, NORM_L2),
223 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
224 Values(cv::Size(1280, 720),
227 Values(AbsToleranceScalar(1e-3).to_compare_f()), //TODO: too relaxed?
228 Values(cv::compile_args(CORE_GPU))),
229 opencv_test::PrintNormCoreParams());
231 INSTANTIATE_TEST_CASE_P(IntegralTestGPU, IntegralTest,
232 Combine(Values( CV_8UC1, CV_16UC1, CV_16SC1, CV_32FC1 ),
233 Values(cv::Size(1280, 720),
236 Values(cv::compile_args(CORE_GPU))));
238 INSTANTIATE_TEST_CASE_P(ThresholdTestGPU, ThresholdTest,
239 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
240 Values(cv::Size(1280, 720),
243 Values(cv::THRESH_BINARY, cv::THRESH_BINARY_INV, cv::THRESH_TRUNC, cv::THRESH_TOZERO, cv::THRESH_TOZERO_INV),
244 /*init output matrices or not*/ testing::Bool(),
245 Values(cv::compile_args(CORE_GPU))));
247 INSTANTIATE_TEST_CASE_P(ThresholdTestGPU, ThresholdOTTest,
248 Combine(Values(CV_8UC1),
249 Values(cv::Size(1280, 720),
252 Values(cv::THRESH_OTSU, cv::THRESH_TRIANGLE),
253 /*init output matrices or not*/ testing::Bool(),
254 Values(cv::compile_args(CORE_GPU))));
257 INSTANTIATE_TEST_CASE_P(InRangeTestGPU, InRangeTest,
258 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
259 Values(cv::Size(1280, 720),
262 /*init output matrices or not*/ testing::Bool(),
263 Values(cv::compile_args(CORE_GPU))));
265 INSTANTIATE_TEST_CASE_P(Split3TestGPU, Split3Test,
266 Combine(Values(cv::Size(1280, 720),
269 Values(cv::compile_args(CORE_GPU))));
271 INSTANTIATE_TEST_CASE_P(Split4TestGPU, Split4Test,
272 Combine(Values(cv::Size(1280, 720),
275 Values(cv::compile_args(CORE_GPU))));
277 INSTANTIATE_TEST_CASE_P(ResizeTestGPU, ResizeTest,
278 Combine(Values(AbsSimilarPoints(2, 0.05).to_compare_f()),
279 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
280 Values(cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_AREA),
281 Values(cv::Size(1280, 720),
284 Values(cv::Size(64,64),
286 Values(cv::compile_args(CORE_GPU))));
288 INSTANTIATE_TEST_CASE_P(ResizeTestGPU, ResizeTestFxFy,
289 Combine(Values(AbsSimilarPoints(2, 0.05).to_compare_f()),
290 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
291 Values(cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_AREA),
292 Values(cv::Size(1280, 720),
297 Values(cv::compile_args(CORE_GPU))));
299 INSTANTIATE_TEST_CASE_P(Merge3TestGPU, Merge3Test,
300 Combine(Values(cv::Size(1280, 720),
303 Values(cv::compile_args(CORE_GPU))));
305 INSTANTIATE_TEST_CASE_P(Merge4TestGPU, Merge4Test,
306 Combine(Values(cv::Size(1280, 720),
309 Values(cv::compile_args(CORE_GPU))));
311 INSTANTIATE_TEST_CASE_P(RemapTestGPU, RemapTest,
312 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
313 Values(cv::Size(1280, 720),
316 /*init output matrices or not*/ testing::Bool(),
317 Values(cv::compile_args(CORE_GPU))));
319 INSTANTIATE_TEST_CASE_P(FlipTestGPU, FlipTest,
320 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
322 Values(cv::Size(1280, 720),
325 /*init output matrices or not*/ testing::Bool(),
326 Values(cv::compile_args(CORE_GPU))));
328 INSTANTIATE_TEST_CASE_P(CropTestGPU, CropTest,
329 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
330 Values(cv::Rect(10, 8, 20, 35), cv::Rect(4, 10, 37, 50)),
331 Values(cv::Size(1280, 720),
334 /*init output matrices or not*/ testing::Bool(),
335 Values(cv::compile_args(CORE_GPU))));
337 INSTANTIATE_TEST_CASE_P(LUTTestGPU, LUTTest,
338 Combine(Values(CV_8UC1, CV_8UC3),
340 Values(cv::Size(1280, 720),
343 /*init output matrices or not*/ testing::Bool(),
344 Values(cv::compile_args(CORE_GPU))));
346 INSTANTIATE_TEST_CASE_P(LUTTestCustomGPU, LUTTest,
347 Combine(Values(CV_8UC3),
349 Values(cv::Size(1280, 720),
352 /*init output matrices or not*/ testing::Bool(),
353 Values(cv::compile_args(CORE_GPU))));
355 INSTANTIATE_TEST_CASE_P(ConvertToGPU, ConvertToTest,
356 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
357 Values(CV_8U, CV_16U, CV_16S, CV_32F),
358 Values(cv::Size(1280, 720),
361 Values(cv::compile_args(CORE_GPU))));
363 INSTANTIATE_TEST_CASE_P(ConcatHorTestGPU, ConcatHorTest,
364 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
365 Values(cv::Size(1280, 720),
368 Values(cv::compile_args(CORE_GPU))));
370 INSTANTIATE_TEST_CASE_P(ConcatVertTestGPU, ConcatVertTest,
371 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
372 Values(cv::Size(1280, 720),
375 Values(cv::compile_args(CORE_GPU))));
377 //TODO: fix this backend to allow ConcatVertVec ConcatHorVec
379 INSTANTIATE_TEST_CASE_P(ConcatVertVecTestGPU, ConcatVertVecTest,
380 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
381 Values(cv::Size(1280, 720),
384 Values(cv::compile_args(CORE_GPU))));
386 INSTANTIATE_TEST_CASE_P(ConcatHorVecTestGPU, ConcatHorVecTest,
387 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
388 Values(cv::Size(1280, 720),
391 Values(cv::compile_args(CORE_GPU))));