В материале рассматриваются встроенные фильтры передискретизации подмодуля Image
библиотеки Pillow
, которые применяются для геометрических операций. Эти фильтры сопоставляют несколько входных пикселей с одним выходным пикселем.
Image.NEAREST
,Image.BOX
,Image.BILINEAR
,Image.HAMMING
,Image.BICUBIC
,Image.LANCZOS
,>>> from PIL import Image >>> Image.NEAREST # 0 >>> Image.BILINEAR # 2 >>> Image.Resampling # <enum 'Resampling'> >>> Image.Resampling.NEAREST # <Resampling.NEAREST: 0> >>> Image.Resampling(0) # <Resampling.NEAREST: 0> >>> Image.Resampling.BILINEAR <Resampling.BILINEAR: 2>
Image.NEAREST
:Фильтр Image.NEAREST
выбирает один ближайший пиксель из входного изображения. Игнорирует все остальные входные пиксели.
Image.BOX
:Фильтр Image.BOX
- применяется для масштабирования, эквивалентен Image.NEAREST
. Каждый пиксель исходного изображения вносит вклад в один пиксель целевого изображения с одинаковыми весами.
Этот фильтр можно использовать только с методами Image.resize()
и Image.thumbnail()
.
Image.BILINEAR
:Фильтр Image.BILINEAR
применяется для изменения размера. Вычисляет значение выходного пикселя, используя линейную интерполяцию для всех пикселей, которые могут внести вклад в выходное значение.
Для других преобразований используется линейная интерполяция по среде 2x2 во входном изображении.
Image.HAMMING
:Фильтр Image.HAMMING
дает более четкое изображение, чем Image.BILINEAR
, не имеет дислокаций на локальном уровне, как у Image.BOX
.
Этот фильтр можно использовать только с методами Image.resize()
и Image.thumbnail()
.
Image.BICUBIC
:Свойство Image.BICUBIC
применяется для изменения размера. Вычисляет значение выходного пикселя, используя кубическую интерполяцию для всех пикселей, которые могут внести вклад в выходное значение.
Для других преобразований используется кубическая интерполяция по среде 4x4 во входном изображении.
Image.LANCZOS
:Свойство Image.LANCZOS
вычисляет значение выходного пикселя, используя высококачественный фильтр Ланцоша (усеченный sinc
) для всех пикселей, которые могут внести вклад в выходное значение.
Этот фильтр можно использовать только с методами Image.resize()
и Image.thumbnail()
.
Filter | Качество уменьшения | Качество увеличения | Производительность |
NEAREST | 5 | ||
BOX | 1 | 4 | |
BILINEAR | 1 | 1 | 3 |
HAMMING | 2 | 3 | |
BICUBIC | 3 | 3 | 2 |
LANCZOS | 4 | 4 | 1 |
PIL.Image.NONE
= PIL.Image.Resampling.NEAREST
,PIL.Image.LINEAR
= PIL.Image.Resampling.BILINEAR
,PIL.Image.CUBIC
= PIL.Image.Resampling.BICUBIC
,PIL.Image.ANTIALIAS
= PIL.Image.Resampling.LANCZOS
.