热力图的绘制方法和装置与流程

文档序号:16629196发布日期:2019-01-16 06:24阅读:693来源:国知局
热力图的绘制方法和装置与流程
本申请涉及图像处理
技术领域
,尤其涉及一种热力图的绘制方法和装置。
背景技术
:随着移动互联网的不断发展,gps定位技术的普及,基于位置的应用变得越来越热门。热力图可以反映某类数据在地理区域内的聚集程度,例如:人口热力图可以反映某一区域内的人口密度。相关技术中,通常基于核密度算法绘制热力图,但采用核密度算法需要对数量庞大的离散数据进行多次遍历,计算复杂,给设备带来较大的处理压力,且影响热力图的绘制速率。技术实现要素:有鉴于此,本申请提供一种热力图的绘制方法和装置,以解决相关技术中计算复杂的问题。具体地,本申请是通过如下技术方案实现的:第一方面,本申请提供一种热力图的绘制方法,所述方法包括:获取目标绘制区域内各子区域的热力数据;根据所述热力数据确定所述子区域的热力级别;将热力级别相同的相邻子区域进行合并;根据合并结果为所述目标绘制区域绘制热力图。第二方面,本申请提供一种热力图的绘制装置,所述装置包括:获取单元,用于获取目标绘制区域内各子区域的热力数据;分级单元,用于根据所述热力数据确定所述子区域的热力级别;合并单元,用于将热力级别相同的相邻子区域进行合并;绘制单元,用于根据合并结果为所述目标绘制区域绘制热力图。分析上述技术方案可知,本申请可以根据目标绘制区域内各子区域的热力级别,对热力级别相同的相邻子区域进行合并,并根据合并结果为所述目标绘制区域绘制热力图。在热力图绘制的整个过程中,无需对获取到的热力数据进行多次遍历和计算,大大减少了计算量,减小设备的处理压力,提升热力图的回执速率。附图说明图1是本申请一示例性实施例示出的一种热力图的绘制方法的流程图;图2是本申请一示例性实施例示出的另一种热力图的绘制方法的流程图;图3是本申请一示例性实施例示出的一种子区域的示意图;图4是本申请一示例性实施例示出的一种目标绘制区域的示意图;图5是本申请一示例性实施例示出的另一种热力图的绘制方法的流程图;图6是本申请一示例性实施例示出的一种热力图的示意图;图7是本申请一示例性实施例示出的一种热力图的绘制装置所在设备的硬件结构图;图8是本申请一示例性实施例示出的一种热力图的绘制装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。请参考图1,为本申请一示例性实施例示出的一种热力图的绘制方法的流程图,该热力图的绘制方法可以应用在用于绘制热力图的电子设备中,比如:终端、服务器等。所述热力图的绘制方法可以包括如下步骤:步骤101:获取目标绘制区域内各子区域的热力数据。在本实施例中,目标绘制区域为热力图的绘制区域,通常可以由用户预先设置,例如:用户指定绘制北京市的人口热力图,那么目标绘制区域就是北京市。在本实施例中,所述子区域可以基于预设规则预先进行划分,比如:可以根据经纬度预先将目标绘制区域或者包括有目标绘制区域的区域划分为多个子区域。以中国地区为例,可以预先将中国地区划分为多个子区域,在绘制目标绘制区域的热力图时,可以基于该目标绘制区域内已经划分的子区域进行后续操作。当然,也可以在确定目标绘制区域后,将目标绘制区域划分为多个子区域,本申请对此不作特殊限制。在本实施例中,所述子区域可以为地理网格。仍以中国地区为例,若两个地点的经度相同,纬度相差0.01,则这两个地点的实际距离近似为700米;若两个地点的经度相差0.01,纬度相同,则这两个地点的实际距离近似为1000米。基于此,可以将经纬坐标的整数部分和前两位小数相同的所有地点划分到同一个地理网格,例如:经纬坐标(116.33,39.99)(前为经度后为纬度)在地理上近似为一个宽700米长1000米的矩形地理网格,经度的整数部分和前两位小数为116.33,且纬度的整数部分和前两位小数为33.99的所有地点均属于该地理网格,如经纬坐标为(116.337579,39.991262)的地点等。在实际应用中,热力图通常具有时效性,可用于表示一段时间内某个指定维度的热力情况,本实施例基于已划分好的子区域,可以获取目标绘制区域内各子区域在预设时段内的热力数据。其中,所述预设时段可以由用户结合应用场景来指定,比如:针对人口热力图,可以将该预设时段指定为近一年;针对交通拥堵状况的热力图,可以将该预设时段指定为5分钟等。在本实施例中,以绘制约车业务密集程度的热力图为例,所述热力数据可以是预设时段内的约车订单数量,所述预设时段可以为近30分钟、近60分钟等。举例来说,假设用户在19:00绘制北京市约车业务密集程度的热力图,则可以获取北京市各个子区域内18:30至19:00的约车订单数量,假设18:30至19:00内经纬坐标属于(116.33,39.99)这一子区域内的约车订单有100个,则该时段内该子区域的热力数据为100。步骤102:根据所述热力数据确定所述子区域的热力级别。基于前述步骤101,在获取到目标绘制区域内各子区域的热力数据后,可以根据热力数据确定子区域的热力级别。在一个例子中,可以对所有子区域的热力数据进行汇总,并确定所有热力数据中的最小值和最大值。然后可以将该最小值至该最大值组成的数值区间划分为多个数值子区间,每一个数值子区间即对应一个热力级别。举例来说,假设获取到的所有子区域的热力数据中,最小值为100,最大值为400,则可以将热力数据[100,400]划分为[100,200)、[200,300)、[300,400]三个区间。其中,[100,200)对应热力级别1,[200,300)对应热力级别2,[300,400]对应热力级别3。如果获取到某一子区域的热力数据为133,则可以确定该子区域的热力级别为热力级别1。在另一个例子中,在进行热力级别的确定时,也可以将所有子区域按照热力数据从小到大的顺序进行排列,再将排列后的所有子区域划分为多个子区域数量相同的热力级别。举例来说,假设有6个子区域,获取到的各子区域的热力数据如下表1所示:子区域子区域1子区域2子区域3子区域4子区域5子区域6热力数据100145132356213323表1按照热力数据从小到大的顺序排列这六个子区域,可以得到表2所示的排列结果:子区域子区域1子区域3子区域2子区域5子区域6子区域4热力数据100132145213323356表2假设,预先设置每个热力级别包括2个子区域,则可以将子区域1和子区域3划分为热力级别1,将子区域2和子区域5划分为热力级别2,将子区域6和子区域4划分为热力级别3。步骤103:将热力级别相同的相邻子区域进行合并。步骤104:根据合并结果为所述目标绘制区域绘制热力图。基于前述步骤102,在确定了各子区域的热力级别后,可以针对每个子区域,将该子区域和与其热力级别相同的相邻子区域进行合并,并根据合并结果为所述目标绘制区域绘制热力图。举例来说,假设子区域1的经纬坐标为(116.33,39.99),子区域2的经纬坐标为(116.34,39.99),则这两个子区域在地理上是相邻的。假设子区域1和子区域2的热力级别均为热力级别2,则可以将子区域1和子区域2进行合并,后续在绘制热力图时,可以基于子区域1和子区域2合并后的区域进行绘制。由以上描述可以看出,本申请可以根据目标绘制区域内各子区域的热力级别,对热力级别相同的相邻子区域进行合并,并根据合并结果为所述目标绘制区域绘制热力图。在热力图绘制的整个过程中,无需对获取到的热力数据进行多次遍历和计算,大大减少了计算量,减小设备的处理压力,提升热力图的回执速率。基于图1所示的实施例,请参考图2,可以采用如下步骤将热力级别相同的相邻子区域进行合并:步骤201:根据子区域的位置信息确定所述子区域的位置标识,其中,相邻子区域的位置标识之间满足特定的标识关系。步骤202:针对遍历的每个子区域,根据所述特定的标识关系确定所述子区域的相邻子区域。步骤203:若所述子区域与其相邻子区域的热力级别相同,则合并所述子区域及其相邻子区域。在本实施例中,基于已划分的子区域,可以根据各子区域的位置信息确定该子区域的位置标识。基于图1所示的实施例的子区域划分规则:将经纬坐标的整数部分和前两位小数是相同的地点划分为一个子区域,可以根据每个子区域的经纬度坐标确定该子区域对应的位置标识。请参考图3,假设某一子区域中,所有地点的经度的整数部分和前两位小数为116.33,且纬度的整数部分和前两位小数为33.99,则可以确定该子区域的左上角顶点1的经纬坐标为(116.33,33.99),右上角顶点2的经纬坐标为(116.34,33.99),左下角顶点3的经纬坐标为(116.33,34.00),右下角顶点4的经纬坐标为(116.34,34.00)。基于此,可以根据各子区域的指定顶点的经纬坐标确定该子区域的位置标识。其中,用于确定位置标识的顶点可以由用户预先设置,例如:用户可以将各子区域的左上角顶点设置为用于确定该子区域的位置标识的顶点,即可以根据该子区域的左上角顶点的经纬坐标确定该子区域的位置标识。以指定顶点为左上角顶点为例,可以先将左上角顶点的经纬坐标乘以100以转化为整数坐标,例如:可以将经纬坐标(116.33,33.99)转化为整数坐标(11633,3399)。由于经度或纬度的最大值均为180,而十进制数值18000可以转化为15位的二进制数值100011001010000,结合经度和纬度可以采用30位的二进制数值作为某一子区域的位置标识。在作为位置标识的30位的二进制数值中,前15位为左上角顶点的经度转化的整数的二进制数值,后15位为左上角顶点的纬度转化的整数的二进制数值,仍以前述转换后的整数坐标(11633,3399)为例,由于十进制数值11633可以转化为14位的二进制数值10110101110001,十进制数值3399可以转化为12位的二进制数值110101000111,则可以在不足15位的二进制数值前补0以扩充至15位,并确定该子区域的位置标识为010110101110001000110101000111,如下表3所示:经度纬度010110101110001000110101000111表3基于上述位置标识确定方法,相邻子区域的位置标识之间满足特定的标识关系。请参考图4,子区域1分别与子区域2、子区域3、子区域4、子区域5相邻。假设子区域1的左上角顶点a的经纬坐标为(116.33,33.99),子区域2的左上角顶点e的经纬坐标为(116.33,33.98),子区域3的左上角顶点c的经纬坐标为(116.33,34.00),子区域4的左上角顶点f的经纬坐标为(116.32,33.99),子区域5的左上角顶点b的经纬坐标为(116.34,33.99),则子区域1至子区域5的位置标识如下表4所示:子区域位置标识(二进制数值)位置标识(十进制数值)子区域1010110101110001000110101000111381193543子区域2010110101110001000110101000110381193542子区域3010110101110001000110101001000381193544子区域4010110101110000000110101000111381160775子区域5010110101110010000110101000111381226311表4由表4可见,子区域1比与其上边相邻的子区域2的位置标识大二进制数值1(十进制数值1),子区域1比与其下边相邻的子区域3的位置标识小二进制数值1(十进制数值1),子区域1比与其左边相邻的子区域4的位置标识大二进制数值1000000000000000(十进制数值32768),子区域1比与其右边相邻的子区域5的位置标识小二进制数值1000000000000000(十进制数值32768)。当然,采用不同的位置标识确定方法,相邻子区域的位置标识之间的标识关系可能与上述举例不同,但相邻子区域的位置标识之间仍会满足某种特定的标识关系。在本实施例中,在确定出每个子区域的位置标识后,基于上述位置标识之间特定的标识关系,可以遍历每个子区域,针对遍历的每个子区域可以根据该子区域的位置标识确定其相邻子区域的位置标识,进而确定其相邻子区域。在确定该子区域的相邻子区域后,可以检测该子区域与其相邻子区域的热力级别是否相同。如果该子区域与其相邻子区域的热力级别相同,则可以将该子区域与其相邻子区域进行合并;否则,不将该子区域与其相邻子区域进行合并。请继续参考图4,假设子区域1的热力级别为热力级别1,子区域2的热力级别为热力级别3,子区域3的热力级别为热力级别1,子区域4的热力级别为热力级别2,子区域5的热力级别为热力级别1,则可以将子区域1、子区域3、子区域5合并为子区域135,即合并后的子区域包括子区域135、子区域2、子区域4。为了避免重复计算和检测,针对每个子区域,可以仅检测该子区域与其下边相邻的子区域、其右边相邻的子区域的热力级别是否相同;或者,也可以仅检测该子区域与其上边相邻、左边相邻的子区域的热力级别是否相同。基于图1所示的实施例,请参考图5,也可以采用如下步骤将热力级别相同的相邻子区域进行合并:步骤501:根据子区域的位置信息确定所述子区域每条边的边向量,其中,相邻子区域公共边的边向量之和为零。步骤502:针对遍历的每个子区域,根据所述子区域的边向量确定所述子区域的相邻子区域。步骤503:若所述子区域与其相邻子区域的热力级别相同,则合并所述子区域及其相邻子区域。在本实施例中,可以根据各子区域的位置信息,确定该子区域每条边的边向量。请继续参考图3,假设各子区域的四条边的边向量的方向为顺时针方向,则在图3所示的子区域中,其四条边的边向量如下表5所示:边向量方向起点/起点坐标终点/终点坐标上侧边1向右顶点1/(116.33,33.99)顶点2/(116.34,33.99)右侧边2向下顶点2/(116.34,33.99)顶点4/(116.34,34.00)下侧边3向左顶点4/(116.34,34.00)顶点3/(116.33,34.00)左侧边4向上顶点3/(116.33,34.00)顶点1/(116.33,33.99)表5基于上述边向量确定方法,相邻子区域公共边的边向量之和为零。请继续参考图4,子区域1的右侧边与子区域5的左侧边是公共边,子区域1的右侧边的边向量的方向向下,起点为顶点b,终点为顶点d;子区域5的左侧边的边向量方向向上,起点为顶点d,终点为顶点b,即这两个边向量的大小相等,方向相反,其和为零。基于相邻子区域公共边的边向量之间和为零的规则,可以遍历每个子区域,并根据该子区域的边向量确定其相邻子区域。在确定该子区域的相邻子区域后,可以检测该子区域与其相邻子区域的热力级别是否相同。如果该子区域与其相邻子区域的热力级别相同,则可以将该子区域与其相邻子区域进行合并;否则,不将该子区域与其相邻子区域进行合并。为了避免重复计算和检测,针对每个子区域,可以仅查找与其下侧边的边向量的和为零的边向量,以及与其右侧边的边向量的和为零的边向量,进而仅检测该子区域与其下边相邻的子区域、其右边相邻的子区域的热力级别是否相同;或者,也可以仅查找与其上侧边的边向量的和为零的边向量,以及与其左侧边的边向量的和为零的边向量,进而仅检测该子区域与其上边相邻、左边相邻的子区域的热力级别是否相同。在图2和图5所示的实施例中,可以预先为各子区域的每条边设置绘制标识,以表示是否需要绘制这条边,所有边的初始绘制标识为绘制。例如:可以将二进制数值0和1作为绘制标识,其中,绘制标识1表示绘制,绘制标识0表示不绘制。在本实施例中,若确定某个子区域与其相邻子区域的热力级别相同,则可以将该子区域及该相邻子区域的公共边的绘制标识更新为不绘制。请继续参考图4,可以确定子区域1与子区域5的热力级别相同,均为热力级别1,则可以将子区域1及子区域5的公共边bd/db的绘制标识更新为不绘制。具体地,可以将为子区域1的右侧边bd设置的绘制标识更新为不绘制,并同时将为子区域5的左侧边db设置的绘制标识也更新为不绘制。在对目标绘制区域内的所有子区域进行遍历,完成所有子区域的每条边的绘制标识的更新后,可以根据该目标绘制区域内各子区域每条边的绘制标识及该子区域的热力级别,为所述目标绘制区域绘制热力图。请继续参考图4,在对热力级别均为热力级别1的子区域1、子区域3和子区域5进行合并时,可以将子区域1和子区域3的公共边cd/dc的绘制标识更新为不绘制,并将子区域1和子区域5的公共边bd/db的绘制标识也更新为不绘制。假设规定在绘制热力图时,热力级别3的子区域比热力级别2的子区域的显示颜色深,热力级别2的子区域比热力级别1的子区域的显示颜色深,则可以绘制出如图6所示的热力图。在另一个例子中,也可以将各子区域的需要绘制的边界的两个顶点坐标,以及该子区域的热力级别发送至前端设备,由前端设备根据这些顶点左边和对应的热力级别绘制热力图。在本实施例中,以绘制约车业务密集程度的热力图为例,一般而言,某一区域的热力颜色较深时,通常表示该区域在预设时段内约车业务的密集程度较高,说明该区域在该时段内约车业务的需求较多。在这种情况下,可以根据该热力图进行车辆调度,例如:通知距离该区域较近的车辆提前前往该区域,以减少约车后的等待时间;或者,通知司机该区域的约车频繁程度较高,由司机自行决定是否要前往该区域。车辆调度可以由设备在解析上述热力图后自动执行,也可以由人工进行调控。与前述热力图的绘制方法的实施例相对应,本申请还提供了热力图的绘制装置的实施例。本申请热力图的绘制装置的实施例可以应用在终端、服务器等电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本申请热力图的绘制装置所在电子设备的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该热力图的绘制的实际功能,还可以包括其他硬件,对此不再赘述。请参考图8,为本申请一示例性实施例示出的一种热力图的绘制装置,所述装置800可以应用于图7所示的电子设备中,包括:获取单元801,用于获取目标绘制区域内各子区域的热力数据;分级单元802,用于根据所述热力数据确定所述子区域的热力级别;合并单元803,用于将热力级别相同的相邻子区域进行合并;绘制单元804,用于根据合并结果为所述目标绘制区域绘制热力图。在一个可选的实施例中,所述合并单元803可以包括:标识确定子单元8031,用于根据子区域的位置信息确定所述子区域的位置标识,其中,相邻子区域的位置标识之间满足特定的标识关系;第一邻域确定子单元8032,用于针对遍历的每个子区域,根据所述特定的标识关系确定所述子区域的相邻子区域;第一合并子单元8033,用于在所述子区域与其相邻子区域的热力级别相同时,合并所述子区域及其相邻子区域。在另一个可选的实施例中,所述标识确定子单元8031可以用于基于所述子区域的指定顶点的经纬坐标确定所述子区域的位置标识。在另一个可选的实施例中,所述合并单元803可以包括:向量确定子单元8034,用于根据子区域的位置信息确定所述子区域每条边的边向量,其中,相邻子区域公共边的边向量之和为零;第二邻域确定子单元8035,用于针对遍历的每个子区域,根据所述子区域的边向量确定所述子区域的相邻子区域;第二合并子单元8036,用于在所述子区域与其相邻子区域的热力级别相同时,合并所述子区域及其相邻子区域。在另一个可选的实施例中,所述第一合并子单元8033或所述第二合并子单元8036合并所述子区域及其相邻子区域,可以包括:将所述子区域及其相邻子区域的公共边的绘制标识更新为不绘制,其中,所述子区域的每条边的初始绘制标识为绘制。所述绘制单元804可以包括:绘制子单元8041,用于根据所述目标绘制区域内各子区域每条边的绘制标识及所述子区域的热力级别,为所述目标绘制区域绘制热力图。在另一个可选的实施例中,其特征在于,所述热力数据是预设时段内的约车订单数量;所述热力图用于表示所述目标绘制区域在所述预设时段内约车业务的密集程度;所述装置800还可以包括:调度单元805,用于根据所述热力图进行车辆调度。在另一个可选的实施例中,所述子区域可以是基于预设规则划分的地理网格。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1