Я пытаюсь масштабировать 2D-изображения (оттенки серого). Размер изображения — 256x256, желаемый результат — 224x224. Значения пикселей находятся в диапазоне от 0 до 1300.
Я попробовал 2 подхода к их масштабированию с помощью интерполяции Ланцоша:
Первое использование PIL Image:
import numpy as np
from PIL import Image
import cv2
array = np.random.randint(0, 1300, size=(10, 256, 256))
array[0] = Image.fromarray(array[0]).resize(size=(224, 224), resample=Image.LANCZOS)
в результате появляется сообщение об ошибке: ValueError: image has wrong mode
И затем CV2:
array[0] = cv2.resize(array[0], dsize=(224, 224), interpolation=cv2.INTER_LANCZOS4)
в результате сообщение об ошибке: ValueError: could not broadcast input array from shape (224,224) into shape (256,256)
Как это сделать правильно?
opencv
). Константы вcv2
обозначаются немного по-разному, когда вы работаете сpython
по сравнению с роднымc
. Я бы еще раз проверил - действительно ли это имя константы вpython
(я так не думаю) - person Grzegorz Skibinski   schedule 26.02.2020