Tracé des axes mineur/majeur, de l'ellipse et du cercle équivalent et du rectangle englobant de chaque région

Présentation
À partir de la structure en sortie de la fonction regionprops, cette fonction trace, sur chaque région d'une image :

  • le rectangle englobant, en se servant du champ BoundingBox de la structure et de la fonction rectangle ;

  • l'ellipse équivalente ayant les mêmes moments, tracée de façon paramétrique à partir :

    • du grand axe, ou axe majeur correspondant au champ MajorAxisLength,

    • du petit axe, ou axe mineur correspondant au champ MinorAxisLength,

    • de son orientation : champ Orientation qui désigne l'angle entre l'axe des abscisses et l'axe majeur de l'ellipse ;


  • le cercle équivalent ayant la même aire que la région, à partir du champ EquivDiameter.

L'ellipse et le cercle auront pour centre celui de la région, que l'on obtiendra par le champ Centroid.

On pourra aussi consulter Visualizing regionprops ellipse measurements sur le blog de Steve Eddins.
Détails
Catégories : Images et videos
Avatar de Winjerome
Expert éminent sénior
Voir tous les téléchargements de l'auteur
Licence : Libre
Date de mise en ligne : 11 mars 2015




Avatar de Bionics Bionics - Membre à l'essai https://www.developpez.com
le 23/04/2015 à 14:32
Bonjour Winjerome!

La fonction que tu as fait est exactement ce qu'il me faut, je l'ai arrangé à ma sauce mais il y a quelque chose je ne comprend pas. Il faut savoir que je suis sur Matlab depuis très peu de temps (1 semaine), mes questions sont peut-être idiotes..

La sortie de ta fonction : handles
Si j'ai bien compris, la sortie ici c'est les caractéristiques de l'ellipse et le tracé rectangle/ellipse/cercle.

L'entrée de ta fonction : stats
C'est là que je ne comprends pas! Je fais tourner ta fonction en rajoutant une entrée "picture" pour choisir l'image à traiter et une autre "angle_voulu" pour des calculs de coordonnées de points de l'ellipse suivant un angle.

J'entre alors la fonction dans la command window :

Code : Sélectionner tout
1
2
3
fonction_showregionsprops_test ('essai6.fits',pi/4) 
Error using fonction_showregionsprops_test (line 16) 
Not enough input arguments.
D'accord c'est normal car je n'ai pas mis de paramètre pour "stats", mais je ne sais absolument pas quoi mettre.
Alors que quand je la lance en enlevant les 2 paramètres que j'ai rajouté (je les déclare directement dans la fonction) cela fonctionne.. C'est à dire que le seul paramètre qui reste c'est "stats" et quand je clique sur 'Run' tout fonctionne..
Je me suis donc dis que "stats" était défini dans la fonction, donc il était inutile de le mettre dans les paramètres. J'ai essayé et ca ne fonctionne pas, "stats viariable/fonction non définie".

Si quelqu'un peut m'aider ce serait génial, merci!
Avatar de Bionics Bionics - Membre à l'essai https://www.developpez.com
le 23/04/2015 à 14:55
Tout est bon, j'ai trouvé mon problème : nargin !

Je ne connaissais pas cette fonction, après avoir lu l'aide j'ai donc modifié :

Code : Sélectionner tout
if nargin==2 %Car je ne rentre que l'image et l'angle!
Merci tout de même, et ton travail Winjerome m'a beaucoup aidé! Merci
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Contacter le responsable de la rubrique MATLAB