在调用SimpleTk.SimpleTk.ImageFileReader.ReadImageInformation()之前检查文件

2024-09-29 17:17:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理一组DICOM文件,其中有些有图像信息,有些没有。如果文件包含图像信息,则以下代码可以正常工作

file_reader = sitk.ImageFileReader()
file_reader.SetFileName(fileName)
file_reader.ReadImageInformation()

但是,如果文件没有图像信息,则会出现以下错误

Traceback (most recent call last):

  File "<ipython-input-61-d187aed107ed>", line 5, in <module>
    file_reader.ReadImageInformation()

  File "/home/peter/anaconda3/lib/python3.7/site-packages/SimpleITK/SimpleITK.py", line 8673, in ReadImageInformation
    return _SimpleITK.ImageFileReader_ReadImageInformation(self)

RuntimeError: Exception thrown in SimpleITK ImageFileReader_ReadImageInformation: /tmp/SimpleITK/Code/IO/src/sitkImageReaderBase.cxx:107:
sitk::ERROR: Unable to determine ImageIO reader for "/path/115.dcm"

如果DICOM文件没有任何信息,我只想忽略该文件,而不是调用ReadImageInformation()。有没有办法在调用ReadImageInformation()之前检查它是否工作?我尝试了以下方法,但在ReadImageInformation()所在的文件和没有ReadImageInformation()所在的文件之间没有区别

file_reader.GetImageIO()
file_reader.GetMetaDataKeys() # Crashes
file_reader.GetDimension()

Tags: 文件代码in图像信息linereaderfile
1条回答
网友
1楼 · 发布于 2024-09-29 17:17:04

我会在它周围放置一个异常处理程序来捕获错误。所以看起来是这样的:

file_reader = sitk.ImageFileReader()
file_reader.SetFileName(fileName)
try:
    file_reader.ReadImageInformation()
except:
    print(fileName, "has no image information")

相关问题 更多 >

    热门问题