图像畸变校正方法及装置与流程

文档序号:24337677发布日期:2021-03-19 12:18阅读:131来源:国知局
图像畸变校正方法及装置与流程

技术邻域

本申请涉及图像处理技术,尤其涉及图像畸变校正方法及装置。



背景技术:

随着信息技术的发展,终端(如手机)集成越来越多的功能,摄影功能已成为终端重要的功能之一。近年来,随着终端镜头视场角越来越大,终端所拍摄图像中的人像图像畸变问题变得越来越显著。

图像畸变是由于大视场短焦距光学系统不满足针孔模型,不同视场的主光线通过光学系统后与高斯像面的焦点高度不等于理想像高,使得实际像点偏离理想像点,从而图像中的内容出现拉伸、扭曲等几何形状的变形失真。例如,对于具有广角镜头的手机,能获取较大视场的图像,但也容易引入显著的图像畸变,比如所拍摄图像中位于图像外侧(即视场角度较大)的人像会呈现更大的变形失真。因此,需要对出现图像畸变的图像进行校正,使得图像符合人眼视觉。

在一种现有解决方案中,通过检测算法在摄像头采集的源图像(原始图像)中确定出人物矩形区域与背景区域,为人物矩形区域建立单应性约束,以校正人物矩形区域中出现的拉伸变形;通过直线检测算法确定背景区域中的直线区域,为直线区域建立直线性约束,以保证校正后的直线不出现弯曲;还为人物矩形区域与背景区域建立单应性兼容约束,保证这两个区域的直线边界的连续性,从而渲染获得最终的校正图像。

然而,由于该方案需要在源图像上标定直线,最终的图像校正效果会受到直线检测精度的影响。另外,该方案只能整体性校正人像,导致最终的人像未能真正符合人眼视觉,如图1中的(1)中的左侧图像为校正前图像,右侧图像为校正后图像,可以看到校正后图像中左边人物身体未能得到校正。此外,该方案还容易导致背景区域出现断层现象,如图1中的(2)中的左侧图像为校正前图像,右侧图像为校正后图像,可以看到校正后图像中人物背景的直线内容出现了断层、不连贯的状况。

所以,如何实现较自然的图像畸变校正依然是一种严峻的技术挑战。



技术实现要素:

本申请实施例提供了图像畸变校正方法及装置,能够解决现有技术缺陷,实现较自然的图像畸变校正,提升用户使用体验。

第一方面,本申请实施例提供了一种图像畸变校正方法,该方法可应用于终端,方法包括:对采集的源图像进行光学畸变校正,获得第一校正图像;所述第一校正图像包括背景区域和具有拉伸变形的人像,所述拉伸变形的人像至少包括拉伸变形的第一人体区域和拉伸变形的第二人体区域;对所述第一人体区域、所述第二人体区域和所述背景区域进行算法约束校正,获得第二校正图像,其中,所述算法约束校正采用的约束项分别约束所述第一人体区域、第二人体区域以及背景区域。具体的,所述第一人体区域、所述第二人体区域对应的约束项是基于不同的投影算法而确定的,从而所述第一人体区域、所述第二人体区域可实现不同变形量,进而使得所述第一人体区域和所述第二人体区域的拉伸变形分别得到校正;所述背景区域的约束项用于约束所述第二校正图像的背景区域,使得所述背景区域的图像内容无扭曲,所述背景区域中贯穿所述人像的图像内容在人眼视觉中无断层现象;所述第一人体区域、所述第二人体区域和所述背景区域之间过渡平滑、自然。

可以看到,本申请方案中,终端可对光学畸变校正后的图像(即第一校正图像)分区域(包括第一人体区域,第二人体区域,背景区域)进行算法约束校正处理,其中,对人像的第一人体区域和第二人体区域的约束中,分别基于不同的投影算法进行形状校正,确保人像得到最好的校正。通过对背景图像的约束,确保背景区域的图像内容不会由于前景校正而导致背景扭曲或断层现象。所以实施本申请方案能够确保图像被校正后,人像和背景内容均能自然、连贯、协调,符合人眼视觉习惯,极大提高用户使用体验。

基于第一方面,在可能的实施方式中,所述第一校正图像还包括视场边缘区域,视场边缘区域为第一校正图像中位于图像边缘的条带区域;所述对所述第一人体区域、所述第二人体区域和所述背景区域进行算法约束校正,获得第二校正图像,包括:对所述第一人体区域、所述第二人体区域、所述背景区域和所述视场边缘区域进行算法约束校正,获得所述第二校正图像。

实施本申请实施例,通过对视场边缘区域进行边界约束,可以减少避免出现视场损失问题,减少裁切带来的内容损失,提高用户使用体验。

基于第一方面,在可能的实施方式中,所述第一人体区域包括所述人像的头部区域,所述第二人体区域包括所述人像的身体区域。

由于人像的头部区域和身体区域的拉伸变形量和变形方式有所差异,头部区域和身体区域的面积不同,用户对其变形的容忍度有所不同。实施本申请实施例,可对人像的头部区域、身体区域、背景区域和视场边缘区域进行算法约束校正处理,从而能分别针对头部区域和身体区域的变形进行优化,确保人像得到最好的校正。

基于第一方面,在可能的实施方式中,所述对所述第一人体区域、所述第二人体区域、所述背景区域和所述视场边缘区域进行算法约束校正,获得所述第二校正图像,包括:

确定所述第一校正图像中的所述头部区域、所述身体区域、所述背景区域和所述视觉边缘区域分别对应的初始图像矩阵;

构建所述头部区域、所述身体区域、所述背景区域和所述视场边缘区域分别对应的约束项;

以及,构建用于所述第一校正图像的正则约束项;根据所述头部区域、所述身体区域、所述背景区域和所述视场边缘区域分别对应的约束项和所述正则约束项,以及各个约束项对应的权重系数,获得所述头部区域、所述身体区域、所述背景区域和所述视场边缘区域分别对应的位移矩阵;

根据所述头部区域、所述身体区域、所述背景区域和所述视场边缘区域分别对应的初始图像矩阵和所述头部区域、所述身体区域、所述背景区域和所述视场边缘区域分别对应的位移矩阵;通过颜色映射获得所述第二校正图像。

具体的,终端可针对人像的头部区域、身体区域、视场边缘区域、背景区域的约束项以及正则约束项设置权重系数,根据各个约束项和对应的权重系数建立约束方程,通过求解该约束方程,就可获得各个区域中的各个像素点的偏移量。根据各个像素点的原始位置和偏移量,就能知道各个像素点在最终校正的图像(即第二校正图像)中的新位置,在新位置进行颜色映射即可获得所述第二校正图像。所以,实施本申请实施例能够自动完成了对图像的校正,算法约束校正过程可基本发生在终端的处理器内部不被用户感知。所以对于用户而言,使用终端拍摄完就能够看到人像效果和背景效果均极佳的矩形图像效果,极大提高了用户使用体验。

基于第一方面,在可能的实施方式中,所述根据所述对应的初始图像矩阵和所述对应的位移矩阵,通过颜色映射获得所述第二校正图像,包括:

根据所述头部区域、所述身体区域、所述背景区域和所述视场边缘区域分别对应的初始图像矩阵和所述头部区域、所述身体区域、所述背景区域和所述视场边缘区域分别对应的位移矩阵,获得所述头部区域、所述身体区域、所述背景区域和所述视场边缘区域分别对应的目标图像矩阵;

根据所述头部区域、所述身体区域、所述背景区域和所述视场边缘区域分别对应的目标图像矩阵,和,所述头部区域、所述身体区域、所述背景区域和所述视场边缘区域分别对应的颜色矩阵,获得所述第二校正图像。

基于第一方面,在可能的实施方式中,假设算法约束校正后的图像(即第二校正图像)的坐标矩阵(又可称为目标图像矩阵)为mt(i,j):

mt(i,j)=[ut(i,j),vt(i,j)]t

其相比于在第一校正图像中的图像矩阵m0(i,j)的位移矩阵为dt(i,j):

dt(i,j)=[du(i,j),dv(i,j)]t

也即是说:

mt(i,j)=m0(i,j)+dt(i,j)

对各约束项分配权重系数,并构建约束方程如下:

dt(i,j)=(du(i,j),dv(i,j))=argmin(α1(i,j)*term1(i,j)+α2(i,j)*term2(i,j)+α3(i,j)*term3(i,j)+α4(i,j)*term4(i,j)+α5(i,j)*term5(i,j))

其中,term1~term5分别是头部区域、身体区域、视场边缘区域、背景区域、全局图像区域对应的约束项。

α1(i,j)~α5(i,j)分别为term1~term5对应的权重系数(权重矩阵)。

通过使用最小二乘法或梯度下降法或各类改进算法求解该约束方程,就可以得到图像的各个像素点的位移矩阵dt(i,j)。

其中,所述头部区域对应的约束项(term1)用于:约束所述头部区域对应的目标图像矩阵逼近为对第一图像矩阵进行几何变换后的图像矩阵,以校正所述头部区域出现的拉伸变形;其中,所述第一图像矩阵是对所述头部区域对应的初始图像矩阵用球面投影算法处理得到的,所述几何变换包括图像旋转、图像平移和图像缩放中的至少一种。

