一种电子相册自动排版的方法与流程

文档序号:22324479发布日期:2020-09-25 17:52阅读:262来源:国知局

本发明涉及图像处理技术,更具体地说,它涉及一种电子相册自动排版的方法。



背景技术:

现有技术中,排版的图片数量固定,不灵活,难以满足不同用户的需求。現有技术在模板相框和图片配对时没有考虑横竖格式,导致相片放到相框后相片的主体被裁走,排版效果不佳。



技术实现要素:

针对现有技术存在的不足,本发明的目的在于提供一种电子相册自动排版的方法,可以使排版的图片数量灵活,可以满足不同用户的需求、达到最佳的自动排版效果。

为实现上述目的,本发明提供了如下技术方案:

一种电子相册自动排版的方法,其特征是,包括以下步骤:

s1、上传需要排版的相片,并将相片按照拍摄时间进行排序,根据选取的模板尺寸确定每页排版的相片数量范围,进而确定每页排版的相片基准数;

s2、根据相片基准数,通过计算确定每页的相片数;

s3、统计若干张相片的横竖状态,并将这些相片的横竖状态格式化;

s4、根据格式化的结果和相片与模板的尺寸、长宽比选取最佳模板;

s5、选取第k张相片,根据该张相片的尺寸和与选取的模板的相框尺寸确定相片的缩放比例,并将缩放后的相片放置到相框中;

s6、重复上述步骤,直至所有相片都放置到模板中。

作为优选方案,还包括对相片中的人脸进行识别的步骤,具体为:

(a)、通过人脸识别技术分析相片中的人脸数据,并获取相片内所有人脸区域的坐标范围;

(b)、取得人脸区域的最小和最大横纵坐标;

(c)、判断最大横坐标与最小横坐标之差是否小于等于模板中的相框的长度,若满足则跳到d步骤,否则再判断当前执行a步骤的次数是否为奇数,若为奇数次,则去掉最小横坐标对应的人脸坐标范围,再执行a和b步骤;否则去掉最大横坐标对应的人脸坐标范围,再执行a和b步骤,直至满足该条件;

(d)、判断最大纵坐标和最小纵坐标之差是否小于等于模板中相框的宽度,若满足则跳到步骤e,否则再判断当前执行步骤a的次数是否为奇数,若是奇数,则去掉最小纵坐标对应的人脸坐标范围,再执行a和c步骤;否则去掉最大纵坐标对应的人脸坐标范围,再执行a和c步骤,直至满足该条件;

(e)、确定相片在相框中的坐标位置。

作为优选方案:在s1步骤中,设定上传的相片数量为s,一页相片的排版数量范围为[pmin,pmax],则每页排版的相片基数排版的页数

作为优选方案,s2步骤中具体的做法为:(ⅰ)、随机选取每页的相片数数值选取的权重p最大,并向两边递减;(ⅱ)、选取的所有每页相片数之和需满足否则将xi清零,重复执行(ⅰ)步骤,直到该条件满足。

作为优选方案:在s4步骤中格式化的方法为,统计xi张相片的横竖格式,并将横竖转换成二进制数值bi,其中横是1,竖是0。

作为优选方案,在s5步骤中:通过bi在模板数据库中快速查找出横竖格式相同的q个模板,其中q≥1,第k张相片的分辨率长度ak,宽度bk,则该相片的面积sk=ak*bk,长宽比rk=ak/bk;模板tj中的第k个相框长度ajk,宽度bjk,则该相框的面积sjk=ajk*bjk,长宽比rjk=ajk/bjk,第j个模板的比较参考值:选取到最佳模板tn,它的比较参考值fn=min(f1,f2,…,fq)。

作为优选方案,在s6步骤中:选取第k张相片和模板tn的第k个相框,它们的长度比rka=ak/ank,宽度比rkb=bk/bnk,相片的缩放比例rk=min(rka,rkb),相片按rk比例缩放后的长a′k=ak*rk,宽b′k=bk*rk,相片居中放置到相框范围的左上角坐标右下角坐标

作为优选方案,在e步骤中:第k张相片放置到模板tn第k个相框范围的左上角坐标是(x0,y0),右下角坐标是(x′0,y′0),若则x0=xmin,x′0=xmin+ank;若则x0=xmax-ank,x′0=xmax;否则同理,若则y0=ymin,y′0=ymin+bnk;若则y0=ymax-ynk,y′0=ymax;否则+bnk。

