首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pydicom : Dataset没有属性“”TransferSyntaxUID“”

pydicom : Dataset没有属性“”TransferSyntaxUID“”
EN

Stack Overflow用户
提问于 2017-09-05 08:38:41
回答 2查看 1.5K关注 0票数 1

嗨,我正在用pydicom读取DICOM文件

这篇文章不同于pydicom 'Dataset' object has no attribute 'TransferSyntaxUID'

这是我的代码

代码语言:javascript
复制
import dicom
dicom.read_file(file,force=True)

这会导致错误

代码语言:javascript
复制
        AttributeError                            Traceback (most recent call last)
    <ipython-input-32-a32aef2d2178> in <module>()
    ----> 1 dicom.read_file(raw_path + pat_lst[0] + '\\' + pat_dcm_lst[0],force=True)

    D:\Program Files\Anaconda2\lib\site-packages\dicom\filereader.pyc in read_file(fp, defer_size, stop_before_pixels, force)
        612     try:
        613         dataset = read_partial(fp, stop_when, defer_size=defer_size,
    --> 614                                force=force)
        615     finally:
        616         if not caller_owns_file:

    D:\Program Files\Anaconda2\lib\site-packages\dicom\filereader.pyc in read_partial(fileobj, stop_when, defer_size, force)
        520     if preamble:
        521         file_meta_dataset = _read_file_meta_info(fileobj)
    --> 522         transfer_syntax = file_meta_dataset.TransferSyntaxUID
        523         if transfer_syntax == dicom.UID.ImplicitVRLittleEndian:
        524             pass

    D:\Program Files\Anaconda2\lib\site-packages\dicom\dataset.pyc in __getattr__(self, name)
        254         if tag not in self:
        255             raise AttributeError("Dataset does not have attribute "
    --> 256                                  "'{0:s}'.".format(name))
        257         else:  # do have that dicom data_element
        258             return self[tag].value

    AttributeError: Dataset does not have attribute 'TransferSyntaxUID'.

我觉得匿名的时候出了点问题。我想知道为什么会这样。

删除TransferSyntaxUID是否与DICOM标准有关?

而且,我可以通过MATLABVTKITK阅读,但pydicom

所以现在我要做的是通过SimpleITK手动设置TransferSyntaxUID,然后通过pydicom再次读取。

我会让你知道什么时候管用

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2017-09-05 11:59:35

pydicom存储库有一个允许缺少传输语法的更新。作为下一版本之前的一种解决办法,您可以修改filereader.py中的几行代码,如下所示的here

票数 1
EN

Stack Overflow用户

发布于 2017-09-05 22:54:38

根据我对DICOM标准的理解,传输语法UID (0002,0010)似乎是一个强制标签。这是一个指示它为is requiredtype 1 tag

虽然这是标准所说的,但即使没有这个标记,库也可能能够读取这样的文件。我猜这是因为标准也定义了default transfer syntax

关于用SimpleITK设置值,这肯定是可行的。此外,如果需要验证文件是否符合标准,可以使用David Clunie的dicom3tools,特别是dciodvfy和dcdump。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46045495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档