Skip to content

points_harris_binomialPointsHarrisBinomialPointsHarrisBinomialpoints_harris_binomialT_points_harris_binomialπŸ”—

Short descriptionπŸ”—

points_harris_binomialPointsHarrisBinomialPointsHarrisBinomialpoints_harris_binomialT_points_harris_binomial β€” Detect points of interest using the binomial approximation of the Harris operator.

SignatureπŸ”—

points_harris_binomial( image Image, integer MaskSizeGrad, integer MaskSizeSmooth, real Alpha, number Threshold, string Subpix, out point.y Row, out point.x Column )void PointsHarrisBinomial( const HObject& Image, const HTuple& MaskSizeGrad, const HTuple& MaskSizeSmooth, const HTuple& Alpha, const HTuple& Threshold, const HTuple& Subpix, HTuple* Row, HTuple* Column )static void HOperatorSet.PointsHarrisBinomial( HObject image, HTuple maskSizeGrad, HTuple maskSizeSmooth, HTuple alpha, HTuple threshold, HTuple subpix, out HTuple row, out HTuple column )def points_harris_binomial( image: HObject, mask_size_grad: int, mask_size_smooth: int, alpha: float, threshold: Union[float, int], subpix: str ) -> Tuple[Sequence[float], Sequence[float]]

Herror T_points_harris_binomial( const Hobject Image, const Htuple MaskSizeGrad, const Htuple MaskSizeSmooth, const Htuple Alpha, const Htuple Threshold, const Htuple Subpix, Htuple* Row, Htuple* Column )

void HImage::PointsHarrisBinomial( Hlong MaskSizeGrad, Hlong MaskSizeSmooth, double Alpha, const HTuple& Threshold, const HString& Subpix, HTuple* Row, HTuple* Column ) const

void HImage::PointsHarrisBinomial( Hlong MaskSizeGrad, Hlong MaskSizeSmooth, double Alpha, double Threshold, const HString& Subpix, HTuple* Row, HTuple* Column ) const

void HImage::PointsHarrisBinomial( Hlong MaskSizeGrad, Hlong MaskSizeSmooth, double Alpha, double Threshold, const char* Subpix, HTuple* Row, HTuple* Column ) const

void HImage::PointsHarrisBinomial( Hlong MaskSizeGrad, Hlong MaskSizeSmooth, double Alpha, double Threshold, const wchar_t* Subpix, HTuple* Row, HTuple* Column ) const (Windows only)

void HImage.PointsHarrisBinomial( int maskSizeGrad, int maskSizeSmooth, double alpha, HTuple threshold, string subpix, out HTuple row, out HTuple column )

void HImage.PointsHarrisBinomial( int maskSizeGrad, int maskSizeSmooth, double alpha, double threshold, string subpix, out HTuple row, out HTuple column )

DescriptionπŸ”—

points_harrisPointsHarris extracts points of interest from an image Imageimageimage. The Harris operator is based upon the smoothed matrix

\[\begin{eqnarray*} M = G_{\sigma} * \left( \begin{array}{cc} \displaystyle I_{x}^{2} & \displaystyle I_{x}I_{y} \\ \displaystyle I_{x}I_{y} & \displaystyle I_{y}^{2} \end{array} \right) \enspace , \end{eqnarray*}\]

where \(G_{\sigma}\) stands for a Binomial smoothing of size MaskSizeSmoothmaskSizeSmoothmask_size_smooth and \(I_{x}\) and \(I_{y}\) are the first derivatives of the image, computed with a Sobel filter of size MaskSizeGradmaskSizeGradmask_size_grad. The resulting points are the positive local extrema of

\[\begin{eqnarray*} \mathrm{Det}M - \textrm{Alpha}*(\mathrm{Trace}M)^{2}. \end{eqnarray*}\]

If necessary, they can be restricted to points with a minimum filter response of Thresholdthresholdthreshold. By default the coordinates of the points are calculated with subpixel accuracy. This can be turned off by setting the parameter Subpixsubpixsubpix to β€˜off’.

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πŸ”—

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πŸ”—

Imageimageimage (input_object) (multichannel-)image β†’ object (byte / uint2)HObject (byte / uint2)HImage (byte / uint2)HObject (byte / uint2)Hobject (byte / uint2)

Input image.

MaskSizeGradmaskSizeGradmask_size_grad (input_control) integer β†’ (integer)HTuple (Hlong)HTuple (int / long)intHtuple (Hlong)

Amount of binomial smoothing used for the calculation of the gradient.

Default: 55
Suggested values: 3, 5, 7, 9, 11, 15, 21, 313, 5, 7, 9, 11, 15, 21, 31
Value range: 1 ≀ MaskSizeGrad
Recommended increment: 2

MaskSizeSmoothmaskSizeSmoothmask_size_smooth (input_control) integer β†’ (integer)HTuple (Hlong)HTuple (int / long)intHtuple (Hlong)

Amount of smoothing used for the integration of the gradients.

Default: 1515
Suggested values: 3, 5, 7, 9, 11, 15, 21, 313, 5, 7, 9, 11, 15, 21, 31
Value range: 1 ≀ MaskSizeSmooth
Recommended increment: 2

Alphaalphaalpha (input_control) real β†’ (real)HTuple (double)HTuple (double)floatHtuple (double)

Weight of the squared trace of the squared gradient matrix.

Default: 0.080.08
Suggested values: 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.080.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08
Value range: 0.0 ≀ Alpha
Minimum increment: 0.001
Recommended increment: 0.01

Thresholdthresholdthreshold (input_control) number β†’ (real / integer)HTuple (double / Hlong)HTuple (double / int / long)Union[float, int]Htuple (double / Hlong)

Minimum filter response for the points.

Default: 1000.01000.0
Value range: 0.0 ≀ Threshold

Subpixsubpixsubpix (input_control) string β†’ (string)HTuple (HString)HTuple (string)strHtuple (char*)

Turn on or off subpixel refinement.

Default: 'on'"on"
List of values: 'off', 'on'"off", "on"

Rowrowrow (output_control) point.y-array β†’ (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)

Row coordinates of the detected points.

Columncolumncolumn (output_control) point.x-array β†’ (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)

Column coordinates of the detected points.

ResultπŸ”—

points_harrisPointsHarris 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>). If necessary, an exception is raised.

Combinations with other operatorsπŸ”—

Combinations

Possible successors

gen_cross_contour_xldGenCrossContourXld

Alternatives

points_foerstnerPointsFoerstner, points_harrisPointsHarris, points_lepetitPointsLepetit, points_sojkaPointsSojka

ReferencesπŸ”—

C. Harris, M. Stephens: ``A combined corner and edge detectorβ€™β€˜. Proceedings of the 4th Alvey Vision Conference, pp. 147-151, 1988.

V. Gouet, N.Boujemaa: ``Object-based queries using color points of interestβ€™β€˜. IEEE Workshop on Content-Based Access of Image and Video Libraries, CVPR/CBAIVL 2001, Hawaii, USA, 2001.

ModuleπŸ”—

Foundation