专栏首页一棹烟波光场相机重聚焦之三——Matlab光场工具包使用、重聚焦及多视角效果展示

光场相机重聚焦之三——Matlab光场工具包使用、重聚焦及多视角效果展示

这一小节说一下Matlab光场工具包的使用,展示重聚焦和多视角的效果。

从Lytro illum中导出的raw数据为.lfp格式的光场图像文件(约52M大小),该文件包含以下几部分:光场图像数据rawdata;metadata;相机序列号 serials;光场图像大小imgSize;拜尔格式 ‘grgb’。为了从.lfp文件中提取出光场图像rawdata,需要用到Matlab光场工具包,该工具包由D. G. Dansereau等人开发,目前有toolbox0.3,toolbox0.4两个版本,toolbox0.4的下载地址为:https://cn.mathworks.com/matlabcentral/fileexchange/49683-light-field-toolbox-v0-4?s_tid=srchtitle。这个网址还有配套的示例图片(sample 压缩包,另行下载就可以了),工具包的使用教程在工具包解压出来的文件夹里面(.pdf文件)。接下来就是对光场文件进行解码得到光场图像,并对光场图像进行去马赛克,色彩校正等操作得到RGB的彩色光场图像。

关于工具包的详细设置和使用方法,强烈建议参考这篇文章http://www.vincentqin.tech/2017/02/16/LightField%E5%85%89%E5%9C%BA/,作者写的很详细,我就不赘述了,当时刚开始使用工具包的时候向该文作者请教了很多东西,在此表示感谢~

———————————————————————————————————————————————————————————————————————

从.lfp格式的光场文件中解析出RawImg到最终得到RGB图像有以下几个步骤,刚开始请仔细阅读工具包里的PDF文件

1.从相机里导出白图像(White Images):

根据matlab工具包解释,白图像是用光场相机在不同的曝光条件下拍摄白色平面得到的图像,这些图像主要有两个作用,一是可以用来校正由镜头阴影造成的图像四角偏暗现象;二是帮助定位微透镜中心的坐标。Lytro illum相机内置了34幅白图像,可以通过相机“导出配对数据”导出到本地。白图像是Raw图,可以通过PhotoShop打开,下面是我用PhotoShop CS5打开后的图像。

2.处理白图像:

通过对每一幅白图像进行处理,分别得到每一幅白图像对应的微透镜网格模型(lenslet grid model),如下图所示,并建立一个WhiteImagesdatabase映射表。

3.利用白图像对光场文件进行解码得到rawImage:

输入.lfp文件,工具包读取WhiteImagesDataBase映射表,工具包选取最合适的白图像和微透镜网格模型进行光场文件的解码,得到拜尔格式的光场图像(图像尺寸为7728*5368),如下图左所示,光场工具包中获取光场Raw图是一个中间过程,在LFLytroDecodeImage()函数里面的这条语句LensletImage = LFP.RawImg,保存LensletImage就是了。放大后可以看到每一个微透镜图像,如下图右所示。

4.对rawImage进行去马赛克操作(demosaic): Lytro Illum中拜尔格式分布为‘gbgr’,根据此格式对解码出的光场图像进行去马赛克操作,得到RGB彩色图像。

5.对去马赛克后的图像进行色彩校正(color correction):  对上一步得到的图像进行色彩校正,得到色彩校正后的图像。

好了,现在已经从Lytro Illum光场相机的.lfp文件得到我们想要的RGB光场图像(图像大小是7728*5368)了。

——————————————————————————下次接着写————————————————————————————————————————

 得到RGB光场图像后就可以做重聚焦了,我用的是空域重聚焦方法就是shift-sum,先对子孔径图像按照重聚焦公式进行平移然后相加求平均,我设置的alpha值为0.2F-2F,中间的步长可以自己设置从而得到不同数量的重聚焦图片。我生成了256张重聚焦图片,用其中的50张做成了gif动图,如下图,展示一下重聚焦的效果。

子孔径图像是由物体发出的不同方向的光线成像得到的,在视角上会有差别,Lytro Illum一共有15*15=225个不同视角下的图像,做成gif动图展示一下效果:

通过5D光场数据矩阵得到多视角图像的代码如下,路径啥的自己设置:

 光场相机也是可以算深度图的,而且方法还不止一种,简单提一下,以后或许还会继续研究:

1.利用双目视觉的方法,根据不同视角下的子孔径图像匹配得出深度图。

2.利用聚焦法,根据不同深度下每一个像素点处的梯度或者纹理的不同,算出最清晰的那张图片对应的alpha值就可以得到深度图。

学习Lytro Illum光场相机基本流程就是这样了,当然难免有很多理解不到位和错误的地方,诸位大侠如有发现,请多多指正!谢谢~~~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 引导图滤波(Guided Image Filtering)原理以及OpenCV实现

    引导图滤波器是一种自适应权重滤波器,能够在平滑图像的同时起到保持边界的作用,具体公式推导请查阅原文献《Guided Image Filtering》以及matl...

    一棹烟波
  • libpng+VS2012(VS2015)的使用

     OpenCV保存PNG图像底层调用的就是libpng库,简要说一下libPNG库的单独使用。 1.首先需要下载两个库,一个是libpng,一个是zlib li...

    一棹烟波
  • 利用光场进行深度图估计(Depth Estimation)算法之二——匹配算法

    光场相机由于能够捕获相机内部光线的强度和方向而得到整个光场,可以实现重聚焦(refocus)和视角变换等功能。进而可以进行深度估计获取深度图,前面说过利用重聚焦...

    一棹烟波
  • 6000星人气深度学习资源!架构模型技巧全都有,图灵奖得主LeCun推荐

    有这么一份干货,汇集了机器学习架构和模型的经典知识点,还有各种TensorFlow和PyTorch的Jupyter Notebook笔记资源,地址都在,无需等待...

    代码医生工作室
  • 6000星人气深度学习资源!架构模型技巧全都有,图灵奖得主LeCun推荐

    有这么一份干货,汇集了机器学习架构和模型的经典知识点,还有各种TensorFlow和PyTorch的Jupyter Notebook笔记资源,地址都在,无需等待...

    深度学习与Python
  • 6000星人气深度学习资源!架构模型技巧全都有,图灵奖得主LeCun推荐

    有这么一份干货,汇集了机器学习架构和模型的经典知识点,还有各种TensorFlow和PyTorch的Jupyter Notebook笔记资源,地址都在,无需等待...

    量子位
  • 如何防止我们的个人验证信息和敏感信息被盗

    如何防止我们的个人验证信息和敏感信息被盗 —对抗勒索软件、网络钓鱼和其他网络风险 当今世界,大量信息正以前所未有的速度被创造出来并传播、储存。其中一部分信息是...

    灯塔大数据
  • ionic-navigation 原

    (adsbygoogle = window.adsbygoogle || []).push({});

    tianyawhl
  • .NET导出Excel的四种方法及评测

    导出Excel是.NET的常见需求,开源社区、市场上,都提供了不少各式各样的Excel操作相关包。本文,我将使用NPOI、EPPlus、OpenXML、Aspo...

    心莱科技雪雁
  • Focusing Attention Network(FAN)自然图像文本识别 学习笔记

    对于一些复杂的或者质量低的图像,现有的基于注意力(attention-based)的方法识别效果很差,我们研究发现其中一个主要的原因是使用这种注意力模型评估的排...

    Natalia_ljq

扫码关注云+社区

领取腾讯云代金券