Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
972 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  remplissage des trous d'une image

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

remplissage des trous d'une image

n°1338065
touriste25
Posté le 03-04-2006 à 18:37:02  profilanswer
 

bonjour
je devrais faire un algorithme de remplissage des trous de mes images du cerveau. s'il vous plait de l'aide. et encore mieux si quelqu'un sait le faire avec le code en matlab. j'apprends a utiliser matlab, et c'est pas évident.
merci

mood
Publicité
Posté le 03-04-2006 à 18:37:02  profilanswer
 

n°1338111
nargy
Posté le 03-04-2006 à 19:14:36  profilanswer
 

> je devrais faire un algorithme de remplissage des trous de mes images du cerveau.
[:rofl]
 
sérieux, tu peut être plus explicite, voire donner un exemple d'image?

n°1338134
touriste25
Posté le 03-04-2006 à 19:42:57  profilanswer
 

bonsoir
je vous remercie de m'avoir repondu aussi rapidement. voici un exemple de mes image:http://brainvisa.info/doc/html/brainvisa/images/brainmask1.jpg
j'ai fait un seuillage pour avoir que le cerveau, mais il y a plein de trous !! ça donne a peu pres ça: http://brainvisa.info/doc/html/brainvisa/images/brainmask2.jpg
est ce que ça te donne une idée?
merci

n°1338135
touriste25
Posté le 03-04-2006 à 19:44:00  profilanswer
 

cette image est prise de l'internet, mes images sont sans le contour et sans les yeux.

n°1338149
nargy
Posté le 03-04-2006 à 19:58:44  profilanswer
 

oui,  dans ce cas, en général, on fait une moyenne de la couleur des pixels des coins, que l on prends comme couleur de référence.
 
ensuite, on définit une zone de pixels à retirer, qui ne contient au début que les quatre pixels de coin (on peut faire plus élaboré en démarrant avec un ensemble vide).
 
on aggrandit successivement la zone en y ajoutant pour tous les pixels déjà présents les pixels adjacents dont la couleur est suffisamment proche de la couleur de référence.
 
par suffisamment proche, on entends abs(gris1-gris2)<delta.
 
quand la zone ne s aggrandit plus on a fini.

n°1338151
nargy
Posté le 03-04-2006 à 19:59:52  profilanswer
 

ça c est l algo, mais je n ai jamais utilisé mathlab.

n°1338154
touriste25
Posté le 03-04-2006 à 20:03:47  profilanswer
 

désole, mais je n'ai pas compris grands choses. est ce que tu peux me réexpliquer plus simplement?
merci

n°1338238
nargy
Posté le 03-04-2006 à 22:00:51  profilanswer
 

tu commence par les coins, et tu rognes l image pixel par pixel jusqu a ce que tu tombe sur des pixels blancs. quand ya plus rien à rogner tu as fini.

n°1338248
nargy
Posté le 03-04-2006 à 22:12:40  profilanswer
 

:)


Message édité par nargy le 03-04-2006 à 22:13:28
n°1338501
nargy
Posté le 04-04-2006 à 11:15:14  profilanswer
 

je te donne la même chose en language algo:
 

Code :
  1. type Couleur:=Entier 0..255
  2. type Image:=tableau [][] de Couleur
  3. type Coordonnee:=Structure( Entiers x,y )
  4. type Zone:=Liste de Coordonnee
  5. fonction rogner(Image i) retourne Image
  6. debut
  7. /* on fait une moyenne de la couleur des pixels des
  8. coins, que l on prends comme couleur de référence. */
  9.   Couleur reference:=moyenne(i[0][0],
  10.     i[0][hauteur(i)],
  11.     i[largeur(i)][0],
  12.     i[largeur(i)][hauteur(i)]);
  13. /* on définit une zone de pixels à retirer, qui ne
  14. contient au début que les quatre pixels de coin */
  15.   Zone zone:=( (0,0),
  16.     (0,hauteur(i)),
  17.     (largeur(i),0),
  18.     (largeur(i),hauteur(i)) );
  19.   Image rognage[largeur(i)][hauteur(i)]:=Couleur(0);
  20. /* quand la zone ne s aggrandit plus on a fini. */
  21.   tant que taille(zone)>0
  22.   faire
  23. /* on aggrandit successivement la zone en y ajoutant
  24. pour tous les pixels déjà présents les pixels
  25. adjacents dont la couleur est suffisamment proche
  26. de la couleur de référence. */
  27.     Zone nouvelleZone:=()
  28.     pout tout element p de zone
  29.     faire
  30.       pour toutes les coordonnée adj adjacentes à p
  31.       si rognage[adj.x][adj.y]==0
  32.         et couleurIdentique(i[adj.x][adj.y], reference)
  33.       alors
  34.         nouvelleZone.ajouter( (adj.x, adj.y) )
  35.         rognage[adj.x][adj.y]:=255
  36.     fait
  37.     zone:=nouvelleZone
  38.   fait
  39.   retourne rognage;
  40. fin
  41. /* par suffisamment proche, on entends
  42. abs(gris1-gris2)<delta. */
  43. Entier delta:=32 // changer ici le seuil selon image
  44. fonction couleurIdentique(Couleur c1, Couleur c2) retourne Booleen
  45. debut
  46.   retourne abs(c1-c2)<delta;
  47. fin


