| 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 |
| |