我希望在Python中解压一批nii.gz文件,以便稍后可以在sitk中处理它们。当我手动解压单个文件并右键单击文件选择“提取..”时,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尝试读取文件时,我遇到了错误:
运行时错误:在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()
我理解为: 运行时错误: SimpleITK ReadImage 中出现异常: C:\d\VS14-Win64-pkg\SimpleITK-build\ITK\Modules\IO\PNG\src\itkPNGImageIO.cxx:101: itk::ERROR: PNGImageIO(0000022E3AF2C0C0): 读取文件头失败: 原因: fread 只读取了 0 而不是 8
有人能帮忙吗?