github.com/kaydxh/golang@v0.0.131/pkg/gocv/cgo/swig/pycv/pycv.py (about)

     1  import base64 
     2  import sys
     3  import traceback
     4  import copy
     5  from PIL import Image
     6  
     7  def read_image(image_file_path, base64_format=True):
     8      with open(image_file_path, "rb") as file:
     9          data = file.read()
    10          if not base64_format:
    11              return data
    12  
    13          base64_data = base64.b64encode(data)
    14          return base64_data 
    15  
    16  def write_image(image_data, image_file_path, base64_format=True):
    17      if base64_format:
    18          data = base64.b64decode(image_data)
    19      else:
    20          data = image_data
    21      f = io.BytesIO(data)
    22      Image.open(f)
    23      os.makedirs(os.path.dirname(image_file), exist_ok=True)
    24      image.save(image_file_path)
    25  
    26  
    27  class CVSDK:
    28      def __init__(self, gpu_id: int = -1, **kwargs):
    29          self.gpu_id = -1
    30          self.init_kwargs = {}
    31          self.sdk = None
    32  
    33      def init(self, model_dir: str, gpu_id: int = -1, **kwargs):
    34          try:
    35              if not self.sdk:
    36                 del self.sdk
    37              self.sdk = None
    38              self.gpu_id = gpu_id
    39              self.init_kwargs = copy.copy(kwargs)
    40  
    41              if "sdk_dir" in kwargs:
    42                  sdk_dir = kwargs.get("sdk_dir")
    43                  del kwargs["sdk_dir"]
    44                  if sdk_dir not in sys.path:
    45                      sys.path.append(sdk_dir)
    46  
    47              # init sdk isinstance
    48              # self.sdk = None
    49  
    50          except ValueError as err:
    51              return {
    52                      "err" : f"CVSDK::__init__: Unexpected ValueError {err=}, {type(err)=}, {traceback.format_exc()}",
    53                      }
    54          except Exception as err:
    55              return {
    56                      "err" : f"CVSDK::__init__: Unexpected Exception {err=}, {type(err)=}, {traceback.format_exc()}",
    57                      }
    58          except:
    59              err = sys.exc_info()[0]
    60              return {
    61                      "err" : f"CVSDK::__init__: Unexpected Exception {err=}, {type(err)=}, {traceback.format_exc()}",
    62                      }
    63          return {}
    64  
    65      
    66      def do(self, **kwargs):
    67          try:
    68              arg1 = kwargs.get("arg1", "")
    69              arg2 = kwargs.get("arg2", "")
    70              #todo sdk call
    71              return {
    72                      "result": "ok"
    73                      }
    74          except ValueError as err:
    75              return {
    76                      "err" : f"CVSDK::Do: Unexpected ValueError {err=}, {type(err)=}, {traceback.format_exc()}",
    77                      }
    78          except Exception as err:
    79              return {
    80                      "err" : f"CVSDK::Do: Unexpected Exception {err=}, {type(err)=}, {traceback.format_exc()}",
    81                      }
    82          except:
    83              err = sys.exc_info()[0]
    84              return {
    85                      "err" : f"CVSDK::Do: Unexpected Exception {err=}, {type(err)=}, {traceback.format_exc()}",
    86                      }
    87  
    88  if __name__ == "__main__":
    89      print('sys.path %s' % sys.path)
    90      sdk = CVSDK()
    91      sdk.init("")
    92      resp = sdk.do()
    93      if 'err' in resp:
    94          err = resp['err']
    95          print(f'do err: {err}')
    96      print(f'{resp["result"]}')