35 #ifndef AIMS_MATH_HARRIS_H
36 #define AIMS_MATH_HARRIS_H
71 const double sigma = 1.2,
74 const T levels = (T)255 );
152 template <
class T,
int D>
virtual void computeDerivatives()
virtual double harrisMeasure(const int x, const int y, const int z, const int t)=0
Compute harris measure for a pixel.
BaseHarrisDetector(const carto::rc_ptr< carto::Volume< T > > &image, const double sigma=1.2, const double k=0.6, const double epsilon=1E-3, const T levels=(T) 255)
Constructor.
carto::VolumeRef< double > harrisMap()
Get processed Harris map.
virtual void filter(int minDistance)
Filter detected corners.
virtual void computeCorners()
Perfom the Harris Corner Detection.
carto::VolumeRef< T > _image
aims::BucketMap< double > _corners
aims::BucketMap< Void > corners()
Get detected corners.
carto::VolumeRef< double > _g
virtual double gaussian(const double x, const double y, const double z)
Gaussian function.
virtual void computeHarrisMap()
Compute the Harris measure for each pixel of the image.
virtual bool isSpatialMaxima(const int x, const int y, const int z, const int t)=0
Check that pixel is a maxima of the Harris map.
carto::VolumeRef< double > _hmap
virtual double harrisMeasure(const int x, const int y, const int z, const int t)
Compute harris measure for a pixel.
virtual void computeDerivatives()
Compute the 3 arrays Ix, Iy and Ixy.
HarrisDetector(const carto::rc_ptr< carto::Volume< T > > &image, double sigma=1.2, double k=0.6, double epsilon=1E-3, T levels=255)
Constructor.
virtual bool isSpatialMaxima(const int x, const int y, const int z, const int t)
Return true if the measure at pixel (x,y) is a local spatial Maxima.