一种全景照片自动拼合方法与流程

文档序号:17331511发布日期:2019-04-05 22:06阅读:203来源:国知局
一种全景照片自动拼合方法与流程

本发明涉及图像处理技术领域,更具体地,涉及一种全景照片自动拼合方法。



背景技术:

随着电子技术以及计算机应用技术的成熟,大量的智能设备,例如,数码相机、平板电脑、智能移动电话、个人计算机(pc,personalcomputer)中装载有大量的应用程序,能够在日常生活中为广大用户带来极大的便利。其中,应用程序的开发人员为了满足用户不断增长的界面美感需求,需要在该应用程序的代码编写过程中,使用大量的图片资源,以使应用程序界面美观、动画流畅。以应用程序加载可执行文件对应的界面为例,可执行文件是指在特定操作系统上面,可以被该操作系统运行的文件,包含由多个不同逻辑单元(例如资源段、代码段、常量段)组合在一起的可执行文件段(节),其中,资源段又包括:对话框、快捷键、菜单、字符串、版本信息以及图片资源等。由于在可执行文件加载(运行)过程中需要使用大量的图片资源,图片资源的大量使用会使得可执行文件的资源段的容量增大非常多,所需资源空间大,从而导致可执行文件非常大。而大容量的资源段不仅导致应用程序在启动时速度非常慢,还需要消耗操作系统的大量内存、内核对象等资源,导致智能设备中各应用程序运行缓慢,运行效率低,降低了用户的业务体验。

现有技术中,申请号为cn201510378755.x的中国发明专利申请公开了一种拼合图片资源的方法及图片资源拼合装置。方法包括:按照预设的图片尺寸阈值调整应用程序运行所需的图片资源;以预定义的分割线将一空白图片模板划分为多个空白图片子模板,所述空白图片子模板的尺寸与图片尺寸阈值相同;依次将调整的图片资源置于对应的空白图片子模板中,构建空白图片子模板与调整的图片资源的映射关系,生成拼合的图片资源;在应用程序加载图片资源时,查询映射关系得到待加载图片资源所在的空白图片子模板,从所述得到的空白图片子模板中提取所述待加载的图片资源进行加载。然而,该方法需要规定照片的规格和尺寸(通常尺寸往往限制于形状),从而使得模板的划分成为了非规则照片拼合的阻碍。此外,对于映射的产生该技术方案也不具备较强的可操作性。



技术实现要素:

为了提升图片拼合的自动化水平和智能化水平,本发明提供了一种全景照片自动拼合方法,包括:

(a)对照片进行归类识别;

(b)对经过识别的照片进行拼合。

进一步地,所述步骤(a)包括:

(101)将m张照片以第一随机方式分成多个m1组,其中至少m1-1组包括n张照片,记该包括n张照片的组为第一标准组,包括照片数非n的那一组记为第一非标准组;

(102)对各标准组进行如下处理:对组内的第一照片进行前景处理得到第一背景图bk_1;对第二照片进行前景处理得到第二背景图bk_2;以此类推,对第n照片进行前景处理得到第n背景图bk_n;以bk_1、bk_2、…、bk_n组成数列,计算该数列中每个背景图的红色像素rx、绿色像素gx、蓝色像素bx、白色像素wx、色温kx和饱和度sx,其中x=1,2,…,n,以色温kx和饱和度sx分别组成序列k和s,以红色像素rx、绿色像素gx、蓝色像素bx、白色像素wx分别组成红色像素序列r、绿色像素序列g、蓝色像素序列b和白色像素序列w;

(103)取序列k中的最小值和最大值并将序列k中的各元素从小到大进行排列,再以此经过排列的序列k中各背景图的顺序将序列s中的各背景图对应的饱和度sx重新排列;

