写在最前面的
这是本人第一篇优快云文章,有描述不妥和技术错误请大家指正
问题描述
最近我在做一个数据集的预处理,医学图像,需要读取和保存 .nii.gz 格式
于是调用了这个包:Nibabel
介绍网址如下:官方User Documentation
而在调用他们的保存命令:
nib.save(array_img, 'my_image.nii')
的时候,出现了如下报错:
报出了:AttributeError: ‘numpy.ndarray’ object has no attribute ‘to_filename’ 错误
再使用介绍里还提供了另一种保存方式:
array_img.to_filename('my_image_again.nii')
直接调用也是不行
解决
首先去Nibabel官网查询,并没有找到相关的问题解决方案
官方介绍无果之后,上网冲浪,发现没有相关的问题和解决办法
但是介于错误中描述numpy中找不到这个文件处理函数
不知道是我用的这个包过于老旧还是numpy更新了
总之就是感觉类似于函数名更换的问题
于是使用老方法查找包的函数
找到了一个名字类似的:
array_img.tofile('my_image_again.nii')
替换进去,运行没有报错
其他
这个函数到底是不是用来替换原来函数的我并不知道
没有查到相关的说明,总之是能用了
如果有哪位大佬有更详细的解答可以在评论区写一下
总之希望能够帮到各位
示例代码
import numpy as np
im = np.zeros((10,10),dtype=np.float64)
im.tofile('D:\\a.jpg')
im.to_filename('D:\\b.jpg') # 报错