Message édité par nargy le 04-04-2006 à 13:50:24
mood
Publicité
Posté le 04-04-2006 à 11:15:14  profilanswer
 

n°1338562
touriste25
Posté le 04-04-2006 à 11:57:20  profilanswer
 

c'est tres gentil, merci beaucoups de m'avoir donné le code.
bonne journée

n°1338667
nargy
Posté le 04-04-2006 à 13:49:42  profilanswer
 

attends, je viens de me rendre compte qu il y a une erreure

n°1338668
nargy
Posté le 04-04-2006 à 13:50:35  profilanswer
 

corrigé

n°1338700
touriste25
Posté le 04-04-2006 à 14:15:09  profilanswer
 

la quelle? au fait, j'ai déja seuillé mon image, donc maintenant j'ai une image en noir et blanc, tel que le fond est noir, et mon cerveau est blanc

n°1338734
nargy
Posté le 04-04-2006 à 14:27:31  profilanswer
 

non, c était pas ce seuillage là qu il fallait faire, mais celui que je t ai indiqué.

n°1340531
faridtheki​ng
Speed feer
Posté le 06-04-2006 à 13:32:00  profilanswer
 

Excusez-moi de mon ignorance mais à quoi sert l'algo ? j'ai pas trop compris. :)


---------------
On commence à fumer pour montrer qu'on est un homme. Vingt ou trente ans plus tard, c'est pour la même raison qu'on essaie de s'arrêter.
n°1340635
nargy
Posté le 06-04-2006 à 14:54:30  profilanswer
 

il me semble que touriste25 veut extraire de limage ci dessus le cerveau uniquement, sans les bords noirs.
 
l algo qu il utilisait récupère les parties grises et blanches, ce qui faisait des trous.
 
l algo que je propose sert à récupérer le centre de l image et éliminer les bords noirs. ça ressemble à la baguette magique dans les logiciels de retouche photo.

n°1340644
touriste25
Posté le 06-04-2006 à 14:59:35  profilanswer
 

bonjour
oui, c'est ça

n°1340649
nargy
Posté le 06-04-2006 à 15:03:22  profilanswer
 

tiens, salut :)
alors ça marche?

n°1340656
touriste25
Posté le 06-04-2006 à 15:08:06  profilanswer
 

bin, non !! mon responsable ne m'a pas laissé finir l'alg!! il m'a dit d'utiliser la methode BET, ou brain(fsl) que je ne connais pas dutout !! donc je fais de la recherche pour voir comment segmenter avec l'une de ses 2 methodes !!
merci

n°1340716
nargy
Posté le 06-04-2006 à 15:44:54  profilanswer
 

http://www.fmrib.ox.ac.uk/fsl/
mais j ai pas réussi à le downloader
(du coup je suis curieux de connaître leur algorithme)

n°1340751
touriste25
Posté le 06-04-2006 à 16:05:46  profilanswer
 

merci, j'ai réussi a le telecharger, mais c'est en anglais !! et c'est le grand pb !! je n'y comprends rien.

n°1340922
nargy
Posté le 06-04-2006 à 19:36:37  profilanswer
 

d'où l'a tu téléchargé?

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  remplissage des trous d'une image

 

Sujets relatifs
[qt designer] Détection d'objet dans une image filtre morphologique[IMG] Insérer une image en utilisant un CSS dans XSL
L'itérateur des ArrayList avec des trouspas touche a mes image
[SPIP] logo image ? + forum spip ?[Débutant] [VB.NET] Insertion image à partir d'une datagridv
bordure d'une image (mouse hover)[Résolu - Question idiote] image survolée
[VB.NET/VB] Probleme image dans une form !!Onmouseover: comment en survolant une image faire apparaître un texte?
Plus de sujets relatifs à : remplissage des trous d'une image


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR