python - 将 PIL numpy 3d 数组转换为 2d 亮度值

标签 python numpy python-imaging-library

我使用以下方式加载了图像:

import numpy as np
from PIL import Image
imag = Image.open("image.png")    
I = np.asarray(imag)

形状为 I(951, 1200, 3)

但我想将每个像素大致平均为其亮度值( (r*g*b)/3 )以形成形状 (951, 1200, 1)

执行此操作的正确 numpy 运算符是什么?

最佳答案

我认为最简单的方法是使用 Pillow 的内置转换为亮度,如下所示:

import numpy as np
from PIL import Image

# Load image and convert to luminance, and thence to Numpy array
imag = Image.open("image.png").convert('L')    
I = np.asarray(imag)

关于python - 将 PIL numpy 3d 数组转换为 2d 亮度值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53363994/

相关文章:

python - Azure 日志分析 : How to send custom python pandas DataFrames into LAW

python - Numpy:如何为多维数组的各个元素赋值?

Python Numpy 如何更改数组内的数据类型

python - Str 包含 from 列表并按列表项区分

python - Tkinter 文本小部件不会填充/展开

python - 如何在图像颜色为黑色时使用 Pillow 将 PNG 转换为 JPG?

python - PIL.Image.fromarray 在 np.reshape 之后产生扭曲的图像

python - 如何将 StringIO 与 imghdr 结合使用来确定图像是否有效

python - 如何在 Colab 中显示 matplotlib 动画而不显示绘图?

python |绘制并拟合 (1/A)e^(-x/A) 形式的数据拟合,其中 A 是常数