Référence de la classe Millie::Kernel

#include <Kernel.hpp>

Dérivée par Millie::KernelGaussian, Millie::KernelLaplace, Millie::KernelMDIF, Millie::KernelMediumSmooth, Millie::KernelPrewittHorizontal, Millie::KernelPrewittVertical, Millie::KernelSobelHorizontal, et Millie::KernelSobelVertical.

Graphe d'héritage de Millie::Kernel:

Inheritance graph
[légende]
Graphe de collaboration de Millie::Kernel:

Collaboration graph
[légende]
Liste de tous les membres

Fonctions membres publiques

 Kernel (int taillex, int tailley, int originex, int originey, const float *data)
 Construit un noyau.
 Kernel (int taillex, int tailley, int originex, int originey, const float *datax, const float *datay)
 Définie un noyau séparable.
virtual ~Kernel ()
 Destructeur.
 Kernel (const Kernel &k)
 Constructeur par recopie.
Kerneloperator= (Kernel &origine)
int getXOrigin () const
int getYOrigin () const
 Permet de récuperer l'origine verticale.
int getWidth () const
 Recupère la largeur.
int getHeight () const
 Recupère la hauteur.
virtual float operator() (int x, int y) const
 permet de lire un élément du noyau
int getTopPadding () const
 permet de lire le padding supérieur
int getBottomPadding () const
 permet de lire le padding inférieur
int getLeftPadding () const
 permet de lire le padding gauche
int getRightPadding () const
 permet de lire le padding droite

Fonctions membres protégées

bool isSeparable () const
 Kernel (int taillex, int tailley, int originex, int originey)
virtual void setValue (int x, int y, float value)
 permet de modifier un élément du noyau

Attributs protégés

bool _isSeparable
DataBuffer< float > _data
DataBuffer< float > _dataX
DataBuffer< float > _dataY
int _originex
int _originey
int _largeur
int _hauteur

Description détaillée

Classe utilisait pour définie un noyau de convolution

Typiquement, la classe peut s'utiliser comme suit :

      Noyau : [0  -1  0]
              [-1 -4 -1]
              [0  -1  0]
   
     float f[] = {0,-1,0,-1,4,-1,0,-1,0};
     Kernel k(3, 3, 1, 1, f);
     int i1 = k(0,0); // retourne 0
     int j1 = k.getLeftPadding() //retourne 1

     //parcourt du noyau
     for(int j = 0; j< k.getHeight(); j++)
      for(int i=0; i < k.getWidth(); i++)
        ... = k(i,j);

Définition à la ligne 63 du fichier Kernel.hpp.


Documentation des contructeurs et destructeur

Kernel::Kernel ( int  taillex,
int  tailley,
int  originex,
int  originey 
) [protected]

Méthode interne pour les classes qui héritent pour permettre de ne pas définir immédiatement le noyau

Définition à la ligne 40 du fichier Kernel.cpp.

Références _data, _hauteur, _isSeparable, _largeur, _originex, _originey, getHeight(), Millie::DataBuffer< T >::getSize(), getWidth(), et Millie::DataBuffer< T >::resize().

Kernel::Kernel ( int  taillex,
int  tailley,
int  originex,
int  originey,
const float *  data 
)

Construit un noyau.

Paramètres:
taillex la largeur du noyau
tailley la hauteur du noyau
originex le centre horizontal du noyau
originey le centre vertical du noyau
data le tableau à une dimension contenant le noyau
Exceptions:
Millie::NullPointer si data == NULL
Millie::IllegalArgument si taillex ou tailley inférieur ou égale à 0
Millie::IllegalArgument si originex=>taillex
Millie::IllegalArgument si originey=>tailley
Millie::IllegalArgument si originex<0
Millie::IllegalArgument si originey<0
Par exemple, pour un noyau 3*3 de laplace, on peut le définir grâce à l'appel :
             float  f[] = {0,-1,0,-1,4,-1,0,-1,0};
             Kernel k(3, 3, 1, 1, f);
Le tableau f est défini ligne par ligne. Ainsi, le noyau :
           [a, b, c]
           [d, e, f]
           [g, h, i]
         
correspond au tableau :
          float f[] = {a,b,c,d,e,f,g,h,i};

Définition à la ligne 63 du fichier Kernel.cpp.

Références _data, _hauteur, _isSeparable, _largeur, _originex, _originey, getHeight(), Millie::DataBuffer< T >::getSize(), getWidth(), et Millie::DataBuffer< T >::resize().