(104)设序列s中的最小值和最大值对应的背景图的饱和度分别为sp和sq,其中p和q均为大于或等于1且小于n的正整数,计累积次数num为{1,2,…,n}的算术平均数的下整数,在经过上述处理的序列s中sp和sq之间的各饱和度范围内以sp和sq的几何平均值为初始值对((sp*ri+sp*gi+sq*bi+sq*wi)/(sq*ri+sq*gi+sp*bi+sp*wi))*(sq/sp)+((sp*ri+sp*bi+sq*gi+sq*wi)/(sq*ri+sq*bi+sp*gi+sp*wi))*(sq/sp)+((sp*ri+sp*wi+sq*bi+sq*bi)/(sq*ri+sq*wi+sp*bi+sp*bi))*(sp/sq)进行num次迭代,对得到的最终迭代值取上整数m后再加上num得到的和取几何平均值再取上整数,将得到的值赋给num,且该最终迭代值的除以num得到的值记作饱和度平均值s平;

(105)取序列s中的最小值和最大值并将序列s中的各元素从小到大进行排列,再以此经过排列的序列s中各背景图的顺序将序列k中的各背景图对应的饱和度kx重新排列;

(106)设序列k中的最小值和最大值对应的背景图的色温分别为kp和kq,其中p和q均为大于或等于1且小于n的正整数,在经过上述处理的序列k中kp和kq之间的各色温范围内以kp和kq的几何平均值为初始值对((kp*ri+kp*gi+kq*bi+kq*wi)/(kq*ri+kq*gi+kp*bi+kp*wi))*(kq/kp)+((kp*ri+kp*bi+kq*gi+kq*wi)/(kq*ri+kq*bi+kp*gi+kp*wi))*(kq/kp)+((kp*ri+kp*wi+kq*bi+kq*bi)/(kq*ri+kq*wi+kp*bi+kp*bi))*(kp/kq)进行num次迭代,对得到的最终迭代值除以此时的num得到的值记作色温平均值k平;

(107)对色温序列k中的各个元素除以色温平均值k平的模值,对饱和度序列s中的各个元素除以饱和度平均值s平的模值,从而分别得到第二色温序列k’和第二饱和度序列s’;

(108)计算数列k’的标准差αk和方差βk;计算数列s’的标准差αs和方差βs;确定αk和βk是否均小于预设第一阈值且αk和βk是否均小于第二阈值,若均小于则保持该标准组,否则将该标准组记为待重新组合组;

(109)将各所述待重新组合组中的全部照片,如果待重新组合组的数量非零的话,以及第一非标准组中的全部照片,共同以不同于第一随机方式的第二随机方式分成m2组,其中至少m2-1组包括(n-1)张照片,记该包括(n-1)张照片的组为第二标准组,包括照片数非n的那一组记为第二非标准组;

(110)重复步骤(102)至步骤(109),直到同时满足以下两个条件为止:

条件一:n=1;

条件二:αk、βk均小于第一阈值,或αs和βs均小于第二阈值;

(111)确定经过步骤(110)后得到的各标准组为第x标准组和第x非标准组,则对于每两个第x标准组分别计算各个第x标准组的αk*αs且计算这两个αk*αs之间的差值的平方的和是否小于预设归类阈值,如果是则进行这两个第x标准组的合并;

(112)将该合并得到的组作为一个新的第x标准组来替代被合并的两个第x标准组,再重复步骤(111),从而最终对于所述m张照片得到e组最终标准组和一个最终非标准组,其中e为大于1且小于n的正整数;

(113)将所述e组最终标准组内各个照片替换为对应的原照片。

进一步地,所述步骤(b)包括:

(201)对e组最终标准组中的照片进行边缘模糊化处理;

(202)根据模糊化处理结果对照片进行拼合。

进一步地,所述步骤(201)包括:

(2011)对所述最终标准组的每一张照片l,l为大于1且小于n的正整数,获得该照片边缘模糊化区域像素lr,该边缘模糊化区域像素lr包括如下序列:红色像素rxlr、绿色像素gxlr、蓝色像素bxlr、白色像素wxlr,所述边缘区域为该照片边缘向该照片中心方向的一邻域,在从照片边缘区域到照片中心的方向上,该邻域的长度为照片边缘到照片中心长度的1/10;

