本发明属于数据加载,尤其涉及一种autocad中实现超大栅格影像加载的方法、设备及存储介质。
背景技术:
1、在水电、新能源和规划等领域的设计工作中,通常需要将正射影像加载到autocad设计软件中作为参考底图,再基于参考底图数据进行设计工作。
2、影像金字塔是按照一定规则生成的一系列分辨率由细到粗的图像的集合。影像金字塔技术通过影像重采样方法,建立一系列不同分辨率的影像图层,每个影像图层分割存储,并建立相应的空间索引机制,从而提高缩放浏览影像时的显示速度。如图1所示,例如图像分辨率为512×512的影像金字塔,其底部是最高分辨率512×512的原始图像,越往上的影像的分辨率越小,分别为256×256、128×128,其顶部是最低分辨率64×64的图像,因此这个影像金字塔共有4层,即4个等级的分辨率。显然影像的图像分辨率越高,影像金字塔的等级越多。通常将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。
3、autocad设计软件中影像加载的原生方式主要是将整个影像直接存入安装有autocad设计软件的终端设备的内存,然后加载到autocad设计软件中,即无论当前视口是多大范围或多大尺度(分辨率),都是一次性加载全部影像的所有像素,但是对于超大的栅格影像(超过9gb)的加载,则非常占用内存,导致加载时终端设备会经常出现异常卡顿。同时,autocad加载影像的坐标配准机制为:加载影像时,弹出对话框,需手动指定影像插入的位置或坐标,手动输入影像比例尺或尺度、旋转角度等参数,导致无法实现影像加载后自动配准坐标。
技术实现思路
1、本发明的目的在于提供一种autocad中实现超大栅格影像加载的方法、设备及存储介质,以解决超大的栅格影像加载到autocad设计软件中出现的异常卡顿问题。
2、本发明是通过如下的技术方案来解决上述技术问题的:一种autocad中实现超大栅格影像加载的方法,包括以下步骤:
3、通过autocad的二次开发,生成原始栅格影像的影像金字塔文件;
4、读取原始栅格影像的jpw格式文件,根据所述jpw格式文件确定影像的平面地理坐标范围;
5、获取autocad当前视口的平面地理坐标范围以及尺寸,并根据当前视口的平面地理坐标范围以及尺寸计算出当前视口x轴方向、y轴方向的像素分辨率;
6、判断所述影像的平面地理坐标范围与当前视口的平面地理坐标范围是否存在交集,若是,则根据当前视口x轴方向、y轴方向的像素分辨率从所述影像金字塔文件中确定待加载区域的金字塔层级,读取与所述层级对应的完整影像赋给tempimage;若否,则当前视口内不需要加载影像;
7、根据所述影像的平面地理坐标范围与当前视口的平面地理坐标范围计算出待加载区域的高度和宽度以及待加载区域左上角在tempimage的像素坐标;
8、根据待加载区域的高度和宽度以及待加载区域左上角在tempimage的像素坐标从tempimage中截取影像,并将截取的影像赋给pimagedef,实现待加载区域内影像的加载。
9、进一步地,所述生成原始栅格影像的影像金字塔文件具体包括:
10、读取原始栅格影像的像素总数;
11、对所述原始栅格影像进行逐层级降采样,得到像素总数最小的影像;
12、根据所述原始栅格影像和像素总数最小的影像求解出影像金字塔的总层数;
13、根据所述原始栅格影像、像素总数最小的影像以及总层数生成影像金字塔文件。
14、进一步地,所述影像的平面地理坐标范围的具体确定公式为:
15、raster_minx=raster_x,raster_miny=raster_y-raster_gsdy*iheight;
16、raster_maxx=raster_x+raster_gsdx*iwidth,raster_maxy=raster_y;
17、其中,(raster_minx,raster_miny)表示平面地理坐标系下原始栅格影像的左下角坐标,单位为米;(raster_maxx,raster_maxy)表示平面地理坐标系下原始栅格影像的右上角坐标,单位为米;(raster_x,raster_y)表示平面地理坐标系下原始栅格影像的左上角坐标,单位为米;raster_gsdy表示原始栅格影像y轴方向的像素分辨率,单位为米/像素;raster_gsdx表示原始栅格影像x轴方向的像素分辨率,单位为米/像素;iheight表示原始栅格影像的高度,单位为像素;iwidth表示原始栅格影像的宽度,单位为像素。
18、进一步地,所述当前视口x轴方向、y轴方向的像素分辨率的具体计算公式为:
19、view_gsdx=(view_maxx-view_minx)/view_width;
20、view_gsdy=(view_maxy-view_miny)/view_height;
21、其中,view_gsdx表示当前视口x轴方向的像素分辨率,单位为米/像素;view_gsdy表示当前视口y轴方向的像素分辨率,单位为米/像素;(view_minx,view_miny)表示平面地理坐标系下当前视口的左下角坐标,单位为米;(view_maxx,view_maxy)表示平面地理坐标系下当前视口的左下角坐标,单位为米;view_height表示当前视口的高度,单位为像素;view_width表示当前视口的宽度,单位为像素。
22、进一步地,根据当前视口在x轴方向、y轴方向的像素分辨率从所述影像金字塔文件中确定待加载区域的金字塔层级,具体包括:
23、从影像金字塔文件中找出分辨率与当前视口在x轴方向、y轴方向的像素分辨率最接近的层级,所述层级即为待加载区域的金字塔层级。
24、进一步地,所述待加载区域的高度和宽度的计算公式为:
25、draw_widthbypixel=draw_width/view_gsdx;
26、draw_height bypixel=draw_height/view_gsdy;
27、draw_width=intersec_maxx-intersec_minx;
28、draw_height=intersec_maxy-intersec_miny;
29、其中,draw_heightbypixel表示待加载区域的高度;draw_widthbypixel表示待加载区域的宽度;draw_width表示影像的平面地理坐标范围与当前视口的平面地理坐标范围之间的交集的宽度;draw_height表示影像的平面地理坐标范围与当前视口的平面地理坐标范围之间的交集的高度;view_gsdx表示当前视口x轴方向的像素分辨率,单位为米/像素;view_gsdy表示当前视口y轴方向的像素分辨率,单位为米/像素;(intersec_minx,intersec_miny)表示平面地理坐标系下影像的平面地理坐标范围与当前视口的平面地理坐标范围之间的交集的左下角坐标;(intersec_maxx,intersec_maxy)表示平面地理坐标系下影像的平面地理坐标范围与当前视口的平面地理坐标范围之间的交集的右上角坐标;
30、待加载区域左上角在tempimage的像素坐标的计算公式为:
31、nxoff=(intersec_minx-raster_minx)/view_gsdx;
32、nyoff=(raster_maxy-intersec_maxy)/view_gsdy;
33、其中,(nxoff,nyoff)表示待加载区域左上角在tempimage影像上的像素坐标;view_gsdx表示当前视口x轴方向的像素分辨率;view_gsdy表示当前视口y轴方向的像素分辨率;
34、(raster_minx,raster_miny)表示平面地理坐标系下原始栅格影像的左下角坐标;
35、(raster_maxx,raster_maxy)表示平面地理坐标系下原始栅格影像的右上角坐标。
36、进一步地,所述方法还包括已加载影像地理坐标自动配准的步骤,具体包括:
37、根据所述影像的平面地理坐标范围与当前视口的平面地理坐标范围之间的交集确定用于影像地理坐标配准的插入点、宽度和高度;
38、根据所述插入点、宽度和高度对已加载影像进行地理坐标自动配准。
39、基于同一构思,本发明还提供一种终端设备,包括存储器和处理器;其中,存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上所述的autocad中实现超大栅格影像加载的方法。
40、基于同一构思,本发明还提供一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行如上所述的autocad中实现超大栅格影像加载的方法。
41、基于同一构思,本发明还提供一种计算机程序产品,包括:计算机程序;当所述计算机程序被处理器执行时,致使所述处理器执行如上所述的autocad中实现超大栅格影像加载的方法。
42、有益效果
43、与现有技术相比,本发明的优点在于:
44、本发明在autocad视口仅加载与视口x轴方向、y轴方向的像素分辨率最接近的影像图层且交集的影像,无需加载整个影像,autocad加载影像数据量大大减小,大大降低了影像加载时的内存占用率,避免了原始影像加载方式导致设备异常卡顿问题;本发明在影像加载后能够自动进行坐标配准,满足勘测设计需求。
45、本发明具有自动化程度高、效率高、准确性好、成本低等特点。
1.一种autocad中实现超大栅格影像加载的方法,其特征在于,所述方法包括以下步骤:
2.根据权利要求1所述的autocad中实现超大栅格影像加载的方法,其特征在于,所述生成原始栅格影像的影像金字塔文件具体包括:
3.根据权利要求1所述的autocad中实现超大栅格影像加载的方法,其特征在于,所述影像的平面地理坐标范围的具体确定公式为:
4.根据权利要求1所述的autocad中实现超大栅格影像加载的方法,其特征在于,所述当前视口x轴方向、y轴方向的像素分辨率的具体计算公式为:
5.根据权利要求1所述的autocad中实现超大栅格影像加载的方法,其特征在于,根据当前视口在x轴方向、y轴方向的像素分辨率从所述影像金字塔文件中确定待加载区域的金字塔层级,具体包括:
6.根据权利要求1所述的autocad中实现超大栅格影像加载的方法,其特征在于,所述待加载区域的高度和宽度的计算公式为:
7.根据权利要求1~6中任一项所述的autocad中实现超大栅格影像加载的方法,其特征在于,所述方法还包括已加载影像地理坐标自动配准的步骤,具体包括:
8.一种终端设备,其特征在于,包括存储器和处理器;其中,存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1~7中任一项所述的autocad中实现超大栅格影像加载的方法。
9.一种存储有计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行如权利要求1~7中任一项所述的autocad中实现超大栅格影像加载的方法。
10.一种计算机程序产品,其特征在于,包括:计算机程序;当所述计算机程序被处理器执行时,致使所述处理器执行如权利要求1~7中任一项所述的autocad中实现超大栅格影像加载的方法。