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

Check file before calling SimpleITK.SimpleITK.ImageFileReader.ReadImageInformation()

我正在处理一组 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() 的文件和不使用它的文件之间没有区别。

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

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

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