функция векторизации numpy, получающая значения r, g, b пикселя

#python #python-3.x #image #numpy #vectorization

#python #python-3.x #изображение #numpy #векторизация

Вопрос:

У меня есть функция :

 def co(pixel):
    print(pixel)
    #return [res]
    return pixel
  

И я пытаюсь преобразовать свой 3D-массив с помощью этого :

 v = np.vectorize(co)
#v.excluded.add(1)

new_arr = v(arr)

print(new_arr)
  

Но что интересно, она выводит значения r, g, b каждого пикселя. Вместо этого не следует ли печатать пиксели?

Мой реальный вопрос заключается в том, как я могу выполнить итерацию по всем пикселям в моем изображении и применить это преобразование.

Изначально мое изображение выглядит так :

 [[[239 255 138]
  [239 255 138]
  [239 255 138]
  ...
  

Ответ №1:

Вот как вы можете выполнять итерации по своей трехмерной матрице. Дайте мне знать, если вы пытаетесь применить к своему изображению фильтры типа (горизонтальные, вертикальные фильтры)

  for i in range(l):
    for j in range(b):
        for k in range(h):
              print(ar[i][j][k])
              #do your function