|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 818 ![]() |
Voici la version finale de la routine d'inpainting utilisée dans le filtre UnNoise.
En esperant que, cette fois, le portage compilera sans erreur dans la MillieLib ![]() Code java :
Un petit mot sur le facteur de préservation d'isophote. Il permet de contrôler la continuité des lignes d'isophotes dans la region a restaurer:
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
||
|
20
|
|
|
#2 |
|
Membre chevronné
![]() ![]() Inscription : juin 2004 Messages : 1 395 ![]() |
Il serait, je pense, intéressant de mettre en référence le(s) papier(s) utilisé pour l'algorithme ?
Il existe d'autres méthodes, tenant compte par exemple des textures, est-il envisageable de les implémenter ? |
|
|
00
|
|
|
#3 | |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 818 ![]() |
Citation:
1. On calcule la courbe "frontiere" entre l'image et le masque 2. On calcule la valeur des pixels masqués qui sont adjacents de la frontiere. 3. Ces pixels calculés deviennent la nouvelle frontiere => on retourne a l'etape 1 Quand a la formule d'inpaint, elle est faite maison en s'inspirant de plusieurs méthodes. Mais bon, si on ne devait retenir qu'un papier ce serait celui la: An Image Inpainting Technique Based onthe Fast Marching Method Quand a l'inpaint par synthese de texture, c'est autrement plus complexe. On peut garder la partie algorithmie, sauf que l'on avance par "bande" et non plus par "ligne" de pixels. Par contre la formule n'a rien a voir... S'il y a des gens interessé, j'ai trouvé un bon papier: Image Repairing: Robust Image Synthesis by Adaptive ND Tensor Voting
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
|
00
|
|
|
#4 |
![]() ![]() Romuald PerrotAttaché Temporaire d'Enseignement et de Recherche (ATER) Inscription : avril 2005 Messages : 4 146 ![]() |
C'est plutôt intéressant comme traitement.
Est-ce que tu as plus d'information sur les cas difficiles à traiter ? (des cas qui font que la restauration n'est pas possible ou alors très difficilement) Au passage, le deuxième lien est mort pour moi.
__________________
http://rperrot.developpez.com http://phos-graphein.fr Vous désirez contribuer à la rubrique algorithmique, n'hésitez pas à me contacter. |
|
|
00
|
|
|
#5 | ||
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 818 ![]() |
Citation:
- lorsqu'il y a zero isophote, c'est a dire dans une zone avec un gradient tres faible (quasi uniforme) - lorsqu'il y a trop d'isophotes, c'est a dire au croisements de 2 "objets" blanc/noir A noter que ma formule est assez simpliste, et gere tres mal ces 2 cas. La formule utilisé dans le 1er lien PDF est bien meilleure. Je vais l'implementer, pour voir... Citation:
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
||
|
00
|
|
|
#6 | ||
![]() ![]() Romuald PerrotAttaché Temporaire d'Enseignement et de Recherche (ATER) Inscription : avril 2005 Messages : 4 146 ![]() |
Citation:
Citation:
__________________
http://rperrot.developpez.com http://phos-graphein.fr Vous désirez contribuer à la rubrique algorithmique, n'hésitez pas à me contacter. |
||
|
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 9 590 ![]() |
la seule chose que je trouve étrange, c'est la dernière image du 2ième papier (avec le microphone)...
Il y a de la "création" .. un peu... étrange... Comment se fait-il que derrière le bout du micro ils trouvent des trous ??? Je veux bien que ce soit l'algo, mais ça ça me semble pas être scientifiquement correct, puisqu'il n'y a pas de continuité d'une "feature"....
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
00
|
|
|
#8 | |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 818 ![]() |
Citation:
Des que la surface a restaurer devient trop grande, l'approche pixel/isophote est trop simpliste. Il faut passer au tenseur/texture... ![]() Restauration d'une grande surface avec l'approche pixel/isophote
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
|
00
|
|
|
#9 | ||
![]() ![]() Romuald PerrotAttaché Temporaire d'Enseignement et de Recherche (ATER) Inscription : avril 2005 Messages : 4 146 ![]() |
Citation:
Citation:
A mon avis, ton algo, devrait être très bien adapté à la restauration automatique de vieilles photos. Quand j'aurai un peu de temps il faudra que je code ça et que je teste sur quelques vieilles photos.
__________________
http://rperrot.developpez.com http://phos-graphein.fr Vous désirez contribuer à la rubrique algorithmique, n'hésitez pas à me contacter. |
||
|
|
00
|
|
|
#10 | |
![]() ![]() 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
|
|
|
#11 |
![]() ![]() Romuald PerrotAttaché Temporaire d'Enseignement et de Recherche (ATER) Inscription : avril 2005 Messages : 4 146 ![]() |
A vrai dire, ça serait une combinaison des deux, puisque sur les vieilles photos, tu as deux choses : le craquèlement (dus à la températures et/ou aux manipulations) et une apparition de points (dus la plupart du temps à la poussière qui fini par se coller sur la photo).
Pour le craquèlement, je pensais à l'algo que tu nous présentes aujourd'hui.
__________________
http://rperrot.developpez.com http://phos-graphein.fr Vous désirez contribuer à la rubrique algorithmique, n'hésitez pas à me contacter. |
|
|
00
|
|
|
#12 |
|
Membre chevronné
![]() ![]() Inscription : juin 2004 Messages : 1 395 ![]() |
C'est effectivement l'utilisation de l'inpainting par continuation d'isophotes la plus courante. La seconde méthode, utilisant les textures, permet des effets spéciaux plus complexes, car elle reconstruit des textures !
Un papier plutôt intéressant : http://www.google.fr/url?sa=t&ct=res...dFRfUKL-iv3I6w |
|
|
00
|
|
|
#13 |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 818 ![]() |
Mise a jour du P.O: Code pour PlugIn ImageJ
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
00
|
|
|
#14 |
|
Futur Membre du Club
![]() Inscription : juin 2007 Messages : 19 ![]() |
Dans la fonction inpaintloop, à quoi correspond "Integer.MAX_VALUE" ?
|
|
|
00
|
|
|
#15 | |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 818 ![]() |
Citation:
L'equivalent en C je crois que c'est INT_MAX (defini dans limits.h)
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
|
00
|
|
|
#16 |
|
Nouveau Membre du Club
![]() Inscription : juin 2006 Messages : 58 ![]() |
Bonjour à tous,
je travaille actuellement sur un problème similaire à l'inpainting : j'ai une image préalablement segmentée dont je désire supprimer certaines zones (de petites à moyennes), et si possible, en préservant les structures géométriques. J'ai lu deux ou trois articles sur l'inpainting et je me demande si c'est applicable à mon cas : pour l'inpainting, on fait de l'interpolation de couleur pendant la propagation. Pour mon traitement, je veux juste que les pixels à remplir prennent forcément une couleur de leurs voisins, sans moyenner. De plus, je ne suis pas un pro de cette technique et je me pose une question : comment propage-t-on le gradient à l'intérieur de la zone à remplir ? Si on calcule le gradient à partir d'une fenêtre 3x3 autour des pixels de contours, est-ce suffisant pour en avoir une bonne estimation ? En fait, j'aimerais des explications sur cette étape (ma difficulté à exprimer ma question relève très certainement du fait que je n'ai rien compris Je ne sais pas si j'ai été très clair, mais merci à vous pour m'avoir lu et répondu ! |
|
|
00
|
|
|
#17 | ||
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 818 ![]() |
Citation:
1. On prend un pixel P de la ligne de contour (dans le masque) 2. on fait un sampling dans le voisinage de P 3. on calcule le vecteur gradient moyen G 4. on calcule le vecteur porteur de la ligne d'isophote (orthogonal au gradient) 5. on fait un ème sampling dans le voisinage de P 5a. Pour chaque pixel S du sampling, on calcule l'angle entre le vecteur SP et le vecteur porteur de la ligne d'isophote 5b. si l'angle est nul => S et P sont sur la ligne d'isophote => S participe à la nouvelle valeur de P (= moyenne pondérée en fonction de l'angle) 6. retour au 1 (pour chaque pixel de la ligne de contour). Citation:
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
||
|
00
|
|
|
#18 |
![]() ![]() Guillaume Ingénieur de Recherche Inscription : janvier 2006 Messages : 4 788 ![]() |
Bonjour,
si je puis me permettre, voilà une explication et une démonstration en français de ce que vient de nous proposer PseudoCode.
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots ! - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS. - Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci) - ton poste tu dois marquer quand la bonne réponse tu as obtenu.
|
|
|
00
|
|
|
#19 |
|
Membre actif
![]() Inscription : mars 2008 Messages : 209 ![]() |
salut
s 'il vous plait on peut avoir le code dans un autre langage comme ça on touche une grande part de programmeurs ? |
|
|
00
|
|
|
#20 | |
![]() ![]() Guillaume Ingénieur de Recherche Inscription : janvier 2006 Messages : 4 788 ![]() |
Bonjour,
Citation:
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots ! - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS. - Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci) - ton poste tu dois marquer quand la bonne réponse tu as obtenu.
|
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com