一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种区域标示方法、装置、设备及存储介质与流程

2021-10-09 13:25:00 来源:中国专利 TAG:标示 图像处理 装置 区域 方法


1.本技术涉及图像处理技术领域,尤其涉及一种区域标示方法、装置、设备及存储介质。


背景技术:

2.在一些虚拟场景中,基于应用需求需要展示目标所在的区域。例如在游戏的虚拟场景中,当玩家操控的角色移动到某一位置时,为了提升玩家在场景中的体验或保障某些玩法的可实现性,需要在游戏界面中展示出角色在虚拟场景中所处区域的信息,例如区域名称。作为示例,组队模式下,在团队玩家的头像图标侧方展示出玩家所处区域的名称,例如展示玩家a处于主城,玩家b处于野外,玩家c处于村庄。在展示之前,需要识别目标所在区域,识别目标所在区域的一个前提是对场景中的区域进行准确的标示,从而将不同的区域区分开。
3.目前一种区域标示方法基于多边形网格实现。该方案人为地划分出各区域,为各区域分别生成网格,在网格上设置碰撞盒。碰撞盒带有区域标记,以碰撞盒的区域标记来标示区域。当需要识别目标所在区域时,通过物理引擎沿目标所在位置向下发射射线,根据射线检测到的碰撞盒所带有的区域标记来确定目标所在区域。这种区域标示方法在后续识别目标所在区域时,需要通过物理引擎进行大量且复杂的运算,对运算设备物理性能的开销较大。


技术实现要素:

