# Gnral Dveloppement > Algorithme & Mathmatiques > Traitement d'images >  Dterminer seuil sous des maximums

## amphimax

Salut, je vous explique ce que je veux faire:

Sur une image de rflectivit radar/pluie, je dtecte les maximums locaux  l'aide de _imextendedmax_ et j'aimerai pouvoir supprimer les maxs obtenus si leur valeur est infrieure  un certain seuil. (boucle?) 

Ensuite, (imaginez une courbe gaussienne de rflectivit en 3D) pour chaque max qu'il reste, j'aimerai avoir un algo qui regarde toutes les cellules autour (en descendant) du max avec une 8-connection et suivant un modle concentrique jusqu' ce que soit le seuil fix, soit le minimum de la cellule soit atteint (i.e la limite avec une autre cellule  ct). 


Merci!!!

----------


## pseudocode

Bonjour,

C'est trs interessant, mais quelle est la question ?

----------


## amphimax

euh oui effectivement... ::oops:: 

Je sais ce que je veux faire, mais je ne sais pas trop comment, donc ma question tait de savoir si qqn avait des conseils ou astuces qui pouvaient m'aider.

----------


## pseudocode

J'ai un peu du mal  visualiser ce que tu veux faire.  ::koi:: 

Tu cherches le plus "grand" maximum local dans un voisinage donn ?

----------


## amphimax