所述身体区域对应的约束项(term2)用于:约束所述身体区域对应的目标图像矩阵逼近为对第二图像矩阵进行几何变换后的图像矩阵,以校正所述身体区域出现的拉伸变形;其中,所述第二图像矩阵是对所述身体区域对应的初始图像矩阵用墨卡托投影算法处理得到的,所述几何变换包括图像旋转、图像平移和图像缩放中的至少一种。

本实施例通过应用球面投影算法于头部区域的校正,有利于让图像的人像头部在人眼视觉中看起来自然、协调。通过应用墨卡托投影算法于身体区域的校正,有利于让图像的人像身体在人眼视觉中看起来笔直协调、不侧倾。而通过结合球面投影算法和墨卡托投影算法,有利于使整个人像符合人眼视觉的观看,让人像看起来自然协调不突兀,提升用户体验。

需要说明的是,本申请中针对人像的头部区域和身体区域还可以采用其他的投影算法进行坐标处理。例如,针对头部区域还可采用演进的自适应球面投影算法,针对身体区域还可以采用自适应墨卡托算法。

所述视场边缘区域对应的约束项(term3)用于:约束所述视场边缘区域对应的初始图像矩阵中的像素点沿着所述第一校正图像的边缘或者向所述第一校正图像的外侧发生位移,以保持或扩大所述视场边缘区域。

所述背景区域对应的约束项(term4)用于:约束所述背景区域对应的初始图像矩阵中的像素点发生位移,且位移前所述像素点对应的第一向量和位移后所述像素点对应的第二向量保持平行,以使所述背景区域中的图像内容平滑连续和使所述背景区域中贯穿所述人像的图像内容在人眼视觉上连续一致;其中,所述第一向量表示位移前所述像素点与位移前所述像素点对应的邻域像素点之间的向量;所述第二向量表示位移后所述像素点与位移后所述像素点对应的邻域像素点之间的向量。

所述正则约束项(term5)用于:约束所述第二校正图像中所述头部区域、所述身体区域、所述背景区域和所述视场边缘区域分别对应的位移矩阵中的任意两个位移矩阵的差值小于预设阈值,以使所述第二校正图像的全局图像内容平滑连续。

可以看到,本申请实施例中,终端在对光学畸变校正后的异形图像,分区域(包括头部区域,身体区域,背景区域和视场边缘区域)进行算法约束校正处理时,分别设置独立的约束项优化求解,确保人像得到最好的校正。对背景区域,通过约束背景像素点与其控制域点在变换前后的位置关系,确保背景区域的图像内容不会由于前景校正而导致背景扭曲或断层现象。对视场边缘区域,采用内容自适应的边界控制,不仅不会出现视场损失问题,甚至还能扩充视场边界,从而最大程度地减少裁切带来的内容损失和视场损失问题。所以实施本申请实施例能够确保图像被校正后,人像和背景内容均能自然、连贯、协调,符合人眼视觉习惯,极大提高用户使用体验,具有较大的商业应用价值。

基于第一方面,在可能的实施方式中,所述第一校正图像为非矩形图像;所述获得第二校正图像之后,还包括:对所述第二校正图像进行裁剪,获得矩形图像并输出。

基于第一方面,在可能的实施方式中,所述对采集的源图像进行光学畸变校正,获得第一校正图像,包括:对采集的源图像进行光学畸变校正,获得非矩形图像;将所述非矩形图像裁剪成为矩形图像,所述第一校正图像为所述矩形图像。

基于第一方面,在可能的实施方式中,所述第一人体区域所占图像面积和所述第一人体区域的约束项对应的权重系数正相关;所述第二人体区域所占图像面积和所述第二人体区域的约束项对应的权重系数正相关。

具体的,可配置第一校正图像中人像的头部区域所占图像面积和头部约束项对应的权重系数正相关。可配置第一校正图像中人像的身体区域所占图像面积和身体约束项对应的权重系数正相关。也即是说,当头部区域或身体区域所占图像面积较大时,由于大面积的人像对变形更为敏感,可增加相应区域的面部约束项或身体约束项的权重值,从而让头部区域或身体区域校正后更加自然、协调。

基于第一方面,在可能的实施方式中,所述第一人体区域的视场角和所述第一人体区域的约束项对应的权重系数正相关;所述第二人体区域的视场角和所述第二人体区域的约束项对应的权重系数正相关。

具体的,可配置第一校正图像中头部区域的视场角和头部约束项对应的权重系数正相关。配置第一校正图像中身体区域的视场角和身体约束项对应的权重系数正相关。也即是说,当头部区域或身体区域位于视场角较大区域时,由于大视场角的人像变形更为严重,可增加相应区域的面部约束项或身体约束项的权重值,从而让头部区域或身体区域校正后更加自然、协调,避免显著变形。

基于第一方面,在可能的实施方式中,所述背景区域的纹理显著性和所述背景区域的约束项对应的权重系数正相关。

具体的,可配置第一校正图像中背景区域的纹理显著性和背景约束项对应的权重系数正相关。也即是说,当背景区域纹理细节较弱时,背景区域对校正带来的扭曲或断层不敏感,可减少相应区域的背景约束项的权重,以实现更好的前景人像校正。

基于第一方面,在可能的实施方式中,所述视场边缘区域存在人像内容时所述视场边缘区域的约束项对应的权重系数,大于所述视场边缘区域不存在人像内容时所述视场边缘区域的约束项对应的权重系数。

具体的,可配置第一校正图像中视场边缘区域存在人像内容时视场边缘约束项对应的权重系数,大于视场边缘区域不存在人像内容时视场边缘约束项对应的权重系数。也即是说,当图像视场边缘处存在人像时,边界约束可能会影响前景人像的校正效果,可增加相应区域的边界约束项的权重值,以实现更好的前景人像校正。

基于第一方面,在可能的实施方式中,终端对该源图像进行光学畸变校正,获得第一校正图像,包括:对摄像装置采集到的源图像利用光学畸变校正算法做光学畸变校正,具体的,光学畸变校正算法可以是张正友相机标定算法。经过光学畸变校正算法处理之后,获得第一校正图像,第一校正图像中弯曲的直线将被校正成直线。

基于第一方面,在可能的实施方式中,终端可通过图像分割(imagesegmentation)的方法将第一校正图像分成第一人体区域、第二人体区域、背景区域和视场边缘区域等等对象区域。例如该图像分割方法可以是图像语义分割方法,通过终端内的神经网络处理器(neural-networkprocessingunit,npu),自动针对第一校正图像像素级地进行图像识别,标注出第一校正图像中每个像素所属的对象类别并识别其中的内容,从而在第一校正图像中分割出各个对象区域。

基于第一方面,在可能的实施方式中,人像的第一人体区域可以是人像的头部区域和四肢区域,人像的第二人体区域可以是人像的躯干区域。

第二方面,本申请实施例提供了一种装置,所述装置包括:光学畸变校正模块和算法约束校正模块,其中:光学畸变校正模块用于对采集的源图像进行光学畸变校正,获得第一校正图像;所述第一校正图像包括背景区域和具有拉伸变形的人像,所述拉伸变形的人像至少包括拉伸变形的第一人体区域和拉伸变形的第二人体区域;算法约束校正模块用于对所述第一人体区域、所述第二人体区域和所述背景区域进行算法约束校正,获得第二校正图像;其中,所述算法约束校正采用的约束项分别约束所述第一人体区域、第二人体区域以及所述背景区域。

所述装置具体可通过各功能模块来实现第一方面任意实施方式/实施例所描述的方法。

第三方面,本申请实施例提供一种终端,该终端可以包括:一个或多个处理器和存储器;处理器和存储器通过总线连接或者耦合在一起;上述存储器中存储一个或多个计算机程序,一个或多个处理器用于执行该一个或多个计算机程序;一个或多个计算机程序包括指令,该指令用于执行如上述第一方面的可能的实施方式/实施例中描述的方法。

第四方面,本申请实施例提供一种终端,该终端可以包括:一个或多个处理器、存储器以及用于图像显示的显示屏。

其中,处理器、存储器、显示屏可以通过一个或多个通信总线连接;上述存储器中存储一个或多个计算机程序,一个或多个处理器用于执行该一个或多个计算机程序;一个或多个计算机程序包括指令,该指令用于执行如上述第一方面的可能的实施方式/实施例中描述的方法。

第五方面,本申请实施例提供一种计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被执行处理器执行时使所述处理器执行如第一方面任意实施例所描述的方法。

第六方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品运行于计算机时,被执行以实现第一方面任意实施例描述的方法。

可以看到,本申请实施例中,终端可对光学畸变校正后的图像划分区域(包括头部区域,身体区域,背景区域和视场边缘区域)进行算法约束校正处理,其中,对人像的头部区域和身体区域分别基于不同的投影算法进行形状校正,确保人像得到最好的校正。本申请实施例还能确保背景区域的图像内容不会由于前景校正而导致背景扭曲或断层现象,以及减少裁切带来的内容损失和视场损失问题。所以实施本申请实施例能够确保图像被校正后,人像和背景内容均能自然、连贯、协调,符合人眼视觉习惯,极大提高用户使用体验。

