2011-11-30 77 views
3

我需要计算我在CT图像上定义的感兴趣区域的平均像素值。我用imfreehand绘制投资回报率,但我不知道如何继续进行像素值计算。谁能帮我?在MATLAB中使用ROI

+2

如果答案是有帮助的,你能否将其标记为接受以帮助其他人找到它? –

回答

15

这个怎么样?

使一些数据:

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

显示它并选择使用imfreehand的ROI:

>> mask = createMask(h); 

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

image1

从ROI使掩模

只是为了展示发生了什么事,使该区域成为投资回报率的NaN之外,并显示:

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

image2

计算投资回报率(即大于0.5内的像素的平均值,因为我选择一个地区在一边的中间):

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

希望帮助!

+0

好吧,掩码总是二进制的? Cuz当我创建一个蒙版并显示它时,它会自动显示一个二进制图像。我该如何处理这个问题? –

+0

哦,我知道了..有道理!尽管createMask不适合我。我不知道你是把它写成一个函数,还是作为我理解的一个步骤。我基本上使用下面的代码, h = roipoly(i) 一旦我创建了ROI,我右键单击它将其转换为掩码。 imshow(h)将显示二进制掩码 av = mean(i(h)) 再次感谢:) –