Обработка изображений с Python и Pillow
Обработка изображений в Python осуществляется множеством библиотек. Какие-то из них лучше подходят для обработки, другие для машинного обучения, но все они имеют базовые возможности поиска, открытия, обработки и закрытия изображений. Сегодня мы рассмотрим библиотеку изображений Python - PIL(Python Image Library). Данная библиотека создана специально для работы с изображениями. Она позволяет преобразовывать, архивировать, распаковывать, извлекать данные, строить гистограммы и создавать статистические ряды для машинного обучения.
Библиотека PIL не является встроенной. Чтобы скачать ее на Windows, Linux, MacOS необходимы две команды:
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow
Для работы с изображениями необходимо обратиться к классу изоражений. Основным классом здесь является Image. Экземпляр класса можно создать либо открыв существующее изображение, либо создав его с нуля. Для простой загрузки изображения из файла, используем функцию open() модуля Image.
>>> from PIL import Image
>>> im = Image.open("xxx.png")
В случае успеха, возвращается объект Image. Теперь можно использовать атрибуты экземпляра для просмотра содержимого.
>>> print(im.format, im.size, im.mode)
# вывод
PNG (800, 600) RGBA
Атрибут format определяет расширение изображения. Если изображение не было открыто из файла, то значением для него будет None. Атрибут size представляет собой кортеж, содержащий ширину и высоту (в пикселях). mode определяет цветовой тип, а также тип и глубину пикселей. Общими режимами являются “L” (яркость) для изображений в оттенках серого, “RGB” для изображений истинного цвета и “CMYK” для изображений перед печатью.
Если файл не может быть открыт, возникает исключение ошибки операционной системы.
Как только у вас появится экземпляр класса Image, можно вызывать методы, определенные этим классом, для обработки изображения и управления им. Например, отобразим изображение, которое только что загрузили:
>>> im.show()
Следует иметь ввиду, что стандартная функция im.show(), не очень эффективна в использовании, но удобна в процессе отладки.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.