ImageMorph 模块

The ImageMorph 模块为图像提供形态学操作。

class PIL.ImageMorph.LutBuilder(patterns: list[str] | None = None, op_name: str | None = None)[source]

Bases: object

一个从描述性语言构建 MorphLut 的类

输入模式是一个字符串序列列表,类似于这些

4:(...
   .1.
   111)->1

(包括换行符的空格会被忽略)。选项 4 描述了一系列对称操作(在本例中为 4 次旋转),模式由以下内容描述:

  • . 或 X - 忽略

  • 1 - 像素处于打开状态

  • 0 - 像素处于关闭状态

操作的结果在“->” 字符串之后描述。

默认情况下返回当前像素值,如果没有找到其他匹配项,则返回该值。

操作

  • 4 - 4 路旋转

  • N - 否定

  • 1 - 虚拟操作,表示没有其他操作(必须始终提供操作)

  • M - 镜像

示例

lb = LutBuilder(patterns = ["4:(... .1. 111)->1"])
lut = lb.build_lut()
add_patterns(patterns: list[str]) None[source]
build_default_lut() None[source]
build_lut() bytearray[source]

将所有模式编译成形态学 lut。

待办:基于(文件)morphlut 构建:modify_lut

get_lut() bytearray | None[source]
class PIL.ImageMorph.MorphOp(lut: bytearray | None = None, op_name: str | None = None, patterns: list[str] | None = None)[source]

Bases: object

一个用于二元形态学算子的类

apply(image: Image) tuple[int, Image][source]

对图像运行单个形态学操作

返回更改像素数量和形态变换后的图像的元组

get_on_pixels(image: Image) list[tuple[int, int]][source]

获取二值图像中所有亮像素的列表

返回一个包含所有匹配像素的 (x,y) 坐标元组列表。请参见 坐标系.

load_lut(filename: str) None[source]

从 mrl 文件加载操作符

match(image: Image) list[tuple[int, int]][source]

获取图像上与形态学操作匹配的坐标列表。

返回一个包含所有匹配像素的 (x,y) 坐标元组列表。请参见 坐标系.

save_lut(filename: str) None[source]

将操作符保存到 mrl 文件

set_lut(lut: bytearray | None) None[source]

从外部来源设置 lut