00001
00002
00003 #ifndef FLOAT_KERNEL_H
00004 #define FLOAT_KERNEL_H
00005
00006 #include "Kernel.h"
00007
00008 #ifndef PI
00009 #define PI 3.14159265358979323846264
00010 #endif
00011
00012 #ifndef MIN
00013 #define MIN(a, b) ( (a<b) ? a : b )
00014 #endif
00015
00020 class FloatKernel : public Kernel < float >
00021 {
00022 private:
00023 float h_m_x, h_m_y;
00024 void find_limits(float sigma, float aspect, float orientation);
00025
00026 public:
00028 FloatKernel(char *name = "") : Kernel< float >(name) {}
00029
00031 FloatKernel(int w, int h, char *name="") : Kernel< float >(w,h,name) {}
00032
00035 void makeRectangularPulse(float max_amplitude, int support);
00036
00039 void makeTriangularPulse(float max_amplitude, int support);
00040
00047 void makeGauss(float sigma);
00048
00059 void makeGauss(float sigma, float aspect, float orientation);
00060
00076 void makeDoG(float sigma, float ratio);
00077
00096 void makeDoG(float sigma, float aspect, float orientation, float ratio);
00097
00110 void makeGabor(float sigma, float aspect, float orientation,
00111 float lambda, float phase);
00112
00122 void makeLoG(float sigma);
00123
00137 void makeLoG(float sigma, float aspect, float orientation);
00138 };
00139
00140 #endif