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.
4 //
5 // Copyright (C) 2018 Intel Corporation
6 
7 
8 #include "../perf_precomp.hpp"
9 #include "../common/gapi_imgproc_perf_tests.hpp"
10 
11 #define IMGPROC_GPU cv::gapi::imgproc::gpu::kernels()
12 
13 namespace opencv_test
14 {
15 
16 
17 INSTANTIATE_TEST_CASE_P(SepFilterPerfTestGPU_8U, SepFilterPerfTest,
18                         Combine(Values(ToleranceFilter(1e-4f, 0.01).to_compare_f()),
19                                 Values(CV_8UC1, CV_8UC3),
20                                 Values(3),
21                                 Values(szVGA, sz720p, sz1080p),
22                                 Values(-1, CV_16S, CV_32F),
23                                 Values(cv::compile_args(IMGPROC_GPU))));
24 
25 INSTANTIATE_TEST_CASE_P(SepFilterPerfTestGPU_other, SepFilterPerfTest,
26                         Combine(Values(ToleranceFilter(1e-4f, 0.01).to_compare_f()),
27                                 Values(CV_16UC1, CV_16SC1, CV_32FC1),
28                                 Values(3),
29                                 Values(szVGA, sz720p, sz1080p),
30                                 Values(-1, CV_32F),
31                                 Values(cv::compile_args(IMGPROC_GPU))));
32 
33 
34 
35 INSTANTIATE_TEST_CASE_P(Filter2DPerfTestGPU, Filter2DPerfTest,
36                         Combine(Values(ToleranceFilter(1e-4f, 0.01).to_compare_f()),
37                                 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
38                                 Values(3, 4, 5, 7),
39                                 Values(szVGA, sz720p, sz1080p),
40                                 Values(cv::BORDER_DEFAULT),
41                                 Values(-1, CV_32F),
42                                 Values(cv::compile_args(IMGPROC_GPU))));
43 
44 INSTANTIATE_TEST_CASE_P(BoxFilterPerfTestGPU, BoxFilterPerfTest,
45                         Combine(Values(ToleranceFilter(1e-4f, 0.01).to_compare_f()),
46                                 Values(/*CV_8UC1,*/ CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
47                                 Values(3,5),
48                                 Values(szVGA, sz720p, sz1080p),
49                                 Values(cv::BORDER_DEFAULT),
50                                 Values(-1, CV_32F),
51                                 Values(cv::compile_args(IMGPROC_GPU)))); //TODO: 8UC1 doesn't work
52 
53 INSTANTIATE_TEST_CASE_P(BlurPerfTestGPU, BlurPerfTest,
54                         Combine(Values(ToleranceFilter(1e-4f, 0.01).to_compare_f()),
55                                 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
56                                 Values(3, 5),
57                                 Values(szVGA, sz720p, sz1080p),
58                                 Values(cv::BORDER_DEFAULT),
59                                 Values(cv::compile_args(IMGPROC_GPU))));
60 
61 INSTANTIATE_TEST_CASE_P(GaussianBlurPerfTestGPU, GaussianBlurPerfTest,
62                         Combine(Values(AbsSimilarPoints(1, 0.05).to_compare_f()), //TODO: too relaxed?
63                                 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
64                                 Values(3, 5),
65                                 Values(szVGA, sz720p, sz1080p),
66                                 Values(cv::compile_args(IMGPROC_GPU))));
67 
68 INSTANTIATE_TEST_CASE_P(MedianBlurPerfTestGPU, MedianBlurPerfTest,
69                          Combine(Values(AbsExact().to_compare_f()),
70                                  Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
71                                  Values(3, 5),
72                                  Values(szVGA, sz720p, sz1080p),
73                                  Values(cv::compile_args(IMGPROC_GPU))));
74 
75 INSTANTIATE_TEST_CASE_P(ErodePerfTestGPU, ErodePerfTest,
76                         Combine(Values(AbsExact().to_compare_f()),
77                                 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
78                                 Values(3, 5),
79                                 Values(szVGA, sz720p, sz1080p),
80                                 Values(cv::MorphShapes::MORPH_RECT,
81                                        cv::MorphShapes::MORPH_CROSS,
82                                        cv::MorphShapes::MORPH_ELLIPSE),
83                                 Values(cv::compile_args(IMGPROC_GPU))));
84 
85 INSTANTIATE_TEST_CASE_P(Erode3x3PerfTestGPU, Erode3x3PerfTest,
86                         Combine(Values(AbsExact().to_compare_f()),
87                                 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
88                                 Values(szVGA, sz720p, sz1080p),
89                                 Values(1,2,4),
90                                 Values(cv::compile_args(IMGPROC_GPU))));
91 
92 INSTANTIATE_TEST_CASE_P(DilatePerfTestGPU, DilatePerfTest,
93                         Combine(Values(AbsExact().to_compare_f()),
94                                 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
95                                 Values(3, 5),
96                                 Values(szVGA, sz720p, sz1080p),
97                                 Values(cv::MorphShapes::MORPH_RECT,
98                                        cv::MorphShapes::MORPH_CROSS,
99                                        cv::MorphShapes::MORPH_ELLIPSE),
100                                 Values(cv::compile_args(IMGPROC_GPU))));
101 
102 INSTANTIATE_TEST_CASE_P(Dilate3x3PerfTestGPU, Dilate3x3PerfTest,
103                         Combine(Values(AbsExact().to_compare_f()),
104                                 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
105                                 Values(szVGA, sz720p, sz1080p),
106                                 Values(1,2,4),
107                                 Values(cv::compile_args(IMGPROC_GPU))));
108 
109 INSTANTIATE_TEST_CASE_P(SobelPerfTestGPU, SobelPerfTest,
110                         Combine(Values(ToleranceFilter(1e-4f, 0.01).to_compare_f()),
111                                 Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1),
112                                 Values(3, 5),
113                                 Values(szVGA, sz720p, sz1080p),
114                                 Values(-1, CV_16S, CV_32F),
115                                 Values(0, 1),
116                                 Values(1, 2),
117                                 Values(cv::compile_args(IMGPROC_GPU))));
118 
119 INSTANTIATE_TEST_CASE_P(SobelPerfTestGPU32F, SobelPerfTest,
120                         Combine(Values(ToleranceFilter(1e-4f, 0.01).to_compare_f()),
121                                 Values(CV_32FC1),
122                                 Values(3, 5),
123                                 Values(szVGA, sz720p, sz1080p),
124                                 Values(CV_32F),
125                                 Values(0, 1),
126                                 Values(1, 2),
127                                 Values(cv::compile_args(IMGPROC_GPU))));
128 
129 INSTANTIATE_TEST_CASE_P(LaplacianPerfTestGPU, LaplacianPerfTest,
130                         Combine(Values(ToleranceFilter(1e-4f, 0.01).to_compare_f()),
131                                 Values(CV_8UC1, CV_8UC3),
132                                 Values(5),
133                                 Values(szVGA, sz720p, sz1080p),
134                                 Values(-1),
135                                 Values(cv::compile_args(IMGPROC_GPU))));
136 
137 INSTANTIATE_TEST_CASE_P(BilateralFilterPerfTestGPU, BilateralFilterPerfTest,
138                         Combine(Values(ToleranceFilter(1e-4f, 0.01).to_compare_f()),
139                                 Values(CV_32FC1, CV_32FC3),
140                                 Values(-1),
141                                 Values(szVGA, sz720p, sz1080p),
142                                 Values(5),
143                                 Values(100),
144                                 Values(40),
145                                 Values(cv::compile_args(IMGPROC_GPU))));
146 
147 INSTANTIATE_TEST_CASE_P(CannyPerfTestGPU, CannyPerfTest,
148                         Combine(Values(AbsSimilarPoints(1, 0.05).to_compare_f()),
149                                 Values(CV_8UC1, CV_8UC3),
150                                 Values(szVGA, sz720p, sz1080p),
151                                 Values(3.0, 120.0),
152                                 Values(125.0, 240.0),
153                                 Values(3, 5),
154                                 Values(true, false),
155                                 Values(cv::compile_args(IMGPROC_GPU))));
156 
157 INSTANTIATE_TEST_CASE_P(EqHistPerfTestGPU, EqHistPerfTest,
158                         Combine(Values(AbsExact().to_compare_f()),  // FIXIT unrealiable check
159                         Values(szVGA, sz720p, sz1080p),
160                         Values(cv::compile_args(IMGPROC_GPU))));
161 
162 INSTANTIATE_TEST_CASE_P(RGB2GrayPerfTestGPU, RGB2GrayPerfTest,
163                         Combine(Values(ToleranceColor(1e-3).to_compare_f()),
164                         Values(szVGA, sz720p, sz1080p),
165                         Values(cv::compile_args(IMGPROC_GPU))));
166 
167 INSTANTIATE_TEST_CASE_P(BGR2GrayPerfTestGPU, BGR2GrayPerfTest,
168                         Combine(Values(ToleranceColor(1e-3).to_compare_f()),
169                         Values(szVGA, sz720p, sz1080p),
170                         Values(cv::compile_args(IMGPROC_GPU))));
171 
172 INSTANTIATE_TEST_CASE_P(RGB2YUVPerfTestGPU, RGB2YUVPerfTest,
173                         Combine(Values(ToleranceColor(1e-3).to_compare_f()),
174                         Values(szVGA, sz720p, sz1080p),
175                         Values(cv::compile_args(IMGPROC_GPU))));
176 
177 INSTANTIATE_TEST_CASE_P(YUV2RGBPerfTestGPU, YUV2RGBPerfTest,
178                         Combine(Values(ToleranceColor(1e-3).to_compare_f()),
179                         Values(szVGA, sz720p, sz1080p),
180                         Values(cv::compile_args(IMGPROC_GPU))));
181 
182 INSTANTIATE_TEST_CASE_P(RGB2LabPerfTestGPU, RGB2LabPerfTest,
183                         Combine(Values(AbsSimilarPoints(1, 0.05).to_compare_f()),
184                         Values(szVGA, sz720p, sz1080p),
185                         Values(cv::compile_args(IMGPROC_GPU))));
186 
187 INSTANTIATE_TEST_CASE_P(BGR2LUVPerfTestGPU, BGR2LUVPerfTest,
188                         Combine(Values(AbsSimilarPoints(1, 0.05).to_compare_f()),
189                         Values(szVGA, sz720p, sz1080p),
190                         Values(cv::compile_args(IMGPROC_GPU))));
191 
192 INSTANTIATE_TEST_CASE_P(LUV2BGRPerfTestGPU, LUV2BGRPerfTest,
193                         Combine(Values(ToleranceColor(1e-3).to_compare_f()),
194                         Values(szVGA, sz720p, sz1080p),
195                         Values(cv::compile_args(IMGPROC_GPU))));
196 
197 INSTANTIATE_TEST_CASE_P(BGR2YUVPerfTestGPU, BGR2YUVPerfTest,
198                         Combine(Values(ToleranceColor(1e-3).to_compare_f()),
199                         Values(szVGA, sz720p, sz1080p),
200                         Values(cv::compile_args(IMGPROC_GPU))));
201 
202 INSTANTIATE_TEST_CASE_P(YUV2BGRPerfTestGPU, YUV2BGRPerfTest,
203                         Combine(Values(ToleranceColor(1e-3).to_compare_f()),
204                         Values(szVGA, sz720p, sz1080p),
205                         Values(cv::compile_args(IMGPROC_GPU))));
206 
207 }
208