1
0
mirror of https://github.com/opencv/opencv_contrib.git synced 2025-10-17 07:04:18 +08:00

Implement cv::cuda::inRange (Fixes OpenCV #6295)

This commit is contained in:
Aaron Miller
2021-01-01 20:44:58 -05:00
parent 33ae078b09
commit f1c0b5eae6
7 changed files with 391 additions and 1 deletions

View File

@@ -174,5 +174,24 @@ class cudaarithm_test(NewOpenCVTests):
self.assertTrue(np.allclose(cuMatDst.download(),
cv.filter2D(npMat,-1,kernel,anchor=(-1,-1))[iS[0]:iE[0]+1,iS[1]:iE[1]+1]))
def test_inrange(self):
npMat = (np.random.random((128, 128, 3)) * 255).astype(np.float32)
bound1 = np.random.random((4,)) * 255
bound2 = np.random.random((4,)) * 255
lowerb = np.minimum(bound1, bound2).tolist()
upperb = np.maximum(bound1, bound2).tolist()
cuMat = cv.cuda_GpuMat()
cuMat.upload(npMat)
self.assertTrue((cv.cuda.inRange(cuMat, lowerb, upperb).download() ==
cv.inRange(npMat, np.array(lowerb), np.array(upperb))).all())
cuMatDst = cv.cuda_GpuMat(cuMat.size(), cv.CV_8UC1)
cv.cuda.inRange(cuMat, lowerb, upperb, cuMatDst)
self.assertTrue((cuMatDst.download() ==
cv.inRange(npMat, np.array(lowerb), np.array(upperb))).all())
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
NewOpenCVTests.bootstrap()