94 lines
2.9 KiB
HTML
94 lines
2.9 KiB
HTML
<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>
|