You are here: Start » Filter Reference » Computer Vision » Image Analysis » DetectCorners_CornerResponse
Module: | FoundationBasic |
---|
Detects corners using corner response method.
Applications
Name | Type | Range | Description | |
---|---|---|---|---|
inMonoImage | Image | Input image | ||
inRoi | Region* | Range of pixels to be processed | ||
inCornerResponseMethod | CornerResponseMethod | Method for computing corner response | ||
inKernelSize | Integer | 1 - 10 | Method kernel size | |
inThreshold | Real* | 0.0 - 255.0 | Threshold for corner response value, between 0 and 255, default value is taken from SelectThresholdValue on outCornerResponseImage and entropy method | |
outCorners | Point2DArray | Found corner points | ||
outCornerResponseImage | Image |
Requirements
For input inMonoImage only pixel formats are supported: 1⨯uint8, 1⨯int8, 1⨯uint16, 1⨯int16, 1⨯int32, 1⨯real.
Read more about pixel formats in Image documentation.
Description
The operation detects corners using either Harris or Kanade-Tomasi corner response method,
depending on inCornerResponseMethod.
For every square window of size inKernelSize a convolution matrix is computed:
\[M = \left(\begin{array}{ccc}
\sum g_r^2 & \sum g_c g_r \\
\sum g_c g_r & \sum g_c^2
\end{array} \right) \]
where the summation is performed over the whole window
and \(g_r, g_c\) denote horizontal and vertical gradient respectively at the point.
Harris' corner response is computed the following way:
\[H = \mathrm{det}(M) - k \mathrm{tr}^2(M) \]
where k is a constant set to 0.01.
Kanade-Tomasi corner response is given by:
\[KT = \mathrm{min}(\lambda_1, \lambda_2)\]
where \(\lambda_1, \lambda_2\) are eigenvalues of the convolution matrix.
Values H or KT give corner response image.
Then a few steps are performed in order to extract corner points. First, the normalized corner response function is thresholded with inThreshold with a small hysteresis, then the remained points are split into connected regions (blobs) and the center of each blob is determined.
Examples
Remarks
Both methods give similar results and are quite fast. However, they tend to be less accurate than DetectCorners_Foerstner.
Errors
This filter can throw an exception to report error. Read how to deal with errors in Error Handling.
List of possible exceptions:
Error type | Description |
---|---|
DomainError | Unknown algorithm in DetectCorners_CornerResponse. |
DomainError | Not supported inMonoImage pixel format in DetectCorners_CornerResponse. Supported formats: 1xUInt8, 1xInt8, 1xUInt16, 1xInt16, 1xInt32, 1xReal. |
Complexity Level
This filter is available on Advanced Complexity Level.
Filter Group
This filter is member of DetectCorners filter group.
See Also
- DetectCorners_Foerstner – Detects corners using the Foerstner algorithm.