4.本技术实施例提供了一种区域标示方法、装置、设备及存储介质,以降低识别目标所在区域的运算量和运算复杂度,减少运算设备物理性能的开销。
5.有鉴于此,本技术第一方面提供了一种区域标示方法,方法包括:
6.获取场景地图中区域的第一轮廓线;
7.将第一轮廓线映射到场景地图对应的位图坐标系中,得到第二轮廓线;
8.基于第二轮廓线在位图坐标系中进行区域一对一着色,获得场景地图对应的位图。
9.本技术第二方面提供一种区域标示装置,装置包括:
10.第一轮廓线获取单元,用于获取场景地图中区域的第一轮廓线;
11.第二轮廓线获取单元,用于将第一轮廓线映射到场景地图对应的位图坐标系中,得到第二轮廓线;
12.着色单元,用于基于第二轮廓线在位图坐标系中进行区域一对一着色,获得场景地图对应的位图。
13.本技术第三方面提供一种区域标示设备,设备包括处理器以及存储器:
14.存储器用于存储程序代码,并将程序代码传输给处理器;
15.处理器用于根据程序代码中的指令,执行如上述第一方面的区域标示方法的步
骤。
16.本技术第四方面提供一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行上述第一方面的区域标示方法的步骤。
17.从以上技术方案可以看出,本技术实施例具有以下优点:
18.本技术实施例中,提供了一种区域标示方法。该方法首先获取场景地图中区域的第一轮廓线;其后将第一轮廓线映射到场景地图对应的位图坐标系中,得到第二轮廓线;接着基于第二轮廓线在位图坐标系中进行区域一对一着色,获得场景地图对应的位图。该方法在位图中以颜色一对一地标示区域,可以降低识别目标所在区域的运算量和运算复杂度,减少运算设备物理性能的开销。例如,只需要确定目标在场景地图对应的位图中相应像素的颜色,便可以基于颜色与区域的对应关系准确识别目标所在的区域。
附图说明
19.图1为本技术实施例提供的一种区域标示方法的流程图;
20.图2为本技术实施例提供的一种场景地图示意图;
21.图3a为本技术实施例提供的为场景地图中区域绘制的第一轮廓线示意图;
22.图3b为脱离场景地图的第一轮廓线示意图;
23.图4为本技术实施例提供的基于图3b所示第一轮廓线映射获得的第二轮廓线示意图;
24.图5为本技术实施例提供的一种区域着色后的位图示意图;
25.图6a为本技术实施例提供的另一种区域标示方法的流程图;
26.图6b为本技术实施例提供的又一种区域标示方法的流程图;
27.图7为本技术实施例提供的再一种区域标示方法的流程图;
28.图8a为本技术实施例提供的一种区域标示装置的结构示意图;
29.图8b为本技术实施例提供的另一种区域标示装置的结构示意图;
30.图9为本技术实施例提供的一种用于区域标示的服务器的结构示意图;
31.图10为本技术实施例提供的一种用于区域标示的终端设备的结构示意图。
具体实施方式
32.目前对虚拟场景中的区域进行标示以供识别,通常需要为划分区域后建立区域对应的网格。在网格中设置碰撞盒,通过碰撞盒上带有的区域标记来标示区域。当识别目标所在的区域时,往往需要通过物理引擎发出射线,以射线来检测碰撞盒,进而识别区域标记。此方案在识别区域时,运算量大且运算复杂,对运算设备的物理性能开销较大。因此,可能会影响虚拟场景的运行和展示,例如场景画面卡顿、场景中部分数据显示不正常等。
33.为了解决以上问题,本技术中提供了一种标示区域的新方法。本技术具体提供了区域标示方法、装置、设备及存储介质。在场景地图中提取区域轮廓,将区域轮廓转换到位图坐标系上,基于位图坐标系上的轮廓进行区域着色,使区域与颜色具备一一对应的关系。本技术通过颜色来唯一地标示场景中的区域,方便后续识别目标所在的区域,使对区域的识别更加方便、简单易实现,从而节省了对设备物理性能的开销。
34.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的
附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
35.为便于理解本技术技术方案,请参阅图1,图1为本技术实施例提供的一种区域标示方法的流程图。如图1所示的区域标示方法包括:
36.s101:获取场景地图中区域的第一轮廓线。
37.为便于理解本方案,下面以游戏对场景地图展开介绍。
38.游戏中为了展示多样化的玩法,通常设置有多个场景地图,部分场景地图需要随着玩家的角色等级提升而逐步开放展示。例如,场景地图1~3在玩家角色建立后即可开放展示,当玩家角色升级到20级后可开放展示场景地图4~5,当玩家角色升级到30级后可开放展示场景地图6~7。一般而言,玩家在体验游戏时,游戏界面中同一时间仅能够展示一张场景地图。场景地图可以是三维的,也可以是二维的,场景地图的维度具体视游戏而定。
39.本步骤中,需要获取场景地图中区域的轮廓线,为便于区分,此处将本步骤依据场景地图而获取的区域轮廓线定义为第一轮廓线。为便于处理,对于三维的场景地图,可以将其转换为二维的场景地图,再获取第一轮廓线。例如,从三维的场景地图的俯视图中获取第一轮廓线。
40.获取第一轮廓线的方式包括多种。例如,可以通过一些规则的图形来绘制生成区域的第一轮廓线,这些规则的图形可以包括但不限于以下至少一种:圆形、矩形或三角形。对于场景地图中可能存在的不规则的区域,以规则图形来绘制第一轮廓线可能存在绘制准确性不足的问题。专业的游戏美术设计师也可以完成第一轮廓线的绘制工作,进而获得高准确度的区域第一轮廓线。但是这种方式对于绘制人员的专业性依赖度较高,耗费较多的时间和精力。
41.为了提升第一轮廓线的绘制准确性,降低对绘制人员的专业性依赖度,节省绘制的时间和精力,本技术技术方案中提供了一种第一轮廓线的绘制方案。具体地,可以通过线段绘制控件沿场景地图中区域轮廓进行由点到点的绘制,从而形成多个线段围成的第一轮廓线。此处,线段绘制控件可以绘制出直线段和/或曲线段。线段绘制控件作为绘制第一轮廓线的工具,通过提取线段绘制控件在场景地图中产生的数据,即可以获取到第一轮廓线。通过线段绘制控件获取第一轮廓线,有效降低了对绘制人员的专业性依赖,美术功底不高的人员也可以借助线段绘制控件绘制出场景地图中区域的第一轮廓线。有效节省了绘制的时间和精力,提升绘制效率。此外,线段绘制控件的应用范围更广,可以实现对不规则形状的区域的轮廓绘制。相比于规则的图形绘制方案,也提升了绘制出的第一轮廓线的准确性。
42.图2为本技术实施例提供的一种场景地图示意图。通过执行s101获得图3a所示的第一轮廓线。图3b脱离原场景地图清晰展示图2所示场景地图中区域的第一轮廓线。
43.s102:将第一轮廓线映射到场景地图对应的位图坐标系中,得到第二轮廓线。
44.本技术技术方案中,为了实现对场景地图中区域的标示,提出要要生成场景地图对应的位图,在位图中用不同的颜色标示场景地图中不同的区域。这样的位图以简单、直观的方式展示不同的区域。s101形成的第一轮廓线处于场景地图坐标系中,为了形成预期的能够以不同颜色标示不同区域的位图,需要将第一轮廓线从场景地图坐标系中转换到位图坐标系中。为了便于区分,此处将位图坐标系中转换得到的区域轮廓线定义为第二轮廓线。
45.每一个区域的第一轮廓线的组成数据包括:场景地图坐标系中第一轮廓线上若干顶点的坐标和相邻顶点之间衔接的线段的曲率或者斜率等参数。为了便于区分,此处将第一轮廓线上顶点在场景地图坐标系的坐标定义为第一坐标。
46.为实现第一轮廓线到第二轮廓线的坐标转换,首先,可以根据场景地图的尺寸和预设划分精度建立场景地图对应的位图坐标系。例如,根据场景地图的横向尺寸和预设划分精度获得位图坐标系中的横向像素数;以及,根据场景地图的纵向尺寸和预设划分精度获得位图坐标系中的纵向像素数;以场景地图的一个顶点(例如场景地图左上角顶点)为原点,横向像素数和纵向像素数建立位图坐标系。作为示例,场景地图的横向尺寸为scenesizex(单位:cm),场景地图的纵向尺寸为scenesizey(单位:cm),预设划分精度为p(单位:cm/单个像素)。p越大,表示位图坐标系中单个像素对应于场景地图中越大的范围,位图坐标系中的像素数量越少。将scenesizex与p相除即可得到位图坐标系中场景地图对应的横向像素数sizex(单位:个),将scenesizey与p相除即可得到位图坐标系中场景地图对应的纵向像素数sizey(单位:个)。
47.通过以上操作,建立起场景地图对应的位图坐标系。接着,提取第一轮廓线中的顶点在场景地图坐标系中的第一坐标。在建立位图坐标系时,已然基于场景地图的尺寸和预设划分精度构建出场景地图坐标系到位图坐标系的转换关系。基于此转换关系,即可将第一坐标从场景地图坐标系映射到位图坐标系,得到顶点在位图坐标系的坐标。为便于区分,将第一轮廓线上的顶点映射到位图坐标系的坐标定义为顶点的第二坐标。
48.以上操作确定出顶点在位图坐标系中的第二坐标。为了在位图坐标系中形成与第一轮廓线匹配的第二轮廓线,本技术中通过插值法确定出位图坐标系中相邻顶点之间线段上的各像素坐标。具体地,可以基于第一轮廓线中相邻顶点的第二坐标,通过数值微分算法(digital differential analyzer,dda)获得位图坐标系中以相邻顶点为两端点的线段中除该相邻两个顶点之外其余像素的坐标。dda是一种计算机图形学中可以快速的在起点和终点之间的时间间隔内对变量进行插值的算法。dda可以用于直线、三角形和多边形的栅格化。通过dda算法插值获得点坐标属于比较成熟的技术,此处不再赘述。
49.将同一线段上两端点和其余像素的坐标构建该线段的坐标集合(当然,也可以是坐标序列形式)。由于第一轮廓线包含多个线段,相应的,第二轮廓线也该包含多个线段,本技术中,可以根据对应于第一轮廓线中各线段的坐标集合得到第二轮廓线。例如,将对应于同一区域的第一轮廓线中各线段的坐标集合汇总为一个总的集合,将集合中重复的顶点坐标去除(当然也可以不去除),最终根据总的集合中的坐标形成位图坐标系中的第二轮廓线。
50.第二轮廓线的形成是为了便于后续基于第二轮廓线划分出的区域进行一对一着色。图4为本技术实施例提供的基于图3b所示第一轮廓线映射获得的第二轮廓线示意图。如图4和图3b所示,第二轮廓线和第一轮廓线的形状一致或者接近一致。需要说明的是,预设划分精度p越小,第二轮廓线与第一轮廓线的形状越接近,这是因为此时位图坐标系的像素数越多,在相邻顶点之间的插值越精细。
51.s103:基于第二轮廓线在位图坐标系中进行区域一对一着色,获得场景地图对应的位图。
52.可以理解的是,在位图坐标系中,通过s102获得的第二轮廓线划分出多个区域。这
些区域通过不同的颜色进行着色。例如,共划分出4各区域,分别着色为红色、灰色、绿色和蓝色。通过着色形成的位图中,不同的区域具有唯一对应的颜色,从在位图中以颜色对区域进行了标示。
53.在本步骤的一种示例实现方式中,可以首先确定场景地图在位图坐标系中对应的图像边界线;在位图坐标系中,确定出由图像边界线和第二轮廓线划分出的多个区域;接着对多个区域中不同的区域分别填充不同的颜色。在此次着色后,第二轮廓线的颜色不属于任一区域,其作为不同区域间的边界线有可能干扰目标所在区域的识别。因此,可以从位图坐标系中识别出第二轮廓线,将其去除,生成仅有区域颜色值的位图。另外,也可以将第二轮廓线在位图坐标系中占据的像素填充为以该第二轮廓线划分的区域中任一区域的颜色。举例而言,假设某一条第二轮廓线的内部区域填充为了第一颜色,外部区域填充为了第二颜色,则可以将第二轮廓线填充为第一颜色或者第二颜色。优选地,将其填充为内部区域的颜色。图5为本技术实施例提供的一种区域着色后的位图示意图。
54.实际应用中,可以首先随机或者通过预设的方式形成分区数据表,再依据分区数据表来配置区域着色。分区数据表中包含区域的颜色信息与区域描述信息的第一映射关系。根据着色方案将具有某描述信息的区域的颜色填充为作色方案中该区域对应的颜色。此外,还可以在随机或者预设方式填充完区域的颜色后,基于颜色信息和颜色所填充的区域的描述信息的第一映射关系来生成分区数据表。此处,区域的描述信息可以包括但不限于以下至少一种:区域的等级、类型、名称等。其中,区域的名称包括以下至少一种:中文全称、英文全称、中文简称或英文简称等。作为示例,区域的类型可以分为:危险型和安全型。区域的类型可以分为:一级、二级和三级。其中一级对应的危险性最高,三级对应的危险性最低。当然,以上介绍仅为示例,实际应用中,区域的描述信息可以基于游戏设置具备多种可选的内容和含义,此处不做限定。
55.以上实施例中,提供了一种区域标示方法。该方法首先获取场景地图中区域的第一轮廓线;其后将第一轮廓线映射到场景地图对应的位图坐标系中,得到第二轮廓线;接着基于第二轮廓线在位图坐标系中进行区域一对一着色,获得场景地图对应的位图。该方法在位图中以颜色一对一地标示区域,可以降低识别目标所在区域的运算量和运算复杂度,减少运算设备物理性能的开销。例如,只需要确定目标在场景地图对应的位图中相应像素的颜色,便可以基于颜色与区域的对应关系准确识别目标所在的区域。
56.前述实施例提供的区域标示方法获得了位图,在位图中通过颜色对不同的区域进行标示。下面结合实施例介绍位图数据在确定目标所处区域方面的使用方式。
57.图6a为本技术实施例提供的另一种区域标示方法。如图6a,该区域标示方法包括:
58.s601:获取场景地图中区域的第一轮廓线。
59.s602:将第一轮廓线映射到场景地图对应的位图坐标系中,得到第二轮廓线。
60.s603:基于第二轮廓线在位图坐标系中进行区域一对一着色,获得场景地图对应的位图。
61.以上s601

