ImageMorph
Module¶
The ImageMorph
module provides morphology operations on images.
- class PIL.ImageMorph.LutBuilder(patterns=None, op_name=None)[source]
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)[source]
- build_default_lut()[source]
- build_lut()[source]
Compile all patterns into a morphology lut.
TBD :Build based on (file) morphlut:modify_lut
- get_lut()[source]
- class PIL.ImageMorph.MorphOp(lut=None, op_name=None, patterns=None)[source]
Bases:
object
A class for binary morphological operators
- apply(image)[source]
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)[source]
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)[source]
Load an operator from an mrl file
- match(image)[source]
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)[source]
Save an operator to an mrl file
- set_lut(lut)[source]
Set the lut from an external source