Python中二进制文件的情节

时间:2013-08-26 08:57:23

标签: python matplotlib plot binary

我有一个二进制文件,我必须从中读取数据。该文件包含128x128x243矩阵(十六进制格式),我已阅读以下代码:

with open("zubal_voxel_man.dat", "rb") as fileHandle:

    dim_x = 128
    dim_y = 128
    dim_z = 243

    data = np.zeros((dim_x,dim_y,dim_z), dtype=np.int)

    for p in range(0, dim_x):
        for q in range (0, dim_y):
            for r in range(0, dim_z):
                data[p][q][r] = ord(fileHandle.read(1))

如何使用Python可视化这些数据?每个x,y,z位置都有一个0到255(灰度)的值,我想渲染。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

您的部分问题在于代码:

datax = data[:,0]
datay = data[:,1]
dataz = data[:,2]

在单轴上没有做你期望的切片,它正在切片Y = 0然后Y = 1,Y = 2并将它们相互绘制 - 你的另一个问题是你有一个三维数组值,给出每个值4维X,Y,Z,值 - 你试图将这些值绘制成一个表面。只有3个维度。

我认为您的首要任务是澄清您的数据代表的内容及其结构。