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_FLUID cv::gapi::imgproc::fluid::kernels()
12 
13 namespace opencv_test
14 {
15 
16 INSTANTIATE_TEST_CASE_P(SepFilterPerfTestFluid_8U, SepFilterPerfTest,
17     Combine(Values(ToleranceFilter(1e-4f, 0.01).to_compare_f()),
18             Values(CV_8UC1, CV_8UC3),
19             Values(3),
20             Values(szVGA, sz720p, sz1080p),
21             Values(-1, CV_16S, CV_32F),
22             Values(cv::compile_args(IMGPROC_FLUID))));
23 
24 INSTANTIATE_TEST_CASE_P(SepFilterPerfTestFluid_other, SepFilterPerfTest,
25     Combine(Values(ToleranceFilter(1e-4f, 0.01).to_compare_f()),
26             Values(CV_16UC1, CV_16SC1, CV_32FC1),
27             Values(3),
28             Values(szVGA, sz720p, sz1080p),
29             Values(-1, CV_32F),
30             Values(cv::compile_args(IMGPROC_FLUID))));
31 
32 INSTANTIATE_TEST_CASE_P(Filter2DPerfTestFluid, Filter2DPerfTest,
33     Combine(Values(ToleranceFilter(1e-4f, 0.01).to_compare_f()),
34             Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
35             Values(3),                                     // TODO: add 4, 5, 7 when kernel is ready
36             Values(szVGA, sz720p, sz1080p),
37             Values(cv::BORDER_DEFAULT),
38             Values(-1, CV_32F),
39             Values(cv::compile_args(IMGPROC_FLUID))));
40 
41 INSTANTIATE_TEST_CASE_P(BoxFilterPerfTestFluid, BoxFilterPerfTest,
42     Combine(Values(ToleranceFilter(1e-4f, 0.01).to_compare_f()),
43             Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
44             Values(3),                                     // TODO: add size=5, when kernel is ready
45             Values(szVGA, sz720p, sz1080p),
46             Values(cv::BORDER_DEFAULT),
47             Values(-1, CV_32F),
48             Values(cv::compile_args(IMGPROC_FLUID))));
49 
50 INSTANTIATE_TEST_CASE_P(BlurPerfTestFluid, BlurPerfTest,
51     Combine(Values(ToleranceFilter(1e-4f, 0.01).to_compare_f()),
52             Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
53             Values(3),                                     // TODO: add size=5, when kernel is ready
54             Values(szVGA, sz720p, sz1080p),
55             Values(cv::BORDER_DEFAULT),
56             Values(cv::compile_args(IMGPROC_FLUID))));
57 
58 INSTANTIATE_TEST_CASE_P(GaussianBlurPerfTestFluid, GaussianBlurPerfTest,
59     Combine(Values(ToleranceFilter(1e-3f, 0.01).to_compare_f()),
60             Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
61             Values(3, 5),
62             Values(szVGA, sz720p, sz1080p),
63             Values(cv::compile_args(IMGPROC_FLUID))));
64 
65 INSTANTIATE_TEST_CASE_P(MedianBlurPerfTestFluid, MedianBlurPerfTest,
66     Combine(Values(AbsExact().to_compare_f()),
67             Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
68             Values(3),                                     // TODO: add size=5, when kernel is ready
69             Values(szVGA, sz720p, sz1080p),
70             Values(cv::compile_args(IMGPROC_FLUID))));
71 
72 INSTANTIATE_TEST_CASE_P(ErodePerfTestFluid, ErodePerfTest,
73     Combine(Values(AbsExact().to_compare_f()),
74             Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
75             Values(3),                                     // TODO: add size=5, when kernel is ready
76             Values(szVGA, sz720p, sz1080p),
77             Values(cv::MorphShapes::MORPH_RECT,
78                    cv::MorphShapes::MORPH_CROSS,
79                    cv::MorphShapes::MORPH_ELLIPSE),
80             Values(cv::compile_args(IMGPROC_FLUID))));
81 
82 // GAPI/fluid does not support iterations parameter for the Erode kernel
83 INSTANTIATE_TEST_CASE_P(DISABLED_Erode3x3PerfTestFluid, Erode3x3PerfTest,
84     Combine(Values(AbsExact().to_compare_f()),
85             Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
86             Values(szVGA, sz720p, sz1080p),
87             Values(1, 2, 4),
88             Values(cv::compile_args(IMGPROC_FLUID))));
89 
90 INSTANTIATE_TEST_CASE_P(DilatePerfTestFluid, DilatePerfTest,
91     Combine(Values(AbsExact().to_compare_f()),
92             Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
93             Values(3),                                     // TODO: add size=5, when kernel is ready
94             Values(szVGA, sz720p, sz1080p),
95             Values(cv::MorphShapes::MORPH_RECT,
96                    cv::MorphShapes::MORPH_CROSS,
97                    cv::MorphShapes::MORPH_ELLIPSE),
98             Values(cv::compile_args(IMGPROC_FLUID))));
99 
100 // GAPI/fluid does not support iterations parameter for the Dilate kernel
101 INSTANTIATE_TEST_CASE_P(DISABLED_Dilate3x3PerfTestFluid, Dilate3x3PerfTest,
102     Combine(Values(AbsExact().to_compare_f()),
103             Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
104             Values(szVGA, sz720p, sz1080p),
105             Values(1, 2, 4),
106             Values(cv::compile_args(IMGPROC_FLUID))));
107 
108 INSTANTIATE_TEST_CASE_P(SobelPerfTestFluid, SobelPerfTest,
109     Combine(Values(AbsExact().to_compare_f()),
110             Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1),
111             Values(3),                                     // TODO: add 5x5 once supported
112             Values(szVGA, sz720p, sz1080p),
113             Values(-1, CV_16S, CV_32F),
114             Values(0, 1),
115             Values(1, 2),
116             Values(cv::compile_args(IMGPROC_FLUID))));
117 
118 INSTANTIATE_TEST_CASE_P(SobelPerfTestFluid32F, SobelPerfTest,
119     Combine(Values(ToleranceFilter(1e-3f, 0.0).to_compare_f()),
120             Values(CV_32FC1),
121             Values(3),                                     // TODO: add 5x5 once supported
122             Values(szVGA, sz720p, sz1080p),
123             Values(CV_32F),
124             Values(0, 1),
125             Values(1, 2),
126             Values(cv::compile_args(IMGPROC_FLUID))));
127 
128 INSTANTIATE_TEST_CASE_P(SobelXYPerfTestFluid, SobelXYPerfTest,
129     Combine(Values(AbsExact().to_compare_f()),
130             Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1),
131             Values(3),                                     // TODO: add 5x5 once supported
132             Values(szVGA, sz720p, sz1080p),
133             Values(-1, CV_16S, CV_32F),
134             Values(1, 2),
135             Values(cv::compile_args(IMGPROC_FLUID))));
136 
137 INSTANTIATE_TEST_CASE_P(SobelXYPerfTestFluid32F, SobelXYPerfTest,
138     Combine(Values(ToleranceFilter(1e-3f, 0.0).to_compare_f()),
139             Values(CV_32FC1),
140             Values(3),                                     // TODO: add 5x5 once supported
141             Values(szVGA, sz720p, sz1080p),
142             Values(CV_32F),
143             Values(1, 2),
144             Values(cv::compile_args(IMGPROC_FLUID))));
145 
146 INSTANTIATE_TEST_CASE_P(RGB2GrayPerfTestFluid, RGB2GrayPerfTest,
147     Combine(Values(ToleranceColor(1e-3).to_compare_f()),
148             Values(szVGA, sz720p, sz1080p),
149             Values(cv::compile_args(IMGPROC_FLUID))));
150 
151 INSTANTIATE_TEST_CASE_P(BGR2GrayPerfTestFluid, BGR2GrayPerfTest,
152     Combine(Values(ToleranceColor(1e-3).to_compare_f()),
153             Values(szVGA, sz720p, sz1080p),
154             Values(cv::compile_args(IMGPROC_FLUID))));
155 
156 INSTANTIATE_TEST_CASE_P(RGB2YUVPerfTestFluid, RGB2YUVPerfTest,
157     Combine(Values(ToleranceColor(1e-3).to_compare_f()),
158             Values(szVGA, sz720p, sz1080p),
159             Values(cv::compile_args(IMGPROC_FLUID))));
160 
161 INSTANTIATE_TEST_CASE_P(YUV2RGBPerfTestFluid, YUV2RGBPerfTest,
162     Combine(Values(ToleranceColor(1e-3).to_compare_f()),
163             Values(szVGA, sz720p, sz1080p),
164             Values(cv::compile_args(IMGPROC_FLUID))));
165 
166 INSTANTIATE_TEST_CASE_P(BGR2YUVPerfTestFluid, BGR2YUVPerfTest,
167     Combine(Values(ToleranceColor(1e-3).to_compare_f()),
168             Values(szVGA, sz720p, sz1080p),
169             Values(cv::compile_args(IMGPROC_FLUID))));
170 
171 INSTANTIATE_TEST_CASE_P(YUV2BGRPerfTestFluid, YUV2BGRPerfTest,
172     Combine(Values(ToleranceColor(1e-3).to_compare_f()),
173             Values(szVGA, sz720p, sz1080p),
174             Values(cv::compile_args(IMGPROC_FLUID))));
175 
176 INSTANTIATE_TEST_CASE_P(BayerGR2RGBPerfTestFluid, BayerGR2RGBPerfTest,
177         Combine(Values(ToleranceColor(1e-3).to_compare_f()),
178             Values(szVGA, sz720p, sz1080p),
179             Values(cv::compile_args(IMGPROC_FLUID))));
180 
181 INSTANTIATE_TEST_CASE_P(RGB2YUV422PerfTestFluid, RGB2YUV422PerfTest,
182         Combine(Values(ToleranceColor(1e-3).to_compare_f()),
183             Values(szVGA, sz720p, sz1080p),
184             Values(cv::compile_args(IMGPROC_FLUID))));
185 
186 INSTANTIATE_TEST_CASE_P(RGB2HSVPerfTestFluid, RGB2HSVPerfTest,
187         Combine(Values(ToleranceColor(1e-3).to_compare_f()),
188             Values(szVGA, sz720p, sz1080p),
189             Values(cv::compile_args(IMGPROC_FLUID))));
190 
191 INSTANTIATE_TEST_CASE_P(BGR2LUVPerfTestFluid, BGR2LUVPerfTest,
192     Combine(Values(AbsSimilarPoints(1, 0.05).to_compare_f()),
193             Values(szVGA, sz720p, sz1080p),
194             Values(cv::compile_args(IMGPROC_FLUID))));
195 
196 INSTANTIATE_TEST_CASE_P(RGB2LabPerfTestFluid, RGB2LabPerfTest,
197     Combine(Values(AbsSimilarPoints(1, 0.05).to_compare_f()),
198             Values(szVGA, sz720p, sz1080p),
199             Values(cv::compile_args(IMGPROC_FLUID))));
200 
201 }
202