2011-11-30 3 views
3

J'ai besoin de calculer la valeur de pixel moyenne dans une région d'intérêt que j'ai définie sur une image CT. J'ai utilisé imfreehand pour dessiner le ROI, mais je ne sais pas comment aller de l'avant avec le calcul des valeurs de pixels. Quelqu'un peut-il m'aider?Utilisation de ROI dans MATLAB

+2

Si la réponse a été utile, pourriez-vous le marquer comme accepté pour aider les autres à la trouver s'il vous plaît? –

Répondre

15

Que pensez-vous de cela?

Faire quelques données:

>> im = [rand(200,200),rand(200,200)*2]; 

Affichage et sélectionnez un retour sur investissement en utilisant imfreehand:

>> imagesc(im) 
>> h = imfreehand; 

image1

Faire un masque du ROI:

>> mask = createMask(h); 

Juste pour montrer ce qui est arrivé, faire de la région en dehors du retour sur investissement NaN et affichage:

>> im(~mask) = NaN; 
>> figure; imagesc(im) 

image2

Calculer la moyenne des pixels à l'intérieur du retour sur investissement (qui est plus grand que 0,5, depuis que je choisi une région sur un côté du milieu):

>> mean(im(mask)) 
ans = 
     0.83782 

Hope that helps!

+0

Ok, donc les masques sont toujours binaires? Cuz Lorsque je crée un masque et l'affiche, il affiche automatiquement une image binaire. Comment puis-je m'occuper de cela? –

+0

Ohh je l'ai eu .. Ça a du sens! Bien que createMask n'ait pas fonctionné pour moi. Je ne sais pas si vous l'avez écrit comme une fonction ou simplement comme un pas pour moi de comprendre. J'ai fondamentalement utilisé le code suivant, h = roipoly (i) Une fois que j'ai créé le retour sur investissement, j'ai cliqué droit dessus pour le convertir en un masque. imshow (h) affichera le masque binaire av = mean (i (h)) Merci encore :) –