Kernel::Kernel ( int  taillex,
int  tailley,
int  originex,
int  originey,
const float *  datax,
const float *  datay 
)

Définie un noyau séparable.

Paramètres:
taillex la largeur du noyau
tailley la hauteur du noyau
originex le centre horizontal du noyau
originey le centre vertical du noyau
datax le noyau séparé pour l'horizontal
datay le noyau séparé pour l'horizontal
Exceptions:
Millie::NullPointer si datax==NULL
Millie::NullPointer si datay==NULL
Millie::IllegalArgument si taillex<=0
Millie::IllegalArgument si tailley<=0
Millie::IllegalArgument si originex=>taillex
Millie::IllegalArgument si originey=>tailley
Millie::IllegalArgument si originex<0
Millie::IllegalArgument si originey<0

Définition à la ligne 88 du fichier Kernel.cpp.

Références _dataX, _dataY, _hauteur, _isSeparable, _largeur, _originex, _originey, getHeight(), Millie::DataBuffer< T >::getSize(), getWidth(), et Millie::DataBuffer< T >::resize().

Kernel::~Kernel (  )  [virtual]

Destructeur.

Définition à la ligne 169 du fichier Kernel.cpp.

Kernel::Kernel ( const Kernel k  ) 

Constructeur par recopie.

Paramètres:
k le noyau à recopier

Définition à la ligne 142 du fichier Kernel.cpp.

Références _data, _dataX, _dataY, _hauteur, _isSeparable, _largeur, _originex, _originey, getHeight(), getWidth(), getXOrigin(), getYOrigin(), et isSeparable().


Documentation des fonctions membres

bool Kernel::isSeparable (  )  const [protected]

Méthode interne pour savoir si le noyau est séparable

Définition à la ligne 164 du fichier Kernel.cpp.

Références _isSeparable.

Référencé par Kernel(), operator()(), operator=(), et setValue().

void Kernel::setValue ( int  x,
int  y,
float  value 
) [protected, virtual]

permet de modifier un élément du noyau

Paramètres:
x position horizontale (commence à 0)
y position verticale (commence à 0)
Renvoie:
le flottant correspondant cette position
L'implémentation actuelle ne retourne pas d'exception en cas de dépassement afin d'optimiser. A noter que seul l'opérateur constant existe.

Définition à la ligne 202 du fichier Kernel.cpp.

Références _data, getWidth(), et isSeparable().

Référencé par Millie::KernelGaussian::KernelGaussian().

Kernel & Kernel::operator= ( Kernel origine  ) 

Opérateur d'assignation, recopie l'ensemble des données

Définition à la ligne 117 du fichier Kernel.cpp.

Références _data, _dataX, _dataY, _isSeparable, _originex, _originey, getHeight(), getWidth(), getXOrigin(), getYOrigin(), et isSeparable().

int Kernel::getXOrigin (  )  const

Permet de récuperer l'origine horizontale

Renvoie:
l'origine horizontale

Définition à la ligne 173 du fichier Kernel.cpp.

Références _originex.

Référencé par Millie::NagaoLocalOperator::computeLocalArea(), Millie::ErodeLocalOperator::computeLocalArea(), Millie::DilateLocalOperator::computeLocalArea(), Millie::ConvolveLocalOperator::computeLocalArea(), getLeftPadding(), getRightPadding(), Kernel(), et operator=().

int Kernel::getYOrigin (  )  const

Permet de récuperer l'origine verticale.

Renvoie:
l'origine verticale

Définition à la ligne 178 du fichier Kernel.cpp.

Références _originey.

Référencé par Millie::NagaoLocalOperator::computeLocalArea(), Millie::ErodeLocalOperator::computeLocalArea(), Millie::DilateLocalOperator::computeLocalArea(), Millie::ConvolveLocalOperator::computeLocalArea(), getBottomPadding(), getTopPadding(), Kernel(), et operator=().

int Kernel::getWidth (  )  const

Recupère la largeur.

Renvoie:
largeur du noyau

Définition à la ligne 183 du fichier Kernel.cpp.

Références _largeur.

Référencé par Millie::NagaoLocalOperator::computeLocalArea(), Millie::ErodeLocalOperator::computeLocalArea(), Millie::DilateLocalOperator::computeLocalArea(), Millie::ConvolveLocalOperator::ConvolveLocalOperator(), convolvePosition(), Millie::DilateLocalOperator::DilateLocalOperator(), Millie::ErodeLocalOperator::ErodeLocalOperator(), getRightPadding(), Kernel(), Millie::KernelGaussian::KernelGaussian(), operator()(), operator=(), et setValue().