(2012)在角度angle对应的方向上,其中angle取值范围为从45°~315°且变化间隔为90°,对于各个照片l的各个边缘区域lr,计算在角度angle的方向上红色像素rxl两两之间的相似度simrxl、绿色像素两两之间的相似度simgxl、蓝色像素两两之间的相似度simbxl、白色像素两两之间的相似度simwxl;

(2013)对于各个边缘区域lr,以simrxl*simgxl*simbxl*simwxl最小的边缘区域lr为初始值,取2个照片的边缘区域lr1、lr2的相似度,计算这2个照片的边缘区域的相似度的乘积差,即simrxl_lr1*simgxl_lr1*simbxl_lr1*simwxl_lr1-

simrxl_lr2*simgxl_lr2*simbxl_lr2*simwxl_lr2,将所得到的差进行排序,将得到的排序对应的各个照片的边缘区域的相似度再次进行上述乘积差计算,且再次进行排序,得到在角度angle上整理后的照片序列;

(2014)以步骤(2012)到步骤(2013)的方式,遍历angle的其他取值,遍历过程中angle=angle+90°,得到在所有角度angle上整理后的照片序列。

进一步地,所述步骤(202)包括:

(2021)将照片pi在315°~45°角度范围内对应的模糊化区域与照片pj在135°~225°角度范围内对应的边缘模糊化区域像素进行卷积,卷积值的模值小于预设阈值的将照片pj设置于第一备选库,否则如果j≠n则令j=j+1,其中i为1,2,…,n的正整数,j为1,2,…,n的正整数,且j≠i;

(2022)将照片pi在45°~135°角度范围内对应的模糊化区域与照片pj在225°~315°角度范围内对应的边缘模糊化区域像素进行卷积,卷积值的模值小于预设阈值的将照片pj设置于第二备选库,否则如果j≠n则令j=j+1;

(2023)从第一备选库中选出照片pk1,在45°~135°角度范围内照片pk1对应的模糊化区域与照片pm在225°~315°角度范围内对应的模糊化区域进行卷积,卷积值的模值小于预设阈值的将照片pm设置于第三备选库,其中m为1,2,…,n的正整数且m≠k1,m≠k2,如果m≠n则令m=m+1并再次令照片pk1与照片pm进行上述卷积再判断是否将照片pm设置于第三备选库,重复该过程直至m=n-1为止;所述照片pk1来自所有照片除了第一备选库和第二备选库之外剩余的照片;

(2024)从第二备选库中选出照片pk2,在315°~45°角度范围内照片pk2对应的模糊化区域与照片pn在135°~225°角度范围内对应的模糊化区域进行卷积,卷积值的模值小于预设阈值的将照片pn设置于第四备选库,其中n为1,2,…,n的正整数且n≠k1,n≠k2,如果n≠n则令n=n+1,并再次令照片pk2与照片pn进行上述卷积再判断是否将照片pn设置于第四备选库,重复该过程直至n=n-1为止;所述照片pk2来自所有照片除了第一备选库、第二备选库和第三备选库之外剩余的照片;

(2025)确定第三备选库与第四备选库是否存在相同的照片,即同一照片,如果存在则将第三备选库和第四备选库清空并用全部同一照片设置到第三备选库;否则令k1=k1+1并重复步骤(2023)和步骤(2024)直至k1=n-1;

(2026)确定第三备选库与第四备选库是否存在相同的照片,即同一照片,如果存在则将第三备选库和第四备选库清空并用全部同一照片设置到第三备选库;否则令k2=k2+1并重复步骤(2023)和步骤(2024)直至k2=n-1;

(2027)若所述同一照片数量大于1,则将模糊化区域减小1/2,清空第一备选库至第四备选库并重复步骤(2021)至步骤(2027),直至同一照片数量等于1为止;

