【发布时间】:2019-10-24 17:45:44
【问题描述】:
我有一个二进制文件格式 .dat。我想将其转换为 png 或 jpg 格式,我尝试使用 numpy.loadtxt() 对其进行解码以获取数组列表,然后将其保存为 png 或 jpg 格式。但是当我执行它时它给出了错误
文件“C:\Users\SETIKO\Desktop\test\test6-savedattopng.py”,第 13 行,在 arr = np.loadtxt(f)
文件“C:\Users\SETIKO\AppData\Local\Programs\Python\Python35\lib\site-packages\numpy\lib\npyio.py”,第 1101 行,在 loadtxt for x in read_data(_loadtxt_chunksize):
文件“C:\Users\SETIKO\AppData\Local\Programs\Python\Python35\lib\site-packages\numpy\lib\npyio.py”,第 1028 行,在 read_data items = [conv(val) for (conv, val) in zip(converters, vals)]
文件“C:\Users\SETIKO\AppData\Local\Programs\Python\Python35\lib\site-packages\numpy\lib\npyio.py”,第 1028 行,在 items = [conv(val) for (conv, val) in zip(converters, vals)]
文件“C:\Users\SETIKO\AppData\Local\Programs\Python\Python35\lib\site-packages\numpy\lib\npyio.py”,第 746 行,在 floatconv 返回浮点数(x)
这是我使用的完整代码
import numpy as np
f = open('gt.dat', 'rb')
arr = np.loadtxt(f)
我的代码中是否缺少某些内容?或者也许有人有其他想法而不必使用numpy.loadtxt()?
这里是我使用的二进制文件: Binary dat file
【问题讨论】:
-
loadtxt() 将 text 文件转换为数组(默认为浮点数)。但很可能您有一个二进制文件(而 .dat 不是标准化格式)。并且 loadtxt() 在文件中找不到任何看起来像数字的文本。
-
您知道图像的尺寸(以像素为单位)吗?我的意思是它是 5000x3000 像素吗?要不然是啥?你知道它是彩色还是灰度?
-
@AlainMerigot 你知道将数字视为二进制文件的代码吗?
-
@MarkSetchell 是的,图像尺寸为 5292x744 像素,是彩色图像