一种自动避障布光的方法、电子设备和存储介质转让专利

申请号 : CN202310808066.2

文献号 : CN116993879B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 柯建生王兵戴振军陈学斌

申请人 : 广州极点三维信息科技有限公司

摘要 :

本方案涉及一种自动避障布光的方法、电子设备和存储介质,该方法包括:获取空间内障碍物,对障碍物进行分类得到第一地面障碍物和顶面障碍物,对第一地面障碍物进行障碍物剔除,得到第二地面障碍物,根据第二地面障碍物和第一待剔除区域进行运算得到第二待剔除区域和待剔除孤岛区域合集,第一待剔除区域为空间在地面上的投影,根据第二待剔除区域和待剔除孤岛区域合集得到自动布光子区域合集,对自动布光子区域合集自动布光得到第一布光结果,根据顶面障碍物调整第一布光结果得到最终布光结果。本发明可以减少光源与场景模型交叉或者将光源直接嵌入到室内家具模型内部的情况,提高布光效率,可应用于室内设计领域。

权利要求 :

1.一种自动避障布光的方法,其特征在于,包括以下步骤:

获取空间内的障碍物,对所述空间内的障碍物进行分类得到第一地面障碍物和顶面障碍物;

对所述第一地面障碍物进行障碍物剔除,得到第二地面障碍物;所述第二地面障碍物为第一地面障碍物的子集;

根据所述空间在地面上的投影得到第一待剔除区域,将所述第二地面障碍物和所述第一待剔除区域进行差集运算得到第二待剔除区域和待剔除孤岛区域合集;所述待剔除孤岛区域合集包括若干个孤岛区域,所述孤岛区域为与所述第二待剔除区域的边界不重合的二维区域,所述二维区域为所述空间内的障碍物在地面上的投影;

根据所述第二待剔除区域和所述待剔除孤岛区域合集得到自动布光子区域合集;

对所述自动布光子区域合集自动布光得到第一布光结果,根据所述顶面障碍物调整所述第一布光结果得到最终布光结果。

2.根据权利要求1所述方法,其特征在于,所述对所述空间内的障碍物进行分类得到第一地面障碍物和顶面障碍物,具体包括:确认所述空间内的障碍物是否为吸附天花板的障碍物;

若所述空间内的障碍物是吸附天花板的障碍物,获取所述空间内的障碍物的底面高度,将所述底面高度大于第一高度阈值的障碍物作为顶面障碍物,将所述底面高度小于第二高度阈值的障碍物作为所述第一地面障碍物;

若所述空间内的障碍物不是吸附天花板的障碍物,获取所述空间内的障碍物的顶面高度,将所述顶面高度大于第三高度阈值的障碍物作为所述第一地面障碍物。

3.根据权利要求1所述的方法,其特征在于,所述对所述第一地面障碍物进行障碍物剔除,得到第二地面障碍物,具体包括:获取所述第一地面障碍物中若干个障碍物的二维区域,获取所述二维区域的面积;

若所述二维区域相互包含,将面积较小的二维区域对应的障碍物剔除,得到所述第二地面障碍物。

4.根据权利要求1所述的方法,其特征在于,所述根据所述空间在地面上的投影得到第一待剔除区域,具体包括:根据空间各墙体的相交线在地面的投影点得到若干个相交点,以任一相交点为基点按顺序连接所述若干个相交点得到第一待剔除区域。

5.根据权利要求1所述的方法,其特征在于,所述根据所述第二待剔除区域和所述待剔除孤岛区域合集得到自动布光子区域合集,具体包括:连接所述待剔除孤岛区域合集和所述第二待剔除区域,得到至少两个子区域;

根据所述至少两个子区域得到待布光子区域;

集合所述待布光子区域得到自动布光子区域合集。

6.根据权利要求5所述的方法,其特征在于,所述连接所述待剔除孤岛区域合集和所述第二待剔除区域,得到至少两个子区域,具体包括:获取所述待剔除孤岛区域合集中每一个孤岛区域到所述第二待剔除区域的距离;

将所述每一个孤岛区域根据所述距离排序,生成孤岛区域列表,根据所述孤岛区域列表的第一孤岛区域生成第一孤岛顶点距离列表;

从所述第一孤岛顶点距离列表中获取有效连接线,连接所述有效连接线将所述第二待剔除区域分割得到至少两个子区域。

