您的位置:首页 > 编程语言 > Python开发

Python Imaging Library: ImageChops Module(图像通道操作模块)

2017-10-29 17:08 696 查看
Python Imaging Library: ImageChops Module(图像通道操作模块)

ImageChops模块包含一定数量的算术图像操作。目前,大多数通道操作只支持8位图像(如“L”和“RGB”)。


函数


constant


ImageChops.constant(image, value) ⇒ image

生成指定灰度值图像。


duplicate #


ImageChops.duplicate(image) ⇒ image

复制图像。


invert #


ImageChops.invert(image) ⇒ image

反转图像。公式:out = MAX - image


lighter #


ImageChops.lighter(image1, image2) ⇒ image

按像素比较图像。公式:out = max(image1, image2)


darker #


ImageChops.darker(image1, image2) ⇒ image

按像素比较图像。公式:out = min(image1, image2)


difference #


ImageChops.difference(image1, image2) ⇒ image

计算图像差值的绝对值。公式:out = abs(image1 - image2)


multiply #


ImageChops.multiply(image1, image2) ⇒ image

图像相乘。如果你把一个图像和一个实心的黑色图像相乘,结果是黑色的。如果你用一个纯白色的图像,图像是不受影响的。公式:out = image1 * image2 / MAX


screen #


ImageChops.screen(image1, image2) ⇒ image

反转图像乘法。公式:out = MAX - ((MAX - image1) * (MAX - image2) / MAX)


add 


ImageChops.add(image1, image2, scale, offset) ⇒ image

图像加法运算,并根据比例调整运算结果。公式:out = (image1 + image2) / scale + offset


subtract


ImageChops.subtract(image1, image2, scale, offset) ⇒ image

图像减法运算,并根据比例调整运算结果。公式:out = (image1 - image2) / scale + offset


blend


ImageChops.blend(image1, image2, alpha) ⇒ image

图像混合操作。


composite


ImageChops.composite(image1, image2, mask) ⇒ image

图像复合操作。


offset


ImageChops.offset(image, xoffset, yoffset) ⇒ image


ImageChops.offset(image, offset) ⇒ image

Returns a copy of the image where data has been offset by the given distances. 

Data wraps around the edges. If yoffset is omitted, it is assumed to be equal to xoffset.

# 生成指定灰度值图像(constant)

# ImageChops.constant(image, value) ⇒ image

PilImg_Constant1 = Image.open('图像6.jpg')

PilImg_Constant = ImageChops.constant(PilImg_Constant1, 128)

# PilImg_Constant.show()

# 复制图像(duplicate)

# ImageChops.duplicate(image) ⇒ image

PilImg_Duplicate1 = Image.open('图像6.jpg')

PilImg_Duplicate = ImageChops.duplicate(PilImg_Duplicate1)

# PilImg_Duplicate.show()

# 反转图像(invert)。公式:out = MAX - image。

# ImageChops.invert(image) ⇒ image

PilImg_Invert1 = Image.open('图像6.jpg')

PilImg_Invert = ImageChops.invert(PilImg_Invert1)

# PilImg_Invert.show()

# 按像素比较图像(lighter)。公式:out = max(image1, image2)。

# ImageChops.lighter(image1, image2) ⇒ image

PilImg_Lighter1 = Image.open('图像5.jpg')

PilImg_Lighter2 = Image.open('图像6.jpg')

PilImg_Lighter = ImageChops.lighter(PilImg_Lighter1, PilImg_Lighter2)

# PilImg_Lighter.show()

# 按像素比较图像(darker)。公式:out = min(image1, image2)。

# ImageChops.darker(image1, image2) ⇒ image

PilImg_Darker1 = Image.open('图像5.jpg')

PilImg_Darker2 = Image.open('图像6.jpg')

PilImg_Darker = ImageChops.darker(PilImg_Darker1, PilImg_Darker2)

# PilImg_Darker.show()

# 计算图像差值的绝对值(difference)。公式:out = abs(image1 - image2)。

# ImageChops.difference(image1, image2) ⇒ image

PilImg_Difference1 = Image.open('图像5.jpg')

PilImg_Difference2 = Image.open('图像6.jpg')

PilImg_Difference = ImageChops.difference(PilImg_Difference1, PilImg_Difference2)

# PilImg_Difference.show()

# 图像相乘(multiply)。公式:out = image1 * image2 / MAX。

# 如果你把一个图像和一个实心的黑色图像相乘,结果是黑色的。如果你用一个纯白色的图像,图像是不受影响的。

# ImageChops.multiply(image1, image2) ⇒ image

PilImg_Multiply1 = Image.open('图像5.jpg')

PilImg_Multiply2 = Image.open('图像6.jpg')

PilImg_Multiply = ImageChops.multiply(PilImg_Multiply1, PilImg_Multiply2)

# PilImg_Multiply.show()

# 反转图像乘法(screen)。公式:out = MAX - ((MAX - image1) * (MAX - image2) / MAX)。

# ImageChops.screen(image1, image2) ⇒ image

PilImg_Screen1 = Image.open('图像5.jpg')

PilImg_Screen2 = Image.open('图像6.jpg')

PilImg_Screen = ImageChops.screen(PilImg_Screen1, PilImg_Screen2)

# PilImg_Screen.show()

# 图像加法运算,并根据比例调整运算结果(add)。公式:out = (image1 + image2) / scale + offset。

# ImageChops.add(image1, image2, scale, offset) ⇒ image

PilImg_Add1 = Image.open('图像5.jpg')

PilImg_Add2 = Image.open('图像6.jpg')

PilImg_Add = ImageChops.add(PilImg_Add1, PilImg_Add2, 2.0, 30)

# PilImg_Add.show()

# 图像减法运算,并根据比例调整运算结果(subtract)。公式:out = (image1 - image2) / scale + offset。

# ImageChops.subtract(image1, image2, scale, offset) ⇒ image

PilImg_Subtract1 = Image.open('图像5.jpg')

PilImg_Subtract2 = Image.open('图像6.jpg')

PilImg_Subtract = ImageChops.subtract(PilImg_Subtract1,

                                      PilImg_Subtract2, 2.0, 30)

# PilImg_Subtract.show()

# 图像混合操作(blend)。

# ImageChops.blend(image1, image2, alpha) ⇒ image

PilImg_Blend1 = Image.open('图像5.jpg')

PilImg_Blend2 = Image.open('图像6.jpg')

PilImg_Blend = ImageChops.blend(PilImg_Blend1, PilImg_Blend2, 0.25)

# PilImg_Blend.show()

# 图像复合操作(composite)。

# ImageChops.composite(image1, image2, mask) ⇒ image

PilImg_Composite = Image.open('图像5.jpg')

PilImg_Composite1 = PilImg_Composite.convert('RGB')

PilImg_Composite = Image.open('图像6.jpg')

PilImg_Composite2 = PilImg_Composite.convert('RGB')

PilImg_Composite = PilImg_Composite2.copy()

PilImg_Composite3 = PilImg_Composite.convert('1')    # "1"、"L"、"RGBA"

PilImg_Composite = ImageChops.composite(PilImg_Composite1,

                                        PilImg_Composite2, PilImg_Composite3)

PilImg_Composite.show()

# ImageChops.offset(image, xoffset, yoffset) ⇒ image

# ImageChops.offset(image, offset) ⇒ image

# Returns a copy of the image where data has been offset by the given distances. 

# Data wraps around the edges. If yoffset is omitted, it is assumed to be equal to xoffset.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PIL Chops 通道运算