Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
Работа с отдельными пикселями с помощью библиотеки pillow
Сегодня посмотрим как можно обрабатывать изображения на уровне отдельных пикселей с помощью библиотеки pillow.
Для попиксельной работы с изображением используется специальный массив (перегруженный оператор), который содержит кортежи трех цветов (RGB) для каждой точки. Точка (пиксель) определяется координатой (индексами массива). Левый верхний угол соответствует координатам 0, 0. Массив загружается последовательностью команд
im = Image.open('1.png')
px1 = im.load()
теперь к точке картинки можно обратиться через px1[i, j]. Далее, можно читать цвет пикселя из массива, либо записывать туда цвет. Изменения сохраняются при выполнении метода save().
Картинку - заготовку можно создать методом Image.new("RGB", (x, y), (0, 0, 0)). При этом создаётся графическая прямоугольная область размера x, y, с цветом (0, 0, 0) - в данном случае чёрным.
Замечание
Цвет RGB образуется смешиванием трех значений: красный, зелёный, синий, интенсивность которых определяется значениями от 0 до 255 .
Ниже представлена программа, которая просто создаёт копию исходной картинки (1.png -> 2.png).
Немного усложним задачу. Пусть дана фотография (рисунок 1)
Программа ниже берёт фотографию 1.png меняет местами местами левую и правую части и слегка меняет цвета у левой части.
Результат работы программы см. рисунок 2.
Ну, пока всё!
Пишите свои предложения и замечания и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.