7.根据权利要求6所述的方法,其特征在于,所述根据所述至少两个子区域得到待布光子区域,具体包括:分析所述至少两个子区域中的任一子区域是否存在孤岛区域;

若任一子区域存在孤岛区域,将第二待剔除区域更新为任一子区域,将待剔除孤岛区域合集更新为任一子区域的所有孤岛区域,重新连接更新后的待剔除孤岛区域合集和更新后的第二待剔除区域,得到新的至少两个子区域,直至所有至少两个子区域的任一子区域不存在孤岛区域,将不存在孤岛区域的任一子区域作为待布光子区域。

8.根据权利要求1所述的方法,其特征在于,所述根据所述顶面障碍物调整所述第一布光结果得到最终布光结果,具体包括:将所述第一布光结果的光源与所述顶面障碍物进行重叠分析;

若所光源与所述顶面障碍物重叠,将所述光源移动第四高度阈值得到最终布光结果。

9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1‑8任一项所述的方法。

10.一种计算机可读存储介质,其特征在于,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行如权利要求1‑8任一项所述的方法。

说明书 :

一种自动避障布光的方法、电子设备和存储介质

技术领域

[0001] 本发明涉及室内设计,尤其涉及一种自动避障布光的方法、电子设备和存储介质。

背景技术

[0002] 室内设计需要通过最终的效果图来呈现,好的效果图不仅依靠设计师专业的空间软硬装搭配能力,还依靠室内空间场景打光。对于经验丰富的设计师来说,手动打光也是一个精细校准的耗时过程,新手设计师对空间场景打光很可能无从下手。因此,自动布光技术应运而生,它能成为新手设计师提供一键布光直接渲染的辅助手段,也能为经验丰富的设计师提供初始布光逻辑,提高打光效率。
[0003] 目前,一些针室内设计平台提供一键自动布光功能,但这些平台自动布光效果容易出现光源与场景模型交叉或者将光源直接嵌入到室内家具模型内部的情况,进而导致一键渲染效果不佳、自定义调节过程繁琐等问题,降低了布光效率。

发明内容

