Package boofcv.alg.feature.describe
Class DescribePointSurfMod<II extends ImageGray<II>>
java.lang.Object
boofcv.alg.feature.describe.DescribePointSurf<II>
boofcv.alg.feature.describe.DescribePointSurfMod<II>
Modified SURF descriptor which attempts to smooth out edge conditions. Based upon MU-SURF described in
[1] it computes features in over lapping sub-regions and has a separate set of weights for the large grid and
for sub-regions. Due to these improvements it will in general produce better results than DescribePointSurf
at the cost of additional computations.
[1] M. Agrawal, K. Konolige, and M. Blas, "CenSurE: Center Surround Extremas for Realtime Feature Detection and Matching," Computer Vision – ECCV 2008
-
Field Summary
Fields inherited from class boofcv.alg.feature.describe.DescribePointSurf
featureDOF, gradient, gradientSafe, ii, inputType, radiusDescriptor, useHaar, weight, weightSigma, widthLargeGrid, widthSample, widthSubRegion
-
Constructor Summary
ConstructorDescriptionDescribePointSurfMod
(int widthLargeGrid, int widthSubRegion, double widthSample, int overLap, double sigmaLargeGrid, double sigmaSubRegion, boolean useHaar, Class<II> imageType) Creates a SURF descriptor of arbitrary dimension by changing how the local region is sampled.DescribePointSurfMod
(Class<II> imageType) Create a SURF-64 descriptor. -
Method Summary
Modifier and TypeMethodDescriptioncopy()
Creates a new instance with the same configurationvoid
features
(double c_x, double c_y, double c, double s, double scale, SparseImageGradient gradient, double[] features) An improved SURF descriptor as presented in CenSurE paper.int
Width of sampled region when sampling is aligned with image pixelsMethods inherited from class boofcv.alg.feature.describe.DescribePointSurf
createDescription, describe, getDescriptionLength, getInputType, setImage
-
Constructor Details
-
DescribePointSurfMod
public DescribePointSurfMod(int widthLargeGrid, int widthSubRegion, double widthSample, int overLap, double sigmaLargeGrid, double sigmaSubRegion, boolean useHaar, Class<II> imageType) Creates a SURF descriptor of arbitrary dimension by changing how the local region is sampled.- Parameters:
widthLargeGrid
- Number of sub-regions wide the large grid is. Typically 4.widthSubRegion
- Number of sample points wide a sub-region is. Typically 5.widthSample
- The size of a sample point. Typically 3.overLap
- Number of sample points sub-regions overlap, Typically 2.sigmaLargeGrid
- Sigma used to weight points in the large grid. Typically 2.5sigmaSubRegion
- Sigma used to weight points in the sub-region grid. Typically 2.5useHaar
- If true the Haar wavelet will be used (what was used in [1]), false means an image gradient approximation will be used. True is recommended.
-
DescribePointSurfMod
Create a SURF-64 descriptor. See [1] for details.
-
-
Method Details
-
features
public void features(double c_x, double c_y, double c, double s, double scale, SparseImageGradient gradient, double[] features) An improved SURF descriptor as presented in CenSurE paper. The sub-regions now overlap and more points are sampled in the sub-region to allow overlap.
- Overrides:
features
in classDescribePointSurf<II extends ImageGray<II>>
- Parameters:
c_x
- Center of the feature x-coordinate.c_y
- Center of the feature y-coordinate.c
- cosine of the orientations
- sine of the orientationscale
- The scale of the wavelets.features
- Where the features are written to. Must be 4*(widthLargeGrid*widthSubRegion)^2 large.
-
getCanonicalWidth
public int getCanonicalWidth()Description copied from class:DescribePointSurf
Width of sampled region when sampling is aligned with image pixels- Overrides:
getCanonicalWidth
in classDescribePointSurf<II extends ImageGray<II>>
- Returns:
- width of descriptor sample
-
copy
Creates a new instance with the same configuration- Overrides:
copy
in classDescribePointSurf<II extends ImageGray<II>>
-