harrisCorners

Calculate per-pixel corner impuls response using Harris corner detector.

Slice!(SliceKind.contiguous, [2], OutputType*)
harrisCorners
(
InputType
OutputType = InputType
SliceKind inputKind
)
(
Slice!(inputKind, [2], InputType*) image
,
in uint winSize = 3
,
in float k = 0.64f
,
in float gauss = 0.84f
,
Slice!(SliceKind.contiguous, [2], OutputType*) prealloc = emptySlice!([2], OutputType)
,
TaskPool pool = taskPool
)
in { assert (!image.empty, "Empty image given."); assert (winSize % 2 != 0, "Kernel window size has to be odd."); assert (gauss > 0.0, "Gaussian sigma value has to be greater than 0."); assert (k > 0.0, "K value has to be greater than 0."); }

Parameters

image
Type: Slice!(inputKind, [2], InputType*)

Input image slice.

winSize
Type: uint

Window (square) size used in corner detection.

k
Type: float

Sensitivity parameter defined in the algorithm.

gauss
Type: float

Gauss sigma value used as window weighting parameter.

prealloc
Type: Slice!(SliceKind.contiguous, [2], OutputType*)

Optional pre-allocated buffer for return response image.

pool
Type: TaskPool

TaskPool instance used parallelise the algorithm.

Return Value

Type: Slice!(SliceKind.contiguous, [2], OutputType*)

Response matrix the same size of the input image, where each pixel represents corner response value - the bigger the value, more probably it represents the actual corner in the image.

Meta