Thursday, 3 July 2014

最专业的实景合成软件之一:Panorama Tools

Panorama Tools,又称 PanoTools,原为德国富特旺根(Furtwangen)应用科学大学物理及数学教授 Helmut Dersch 开发了自由软件套装。
PanoTools 是一个功能强大的全景合成框架,可以将多个图片重新投影并混合成多种类型沉浸式全景图像。经过更新的 PanoTools 库版本作为基础的核心引擎,可以配合多种全景软件前端图形用户界面使用。Helmut 于1998年开始发展 PanoTools ,用于最专业的全景照片通用软件,但是在 2001 年由于和 IPIX 公司专利侵权索赔案而不得不停止。 2003 年,他发表了基于 java 的在线全景图查看器 PTViewer,包括可执行版本和另一个可以显示 HDR (高动态范围)全景图的版本。 他最新的软件产品是针对PDA和移动设备的 PTViewer ME 全景图查看器。Helmut  停止发展该软件后,其邮寄列表的成员接手,并开始开发自己的增强软件套件。
  • PTEditor,Java互动全景编辑器
  • PTPicker,全景拼合和其他工具的Java前端,提供了特征点选择和位置优化
  • PTCrypt/Decrypt,采用PTViewer在线查看的图片加解扰Java工具
  • PTStitcher,支持各种图像的重映射、校正和拼接工具,
  • PTOptimizer,使用控制点数据进行位置优化和图像大小调整
  • PTStereo,使用2张或更多张立体图像创建三维对象
  • PTInterpolate,物理学上有效地真正内插视图,给定同一场景的不同位置图像,可以创建中间任意位置的视图
  • PTMorpher,变形工具
  • PTAverage,利用均值降噪,增强图像密度
  • PTStripe,将图像转换为电影,可以在对象查看器中查看(PTMovie扩展了PTViewer)
  • 工具插件,包括Photoshop,GraphicConveter和GIMP插件,支持图形校正和重映射。
  • Pano12库,全景基础库,是目前主流的全景前端软件和命令行工具的底层。
  • Pano13库,新开发的库,与目前软件不兼容,也不开源。
2006年,PTStitcher的功能分解为多个功能块。其中包括:
  • PTmender,一次只重映射一个图像
  • PTblender,在PTStitcher及其新版本中实现了基本的彩色校正
  • PTmasker,计算拼合Mask,能够在堆砌多张图片中增强图像景深
  • PTroller,将几组图像合并为一组
  • PTcrop,将拼合后的图像进行剪裁
  • PTuncrop,PTcrop的逆处理,能够将剪裁后的图像变回原来未经处理的样子(很想看看是如何处理的
  • PTtiff2psd,将拼合所需照片一一对应到Photoshop的图层。

目前流行的PanoTools前端软件有:
  • Hugin 是一个开源的跨平台前端GUI,支持Linux,Windows和OS X
  • 原始的 Panorama Tools 包括了一系列使用pano12的工具:PTpicker,PTeditor,PTOptimizer和PTStitcher。该工具支持Windows,Mac Classic和Linux平台
  • PTGui 是PanoTools在Windows平台的GUI
  • PTAssembler 是PanoTools的Windows帮助程序
  • PTMac 是Mac平台上的用户前端,支持OS X和 OS 8.6~9.x
  • ControlPoints 是一个Windows应用,可以选择控制点
  • PanoPoints 是一个Linux平台上的开源控制点选择前端
  • PanoWizard 是一个免费前端软件,支持 autopano 和 panotools
参考网址中所列的是目前关于PanoTools的几个站点,包括Hulmet本人的站点。但是由于和IPIX的公司和后来的其他团队开发的版本,现在不同的发布版中的库有可能存在很大不同。大多数的问题在于对于160度以上视角鱼眼镜头照片的处理专利问题,大部分软件使用PTStitcher,而Hugin则采用了另外一个nano内核来替代PTStitcher。Hulmet站点中有一些较有趣的东西,如使用JavaScript的球面投影全景和WebGL的全景播放。这说明JavaScript同样可以支持球面投影。
Panorama Tools有几个特定:镜头数据库,还有拼合的控制点。镜头数据库允许你采用不同参数的镜头,而拼合控制点允许你精准控制拼合算法。但是,使用过微软等快速拼合软件之后,我发现微软软件中必然使用了某些边缘识别的算法加快了识别的速度。因为它允许你将一组照片打乱之后输入软件,而几乎在瞬间完成拼合。所以,基于控制点的算法日后需要升级。