如何以特定模式转换 np 数组并将其保存到二进制文件?

问题描述

我确实有一个二进制文件(原始图像),我使用以下代码的特定模式读取它,我现在想处理 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 一维数组。然后,编写二进制文件应该转储原始结果而不对其进行编码。