首页 > 解决方案 > numpy vectorize 函数接收像素的 r,g,b 值

问题描述

我有一个功能:

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]
  ...

标签: pythonpython-3.ximagenumpyvectorization

解决方案


这就是您可以迭代 3-D 矩阵的方式。如果您尝试对图像应用(水平、垂直过滤器)等过滤器,请告诉我

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

推荐阅读