#include "l_bitmap.h"
L_LTIMGCOR_API L_INT EXT_FUNCTION L_AutoBinarizeBitmap(pBitmap, uFactor, uFlags)
Applies binary segmentation to a bitmap automatically.
This feature is available in version 16 or higher.
Pointer to the bitmap handle referencing the bitmap having binary segmentation applied automatically.
Threshold Factor. The meaning of this factor depends on which type of thresholding is being used. For more information see the description of the uFlags
parameter.
Flags that indicate the type of pre-processing to perform on the bitmap and the type of thresholding to use. You can use a bitwise OR (|) to specify one flag from each group.
Value | Meaning |
---|---|
Type of pre-processing to perform on the bitmap: | |
AUTO_BINARIZE_PRE_AUTO | [0x00000000] Perform automatic pre-processing. This is the default value. |
AUTO_BINARIZE_NO_PRE | [0x00000001] Do not perform pre-processing. |
AUTO_BINARIZE_PRE_BG_ELIMINATION | [0x00000002] Eliminate the background of the bitmap but keep the key features, such as text. |
AUTO_BINARIZE_PRE_LEVELING | [0x00000004] Perform automatic color leveling. |
Type of threshold to use: | |
AUTO_BINARIZE_THRESHOLD_AUTO | [0x00000000] Perform automatic thresholding. This is the default value. |
AUTO_BINARIZE_THRESHOLD_USER | [0x00000010] Let the user choose the threshold value, to be passed in uFactor . Valid values range from 0 to 255. |
AUTO_BINARIZE_THRESHOLD_PERCENTILE | [0x00000020] Perform percentile thresholding. In this case uFactor is the percentage of black pixels at which to perform thresholding, expressed in hundredths of a percent. For example, 500 means 5 percent. Valid values range from 0 to 10000. |
AUTO_BINARIZE_THRESHOLD_MEDIAN | [0x00000040] Perform median thresholding. |
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
AutoBinarize converts a colored image into a binary image automatically, without losing important image features such as text. This function uses several pre-processing and threshold operations which enable the user to extract the key features of any colored image. It can be adjusted to be suitable for a specific input device, such as a scanner or camera. It is ideal for making unclear document images more readable. This function is especially useful for improving recognition results (OCR, Barcode, OMR, ICR).
L_AutoBinarizeBitmap options:
To update a status bar or detect a user interrupt during execution of this function, refer to L_SetStatusCallback.
This function does not support 12 and 16-bit grayscale and 48 and 64-bit color images. If the image is 12 and 16-bit grayscale and 48 and 64-bit color, the function will not return an error.
This function does not support signed data images. It returns the error code ERROR_SIGNED_DATA_NOT_SUPPORTED if a signed data image is passed to this function.
This function does not support 32-bit grayscale images. It returns the error code ERROR_GRAY32_UNSUPPORTED if a 32-bit grayscale image is passed to this function.
Required DLLs and Libraries
Win32, x64, Linux.
L_INT AutoBinarizeBitmapExample(L_VOID)
{
L_INT nRet;
BITMAPHANDLE LeadBitmap; /* Bitmap handle to hold the loaded image. */
/* Load the bitmap, keeping the bits per pixel of the file */
nRet = L_LoadBitmap (MAKE_IMAGE_PATH(TEXT("cannon.jpg")), &LeadBitmap, sizeof(BITMAPHANDLE), 0, ORDER_BGR, NULL, NULL);
if(nRet !=SUCCESS)
return nRet;
nRet = L_AutoBinarizeBitmap(&LeadBitmap, 0, AUTO_BINARIZE_PRE_AUTO | AUTO_BINARIZE_THRESHOLD_AUTO);
if(nRet !=SUCCESS)
return nRet;
nRet = L_SaveBitmap(MAKE_IMAGE_PATH(TEXT("Result.BMP")), &LeadBitmap, FILE_BMP, 24, 0, NULL);
if(nRet !=SUCCESS)
return nRet;
//free bitmap
if(LeadBitmap.Flags.Allocated)
L_FreeBitmap(&LeadBitmap);
return SUCCESS;
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document