Python 2.7 Python图像处理(PIL)-更改图像的整体RGB

Python 2.7 Python图像处理(PIL)-更改图像的整体RGB,python-2.7,numpy,python-imaging-library,rgb,Python 2.7,Numpy,Python Imaging Library,Rgb,我正在尝试更改项目整体图像的RGB。目前,我正在处理一个测试文件,然后将其应用于实际图像。我想测试RGB的不同值,但首先要从这三个值的平均值开始。我该怎么做呢?我安装了其他模块,如scipy、numpy、matplotlib等,如果需要的话。谢谢 from PIL import Image, ImageFilter test = Image.open('/Users/MeganRCunninghan/Pictures/4th-of-July-Wallpaper.ppm') test.show(

我正在尝试更改项目整体图像的RGB。目前,我正在处理一个测试文件,然后将其应用于实际图像。我想测试RGB的不同值,但首先要从这三个值的平均值开始。我该怎么做呢?我安装了其他模块,如scipy、numpy、matplotlib等,如果需要的话。谢谢

from PIL import Image, ImageFilter

test = Image.open('/Users/MeganRCunninghan/Pictures/4th-of-July-Wallpaper.ppm')
test.show()
test.getrgb()

假设您的图像存储为numpy.ndarray,请使用print typetest进行此测试

您的图像将由NxMx3阵列表示。基本上,这意味着您有一个N×M的图像,颜色深度为3-您的RGB值。取这3个的平均值将得到一个NxMx1阵列,其中1现在是平均强度。Numpy在这方面做得非常好:

test = test.mean(2)
给定的参数2指定沿平均值计算的尺寸。它可以是0、1或2,因为图像矩阵是三维的。这将返回一个NxM数组。你基本上会留下一个灰度,颜色深度为1的图像。尝试显示返回的值!如果你得到Nx3或Mx3,你知道你只是沿着错误的轴取了平均值。请注意,可以使用以下方法检查numpy数组的尺寸:

test.shape

形状将是描述图像尺寸的元组

如果我能够成功地做到这一点,我将如何显示或查看具有此更改的图像?根据一些研究,PIL似乎使用自己的图像类型,而不是使用numpy数组来存储图像。查看图像类型的文档,似乎没有“mean”方法,所以我上面写的可能不起作用。但是,请查看该页并仔细阅读“convert”方法。这将提供您所需要的。尝试test=test.convertmode,然后尝试test.show文档没有很好地描述“模式”应该是什么,因此您需要尝试不同的值,但其中一个值应该为您转换为灰度。我将尝试这个!当我做一些研究时,我确实看到了转换方法,但不确定它是否适用,我会尝试一下。谢谢