📜  Python PIL | getbands() 和 getextrema() 方法(1)

📅  最后修改于: 2023-12-03 15:34:03.299000             🧑  作者: Mango

Python PIL | getbands() 和 getextrema() 方法

在Python的PIL模块 (Python Imaging Library)中,getbands() 和 getextrema() 是两个常用的方法,用于对图片进行处理和检测。

getbands() 方法

getbands() 方法用于获取图片的颜色通道信息。对于彩色图像,通常包含RGB三个通道;对于灰度图像,仅包含一个亮度通道。该方法返回一个字符串列表,其中每个字符串代表一种颜色通道。例如:

from PIL import Image

img = Image.open('example.jpg')
bands = img.getbands()
print(bands)

输出:

('R', 'G', 'B')

表示该图片包含RGB三个通道。

若图片为灰度图像,则返回仅含一个通道的字符串:

from PIL import Image

img = Image.open('example_gray.jpg')
bands = img.getbands()
print(bands)

输出:

('L',)

getbands() 方法常用于检测图片通道,以便在不同的操作中做出不同的处理。

getextrema() 方法

getextrema() 方法用于获取图片的RGB值的范围(最小值和最大值),通常用于对图像进行灰度化处理。该方法返回一个包含元组的列表,分别为RGB通道的最大值和最小值。例如:

from PIL import Image

img = Image.open('example.jpg')
ex = img.getextrema()
print(ex)

输出:

((0, 255), (0, 255), (0, 255))

每个元组中第一个值代表通道的最小值,第二个值代表通道的最大值。

若图片为灰度图像,仅返回一个元组:

from PIL import Image

img = Image.open('example_gray.jpg')
ex = img.getextrema()
print(ex)

输出:

((0, 255),)

getextrema() 方法常用于处理灰度化或二值化操作,以便更好地分离出目标。
参考文献:https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.Image.getbands,https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.Image.getextrema