подушка изменение размера с помощью Image.LANCZOS
будет использовать большое ядро и не будет вызывать псевдонимы.
Например, в Википедии есть этот горизонт Чикаго:
https://en.wikipedia.org/wiki/File:Chicago_Skyline_Hi-Res.jpg
Это большое изображение со сложным соотношением сторон, большими плоскими участками и множеством повторяющихся мелких деталей.
Эта программа:
import sys
from PIL import Image
im = Image.open(sys.argv[1])
target_size = 256.0
horizontal_scale = im.size[0] / target_size
vertical_scale = im.size[1] / target_size
scale = max(horizontal_scale, vertical_scale)
new_size = (int(im.size[0] / scale), int(im.size[1] / scale))
im = im.resize(new_size, Image.LANCZOS)
im.save(sys.argv[2])
Запуск на оригинальном изображении с разрешением 14696x1779 пикселей дает такой результат:
Я сделал взрыв центральной области:
Вы можете видеть, что нет псевдонимов, но есть небольшие звуки, как и следовало ожидатьиз Ланцоша.
Если вместо этого вы уменьшите размер с помощью билинейного (для этого в подушке используется треугольный фильтр), вы получите более мягкий вид, но без наложения имен и звонков.Это может быть более подходящим для ввода ML.
Я был бы удивлен, если бы OpenCV не мог сделать это, но я незнаю это достаточно хорошо, чтобы предложить код.