import cv2 import numpy as np from pathlib import Path from core.interact import interact as io from core import imagelib import traceback def cv2_imread(filename, flags=cv2.IMREAD_UNCHANGED, loader_func=None, verbose=True): """ allows to open non-english characters path """ try: if loader_func is not None: bytes = bytearray(loader_func(filename)) else: with open(filename, "rb") as stream: bytes = bytearray(stream.read()) numpyarray = np.asarray(bytes, dtype=np.uint8) return cv2.imdecode(numpyarray, flags) except: if verbose: io.log_err(f"Exception occured in cv2_imread : {traceback.format_exc()}") return None def cv2_imwrite(filename, img, *args): ret, buf = cv2.imencode( Path(filename).suffix, img, *args) if ret == True: try: with open(filename, "wb") as stream: stream.write( buf ) except: pass def cv2_resize(x, *args, **kwargs): h,w,c = x.shape x = cv2.resize(x, *args, **kwargs) x = imagelib.normalize_channels(x, c) return x