# Gnral Dveloppement > Algorithme & Mathmatiques > Traitement d'images >  projection horizontale et verticale

## miss_angel

salut
j'en ai un problme avec l'implmentation de la projection horizontale et verticale d'une rgion d'une image en niveau de gris.
j'ai essay avec la fonction imhist, mais a donne pas de rsultat ::roll:: 
quelqu'un a une ide comment on prcde pour une projection horizontale et verticale?
Merci d'avance  ::oops::

----------


## Jerome Briot

Qu'entends-tu exactement par "projection verticale ou horizontale" ?

Aurais-tu un exemple  nous montrer ?

----------


## miss_angel

merci Dut
en fait il s'agit de faire une projection horizontale (verticale) de l'histogramme de l'image en niveau de gris.
Voici l'image jointe un exemple de la projection verticale d'une rgion d'image en niveaude gris.

----------


## ToTo13

Bonjour,

cela s'appelle des "histogrammes de projections" et ... a se fait plutt sur des images binaires.
Comment veux tu empiler les pixels si tes images sont en couleurs ou niveaux de gris ?

----------


## miss_angel

merci toto
mais  mes connaissances on peut faire un histogramme d'une image en niveau de gris  ::roll::  nan pas!!

----------


## ToTo13

Bonjour,

un histogramme d'une image oui, tu peux mme le faire quelque soit le type d'image (couleur, niveaux de gris, binaires) et l'espace de codage des couleurs.
Mais pour les histogrammes de projections, cela semble plus difficile. Ou du moins, je ne vois pas l'intrt , car tu auras un mini histogramme par colonne ou ligne.
C'est pour cela que les histogrammes de projections se font sur des images binaires afin d'avoir des caractristiques sur la forme de l'objet.

----------


## miss_angel

merciiii Toto  ::oops:: 
bien expliqu, mais bon c'est quoi la diffrence entre une projection horizontale et une projection verticale?
J'avoue j'ai pas trouv du doc sur cela, j'ai essay sur google mais je trouve souvent des articles qui citent la projection d'un histogramme sans explication (par exemple pour la reconnaissance des caractres ou des matricules pour dcouper les lettre ou les chiffres) mais c'est pas expliqu  ::calim2:: 
merci pour un coup de pouce ::oops::

----------


## Jerome Briot

Si j'en crois ceci http://www.developpez.net/forums/d78...s-projections/  :;): , sous MATLAB il suffit d'utiliser la fonction SUM sur les deux dimensions de l'image binaire



```

```


C'est a ?

Mais bon, je dplace quand mme la discussion dans le forum Algorithmes car le problme semble plus tre la comprhension de la mthode...  :;):

----------


## ale2000

Bonjour,

la diffrence entre une proj. verticale et horizontale... rien de plus simple.
Comme le montre l'exemple de Dut, le premier est une projection verticale qui consiste en la somme des pixels dans le sens verticale de la matrice (image) donc, colonne par colonne.
Le deuxime reprsente la prj. horizontale qui est la somme des valeurs dans le sens horizontal de la matrice (ligne par ligne)

----------


## ToTo13

Bonjour,

pour la projection verticale, imagine que tu fasses tomber verticalement tous les pixels. Ils vont s'entasser sur le bas de l'image et former ton histogramme. Voil un exemple java, mais le code est trivial.

----------


## miss_angel

merciiiii pour vos rponses  ::oops::  et pour le bon placement :;): 
je vais essayer de travailler avec ce que vous m'avez fournis. 
merci encore^^

----------


## claude nguingui

Dut d'aprs tes explications  sur la dfinition de projection horizontale et verticale, si j'ai bien compris il X tant la matrice histogramme de l'image et ont fait la somme de ces lignes ou de ces colonnes! mon problme est comment obtenir la matrice(histogramme)  partir de l'image? quelle  fonction doit je utiliser en matlab? peut je utiliser 'imhist'?

Merci dja pour votre attention!

----------


## Jean Dumoncel

Bonjour,

Dut a donn le code dans le message #8.

Et non, la fonction imhist calcule l'histogramme de l'image qui est diffrent de l'histogramme de projection.

----------


## ToTo13

Bonjour,
il y a du code Java dans la rubrique Contribuez du forum Algorithme.
En faisant une petite recherche bibliographique, on trouve que cela se nomme aussi "Integral Projection Function".
Aprs vrifications, en niveaux de gris (comme en binaire), il suffit de calculer l'intgrale (la somme en espace discret) de chaque colonne / ligne.

----------


## claude nguingui

merci beaucoup!

autre chose, aprs le calcul de l'histogramme de projection vertical, la valeur de ma longueur max est en pixel or je la veux en centimtre. puisque mon image originale est une chographie sur laquelle la longueur de l'image est de 15cm, je pensait faire une rgle de trois. C'est--dire:
soit p, ma longueur max  et  [x,y]= taille(ligne,colonne) de l'image binaire, je fais ceci:
si y->15cm
   p->L?     d'ou L=(p*15)/y, L exprim en cm

Selon moi c'est logique mais pensiez vous que c'est juste?

----------


## Jean Dumoncel

> Selon moi c'est logique mais pensiez vous que c'est juste?


Oui, c'est juste.

----------


## claude nguingui

merci magelan, ma convertion me rassure sauf que cela met ma mthode de calcul en doute. En fait pour le calcul de ma largeur, j'ai exploiter l'histogramme de projection horizontale et la fonction 'max' pour calculer la largeur (suivant l'horizontale) des objets disposs verticalement contenu dans une image segment(binaire). J'avais mieux expliqu mon problme dans la discussion intitul: "calcul de largeur d'un objet". merci de rgarder pour plus d'infos , les images s'y trouvent.
Donc pour mon calcul, comme indique Dut au message #8, j'ai parcouru mon image en faisant pour chaque objet trouv dans l'image comme suit:



```

```

Et c'est la valeur de larg en pixels que j'ai converti en cm comme j'ai indiqu au message #15.

Avec toutrs vos explication,je croyai avoir bien calculer ma largeur mais l , est ce que le code est bien cris? pardon, dites moi ce qui cloche.
Je connais la valeur que je suis sens trouver mais ce n'est pas le cas; Par exemple au lieu de trouver 2.2cm je trouve plutt 2.045cm, l'erreur est trs grande! c'est pourquoi j'ai commenc par doute de la manire de convertir.Mais avec l'assurance de magelan , je suspecte actuellement la mthode de calcul.

En complment, X est la matrice contenant un objet. merci!

----------

