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"
10 #include "opencv2/gapi/cpu/core.hpp"
12 #define CORE_CPU cv::gapi::core::cpu::kernels()
18 // FIXME: Wut? See MulTestCPU/MathOpTest below (duplicate?)
19 INSTANTIATE_TEST_CASE_P(AddTestCPU, MathOpTest,
20 Combine(Values(ADD, MUL),
22 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
24 Values(cv::Size(1280, 720),
27 Values( -1, CV_8U, CV_16U, CV_32F ),
28 /*init output matrices or not*/ testing::Bool(),
30 Values(cv::compile_args(CORE_CPU))),
31 opencv_test::PrintMathOpCoreParams());
33 INSTANTIATE_TEST_CASE_P(MulTestCPU, MathOpTest,
36 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
37 Values(1.0, 0.5, 2.0),
38 Values(cv::Size(1280, 720),
41 Values( -1, CV_8U, CV_16U, CV_32F ),
42 /*init output matrices or not*/ testing::Bool(),
44 Values(cv::compile_args(CORE_CPU))),
45 opencv_test::PrintMathOpCoreParams());
47 INSTANTIATE_TEST_CASE_P(SubTestCPU, MathOpTest,
50 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
52 Values(cv::Size(1280, 720),
55 Values( -1, CV_8U, CV_16U, CV_32F ),
56 /*init output matrices or not*/ testing::Bool(),
58 Values(cv::compile_args(CORE_CPU))),
59 opencv_test::PrintMathOpCoreParams());
61 INSTANTIATE_TEST_CASE_P(DivTestCPU, MathOpTest,
64 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
65 Values (1.0, 0.5, 2.0),
66 Values(cv::Size(1280, 720),
69 Values( -1, CV_8U, CV_16U, CV_32F ),
70 /*init output matrices or not*/ testing::Bool(),
72 Values(cv::compile_args(CORE_CPU))),
73 opencv_test::PrintMathOpCoreParams());
75 INSTANTIATE_TEST_CASE_P(MulTestCPU, MulDoubleTest,
76 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
77 Values(cv::Size(1280, 720),
80 Values( -1, CV_8U, CV_16U, CV_32F ),
81 /*init output matrices or not*/ testing::Bool(),
82 Values(cv::compile_args(CORE_CPU))));
84 INSTANTIATE_TEST_CASE_P(DivTestCPU, DivTest,
85 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
86 Values(cv::Size(1280, 720),
89 Values( -1, CV_8U, CV_16U, CV_32F ),
90 /*init output matrices or not*/ testing::Bool(),
91 Values(cv::compile_args(CORE_CPU))));
93 INSTANTIATE_TEST_CASE_P(DivCTestCPU, DivCTest,
94 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
95 Values(cv::Size(1280, 720),
98 Values( -1, CV_8U, CV_16U, CV_32F ),
99 /*init output matrices or not*/ testing::Bool(),
100 Values(cv::compile_args(CORE_CPU))));
102 INSTANTIATE_TEST_CASE_P(MeanTestCPU, MeanTest,
103 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
104 Values(cv::Size(1280, 720),
107 /*init output matrices or not*/ testing::Bool(),
108 Values(cv::compile_args(CORE_CPU))));
110 INSTANTIATE_TEST_CASE_P(MaskTestCPU, 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_CPU))));
118 INSTANTIATE_TEST_CASE_P(SelectTestCPU, SelectTest,
119 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
120 Values(cv::Size(1280, 720),
123 /*init output matrices or not*/ testing::Bool(),
124 Values(cv::compile_args(CORE_CPU))));
126 INSTANTIATE_TEST_CASE_P(Polar2CartCPU, Polar2CartTest,
127 Combine(Values(cv::Size(1280, 720),
130 /*init output matrices or not*/ testing::Bool(),
131 Values(cv::compile_args(CORE_CPU))));
133 INSTANTIATE_TEST_CASE_P(Cart2PolarCPU, Cart2PolarTest,
134 Combine(Values(cv::Size(1280, 720),
137 /*init output matrices or not*/ testing::Bool(),
138 Values(cv::compile_args(CORE_CPU))));
140 INSTANTIATE_TEST_CASE_P(PhaseCPU, PhaseTest,
141 Combine(Values(CV_32F, CV_32FC3),
142 Values(cv::Size(1280, 720),
146 Values(cv::compile_args(CORE_CPU))));
148 INSTANTIATE_TEST_CASE_P(SqrtCPU, SqrtTest,
149 Combine(Values(CV_32F, CV_32FC3),
150 Values(cv::Size(1280, 720),
153 Values(cv::compile_args(CORE_CPU))));
155 INSTANTIATE_TEST_CASE_P(CompareTestCPU, CmpTest,
156 Combine(Values(CMP_EQ, CMP_GE, CMP_NE, CMP_GT, CMP_LT, CMP_LE),
158 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
159 Values(cv::Size(1280, 720),
162 /*init output matrices or not*/ testing::Bool(),
163 Values(cv::compile_args(CORE_CPU))),
164 opencv_test::PrintCmpCoreParams());
166 INSTANTIATE_TEST_CASE_P(BitwiseTestCPU, BitwiseTest,
167 Combine(Values(AND, OR, XOR),
168 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1),
169 Values(cv::Size(1280, 720),
172 /*init output matrices or not*/ testing::Bool(),
173 Values(cv::compile_args(CORE_CPU))),
174 opencv_test::PrintBWCoreParams());
176 INSTANTIATE_TEST_CASE_P(BitwiseNotTestCPU, NotTest,
177 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
178 Values(cv::Size(1280, 720),
181 /*init output matrices or not*/ testing::Bool(),
182 Values(cv::compile_args(CORE_CPU))));
184 INSTANTIATE_TEST_CASE_P(MinTestCPU, MinTest,
185 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
186 Values(cv::Size(1280, 720),
189 /*init output matrices or not*/ testing::Bool(),
190 Values(cv::compile_args(CORE_CPU))));
192 INSTANTIATE_TEST_CASE_P(MaxTestCPU, MaxTest,
193 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
194 Values(cv::Size(1280, 720),
197 /*init output matrices or not*/ testing::Bool(),
198 Values(cv::compile_args(CORE_CPU))));
200 INSTANTIATE_TEST_CASE_P(SumTestCPU, SumTest,
201 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
202 Values(cv::Size(1280, 720),
205 /*init output matrices or not*/ testing::Bool(),
207 Values(AbsToleranceScalar(1e-5).to_compare_f()),
208 Values(cv::compile_args(CORE_CPU))));
210 INSTANTIATE_TEST_CASE_P(AbsDiffTestCPU, AbsDiffTest,
211 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
212 Values(cv::Size(1280, 720),
215 /*init output matrices or not*/ testing::Bool(),
216 Values(cv::compile_args(CORE_CPU))));
218 INSTANTIATE_TEST_CASE_P(AbsDiffCTestCPU, AbsDiffCTest,
219 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
220 Values(cv::Size(1280, 720),
223 /*init output matrices or not*/ testing::Bool(),
224 Values(cv::compile_args(CORE_CPU))));
226 INSTANTIATE_TEST_CASE_P(AddWeightedTestCPU, AddWeightedTest,
227 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
228 Values(cv::Size(1280, 720),
231 Values( -1, CV_8U, CV_16U, CV_32F ),
232 /*init output matrices or not*/ testing::Bool(),
233 Values(Tolerance_FloatRel_IntAbs(1e-6, 1).to_compare_f()),
234 Values(cv::compile_args(CORE_CPU))));
236 INSTANTIATE_TEST_CASE_P(NormTestCPU, NormTest,
237 Combine(Values(NORM_INF, NORM_L1, NORM_L2),
238 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
239 Values(cv::Size(1280, 720),
243 Values(AbsToleranceScalar(1e-5).to_compare_f()),
244 Values(cv::compile_args(CORE_CPU))),
245 opencv_test::PrintNormCoreParams());
247 INSTANTIATE_TEST_CASE_P(IntegralTestCPU, IntegralTest,
248 Combine(Values( CV_8UC1, CV_16UC1, CV_16SC1, CV_32FC1 ),
249 Values(cv::Size(1280, 720),
252 Values(cv::compile_args(CORE_CPU))));
254 INSTANTIATE_TEST_CASE_P(ThresholdTestCPU, ThresholdTest,
255 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
256 Values(cv::Size(1280, 720),
259 Values(cv::THRESH_BINARY, cv::THRESH_BINARY_INV, cv::THRESH_TRUNC, cv::THRESH_TOZERO, cv::THRESH_TOZERO_INV),
260 /*init output matrices or not*/ testing::Bool(),
261 Values(cv::compile_args(CORE_CPU))));
263 INSTANTIATE_TEST_CASE_P(ThresholdTestCPU, ThresholdOTTest,
264 Combine(Values(CV_8UC1),
265 Values(cv::Size(1280, 720),
268 Values(cv::THRESH_OTSU, cv::THRESH_TRIANGLE),
269 /*init output matrices or not*/ testing::Bool(),
270 Values(cv::compile_args(CORE_CPU))));
273 INSTANTIATE_TEST_CASE_P(InRangeTestCPU, InRangeTest,
274 Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1, CV_32FC1),
275 Values(cv::Size(1280, 720),
278 /*init output matrices or not*/ testing::Bool(),
279 Values(cv::compile_args(CORE_CPU))));
281 INSTANTIATE_TEST_CASE_P(Split3TestCPU, Split3Test,
282 Combine(Values(cv::Size(1280, 720),
285 Values(cv::compile_args(CORE_CPU))));
287 INSTANTIATE_TEST_CASE_P(Split4TestCPU, Split4Test,
288 Combine(Values(cv::Size(1280, 720),
291 Values(cv::compile_args(CORE_CPU))));
293 INSTANTIATE_TEST_CASE_P(ResizeTestCPU, ResizeTest,
294 Combine(Values(AbsSimilarPoints(2, 0.05).to_compare_f()),
295 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
296 Values(cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_AREA),
297 Values(cv::Size(1280, 720),
300 Values(cv::Size(64,64),
302 Values(cv::compile_args(CORE_CPU))));
304 INSTANTIATE_TEST_CASE_P(ResizeTestCPU, ResizeTestFxFy,
305 Combine(Values(AbsSimilarPoints(2, 0.05).to_compare_f()),
306 Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
307 Values(cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_AREA),
308 Values(cv::Size(1280, 720),
313 Values(cv::compile_args(CORE_CPU))));
315 INSTANTIATE_TEST_CASE_P(Merge3TestCPU, Merge3Test,
316 Combine(Values(cv::Size(1280, 720),
319 Values(cv::compile_args(CORE_CPU))));
321 INSTANTIATE_TEST_CASE_P(Merge4TestCPU, Merge4Test,
322 Combine(Values(cv::Size(1280, 720),
325 Values(cv::compile_args(CORE_CPU))));
327 INSTANTIATE_TEST_CASE_P(RemapTestCPU, RemapTest,
328 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
329 Values(cv::Size(1280, 720),
332 /*init output matrices or not*/ testing::Bool(),
333 Values(cv::compile_args(CORE_CPU))));
335 INSTANTIATE_TEST_CASE_P(FlipTestCPU, FlipTest,
336 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
338 Values(cv::Size(1280, 720),
341 /*init output matrices or not*/ testing::Bool(),
342 Values(cv::compile_args(CORE_CPU))));
344 INSTANTIATE_TEST_CASE_P(CropTestCPU, CropTest,
345 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
346 Values(cv::Rect(10, 8, 20, 35), cv::Rect(4, 10, 37, 50)),
347 Values(cv::Size(1280, 720),
350 /*init output matrices or not*/ testing::Bool(),
351 Values(cv::compile_args(CORE_CPU))));
353 INSTANTIATE_TEST_CASE_P(LUTTestCPU, LUTTest,
354 Combine(Values(CV_8UC1, CV_8UC3),
356 Values(cv::Size(1280, 720),
359 /*init output matrices or not*/ testing::Bool(),
360 Values(cv::compile_args(CORE_CPU))));
362 INSTANTIATE_TEST_CASE_P(LUTTestCustomCPU, LUTTest,
363 Combine(Values(CV_8UC3),
365 Values(cv::Size(1280, 720),
368 /*init output matrices or not*/ testing::Bool(),
369 Values(cv::compile_args(CORE_CPU))));
371 INSTANTIATE_TEST_CASE_P(ConvertToCPU, ConvertToTest,
372 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
373 Values(CV_8U, CV_16U, CV_16S, CV_32F),
374 Values(cv::Size(1280, 720),
377 Values(cv::compile_args(CORE_CPU))));
379 INSTANTIATE_TEST_CASE_P(ConcatHorTestCPU, ConcatHorTest,
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_CPU))));
386 INSTANTIATE_TEST_CASE_P(ConcatVertTestCPU, ConcatVertTest,
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_CPU))));
393 INSTANTIATE_TEST_CASE_P(ConcatVertVecTestCPU, ConcatVertVecTest,
394 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
395 Values(cv::Size(1280, 720),
398 Values(cv::compile_args(CORE_CPU))));
400 INSTANTIATE_TEST_CASE_P(ConcatHorVecTestCPU, ConcatHorVecTest,
401 Combine(Values( CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1 ),
402 Values(cv::Size(1280, 720),
405 Values(cv::compile_args(CORE_CPU))));