6 from tests_common import NewOpenCVTests
9 # Plaidml is an optional backend
11 cv.gapi.core.ocl.kernels(),
12 cv.gapi.core.cpu.kernels(),
13 cv.gapi.core.fluid.kernels()
14 # cv.gapi.core.plaidml.kernels()
18 class gapi_core_test(NewOpenCVTests):
21 # TODO: Extend to use any type and size here
23 in1 = np.random.randint(0, 100, sz)
24 in2 = np.random.randint(0, 100, sz)
27 expected = cv.add(in1, in2)
32 g_out = cv.gapi.add(g_in1, g_in2)
33 comp = cv.GComputation(cv.GIn(g_in1, g_in2), cv.GOut(g_out))
36 actual = comp.apply(cv.gin(in1, in2), args=cv.compile_args(pkg))
38 self.assertEqual(0.0, cv.norm(expected, actual, cv.NORM_INF))
39 self.assertEqual(expected.dtype, actual.dtype)
42 def test_add_uint8(self):
44 in1 = np.random.randint(0, 100, sz).astype(np.uint8)
45 in2 = np.random.randint(0, 100, sz).astype(np.uint8)
48 expected = cv.add(in1, in2)
53 g_out = cv.gapi.add(g_in1, g_in2)
54 comp = cv.GComputation(cv.GIn(g_in1, g_in2), cv.GOut(g_out))
57 actual = comp.apply(cv.gin(in1, in2), args=cv.compile_args(pkg))
59 self.assertEqual(0.0, cv.norm(expected, actual, cv.NORM_INF))
60 self.assertEqual(expected.dtype, actual.dtype)
65 in_mat = np.random.randint(0, 100, sz)
68 expected = cv.mean(in_mat)
72 g_out = cv.gapi.mean(g_in)
73 comp = cv.GComputation(g_in, g_out)
76 actual = comp.apply(cv.gin(in_mat), args=cv.compile_args(pkg))
78 self.assertEqual(0.0, cv.norm(expected, actual, cv.NORM_INF))
81 def test_split3(self):
83 in_mat = np.random.randint(0, 100, sz)
86 expected = cv.split(in_mat)
90 b, g, r = cv.gapi.split3(g_in)
91 comp = cv.GComputation(cv.GIn(g_in), cv.GOut(b, g, r))
94 actual = comp.apply(cv.gin(in_mat), args=cv.compile_args(pkg))
96 for e, a in zip(expected, actual):
97 self.assertEqual(0.0, cv.norm(e, a, cv.NORM_INF))
98 self.assertEqual(e.dtype, a.dtype)
101 def test_threshold(self):
103 in_mat = np.random.randint(0, 100, sz).astype(np.uint8)
104 rand_int = np.random.randint(0, 50)
105 maxv = (rand_int, rand_int)
108 expected_thresh, expected_mat = cv.threshold(in_mat, maxv[0], maxv[0], cv.THRESH_TRIANGLE)
113 mat, threshold = cv.gapi.threshold(g_in, g_sc, cv.THRESH_TRIANGLE)
114 comp = cv.GComputation(cv.GIn(g_in, g_sc), cv.GOut(mat, threshold))
117 actual_mat, actual_thresh = comp.apply(cv.gin(in_mat, maxv), args=cv.compile_args(pkg))
119 self.assertEqual(0.0, cv.norm(expected_mat, actual_mat, cv.NORM_INF))
120 self.assertEqual(expected_mat.dtype, actual_mat.dtype)
121 self.assertEqual(expected_thresh, actual_thresh[0])
124 if __name__ == '__main__':
125 NewOpenCVTests.bootstrap()