Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
View this page
Toggle table of contents sidebar

# `ImageMorph` module

The `ImageMorph` module provides morphology operations on images.

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

  Bases: `object`

  A class for building a MorphLut from a descriptive language

  The input patterns is a list of a strings sequences like these:

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

  (whitespaces including linebreaks are ignored). The option 4 describes a series of symmetry operations (in this case a 4-rotation), the pattern is described by:

  - . or X - Ignore

  - 1 - Pixel is on

  - 0 - Pixel is off

  The result of the operation is described after “->” string.

  The default is to return the current pixel value, which is returned if no other match is found.

  Operations:

  - 4 - 4 way rotation

  - N - Negate

  - 1 - Dummy op for no other operation (an op must always be given)

  - M - Mirroring

  Example:

      lb = LutBuilder(patterns = ["4:(... .1. 111)->1"])
      lut = lb.build_lut()

  add_patterns(patterns: list[str]) → None
  build_default_lut() → None
  build_lut() → bytearray

    Compile all patterns into a morphology lut.

    TBD :Build based on (file) morphlut:modify_lut

  get_lut() → bytearray | None

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

  Bases: `object`

  A class for binary morphological operators

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

    Run a single morphological operation on an image

    Returns a tuple of the number of changed pixels and the morphed image

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

    Get a list of all turned on pixels in a binary image

    Returns a list of tuples of (x,y) coordinates of all matching pixels. See Coordinate system.

  load_lut(filename: str) → None

    Load an operator from an mrl file

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

    Get a list of coordinates matching the morphological operation on an image.

    Returns a list of tuples of (x,y) coordinates of all matching pixels. See Coordinate system.

  save_lut(filename: str) → None

    Save an operator to an mrl file

  set_lut(lut: bytearray | None) → None

    Set the lut from an external source