【发布时间】:2014-01-24 22:25:42
【问题描述】:
我有一个带遮罩的 DICOM 图像。它看起来像一个黑色背景,中间有一个白色圆圈(没有被蒙版覆盖和归零的区域)。
代码如下:
import numpy as np
import dicom
import pylab
ds = dicom.read_file("C:\Users\uccadmin\Desktop\James_Phantom_CT_Dec_16th\James Phantom CT Dec 16th\Images\SEQ4Recon_3_34\IM-0268-0001.dcm")
lx, ly = ds.pixel_array.shape
X, Y = np.ogrid[0:lx, 0:ly]
mask = (X - lx/2)**2 + (Y - ly/2)**2 > lx*ly/8 # defining mask
ds.pixel_array[mask] = 0
print np.std(ds.pixel_array) # trying to get standard deviation
pylab.imshow(ds.pixel_array, cmap=pylab.cm.bone) # shows image with mask
我只想获取白色圆圈内的像素值的标准偏差,即排除圆圈外的黑色空间(蒙版)。
我不认为我用上面的代码得到的值是正确的,因为它是 ~500,而且白色圆圈几乎是同质的。
任何想法如何确保我仅以 Pythonic 方式获得白色圆圈内像素值的标准偏差?
【问题讨论】:
标签: arrays pixel mask dicom roi