critical_points_sub_pixT_critical_points_sub_pixCriticalPointsSubPixCriticalPointsSubPixcritical_points_sub_pix (Operator)
Name
critical_points_sub_pixT_critical_points_sub_pixCriticalPointsSubPixCriticalPointsSubPixcritical_points_sub_pix
— Subpixel precise detection of critical points in an image.
Signature
void CriticalPointsSubPix(const HObject& Image, const HTuple& Filter, const HTuple& Sigma, const HTuple& Threshold, HTuple* RowMin, HTuple* ColumnMin, HTuple* RowMax, HTuple* ColumnMax, HTuple* RowSaddle, HTuple* ColumnSaddle)
void HImage::CriticalPointsSubPix(const HString& Filter, double Sigma, double Threshold, HTuple* RowMin, HTuple* ColumnMin, HTuple* RowMax, HTuple* ColumnMax, HTuple* RowSaddle, HTuple* ColumnSaddle) const
void HImage::CriticalPointsSubPix(const char* Filter, double Sigma, double Threshold, HTuple* RowMin, HTuple* ColumnMin, HTuple* RowMax, HTuple* ColumnMax, HTuple* RowSaddle, HTuple* ColumnSaddle) const
void HImage::CriticalPointsSubPix(const wchar_t* Filter, double Sigma, double Threshold, HTuple* RowMin, HTuple* ColumnMin, HTuple* RowMax, HTuple* ColumnMax, HTuple* RowSaddle, HTuple* ColumnSaddle) const
(Windows only)
static void HOperatorSet.CriticalPointsSubPix(HObject image, HTuple filter, HTuple sigma, HTuple threshold, out HTuple rowMin, out HTuple columnMin, out HTuple rowMax, out HTuple columnMax, out HTuple rowSaddle, out HTuple columnSaddle)
void HImage.CriticalPointsSubPix(string filter, double sigma, double threshold, out HTuple rowMin, out HTuple columnMin, out HTuple rowMax, out HTuple columnMax, out HTuple rowSaddle, out HTuple columnSaddle)
def critical_points_sub_pix(image: HObject, filter: str, sigma: float, threshold: float) -> Tuple[Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float]]
Description
critical_points_sub_pixcritical_points_sub_pixCriticalPointsSubPixCriticalPointsSubPixCriticalPointsSubPixcritical_points_sub_pix
extracts critical points, i.e., local
maxima, local minima, and saddle points, from the image ImageImageImageImageimageimage
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
extremal values and 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 critical point if the absolute values of both
eigenvalues of the Hessian matrix are greater than ThresholdThresholdThresholdThresholdthresholdthreshold
. The
eigenvalues correspond to the curvature of the gray
value surface. If both eigenvalues are negative, the point is a local
maximum, if both are positive, a local minimum, and if they have different
signs, a saddle point.
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
ImageImageImageImageimageimage
(input_object) singlechannelimage →
objectHImageHObjectHImageHobject (byte / int1 / int2 / uint2 / int4 / real)
Input image.
FilterFilterFilterFilterfilterfilter
(input_control) string →
HTuplestrHTupleHtuple (string) (string) (HString) (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"
ThresholdThresholdThresholdThresholdthresholdthreshold
(input_control) real →
HTuplefloatHTupleHtuple (real) (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
RowMinRowMinRowMinRowMinrowMinrow_min
(output_control) point.y-array →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Row coordinates of the detected minima.
ColumnMinColumnMinColumnMinColumnMincolumnMincolumn_min
(output_control) point.x-array →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Column coordinates of the detected minima.
RowMaxRowMaxRowMaxRowMaxrowMaxrow_max
(output_control) point.y-array →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Row coordinates of the detected maxima.
ColumnMaxColumnMaxColumnMaxColumnMaxcolumnMaxcolumn_max
(output_control) point.x-array →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Column coordinates of the detected maxima.
RowSaddleRowSaddleRowSaddleRowSaddlerowSaddlerow_saddle
(output_control) point.y-array →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Row coordinates of the detected saddle points.
ColumnSaddleColumnSaddleColumnSaddleColumnSaddlecolumnSaddlecolumn_saddle
(output_control) point.x-array →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Column coordinates of the detected saddle points.
Result
critical_points_sub_pixcritical_points_sub_pixCriticalPointsSubPixCriticalPointsSubPixCriticalPointsSubPixcritical_points_sub_pix
returns 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>)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_xldGenCrossContourXldGenCrossContourXldGenCrossContourXldgen_cross_contour_xld
,
disp_crossdisp_crossDispCrossDispCrossDispCrossdisp_cross
Alternatives
local_min_sub_pixlocal_min_sub_pixLocalMinSubPixLocalMinSubPixLocalMinSubPixlocal_min_sub_pix
,
local_max_sub_pixlocal_max_sub_pixLocalMaxSubPixLocalMaxSubPixLocalMaxSubPixlocal_max_sub_pix
,
saddle_points_sub_pixsaddle_points_sub_pixSaddlePointsSubPixSaddlePointsSubPixSaddlePointsSubPixsaddle_points_sub_pix
See also
local_minlocal_minLocalMinLocalMinLocalMinlocal_min
,
local_maxlocal_maxLocalMaxLocalMaxLocalMaxlocal_max
,
plateausplateausPlateausPlateausPlateausplateaus
,
plateaus_centerplateaus_centerPlateausCenterPlateausCenterPlateausCenterplateaus_center
,
lowlandslowlandsLowlandsLowlandsLowlandslowlands
,
lowlands_centerlowlands_centerLowlandsCenterLowlandsCenterLowlandsCenterlowlands_center
Module
Foundation