from PIL import ImageOps ImageOps.autocontrast(image, cutoff=0, ignore=None, mask=None, preserve_tone=False)
image
- объект изображения для обработки, открытое (PIL.Image.open()
) или созданное при помощи PIL.Image.new()
или другими способами.cutoff=0
- процент, который нужно отсечь от гистограммы на нижнем и верхнем уровнях. Либо кортеж из (low, high)
, либо одно число для обоих уровней.ignore=None
- значение пикселя фона. Значение None
используется для отсутствия фона.mask=None
- гистограмма, используемая в операции контраста, вычисляется с использованием пикселей внутри маски. Если маска не указана, то для вычисления гистограммы используется все изображение.preserve_tone=False
- сохраняет тон изображения с помощью автоконтраста в стиле "Photoshop".Image
.Функция ImageOps.autocontrast()
модуля Pillow
нормализует (при необходимости усиливает) контрастность изображения.
Эта функция вычисляет гистограмму входного изображения (или области маски), удаляет из гистограммы процент отсечки самых светлых и самых темных пикселей и переназначает изображение таким образом, что самый темный пиксель становится черным (0), а самый светлый - белым (255).
ImageOps.autocontrast()
:from PIL import ImageGrab, ImageOps, ImageEnhance import time # делаем задержку в 2 секунды на выбор # окна, для которого нужно сделать скриншот time.sleep(2) # создание скриншота img_tmp = ImageGrab.grab() # ослабим контрастность img_tmp = ImageEnhance.Contrast(img_tmp).enhance(0.5) # сохраним для сравнения img_tmp.save('test-original.jpg') # применим автоматическую # регулировку контрастности img = ImageOps.autocontrast(img_tmp, preserve_tone=True) # сохраним для сравнения img.save('test-autocontrast.jpg') # теперь усилим контрастность на 2% img = ImageOps.autocontrast(img_tmp, cutoff=2) # сохраним для сравнения img.save('test-contrast-power.jpg')