public class DescribePointSurfMod<II extends boofcv.struct.image.ImageGray> extends DescribePointSurf<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
featureDOF, gradient, gradientSafe, ii, kerXX, kerYY, radiusDescriptor, weight, widthLargeGrid, widthSample, widthSubRegion| Constructor and Description |
|---|
DescribePointSurfMod(java.lang.Class<II> imageType)
Create a SURF-64 descriptor.
|
DescribePointSurfMod(int widthLargeGrid,
int widthSubRegion,
int widthSample,
int overLap,
double sigmaLargeGrid,
double sigmaSubRegion,
boolean useHaar,
java.lang.Class<II> imageType)
Creates a SURF descriptor of arbitrary dimension by changing how the local region is sampled.
|
| Modifier and Type | Method and Description |
|---|---|
void |
features(double c_x,
double c_y,
double c,
double s,
double scale,
boofcv.struct.sparse.SparseImageGradient gradient,
double[] features)
An improved SURF descriptor as presented in CenSurE paper.
|
int |
getCanonicalWidth()
Width of sampled region when sampling is aligned with image pixels
|
computeLaplaceSign, createDescription, describe, describe, getDescriptionLength, setImagepublic DescribePointSurfMod(int widthLargeGrid,
int widthSubRegion,
int widthSample,
int overLap,
double sigmaLargeGrid,
double sigmaSubRegion,
boolean useHaar,
java.lang.Class<II> imageType)
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.public DescribePointSurfMod(java.lang.Class<II> imageType)
public void features(double c_x,
double c_y,
double c,
double s,
double scale,
boofcv.struct.sparse.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.
features in class DescribePointSurf<II extends boofcv.struct.image.ImageGray>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.public int getCanonicalWidth()
DescribePointSurfgetCanonicalWidth in class DescribePointSurf<II extends boofcv.struct.image.ImageGray>