您好,欢迎访问三七文档
Bayer图像处理Bayer是相机内部的原始图片,一般后缀名为.raw.很多软件都可以查看,比如PS.我们相机拍照下来存储在存储卡上的.jpeg或其它格式的图片,都是从.raw格式转化过来的..raw格式内部的存储方式有多种,但不管如何,都是前两行的排列不同.其格式可能如下:GRGRGRGRBGBGBGBGGRGRGRGRBGBGBGBG横为2的倍数,竖为4的倍数,它们构成了分辨率.如,上面则代表了8*4分辨率的Bayer图.我们要知道的是,G=2*R及G=2*B,即绿色值为红色值或蓝色值的两倍,因为人眼对绿色更敏感,所以绿色的分量更重.下面说一下从bayer转换成rgb图的算法,RGB图,即为三色图,一个像素点就由RGB三种颜色构成的混合色,而bayer图一个像素就只有一个颜色,或R或G或B.因为bayer一个像素点只有一种颜色,需要借助这个像素点周围的颜色对它进行插值(填充)另外的两种颜色,它本身的颜色就不用插了.一般的算法是:对于插入R和B,Rx=(R1+R2)/2;或-------------取上边和下边的平均值,或是左边和右边的平均值Rx=(R1+R2+R3+R4)/4;----取四个边的平均值B同理.如:GBGRGRGBG对于中间的G,它缺少R和B,用上下和左右的平均值进行求值.对于BGBGRGBGB这个图呢,中间点R,缺少G和B,G暂时没讨论,那么B,就是从R的四个B角进行求平均值.==============================================如果插入G,稍有些复杂.不过一般的算法与R和B一样,复杂的算法,其复杂程度也提升一倍,不过精度更高,如果对于视频监测系统来说,精度相对来说不必要求太高,用R或B的解法即可.下面说复杂的:对于图:R1G1R4G4RG2R2G3R3对于中间点R,它需要插入G和B,B不讨论,主要讨论G,它周围有四个点G1,G2,G3,G4.(G1+G3)/2--------------如果|R1-R3||R2-R4|G(R)=(G2+G4)/2-------------如果|R1-R3||R2-R4|(G1+G2+G3+G4)/4--如果|R1-R3|=|R2-R4|如果周围出现的像素点颜色为B,就应该比较|B1-B3|与|B2-B4|的值.====================================================还有关于将RGB格式转换为YUV格式的算法,这里不想讨论了.这里要注意的是,bayer每个像素的值是8位的.但是有的相机的bayer格式却有10位,12位以及14位,16位的,那么如何将这些高于8位的数据转换为8位数据呢?.拿12位数据来说,有的人是取高8位或是低8位,那么这样就会出现一个问题,这张图像会有一个斜度,不是偏亮就是偏暗,或是出现其它乱七八糟的问题,颜色问题总是不能令人满意.这个时候就要去较正它,无疑是浪费了时间.另一种算法是使用log映射,据老外说,这种转换法具有较高的精度.拿12位来说,一般转换算法:f(in)=2^(log(in)*8/12)转换图为:|8.|.|.|_______________________12因为log256=8,log4096=12,对了log是以2为底哦.做得更好一点的算法,可能根据提供的曝光等其它因素不同,而将算法进行调整,这样当一些意外事件发生时,产生的图片也不会失真严重.
本文标题:Bayer图像处理
链接地址:https://www.777doc.com/doc-2900037 .html