An's Blog
收藏、分享 …
Toggle navigation
Home
Cesium
SuperMap
ArcGIS
MapboxGL
CentOS
GeoServer
Favorites
Archives
Tags
基于Cesium上实现视频投射
2025-05-22 14:59:07
4
0
0
admin
## **一、概述** **视频投**射,也有视频投射、视频融合之类的叫法。在地理信息系统(GIS)中,视频融合通常指的地理空间数据与视频数据结合起来进行分析、可视化或展示的过程,这个过程可以用于多种目的,例如监视、安全、环境监测等。 网上能够找到关于视频融合相关介绍,几乎都是基于高空摄像头的案例,就是鹰眼俯瞰的视角,视频画面与地面融合。而关于普通摄像头视频融合的案例却是凤毛麟角,作者不要收费就是想找商务洽谈,找不到太多公开代码因此只能自行摸索,经过几天的研究走了不少弯路,终于能够实现简易版的视频融合效果。  ## **二、实现思路** 首先,视频作为融合素材需要在服务端经过一些降噪、裁剪、调色等处理,然后生成视频流输出到浏览器端;前端的视频展示需要处理视频与三维场景之间的空间位置关系,从而实现在三维实景模型或地形上投射视频画面。  在视频投射的情况下,根据摄像机镜头的角度,可能会出现一些画面的部分落在地面上,而另一些部分则在半空中。这种情况通常取决于摄像机的视角和地形的形状。 在Cesium中,如果您将视频投射到地球表面或地形模型上,画面可能会根据地形的高度和摄像机的角度而有所不同。如果摄像机位于较低的位置,并且倾斜角度较大,那么画面的一部分可能会在地面上。反之,如果摄像机位于较高的位置,并且倾斜角度较小,那么画面可能会更多地显示在半空中。  如上图所示,展示了不同视角下的投射情况。 在处理视频投射时,应该尽量避免出现视觉上的断裂或不连贯性。如果画面的一部分落在半空中,而另一部分落在地面上,可以通过调整摄像机的参数或者适当地裁剪和调整视频画面的显示,以确保整体画面的连贯性和完整性。 ## **三、名词解释** 以下名词大部分为镜头视锥的可调整参数,在使用视锥调整镜头画面时对这些概念需要有比较充分的了解,否则可能会一头雾水。 | 名词 | 中文名 | 说明 | | :--- | :----: | :--- | | heading | 偏航角 | 摄像机的水平旋转角度,即摄像机指向的方向与地球表面的方向之间的夹角。 | | pitch | 俯仰角 | 摄像机的俯仰角度,即摄像机的仰角或俯视角度。正值表示向下俯视,负值表示向上仰视。 | | rolling | 翻滚角 | 摄像机的翻滚角度,即摄像机绕其前进方向旋转的角度。 | | fov | 视场角 | 视场角,表示摄像机视锥的水平和垂直方向上的可见角度范围。 | | near | 近裁剪面 | 视锥的近裁剪面,表示摄像机视锥中的最近可见点到摄像机的距离。 | | far | 远裁剪面 | 视锥的远裁剪面,表示摄像机视锥中的最远可见点到摄像机的距离。 | | aspectRatio | 宽高比 | 视锥的宽高比,即视锥的水平宽度与垂直高度之比。 | | stRotationST| 旋转角 | 用于控制视频画面的旋转角度,在Cesium中,ST表示纹理坐标系的S和T轴,该参数用于指定纹理的旋转角度 | | orientation | 镜头姿态 | 是用于定义对象(如摄像机、实体等)方向的属性。它描述了对象的朝向或者方向,通常用四元数(Quaternion)来表示 | ## **四、操作步骤** ### 1、获取设备坐标和安装高度 首先需要找到摄像头的位置,摄像头现实中的位置和高度参数我们很难获取到,且因为地图、倾斜摄影模型、安装时间客观原因会产生非常大的误差,现实中的数据对最终的呈现指导意义不大。因此我们可以直接在地图上拾取该摄像头设备的地理坐标,并通过3DTiles模型外观和现实中拍摄的设备安装的照片,估算设备大致的安装高度。  ### 2、创建一个视频标签videoElement,s1作为视频源,并创建1个投射多边形Polygon1,将videoElement作为材质赋予Polygon1, Polygon1就是视频的“幕布”了。  ### 3、通过摄像机的坐标和安装高度(该位置可以选择与当前镜头的camera一致)创建一个视锥f1,即摄像头的可视范围,每次调整视锥f1,Polygon1的形状和朝向也会同步做调整。  ### 4、获取到摄像头C1的视频截图或者一小段画面s1,调整地图查看器的镜头S1,直到S1有可能“包”住s1的画面,把S1的镜头姿态保存下来,今后每次查看C1的视频画面都会用到。 s1的画面可能完全落在地面上、可能完全落在半空中、也有可能地面和半空中各占一部分,目前我们只讨论前两种情况。  如果完全落在地面上,就取视锥f1和地面的交点作为s1的投射多边形Polygon1顶点;如果完全落在半空中,则取视锥f1的远端面顶点作为s1的投射多边形Polygon1的顶点。  ### 5、开始调整视锥f1的各种参数,直到画面s1和S2彻底融合,此时保存下f1的各种参数Params,这就是C1的镜头姿态。通过S1和Params,我们就能做到视频与地图环境融合。  ### 6、将视频资源改为持续的视频流,这块为视频直播模块的功能非本文重点,就不展开讲了
Pre:
概述
Next:
Vue2核心技术
0
likes
4
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Table of content