遥感图像显示方法、装置及存储介质和计算机设备
技术领域
本申请涉及遥感技术领域,更具体地说,涉及一种遥感图像显示方法、装置及存储介质和计算机设备。
背景技术
在遥感图像处理过程中,经常会有这样的需求:在指定长度和宽度的显示区域内显示多景遥感图像。此时,需要逐景打开遥感图像,读取遥感图像的内容填充到上述显示区域内生成显示图片。
当需要显示的遥感图像数量较少时,对存储有遥感图像的磁盘进行读写占用CPU消耗较小,不会对CPU的响应时间造成很大影像,可以快速生成显示图片。然而,当遥感图像数量很多时,例如,在一256*256长宽的显示区域内显示全国1:5千分幅的遥感图像需要打开约400万景遥感图像来生成显示图片,该过程需要400万景遥感图像逐个打开,依次读取图像内容(即读磁盘),将图像内容填充到显示区域(即写磁盘),对磁盘进行读写占用CPU消耗极大,还会严重拖慢CPU的响应时间,使得遥感图像的显示效率低。
发明内容
本申请的目的是提供一种遥感图像显示方法、装置及存储介质和计算机设备,包括如下技术方案:
一种遥感图像显示方法,包括:
确定目标区域对应的遥感图像列表;
若所述遥感图像列表中遥感图像的数量大于阈值,将显示区域划分为若干网格;
根据遥感图像的地理位置从所述遥感图像列表中筛选出与所述显示区域中的至少部分网格一一对应的目标遥感图像;
基于筛选的目标遥感图像填充所述显示区域,得到显示图片。
上述方法,优选的,所述根据遥感图像的地理位置从所述遥感图像列表中筛选出与所述显示区域中的至少部分网格一一对应的目标遥感图像,包括:
对应所述遥感图像列表中的至少部分遥感图像中的每一景遥感图像,执行如下处理,直至所述显示区域的所有网格均对应有目标遥感图像或者所述遥感图像列表中的遥感图像均处理完成:
根据该遥感图像的地理位置计算该遥感图像在所述显示区域上对应的目标网格;若所述目标网格还未对应有目标遥感图像,将该遥感图像确定为所述目标网格对应的目标遥感图像;若所述目标网格已对应有目标遥感图像,则丢弃该遥感图像。
上述方法,优选的,所述基于筛选的目标遥感图像填充所述显示区域,得到显示图片包括:
若所述目标遥感图像的尺寸大于对应的网格的尺寸,将所述目标遥感图像裁剪后填充到对应的网格中;否则,直接将所述目标遥感图像填充到对应的网格中;
对所述显示区域中未填充图像像素值的像素点进行插值,得到所述显示图片。
上述方法,优选的,所述对所述显示区域中未填充图像像素值的像素点进行插值,包括:
对于每一个未填充图像像素值的像素点,利用该像素点在相互垂直的两方向上的邻域像素点的像素值对该像素点进行均值插值。
上述方法,优选的,还包括:
若所述遥感图像列表中遥感图像的数量小于或等于所述阈值,就基于所述遥感图像列表中所有遥感图像填充所述显示区域,得到显示图片。
一种遥感图像显示装置,包括:
确定模块,用于确定目标区域对应的遥感图像列表;
划分模块,用于若所述遥感图像列表中遥感图像的数量大于阈值,将显示区域划分为若干网格;
处理模块,用于根据遥感图像的地理位置从所述遥感图像列表中筛选出与所述显示区域中的至少部分网格一一对应的目标遥感图像;
填充模块,用于基于筛选的目标遥感图像填充所述显示区域,得到显示图片。
上述装置,优选的,所述处理模块具体用于,对应所述遥感图像列表中的至少部分遥感图像中的每一景遥感图像,执行如下处理,直至所述显示区域的所有网格均对应有目标遥感图像或者所述遥感图像列表中的遥感图像均处理完成:
根据该遥感图像的地理位置计算该遥感图像在所述显示区域上对应的目标网格;若所述目标网格还未对应有目标遥感图像,将该遥感图像确定为所述目标网格对应的目标遥感图像;若所述目标网格已对应有目标遥感图像,则丢弃该遥感图像。
上述装置,优选的,所述填充模块包括:
填充单元,用于若所述目标遥感图像的尺寸大于对应的网格的尺寸,将所述目标遥感图像裁剪后填充到对应的网格中;否则,直接将所述目标遥感图像填充到对应的网格中;
插值单元,用于对所述显示区域中未填充图像像素值的像素点进行插值,得到所述显示图片。
上述装置,优选的,所述插值单元具体用于:
对于每一个未填充图像像素值的像素点,利用该像素点在相互垂直的两方向上的邻域像素点的像素值对该像素点进行均值插值。
上述装置,优选的,所述填充模块还用于:
若所述遥感图像列表中遥感图像的数量小于或等于所述阈值,就基于所述遥感图像列表中所有遥感图像填充所述显示区域,得到显示图片。
一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述任一项所述的遥感图像显示方法。
一种计算机设备,包括:
存储器,用于存储程序;
处理器,用于执行所述程序,实现如上任一项所述的遥感图像显示方法。
通过以上方案可知,本申请提供的一种遥感图像显示方法、装置及存储介质和计算机设备,在目标区域对应的遥感图像的数量大于阈值时,将显示区域划分为若干网格,根据遥感图像的地理位置从目标区域对应的遥感图像中筛选出与显示区域中的至少部分网格一一对应的目标遥感图像;基于筛选的目标遥感图像填充显示区域,得到显示图片。由于筛选目标遥感图像的过程中不关注遥感图像的内容,因而不需要读取遥感图像的内容,也就无需打开遥感图像,在对显示区域进行填充时,只需要打开目标遥感图像并读取图像内容即可,降低了对磁盘进行读写的次数,从而降低了对磁盘进行读写占用CPU消耗,加快了CPU的响应时间,使得遥感图像的显示效率提高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的遥感图像显示方法的一种实现流程图;
图2为本申请实施例提供的将显示区域划分为M列N行的空间网格的一种示例图;
图3为本申请实施例提供的遥感图像显示方法的另一种实现流程图;
图4为本申请实施例提供的像素点在相互垂直的两方向上的邻域像素点的一种示例图;
图5为本申请实施例提供的遥感图像显示装置的一种结构示意图;
图6为本申请实施例提供的计算机设备的硬件结构示意图。
说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请公开的遥感图像显示方法及装置可以应用于计算机设备中,该计算机设备可以是个人计算机,如台式计算机,笔记本电脑等,也可以是手机、平板电脑等便携式移动终端,还可以是服务器,服务器可以网络侧服务器,也可以是本地服务器。
在指定长度和宽度的显示区域内显示多景遥感图像的常见应用场景就是浏览地图。本申请公开的遥感图像显示方法处理可以应用于地图浏览的场景,还可以应用于其它需要在指定长度和宽度的显示区域内显示多景遥感图像的场景。以下实施例以浏览地图为例对本申请进行说明。
请参阅图1,图1为本申请实施例提供的遥感图像显示方法的一种实现流程图,可以包括:
步骤S11:确定目标区域对应的遥感图像列表。
目标区域由用户在浏览地图的过程中,根据浏览需求而指定。例如,在用户浏览地图的过程中,通过用户输入的平移操作或缩放操作可以确定用户想要浏览的区域(即目标区域),不同的目标区域对应的遥感图像至少有部分不同,该确定目标区域以及确定目标区域对应的遥感图像的过程不是本申请的关注点,具体实现方式可以参看目前已成熟的技术,这里不再详述。
步骤S12:若遥感图像列表中遥感图像的数量大于阈值,将显示区域划分为若干网格。
显示区域即用于显示遥感图像的区域。该区域通常是预先设定好的,每个目标区域对应的遥感图像均需要通过该显示区域进行显示。
可选的,可以按照显示区域的空间分布(即目标区域对应的遥感图像所属的地理范围)将显示区域平均划分为M列N行的空间网格(以下简称网格),即将显示区域平均划分为M*N个矩形网格。M和N值可以是预先配置好的,M和N可以相同,也可以不同,例如,M=N=32,或者,M=N=256,或者,M=256,N=128,或者,M=64,N=128等等。当然,上述M和N的取值只是举例说明,本申请实施例中,M和N的取值并不局限于上述取值,还可以有其它取值,这里不再一一举例说明。
在一可选的实施例中,M*N的取值可以根据目标区域对应的遥感图像的数量范围设置多个可选的取值。具体的,目标区域对应的遥感图像的数量越大,对应的,M*N的取值越大。例如,当目标区域对应的遥感图像的数量在第一范围内时,M*N的取值为M1*N1,当目标区域对应的遥感图像的数量在第二范围内时,M*N的取值为M2*N2,其中,第一范围的最大值小于第二范围的最小值,则M2*N2大于M1*N1。
步骤S13:根据遥感图像的地理位置从遥感图像列表中筛选出与显示区域中的至少部分网格一一对应的目标遥感图像。
本申请实施例中,对遥感图像进行筛选时,不关注遥感图像的内容,而是根据遥感图像的地理位置进行筛选,所筛选的每一个目标遥感图像都唯一对应一个网格。由于不关注遥感图像的内容,因此,无需读取遥感图像的内容,也就不需要将遥感图像打开。
步骤S14:基于筛选的目标遥感图像填充显示区域,得到显示图片。
在筛选出目标遥感图像后,利用筛选出的目标遥感图像填充到显示区域,具体为:逐个打开目标遥感图像,依次读取目标遥感图像内容,将读取的图像内容填充到显示区域。
也就是说,本申请通过打开并读取目标区域对应的部分遥感图像对显示区域进行填充,与打开并读取目标区域对应的全部遥感图像对显示区域进行填充相比,降低了对磁盘进行读写的次数,从而降低了对磁盘进行读写占用CPU消耗,加快了CPU的响应时间,提高遥感图像的显示效率。
在一可选的实施例中,上述根据遥感图像的地理位置从遥感图像列表中筛选出与显示区域中的至少部分网格一一对应的目标遥感图像的一种实现方式可以为:
对应遥感图像列表中的至少部分遥感图像中的每一景遥感图像(为便于叙述,记为第一遥感图像),执行如下处理,直至显示区域的所有网格均对应有一目标遥感图像或者遥感图像列表中的遥感图像均处理完成:
根据第一遥感图像的地理位置计算该遥感图像在显示区域上对应的目标网格。
为便于说明,建立二维坐标系,该坐标系中X轴为水平方向,Y轴为垂直方向。则上述将显示区域平均划分为M列N行的空间网格,即是在X轴方向上将显示区域划分为M列,在Y方向上将显示区域划分为N行。如图2所示,为本申请实施例提供的将显示区域划分为M列N行的空间网格的一种示例图。该示例中,M=N=16,Xstart为目标区域在X轴方向上的起始地理位置,Xend为目标区域在X轴方向上的终止地理位置,Ystart为目标区域在Y轴方向上的起始地理位置,Yend为目标区域在Y轴方向上的终止地理位置。
可选的,在将显示区域划分为M*N个网格后,计算每个网格在X轴方向上的分辨率Xstep和在Y轴方向上的分辨率Ystep,其中,Xstep=(Xend-Xtart)/M,Ystep=(Yend-Ystart)/N。
假设第一遥感图像在X轴方向的起始地理位置为Xmin,在X轴方向的终止地理位置为Xmax,第一遥感图像在Y轴方向的起始地理位置为Ymin,在Y轴方向的终止地理位置为Ymax,第一遥感图像的中心点坐标为(Xcent,Ycent),第一遥感图像在显示区域上对应的目标网格的位置为(Xpos,Ypos),则:
Xcent=(Xmin+Xmax)/2,Ycent=(Ymin+Ymax)/2
Xpos=(Xcent-Xstart)/Xstep,Ypos=(Ycent-Ystart)/Ystep。若计算得到的Xpos或Ypos的取值不为整数,则按照预设规则对其进行取整操作即可,例如,按照四舍五入规则取整,或者,直接向上取整,或者,直接向下取整。
若目标网格还未对应有目标遥感图像,将第一遥感图像确定为目标网格对应的目标遥感图像;若目标网格已对应有目标遥感图像,则丢弃该第一遥感图像。
为方便判断网格是否对应有目标遥感图像,可以针对每个网格设置一个标志位,并根据该标志位的不同取值来识别其是否对应有目标遥感图像。例如,假设(Xpos,Ypos)位置的网格对应的标志位为Flags[Xpos][Ypos],若该标志位的取值为0,说明(Xpos,Ypos)位置的网格还未对应有目标遥感图像,若该标志位的取值为1,说明该标记对应的网格已对应有目标遥感图像。也就是说,所有网格对应的标志位的初始取值为0,当有目标遥感图像与该网格对应时,该网格对应的标志位的取值变为1。
可选的,确定遥感图像列表后,可以按照遥感图像列表中遥感图像的排序顺序,逐景遥感图像计算对应的网格,当显示区域中所有网格都对应有目标遥感图像时,即便还有遥感图像未计算对应网格,也不再对后续未进行计算的遥感图像进行计算了。
当然,也有可能在遥感图像列表中的所有遥感图像都计算完成后,还有目标网格未对应有目标遥感图像,这时会有部分网格是空白。或者,有可能在遥感图像列表中的所有遥感图像都计算完成时,所有目标网格正好均对应有目标遥感图像。
如图3所示,为本申请实施例提供的遥感图像显示方法的另一种实现流程图,可以包括:
步骤S301:获取目标区域对应的遥感图像列表ImageList。
步骤S302:判断ImageList中的遥感图像的数量Count是否大于阈值Threshold?若是,则进入步骤S303;否则,进入步骤S312。
步骤S303:将显示区域均分为M*N的空间网格,并为每个网格创建标志位,初始化为0。
步骤S304:初始化变量i=1,iCount=0,创建空图像列表ImageListAdd,其中,i表征ImageList中待计算目标网格的遥感图像的序号,iCount表征已对应有目标遥感图像的网格的个数,ImageListAdd用于记录目标遥感图像。
步骤S305:获取ImageList中第i景遥感图像的中心坐标。
步骤S306:根据中心坐标计算第i景遥感图像对应的网格的位置。
步骤S307:判断该网格位置对应的标志位的值是否为0,若是,进入步骤S308,否则,进入步骤S309;
步骤S308:将第i景遥感图像并添加到ImageListAdd中,iCount+1;
步骤S309:判断iCount是否大于M*N,若是,说明所有网格均对应有目标遥感图像了,则进入步骤S311,否则进入步骤S310;
步骤S310:判断i是否大于Count,若是,说明ImageList中的遥感图像均计算过对应的网络了,则进入步骤S311,否则返回步骤S305。
步骤S311:利用ImageListAdd中的遥感图像生成显示图片。
步骤S312:利用遥感图像列表ImageList中的所有遥感图像生成显示图片。
在一可选的实施例中,上述基于筛选的目标遥感图像填充显示区域,得到显示图片的一种实现方式可以为:
若目标遥感图像的尺寸大于对应的网格的尺寸,将目标遥感图像裁剪后填充到对应的网格中;否则,直接将目标遥感图像填充到对应的网格中。
可选的,若目标遥感图像的尺寸大于对应的网格的尺寸,可以将目标遥感图像的中心坐标与对应的网格的中心坐标对齐,然后,将目标遥感图像中超出网格的部分裁剪掉。若目标遥感图像的尺寸小于或等于对应的网格的尺寸,则将目标遥感图像填充到对应的网格时,目标遥感图像的中心坐标与对应的网格的中心坐标对齐。
对显示区域中未填充图像像素值的像素点进行插值,得到显示图片。
在目标遥感图像的尺寸小于对应的网格的尺寸的情况下,或者,有网格未对应目标遥感图像的情况下,显示区域中会存在未填充图像像素值的像素点。图像像素值是指RGB值。在对显示区域进行填充前,目标显示区域的各个像素点的RGB值为初始值,例如为0,如果显示区域中的像素点被目标遥感图像中的像素点的像素值填充,则该像素点的RGB值不再为0,而是更新为目标遥感图像中的像素点的像素值。因此,若显示区域中某个像素点的图像像素值为初始值,则确定该像素点未填充图像像素值。
在一可选的实施例中,对显示区域中未填充图像像素值的像素点进行插值的一种实现方式可以为:
对于每一个未填充图像像素值的像素点,利用该像素点在相互垂直的两方向上的邻域像素点的像素值对该像素点进行均值插值。
如图4所示,为本申请实施例提供的像素点在相互垂直的两方向上的邻域像素点的一种示例图。该示例中,假设像素点A是一个未填充图像像素值的像素点,则可以利用该像素点A上下左右各两个像素点(即图4中的像素点U1、U2、D1、D2、L1、L2、R1、R2)的图像像素值的均值作为像素点A的图像像素值。
当像素点A在相互垂直的两方向上的邻域像素点的像素值也为初始值时,可以先利用本申请提供的插值方法对像素点A在相互垂直的两方向上的邻域像素点进行插值,然后再利用像素点A的邻域像素点的插值后的像素值对像素点A进行插值。
在一可选的实施例中,若遥感图像列表中遥感图像的数量小于或等于上述阈值,就基于遥感图像列表中所有遥感图像填充显示区域,得到显示图片。
也就是说,若遥感图像列表中遥感图像的数量小于或等于上述阈值,无需对遥感图像列表中遥感图像进行筛选,利用遥感图像列表中所有遥感图像,按照现有技术的遥感图像显示方法对显示区域进行填充即可。
与方法实施例相对应,本申请还提供一种遥感图像显示装置,本申请提供的遥感图像显示装置的一种结构示意图如图5所示,可以包括:
确定模块51,划分模块52,处理模块53和填充模块54;其中,
确定模块51用于确定目标区域对应的遥感图像列表;
划分模块52用于若所述遥感图像列表中遥感图像的数量大于阈值,将显示区域划分为若干网格;
处理模块53用于根据遥感图像的地理位置从所述遥感图像列表中筛选出与所述显示区域中的至少部分网格一一对应的目标遥感图像;
填充模块54用于基于筛选的目标遥感图像填充所述显示区域,得到显示图片。
本申请提供的遥感图像显示装置,在目标区域对应的遥感图像的数量大于阈值时,将显示区域划分为若干网格,根据遥感图像的地理位置从目标区域对应的遥感图像中筛选出与显示区域中的至少部分网格一一对应的目标遥感图像;基于筛选的目标遥感图像填充显示区域,得到显示图片。由于筛选目标遥感图像的过程中不关注遥感图像的内容,因而不需要读取遥感图像的内容,也就无需打开遥感图像,在对显示区域进行填充时,只需要打开目标遥感图像并读取图像内容即可,降低了对磁盘进行读写的次数,从而降低了对磁盘进行读写占用CPU消耗,加快了CPU的响应时间,使得遥感图像的显示效率提高。
在一可选的实施例中,所述处理模块53具体可以用于,对应所述遥感图像列表中的至少部分遥感图像中的每一景遥感图像,执行如下处理,直至所述显示区域的所有网格均对应有目标遥感图像或者所述遥感图像列表中的遥感图像均处理完成:
根据该遥感图像的地理位置计算该遥感图像在所述显示区域上对应的目标网格;若所述目标网格还未对应有目标遥感图像,将该遥感图像确定为所述目标网格对应的目标遥感图像;若所述目标网格已对应有目标遥感图像,则丢弃该遥感图像。
在一可选的实施例中,所述填充模块54可以包括:
填充单元,用于若所述目标遥感图像的尺寸大于对应的网格的尺寸,将所述目标遥感图像裁剪后填充到对应的网格中;否则,直接将所述目标遥感图像填充到对应的网格中;
插值单元,用于对所述显示区域中未填充图像像素值的像素点进行插值,得到所述显示图片。
在一可选的实施例中,所述插值单元具体可以用于:
对于每一个未填充图像像素值的像素点,利用该像素点在相互垂直的两方向上的邻域像素点的像素值对该像素点进行均值插值。
在一可选的实施例中,所述填充模块54还可以用于:
若所述遥感图像列表中遥感图像的数量小于或等于所述阈值,就基于所述遥感图像列表中所有遥感图像填充所述显示区域,得到显示图片。
本申请还提供一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现上述任一项所述的遥感图像显示方法。可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请还提供一种计算机设备,如图6所示,为本申请实施例提供的计算机设备的硬件结构示意图,可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,实现如上述任一项所述的遥感图像显示方法。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
应当理解,本申请实施例中,从权、各个实施例、特征可以互相组合结合,都能实现解决前述技术问题。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。