Pillow ImageMath表达式语法
表达式是标准的python表达式,但它们是在非标准环境中计算的。您可以像往常一样使用PIL方法,加上以下一组运算符和函数:
标准运算符
您可以使用标准的算术运算符进行加法(+)、减法(-)、乘法(*)和除法(/)。
该模块还支持一元减号(-)、模(%)和幂(**)运算符。
请注意,根据需要,所有操作都是用32位整数或32位浮点值完成的。例如,如果添加两个8位图像,结果将是一个32位整数图像。如果将浮点常量添加到8位图像中,结果将是32位浮点图像。
您可以使用强制转换convert()
,float()
以及int()
下面描述的功能。
位运算符
该模块还提供对单个位进行操作的操作。这包括与(&)或(|)和异或(^)。您还可以反转(~)所有像素位。
注意,在应用按位运算之前,操作数被转换为32位有符号整数。这意味着,如果反转普通灰度图像,将得到负值。您可以使用and
(&)运算符屏蔽不需要的位。
位运算符不适用于浮点图像。
逻辑运算符
逻辑运算符 and
, or
和 not
处理整个图像,而不是单个像素。
空图像(所有像素为零)将被视为假。所有其他图像均视为真。
注意 and
和 or
返回上次计算的操作数,但不总是返回布尔值。
内置函数
这些功能应用于每个单独的像素。
-
abs
(image) -
绝对值。
-
convert
(image, mode) -
将图像转换为给定模式。模式必须作为字符串常量提供。
-
float
(image) -
将图像转换为32位浮点。这等效于
convert(image, "F")
。
-
int
(image) -
将图像转换为32位整数。这等效于
convert(image, "I")
。请注意,如果需要获得正确的结果,1位和8位图像将自动转换为32位整数。
-
max
(image1, image2) -
最大值。
-
min
(image1, image2) -
最小值。
更多建议: