CIB image toolbox technical manual
6. Image processing algorithms: Filters
6.2. Binarization filters
The following chapters explain each filter. Usually there is also an example given. The input image for the filters is the following picture:
FBCITB_Binarizer
FengBinarizerFilter
GaussianBlurFilter
LocalOtsuBinarizer
MedianBlurAGTFilter
MedianBlurATFilter
MedianBlurGATFilter
NativeAdaptiveBinarizer
NiblackBinarizerFilter
NICKBinarizerFilter
OtsuBinarizer
PureAdaptiveGaussianThresholdingFilter
PureAdaptiveThresholdingFilter
SauvolaBinarizerFilter
ThresholdFilter
WolfJolionBinarizerFilter
COCOCLUST_Binarizer
Parameters: Threshold:45|CLAHEClipLimit:3.0|GaussianBlurKernelSize:19|CannyUpperThresholdCoeff:0.15 |
Output: |
Implementation of COCOCLUST binarization.
This binarizator is described in the publication Kasar, T. and Ramakrishnan, A.G., 2009. COCOCLUST: Contour-based color clustering for robust binarization of colored text. Proc. The Third CBDAR, pp.11-17.
Parameters of this filter can be described in profile:
<ProcessingProfile>
... <COCOCLUST_Binarizer> <Threshold>45</Threshold> <CLAHEClipLimit>3.0</CLAHEClipLimit> <GaussianBlurKernelSize>19</GaussianBlurKernelSize> <CannyUpperThresholdCoeff>0.15</CannyUpperThresholdCoeff> <CannyLowerThresholdCoeff>0.05</CannyLowerThresholdCoeff> <CannyMorphIters>4</CannyMorphIters> </COCOCLUST_Binarizer>
...
</ProcessingProfile>
Property name | Description | Default value |
Threshold | Threshold for preliminary clustering procedure | 45 |
CLAHEClipLimit | Parameter for CLAHE procedure | 3.0 |
GaussianBlurKernelSize | Parameter for Gaussian blur procedure | 19 |
CannyUpperThresholdCoeff | Coefficient for upper threshold of Canny edge detector | 0.15 |
CannyLowerThresholdCoeff | Coefficient for lower threshold of Canny edge detector | 0.05 |
CannyMorphIters | Parameter of morphology operations | 4 |
FBCITB_Binarizer
Parameters: UseCanny:1|UseVariancesMap:1 |
Output: |
Implementation of FBCITB binarization.
This binarizator is described in Kasar, T., Kumar, J. and Ramakrishnan, A.G., 2007, September. Font and background color independent text binarization. In Second international workshop on camera-based document analysis and recognition (pp. 3-9).
Parameters of this filter can be described in profile:
<ProcessingProfile>
... <FBCITB_Binarizer> <UseCanny>1</UseCanny> <UseVariancesMap>0</UseVariancesMap> <VarianceMapThreshold>200</VarianceMapThreshold> <CLAHEClipLimit>2.0</CLAHEClipLimit> <GaussianBlurKernelSize>9</GaussianBlurKernelSize> <CannyUpperThresholdCoeff>0.6</CannyUpperThresholdCoeff> <CannyLowerThresholdCoeff>0.4</CannyLowerThresholdCoeff> <BoundingRectangleMaxArea>0.3</BoundingRectangleMaxArea> </FBCITB_Binarizer>
...
</ProcessingProfile>
Property name |
Description |
Default value |
UseCanny |
Is not equal 0 if Canny border detection is required |
1 |
UseVariancesMap |
Is not equal 0 variances map is used for contour detection |
0 |
VarianceMapThreshold |
Variance threshold |
200 |
CLAHEClipLimit |
Parameter for CLAHE procedure |
2.0 |
GaussianBlurKernelSize |
Parameter for Gaussian blur procedure |
9 |
CannyUpperThresholdCoeff |
Coefficient for upper threshold of Canny edge detector |
0.6 |
CannyLowerThresholdCoeff |
Coefficient for lower threshold of Canny edge detector |
0.4 |
BoundingRectangleMaxArea |
Coefficient for the bounding rectangle area |
0.3 |
Parameters: WindowSize:21|Alpha1:0.7|k1:0.2|k2:0.03|Gamma:2.0|MorphIterationCount:2 |
Output: |
Implementation of Feng binarization.
This binarizator is described in Khurshid, K., Siddiqi, I., Faure, C. and Vincent, N., 2009, January. Comparison of Niblack inspired binarization methods for ancient documents. In Document Recognition and Retrieval XVI (Vol. 7247, p. 72470U). International Society for Optics and Photonics.
Parameters of this filter can be described in profile:
<ProcessingProfile>
... <FengBinarizerFilter> <WindowSize>21</WindowSize>
<Alpha1>0.7</Alpha1>
<k1>0.2</k1>
<k2>0.03</k2>
<Gamma>2.0</Gamma>
<MorphIterationCount>2</MorphIterationCount> </FengBinarizerFilter>
...
</ProcessingProfile>
Property name |
Description |
Default value |
WindowSize |
Size of sliding window |
21 |
Alpha1 |
Coefficient for threshold calculation |
0.7 |
k1 |
Coefficient for threshold calculation |
0.2 |
k2 |
Coefficient for threshold calculation |
0.03 |
Gamma |
Coefficient for threshold calculation |
2.0 |
MorphIterationCount |
Count of iterations of final dilate and erode operations |
2 |
GaussianBlurFilter
In image processing, a Gaussian blur is the result of blurring an image by a Gaussian function. This function used to reduce Image noise and detail.
Parameters of this filter can be described in profile:
Please note that “KernelSize” only accept odd numbers!
<?xml version="1.0" encoding="utf-8"?>
<algorithms>
<algorithm name="ImageManipulation" TracingEnabled="false" inputs="in1=$1" outputs="out4=$1">
<layer>
<processor params="KernelSize:21" type="GaussianBlurFilter" outputs="out4" inputs="in1" />
</layer>
</algorithm>
</algorithms>
LocalOtsuBinarizer
Parameters: CLAHEClipLimit:0.0|GaussianBlurKernelSize:19|CannyUpperThresholdCoeff:0.15|CannyLowerThresholdCoeff:0.01|MaxValue:255.0|CannyMorphIters:1 |
Output: |
Implementation of Otsu binarization algorithm.
Parameters of this filter can be described in profile:
<ProcessingProfile>
...
<LocalOtsuBinarizer> <MaxValue>255.0</MaxValue> <CLAHEClipLimit>0.0</CLAHEClipLimit> <GaussianBlurKernelSize>19</GaussianBlurKernelSize> <CannyUpperThresholdCoeff>0.15</CannyUpperThresholdCoeff> <CannyLowerThresholdCoeff>0.01</CannyLowerThresholdCoeff> <CannyMorphIters>1</CannyMorphIters> </LocalOtsuBinarizer>
...
</ProcessingProfile>
Property name |
Description |
Default value |
MaxValue |
Maximal value |
255.0 |
CLAHEClipLimit |
Parameter for CLAHE procedure |
0.0 |
GaussianBlurKernelSize |
Parameter for Gaussian blur procedure |
19 |
CannyUpperThresholdCoeff |
Coefficient for upper threshold of Canny edge detector |
0.15 |
CannyLowerThresholdCoeff |
Coefficient for lower threshold of Canny edge detector |
0.01 |
CannyMorphIters |
Parameter of morphology operations |
1 |
MedianBlurAGTFilter
Parameters: KernelSize:3|BlockSize:5|Shift:0.0|MaxValue:255.0 |
Output: |
Median blur + Adaptive Gaussian threshold filter.
Parameters of this filter can be described in profile:
<ProcessingProfile>
...
<MedianBlurAGTFilter> <KernelSize>3</KernelSize> <MaxValue>255.0</MaxValue> <BlockSize>5</BlockSize> <Shift>0.0</Shift>
</MedianBlurAGTFilter>
...
</ProcessingProfile>
Property name |
Description |
Default value |
KernelSize |
Size of kernel of median blur filter |
3 |
BlockSize |
Size of sliding window |
5 |
Shift |
Constant subtracted from the mean or weighted mean |
0.0 |
MaxValue |
Color of background of binarized image |
255.0 |
MedianBlurATFilter
Parameters: KernelSize:3|BlockSize:5|Shift:0.0|MaxValue:255.0 |
Output: |
Median blur + Adaptive threshold filter.
Parameters of this filter can be described in profile:
<ProcessingProfile>
...
<MedianBlurATFilter> <KernelSize>3</KernelSize> <MaxValue>255.0</MaxValue> <BlockSize>5</BlockSize> <Shift>0.0</Shift>
</MedianBlurATFilter>
...
</ProcessingProfile>
Property name |
Description |
Default value |
KernelSize |
Size of kernel of median blur filter |
3 |
BlockSize |
Size of sliding window |
5 |
Shift |
Constant subtracted from the mean or weighted mean |
0.0 |
MaxValue |
Color of background of binarized image |
255.0 |
MedianBlurGATFilter
Parameters: Default Parameters |
Output: |
Gaussian blur + Adaptive threshold filter.
Parameters of this filter can be described in profile:
<ProcessingProfile>
...
<MedianBlurGATFilter>
<KernelSize>3</KernelSize>
<SigmaX>10.0</SigmaX>
<SigmaY>0.0</SigmaY> <MaxValue>255.0</MaxValue> <BlockSize>5</BlockSize> <Shift>0.0</Shift>
</MedianBlurGATFilter>
...
</ProcessingProfile>
Property name |
Description |
Default value |
KernelSize |
Size of kernel of median blur filter |
3 |
SigmaX |
Sigma for horizontal direction |
10.0 |
SigmaY |
Sigma for vertical direction |
0.0 |
MaxValue |
Color of background of binarized image |
255.0 |
BlockSize |
Size of sliding window |
5 |
Shift |
Constant subtracted from the mean or weighted mean |
0.0 |
Parameters: Default Parameters |
Output: |
Native adaptive thresholding.
Parameters of this filter can be described in profile:
<ProcessingProfile>
...
<NativeAdaptiveBinarizer> <IsGaussianBlurReqiured>0</IsGaussianBlurReqiured> <MedianBlurKernelSize>5</MedianBlurKernelSize> <GaussianBlurKernelSize>3</GaussianBlurKernelSize>
<GaussianBlurSigma>150</GaussianBlurSigma <IsAdaptiveThresholdCalculatedByGaussian>1</IsAdaptiveThresholdCalculatedByGaussian> <AdaptiveThresholdingMaxValue>255.0</AdaptiveThresholdingMaxValue> <AdaptiveThresholdingBlockSize>19</AdaptiveThresholdingBlockSize> <AdaptiveThresholdingShift>8</AdaptiveThresholdingShift> <BilateralFilterBlockSize>5</BilateralFilterBlockSize> <BilateralFilterColorSigma>50.0</BilateralFilterColorSigma> <BilateralFilterSpaceSigma>50.0</BilateralFilterSpaceSigma>
</NativeAdaptiveBinarizer>
...
</ProcessingProfile>
Property name |
Description |
Default value |
IsGaussianBlurReqiured |
Flag of usage Gaussian blur |
0 |
MedianBlurKernelSize |
Kernel size for median blur |
5 |
GaussianBlurKernelSize |
Kernel size for Gaussian blur |
3 |
GaussianBlurSigma |
Gaussian blur sigma |
150 |
IsAdaptiveThresholdCalculatedByGaussian |
Flag of base of adaptive thresholding type |
1 |
AdaptiveThresholdingMaxValue |
New value for pixel which intensity greater than threshold value |
255.0 |
AdaptiveThresholdingBlockSize |
Kernel size for adaptive thresholding procedure |
19 |
AdaptiveThresholdingShift |
Shifting value for adaptive thresholding procedure |
8 |
BilateralFilterBlockSize |
Kernel size for bilateral filtration. If less than 0 then filtration isn't used |
5 |
BilateralFilterColorSigma |
Sigma for intensity range |
50.0 |
BilateralFilterSpaceSigma |
Sigma for space range |
50.0 |
NiblackBinarizerFilter
Parameters: WindowSize:101|ThresholdCoefficient:0.01|MorphIterationCount:2 |
Output: |
Implementation of Niblack binarization.
This binarizator is described in Khurshid, K., Siddiqi, I., Faure, C. and Vincent, N., 2009, January. Comparison of Niblack inspired binarization methods for ancient documents. In Document Recognition and Retrieval XVI (Vol. 7247, p. 72470U). International Society for Optics and Photonics.
Parameters of this filter can be described in profile:
<ProcessingProfile>
...
<NiblackBinarizerFilter> <WindowSize>101</WindowSize> <ThresholdCoefficient>0.01</ThresholdCoefficient> <MorphIterationCount>2</MorphIterationCount> </NiblackBinarizerFilter>
...
</ProcessingProfile>
Property name |
Description |
Default value |
WindowSize |
Size of sliding window |
101 |
ThresholdCoefficient |
Coefficient $k$ for threshold calculation |
0.01 |
MorphIterationCount |
Count of iterations of final dilate and erode operations |
2 |
NICKBinarizerFilter
Parameters: WindowSize:101|ThresholdCoefficient:0.01|MorphIterationCount:2 |
Output: |
Implementation of NICK binarization.
This binarizator is described in Khurshid, K., Siddiqi, I., Faure, C. and Vincent, N., 2009, January. Comparison of Niblack inspired binarization methods for ancient documents. In Document Recognition and Retrieval XVI (Vol. 7247, p. 72470U). International Society for Optics and Photonics.
Parameters of this filter can be described in profile:
<ProcessingProfile>
... <NICKBinarizerFilter> <WindowSize>101</WindowSize> <ThresholdCoefficient>0.01</ThresholdCoefficient> <MorphIterationCount>2</MorphIterationCount> </NICKBinarizerFilter>
...
</ProcessingProfile>
Property name |
Description |
Default value |
WindowSize |
Size of sliding window |
101 |
ThresholdCoefficient |
Coefficient $k$ for threshold calculation |
0.01 |
MorphIterationCount |
Count of iterations of final dilate and erode operations |
2 |
OtsuBinarizer
Parameters: MaxValue:255 |
Output: |
Interface for Otsu binarization algorithm.
Parameters of this filter can be described in profile:
<ProcessingProfile>
...
<OtsuBinarizer> <MaxValue>255.0</MaxValue>
</OtsuBinarizer>
...
</ProcessingProfile>
Property name |
Description |
Default value |
MaxValue |
Color of background of binarized image |
255.0 |
PureAdaptiveGaussianThresholdingFilter
Parameters: MaxValue:255|BlockSize:5|Shift:0.0 |
Output: |
Pure adaptive Gaussian thresholding filter.
Parameters of this filter can be described in profile:
<ProcessingProfile>...
<PureAdaptiveGaussianThresholdingFilter>
<MaxValue>255.0</MaxValue>
<BlockSize>5</BlockSize>
<Shift>0.0</Shift>
</PureAdaptiveGaussianThresholdingFilter>
...
</ProcessingProfile>
Property name |
Description |
Default value |
MaxValue |
Color of background of binarized image |
255.0 |
BlockSize |
Size of sliding window |
5 |
Shift |
Constant subtracted from the mean or weighted mean |
0.0 |
PureAdaptiveThresholdingFilter
Parameters: MaxValue:255|BlockSize:5|Shift:0.0 |
Output: |
Pure adaptive thresholding filter.
Parameters of this filter can be described in profile:
<ProcessingProfile>
...
<PureAdaptiveThresholdingFilter> <MaxValue>255.0</MaxValue> <BlockSize>5</BlockSize> <Shift>0.0</Shift>
</PureAdaptiveThresholdingFilter>
...
</ProcessingProfile>
Property name |
Description |
Default value |
MaxValue |
Color of background of binarized image |
255.0 |
BlockSize |
Size of sliding window |
5 |
Shift |
Constant subtracted from the mean or weighted mean |
0.0 |
SauvolaBinarizerFilter
Parameters: WindowSize:101|ThresholdCoefficient:0.00|MorphIterationCount:2 |
Output: |
Implementation of Sauvola binarization.
This binarizator is described in Shafait, F., Keysers, D. and Breuel, T.M., 2008, January. Efficient implementation of local adaptive thresholding techniques using integral images. In Document recognition and retrieval XV (Vol. 6815, p. 681510). International Society for Optics and Photonics.
Parameters of this filter can be described in profile:
<ProcessingProfile>
... <SauvolaBinarizerFilter> <WindowSize>101</WindowSize> <ThresholdCoefficient>0.01</ThresholdCoefficient> <MorphIterationCount>2</MorphIterationCount> </SauvolaBinarizerFilter>
...
</ProcessingProfile>
Property name |
Description |
Default value |
WindowSize |
Size of sliding window |
101 |
ThresholdCoefficient |
Coefficient for threshold calculation |
0.01 |
MorphIterationCount |
Count of iterations of final dilate and erode operations |
2 |
Parameters: ThresholdValues:100;128;90 |
Output: |
Pure thresholding binarizator.
Parameters of this filter can be described in profile:
<ProcessingProfile>
...
<ThresholdFilter>
<ThresholdValues>100;128;90</ThresholdValues>
</ThresholdFilter>
...
</ProcessingProfile>
Property name |
Description |
Default value |
ThresholdValues |
Values of threshold for each color channel |
100; 128; 90 |
Also we can define equal value of thresholds for each channel:
<ProcessingProfile>
...
<ThresholdFilter>
<ThresholdValues>128</ThresholdValues>
</ThresholdFilter>
...
</ProcessingProfile>
WolfJolionBinarizerFilter
Parameters: WindowSize:101|ThresholdCoefficient:0.00|MorphIterationCount:2 |
Output: |
Implementation of WolfJolion binarization.
This binarizator is described in Khurshid, K., Siddiqi, I., Faure, C. and Vincent, N., 2009, January. Comparison of Niblack inspired binarization methods for ancient documents. In Document Recognition and Retrieval XVI (Vol. 7247, p. 72470U). International Society for Optics and Photonics.
Parameters of this filter can be described in profile:
<ProcessingProfile>
...
<WolfJolionBinarizerFilter> <WindowSize>101</WindowSize> <ThresholdCoefficient>0.01</ThresholdCoefficient> <MorphIterationCount>2</MorphIterationCount> </WolfJolionBinarizerFilter>
...
</ProcessingProfile>
Property name |
Description |
Default value |
WindowSize |
Size of sliding window |
101 |
ThresholdCoefficient |
Coefficient for threshold calculation |
0.01 |
MorphIterationCount |
Count of iterations of final dilate and erode operations |
2 |