On this page
21.2. imageop —处理原始图像数据
自 2.6 版起弃用:imageop模块已在 Python 3 中删除。
imageop模块包含对图像的一些有用操作。它对由存储在 Python 字符串中的 8 或 32 位像素组成的图像进行操作。此格式与gl.lrectwrite()
和imgfile模块使用的格式相同。
该模块定义以下变量和函数:
exception
imageop.
error
- 所有错误都会引发此异常,例如每个像素的位数未知等。
imageop.
crop
(* image , psize , width , height , x0 , y0 , x1 , y1 *)- 返回* image 的所选部分,该部分的大小应为 width 乘以 height ,并由 psize *个字节的像素组成。 * x0 , y0 , x1 和 y1 类似于
gl.lrectread()
参数,即边界包含在新图像中。新的边界不必在图片内。落在旧图像之外的像素的值将设置为零。如果 x0 大于 x1 *,则将镜像新图像。 y 坐标也是如此。
- 返回* image 的所选部分,该部分的大小应为 width 乘以 height ,并由 psize *个字节的像素组成。 * x0 , y0 , x1 和 y1 类似于
imageop.
scale
(* image , psize , width , height , newwidth , newheight *)- 返回* image pass newheight 缩放为大小 newwidth *。不进行内插,而是pass简单的像素复制或移除来完成缩放。因此,缩放后计算机生成的图像或抖动的图像看起来不会很好。
imageop.
tovideo
(* image , psize , width , height *)- 对图像运行垂直低通滤波器。pass将每个目标像素计算为两个垂直对齐的源像素的平均值来实现。如果该图像显示在使用隔行扫描的视频设备上,则此例程的主要用途是防止过多的闪烁,因此也称为名称。
imageop.
grey2mono
(图像,宽度,高度,阈值)- pass对所有像素进行阈值转换将 8 位深的灰度图像转换为 1 位深的图像。生成的图像紧紧包装,可能仅用作mono2grey()的参数。
imageop.
dither2mono
(图像,宽度,高度)- 使用(简单的)抖动算法将 8 位灰度图像转换为 1 位单色图像。
imageop.
mono2grey
(图像,宽度,高度,* p0 , p1 *)- 将 1 位单色图像转换为 8 位灰度或彩色图像。所有在 Importing 上为零值的像素在输出上均获得值* p0 ,而所有单值 Importing 像素在输出上均获得值 p1 *。要将单色黑白图像转换为灰度,请分别传递值
0
和255
。
- 将 1 位单色图像转换为 8 位灰度或彩色图像。所有在 Importing 上为零值的像素在输出上均获得值* p0 ,而所有单值 Importing 像素在输出上均获得值 p1 *。要将单色黑白图像转换为灰度,请分别传递值
imageop.
grey2grey4
(图像,宽度,高度)- 无需抖动即可将 8 位灰度图像转换为 4 位灰度图像。
imageop.
grey2grey2
(图像,宽度,高度)- 将 8 位灰度图像转换为 2 位灰度图像而无需抖动。
imageop.
dither2grey2
(图像,宽度,高度)- pass抖动将 8 位灰度图像转换为 2 位灰度图像。至于dither2mono(),抖动算法目前非常简单。
imageop.
grey42grey
(图像,宽度,高度)- 将 4 位灰度图像转换为 8 位灰度图像。
imageop.
grey22grey
(图像,宽度,高度)- 将 2 位灰度图像转换为 8 位灰度图像。
imageop.
backward_compatible
- 如果设置为 0,则此模块中的Function使用非向后兼容的方式表示小字节序系统上的多字节像素。最初为此模块编写的 SGI 是 big-endian 系统,因此设置此变量将无效。但是,该代码最初并不是要在其他任何代码上运行的,因此它对字节 Sequences 进行了假设,但这并不是通用的。将此变量设置为 0 将导致字节 Sequences 在小端系统上反转,因此与大端系统上的字节 Sequences 相同。