发明内容
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种墙体装修方案确定方法、装置及计算机可读存储介质。
根据本公开实施例的一个方面,提供了一种墙体装修方案确定方法,包括:
确定与待装修单间的第一户型图关联的第一多边形,以及确定与已装修单间的第二户型图关联的第二多边形;其中,所述待装修单间与所述已装修单间的户型相似度大于预设相似度;
建立所述第一户型图中的各个墙体与所述第一多边形的各条边之间的第一映射关系;
建立所述第二户型图中的各个墙体与所述第二多边形的各条边之间的第二映射关系;
建立所述第一多边形的各条边与所述第二多边形的各条边之间的第三映射关系;
根据所述第一映射关系、所述第二映射关系、所述第三映射关系,以及所述第二户型图中的各个墙体的装修方案,确定所述第一户型图中的各个墙体的装修方案。
在一个可选示例中,所述根据所述第一映射关系、所述第二映射关系、所述第三映射关系,以及所述第二户型图中的各个墙体的装修方案,确定所述第一户型图中的各个墙体的装修方案,包括:
根据所述第一映射关系,从所述第一多边形的各条边中,确定所述第一户型图中的第一墙体所映射的第一边;其中,所述第一墙体为所述第一户型图中的各个墙体中的任一墙体;
根据所述第三映射关系,从所述第二多边形的各条边中,确定所述第一边所映射的第二边;
根据所述第二映射关系,从所述第二户型图中的各个墙体中,确定所述第二边所映射的第二墙体;
根据所述第二墙体的装修方案,确定所述第一墙体的装修方案。
在一个可选示例中,所述建立所述第一户型图中的各个墙体与所述第一多边形的各条边之间的第一映射关系,包括:
从所述第一户型图中的各个墙体相接点中,分别确定所述第一多边形的各个顶点所对应的墙体相接点;
根据所述第一多边形的各个顶点所对应的墙体相接点,从所述第一户型图中的各个墙体中,分别确定所述第一多边形的各条边所映射的墙体,以得到第一映射关系。
在一个可选示例中,所述从所述第一户型图中的各个墙体相接点中,分别确定所述第一多边形的各个顶点所对应的墙体相接点,包括:
从所述第一户型图中的各个墙体中,确定距离所述第一多边形的目标顶点最近的第三墙体;其中,所述目标顶点为所述第一多边形的任一顶点;
从所述第三墙体两端的两个墙体相接点中,选择距离所述目标顶点最近的目标墙体相接点;
将所述目标墙体相接点作为所述目标顶点所对应的墙体相接点。
在一个可选示例中,所述根据所述第一多边形的各个顶点所对应的墙体相接点,从所述第一户型图中的各个墙体中,分别确定所述第一多边形的各条边所映射的墙体,包括:
确定目标时针序;其中,所述目标时针序为由所述第一多边形的第三边的第一端指向第二端的时针序,所述第三边为所述第一多边形的任一边;
按照所述目标时针序,从所述第一户型图中,确定所述第三边的第一端的顶点所对应的墙体相接点与所述第三边的第二端的顶点所对应的墙体相接点之间的墙体;
将所确定的墙体作为所述第三边所映射的墙体。
在一个可选示例中,所述第一多边形与所述第二多边形的边的数量相同;
所述建立所述第一多边形的各条边与所述第二多边形的各条边之间的第三映射关系,包括:
确定所述第一多边形的第一结构特征,以及确定所述第二多边形的第二结构特征;其中,任一结构特征包括:顺序排列的多个边界特征数据,每个边界特征数据对应一条边;
确定所述第二结构特征对应的结构特征集合;其中,所述结构特征集合包括:所述第二结构特征,以及调整所述第二结构特征中的多个边界特征数据的排列顺序后得到的结构特征;
从所述结构特征集合中,选择与所述第一结构特征的特征相似度最大的结构特征;
根据所选择的结构特征和所述第一结构特征,建立所述第一多边形的各条边与所述第二多边形的各条边之间的第三映射关系。
在一个可选示例中,
所述第一多边形为所述第一户型图的最大内接矩形;
所述第二多边形为所述第二户型图的最大内接矩形。
根据本公开实施例的另一个方面,提供了一种墙体装修方案确定装置,包括:
第一确定模块,用于确定与待装修单间的第一户型图关联的第一多边形,以及确定与已装修单间的第二户型图关联的第二多边形;其中,所述待装修单间与所述已装修单间的户型相似度大于预设相似度;
第一建立模块,用于建立所述第一户型图中的各个墙体与所述第一多边形的各条边之间的第一映射关系;
第二建立模块,用于建立所述第二户型图中的各个墙体与所述第二多边形的各条边之间的第二映射关系;
第三建立模块,用于建立所述第一多边形的各条边与所述第二多边形的各条边之间的第三映射关系;
第二确定模块,用于根据所述第一映射关系、所述第二映射关系、所述第三映射关系,以及所述第二户型图中的各个墙体的装修方案,确定所述第一户型图中的各个墙体的装修方案。
在一个可选示例中,所述第二确定模块,包括:
第一确定子模块,用于根据所述第一映射关系,从所述第一多边形的各条边中,确定所述第一户型图中的第一墙体所映射的第一边;其中,所述第一墙体为所述第一户型图中的各个墙体中的任一墙体;
第二确定子模块,用于根据所述第三映射关系,从所述第二多边形的各条边中,确定所述第一边所映射的第二边;
第三确定子模块,用于根据所述第二映射关系,从所述第二户型图中的各个墙体中,确定所述第二边所映射的第二墙体;
第四确定子模块,用于根据所述第二墙体的装修方案,确定所述第一墙体的装修方案。
在一个可选示例中,所述第一建立模块,包括:
第五确定子模块,用于从所述第一户型图中的各个墙体相接点中,分别确定所述第一多边形的各个顶点所对应的墙体相接点;
获得子模块,用于根据所述第一多边形的各个顶点所对应的墙体相接点,从所述第一户型图中的各个墙体中,分别确定所述第一多边形的各条边所映射的墙体,以得到第一映射关系。
在一个可选示例中,所述第五确定子模块,包括:
第一确定单元,用于从所述第一户型图中的各个墙体中,确定距离所述第一多边形的目标顶点最近的第三墙体;其中,所述目标顶点为所述第一多边形的任一顶点;
选择单元,用于从所述第三墙体两端的两个墙体相接点中,选择距离所述目标顶点最近的目标墙体相接点;
第二确定单元,用于将所述目标墙体相接点作为所述目标顶点所对应的墙体相接点。
在一个可选示例中,所述获得子模块,包括:
第三确定单元,用于确定目标时针序;其中,所述目标时针序为由所述第一多边形的第三边的第一端指向第二端的时针序,所述第三边为所述第一多边形的任一边;
第四确定单元,用于按照所述目标时针序,从所述第一户型图中,确定所述第三边的第一端的顶点所对应的墙体相接点与所述第三边的第二端的顶点所对应的墙体相接点之间的墙体;
第五确定单元,用于将所确定的墙体作为所述第三边所映射的墙体。
在一个可选示例中,所述第一多边形与所述第二多边形的边的数量相同;
所述第三建立模块,包括:
第六确定子模块,用于确定所述第一多边形的第一结构特征,以及确定所述第二多边形的第二结构特征;其中,任一结构特征包括:顺序排列的多个边界特征数据,每个边界特征数据对应一条边;
第七确定子模块,用于确定所述第二结构特征对应的结构特征集合;其中,所述结构特征集合包括:所述第二结构特征,以及调整所述第二结构特征中的多个边界特征数据的排列顺序后得到的结构特征;
选择子模块,用于从所述结构特征集合中,选择与所述第一结构特征的特征相似度最大的结构特征;
建立子模块,用于根据所选择的结构特征和所述第一结构特征,建立所述第一多边形的各条边与所述第二多边形的各条边之间的第三映射关系。
在一个可选示例中,
所述第一多边形为所述第一户型图的最大内接矩形;
所述第二多边形为所述第二户型图的最大内接矩形。
根据本公开实施例的再一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述墙体装修方案确定方法。
根据本公开实施例的又一个方面,提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述墙体装修方案确定方法。
本公开的实施例中,当需要针对待装修单间确定墙体装修方案时,可以先确定与待装修单间的第一户型图关联的第一多边形,以及确定与待装修单间具有相似户型的已装修单间的第二户型图所关联的第二多边形。接下来,可以建立第一户型图中的各个墙体与第一多边形的各条边之间的第一映射关系,第二户型图中的各个墙体与第二多边形的各条边之间的第二映射关系,以及第一多边形的各条边与第二多边形的各条边之间的第三映射关系。之后,根据第一映射关系、第二映射关系、第三映射关系,以及第二户型图中的各个墙体的装修方案,即可确定第一户型图中的各个墙体的装修方案。可见,本公开的实施例中,通过与户型图关联的多边形的确定操作,多个映射关系的建立操作,以及对映射关系的使用,即便待装修单间与已装修单间的户型结构存在差异,也能够将已装修单间的墙体装修方案迁移至待装修单间,以得到第一户型图中的各个墙体的装修方案,因此,与相关技术相比,本公开的实施例能够便捷可靠地获得待装修单间的墙体装修方案,且获得墙体装修方案的时间成本较低。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
示例性方法
图1是本公开一示例性实施例提供的墙体装修方案确定方法的流程示意图。图1所示的方法可以包括步骤101、步骤102、步骤103、步骤104和步骤105,下面对各步骤分别进行说明。
步骤101,确定与待装修单间的第一户型图关联的第一多边形,以及确定与已装修单间的第二户型图关联的第二多边形;其中,待装修单间与已装修单间的户型相似度大于预设相似度。
当需要获得待装修单间的墙体装修方案时,可以先确定与待装修单间具有相似户型的已装修单间,例如,可以确定与待装修单间的户型相似度大于预设相似度的已装修单间。这里,预设相似度可以为70%、80%或者85%,当然,预设相似度的取值并不局限于此,在此不再一一列举。
接下来,可以获取待装修单间的第一户型图和已装修单间的第二户型图。这里,第一户型图可以如图2中左侧户型图所示,第一户型图可以表示为floorplan_dst,第二户型图可以为图2中右侧户型图所示,第二户型图可以表示为floorplan_src。
之后,可以确定与第一户型图关联的第一多边形,以及确定与第二户型图关联的第二多边形。
这里,第一多边形与第二多边形的边的数量可以相同。可选地,第一多边形可以为第一户型图的最大内接矩形,第二多边形可以为第二户型图的最大内接矩形,这时,第一多边形可以为图3中左侧户型图内部的灰度区域所示,第二多边形可以为图3中右侧户型图内部的灰度区域所示。下面对确定第一户型图的最大内接矩形的方式进行举例介绍。
需要解释的是,本公开的实施例中涉及墙体相接点的概念,墙体相接点是指墙体与墙体相接的点,以图4为例,点A、B、C、D、E、F可以分别作为一个墙体相接点。
为了实现最大内接矩形的确定,首先需要确定第一户型图中的所有墙体相接点的横坐标,并将这些横坐标按照从小到大的顺序排列,以形成列表X;类似地,还需要确定第一户型图中的所有墙体相接点的纵坐标,并将这些纵坐标按照从小到大的顺序排列,以形成列表Y。另外,可以置空内接矩形列表rectangles=[]。
接下来,对于X中的任意两个元素(x1,x2),Y中的任意元素y,判断p(y)=(x1,y)~(x2,y)是否完全在第一户型图内,如果判断结果为是,则p(y)=True,否则,p(y)=False;这样,可以找出Y中所有连续的,能够使p(y)=True的子段,并从找出的这些子段中筛选长度最大的子段,令筛选出的子段两端分别是y1和y2,则四元组(x1,y1,x2,y2)可以表示以(x1,x2)为底边的最大的一个内接矩阵,把它加入rectangles中作为一个元素。
按照与上段中类似的方式,还可以向rectangles中加入其他表示内接矩形的四元组。之后,可以从rectangles中的所有四元组表示的内接矩形中,找出面积最大的内接矩形,找出的这个内接矩形即为第一户型图的最大内接矩形。
需要说明的是,确定第二户型图的最大内接矩形的方式参照对确定第一户型图的最大内接矩形的方式的说明即可,在此不再赘述。可选地,第一户型图的最大内接矩形可以表示为floorplan_dst_mir,第二户型图的最大内接矩形可以表示为floorplan_src_mir。
需要指出的是,第一多边形并不局限于第一户型图的最大内接矩形,第二多边形并不局限于第二户型图的最大内接矩形,例如,第一多边形可以为第一户型图的最小外接矩形,第二多边形可以为第二户型图的最小外接矩形,此外,第一多边形和第二多边形还可以为除了矩形之外的其他多边形,例如三角形、五边形等,在此不再一一列举。为了便于理解,本公开的实施例中均以第一多边形为第一户型图的最大内接矩形,第二多边形为第二户型图的最大内接矩形的情况为例进行说明。
步骤102,建立第一户型图中的各个墙体与第一多边形的各条边之间的第一映射关系。
这里,第一户型图中的各个墙体与第一多边形的各条边之间的第一映射关系可以表示为f_dst:floorplan_dst->floorplan_dst_mir。可选地,第一映射关系可以为一一映射的关系,也可以不为一一映射的关系。
步骤103,建立第二户型图中的各个墙体与第二多边形的各条边之间的第二映射关系。
这里,第二户型图中的各个墙体与第二多边形的各条边之间的第二映射关系可以表示为f_src:floorplan_src->floorplan_src_mir。可选地,第二映射关系可以为一一映射的关系,也可以不为一一映射的关系。
步骤104,建立第一多边形的各条边与第二多边形的各条边之间的第三映射关系。
这里,第一多边形的各条边与第二多边形的各条边之间的第三映射关系可以表示为f_map:floorplan_dst_mir->floorplan_src_mir。可选地,第三映射关系可以为一一映射的关系。
步骤105,根据第一映射关系、第二映射关系、第三映射关系,以及第二户型图中的各个墙体的装修方案,确定第一户型图中的各个墙体的装修方案。
在步骤105中,基于第一映射关系、第二映射关系和第三映射关系,可以在第二户型图中的各个墙体中,分别找到第一户型图中的各个墙体所映射的墙体,之后,可以将第二户型图中的各个墙体已实际采用的装修方案迁移至第一户型图中的相应墙体,从而确定第一户型图中的各个墙体的装修方案。可选地,墙体的装修方案包括但不限于墙纸方案、窗帘方案等;其中,墙纸方案可以用于表征采用何种颜色和/或图案的墙纸,窗帘方案可以用于表征采用何种类型和/或材质的窗帘。
本公开的实施例中,当需要针对待装修单间确定墙体装修方案时,可以先确定与待装修单间的第一户型图关联的第一多边形,以及确定与待装修单间具有相似户型的已装修单间的第二户型图所关联的第二多边形。接下来,可以建立第一户型图中的各个墙体与第一多边形的各条边之间的第一映射关系,第二户型图中的各个墙体与第二多边形的各条边之间的第二映射关系,以及第一多边形的各条边与第二多边形的各条边之间的第三映射关系。之后,根据第一映射关系、第二映射关系、第三映射关系,以及第二户型图中的各个墙体的装修方案,即可确定第一户型图中的各个墙体的装修方案。可见,本公开的实施例中,通过与户型图关联的多边形的确定操作,多个映射关系的建立操作,以及对映射关系的使用,即便待装修单间与已装修单间的户型结构存在差异,也能够将已装修单间的墙体装修方案迁移至待装修单间,以得到第一户型图中的各个墙体的装修方案,因此,与相关技术相比,本公开的实施例能够便捷可靠地获得待装修单间的墙体装修方案,且获得墙体装修方案的时间成本较低。
在图1所示实施例的基础上,如图5所示,步骤105,可以包括:
步骤1051,根据第一映射关系,从第一多边形的各条边中,确定第一户型图中的第一墙体所映射的第一边;其中,第一墙体为第一户型图中的各个墙体中的任一墙体;
步骤1052,根据第三映射关系,从第二多边形的各条边中,确定第一边所映射的第二边;
步骤1053,根据第二映射关系,从第二户型图中的各个墙体中,确定第二边所映射的第二墙体;
步骤1054,根据第二墙体的装修方案,确定第一墙体的装修方案。
这里,第一户型图中的第一墙体可以表示为wall,第一多边形的各条边中,第一墙体所映射的第一边可以表示为f_dst(wall),第二多边形的各条边中,第一边所映射的第二边可以表示为f_map(f_dst(wall)),第二户型图中的各个墙体中,第二边所映射的第二墙体可以表示为f_src-1(f_map(f_dst(wall))):其中,f_src-1为f_src的逆函数。
在确定出第二边所映射的第二墙体之后,可以根据第二墙体的装修方案,确定第一墙体的装修方案。在一种具体实施方式中,根据第二墙体的装修方案,确定第一墙体的装修方案,包括:
判断第二墙体的数量是否大于1,得到判断结果;
根据第二墙体的装修方案,以与判断结果对应的装修方案确定方式,确定第一墙体的装修方案。
如果判断结果表征第二墙体的数量不大于1(例如第二墙体为1个的情况),可以按照第一种装修方案确定方式,确定第一墙体的装修方案。具体地,可以直接将这1个第二墙体的装修方案确定为第一墙体的装修方案;或者,可以根据用户的喜好,在这1个第二墙体的装修方案的基础上进行调整,并将调整后的装修方案作为第一墙体的装修方案。
如果判断结果表征第二墙体的数量大于1(即第二墙体为多个的情况),可以按照第二种装修方案确定方式,确定第一墙体的装修方案。具体地,可以先从多个第二墙体中,随机或者按照设定规则选择一个第二墙体,然后将所选择的第二墙体的装修方案作为第一墙体的装修方案,或者,可以根据用户的喜好,在所选择的第二墙体的装修方案的基础上进行调整,并将调整后的装修方案作为第一墙体的装修方案。
这种实施方式中,针对第二墙体的数量为1个和多个的情况,均可以采用合适的确定方式,便捷可靠地确定出第一墙体的装修方案。
可见,本公开的实施例中,基于第一映射关系、第二映射关系和第三映射关系,能够便捷可靠地实现第二户型图中的各个墙体的装修方案至第一户型图中的相应墙体的迁移。
在图1所示实施例的基础上,如图6所示,步骤102,可以包括:
步骤1021,从第一户型图中的各个墙体相接点中,分别确定第一多边形的各个顶点所对应的墙体相接点;
步骤1022,根据第一多边形的各个顶点所对应的墙体相接点,从第一户型图中的各个墙体中,分别确定第一多边形的各条边所映射的墙体,以得到第一映射关系。
可选地,步骤1021,可以包括:
从第一户型图中的各个墙体中,确定距离第一多边形的目标顶点最近的第三墙体;其中,目标顶点为第一多边形的任一顶点;
从第三墙体两端的两个墙体相接点中,选择距离目标顶点最近的目标墙体相接点;
将目标墙体相接点作为目标顶点所对应的墙体相接点。
以图4为例,第一多边形有4个顶点,这4个顶点的坐标分别为(x1,y1)、(x1,y2)、(x2,y2)、(x2,y1),则需要分别确定这4个顶点所对应的墙体相接点。
假设目标顶点是坐标为(x1,y1)的顶点,则第一户型图中的各个墙体中,距离目标顶点最近的第三墙体为线段AB表示的墙体或者线段AF表示的墙体。在第三墙体为AB表示的墙体的情况下,第三墙体两端的两个墙体相接点A和B中,距离目标顶点最近的目标墙体相接点为A,因此,A可以作为坐标为(x1,y1)的顶点所对应的墙体相接点;在第三墙体为线段AF表示的墙体的情况下,距离目标顶点最近的目标墙体相接点也为A,A也作为坐标为(x1,y1)的顶点所对应的墙体相接点。
需要说明的是,按照与上段中类似的方式,还可以确定出坐标为(x2,y1)的顶点所对应的墙体相接点为B,坐标为(x2,y2)的顶点所对应的墙体相接点为C,坐标为(x1,y2)的顶点所对应的墙体相接点为F,至此,第一多边形的各个顶点均找到了所对应的墙体相接点。
这种实施方式中,通过距离判定,能够便捷可靠地确定出第一多边形的各个顶点所对应的墙体相接点。
可选地,步骤1022,可以包括:
确定目标时针序;其中,目标时针序为由第一多边形的第三边的第一端指向第二端的时针序,第三边为第一多边形的任一边;
按照目标时针序,从第一户型图中,确定第三边的第一端的顶点所对应的墙体相接点与第三边的第二端的顶点所对应的墙体相接点之间的墙体;
将所确定的墙体作为第三边所映射的墙体。
这里,目标时针序可以存在两种可能的情况,分别为顺时针序和逆时针序。
仍以图4为例,假设第三边是第一多边形的下边,则第三边两端的两个顶点的坐标分别是(x1,y2)、(x2,y2),坐标为(x1,y2)的顶点所对应的墙体相接点为F,坐标为(x2,y2)的顶点所对应的墙体相接点为C。另外,假设第三边的第一端是左端,第三边的第二端是右端,则由第三边的第一端指向第二端的时针序为逆时针序,且第三边的第一端的顶点所对应的墙体相接点为F,第三边的第二端的顶点所对应的墙体相接点为C,那么,可以按照逆时针序,确定F与C之间的墙体,很明显,确定出的墙体包括线段FE表示的墙体、线段ED表示的墙体,以及线段DC表示的墙体,因此,可以将线段FE表示的墙体、线段ED表示的墙体,以及线段DC表示的墙体均作为第一多边形的下边所映射的墙体。
需要说明的是,按照与上段中类似的方式,还可以确定出第一多边形的上边所映射的墙体为线段AB表示的墙体,第一多边形的左边所映射的墙体为线段AF表示的墙体,第一多边形的右边所映射的墙体为线段BC表示的墙体,至此,第一多边形的各条边均找到了所映射的墙体,基于此可以得到第一映射关系。
这种实施方式中,基于第一多边形的各个顶点所对应的墙体相接点,能够便捷可靠地得到第一多边形的各条边所映射的墙体,以便据此得到第一映射关系。
当然,步骤102的具体实施方式并不局限于此,还可以结合距离和长度因素来建立第一映射关系,例如,由于第一多边形的上边与线段AB表示的墙体距离最近且两者长度相等,可以将线段AB表示的墙体作为第一多边形的上边所映射的墙体,这也是可行的。
需要说明的是,建立第二映射关系的方式参照对建立第一映射关系的方式的说明即可,在此不再赘述。
在图1所示实施例的基础上,第一多边形与第二多边形的边的数量可以相同,如图7示,步骤104可以包括:
步骤1041,确定第一多边形的第一结构特征,以及确定第二多边形的第二结构特征;其中,任一结构特征包括:顺序排列的多个边界特征数据,每个边界特征数据对应一条边。
步骤1042,确定第二结构特征对应的结构特征集合;其中,结构特征集合包括:第二结构特征,以及调整第二结构特征中的多个边界特征数据的排列顺序后得到的结构特征;
步骤1043,从结构特征集合中,选择与第一结构特征的特征相似度最大的结构特征;
步骤1044,根据所选择的结构特征和第一结构特征,建立第一多边形的各条边与第二多边形的各条边之间的第三映射关系。
下面对定义多边形的结构特征的过程进行举例介绍。
(1)可以从多边形的任意一个顶点出发,按照选定时针序(其为顺时针序或者逆时针序)环绕多边形的所有边。
(2)对应每条边,首先记录长度,其次记录方向(为了简化,可以只有水平线和垂直线两个选项),最后按照遍历顺序记录这条边上的所有点(包括两个端点和所有嵌墙物体的两个端点,嵌墙物体的端点可以通过将对应户型图上的嵌墙物体投影至多边形上得到)在这条边上的的位置(起始点位置记为0,终止点位置记为1,内部点位置记为0至1之间),同时记录每两个端点之间的结构类型,例如墙、门、窗、垭口等。依照给每条边记录的上述信息,可以确定每条边的边界特征数据。具体地,某一条边的边界特征数据可以表示为[3米,水平线,[0,墙,0.2,推拉门,0.8,墙,1.0]];其中,“3米”表示长度信息;“水平线”表示方向信息;“[0,墙,0.2,推拉门,0.8,墙,1.0]”表示结构比例信息,其指明了哪些位置是墙,哪些位置设置有推拉门。
(3)将多边形的所有边的边界特征数据,按照遍历顺序组成列表,组成的列表即可作为多边形的结构特征。
在按照上述方式,确定出第一多边形的第一结构特征和第二多边形的第二结构特征之后,可以确定第二结构特征对应的结构特征集合。假设第二结构特征中包括顺序排列的4个边界特征数据,分别是Z1、Z2、Z3、Z4,则可以调整第二结构特征中的4个边界特征数据的排列顺序,以得到结构特征集合,得到的结构特征集合中可以存在如下结构特征:包括顺序排列的Z2、Z3、Z4、Z1的结构特征,包括顺序排列的Z3、Z4、Z1、Z2的结构特征,包括顺序排列的Z4、Z1、Z2、Z3的结构特征、包括顺序排列的Z3、Z2、Z1、Z4的结构特征、包括顺序排列的Z4、Z3、Z2、Z1的结构特征等。接下来,可以分别计算结构特征集合中的各个结构特征与第一结构特征的特征相似度。
具体地,可以分别针对结构特征集合中的每个结构特征,计算其与第一结构特征的长度误差得分(其用于评估长度层面的差异),方向误差得分(其用于评估方向层面的差异,以及结构比例误差得分(其用于评估结构比例层面的差异),这里,每个误差得分可以均位于0和1之间。
之后,针对结构特征集合中的每个结构特征,可以计算其对应的长度误差得分、方向误差得分,以及结构比例误差得分三者的平均值,并将1与该平均值的差值作为该结构特征与第一结构特征的特征相似度。
在得到结构特征集合中的每个结构特征与第一结构特征的特征相似度之后,可以从结构特征集合中,选择与第一结构特征的特征相似度最大的结构特征。假设选择出的结构特征中包括顺序排列的Z3、Z4、Z1、Z2,第一结构特征中包括顺序排列的P1、P2、P3、P4,则可以据此建立第三映射关系,第三映射关系中可以记录如下信息:第二多边形中与Z3对应的边,以及第一多边形中与P1对应的边相映射;第二多边形中与Z4对应的边,以及第一多边形中与P2对应的边相映射;第二多边形中与Z1对应的边,以及第一多边形中与P3对应的边相映射;第二多边形中与Z2对应的边,以及第一多边形中与P4对应的边相映射。
可见,本公开的实施例中,基于第一多边形的第一结构特征,以及第二多边形的第二结构特征,再结合特征相似度的计算和比较,可以实现第一多边形和第二多边形的结构匹配,从而能够便捷可靠地得到第三映射关系。
本公开的实施例提供的任一种墙体装修方案确定方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种墙体装修方案确定方法可以由处理器执行,如处理器通过利用存储器存储的相应指令来执行本公开实施例提及的任一种墙体装修方案确定方法。下文不再赘述。
示例性装置
图8是本公开一示例性实施例提供的墙体装修方案确定装置的结构示意图,图8所示的装置包括第一确定模块801、第一建立模块802、第二建立模块803、第三建立模块804和第二确定模块805。
第一确定模块801,用于确定与待装修单间的第一户型图关联的第一多边形,以及确定与已装修单间的第二户型图关联的第二多边形;其中,待装修单间与已装修单间的户型相似度大于预设相似度;
第一建立模块802,用于建立第一户型图中的各个墙体与第一多边形的各条边之间的第一映射关系;
第二建立模块803,用于建立第二户型图中的各个墙体与第二多边形的各条边之间的第二映射关系;
第三建立模块804,用于建立第一多边形的各条边与第二多边形的各条边之间的第三映射关系;
第二确定模块805,用于根据第一映射关系、第二映射关系、第三映射关系,以及第二户型图中的各个墙体的装修方案,确定第一户型图中的各个墙体的装修方案。
在一个可选示例中,第二确定模块805,包括:
第一确定子模块,用于根据第一映射关系,从第一多边形的各条边中,确定第一户型图中的第一墙体所映射的第一边;其中,第一墙体为第一户型图中的各个墙体中的任一墙体;
第二确定子模块,用于根据第三映射关系,从第二多边形的各条边中,确定第一边所映射的第二边;
第三确定子模块,用于根据第二映射关系,从第二户型图中的各个墙体中,确定第二边所映射的第二墙体;
第四确定子模块,用于根据第二墙体的装修方案,确定第一墙体的装修方案。
在一个可选示例中,第一建立模块802,包括:
第五确定子模块,用于从第一户型图中的各个墙体相接点中,分别确定第一多边形的各个顶点所对应的墙体相接点;
获得子模块,用于根据第一多边形的各个顶点所对应的墙体相接点,从第一户型图中的各个墙体中,分别确定第一多边形的各条边所映射的墙体,以得到第一映射关系。
在一个可选示例中,第五确定子模块,包括:
第一确定单元,用于从第一户型图中的各个墙体中,确定距离第一多边形的目标顶点最近的第三墙体;其中,目标顶点为第一多边形的任一顶点;
选择单元,用于从第三墙体两端的两个墙体相接点中,选择距离目标顶点最近的目标墙体相接点;
第二确定单元,用于将目标墙体相接点作为目标顶点所对应的墙体相接点。
在一个可选示例中,获得子模块,包括:
第三确定单元,用于确定目标时针序;其中,目标时针序为由第一多边形的第三边的第一端指向第二端的时针序,第三边为第一多边形的任一边;
第四确定单元,用于按照目标时针序,从第一户型图中,确定第三边的第一端的顶点所对应的墙体相接点与第三边的第二端的顶点所对应的墙体相接点之间的墙体;
第五确定单元,用于将所确定的墙体作为第三边所映射的墙体。
在一个可选示例中,第一多边形与第二多边形的边的数量相同;
第三建立模块804,包括:
第六确定子模块,用于确定第一多边形的第一结构特征,以及确定第二多边形的第二结构特征;其中,任一结构特征包括:顺序排列的多个边界特征数据,每个边界特征数据对应一条边;
第七确定子模块,用于确定第二结构特征对应的结构特征集合;其中,结构特征集合包括:第二结构特征,以及调整第二结构特征中的多个边界特征数据的排列顺序后得到的结构特征;
选择子模块,用于从结构特征集合中,选择与第一结构特征的特征相似度最大的结构特征;
建立子模块,用于根据所选择的结构特征和第一结构特征,建立第一多边形的各条边与第二多边形的各条边之间的第三映射关系。
在一个可选示例中,
第一多边形为第一户型图的最大内接矩形;
第二多边形为第二户型图的最大内接矩形。
示例性电子设备
下面,参考图9来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图9图示了根据本公开实施例的电子设备90的框图。
如图9所示,电子设备90包括一个或多个处理器901和存储器902。
处理器901可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备90中的其他组件以执行期望的功能。
存储器902可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器901可以运行所述程序指令,以实现上文所述的本公开的各个实施例的墙体装修方案确定方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备90还可以包括:输入装置903和输出装置904,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在电子设备90是第一设备或第二设备时,该输入装置903可以是麦克风或麦克风阵列。在电子设备90是单机设备时,该输入装置903可以是通信网络连接器,用于从第一设备和第二设备接收所采集的输入信号。
此外,该输入装置903还可以包括例如键盘、鼠标等等。
该输出装置904可以向外部输出各种信息。该输出装置904可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出装置等等。
当然,为了简化,图9中仅示出了该电子设备90中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备90还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的墙体装修方案确定方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的墙体装修方案确定方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。