gpt4 book ai didi

python - 在python中显示二进制文件中的数据

转载 作者:行者123 更新时间:2023-12-01 05:31:14 27 4
gpt4 key购买 nike

我有 2000 个图像存储为单个二进制文件“file.dat”,该文件的头部为 512 字节。每个图像的格式为512*512*2字节(unsigned int 16)。我的任务是将所有这些图像可视化为视频。我怎样才能在Python中做到这一点?我的问题是从读取图像序列开始。我是Python新手。

最佳答案

Numpy 对于读取简单的二进制文件格式非常方便。

从它的声音来看,您有一个大型的 uin16 二进制文件,您想要将其读入 3D 数组并进行可视化。我们不必将其全部加载到内存中,但对于本示例,我们会这样做。

以下是代码的基本概念:

import numpy as np
import matplotlib.pyplot as plt

def main():
data = read_data('test.dat', 512, 512)
visualize(data)

def read_data(filename, width, height):
with open(filename, 'r') as infile:
# Skip the header
infile.seek(512)
data = np.fromfile(infile, dtype=np.uint16)
# Reshape the data into a 3D array. (-1 is a placeholder for however many
# images are in the file... E.g. 2000)
return data.reshape((width, height, -1))

def visualize(data):
# There are better ways to do this, but let's keep it simple
plt.ion()
fig, ax = plt.subplots()
im = ax.imshow(data[:,:,0], cmap=plt.cm.gray)
for i in xrange(data.shape[-1]):
image = data[:,:,i]
im.set(data=image, clim=[image.min(), image.max()])
fig.canvas.draw()

main()

关于python - 在python中显示二进制文件中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20246316/

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