BayerRaw与RGB的转换

代码:code
本文采取sony拍摄的arw格式图像测试,测试图像在论文中下载:

bayer图像格式
image
由于人眼对GREEN颜色的感知更为强烈,所以一般raw 格式的图像每个2*2矩阵中,都有两个G分量,一个R以及一个B分量,G分量的排列方式可以有所不同,如下图:
image

对于转换为RGB格式,一般采取插值的方法,将原始图像中的R/G/B三个分量,插值到附近,分别产生新的三个矩阵,分别为R,G,B。
image
以下为代码,对于两个G分量采用均值方法优化插值:

image

1-自己写的函数最终得到图像结果:
放大:
image
原图:
image

2-使用sony插件直接查看arw图像的结果:
放大:
image
原图:
image

3-使用python rawpy库函数的postprocess 方法默认参数处理:
放大:
image
原图:
image

4-使用learning to see in dark 中的postprocess 方法所设置的参数处理:
rgb = raw.postprocess(use_camera_wb=True, half_size=False, no_auto_bright=True, output_bps=16)
放大:
image
原图:
image

最终分析结果:
再亮度上:
2>3>4>1

在视觉效果上:
4>2>3>1
在清晰度上:
4=3>2=1
在还原RGB方面,使用参数调节后的rawpy.postprocess方法(use_camera_wb)更好。
造成以上差异的主要因素还是插值方法的不同:
在文章HIGH-QUALITY LINEAR INTERPOLATION FOR DEMOSAICING OF BAYER-PATTERNED COLOR IMAGES 中介绍了更好的插值方法:
image

引用:
https://letmaik.github.io/rawpy/api/rawpy.Params.html
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Demosaicing_ICASSP04.pdf
http://www.imatest.com/docs/raw/
http://blog.sina.com.cn/s/blog_ebbe6d790101e56e.html
https://blog.csdn.net/peng864534630/article/details/78177211
https://www.cnblogs.com/zhongguo135/p/7755287.html
Learning-to-see-in-draking