附图说明

图1是现有方案的两种图像校正的比对图;

图2是本申请实施例提供的一种终端的结构示意图;

图3是本申请实施例提供的一种终端的软件结构框图;

图4是本申请实施例提供的一种终端的拍照界面和相册界面的示意图;

图5是本申请实施例提供的一种桶形畸变图像、枕形畸变图像与正常图像的对比示意图;

图6是本申请实施例提供的一种光学畸变校正处理的比对图;

图7是本申请实施例提供的一种图像畸变校正方法的流程示意图;

图8是本申请实施例提供的一种对图像划分区域的示例性示意图;

图9是本申请实施例提供的又一种图像畸变校正方法的流程示意图;

图10是本申请实施例提供的一种球面投影算法和墨卡托投影算法的处理场景示意图;

图11是本申请实施例提供的一种对图像的视场边缘区域的处理场景示意图;

图12是本申请实施例提供的一种图像的背景区域的处理场景示意图;

图13是本申请实施例提供的一种对异形图像进行裁剪和放大的场景示意图;

图14是本申请实施例提供的一种手机拍照应用场景的处理流程示意图;

图15是本申请实施例提供的又一种图像畸变校正方法的流程示意图;

图16是本申请实施例提供的又一种对图像的视场边缘区域的处理场景示意图;

图17是本申请实施例提供的又一种手机拍照应用场景的处理流程示意图;

图18是本申请实施例提供的一种又一种手机拍照应用场景的处理流程示意图;

图19是本申请实施例提供的一种装置的结构示意图。

具体实施方式

下面将基于附图详细描述本申请的各种实施方案。应理解的是,本说明书并非旨在将本申请限制于那些示例性实施方案。相反,本申请旨在不但覆盖这些示例性实施方案,而且覆盖可以包括在由所附权利要求所限定的本申请的精神和范围之内的各种替选方式、修改方式、等同方式以及其它的实施方案。

在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。

以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

本申请实施例的方法可应用于终端设备(简称终端),终端可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mid,mobileinternetdevice)、可穿戴设备(如智能手环、智能手表等)、ar设备、vr设备、摄像设备(例如录像机、智能相机、数码相机、摄影机等)、车载设备或者其他具有拍摄功能的设备。

参见图2,图2示例性示出了一种终端100的结构示意图。如图2所示,终端100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserialbus,usb)接口130,充电管理模块140,电源管理模块141,电池142,摄像装置193和显示屏194。可选的,终端100还可以包括天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,指示器192,以及用户标识模块(subscriberidentificationmodule,sim)卡接口195等等中的一个或多个。其中传感器模块180例如可以包括压力传感器,陀螺仪传感器,加速度传感器,距离传感器,指纹传感器等等中的一个或多个。

处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(applicationprocessor,ap),调制解调处理器,图形处理器(graphicsprocessingunit,gpu),图像信号处理器(imagesignalprocessor,isp),控制器,存储器,视频编解码器,数字信号处理器(digitalsignalprocessor,dsp),基带处理器,和/或神经网络处理器(neural-networkprocessingunit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。

处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。

在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integratedcircuit,i2c)接口,集成电路内置音频(inter-integratedcircuitsound,i2s)接口,脉冲编码调制(pulsecodemodulation,pcm)接口,通用异步收发传输器(universalasynchronousreceiver/transmitter,uart)接口,移动产业处理器接口(mobileindustryprocessorinterface,mipi),通用输入输出(general-purposeinput/output,gpio)接口,用户标识模块(subscriberidentitymodule,sim)接口,和/或通用串行总线(universalserialbus,usb)接口等。

可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端100的结构限定。在本申请另一些实施例中,终端100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。

处理器110可以根据指令操作码和时序信号,完成取指令、执行指令的控制和数据的调用。具体的,处理器110可用于执行本申请实施例所描述的图像畸变校正方法。

充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。

电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像装置193,和无线通信模块160等供电。

终端100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。

终端100可通过gpu,显示屏194,以及应用处理器等实现图像/视频显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。

显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquidcrystaldisplay,lcd),有机发光二极管(organiclight-emittingdiode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganiclightemittingdiode的,amoled),柔性发光二极管(flexlight-emittingdiode,fled),miniled,microled,micro-oled,量子点发光二极管(quantumdotlightemittingdiodes,qled)等。在一些实施例中,终端100可以包括1个或n个显示屏194,n为大于1的正整数。

在一些实现中,显示屏194可以是触摸屏,触摸屏可包括:显示面板以及覆盖在该显示面板上的触敏表面。当触敏表面检测到在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近进行触摸、点击、按压、滑动等操作)后,传送给处理器110以确定触摸事件的类型,随后处理器110根据触摸事件的类型在显示面板上提供相应的视觉输出。一种示例中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能。又一种示例中,触敏表面与显示面板通过集成而实现输入和输出功能。

可选的,触敏表面又可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器110,并能接收处理器110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型来实现该触敏表面。

可选的,显示面板可用于显示由用户输入的信息或提供给用户的信息以及终端100的各种显示界面,显示界面可以是用户界面(userinterface,ui)或图形用户界面(graphicaluserinterface,gui),这些界面内容可包括正在运行的应用程序的界面以及系统级别菜单等,具体可以由图像(picture)、文本(text)、图标(icon)、视频(video)、按键(button)、滑动条(scrollbar)、菜单(menu)、视窗(window)、标签(label)、输入框(inputbox)和其任意组合来构成。

终端100可以通过isp,摄像装置193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。

isp用于处理摄像装置193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头的感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像装置193中。

摄像装置193用于捕获静态图像或视频。物体通过镜头(如光学透镜模组)生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(chargecoupleddevice,ccd)或互补金属氧化物半导体(complementarymetal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。然后可将该图像信号通过显示屏194进行显示,和/或,将该图像信号保存到内部存储器121或外部存储器。

在一些实施例中,摄像装置193可包括采集人脸识别所需图像的摄像头,如红外摄像头或其他摄像头。该采集人脸识别所需图像的摄像头一般位于电子设备的正面,例如触控屏的上方,也可以位于其他位置,本申请实施例对此不做限制。

在一些实施例中,摄像装置193的摄像头包括但不限于光学摄像头、红外摄像头、深度摄像头,具体形态可以是单目摄像头或多目摄像头。摄像头的镜头可以为标准镜头,广角镜头,超广角镜头,鱼眼镜头或长焦距镜头,或者上述多种镜头的组合。

在一些实施例中,摄像装置193的摄像头可包括前置摄像头和/或后置摄像头。

本文中,摄像装置193输出的图像信号可称为“源图像”。源图像可被输出到处理器进行进一步的图像畸变校正处理。

视频编解码器用于对数字视频压缩或解压缩。终端100可以支持一种或多种视频编解码器。这样,终端100可以播放或录制多种编码格式的视频,例如:动态图像专家组(movingpictureexpertsgroup,mpeg)1,mpeg2,mpeg3,mpeg4等。

dsp用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。

npu用于通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现终端100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。

内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如相机拍摄app,图像美化app)等。存储数据区可存储终端100使用过程中所创建的数据(比如校正后的图像数据)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universalflashstorage,ufs)等。

外部存储器接口120可以用于连接外部存储卡,例如microsd卡,实现扩展终端100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将图像、视频等文件保存在外部存储卡中。

可选的,终端100还可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,视频背景音乐播放,录音等。其中,音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口170d用于连接有线耳机。耳机接口170d可以是usb接口130,也可以是3.5mm的开放移动电子设备平台(openmobileterminalplatform,omtp)标准接口,美国蜂窝电信工业协会(cellulartelecommunicationsindustryassociationoftheusa,ctia)标准接口。

按键190可包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端100可以接收按键输入,产生与终端100的用户设置以及功能控制有关的键信号输入。

指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。

sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和终端100的接触和分离。在一些实施例中,终端100采用esim,即:嵌入式sim卡。esim卡可以嵌在终端100中,不能和终端100分离。

应当理解的是,本申请实施例示意的结构并不构成对终端100的具体限定。在本申请另一些实施例中,终端100可以包括比图示更多或更少的部件,或者组合两个或多个的部件,或者拆分某些部件,或者不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。

终端100的软件系统可以采用分层架构、事件驱动架构、微核架构、微服务架构、或云架构。下面以分层架构的安卓(android)系统为例,示例性说明终端100的一种软件结构。

参见图3,图3是本申请实施例的终端100的一种可能的软件结构框图。

分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(androidruntime)和系统库,以及内核层。

应用程序层可以包括一系列应用程序包。如图3所示,应用程序包可以包括相机app,图像美化app,相册app等应用程序。

应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramminginterface,api)和编程框架。应用程序框架层包括一些预先定义的函数。如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,资源管理器,视图系统,等。其中:

窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕等。

内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括图像数据,视频数据等。

资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。

视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序的显示界面。

