<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>libimage: les filtrages</title> <link rel="stylesheet" type="text/css" href="libimage.css"> <meta name="generator" content="Vim et huile de phalange"> <meta name="keywords" content="libimage, krabulator, Boudet, filtres, gradient, sobel"> </head> <body> <a name="top"><h1>libimage / les filtrages</h1></a> <p align=center> <tt>dernière mise à jour: 28 novembre 2013</tt><br> </p> <p class="menuhaut"> [<a href="libimage.html">libimage</a>] [<a href="#filtres">filtres</a>] [<a href="#liens">liens</a>] </p> <p> 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. </p> <a name="filtres"><h2>filtres</h2></a> <dl class="proto"> <dt>int Image_convolueur3(Image_Desc *in, Image_Desc *out, int *mat); <dd> <i>Je ne sais pas si le nom 'convolueur' est bien adapté...</i> <dt>int Image_lissage_3x3(Image_Desc *in, Image_Desc *out); <dd> Moyennage des pixels sur la matrice 3x3. <dt>void Image_filtre_display(FILE *ou, int *mat); <dd>Affichage des valeurs d'un filtre. <tt>ou</tt> précise à quel endroit l'envoyer. Vous pouvez utiliser <tt>stdout</tt>, <tt>stderr</tt> ou un fichier que vous avez préalablement ouvert. <dt>int Image_filtre_random(Image_Desc *src, Image_Desc *dst, int p1, int p2); <dd>Les 9 coefficients du filtre sont choisis au hasard entre p1 et p2. N'oubliez pas d'appeller <i>srand(getpid())</i> si vous obtenez la même chose à chaque course :-) <dt>int Image_filtre_passe_bas(Image_Desc *in, Image_Desc *out); <dd>parfois, il m'arrive de me demander si ce filtre n'est pas équivalent au lissage 3x3... <dt>int Image_filtre_passe_haut(Image_Desc *in, Image_Desc *out); <dd>euh... <dt>int Image_filtre_Prewitt(Image_Desc *src, Image_Desc *dst, int rotation); <dd>C'est un filtre directionnel, et le paramètre <tt>rotation</tt> permet de le faire tourner. <dt>int Image_filtre_Sobel(Image_Desc *src, Image_Desc *dst, int rotation); <dd>C'est un filtre directionnel, et le paramètre <tt>rotation</tt> permet de le faire tourner. </dl> <p> Certaines primitives du module 'filtres.c' necessitent une lecture approfondie du code source. ymmv. </p> <p class="HDP"><a href="#top">haut de page</a></p> <a name="liens"><h2>liens</h2></a> <p> Comme d'habitude, utilisez votre <a href="http://www.exalead.fr/">g00gl3</a> favori, et tentez des mots-clefs du genre 'convolution' ou 'sobel filter'. </p> <p class="HDP"><a href="#top">haut de page</a></p> <p class="footer"> vous pouvez essayer de me contacter:<br> mon adresse est <a href="http://la.buvette.org/ego/cv.html">là</a><br> Si votre demande est scientifique, je patche comme un goret.<br> </p> </body> </html>