ANTIALIAS vs BICUBIC в PIL (Библиотека изображений Python)?

Я использую PIL для изменения размеров моих изображений, мой случай – увеличить исходное изображение.

Я смущен алгоритмом, используемым с `resample = ANTIALIAS '.

Согласно приведенному ниже документу, ANTIALIAS , по-видимому, является лучшим при сокращении. Интересно, в каком случае BICUBIC может выиграть? (Некоторые из моих тестов показывают, что бикубический выбор лучше)

 An optional resampling filter. This can be one of NEAREST (use nearest neighbour), BILINEAR (linear interpolation in a 2x2 environment), BICUBIC (cubic spline interpolation in a 4x4 environment), or ANTIALIAS (a high-quality downsampling filter). If omitted, or if the image has mode “1” or “P”, it is set NEAREST. 

Я также запутался в linear interpolation in a 2x2 environment и cubic spline interpolation in a 4x4 environment в документе. Что это значит?

Благодарю.

2 Solutions collect form web for “ANTIALIAS vs BICUBIC в PIL (Библиотека изображений Python)?”

Они перечислены в порядке наименьшей сложности. Между ними будут визуальные различия. Основное различие будет заключаться в том, как долго выполняется алгоритм для выполнения.

Вам нужно будет решить, что для вас важно, скорость или качество. Если вы делаете только 5 изображений, идите на качество. Если вы делаете 100 000 изображений, возможно, идите на скорость. Это действительно зависит от того, для чего вы его используете.

Окружающая среда 2×2 и 4×4 означает, что алгоритм просматривает пиксельную область 2×2 или 4×4.

Теперь я перешел к источнику, чтобы выяснить детали. Я не очень доволен увиденным.

Во-первых, BICUBIC . Существует ряд формул, которые можно классифицировать как бикубические, наиболее распространенными из которых являются интерполяция Катмулла-Рома. Это не то, что использует PIL. Дон Митчелл и Арун Нетравали написал статью, в которой анализируются все вариации и характеризуются ими с использованием двух переменных B и C; тот, который используется PIL, соответствует B = 0 и C = 1. В статье Митчелла-Нетравали это явно находится в области артефакта звонка. Это означает, что увеличенные изображения будут иметь неестественные яркие или темные ореолы вокруг краев.

Далее – ANTIALIAS . Это основано на фильтре Lanczos-3, который обычно был бы хорошим выбором как для сокращения, так и для увеличения. К сожалению, есть ошибка в коде при повышении – вместо того, чтобы принимать в области 6х6 пикселей, чтобы вычислить результат, он усечен в 2×2 пикселя. Это делает его едва лучше, чем билинейный.

  • Использование Pycairo для генерации изображений динамически и обслуживания в Django
  • Вставить изображение в круговую диаграмму
  • В Python, как мне читать данные exif для изображения?
  • Использование библиотеки изображений Python с VirtualEnv в Windows
  • Преобразование строки в изображение в python
  • Загрузите растровое изображение RGBA с помощью PIL
  • Использование numpy и pil для преобразования 565 (16 бит-цвет) в 888 (24-битный)
  • Установка библиотеки изображений Python (PIL) на Snow Leopard с обновленным Python 2.6.2
  • Python - лучший язык программирования в мире.