【问题标题】:How to write the header information from a Nifti image into a csv?如何将 Nifti 图像中的标题信息写入 csv?
【发布时间】:2020-03-24 04:08:08
【问题描述】:

我是医学图像处理的新手。我正在尝试读取 Nifti 图像并将标头信息写入 csv 文件。

import nibabel as nib
img = nib.load("xxx.hdr.gz")
hdr = img.header
print(hdr)

<class 'nibabel.nifti1.Nifti1PairHeader'> object, endian='>'
sizeof_hdr      : 348
data_type       : b''
db_name         : b''
extents         : 0
session_error   : 0
regular         : b'r'
dim_info        : 0
dim             : [  3  91 109  91   1   1   1   1]
...............

现在我如何设法将这些信息保存到 csv 文件中?当我将数据输入 Numpy 时,它是一个 3 维 numpy,但是将这些信息保存为 csv 格式的正确方法是什么。

【问题讨论】:

    标签: python csv header nifti nibabel


    【解决方案1】:

    目前,我假设您希望所有标题信息的样式与您在打印导出到 csv 的 hdr 时看到的样式相同。您可以创建一个标题列表,然后使用 csv python 模块将其导出。

    import nibabel as nib
    import csv
    
    img = nib.load("xxx.hdr.gz")
    hdr = img.header
    print(hdr)
    
    # Get all header data into list.
    header = [(_key) for _key in nib_file.header]
    headers_data = []
    headers_data.append([img.header[_key] for _key in img.header])
    
    # Write all headers from header into csv.
    csv_file = open('headers.csv', mode='w')
    csv_file_writer = csv.writer(csv_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
    csv_file_writer.writerow(header)
    for header_data in headers_data:
        csv_file_writer.writerow(header_data)
    
    csv_file.close()
    

    【讨论】:

    • 完美。如果我的回答对您来说是完整的,请将其标记为正确答案。
    猜你喜欢
    • 2015-08-08
    • 2018-03-23
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多