|
|||||||||||||||||||||||||||||||||||||||||||
|
On entend par "traitement" tout le processus qui vise, soit par utilisation des pixels qui composent l'image, soit par le biais de transformés de Fourier, de manipuler une image. Ce qui ne sera pas visible dans un premier temps par l'oeil humain, vu la complexité du message vidéo reçu, pourra dans certains cas être amélioré ou plutôt "décodé" d'une certaine façon mettant en évidence l'information désirée. Un bon traitement des données ne doit en aucun cas ajouter ou trop détériorer l'image. En effet, ce type de problème est souvent rencontré lors d'agrandissement d'images suivi d'un lissage des pixels. Dans ce cas, l'algorithme de lissage (c'est-à-dire la fonction mathématique à appliquer à l'image), devra être le plus précis possible et le plus neutre possible. C'est hélas rarement le cas pour cette application. Il y a donc deux façons de travailler sur une image. Mais pourquoi traiter une image ? La raison la plus évidente semblera la restauration de l'information qui vise à reconstruire une image qui a subi des dommages qu'il faudra bien définir pour lui appliquer le meilleur traitement possible. Une autre raison sera l'utilisation de la machine (ordinateur) pour appliquer à l'image un nouveau type de visualisation différent de la perception humaine des objets et des formes mais qui pour la machine sera plus facilement compréhensible. Pour aujourd'hui, nous ne nous attacherons qu'à la première partie de restauration des images. La partie reconnaissance de formes et manipulation des images sera pour une autre fois. Avant d'entrer dans la technique, il nous faut mieux approcher l'image elle-même. Comprendre l'image Une image numérisée sauvée dans votre Amiga peut être représentée par un tableau de points T de N pixels (position x,y) sur M bits (intensité gris). Un pixel (Picture Element) est représenté par son intensité ainsi que sa position dans l'image et possède huit voisins. quatre voisins directs : (x+1,y) (x,y+1) (x-1,y) et (x,y-1), et quatre voisins indirects en diagonale : (x+1,y+1) (x-1,y-1) (x-1,y+1) et (x+1,y-1). C'est grâce à cette connectivité des pixels que l'on peut manipuler physiquement un ensemble d'éléments composant une image en final. Ceci va nous être capital pour le futur, car cette "matrice" de points sera la base même de nos procédés de traitement de l'image. Chaque pixel (ou point) représente une information l'image globale. Cette information peut être altérée par différents facteurs dus souvent au matériel lui-même. L'optique de caméra selon sa qualité détermirera plus ou moins l'image globale. L'électronique, le capteur ou les convertisseurs analogiques-numériques introduisent des perturbations et des erreurs qui modifient signal. Ces défauts sont appelés "bruit". Ces bruits peuvent être considérés comme une suite plus ou moins logique de modification de l'image. Ce qui empêche la précision de l'image la rendant sans contours nets et moins précise qu'elle ne devrait. Comme pour un signal sonore ou un bruit inopportun serait décelé, un "film actif" va devoir être employé pour éliminer le voile dû au bruit. Nous allons applique ici la méthode dite de "convolution". Cette méthode, qui à première vue peut sembler complexe, est en fait assez simple. Elle consiste à calculer une nouvelle valeur (intensité en I) d'un point de l'image en tenant compte de ses voisins. La plupart des filtres décrits ici seront des "masques de convolution" (matrices de neuf points déplacés dans l'image). Le traitement de l'image On trouve énormément de filtres mathématiques de toutes sortes, mais ceux qui nous intéressent sont pour l'instant le "passe bas" et le "passe haut". Comme nous avons vu plus haut, une matrice se compose de 3x3 points : I1 I2 I3 I4 I5 I6 I7 I8 I9C'est donc l'intensité du point central, donc le point I5 qui sera calculé. Nos deux filtres vont nous être très utiles pour un premier problème à résoudre qui consistera à améliorer un piqué d'une image, ou à essayer de rendre plus nette une image semblant floue et ayant des contours très mal définis. Dans un premier temps, nous allons appliquer à l'image 1 (qui possède une belle erreur de mise au point, donc un bruit dû à l'optique), un filtrage passe-bas. Cette première étape consiste à retirer dans l'image tous les fins détails pour travailler ensuite sur une image plus lisse. Tout le problème va résider dans le fait de bien étudier sa matrice de traitement pour supprimer le bruit et conserver les informations principales. La matrice utilisée pour ce premier filtre est du type figure A. Image 1 - numérisée avec un CCD. Le problème principal avec les caméras grand public provient dans 90% des cas de l'optique. Ici, une mauvaise mise au point où un décentrage de l'objectif a provoqué un flou dans l'image Figure A Image 2 - résultat intermédiaire du premier masque : les fins détails générant le bruit de l'image ont été supprimés donnant à l'image un aspect plus lisse et moins précis La seconde partie de notre traitement en cours reste le filtrage passe-haut (figure B). Comme vous pouvez vous en douter, il est l'inverse du passe-bas (les quatre voisins directs du point central I5 sont ici "-1", ce qui représente les opposés de la première matrice). Son travail principal sera donc d'essayer de faire ressortir et d'accentuer les fins détails encore existants dans l'image. Il faut donc veiller à ne pas trop accentuer l'effet du passe-bas avec des matrices trop sévères. L'emploi d'un passe-haut est souvent adapté pour améliorer la précision d'une image. Cependant son défaut est d'accentuer tous les faibles détails, le bruit de l'image (d'où l'intérêt du premier filtrage passe-bas). Figure B Image 3 - résultat final, l'image est maintenant plus précise et son aspect flou a pratiquement disparu Les images doivent avoir les intensités des gris croissants (du plus sombre au plus clair). Le niveau de filtrage de l'image et l'intensité du point I5 seront réglables à la souris grâce aux fonctions "Thresh, Limit, Hits". De nombreux essais sont souvent nécessaires pour arriver au résultat optimal, la touche "Undo" est là pour nous secourir. Cependant, Pixmate ne se veut pas un logiciel de point et l'absence de la matrice programmable se fait quand même cruellement sentir. Autres types de filtres Il existe beaucoup d'applications sur les filtrages d'images. Les procédés qui vont suivre sont souvent employés dans la reconnaissance des formes et le traitement de l'image dans le but de faire ressortir une seule information de l'image. Dans la mesure du possible on va essayer de donner l'équivalent de la fonction à appliquer sur Amiga avec Pixmate et le menu "Image Process". Le premier type de filtre étudié sera le "Filtrage de contours". Un contour est par définition une variation rapide du niveau de gris ou de l'intensité du point (pour la couleur). Pixmate travaillant aussi bien en monochrome qu'en couleur. Pour ces nouveaux filtres nous allons utiliser l'image 4 qui déjà traitée par l'opération précédente offre une bonne dynamique dans l'ensemble Un filtrage de contours intéressant est le masque de Prewitt. Image 4 - numérisée avec une caméra CCD 416x330. L'image a subi un traitement passe-bas/haut comme décrit ici Image 5 Image 6 Toujours pour rester dans le domaine du filtrage par contour, il faut citer toutes les possibilités qu'offre ce logiciel en matière de détection des zones. Un Laplacien pour une étude d'un contour net est très facilement réalisable. Le réglage adéquat donnera une image ne représentant plus que les contours de ses points les plus brillants, ceci défini par les réglages Limit, Hits et Thresh. Le paramétrage de Image Process ressemblera à ceci : NOP + "*" ou "+" + Thresh 0 + Limit 16 + Hits 100% + EDG. EDG doit, être validé en dernier (voir image 7). Un autre filtre de contour connu sous le nom de filtre de Tukey peut s'avérer utile. Son travail s'opère sur les valeurs médianes de l'image. On prend toutes les valeurs dans le masque, on les classe par ordre croissant et on en prend la valeur médiane. La traduction en Pixmate ressemblerait à ceci : Tresh 0 + Limit 16 + Hits 100% + OR + MF1 ou MF2. Il est à noter que les opérateurs logiques (OR, AND, XOR...) peuvent être modifiées ainsi que tout autre paramètre, ce qui offre une infinité de réglages pour chaque fonction. Le principal avantage de ce module est la convivialité, son principal défaut étant l'imprécision due au manque d'explications de la fonction en cours. Pour finir dans les filtrages, il faut parler du plus fidèle et du plus intéressant mais aussi le plus difficile à mettre en oeuvre : c'est le "filtrage temporel". Son principe est très simple. On prend des images successives du même objet et on fait la moyenne des intensités. Le nombre d'images numérisées pour cette opération est important car plus il est élevé, plus l'image et les fins détails seront reproduits. Selon la quantité des images saisies on peut dans le même temps corriger les défauts de l'optique, de l'électronique sans utiliser aucune fonction mathématique ajoutant un certain traitement logique à l'image. Pour le moment, aucun logiciel sur Amiga proposant ce type de traitement n'existe. Pourtant c'est le seul capable de sortir des images de qualité dès la saisie, images qui peuvent avoir la définition maximum que peut offrir le couple capteur/ordinateur. Il ne faut quand même pas trop se lamenter car il n'existe pas non plus un tel procédé compris dans un logiciel commercialisé pour le grand public que ce soit sur PC ou Mac ou sur tout autre micro. Description d'Image Process (Pixmate) On a beaucoup parlé de cette fonction dans tout cet article. Nous allons maintenant la détailler de plus près pour en éclaircir un petit peu ses abréviations qui le rendent encore plus complexe. Nous ne sommes pas ici pour remplacer la très bonne documentation de ce logiciel. La traduction en français de ses mots et commandes facilite déjà la compréhension des principales commandes. Pixmate est en principe le seul programme sur Amiga proposant autant de traitement fréquentiel de l'image (Image Process). Cependant, il reste possible de travailler et de modifier une image avec n'importe quel logiciel de dessin sur Amiga. Le codage des images répondant à des normes IFF ou HAM, cela offre une grande quantité de travail et de fonctions disponibles pour un traitement spatial de l'image (numérisées ou pas). De plus, des logiciels tels que PhotoLab, Butcher et même Digi-Paint II possèdent des applications très recherchées dans le domaine de la manipulation des couleurs, palettes, histogrammes. Digi-Paint 2 : ce logiciel déjà ancien et remplacé par Digi-Paint version 3 nous fournit quelques fonctions intéressantes sur l'utilisation en HAM des opérateurs logiques : OR, AND, XOR... Ceux-ci permettent des solarisations et des extractions de contours en 4096 couleurs vraiment exploitables pour un traitement des contours, filtres et même, dans une certaine limite, la reconnaissance de formes. Bien sûr, aucun paramétrage précis de l'opération n'est possible, le programme restant un logiciel de dessin). Butcher 2 est beaucoup plus orienté vers la manipulation des palettes de couleur et des plans graphiques de l'Amiga, il n'en reste pas moins un bon petit logiciel de coloration, retouche des contrastes et niveaux de l'image, ainsi qu'une bonne routine de changements de formats résolution/couleurs sur Amiga. Il propose aussi des fonctions avancées de manipulation d'histogrammes et de statistiques sur l'image. Il est indispensable pour bien fignoler une image déjà traitée par Pixmate. PhotoLab : sans prétendre faire de la manipulation d'images, il est le seul à pouvoir manipuler des formats très grands en IFF et HAM au pixel près. La retaille d'images n'a pratiquement aucun secret pour ce logiciel ainsi que le changement de résolution et de palette de couleurs. D'autres logiciels existent sûrement et sont aussi performants (Art Department, ImageLink importé par l'Atelier Numérique, par exemple...), mais on ne va pas non plus tous les citer. Ici se trouvent ceux qui semblent les plus utilisés par la majorité des amigaïstes. Conclusion Pour bien travailler en traitement d'image, la machine, sa rapidité, son graphisme, la facilité d'accéder à une information en mémoire, sont la partie la plus importante de l'affaire. Les logiciels ont aussi leur importance, et un programme tel que Pixmate est une ouverture de plus pour l'Amiga vers des milieux scientifiques et de recherche. Il faudrait écrire un livre entier pour parler du traitement d'images et encore on oublierait des cas particuliers. Cependant, cet article prouvera que l'Amiga sait et peut faire quelque chose de ses images. Un monde intéressant, qui s'étend de la simple extraction de contours d'une image et peut aller jusqu'à la reconnaissance de formes complexes, est désormais à votre portée (de souris).
|