s603与前述实施例中s101

s103的实现方式基本相同,因此对s601

s603不再赘述,请具体参照前述实施例的介绍和说明。
62.为了便于后续结合位图来识别场景地图中目标对象所在的具体区域,本技术实施例中还需要执行以下操作s604

s605。
63.s604:将位图的数据存储至硬盘;位图的数据包括位图中像素的颜色信息。
64.此处将位图中每一个像素的颜色信息都存储到硬盘中,以备游戏中该位图的场景地图加载时使用。
65.s605:根据位图中区域的颜色信息和区域的描述信息之间的第一映射关系生成分区数据表。
66.分区映射表中的第一映射关系,用于在确定目标对象的颜色信息后,以颜色信息为key查找value,即区域的描述信息。
67.需要说明的是,s605可以在s604之前执行或者与s604同时执行。s604和s605执行完毕后,即可以应对场景地图的加载阶段以及展示阶段。在展示阶段,可能会面临识别目标对象所在区域的需求。通常,场景地图的加载阶段发生于从一个场景地图跳转到另一个场景地图之间进行。
68.s606:在场景地图的加载阶段,从硬盘加载位图的数据,并将位图的数据存储至内存中。
69.在s604中,位图的数据被存储在了硬盘中。在场景地图展示阶段需要动用内存。因此,将位图的数据从硬盘加载并存储到内存中,以供展示阶段使用。
70.s607:在场景地图的展示阶段,获取目标对象在场景地图的位置信息。
71.以游戏为例,游戏中场景地图中目标对象可以是玩家操控的角色,该角色可以随玩家的操控动作而移动,因此有确定其所处区域的需求。依据游戏设定的不同,玩家操控的角色可能是人物、动物等,此处对于目标对象不做限定。
72.此处,目标对象在场景地图的位置信息可以表示为相对于场景地图坐标系原点的位置。例如,场景地图坐标系中原点为场景地图的左上角顶点。目标对象的位置信息为(a,b)即表示目标对象横向上位于左上角顶点右侧a cm的位置,纵向上位于左上角顶点下侧b cm的位置。
73.s608:根据位置信息,通过坐标转换确定目标对象在位图中对应的目标像素。
74.为了结合位图数据确定目标对象在场景地图中所处的区域,还需要将目标对象的位置信息从场景地图坐标系转换到位图坐标系中。从而确定目标对象在位图中对应的像素,即目标像素。坐标转换关系可以通过场景地图的尺寸、预设划分精度来确定,此处不做赘述。可以理解的是,目标像素应当与目标对象所处区域在位图中的颜色信息一致。
75.s609:从内存中读取出目标像素的颜色信息。
76.由于s606在内存中保存了场景地图的位图数据,其中包含位图中各像素点的颜色信息,因此本步骤可以直接从内存中依据目标像素的坐标读取到目标像素的颜色信息。
77.s610:基于目标像素的颜色信息,从分区数据表中索引得到目标对象所处区域的描述信息。
78.在s605生成有分区数据表,当获得了目标像素的颜色信息后,即可确定目标对象所处的区域的颜色信息。基于此颜色信息可以直接从分区数据表中索引出目标对象所处区域的描述信息。即识别出目标对象所处区域。
79.s611:展示目标对象所处区域的描述信息。
80.接着,为了使操控目标对象的玩家或者关联玩家(例如队友、队长)获知目标对象所处的区域,需要展示目标对象所处区域的描述信息。具体实现时包括多种展示方式。例如
可以在目标对象的基础信息中展示区域描述信息,在目标对象的名称后者头像附近展示区域描述信息。此处对于区域描述信息的具体展示方式不做限定。
81.以上实施例基于预先形成的场景地图位图的数据以及分区数据映射表,在场景地图的展示阶段帮助准确地识别出目标对象所处的区域并进行区域描述信息的展示。从而,提升了用户(例如游戏玩家)在场景地图中操控目标对象的便捷性,提升用户的体验。并且,以游戏为例,保障了某些玩法的可实现性,例如团队作战等。识别目标对象所处区域的过程,最核心的一点就是获得目标对象在场景地图中的位置信息,这一点是简单、易操作的。其后便可以基于前面的区域标示成果(即位图)实现区域识别。相比于建立区域网格、构建碰撞盒以及通过物理引擎沿着目标对象向网格上打射线的方式,需要的运算量和运算复杂度都有明显的降低,从而节省了运算设备物理性能的开销。
82.实际应用中,在s604存储位图时,可以存储为24位彩色位图。24位彩色位图能够满足大量区域不同颜色的填充,保证颜色不被压缩,从而在位图中不会发生不同区域颜色一致的问题。前面实施例s606提到,在场景地图的加载阶段,从硬盘加载位图的数据,并将位图的数据存储至内存中。由于位图是24位彩色位图,因此颜色信息的表示需要依赖较大的数据量。具体而言,一个区域的颜色信息的表示方式是:8位二进制数字
×
8位二进制数字
×
8位二进制数字。也就是说,24位彩色位图具体可以保证256
×
256
×
256种颜色信息的准确表示。可以是在实际应用中,一张场景地图包含的区域数量往往不超过1000个,因此24位彩色位图数据中像素颜色信息的数据量远超于必要的数据量。位图数据量高,存储到内存中,将影响场景地图展示的性能。以游戏为例,影响玩家体验游戏时场景地图的展示效率和完整度。可见,内存性能对于场景地图的展示和使用十分重要。有必要提升内存的剩余空间量。为此,本技术提出另一种区域标示方法,在场景地图的加载阶段对内存中的位图数据进行压缩存储。下面结合实施例进行说明。
83.参见图6b,该图为本技术实施例提供的又一种区域标示方法。在该方法中,如图6b所示,包括:
84.s601
’‑
s605’的实现方式与s601

