Python Imaging Library: ImageMath Module(图像数学运算模块)
Python Imaging Library: ImageMath Module(图像数学运算模块)
(新版本1.1.6)可以使用ImageMath模块来评估“图像表达式”。这个模块提供了一个eval函数,它使用一个表达式字符串和一个或多个图像。
例程
import Image, ImageMath
im1 = Image.open("image1.jpg")
im2 = Image.open("image2.jpg")
out = ImageMath.eval("convert(min(a, b), 'L')", a=im1, b=im2)
out.save("result.png")
函数
eval
eval(expression, environment) ⇒ image or value
在给定的环境中对表达式求值。
表达式参数是使用标准Python表达式语法的字符串。除了标准操作符之外,您还可以使用下面描述的函数。
环境参数将图像名称映射到图像实例。您可以使用一个或多个关键字参数而不是字典,如上述示例所示。
注意,名称必须是有效的Python标识符。
在当前版本中,ImageMath只支持单层图像。要处理多波段图像,先使用分割和合并函数。
这个函数返回一个图像,一个整数值,一个浮点值,或者一个像素元组,这取决于表达式。
表达式语法(Expression Syntax)
表达式是标准的Python表达式,但是它们是在一个非标准的环境中进行评估的。
您可以像往常一样使用方法,加上下面的操作符和函数:
标准运算符(Standard Operators)
您可以使用标准的算术运算符,如加(+)、减(-)、乘()和除(/)。
该模块还支持一元负号(-)、模数(%)和幂(**)操作符。
注意,所有操作都是在32位整数或32位浮点值的情况下完成的。
例如,如果您添加两个8位图像,结果将是一个32位整型图像。
如果您将浮点数添加到一个8位图像,结果将是一个32位的浮点图像。
您可以使用下面描述的转换、浮动和int函数来强制转换。
按位运算符(Bitwise Operators)
该模块还提供单个位操作运算符。这包括和(&)、或(|)、亦或(^)、取反(^)。
注意,在应用位操作之前,操作数被转换为32位有符号整数。
这意味着,如果你取反一个普通灰度图像,你会得到负值。
你可以使用和(&)操作符来屏蔽不想要位。
位操作不适用于浮点数图像。
逻辑运算符(Logical Operators)
逻辑运算符,如和(and)、或(or)、非(not),对整个图像进行处理,而不是单个像素。
一个空的图像(所有像素值为0)被认为是错误的。所有其他图像都被认为是正确的。
注意,和(and)、或(or)运算符返回最后一个求值的操作数,而非(not)总是返回一个布尔值。
内置函数(Built-in Functions)
这些函数适用于每个像素。
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):最小值。
Python Imaging Library: ImageMath Module(图像数学运算模块)相关推荐
- Python Imaging Library: PSDraw Module(Postscript打印机模块)
Python Imaging Library: PSDraw Module(Postscript打印机模块) PSDraw模块为Postscript打印机提供简单的打印支持. 您可以通过这个模块打印文 ...
- Python Imaging Library: ImageOps Module(图像运算模块)
Python Imaging Library: ImageOps Module(图像运算模块) (版本1.1.3) ImageOps模块包含许多"现成的"图像处理操作.这个模块是实 ...
- Python Imaging Library:ImageDraw Module(图像绘制模块)
Python Imaging Library:ImageDraw Module(图像绘制模块) # 图像绘制库 Mode_NewImg = "RGB" Width_NewImg = ...
- Python Imaging Library: ImageChops Module(图像通道操作模块)
Python Imaging Library: ImageChops Module(图像通道操作模块) ImageChops模块包含一定数量的算术图像操作.目前,大多数通道操作只支持8位图像(如&qu ...
- Python Imaging Library: ImageWin Module(图像Windows模块)
Python Imaging Library: ImageWin Module(图像Windows模块) ImageWin模块支持在Windows上创建和显示图像. ImageWin可以与Python ...
- Python Imaging Library: ImageTk Module(图像Tkinter模块)
Python Imaging Library: ImageTk Module(图像Tkinter模块) ImageTk模块支持从图片中创建和修改Tkinter位图图像和PhotoImage对象. 例如 ...
- Python Imaging Library: ImageStat Module(图像统计模块)
Python Imaging Library: ImageStat Module(图像统计模块) ImageStat模块计算图像或图像区域的全局统计信息. 函数 Stat ImageStat.Stat ...
- Python Imaging Library: ImageQt Module(图像QT模块)
Python Imaging Library: ImageQt Module(图像QT模块) (版本1.1.6) ImageQt 模块支持从图片中创建PyQt4 QImage对象. 注意:如果你使用的 ...
- Python Imaging Library: ImagePath Module(图像路径模块)
Python Imaging Library: ImagePath Module(图像路径模块) ImagePath模块用于存储和操作二维向量数据.路径对象可以在 ImageDraw 模块中传递方法. ...
最新文章
- IC/FPGA校招笔试题分析(一)
- PHP中判断字符串是否全是中文eregi函数或含有中文preg_match函数
- qt中实现息屏开平mousepress_QT信号槽分析
- java 俄文,俄文字体在word里面是什么
- 回调函数的原理及PHP实例
- 返回值带头信息 php_php与Redis实现分布式锁
- vue 调用移动录像_vue调用摄像头拍照 (移动)2020-11-18
- 大专生自学web前端到找到工作的经验
- python 获取文件大小_Python解决女朋友看电影没字幕的需求
- 十天学会单片机(1)单片机的认识、各进制、门运算、c51
- 【高等数学】第 5 讲 偏导数
- gitbub 创建本地仓库注意点。
- mk编译报错-提示找不到符号
- re匹配中文格式的字符
- 华为过程可信cib是指_华为EMUI10取消IMEI?数字联盟可信ID——更可靠的移动设备唯一标识...
- 散列表ADT--分离链接法
- ws2812驱动总结(包括对时序的详细分析,代码基于STC15系列单片机)
- 迅雷看看(http://kankan.xunlei.com/)
- 平方面积怎么测量?教你快速学会这个方法
- 微信H5页面前端开发,大多数人都会遇到的几个兼容性坑(转载)