【发布时间】:2019-07-26 16:10:21
【问题描述】:
我尝试了多种不同的变体,但由于某种原因,我不断将无效的二进制数字(人类可读)输出到文件中:
img_array = np.asarray(imageio.imread('test.png', as_gray=True), dtype='int8')
img_array.astype('int8').tofile("test.dat")
但这不会产生有效的二进制文件。一旦文件被读入 Verilog tb,它就会抱怨无效的二进制数字,当我打开文件时,我会看到一堆数字和其他字符。只是它似乎翻译不正确。
更新: 运行后
print(img_array)
print(img_array.tobytes())
我可以看到 int 值“43”正在被转换为“+”,而我希望是“2B”。它似乎只是将某些值打印到 ASCII。这是一个简单的例子:
x = np.array([[0, 9], [2, 3]], dtype='uint8')
print(x.astype('uint8'))
print(x.tobytes())
输出是:
[[0 9]
[2 3]]
b'\x00\t\x02\x03'
我该如何解决这个问题?
任何帮助将不胜感激。
我尝试过的其他解决方案:
【问题讨论】:
标签: python python-3.x numpy binary