points_harrisπ
Short descriptionπ
points_harris β Detect points of interest using the Harris operator.
Signatureπ
points_harris( image Image, real SigmaGrad, real SigmaSmooth, real Alpha, number Threshold, out point.y Row, out point.x Column )
Descriptionπ
points_harris extracts points of interest from an image. The Harris
operator is based upon the smoothed matrix
where \(G_{\sigma}\) stands for a Gaussian smoothing of size
SigmaSmooth and \(I_{x,c}\) and \(I_{y,c}\) are
the first derivatives of each image channel, computed with Gaussian
derivatives of size SigmaGrad. The resulting points are the
positive local extrema of
If necessary, they can be restricted to points with a minimum filter
response of Threshold. The coordinates of the points are
calculated with subpixel accuracy.
Attentionπ
points_harris uses a special implementation that is
optimized using SSE2 instructions if the system
parameter 'sse2_enable' is set to 'true' (which is
default if SSE2 is available on your machine). This implementation is
slightly inaccurate compared to the pure C version due to numerical issues
(for βbyteβ images the difference in Row and Column is in
order of magnitude of \(1.0e-5\)). If you prefer accuracy over performance
you can set 'sse2_enable' to 'false' (using
set_system) before you call points_harris. This way
points_harris does not use SSE2 accelerations. Donβt forget to set
'sse2_enable' back to 'true' afterwards.
points_harris can be executed on an OpenCL device if both
SigmaGrad and SigmaSmooth induce a filter size of no more
than 129 pixels. This corresponds to a value of less than \(20.7\) for
both parameters. As with the SSE2 version, the results of the OpenCL
implementation may diverge slightly from that of pure C version due to
numerical issues.
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
-
Supports OpenCL compute devices.
-
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π
Image (input_object) (multichannel-)image β object (byte* / uint2* / real*) *allowed for compute devices
Input image.
SigmaGrad (input_control) real β (real)
Amount of smoothing used for the calculation of the gradient.
Default: 0.7
Suggested values: 0.7, 0.8, 0.9, 1.0, 1.2, 1.5, 2.0, 3.0
Recommended increment: 0.1
Restriction: SigmaGrad > 0.0
SigmaSmooth (input_control) real β (real)
Amount of smoothing used for the integration of the gradients.
Default: 2.0
Suggested values: 0.7, 0.8, 0.9, 1.0, 1.2, 1.5, 2.0, 3.0
Recommended increment: 0.1
Restriction: SigmaSmooth > 0.0
Alpha (input_control) real β (real)
Weight of the squared trace of the squared gradient matrix.
Default: 0.08
Suggested values: 0.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
Threshold (input_control) number β (real / integer)
Minimum filter response for the points.
Default: 1000.0
Restriction: Threshold >= 0.0
Row (output_control) point.y-array β (real)
Row coordinates of the detected points.
Column (output_control) point.x-array β (real)
Column coordinates of the detected points.
Resultπ
points_harris 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
Alternatives
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