2011-11-30 13 views
3

CT画像で定義した関心領域の平均ピクセル値を計算する必要があります。私はROIを描くためにimfreehandを使いましたが、ピクセル値の計算方法についてはわかりません。誰でも助けてくれますか?MATLABでROIを操作する

+2

回答が参考になった場合は、他の人がそれを見つけやすくするために受け入れたとマークできますか? –

答えて

15

これはいかがですか?

いくつかのデータを作成します。

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

表示それとimfreehandを使用してROIを選択:

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

image1

ROIからマスクを作成します。

>> mask = createMask(h); 
私が選択したので、0.5よりも大きいROI(、内部のピクセルの平均値を計算

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

image2

:ちょうど、起こったかを示すROI NaNの外側の領域を作成し、表示する

中央の片側にある領域):

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

希望に役立ちます。

+0

さて、マスクは常にバイナリですか? Cuzマスクを作成して表示すると、自動的にバイナリイメージが表示されます。それをどうやって処理するのですか? –

+0

ああ私はそれを持っている..意味がある! createMaskは私のためには機能しませんでしたが。あなたがそれを関数として書いたのか、私が理解するためのステップなのか分かりません。私は基本的に次のコードを使用しました h = roipoly(i) ROIを作成したら、右クリックしてマスクに変換しました。 imshow(h)はバイナリマスクを表示します av = mean(i(h)) ありがとうもう一度:) –