基于排版模板的照片自动排版方法与流程

文档序号:13108878
技术领域本发明涉及矩形件优化排样技术领域,尤其涉及一种基于排版模板的照片自动排版方法。

背景技术:
矩形件优化排样是一个经典的NP(NondeterministicProblem)完全问题,而照片组合空间巨大,不论是启发式搜索算法还是智能搜索算法,都只能在合理时间内搜索可能的排版结果中的很小一部分。对于照片自动排版问题,直接使用这些算法搜索排版结果会漏掉很多由排版专家发现的优秀排版方案。发明人在实施本发明的过程中发现:采用上述方法得到的排版方案的排版利用率不稳定,排版利用率低于专家人工排版,且在很多情况下会得到排版利用率较低的排版结果。

技术实现要素:
本发明的目的是提供一种基于排版模板的照片自动排版方法,通过从已存储的排版模板中选择的目标排版模板,并将与该目标排版模板中尺寸相同的照片替换为待排版照片,再根据替换结果确定排版结果或者重新选择目标排版模板,可以使得排版模板被充分利用,从而实现排版利用率达到或者高于专家人工排版,且排版利用率稳定,不会得到太差的排版结果。本发明提供的一种基于排版模板的照片自动排版方法,包括:获取待排版照片;从已存储的排版模板中,确定目标排版模板,所述目标排版模板为所述排版模板中未标记为已完成的排版模板之一;将所述目标排版模板上的照片替换为第一待排版照片,所述第一待排版照片为所述待排版照片中与所述目标排版模板上的照片的尺寸相同的照片;根据替换结果,确定排版结果或重新确定目标排版模板。可选地,所述替换结果为全部替换成功时,确定最终的排版结果;或者所述替换结果为全部替换失败时,将所述目标排版模板标记为已完成,并重新确定目标排版模板。可选地,所述替换结果为部分替换成功时,确定第一排版结果,所述照片自动排版方法还包括:根据所述待排版照片中的未替换照片,确定包络矩形集合;从所述包络矩形集合中选择目标矩形,所述目标矩形为所述包络矩形集合中能包含第二待排版照片的矩形,其中,所述第二待排版照片为所述未替换照片中尺寸最大的照片;将所述第二待排版照片放入所述目标矩形;根据放入结果,确定最终的排版结果。可选地,所述根据所述待排版照片中的未替换照片,确定包络矩形集合,包括:根据所有的所述未替换照片的左边界所在直线和右边界所在直线,确定垂直直线集合;根据所有的所述未替换照片的上边界所在直线和下边界所在直线,确定水平直线集合;分别对所述垂直直线集合和所述垂直直线集合进行笛卡儿乘积运算,得到两个二元组集合;对两个所述二元组集合进行笛卡儿乘积运算,得到四元组集合;对所述四元组集合中的每一个四元组(v1,v2,h1,h2),若v1,v2,h1,h2能组成一个面积大于0的矩形,且所述矩形不能完全包含所述第一排版结果中的任何照片,或所述矩形不与所述第一排版结果中的任何照片相交,将所述矩形放入所述包络矩形集合中,其中,v1,v2为所述垂直直线集合中的两条垂直直线,h1,h2为所述水平直线集合中的两条水平直线。可选地,所述放入结果为放入失败时,确定最终的排版结果为所述第一排版结果。可选地,所述放入结果为放入成功时,所述照片自动排版方法还包括:计算利用率,所述利用率为所述第二待排版照片的面积与所述目标矩形的面积的比值;比较所述利用率与预设阈值的大小关系,得到比较结果,其中,所述预设阈值为最小可接受的利用率;根据所述比较结果,确定最终的排版结果。可选地,所述比较结果为所述利用率大于所述预设阈值时,确定最终的排版结果为所述第一排版结果与所述第二待排版照片合并的排版方案。可选地,所述比较结果为所述利用率小于所述预设阈值时,且所述第二待排版照片放在所述目标矩形的左上角,所述照片自动排版方法还包括:用所述第二待排版照片的右边界所在的直线将所述目标矩形中除去所述第二待排版照片的部分分为第一矩形和第二矩形;分别将第三待排版照片和第四待排版照片放入所述第一矩形和所述第二矩形,其中,所述第三待排版照片为能被所述第一矩形包含的所述未替换照片中除所述第二待排版照片之外尺寸最大的照片,所述第四待排版照片为能被所述第二矩形包含的所述未替换照片中除所述第二待排版照片之外尺寸最大的照片;根据所述第三待排版照片和所述第四待排版照片是否成功分别放入所述第一矩形和所述第二矩形,确定最终的排版结果。可选地,当所述第三待排版照片和所述第四待排版照片全部或其一放入成功时,所述照片自动排版方法还包括:计算第一利用率,所述第二利用率为放入的待排版照片的总面积与所述目标矩形的面积的比值;比较所述第一利用率与所述预设阈值的大小关系;当所述第一利用率大于所述预设阈值时,确定最终的排版结果为所述第一排版结果与所述放入的待排版照片合并的排版方案。可选地,所述第一比较结果为所述第二利用率小于所述预设阈值时,确定最终的排版结果为所述第一排版结果。基于上述技术方案提供的一种基于排版模板的照片自动排版方法,通过从已存储的排版模板中选择的目标排版模板,并将与该目标排版模板中尺寸相同的照片替换为待排版照片,再根据替换结果确定排版结果或者重新选择目标排版模板,可以使得排版模板被充分利用,从而实现排版利用率达到或者高于专家人工排版,且排版利用率稳定,不会得到太差的排版结果。附图说明图1为根据本发明实施例提供的一种基于排版模板的照片自动排版方法的示意性流程图;图2为根据本发明另一实施例提供的一种基于排版模板的照片自动排版方法的示意性流程图;图3为根据本发明另一实施例提供的一种基于排版模板的照片自动排版方法的示意性流程图;图4为根据本发明另一实施例提供的一种基于排版模板的照片自动排版方法的示意性流程图;图5为本发明实施例中的第一排版结果的示意图;图6为本发明实施例中的在目标矩形中放入待排版照片的一个示意图;图7为本发明实施例中的一种最终排版结果的示意图。附图标记1目标排版模板2第一待排版照片3目标矩形4第二待排版照片5第三待排版照片6第四待排版照片具体实施方式下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。图1是根据本发明实施例提供的一种基于排版模板的照片自动排版方法100的示意性流程图。如图1所示的照片自动排版方法100包括:110,获取待排版照片。111,从已存储的排版模板中,确定目标排版模板,目标排版模板为排版模板中未标记为已完成的排版模板之一。112,将目标排版模板上的照片替换为第一待排版照片,第一待排版照片为待排版照片中与目标排版模板上的照片的尺寸相同的照片。113,根据替换结果,确定排版结果或重新确定目标排版模板。例如,在该实施例中,可以将所有的待排版照片添加到排版系统中,然后从已存储的排版模板中选择一个未标记为已完成的排版模板为目标排版模板,用待排版照片中与目标排版模板上的照片尺寸相同的待排版照片,替换目标排版模板上的照片,并根据替换结果确定排版结果或者重新选择一个目标排版模板。上述实施例提供的一种基于排版模板的照片自动排版方法,通过从已存储的排版模板中选择的目标排版模板,并将与目标排版模板中尺寸相同的照片替换为待排版照片,再根据替换结果确定排版结果或者重新选择目标排版模板,可以使得排版模板被充分利用,从而实现排版利用率达到或者高于专家人工排版,且排版利用率稳定,不会得到太差的排版结果。应理解,在该实施例中,可以在步骤110之前,可以将专家常用的或者专家人工排版过程中发现的优秀的排版方案存储到排版系统中,作为本发明实施例中的排版模板。可选地,在一个实施例中,如图2所示,替换结果为全部替换成功时,照片自动排版方法100还可以包括:114,确定最终的排版结果。可选地,在另一个实施例中,替换结果为全部替换失败时,将目标排版模板标记为已完成,并从排版模板中重新选择一个目标排版模板。也就是说,在该实施例中,将目标排版模板标记为已完成,并返回步骤111。可选地,在一个实施例中,如图3所示,步骤113包括替换结果为部分替换成功时,确定第一排版结果。照片自动排版方法100还可以包括:120,根据待排版照片中的未替换照片,确定包络矩形集合。121,从包络矩形集合中选择目标矩形,目标矩形为包络矩形集合中能包含第二待排版照片的矩形,其中,第二待排版照片为未替换照片中尺寸最大的照片。122,将第二待排版照片放入目标矩形。123,根据放入结果,确定最终的排版结果。124,放入结果为放入失败时,确定最终的排版结果为第一排版结果。具体的,在该实施例中,可以在选择目标矩形之后,将目标矩形中已替换的照片从第一排版结果中移除,从而可以有效的提供排版模板的利用率。例如,在该实施例中,第一排版结果如图5所示。需要说明的是,在该实施例中,如果从包络矩形集合中选择目标矩形失败,则将目标排版模板标记为已完成,并重新选择目标排版模板。也就是说,当从包络矩形集合中选择目标矩形失败,则将目标排版模板标记为已完成,并返回步骤111。可选地,在一个实施例中,步骤120可以具体包括以下步骤:根据所有的未替换照片的左边界所在直线和右边界所在直线,确定垂直直线集合。根据所有的未替换照片的上边界所在直线和下边界所在直线,确定水平直线集合。分别对垂直直线集合和垂直直线集合进行笛卡儿乘积运算,得到两个二元组集合。对两个二元组集合进行笛卡儿乘积运算,得到四元组集合。对四元组集合中的每一个四元组(v1,v2,h1,h2),若v1,v2,h1,h2能组成一个面积大于0的矩形,且矩形不能完全包含第一排版结果中的任何照片,或矩形不与第一排版结果中的任何照片相交,将矩形放入包络矩形集合中,其中,v1,v2为垂直直线集合中的两条垂直直线,h1,h2为水平直线集合中的两条水平直线。例如,在该实施例中,垂直直线集合和水平直线集合分别可以标记为c和d,分别计算二元组集合e=c*c和f=d*d,再计算四元组集合k=e*f,其中,*为集合的笛卡儿乘积运算。对四元组k集合中的每一个四元组(v1,v2,h1,h2),其中,v1,v2是两条来自集合c的垂直直线,h1,h2是来自集合d的水平直线。如果v1,v2,h1,h2能够组成一个面积大于0的矩形,并且这个矩形不和第一排版结果中的任何照片部分相交,即能够完全包含照片,或者不和照片相交,则把这个包络矩形放入集合中。可选地,在一个实施例中,放入结果为放入成功时,如图4所示,照片自动排版方法100还包括:130,计算利用率,利用率为第二待排版照片的面积与目标矩形的面积的比值。131,比较利用率与预设阈值的大小关系,得到比较结果,其中,预设阈值为最小可接受的利用率;根据比较结果,确定最终的排版结果。132,比较结果为利用率大于预设阈值时,确定最终的排版结果为第一排版结果与第二待排版照片合并的排版方案。可选地,在一个实施例中,比较结果为利用率小于预设阈值时,且第二待排版照片放在目标矩形的左上角,照片自动排版方法100还包括:140,用第二待排版照片的右边界所在的直线将目标矩形中除去第二待排版照片的部分分为第一矩形和第二矩形。141,分别将第三待排版照片和第四待排版照片放入第一矩形和第二矩形,其中,第三待排版照片为能被第一矩形包含的未替换照片中除第二待排版照片之外尺寸最大的照片,第四待排版照片为能被第二矩形包含的未替换照片中除第二待排版照片之外尺寸最大的照片。142,根据所述第三待排版照片和所述第四待排版照片是否成功分别放入所述第一矩形和所述第二矩形,确定最终的排版结果。需要说明的是,在该实施例中,分别将第三待排版照片和第四待排版照片放入第一矩形和第二矩形的过程及之后的方法步骤与上述步骤123、130、131类似。具体的,在该实施例中,当所述第三待排版照片和所述第四待排版照片全部或其一放入成功时,照片自动排版方法100还可以包括以下步骤:计算第一利用率,第一利用率为放入的待排版照片的总面积与目标矩形的面积的比值。比较第一利用率与预设阈值的大小关系。当第一利用率大于预设阈值时,确定最终的排版结果为第一排版结果与放入的待排版照片合并的排版方案。例如:在该实施例中,放入的待排版照片可以为第二待排版照片、第三待排版照片和第四待排版照片(如图6所示),也可以为第二待排版照片和第三待排版照片,或者还可以为第二待排版照片和第四待排版照片。因此,最终的排版结果可以是第一排版结果与第二待排版照片、第三待排版照片和第四待排版照片合并的排版方案(如图7所示),或者可以是第一排版结果与第二待排版照片和第三待排版照片合并的排版方案,再或者是第一排版结果与第二待排版照片和第四待排版照片合并的排版方案。具体的,在该实施例中,当第一利用率小于预设阈值时,确定最终的排版结果为第一排版结果(如图5所示)。基于上述技术方案提供的一种基于排版模板的照片自动排版方法,通过从已存储的排版模板中选择的目标排版模板,并将与目标排版模板中尺寸相同的照片替换为待排版照片,再根据替换结果确定排版结果或者重新选择目标排版模板,可以使得排版模板被充分利用,从而实现排版利用率达到或者高于专家人工排版,且排版利用率稳定,不会得到太差的排版结果。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1