基于插值算法的图像处理方法、装置、服务器和存储介质
技术领域
本发明实施例涉及图像处理领域,尤其涉及一种基于插值算法的图像处理方法、装置、服务器和存储介质。
背景技术
三维图像视觉上层次分明色彩鲜艳,具有很强的视觉冲击力,让观看的人驻景时间长,留下深刻的印象。三维图像给人以真实、栩栩如生,人物呼之欲出,有身临其境的感觉,有很高的艺术欣赏价值。利用三维图像包装企业,使企业形象更加鲜明,突出企业实力和档次,增加影响力,更能突出产品的高品质和高档次。同时也可以做出色彩艳丽、层次分明的立体婚纱、照片,是当前影像业最新的卖点之一。
目前的三维图像处理方法多采用插值处理来消除房屋、树木等的投影差。但在插值处理中,容易出现图像边缘不齐整即产生很多“尖刺”状表面的问题,并且随着图像处理数据的增加,传统插值处理的工作效率较低。
发明内容
本发明提供一种基于插值算法的图像处理方法,包括以下步骤:
根据预设分辨率将目标图像的点云数据网格化,以获取每个网格内点云数据的高程;
对每个网格内的点云数据的高程进行排序并根据预设数量阈值进行筛选,以获取筛选后的高程对应的网格点云数据;
将网格点云数据以预设数量维度栅格化,以获取预设数量维度的栅格数据;
对预设数量维度的栅格数据中的第一维度的栅格数据进行处理,以获得参考高程;
基于参考高程对预设数量维度的栅格数据进行反距离权重插值,以获得目标图像的三维图像插值数据。
进一步的,将网格点云数据已预设数量维度栅格化还包括:
判断预设数量维度的栅格数据内的维度数量是否小于预设数量,当是时,用无效值代替。
进一步的,对预设数量维度的栅格数据中的第一维度的栅格数据进行处理还包括:
对预设数量维度的栅格数据中第一维度的栅格数据进行窗口半径为R的中值滤波处理,得到滤波后的栅格数据,中值滤波处理忽略无效值的计算。
进一步的,基于参考高程对预设数量维度的栅格数据进行反距离权重插值之前,还包括:
从滤波后的栅格数据中得到栅格内每个点云数据的高程值,滤波后的栅格数据中的每个点云数据的高程值与滤波后的栅格数据对应的二维网格坐标结合组成了第一点集;
搜索第一点集得到第二点集。
进一步的,第一点集以滤波后的栅格数据中每个点云数据对应的二维网格坐标原点为圆心、预设长度数值为半径。
进一步的,反距离权重插值包括以下计算方法:
其中Wi为权值,zi为插值点到点集中对应的点云数据的三维距离,Z为点集中的栅格数据的高程值,为点集中每个点云数据的高程值。
进一步的,基于参考高程对预设数量维度的栅格数据进行反距离权重插值还包括:
根据得到的第二点集,按照反距离权重插值算法对每个预设数量维度的栅格数据进行插值,得到每个预设数量维度的栅格数据对应的高程值。
进一步的,以获得目标图像的三维图像插值数据之前,还包括:
对每个预设数量维度的栅格数据进行插值后,对每个预设数量维度的栅格进行水平方向的扫描线检测,若检测到无效值,则对无效值进行扫描线方向最低点高程的插值。
本发明还提供一种基于插值算法的图像处理装置,包括:
网格化模块,用于根据预设分辨率将目标图像的点云数据网格化,以获取每个网格内点云数据的高程;
排序筛选模块,用于对每个网格内的点云数据的高程进行排序并根据预设数量阈值进行筛选,以获取筛选后的高程对应的网格点云数据;
栅格化模块,用于将网格点云数据以预设数量维度栅格化,以获取预设数量维度的栅格数据;
栅格处理模块,用于对预设数量维度的栅格数据中的第一维度的栅格数据进行处理,以获得参考高程;
插值计算模块,用于基于参考高程对预设数量维度的栅格数据进行反距离权重插值,以获得目标图像的三维图像插值数据。
本发明还提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时实现上述任一项所述基于插值算法的图像处理的方法。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一项所述基于插值算法的图像处理方法的步骤。
本发明的有益效果是通过对点云数据网格化和栅格化,选取每个栅格的部分点云数据,压缩了数据量,提高了计算效率,并通过计算三维空间的权重,使得三维图像的边界齐整,避免了“尖刺”的产生。
附图说明
图1为本发明实施例一中的一种基于插值算法的图像处理方法的流程图;
图2为本发明实施例二中的一种基于插值算法的图像处理方法的流程图;
图3为本发明实施例三中的一种基于插值算法的图像处理装置的结构示意图;
图4为本发明实施例四中的一种图像处理服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一速度差值称为第二速度差值,且类似地,可将第二速度差值称为第一速度差值。第一速度差值和第二速度差值两者都是速度差值,但其不是同一速度差值。术语“第一”、“第二”等不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
实施例一
图1为本发明实施例一提供的一种基于插值算法的图像处理方法的流程图。如图1所示,一种基于插值算法的图像处理方法,具体包括如下步骤:
S110:根据预设分辨率将目标图像的点云数据网格化,以获取每个网格内点云数据的高程。
具体的,预设分辨率可以是三维物体的数字表面模型(Digital Surface Model,DSM)的分辨率,可以对点云数据按照DSM的分辨率组织成二维网格。
S120:对每个网格内的点云数据的高程进行排序并根据预设数量阈值进行筛选,以获取筛选后的高程对应的网格点云数据。
具体的,可以将二维网格内的点云数据按照高程从大到小进行排序,每个网格可以取相同数量的连续排序在前的点作为计算点,其他点去除,得到筛选后的高程对应的网格点云数据。
S130:将网格点云数据以预设数量维度栅格化,以获取预设数量维度的栅格数据。
具体的,可以将步骤S120中得到的筛选后的高程对应的网格点云数据组织成栅格格式,可以预先设置每个栅格包含的维度数量,每个维度代表对应点云数据的高程并按照高程从大到小进行排序,从而得到一定维度数量的栅格数据。
S140:对预设数量维度的栅格数据中的第一维度的栅格数据进行处理,以获得参考高程。
具体的,可以对第一维度的栅格数据进行窗口半径R的中值滤波,以过滤掉噪声数据。
S150:基于参考高程对预设数量维度的栅格数据进行反距离权重插值,以获得目标图像的三维图像插值数据。
本实施例一的技术方案,通过对点云数据网格化和栅格化,选取每个栅格的部分点云数据,压缩了数据量,解决了人工编辑时难以处理海量数据的技术问题,达到了提高工作效率、节约人力成本的技术效果。
实施例二
图2为本发明实施例二提供的一种基于插值算法的图像处理方法的流程图。本实施例二是在实施例一的基础上做的进一步改进。如图2所示,一种基于插值算法的图像处理方法,具体包括如下步骤:
S210:根据预设分辨率将目标图像的点云数据网格化,以获取每个网格内点云数据的高程。
具体的,预设分辨率可以是DSM的分辨率,可以对点云数据按照DSM的分辨率组织成二维网格。
S220:对每个网格内的点云数据的高程进行排序并根据预设数量阈值进行筛选,以获取筛选后的高程对应的网格点云数据。
具体的,可以将二维网格内的点云数据按照高程从大到小进行排序,每个网格可以取相同数量的连续排序在前的点作为计算点,其他点去除,得到筛选后的高程对应的网格点云数据。
S230:将网格点云数据以预设数量维度栅格化,以获取预设数量维度的栅格数据。
具体的,可以将步骤S220中得到的筛选后的高程对应的网格点云数据组织成栅格格式,可以预先设置每个栅格包含的维度数量,每个维度代表对应点云数据的高程并按照高程从大到小进行排序,从而得到一定维度数量的栅格数据。
S240:判断预设数量维度的栅格数据内的维度数量是否小于预设数量维度,当是时,执行步骤S241,当否时,执行步骤S250。
S241:当预设数量维度的栅格数据内的维度数量小于预设数量时,用无效值代替。
S250:对预设数量维度的栅格数据中的第一维度的栅格数据进行处理,以获得参考高程。
具体的,步骤S250还包括步骤S251。
S251:对预设数量维度的栅格数据中的第一维度的栅格数据进行窗口半径为R的中值滤波处理,得到滤波后的栅格数据,中值滤波处理忽略无效值的计算。
S260:从滤波后的栅格数据中得到栅格内每个点云数据的高程值,滤波后的栅格数据中的每个点云数据的高程值与滤波后的栅格数据对应的二维网格坐标结合组成了第一点集,搜索第一点集得到第二点集。
具体的,第一点集可以以滤波后的栅格数据中每个点云数据对应的二维网格坐标原点为圆心、预设长度数值为半径。
S270:基于参考高程对预设数量维度的栅格数据进行反距离权重插值,以获得目标图像的三维图像插值数据。
S280:输出目标图像的三维图像插值数据。
具体的,步骤S270还包括步骤S271和步骤S272。
S271:根据得到的第二点集,按照反距离权重插值算法对每个预设数量维度的栅格数据进行插值,得到每个预设数量维度的栅格数据对应的高程值。
S272:对每个预设数量维度的栅格数据进行插值后,对每个预设数量维度的栅格进行水平方向的扫描线检测,若检测到无效值,则对无效值进行扫描线方向最低点高程的插值
具体的,反距离权重插值包括以下计算方法:
其中Wi为权值,zi为插值点到点集中对应的点云数据的三维距离,Z为点集中的栅格数据的高程值,为点集中每个点云数据的高程值。
具体的,步骤S270中也可以对预设数量维度的栅格数据采用其他的插值算法,只要考虑第二点集中的点云数据周围的三维距离信息,而不是仅仅的二维距离信息,采用其他的插值算法也能达到相同的效果。
本实施例二的有益效果是通过对点云数据网格化和栅格化,选取每个栅格的部分点云数据,压缩了数据量,解决了人工编辑时难以处理海量数据的技术问题,达到了提高工作效率、节约人力成本的技术效果。同时灵活运用点云数据周围的三维距离信息,并据此计算权重,使得在平面上离对应点云数据很近但高程很远的点具有较小的权值,解决了处理三维图像时边界容易出现不齐整即“尖刺”的技术问题,达到更好更真实的反应物体表面的真实特征的技术效果。
实施例三
本发明实施例所提供的一种基于插值算法的图像处理装置300可执行本发明任意实施例所提供的基于插值算法的图像处理方法,具备执行方法相应的功能模块和有益效果。该装置300可以由软件和/或硬件(集成电路)的方式实现,并一般可集成于服务器或终端设备中。图3为本发明实施例三中的一种基于插值算法的图像处理装置的结构示意图。如图3所示,本发明实施例的基于插值算法的图像处理装置300具体可以包括:
网格化模块310,用于根据预设分辨率将目标图像的点云数据网格化,以获取每个网格内点云数据的高程;
排序筛选模块320,用于对每个网格内的点云数据的高程进行排序并根据预设数量阈值进行筛选,以获取筛选后的高程对应的网格点云数据;
栅格化模块330,用于将网格点云数据以预设数量维度栅格化,以获取预设数量维度的栅格数据;
栅格处理模块340,用于对预设数量维度的栅格数据中的第一维度的栅格数据进行处理,以获得参考高程;
插值计算模块350,用于基于参考高程对预设数量维度的栅格数据进行反距离权重插值,以获得目标图像的三维图像插值数据。
具体的,基于插值算法的图像处理装置300还包括:
第一判断单元,用于判断预设数量维度的栅格数据内的维度数量是否小于预设数量。
具体的,基于插值算法的图像处理装置300还包括:
替换单元,用于当第一判断单元判断为是时,用无效值代替。
具体的,基于插值算法的图像处理装置300还包括:
滤波单元,用于对预设数量维度的栅格数据中第一维度的栅格数据进行窗口半径为R的中值滤波处理,得到滤波后的栅格数据,中值滤波处理忽略无效值的计算。
具体的,基于插值算法的图像处理装置300还包括:
点集单元,用于从滤波后的栅格数据中得到栅格内每个点云数据的高程值,滤波后的栅格数据中的每个点云数据的高程值与滤波后的栅格数据对应的二维网格坐标结合组成了第一点集,搜索第一点集得到第二点集。
具体的,基于插值算法的图像处理装置300还包括:
检测单元,用于对每个预设数量维度的栅格数据进行插值后,对每个预设数量维度的栅格进行水平方向的扫描线检测,若检测到无效值,则对无效值进行扫描线方向最低点高程的插值。
具体的,插值计算模块350还包括:插值单元,用于根据得到的第二点集,按照反距离权重插值算法对每个预设数量维度的栅格数据进行插值,得到每个预设数量维度的栅格数据对应的高程值。
具体的,插值单元还用于执行以下计算方法:
其中Wi为权值,zi为插值点到点集中对应的点云数据的三维距离,Z为点集中的栅格数据的高程值,为点集中每个点云数据的高程值。
本实施例的有益效果是通过提供一种基于插值算法的图像处理装置,对点云数据网格化和栅格化,选取每个栅格的部分点云数据,压缩了数据量,解决了人工编辑时难以处理海量数据的技术问题,达到了提高工作效率、节约人力成本的技术效果。同时灵活运用点云数据周围的三维距离信息,并据此计算权重,使得在平面上离对应点云数据很近但高程很远的点具有较小的权值,解决了处理三维图像时边界容易出现不齐整即“尖刺”的技术问题,达到更好更真实的反应物体表面的真实特征的技术效果。
实施例四
图4为本发明实施例五提供的一种服务器的结构示意图,如图4所示,该服务器包括处理器410、存储器420、输入装置430和输出装置440;服务器中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;服务器中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器410作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于插值算法的图像处理方法对应的程序指令/模块(例如,基于插值算法的图像处理装置中的网格化模块、排序筛选模块、栅格化模块、栅格处理模块和插值计算模块)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的基于插值算法的图像处理方法。
也即:
根据预设分辨率将目标图像的点云数据网格化,以获取每个网格内点云数据的高程;
对每个网格内的点云数据的高程进行排序并根据预设数量阈值进行筛选,以获取筛选后的高程对应的网格点云数据;
将网格点云数据以预设数量维度栅格化,以获取预设数量维度的栅格数据;
对预设数量维度的栅格数据中的第一维度的栅格数据进行处理,以获得参考高程;
基于参考高程对预设数量维度的栅格数据进行反距离权重插值,以获得目标图像的三维图像插值数据。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与服务器的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种基于插值算法的图像处理方法,该方法包括:
根据预设分辨率将目标图像的点云数据网格化,以获取每个网格内点云数据的高程;
对每个网格内的点云数据的高程进行排序并根据预设数量阈值进行筛选,以获取筛选后的高程对应的网格点云数据;
将网格点云数据以预设数量维度栅格化,以获取预设数量维度的栅格数据;
对预设数量维度的栅格数据中的第一维度的栅格数据进行处理,以获得参考高程;
基于参考高程对预设数量维度的栅格数据进行反距离权重插值,以获得目标图像的三维图像插值数据。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于插值算法的图像处理方法中的相关操作.
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述基于插值算法的图像处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。