跨届大侠
- 积分
- 6784
- 威望
- 2910
- 贡献
- 1540
- 兑换币
- 1579
- 注册时间
- 2012-3-17
- 在线时间
- 1167 小时
|
解压图像,可以用这个代码:
//压缩二值化图像解压(空间 换 时间 解压)
void img_extract(u8 * dst,u8 * src,u32 srclen)
{
u8 colour[2]={255,0}; //0 和 1 分别对应的颜色
//注:野火的摄像头 0 表示 白色,1表示 黑色
u8 tmpsrc;
while(srclen --)
{
tmpsrc = *src++;
*dst++ = colour[ (tmpsrc >> 7 ) & 0x01 ];
*dst++ = colour[ (tmpsrc >> 6 ) & 0x01 ];
*dst++ = colour[ (tmpsrc >> 5 ) & 0x01 ];
*dst++ = colour[ (tmpsrc >> 4 ) & 0x01 ];
*dst++ = colour[ (tmpsrc >> 3 ) & 0x01 ];
*dst++ = colour[ (tmpsrc >> 2 ) & 0x01 ];
*dst++ = colour[ (tmpsrc >> 1 ) & 0x01 ];
*dst++ = colour[ (tmpsrc >> 0 ) & 0x01 ];
}
}
调用时:
u8 nrf_buff[CAMERA_SIZE + MAX_ONCE_TX_NUM]; //预多
u8 *img_bin_buff = (u8 *)(((u8 *)&nrf_buff) + COM_LEN); //二值化图像的buf指针,由于开头有 COM_LEN 个字节是留给校验,所以需要加 COM_LEN
u8 img_buf[CAMERA_W*CAMERA_H]; //非压缩的二值化图像
img_extract(img_buf , img_bin_buff, CAMERA_SIZE); |
|