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

Histogram.hpp

Aller à la documentation de ce fichier.
00001 /// \file 00002 /// Définition de la classe Histogram 00003 #ifndef GUARD_HISTOGRAM_H 00004 #define GUARD_HISTOGRAM_H 00005 00006 #include <vector> 00007 #include <map> 00008 #include <sstream> 00009 using namespace std; 00010 00011 #include "Debug.hpp" 00012 #include "Pixel.hpp" 00013 #include "Color.hpp" 00014 00015 static Channel channelHistogram(&cout); 00016 /////////////////////////////////////////////////////////////////////////////// 00017 /// HistogramClass 00018 /// 00019 /// Comptabilise les pixels d'une image d'une certaine couleur 00020 /////////////////////////////////////////////////////////////////////////////// 00021 class HistogramClass{ 00022 /// Couleur de la classe 00023 Color color; 00024 /// Pixels de cette même couleur 00025 vector<Pixel> data; 00026 /// Nombre de pixel pour l'histogramme cumulé 00027 int total; 00028 public: 00029 /// Classe de cette couleur 00030 HistogramClass(Color); 00031 /// Retourne une chaîne de caractères détaillée 00032 string toString()const; 00033 /// Ajoute un pixel à la classe 00034 void addPixel(Pixel); 00035 /// Retourne le nombre de pixel de cette classe 00036 int getSize()const; 00037 /// Fixe le nombre de pixel pour l'histogramme cumulé 00038 void setTotal(int); 00039 /// Retourne le nombre de pixel pour l'histogramme cumulé 00040 int getTotal()const; 00041 /// Retourne le ième pixel de la classe 00042 Pixel getElementAt(const int)const; 00043 }; 00044 /////////////////////////////////////////////////////////////////////////////// 00045 /// Histogram 00046 /// 00047 /// Met en correspondance une couleur et sa classe 00048 /////////////////////////////////////////////////////////////////////////////// 00049 class Histogram{ 00050 /// Nombre total de pixel 00051 int pixelNumber; 00052 /// Une hashtable faisant la correspondance 00053 map<Color, HistogramClass> data; 00054 /// Itérateur 00055 typedef map<Color, HistogramClass>::iterator map_iter; 00056 /// Itérateur constant 00057 typedef map<Color, HistogramClass>::const_iterator const_map_iter; 00058 vector<Color> classColor; 00059 public: 00060 /// Constructeur par défaut 00061 Histogram(): pixelNumber(0){} 00062 /// Retourne une chaîne de caractères détaillée 00063 string toString()const; 00064 /// Ajoute un pixel à l'histogramme 00065 void addPixel(Pixel); 00066 /// Calcule l'histogramme cumulé 00067 void makeCumul(); 00068 /// Sépare l'ensemble des couleurs en un nombre classe 00069 void makeClass(int classNumber); 00070 /// Retourne le pixel représentant la classe du paramètre 00071 Pixel getElementAt(const int) const; 00072 /// Retourne le nombre de classe 00073 int getSize() const { return data.size();} 00074 /// Retourne la couleur de la ième classe 00075 Color getColor(int) const; 00076 }; 00077 #endif

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