int Kernel::getHeight (  )  const

Recupère la hauteur.

Renvoie:
hauteur du noyau

Définition à la ligne 188 du fichier Kernel.cpp.

Références _hauteur.

Référencé par Millie::NagaoLocalOperator::computeLocalArea(), Millie::ErodeLocalOperator::computeLocalArea(), Millie::DilateLocalOperator::computeLocalArea(), Millie::ConvolveLocalOperator::ConvolveLocalOperator(), convolvePosition(), Millie::DilateLocalOperator::DilateLocalOperator(), Millie::ErodeLocalOperator::ErodeLocalOperator(), getBottomPadding(), Kernel(), Millie::KernelGaussian::KernelGaussian(), et operator=().

float Kernel::operator() ( int  x,
int  y 
) const [virtual]

permet de lire un élément du noyau

Paramètres:
x position horizontale (commence à 0)
y position verticale (commence à 0)
Renvoie:
le flottant correspondant cette position
L'implémentation actuelle ne retourne pas d'exception en cas de dépassement afin d'optimiser. A noter que seul l'opérateur constant existe.

Définition à la ligne 194 du fichier Kernel.cpp.

Références _data, _dataX, _dataY, getWidth(), et isSeparable().

int Kernel::getTopPadding (  )  const

permet de lire le padding supérieur

Renvoie:
padding supérieur
Le padding supérieur correspond au nombre d'élément se trouvant au dessus de l'origine verticale

Définition à la ligne 211 du fichier Kernel.cpp.

Références getYOrigin().

int Kernel::getBottomPadding (  )  const

permet de lire le padding inférieur

Renvoie:
padding inférieur
Le padding supérieur correspond au nombre d'élément se trouvant en dessous de l'origine verticale

Définition à la ligne 216 du fichier Kernel.cpp.

Références getHeight(), et getYOrigin().

int Kernel::getLeftPadding (  )  const

permet de lire le padding gauche

Renvoie:
padding gauche
Le padding gauche correspond au nombre d'élément se trouvant à gauche de l'origine horizontale

Définition à la ligne 221 du fichier Kernel.cpp.

Références getXOrigin().

int Kernel::getRightPadding (  )  const

permet de lire le padding droite

Renvoie:
padding droite
Le padding droite correspond au nombre d'élément se trouvant à droite de l'origine horizontale

Définition à la ligne 226 du fichier Kernel.cpp.

Références getWidth(), et getXOrigin().


Documentation des données membres

bool Millie::Kernel::_isSeparable [protected]

Indique si l'élément est séparable

Définition à la ligne 69 du fichier Kernel.hpp.

Référencé par isSeparable(), Kernel(), et operator=().

DataBuffer<float> Millie::Kernel::_data [protected]

Tableau de noyau dans le cas où le noyau est non séparable

Définition à la ligne 74 du fichier Kernel.hpp.

Référencé par Kernel(), operator()(), operator=(), et setValue().

DataBuffer<float> Millie::Kernel::_dataX [protected]

Tableau du noyau horizontale utilisé lorsque le noyau est séparable

Définition à la ligne 79 du fichier Kernel.hpp.

Référencé par Kernel(), operator()(), et operator=().

DataBuffer<float> Millie::Kernel::_dataY [protected]

Tableau du noyau verticale utilisé lorsque le noyau est séparable

Définition à la ligne 84 du fichier Kernel.hpp.

Référencé par Kernel(), operator()(), et operator=().

int Millie::Kernel::_originex [protected]

Permet d'enregistrer les données caractéristiques à l'origine horizontale du noyau

Définition à la ligne 90 du fichier Kernel.hpp.

Référencé par getXOrigin(), Kernel(), et operator=().

int Millie::Kernel::_originey [protected]

Permet d'enregistrer les données caractéristiques à l'origine verticale du noyau

Définition à la ligne 96 du fichier Kernel.hpp.

Référencé par getYOrigin(), Kernel(), et operator=().

int Millie::Kernel::_largeur [protected]

Permet d'enregistrer la largeur

Définition à la ligne 101 du fichier Kernel.hpp.

Référencé par getWidth(), et Kernel().

int Millie::Kernel::_hauteur [protected]

Permet d'enregistrer la hauteur

Définition à la ligne 106 du fichier Kernel.hpp.

Référencé par getHeight(), et Kernel().


La documentation de cette classe a été générée à partir des fichiers suivants :
Généré le Fri May 18 23:25:05 2007 pour Millie par  doxygen 1.5.1