Основы обработки изображений на Raspberry Pi. Часть 3

Данные изображения 2-х мерным массивом пикселей, и каждый пиксель является кортеж из 3 значений: относительной интенсивности красного, зеленого и синего цветов в диапазоне от 0 до 255 (включительно). Вы можете получить доступ к заданному пикселя изображения путем обработки изображения в виде массива, а также путем предоставления позиций x и y пикселя в кортеж.

# Получить значение пикселя на изображении с х-координатой 120 и у-координатой 64
pixel = my_image [120, 64]
# Пиксель теперь кортеж красного, зеленого и синего для запрашиваемого пикселя

# Альтернативный метод
red, green, blue = my_image [120, 64]
# Красный, зеленый и синий теперь содержат интенсивность красного, зеленого и синего цветов
# Соответствующих каналов
Чтобы установить пикселя, вы назначить 3-х кортежи для координаты, будьте осторожны, вы можете установить значение только в диапазоне от 0 до 255 (включительно).
# Установите значение пикселя для х-координаты 120 и у-координаты 64
# Для оранжевого цвета
my_image [120, 64] = 255, 128, 0
Теперь, после использования этой функциональности, мы найдем каждый пиксель в изображении, в котором преобладает красный и изменим его на синий. Вот некоторый код Python с комментариями, который делает это.
# Проходим через каждый пиксель на изображении с помощью перебора каждой строки и каждого столбца
for x in range (0, my_image.width):
for y in range (0, my_image.height):
# Получить значение текущего пикселя
red, green, blue = my_image [x, y]

# Проверить, интенсивность красного превышает зеленый
if red> green:
# Проверить, красный также более интенсивным, чем синий
if red> blue:
# Этот пиксель преимущественно красный
# Давайте установим его в синий
my_image [x, y] = 0, 0, 255

Для выполнения этого кода, поместите его в сценарии после того как захватили камерой. Убедитесь, что вы также поставить его перед показом изображения на экране, в противном случае он будет изменен только после того, как уже был скопирован на экран.
На этом закончим первый базовый учебник. Теперь вы можете перейти к более продвинутым учебных пособий, или экспериментировать с кодом, который есть у вас. Также существует перечень всех функций в модули Python, если хотите просто поиграть. Интерактивный интерпретатор является хорошим способом, чтобы ознакомиться с функциями.
Имейте в виду, при доступе к пикселей вам нужно изображение перед их использованием сначала захватить с камеры, и, если вы устанавливаете цвет пикселей, то нужно со отразить изображение, чтобы увидеть изменения на экране.

Читайте также: