1 #include "perf_cpu_precomp.hpp"
\r
5 //////////////////////////////////////////////////////////////////////
\r
8 GPU_PERF_TEST(Remap, cv::gpu::DeviceInfo, cv::Size, MatType, Interpolation, BorderMode)
\r
10 cv::Size size = GET_PARAM(1);
\r
11 int type = GET_PARAM(2);
\r
12 int interpolation = GET_PARAM(3);
\r
13 int borderMode = GET_PARAM(4);
\r
15 cv::Mat src(size, type);
\r
18 cv::Mat xmap(size, CV_32FC1);
\r
19 fill(xmap, 0, size.width);
\r
21 cv::Mat ymap(size, CV_32FC1);
\r
22 fill(ymap, 0, size.height);
\r
26 cv::remap(src, dst, xmap, ymap, interpolation, borderMode);
\r
32 cv::remap(src, dst, xmap, ymap, interpolation, borderMode);
\r
36 INSTANTIATE_TEST_CASE_P(ImgProc, Remap, testing::Combine(
\r
38 GPU_TYPICAL_MAT_SIZES,
\r
39 testing::Values(MatType(CV_8UC1), MatType(CV_8UC3), MatType(CV_8UC4),
\r
40 MatType(CV_16UC1), MatType(CV_16UC3), MatType(CV_16UC4),
\r
41 MatType(CV_32FC1), MatType(CV_32FC3), MatType(CV_32FC4)),
\r
42 testing::Values(Interpolation(cv::INTER_NEAREST), Interpolation(cv::INTER_LINEAR), Interpolation(cv::INTER_CUBIC)),
\r
43 testing::Values(BorderMode(cv::BORDER_REFLECT101), BorderMode(cv::BORDER_REPLICATE), BorderMode(cv::BORDER_CONSTANT), BorderMode(cv::BORDER_REFLECT), BorderMode(cv::BORDER_WRAP))));
\r
46 //////////////////////////////////////////////////////////////////////
\r
49 IMPLEMENT_PARAM_CLASS(Scale, double)
\r
51 GPU_PERF_TEST(Resize, cv::gpu::DeviceInfo, cv::Size, MatType, Interpolation, Scale)
\r
53 cv::Size size = GET_PARAM(1);
\r
54 int type = GET_PARAM(2);
\r
55 int interpolation = GET_PARAM(3);
\r
56 double f = GET_PARAM(4);
\r
58 cv::Mat src(size, type);
\r
63 cv::resize(src, dst, cv::Size(), f, f, interpolation);
\r
69 cv::resize(src, dst, cv::Size(), f, f, interpolation);
\r
73 INSTANTIATE_TEST_CASE_P(ImgProc, Resize, testing::Combine(
\r
75 GPU_TYPICAL_MAT_SIZES,
\r
76 testing::Values(MatType(CV_8UC1), MatType(CV_8UC3), MatType(CV_8UC4),
\r
77 MatType(CV_16UC1), MatType(CV_16UC3), MatType(CV_16UC4),
\r
78 MatType(CV_32FC1), MatType(CV_32FC3), MatType(CV_32FC4)),
\r
79 testing::Values(Interpolation(cv::INTER_NEAREST), Interpolation(cv::INTER_LINEAR),
\r
80 Interpolation(cv::INTER_CUBIC), Interpolation(cv::INTER_AREA)),
\r
81 testing::Values(Scale(0.5), Scale(0.3), Scale(2.0))));
\r
83 GPU_PERF_TEST(ResizeArea, cv::gpu::DeviceInfo, cv::Size, MatType, Scale)
\r
85 cv::Size size = GET_PARAM(1);
\r
86 int type = GET_PARAM(2);
\r
87 int interpolation = cv::INTER_AREA;
\r
88 double f = GET_PARAM(3);
\r
90 cv::Mat src_host(size, type);
\r
91 fill(src_host, 0, 255);
\r
93 cv::Mat src(src_host);
\r
96 cv::resize(src, dst, cv::Size(), f, f, interpolation);
\r
102 cv::resize(src, dst, cv::Size(), f, f, interpolation);
\r
106 INSTANTIATE_TEST_CASE_P(ImgProc, ResizeArea, testing::Combine(
\r
108 testing::Values(perf::sz1080p, cv::Size(4096, 2048)),
\r
109 testing::Values(MatType(CV_8UC1)/*, MatType(CV_8UC3), MatType(CV_8UC4),
\r
110 MatType(CV_16UC1), MatType(CV_16UC3), MatType(CV_16UC4),
\r
111 MatType(CV_32FC1), MatType(CV_32FC3), MatType(CV_32FC4)*/),
\r
112 testing::Values(Scale(0.2),Scale(0.1),Scale(0.05))));
\r
114 //////////////////////////////////////////////////////////////////////
\r
117 GPU_PERF_TEST(WarpAffine, cv::gpu::DeviceInfo, cv::Size, MatType, Interpolation, BorderMode)
\r
119 cv::Size size = GET_PARAM(1);
\r
120 int type = GET_PARAM(2);
\r
121 int interpolation = GET_PARAM(3);
\r
122 int borderMode = GET_PARAM(4);
\r
124 cv::Mat src(size, type);
\r
129 const double aplha = CV_PI / 4;
\r
130 double mat[2][3] = { {std::cos(aplha), -std::sin(aplha), src.cols / 2},
\r
131 {std::sin(aplha), std::cos(aplha), 0}};
\r
132 cv::Mat M(2, 3, CV_64F, (void*) mat);
\r
134 cv::warpAffine(src, dst, M, size, interpolation, borderMode);
\r
136 declare.time(20.0);
\r
140 cv::warpAffine(src, dst, M, size, interpolation, borderMode);
\r
144 INSTANTIATE_TEST_CASE_P(ImgProc, WarpAffine, testing::Combine(
\r
146 GPU_TYPICAL_MAT_SIZES,
\r
147 testing::Values(MatType(CV_8UC1), MatType(CV_8UC3), MatType(CV_8UC4),
\r
148 MatType(CV_16UC1), MatType(CV_16UC3), MatType(CV_16UC4),
\r
149 MatType(CV_32FC1), MatType(CV_32FC3), MatType(CV_32FC4)),
\r
150 testing::Values(Interpolation(cv::INTER_NEAREST), Interpolation(cv::INTER_LINEAR), Interpolation(cv::INTER_CUBIC)),
\r
151 testing::Values(BorderMode(cv::BORDER_REFLECT101), BorderMode(cv::BORDER_REPLICATE), BorderMode(cv::BORDER_CONSTANT), BorderMode(cv::BORDER_REFLECT), BorderMode(cv::BORDER_WRAP))));
\r
153 //////////////////////////////////////////////////////////////////////
\r
156 GPU_PERF_TEST(WarpPerspective, cv::gpu::DeviceInfo, cv::Size, MatType, Interpolation, BorderMode)
\r
158 cv::Size size = GET_PARAM(1);
\r
159 int type = GET_PARAM(2);
\r
160 int interpolation = GET_PARAM(3);
\r
161 int borderMode = GET_PARAM(4);
\r
163 cv::Mat src(size, type);
\r
168 const double aplha = CV_PI / 4;
\r
169 double mat[3][3] = { {std::cos(aplha), -std::sin(aplha), src.cols / 2},
\r
170 {std::sin(aplha), std::cos(aplha), 0},
\r
172 cv::Mat M(3, 3, CV_64F, (void*) mat);
\r
174 cv::warpPerspective(src, dst, M, size, interpolation, borderMode);
\r
176 declare.time(20.0);
\r
180 cv::warpPerspective(src, dst, M, size, interpolation, borderMode);
\r
184 INSTANTIATE_TEST_CASE_P(ImgProc, WarpPerspective, testing::Combine(
\r
186 GPU_TYPICAL_MAT_SIZES,
\r
187 testing::Values(MatType(CV_8UC1), MatType(CV_8UC3), MatType(CV_8UC4),
\r
188 MatType(CV_16UC1), MatType(CV_16UC3), MatType(CV_16UC4),
\r
189 MatType(CV_32FC1), MatType(CV_32FC3), MatType(CV_32FC4)),
\r
190 testing::Values(Interpolation(cv::INTER_NEAREST), Interpolation(cv::INTER_LINEAR), Interpolation(cv::INTER_CUBIC)),
\r
191 testing::Values(BorderMode(cv::BORDER_REFLECT101), BorderMode(cv::BORDER_REPLICATE), BorderMode(cv::BORDER_CONSTANT), BorderMode(cv::BORDER_REFLECT), BorderMode(cv::BORDER_WRAP))));
\r
193 //////////////////////////////////////////////////////////////////////
\r
196 GPU_PERF_TEST(CopyMakeBorder, cv::gpu::DeviceInfo, cv::Size, MatType, BorderMode)
\r
198 cv::Size size = GET_PARAM(1);
\r
199 int type = GET_PARAM(2);
\r
200 int borderType = GET_PARAM(3);
\r
202 cv::Mat src(size, type);
\r
207 cv::copyMakeBorder(src, dst, 5, 5, 5, 5, borderType);
\r
211 cv::copyMakeBorder(src, dst, 5, 5, 5, 5, borderType);
\r
215 INSTANTIATE_TEST_CASE_P(ImgProc, CopyMakeBorder, testing::Combine(
\r
217 GPU_TYPICAL_MAT_SIZES,
\r
218 testing::Values(MatType(CV_8UC1), MatType(CV_8UC3), MatType(CV_8UC4),
\r
219 MatType(CV_16UC1), MatType(CV_16UC3), MatType(CV_16UC4),
\r
220 MatType(CV_32FC1), MatType(CV_32FC3), MatType(CV_32FC4)),
\r
221 testing::Values(BorderMode(cv::BORDER_REFLECT101), BorderMode(cv::BORDER_REPLICATE), BorderMode(cv::BORDER_CONSTANT), BorderMode(cv::BORDER_REFLECT), BorderMode(cv::BORDER_WRAP))));
\r
223 //////////////////////////////////////////////////////////////////////
\r
226 CV_ENUM(ThreshOp, cv::THRESH_BINARY, cv::THRESH_BINARY_INV, cv::THRESH_TRUNC, cv::THRESH_TOZERO, cv::THRESH_TOZERO_INV)
\r
227 #define ALL_THRESH_OPS testing::Values(ThreshOp(cv::THRESH_BINARY), ThreshOp(cv::THRESH_BINARY_INV), ThreshOp(cv::THRESH_TRUNC), ThreshOp(cv::THRESH_TOZERO), ThreshOp(cv::THRESH_TOZERO_INV))
\r
229 GPU_PERF_TEST(Threshold, cv::gpu::DeviceInfo, cv::Size, MatDepth, ThreshOp)
\r
231 cv::Size size = GET_PARAM(1);
\r
232 int depth = GET_PARAM(2);
\r
233 int threshOp = GET_PARAM(3);
\r
235 cv::Mat src(size, depth);
\r
240 cv::threshold(src, dst, 100.0, 255.0, threshOp);
\r
244 cv::threshold(src, dst, 100.0, 255.0, threshOp);
\r
248 INSTANTIATE_TEST_CASE_P(ImgProc, Threshold, testing::Combine(
\r
250 GPU_TYPICAL_MAT_SIZES,
\r
251 testing::Values(MatDepth(CV_8U), MatDepth(CV_16U), MatDepth(CV_32F), MatDepth(CV_64F)),
\r
254 //////////////////////////////////////////////////////////////////////
\r
257 GPU_PERF_TEST(Integral, cv::gpu::DeviceInfo, cv::Size)
\r
259 cv::Size size = GET_PARAM(1);
\r
261 cv::Mat src(size, CV_8UC1);
\r
266 cv::integral(src, dst);
\r
270 cv::integral(src, dst);
\r
274 INSTANTIATE_TEST_CASE_P(ImgProc, Integral, testing::Combine(
\r
276 GPU_TYPICAL_MAT_SIZES));
\r
278 //////////////////////////////////////////////////////////////////////
\r
279 // HistEven_OneChannel
\r
281 GPU_PERF_TEST(HistEven_OneChannel, cv::gpu::DeviceInfo, cv::Size, MatDepth)
\r
283 cv::Size size = GET_PARAM(1);
\r
284 int depth = GET_PARAM(2);
\r
286 cv::Mat src(size, depth);
\r
290 float hranges[] = {0.0f, 180.0f};
\r
292 int histSize[] = {hbins};
\r
293 const float* ranges[] = {hranges};
\r
294 int channels[] = {0};
\r
296 cv::calcHist(&src, 1, channels, cv::Mat(), hist, 1, histSize, ranges);
\r
300 cv::calcHist(&src, 1, channels, cv::Mat(), hist, 1, histSize, ranges);
\r
304 INSTANTIATE_TEST_CASE_P(ImgProc, HistEven_OneChannel, testing::Combine(
\r
306 GPU_TYPICAL_MAT_SIZES,
\r
307 testing::Values(MatDepth(CV_8U), MatDepth(CV_16U), MatDepth(CV_16S))));
\r
309 //////////////////////////////////////////////////////////////////////
\r
312 GPU_PERF_TEST(EqualizeHist, cv::gpu::DeviceInfo, cv::Size)
\r
314 cv::Size size = GET_PARAM(1);
\r
316 cv::Mat src(size, CV_8UC1);
\r
321 cv::equalizeHist(src, dst);
\r
325 cv::equalizeHist(src, dst);
\r
329 INSTANTIATE_TEST_CASE_P(ImgProc, EqualizeHist, testing::Combine(
\r
331 GPU_TYPICAL_MAT_SIZES));
\r
333 //////////////////////////////////////////////////////////////////////
\r
336 IMPLEMENT_PARAM_CLASS(AppertureSize, int)
\r
337 IMPLEMENT_PARAM_CLASS(L2gradient, bool)
\r
339 GPU_PERF_TEST(Canny, cv::gpu::DeviceInfo, AppertureSize, L2gradient)
\r
341 int apperture_size = GET_PARAM(1);
\r
342 bool useL2gradient = GET_PARAM(2);
\r
344 cv::Mat image = readImage("perf/1280x1024.jpg", cv::IMREAD_GRAYSCALE);
\r
345 ASSERT_FALSE(image.empty());
\r
349 cv::Canny(image, dst, 50.0, 100.0, apperture_size, useL2gradient);
\r
353 cv::Canny(image, dst, 50.0, 100.0, apperture_size, useL2gradient);
\r
357 INSTANTIATE_TEST_CASE_P(ImgProc, Canny, testing::Combine(
\r
359 testing::Values(AppertureSize(3), AppertureSize(5)),
\r
360 testing::Values(L2gradient(false), L2gradient(true))));
\r
362 //////////////////////////////////////////////////////////////////////
\r
363 // MeanShiftFiltering
\r
365 GPU_PERF_TEST_1(MeanShiftFiltering, cv::gpu::DeviceInfo)
\r
367 cv::Mat img = readImage("gpu/meanshift/cones.png");
\r
368 ASSERT_FALSE(img.empty());
\r
372 cv::pyrMeanShiftFiltering(img, dst, 50, 50);
\r
374 declare.time(15.0);
\r
378 cv::pyrMeanShiftFiltering(img, dst, 50, 50);
\r
382 INSTANTIATE_TEST_CASE_P(ImgProc, MeanShiftFiltering, ALL_DEVICES);
\r
384 //////////////////////////////////////////////////////////////////////
\r
387 IMPLEMENT_PARAM_CLASS(KSize, int)
\r
388 IMPLEMENT_PARAM_CLASS(Ccorr, bool)
\r
390 GPU_PERF_TEST(Convolve, cv::gpu::DeviceInfo, cv::Size, KSize, Ccorr)
\r
392 cv::Size size = GET_PARAM(1);
\r
393 int templ_size = GET_PARAM(2);
\r
394 bool ccorr = GET_PARAM(3);
\r
396 ASSERT_FALSE(ccorr);
\r
398 cv::Mat image(size, CV_32FC1);
\r
401 cv::Mat templ(templ_size, templ_size, CV_32FC1);
\r
406 cv::filter2D(image, dst, image.depth(), templ);
\r
408 declare.time(10.0);
\r
412 cv::filter2D(image, dst, image.depth(), templ);
\r
416 INSTANTIATE_TEST_CASE_P(ImgProc, Convolve, testing::Combine(
\r
418 GPU_TYPICAL_MAT_SIZES,
\r
419 testing::Values(KSize(3), KSize(9), KSize(17), KSize(27), KSize(32), KSize(64)),
\r
420 testing::Values(Ccorr(false), Ccorr(true))));
\r
422 ////////////////////////////////////////////////////////////////////////////////
\r
423 // MatchTemplate_8U
\r
425 CV_ENUM(TemplateMethod, cv::TM_SQDIFF, cv::TM_SQDIFF_NORMED, cv::TM_CCORR, cv::TM_CCORR_NORMED, cv::TM_CCOEFF, cv::TM_CCOEFF_NORMED)
\r
426 #define ALL_TEMPLATE_METHODS testing::Values(TemplateMethod(cv::TM_SQDIFF), TemplateMethod(cv::TM_SQDIFF_NORMED), TemplateMethod(cv::TM_CCORR), TemplateMethod(cv::TM_CCORR_NORMED), TemplateMethod(cv::TM_CCOEFF), TemplateMethod(cv::TM_CCOEFF_NORMED))
\r
428 IMPLEMENT_PARAM_CLASS(TemplateSize, cv::Size)
\r
430 GPU_PERF_TEST(MatchTemplate_8U, cv::gpu::DeviceInfo, cv::Size, TemplateSize, Channels, TemplateMethod)
\r
432 cv::Size size = GET_PARAM(1);
\r
433 cv::Size templ_size = GET_PARAM(2);
\r
434 int cn = GET_PARAM(3);
\r
435 int method = GET_PARAM(4);
\r
437 cv::Mat image(size, CV_MAKE_TYPE(CV_8U, cn));
\r
438 fill(image, 0, 255);
\r
440 cv::Mat templ(templ_size, CV_MAKE_TYPE(CV_8U, cn));
\r
441 fill(templ, 0, 255);
\r
445 cv::matchTemplate(image, templ, dst, method);
\r
449 cv::matchTemplate(image, templ, dst, method);
\r
453 INSTANTIATE_TEST_CASE_P(ImgProc, MatchTemplate_8U, testing::Combine(
\r
455 GPU_TYPICAL_MAT_SIZES,
\r
456 testing::Values(TemplateSize(cv::Size(5, 5)), TemplateSize(cv::Size(16, 16)), TemplateSize(cv::Size(30, 30))),
\r
457 testing::Values(Channels(1), Channels(3), Channels(4)),
\r
458 ALL_TEMPLATE_METHODS));
\r
460 ////////////////////////////////////////////////////////////////////////////////
\r
461 // MatchTemplate_32F
\r
463 GPU_PERF_TEST(MatchTemplate_32F, cv::gpu::DeviceInfo, cv::Size, TemplateSize, Channels, TemplateMethod)
\r
465 cv::Size size = GET_PARAM(1);
\r
466 cv::Size templ_size = GET_PARAM(2);
\r
467 int cn = GET_PARAM(3);
\r
468 int method = GET_PARAM(4);
\r
470 cv::Mat image(size, CV_MAKE_TYPE(CV_32F, cn));
\r
471 fill(image, 0, 255);
\r
473 cv::Mat templ(templ_size, CV_MAKE_TYPE(CV_32F, cn));
\r
474 fill(templ, 0, 255);
\r
478 cv::matchTemplate(image, templ, dst, method);
\r
482 cv::matchTemplate(image, templ, dst, method);
\r
486 INSTANTIATE_TEST_CASE_P(ImgProc, MatchTemplate_32F, testing::Combine(
\r
488 GPU_TYPICAL_MAT_SIZES,
\r
489 testing::Values(TemplateSize(cv::Size(5, 5)), TemplateSize(cv::Size(16, 16)), TemplateSize(cv::Size(30, 30))),
\r
490 testing::Values(Channels(1), Channels(3), Channels(4)),
\r
491 testing::Values(TemplateMethod(cv::TM_SQDIFF), TemplateMethod(cv::TM_CCORR))));
\r
493 //////////////////////////////////////////////////////////////////////
\r
496 CV_FLAGS(DftFlags, 0, cv::DFT_INVERSE, cv::DFT_SCALE, cv::DFT_ROWS, cv::DFT_COMPLEX_OUTPUT, cv::DFT_REAL_OUTPUT)
\r
498 GPU_PERF_TEST(MulSpectrums, cv::gpu::DeviceInfo, cv::Size, DftFlags)
\r
500 cv::Size size = GET_PARAM(1);
\r
501 int flag = GET_PARAM(2);
\r
503 cv::Mat a(size, CV_32FC2);
\r
506 cv::Mat b(size, CV_32FC2);
\r
511 cv::mulSpectrums(a, b, dst, flag);
\r
515 cv::mulSpectrums(a, b, dst, flag);
\r
519 INSTANTIATE_TEST_CASE_P(ImgProc, MulSpectrums, testing::Combine(
\r
521 GPU_TYPICAL_MAT_SIZES,
\r
522 testing::Values(DftFlags(0), DftFlags(cv::DFT_ROWS))));
\r
524 //////////////////////////////////////////////////////////////////////
\r
527 GPU_PERF_TEST(Dft, cv::gpu::DeviceInfo, cv::Size, DftFlags)
\r
529 cv::Size size = GET_PARAM(1);
\r
530 int flag = GET_PARAM(2);
\r
532 cv::Mat src(size, CV_32FC2);
\r
537 cv::dft(src, dst, flag);
\r
539 declare.time(10.0);
\r
543 cv::dft(src, dst, flag);
\r
547 INSTANTIATE_TEST_CASE_P(ImgProc, Dft, testing::Combine(
\r
549 GPU_TYPICAL_MAT_SIZES,
\r
550 testing::Values(DftFlags(0), DftFlags(cv::DFT_ROWS), DftFlags(cv::DFT_INVERSE))));
\r
552 //////////////////////////////////////////////////////////////////////
\r
555 IMPLEMENT_PARAM_CLASS(BlockSize, int)
\r
556 IMPLEMENT_PARAM_CLASS(ApertureSize, int)
\r
558 GPU_PERF_TEST(CornerHarris, cv::gpu::DeviceInfo, MatType, BorderMode, BlockSize, ApertureSize)
\r
560 int type = GET_PARAM(1);
\r
561 int borderType = GET_PARAM(2);
\r
562 int blockSize = GET_PARAM(3);
\r
563 int apertureSize = GET_PARAM(4);
\r
565 cv::Mat img = readImage("gpu/stereobm/aloe-L.png", cv::IMREAD_GRAYSCALE);
\r
566 ASSERT_FALSE(img.empty());
\r
568 img.convertTo(img, type, type == CV_32F ? 1.0 / 255.0 : 1.0);
\r
574 cv::cornerHarris(img, dst, blockSize, apertureSize, k, borderType);
\r
578 cv::cornerHarris(img, dst, blockSize, apertureSize, k, borderType);
\r
582 INSTANTIATE_TEST_CASE_P(ImgProc, CornerHarris, testing::Combine(
\r
584 testing::Values(MatType(CV_8UC1), MatType(CV_32FC1)),
\r
585 testing::Values(BorderMode(cv::BORDER_REFLECT101), BorderMode(cv::BORDER_REPLICATE), BorderMode(cv::BORDER_REFLECT)),
\r
586 testing::Values(BlockSize(3), BlockSize(5), BlockSize(7)),
\r
587 testing::Values(ApertureSize(0), ApertureSize(3), ApertureSize(5), ApertureSize(7))));
\r
589 //////////////////////////////////////////////////////////////////////
\r
590 // CornerMinEigenVal
\r
592 GPU_PERF_TEST(CornerMinEigenVal, cv::gpu::DeviceInfo, MatType, BorderMode, BlockSize, ApertureSize)
\r
594 int type = GET_PARAM(1);
\r
595 int borderType = GET_PARAM(2);
\r
596 int blockSize = GET_PARAM(3);
\r
597 int apertureSize = GET_PARAM(4);
\r
599 cv::Mat img = readImage("gpu/stereobm/aloe-L.png", cv::IMREAD_GRAYSCALE);
\r
600 ASSERT_FALSE(img.empty());
\r
602 img.convertTo(img, type, type == CV_32F ? 1.0 / 255.0 : 1.0);
\r
606 cv::cornerMinEigenVal(img, dst, blockSize, apertureSize, borderType);
\r
610 cv::cornerMinEigenVal(img, dst, blockSize, apertureSize, borderType);
\r
614 INSTANTIATE_TEST_CASE_P(ImgProc, CornerMinEigenVal, testing::Combine(
\r
616 testing::Values(MatType(CV_8UC1), MatType(CV_32FC1)),
\r
617 testing::Values(BorderMode(cv::BORDER_REFLECT101), BorderMode(cv::BORDER_REPLICATE), BorderMode(cv::BORDER_REFLECT)),
\r
618 testing::Values(BlockSize(3), BlockSize(5), BlockSize(7)),
\r
619 testing::Values(ApertureSize(0), ApertureSize(3), ApertureSize(5), ApertureSize(7))));
\r
621 //////////////////////////////////////////////////////////////////////
\r
624 GPU_PERF_TEST(PyrDown, cv::gpu::DeviceInfo, cv::Size, MatType)
\r
626 cv::Size size = GET_PARAM(1);
\r
627 int type = GET_PARAM(2);
\r
629 cv::Mat src(size, type);
\r
634 cv::pyrDown(src, dst);
\r
638 cv::pyrDown(src, dst);
\r
642 INSTANTIATE_TEST_CASE_P(ImgProc, PyrDown, testing::Combine(
\r
644 GPU_TYPICAL_MAT_SIZES,
\r
645 testing::Values(MatType(CV_8UC1), MatType(CV_8UC3), MatType(CV_8UC4),
\r
646 MatType(CV_16UC1), MatType(CV_16UC3), MatType(CV_16UC4),
\r
647 MatType(CV_32FC1), MatType(CV_32FC3), MatType(CV_32FC4))));
\r
649 //////////////////////////////////////////////////////////////////////
\r
652 GPU_PERF_TEST(PyrUp, cv::gpu::DeviceInfo, cv::Size, MatType)
\r
654 cv::Size size = GET_PARAM(1);
\r
655 int type = GET_PARAM(2);
\r
657 cv::Mat src(size, type);
\r
662 cv::pyrUp(src, dst);
\r
666 cv::pyrUp(src, dst);
\r
670 INSTANTIATE_TEST_CASE_P(ImgProc, PyrUp, testing::Combine(
\r
672 GPU_TYPICAL_MAT_SIZES,
\r
673 testing::Values(MatType(CV_8UC1), MatType(CV_8UC3), MatType(CV_8UC4),
\r
674 MatType(CV_16UC1), MatType(CV_16UC3), MatType(CV_16UC4),
\r
675 MatType(CV_32FC1), MatType(CV_32FC3), MatType(CV_32FC4))));
\r
677 //////////////////////////////////////////////////////////////////////
\r
680 GPU_PERF_TEST(CvtColor, cv::gpu::DeviceInfo, cv::Size, MatDepth, CvtColorInfo)
\r
682 cv::Size size = GET_PARAM(1);
\r
683 int depth = GET_PARAM(2);
\r
684 CvtColorInfo info = GET_PARAM(3);
\r
686 cv::Mat src(size, CV_MAKETYPE(depth, info.scn));
\r
691 cv::cvtColor(src, dst, info.code, info.dcn);
\r
695 cv::cvtColor(src, dst, info.code, info.dcn);
\r
699 INSTANTIATE_TEST_CASE_P(ImgProc, CvtColor, testing::Combine(
\r
701 GPU_TYPICAL_MAT_SIZES,
\r
702 testing::Values(MatDepth(CV_8U), MatDepth(CV_16U), MatDepth(CV_32F)),
\r
703 testing::Values(CvtColorInfo(4, 4, cv::COLOR_RGBA2BGRA),
\r
704 CvtColorInfo(4, 1, cv::COLOR_BGRA2GRAY),
\r
705 CvtColorInfo(1, 4, cv::COLOR_GRAY2BGRA),
\r
706 CvtColorInfo(3, 3, cv::COLOR_BGR2XYZ),
\r
707 CvtColorInfo(3, 3, cv::COLOR_XYZ2BGR),
\r
708 CvtColorInfo(3, 3, cv::COLOR_BGR2YCrCb),
\r
709 CvtColorInfo(3, 3, cv::COLOR_YCrCb2BGR),
\r
710 CvtColorInfo(3, 3, cv::COLOR_BGR2YUV),
\r
711 CvtColorInfo(3, 3, cv::COLOR_YUV2BGR),
\r
712 CvtColorInfo(3, 3, cv::COLOR_BGR2HSV),
\r
713 CvtColorInfo(3, 3, cv::COLOR_HSV2BGR),
\r
714 CvtColorInfo(3, 3, cv::COLOR_BGR2HLS),
\r
715 CvtColorInfo(3, 3, cv::COLOR_HLS2BGR),
\r
716 CvtColorInfo(3, 3, cv::COLOR_BGR2Lab),
\r
717 CvtColorInfo(3, 3, cv::COLOR_RGB2Lab),
\r
718 CvtColorInfo(3, 3, cv::COLOR_BGR2Luv),
\r
719 CvtColorInfo(3, 3, cv::COLOR_RGB2Luv),
\r
720 CvtColorInfo(3, 3, cv::COLOR_Lab2BGR),
\r
721 CvtColorInfo(3, 3, cv::COLOR_Lab2RGB),
\r
722 CvtColorInfo(3, 3, cv::COLOR_Luv2BGR),
\r
723 CvtColorInfo(3, 3, cv::COLOR_Luv2RGB),
\r
724 CvtColorInfo(1, 3, cv::COLOR_BayerBG2BGR),
\r
725 CvtColorInfo(1, 3, cv::COLOR_BayerGB2BGR),
\r
726 CvtColorInfo(1, 3, cv::COLOR_BayerRG2BGR),
\r
727 CvtColorInfo(1, 3, cv::COLOR_BayerGR2BGR),
\r
728 CvtColorInfo(4, 4, cv::COLOR_RGBA2mRGBA))));
\r