杨育桢
(大理学院,云南 大理 671003)
全景摄影(Panorama)就是把相机环绕场景360度拍摄的一组照片拼接成一个变形的全景图像,用一个专用的播放软件在互联网上显示,从而使您能用鼠标控制环视的方向,可左,可右,可上,可下,可近,可远[1][[2][[3]。近几年来,全景摄影从简单的柱形全景,发展到球形全景,对象全景[2][3]。虽然它不是真三维技术,但由于它是采用直观真实的拍摄照片作为基础,并且能用鼠标拖动,实现镜头的远近变换,有仿真摄像机镜头的真实感,具有有限的虚拟场景漫游功能,使得全景摄影技术被广泛应用于各行各业中,包括商品的广告与推销(电子商务的虚拟商场),远程教学,旅游业,娱乐业,多媒体演示,建筑业,古建筑艺术等[3][4]。随着互联网技术的不断发展,以及各种需求的增长,全景技术受到越来越多的关注和应用。现在虚拟旅游,虚拟公园在国外广受欢迎,并且在相关网站页面上都能看到,为其景区的宣传推广起到极其重要的作用。
其实,全景摄影不是真三维技术,被广泛应用的原因有:(1)在实地进行拍摄,获取真实直观的场景照片,操作简单方面。(2)全景摄影具有一定的交互性,可以用鼠标控制镜头的方向和调整远近尺度,鱼眼照片还可以进行360°场景的环视。
(3)全景摄影不需要单独下载插件,只需一个JAVA程序,自动下载后就可以在网上观看全景照片(总共下载的文件100~50K即可,下载时间仅需1分种左右)[3,6]。
(1)相机必需准确可靠定位:由于相机的视角大多小于360度,因此必须拍摄多张照片才能记录全视角图像信息,为了使多张照片光滑地连接成全景投影图像,相机必需准确可靠定位在一个中心点上。一般在拍摄时最好使用云台与相机相结合进行拍摄,当然,对于测量工作者的话,可以直接使用摄影全站仪(如图1)这样的设备。
图1 摄影全站仪
(2)最好选用超广角镜头:为了是全景更具真实感,以及拍摄全360度的全景(包含场景的天地)的话,最好使用鱼眼镜头(即超广角镜头)来拍摄。
全景照片的拼接主要使用现有的软件就能完成。现在国内外有很多拼接软件可供使用, 如 cool 360,PTGui Pro, Realviz Stitcher5.1,Pixtra Viewer,上海杰图的造景师等等。下面就用PTGui Pro进行全景照片的拼接(以鱼眼照片为例)。
(1)加载图像:选择要拼接的2张或多张照片,加载到此软件中,在此功能中可以对加载的照片进行排序、剪裁工作,并且设置镜头的参数。
排序:调整好照片的左右位置,便于正确拼接。
剪裁:可以修剪照片中不需要的边缘部分,如鱼眼照片可能会有黑边,可以用此功能对其进行去除。
镜头的参数:可以选择“自动”选项,让软件自动判断设置此参数,但如果已知镜头参数的话,可以手动设置(拼接鱼眼照片镜头类型为:环形,水平角度一般为180°)。
图2 鱼眼图像1
图3 鱼眼图像2
(2)对准图像:准备工作完了之后就可以对准图像,也就是照片拼接。此功能也可以让软件自动完成,但一般都需要手动加入一些控制点。在“控制点”标签下,选择要拼接的两张照片,在相重合的地方点击,选择至少3个同名像点,这些同名像点遵循均匀分布的原则。完成后进行一下“优化”处理,判断同名像点选取的是否合理,如果优化器优化后结果不错,可以接受优化并可以在全景编辑器中查看拼接的全景照片,并且可以对照片进行整体编辑,选择视野、投影方式等。在此功能中还能进行曝光/HDR的调整,修改拼接好的全景图,当然也可以在photoshop中进行。
(3)创建全景图:在此功能中可以选择要输出的全景图的尺寸、格式、图层以及保存路径。选择好后就可以输出了(图4拼接好全景图)。
图4 拼接好的全景图
制作全景图像,实现全景漫游。现在国内外也有许多软件能够完成,如上海杰图的漫游大师、pano2vr等。由于现在flash插件的广泛使用,因此下面使用pano2vr软件制作flash格式的全景漫游。
(1)选择要制作的全景图,用pano2vr软件打开,输入类型选择“自动”默认就行当然也可以根据需求选择“立面体”、“柱形”、“平面”等类型。
(2)可以“显示参数”标签中设置初始视场的方位、大小等参数,在“用户数据”标签中设置用户信息,在“交互热区”标签中设置场景切换热键,在“音频”标签中加入音频到全景中。
(3)在“输出”标签中选择“flash”格式输出,并且可以选择一个自带的皮肤或自制的皮肤加载其中。一个简单的全景图漫游就完成了。
在此,重点研究了flash皮肤地图雷达的制作。
(1)创建雷达。打开皮肤编辑窗口,在“编辑器”标签中添加一个容器,在此容器中添加先前制作好的场景地图的图片、点击按钮等所需的部件,再添加一个雷达容器,其中添加雷达所需的图片,添加完成后把他们安放在适当的位置上。
(2)实现雷达的地点跟踪功能。分别将这些部件设置合适的名称,在要选择地点的按钮属性的“动作/修改器”的“动作”中设置鼠标动作。在第一栏选择“鼠标点击”,第二栏选择“设置元素位置”,第三栏中就要设置X/Y的坐标了,第四栏“目标”选择雷达的容器名称“radar”(如图 5)。
图5 按钮属性的“动作/修改器”中雷达设置
图6 窗口默认坐标OXY和雷达坐标oxy
由于此时默认的窗口坐标(OXY)原点在窗口的左上方,自左向右为X轴,自上向下为Y轴。因此,在地图雷达的制作时,要设置另一个坐标系oxy(如图6),
根据上述公式,即可计算出待定点在地图中的新位置,从而在雷达中进行设置。
将每个地点按钮的属性中“动作/修改器”的“动作”中,根据所建立的独立坐标选择初始地点的此按钮处为原点,即坐标为(0,0),其他地点按钮的 X/Y 位移如图所示,分别设置为(29,-42)和(41,48)。这样就完成了鼠标点击这三个地点按钮时,雷达就随之移动到点击处,完成雷达的跟踪功能。
(3)实现雷达的方位跟踪功能。在雷达图片属性的“动作/修改器”的“修改器”中加入如图7所示的设置,即实现了在一个场景内,移动鼠标进行环视时,雷达也会实时跟踪方位,且随之移动。
图7 图片属性的“动作/修改器”中雷达设置
当一个全景制作好后,往往会将其发布到网上以供人们便于浏览,了解场景环境,因此发布虚拟全景网页势在必行。在pano2vr软件中就能方便的实现此动作。
在“输出”标签中选择flash格式后,点击后面的“增加”按钮,在弹出的flash输出设置框中选择“HTML”标签,开启HTML文件输出,对HTML文件的外部化、模板进行需求设置,完成之后会创建一个HTML文件,此文件就是将全景图发布到网上,实现虚拟漫游。
图8 全景图的网络发布
全景摄影是一种比较实用的技术,特别实在信息化逐渐普及,网络技术不断发展的今天,全景摄影是在互联网上展示真是场景效果最好的工具。然而它毕竟不是真三维技术,它的交互性远远不如创建三维模型的虚拟现实技术。但是它由于其数据量小,场景真实逼真,获取数据方面容易,制作流程比起三维建模来也相对简单方面,并且较大的降低了成本。因此,很受大场景的青睐。
[1]马凌云.计算机建筑漫游实例[M].上海交通大学出版社,2004.
[2]曾建超,俞志和.虚拟现实技术及其应用[M].北京:清华大学出版社,1996.
[3]http://www.chinavr.net/bbs/viewthread.php?tid=311[OL].2010,9.
[4]袁晓红.360°球形全景制作技术及其网络应用示范[J].测绘与空间地理信息,2010,33(5):13-15.
[5]王俊杰,徐小刚.鱼眼投影在虚拟实景中的应用研究[J].小型微型计算机系统,2004,25(2):287-290.
[6]http://www.jietusoft.com/[OL].2010,9.
[7]Mundhenk T N,Michael J R,Liao Xiao—qun,et a1.Techniques for fisheye lens calibration using a minimal number of measurements[C]//Proc of the SPIE Intelligent Robotics and Computer Vision Conference,Boston,Massaehusetts ,2000(11):8-9.