【传统视觉】raw读取问题

问题:

raw直接读取不能读取出原图

分析:

"76543210_FEDCBA98"和"FEDCBA98_76543210"是两种不同的通道顺序。

“76543210_FEDCBA98”: 这是一种通道顺序,其中前8位通道表示高位数据,后8位通道表示低位数据。这种通道顺序在某些情况下常见,例如一些摄像机和传感器输出的RAW图像。

“FEDCBA98_76543210”: 这是另一种通道顺序,其中前8位通道表示低位数据,后8位通道表示高位数据。这种通道顺序更符合常见的图像格式,例如BGR或RGB。

这两种通道顺序的区别在于数据的排列方式。"76543210_FEDCBA98"同时包含低位和高位数据,而"FEDCBA98_76543210"按照常见的低位在前、高位在后的顺序排列数据。

在对图像进行处理或解析时,确保使用正确的通道顺序,以避免出现颜色或数据解释不正确的问题。

解决方法
    if path.endswith('.raw'):
        height = 1280
        width = 1944
        images = np.fromfile(path, dtype='uint16')

        # 转换 RAW 图像数据的通道顺序
        image_rgb = np.empty((height, width), dtype=np.uint16)
        # 将每个像素的通道顺序转换
        for i in range(height):
            for j in range(width):
                pixel = images[i * width + j]
                high_byte = (pixel & 0xFF00) >> 8  # 高位数据
                low_byte = (pixel & 0x00FF)  # 低位数据
                new_pixel = (low_byte << 8) + high_byte
                image_rgb[i, j] = new_pixel
        images = image_rgb.copy()

你可能感兴趣的:(人工智能,算法,机器学习)