gapi_imgproc_tests_fluid.cpp 11 KB

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