举例来说,通过视图系统呈现的一种拍照app的显示界面如图4中的(1)所示,终端100的显示面板上可显示拍照界面20,拍照界面20可包括预览框204以及一些相关控件,如图像浏览控件201,拍摄控件202,前后摄像头切换控件203等。

预览框204用于预览所要拍摄的场景图像。

本申请一种实施例中,预览框204所呈现的图像可以是经过光学畸变校正处理后的校正图像(又可称为第一校正图像)。

本申请又一种实施例中,预览框204所呈现的图像可以是经过光学畸变校正处理和算法约束处理后的校正图像(又可称为第二校正图像)。

本申请又一种实施例中,预览框204所呈现的图像可以是未经过光学畸变校正处理和未经过算法约束处理的源图像。

当用户点击或触摸前后摄像头切换控件203,可指示终端100选择前置摄像头或后置摄像头进行拍摄。

当用户点击或触摸拍摄控件202,终端100将驱动摄像装置发起拍摄操作,指示下层的系统库将源图像加工为第二校正图像,并将第二校正图像保存到相册中。

当用户点击或触摸图像浏览控件201,终端100可调用相册app并显示该第二校正图像。如图4中的(2)所示,相册app的显示界面30可包括所获得的第二校正图像301,可选的还包括一个或多个最近拍摄图像的缩略图302。

安卓运行时(androidruntime)安卓系统的调度和管理,可包括核心库和虚拟机。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。

应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。

系统库可以包括多个功能模块。例如:表面管理器(surfacemanager),媒体库(medialibraries),图形引擎(例如:sgl)等。

表面管理器用于对显示子系统进行管理,并且为多个应用程序提供图层融合功能。

媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。

图形引擎是用于进行图像加工处理的绘图引擎。本申请实施例中,图形引擎可用于实现将源图像处理为第一校正图像,以及将第一校正图像处理为第二校正图像。

内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动等。其中,摄像头驱动可用于驱动终端100的摄像头进行拍摄,显示驱动可用于将图像(第一校正图像、第二校正图像)显示在显示屏的显示面板上。

下面说明本申请实施例所涉及的一些概念。

本申请实施例中,所谓“源图像”表示经终端的摄像装置采集的原始图像。摄像装置包括光学透镜模组和感光元件,以感光元件包括电荷耦合器件(chargecoupleddevice,ccd)为例,在拍摄中,被摄景物的光线通过光学透镜模组聚焦并投射到ccd。ccd采用高感光度的半导体材料制成,通常包括许多感光单位,通常以百万像素为单位。当ccd表面受到光线照射时,每个感光单位会将电荷反映在组件上,从而能将光线转变成电信号。所有的感光单位所产生的信号加在一起构成了完整的电信号。之后ccd将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。

摄像装置的成像过程实质上反映了坐标系的转换过程。即,成像过程实际就是将被摄景物在世界坐标系的点,转换到摄像装置的摄像坐标系,然后再将其投影到成像平面的图像物理坐标系,最后再将成像平面上的数据转换到图像平面的图像像素坐标系的过程。

由于光学透镜模组中的透镜的固有特性(凸透镜汇聚光线、凹透镜发散光线),以及透镜精度和加工工艺的原因,通常经光学透镜模组获得的源图像会引入光学畸变从而导致图像失真。畸变是指光学系统对物体所成的像相对于物体本身而言的失真程度,光学畸变是指光学理论上计算所得到的变形度,空间直线在具有光学畸变的图像中将变弯曲。光学畸变导致的失真对于照片的成像质量是非常不利的。由于光学畸变的存在,使得被摄景物在世界坐标系中的直线最终转化到图像像素坐标系后,可能呈现的是曲线。尤其是图像中越靠近图像边缘的位置,这种光学畸变对图像的扭曲就越明显,此外,广角摄像头相比普通摄像头而言,光学畸变更加显著。

当终端为手机、平板电脑、可穿戴设备等移动终端时,受镜片光学设计影响,光学透镜模组通常具有较大的光学畸变,这与移动终端的视场角有关,通常视场角越大,光学透镜模组的光学畸变越大。

光学畸变又可被称为图像畸变,透镜畸变,摄像畸变,相机畸变,镜头畸变等。光学畸变的类型主要包含径向畸变和切向畸变。

切向畸变通常是由于摄像装置在制造上的缺陷使得透镜本身与图像平面不平行而产生的。

径向畸变产生原因是光线在远离透镜中心的地方比靠近中心的地方更加弯曲。径向畸变具体主要包含桶形畸变(barreldistortion)和枕形畸变(pincushiondistortion)两种。如图5所示,图5示出了桶形畸变图像、枕形畸变图像与理想的正常图像的对比示意图。

桶形畸变又可称桶形失真,是由镜头中透镜物理性能以及镜片组结构引起的成像画面呈桶形膨胀状的失真现象。通常地,在使用广角镜头或使用变焦镜头的广角端时,最容易察觉桶形失真现象。当画面中有直线(尤其是靠近图像边缘的直线)的时候,桶形失真最容易被察觉。

枕形畸变又可称枕形失真,是由镜头引起的画面向中间“收缩”的失真现象。通常地,在使用长焦镜头或使用变焦镜头的长焦端时,最容易察觉枕形失真现象。特别是在使用焦距转换器后,枕形失真便很容易发生。当画面中有直线(尤其是靠近相框边缘的直线)的时候,枕形失真最容易被察觉。

所以,本申请实施例中,摄像装置采集的“源图像”又可称为“畸变图像”。

为了减轻图像中的失真,本申请实施例中,可先对源图像进行光学畸变校正,光学畸变校正是通过光学畸变校正算法计算图像畸变前后的点位置的映射关系来确定图像的畸变系数,然后做与畸变相反的变换,将畸变后的位置的像素值赋给原位置,从而能够缓解畸变带来的失真。

如图6所示,图6中的左侧图像为通过光学透镜模组采集获得的矩形形状的图像(简称为矩形图像),将该矩形图像进行光学畸变校正处理后,由于像素点的位置发生了位移,会导致光学畸变校正后的图像为非矩形图像,如图6中的右侧图像所示。本申请实施例中,也可将光学畸变校正的非矩形图像称为“异形图像”。为了能将异形图像显示到终端显示面板的矩形的显示界面(例如,矩形预览框)上,还可以将该异形图像裁剪成矩形形状的图像,进而通过图像分辨率的转换等操作实现显示到显示面板。

在异形图像中,因失真而变成曲线的背景内容通常得到了良好的校正,而变成正常的直线内容。然而,对于图像中的人像,由于固有的直线内容较少,所以依然存在拉伸、扭曲等变形失真的状况,包括人像中的头部变形、身体变形等。

为了更好校正变形人像,同时保证人像得到校正的同时避免其他区域产生明显变形(如背景直线不能弯曲断层等),以及保证校正后的图像不会由于矩形裁剪造成太大的视场角损失,本申请实施例继续对经由光学畸变校正后的图像(可称为第一校正图像)进行算法约束校正,对人像的头部、身体部位,以及图像背景、图像边缘等分别基于不同的算法进行校正,从而获得第二校正图像。该第二校正图像中的人像的头部和身体均可符合人眼视觉,且第二校正图像的图像背景中贯穿人像的图像内容在人眼视觉上连续一致,从而避免图像背景出现弯曲断层的状况,同时,第二校正图像也较好地避免了视场角的损失。有关算法约束校正的内容将在下文展开详述。

基于上文的描述,下面给出本申请实施例提供的一些图像畸变校正方法。

对于下文描述的各方法实施例,为了方便起见,将其都表述为一系列的动作步骤的组合,但是本邻域技术人员应该知悉,本申请技术方案的具体实现并不受所描述的一系列的动作步骤的顺序的限制。

参见图7,图7是本申请实施例提供的一种图像畸变校正方法的流程示意图,在一些实现中,该方法可应用于图1或图2所示的终端。该方法包括但不限于以下步骤:

s401、终端采集源图像。

具体的,终端可通过摄像装置(包括光学透镜模组和感光元件)采集源图像。该源图像可为矩形图像。由于光学透镜模组通常具有一定程度的光学畸变(例如,桶形畸变),这导致采集到的源图像的图像内容存在变形失真。

s402、终端对源图像进行光学畸变校正,获得第一校正图像。

具体的,终端可对摄像装置采集到的源图像利用光学畸变校正算法做光学畸变校正,示例性地,光学畸变校正算法可以是张正友相机标定算法。经过光学畸变校正算法处理之后,获得异形图像(即非矩形图像)。在一种实施例中,该异形图像即为第一校正图像。在又一种实施例中,可将该异形图像剪切成矩形图像,并缩放处理为目标分辨率的图像,该目标分辨率的图像即为第一校正图像。

s403、终端分别对第一人体区域、第二人体区域和背景区域进行处理,获得第二校正图像。

本申请实施例中,为了在实现更好的人像校正,并保证在校正前景人像过程中避免背景产生明显的扭曲,首先需要对图像进行区域划分。

