@@ -38,6 +38,7 @@ def test_cudaarithm(self):
3838 def test_arithmetic (self ):
3939 npMat1 = np .random .random ((128 , 128 , 3 )) - 0.5
4040 npMat2 = np .random .random ((128 , 128 , 3 )) - 0.5
41+ scalar = np .random .random ()
4142
4243 cuMat1 = cv .cuda_GpuMat ()
4344 cuMat2 = cv .cuda_GpuMat ()
@@ -48,36 +49,54 @@ def test_arithmetic(self):
4849 self .assertTrue (np .allclose (cv .cuda .add (cuMat1 , cuMat2 ).download (),
4950 cv .add (npMat1 , npMat2 )))
5051
52+ self .assertTrue (np .allclose (cv .cuda .addWithScalar (cuMat1 , [scalar ]* 3 ).download (),
53+ cv .add (npMat1 , scalar )))
54+
5155 cv .cuda .add (cuMat1 , cuMat2 , cuMatDst )
5256 self .assertTrue (np .allclose (cuMatDst .download (),cv .add (npMat1 , npMat2 )))
5357
5458 self .assertTrue (np .allclose (cv .cuda .subtract (cuMat1 , cuMat2 ).download (),
5559 cv .subtract (npMat1 , npMat2 )))
5660
61+ self .assertTrue (np .allclose (cv .cuda .subtractWithScalar (cuMat1 , [scalar ]* 3 ).download (),
62+ cv .subtract (npMat1 , scalar )))
63+
5764 cv .cuda .subtract (cuMat1 , cuMat2 , cuMatDst )
5865 self .assertTrue (np .allclose (cuMatDst .download (),cv .subtract (npMat1 , npMat2 )))
5966
6067 self .assertTrue (np .allclose (cv .cuda .multiply (cuMat1 , cuMat2 ).download (),
6168 cv .multiply (npMat1 , npMat2 )))
6269
70+ self .assertTrue (np .allclose (cv .cuda .multiplyWithScalar (cuMat1 , [scalar ]* 3 ).download (),
71+ cv .multiply (npMat1 , scalar )))
72+
6373 cv .cuda .multiply (cuMat1 , cuMat2 , cuMatDst )
6474 self .assertTrue (np .allclose (cuMatDst .download (),cv .multiply (npMat1 , npMat2 )))
6575
6676 self .assertTrue (np .allclose (cv .cuda .divide (cuMat1 , cuMat2 ).download (),
6777 cv .divide (npMat1 , npMat2 )))
6878
79+ self .assertTrue (np .allclose (cv .cuda .divideWithScalar (cuMat1 , [scalar ]* 3 ).download (),
80+ cv .divide (npMat1 , scalar )))
81+
6982 cv .cuda .divide (cuMat1 , cuMat2 , cuMatDst )
7083 self .assertTrue (np .allclose (cuMatDst .download (),cv .divide (npMat1 , npMat2 )))
7184
7285 self .assertTrue (np .allclose (cv .cuda .absdiff (cuMat1 , cuMat2 ).download (),
7386 cv .absdiff (npMat1 , npMat2 )))
7487
88+ self .assertTrue (np .allclose (cv .cuda .absdiffWithScalar (cuMat1 , [scalar ]* 3 ).download (),
89+ cv .absdiff (npMat1 , scalar )))
90+
7591 cv .cuda .absdiff (cuMat1 , cuMat2 , cuMatDst )
7692 self .assertTrue (np .allclose (cuMatDst .download (),cv .absdiff (npMat1 , npMat2 )))
7793
7894 self .assertTrue (np .allclose (cv .cuda .compare (cuMat1 , cuMat2 , cv .CMP_GE ).download (),
7995 cv .compare (npMat1 , npMat2 , cv .CMP_GE )))
8096
97+ self .assertTrue (np .allclose (cv .cuda .compareWithScalar (cuMat1 , [scalar ]* 3 , cv .CMP_GE ).download (),
98+ cv .compare (npMat1 , scalar , cv .CMP_GE )))
99+
81100 cuMatDst1 = cv .cuda_GpuMat (cuMat1 .size (),cv .CV_8UC3 )
82101 cv .cuda .compare (cuMat1 , cuMat2 , cv .CMP_GE , cuMatDst1 )
83102 self .assertTrue (np .allclose (cuMatDst1 .download (),cv .compare (npMat1 , npMat2 , cv .CMP_GE )))
@@ -111,6 +130,7 @@ def test_arithmetic(self):
111130 def test_logical (self ):
112131 npMat1 = (np .random .random ((128 , 128 )) * 255 ).astype (np .uint8 )
113132 npMat2 = (np .random .random ((128 , 128 )) * 255 ).astype (np .uint8 )
133+ scalar = np .random .random ()
114134
115135 cuMat1 = cv .cuda_GpuMat ()
116136 cuMat2 = cv .cuda_GpuMat ()
@@ -121,18 +141,27 @@ def test_logical(self):
121141 self .assertTrue (np .allclose (cv .cuda .bitwise_or (cuMat1 , cuMat2 ).download (),
122142 cv .bitwise_or (npMat1 , npMat2 )))
123143
144+ self .assertTrue (np .allclose (cv .cuda .bitwise_or_with_scalar (cuMat1 , scalar ).download (),
145+ cv .bitwise_or (npMat1 , scalar )))
146+
124147 cv .cuda .bitwise_or (cuMat1 , cuMat2 , cuMatDst )
125148 self .assertTrue (np .allclose (cuMatDst .download (),cv .bitwise_or (npMat1 , npMat2 )))
126149
127150 self .assertTrue (np .allclose (cv .cuda .bitwise_and (cuMat1 , cuMat2 ).download (),
128151 cv .bitwise_and (npMat1 , npMat2 )))
129152
153+ self .assertTrue (np .allclose (cv .cuda .bitwise_and_with_scalar (cuMat1 , scalar ).download (),
154+ cv .bitwise_and (npMat1 , scalar )))
155+
130156 cv .cuda .bitwise_and (cuMat1 , cuMat2 , cuMatDst )
131157 self .assertTrue (np .allclose (cuMatDst .download (),cv .bitwise_and (npMat1 , npMat2 )))
132158
133159 self .assertTrue (np .allclose (cv .cuda .bitwise_xor (cuMat1 , cuMat2 ).download (),
134160 cv .bitwise_xor (npMat1 , npMat2 )))
135161
162+ self .assertTrue (np .allclose (cv .cuda .bitwise_xor_with_scalar (cuMat1 , scalar ).download (),
163+ cv .bitwise_xor (npMat1 , scalar )))
164+
136165 cv .cuda .bitwise_xor (cuMat1 , cuMat2 , cuMatDst )
137166 self .assertTrue (np .allclose (cuMatDst .download (),cv .bitwise_xor (npMat1 , npMat2 )))
138167
@@ -145,12 +174,18 @@ def test_logical(self):
145174 self .assertTrue (np .allclose (cv .cuda .min (cuMat1 , cuMat2 ).download (),
146175 cv .min (npMat1 , npMat2 )))
147176
177+ self .assertTrue (np .allclose (cv .cuda .minWithScalar (cuMat1 , scalar ).download (),
178+ cv .min (npMat1 , scalar )))
179+
148180 cv .cuda .min (cuMat1 , cuMat2 , cuMatDst )
149181 self .assertTrue (np .allclose (cuMatDst .download (),cv .min (npMat1 , npMat2 )))
150182
151183 self .assertTrue (np .allclose (cv .cuda .max (cuMat1 , cuMat2 ).download (),
152184 cv .max (npMat1 , npMat2 )))
153185
186+ self .assertTrue (np .allclose (cv .cuda .maxWithScalar (cuMat1 , scalar ).download (),
187+ cv .max (npMat1 , scalar )))
188+
154189 cv .cuda .max (cuMat1 , cuMat2 , cuMatDst )
155190 self .assertTrue (np .allclose (cuMatDst .download (),cv .max (npMat1 , npMat2 )))
156191
0 commit comments