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"]}')