gpt4 book ai didi

python - 使用 numpy 从卷中提取并保存切片

转载 作者:太空宇宙 更新时间:2023-11-03 19:09:59 25 4
gpt4 key购买 nike

我正在尝试使用 numpy 从卷中提取切片。体积为 512x512x132,我想要切片编号 66。每个体素都是一个无符号的 16 位整数。

我的代码是:

import numpy

original = numpy.fromfile(filepath, dtype=numpy.uint16)
original = numpy.reshape(original, (512,512,132))

slice = original[:,:,66]

f = open('test.rawl', 'w')
slice.tofile(f)
f.close()

代码完整,但是当我用外部程序打开切片时,它不是切片数据而是垃圾。

我做错了什么?

谢谢

最佳答案

你的第一个问题是你的轴错了。假设您要使用 132 层 512x512 图像:

original = numpy.fromfile(filepath, dtype=numpy.uint16).reshape((132, 512, 512))

然后进行切片:

slc = original[66]

此外,Numpy 数组等二进制数据使用:

f = open('test.raw', 'wb')

模式中的“b”代表二进制。否则,Python 会假设您正在尝试编写文本并执行诸如将换行符转换为适合系统的格式等操作。

顺便说一句,ndarray.tofile() 方法还接受文件名,因此除非有特殊原因,否则不必先创建文件句柄。您只需使用

arr.tofile('test.raw')

最后一点:尽量不要使用 slice 作为变量。这是 Python 中的内置名称,如果用其他名称来隐藏它,可能会遇到麻烦。

关于python - 使用 numpy 从卷中提取并保存切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13311137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com