ClassesClassesClassesClasses | | | | Operators

saddle_points_sub_pixT_saddle_points_sub_pixSaddlePointsSubPixsaddle_points_sub_pixSaddlePointsSubPixSaddlePointsSubPix (Operator)

Name

saddle_points_sub_pixT_saddle_points_sub_pixSaddlePointsSubPixsaddle_points_sub_pixSaddlePointsSubPixSaddlePointsSubPix — Subpixel precise detection of saddle points in an image.

Signature

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

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

Herror saddle_points_sub_pix(Hobject Image, const HTuple& Filter, const HTuple& Sigma, const HTuple& Threshold, HTuple* Row, HTuple* Column)

HTuple HImage::SaddlePointsSubPix(const HTuple& Filter, const HTuple& Sigma, const HTuple& Threshold, HTuple* Column) const

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

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

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

void HOperatorSetX.SaddlePointsSubPix(
[in] IHUntypedObjectX* Image, [in] VARIANT Filter, [in] VARIANT Sigma, [in] VARIANT Threshold, [out] VARIANT* Row, [out] VARIANT* Column)

VARIANT HImageX.SaddlePointsSubPix(
[in] BSTR Filter, [in] double Sigma, [in] double Threshold, [out] VARIANT* Column)

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

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

Description

saddle_points_sub_pixsaddle_points_sub_pixSaddlePointsSubPixsaddle_points_sub_pixSaddlePointsSubPixSaddlePointsSubPix extracts saddle points from the image ImageImageImageImageImageimage with subpixel precision, i.e., points where along one direction the image intensity is minimal while at the same time along a different direction the image intensity is maximal. 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 saddle points. 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 FilterFilterFilterFilterFilterfilter. In the first case, SigmaSigmaSigmaSigmaSigmasigma 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 SigmaSigmaSigmaSigmaSigmasigma. Therefore, 'facet'"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 saddle point if the absolute values of both eigenvalues of the Hessian matrix are greater than ThresholdThresholdThresholdThresholdThresholdthreshold but their signs differ. The eigenvalues correspond to the curvature of the gray value surface.

saddle_points_sub_pixsaddle_points_sub_pixSaddlePointsSubPixsaddle_points_sub_pixSaddlePointsSubPixSaddlePointsSubPix is especially useful for the detection of corners, where fields of different intensity join together like the black and white fields of a chess board. Their high contrast and shape facilitate the location and the determination of the precise position of such corners.

Parallelization

Parameters

ImageImageImageImageImageimage (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte / int1 / int2 / uint2 / int4 / real)

Input image.

FilterFilterFilterFilterFilterfilter (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Method for the calculation of the partial derivatives.

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

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

SigmaSigmaSigmaSigmaSigmasigma (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Sigma of the Gaussian. If FilterFilterFilterFilterFilterfilter is 'facet', SigmaSigmaSigmaSigmaSigmasigma 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

ThresholdThresholdThresholdThresholdThresholdthreshold (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Minimum absolute value of the eigenvalues of the Hessian matrix.

Default value: 5.0

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

Restriction: Threshold >= 0.0

RowRowRowRowRowrow (output_control)  point.y-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Row coordinates of the detected saddle points.

ColumnColumnColumnColumnColumncolumn (output_control)  point.x-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Column coordinates of the detected saddle points.

Result

saddle_points_sub_pixsaddle_points_sub_pixSaddlePointsSubPixsaddle_points_sub_pixSaddlePointsSubPixSaddlePointsSubPix 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>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>). If necessary, an exception is raised.

Possible Successors

gen_cross_contour_xldgen_cross_contour_xldGenCrossContourXldgen_cross_contour_xldGenCrossContourXldGenCrossContourXld, disp_crossdisp_crossDispCrossdisp_crossDispCrossDispCross

Alternatives

critical_points_sub_pixcritical_points_sub_pixCriticalPointsSubPixcritical_points_sub_pixCriticalPointsSubPixCriticalPointsSubPix, local_min_sub_pixlocal_min_sub_pixLocalMinSubPixlocal_min_sub_pixLocalMinSubPixLocalMinSubPix, local_max_sub_pixlocal_max_sub_pixLocalMaxSubPixlocal_max_sub_pixLocalMaxSubPixLocalMaxSubPix

Module

Foundation


ClassesClassesClassesClasses | | | | Operators