1 #include "perf_precomp.hpp"
\r
3 PERF_TEST_P(DevInfo_Size_MatType_Interpolation_BorderMode, remap, testing::Combine(testing::ValuesIn(devices()),
\r
4 testing::Values(GPU_TYPICAL_MAT_SIZES),
\r
5 testing::Values(CV_8UC1, CV_8UC4, CV_16UC1, CV_32FC1),
\r
6 testing::Values((int)INTER_NEAREST, (int)INTER_LINEAR, (int)INTER_CUBIC),
\r
7 testing::Values((int)BORDER_REFLECT101, (int)BORDER_REPLICATE, (int)BORDER_CONSTANT)))
\r
9 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
10 Size size = std::tr1::get<1>(GetParam());
\r
11 int type = std::tr1::get<2>(GetParam());
\r
12 int interpolation = std::tr1::get<3>(GetParam());
\r
13 int borderMode = std::tr1::get<4>(GetParam());
\r
15 setDevice(devInfo.deviceID());
\r
17 Mat src_host(size, type);
\r
19 declare.in(src_host, WARMUP_RNG);
\r
21 GpuMat src(src_host);
\r
22 GpuMat dst(size, type);
\r
24 Mat xmap_host(size, CV_32FC1);
\r
25 Mat ymap_host(size, CV_32FC1);
\r
26 randu(xmap_host, -300, size.width + 300);
\r
27 randu(ymap_host, -300, size.height + 300);
\r
29 GpuMat xmap(xmap_host);
\r
30 GpuMat ymap(ymap_host);
\r
32 declare.time(3.0).iterations(100);
\r
36 remap(src, dst, xmap, ymap, interpolation, borderMode);
\r
41 SANITY_CHECK(dst_host);
\r
44 PERF_TEST_P(DevInfo, meanShiftFiltering, testing::ValuesIn(devices()))
\r
46 DeviceInfo devInfo = GetParam();
\r
48 setDevice(devInfo.deviceID());
\r
50 Mat img = readImage("gpu/meanshift/cones.png");
\r
51 ASSERT_FALSE(img.empty());
\r
54 cvtColor(img, rgba, CV_BGR2BGRA);
\r
57 GpuMat dst(src.size(), CV_8UC4);
\r
59 declare.time(5.0).iterations(100);
\r
63 meanShiftFiltering(src, dst, 50, 50);
\r
68 SANITY_CHECK(dst_host);
\r
71 PERF_TEST_P(DevInfo, meanShiftProc, testing::ValuesIn(devices()))
\r
73 DeviceInfo devInfo = GetParam();
\r
75 setDevice(devInfo.deviceID());
\r
77 Mat img = readImage("gpu/meanshift/cones.png");
\r
78 ASSERT_FALSE(img.empty());
\r
81 cvtColor(img, rgba, CV_BGR2BGRA);
\r
84 GpuMat dstr(src.size(), CV_8UC4);
\r
85 GpuMat dstsp(src.size(), CV_16SC2);
\r
87 declare.time(5.0).iterations(100);
\r
91 meanShiftProc(src, dstr, dstsp, 50, 50);
\r
94 Mat dstr_host = dstr;
\r
95 Mat dstsp_host = dstsp;
\r
97 SANITY_CHECK(dstr_host);
\r
98 SANITY_CHECK(dstsp_host);
\r
101 PERF_TEST_P(DevInfo, meanShiftSegmentation, testing::ValuesIn(devices()))
\r
103 DeviceInfo devInfo = GetParam();
\r
105 setDevice(devInfo.deviceID());
\r
107 Mat img = readImage("gpu/meanshift/cones.png");
\r
108 ASSERT_FALSE(img.empty());
\r
111 cvtColor(img, rgba, CV_BGR2BGRA);
\r
114 Mat dst(src.size(), CV_8UC4);
\r
116 declare.time(5.0).iterations(100);
\r
118 SIMPLE_TEST_CYCLE()
\r
120 meanShiftSegmentation(src, dst, 10, 10, 20);
\r
126 PERF_TEST_P(DevInfo_Size_MatType, drawColorDisp, testing::Combine(testing::ValuesIn(devices()),
\r
127 testing::Values(GPU_TYPICAL_MAT_SIZES),
\r
128 testing::Values(CV_8UC1, CV_16SC1)))
\r
130 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
131 Size size = std::tr1::get<1>(GetParam());
\r
132 int type = std::tr1::get<2>(GetParam());
\r
134 setDevice(devInfo.deviceID());
\r
136 Mat src_host(size, CV_8UC1);
\r
137 declare.in(src_host, WARMUP_RNG);
\r
138 src_host.convertTo(src_host, type);
\r
140 GpuMat src(src_host);
\r
141 GpuMat dst(size, CV_8UC4);
\r
143 declare.time(0.5).iterations(100);
\r
145 SIMPLE_TEST_CYCLE()
\r
147 drawColorDisp(src, dst, 255);
\r
152 SANITY_CHECK(dst_host);
\r
155 PERF_TEST_P(DevInfo_Size_MatType, reprojectImageTo3D, testing::Combine(testing::ValuesIn(devices()),
\r
156 testing::Values(GPU_TYPICAL_MAT_SIZES),
\r
157 testing::Values(CV_8UC1, CV_16SC1)))
\r
159 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
160 Size size = std::tr1::get<1>(GetParam());
\r
161 int type = std::tr1::get<2>(GetParam());
\r
163 setDevice(devInfo.deviceID());
\r
165 Mat src_host(size, type);
\r
167 declare.in(src_host, WARMUP_RNG);
\r
169 GpuMat src(src_host);
\r
170 GpuMat dst(size, CV_32FC4);
\r
172 declare.time(0.5).iterations(100);
\r
174 SIMPLE_TEST_CYCLE()
\r
176 reprojectImageTo3D(src, dst, Mat::ones(4, 4, CV_32FC1));
\r
181 SANITY_CHECK(dst_host);
\r
184 PERF_TEST_P(DevInfo_Size_MatType_CvtColorInfo, cvtColor, testing::Combine(testing::ValuesIn(devices()),
\r
185 testing::Values(GPU_TYPICAL_MAT_SIZES),
\r
186 testing::Values(CV_8UC1, CV_16UC1, CV_32FC1),
\r
187 testing::Values(CvtColorInfo(4, 4, CV_RGBA2BGRA), CvtColorInfo(4, 1, CV_BGRA2GRAY), CvtColorInfo(1, 4, CV_GRAY2BGRA),
\r
188 CvtColorInfo(4, 4, CV_BGR2XYZ), CvtColorInfo(4, 4, CV_BGR2YCrCb), CvtColorInfo(4, 4, CV_YCrCb2BGR),
\r
189 CvtColorInfo(4, 4, CV_BGR2HSV), CvtColorInfo(4, 4, CV_HSV2BGR))))
\r
191 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
192 Size size = std::tr1::get<1>(GetParam());
\r
193 int type = std::tr1::get<2>(GetParam());
\r
194 CvtColorInfo info = std::tr1::get<3>(GetParam());
\r
196 setDevice(devInfo.deviceID());
\r
198 Mat src_host(size, CV_MAKETYPE(type, info.scn));
\r
200 declare.in(src_host, WARMUP_RNG);
\r
202 GpuMat src(src_host);
\r
203 GpuMat dst(size, CV_MAKETYPE(type, info.dcn));
\r
205 declare.time(0.5).iterations(100);
\r
207 SIMPLE_TEST_CYCLE()
\r
209 cvtColor(src, dst, info.code, info.dcn);
\r
214 SANITY_CHECK(dst_host);
\r
217 PERF_TEST_P(DevInfo_Size_MatType, threshold, testing::Combine(testing::ValuesIn(devices()),
\r
218 testing::Values(GPU_TYPICAL_MAT_SIZES),
\r
219 testing::Values(CV_8UC1, CV_16UC1, CV_32FC1)))
\r
221 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
222 Size size = std::tr1::get<1>(GetParam());
\r
223 int type = std::tr1::get<2>(GetParam());
\r
225 setDevice(devInfo.deviceID());
\r
227 Mat src_host(size, type);
\r
229 declare.in(src_host, WARMUP_RNG);
\r
231 GpuMat src(src_host);
\r
232 GpuMat dst(size, type);
\r
234 declare.time(0.5).iterations(100);
\r
236 SIMPLE_TEST_CYCLE()
\r
238 threshold(src, dst, 100.0, 255.0, THRESH_BINARY);
\r
243 SANITY_CHECK(dst_host);
\r
246 PERF_TEST_P(DevInfo_Size_MatType_Interpolation_SizeCoeff, resize, testing::Combine(testing::ValuesIn(devices()),
\r
247 testing::Values(szSXGA, sz1080p),
\r
248 testing::Values(CV_8UC1, CV_8UC4, CV_16UC1, CV_32FC1),
\r
249 testing::Values((int)INTER_NEAREST, (int)INTER_LINEAR, (int)INTER_CUBIC),
\r
250 testing::Values(0.5, 2.0)))
\r
252 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
253 Size size = std::tr1::get<1>(GetParam());
\r
254 int type = std::tr1::get<2>(GetParam());
\r
255 int interpolation = std::tr1::get<3>(GetParam());
\r
256 double f = std::tr1::get<4>(GetParam());
\r
258 setDevice(devInfo.deviceID());
\r
260 Mat src_host(size, type);
\r
262 declare.in(src_host, WARMUP_RNG);
\r
264 GpuMat src(src_host);
\r
267 declare.time(1.0).iterations(100);
\r
269 SIMPLE_TEST_CYCLE()
\r
271 resize(src, dst, Size(), f, f, interpolation);
\r
276 SANITY_CHECK(dst_host);
\r
279 PERF_TEST_P(DevInfo_Size_MatType_Interpolation, warpAffine, testing::Combine(testing::ValuesIn(devices()),
\r
280 testing::Values(GPU_TYPICAL_MAT_SIZES),
\r
281 testing::Values(CV_8UC1, CV_8UC4, CV_32FC1),
\r
282 testing::Values((int)INTER_NEAREST, (int)INTER_LINEAR, (int)INTER_CUBIC)))
\r
284 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
285 Size size = std::tr1::get<1>(GetParam());
\r
286 int type = std::tr1::get<2>(GetParam());
\r
287 int interpolation = std::tr1::get<3>(GetParam());
\r
289 setDevice(devInfo.deviceID());
\r
291 Mat src_host(size, type);
\r
293 declare.in(src_host, WARMUP_RNG);
\r
295 GpuMat src(src_host);
\r
296 GpuMat dst(size, type);
\r
298 static double reflect[2][3] = { {-1, 0, 0},
\r
300 reflect[0][2] = size.width;
\r
301 reflect[1][2] = size.height;
\r
302 Mat M(2, 3, CV_64F, (void*)reflect);
\r
304 declare.time(0.5).iterations(100);
\r
306 SIMPLE_TEST_CYCLE()
\r
308 warpAffine(src, dst, M, size, interpolation);
\r
313 SANITY_CHECK(dst_host);
\r
316 PERF_TEST_P(DevInfo_Size_MatType_Interpolation, warpPerspective, testing::Combine(testing::ValuesIn(devices()),
\r
317 testing::Values(GPU_TYPICAL_MAT_SIZES),
\r
318 testing::Values(CV_8UC1, CV_8UC4, CV_32FC1),
\r
319 testing::Values((int)INTER_NEAREST, (int)INTER_LINEAR, (int)INTER_CUBIC)))
\r
321 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
322 Size size = std::tr1::get<1>(GetParam());
\r
323 int type = std::tr1::get<2>(GetParam());
\r
324 int interpolation = std::tr1::get<3>(GetParam());
\r
326 setDevice(devInfo.deviceID());
\r
328 Mat src_host(size, type);
\r
330 declare.in(src_host, WARMUP_RNG);
\r
332 GpuMat src(src_host);
\r
333 GpuMat dst(size, type);
\r
335 static double reflect[3][3] = { {-1, 0, 0},
\r
338 reflect[0][2] = size.width;
\r
339 reflect[1][2] = size.height;
\r
340 Mat M(3, 3, CV_64F, (void*)reflect);
\r
342 declare.time(0.5).iterations(100);
\r
344 SIMPLE_TEST_CYCLE()
\r
346 warpPerspective(src, dst, M, size, interpolation);
\r
351 SANITY_CHECK(dst_host);
\r
354 PERF_TEST_P(DevInfo_Size, buildWarpPlaneMaps, testing::Combine(testing::ValuesIn(devices()),
\r
355 testing::Values(GPU_TYPICAL_MAT_SIZES)))
\r
357 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
358 Size size = std::tr1::get<1>(GetParam());
\r
360 setDevice(devInfo.deviceID());
\r
362 GpuMat map_x(size, CV_32FC1);
\r
363 GpuMat map_y(size, CV_32FC1);
\r
365 declare.time(0.5).iterations(100);
\r
367 SIMPLE_TEST_CYCLE()
\r
369 buildWarpPlaneMaps(size, Rect(0, 0, size.width, size.height), Mat::eye(3, 3, CV_32FC1),
\r
370 Mat::ones(3, 3, CV_32FC1), 1.0, map_x, map_y);
\r
373 Mat map_x_host(map_x);
\r
374 Mat map_y_host(map_y);
\r
376 SANITY_CHECK(map_x_host);
\r
377 SANITY_CHECK(map_y_host);
\r
380 PERF_TEST_P(DevInfo_Size, buildWarpCylindricalMaps, testing::Combine(testing::ValuesIn(devices()),
\r
381 testing::Values(GPU_TYPICAL_MAT_SIZES)))
\r
383 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
384 Size size = std::tr1::get<1>(GetParam());
\r
386 setDevice(devInfo.deviceID());
\r
388 GpuMat map_x(size, CV_32FC1);
\r
389 GpuMat map_y(size, CV_32FC1);
\r
391 declare.time(0.5).iterations(100);
\r
393 SIMPLE_TEST_CYCLE()
\r
395 buildWarpCylindricalMaps(size, Rect(0, 0, size.width, size.height), Mat::eye(3, 3, CV_32FC1),
\r
396 Mat::ones(3, 3, CV_32FC1), 1.0, map_x, map_y);
\r
399 Mat map_x_host(map_x);
\r
400 Mat map_y_host(map_y);
\r
402 SANITY_CHECK(map_x_host);
\r
403 SANITY_CHECK(map_y_host);
\r
406 PERF_TEST_P(DevInfo_Size, buildWarpSphericalMaps, testing::Combine(testing::ValuesIn(devices()),
\r
407 testing::Values(GPU_TYPICAL_MAT_SIZES)))
\r
409 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
410 Size size = std::tr1::get<1>(GetParam());
\r
412 setDevice(devInfo.deviceID());
\r
414 GpuMat map_x(size, CV_32FC1);
\r
415 GpuMat map_y(size, CV_32FC1);
\r
417 declare.time(0.5).iterations(100);
\r
419 SIMPLE_TEST_CYCLE()
\r
421 buildWarpSphericalMaps(size, Rect(0, 0, size.width, size.height), Mat::eye(3, 3, CV_32FC1),
\r
422 Mat::ones(3, 3, CV_32FC1), 1.0, map_x, map_y);
\r
425 Mat map_x_host(map_x);
\r
426 Mat map_y_host(map_y);
\r
428 SANITY_CHECK(map_x_host);
\r
429 SANITY_CHECK(map_y_host);
\r
432 PERF_TEST_P(DevInfo_Size_MatType_Interpolation, rotate, testing::Combine(testing::ValuesIn(devices()),
\r
433 testing::Values(GPU_TYPICAL_MAT_SIZES),
\r
434 testing::Values(CV_8UC1, CV_8UC4),
\r
435 testing::Values((int)INTER_NEAREST, (int)INTER_LINEAR, (int)INTER_CUBIC)))
\r
437 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
438 Size size = std::tr1::get<1>(GetParam());
\r
439 int type = std::tr1::get<2>(GetParam());
\r
440 int interpolation = std::tr1::get<3>(GetParam());
\r
442 setDevice(devInfo.deviceID());
\r
444 Mat src_host(size, type);
\r
446 declare.in(src_host, WARMUP_RNG);
\r
448 GpuMat src(src_host);
\r
449 GpuMat dst(size, type);
\r
451 declare.time(0.5).iterations(100);
\r
453 SIMPLE_TEST_CYCLE()
\r
455 rotate(src, dst, size, 30.0, 0, 0, interpolation);
\r
460 SANITY_CHECK(dst_host);
\r
463 PERF_TEST_P(DevInfo_Size_MatType, copyMakeBorder, testing::Combine(testing::ValuesIn(devices()),
\r
464 testing::Values(GPU_TYPICAL_MAT_SIZES),
\r
465 testing::Values(CV_8UC1, CV_8UC4, CV_32SC1)))
\r
467 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
468 Size size = std::tr1::get<1>(GetParam());
\r
469 int type = std::tr1::get<2>(GetParam());
\r
471 setDevice(devInfo.deviceID());
\r
473 Mat src_host(size, type);
\r
475 declare.in(src_host, WARMUP_RNG);
\r
477 GpuMat src(src_host);
\r
480 declare.time(0.5).iterations(100);
\r
482 SIMPLE_TEST_CYCLE()
\r
484 copyMakeBorder(src, dst, 5, 5, 5, 5);
\r
489 SANITY_CHECK(dst_host);
\r
492 PERF_TEST_P(DevInfo_Size, integralBuffered, testing::Combine(testing::ValuesIn(devices()),
\r
493 testing::Values(GPU_TYPICAL_MAT_SIZES)))
\r
495 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
496 Size size = std::tr1::get<1>(GetParam());
\r
498 setDevice(devInfo.deviceID());
\r
500 Mat src_host(size, CV_8UC1);
\r
502 declare.in(src_host, WARMUP_RNG);
\r
504 GpuMat src(src_host);
\r
508 declare.time(0.5).iterations(100);
\r
510 SIMPLE_TEST_CYCLE()
\r
512 integralBuffered(src, dst, buf);
\r
517 SANITY_CHECK(dst_host);
\r
520 PERF_TEST_P(DevInfo_Size, integral, testing::Combine(testing::ValuesIn(devices()),
\r
521 testing::Values(GPU_TYPICAL_MAT_SIZES)))
\r
523 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
524 Size size = std::tr1::get<1>(GetParam());
\r
526 setDevice(devInfo.deviceID());
\r
528 Mat src_host(size, CV_8UC1);
\r
530 declare.in(src_host, WARMUP_RNG);
\r
532 GpuMat src(src_host);
\r
535 declare.time(0.5).iterations(100);
\r
537 SIMPLE_TEST_CYCLE()
\r
539 integral(src, sum, sqsum);
\r
543 Mat sqsum_host(sqsum);
\r
545 SANITY_CHECK(sum_host);
\r
546 SANITY_CHECK(sqsum_host);
\r
549 PERF_TEST_P(DevInfo_Size, sqrIntegral, testing::Combine(testing::ValuesIn(devices()),
\r
550 testing::Values(GPU_TYPICAL_MAT_SIZES)))
\r
552 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
553 Size size = std::tr1::get<1>(GetParam());
\r
555 setDevice(devInfo.deviceID());
\r
557 Mat src_host(size, CV_8UC1);
\r
559 declare.in(src_host, WARMUP_RNG);
\r
561 GpuMat src(src_host);
\r
564 declare.time(0.5).iterations(100);
\r
566 SIMPLE_TEST_CYCLE()
\r
568 sqrIntegral(src, dst);
\r
573 SANITY_CHECK(dst_host);
\r
576 PERF_TEST_P(DevInfo_Size, columnSum, testing::Combine(testing::ValuesIn(devices()),
\r
577 testing::Values(GPU_TYPICAL_MAT_SIZES)))
\r
579 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
580 Size size = std::tr1::get<1>(GetParam());
\r
582 setDevice(devInfo.deviceID());
\r
584 Mat src_host(size, CV_32FC1);
\r
586 declare.in(src_host, WARMUP_RNG);
\r
588 GpuMat src(src_host);
\r
591 declare.time(0.5).iterations(100);
\r
593 SIMPLE_TEST_CYCLE()
\r
595 columnSum(src, dst);
\r
600 SANITY_CHECK(dst_host);
\r
603 PERF_TEST_P(DevInfo_MatType, cornerHarris, testing::Combine(testing::ValuesIn(devices()),
\r
604 testing::Values(CV_8UC1, CV_32FC1)))
\r
606 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
607 int type = std::tr1::get<1>(GetParam());
\r
609 setDevice(devInfo.deviceID());
\r
611 Mat img = readImage("gpu/stereobm/aloe-L.png", CV_LOAD_IMAGE_GRAYSCALE);
\r
612 ASSERT_FALSE(img.empty());
\r
614 img.convertTo(img, type, type == CV_32F ? 1.0 / 255.0 : 1.0);
\r
625 declare.time(0.5).iterations(100);
\r
627 SIMPLE_TEST_CYCLE()
\r
629 cornerHarris(src, dst, Dx, Dy, blockSize, ksize, k);
\r
636 SANITY_CHECK(dst_host);
\r
637 SANITY_CHECK(Dx_host);
\r
638 SANITY_CHECK(Dy_host);
\r
641 PERF_TEST_P(DevInfo_MatType, cornerMinEigenVal, testing::Combine(testing::ValuesIn(devices()),
\r
642 testing::Values(CV_8UC1, CV_32FC1)))
\r
644 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
645 int type = std::tr1::get<1>(GetParam());
\r
647 setDevice(devInfo.deviceID());
\r
649 Mat img = readImage("gpu/stereobm/aloe-L.png", CV_LOAD_IMAGE_GRAYSCALE);
\r
650 ASSERT_FALSE(img.empty());
\r
652 img.convertTo(img, type, type == CV_32F ? 1.0 / 255.0 : 1.0);
\r
662 declare.time(0.5).iterations(100);
\r
664 SIMPLE_TEST_CYCLE()
\r
666 cornerMinEigenVal(src, dst, Dx, Dy, blockSize, ksize);
\r
673 SANITY_CHECK(dst_host);
\r
674 SANITY_CHECK(Dx_host);
\r
675 SANITY_CHECK(Dy_host);
\r
678 PERF_TEST_P(DevInfo_Size_MatType, mulSpectrums, testing::Combine(testing::ValuesIn(devices()),
\r
679 testing::Values(GPU_TYPICAL_MAT_SIZES),
\r
680 testing::Values(CV_8UC1, CV_32FC1)))
\r
682 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
683 Size size = std::tr1::get<1>(GetParam());
\r
684 int type = std::tr1::get<2>(GetParam());
\r
686 setDevice(devInfo.deviceID());
\r
688 Mat a_host(size, CV_32FC2);
\r
689 Mat b_host(size, CV_32FC2);
\r
691 declare.in(a_host, b_host, WARMUP_RNG);
\r
697 declare.time(0.5).iterations(100);
\r
699 SIMPLE_TEST_CYCLE()
\r
701 mulSpectrums(a, b, dst, 0);
\r
706 SANITY_CHECK(dst_host);
\r
709 PERF_TEST_P(DevInfo_Size, dft, testing::Combine(testing::ValuesIn(devices()),
\r
710 testing::Values(GPU_TYPICAL_MAT_SIZES)))
\r
712 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
713 Size size = std::tr1::get<1>(GetParam());
\r
715 setDevice(devInfo.deviceID());
\r
717 Mat src_host(size, CV_32FC2);
\r
719 declare.in(src_host, WARMUP_RNG);
\r
721 GpuMat src(src_host);
\r
724 declare.time(2.0).iterations(100);
\r
726 SIMPLE_TEST_CYCLE()
\r
728 dft(src, dst, size);
\r
733 SANITY_CHECK(dst_host);
\r
736 PERF_TEST_P(DevInfo_Size, convolve, testing::Combine(testing::ValuesIn(devices()),
\r
737 testing::Values(GPU_TYPICAL_MAT_SIZES)))
\r
739 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
740 Size size = std::tr1::get<1>(GetParam());
\r
742 setDevice(devInfo.deviceID());
\r
744 Mat image_host(size, CV_32FC1);
\r
745 Mat templ_host(size, CV_32FC1);
\r
747 declare.in(image_host, templ_host, WARMUP_RNG);
\r
749 GpuMat image(image_host);
\r
750 GpuMat templ(templ_host);
\r
754 declare.time(2.0).iterations(100);
\r
756 SIMPLE_TEST_CYCLE()
\r
758 convolve(image, templ, dst, false, buf);
\r
763 SANITY_CHECK(dst_host);
\r
766 PERF_TEST_P(DevInfo_Size_MatType, pyrDown, testing::Combine(testing::ValuesIn(devices()),
\r
767 testing::Values(GPU_TYPICAL_MAT_SIZES),
\r
768 testing::Values(CV_8UC1, CV_8UC4, CV_16SC3, CV_32FC1)))
\r
770 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
771 Size size = std::tr1::get<1>(GetParam());
\r
772 int type = std::tr1::get<2>(GetParam());
\r
774 setDevice(devInfo.deviceID());
\r
776 Mat src_host(size, type);
\r
778 declare.in(src_host, WARMUP_RNG);
\r
780 GpuMat src(src_host);
\r
783 declare.time(0.5).iterations(100);
\r
785 SIMPLE_TEST_CYCLE()
\r
792 SANITY_CHECK(dst_host);
\r
795 PERF_TEST_P(DevInfo_Size_MatType, pyrUp, testing::Combine(testing::ValuesIn(devices()),
\r
796 testing::Values(GPU_TYPICAL_MAT_SIZES),
\r
797 testing::Values(CV_8UC1, CV_8UC4, CV_16SC3, CV_32FC1)))
\r
799 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
800 Size size = std::tr1::get<1>(GetParam());
\r
801 int type = std::tr1::get<2>(GetParam());
\r
803 setDevice(devInfo.deviceID());
\r
805 Mat src_host(size, type);
\r
807 declare.in(src_host, WARMUP_RNG);
\r
809 GpuMat src(src_host);
\r
812 declare.time(0.5).iterations(100);
\r
814 SIMPLE_TEST_CYCLE()
\r
821 SANITY_CHECK(dst_host);
\r
824 PERF_TEST_P(DevInfo_Size_MatType, blendLinear, testing::Combine(testing::ValuesIn(devices()),
\r
825 testing::Values(GPU_TYPICAL_MAT_SIZES),
\r
826 testing::Values(CV_8UC1, CV_32FC1)))
\r
828 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
829 Size size = std::tr1::get<1>(GetParam());
\r
830 int type = std::tr1::get<2>(GetParam());
\r
832 setDevice(devInfo.deviceID());
\r
834 Mat img1_host(size, type);
\r
835 Mat img2_host(size, type);
\r
837 declare.in(img1_host, img2_host, WARMUP_RNG);
\r
839 GpuMat img1(img1_host);
\r
840 GpuMat img2(img2_host);
\r
841 GpuMat weights1(size, CV_32FC1, Scalar::all(0.5));
\r
842 GpuMat weights2(size, CV_32FC1, Scalar::all(0.5));
\r
845 declare.time(0.5).iterations(100);
\r
847 SIMPLE_TEST_CYCLE()
\r
849 blendLinear(img1, img2, weights1, weights2, dst);
\r
854 SANITY_CHECK(dst_host);
\r
857 PERF_TEST_P(DevInfo, Canny, testing::ValuesIn(devices()))
\r
859 DeviceInfo devInfo = GetParam();
\r
861 setDevice(devInfo.deviceID());
\r
863 Mat image_host = readImage("gpu/perf/aloe.jpg", CV_LOAD_IMAGE_GRAYSCALE);
\r
864 ASSERT_FALSE(image_host.empty());
\r
866 GpuMat image(image_host);
\r
870 declare.time(0.5).iterations(100);
\r
872 SIMPLE_TEST_CYCLE()
\r
874 Canny(image, buf, dst, 50.0, 100.0);
\r
879 SANITY_CHECK(dst_host);
\r
882 PERF_TEST_P(DevInfo_Size, calcHist, testing::Combine(testing::ValuesIn(devices()),
\r
883 testing::Values(GPU_TYPICAL_MAT_SIZES)))
\r
885 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
886 Size size = std::tr1::get<1>(GetParam());
\r
888 setDevice(devInfo.deviceID());
\r
890 Mat src_host(size, CV_8UC1);
\r
892 declare.in(src_host, WARMUP_RNG);
\r
894 GpuMat src(src_host);
\r
898 declare.time(0.5).iterations(100);
\r
900 SIMPLE_TEST_CYCLE()
\r
902 calcHist(src, hist, buf);
\r
905 Mat hist_host(hist);
\r
907 SANITY_CHECK(hist_host);
\r
910 PERF_TEST_P(DevInfo_Size, equalizeHist, testing::Combine(testing::ValuesIn(devices()),
\r
911 testing::Values(GPU_TYPICAL_MAT_SIZES)))
\r
913 DeviceInfo devInfo = std::tr1::get<0>(GetParam());
\r
914 Size size = std::tr1::get<1>(GetParam());
\r
916 setDevice(devInfo.deviceID());
\r
918 Mat src_host(size, CV_8UC1);
\r
920 declare.in(src_host, WARMUP_RNG);
\r
922 GpuMat src(src_host);
\r
927 declare.time(0.5).iterations(100);
\r
929 SIMPLE_TEST_CYCLE()
\r
931 equalizeHist(src, dst, hist, buf);
\r
936 SANITY_CHECK(dst_host);
\r