Bayer Pattern to RGB(RAW数据转换成RGB图像的过程)
Sensor3彩色数字相机需要3个单色sensor获得彩色图像的R,G,B分量,成本较高。单CCD获得彩色图像的方法是在 CCD表面覆盖1个只含红、绿、蓝3色的马赛克滤镜,对其输出信号通过一定的处理算法实现。这个设计理念最初由拜尔提出,所以这种滤镜也被称作拜尔模板 (bayer pattern)。
The Bayer color filter array (CFA) is shown below. Half of the total number of pixels are green (G), while a quarter of the total number is assigned to both red (R) and blue (B).
(拜耳彩色滤片阵列(CFA)是如下图所示。总数一半的像素是绿色的(G),而总人数的四分之一分配到两个红色(R)和蓝(B)。
)
In order to obtain this color information, the color image sensor is covered with either a red, a green, or a blue filter, in a repeating pattern. This pattern, or sequence, of filters can vary, but the widely adopted “Bayer“pattern, which was invented at Kodak, is a repeating 2x2 arrangement.
(为了获得这种颜色信息,色彩图像传感器覆盖着要么是红色,绿色,或一个蓝色的过滤,在一个不断重复的模式。这种格局下,或序列,过滤器,能变化,但广泛采用"拜尔法”的格局,在柯达发明的,是一个重复2 x2安排。)
When the image sensor is read out, line by line, the pixel sequence comes out GRGRGR, etc., and then the alternate line sequence is BGBGBG, etc. This output is called sequential RGB (or sRGB).
(当图像传感器读出逐字逐行,那这个像素序列出来GRGRGR等等,然后交替序列BGBGBG线等。这种输出是叫做系列RGB(或sRGB)。)
Since each pixel has been made sensitive only to one color (one spectral band), the overall sensitivity of a color image sensor is lower than a monochrome (panchromatic) sensor, and in fact is typically 3x less sensitive. As a result, monochrome sensors are better for low-light applications, such as security cameras. (It is also why human eyes switch to black and white mode in the dark).
尽管通过带有Bayer滤镜的单sensor相机采集的原始图像带有R,G,B三基色分量,但是不能不加任何算法处理,仅简单地将3种分量分离。这样不仅图像分辨率很差,而且各像素点的三基色分量比例与被摄目标相比,失真也很严重。
To convert an image from the bayer format to an RGB per pixel format, we need to interpolate the two missing color values in each pixel. Several standard interpolation methods (nearest neighbor, linear, cubic, cubic spline, etc.) were evaluated on this problem in [1]. The authors have measured interpolation accuracy as well as the speed of the method and concluded that the best performance is achieved by a correlation-adjusted version of the linear interpolation. The suggested method is presented here.
(将图像从拜耳格式到一个RGB色格式,我们需要interpolate两个不见的每一个像素颜色值。几个标准插值方法(最近的邻居、线性、立体、三次样条等)对这个问题的评价在[1]。作者已经测量插补精度以及速度的方法,得出了最佳性能达到correlation-adjusted版本的线性插值。本文所提出的方法是如下。)
Interpolating red and blue components
Four possible cases for interpolating R and B components
As suggested in [1], R and B values are interpolated linearly from the nearest neighbors of the same color. There are four are possible cases, as shown above. When interpolating the missing values of R and B on a green pixel, as in (a) and (b), we take the average values of the two nearest neighbors of the same color. For example, in (a), the value for the blue component on a shaded G pixel will be the average of the blue pixels above and below the G pixel, while the value for the red component will be the average of the two red pixels to the left and right of the G pixel.
( 四种可能的情况下,插值R和B组件
在文献[1]提出的,R和B值线性插值,离最近的邻居相同的颜色。有四个是可能的情况下,如上所示。当插值的R和B遗漏值绿色像素,就像在(a)和(B),我们采取的平均值的最近邻居的两个相同的色彩。例如,在(a)、价值的蓝成分一遮蔽的G像素平均值上方和下方的蓝色像素
)
(c) shows the case when the value of the blue component is to be interpolated for an R pixel. In such case, we take the average of the four nearest blue pixels cornering the R pixel. Similarly, to determine the value of the red component on a B pixel in (d) we take the average of the four nearest red pixels cornering the B pixel.
((c)显示的情况在蓝色调的价值是一个R插值像素。在这种情况下,我们采取平均的四个最近的蓝色R像素像素组。同样的,要确定价值的红色像素的组件在一个B(d)我们采取平均的四个红色像素的B组像素。
)
Interpolating the green component
By [1], green component is adaptively interpolated from a pair of nearest neighbors. To illustrate the procedure, consider two possible cases below.
( 插值绿色组件
以[1]的基础上,从绿色分量的自适应插值一对最近的邻居。为了说明这一过程,考虑下面两个疑似病例。
)
Two possible cases for interpolating G component
In (a), the value of the green component is to be interpolated on an R pixel. The value used for the G component here is
( 两种可能的情况下,插值G组成部分
在(a)的价值、绿色的成分是在一个R像素插值。用于G值组成这是
)
In other words, we take into account the correlation in the red component to adapt the interpolation method. If the difference between R1 and R3 is smaller than the difference between R2 and R4, indicating that the correlation is stronger in the vertical direction, we use the average of the vertical neighbors G1 and G3 to interpolate the required value. If the horizontal correlation is larger, we use horizontal neighbors. If neither direction dominates the correlation, we use all four neighbors.
换句话说,我们考虑在红色组成部分相关适应插值方法。如果差异和R3小于R1和R2表型之间的差异,表明相关较强的垂直方向,我们用平均的邻居G1和G3,垂直interpolate所需的价值。如果筇竹寺比较大,我们使用水平的邻居。如果两个方向控制相关,我们使用四个邻居。
Similarly, for (b) we will have
To conclude this section, note that if the speed of execution is the issue, one can safely use simple linear interpolation of the green component from the four nearest neighbors, without any adaptation.
作为这一段,注意如果速度执行这个问题,一个可以安全地使用简单的线性插值的绿色组成,从四的最近邻居,没有任何的适应。
According to [1], this method of interpolation executes twice as fast as the adaptive method, and achieves only slightly worse performance on real images. For even fast updates only two of the four green values are averaged. However, this method displays false color on edges or zipper artifacts.
(根据[1]的基础上,该方法插值执行的两倍,自适应方法,达到仅略微糟糕表现真实的形象。甚至快速更新的人中只有两个绿色价值四个平均值。不过,这种方法显示假色拉链在边缘或失真。
)