Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members   Related Pages   Examples  

FloatKernel.h

00001 /* Copyright (c) 2001 C. Grigorescu */
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