Class DescribeDenseSiftAlg<D extends ImageGray>
- java.lang.Object
-
- boofcv.alg.feature.describe.DescribeSiftCommon
-
- boofcv.alg.feature.dense.DescribeDenseSiftAlg<D>
-
public class DescribeDenseSiftAlg<D extends ImageGray> extends DescribeSiftCommon
Computes
SIFTfeatures in a regular grid across an entire image at a single scale and orientation. This is more computationally efficient than the more genericDescribePointSiftalgorithm because it makes strong assumptions. If given the same center point, an orientation of 0, and sigmaToPixels is 1, they should produce the same descriptor.Sampling is done in regular increments in a grid pattern. The example sampling points are computed such that entire area sampled starts and ends at the most extreme possible pixels. This most likely will require that the sampling period be adjusted. Multiple descriptors can overlap the same area, so pixel orientation and magnitude is just computed once and saved.
-
-
Constructor Summary
Constructors Constructor and Description DescribeDenseSiftAlg(int widthSubregion, int widthGrid, int numHistogramBins, double weightingSigmaFraction, double maxDescriptorElementValue, double periodColumns, double periodRows, java.lang.Class<D> derivType)Specifies SIFT descriptor structure and sampling frequency.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidcomputeDescriptor(int cx, int cy, TupleDesc_F64 desc)Computes the descriptor centered at the specified coordinatejava.lang.Class<D>getDerivType()FastQueue<TupleDesc_F64>getDescriptors()FastQueue<Point2D_I32>getLocations()Returns where in the image it sampled the featuresdoublegetPeriodColumns()doublegetPeriodRows()voidprocess()Computes SIFT descriptors across the entire imagevoidsetImageGradient(D derivX, D derivY)Sets the gradient and precomputes pixel orientation and magnitudevoidsetPeriodColumns(double periodColumns)voidsetPeriodRows(double periodRows)-
Methods inherited from class boofcv.alg.feature.describe.DescribeSiftCommon
getCanonicalRadius, getDescriptorLength, normalizeDescriptor
-
-
-
-
Constructor Detail
-
DescribeDenseSiftAlg
public DescribeDenseSiftAlg(int widthSubregion, int widthGrid, int numHistogramBins, double weightingSigmaFraction, double maxDescriptorElementValue, double periodColumns, double periodRows, java.lang.Class<D> derivType)Specifies SIFT descriptor structure and sampling frequency.- Parameters:
widthSubregion- Width of sub-region in samples. Try 4widthGrid- Width of grid in subregions. Try 4.numHistogramBins- Number of bins in histogram. Try 8weightingSigmaFraction- Sigma for Gaussian weighting function is set to this value * region width. Try 0.5maxDescriptorElementValue- Helps with non-affine changes in lighting. See paper. Try 0.2periodColumns- Number of pixels between samples along x-axisperiodRows- Number of pixels between samples along y-axisderivType- Type of input derivative image
-
-
Method Detail
-
setImageGradient
public void setImageGradient(D derivX, D derivY)
Sets the gradient and precomputes pixel orientation and magnitude- Parameters:
derivX- image derivative x-axisderivY- image derivative y-axis
-
process
public void process()
Computes SIFT descriptors across the entire image
-
computeDescriptor
public void computeDescriptor(int cx, int cy, TupleDesc_F64 desc)Computes the descriptor centered at the specified coordinate- Parameters:
cx- center of region x-axiscy- center of region y-axisdesc- The descriptor
-
getPeriodRows
public double getPeriodRows()
-
setPeriodRows
public void setPeriodRows(double periodRows)
-
getPeriodColumns
public double getPeriodColumns()
-
setPeriodColumns
public void setPeriodColumns(double periodColumns)
-
getDescriptors
public FastQueue<TupleDesc_F64> getDescriptors()
-
getLocations
public FastQueue<Point2D_I32> getLocations()
Returns where in the image it sampled the features
-
getDerivType
public java.lang.Class<D> getDerivType()
-
-
DataMelt 3.0 © DataMelt by jWork.ORG