Camera之Demosaic---双线性插值

1.简介:
本次分为两个过程—
a.前面对拿到的raw图进行了一次无脑demosaic,这次实验使用双线性对raw图进行插值;
b.业界demosaic一般研究方法及评价方法;

2.工具环境
python3.5+PIL+numpy+cv2

3. Code

a.针对原始raw图进行双线性插值

import numpy as np
from PIL import Image
from pylab import *
import cv2 as cv
import imTool

RawFile = imTool.ReadRawFile()
RawData = imTool.GetRawData(RawFile)
demosaicRaw = imTool.DemosaicRaw_Bilinear_Raw(RawData)

与无脑demosaic效果比较,左双线性插值,右无脑插值

b.业界研究方法及评价标准
(1)常用的图像数据集是Kodak Data,在手机终端上考虑到成本和空间因素,在CMOS/CCD感光器件上会附加一层CFA(Color Filter Array),实际得到的原始数据是Bayer格式的,即原始raw数据。
Camera之Demosaic---双线性插值_第1张图片

Kodak Data提供lossless真彩无损图像数据,由专业的设备采集而来,每个pixel的R、G、B都是通过感光器件得到的,图像大小为512*768,每个通道为8bit。
Camera之Demosaic---双线性插值_第2张图片

因此可以对真彩图像进行采样,模拟CFA器件,生成某幅图像的Bayer格式的数据,后续通过demosaic算法还原出RGB图像,评价方法就是将还原出的图像与采样前的真彩图像使用某些方法(MSE/PSNR)进行比较,进而评价该算法的优劣。

bayer_img = imTool.RgbLosslessImg2Bayer()

Camera之Demosaic---双线性插值_第3张图片

(2)对采样后的Bayer格式数据进行双线性插值,插值方法为:
Camera之Demosaic---双线性插值_第4张图片
Camera之Demosaic---双线性插值_第5张图片

bayer_img = imTool.RgbLosslessImg2Bayer()
demosaic_img = imTool.DemosaicRaw_Bilinear_Bayer(bayer_img)

Camera之Demosaic---双线性插值_第6张图片

(3) 通过对比可以发现demosaic后的图像存在拉链效应(zipper effect)和很明显的伪彩(false color)。
Camera之Demosaic---双线性插值_第7张图片

通过下面的图可以很好的解释为什么会存在这两个问题,感兴趣的可以自己研究下。
Camera之Demosaic---双线性插值_第8张图片

因此demosaic想做好,zipper effect 和 false color去除是必须要考虑进去的,当前的算法都依赖三个准则:光谱一致性、空间相关性、优先还原G通道等。后续会继续研究,待续。。。

你可能感兴趣的:(Camera之Demosaic---双线性插值)