local_threshold — Segment an image using local thresholding.
local_threshold segments a single-channel image Image using the thresholding method given in Method and returns the segmented region in Region. Currently the operator offers only the Method 'adapted_std_deviation'. This algorithm is a text binarization technique and provides good results for document images.
By selecting Method = 'adapted_std_deviation', a locally adaptive thresholding based on local mean and standard deviation according to Sauvola (see the paper in References) is invoked. The algorithm is able to segment document images even if they are degraded, e.g., due to inhomogeneous illumination or noise. It enables text binarization on an inhomogeneous background by taking into account the local contrast.
For a segmentation of the dark foreground (see parameter LightDark), for a pixel at position (r,c), a local threshold T(r,c) is calculated within a window of size mask_size x mask_size (see the generic parameter 'mask_size') as follows:
The parameter LightDark controls, whether light or dark structures are segmented.
If LightDark = 'dark', dark structures on a light background are segmented. Every pixel p(r,c) whose gray value is smaller than the calculated local threshold T(r,c) is selected.
By setting GenParamName to one of the following values, additional parameters specific for the 'adapted_std_deviation' method can be set with GenParamValue:
specifies the mask size, i.e., the size of the neighborhood in which the local threshold is calculated. The smaller the window size the thinner the segmented strokes. 'mask_size' must be set to a value that is larger than the stroke width of the characters or structures to be segmented. If 'mask_size' is even, the next larger odd value is used.
Suggested values: 15 (default), 21, 31
sets the parameter k (), that controls how much the threshold value differs from the local mean value. Use smaller values for 'scale' to also segment structures with a lower contrast to their background. Use larger values to suppress clutter.
Suggested values: 0.2 (default), 0.3, 0.5
sets the maximum assumed value of standard deviation R . This parameter should be adapted based on the expected gray value range. As a rule of thumb, the value for 'range' can be set to , where MinGray and MaxGray are the minimum and maximum gray values in the image, which can be determined with min_max_gray.
Suggested values: 128 (default) for byte images, 32767.5 (default) for uint2 images
Segmented output region.
Default value: 'adapted_std_deviation'
List of values: 'adapted_std_deviation'
Extract foreground or background?
Default value: 'dark'
List of values: 'dark', 'light'
List of generic parameter names.
Default value: 
List of values: 'mask_size', 'range', 'scale'
List of generic parameter values.
Default value: 
Suggested values: 0.2, 15, 30, 128.0
connection, select_shape, select_gray
auto_threshold, binary_threshold, char_threshold
J. Sauvola, M. Pietikäinen, “Adaptive document image binarization", Pattern Recognition, 33, 225-236 (2000)