APP下载

面向选线设计的AutoCAD大规模卫航片自动加载技术

2021-02-11曾文胜

中国新技术新产品 2021年22期
关键词:定线选线像素

周 岳 王 锐 曾文胜

(广东省铁路规划设计院有限公司,广东 广州 510600)

0 引言

随着勘测技术的发展,高精度卫航片的获取成本越来越低,开始广泛应用于铁路选线设计[1-2]。将高精度卫片、航片作为选线设计的底图,可以形象、直观、准确地感知线路与周围环境的空间关系,尤其是在居民区、既有路网、管线较多的复杂区域;同时还可以显著提升线路方案的出图、汇报、展示效果。

线路设计具有点多、线长、面广的特点,研究范围动辄万平方公里级[3]。将沿线高精度卫航片一次性全部加载到选线系统,目前的硬件条件难以满足该要求。而且AutoCAD 本身对插入的参照图片总大小有一定限制,只能加载少量的图片。因此,现在的高清卫片航片只能用于小范围局部方案的调整;而且还需要不停地手动加载、卸载卫航片,操作极为烦琐。另外在大范围选线时,设计人员需要感知宏观层面的高山、河流、城镇分布,高精度的卫航片反而无法满足要求。

为最大程度发挥高清卫航片的作用,突破AutoCAD 平台对参照图片内存的限制,该研究建立了多层次细节卫航片模型,提出与视口相关的卫航片调度方法,构建自动加载、卸载模式,在选线过程中,能够实时、流畅、大规模地显示卫航片。

1 多层次细节卫航片

选线设计过程中既需要反映宏观特征的粗分辨率模型,也需要刻画局部细节的高分辨率模型。单一细节层次的卫航片显然无法满足需求,该研究借鉴Open Scene Graph中对地形的处理模式[3],建立了多层次细节卫航片模型。

假设大范围高清卫航片的大小为r0×c0像素的图片M0,无法一次性加载到AutoCAD 中。而满足在AutoCAD 中可快速加载和顺畅交互的正方形图片的像素为n×n。我们可将原始卫航片M0分割为n×n一系列像素的小图片阵列。该阵列的图片数为R0行、C0列。

R0=[r0/n]

C0=[c0/n]

由于r0、c0极有可能无法被n整除,因此上述公式为商值向上取整,而对不能整除的像素则可用RGB(0,0,0)来填充。

该图像阵列是由原始图像无损分割而成,笔者称其为第0 层图像阵列,记为M0,其中的第i行,j列的图像记为M0i,j。注意,该处的行、列号i,j从0 开始。该层图像在选线设计需要最精细数据时加载到AutoCAD。在第0 层图像阵列之上,该研究将采用图像重采样的方式,生成逐层粗糙的多细节层次图像阵列,具体方法如下。

如图1,从图像阵列的左下角开始,至下而上,自左往右,逐行扫描,每2×2 个图像合并成一个新图像且新图像像素数量n×n保持不变,即:第0 层的M00,0,M00,1,M01,0,M01,1合并为第1 层的M10,0;M10,0,M10,1,M11,0,M11,1,再合并成第2 层的M20,0;最终第2 层的4 个图像合并成M30,0。需要注意的是,如果行、列数不是偶数,可以在最上面或者最右侧增加一行或者一列RGB(0,0,0)的空白图像。设第k层i行,j列的图像Mk i,j,则第k+1 层,j列的图像Mk+1i,j的函数如下。

图1 多层次细节图像

F为像素重采样函数。该研究采用图像处理中计算速度与图像质量较为均衡的双线性插值法[4]来计算重采样后的每个像素RGB值。

采样上述方法不断对图像进行重采样,每次采样图片数量都只剩下1/4,每个图片都增大到上一层的4 倍,经过L层的重采样,最终形成一张分辨率低的可以快速调入AutoCAD 的n×n像素图像ML。此时,可以将所有的分层图像采用如图2 的四叉树进行存储,每个节点内存储一个图像,并记录下该图像的层级k,图像阵列中的行号i,列号j。每个父节点的范围刚好完全包括下属4 个子节点且精细程度增加一倍,从而形成了一个多层次的细节模型。

图2 多层次四叉树结构

2 卫航片视相关调度方法

在AutoCAD 内定线时,当需要进行宏观线位规划时,设计人员通常会将视口拉远,希望从卫航片中看到高山、河流、城市边界;而在进行细部的曲线半径、缓长调整时,通常会将视口拉近,希望看到细节的房屋、道路等。不同层次细节的模型前面已经建立,为满足上述需求,还需要建立一套视相关调度方法。

