OCR-D wrapper for arbitrary coords-preserving image operations
Project description
ocrd_wrap
OCR-D wrapper for arbitrary coords-preserving image operations
Introduction
This offers OCR-D compliant workspace processors for any image processing tools which have some (usable) CLI and do not modify/invalidate image coordinates.
It thus wraps them for OCR-D without the need to write and manage code for each of them individually (exposing/passing/documenting their parameters and usage, managing releases etc). It shifts all the burden to workflow configuration (i.e. defining a suitable parameter set on how to call what program on what data, and installing all the required tools).
It is itself written in Python, and relies heavily on the OCR-D core API. This is responsible for handling METS/PAGE, and providing the OCR-D CLI.
In addition, this aims to wrap existing Python packages for preprocessing as OCR-D processors (one at a time).
Installation
Create and activate a virtual environment as usual.
To install Python dependencies:
make deps
Which is the equivalent of:
pip install -r requirements.txt
To install this module, then do:
make install
Which is the equivalent of:
pip install .
Usage
OCR-D processor interface ocrd-preprocess-image
To be used with PAGE-XML documents in an OCR-D annotation workflow.
Usage: ocrd-preprocess-image [OPTIONS]
Convert or enhance images
Options:
-I, --input-file-grp USE File group(s) used as input
-O, --output-file-grp USE File group(s) used as output
-g, --page-id ID Physical page ID(s) to process
--overwrite Remove existing output pages/images
(with --page-id, remove only those)
-p, --parameter JSON-PATH Parameters, either verbatim JSON string
or JSON file path
-m, --mets URL-PATH URL or file path of METS to process
-w, --working-dir PATH Working directory of local workspace
-l, --log-level [OFF|ERROR|WARN|INFO|DEBUG|TRACE]
Log level
-J, --dump-json Dump tool description as JSON and exit
-h, --help This help message
-V, --version Show version
Parameters:
"level-of-operation" [string - "page"]
PAGE XML hierarchy level to operate on
Possible values: ["page", "region", "line", "word", "glyph"]
"input_feature_selector" [string - ""]
comma-separated list of required image features (e.g.
binarized,despeckled)
"input_feature_filter" [string - ""]
comma-separated list of forbidden image features (e.g.
binarized,despeckled)
"output_feature_added" [string - REQUIRED]
image feature(s) to be added after this operation (if multiple,
separate by comma)
"input_mimetype" [string - "image/png"]
File format to save input images to (tool's expected input)
Possible values: ["image/bmp", "application/postscript", "image/gif",
"image/jpeg", "image/jp2", "image/png", "image/x-portable-pixmap",
"image/tiff"]
"output_mimetype" [string - "image/png"]
File format to load output images from (tool's expected output)
Possible values: ["image/bmp", "application/postscript", "image/gif",
"image/jpeg", "image/jp2", "image/png", "image/x-portable-pixmap",
"image/tiff"]
"command" [string - REQUIRED]
shell command to operate on image files, with @INFILE as place-holder
for the input file path, and @OUTFILE as place-holder for the output
file path
example recipes
- enhancement/conversion/denoising using
- ImageMagick: param_im6convert-denoise-raw
- GIMP script-fu
- ...
- binarization using
- text/non-text segmentation using
- Olena/Scribo ...
- ...
- ...
OCR-D processor interface ocrd-skimage-normalize
To be used with PAGE-XML documents in an OCR-D annotation workflow.
Usage: ocrd-skimage-normalize [OPTIONS]
Equalize contrast/exposure of images with Scikit-image
Options:
-I, --input-file-grp USE File group(s) used as input
-O, --output-file-grp USE File group(s) used as output
-g, --page-id ID Physical page ID(s) to process
--overwrite Remove existing output pages/images
(with --page-id, remove only those)
-p, --parameter JSON-PATH Parameters, either verbatim JSON string
or JSON file path
-m, --mets URL-PATH URL or file path of METS to process
-w, --working-dir PATH Working directory of local workspace
-l, --log-level [OFF|ERROR|WARN|INFO|DEBUG|TRACE]
Log level
-J, --dump-json Dump tool description as JSON and exit
-h, --help This help message
-V, --version Show version
Parameters:
"level-of-operation" [string - "page"]
PAGE XML hierarchy level to operate on
Possible values: ["page", "region", "line", "word", "glyph"]
"dpi" [number - 0]
pixel density in dots per inch (overrides any meta-data in the
images); disabled when zero
"method" [string - "stretch"]
contrast-enhancing transformation to use
Possible values: ["stretch", "adapthist"]
OCR-D processor interface ocrd-skimage-denoise-raw
To be used with PAGE-XML documents in an OCR-D annotation workflow.
Usage: ocrd-skimage-denoise-raw [OPTIONS]
Denoise raw images with Scikit-image
Options:
-I, --input-file-grp USE File group(s) used as input
-O, --output-file-grp USE File group(s) used as output
-g, --page-id ID Physical page ID(s) to process
--overwrite Remove existing output pages/images
(with --page-id, remove only those)
-p, --parameter JSON-PATH Parameters, either verbatim JSON string
or JSON file path
-m, --mets URL-PATH URL or file path of METS to process
-w, --working-dir PATH Working directory of local workspace
-l, --log-level [OFF|ERROR|WARN|INFO|DEBUG|TRACE]
Log level
-J, --dump-json Dump tool description as JSON and exit
-h, --help This help message
-V, --version Show version
Parameters:
"level-of-operation" [string - "page"]
PAGE XML hierarchy level to operate on
Possible values: ["page", "region", "line", "word", "glyph"]
"dpi" [number - 0]
pixel density in dots per inch (overrides any meta-data in the
images); disabled when zero
"method" [string - "VisuShrink"]
Wavelet filtering scheme to use
Possible values: ["BayesShrink", "VisuShrink"]
OCR-D processor interface ocrd-skimage-binarize
To be used with PAGE-XML documents in an OCR-D annotation workflow.
Usage: ocrd-skimage-binarize [OPTIONS]
Binarize images with Scikit-image
Options:
-I, --input-file-grp USE File group(s) used as input
-O, --output-file-grp USE File group(s) used as output
-g, --page-id ID Physical page ID(s) to process
--overwrite Remove existing output pages/images
(with --page-id, remove only those)
-p, --parameter JSON-PATH Parameters, either verbatim JSON string
or JSON file path
-m, --mets URL-PATH URL or file path of METS to process
-w, --working-dir PATH Working directory of local workspace
-l, --log-level [OFF|ERROR|WARN|INFO|DEBUG|TRACE]
Log level
-J, --dump-json Dump tool description as JSON and exit
-h, --help This help message
-V, --version Show version
Parameters:
"level-of-operation" [string - "page"]
PAGE XML hierarchy level to operate on
Possible values: ["page", "region", "line", "word", "glyph"]
"dpi" [number - 0]
pixel density in dots per inch (overrides any meta-data in the
images); disabled when zero
"method" [string - "sauvola"]
Thresholding algorithm to use
Possible values: ["sauvola", "niblack", "otsu", "gauss", "yen", "li"]
"window_size" [number - 0]
For Sauvola/Niblack/Gauss, the (odd) window size in pixels; when zero
(default), set to DPI
"k" [number - 0.34]
For Sauvola/Niblack, formula parameter influencing the threshold
bias; larger is lighter foreground
OCR-D processor interface ocrd-skimage-denoise
To be used with PAGE-XML documents in an OCR-D annotation workflow.
Usage: ocrd-skimage-denoise [OPTIONS]
Denoise binarized images with Scikit-image
Options:
-I, --input-file-grp USE File group(s) used as input
-O, --output-file-grp USE File group(s) used as output
-g, --page-id ID Physical page ID(s) to process
--overwrite Remove existing output pages/images
(with --page-id, remove only those)
-p, --parameter JSON-PATH Parameters, either verbatim JSON string
or JSON file path
-m, --mets URL-PATH URL or file path of METS to process
-w, --working-dir PATH Working directory of local workspace
-l, --log-level [OFF|ERROR|WARN|INFO|DEBUG|TRACE]
Log level
-J, --dump-json Dump tool description as JSON and exit
-h, --help This help message
-V, --version Show version
Parameters:
"level-of-operation" [string - "page"]
PAGE XML hierarchy level to operate on
Possible values: ["page", "region", "line", "word", "glyph"]
"dpi" [number - 0]
pixel density in dots per inch (overrides any meta-data in the
images); disabled when zero
"maxsize" [number - 3]
maximum component size of (bg holes or fg specks) noise in pt
Testing
none yet
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ocrd_wrap-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52d24ef7c7ef90467340083e3baf9063f2d9b257ef2f4e514b2e69932e553fe8 |
|
MD5 | 54cf9553b86be71737cb448b80d546e4 |
|
BLAKE2b-256 | c4be09afcb3adbba1f51583b35401d2a4e2f123da93b8d7a210c24f2b5afae9d |