最近做项目用到工业摄像头,其输出最小的数据流是Bayer8,因为带宽有限,只好选用之。
在获得数据后,解析成了比较要命的问题,因为ffmpeg等比较简单的工具没有该格式对其他格式的装换,因此只能自行实现。在这里万分感谢下面这个博客
https://blog.csdn.net/leng_que/article/details/5961436
本人基本上是按照该博客修改出了自己能用的版本(直接照抄会有些变量未定义的问题),下面也分享出来吧。
BayerToRGB.h
//原作者:Vojtech Pavlik
//2010-10-23 23:25:16 冷却 整理、封装以及测试
#pragma once
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
#define u8 uint8_t
#define R(x,y) m_pRGB24[2 + 3 * ((x) + m_ulWidth * (y))]
#define G(x,y) m_pRGB24[1 + 3 * ((x) + m_ulWidth * (y))]
#define B(x,y) m_pRGB24[0 + 3 * ((x)