Поскольку вы не указали никаких ограничений, я предполагаю, что с любым инструментом все в порядке, поэтому я предлагаю использовать Подушка . (Установите с помощью pip install Pillow
)
Скажите, что ваше изображение названо image.png
, затем вы можете перебрать пиксели, которые хотите отредактировать, и установить цвет в каждой позиции на нужный цвет.
from PIL import Image
replacement_color = (0, 0, 255)
columns = [3, 2, 3, 4, 3]
positions = [(x, y) for y, x in enumerate(columns)]
image = Image.open('image.png')
pixels = image.load()
for (x, y) in positions:
pixels[x, y] = replacement_color
image.show() # or image.save('transformed_image.png')
Имейте в виду, что такой подход к доступу и редактированию отдельных пикселей может быть очень медленным.
РЕДАКТИРОВАТЬ:
Использование логического массива numpy в качествемаску для определения правильных пикселей вы также можете использовать
import numpy as np
from PIL import Image
image = Image.open('image.png')
image_array = np.array(image)
# Just an example mask
diagonal = np.eye(image_array.shape[0], image_array.shape[1])
mask = diagonal == 1
image_array[mask] = [0, 0, 255, 0] # RGBA
altered_image = Image.fromarray(image_array)
altered_image.save('altered_image.png')
(адаптировано из данного руководства )
Я не уверен, если производительность будет лучше.