Image inversion can be done on any image (bi-tonal, grayscale, or color) within the recognition engine's memory space. Recognition needs black or dark characters on a white or pale background.
The function IG_REC_image_invert() immediately inverts a whole single image - or a specified rectangle inside it. This function ignores the image inversion mode setting. The inverted image replaces the original one and is available to the recognition engine and the application.
An image inversion mode setting is made with IG_REC_inversion_mode_set(), taking values from enumIGRecImgInvert. These are:
- IG_REC_IMG_INVERT_AUTO: The recognition engine examines image and inverts it if necessary (default).
- IG_REC_IMG_INVERT_NO: No images are inverted.
- IG_REC_IMG_INVERT_YES: All images are inverted.
This mode-induced inversion is performed when IG_REC_image_preprocess() is called and always acts on the whole image.
If auto-inversion is set (IG_REC_IMG_INVERT_AUTO), grayscale or color images undergo an implicit secondary conversion to create a clean bi-tonal image. If IG_REC_IMG_INVERT_AUTO and despeckle mode is ON for a bi-tonal image with over 280 dpi, a despeckled bi-tonal image is created. Detecting whether inversion is needed or not is done on the bi-tonal image - the despeckled one, if available. These bi-tonal images are not available to the application.