local_thresholdlocal_thresholdLocalThresholdlocal_thresholdLocalThresholdLocalThreshold segments a single-channel image ImageImageImageImageImageimage
using the thresholding method given in MethodMethodMethodMethodMethodmethod and returns the
segmented region in RegionRegionRegionRegionRegionregion. Currently the operator offers only the
Method 'adapted_std_deviation'"adapted_std_deviation""adapted_std_deviation""adapted_std_deviation""adapted_std_deviation""adapted_std_deviation". This algorithm is a text
binarization technique and provides good results for document images.
'adapted_std_deviation'
By selecting MethodMethodMethodMethodMethodmethod = 'adapted_std_deviation'"adapted_std_deviation""adapted_std_deviation""adapted_std_deviation""adapted_std_deviation""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
LightDarkLightDarkLightDarkLightDarkLightDarklightDark), 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'"mask_size""mask_size""mask_size""mask_size""mask_size") as follows:
where is the local mean value
within the window and denotes
the corresponding standard deviation. The parameter
R (see 'range'"range""range""range""range""range") is the assumed maximum
value of the standard deviation (R = 128 for
byte images) and k (see 'scale'"scale""scale""scale""scale""scale") a
parameter that controls how much the threshold value
T(r,c) differs from the mean value
. If there is high contrast in the
neighborhood of a point (r,c) the standard
deviation has a value close to
R which yields a threshold value
T(r,c) close to the local mean
. If the contrast is low, the local
threshold is below the local mean value. For dark text on light
background containing also darker regions, this lower threshold
enables the segmentation of the text even in darker areas.
If LightDarkLightDarkLightDarkLightDarkLightDarklightDark = 'dark'"dark""dark""dark""dark""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.
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'"mask_size""mask_size""mask_size""mask_size""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'"mask_size""mask_size""mask_size""mask_size""mask_size" is even, the next larger odd value is
used.
Suggested values: 15(default),
21, 31
'scale'"scale""scale""scale""scale""scale":
sets the parameter k (), that controls how much the threshold
value differs from the local mean value. Use smaller values for
'scale'"scale""scale""scale""scale""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
'range'"range""range""range""range""range":
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'"range""range""range""range""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_graymin_max_grayMinMaxGraymin_max_grayMinMaxGrayMinMaxGray.
Suggested values: 128(default) for byte images, 32767.5(default) for uint2 images
List of values: 'adapted_std_deviation'"adapted_std_deviation""adapted_std_deviation""adapted_std_deviation""adapted_std_deviation""adapted_std_deviation"
List of values: 'mask_size'"mask_size""mask_size""mask_size""mask_size""mask_size", 'range'"range""range""range""range""range", 'scale'"scale""scale""scale""scale""scale"