bundles / skimage 0.26.1rc0.dev0+git20260530.b607368ff / skimage / filters / thresholding / threshold_li
function
skimage.filters.thresholding:threshold_li
source: /dev/scikit-image/src/skimage/filters/thresholding.py :639
Signature
def threshold_li ( image , * , tolerance = None , initial_guess = None , iter_callback = None ) Summary
Compute threshold value by Li's iterative Minimum Cross Entropy method.
Parameters
image: (M, N[, ...]) ndarrayGrayscale input image.
tolerance: float, optionalFinish the computation when the change in the threshold in an iteration is less than this value. By default, this is half the smallest difference between intensity values in
image.initial_guess: float or Callable[[array[float]], float], optionalLi's iterative method uses gradient descent to find the optimal threshold. If the image intensity histogram contains more than two modes (peaks), the gradient descent could get stuck in a local optimum. An initial guess for the iteration can help the algorithm find the globally-optimal threshold. A float value defines a specific start point, while a callable should take in an array of image intensities and return a float value. Example valid callables include
numpy.mean(default),lambda arr: numpy.quantile(arr, 0.95), or even skimage.filters.threshold_otsu.iter_callback: Callable[[float], Any], optionalA function that will be called on the threshold at every iteration of the algorithm.
Returns
threshold: floatUpper threshold value. All pixels with an intensity higher than this value are assumed to be foreground.
Examples
from skimage.data import camera image = camera() thresh = threshold_li(image) binary = image > thresh✓
Aliases
-
skimage.filters.threshold_li