VeryPDF Dynamic Thresholding SDK can be downloaded from following web page,
https://www.verypdf.com/app/papertools/try-and-buy.html#buy
VeryPDF Dynamic Thresholding SDK allows you to convert 256 gray-levels images and color images into monochrome ones using Dynamic Thresholding.
This means that threshold value for binarizing image is not fixed but it is dynamic. It's calculated to be independent from changes both in foreground darkness and in background lightness and in illumination level.
By adjusting contrast levels automatically, Dynamic Thresholding increases the accuracy of low-contrast documents containing hand-written or typed characters with variable lines thickness and darkness:
Considering these variations the system adjusts the threshold value automatically, allowing the image to preserve light foreground details and to eliminate dark background zones in a smart way. The final result is an optimal monochrome image suitable for better visualization, better compression, better optical character recognition and better automatic vectorization.
No operator's intervention is required for manual threshold adjustments!
With this library you can have better results than the ones reached using an image scanner with an expensive hardware board supporting dynamic thresholding.
The following is a C# source code example to convert color and grayscale images to monochrome images with Dynamic Thresholding, "-threshold 0" parameter will use Dynamic Thresholding automatically,
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
System.Type VeryPDFType = System.Type.GetTypeFromProgID("VeryPDF.PaperToolsCom");
VeryPDF.PaperToolsCom VeryPDFCom = (VeryPDF.PaperToolsCom)System.Activator.CreateInstance(VeryPDFType);
string appFolder = Path.GetDirectoryName(Application.ExecutablePath);
string strFolder = Directory.GetParent(appFolder).FullName;
string strReturn = "";
int nFileIndex = 0;
VeryPDFCom.EnableDebugLog(true);
string strInFile = strFolder + "\\sample\\test_table_ocr.tif";
string strOutFile = strFolder + "\\sample\\output\\_output_" + nFileIndex.ToString() + ".tif";
string strCmd = "-$ XXXXXXXXXXXXXXXXXX -threshold 0 \"" + strInFile + "\" \"" + strOutFile + "\"";
strReturn = strReturn + VeryPDFCom.PaperTools(strCmd);
VeryPDF Dynamic Thresholding SDK can be downloaded from following web page,
https://www.verypdf.com/app/papertools/try-and-buy.html#buy
https://www.verypdf.com/dl2.php/papertoolssdk.zip