public abstract class ImplSsdCornerBase<D extends boofcv.struct.image.ImageGray,D2 extends boofcv.struct.image.ImageGray> extends java.lang.Object implements GradientCornerIntensity<D>
Several corner detector algorithms work by computing a symmetric matrix whose elements are composed of the convolution of the image's gradient squared. This is done for X*X, X*Y, and X*X. Once the matrix has been constructed it is used to estimate how corner like the pixel under consideration is. This class provides a generalized interface for performing these calculations in an optimized manor.
NOTE: Image borders are not processed. The zeros in the image border need to be taken in account when extract features using algorithms such as non-max suppression.
| Modifier and Type | Field and Description |
|---|---|
protected D |
derivX |
protected D |
derivY |
protected D2 |
horizXX |
protected D2 |
horizXY |
protected D2 |
horizYY |
protected int |
radius |
protected int |
x |
protected int |
y |
| Constructor and Description |
|---|
ImplSsdCornerBase(int windowRadius,
java.lang.Class<D2> secondDerivType) |
| Modifier and Type | Method and Description |
|---|---|
protected abstract float |
computeIntensity()
Computes the pixel's corner intensity.
|
int |
getIgnoreBorder()
Size of the region surrounding the image's border in which pixels are not processed.
|
int |
getRadius()
Returns the radius of the feature being computed.
|
protected abstract void |
horizontal() |
void |
process(D derivX,
D derivY,
boofcv.struct.image.GrayF32 intensity)
Computes feature intensity image.
|
void |
setImageShape(int imageWidth,
int imageHeight) |
protected abstract void |
vertical(boofcv.struct.image.GrayF32 intensity) |
protected D extends boofcv.struct.image.ImageGray derivX
protected D extends boofcv.struct.image.ImageGray derivY
protected int radius
protected D2 extends boofcv.struct.image.ImageGray horizXX
protected D2 extends boofcv.struct.image.ImageGray horizXY
protected D2 extends boofcv.struct.image.ImageGray horizYY
protected int x
protected int y
public ImplSsdCornerBase(int windowRadius,
java.lang.Class<D2> secondDerivType)
public void setImageShape(int imageWidth,
int imageHeight)
public int getRadius()
FeatureIntensitygetRadius in interface FeatureIntensity<D extends boofcv.struct.image.ImageGray>protected abstract float computeIntensity()
public int getIgnoreBorder()
FeatureIntensitygetIgnoreBorder in interface FeatureIntensity<D extends boofcv.struct.image.ImageGray>public void process(D derivX, D derivY, boofcv.struct.image.GrayF32 intensity)
GradientCornerIntensityprocess in interface GradientCornerIntensity<D extends boofcv.struct.image.ImageGray>derivX - Image derivative along the x-axis.derivY - Image derivative along the y-axis.intensity - Output intensity imageprotected abstract void horizontal()
protected abstract void vertical(boofcv.struct.image.GrayF32 intensity)