(2028)将所述同一照片替换为照片pk1,清空第一备选库至第四备选库并重复步骤(2021)至步骤(2027),直至第三备选库和第四备选库不存在所述同一照片为止;

(2029)重复步骤(2021)至步骤(2028),其中每次重复时照片pi、pj、pk1、pk2、pm、pn涉及到的角度范围均增加90°,直到恢复到pi照片在角度315°~45°角度范围、pj在135°~225°角度范围、pk1在45°~135°角度范围、pk2在315°~45°角度范围、pm在225°~315°角度范围且pn在135°~225°角度范围为止。

进一步地,所述步骤(a)中前景处理包括:

识别人脸并确定人脸位置;

识别与所述被识别的人脸相关联的身体轮廓;

在照片中去除被识别的人脸及以及被识别的身体轮廓。

进一步地,所述不同照片的像素序列的两两之间的相似度是通过计算两个照片的像素序列之间的互相关系数表征的。

本发明具有如下的有益效果:能够针对保存为.jpeg、.jpg、.png、.bmp等数码照片格式的照片进行自动拼合,从而突破了只有自身带有拼合功能的照相设备才能实现照相自动拼合的弊端,使得图片自动拼合技术的自动化和智能化水平大大提升。尤其是应用本发明后,照片的尺寸、形状和规格可以是任意的、彼此不一致的,极大地丰富了人机交互体验。

附图说明

图1示出了根据本发明的拼合方法的流程框图。

具体实施方式

本发明提供了一种全景照片自动拼合方法,包括:

(a)对照片进行归类识别;

(b)对经过识别的照片进行拼合。

优选地,所述步骤(a)包括:

(101)将m张照片以第一随机方式分成多个m1组,其中至少m1-1组包括n张照片,记该包括n张照片的组为第一标准组,包括照片数非n的那一组记为第一非标准组;

(102)对各标准组进行如下处理:对组内的第一照片进行前景处理得到第一背景图bk_1;对第二照片进行前景处理得到第二背景图bk_2;以此类推,对第n照片进行前景处理得到第n背景图bk_n;以bk_1、bk_2、…、bk_n组成数列,计算该数列中每个背景图的红色像素rx、绿色像素gx、蓝色像素bx、白色像素wx、色温kx和饱和度sx,其中x=1,2,…,n,以色温kx和饱和度sx分别组成序列k和s,以红色像素rx、绿色像素gx、蓝色像素bx、白色像素wx分别组成红色像素序列r、绿色像素序列g、蓝色像素序列b和白色像素序列w;

(103)取序列k中的最小值和最大值并将序列k中的各元素从小到大进行排列,再以此经过排列的序列k中各背景图的顺序将序列s中的各背景图对应的饱和度sx重新排列;

(104)设序列s中的最小值和最大值对应的背景图的饱和度分别为sp和sq,其中p和q均为大于或等于1且小于n的正整数,计累积次数num为{1,2,…,n}的算术平均数的下整数,在经过上述处理的序列s中sp和sq之间的各饱和度范围内以sp和sq的几何平均值为初始值对((sp*ri+sp*gi+sq*bi+sq*wi)/(sq*ri+sq*gi+sp*bi+sp*wi))*(sq/sp)+((sp*ri+sp*bi+sq*gi+sq*wi)/(sq*ri+sq*bi+sp*gi+sp*wi))*(sq/sp)+((sp*ri+sp*wi+sq*bi+sq*bi)/(sq*ri+sq*wi+sp*bi+sp*bi))*(sp/sq)进行num次迭代,对得到的最终迭代值取上整数m后再加上num得到的和取几何平均值再取上整数,将得到的值赋给num,且该最终迭代值的除以num得到的值记作饱和度平均值s平;

(105)取序列s中的最小值和最大值并将序列s中的各元素从小到大进行排列,再以此经过排列的序列s中各背景图的顺序将序列k中的各背景图对应的饱和度kx重新排列;

