Class FastCornerDetector<T extends ImageGray<T>>
- All Implemented Interfaces:
FeatureIntensity<T>
- Direct Known Subclasses:
FastCornerDetector_MT
Generic interface for fast corner detection algorithms. The general idea is that at the points in a circle around the center point (see below) should either be above or below the center pixel's intensity value value. With this information candidates corners can be quickly eliminated, see [1].
This implementation works by trying to minimize the number of reads per pixel. Code is auto generated and samples each point in a series of if statements such that the number of possible candidate corners around a pixel are eliminated. A different auto generated implementation is provided for Fast 9 to Fast 12. The number indicates how many continuous pixels are needed for it to be considered a corner.
After a pixel is flagged as a corner then the the intensity the difference between the average exterior pixel value which is part of the corner and the center pixel value. See code for details.
Circle of radius 2 pixels is searched around the center point 'x':
12 | 13 | 14 | ||||
11 | 15 | |||||
10 | 16 | |||||
09 | 01 | |||||
08 | 02 | |||||
07 | 03 | |||||
06 | 05 | 04 |
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
Size of the region surrounding the image's border in which pixels are not processed.int
Returns the radius of the feature being computed.void
Computes fast corner featuresvoid
Computes fast corner features and their intensity.
-
Field Details
-
radius
protected static final int radius- See Also:
-
offsets
protected int[] offsets -
image
-
helper
-
-
Constructor Details
-
FastCornerDetector
Constructor- Parameters:
helper
- Provide the image type specific helper.
-
-
Method Details
-
getRadius
public int getRadius()Description copied from interface:FeatureIntensity
Returns the radius of the feature being computed. Features are square in shape with a width = 2*radius+1.- Specified by:
getRadius
in interfaceFeatureIntensity<T extends ImageGray<T>>
- Returns:
- Radius of detected features.
-
getIgnoreBorder
public int getIgnoreBorder()Description copied from interface:FeatureIntensity
Size of the region surrounding the image's border in which pixels are not processed.- Specified by:
getIgnoreBorder
in interfaceFeatureIntensity<T extends ImageGray<T>>
- Returns:
- The ignore border around the image.
-
process
Computes fast corner features and their intensity. The intensity is needed if non-max suppression is used -
process
Computes fast corner features -
getImageType
-