【发布时间】:2020-06-05 14:17:42
【问题描述】:
我想在 python 中解压缩一批 nii.gz 文件,以便稍后在sitk 中处理它们。当我通过右键单击文件并选择“Extract..”手动解压缩单个文件时,该文件随后会被 sitk 正确解释(我使用的是 sitk.ReadImage(unzipped))。但是当我尝试使用以下代码在python中解压缩它时:
with gzip.open(segmentation_zipped, "rb") as f:
bindata = f.read()
segmentation_unzipped = os.path.join(segmentation_zipped.replace(".gz", ""))
with gzip.open(segmentation_unzipped, "wb") as f:
f.write(bindata)
sitk 尝试读取文件时出现错误: RuntimeError:SimpleITK ReadImage 中抛出异常:C:\d\VS14-Win64-pkg\SimpleITK\Code\IO\src\sitkImageReaderBase.cxx:82: sitk::ERROR: 无法确定“E:\BraTS19_2013_10_1_seg.nii”的 ImageIO 阅读器
当尝试做一些不同的事情时:
input = gzip.GzipFile(segmentation_zipped, 'rb')
s = input.read()
input.close()
segmentation_unzipped = os.path.join(segmentation_zipped.replace(".gz", ""))
output = open(segmentation_unzipped, 'wb')
output.write(s)
output.close()
我得到: RuntimeError:SimpleITK ReadImage 中抛出异常:C:\d\VS14-Win64-pkg\SimpleITK-build\ITK\Modules\IO\PNG\src\itkPNGImageIO.cxx:101: itk::ERROR: PNGImageIO(0000022E3AF2C0C0): PNGImageIO 未能读取文件头: 原因:fread 只读 0 而不是 8
谁能帮忙?
【问题讨论】:
-
SimpleITK 出现错误很奇怪,因为您没有使用 SimpleITK 读取图像(至少在您显示的代码中)。请注意,SimpleITK.ReadImage 无需解压缩即可读取“.nii.gz”文件。
标签: python-3.x gzip simpleitk nifti