У меня есть изображение 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, а белый кружок почти однороден.
Есть идеи, как убедиться, что я получаю стандартное отклонение значений пикселей внутри белого круга ТОЛЬКО питоническим способом?