Oui en quelque sorte mais je suis oblig, pour respecter ma mthode et pour avoir des rsultats corrects, de commencer par dtecter tous les max locaux et ensuite, sur la base de leur valeur respective, j'aimerai pouvoir:
effacer tous les max qui sont infrieurs  une certaine valeurtrouver la valeur de base de mes cellules. En 2D, une cellule de pluie idalise (en termes de rflectivit radar) prend l'apparence d'une Gaussienne. Aussi j'aimerai un algo qui "descende" des max (sommet de la gaussienne) restant avec une 8-connection en suivant un modle concentrique (tout autour de la cellule)  jusqu' ce que soit le seuil fix (la mme valeur qu'en 1), soit le minimum de la cellule soit atteint (i.e la limite avec une autre cellule  ct).


je ne sais pas si je suis assez clair cette fois...

Merci!!!

----------


## pseudocode

> effacer tous les max qui sont infrieurs  une certaine valeur


Un banal seuillage ferait-il l'affaire ?




> trouver la valeur de base de mes cellules. En 2D, une cellule de pluie idalise (en termes de rflectivit radar) prend l'apparence d'une Gaussienne. Aussi j'aimerai un algo qui "descende" des max (sommet de la gaussienne) restant avec une 8-connection en suivant un modle concentrique (tout autour de la cellule)  jusqu' ce que soit le seuil fix (la mme valeur qu'en 1), soit le minimum de la cellule soit atteint (i.e la limite avec une autre cellule  ct).


 ::koi::  On dirait que tu cherches les iso-contours d'une altitude donne. C'est ca ?

----------


## amphimax

> Un banal seuillage ferait-il l'affaire ?


euh oui je crois bien... mais un seuil sur les max et non sur l'image entire.




> On dirait que tu cherches les iso-contours d'une altitude donne. C'est ca ?


Oui je crois que c'est aussi a!

----------


## pseudocode

Donc, pour rsumer:

1. Parcourir la liste L des maxima locaux et ne conserver que ceux qui sont suprieurs a un seuil => on obtient une Liste L2

2. Pour chaque pixel dans L2 parcourir les pixels voisins, en carrs concentriques (*). Noter les pixels qui sont  l'altitude voulue (marching square).

(*): Trouver un critre d'arrt du parcours. Cas idal: on arrte quand tous les pixels d'un carr sont en dessous de l'altitude. Attention au a ou les 2 gaussiennes sont proches => l'iso-contour entoure les 2 pics.

----------


## amphimax

Oui a m'a l'air d'tre a. Comme tu dis un isocontour ne doit pas en entourer un autre.

----------


## pseudocode

> Comme tu dis un isocontour ne doit pas en entourer un autre.


Heuu... Non. Ma phrase c'tait: un isocontour ne doit pas entourer 2 pics (maxima locaux)  :;): 

Ce cas peut arriver suivant l'altitude que tu auras choisie.

----------


## amphimax

Ah non moi j'aimerai que les isocontours ne se croisent pas...

----------


## pseudocode

Dans ton 1er Post, tu indiques que le seul (altitude) est fix. Donc il se peut qu'un iso-contour entoure 2 maxima.

----------


## amphimax

mais moi j'aimerai un isocontour propre  chaque max de L2. Donc par rapport  ton image, il faudrait, dans ce cas, que le seuil (plan en bleu) soit comme  l'illustration du milieu et qu'il spare les sommets en deux zones distinctes. 

Sur l'image ci-jointe, cela donnerait: 
en rouge, premier seuil dBmin, avec valeur fixe pour toutes les imagestrouver les Imax: si max - deltadB <  dBmin, alors ce n'est pas un Imax.il faut encore trouver dBnr (en noir, qui doit tre > ou =  dBmin), qui est le seuil mobile et propre  chaque cellule en fonction de son max. Et c'est pour cette tape qu'il faudrait utiliser une mthode qui analyse la valeur des pixels dans le voisinage du max jusqu' tomber soit sur dBmin, soit sur dBnr, qui correspond  la base de la cellule.

Et donc c'est pour faire les deux dernires tapes que j'ai besoin d'aide...

----------


## souviron34

::king::  joli  ::mrgreen::

----------


## pseudocode

> mais moi j'aimerai un isocontour propre  chaque max de L2. Donc par rapport  ton image, il faudrait, dans ce cas, que le seuil (plan en bleu) soit comme  l'illustration du milieu et qu'il spare les sommets en deux zones distinctes.


Dans ce cas, une segmentation WaterShed devrait suffir. 

Tu peux mme gerer directement ta contrainte de "seuil" pour les maxima : il suffit de ne pas mettre de watershed si la profondeur du bassin est plus petite que le seuil.

----------


## amphimax

ok mais  voir avec le watershed, le niveau de l'eau (seuil) est le mme pour toute l'image... parce que moi il me faut un seuil propre  chaque Imax

----------


## pseudocode

> ok mais  voir avec le watershed, le niveau de l'eau (seuil) est le mme pour toute l'image... parce que moi il me faut un seuil propre  chaque Imax


 ::koi::  Il n'y a pas de seuil dans la mthode watershed. Ce sont uniquement les lignes de crtes qui forment les limites des rgions.

----------


## amphimax

dsol, mais alors je ne vois pas alors en quoi watershed peut m'tre utile... (je sais se ne capte pas vite! ::oops:: )
Que peut on retirer comme informations aprs traitement?

----------


## pseudocode

> dsol, mais alors je ne vois pas alors en quoi watershed peut m'tre utile... (je sais se ne capte pas vite!)
> Que peut on retirer comme informations aprs traitement?


On trouve les lignes de sparation entre les bassins. Dans ton cas ce sont les lignes qui sont  la base des gaussiennes.

Si tu nous postais une des tes images, ca serait peut-etre plus clair.  :;):

----------


## amphimax

voil voil. Sur l'image, l'illustration de gauche est l'image de base, celle du centre reprsente tous les max locaux et celle de droite est le watershed de l'image de base. Je ne vois pas pourquoi, sur cet exemple, certaines cellules prsentes sur l'image de base n'apparaissent plus aprs le watershed...

----------


## pseudocode

> Je ne vois pas pourquoi, sur cet exemple, certaines cellules prsentes sur l'image de base n'apparaissent plus aprs le watershed...


Oui, je ne vois pas pourquoi.  ::koi:: 

Le watershed, il est fait sur une image en niveaux de gris ou sur l'image couleur ?

----------


## amphimax

Je ne sais pas... (sur mon exemple ci-dessus, le watershed est appliqu sur une image couleur) je viens d'essayer sur une image binaire et le rsultat n'est pas plus concluant, a laisse aussi de ct des cellules. En plus je ne vois pas comment il pourrait trouver des crtes sur une image o tous les pixels d'un amas valent 1, mais bon... :8O: 

Et pour revenir au problme de l'isocontour, tu ne vois pas comment faire?

----------


## pseudocode

> Je ne sais pas... (sur mon exemple ci-dessus, le watershed est appliqu sur une image couleur) je viens d'essayer sur une image binaire et le rsultat n'est pas plus concluant, a laisse aussi de ct des cellules. En plus je ne vois pas comment il pourrait trouver des crtes sur une image o tous les pixels d'un amas valent 1, mais bon...


Il faut construire un image en niveaux de gris ou chaque niveau correspond  une valeur "relle" de la mesure (= valeur de la rflectivit).




> Et pour revenir au problme de l'isocontour, tu ne vois pas comment faire?


De toutes faons, il te faudra construire l'image en niveaux de gris prcdantes. Ensuite on peut inventer plein de mthodes. 

A mon sens, la plus simple reste le watershed, en controlant la profondeur des bassins pour eviter l'over-segmentation.

Sinon la croissance de rgions devrait aussi fonctionner.

----------


## amphimax

> Il faut construire un image en niveaux de gris ou chaque niveau correspond  une valeur "relle" de la mesure (= valeur de la rflectivit).


Et pour a je peux utiliser rgb2gray? T'entends quoi par "chaque niveau doit correspondre  une valeur relle de la mesure?

----------


## pseudocode

> T'entends quoi par "chaque niveau doit correspondre  une valeur relle de la mesure?


Ton echelle de couleurs doit correspondre a des valeurs "relles": 
blanc=minimum --> bleu=moyen --> rouge=maximum

Il faut avoir une image (=tableau d'entiers) dont les valeurs correspondent aux valeurs "relles"
0=minimum ---> 128=moyen --> 255=maximum

----------


## amphimax

Mais mes pixels n'ont que 16 valeurs possibles sur l'image de base... je ne vois pas trop comment transformer ces valeur en 256 niveaux...

Et je n'ai encore pas compris un truc: pour le watershed, le flooding se fait de faon uniforme sur l'image (et son utilit se serait juste de trouver les lignes de sparation entre chaque cellule)? Ou y'aurait-il un moyen de le faire directement correspondre  un seuil propre  chaque Imax afin de directement dlimiter des rgions selon ma mthode?


Et personne n'a une mthode concrte  me proposer pour crer une boucle qui regarde tous les pixels autour des Imax jusqu' trouver la valeur minimale (la limite qui pourrait tre donne par le watershed) ou le seuil dBmin que j'ai fix?

----------


## pseudocode

> Mais mes pixels n'ont que 16 valeurs possibles sur l'image de base... je ne vois pas trop comment transformer ces valeur en 256 niveaux...


Tu n'as pas accs aux *donnes* qui ont permis de gnrer cette image de base en 16 couleurs ?

----------


## amphimax

Non, ce sont les images de bases et c'est tout ce que je peux avoir. Les pixels ont de valeur allant de 0  15, qui correspondent  des classes de rflectivit.

Et si jamais j'ai dit mon post prcdent... merci

----------


## pseudocode

> Non, ce sont les images de bases et c'est tout ce que je peux avoir. Les pixels ont de valeur allant de 0  15, qui correspondent  des classes de rflectivit.


Hum... 15 valeurs par pixels, ca va pas tre terrible comme rsolution pour faire un watershed. Effectivement, ta mthode empirique de dpart est sans doutes meilleure.  ::king:: 




> Et personne n'a une mthode concrte  me proposer pour crer une boucle qui regarde tous les pixels autour des Imax jusqu' trouver la valeur minimale (la limite qui pourrait tre donne par le watershed) ou le seuil dBmin que j'ai fix?


Il y a quelque part sur le forum une discussion sur le "parcours en spiral".  :;):

----------


## amphimax

Merci j'ai trouv la discussion je vais voir ce que je peux en tirer

----------


## amphimax

bon fautes de solution avec le parcours en spirale, je reviens ici, mme si c'est du Matlab.

Si je connais tous mes max locaux (Imax), n'y a-t-il pas un moyen relativement simple (avec une boucle par exemple) de rechercher les pixels dans le voisinage ( partir de et autour des Imax avec une 8-connectivity) jusqu' soit tomber sur le seuil, soit trouver la limite entre deux cellules (minimum)?

Merci

----------


## amphimax

j'aimerai reprendre o Pseudocode disait qu'il me fallait une image avec 256 classes de gris. Si tu est l, Pseudo, saches que j'ai une image en gris mnt  ::mouarf:: !




> Il faut construire un image en niveaux de gris ou chaque niveau correspond  une valeur "relle" de la mesure (= valeur de la rflectivit).
> 
> De toutes faons, il te faudra construire l'image en niveaux de gris prcdantes. Ensuite on peut inventer plein de mthodes. 
> 
> A mon sens, la plus simple reste le watershed, en controlant la profondeur des bassins pour eviter l'over-segmentation.
> 
> Sinon la croissance de rgions devrait aussi fonctionner.


Est-ce qu'on pourrait continuer  explorer cette voie?

Merci!!!

----------


## pseudocode

Poste nous l'image en niveaux de gris, pour voir ce qu'on peut faire.  :;):