在实时浏览和缩放AutoCAD 绘图窗口过程中,笔者可以通过ObjectARX 开发包获取AutoCAD 绘图窗口的大地坐标及在屏幕上的像素坐标。设左下角PLB点的大地坐标、屏幕像素坐标分别为(xLB,yLB),(HLB,HLB);右上角点PRU的大地坐标、屏幕像素坐标分别为(xRU,yRU),(HRU,HRU)。则屏幕上1 个像素代表的AutoCAD 中图形的实际长度如下。

dpp=(xRU-xLB)/(HRU-HLB)

如果要完全无损地在AutoCAD 中展现卫航图像,dpp应大于当前加载的卫航片的图像的精度。设卫航片的原始测绘精度为d0,第k级时卫航片精度为d0×2k,应满足以下条件。

d0×2k

考虑到实际选线设计过程中,设计人员并不会分辨平面上每个像素点,往往2×2 个甚至4×4 个像素点范围内有1 个卫航片像素点即可满足要求。因此可在上述公式的dpp前乘以1 个容许模糊系数f。

3 卫航片自适应动态加卸载

通过上述的视相关调度方法,可以计算出与用户AutoCAD 视口相关的且最少数量的图像文件。在真正的定线过程中,还需要一套自适应动态调度机制来管理这些图像文件的加载、卸载,使AutoCAD 的图像占用内存始终处于一个合理的范围,从而保证在各类交互式定线过程中能够流畅地显示与刷新图像。

该研究在动态加载机制中记录了上次已载入AutoCAD的所有图像集合UPre,图像的层级k,该视口变化需要增加和删除的图像集合UAdd,UDel,AutoCAD 最大容许加载图像数量Nmax,并对AutoCAD 的视口进行实时监控,只要视口发生变化就将进入以下流程:1)如果视口只进行了平移,表明无须更改图像层级,此时可根据平移量与第kk层图像大小之间的关系,只遍历UM附近的图像,计算与新视口是否存在交集,可快速确定需要增加的图像集合UAdd和可删除的图像集合UDel,转步骤3);2)如果视口发生缩放,此时需根据视相关调度算法计算新的图像层级k以及需要增加的图像集合UAdd和可删除的图像集合UDel;转步骤3);3)考虑到图像的加载和删除需要申请和释放资源,速度较慢,因此优先使用更新图像的方法,分以下几种情况处理。①当UPre+UAdd的图像数量,Nmax表明载入UAdd后超过可用资源上限,此时再判断UPre+UAdd-UDel是否超过Nmax,如果不超过,则先用UAdd中的图像替换掉UDel,如果UDel

通过上述自适应动态加载机制,可以用较小的代价将实时定线过程中最关心的卫航片加载到AutoCAD。

4 程序开发与应用

基于上述的原理与方法,该研究采用Visual Studio 2012、ObjectARXARX2016 开发了运行于AutoCAD2016 的大规模卫航片自适应动态加载程序,可对高精度卫航片进行自动分割、重采样,建立多层次细节的图像模型;在定线过程中,可以根据用户的视角、视口自动加载定线关系的卫航片资源(如图3),帮助设计人员形象直观地判定线路与周围环境的关系,提高选线设计效率。

图3 自适应动态加载的选线卫航片

5 结语

将高精度卫片、航片作为选线设计的底图,可以形象、直观、准确地感知线路与周围环境的空间关系,显著提升线路方案的出图、汇报、展示效果。但选线设计常用的AutoCAD平台无法直接加载大规模的卫航片资源。为破解该难题,该文建立多层次细节卫航片模型,提出视相关的图像调度方法,构建自适应动态加卸载模式,编制了AutoCAD 卫航片自动加载插件,在选线过程中,可以大规模、实时、流畅地显示卫航片,辅助提升了选线设计的效率与质量。该技术不仅可用于铁路选线设计,也适用于在AutoCAD 平台上开展的公路、电力、管道等设计,具有广阔的应用前景。

猜你喜欢

定线选线像素
赵运哲作品
像素前线之“幻影”2000
定线员
“像素”仙人掌
基于压缩感知的电力系统故障选线研究
小波变换在电力线路故障选线中的应用
基于强跟踪滤波器的小电流接地系统故障选线
近似熵在谐振接地系统故障选线中的应用
定线成果数据库的建立