在我們處理一些3D圖像如醫(yī)學(xué)掃描CT數(shù)據(jù)時(.mhd文件)搀突,根據(jù)實際需要可能要對其沿z軸padding润努,這時可以用如下代碼:
import numpy as np
import SimpleITK as sitk
#定義數(shù)據(jù)文件名续室。原始數(shù)據(jù)的名稱為“Case00.mhd Case01.mhd...”摇零,這里%02d實現(xiàn)的功能是將“%”后的
#subject_id替換前邊的“%02d”历帚,并自動高位補零為兩位數(shù)锋恬,
#如subject_id=1敌卓,則subject_name = "Case01"
subject_name = 'Case%02d' % subject_id
#這里用到SimpleITK包里的sitk.ReadImage方法和sitk.ReadImage方法,
#讀取.mhd文件伶氢,并轉(zhuǎn)換為三維矩陣的形式趟径。
file_list = os.path.join(raw_data_dir, subject_name+'.mhd')
itk_img = sitk.ReadImage(file_list)
img_array = sitk.GetArrayFromImage(itk_img)
#使用numpy里的np.pad進行padding,數(shù)值為0癣防,每次沿著z軸正負方向各padding一層蜗巧,直到z軸數(shù)值大于50
while img_array.shape[0] < 50:
img_array = np.pad(
img_array, [(1, 1), (0, 0), (0, 0)], mode='constant', constant_values=0)