gapi_imgproc_tests_gpu.cpp 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  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-2019 Intel Corporation
  6. #include "../test_precomp.hpp"
  7. #include "../common/gapi_imgproc_tests.hpp"
  8. namespace
  9. {
  10. #define IMGPROC_GPU [] () { return cv::compile_args(cv::gapi::use_only{cv::gapi::imgproc::gpu::kernels()}); }
  11. const std::vector <cv::Size> in_sizes{ cv::Size(1280, 720), cv::Size(128, 128) };
  12. } // anonymous namespace
  13. namespace opencv_test
  14. {
  15. INSTANTIATE_TEST_CASE_P(ResizeTestGPU, ResizeTest,
  16. Combine(Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
  17. ValuesIn(in_sizes),
  18. Values(-1),
  19. Values(IMGPROC_GPU),
  20. Values(AbsSimilarPoints(2, 0.05).to_compare_obj()),
  21. Values(cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_AREA),
  22. Values(cv::Size(64,64),
  23. cv::Size(30,30))));
  24. INSTANTIATE_TEST_CASE_P(ResizeTestGPU, ResizeTestFxFy,
  25. Combine(Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
  26. ValuesIn(in_sizes),
  27. Values(-1),
  28. Values(IMGPROC_GPU),
  29. Values(AbsSimilarPoints(2, 0.05).to_compare_obj()),
  30. Values(cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_AREA),
  31. Values(0.5, 0.1),
  32. Values(0.5, 0.1)));
  33. INSTANTIATE_TEST_CASE_P(Filter2DTestGPU, Filter2DTest,
  34. Combine(Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
  35. ValuesIn(in_sizes),
  36. Values(-1, CV_32F),
  37. Values(IMGPROC_GPU),
  38. Values(Tolerance_FloatRel_IntAbs(1e-5, 2).to_compare_obj()),
  39. Values(cv::Size(3, 3),
  40. cv::Size(4, 4),
  41. cv::Size(5, 5),
  42. cv::Size(7, 7)),
  43. Values(cv::BORDER_DEFAULT)));
  44. INSTANTIATE_TEST_CASE_P(BoxFilterTestGPU, BoxFilterTest,
  45. Combine(Values(/*CV_8UC1,*/ CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
  46. Values(cv::Size(1280, 720)),
  47. Values(-1, CV_32F),
  48. Values(IMGPROC_GPU),
  49. Values(Tolerance_FloatRel_IntAbs(1e-5, 2).to_compare_obj()),
  50. Values(3,5),
  51. Values(cv::BORDER_DEFAULT))); //TODO: 8UC1 doesn't work
  52. INSTANTIATE_TEST_CASE_P(SepFilterTestGPU_8U, SepFilterTest,
  53. Combine(Values(CV_8UC1, CV_8UC3),
  54. Values(cv::Size(1280, 720)),
  55. Values(-1, CV_16S, CV_32F),
  56. Values(IMGPROC_GPU),
  57. Values(ToleranceFilter(1e-4f, 0.01).to_compare_obj()),
  58. Values(3)));
  59. INSTANTIATE_TEST_CASE_P(SepFilterTestGPU_other, SepFilterTest,
  60. Combine(Values(CV_16UC1, CV_16SC1, CV_32FC1),
  61. Values(cv::Size(1280, 720)),
  62. Values(-1, CV_32F),
  63. Values(IMGPROC_GPU),
  64. Values(ToleranceFilter(1e-4f, 0.01).to_compare_obj()),
  65. Values(3)));
  66. INSTANTIATE_TEST_CASE_P(BlurTestGPU, BlurTest,
  67. Combine(Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
  68. Values(cv::Size(1280, 720)),
  69. Values(-1),
  70. Values(IMGPROC_GPU),
  71. Values(Tolerance_FloatRel_IntAbs(1e-4, 2).to_compare_obj()),
  72. Values(3,5),
  73. Values(cv::BORDER_DEFAULT)));
  74. INSTANTIATE_TEST_CASE_P(gaussBlurTestGPU, GaussianBlurTest,
  75. Combine(Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
  76. Values(cv::Size(1280, 720)),
  77. Values(-1),
  78. Values(IMGPROC_GPU),
  79. Values(ToleranceFilter(1e-5f, 0.01).to_compare_obj()),
  80. Values(3))); // FIXIT 5
  81. INSTANTIATE_TEST_CASE_P(MedianBlurTestGPU, MedianBlurTest,
  82. Combine(Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
  83. Values(cv::Size(1280, 720)),
  84. Values(-1),
  85. Values(IMGPROC_GPU),
  86. Values(AbsExact().to_compare_obj()),
  87. Values(3, 5)));
  88. INSTANTIATE_TEST_CASE_P(ErodeTestGPU, ErodeTest,
  89. Combine(Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
  90. Values(cv::Size(1280, 720)),
  91. Values(-1),
  92. Values(IMGPROC_GPU),
  93. Values(AbsExact().to_compare_obj()),
  94. Values(3, 5),
  95. Values(cv::MorphShapes::MORPH_RECT,
  96. cv::MorphShapes::MORPH_CROSS,
  97. cv::MorphShapes::MORPH_ELLIPSE)));
  98. INSTANTIATE_TEST_CASE_P(Erode3x3TestGPU, Erode3x3Test,
  99. Combine(Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
  100. Values(cv::Size(1280, 720)),
  101. Values(-1),
  102. Values(IMGPROC_GPU),
  103. Values(AbsExact().to_compare_obj()),
  104. Values(1,2,4)));
  105. INSTANTIATE_TEST_CASE_P(DilateTestGPU, DilateTest,
  106. Combine(Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
  107. Values(cv::Size(1280, 720)),
  108. Values(-1),
  109. Values(IMGPROC_GPU),
  110. Values(AbsExact().to_compare_obj()),
  111. Values(3, 5),
  112. Values(cv::MorphShapes::MORPH_RECT,
  113. cv::MorphShapes::MORPH_CROSS,
  114. cv::MorphShapes::MORPH_ELLIPSE)));
  115. INSTANTIATE_TEST_CASE_P(Dilate3x3TestGPU, Dilate3x3Test,
  116. Combine(Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1),
  117. Values(cv::Size(1280, 720)),
  118. Values(-1),
  119. Values(IMGPROC_GPU),
  120. Values(AbsExact().to_compare_obj()),
  121. Values(1,2,4)));
  122. INSTANTIATE_TEST_CASE_P(SobelTestGPU, SobelTest,
  123. Combine(Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1),
  124. Values(cv::Size(1280, 720)),
  125. Values(-1, CV_16S, CV_32F),
  126. Values(IMGPROC_GPU),
  127. Values(Tolerance_FloatRel_IntAbs(1e-4, 2).to_compare_obj()),
  128. Values(3, 5),
  129. Values(0, 1),
  130. Values(1, 2)));
  131. INSTANTIATE_TEST_CASE_P(SobelTestGPU32F, SobelTest,
  132. Combine(Values(CV_32FC1),
  133. Values(cv::Size(1280, 720)),
  134. Values(CV_32F),
  135. Values(IMGPROC_GPU),
  136. Values(Tolerance_FloatRel_IntAbs(1e-4, 2).to_compare_obj()),
  137. Values(3, 5),
  138. Values(0, 1),
  139. Values(1, 2)));
  140. INSTANTIATE_TEST_CASE_P(LaplacianTestGPU, LaplacianTest,
  141. Combine(Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1),
  142. Values(cv::Size(1280, 720)),
  143. Values(-1),
  144. Values(IMGPROC_GPU),
  145. Values(Tolerance_FloatRel_IntAbs(1e-4, 2).to_compare_obj()),
  146. Values(5),
  147. Values(3.0),
  148. Values(BORDER_DEFAULT)));
  149. INSTANTIATE_TEST_CASE_P(BilateralFilterTestGPU, BilateralFilterTest,
  150. Combine(Values(CV_32FC1, CV_32FC3, CV_8UC1, CV_8UC3),
  151. Values(cv::Size(1280, 720)),
  152. Values(-1),
  153. Values(IMGPROC_GPU),
  154. Values(Tolerance_FloatRel_IntAbs(1e-4, 2).to_compare_obj()),
  155. Values(9),
  156. Values(100),
  157. Values(40),
  158. Values(BORDER_DEFAULT)));
  159. INSTANTIATE_TEST_CASE_P(EqHistTestGPU, EqHistTest,
  160. Combine(Values(CV_8UC1),
  161. Values(cv::Size(1280, 720)),
  162. Values(-1),
  163. Values(IMGPROC_GPU),
  164. Values(AbsExact().to_compare_obj()))); // FIXIT Non reliable check
  165. INSTANTIATE_TEST_CASE_P(CannyTestGPU, CannyTest,
  166. Combine(Values(CV_8UC1, CV_8UC3),
  167. Values(cv::Size(1280, 720)),
  168. Values(CV_8UC1),
  169. Values(IMGPROC_GPU),
  170. Values(AbsSimilarPoints(0, 0.05).to_compare_obj()),
  171. Values(3.0, 120.0),
  172. Values(125.0, 240.0),
  173. Values(3, 5),
  174. testing::Bool()));
  175. INSTANTIATE_TEST_CASE_P(RGB2GrayTestGPU, RGB2GrayTest,
  176. Combine(Values(CV_8UC3),
  177. Values(cv::Size(1280, 720)),
  178. Values(CV_8UC1),
  179. Values(IMGPROC_GPU),
  180. Values(ToleranceColor(1e-3).to_compare_obj())));
  181. INSTANTIATE_TEST_CASE_P(BGR2GrayTestGPU, BGR2GrayTest,
  182. Combine(Values(CV_8UC3),
  183. Values(cv::Size(1280, 720)),
  184. Values(CV_8UC1),
  185. Values(IMGPROC_GPU),
  186. Values(ToleranceColor(1e-3).to_compare_obj())));
  187. INSTANTIATE_TEST_CASE_P(RGB2YUVTestGPU, RGB2YUVTest,
  188. Combine(Values(CV_8UC3),
  189. Values(cv::Size(1280, 720)),
  190. Values(CV_8UC3),
  191. Values(IMGPROC_GPU),
  192. Values(ToleranceColor(1e-3).to_compare_obj())));
  193. INSTANTIATE_TEST_CASE_P(YUV2RGBTestGPU, YUV2RGBTest,
  194. Combine(Values(CV_8UC3),
  195. Values(cv::Size(1280, 720)),
  196. Values(CV_8UC3),
  197. Values(IMGPROC_GPU),
  198. Values(ToleranceColor(1e-3).to_compare_obj())));
  199. INSTANTIATE_TEST_CASE_P(RGB2LabTestGPU, RGB2LabTest,
  200. Combine(Values(CV_8UC3),
  201. Values(cv::Size(1280, 720)),
  202. Values(CV_8UC3),
  203. Values(IMGPROC_GPU),
  204. Values(AbsSimilarPoints(1, 0.05).to_compare_obj())));
  205. INSTANTIATE_TEST_CASE_P(BGR2LUVTestGPU, BGR2LUVTest,
  206. Combine(Values(CV_8UC3),
  207. Values(cv::Size(1280, 720)),
  208. Values(CV_8UC3),
  209. Values(IMGPROC_GPU),
  210. Values(ToleranceColor(5e-3, 6).to_compare_obj())));
  211. INSTANTIATE_TEST_CASE_P(LUV2BGRTestGPU, LUV2BGRTest,
  212. Combine(Values(CV_8UC3),
  213. Values(cv::Size(1280, 720)),
  214. Values(CV_8UC3),
  215. Values(IMGPROC_GPU),
  216. Values(ToleranceColor(1e-3).to_compare_obj())));
  217. INSTANTIATE_TEST_CASE_P(BGR2YUVTestGPU, BGR2YUVTest,
  218. Combine(Values(CV_8UC3),
  219. Values(cv::Size(1280, 720)),
  220. Values(CV_8UC3),
  221. Values(IMGPROC_GPU),
  222. Values(ToleranceColor(1e-3).to_compare_obj())));
  223. INSTANTIATE_TEST_CASE_P(YUV2BGRTestGPU, YUV2BGRTest,
  224. Combine(Values(CV_8UC3),
  225. Values(cv::Size(1280, 720)),
  226. Values(CV_8UC3),
  227. Values(IMGPROC_GPU),
  228. Values(ToleranceColor(1e-3).to_compare_obj())));
  229. } // opencv_test