• 1
  • 2
  • 3
  • 4

首页 / 行业

Demosaic算法实战编码分享

2022-11-09 11:01:00

Demosaic算法将bayer pattern的图像转换成RGB图像,是整个ISP imaging pipeline的核心,由于成本、面积、制造等限制,CMOS/CCD在成像时,感光面阵列前通常会有CFA(color filter array),如下图所示。CFA过滤不同频段的光,然后Sensor输出的RAW数据包含了3个通道的信息。由于人眼对绿色(大约550nm波长)光更敏感,因此CFA阵列包含1/2的G分量,1/4和R和1/4的B分量。

Demosaic算法简单来说就是插值,根据邻域像素的色彩插值出本像素的值。但是简单的双线性插值的方法在IQ上面有缺陷,在图像的边缘,会产生伪彩色。本文采用的Demosaic算法是G基于边缘方向 RB基于色差恒定。

输入一幅RGB图像,先用Matlab进行RGB2Bayer转换得到仿真激励图像bin文件,再用Verilog进行Demosaic算法处理从而得到Bayer2RGB转换。

MATLAB程序:

clc;clear;close all;imSrc =imread('bandao.webp');figure,imshow(imSrc);[hei, wid, chan] =size(imSrc);bayer =uint8(zeros(hei,wid));% RGGB% R G R G R G% G B G B G B% R G R G R Gfor ver = 1:hei; for hor = 1:wid if((1 == mod(ver,2)) && (1 ==mod(hor,2))) bayer(ver,hor) = imSrc(ver,hor,1); elseif((0 == mod(ver,2)) && (0== mod(hor,2))) bayer(ver,hor) = imSrc(ver,hor,3); else bayer(ver,hor) = imSrc(ver,hor,2); end endendfigure,imshow(bayer);

得到Bayer图像数据:

eb2599de-5f69-11ed-8abf-dac502259ad0.webp

 

ebca24f4-5f69-11ed-8abf-dac502259ad0.webp

仿真输出的图片:插值效果和原图十分接近!!

ebf6afba-5f69-11ed-8abf-dac502259ad0.webp

再和原图相比较,江面和草丛边沿有一定伪彩色出现:拉链效应(zipper effect)相比双线性插值明显好很多,但也存在伪彩(false color)。今天先开题,后面继续深入ISP实践。

编辑:黄飞


算法编码分享算法实战

  • 1
  • 2
  • 3
  • 4

最新内容

手机

相关内容

  • 1
  • 2
  • 3

猜你喜欢