s605一致,此处不再赘述。
85.s606’:在场景地图的加载阶段,从硬盘加载24位彩色位图中像素的颜色信息。
86.s607’:为24位彩色位图中的区域分配区域标识码。
87.在一种可选实现方案中,可以分配10进制的区域标识码(区域id),例如1,2,3等。另一种可选实现方案中,可以分配二进制的区域标识码,例如0001,0010,0011等。
88.为了要存储到内存的数据量,可以在确定区域标识码的最小位宽后,再分配区域标识码。例如:可以首先确定24位彩色位图中包含的区域的总数量m;根据总数量m,通过以2为底的对数函数确定区域标识码的最小位宽n。n为对以2为底m的对数取整,表达式如下:
89.n=[log2m]
[0090]
获得最小位宽n后,根据最小位宽n生成区域标识码,不会产生不必要的位数,节省要保存的数据量。最后将区域标识码一对一分配给24位彩色位图中的区域。
[0091]
举例而言,如果有63个区域,即m=63,需要分别分配区域标识码,则根据上面的表达式获得n=6。即二进制表示的区域标识码,需要生成最小位宽为6的区域标识码,从而将63个不同的区域标识码区分并表示出来。
[0092]
s608’:构建区域标识码与24位彩色位图中区域的颜色信息的第二映射关系。
[0093]
前面提到,为区域分配了小数据量的区域标识码,并且之前在位图中每个区域具有对应的颜色信息,因此基于区域的关联可以建立区域标识码与颜色信息的映射关系,称为第二映射关系。
[0094]
s609’:将24位彩色位图中像素的颜色信息基于第二映射关系压缩为对应的区域标识码存储至内存中。
[0095]
在图6a所介绍的实施例中,将颜色信息直接存储到内存。而在本实施例中,则是将颜色信息基于第二映射关系压缩为区域标识码进行保存。如此,有效减少了需要存储到内存的数据量。此外,第二映射关系也可以存储到内存,相比于原始要存储的完整的颜色信息,第二映射关系本身的数据量要小得多。
[0096]
s610’:在场景地图的展示阶段,获取目标对象在场景地图的位置信息。
[0097]
s611’:根据位置信息,通过坐标转换确定目标对象在位图中对应的目标像素。
[0098]
s610
’‑
s611’与前述实施例s607

