Operator Reference

local_min_sub_pixT_local_min_sub_pixLocalMinSubPixLocalMinSubPixlocal_min_sub_pix (Operator)

local_min_sub_pixT_local_min_sub_pixLocalMinSubPixLocalMinSubPixlocal_min_sub_pix — Subpixel precise detection of local minima in an image.

Signature

local_min_sub_pix(Image : : Filter, Sigma, Threshold : Row, Column)

Herror T_local_min_sub_pix(const Hobject Image, const Htuple Filter, const Htuple Sigma, const Htuple Threshold, Htuple* Row, Htuple* Column)

void LocalMinSubPix(const HObject& Image, const HTuple& Filter, const HTuple& Sigma, const HTuple& Threshold, HTuple* Row, HTuple* Column)

void HImage::LocalMinSubPix(const HString& Filter, double Sigma, double Threshold, HTuple* Row, HTuple* Column) const

void HImage::LocalMinSubPix(const char* Filter, double Sigma, double Threshold, HTuple* Row, HTuple* Column) const

void HImage::LocalMinSubPix(const wchar_t* Filter, double Sigma, double Threshold, HTuple* Row, HTuple* Column) const   ( Windows only)

static void HOperatorSet.LocalMinSubPix(HObject image, HTuple filter, HTuple sigma, HTuple threshold, out HTuple row, out HTuple column)

void HImage.LocalMinSubPix(string filter, double sigma, double threshold, out HTuple row, out HTuple column)

def local_min_sub_pix(image: HObject, filter: str, sigma: float, threshold: float) -> Tuple[Sequence[float], Sequence[float]]

Description

local_min_sub_pixlocal_min_sub_pixLocalMinSubPixLocalMinSubPixlocal_min_sub_pix extracts local minima from the image ImageImageImageimageimage with subpixel precision. To do so, in each point the input image is approximated by a quadratic polynomial in x and y and subsequently the polynomial is examined for local minima. The partial derivatives, which are necessary for setting up the polynomial, are calculated either with various Gaussian derivatives or using the facet model, depending on FilterFilterFilterfilterfilter. In the first case, SigmaSigmaSigmasigmasigma determines the size of the Gaussian kernels, while in the second case, before being processed the input image is smoothed by a Gaussian whose size is determined by SigmaSigmaSigmasigmasigma. Therefore, 'facet'"facet""facet""facet""facet" results in a faster extraction at the expense of slightly less accurate results. A point is accepted to be a local minimum if both eigenvalues of the Hessian matrix are greater than ThresholdThresholdThresholdthresholdthreshold. The eigenvalues correspond to the curvature of the gray value surface.

Attention

Note that filter operators may return unexpected results if an image with a reduced domain is used as input. Please refer to the chapter Filters.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Automatically parallelized on internal data level.

Parameters

ImageImageImageimageimage (input_object)  singlechannelimage objectHImageHObjectHObjectHobject (byte / int1 / int2 / uint2 / int4 / real)

Input image.

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

Method for the calculation of the partial derivatives.

Default: 'facet' "facet" "facet" "facet" "facet"

List of values: 'facet'"facet""facet""facet""facet", 'gauss'"gauss""gauss""gauss""gauss"

SigmaSigmaSigmasigmasigma (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Sigma of the Gaussian. If FilterFilterFilterfilterfilter is 'facet', SigmaSigmaSigmasigmasigma may be 0.0 to avoid the smoothing of the input image.

Suggested values: 0.7, 0.8, 0.9, 1.0, 1.2, 1.5, 2.0, 3.0

Restriction: Sigma >= 0.0

ThresholdThresholdThresholdthresholdthreshold (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Minimum absolute value of the eigenvalues of the Hessian matrix.

Default: 5.0

Suggested values: 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0

Restriction: Threshold >= 0.0

RowRowRowrowrow (output_control)  point.y-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Row coordinates of the detected minima.

ColumnColumnColumncolumncolumn (output_control)  point.x-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Column coordinates of the detected minima.

Result

local_min_sub_pixlocal_min_sub_pixLocalMinSubPixLocalMinSubPixlocal_min_sub_pix returns 2 ( H_MSG_TRUE) if all parameters are correct and no error occurs during the execution. If the input is empty the behavior can be set via set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>). If necessary, an exception is raised.

Possible Successors

gen_cross_contour_xldgen_cross_contour_xldGenCrossContourXldGenCrossContourXldgen_cross_contour_xld, disp_crossdisp_crossDispCrossDispCrossdisp_cross

Alternatives

critical_points_sub_pixcritical_points_sub_pixCriticalPointsSubPixCriticalPointsSubPixcritical_points_sub_pix, local_max_sub_pixlocal_max_sub_pixLocalMaxSubPixLocalMaxSubPixlocal_max_sub_pix, saddle_points_sub_pixsaddle_points_sub_pixSaddlePointsSubPixSaddlePointsSubPixsaddle_points_sub_pix

See also

local_minlocal_minLocalMinLocalMinlocal_min, lowlandslowlandsLowlandsLowlandslowlands, lowlands_centerlowlands_centerLowlandsCenterLowlandsCenterlowlands_center

Module

Foundation