public class FeatureLaplacePyramid<T extends boofcv.struct.image.ImageGray,D extends boofcv.struct.image.ImageGray> extends java.lang.Object implements InterestPointScaleSpacePyramid<T>
Feature detector across image pyramids that uses the Laplacian to determine strength in scale-space.
COMMENT ON SCALEPOWER: To normalize feature intensity across scales each feature intensity is multiplied by the scale to the power of 'scalePower'. See [1,2] for how to compute 'scalePower'. Inside of the image pyramid sub-sampling of the image causes the image gradient to be a factor of 'scale' larger than it would be without sub-sampling. In some situations this can negate the need to adjust feature intensity further.
[1] Krystian Mikolajczyk and Cordelia Schmid, "Indexing based on scale invariant interest points" ICCV 2001. Proceedings.
[2] Lindeberg, T., "Feature detection with automatic scale selection." IJCV 30(2) (1998) 79 – 116
FactoryInterestPoint| Modifier and Type | Field and Description |
|---|---|
protected boofcv.abst.filter.derivative.AnyImageDerivative<T,D> |
computeDerivative |
protected java.util.List<ScalePoint> |
foundPoints |
protected java.util.List<georegression.struct.point.Point2D_I16> |
maximums |
protected double |
scalePower |
protected int |
spaceIndex |
| Constructor and Description |
|---|
FeatureLaplacePyramid(GeneralFeatureDetector<T,D> detector,
boofcv.abst.filter.ImageFunctionSparse<T> sparseLaplace,
boofcv.abst.filter.derivative.AnyImageDerivative<T,D> computeDerivative,
double scalePower)
Create a feature detector.
|
| Modifier and Type | Method and Description |
|---|---|
void |
detect(boofcv.struct.pyramid.PyramidFloat<T> ss)
Searches for features inside the provided scale space
|
protected void |
findLocalScaleSpaceMax(boofcv.struct.pyramid.PyramidFloat<T> ss,
int layerID)
See if each feature is a maximum in its local scale-space.
|
java.util.List<ScalePoint> |
getInterestPoints()
Returns all the found interest points
|
protected int spaceIndex
protected java.util.List<georegression.struct.point.Point2D_I16> maximums
protected java.util.List<ScalePoint> foundPoints
protected boofcv.abst.filter.derivative.AnyImageDerivative<T extends boofcv.struct.image.ImageGray,D extends boofcv.struct.image.ImageGray> computeDerivative
protected double scalePower
public FeatureLaplacePyramid(GeneralFeatureDetector<T,D> detector, boofcv.abst.filter.ImageFunctionSparse<T> sparseLaplace, boofcv.abst.filter.derivative.AnyImageDerivative<T,D> computeDerivative, double scalePower)
detector - Point feature detector which is used to find candidates in each scale levelsparseLaplace - Used to compute the Laplacian at each candidatescomputeDerivative - Used to compute image derivativesscalePower - Used to normalize features intensity across scale space. For many features this value should be one.public void detect(boofcv.struct.pyramid.PyramidFloat<T> ss)
detect in interface InterestPointScaleSpacePyramid<T extends boofcv.struct.image.ImageGray>ss - Scale space of an imageprotected void findLocalScaleSpaceMax(boofcv.struct.pyramid.PyramidFloat<T> ss, int layerID)
public java.util.List<ScalePoint> getInterestPoints()
InterestPointScaleSpacePyramidgetInterestPoints in interface InterestPointScaleSpacePyramid<T extends boofcv.struct.image.ImageGray>