----------


## amphimax

En fait j'ai toujours le mme type d'image qu'avant, sauf que je lui ai appliqu la fonction ind2gray. Je ne sais pas si c'est suffisant!?



```

```

J'ai aussi mis une image watershed. Cette fois il ne semble pas manquer de rgions.

----------


## pseudocode

Bien tent... mais non.  ::aie::  La fonction ind2gray() convertit les couleurs en NdG selon la "luminosit" de la couleur. 

Ce qu'il faut c'est convertir la couleurs en NdG selon la "valeur mtier"  (des pressions atmosphriques ?). Il faut donc trouver a quoi correspond chaque couleur. 

------------------------------------

NB: Il semblerait que l'echelle des couleurs suive le spectre colorimetrique (rouge -->jaune-->vert-->bleu = arc-en-ciel). On pourrait donc utiliser la conversion RGB/HSV pour dduire les "valeurs mtiers" mais c'est assez sale comme procd. Ca donnerait cela:


original, NdG mtier, Watershed(80)

----------


## amphimax

Ok donc j'oublie ind2gray.
On m'a aussi propos a pour "construire" 256 niveaux: 



> Cela ne rpond peut tre pas au fond de la question mais :
> 
> 
> 
> ```
> 
> ```


t'en penses quoi?

Et sinon je ne comprends pas bien ce que signifie



