跨届大侠
- 积分
- 6784
- 威望
- 2910
- 贡献
- 1540
- 兑换币
- 1579
- 注册时间
- 2012-3-17
- 在线时间
- 1167 小时
|
mdgs 发表于 2013-4-27 22:25
火哥,再问一句,解压图像的函数在那个头文件里?
假设 采集回来的图像地址是: img_bin_buff
你想解压到: u8 img_buf[H][W]; 这个 二维数组里。(当然也可以是一维数组: u8 img_buf[H*W]; )
则需要调用这个函数:
img_extract(img_buf,(u8 *) img_bin_buff, H*W/8); //解压为灰度图像,方便发送到上位机显
img_extract 函数的具体代码如下:
//压缩二值化图像解压(空间 换 时间 解压)
//srclen 是二值化图像的占用空间大小
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 ];
}
}
|
|