Предыдущая статья — Распознавание образов в Python. Часть I — введение.
Теперь мы полностью готовы погрузиться в вопрос численного представления изображения. Для этого мы будем использовать библиотеку PIL
или Pillow
(в зависимости от того, какая у нас стоит версия Python, 32-х или 64-битная).
# if you are on 32 bit os # import Image # 64 bit with pillow: from PIL import Image import numpy as np
В зависимости от битности вашей версии Python импортируйте библиотеку PIL
или Pillow
. Мы используем PIL
, так как у нас 64-битная версия Python. Для операций с числами мы также подгружаем библиотеку NumPy
.
Теперь давайте помотрим, как наше изображение выглядит в виде чисел:
i = Image.open('images/dot.png') iar = np.asarray(i) print(iar)
Сначала мы открыли наш файл с изображением, затем преобразовали в массив NumPy и сохранили его в переменную iar
. После этого мы вывели результат на экран.
Результат, с неочищенными данными, должен выглядеть примерно так:
[[[ 0 0 0 255] [255 255 255 255] [255 255 255 255] [255 255 255 255] [255 255 255 255] [255 255 255 255] [255 255 255 255] [255 255 255 255]] ... [[255 255 255 255] [255 255 255 255] [255 255 255 255] [255 255 255 255] [255 255 255 255] [255 255 255 255] [255 255 255 255] [255 255 255 255]]]
Это трехмерный массив данных. Эти данные представляют собой изображение, а каждый матричный блок — это ряд данных, где каждый элемент является пикселем в формате RGB-A (Red, Green, Blue, Alpha). Картинка ниже поможет разобраться в этом вопросе:

Следующая статья — Распознавание образов в Python. Часть III — еще про массивы пикселей.