预处理后将多目录图像保存在单个文件中

Posted

技术标签:

【中文标题】预处理后将多目录图像保存在单个文件中【英文标题】:save multi directory images in a single file after preprocessing 【发布时间】:2018-06-21 13:29:06 【问题描述】:

我正在处理 DICOM 图像,我有 5 个扫描(文件夹),每个扫描包含多个图像,在对图像进行一些预处理之后,我想使用“np.save”将处理后的图像保存在一个文件中,我下面的代码将每个文件夹保存在一个单独的文件中:

data_path = 'E:/jupyter/test/LIDC-IDRI/'
patients_data = os.listdir(data_path)
for pd in range(len(patients_data)):
    full_path = load_scan(data_path + patients_data[pd])
    after_pixel_hu = get_pixels_hu(full_path)
    after_resample, spacing = resample(after_pixel_hu, full_path, [1,1,1])
    np.save(output_path + "images_of_%s_patient.npy" % (patients_data[pd]), after_resample)

load_scan 是一个用于加载(读取)DICOM 文件的函数,我想用这段代码将所有处理过的图像保存在一个文件中,而不是五个文件中,谁能告诉我该怎么做,好吗?

【问题讨论】:

【参考方案1】:

首先要注意的是,您将%spatients_data[pd] 一起使用。我假设patients_data 是患者姓名的列表,这意味着您正在为每个患者构建不同的输出路径 - 您要求 numpy 将每个处理后的图像保存到新位置。

其次,.npy 可能不是您想要用于您的目的的文件类型,因为它是does not handle appending data。您可能想选择不同的文件类型,然后每次都将np.save() 指向相同的文件路径。

编辑:关于文件类型,pdf 可能是您的最佳选择,其中you can make each of your images a separate page。

【讨论】:

@Balasubramanian 谢谢你的好回答,我知道 %s,我可以随心所欲地玩它,你的第二个答案对我来说是新的,你能告诉我更多关于这个的信息吗?用于此目的的任何其他文件类型? 我想首先我很困惑为什么要将所有图像保存到同一个文件中 - 这似乎会使进一步的处理、查看或分发变得更加困难?将单个图像保存在指定的输出文件夹中还不够吗? 无论如何,我已经编辑了我的原始答案以包含一个带有 .pdf 的选项。希望有帮助! 感谢您的劳累,我想将预处理结果发送到深度学习模型中进行训练,我看看它是否在单个文件中更容易。将文件保存为 .pdf 文件对我来说不是一个好选择。 您能详细说明一下这个深度学习模型吗?如果没有更多信息,我什至不确定为什么单独的图像文件不起作用,因为您可以使用相同的命名约定自动加载许多图像,即使它们位于不同的文件中

以上是关于预处理后将多目录图像保存在单个文件中的主要内容,如果未能解决你的问题,请参考以下文章

35.将多实体文件保存成单个零件

将多字节数组图像数据合并为一个字节数组数据,并将WriteAllBytes合并为单个图像输出

将多页 PDF 转换为单个图像

java 一个线程处理多个任务

OpenCV 例程 300篇253. 多帧图像(动图)的读取与保存

OpenCV 例程 300篇253. 多帧图像(动图)的读取与保存