逸江南

RAW RGB格式的图像能不能直接当做灰度图使用?

0
阅读(3441)

RAW  RGB格式的图像能不能直接当做灰度图使用?

          在做简单的图像预处理时,我一直有一个疑问,RAW RGB格式的图像,能否直接当做灰度图使用?有的人说可以,有的说不可以,但也说不出具体的依据。

   经查找资料,我认为不可以,依据如下:

   通常raw  RGB的图像格式如下,

                                           QQ图片20170522193912.png

     图像传感器是由横竖两个方向密集排列的感光元件(CCD或CMOS)组成的一个二维矩阵,常见的有如上图示的Bayer模式的排列方式,每个CCD就对应一个像素。其中R感应红光、G感应绿光、B感应蓝光,而在Bayer模式中G是R和B的两倍(因为我们的眼睛对绿色更敏感)。矩阵内的每个CCD或CMOS只是用来感受光子的能量,因应进入光线的强度而产生对应比例的电荷,然后将这些电荷信息汇集并经过放大,储存起来。而应当知道的是,raw纪录的只是每个像素位置的电荷值,它是没有记录任何的颜色信息的。

   这时,如果拍摄的物体是一个纯绿色的物体,那么蓝色通道和红色通道的数据可能是0,在这种情况下,如果直接把raw data当做灰度图像,图像上会有马赛克现象出现。正确的做法是,先把raw data经过彩色插值得到RGB图像,然后把RGB图像数据经过转换公式得到灰度图。转换公式如下:

   Y'= 0.299*R' + 0.587*G' + 0.114*B'
   U'= -0.147*R' - 0.289*G' + 0.436*B' = 0.492*(B'- Y')
   V'= 0.615*R' - 0.515*G' - 0.100*B' = 0.877*(R'- Y')
   Y就是灰度

   从公式可以看到,如果把raw data直接当做灰度使用,会丢失另外两个颜色通道的信息。


    PS:基于FPGA的视频编解码QQ群:623495899 ,有兴趣的可以进来交流学习哈。