具体的,终端可通过图像分割(imagesegmentation)的方法将第一校正图像分成若干个特定的感兴趣目标区域。例如该图像分割方法可以是图像语义分割方法,通过终端内的神经网络处理器(neural-networkprocessingunit,npu),自动针对第一校正图像像素级地进行图像识别,标注出第一校正图像中每个像素所属的对象类别并识别其中的内容,从而在第一校正图像中分割出对象区域。

在一种实现中,第一校正图像划分的区域包括人像的第一人体区域、第二人体区域和背景区域,其中,人像的第一人体区域、人像的第二人体区域分别指人像中的一部分区域。举例来说,如图8所示,人像的第一人体区域可以是人像的头部区域,人像的第二人体区域可以是人像的身体区域。又举例来说,人像的第一人体区域可以是人像的头部区域和四肢区域,人像的第二人体区域可以是人像的躯干区域,等等。相应的,背景区域为第一校正图像中去除人像的第一人体区域、第二人体区域之外的有效区域。

相应的,终端可分别对第一人体区域、第二人体区域和背景区域进行算法约束校正处理,获得第二校正图像。在算法约束校正中,第二校正图像中的人像的第一人体区域和第二人体区域可分别基于不同的算法(例如使用球面投影算法来处理人像的头部区域,使用墨卡托算法来处理身体区域)而呈现不同变形量,使得所述第一人体区域和所述第二人体区域的拉伸变形分别得到校正,符合人眼视觉,且所述第二校正图像的背景区域中贯穿所述人像的图像内容在人眼视觉上连续一致,无断层现象。

在又一种实现中,第一校正图像划分的区域除了包括人像的第一人体区域、第二人体区域、背景区域外,还包括视场边缘区域,视场边缘区域为第一校正图像中位于图像边缘的条带区域,具体实现中可以设定阈值决定这个条带的宽度。相应的,背景区域为第一校正图像中去除人像的第一人体区域、第二人体区域、视场边缘区域之外的有效区域。

相应的,终端可分别对第一人体区域、第二人体区域、背景区域和视场边缘区域进行算法约束校正处理,获得第二校正图像。在算法约束校正中,第二校正图像中的人像的第一人体区域和第二人体区域可分别基于不同的算法(例如使用球面投影算法来处理人像的头部区域,使用墨卡托算法来处理身体区域)而呈现不同变形量,使得所述第一人体区域和所述第二人体区域的拉伸变形分别得到校正,符合人眼视觉,且所述第二校正图像的背景区域中贯穿所述人像的图像内容在人眼视觉上连续一致,无断层现象。此外,通过对视场边缘区域进行边界约束,不仅不会出现视场损失问题,甚至还能扩充视场边界的图像内容。

可以看到,本申请实施例中,终端可对光学畸变校正后的异形图像,分区域(包括头部区域,身体区域,背景区域和视场边缘区域)进行算法约束校正处理,其中,对人像的头部区域和身体区域分别基于不同的投影算法进行形状校正,确保人像得到最好的校正。本申请实施例还能确保背景区域的图像内容不会由于前景校正而导致背景扭曲或断层现象,以及减少裁切带来的内容损失和视场损失问题。所以实施本申请实施例能够确保图像被校正后,人像和背景内容均能自然、连贯、协调,符合人眼视觉习惯,极大提高用户使用体验。

参见图9,图9是本申请实施例提供的又一种图像畸变校正方法的流程示意图,在一些实现中,该方法可应用于图1或图2所示的终端。该方法包括但不限于以下步骤:

s501、终端采集源图像。具体可参考图7实施例s401的描述,这里不再赘述。

s502、终端对该源图像进行光学畸变校正,获得第一校正图像。

具体的,终端可对摄像装置采集到的源图像利用光学畸变校正算法做光学畸变校正,示例性地,光学畸变校正算法可以是张正友相机标定算法。经过光学畸变校正算法处理之后,获得第一校正图像,这里的第一校正图像不再为矩形图像,而是异形图像(或称非矩形图像)。图像中弯曲的直线将被校正成直线,但是此时图像中的人像依然具有一定程度的变形,通常人像视场角越大,变形越剧烈。

为了更好校正变形人像,同时保证人像得到校正的同时避免背景区域产生弯曲、断层等变形,以及保证校正后的图像不会由于矩形裁剪造成太大的视场角损失,本申请实施例中,可将对第一校正图像进一步进行算法约束校正,所获得的图像可称为第二校正图像。本实施例中,算法约束校正的处理过程可包括下述步骤s503-s507。

s503、终端识别该第一校正图像存在具有拉伸变形的人像区域、背景区域和视场边缘区域。其中,该拉伸变形的人像区域至少包括拉伸变形的头部区域和拉伸变形的身体区域。

本申请实施例中,为了在实现更好的人像校正,并保证在校正前景人像过程中避免背景产生明显的扭曲,需要对图像进行区域划分。

具体的,终端可通过图像分割(imagesegmentation)的方法将第一校正图像分成若干个特定的感兴趣目标区域。例如该图像分割方法可以是图像语义分割方法,通过终端内的神经网络处理器(neural-networkprocessingunit,npu),自动针对第一校正图像像素级地进行图像识别,标注出第一校正图像中每个像素所属的对象类别并识别其中的内容,从而在第一校正图像中分割出对象区域。

如图8所示,在一种示例中,终端对第一校正图像识别并标记以下几个区域:人像的头部区域(或者人像头部区域)、人像的身体区域、背景区域和视场边缘区域。当第一校正图像为异形图像时,终端将第一校正图像以外的区域识别为无效区域。

人像的头部区域涵盖图像中各个人像的头部、颈部以及相关装饰物(如帽子、头饰、眼镜等)。

人像的身体区域涵盖图像中各个人像的躯干、四肢、衣服、裤子和鞋子等。

如图8所呈现的异形图像中示出了3个前景人像,每个人像包括各自的头部区域(图示中分别为头部区域1、头部区域2和头部区域3)和身体区域(图示中分别为身体区域1、身体区域2和身体区域3)。

视场边缘区域为异形图像中靠近无效区域的、位于异形图像边缘的环状条带区域,具体实现中可以设定阈值决定这个条带的宽度。

背景区域为异形图像中去除人像的头部区域、身体区域以及视场边缘区域之外的有效区域。

需要说明的是,本申请实施例不限定于将人像划分为头部区域和身体区域,还可以有其他的划分方式,例如还可以划分为头部区域、四肢区域和躯干区域,等等。

s504、终端确定头部区域、身体区域、背景区域和视场边缘区域分别对应的初始图像矩阵。

具体的,终端分别确定第一校正图像中各个人像的头部区域、身体区域以及背景区域和视场边缘区域中的像素点的初始位置点以及颜色信息。像素点的初始位置点可以用初始图像矩阵(或称初始坐标矩阵)来表示,像素点的颜色信息可以用颜色矩阵来表示。

初始图像矩阵用来记录各像素点在第一校正图像中的位置,第一校正图像中的第i行第j列的像素点[i,j]t的平面位置坐标可表示为:

m(i,j)=[u(i,j),v(i,j)]t

其中,u(i,j)表示横坐标,v(i,j)表示纵坐标。

颜色矩阵用来记录各像素点的颜色信息,第一校正图像中第i列第j行的像素点的颜色矩阵可表示为:

c(i,j)=[r(i,j),g(i,j),b(i,j)]t

其中,r(i,j),g(i,j),b(i,j)分别表示红、绿、蓝颜色信息。

为了便于后续运算处理,可将第一校正图像各像素点的初始图像矩阵进行归一化。设第一校正图像的宽度和高度分别为w和h,则归一化的坐标矩阵可表示为u0=(j-w/2)/w,v0=(h/2–i)/h

基于该归一化的坐标矩阵,第一校正图像各像素点归一化的初始图像矩阵(也可简称为图像矩阵)可用m0表示,具体为:

m0(i,j)=[u0(i,j),v0(i,j)]t

人像的头部区域和身体区域的拉伸变形量和变形方式有所差异,由于头部区域和身体区域的面积不同,用户对其变形的容忍度有所不同。本申请实施例中,为了保证同时很好地校正头部区域和身体区域的变形,还分别针对头部区域和身体区域采用不同的投影算法进行坐标处理。

在一种实施例中,如图10所示,针对人像的头部区域可采用球面投影算法进行坐标处理,针对人像的身体区域可采用墨卡托投影算法进行坐标处理。

将第一校正图像中的头部区域的初始图像坐标m0(i,j),(i,j)∈headregion,按照球面投影算法进行映射,转换成第一图像矩阵m1,m1记为:m1(i,j)=[u1(i,j),v1(i,j)]t

具体地,该m0(i,j)=[u0,v0]t到m1(i,j)=[u1,v1]t的球面投影算法可表示为:

u1=λ*tan(0.5atan(r0))*cos(θ0),v1=λ*tan(0.5atan(r0))*sin(θ0),

其中,r0=sqrt(u0*u0+v0*v0),θ0=atan(v0/u0),λ为缩放系数。

将第一校正图像中的身体区域的初始图像坐标m0(i,j),(i,j)∈bodyregion,按照墨卡托投影算法进行映射,转换成第二图像矩阵m2,m2记为:m2(i,j)=[u2(i,j),v2(i,j)]t,m2(i,j)=(u2,v2)

