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(图像数学运算模块)相关推荐

  1. Python Imaging Library: PSDraw Module(Postscript打印机模块)

    Python Imaging Library: PSDraw Module(Postscript打印机模块) PSDraw模块为Postscript打印机提供简单的打印支持. 您可以通过这个模块打印文 ...

  2. Python Imaging Library: ImageOps Module(图像运算模块)

    Python Imaging Library: ImageOps Module(图像运算模块) (版本1.1.3) ImageOps模块包含许多"现成的"图像处理操作.这个模块是实 ...

  3. Python Imaging Library:ImageDraw Module(图像绘制模块)

    Python Imaging Library:ImageDraw Module(图像绘制模块) # 图像绘制库 Mode_NewImg = "RGB" Width_NewImg = ...

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

    Python Imaging Library: ImageChops Module(图像通道操作模块) ImageChops模块包含一定数量的算术图像操作.目前,大多数通道操作只支持8位图像(如&qu ...

  5. Python Imaging Library: ImageWin Module(图像Windows模块)

    Python Imaging Library: ImageWin Module(图像Windows模块) ImageWin模块支持在Windows上创建和显示图像. ImageWin可以与Python ...

  6. Python Imaging Library: ImageTk Module(图像Tkinter模块)

    Python Imaging Library: ImageTk Module(图像Tkinter模块) ImageTk模块支持从图片中创建和修改Tkinter位图图像和PhotoImage对象. 例如 ...

  7. Python Imaging Library: ImageStat Module(图像统计模块)

    Python Imaging Library: ImageStat Module(图像统计模块) ImageStat模块计算图像或图像区域的全局统计信息. 函数 Stat ImageStat.Stat ...

  8. Python Imaging Library: ImageQt Module(图像QT模块)

    Python Imaging Library: ImageQt Module(图像QT模块) (版本1.1.6) ImageQt 模块支持从图片中创建PyQt4 QImage对象. 注意:如果你使用的 ...

  9. Python Imaging Library: ImagePath Module(图像路径模块)

    Python Imaging Library: ImagePath Module(图像路径模块) ImagePath模块用于存储和操作二维向量数据.路径对象可以在 ImageDraw 模块中传递方法. ...

最新文章

  1. IC/FPGA校招笔试题分析(一)
  2. PHP中判断字符串是否全是中文eregi函数或含有中文preg_match函数
  3. qt中实现息屏开平mousepress_QT信号槽分析
  4. java 俄文,俄文字体在word里面是什么
  5. 回调函数的原理及PHP实例
  6. 返回值带头信息 php_php与Redis实现分布式锁
  7. vue 调用移动录像_vue调用摄像头拍照 (移动)2020-11-18
  8. 大专生自学web前端到找到工作的经验
  9. python 获取文件大小_Python解决女朋友看电影没字幕的需求
  10. 十天学会单片机(1)单片机的认识、各进制、门运算、c51
  11. 【高等数学】第 5 讲 偏导数
  12. gitbub 创建本地仓库注意点。
  13. mk编译报错-提示找不到符号
  14. re匹配中文格式的字符
  15. 华为过程可信cib是指_华为EMUI10取消IMEI?数字联盟可信ID——更可靠的移动设备唯一标识...
  16. 散列表ADT--分离链接法
  17. ws2812驱动总结(包括对时序的详细分析,代码基于STC15系列单片机)
  18. 迅雷看看(http://kankan.xunlei.com/)
  19. 平方面积怎么测量?教你快速学会这个方法
  20. 微信H5页面前端开发,大多数人都会遇到的几个兼容性坑(转载)

热门文章

  1. springboot的基础面试题
  2. win7 vmware ubuntu16 xshell链接
  3. this,super关键字的使用
  4. 【MVC5】对MySql数据库使用EntityFramework
  5. ListView删除选中的多项目
  6. [ActiveRecord]之 CRUD
  7. 微信小程序之——自定义分享按钮(完整版)
  8. BZOJ3531-[Sdoi2014]旅行(树剖+线段树动态开点)
  9. SASS优化响应式断点管理
  10. 产品经理与交互设计师的对话——需求是如何变成产品原型的(转)