(106)设序列k中的最小值和最大值对应的背景图的色温分别为kp和kq,其中p和q均为大于或等于1且小于n的正整数,在经过上述处理的序列k中kp和kq之间的各色温范围内以kp和kq的几何平均值为初始值对((kp*ri+kp*gi+kq*bi+kq*wi)/(kq*ri+kq*gi+kp*bi+kp*wi))*(kq/kp)+((kp*ri+kp*bi+kq*gi+kq*wi)/(kq*ri+kq*bi+kp*gi+kp*wi))*(kq/kp)+((kp*ri+kp*wi+kq*bi+kq*bi)/(kq*ri+kq*wi+kp*bi+kp*bi))*(kp/kq)进行num次迭代,对得到的最终迭代值除以此时的num得到的值记作色温平均值k平;

(107)对色温序列k中的各个元素除以色温平均值k平的模值,对饱和度序列s中的各个元素除以饱和度平均值s平的模值,从而分别得到第二色温序列k’和第二饱和度序列s’;

(108)计算数列k’的标准差αk和方差βk;计算数列s’的标准差αs和方差βs;确定αk和βk是否均小于预设第一阈值且αk和βk是否均小于第二阈值,若均小于则保持该标准组,否则将该标准组记为待重新组合组;

(109)将各所述待重新组合组中的全部照片,如果待重新组合组的数量非零的话,以及第一非标准组中的全部照片,共同以不同于第一随机方式的第二随机方式分成m2组,其中至少m2-1组包括(n-1)张照片,记该包括(n-1)张照片的组为第二标准组,包括照片数非n的那一组记为第二非标准组;

(110)重复步骤(102)至步骤(109),直到同时满足以下两个条件为止:

条件一:n=1;

条件二:αk、βk均小于第一阈值,或αs和βs均小于第二阈值;

(111)确定经过步骤(110)后得到的各标准组为第x标准组和第x非标准组,则对于每两个第x标准组分别计算各个第x标准组的αk*αs且计算这两个αk*αs之间的差值的平方的和是否小于预设归类阈值,如果是则进行这两个第x标准组的合并;

(112)将该合并得到的组作为一个新的第x标准组来替代被合并的两个第x标准组,再重复步骤(111),从而最终对于所述m张照片得到e组最终标准组和一个最终非标准组,其中e为大于1且小于n的正整数;

(113)将所述e组最终标准组内各个照片替换为对应的原照片。

优选地,所述步骤(b)包括:

(201)对e组最终标准组中的照片进行边缘模糊化处理;

(202)根据模糊化处理结果对照片进行拼合。

优选地,所述步骤(201)包括:

(2011)对所述最终标准组的每一张照片l,l为大于1且小于n的正整数,获得该照片边缘模糊化区域像素lr,该边缘模糊化区域像素lr包括如下序列:红色像素rxlr、绿色像素gxlr、蓝色像素bxlr、白色像素wxlr,所述边缘区域为该照片边缘向该照片中心方向的一邻域,在从照片边缘区域到照片中心的方向上,该邻域的长度为照片边缘到照片中心长度的1/10;

(2012)在角度angle对应的方向上,其中angle取值范围为从45°~315°且变化间隔为90°,对于各个照片l的各个边缘区域lr,计算在角度angle的方向上红色像素rxl两两之间的相似度simrxl、绿色像素两两之间的相似度simgxl、蓝色像素两两之间的相似度simbxl、白色像素两两之间的相似度simwxl;

(2013)对于各个边缘区域lr,以simrxl*simgxl*simbxl*simwxl最小的边缘区域lr为初始值,取2个照片的边缘区域lr1、lr2的相似度,计算这2个照片的边缘区域的相似度的乘积差,即simrxl_lr1*simgxl_lr1*simbxl_lr1*simwxl_lr1-simrxl_lr2*simgxl_lr2*simbxl_lr2*simwxl_lr2,将所得到的差进行排序,将得到的排序对应的各个照片的边缘区域的相似度再次进行上述乘积差计算,且再次进行排序,得到在角度angle上整理后的照片序列;

