问题描述
我确实有一个二进制文件(原始图像),我使用以下代码的特定模式读取它,我现在想处理 np 数组(new_array
),因此在处理 {{1} },如何将其转换回数组并将其保存到新的二进制文件(原始图像)中?
new_array
上面给出了模式。
我只是想知道如何将 f = np.fromfile(path,dtype=np.uint16)
new_array = np.zeros(cols * rows,dtype=int)
for i in range(0,cols * rows):
tmp = '{0:08b}'.format(f[i])
part1 = tmp[4:8]
part2 = tmp[0:4]
new_array[i] = (int(part1,2)<<2) + (int(part2,2)>>6)
res_array = new_array.reshape((rows,cols))
转换为原始类型(变量 res_array
)并将其保存到一个新的二进制文件中。
解决方法
我认为您可以flatten the np array (res_array
) 并写出结果np array to a binary file。
展平数组会将其“转换回”一个 np.uint16
一维数组。然后,编写二进制文件应该转储原始结果而不对其进行编码。