camera - 滤镜格式 (原生RGGB、RCCB、RCCC、RGB-IR和Monochrome(单色传感器))

本文介绍了色彩滤波阵列(CFA)的工作原理及其在图像传感器中的应用。CFA是像素传感器上方的一层马赛克覆层,用于采集图像的色彩信息。文中详细解释了几种不同的CFA配置方案,如RGGB、RCCBCFA和RCCCCFA等,并讨论了这些配置在自动驾驶等领域的适用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


为了获得色彩信息,彩色图像传感器覆盖有红色、绿色或者蓝色的滤镜,
当前的策略是,像素点上覆盖有色彩滤镜(R,G,B的一种),用于获取图像的颜色。
每一个像素点都只接收了RGB三个分量中的一个分量。
C代表着Clear,也即是白色滤镜。

色彩滤波阵列,英文名 Color Filter Array 或 Color Filter Mosaic ,简称 CFA 或 CFM,是像素传感器上方的一层马赛克覆层,用于采集图像的色彩信息。
一般的光电传感器只能感应光的强度,不能区分光的波长(色彩),因此图像传感器需要通过色彩滤波(Color Filter)以获取像素点的色彩信息。

适合人眼的,并不一定适合于机器。
在用于自动驾驶图像识别等领域,根据应用的特点,系统设计者应灵活选择不同配置的 CFA。

RGGB
RCCB CFA的 50% 部分为透传,其余红光蓝光滤波器各占 25%。
RCCC CFA的 75% 部分为透传,其余 25% 为感受红光的滤波器。适合交通灯检测。
Monochrome 为100% 透传,它不能分辨色彩。
Mono 配置的弱光灵敏度最高,仅用于对颜色无识别要求的场合,如驾驶员状态检测等。

色彩滤波阵列,英文名 Color Filter Array 或 Color Filter Mosaic ,简称 CFA 或 CFM,是像素传感器上方的一层马赛克覆层,用于采集图像的色彩信息。
一般的光电传感器只能感应光的强度,不能区分光的波长(色彩),因此图像传感器需要通过色彩滤波(Color Filter)以获取像素点的色彩信息。

CFA采用 Red-Monochrome(RCCC )配置。这种配置中,CFA滤波器结构中包括 3 个空白(Clear -C)和 1 个红光滤波器。
RCCC CFA 信号灵敏度更高,同时通过红色光的强度也足以判断汽车前灯(白色)和尾灯(红色)等情况。

由sensor输出的数据就是Raw data(Raw RGB),经过彩色插值就变成RGB

https://my.oschina.net/u/4579395/blog/4477247
 

MATLAB是一种强大的数值计算环境,常用于科学计算数据分析,包括处理图像数据。要将 Bayer 排列(如 RGGB、BGGR 等,常见于CMOS传感器)的RAW数据转换为RGB图像,可以使用以下步骤: 1. **导入RAW数据**: 首先,你需要读取RAW文件,假设其存储在`imgRaw`变量中。你可以使用`imread`函数,如果包含Bayer数据,则可能需要指定特定的读取选项,例如`'bayer_rggb'`。 ```matlab imgRaw = imread('filename.raw', 'bayer_rggb'); ``` 2. **创建全色图像矩阵**: 创建一个与原始图像同样大小的新矩阵,用于存储转换后的RGB数据。因为Bayer阵列每四个像素对应一个RGB值,所以需要对每个Bayer像素块进行处理。 ```matlab [row, col] = size(imgRaw); rgbMatrix = zeros(row, col, 3); % 初始化RGB矩阵,尺寸是原图的三倍 ``` 3. **颜色插值算法**: 对于RGGB模式,通常使用轮询(rolling-shutter)算法,逐行扫描并按顺序填充RGB值。以下是一个简单的例子,遍历每一行,并填充对应的RGB值: ```matlab for row = 1:row * 2 if mod(row, 2) == 0 rIndex = (row / 2) * 2 - 1; gIndex = rIndex + 1; % 左上到右下 rgbMatrix(row, :,:) = [imgRaw(rIndex, :) imgRaw(gIndex, :)] / sqrt(2); % R and G values else rIndex = (row / 2) * 2 - 1; gIndex = rIndex - 1; % 右上到左下 rgbMatrix(row, :, 1) = imgRaw(rIndex, :); % Red value rgbMatrix(row, :, 2) = imgRaw(gIndex, :); % Green value rgbMatrix(row, :, 3) = 0; % No B component for this pattern end end ``` 4. **输出RGB图像**: 最后,使用`imwrite`函数保存转换后的RGB图像。 ```matlab imwrite(rgbMatrix, 'output_rgb.jpg'); ``` 请注意,实际处理过程中可能会有更复杂的优化,比如使用循环展开或利用MATLAB的向量化操作提高性能。此外,上述代码假设了Bayer阵列的完美对齐,但在现实情况中,可能会存在偏差或校准误差。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值