有一组14位图像的数据,数据类型为float 32,如何将这组数据转换成14位图像,并显示出来
4条回答
GameTomato 2023-03-22 15:02关注这个问题的要点就是先读取包含14位图像数据的二进制文件,然后将数据转换为图像格式。Python中有个Pillow(PIL)库可以用来创建图像对象,并且将数据转换为图像格式。
代码示例如下:import struct from PIL import Image # 读取14位图像的数据 with open('data.bin', 'rb') as f: data = f.read() # 假设图像的宽度和高度 w = 100 h = 100 # 将数据转换为图像格式 img_data = [] for i in range(w*h): # 每个像素点占2个字节,数据类型为float32,所以每个像素点需要除以4 value = struct.unpack('f', data[i*4:(i+1)*4])[0] # 将像素值归一化到0-255之间,可以根据实际情况调整 value = int(value / (2**14-1) * 255) img_data.append(value) img = Image.new('L', (w, h)) img.putdata(img_data) img.show()本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用