具体地,该m0(i,j)=[u0,v0]t到m2(i,j)=[u2(i,j),v2(i,j)]t的墨卡托投影算法可表示为:

u2=λ*atan(u0),v2=λ*log(tan(π/4+φ/2))

其中,φ=atan(v0/sqrt(u0*u0+1)),λ为缩放系数。

本实施例中,头部区域的m0经球面投影算法得到的m1可以参与到后续步骤s505中以校正人像的头部拉伸变形,身体区域的m0经墨卡托投影算法得到的m2可以参与到后续步骤s505中以校正人像的身体拉伸变形。

本实施例通过应用球面投影算法于头部区域的校正,有利于让图像的人像头部在人眼视觉中看起来自然、协调。通过应用墨卡托投影算法于身体区域的校正,有利于让图像的人像身体在人眼视觉中看起来笔直协调、不侧倾。而通过结合球面投影算法和墨卡托投影算法,有利于使整个人像符合人眼视觉的观看,让人像看起来自然协调不突兀,提升用户体验。

需要说明的是,本申请中针对人像的头部区域和身体区域还可以采用其他的投影算法进行坐标处理。例如,针对头部区域还可采用演进的自适应球面投影算法,针对身体区域还可以采用自适应墨卡托算法。

s505、终端分别构建头部区域、身体区域、背景区域和视场边缘区域分别对应的约束项,以及正则约束项。

本申请实施例中,终端分别针对人像的头部区域、身体区域、背景区域和视场边缘区域构建对应的约束项,以及构建用于全局图像的正则约束项。人像的头部区域、身体区域、背景区域和视场边缘区域构建对应的约束项以及正则约束项共同用于确定图像中的各个像素点所需的位移。

下面分别对人像的头部区域、身体区域、背景区域以及视场边缘区域的约束项以及用于图像全局的正则约束项展开描述。

(1)人像的头部区域对应的约束项,用于约束对第二校正图像中头部区域对应的目标图像矩阵逼近成为对第一图像矩阵(即m1)进行几何变换后的图像矩阵,以校正头部区域出现的拉伸变形。本实施例中的几何变换表示一种空间映射,即将一个图像矩阵通过变换映射为另一个图像矩阵。本实施例中的几何变换可以是图像平移变换(translation),图像缩放变换(scale),图像旋转变换(rotation)中的至少一种变换。

为了便于描述,可将人像的头部区域对应的约束项简称为头部约束项,当图像中存在多个人像时,不同的人像的头部区域可对应不同的头部约束项。例如对于图8所示的异形图像,头部区域1、头部区域2和头部区域3可分别对应不同的头部约束项。

头部约束项可记为term1,term1的算式表达式如下:

term1(i,j)=sum(i,j)∈headregionk‖m0(i,j)+dt(i,j)-func1k[m1(i,j)]‖

其中,对于位于头部区域(即(i,j)∈headregionk)的像素点的图像矩阵m0(i,j),其面部保形后的坐标值为m1(i,j)=[u1(i,j),v1(i,j)]t,这里的dt(i,j)表示该m0(i,j)对应位移矩阵,k表示图像的第k个头部区域,func1k表示第k个头部区域对应的几何变换函数,||…||表示向量2范数。

头部约束项term1(i,j)需保证在该位移矩阵dt(i,j)作用下,图像矩阵m0(i,j)倾向于为m1(i,j)的适当的几何变换,包括图像旋转、图像平移和图像缩放中的至少一种变换操作。

第k个头部区域对应的几何变换函数func1k表示第k个头部区域内的所有点共享相同的几何变换函数func1k,不同头部区域对应不同几何变换函数。几何变换函数func1k可具体表示为:

其中,ρ1k表示第k个头部区域的缩放系数,θ1k表示第k个头部区域的旋转角度,tx1k和ty1k分别表示第k个头部区域的横向位移与纵向位移。

term1(i,j)可具体表示为:

其中,du(i,j)和dv(i,j)是需要求解的未知量,后续求解约束方程时需保证该项尽量小。

(2)身体区域对应的约束项用于,约束第二校正图像中身体区域对应的目标图像矩阵逼近成为对第二图像矩阵(即m2)进行几何变换后的图像矩阵,以校正身体区域出现的拉伸变形。本实施例中的几何变换可以是图像平移变换,图像缩放变换,图像旋转变换中的至少一种变换。

为了便于描述,可将人像的身体区域对应的约束项简称为身体约束项,当图像中存在多个人像时,不同的人像的身体区域可对应不同的身体约束项。例如对于图8所示的异形图像,身体区域1、身体区域2和身体区域3可分别对应不同的身体约束项。

身体约束项可记为term2,term2的算式表达式如下:

term2(i,j)=sum(i,j)∈bodyregionk‖m0(i,j)+dt(i,j)-func2k[m2(i,j)]‖

其中,对于位于身体区域(即(i,j)∈bodyregionk)的像素点m0(i,j),其身体保形后的坐标值为m2(i,j)=[u2(i,j),v2(i,j)]t,这里的dt(i,j)表示该m0(i,j)对应的位移矩阵,k表示图像的第k个头部区域,func2k表示第k个头部区域对应的几何变换函数,||…||表示向量2范数。

身体约束项需保证在该位移矩阵dt(i,j)作用下,图像矩阵m0(i,j)倾向于为m2(i,j)的适当的几何变换,包括图像旋转、图像平移和图像缩放中的至少一种变换操作。

第k个身体区域对应于几何变换函数func2k表示第k个身体区域内的所有点共享相同的几何变换函数func2k,不同身体区域对应不同几何变换函数。几何变换函数func2k可表示为:

其中,ρ2k表示第k个身体区域的缩放系数,θ2k表示第k个身体区域的旋转角度,tx2k和ty2k分别表示第k个身体区域的横向位移与纵向位移。

term2(i,j)可具体表示为:

其中,du(i,j)和dv(i,j)是需要求解的未知量,后续求解约束方程时需保证该项尽量小。

(3)视场边缘区域对应的约束项用于,约束所述第一校正图像中所述视场边缘区域对应的初始图像矩阵中的像素点沿着所述第一校正图像的边缘或者向所述第一校正图像的外侧发生位移,以保持或扩大该视场边缘区域。

为了便于描述,可将视场边缘区域对应的约束项简称为视场边缘约束项,视场边缘约束项可记为term3,term3的算式表达式如下:

term3(i,j)=sum(i,j)∈edgeregion||m0(i,j)+dt(i,j)-func3(i,j)[m0(i,j)]||

其中,这里的m0(i,j)表示位于视场边缘区域(即(i,j)∈edgeregion)的像素点的图像坐标,这里的dt(i,j)表示该m0(i,j)对应的位移矩阵,func3(i,j)表示m0(i,j)的位移函数,||…||表示向量2范数。

视场边缘约束项需保证在该位移矩阵dt(i,j)作用下,图像矩阵m0(i,j)倾向于为坐标值m0(i,j)的适当位移,位移规则为只沿着边缘区域或向边缘区域外侧适当移动,避免向边缘区域内侧移动,这样做的好处是可以尽量减少后续矩形裁切造成的图像信息损失,甚至可以增益扩充视场边缘区域的图像内容。

如图11所示,假设位于异形图像的视场边缘区域的一个像素点a,其图像坐标为[u0,v0]t,该点a沿视场边界的切向向量表示为y(u0,v0),向图像外侧的法向量表示为x(u0,v0),当边界区域已知时,x(u0,v0)和y(u0,v0)也是已知的。则func3(i,j)可具体表示为:

其中,α(u0,v0)需被限制为不小于0,以确保该点不会向视场边缘内部位移,β(u0,v0)的正负无需限制。α(u0,v0)和β(u0,v0)是不需要显示求解的中间未知量。

term3(i,j)可具体表示为:

其中,du(i,j)和dv(i,j)是需要求解的未知量,后续求解约束方程时需保证该项尽量小。

(4)背景区域对应的约束项用于,约束第一校正图像中所述背景区域对应的图像矩阵中的像素点发生位移,且位移前像素点对应的第一向量和位移后像素点对应的第二向量尽量保持平行,以使背景区域中的图像内容平滑连续和使背景区域中贯穿人像的图像内容在人眼视觉上连续一致;其中,第一向量表示位移前像素点与位移前像素点对应的邻域像素点之间的向量;第二向量表示位移后像素点与位移后像素点对应的邻域像素点之间的向量。

为了便于描述,可将背景区域对应的约束项简称为背景约束项,背景约束项可记为term4,term4的算式表达式如下:

term4(i,j)=sum(i,j)∈bkgregion{func4(i,j)(m0(i,j),m0(i,j)+dt(i,j))}

其中,这里的m0(i,j)表示位于背景区域(即(i,j)∈bkgregion)的像素点的图像坐标,这里的dt(i,j)表示该m0(i,j)对应的位移矩阵,func4(i,j)表示m0(i,j)的位移函数,||…||表示向量2范数。

