- Prendre 10 min à chaque fin de séance pour écrire ce qu'on a fait dans le fichier ./Rapports.md
- le rapport terminal doit être rédiger en Latex dans le répertoire ./rapports
On cherche à implémenter des filtres linéaires et non linéaires sur des images, suivant ce qui est proposé au chapitre 2 (pages 11 à 17) du document f./refs/cours-JFA.pdf.
Pour cela, on devra donc résoudre des équations du type (\partial_t u = div(D(u)\nabla u)) dans (\Omega=(0,1)\times(0,1)) avec une donnée initiale (u(0)) associée directement à une image, et des conditions aux limites à déterminer.
On cherchera a mettre en oeuvre ces méthodes sur des images variées, et à discuter les résultats.
- Trouver et synthétiser de la documentation sur le type d'équation dont il s'agit: l'équation de la chaleur linéaire, à coefficients constant, avec conditions aux limites de Neuman homogènes. Comment fait-on le lien entre une image et les fonctions que l'on manipule ici ?
- Trouver de la documentation sur les méthodes de différences finies pour cette équation.
- Doit-on résoudre un système linéaires ? Si oui décrire le système linéaire à résoudre. Quelles sont les méthodes numériques adaptées à la résolution de ce système linéaire ?
- À quelle(s) modification(s) le filtrage de Perrona-Malik correspond-il ? Comment la méthode numérique et la résolution pratique du système se généralise-t-elle à cette nouvelle situation ?
On se place pour cette partie dans le cas de l'équation en dimension (d=1), c'est à dire sur l'intervalle (\Omega = (0,1)). L'objectif n'est pas de filtrer une image, mais de comprendre l'implémentation des méthodes.
- Détailler l'architecture du code à implémenter, en essayant d'avoir un code modulaire et extensible facilement. Entrées et sorties ? Structuration du code en fichiers ? Quels outils de l'ensemble scipy/numpy ?
- Déterminer des problèmes modèles, dont les solutions sont connues et s'expriment de manière analytique. Ces solutions serviront à tester l'implémentation.
- Programmer la résolution du problème dans le cas linéaire, puis dans le cas non linéaire, et vérifier cette implémentation à l'aide des tests de la question 2.
On va généraliser le code produit dans la partie précédente au cas des images en 2D.
- Déterminer comment le code produit précédemment peut se généraliser à la dimension 2, dans les cas linéaire, puis non-linaire. Qu'est-ce qui change ? Quels sont les fichiers à modifier ? Recalculer des solutions analytiques permettant de faire des tests de vérification. Déterminer les méthodes de lecture/écriture des images. Noir et blanc ou couleur ?
- Produire le code de résolution du problème en 2D, et le vérifier à l'aide des tests calculés en 1.
- Trouver des images représentatives pour montrer les propriétés des filtres programmés, et illustrer les résultats obtenus.
Voir le répertoire ./refs