
Compte-rendu d’une démarche utilisant le langage de programmation Python à destination des lecteurs intéressés par ce sujet.
Quand on utilise un logiciel « tout fait », il faut déjà comprendre sa logique de fonctionnement et essayer de « faire avec » en fonction du résultat souhaité.
Dans certains cas - non prévus - on restera insatisfait.
Un logiciel fait « à la main » est une page blanche : on essaie de définir le résultat attendu et ensuite, en fonction de son habileté dans le langage, mais aussi de la façon dont on imagine y parvenir, on essaie de réaliser le « bon outil ».
En fait on devient une sorte d’artisan pointilleux confronté à la réalité têtue des choses.
1.
L’image de départ comporte des auréoles rouges et bleues qui résultent des défauts de l’objectif utilisé.
http://lerautal.lautre.net/journal/AAI/traitements/aureoles4.jpg
Résultat souhaité : faire disparaître les auréoles tout en conservant toute l’énergie lumineuse des 3 couleurs, c’est à dire en respectant l’équilibre du sujet réel.
2.
Le programme a été conçu de telle façon qu’il identifie les pixels verts, rouges et bleus de chaque étoile.
Ensuite en prenant comme dimension de référence celle de l’étoile en couleur verte, on répartit l’énergie rouge et l’énergie bleue dans la forme (de l’étoile en lumière verte).
Le résultat obtenu doit faire réfléchir :
http://lerautal.lautre.net/journal/AAI/traitements/aureoles42.png
En fait, pour quelques étoiles, l’excès de rouge est tel qu’il sature... mais sans déborder.
3.
D’où l’idée d’élaguer les excès : quand un pixel dépasse la valeur admissible (ici 255) on le met à 255.
Cela donne l’image suivante :
http://lerautal.lautre.net/journal/AAI/traitements/aureoles4.png
Comme une partie du rouge (et du bleu) a été jetée... l’image semble avoir un excès de vert.
Prendre comme dimension de référence la taille de l’étoile en vert n’est sans doute pas la meilleure idée.
Faudra-t-il prendre la dimension en rouge, en bleu, la plus grande ?
Il va falloir expérimenter.
4.
Pour mettre au point un programme, il faut générer des traces.
Ici on en génère deux, sans parler de quelques informations à l’écran.
Les traces sont écrites dans des fichiers que l’on peut reprendre au calme.
4.1.
La première trace est le reliquat des pixels après traitement : l’image telle qu’elle reste une fois que l’on CROIT avoir enlevé ce qu’elle contient.
Voici ce qui reste, ici :
http://lerautal.lautre.net/journal/AAI/traitements/aureoles4_relicat.png
4.2.
La seconde est le listage de la position des pixels avant et après traitement, dans un format qui est lisible avec un éditeur ou un tableur :
http://lerautal.lautre.net/journal/AAI/traitements/traces.csv
5.
Le programme en langage Python comprend deux fichiers source :
une partie annexe :http://lerautal.lautre.net/journal/AAI/traitements/morphology_annexe01.py
ainsi qu’une partie principale :
http://lerautal.lautre.net/journal/AAI/traitements/morphology_find12.py
Des commentaires sont inclus dans le code de la façon suivante :
« »« ceci est un commentaire »« »
# ceci est un commentaire
Les commentaires ne sont pas exécutés par le programme. Ils sont là pour aider à la relecture et à la correction.
Comme tout travail en cours de réalisation, celui-ci devra être amélioré.