import cv2 import numpy as np from PIL import Image def cv2_inpaint(image: Image.Image) -> Image.Image: # Prepare Image image_array = np.array(image.convert("RGB")) image_cv = cv2.cvtColor(image_array, cv2.COLOR_RGB2BGR) # Prepare Mask From Alpha Channel mask = image.split()[3].convert("RGB") mask_array = np.array(mask) mask_cv = cv2.cvtColor(mask_array, cv2.COLOR_BGR2GRAY) mask_inv = cv2.bitwise_not(mask_cv) # Inpaint Image inpainted_result = cv2.inpaint(image_cv, mask_inv, 3, cv2.INPAINT_TELEA) inpainted_image = Image.fromarray(cv2.cvtColor(inpainted_result, cv2.COLOR_BGR2RGB)) return inpainted_image