> utiliser la conversion RGB/HSV pour dduire les "valeurs mtiers"


C'est quoi HSV et les "valeurs mtiers"?

----------


## pseudocode

> On m'a aussi propos a pour "construire" 256 niveaux: 
> 
> 
> ```
> 
> ```
> 
> t'en penses quoi?


Non, ca fait juste un changement d'echelle.




> C'est quoi HSV et les "valeurs mtiers"?


Les valeurs metiers c'est la "VRAIE VALEUR" que reprsente chaque pixel de ton image. Vu que c'est des image mto, je suppose que chaque pixel de couleur reprsente une "pression atmospherique", ou "une densit de nuage", ou je sais pas quoi. 

Il faut absolument que tu te renseigne pour avoir l'echelle et la lgende utilise pour les couleurs. A partir de la, on pourra calculer pour chaque pixel la "VRAIE VALEUR" qu'il reprsente:

Pixel 100 %Rouge = valeurX
...
Pixel 50% Rouge / 50 %Jaune = valeurY
...
Pixel 100% Jaune = valeurZ
...


NB: HSV c'est un modle pour reprsenter les couleurs (un autre modle que  le classique RGB). A priori c'est ce modle qui a t choisi, pour associer une couleur  une valeur mtier. Mais je ne suis pas sr. Il vaut mieux te renseigner.

----------


## amphimax

