主要是通过查看pydicom读取dicom文件的输出查找存储视频的array和图片的长和宽
try:
dataset = pydicom.dcmread(dicom_file_path)
except:
print('unreadable dcm file!')
continue
try:
patient_id = dataset[0x0010, 0x0020].value
except:
print('no patient id in dcm!')
continue
#单个dcm文件可能保存了多个video
#len(dataset[0x7fe1, 0x1001][0][0x7fe1, 0x1010][0][0x7fe1, 0x1020]则代表保存video的个数
#store_array_idx代表保存视频的索引
for store_array_idx in np.arange(len(dataset[0x7fe1, 0x1001][0][0x7fe1, 0x1010][0][0x7fe1, 0x1020].value)):
#检测存储保存视频长和宽的list(e.g. [612, 278, 0, 2])是否在(0x7fe1, 0x1086) in dataset[0x7fe1, 0x1001][0][0x7fe1, 0x1010][0][0x7fe1, 0x1020][store_array_idx][0x7fe1, 0x1026]是否存在
#保存视频长和宽的list(e.g. [640, 512, 0, 2])一般出现在最后几个tag当中,都是连续出现,所以从后开始搜寻,可能在一个video中出现多组长宽组合
#hw_begin代表第一个长和宽list出现在倒数第几个开始(由于可能由多组list)
hw_begin = 0
for i in np.arange(1, 11, 1):
if (0x7fe1, 0x1086) in dataset[0x7fe1, 0x1001][0][0x7fe1, 0x1010][0]