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

来源:互联网 发布:日常生活记账软件 编辑:程序博客网 时间:2024/06/04 17:43

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.

阅读全文
0 0
原创粉丝点击