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