libimage / les filtrages

dernière mise à jour: 28 novembre 2013

Les filtres de base sont définis par un tableau de 11 entiers. Les 9 premiers représentent la matrice 3x3, le 10ème est le diviseur, et le 11ème est l'offset ajouté à la fin du calcul. Il y a une fonction qui permet d'afficher ces valeurs. On trouvera également des filtres classiques appelables directement.

filtres

int Image_convolueur3(Image_Desc *in, Image_Desc *out, int *mat);
Je ne sais pas si le nom 'convolueur' est bien adapté...
int Image_lissage_3x3(Image_Desc *in, Image_Desc *out);
Moyennage des pixels sur la matrice 3x3.
void Image_filtre_display(FILE *ou, int *mat);
Affichage des valeurs d'un filtre. ou précise à quel endroit l'envoyer. Vous pouvez utiliser stdout, stderr ou un fichier que vous avez préalablement ouvert.
int Image_filtre_random(Image_Desc *src, Image_Desc *dst, int p1, int p2);
Les 9 coefficients du filtre sont choisis au hasard entre p1 et p2. N'oubliez pas d'appeller srand(getpid()) si vous obtenez la même chose à chaque course :-)
int Image_filtre_passe_bas(Image_Desc *in, Image_Desc *out);
parfois, il m'arrive de me demander si ce filtre n'est pas équivalent au lissage 3x3...
int Image_filtre_passe_haut(Image_Desc *in, Image_Desc *out);
euh...
int Image_filtre_Prewitt(Image_Desc *src, Image_Desc *dst, int rotation);
C'est un filtre directionnel, et le paramètre rotation permet de le faire tourner.
int Image_filtre_Sobel(Image_Desc *src, Image_Desc *dst, int rotation);
C'est un filtre directionnel, et le paramètre rotation permet de le faire tourner.

Certaines primitives du module 'filtres.c' necessitent une lecture approfondie du code source. ymmv.

haut de page

liens

Comme d'habitude, utilisez votre g00gl3 favori, et tentez des mots-clefs du genre 'convolution' ou 'sobel filter'.

haut de page