Mes images correspondent  des valeur d'intensit de pluie. Je te met aussi une image brute, pour voir.

Ah et j'ai essay de faire 

```

```

 mais mes images ne s'affichent plus que sur une colonne de pixels... je ne capte pas pourquoi?! ::aie::

----------


## pseudocode

Ton image brut prouve a que ma theorie tait fausse. C'est pas le modle HSV qui est utilis.  ::aie:: 

Bon, a priori ton image brute comporte 15 couleurs diffrentes, et ton modle mtier comporte 15 classes. Je suppose donc que l'ide de dpart tait la bonne: n index de la couleur = n de la classe.

Poste nous l'image "ind2gray()" calcule sur l'image brute.

----------


## amphimax

Voil!

----------


## pseudocode

Ah non... je me suis tromp, c'est pas ca que je voulais.  ::aie:: 

ind2gray() ca convertit une couleur en gris suivant sa luminance. Moi je voulais transformer une couleur en gris suivant son numero d'index. Aprs un leger survol de la doc matlab, il faut modifier le contenu de la colormap de telle sorte que:

map(0) = 0 0 0
map(1) = 17 17 17
map(2) = 34 34 34
...
map(15) = 255 255 255

Ca donne une image comme cela:


gauche: image en niveau degris
droite: segmentation watershed

----------


## amphimax

ok et comment je peux faire a, uniquement  la main en modifiant mon colormap? Parce que ce que tu as fait quivaut  multiplier la valeur de base des pixels par 17, donc je ne vois pas trop la diffrence avec avant. 

Pourquoi je ne pourrai pas faire 



```

```

----------


## pseudocode

> Pourquoi je ne pourrai pas faire 
> 
> 
> ```
> 
> ```


Je ne sais pas, je ne connais pas Matlab.  ::aie:: 

Il faut recuprer, pour chaque pixel, le n index dans la colormap au lieu du veceteur couleur. Si ca se trouve, c'est directement accessible dans l'image. 

Tu peux demander sur le forum Matlab (dis bonjour  Dut de ma part  :;): ).

----------


## amphimax

> Je ne sais pas, je ne connais pas Matlab. 
> 
> Il faut recuprer, pour chaque pixel, le n index dans la colormap au lieu du veceteur couleur. Si ca se trouve, c'est directement accessible dans l'image. 
> 
> Tu peux demander sur le forum Matlab (dis bonjour  Dut de ma part ).


Ok merci, j'y manquerai pas!  ::D: 

Et sinon, en imaginant que c'est bon pour cette image, tu voyais la suite comment?

----------


## pseudocode

> Ok merci, j'y manquerai pas! 
> 
> Et sinon, en imaginant que c'est bon pour cette image, tu voyais la suite comment?


En exemple, je t'avais mis le rsultat d'une segmentation watershed. Chaque rgion contient un "pic" de valeur. 

Tu n'a sans doute pas besoin d'avoir autant de rgions que cela. Peut-etre juste conserver les regions dont le pic dpasse un certain seuil ? a toi de voir.

----------


## amphimax

En fait, comme j'ai une longue srie d'image  analyser et que l'intensit des pluies y est trs variable, ce serait bien que j'arrive  ne garder qu'un certain nombre de maximums par image en fonction du max absolu pour chaque image. Comme mon but est de sortir des statistiques, ce serait bien que je puisse avoir la valeur max pour chaque image, la valeur moyenne sur ma srie, le nombre de max locaux, etc. et ensuite j'aimerai avoir des infos sur les cellules pluvieuses au niveau de leur trajectoire, forme et intensit.

----------


## pseudocode

Une fois que tu as dcoupe ton image en rgion, tu peux avoir toutes les informations statistiques que tu veux. C'est juste du comptage et du calcul.

Pour la "trajectoire" c'est nettement plus compliqu : il faut une sequence d'image et calculer des flux.

----------


## Jerome Briot

> De toute faon, que les valeurs des pixels s'tale sur [0 15] ou sur [0 255], je ne vois pas ce que cel change dans l'algorithme du Watershed...


