我是一個新的Python用戶,並且想要進行一些簡單的圖像處理。基本上我會有一個動態的醫學圖像 - 一系列不同時間點的2D圖像,我想將它們存儲爲一個3D數組。由於掃描技術的性質,在某些成像幀期間可能偶爾出現患者運動,這使得數據不可用。我想刪除這些幀並重新編排陣列 - 新尺寸(n-1,256,256)。刪除該幀後,我想更新圖像顯示。什麼是實現這一目標的最佳途徑?這裏是我到目前爲止的骨架代碼:從3D數組中刪除圖像幀
import dicom
import numpy as np
import pylab
from matplotlib.widgets import Slider, Button
ds = dicom.read_file("/home/moadeep/Dropbox/FS1.dcm")
#data = ds.pixel_array
data = np.random.rand(16,256,256)
nframes = data.shape[0]
ax = pylab.subplot(111)
pylab.subplots_adjust(left=0.25, bottom=0.25)
frame = 0
l = pylab.imshow(data[frame,:,:]) #shows 1024x256 imagge, i.e. 0th frame*
axcolor = 'lightgoldenrodyellow'
axframe = pylab.axes([0.35, 0.1, 0.5, 0.03], axisbg=axcolor)
#add slider to scroll image frames
sframe = Slider(axframe, 'Frame', 0, nframes, valinit=0,valfmt='%1d'+'/'+str(nframes))
ax_delete = pylab.axes([0.8,0.025,0.1,0.04], axisbg=axcolor)
#add slider to scroll image frames
#Delete button to delete frame from data set
bDelete = Button(ax_delete, 'Delete')
def update(val):
frame = np.around(sframe.val)
pylab.subplot(111)
pylab.subplots_adjust(left=0.25, bottom=0.25)
pylab.imshow(data[frame,:,:])
sframe.on_changed(update)
pylab.gray()
pylab.show()
感謝您的幫助。二維數組列表聽起來像是一個明智的解決方案。 – moadeep