PANDORE Version 6 GREYC-IMAGE

pbutterworthfilter



Génère un filtre passe-bas, passe-haut, coupe-bande ou passe-bande de Butterworth.



Synopsis

pbutterworthfilter [-m mask] ncol nrow ndep highpass cutin cutoff order [im_out|-]

Description

L'opérateur pbutterworthfilter génère un filtre passe-bas, passe-haut, coupe-bande ou passe-bande de Butterworth.

Si ndep<1 le filtre im_out est une image 2D de Float avec size nrow*ncol sinon le filtre im_out est une image 3D de Float avec la taille ndep*nrow*ncol.

Le filtre passe-bas de Butterworth coupe les hautes fréquences des composantes de la transformée de Fourier qui sont à une distance supérieure à la distance spécifiée D0 (la valeur cutoff) à partir de l'origine du centre de la transformation.

Le type du filter est donné par les deux paramètres highpass et cutin:

La fonction de transfert d'un filtre 2D passe-bas de Butterworth d'ordre n avec une fréquence de coupe à la distance D0 de l'origine est définie par :

Hlp(u,v) =             1
           --------------------
            1 + [ D(u,v)/D0]2n

où D(u,v) est la distance du point (u,v) à l'origine :

D(u,v)=sqrt((u-M/2)2 + (v-N/2)2)

où N est le nombre de lignes et M est le nombre de colonnes.

La fonction de transfert d'un filtre 2D passe-haut de Butterworth est définie par :

H(u,v) =  1- Hlp(u,v)

La fonction de tranfert d'un filtre coupe-bande est définie par:

H(u,v) =          1
        ------------------
         1+ [  D(u,v)W ]2n
            [----------]
            [D2(u,v)-D02]

où W est l'épaisseur des bandes = cutof-cutin et D0 est la rayon=(cutin+cutoff)/2.

Paramètres

Sorties

Résultat

Retourne SUCCESS ou FAILURE en cas de mauvais paramétrage.

Exemples

Effectue un filtrage passe-bas de Butterworth :

   psetcst 0 tangram.pan i1.pan
   pfft tangram.pan i1.pan i2.pan i3.pan
   pbutterworthfilter 256 256 0 0 0 50 2 i4.pan
   pmult i2.pan i4.pan i5.pan
   pmult i3.pan i4.pan i6.pan
   pifft i5.pan i6.pan out.pan i8.pan

Effectue un filtrage passe-haut de Butterworth :

   psetcst 0 tangram.pan i1.pan
   pfft tangram.pan i1.pan i2.pan i3.pan
   pbutterworthfilter 256 256 0 1 0 50 2 i4.pan
   pmult i2.pan i4.pan i5.pan
   pmult i3.pan i4.pan i6.pan
   pifft i5.pan i6.pan out.pan i8.pan

Effectue un filtrage coupe-bande de Butterworth :

   psetcst 0 tangram.pan i1.pan
   pfft tangram.pan i1.pan i2.pan i3.pan
   pbutterworthfilter 256 256 0 0 25 50 2 i4.pan
   pmult i2.pan i4.pan i5.pan
   pmult i3.pan i4.pan i6.pan
  pifft i5.pan i6.pan out.pan i8.pan

Effectue un filtrage passe-bande de Butterworth :

   psetcst 0 tangram.pan i1.pan
   pfft tangram.pan i1.pan i2.pan i3.pan
   pbutterworthfilter 256 256 0 1 25 50 2 i4.pan
   pmult i2.pan i4.pan i5.pan
   pmult i3.pan i4.pan i6.pan
   pifft i5.pan i6.pan out.pan i8.pan

Voir aussi

Domaine Fréquentiel, pifft pfftshift

Prototype C++

Errc PButterworthFilter( Img2dsf &im_out, int ndep, int nrow, int ncol, int highpass, float cutin, float cutoff, int order);

Auteur: Régis Clouard