Вы пытаетесь использовать PIL
для улучшения массива numpy
. cv2
преобразует изображения из контуров изображений в numpy
массивы. Это не работает с PIL
операциями с изображениями.
Вы можете загрузить изображение с помощью PIL
, выполнить улучшения PIL
, а затем преобразовать его в массив numpy для передачи в cv2.resize()
Метод.
Попробуйте:
from PIL import Image
from PIL import ImageEnhance
import cv2
import glob
import numpy as np
dataset = glob.glob('input/*.png')
other_dir = 'output/'
for img_id, img_path in enumerate(dataset):
img = Image.open(img_path) # this is a PIL image
enhancer = ImageEnhance.Sharpness(img) # PIL wants its own image format here
enhanced_im = enhancer.enhance(8.0) # and here
enhanced_cv_im = np.array(enhanced_im) # cv2 wants a numpy array
cl2 = cv2.resize(enhanced_cv_im, (1024,1024), interpolation = cv2.INTER_CUBIC)
cv2.imwrite(f'{other_dir}/enhanced_{img_id}.png',cl2)