libimage / les filtrages

dernière mise à jour: 14 mars 2009
# et #

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...

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