嘻_嘻_嘻_ 2023-03-22 14:40 采纳率: 42.9%
浏览 52
已结题

python+14位图像显示

有一组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()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月31日
  • 已采纳回答 3月23日
  • 创建了问题 3月22日