RGB565转RGB888

在arm板上cmos得到的图象格式是RGB565格式,而在opencv上处理的格式是的BGR888。

RGB565用两个字节来存一个像素点,其中三个通道分别占5个,6个,5个位。

BGR888用三个字节来存一个像素点,每个通道占8个位(即一个字节)。

转换时,直接对应通道,用RGB565的值补BGR888的高位。

比如RGB565:11100   111001   11111转成BGR888:1111100   11100100   11100000

代码

const short RGB565_MASK_RED = (0x1F)<<11;
const short RGB565_MASK_GREEN = (0x3F)<<5;
const short RGB565_MASK_BLUE = (0x1F);
void rgb5652bgr888(short *src, char *dest, int size){
    for(int i = 0; i<  size; i++){
        unsigned short RGB16 = *src;
        dest[i*3+2] = (RGB16&RGB565_MASK_RED) >> 11;
        dest[i*3+1] = (RGB16&RGB565_MASK_GREEN) >> 5;
        dest[i*3+0] = (RGB16&RGB565_MASK_BLUE);
        dest[i*3+2] <<= 3;
        dest[i*3+1] <<= 2;
        dest[i*3+0] <<= 3;
        src++;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值