Page principale | Hiérarchie des classes | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier

Filter.hpp

Aller à la documentation de ce fichier.
00001 /// \file 00002 /// Définition des classes filtres 00003 #ifndef GUARD_Filter_h 00004 #define GUARD_Filter_h 00005 00006 #include <math.h> 00007 #include <string> 00008 #include <iostream> 00009 #include <sstream> 00010 00011 #include "Debug.hpp" 00012 #include "PNG.hpp" 00013 00014 static Channel channelFilter(&cout); 00015 using namespace std; 00016 /////////////////////////////////////////////////////////////////////////////// 00017 /// Classe de base pour les filtres 00018 /////////////////////////////////////////////////////////////////////////////// 00019 class Filter_Base{ 00020 protected: 00021 /// Dimension du filtre 00022 int size; 00023 /// Poids du filtre 00024 float* mask; 00025 /// Méthode à redéfinir pour chaque filtre 00026 virtual void computeMask() = 0; 00027 /// Normalise les valeurs du filtre 00028 void normalise(); 00029 /// Valeur du filtre en un pointe 00030 float getMask(int, int); 00031 /// Fixe la valeur du filtre en un pointe 00032 void setMask(int, int, float); 00033 public: 00034 /// Constructeur 00035 /// \param size Dimension du filtre 00036 Filter_Base(int); 00037 /// Retourne une chaîne de caractères détaillée 00038 virtual string toString() = 0; 00039 /// Applique le fitre à une image 00040 /// \param image source 00041 /// \return image filtrée 00042 PNG apply(PNG); 00043 }; 00044 /////////////////////////////////////////////////////////////////////////////// 00045 /// Filtre gaussien 00046 /////////////////////////////////////////////////////////////////////////////// 00047 class Filter_Gaussian : public Filter_Base{ 00048 /// Sigma 00049 float sigma; 00050 /// Mue 00051 float mu; 00052 /// Calcul les valeurs du filtres 00053 void computeMask(); 00054 public: 00055 /// Filtre gaussien 00056 /// \param size dimension du filtre 00057 /// \param sigma 00058 /// \param mu 00059 Filter_Gaussian(int, float, float); 00060 /// Retourne une chaîne de caractères détaillée 00061 string toString(); 00062 }; 00063 #endif

Généré le Sun Jun 27 15:59:32 2004 pour segment par doxygen 1.3.7