转自https://www.cnblogs.com/riddick/p/6731130.html

上一节中大概讲述了光场相机和光场的参数化表示,这一节就说一下光场相机内部是如何记录光场以及实现重聚焦的。

博主用的是Lytro Illum,所以就以Illum为例来说了,Illum的功能还是挺多的,上手使用的童靴需要相机使用手册可以上网找一下,都有的。

切入正题

首先,说一下Lytro Illum的一些基本信息:Illum的Senser一共有4000万个像素左右,得到的传感器图像(光场图像)尺寸为7728*5368,就是4148 3904个像素;Illum的微透镜阵列个数为541*434个,每一个微透镜后面对应的像素个数为15*15=225个;illum传感器得到的图像为拜尔格式,排布为'gbgr'。

博主以三个小问题开头,这也是我刚开始研究Lytro Illum时的疑问:

1.光场相机内部如何记录光线的方向?

有了上一节所说的微透镜结构,光场相机就可以实现光线的方向和强度的记录。如下图所示,不同方向的光线经过主镜头进入相机内部,汇聚到微透镜阵列上不同的微透镜上,经过微透镜后又发散成若干条光线分别到达传感器的感光元件上。这里每一个微透镜视为一个宏像素,每一个(宏像素)微透镜后面对应15*15个元像素(感光单元)。这15*15个元像素的亮度总和为最终宏像素的亮度,即宏像素的亮度为其对应所有元像素的积分。而每一个元像素对应通过前面微透镜的一条光线,在Lytro illum中,15*15个元像素就可以记录225条通过前面微透镜的不同方向的光线,所以Lytro illum一共可以记录的光线条数为N*225, N 为微透镜个数。

2.Lytro illum中光场如何参数化表示?

根据4D光场原理,光场用表示,在Lytro illum中, , 其中s, t分别表示微透镜(宏像素)阵列行数和列数。,其中 u, v 分别表示每一个微透镜后面元像素的行数和列数。而每一个宏像素处的亮度为其对应所有元像素的积分,用下式表示:

在光场 中,如果固定s, t, 即选定某一个微透镜,遍历u,v,就可以得到该微透镜下15*15个元像素图像,如下左图所示;如果固定u, v,即选定每一个微透镜下某一处元像素,遍历s, t,就可以得到一幅主镜头的子孔径图像,一共可以得到225幅子孔径图像, 如下右图所示为其中一幅。在如果你使用的是Matlab工具包,得到的光场数据保存在一个5D的数组中,比四维多出的一维是通道数。即LF(u,v,s,t,c),获取单个微透镜下((300,300)为例)的图像可以使用这条语句Img=squeeze(LF(:,:,300,300, 1:3)),而获取某一个子孔径图像((5,5)为例)可以使用这条语句Img=squeeze(LF(5,5, :, :, 1:3))。

每个微透镜单元后同一位置的像元均是主镜头同一子孔径的投影,由这些像元可共同组成一幅子孔径图像。不同的子孔径图像是不同方向的光线成像得到,因此在视角上会有区别。

    

3.Lytro illum如何实现重聚焦?

重聚焦就是将采集到的光场重新投影到新的像平面进行积分。以二维情况为例,L(u, s)为采集到的光场,U 和S分别表示主镜头孔径所在的平面和微透镜阵列所在平面,两个平面之间的距离为L。选择新的对焦平面S’,与U平面的距离为L’,令L’=α*L。S’平面上所成的像等于U-S’之间光场的积分,即:

对于同一条光线而言,应该有:

同时根据光线与各平面的交点坐标可以得到如下关系;

令, 变换后得到:

将其代入上式,得到:

推广到四维情况,可以得到如下的重聚焦公式:

从式中可以看出,重对焦就是对光场在位置维度进行平移后在方向维度进行积分的过程。

光场相机的理论研究差不多就这样了,想更深入研究的可以看关于光场相机的论文,其实看我上一篇列出来的就可以了。

下一节主要讲一下如何使用matlab光场工具包解码Lytro Illum拍摄得到的光场文件以及一些处理,并且展示一下重聚焦的效果,今天就到此。

--------------------------------- 业精于勤而荒于嬉 行成于思而毁于随 ---------------------------------