背景约束项需保证在该位移矩阵dt(i,j)作用下的坐标值m0(i,j)倾向于为坐标值m0(i,j)的适当位移。本申请实施例中可将背景区域中的各个像素点划分到不同的控制域,本申请不对控制域的大小、形状、数量做限定。特别地,对于位于前景人像与背景边界处的背景像素点,其控制域需跨越前景人像延伸至前景人像的另一端。如图12所示,包括矩形控制域2和非矩形控制域1,控制域1为例,假设存在某背景像素点a和其控制域像素点集{bi},控制域为a点的邻域,a的控制域跨越中间人像的头部区域,延伸至该头部区域的另一端。bi表示a的邻域像素点,当它们发生位移后,分别被移动到a′和{b′i}。位移规则为,背景约束项将限制向量abi和向量a′b′i尽量保持方向平行。这样做的好处是,可以确保前景人像与背景区域过渡平滑,且背景区域中贯穿人像的图像内容在人眼视觉上能连续一致,避免背景图像产生扭曲变形或产生空洞拉丝等现象。func4(i,j)可具体表示为:

其中:

其中,angle[]表示两个向量的夹角,vec1表示校正前背景点[i,j]t与其控制域内某点所组成的向量,vec2表示经校正后的背景点[i,j]t与其控制域内经校正后的某点所组成的向量,sum(i+di,j+dj)∈ctrlregion表示对控制域内所有向量夹角做求和。

term4(i,j)可具体表示为:

term4(i,j)=sum(i,j)∈bkgregion{sum(i+di,j+dj)∈ctrlregion{angle[vec1,vec2]}}

其中,du(i,j)和dv(i,j)是需要求解的未知量,后续求解约束方程时需保证该项尽量小。

(5)正则约束项用于,约束第二校正图像中背景区域、人像的头部区域、人像的身体区域和视场边缘区域分别对应的位移矩阵中的任意两个相邻像素点的位移矩阵的差值小于预设阈值,以使得第二校正图像的全局图像内容平滑连续。

正则约束项可记为term5,term5的算式表达式如下:

term5(i,j)=sum(i,j)∈allregion{func5(i,j)(dt(i,j))}

对于整个图像范围(即(i,j)∈allregion)的像素点m0(i,j),正则约束项需保证相邻像素点的位移矩阵dt(i,j)是平滑连续的,以避免出现局部过大跳变。限定原则是,点[i,j]t处的位移量与其邻域点(i+di,j+dj)的位移量之差应尽量小(即小于某个阈值)。func5(i,j)可具体表示为:

term5(i,j)可具体表示为:

其中,du(i,j)和dv(i,j)是需要求解的未知量,后续求解约束方程时需保证该项尽量小。

s506、终端根据各个约束项以及各个约束项对应的权重系数,获得各区域分别对应的位移矩阵。

具体的,终端可针对人像的头部区域、身体区域、视场边缘区域、背景区域的约束项以及正则约束项设置权重系数,根据各个约束项和对应的权重系数建立约束方程,求解该约束方程,就可获得各个区域中的各个位置点的偏移量。

假设算法约束校正后的图像(即第二校正图像)的坐标矩阵(又可称为目标图像矩阵)为mt(i,j),mt(i,j)=[ut(i,j),vt(i,j)]t,其相比于图像矩阵m0(i,j)的位移矩阵为dt(i,j),dt(i,j)=[du(i,j),dv(i,j)]t,也即是说:

mt(i,j)=m0(i,j)+dt(i,j)

ut(i,j)=u0(i,j)+du(i,j)

vt(i,j)=v0(i,j)+dv(i,j)

对各约束项分配权重系数,并构建约束方程如下:

dt(i,j)=(du(i,j),dv(i,j))=argmin(α1(i,j)*term1(i,j)+α2(i,j)*term2(i,j)+α3(i,j)*term3(i,j)+α4(i,j)*term4(i,j)+α5(i,j)*term5(i,j))

其中,α1(i,j)~α5(i,j)分别为term1~term5对应的权重系数(权重矩阵)。

通过使用最小二乘法或梯度下降法或各类改进算法求解该约束方程,最终得到图像的各个像素点的位移矩阵dt(i,j)。

在一种实施例中,可将α1(i,j)~α5(i,j)分别设置为固定的权重值。

在又一种实施例中,由于校正过程相当于在前后景校正中选择平衡点,所以也可以根据图像内容自适应地生成权重系数,实现局部权重控制,权重系数自适应配置原则可包括但不限于以下中的至少一种:

配置第一校正图像中人像的头部区域所占图像面积和头部约束项对应的权重系数正相关。

配置第一校正图像中人像的身体区域所占图像面积和身体约束项对应的权重系数正相关。

也即是说,当头部区域或身体区域所占图像面积较大时,由于大面积的人像对变形更为敏感,可增加相应区域的面部约束项或身体约束项的权重值。

配置第一校正图像中头部区域的视场角和头部约束项对应的权重系数正相关。

配置第一校正图像中身体区域的视场角和身体约束项对应的权重系数正相关。

也即是说,当头部区域或身体区域位于视场角较大区域时,由于大视场角的人像变形更为严重,可增加相应区域的面部约束项或身体约束项的权重值。

配置第一校正图像中背景区域的纹理显著性和背景约束项对应的权重系数正相关。

也即是说,当背景区域纹理细节较弱时,背景区域对校正带来的扭曲或断层不敏感,可减少相应区域的背景约束项的权重,以实现更好的前景人像校正。

配置第一校正图像中视场边缘区域存在人像内容时视场边缘约束项对应的权重系数,大于视场边缘区域不存在人像内容时视场边缘约束项对应的权重系数。

也即是说,当图像视场边缘处存在人像时,边界约束可能会影响前景人像的校正效果,可增加相应区域的边界约束项的权重值,以实现更好的前景人像校正。

s507、终端根据各区域分别对应的初始图像矩阵和位移矩阵,通过颜色映射获得第二校正图像。

具体实现中,在获得图像的各个像素点的位移矩阵dt(i,j)后,终端根据第一校正图像中的各区域的像素点分别对应的图像矩阵m0(i,j)和位移矩阵dt(i,j),获得第一校正图像中的各区域的像素点的目标图像矩阵mt(i,j),mt(i,j)=m0(i,j)+dt(i,j)。然后,根据目标图像矩阵mt(i,j)和颜色矩阵c(i,j)生成目标分辨率的图像(假设为wt*ht),即获得第二校正图像(即wt*ht的新的异形图像)。具体的,可将归一化的mt(i,j)=[ut(i,j),vt(i,j)]t转换成实际图像的坐标[it,jt]t,转换规则如下:

it=ht/2-vt*ht

jt=ut*wt+wt/2

获得实际图像的坐标[it,jt]t,即可将第一校正图像的像素点[i,j]t的颜色矩阵c(i,j)填充到第二校正图像的像素点[it,jt]t。由于[it,jt]t可能是小数,所以在一些实现中,还需要对其进行插值取整,常用插值取整算法包括线性插值和lanczos插值算法等,本申请对此不作限定。

s508、终端将第二校正图像裁剪为矩形图像并输出。

本实施例中,经步骤507获得的第二校正图像为wt*ht的异形图像(非矩形图像),所以,还需对该异形图像进行剪裁和缩放处理,输出目标分辨率的矩形图像。在一种示例中,如图13所示,可以在该异形图像的边缘位置沿着矩形虚线进行裁切,获得矩形区域,将该矩形区域放大到wt*ht的分辨率,从而得到wt*ht的矩形图像。

可以看到,本申请实施例中,终端可对光学畸变校正后的异形图像,分区域(包括头部区域,身体区域,背景区域和视场边缘区域)进行算法约束校正处理,其中,对人像的头部区域和身体区域分别基于不同的投影算法进行形状校正,并分别设置独立的约束项优化求解,确保人像得到最好的校正。对背景区域,通过约束背景像素点与其控制域点在变换前后的位置关系,确保背景区域的图像内容不会由于前景校正而导致背景扭曲或断层现象。对视场边缘区域,采用内容自适应的边界控制,不仅不会出现视场损失问题,甚至还能扩充视场边界,从而最大程度地减少裁切带来的内容损失和视场损失问题。所以实施本申请实施例能够确保图像被校正后,人像和背景内容均能自然、连贯、协调,符合人眼视觉习惯,极大提高用户使用体验,具有较大的商业应用价值。

为了更好理解上述方案,下面结合一种实际应用场景进行方案的描述。

参见图14,在一种示例性场景中,以终端为智能手机为例,当用户需要用手机拍照时,用户打开手机中的拍照app,手机显示面板上呈现拍照app的显示界面20,拍照app驱动手机的摄像装置实时采集源图像,并在处理器中将源图像进行光学畸变校正为第一校正图像,并且在显示界面20中的预览框204显示该第一校正图像。当用户点击显示界面20中的拍摄控件202时,处理器对第一校正图像进行算法约束校正获得第二校正图像,并将第二校正图像裁剪为矩形图像保存,例如保存到相册。这样,当用户点击显示界面20中的图像浏览控件201,手机将切换至相册app的显示界面30,并且在显示界面30中显示该矩形图像。可以看到,由于手机自动完成了对图像的校正,校正过程基本不被用户感知。对于用户而言,拍摄完就能够及时看到人像效果和背景效果均极佳的矩形图像效果,极大提高了用户使用体验。