[0004] 有鉴于此,本发明的目的是提供一种自动避障布光的方法、电子设备和存储介质,可以减少光源与场景模型交叉或者将光源直接嵌入到室内家具模型内部的情况,提高布光效率。
[0005] 为了解决上述问题,第一方面,本发明提供了一种自动避障布光的方法,包括以下步骤:
[0006] 获取空间内的障碍物,对所述障碍物进行分类得到第一地面障碍物和顶面障碍物;
[0007] 对所述第一地面障碍物进行障碍物剔除,得到第二地面障碍物;
[0008] 根据所述第二地面障碍物和第一待剔除区域进行运算得到第二待剔除区域和待剔除孤岛区域合集;所述第一待剔除区域为所述空间在地面上的投影;
[0009] 根据所述第二待剔除区域和所述待剔除孤岛区域合集得到自动布光子区域合集;
[0010] 对所述自动布光子区域合集自动布光得到第一布光结果,根据所述顶面障碍物调整所述第一布光结果得到最终布光结果。
[0011] 可选地,所述对所述障碍物进行分类得到第一地面障碍物和顶面障碍物,具体包括:
[0012] 确认所述障碍物是否为吸附天花板的障碍物;
[0013] 若所述障碍物是吸附天花板的障碍物,获取所述障碍物的底面高度,将所述底面高度大于第一高度阈值的障碍物作为顶面障碍物,将所述底面高度小于第二高度阈值的障碍物作为所述第一地面障碍物;
[0014] 若所述障碍物不是吸附天花板的障碍物,获取所述障碍物的顶面高度,将所述顶面高度大于第三高度阈值的障碍物作为所述第一地面障碍物。
[0015] 可选地,所述对所述第一地面障碍物进行障碍物剔除,得到第二地面障碍物,具体包括:
[0016] 获取所述第一地面障碍物中若干个障碍物的二维区域,获取所述二维区域的面积;
[0017] 若所述二维区域相互包含,将面积较小的二维区域对应的障碍物剔除,得到所述第二地面障碍物。
[0018] 可选地,所述根据所述第二地面障碍物和第一待剔除区域进行运算得到第二待剔除区域和待剔除孤岛区域合集,具体包括:
[0019] 根据空间各墙体的相交线在地面的投影点得到若干个相交点,以任一相交点为基点按顺序连接所述若干个相交点得到第一待剔除区域;
[0020] 将所述第二地面障碍物和所述第一待剔除区域进行差集运算得到所述第二待剔除区域和所述待剔除孤岛区域合集;所述待剔除孤岛区域合集包括若干个孤岛区域,所述孤岛区域为与所述第二待剔除区域不重合的二维区域,所述二维区域为所述障碍物在地面上的投影。
[0021] 可选地,所述根据所述第二待剔除区域和所述待剔除孤岛区域合集得到自动布光子区域合集,具体包括:
[0022] 连接所述待剔除孤岛区域合集和所述第二待剔除区域,得到至少两个子区域;
[0023] 根据所述至少两个子区域得到待布光子区域;
[0024] 集合所述待布光子区域得到自动布光子区域合集。
[0025] 可选地,所述连接所述待剔除孤岛区域合集和所述第二待剔除区域,得到至少两个子区域,具体包括:
[0026] 获取所述待剔除孤岛区域合集中每一个孤岛区域到所述第二待剔除区域的距离;
[0027] 将所述每一个孤岛区域根据所述距离排序,生成孤岛区域列表,根据所述孤岛区域列表的第一孤岛区域生成第一孤岛顶点距离列表;
[0028] 从所述第一孤岛顶点距离列表中获取有效连接线,连接所述有效连接线将所述第二待剔除区域分割得到至少两个子区域。
[0029] 可选地,所述根据所述至少两个子区域得到待布光子区域,具体包括:
[0030] 分析所述至少两个子区域中的任一子区域是否存在孤岛区域;
[0031] 若任一子区域存在孤岛区域,将第二待剔除区域更新为任一子区域,将待剔除孤岛区域合集更新为任一子区域的所有孤岛区域,重新连接更新后的待剔除孤岛区域合集和更新后的第二待剔除区域,得到新的至少两个子区域,直至所有至少两个子区域的任一子区域不存在孤岛区域,将不存在孤岛区域的任一子区域作为待布光子区域。
[0032] 可选地,所述根据所述顶面障碍物调整所述第一布光结果得到最终布光结果,具体包括:
[0033] 将所述第一布光结果的光源与所述顶面障碍物进行重叠分析;
[0034] 若所光源与所述顶面障碍物重叠,将所述光源移动第四高度阈值得到最终布光结果。
[0035] 为了解决上述问题,第二方面,本发明提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面任一项所述的方法。
[0036] 为了解决上述问题,第三方面,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行第三方面任一项所述的方法。
[0037] 实施本发明包括以下有益效果:本发明通过获取空间内障碍物,对障碍物进行分类得到第一地面障碍物和顶面障碍物,对第一地面障碍物进行障碍物剔除,得到第二地面障碍物,根据第二地面障碍物对第一待剔除区域进行运算得到第二待剔除区域和待剔除孤岛区域合集,根据第二待剔除区域和待剔除孤岛区域合集得到自动布光子区域合集,对自动布光子区域合集自动布光得到第一布光结果,根据顶面障碍物调整第一布光结果得到最终布光结果,先通过对第一地面障碍物进行障碍物剔除和根据第二待剔除区域和待剔除孤岛区域合集得到自动布光子区域合集将空间中可能影响布光效果的障碍物剔除,再对剔除障碍物之后的空间区域进行布光,减少了光源与场景模型交叉或者将光源直接嵌入到室内家具模型内部的概率,提高了布光效率。

附图说明

[0038] 图1是本发明提供的一种自动避障布光的方法的流程图;
[0039] 图2是本发明提供的一种自动避障布光的方法的障碍物分类示例图;
[0040] 图3是本发明提供的一种自动避障布光的方法的障碍物剔除的示例图;
[0041] 图4是本发明提供的一种自动避障布光的方法得到第二待剔除区域的示例图;
[0042] 图5是本发明提供的孤岛区域到所述第二待剔除区域的距离的示意图;
[0043] 图6是本发明提供的孤岛区域顶点到第二待剔除区域距离的示意图;
[0044] 图7是本发明提供的根据顶面障碍物调整光源之后的布光示意图;
[0045] 图8是本发明提供的一种电子设备的结构示意图。

具体实施方式