与现有技术相比,本发明的优点是:利用该方法,排版的图片数量灵活,可以满足不同用户的需求;根据图片数据统计和分析,选取了最合适的模板,达到最佳的自动排版效果。

具体实施方式

1.上传需要排版的相片,数量为s,并将相片按照拍摄时间进行排序。根据选取的模板尺寸,一页排版的相片数量范围是[pmin,pmax],则每页排版的相片基准数

排版的页数

2.随机选取每页的相片数数值选取的权重p最大,并向两边递减。

3.选取的所有每页相片数之和需满足否则将xi清零,重复执行步骤2,直到该条件满足。

4.统计xi张相片的横竖格式,并将横竖转换成二进制数值bi,其中横是1,竖是0(如:6张相片横竖格式是“横竖竖横竖横”,则转换为“100101”)。

5.通过bi在模板数据库中快速查找出横竖格式相同的q个模板,其中q≥1。然后通过对比相片与模板相框的面积和长宽比来选取最佳模板。方法如下:第k张相片的分辨率长度ak,宽度bk,则该相片的面积sk=ak*bk,长宽比rk=ak/bk;模板tj中的第k个相框长度ajk,宽度bjk,则该相框的面积sjk=ajk*bjk,长宽比rjk=ajk/bjk。

第j个模板的比较参考值:

选取到最佳模板tn,它的比较参考值fn=min(f1,f2,…,fq)。

6.选取第k张相片和模板tn的第k个相框,它们的长度比rka=ak/ank,宽度比rkb=bk/bnk,相片的缩放比例rk=min(rka,rkb),相片按rk比例缩放后的长a′k=ak*rk,宽b′k=bk*rk。相片居中放置到相框范围的左上角坐标右下角坐标

通过该步骤可以将相片按照比例缩放到最接近相框的大小,然后计算居中放置到相框中相片的坐标范围。

7.通过人脸识别技术分析第k张相片的人脸数据,m个人脸范围的左上角坐标(x11,y11),(x21,y21),…,(xm1,ym1),对应的右下角坐标(x12,y12),(x22,y22),…,(xm2,ym2),其中m≥0。

8.取所有人脸最小的横坐标xmin=min(x11,x21,…,xm1),最大的横坐标xmax=max(x12,x22,…,xm2),最小的纵坐标ymin=min(y11,y21,…,ym1),最大的纵坐标ymax=max(y12,y22,…,ym2)。

通过该步骤可以将所有人脸区域合并为一个大区域(即取所有人脸区域坐标的并集)。

9.判断是否满足条件1xmax-xmin≤ank,若满足则跳到步骤10;否则再判断当前执行步骤7的次数c,若是奇数,去掉xmin对应的人脸坐标范围,再执行步骤7、8,否则去掉xmax对应的人脸坐标范围,再执行步骤7、8。直至满足条件。

通过该步骤先是判断总的人脸区域长度是否超过相框长度,如果超过就将边缘的人脸范围去掉,重新计算总的人脸区域范围,再跟相框长度进行比较,直到总的人脸区域在相框长度内。

10.判断是否满足条件2ymax-ymin≤bnk,若满足则跳到步骤11;否则再判断当前执行步骤7的次数c,若是奇数,去掉ymin对应的人脸坐标范围,再执行步骤7,9,否则去掉ymax对应的人脸坐标范围,再执行步骤7,9。直至满足条件2。

通过该步骤先是判断总的人脸区域宽度是否超过相框宽度,如果超过就将边缘的人脸范围去掉,重新计算总的人脸区域范围,再跟相框宽度进行比较,直到总人脸区域在相框宽度内。

11.第k张相片放置到模板tn第k个相框范围的左上角坐标是(x0,y0),右下角坐标是(x′0,y′0)。若则x0=xmin,x′0=xmin+ank;若则x0=xmax-ank,x′0=xmax;否则同理,若则y0=ymin,y′0=ymin+bnk;若则y0=ymax-ynk,y′0=ymax;否则

通过该步骤将总的人脸区域与步骤6计算出的相片范围进行比较,得出最佳的相片放置范围。

12.重复执行步骤6-11,直至x张相片都放置到模板tn中。

13.重复执行步骤4-12,直至n页模板排版完成。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1