|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||||
![]() ![]() Inscription : juin 2006 Messages : 6 935 ![]() |
Bonjour,
Je vais vous donner l'algorithme pour appliquer un filtre de choc de base. C'est à dire le filtre de choc de Osher et Rudin qui consiste à déterminer l'état stationnaire de l'équation suivante : dI/dt = - sign( Dnn(I)) * || grad I || (ou Dnn est la dérivée directionnelle selon le gradient et grad est le gradient) (et I l'image). Il y a d'autres filtres de chocs (qui font par exemple intervenir un arctang ou des complexes, ou encore une convolution avec une gaussienne). Ces autres méthodes sont souvent de meilleur qualité car elles peuvent être appliquées à des images ayant de bruit. Le filtre de choc de base a tendance à ne pas trop aimer le bruit. La méthode de base qui est souvent choisi pour résoudre et de calculer : Code :
Tout d'abord : Voici les fonctions permettant de calculer la différentielle en un point dans un canal particulier (je suis désolé d'avoir choisi une notation C++ mais ça me donne moins de boulot à traduire. J'espère en tout cas que vous comprendrez la sémantique des opérateurs : Code :
Avec la fonction minmod qui est définie par (il existe d'autres formulations) : Code :
Code :
Et l'algorithme s'écrit donc : Code :
Lenna : ![]() Correction : ![]() Ca, c'est une version avec l'application d'une gaussienne (rayon 2, sigma = 10) avec Inn (je n'ai pas noté l'algorithme) : c'est la méthode d'Alvarez et de Mazorra
__________________
Je ne répondrai à aucune question technique en privé |
||||||||||
|
|
00
|
|
|
#2 | ||
|
Invité régulier
![]() Boo Luck Inscription : novembre 2009 Messages : 6 ![]() |
Voici la version matlab. (et optimise pour)
Code :
Par contre mon floue est plus de l'ordre de 400pxl ... oui c'est un jolie floue. Mais vu que l'image fait 18Mpxl (et qu'il y a tres peu de bruit (100ISO) : quasiement que de la quntificqtion JPEG), il doit bien avoir un moyen d'avoir qqc de potable avec 1 ou 2 Mpixl? (L'origine du floue est un defaut de Mise au point) J'ai cherche sur google les filtres choc, mais j'en ai pas trouve beacoups (et je pense pas que ca puisse s'appliquer å mon cas assez "extreme"). J'ai trouve 2 logiciels payant (specialises dans le defloutage) que j'ai essaye en demo et les resultats sont vraiment navrant (pire que photoshop ou l'algo ci dessus). D'ailleur c'est etonnant de voir sur le web autant de gens qui se posent ce probleme et si peu de reponses commercial. |
||
|
|
00
|
|
|
#3 | |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 818 ![]() |
Citation:
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Boo Luck Inscription : novembre 2009 Messages : 6 ![]() |
Bonne idée, mais il risque pas d'avoir des gros bloc un peu trop visibles lors de l'assemblage?
Si on décompose , on traite (donc des contours plus net), et on désassembles, on n'a que des contour plus net: on perd beaucoup de détail. Pour avoir une idée du problème: (ok, en fait y a l'air d'avoir un peu plus de bruit que prévu, mais y a toujours la masse de pixels) Si on souhaite appliquer une déconvolution, quelle est la forme de la PSF? (ça doit être un problème classique les floues de Mise au point?) |
|
|
00
|
|
|
#5 |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 818 ![]() |
Ah oui, c'est quand meme un peu flou. La je pense que c'est un peu trop pour un filtre de choc. Il faut passer par des algos de déconvolution et donc effectivement estimer la PSF. Usuellement la PSF pour du flou est modélisée par une gaussienne, mais il y a aussi des techniques pour avoir une meilleure estimation:
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
00
|
Copyright © 2000-2013 - www.developpez.com