gapi_imgproc_tests_fluid.cpp 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  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_FLUID [] () { return cv::compile_args(cv::gapi::use_only{cv::gapi::imgproc::fluid::kernels()}); }
  11. } // anonymous namespace
  12. namespace opencv_test
  13. {
  14. INSTANTIATE_TEST_CASE_P(ResizeTestFluid, ResizeTest,
  15. Combine(Values(CV_8UC3/*CV_8UC1, CV_16UC1, CV_16SC1*/),
  16. Values(cv::Size(1280, 720),
  17. cv::Size(640, 480),
  18. cv::Size(128, 128),
  19. cv::Size(64, 64),
  20. cv::Size(30, 30)),
  21. Values(-1),
  22. Values(IMGPROC_FLUID),
  23. Values(Tolerance_FloatRel_IntAbs(1e-5, 1).to_compare_obj()),
  24. Values(/*cv::INTER_NEAREST,*/ cv::INTER_LINEAR/*, cv::INTER_AREA*/),
  25. Values(cv::Size(1280, 720),
  26. cv::Size(640, 480),
  27. cv::Size(128, 128),
  28. cv::Size(64, 64),
  29. cv::Size(30, 30))));
  30. INSTANTIATE_TEST_CASE_P(ResizeTestFxFyFluid, ResizeTestFxFy,
  31. Combine(Values(CV_8UC3/*CV_8UC1, CV_16UC1, CV_16SC1*/),
  32. Values(cv::Size(1280, 720),
  33. cv::Size(640, 480),
  34. cv::Size(128, 128),
  35. cv::Size(64, 64),
  36. cv::Size(30, 30)),
  37. Values(-1),
  38. Values(IMGPROC_FLUID),
  39. Values(Tolerance_FloatRel_IntAbs(1e-5, 1).to_compare_obj()),
  40. Values(/*cv::INTER_NEAREST,*/ cv::INTER_LINEAR/*, cv::INTER_AREA*/),
  41. Values(0.5, 1, 2),
  42. Values(0.5, 1, 2)));
  43. INSTANTIATE_TEST_CASE_P(RGB2GrayTestFluid, RGB2GrayTest,
  44. Combine(Values(CV_8UC3),
  45. Values(cv::Size(1280, 720),
  46. cv::Size(640, 480)),
  47. Values(CV_8UC1),
  48. Values(IMGPROC_FLUID),
  49. Values(ToleranceColor(1e-3).to_compare_obj())));
  50. INSTANTIATE_TEST_CASE_P(BGR2GrayTestFluid, BGR2GrayTest,
  51. Combine(Values(CV_8UC3),
  52. Values(cv::Size(1280, 720),
  53. cv::Size(640, 480)),
  54. Values(CV_8UC1),
  55. Values(IMGPROC_FLUID),
  56. Values(ToleranceColor(1e-3).to_compare_obj())));
  57. INSTANTIATE_TEST_CASE_P(RGB2YUVTestFluid, RGB2YUVTest,
  58. Combine(Values(CV_8UC3),
  59. Values(cv::Size(1280, 720),
  60. cv::Size(640, 480)),
  61. Values(CV_8UC3),
  62. Values(IMGPROC_FLUID),
  63. Values(ToleranceColor(1e-3).to_compare_obj())));
  64. INSTANTIATE_TEST_CASE_P(YUV2RGBTestFluid, YUV2RGBTest,
  65. Combine(Values(CV_8UC3),
  66. Values(cv::Size(1280, 720),
  67. cv::Size(640, 480)),
  68. Values(CV_8UC3),
  69. Values(IMGPROC_FLUID),
  70. Values(ToleranceColor(1e-3).to_compare_obj())));
  71. INSTANTIATE_TEST_CASE_P(RGB2LabTestFluid, RGB2LabTest,
  72. Combine(Values(CV_8UC3),
  73. Values(cv::Size(1280, 720),
  74. cv::Size(640, 480)),
  75. Values(CV_8UC3),
  76. Values(IMGPROC_FLUID),
  77. Values(AbsSimilarPoints(1, 0.05).to_compare_obj())));
  78. // FIXME: Not supported by Fluid yet (no kernel implemented)
  79. INSTANTIATE_TEST_CASE_P(BGR2LUVTestFluid, BGR2LUVTest,
  80. Combine(Values(CV_8UC3),
  81. Values(cv::Size(1280, 720),
  82. cv::Size(640, 480)),
  83. Values(CV_8UC3),
  84. Values(IMGPROC_FLUID),
  85. Values(ToleranceColor(5e-3, 6).to_compare_obj())));
  86. INSTANTIATE_TEST_CASE_P(RGB2HSVTestFluid, RGB2HSVTest,
  87. Combine(Values(CV_8UC3),
  88. Values(cv::Size(1280, 720),
  89. cv::Size(640, 480)),
  90. Values(CV_8UC3),
  91. Values(IMGPROC_FLUID),
  92. Values(ToleranceColor(1e-3).to_compare_obj())));
  93. INSTANTIATE_TEST_CASE_P(BayerGR2RGBTestFluid, BayerGR2RGBTest,
  94. Combine(Values(CV_8UC1),
  95. Values(cv::Size(1280, 720),
  96. cv::Size(640, 480)),
  97. Values(CV_8UC3),
  98. Values(IMGPROC_FLUID),
  99. Values(ToleranceColor(1e-3).to_compare_obj())));
  100. INSTANTIATE_TEST_CASE_P(RGB2YUV422TestFluid, RGB2YUV422Test,
  101. Combine(Values(CV_8UC3),
  102. Values(cv::Size(1280, 720),
  103. cv::Size(640, 480)),
  104. Values(CV_8UC2),
  105. Values(IMGPROC_FLUID),
  106. Values(AbsTolerance(1).to_compare_obj())));
  107. INSTANTIATE_TEST_CASE_P(blurTestFluid, BlurTest,
  108. Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
  109. Values(cv::Size(1280, 720),
  110. cv::Size(640, 480)),
  111. Values(-1),
  112. Values(IMGPROC_FLUID),
  113. Values(ToleranceFilter(1e-4f, 0.01).to_compare_obj()),
  114. Values(3), // add kernel size=5 when implementation is ready
  115. Values(cv::BORDER_DEFAULT)));
  116. INSTANTIATE_TEST_CASE_P(gaussBlurTestFluid, GaussianBlurTest,
  117. Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
  118. Values(cv::Size(1280, 720),
  119. cv::Size(640, 480)),
  120. Values(-1),
  121. Values(IMGPROC_FLUID),
  122. Values(ToleranceFilter(1e-3f, 0.01).to_compare_obj()),
  123. Values(3, 5)));
  124. INSTANTIATE_TEST_CASE_P(medianBlurTestFluid, MedianBlurTest,
  125. Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
  126. Values(cv::Size(1280, 720),
  127. cv::Size(640, 480)),
  128. Values(-1),
  129. Values(IMGPROC_FLUID),
  130. Values(AbsExact().to_compare_obj()),
  131. Values(3))); // add kernel size=5 when implementation is ready
  132. INSTANTIATE_TEST_CASE_P(erodeTestFluid, ErodeTest,
  133. Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
  134. Values(cv::Size(1280, 720),
  135. cv::Size(640, 480)),
  136. Values(-1),
  137. Values(IMGPROC_FLUID),
  138. Values(AbsExact().to_compare_obj()),
  139. Values(3), // add kernel size=5 when implementation is ready
  140. Values(cv::MorphShapes::MORPH_RECT,
  141. cv::MorphShapes::MORPH_CROSS,
  142. cv::MorphShapes::MORPH_ELLIPSE)));
  143. INSTANTIATE_TEST_CASE_P(dilateTestFluid, DilateTest,
  144. Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
  145. Values(cv::Size(1280, 720),
  146. cv::Size(640, 480)),
  147. Values(-1),
  148. Values(IMGPROC_FLUID),
  149. Values(AbsExact().to_compare_obj()),
  150. Values(3), // add kernel size=5 when implementation is ready
  151. Values(cv::MorphShapes::MORPH_RECT,
  152. cv::MorphShapes::MORPH_CROSS,
  153. cv::MorphShapes::MORPH_ELLIPSE)));
  154. INSTANTIATE_TEST_CASE_P(SobelTestFluid, SobelTest,
  155. Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
  156. Values(cv::Size(1280, 720),
  157. cv::Size(640, 480)),
  158. Values(-1, CV_16S, CV_32F),
  159. Values(IMGPROC_FLUID),
  160. Values(AbsExact().to_compare_obj()),
  161. Values(3), // add kernel size=5 when implementation is ready
  162. Values(0, 1),
  163. Values(1, 2)));
  164. INSTANTIATE_TEST_CASE_P(SobelTestFluid32F, SobelTest,
  165. Combine(Values(CV_32FC1),
  166. Values(cv::Size(1280, 720),
  167. cv::Size(640, 480)),
  168. Values(CV_32F),
  169. Values(IMGPROC_FLUID),
  170. Values(ToleranceFilter(1e-4f, 0.01).to_compare_obj()),
  171. Values(3), // add kernel size=5 when implementation is ready
  172. Values(0, 1),
  173. Values(1, 2)));
  174. INSTANTIATE_TEST_CASE_P(SobelXYTestFluid, SobelXYTest,
  175. Combine(Values(CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1),
  176. Values(cv::Size(1280, 720),
  177. cv::Size(640, 480)),
  178. Values(-1, CV_16S, CV_32F),
  179. Values(IMGPROC_FLUID),
  180. Values(AbsExact().to_compare_obj()),
  181. Values(3),
  182. Values(1, 2),
  183. Values(BORDER_CONSTANT, BORDER_REPLICATE, BORDER_REFLECT_101),
  184. Values(0, 1, 255)));
  185. INSTANTIATE_TEST_CASE_P(SobelXYTestFluid32F, SobelXYTest,
  186. Combine(Values(CV_32FC1),
  187. Values(cv::Size(1280, 720),
  188. cv::Size(640, 480)),
  189. Values(CV_32F),
  190. Values(IMGPROC_FLUID),
  191. Values(ToleranceFilter(1e-4f, 0.01).to_compare_obj()),
  192. Values(3),
  193. Values(1, 2),
  194. Values(BORDER_CONSTANT, BORDER_REPLICATE, BORDER_REFLECT_101),
  195. Values(0, 1, 255)));
  196. INSTANTIATE_TEST_CASE_P(boxFilterTestFluid32, BoxFilterTest,
  197. Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
  198. Values(cv::Size(1280, 720),
  199. cv::Size(640, 480)),
  200. Values(-1, CV_32F),
  201. Values(IMGPROC_FLUID),
  202. Values(ToleranceFilter(1e-4f, 0.01).to_compare_obj()),
  203. Values(3), // add kernel size=5 when implementation is ready
  204. Values(cv::BORDER_DEFAULT)));
  205. INSTANTIATE_TEST_CASE_P(sepFilterTestFluid, SepFilterTest,
  206. Combine(Values(CV_32FC1),
  207. Values(cv::Size(1280, 720),
  208. cv::Size(640, 480)),
  209. Values(-1, CV_32F),
  210. Values(IMGPROC_FLUID),
  211. Values(ToleranceFilter(1e-4f, 0.01).to_compare_obj()),
  212. Values(3))); // add kernel size=5 when implementation is ready
  213. INSTANTIATE_TEST_CASE_P(filter2DTestFluid, Filter2DTest,
  214. Combine(Values(CV_8UC1, CV_16UC1, CV_16SC1),
  215. Values(cv::Size(1280, 720),
  216. cv::Size(640, 480),
  217. cv::Size(128, 128)),
  218. Values(-1, CV_32F),
  219. Values(IMGPROC_FLUID),
  220. Values(ToleranceFilter(1e-4f, 0.01).to_compare_obj()),
  221. Values(cv::Size(3, 3)), // add kernel size=4x4,5x5,7x7 when implementation ready
  222. Values(cv::BORDER_DEFAULT)));
  223. } // opencv_test