LFToolbox0.4官方使用文档说明

1 变化和未来计划

见ReadMe文件

2 安装Toolbox

    解压Toolbox至一个正确的路径,运行程序 LFMatlabPathSetup来安装Matlab路径。每次重新开启Matlab时都要设定这一步骤,所以你可以考虑在startup.m添加语句,例如:

run('~/MyMatlabCodee/LFToolbox0.4/LFMatlabPathSetup.m')

3 一个快速指南

3.1 编译取样光场

  1. 下载LFToolbox并且解压缩至正确的路径。运行LFMatlabPathSetup.m来创建Matlab的路径。
  2. 下载在这里取样光场包,解压至他自己的文件夹内。取样文件夹的结构的选择是为了方便添加您自己的相机和校准:

Samples ----------------------------------------------取样上级
      Images -------------------------------------------取样光场图片
             F01 ------------------------------------------F01图片
             Illum -----------------------------------------照度图片
      Cameras -----------------------------------------存储一个或多个相机的信息
             A000424242 -------------------------------用于测量F01取样的相机
                         CalZoomedOutFixedFoc -----一个单独校正结果
                         WhiteImages----------------------F01相机的白图像
             B5143300780 ------------------------------用于测量照度取样的相机
                         WhiteImages ---------------------照度相机的白图像

    从Matlab打开到顶层的示例文件夹。如果你的路径正确,Matlab命令ls会列出上级文件夹

Image
Cameras
  1. 运行LFUtilProcessWhiteImages来建立一个白图像数据库。这一步骤在Cameras文件夹中寻找白图像,每个白图像形成一个微透镜网格模型-网格模型存储为*.grid.json。白图像的数据库存为 Cameras/WhiteFileDatabase.mat,并且用于选择合适的白图像来编译每个光场。 对于Toolbox0.3版本,取样附带预先计算的.grid.json文件。这些文件可能在他们重新生成过程中被移除。这样做的时候,对于每个微透镜网格模型,给出如图1所示的图,以直观确认网格模型的拟合良好。每个图像展示了整个框架的一个小子集,以便对微透镜进行仔细审查。五个这样的图像显示,一个为图像边角和一个为图像的中心部分。每个红点显示在靠近微透镜中心的部分,举例来说,就像在图一中,每个白色块中最亮的一点处。有一些边缘的微透镜没有红色标记不影响结果。
    图一:白图像显示估计的微透镜中心,如红点所示

  2. 运行LFUtilDecodeLytroFold来编码取样光场。脚本在Images文件夹及其子文件夹中搜索光场并且将每一个编码。默认情况下,它搜索所有兼容的Lytro 光场格式,包括lfp,raw。这个编码过程为每一个光场选择合适的白图象,并且保存编码的4D光场*__Decoded.mat,和缩略图, *.png与输入图像存储在一起。每个光场的缩略图也是被编码光场的形式。缩略图是直方图均衡的,但是保存的光场不是直方图均衡的。缩略图举例如图二。

编码图片(第一排)和颜色纠正输出图片(第二排)鸟的白色斑点是由于相机和鸟之间的一块脏兮兮的玻璃造成的。运行 LFDispVidCirc 或 LFDispMousePan创造更加清晰的透视视角

  1. (可选择)重新运行 LFUtilDecodeLytroFolder来进行颜色矫正。使用命令:
DecodeOptions.OptionalTasks = 'ColourCorrect';
LFUtilDecodeLytroFolder ([ ] , [ ] , DecodeOptions);

DecodeOptions参数要求执行可选的任务颜色校正。第一个和第二个参数通过使用空数组[ ]省略了。
颜色校正应用了在光场元数据中找到的信息,包括基础的RGB颜色和伽马校正。这个脚本保持了每个光场上进行的操作轨迹,这样,操作在编码过程中就不会再重复了。而是加载每个已经解码的光场,对其进行操作,使用颜色校正后的光场重写它。相似的,以后的请求不会重复已经完成的颜色校正操作。
解码和颜色校正可以在一步执行,包括在对LFUtilDecodeLytroFolder的第一个调用中完成colorcorrect任务。
在toolbox0.3版本,直方图调整不再自动应用,你可以使用LFHistEqualisze应用直方图调整。Illum图像不是伽马校正的。示例颜色校正输出在图二第二行图片和图三中展示。

图3:编码和颜色校正后的Illum图像,手动通过调整到0.7度的伽马校正

  1. (可选)使用LFDispVidCirc或LFDispMousePaan来用变化的视角将光场可视化。首先使用如下命令加载光场:
load('Image/F01/IMG_0001_Decoded.mat');

来加载光场变量LF,然后运行 LFDispVidCirc(LF) 或LFDispMousePan(LF)其中之一。前者自动使圆周运动具有动画效果,后者允许鼠标控制运动:在窗口内点击和拖拽调整观点。使用 LFDispMousePan(LF, 2)或者LFDispVidCirc(LF, [ ], [ ], 2)尝试更大的显示,这样使显示窗口增加一倍(变为原来的两倍)在更改显示大小之前,请关闭任何打开的显示窗口。

  1. (可选)运行 LFUtilProcessCalibrations 然后重新运行 LFUtilDecodeLytroFolder来执行更改。要纠正特定的光场,使用命令
DecodeOptions.OptionalTasks = 'Rectify' ;
LFUtilDecodeLytroFolder(... 'Image/F01/IMG_0002_rrame.raw',[ ] ,DecodeOptions);

LFUtilProcessCalibrations脚本建立一个校正数据库,并保存在Cameras/CalibrationDatabase.mat中。这个文件允许为每一个光场显示合适的校正。样品包中只提供一种校准,仅适用于F01样品2和5。
正如在颜色校正举例中,我们传递一个OptionalTasks参数,这一次请求纠正。纠正后的光场重写编码的光场文件,并且编码的脚本不会重复的采用同一类校正。对样品2进行纠偏的结果如图4所示:
F01取样2在纠正之前和之后的图片,有一个子集显示透镜畸变的反转。

扫描二维码关注公众号,回复: 5111445 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_40758748/article/details/86671794