[0046] 下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
[0047] 为了解决上述问题,在一些实施例中,如图1所示,图1是一种自动避障布光的方法的流程图,本发明提供了一种自动避障布光的方法,包括以下步骤:
[0048] S100、获取空间内障碍物,对所述障碍物进行分类得到第一地面障碍物和顶面障碍物。
[0049] 具体地,通过扫描设备获取室内空间里中障碍物的三维包围盒模型,空间内障碍物包括空间内除墙体、天花、地板、门窗类别以外所有障碍物,将获取到的障碍物模型加入待分类障碍物列表中,历遍待分类障碍物列表中所有障碍物,将障碍物分为第一地面障碍物和顶面障碍物,并形成第一地面障碍物列表和顶面障碍物列表。
[0050] S200、对所述第一地面障碍物进行障碍物剔除,得到第二地面障碍物。
[0051] 具体地,将上述初步得到的地面障碍物作为第一地面障碍物,获取第一地面障碍物在地面上的投影,保留投影重合的若干障碍物中的一个,将其余障碍物从第一地面障碍物列表中剔除,第一地面障碍物列表中剩余的障碍物为第二地面障碍物。
[0052] S300、根据所述第二地面障碍物和第一待剔除区域进行运算得到第二待剔除区域和待剔除孤岛区域合集;所述第一待剔除区域为所述空间在地面上的投影;
[0053] 运算包括并集运算和差集运算,首先获取所有障碍物在地面上投影的并集A,再获取第一待剔除区域与并集A的差集得到第二待剔除区域,与第二待剔除区域不重合的障碍物的投影为孤岛区域,集合所有孤岛区域得到待剔除孤岛区域合集。
[0054] S400、根据所述第二待剔除区域和所述待剔除孤岛区域合集得到自动布光子区域合集;
[0055] 具体地,将待剔除孤岛区域合集中的孤岛区域与第二待剔除区域连接,将第二待剔除区域分割为若干个不含孤岛区域的子区域,集合若干个不含孤岛区域的子区域得到动布光子区域合集。
[0056] S500、对所述自动布光子区域合集自动布光得到第一布光结果,根据所述顶面障碍物调整所述第一布光结果得到最终布光结果。
[0057] 顶面障碍物以列表的形式存储。
[0058] 具体地,对自动布光子区域合集中的子区域进行区域凸分解,然后计算各凸分解区域的面积及最大内接矩形,最后计算出布光类型及布光强度完成初始自动布光过程,遍历顶面障碍物列表,根据顶面障碍物的高度调整自动布光结果,减少光源与场景模型交叉或者将光源直接嵌入到室内家具模型内部的情况。
[0059] 为了解决上述问题,在一些实施例中,所述对所述障碍物进行分类得到第一地面障碍物和顶面障碍物,具体包括:
[0060] S101、确认所述障碍物是否为吸附天花板的障碍物;
[0061] S102、若所述障碍物是吸附天花板的障碍物,获取所述障碍物的底面高度,将所述底面高度大于第一高度阈值的障碍物作为顶面障碍物,将所述底面高度小于第二高度阈值的障碍物作为所述第一地面障碍物;
[0062] 第一高度阈值和第二高度阈值可以相同也可以不相同,其具体值可以根据实际布光效果的需要进行设置,在本实施例中,选择第一高度阈值和第二高度阈值相同,都为空间高度的一半。
[0063] 在本实施例中,获取障碍物的底面高度和顶面高度以地面为基准,底面高度指障碍物的最低点到地面的距离,顶面高度指障碍物的最高点到地面的距离。
[0064] 具体地,如图2所示,图2是一种自动避障布光的方法的障碍物分类示例图。获取的障碍物存储在障碍物列表中,历遍障碍物列表,初步判断障碍物类别,如果是吸附天花的障碍物(如吊顶、灯具等),检测该障碍物的底面高度是否超过空间高度的一半,若障碍物底面高度超过空间高度的一半,则将该障碍物作为顶面障碍物,并加入顶面障碍物列表;否则将该障碍物作为第一地面障碍物,并加入第一地面障碍物列表。
[0065] 除吸附天花的障碍物以外的所有障碍物,判断障碍物的顶面高度是否超过空间高度的一半,若顶面高度超过空间高度的一半,则加入地面障碍物列表,否则丢弃该障碍物。
[0066] 结合图2所示,障碍物C、D为吸附天花的模型,但D的顶面高度小于空间高度的一半,将D作为第一地面障碍物;障碍物C的顶面高度大于空间高度的一半,将C作为顶面障碍物。障碍物A、B不吸附天花,但A的顶面高度小于空间高度的一半,将A丢弃;B的顶面高度大于空间高度的一半,将B作为第一地面障碍物。
[0067] 为了解决上述问题,在一些实施例中,如图3所示,图3是一种自动避障布光的方法的障碍物剔除的示例图,所述对所述第一地面障碍物进行障碍物剔除,得到第二地面障碍物,具体包括:
[0068] S210、获取所述第一地面障碍物中若干个障碍物的二维区域,获取所述二维区域的面积;
[0069] S220、若所述二维区域相互包含,将面积较小的二维区域对应的障碍物剔除,得到所述第二地面障碍物。
[0070] 二维区域为每一个障碍物在地面上的投影。
[0071] 具体地,将所有障碍物的三维包围盒投影到地面上得到障碍物的在地面上的投影的二维区域,获取每一个二维区域的面积,同时遍历所有的二维区域,判断地面上的二维区域是否存在互相包含情况,若存在互相包含,则将矩形面积小的障碍物移出地面障碍物列表。
[0072] 上述互相包含指一个二维区域的全部区域完全包含在另外一个二维区域内,结合图3所示,障碍物R1的二维区域被障碍物R2的二维区域完全包含,所以将障碍物R1丢弃,而障碍物R2、R3、R4、R5没有出现被其它二维区域完全包含的情况,将其保留作为第二地面障碍物。
[0073] 为了解决上述问题,在一些实施例中,如图4所示,图4是一种自动避障布光的方法得到第二待剔除区域的示例图,所述根据所述第二地面障碍物和第一待剔除区域进行运算得到第二待剔除区域和待剔除孤岛区域合集,具体包括:
[0074] S310、根据空间各墙体的相交线在地面的投影点得到若干个相交点,以任一相交点为基点按顺序连接所述若干个相交点得到第一待剔除区域。
[0075] 其中,按顺序连接若干个相交点可以是按顺时针的顺序连接也可以是按逆时针的顺序连接。
[0076] 具体地,将各相交点的连线和连线所包围的区域作为第一待剔除区域。
[0077] S320、将所述第二地面障碍物和所述第一待剔除区域进行差集运算得到所述第二待剔除区域和所述待剔除孤岛区域合集;所述待剔除孤岛区域合集包括若干个孤岛区域,所述孤岛区域为与所述第二待剔除区域不重合的二维区域,所述二维区域为所述障碍物在地面上的投影。
[0078] 具体地,任选第二地面障碍物列表中一个第二障碍物的二维区域与第一待剔除区域的多边形区域进行差集运算,生成新的待剔除障碍物的多边形区域。同理,依次遍历第二地面障碍物列表中剩余的其中一个第二地面障碍物与新生成的待剔除障碍物多边形区域进行差集运算,最终完成第二地面障碍物的剔除操作。其剔除计算过程如下:
[0079] S=S0‑R0‑R1‑R2...‑Rn
[0080] 其中,S0表示第一待剔除区域,Rn表示第二地面障碍物列表中第N个障碍物的二维区域,S表示剔除所有地面障碍物后的区域,即第二待剔除区域,与S不重合的障碍物的二维区域即为孤岛区域,孤岛区域包括与第二待剔除区域各边不重合的第二地面障碍物的二维区域。
[0081] 结合图4所示,AOBC所表示的多边形区域即第一待剔除区域,AOBC减去R2、R3、R4、R5之后,剩余的区域即为剔除所有地面障碍物后的第二待剔除区域,多边形区域R4、R5为孤岛区域,R2、R3合并后的区域与AOBC区域存在公共边DE,则二维区域R2、R3不是孤岛区域。
[0082] 上述剔除的计算过程还可以是:
[0083] S=S0‑(R0 I R1 I R2...I Rn)
[0084] 先计算所有第二地面障碍物的二维区域的并集A,再利用第一待剔除区域与并集A取差集。
[0085] 为了解决上述问题,在一些实施例中,所述根据所述第二待剔除区域和所述待剔除孤岛区域合集得到自动布光子区域合集,具体包括:
[0086] S410、连接所述待剔除孤岛区域合集和所述第二待剔除区域,得到至少两个子区域。
[0087] 具体地,先获取待剔除孤岛区域合集每一个孤岛区域第二待剔除区域的距离,确定对应距离最短的孤岛区域,连接该孤岛与第二待剔除区域,将第二待剔除区域分为两个子区域或两个以上子区域。
[0088] S420、根据所述至少两个子区域得到待布光子区域。
[0089] 具体地,判断上述得到的各子区域中是否有孤岛区域,若没有,则将该子区域作为待布光子区域,若有,则将该有孤岛区域的子区域作为第二待剔除区域,将其中的所有孤岛区域作为待剔除孤岛区域合集,重复上述步骤S410。
[0090] S430、集合所述待布光子区域得到自动布光子区域合集。
[0091] 具体地,直到上述得到的子区域中不包含孤岛区域,将上步骤S420中得到的待布光子区域集合得到自动布光子区域合集。
[0092] 为了解决上述问题,在一些实施例中,步骤S410、连接所述待剔除孤岛区域合集和所述第二待剔除区域,得到至少两个子区域,具体包括:
[0093] S411、获取所述待剔除孤岛区域合集中每一个孤岛区域到所述第二待剔除区域的距离。
[0094] 具体地,如图5所示,图5是孤岛区域到所述第二待剔除区域的距离的示意图,上述距离的获取过程为:
[0095] 获取每个孤岛区域的质心坐标,图5中孤岛区域R4、R5的质心坐标即为孤岛区域R4、R5的中心点。
[0096] 计算每个孤岛区域质心坐标到第二待剔除区域每条边的距离,并取其中的最短距离,做为该孤岛区域到待剔除障碍物多边形区域的距离。
[0097] 质心到第二待剔除区域各条边的距离计算过程为:找到质心与第二待剔除区域某条边垂线的交点,并判断该交点是否在改任一条边上,若交点在该任一条边上则该交点即为所求的距离点;若交点不在该任一条边上,则计算质心到第二待剔除区域该任一条边两个端点的距离,并取距离短的端点做为所求的距离点,而质心到距离点的距离即为质心到第二待剔除区域各条边的距离。如图5所示,其中线段R4P、R5Q即为孤岛区域R4、R5到的第二待剔除区域的距离。
[0098] S412、将所述每一个孤岛区域根据所述距离排序,生成孤岛区域列表,根据所述孤岛区域列表的第一孤岛区域生成第一孤岛顶点距离列表。
[0099] 具体地,将步骤S411中获取的所有孤岛区域按该孤岛区域到第二待剔除区域的距离按大小,从小到大进行排序,生成孤岛区域列表。结合图5所示,线段R4P
[0100] 取孤岛区域列表中的第一个孤岛区域作为上述第一孤岛区域,即到第二待剔除区域的距离最小的孤岛区域,计算该孤岛区域各个顶点到第二待剔除区域各条边的距离,并获取各个顶点到第二待剔除区域各条边的最短距离,比如孤岛区域有X个顶点,第二待剔除区域有Y条边,其中一个顶点与Y条边有Y个距离,取Y个距离中最短的距离作为孤岛区域各个顶点到第二待剔除区域的距离,连接各顶点与第二待剔除区域对应最短距离的边。
[0101] 孤岛区域各顶点到第二待剔除区域各条边的距离计算过程为:获取任一顶点与该顶点到第二待剔除区域某条边垂线的交点,并判断该交点是否在该某条边上,若交点在该某条边上则该点即为所求的距离点,若交点不在边上,该第二待剔除区域某条边的两个端点中距离该顶点较近的端点所求的距离点,该顶点到所求的距离点的距离为孤岛区域各顶点到第二待剔除区域各边的距离,其中距离最短的为该顶点到第二待剔除区域的距离。如图6所示,图6是孤岛区域顶点到第二待剔除区域距离的示意图,M和N为第二待剔除区域一条边的两个端点,孤岛区域R4的顶点I到MN边的垂线的交点不在线段MN上,且IM
[0102] 按照上述各顶点到第二待剔除区域某条边的距离的大小,从小到大将各顶点到第二待剔除区域的距离进行排序,生成孤岛顶点距离列表。结合图6所示,孤岛区域R4的4个顶点到第二待剔除区域的距离对应的线段分别FJ、GK、HL、IM,且FJ
[0103] S413、从所述第一孤岛顶点距离列表中获取有效连接线,连接所述有效连接线将所述第二待剔除区域分割得到至少两个子区域。
[0104] 具体地,如图6所示,遍历上述孤岛顶点距离列表,判断顶点到第二待剔除区域的距离对应的线段是否与其他孤岛区域有交叉点,若无交叉点,则该线段为连接孤岛区域与第二待剔除区域的有效连接线,给予标记,若有交叉点,则判断该连接线无效;结合图6所示,FJ、GK、HL、IM均未与R5区域有交叉点,因此都是有效连接线。
[0105] 在获取到两条有效连接线时,连接这两条有效连接线,将该孤岛区域与第二待剔除区域分割成两个新的待剔除障碍物子区域;结合图6所示,FJ、GK两条连接线将S区域分割区域S1和区域S2两个子区域,其中多边形ADNJFKC为子区域S1,多边形EMILBO为子区域S2。
[0106] 若遍历上述孤岛顶点距离列表后,只找到一条有限连接线,则丢弃该孤岛区域。
[0107] 为了解决上述问题,在一些实施例中,所述根据所述至少两个子区域得到待布光子区域,具体包括:
[0108] S421、分析所述至少两个子区域中的任一子区域是否存在孤岛区域。
[0109] 具体地,移除上述连接过的孤岛区域,将剩余的孤岛区域,按照质心位置所处区域分别添加到两个子区域中。结合图6所示,将孤岛区域R5添加到S1子区域的孤岛区域列表中,再判断两个子区域是否存在孤岛区域。
[0110] S422、若任一子区域存在孤岛区域,将第二待剔除区域更新为任一子区域,将待剔除孤岛区域合集更新为任一子区域的所有孤岛区域,重新连接更新后的待剔除孤岛区域合集和更新后的第二待剔除区域,得到新的至少两个子区域,直至所有至少两个子区域的任一子区域不存在孤岛区域,将不存在孤岛区域的任一子区域作为待布光子区域。
[0111] 具体地,若上述子区域存在孤岛区域,将第二待剔除区域更新为任一子区域,将待剔除孤岛区域合集更新为任一子区域的所有孤岛区域,跳转到上述步骤S410,执行步骤S411、S412、S413、S421和S422,直至步骤S413得到的两个子区域不存在孤岛区域,将上述每一次循环中不存在孤岛区域的子区域作为待布光子区域。
[0112] 结合图6所示,S1区域存在孤岛区域,将跳转到上述步骤S410,执行步骤S411、S412、S413、S421和S422。
[0113] 为了解决上述问题,在一些实施例中,所述根据所述顶面障碍物调整所述第一布光结果得到最终布光结果,具体包括:
[0114] S510、将所述第一布光结果的光源与所述顶面障碍物进行重叠分析;
[0115] S520、若所光源与所述顶面障碍物重叠,将所述光源移动第四高度阈值得到最终布光结果。
[0116] S530、第四阈值高度可以根据布光效果设置,顶面障碍物的底面高度减去第四阈值高度即为光源所在的高度,底面高度的获取与上述相同。
[0117] 具体地,遍历顶面障碍物,判断光源与顶面障碍物是否存在交叉,若光源与顶面障碍物交叉,则取顶面障碍物的底面高度,将光源下移到该底面高度以下的适当位置,完成一次光源自动避障过程,若光源与顶面障碍物不交叉,则无须调整该光源位置。结合图7所示,图7是根据顶面障碍物调整光源之后的布光示意图,L1光源顶面无障碍物遮挡,因此,按正常高度放置;L2光源顶面有障碍物B遮挡,因此,L2光源的高度需要下移到障碍物B底面以下适当位置;L3光源同时被障碍物A和障碍物B遮挡,需要取障碍物A和障碍物B底面高度最小的位置作为参考,因此,L3光源的高度需要下移到障碍物A底面以下适当位置。
[0118] 为了解决上述问题,在一些实施例中,如图8所示,图8是本发明提供的一种电子设备的结构示意图,本发明还提供了一种电子设备,所述电子设备包括处理器801和存储器802,所述存储器801存储有计算机程序,所述处理器802执行所述计算机程序时实现上述方法实施例所述的任何一种方法。
[0119] 其中,存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的远程存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0120] 可见,上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同。
[0121] 此外,本申请实施例还公开了一种计算机程序产品或计算机程序,计算机程序产品或计算机程序存储在计算机可读存介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述的方法。同样地,上述方法实施例中的内容均适用于本存储介质实施例中,本存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
[0122] 本发明还提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行上述方法实施例所述的任何一种方法。
[0123] 可以理解的是,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD‑ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0124] 以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。