参见图15,图15是本申请实施例提供的又一种图像畸变校正方法的流程示意图,在一些实现中,该方法可应用于图1或图2所示的终端。图15的方法实施例和上述图9的方法实施例的主要区别在于,图15实施例中先对光学畸变校正所得的异形图像做裁切,获得矩形图像,之后在该矩形图像基础上进一步进行算法约束校正。如图15所示,该方法包括但不限于以下步骤:

s601、终端采集源图像。

s602、终端对该源图像进行光学畸变校正,获得异形图像。

有关s601-s602的内容可参考图9实施例s501-s502的描述,为了说明书简洁,这里不再赘述。

s603、终端裁剪异形图像,获得第一校正图像。

具体的,本实施例中,经步骤602获得的异形图像为wt*ht的异形图像(非矩形图像),可对该异形图像沿着边缘位置进行裁切,获得矩形区域,将该矩形区域放大到wt*ht的分辨率,从而得到wt*ht的矩形图像,即第一校正图像。

在一种示例中,本步骤的裁剪和放大处理的具体实现也可类似参考图13实施例的描述,这里不再赘述。

s604、终端识别该第一校正图像存在具有拉伸变形的人像区域、背景区域和视场边缘区域。其中,该拉伸变形的人像区域至少包括拉伸变形的头部区域和拉伸变形的身体区域。

s605、终端确定头部区域、身体区域、背景区域和视场边缘区域分别对应的初始图像矩阵。

有关s604-s605的具体实现内容可参考图9实施例s503-s504的描述,主要区别在于这里的第一校正的矩形图像,而图9实施例中为异形图像。为了说明书简洁,这里不再赘述。

s606、终端分别构建头部区域、身体区域、背景区域和视场边缘区域分别对应的约束项,以及正则约束项。

本步骤中,关于头部约束项、身体约束项、背景约束项以及正则约束项,均可类似参考图9实施例的s505中的相关描述,这里不再赘述。

而本步骤中,由于所针对的第一校正图像为矩形图像,其视场边缘区域为矩形的边缘区域,所以本步骤的视场边界约束项的实现过程与图9实施例的s505中视场边界约束项的实现过程有所不同。

本实施例中,视场边缘约束项用于,约束所述第一校正图像中所述视场边缘区域对应的初始图像矩阵中的像素点沿着所述第一校正图像的边缘发生位移,以保持该视场边缘区域。

若将该视场边缘约束项记为term3,则这里的term3的算式表达式如下:

term3(i,j)=sum(i,j)∈edgeregion||m0(i,j)+dt(i,j)-func3(i,j)[m0(i,j)]||

其中,这里的m0(i,j)表示位于视场边缘区域(即(i,j)∈edgeregion)的像素点的图像坐标,这里的dt(i,j)表示该m0(i,j)对应的位移矩阵,func3(i,j)表示m0(i,j)的位移函数,||…||表示向量2范数。

该视场边缘约束项需保证在位移矩阵dt(j,i)作用下,图像矩阵m0(i,j)倾向于为坐标值m0(j,i)的适当位移,位移规则为只沿着图像的边缘区域移动,避免向图像的内侧或外侧移动,以尽量减少后续矩形裁切造成的图像信息损失。

如图16所示,假设位于视场边缘区域的一个像素点a,其图像坐标为[u0,v0]t,该点a沿视场边界的切向向量表示为y(u0,v0),当边界区域已知时,y(u0,v0)也是已知的。则func3(i,j)可表示为:

β(u0,v0)的正负无需限制,以确保能够沿着边界进行移动。term3可表示为:

du(i,j)和dv(i,j)是需要求解的未知量,后续求解约束方程时需保证该项尽量小。

s607、终端根据各个约束项以及各个约束项对应的权重系数,获得各区域分别对应的位移矩阵。

s608、终端根据各区域分别对应的初始图像矩阵和位移矩阵,通过颜色映射获得第二校正图像并输出。

有关s607-s608的内容可参考图9实施例s506-s507的描述,为了说明书简洁,这里不再赘述。由于本实施例的第一校正图像为矩形图像,所以经过s608获得的第二校正图像同样为矩形图像,后续不需要再对第二校正图像剪裁就可输出。

可以看到,本申请实施例中,终端对光学畸变校正获得异形图像,对该异形图像裁剪为矩形图像,在该矩形图像的基础上分区域(包括头部区域,身体区域,背景区域和视场边缘区域)进行算法约束校正处理,其中,对人像的头部区域和身体区域分别基于不同的投影算法进行形状校正,并分别设置独立的约束项优化求解,确保人像得到最好的校正。对背景区域,通过约束背景像素点与其控制域点在变换前后的位置关系,确保背景区域的图像内容不会由于前景校正而导致背景扭曲或断层现象。对视场边缘区域,采用内容自适应的边界控制,最大程度地减少裁切带来的内容损失和视场损失问题。所以实施本申请实施例能够确保图像被校正后,人像和背景内容均能自然、连贯、协调,符合人眼视觉习惯,极大提高用户使用体验,具有较大的商业应用价值。

为了更好理解上述方案,下面结合一种实际应用场景进行方案的描述。

参见图17,在一种示例性场景中,以终端为智能手机为例,当用户需要用手机拍照时,用户打开手机中的拍照app,手机显示面板上呈现拍照app的显示界面20,拍照app驱动手机的摄像装置实时采集源图像,并在处理器中将源图像进行光学畸变校正为异形图像,对并异形图像进行剪裁放大,获得矩形形式的第一校正图像,并且在显示界面20中的预览框204显示该第一校正图像。当用户点击显示界面20中的拍摄控件202时,处理器对第一校正图像进行算法约束校正获得矩形形式的第二校正图像,并将该第二校正图像保存,例如保存到相册。这样,当用户点击显示界面20中的图像浏览控件201,手机将切换至相册app的显示界面30,并且在显示界面30中显示该矩形图像。可以看到,由于手机自动完成了对图像的校正,校正过程基本不被用户感知。对于用户而言,预览框204看到的是矩形图像,且拍摄完就能够及时看到人像效果和背景效果均极佳的矩形图像效果,极大提高了用户使用体验。

需要说明的是,图14和图17所示的应用场景仅用于示例性解释本申请的方案而非限定。事实上,基于本申请的技术思想和技术方案,在实际产品中还可以设计更多的应用呈现方案。

举例来说,参见图18,在又一种示例性场景中,以终端为智能手机为例,当用户需要用手机拍照时,用户打开手机中的拍照app,手机显示面板上呈现拍照app的显示界面20,拍照app驱动手机的摄像装置实时采集源图像,并且在显示界面20中的预览框204显示该源图像,当用户点击显示界面20中的拍摄控件202时,处理器中将源图像进行光学畸变校正为第一校正图像(第一校正图像可以是异形图像,也可以是经裁剪后的矩形图像,这里以异形图像为例)。处理器对第一校正图像进行算法约束校正获得第二校正图像,并将该第二校正图像裁剪放大为矩形图像进行保存,例如保存到相册。这样,当用户点击显示界面20中的图像浏览控件201,手机将切换至相册app的显示界面30,并且在显示界面30中显示该矩形图像。可以看到,由于手机同样自动完成了对图像的校正,校正过程基本不被用户感知。对于用户而言,预览框204看到的是矩形图像,且拍摄完就能够及时看到人像效果和背景效果均极佳的矩形图像效果,极大提高了用户使用体验。

上文描述了本申请实施例的相关系统架构和方法,基于相同的申请构思,下面描述本申请实施例的相关装置/设备。

参见图19,图19是本申请实施例提供的一种装置70的结构示意图,该装置70包括光学畸变校正模块701和算法约束校正模块702。在一些实施例中,光学畸变校正模块701和算法约束校正模块702可运行于终端100的处理器110。在又一些实施例中,光学畸变校正模块701和算法约束校正模块702的相关功能可在图3实施例所描述的系统库的图形引擎中实现。其中:

光学畸变校正模块701用于,根据采集的源图像进行光学畸变校正,获得第一校正图像;所述第一校正图像包括具有拉伸变形的人像和背景区域,所述拉伸变形的人像至少包括拉伸变形的第一人体区域和拉伸变形的第二人体区域;

算法约束校正模块702用于,分别对所述第一人体区域、所述第二人体区域和所述背景区域进行处理,获得第二校正图像;其中,所述第二校正图像中的人像的第一人体区域和第二人体区域分别基于不同的算法呈现不同变形量,使得所述第一人体区域和所述第二人体区域的拉伸变形分别得到校正,所述第二校正图像的背景区域中贯穿所述人像的图像内容在人眼视觉上无断层。

光学畸变校正模块701和算法约束校正模块702具体可用于实现如图7、图9、或图15实施例中所示的终端中的相关方法步骤,为了说明书的简洁,这里不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本邻域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取器(英文:randomaccessmemory,简称:ram)、磁盘或光盘等。

以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本邻域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本申请的限制。

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