repo_description: DeepFaceLab is the leading software for creating deepfakes.
repo_topics: arxiv creating-deepfakes deep-face-swap deep-learning deep-neural-networks deepface deepfacelab deepfakes deeplearning face-swap faceswap fakeapp machine-learning neural-nets neural-networks
code: 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
      