Si le nombre de valeurs diffrentes (ici 16) est trop limit, je ne vois pas bien comment on pourrait l'augmenter.

Un simple talage sur la plage [0 255] ne rsoudra pas le problme puisqu'il n'y aura toujours que 16 valeurs diffrentes



```

```

Ou alors j'ai rat quelque chose  ::koi::

----------


## pseudocode

> Un simple talage sur la plage [0 255] ne rsoudra pas le problme puisqu'il n'y aura toujours que 16 valeurs diffrentes
> 
> Ou alors j'ai rat quelque chose


Non, tu as raison. Je cherchais juste a savoir s'il avait accs aux veritables valeurs qui ont permis de constuire cette image en 15 couleurs.  :;):

----------


## amphimax

> Bien tent... mais non.  La fonction ind2gray() convertit les couleurs en NdG selon la "luminosit" de la couleur. 
> 
> Ce qu'il faut c'est convertir la couleurs en NdG selon la "valeur mtier"  (des pressions atmosphriques ?). Il faut donc trouver a quoi correspond chaque couleur. 
> 
> ------------------------------------
> 
> NB: Il semblerait que l'echelle des couleurs suive le spectre colorimetrique (rouge -->jaune-->vert-->bleu = arc-en-ciel). On pourrait donc utiliser la conversion RGB/HSV pour dduire les "valeurs mtiers" mais c'est assez sale comme procd. Ca donnerait cela:
> 
> 
> original, NdG mtier, Watershed(80)





> En exemple, je t'avais mis le rsultat d'une segmentation watershed. Chaque rgion contient un "pic" de valeur. 
> 
> Tu n'a sans doute pas besoin d'avoir autant de rgions que cela. Peut-etre juste conserver les regions dont le pic dpasse un certain seuil ? a toi de voir.


Je pense que tu parles de celle-l? Et comment t'as fait pour obtenir ce watershed? 

Pour Dut, franchement je ne sais pas.  ::cry::  C'est juste qu' l'affichage, comme il y plus de contraste, a marche mieux, et le watershed semble plus performant. Mais est-ce que c'est vraiment utile ou je fais fausse route?

----------


## pseudocode

> Je pense que tu parles de celle-l?


Non, je parlais surtout de celle du post #41




> Et comment t'as fait pour obtenir ce watershed?


Avec un plugin pour ImageJ. Mais n'importe quelle implmentation de l'algo doit faire l'affaire.

----------


## Jerome Briot

> Mais n'importe quelle implmentation de l'algo doit faire l'affaire.


Sous MATLAB, l'algorithme implment est celui-ci :




> Meyer, Fernand, "Topographic distance and watershed lines," Signal Processing , Vol. 38, July 1994, pp. 113-125.

----------


## pseudocode

> Sous MATLAB, l'algorithme implment est celui-ci :
> 
> 
> 
> 
> 			
> 				Meyer, Fernand, "Topographic distance and watershed lines," Signal Processing , Vol. 38, July 1994, pp. 113-125.


Moi j'en ai utilis un autre, mais celui la marche aussi trs bien.  ::king:: 

