mirror of
https://github.com/iperov/DeepFaceLab.git
synced 2024-12-24 23:11:12 -08:00
40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
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
|
|
|