2014-03-10 Kaohsiung.py
Department of Nuclear Medicine, Kaohsiung Veterans General Hospital
Sin-di Lee
Background picture: Stamen / Map data: OSM and its contributors
64個 projections 中第1張
64個 projections 中第16張
高雄榮民總醫院核子醫學部 Phantom study
import dicom
import pylab
import numpy as np
ds = dicom.read_file("img.dcm")
pylab.imshow(ds.pixel_array[0,:,:])
pylab.show()
高雄榮民總醫院核子醫學部 Phantom study
import dicom
import pylab
import numpy as np
ds = dicom.read_file("img.dcm")
pylab.imshow(ds.pixel_array[:,30,:])
pylab.show()
高雄榮民總醫院核子醫學部 Phantom study
import dicom
import pylab
from skimage.transform import iradon
import numpy as np
ds = dicom.read_file("img.dcm")
sinogram = numpy.transpose(ds.pixel_array[:,35,:])
reconstruction = iradon(sinogram)
pylab.imshow(reconstruction)
pylab.show()
array = ds.pixel_array
recon_3d = numpy.zeros((64,64,64))
for i in range(0,63):
recon_3d[i,:,:] = iradon(np.transpose(array[:,i,:]), output_size=64)
pylab.imshow(recon_3d[:,32,:])
pylab.show()
高雄榮民總醫院核子醫學部 Phantom study
pylab.imshow(recon_3d[:,:,30])
pylab.show()
高雄榮民總醫院核子醫學部 Phantom study
ds.dir # 呈現所有欄位
ds.PixelSpacing # pixel size
pixel_size= ds.PixelSpacing[1]/10 # read pixel size
pixel_volume= pixel_size**3
ROI = np.zeros((64,64,64)) # create a blank ROI array
maximal = np.max(recon_3d) # 先讀最大值
for i in range(0,63):
for j in range(0,63):
for k in range(0,63):
if recon_3d[i,j,k] > 0.5*maximal:
ROI[i,j,k]= 1
np.sum(ROI[:,:,:])*pixel_volume