(d'autres algos de watershed ici)

----------


## amphimax

Donc pour rsumer:

Est-il ncessaire d'avoir plus de 16 classes vu que de toutes faon je garderai 16 ndg?

Merci pour les link des algo, mais je ne suis pas certain d'avoir le niveau de bien les comprendre... ce qui est certain, et d'aprs le premier coup d'il que j'y ai donn, c'est que ce serait bien si j'arrivais  l'aide du watershed  dfinir plusieurs cellules pour chaque image, selon les max et les min.

----------


## pseudocode

> Est-il ncessaire d'avoir plus de 16 classes vu que de toutes faon je garderai 16 ndg?


effectivement, si tu ne gardes que 16 ndg ca ne sert a rien d'avoir plus de classes.

----------


## amphimax

Salut  tous, on arrive  revenir  mon problme de dcoupage en rgion? J'aimerai donc pouvoir, pour chaque image de ma srie, sortir un certaine nombre de rgion (=cellules de pluie) en fonction de leur intensit.

----------


## amphimax

J'ai fait une segmentation qui m'entoure les zones qui m'intressent. Le problme est que ce n'est pas des rgions  proprement parl. J'aimerai donc avoir une image qui contiennent ces rgions que je pourrais ensuite analyser statistiquement. Comment je peux passer d'une segmentation en rgions unies???

----------


## pseudocode

Il faut remplir les surfaces une par une (algo flood-fill par exemple)

----------


## amphimax

l'aide de 


> BW2 = imfill(BW,locations) performs a *flood-fill*
> operation on background pixels of the binary image BW,
> starting from the points specified in locations. If locations is
> a P-by-1 vector, it contains the linear indices of the starting locations.
> If locations is a P-by-ndims(BW) matrix,
> each row contains the array indices of one of the starting locations.


 ?

J'ai regard cet algo mais je ne sais pas quoi mettre comme "locations"...

----------


## pseudocode

> l'aide de  ?
> 
> J'ai regard cet algo mais je ne sais pas quoi mettre comme "locations"...


Tu parcours l'image pour trouver un point non rempli (= qui a la valeur du fond) et tu effectues le Flood-Fill avec une valeur "V": cela rempli une region. Ensuite tu incrmente "V" et tu recommences l'opration.

----------


## amphimax

::aie::  je suis pas certain de bien capter... c'est quoi la valeur du fond, 0? Parce que ce qui est hors des zones dlimites par la segmentation n'est pas forcment gal  0.

----------


## pseudocode

D'apres ton image d'exemple (post #57) ca a pourtant l'air d'etre le cas.  ::koi:: 

Sinon tu peux aussi dire que tous les pixels qui ne sont pas de la couleur de ta ligne de frontiere (vert) sont de la couleur du fond.

----------


## amphimax

> D'aprs ton image d'exemple (post #57) a a pourtant l'air d'tre le cas.


Non non regarde bien il y a des zones gris clair qui sont ignores. 



> Sinon tu peux aussi dire que tous les pixels qui ne sont pas de la couleur de ta ligne de frontiere (vert) sont de la couleur du fond.


 Je ne comprends toujours pas... Comme ce que je veux est que l'intrieur des ces zones puissent tre labellises, il me semble que le plus simple serait de colorer la partie qui est contenue dans l'entourage vert et d'ignorer le reste.

----------


## pseudocode

> Je ne comprends toujours pas... Comme ce que je veux est que l'intrieur des ces zones puissent tre labellises, il me semble que le plus simple serait de colorer la partie qui est contenue dans l'entourage vert et d'ignorer le reste.


Oui, c'est ca qu'il faut faire. 

Quand je disais:



> Sinon tu peux aussi dire que tous les pixels qui ne sont pas de la couleur de ta ligne de frontiere (vert) sont de la couleur du fond.


c'etait pour que tu puisses ensuite appliquer l'algo de remplissage, et faire ce que tu suggres.

----------


## amphimax

ok merci j'ai russi  faire qqch qui me convient, du moins pour le moment!  ::D: 
J'ai extrait la couleur verte du contours, puis j'ai donn la valeur 0  tout le reste avant de remplir l'intrieur avec des 1. 


```

```

 ::yaisse2:: 

Et maintenant si je cherche  avoir des stats il faut que j'utilise Regionprops tu crois?
Comme c'est des cellules de pluies, j'aimerai bien pouvoir dterminer un vecteur de trajectoire et direction pour savoir d'o viennent les pluies et o elles vont. Je penses  des stats sous formes vecteur qu'il serait possible d'afficher comme trajet parcourus  partir du centre de gravit des cellules (centroid), mais aussi  pouvoir sortir, peut-tre sous forme de tableau, des choses styles Est-Nord-Est/Sud-Sud-Est qui correspondraient  l'intersection de ce vecteur sur le cadre de l'image, et donc qui donnerait une direction gnrale du trajet des pluies pour la traverse de la zone d'tude.

Des ides? Merci bcp!!!

----------

