2017-09-21 15 views
1

J'ai une image 3D et un masque, les deux dimensions [256x256x160]. Le masque est une image binaire de 0 et 255. Après avoir appliqué le masque sur l'image comme ceci:Image masquée affichant une mauvaise intensité

masked_image = image.*mask; 

je reçois un masked_image qui a tout à fait tort des valeurs d'intensité. En fait, ses valeurs ne sont nulle part sur l'image originale. Ils sont juste trop gros. Tout ce que je veux obtenir est d'extraire les intensités de l'image originale à l'emplacement du masque et de calculer la valeur moyenne de ce retour sur investissement. Je peux voir de imshow que le masque est aligné correctement sur l'image. Cependant, l'application du masque est infructueuse et je ne comprends pas pourquoi.

Répondre

1

Votre mask ne doit pas être mis à l'échelle de 0 à 255. Il doit contenir seulement 0 ou 1 pour l'utiliser comme vous le souhaitez. L'une de ces alternatives fonctionnerait:

masked_image = image.*logical(mask); 
% Or... 
masked_image = image.*(mask > 0); 
% Or... 
masked_image = image.*(mask./255); 
0

La conversion du masque à 0 et 1 plutôt que 0 et 255 a résolu le problème. Les ROI extraites ont maintenant la bonne intensité. Merci pour la clarification.