binary_thresholdbinary_thresholdBinaryThresholdBinaryThresholdbinary_threshold (算子名称)

名称

binary_thresholdbinary_thresholdBinaryThresholdBinaryThresholdbinary_threshold — Segment an image using binary thresholding.

参数签名

binary_threshold(Image : 区域 : Method, LightDark : UsedThreshold)

Herror binary_threshold(const Hobject Image, Hobject* 区域, const char* Method, const char* LightDark, Hlong* UsedThreshold)

Herror T_binary_threshold(const Hobject Image, Hobject* 区域, const Htuple Method, const Htuple LightDark, Htuple* UsedThreshold)

void BinaryThreshold(const HObject& Image, HObject* 区域, const HTuple& Method, const HTuple& LightDark, HTuple* UsedThreshold)

HRegion HImage::BinaryThreshold(const HString& Method, const HString& LightDark, HTuple* UsedThreshold) const

HRegion HImage::BinaryThreshold(const HString& Method, const HString& LightDark, Hlong* UsedThreshold) const

HRegion HImage::BinaryThreshold(const char* Method, const char* LightDark, Hlong* UsedThreshold) const

HRegion HImage::BinaryThreshold(const wchar_t* Method, const wchar_t* LightDark, Hlong* UsedThreshold) const   ( Windows only)

static void HOperatorSet.BinaryThreshold(HObject image, out HObject 区域, HTuple method, HTuple lightDark, out HTuple usedThreshold)

HRegion HImage.BinaryThreshold(string method, string lightDark, out HTuple usedThreshold)

HRegion HImage.BinaryThreshold(string method, string lightDark, out int usedThreshold)

def binary_threshold(image: HObject, method: str, light_dark: str) -> Tuple[HObject, Sequence[Union[str, int]]]

def binary_threshold_s(image: HObject, method: str, light_dark: str) -> Tuple[HObject, Union[str, int]]

描述

binary_thresholdbinary_thresholdBinaryThresholdBinaryThresholdBinaryThresholdbinary_threshold segments a single-channel ImageImageImageImageimageimage using an automatically determined global threshold and returns the segmented region in 区域区域区域区域区域区域. This is, e.g., useful for the segmentation of characters on a homogeneously illuminated background. binary_thresholdbinary_thresholdBinaryThresholdBinaryThresholdBinaryThresholdbinary_threshold also returns the used threshold in UsedThresholdUsedThresholdUsedThresholdUsedThresholdusedThresholdused_threshold.

The used threshold is determined by the method that is given in MethodMethodMethodMethodmethodmethod. Currently the operator provides the following two methods: 'max_separability'"max_separability""max_separability""max_separability""max_separability""max_separability" and 'smooth_histo'"smooth_histo""smooth_histo""smooth_histo""smooth_histo""smooth_histo". Both methods should only be used for images that have a bimodal histogram.

The method 'smooth_histo'"smooth_histo""smooth_histo""smooth_histo""smooth_histo""smooth_histo" provides the same functionality that has been provided by the operator bin_thresholdbin_thresholdBinThresholdBinThresholdBinThresholdbin_threshold. The method 'max_separability'"max_separability""max_separability""max_separability""max_separability""max_separability" tends to determine smaller values for UsedThresholdUsedThresholdUsedThresholdUsedThresholdusedThresholdused_threshold. Furthermore, it is less sensitive to thin isolated peaks in the histogram that are far from the rest of the spectrum and often, it is faster than 'smooth_histo'"smooth_histo""smooth_histo""smooth_histo""smooth_histo""smooth_histo".

Maximize separability

By selecting MethodMethodMethodMethodmethodmethod = 'max_separability'"max_separability""max_separability""max_separability""max_separability""max_separability", automatic thresholding based on the gray-level histogram according to Otsu (see the paper in References) is invoked. The algorithm first calculates the histogram of the image and then uses statistical moments to find the optimal threshold that divides the pixels into foreground and background and maximizes the separability between these two classes. This method is only available for byte and uint2 images.

Histogram smoothing

By selecting MethodMethodMethodMethodmethodmethod = 'smooth_histo'"smooth_histo""smooth_histo""smooth_histo""smooth_histo""smooth_histo" binary_thresholdbinary_thresholdBinaryThresholdBinaryThresholdBinaryThresholdbinary_threshold determines the threshold in the following way: First, the relative histogram of the gray values is determined. Then, relevant minima are extracted from the histogram, which are used as parameters for a thresholding operation. In order to reduce the number of minima, the histogram is smoothed with a Gaussian, as in auto_thresholdauto_thresholdAutoThresholdAutoThresholdAutoThresholdauto_threshold. The mask size is enlarged until there is only one minimum in the smoothed histogram. Then, the threshold is set to the position of this minimum.

运行信息

参数表

ImageImageImageImageimageimage (input_object)  singlechannelimage(-array) objectHImageHObjectHImageHobject (byte / uint2)

Input Image.

区域区域区域区域区域区域 (output_object)  region(-array) objectHRegionHObjectHRegionHobject *

Segmented output region.

MethodMethodMethodMethodmethodmethod (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Segmentation method.

Default: 'max_separability' "max_separability" "max_separability" "max_separability" "max_separability" "max_separability"

List of values: 'max_separability'"max_separability""max_separability""max_separability""max_separability""max_separability", 'smooth_histo'"smooth_histo""smooth_histo""smooth_histo""smooth_histo""smooth_histo"

LightDarkLightDarkLightDarkLightDarklightDarklight_dark (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Extract foreground or background?

Default: 'dark' "dark" "dark" "dark" "dark" "dark"

List of values: 'dark'"dark""dark""dark""dark""dark", 'light'"light""light""light""light""light"

UsedThresholdUsedThresholdUsedThresholdUsedThresholdusedThresholdused_threshold (output_control)  number(-array) HTupleSequence[Union[str, int]]HTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Used threshold.

可能的后置算子

connectionconnectionConnectionConnectionConnectionconnection, select_shapeselect_shapeSelectShapeSelectShapeSelectShapeselect_shape, select_grayselect_graySelectGraySelectGraySelectGrayselect_gray

可替代算子

auto_thresholdauto_thresholdAutoThresholdAutoThresholdAutoThresholdauto_threshold, char_thresholdchar_thresholdCharThresholdCharThresholdCharThresholdchar_threshold, local_thresholdlocal_thresholdLocalThresholdLocalThresholdLocalThresholdlocal_threshold

参考其它

gray_histogray_histoGrayHistoGrayHistoGrayHistogray_histo, thresholdthresholdThresholdThresholdThresholdthreshold

References

N. Otsu, “A threshold selection method from gray level histograms", IEEE Trans. Syst. Man. Cybern., Vol. SMC-9, 62-66 (1979).

模块

Foundation