s608一致,此处不再赘述。
[0099]
s612’:从内存中读取出目标像素对应的区域标识码。
[0100]
目标像素与目标对象所处区域的颜色信息相同,因此,目标像素的区域标识码与该区域的区域标识码相同。
[0101]
s613’:根据目标像素对应的区域标识码和第二映射关系,获得目标像素的颜色信息。
[0102]
由于s612’已经获得了目标像素的区域标识码(即目标对象所在区域的区域标识码),因此,基于第二映射关系可以直接获得目标像素的颜色信息(目标对象所在区域的颜色信息)。
[0103]
s614’:基于目标像素的颜色信息,从分区数据表中索引得到目标对象所处区域的描述信息。
[0104]
s615’:展示目标对象所处区域的描述信息。
[0105]
s614
’‑
s615’与前述实施例s610

s611一致,此处不再赘述。
[0106]
本技术实施例中,通过对位图数据中像素的颜色信息进行压缩,压缩为小数据量的区域标识码,并保存早内存中,有效减少了对内存的占用量。从而,有益于场景地图的展示。以游戏为例,有益于提升玩家的游戏体验,减少游戏中因内存性能不佳导致的画面卡顿、显示不完全、显示速度慢等问题。
[0107]
在以往技术中,为实现区域标示,需要为每个区域建立网格。网格数据量大,运行时存储开销大。而本技术通过存储位图数据(甚至压缩位图中像素的颜色信息),有效降低了内存开销。此外,在以往技术中,如果场景地图发生修改,还需要重新生成网格数据,修改量较大,增量修改不便。而本技术中,如果场景地图修改,只需要在前一次生成的位图基础上重新绘制轮廓线和着色修改的区域即可,改动量更小,更加便捷。以下结合图7介绍本技术技术方案中提供的再一种区域标示方法。
[0108]
如图7所示为本技术实施例提供的再一种区域标示方法的流程图。参见图7,该方法包括:
[0109]
s701

