Blame view

3rdparty/opencv-4.5.4/modules/python/test/test_cuda.py 1.5 KB
f4334277   Hu Chunming   提交3rdparty
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  #!/usr/bin/env python
  
  '''
  CUDA-accelerated Computer Vision functions
  '''
  
  # Python 2/3 compatibility
  from __future__ import print_function
  
  import numpy as np
  import cv2 as cv
  import os
  
  from tests_common import NewOpenCVTests, unittest
  
  class cuda_test(NewOpenCVTests):
      def setUp(self):
          super(cuda_test, self).setUp()
          if not cv.cuda.getCudaEnabledDeviceCount():
              self.skipTest("No CUDA-capable device is detected")
  
      def test_cuda_upload_download(self):
          npMat = (np.random.random((128, 128, 3)) * 255).astype(np.uint8)
          cuMat = cv.cuda_GpuMat()
          cuMat.upload(npMat)
  
          self.assertTrue(np.allclose(cuMat.download(), npMat))
  
      def test_cuda_upload_download_stream(self):
          stream = cv.cuda_Stream()
          npMat = (np.random.random((128, 128, 3)) * 255).astype(np.uint8)
          cuMat = cv.cuda_GpuMat(128,128, cv.CV_8UC3)
          cuMat.upload(npMat, stream)
          npMat2 = cuMat.download(stream=stream)
          stream.waitForCompletion()
          self.assertTrue(np.allclose(npMat2, npMat))
  
      def test_cuda_interop(self):
          npMat = (np.random.random((128, 128, 3)) * 255).astype(np.uint8)
          cuMat = cv.cuda_GpuMat()
          cuMat.upload(npMat)
          self.assertTrue(cuMat.cudaPtr() != 0)
          stream = cv.cuda_Stream()
          self.assertTrue(stream.cudaPtr() != 0)
          asyncstream = cv.cuda_Stream(1)  # cudaStreamNonBlocking
          self.assertTrue(asyncstream.cudaPtr() != 0)
  
  if __name__ == '__main__':
      NewOpenCVTests.bootstrap()