光场相机重聚焦之二——Lytro Illum记录光场相关推荐

  1. 光场相机重聚焦原理介绍及代码解析

    光场相机重聚焦原理介绍及代码解析 光场相机重聚焦–焦点堆栈深度估计法 全部代码下载地址: https://download.csdn.net/download/weixin_38285131/1044 ...

  2. 光场相机重聚焦--焦点堆栈深度估计法

    光场相机重聚焦原理介绍及代码解析 光场相机重聚焦–焦点堆栈深度估计法 全部代码下载地址: https://download.csdn.net/download/weixin_38285131/1044 ...

  3. matlab光场成像,光场相机重聚焦原理③——Matlab光场工具包使用重聚焦及多视角效...

    光场相机重聚焦原理③--Matlab光场工具包使用重聚焦及多视角效 光场相机重聚焦原理③--Matlab光场工具包使用.重聚焦及多视角效果展示 目录 1.从相机里导出白图像(White Images) ...

  4. 光场相机重聚焦原理②——Lytro Illum记录光场

    目录 1.光场相机内部如何记录光线的方向? 2.Lytro illum中光场如何参数化表示? 3.Lytro illum如何实现重聚焦? 上一节中大概讲述了光场相机和光场的参数化表示,这一节就说一下光 ...

  5. 光场相机重聚焦原理之——光场的参数化表征

    转自https://www.cnblogs.com/riddick/p/6725273.html 博主最近在搞光场相机方面的研究啦,好了废话不多说,开始!  1. 一些前言废话 首先,来一下光场的基本 ...

  6. 光场相机重聚焦原理①——光场的参数化表征

     1. 一些前言废话 首先,来一下光场的基本概念,来自百度百科.光场(light field):就是指光在每一个方向通过每一个点的光量.从概念里,你至少可以得到两点信息:1.光场包含光的方向:2.光场 ...

  7. 光场相机重聚焦原理③——Matlab光场工具包使用、重聚焦及多视角效果展示

    目录 1.从相机里导出白图像(White Images): 2.处理白图像: 3.利用白图像对光场文件进行解码得到rawImage: 4.对rawImage进行去马赛克操作(demosaic): 5. ...

  8. Lytro 光场相机重对焦C++实现以及CUDA实现

    前面有几篇博客主要介绍了光场和光场相机相关知识,以及重对焦效果和多视角效果的展示.算是自己学习光场过程的一种总结. 这次贴上自己用OpenCV/C++编写的重对焦算法实现(包含CPU版和CUDA GP ...

  9. CVPR 2021 Oral | 室内动态场景中的相机重定位

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 关键词:动态场景,相机重定位 导  读 本文是对发表于计算机视觉和模式识别领域的顶级会议 CVPR 2 ...

最新文章

  1. 《JAVA编程那点事儿》读书笔记(二)——类和对象
  2. keepalived+nginx实现nginx的高可用
  3. fir滤波器算法c语言程序,FIR滤波器设计C语言程序
  4. 打印完全二叉树java_java 完全二叉树的构建与四种遍历方法示例
  5. Python爬虫项目---批量下载深圳证券信息
  6. 简单数据结构——单向链表
  7. Unity —Spine动画
  8. 黎活明写给程序员的忠告
  9. Servlet实现登录带有验证码验证案例
  10. (CVPR-2018)仔细研究用于动作识别的时空卷积
  11. win7计算机自动关机设置在哪里设置方法,win7电脑自动关机怎么设置_win7电脑自动关机怎么设置在哪-win7之家...
  12. 快播将关闭QVOD服务器 宅男,你心碎了吗?
  13. BIRD 与 BGP 的新手开场 --转
  14. 网易暴力裁员事件,真的让人寒心
  15. 洛谷 P1879 [USACO06NOV]玉米田Corn Fields
  16. oracle library is not loaded解决方法
  17. uva live 4043 km
  18. C宏#define的一些用法
  19. 手写迷你版HashMap
  20. python读取mt4数据_MT4下载历史数据

热门文章

  1. 【转】db_domain参数设置影响dblink迁移问题
  2. ABAC权限控制学习
  3. 通过面向对象实现猫狗大战案例
  4. python抢票脚本好用吗_春运到了,带你用python来抢票回家!
  5. 高等院校毕业生登记表计算机水平怎么填,关于《高等学校毕业生登记表》填写详细说明...
  6. zcmu-1599 卡斯丁狗的炉石传说
  7. 微信小程序中web-view调用微信支付
  8. 火山引擎 RTC 自研音频编码器 NICO 实践之路
  9. firefox同步mac和win
  10. android 格式转化,智兔格式转换器