(2014)以步骤(2012)到步骤(2013)的方式,遍历angle的其他取值,遍历过程中angle=angle+90°,得到在所有角度angle上整理后的照片序列。

优选地,所述步骤(202)包括:

(2021)将照片pi在315°~45°角度范围内对应的模糊化区域与照片pj在135°~225°角度范围内对应的边缘模糊化区域像素进行卷积,卷积值的模值小于预设阈值的将照片pj设置于第一备选库,否则如果j≠n则令j=j+1,其中i为1,2,…,n的正整数,j为1,2,…,n的正整数,且j≠i;

(2022)将照片pi在45°~135°角度范围内对应的模糊化区域与照片pj在225°~315°角度范围内对应的边缘模糊化区域像素进行卷积,卷积值的模值小于预设阈值的将照片pj设置于第二备选库,否则如果j≠n则令j=j+1;

(2023)从第一备选库中选出照片pk1,在45°~135°角度范围内照片pk1对应的模糊化区域与照片pm在225°~315°角度范围内对应的模糊化区域进行卷积,卷积值的模值小于预设阈值的将照片pm设置于第三备选库,其中m为1,2,…,n的正整数且m≠k1,m≠k2,如果m≠n则令m=m+1并再次令照片pk1与照片pm进行上述卷积再判断是否将照片pm设置于第三备选库,重复该过程直至m=n-1为止;所述照片pk1来自所有照片除了第一备选库和第二备选库之外剩余的照片;

(2024)从第二备选库中选出照片pk2,在315°~45°角度范围内照片pk2对应的模糊化区域与照片pn在135°~225°角度范围内对应的模糊化区域进行卷积,卷积值的模值小于预设阈值的将照片pn设置于第四备选库,其中n为1,2,…,n的正整数且n≠k1,n≠k2,如果n≠n则令n=n+1,并再次令照片pk2与照片pn进行上述卷积再判断是否将照片pn设置于第四备选库,重复该过程直至n=n-1为止;所述照片pk2来自所有照片除了第一备选库、第二备选库和第三备选库之外剩余的照片;

(2025)确定第三备选库与第四备选库是否存在相同的照片,即同一照片,如果存在则将第三备选库和第四备选库清空并用全部同一照片设置到第三备选库;否则令k1=k1+1并重复步骤(2023)和步骤(2024)直至k1=n-1;

(2026)确定第三备选库与第四备选库是否存在相同的照片,即同一照片,如果存在则将第三备选库和第四备选库清空并用全部同一照片设置到第三备选库;否则令k2=k2+1并重复步骤(2023)和步骤(2024)直至k2=n-1;

(2027)若所述同一照片数量大于1,则将模糊化区域减小1/2,清空第一备选库至第四备选库并重复步骤(2021)至步骤(2027),直至同一照片数量等于1为止;

(2028)将所述同一照片替换为照片pk1,清空第一备选库至第四备选库并重复步骤(2021)至步骤(2027),直至第三备选库和第四备选库不存在所述同一照片为止;

(2029)重复步骤(2021)至步骤(2028),其中每次重复时照片pi、pj、pk1、pk2、pm、pn涉及到的角度范围均增加90°,直到恢复到pi照片在角度315°~45°角度范围、pj在135°~225°角度范围、pk1在45°~135°角度范围、pk2在315°~45°角度范围、pm在225°~315°角度范围且pn在135°~225°角度范围为止。

优选地,所述步骤(a)中前景处理包括:

识别人脸并确定人脸位置;

识别与所述被识别的人脸相关联的身体轮廓;

在照片中去除被识别的人脸及以及被识别的身体轮廓。

优选地,所述不同照片的像素序列的两两之间的相似度是通过计算两个照片的像素序列之间的互相关系数表征的。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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