В материале рассмотрены функции ImageOps.grayscale()
, ImageOps.invert()
модуля Pillow
, которые позволяют преобразовать изображение в черно-белое с оттенками серого и создать негатив (инверсия цвета) изображения соответственно. Также рассмотрены функции пастеризации и соляризации изображения.
ImageOps.grayscale()
обесцвечивает изображение,ImageOps.invert()
создает негатив изображения,ImageOps.posterize()
уменьшает количество бит каналов изображения,ImageOps.solarize()
инвертирует все значения пикселей выше порогового значения,ImageOps.equalize()
выравнивает гистограмму изображения.ImageOps.grayscale(image)
:Метод ImageOps.grayscale()
преобразование объект изображения image
в черно-белое изображение с оттенками серого. Возвращает новый объект изображения.
from PIL import ImageGrab, ImageOps # создание скриншота img_orig = ImageGrab.grab() img_orig.save('test_orig.png') # обесцвечиваем скриншот img = ImageOps.grayscale(img_orig) # сохраним для сравнения img.save('test_grayscale.png')
ImageOps.invert(image)
:Метод ImageOps.invert()
инвертирует цвета объекта изображения image
(создает негатив). Возвращает новый объект изображения.
from PIL import ImageGrab, ImageOps # создание скриншота img_orig = ImageGrab.grab() img_orig.save('test_orig.png') # создадим негатив скриншота img = ImageOps.invert(img_orig) # сохраним для сравнения img.save('test_invert.png')
ImageOps.posterize(image, bits)
:Метод ImageOps.posterize()
уменьшает количество бит bits
для каждого цветового канала объекта изображения image
. Возвращает новый объект изображения.
Аргумент bits
количество битов для каждого канала (1-8) в результирующем объекте изображения.
from PIL import ImageGrab, ImageOps # создание скриншота img_orig = ImageGrab.grab() img_orig.save('test_orig.png') # уменьшим количество бит до 1 img = ImageOps.posterize(img_orig, 1) # сохраним для сравнения img.save('test_posterize.png')
ImageOps.solarize(image, threshold=128)
:Метод ImageOps.solarize()
инвертирует все значения пикселей выше порогового значения threshold
объекта изображения image
. Возвращает новый объект изображения.
Аргумент threshold
- это пороговое значение выше уровня которого все пиксели оттенков серого инвертируются.
from PIL import ImageGrab, ImageOps # создание скриншота img_orig = ImageGrab.grab() img_orig.save('test_orig.png') # сериализуем изображение img = ImageOps.solarize(img_orig, 200) # сохраним для сравнения img.save('test_solarizee.png')
ImageOps.equalize(image, mask=None)
:Метод ImageOps.equalize()
выравнивает гистограмму объекта изображения image
. Возвращает новый объект изображения.
Эта функция применяет нелинейное отображение к входному объекту изображения image
, для создания равномерного распределения значений оттенков серого в выходном изображении.
Аргумент mask
представляет собой необязательную маску. Если задана, то в анализ включаются только пиксели, выбранные маской.
from PIL import ImageGrab, ImageOps # создание скриншота img_orig = ImageGrab.grab() img_orig.save('test_orig.png') # равномерно распределяем оттенки серого img = ImageOps.equalize(img_orig) # сохраним для сравнения img.save('test_equalize.png')