Home>Programmation>Java>Ondelettes Projet : analyse par Ondelettes (2)
Démonstration (applet) de l'analyse par ondelette de Haar
L'algorithme est un peu différent. Au lieu de :
H = (a+b)/2 ; G = (b-a)/2,
on fait :
H = a+b ; G = b-a,
L'inversion est calculée en conséquence
Les calculs sont effectués sur des entiers, ce qui évite les erreurs d'overflow
et permet des valeurs négatives, et gardés comme tels pour l'itération suivante.
Démo (applet) :
Remarque : le programme tourne sans problème en tant qu'application, mais sous forme
d'applet il est question d'accéder à un fichier local du poste client, ce qu'interdit
le principe du Sandbox en Java. Le programme doit être modifié pour demander l'image
au serveur. (voir entrée du blog : à faire).
- l'image est en RVB (jpeg), l'analyse se fait sur le canal R
- la version application affiche des commentaires (overflow, niveau d'analyse, ...),
non adapté à l'applet
- une fonction seuil est disponible, méthode type pour extraire des points caractéristiques
de l'image. Elle supprime les plus faibles valeurs, sur les derniers coefficients
trouvés, ce qui n'est pas le plus efficace dans le but qui nous intéresse, mais
on peut voir de quelle manière l'image se dégrade.
On peut vérifier :
- que la transformée est inversible (récupération de l'image d'origine)
- que l'ordre de transformation (H, V) n'importe pas : calculer la transformée sur V, sur H, inverser d'abord sur V, puis H, on récupère l'image d'origine
- que sur une image de 512=2^9 points on peut effectuer 9 analyses successives et
revenir au signal d'Origine