RAW8图像数据格式解析

前言

使用7yuv工具查看raw8图像数据,选择的格式是8 bpp格式,大小是图像尺寸1280*720即可;

RAW格式

raw数据是sensor输出的原始数据,一般有raw8, raw10, raw12等,分别表示一个像素点有8bit、10bit、12bit数据。是sensor将光信号转化为电信号时的电平高低的原始记录,单纯地没有进行任何处理的图像数据,即摄像元件直接得到的电信号进行数字化处理而得到的。raw数据在输出的时候是有一定顺序的,主要有四种: GRBG、RGGB、BGGR、GBRG,如下图为BGGR格式:

Bayer pattern:BGGR、RGGB、GRBG、GBRG;

Raw to RGB

where the shaded values are to be calculated by the algorithm. Subscript denotes the tile on the Bayer Pattern to which the value of R, G, and B belongs. Note that the image size will become 3 times the Bayer Pattern. In order to view the RGB image we convert it to a Bit Map, or .BMP image, by adding a bitmap header.

bayer格式插值红蓝算法实现

每一个像素仅仅包括了光谱的一部分,必须通过插值来实现每个像素的RGB值。为了从Bayer格式得到每个像素的RGB格式,我们需要通过插值填补缺失的2个色彩。插值的方法有很多(包括领域、线性、3*3等),速度与质量权衡,最好的线性插值补偿算法。

R和B通过线性领域插值,但这有四种不同的分布,

中间像素点即所要计算的像素点,

在(a)与(b)中,R和B分别取邻域的平均值。

在(c)与(d)中,取领域的4个B或R的均值作为中间像素的B值。

bayer格式插值绿算法实现

                          (e)                                                                        (f)

 

保存raw8格式文件

 

raw8数据转opencv Mat

 红外camera用于dms,获取的图像数据是raw类型的灰度图像;

 原始图像数据是RAW8,单通道,可以直接转换为cv::Mat单通道数据,直接可以保存单通道图像数据;

注意,imread默认输出是三通道图像数据!!!

 

 

Mat格式保存RGB888格式文件

opencv读取bayer图像时,imread的参数设置为0或者-1,bayer pattern filter需要从camera获取;

Bayer → RGB ( CV_BayerBG2BGR, CV_BayerGB2BGR, CV_BayerRG2BGR, CV_BayerGR2BGR,

                          CV_BayerBG2RGB, CV_BayerGB2RGB, CV_BayerRG2RGB, CV_BayerGR2RGB ). 

 

参考

1. 10_OpenCV读取原始raw(raw10和raw8),转换成rgb和灰度图,并显示_小地瓜重新去华容道工作的博客

2. 关于摄像头的RAW数据与YUV数据 – 刘文浩

posted on   鹅要长大  阅读(2622)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!
历史上的今天:
2019-05-23 【error】 for i in range(len(shape)/2): TypeError: 'float' object cannot be interpreted as an integer
2017-05-23 配置海康相机SDK文件
2017-05-23 matlab与vs混合编程/matlab移植

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示