MATLAB: comment découper un cercle à partir d'une image
J'ai besoin de recadrer un cercle dans MATLAB.
J'ai besoin pour effectuer la segmentation de l'iris, et j'ai identifié le centre et le rayon de l'iris, et j'ai besoin de le couper à partir de l'image.
J'ai un vecteur ci celle ci(1) est coordonnée X ci(2) est coordonnée et ic(3) est le rayon du cercle.
OriginalL'auteur Leo.peis | 2011-01-10
Vous devez vous connecter pour publier un commentaire.
Une façon de faire cela est de créer un masque binaire avec celles à l'intérieur du cercle et de zéros à l'extérieur. Vous pouvez ensuite utiliser ce tableau pour masquer tout l'extérieur du cercle avec NaNs, ou pour lire les valeurs des pixels de l'image à l'intérieur du masque.
Pour créer un cercle masque, un moyen simple est de créer de coordonner les tableaux centrée sur l'iris, et le seuil de la distance, comme ceci:
Désolé :). De toute façon, je suggère de mettre NaNs à l'extérieur, comme
image(~mask) = NaN;
, de sorte que le autoscale dansimshow(image,[])
n'obtient pas déstabiliser par tous les zéros dans l'image.J'ai cette erreur: ??? Undefined fonction ou de la méthode 'sqrt' pour les arguments d'entrée de type "logique". dans cette ligne de masque = sqrt((xx.^2 + yy.^2)<ic(3));
désolé, c'était une parenthèse d'erreur. En fait, il n'est même pas nécessaire de prendre la racine carrée (vous pouvez juste place le rayon de la place pour le cercle de l'inégalité), donc je me fixe comme ça.
Merci!!!! travaille maintenant 🙂
OriginalL'auteur Jonas