【传统视觉】raw读取问题

本文讨论了RAW图像中两种不同的通道顺序(76543210_FEDCBA98和FEDCBA98_76543210),强调在处理时选择正确的顺序以避免颜色和数据错误。给出了使用Python将RAW数据从高位到低位转换为BGR/RGB格式的示例代码。
摘要由CSDN通过智能技术生成
问题:

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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值