s705的实现方式与前述实施例中s601

s605的实现方式一致,此处不再赘述。
[0110]
s706:判断场景地图是否发生修改,如果是,进入s707,如果否,则进入s711。
[0111]
s707:基于修改后的场景地图更新第一轮廓线。
[0112]
s708:将更新后的第一轮廓线映射到位图中,得到更新后的第二轮廓线。
[0113]
s709:在位图中,基于更新后的第二轮廓线进行变化区域的一对一着色,获得新的位图。
[0114]
s710:将新的位图中像素的颜色信息更新到所述硬盘中,以及根据新的位图更新分区数据表,进入s706。
[0115]
s711:等待进入场景地图的加载阶段。
[0116]
该方法基于改后的场景地图更新第一轮廓线,并相应更新第二轮廓线。在初始位图基础上,基于更新后的第二轮廓线与此前的第二轮廓线的区别来确定变化的区域,并对变化的区域进行一对一着色,简单便捷地配合了场景地图的变更而修改了初始位图。此方法支持多次修改迭代,灵活度高。
[0117]
基于前述实施例提供的区域标示方法,相应地,本技术还提供了一种区域标示装置。以下结合实施例和附图进行介绍。
[0118]
参加图8,该图为本技术实施例提供的一种区域标示装置800的结构示意图,如图8所示,区域标示装置800包括:
[0119]
第一轮廓线获取单元801,用于获取场景地图中区域的第一轮廓线;
[0120]
第二轮廓线获取单元802,用于将第一轮廓线映射到场景地图对应的位图坐标系中,得到第二轮廓线;
[0121]
着色单元803,用于基于第二轮廓线在位图坐标系中进行区域一对一着色,获得场景地图对应的位图。
[0122]
可选地,第二轮廓线获取单元802,包括:
[0123]
坐标系建立子单元,用于根据场景地图的尺寸和预设划分精度建立场景地图对应的位图坐标系;
[0124]
第一坐标获取子单元,用于提取第一轮廓线中的顶点在场景地图坐标系中的第一坐标;
[0125]
第二坐标获取子单元,用于将第一坐标从场景地图坐标系映射到位图坐标系,得到顶点在位图坐标系的第二坐标;
[0126]
插值子单元,用于基于第一轮廓线中相邻顶点的第二坐标,通过插值法获得位图坐标系中以相邻顶点为两端点的线段的坐标集合;坐标集合对应于第一轮廓线中以相邻顶点为两端点的线段;
[0127]
第二轮廓线获取子单元,用于根据对应于第一轮廓线中各线段的坐标集合得到第二轮廓线。
[0128]
本技术还提供了另一种区域标示装置,参见图8b,该图为另一种区域标示装置800’的结构示意图。如图8b所示,区域标示装置800’不但包含前述图8a所示装置800结构中的第一轮廓线获取单元801、第二轮廓线获取单元802和着色单元803,还包括:
[0129]
第一存储单元804,用于将位图的数据存储至硬盘;位图的数据包括位图中像素的颜色信息;
[0130]
分区数据表生成单元805,用于根据位图中区域的颜色信息和区域的描述信息之间的第一映射关系生成分区数据表;
[0131]
加载单元806,用于在场景地图的加载阶段,从硬盘加载位图的数据;
[0132]
第二存储单元807,用于将加载单元806加载出的位图的数据存储至内存中;
[0133]
位置信息获取单元808,用于在场景地图的展示阶段,获取目标对象在场景地图的位置信息;
[0134]
像素确定单元809,用于根据位置信息,通过坐标转换确定目标对象在位图中对应的目标像素;
[0135]
颜色信息读取单元810,用于从内存中读取出目标像素的颜色信息;
[0136]
描述信息索引单元811,用于基于目标像素的颜色信息,从分区数据表中索引得到目标对象所处区域的描述信息;
[0137]
展示单元812,用于展示目标对象所处区域的描述信息。
[0138]
可选地,位图为24位彩色位图;加载单元806,具体用于从硬盘加载24位彩色位图中像素的颜色信息;
[0139]
第二存储单元807,包括:
[0140]
区域标识码分配子单元,用于为24位彩色位图中的区域分配区域标识码;
[0141]
映射关系构建子单元,用于构建区域标识码与24位彩色位图中区域的颜色信息的第二映射关系;
[0142]
压缩存储子单元,用于将24位彩色位图中像素的颜色信息基于第二映射关系压缩为对应的区域标识码存储至内存中;
[0143]
颜色信息读取单元810,包括:
[0144]
区域标识码读取子单元,用于从内存中读取出目标像素对应的区域标识码;
[0145]
颜色信息确定子单元,用于根据目标像素对应的区域标识码和第二映射关系,获得目标像素的颜色信息。
[0146]
区域标识码分配子单元,具体用于确定24位彩色位图中包含的区域的总数量;根据总数量,通过以2为底的对数函数确定区域标识码的最小位宽;根据最小位宽生成区域标识码;将区域标识码一对一分配给24位彩色位图中的区域。
[0147]
可选地,着色单元803,包括:
[0148]
边界线确定子单元,用于确定场景地图在位图坐标系中对应的图像边界线;
[0149]
区域确定子单元,用于在位图坐标系中,确定出由图像边界线和第二轮廓线划分出的多个区域;
[0150]
第一着色子单元,用于对多个区域中不同的区域分别填充不同的颜色;
[0151]
第二着色子单元,用于将第二轮廓线填充为由第二轮廓线划分的区域中任一区域的颜色。
[0152]
可选地,第一轮廓线获取单元801,具体用于获取以线段绘制控件对场景地图中区域绘制出的第一轮廓线。
[0153]
可选地,区域标示装置还包括:更新单元;更新单元用于基于修改后的场景地图更新第一轮廓线;将更新后的第一轮廓线映射到位图中,得到更新后的第二轮廓线;在位图中,基于更新后的第二轮廓线进行变化区域的一对一着色,获得新的位图。
[0154]
可选地,坐标系建立子单元,用于根据场景地图的横向尺寸和预设划分精度获得位图坐标系中的横向像素数;以及,根据场景地图的纵向尺寸和预设划分精度获得位图坐
标系中的纵向像素数;以场景地图的一个顶点为原点,横向像素数和纵向像素数建立位图坐标系。
[0155]
基于前述实施例提供的区域标示方法和装置,相应地,本技术还提供了区域标示设备。该设备可以服务器或者终端设备实现。
[0156]
图9是本技术实施例提供的一种用于区域标示的服务器结构示意图,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在服务器900上执行存储介质930中的一系列指令操作。
[0157]
服务器900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
[0158]
上述实施例中由服务器所执行的步骤可以基于该图9所示的服务器结构。
[0159]
其中,cpu 922用于执行如下步骤:
[0160]
获取场景地图中区域的第一轮廓线;
[0161]
将第一轮廓线映射到场景地图对应的位图坐标系中,得到第二轮廓线;
[0162]
基于第二轮廓线在位图坐标系中进行区域一对一着色,获得场景地图对应的位图。
[0163]
本技术实施例还提供了另一种区域标示设备,如图10所示,为了便于说明,仅示出了与本技术实施例相关的部分,具体技术细节未揭示的,请参照本技术实施例方法部分。该终端可以为包括手机、平板电脑、个人数字助理(英文全称:personal digital assistant,英文缩写:pda)、销售终端(英文全称:point of sales,英文缩写:pos)、车载电脑等任意终端设备,以终端为手机为例:
[0164]
图10示出了与本技术实施例提供的一种用于区域标示的终端设备的结构示意图。该终端设备若为手机,则参考图10,手机包括:射频(英文全称:radio frequency,英文缩写:rf)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(英文全称:wireless fidelity,英文缩写:wifi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,图10中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0165]
下面结合图10对手机的各个构成部件进行具体的介绍:
[0166]
rf电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1080处理;另外,将设计上行的数据发送给基站。通常,rf电路1010包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(英文全称:low noise amplifier,英文缩写:lna)、双工器等。此外,rf电路1010还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(英文全称:global system of mobile communication,英文缩写:gsm)、通用分
组无线服务(英文全称:general packet radio service,gprs)、码分多址(英文全称:code division multiple access,英文缩写:cdma)、宽带码分多址(英文全称:wideband code division multiple access,英文缩写:wcdma)、长期演进(英文全称:long term evolution,英文缩写:lte)、电子邮件、短消息服务(英文全称:short messaging service,sms)等。
[0167]
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0168]
输入单元1030可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1030可包括触控面板1031以及其他输入设备1032。触控面板1031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1031上或在触控面板1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1031。除了触控面板1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0169]
显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1040可包括显示面板1041,可选的,可以采用液晶显示器(英文全称:liquid crystal display,英文缩写:lcd)、有机发光二极管(英文全称:organic light

emitting diode,英文缩写:oled)等形式来配置显示面板1041。进一步的,触控面板1031可覆盖显示面板1041,当触控面板1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。虽然在图10中,触控面板1031与显示面板1041是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1031与显示面板1041集成而实现手机的输入和输出功能。
[0170]
手机还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还
可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0171]
音频电路1060、扬声器1061,传声器1062可提供用户与手机之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经rf电路1010以发送给比如另一手机,或者将音频数据输出至存储器1020以便进一步处理。
[0172]
wifi属于短距离无线传输技术,手机通过wifi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了wifi模块1070,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0173]
处理器1080是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
[0174]
手机还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理系统与处理器1080逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0175]
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0176]
在本技术实施例中,该终端所包括的处理器1080还具有以下功能:
[0177]
获取场景地图中区域的第一轮廓线;
[0178]
将第一轮廓线映射到场景地图对应的位图坐标系中,得到第二轮廓线;
[0179]
基于第二轮廓线在位图坐标系中进行区域一对一着色,获得场景地图对应的位图。
[0180]
本技术实施例还提供一种计算机可读存储介质,用于存储程序代码,该程序代码用于执行前述各个实施例所述的一种区域标示方法中的任意一种实施方式。
[0181]
本技术实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种区域标示方法中的任意一种实施方式。
[0182]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0183]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0184]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0185]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0186]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read

only memory,英文缩写:rom)、随机存取存储器(英文全称:randomaccess memory,英文缩写:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0187]
以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