Я использую OpenCV для проекта по компьютерному зрению, однако мне нужно сделать попиксельную операцию над изображением, что означает доступ к каждому пикселю в изображении 640x480 и изменение его значений HSV.Изображение состоит из трехмерного массива значений X, Y и HSV, поэтому пиксель на 130, 230 может иметь значение HSV [12, 26, 18] или быть представленным на изображении: (130, 230, (12,26, 18))
Мне нужно выполнить операцию, которая позволяет мне добавить величину X в значение V (индекс элемента 2) значений HSV: (130, 230, (12, 26, *)1003 * 18 ))
Я могу сделать это с помощью двух циклов:
for x in range(image.width):
for y in range(image.height/2):
initcolor = cv.Get2D(image, y, x)
initcolor2 = [0, 0, 10, 0]
summed = [sum(pair) for pair in zip(initcolor, initcolor2)]
cv.Set2D(image, y, x, summed)
Но это очень медленно и по некоторым причинам занимает около 20 секунд для завершения операции надвесь образ.
Есть ли более простой и быстрый способ добиться этого?