PYTHON Image Module中Pix[x,y]详解
最近一直在用Image.load()这个函数,对于里面的参数还有一个迷糊。尤其是Pix[x,y]得到的元组中的值的代表什么,去查函数手册得到以下结论。
- Image.load()方法是为图像分配储存空间和加载图像,返回一个可访问的图像对象。
- 图像对象作为一个PixAccess Class提供了像素级的读写访问。
例
from PIL import Image
with Image.open('example.jpg') as im:
px = im.load()
print (px[4,4])
px[4,4] = (0,0,0)
print (px[4,4])
结果如下
(23, 24, 68)
(0, 0, 0)
PixelAccess Class的详解
__setitem__(self, xy, color):
修改【x,y】处的像素。对于单通道的图像,颜色以单独的数值表示。对于多通道的图像,颜色以元组表示。
Parameters
- xy – 像素坐标,给定为(x,y)。
- color – 这个模式下像素的值. e.g. tuple (r, g, b) for RGB mode)
__getitem__(self, xy):
Returns the pixel at x,y. The pixel is returned as a single value for single band images or a tuple for multiple band images
- param xy – 像素坐标,给定为(x,y)。
- returns -对于单通道的图像,返回一个单独的数值。对于多通道的图像,返回一个元组。
putpixel(self, xy, color):
Modifies the pixel at x,y. The color is given as a single numerical value for single band images, and a tuple for multi-band images. In addition to this, RGB and RGBA tuples are accepted for P images.
Parameters
xy – The pixel coordinate, given as (x, y).
color – The pixel value according to its mode. e.g. tuple (r, g, b) for RGB mode)
getpixel(self, xy):
Returns the pixel at x,y. The pixel is returned as a single value for single band images or a tuple for multiple band images
param xy
The pixel coordinate, given as (x, y).
returns
a pixel value for single band images, a tuple of pixel values for multiband images.
上面这部分来自于PixlAccess Class手册,总结来看,Pix[x,y]返回了图像在(x,y)处由像素值组成的一个元组。例如RGB模式图像会得到(r,g,b,255)。