图像处理方法和装置与流程

文档序号:11387673阅读:166来源:国知局
图像处理方法和装置与流程

本发明涉及图像处理领域,具体而言,涉及一种图像处理方法和装置。



背景技术:

物体在距离镜头的一个范围之内能够清晰成像,在该范围之外(或近或远)则成像模糊,这种效果就是景深。在照相、电影等行业中,景深经常用来指示对场景的注意范围,并且提供场景深度的感觉。例如,在高品质游戏中,模拟人眼视觉感受的景深效果越来越受到玩家的重视。

目前,相关技术中为了获取图像的景深效果,通常采用基于反向映射的z缓冲区技术来获取景深,该技术是存储一个具有颜色和深度的图像,根据在z缓冲区中发现的深度值逐个改变像素的量,去模糊被渲染的场景。其中,对于z值和焦平面z值之间有较大差异额像素,选择较大的值作为模糊级别。该模糊技术已经得到了广泛应用,但是,由于该技术仅在物体的本体上对模糊纹理进行采样混合,并没有从原理上对像素进行模糊圈的扩散,这将会导致在图像深度不连续的时候产生失真,即在本应该出现模糊的物体的边缘会出现很硬的轮廓,进而影响图像的景深效果。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种图像处理方法和装置,以至少解决相关技术仅在物体本体上对图像中的模糊纹理进行采样混合,导致图像在深度不连续的时候产生失真的技术问题。

根据本发明实施例的一个方面,提供了一种图像处理方法,包括:获取待处理图像的每个像素点的coc取值,其中,每个像素点的coc取值与待处理图像中像素点对应的对象相对于拍摄设备的透镜之间的距离具有对应关系,待处理图像为拍摄设备拍摄对象所得到的图像;根据每个像素点的coc取值将待处理图像进行分层,得到多层纹理图像,其中,每层纹理图像中的像素点的coc取值位于同一个coc取值范围内;在每个coc取值范围的最大值都小于或等于预定阈值的情况下,对于每层纹理图像中的每个像素点,执行以下第一操作,得到多层处理后的纹理图像,其中,每个像素点在执行第一操作时记为第一当前像素点:根据第一当前像素点的coc取值将第一当前像素点的像素值从第一当前值降低至第一目标值,并将第一当前像素点周围n个第一目标像素点的像素值设置为第一目标值,其中,n为大于1的自然数;将多层处理后的纹理图像进行叠加处理,得到待处理图像对应的具有景深的目标图像。

根据本发明实施例的另一方面,还提供了一种图像处理装置,包括:获取单元,用于获取待处理图像的每个像素点的coc取值,其中,每个像素点的coc取值与待处理图像中像素点对应的对象相对于拍摄设备的透镜之间的距离具有对应关系,待处理图像为拍摄设备拍摄对象所得到的图像;分层单元,用于根据每个像素点的coc取值将待处理图像进行分层,得到多层纹理图像,其中,每层纹理图像中的像素点的coc取值位于同一个coc取值范围内;第一执行单元,用于在每个coc取值范围的最大值都小于或等于预定阈值的情况下,对于每层纹理图像中的每个像素点,执行以下第一操作,得到多层处理后的纹理图像,其中,每个像素点在执行第一操作时记为第一当前像素点:根据第一当前像素点的coc取值将第一当前像素点的像素值从第一当前值降低至第一目标值,并将第一当前像素点周围n个第一目标像素点的像素值设置为第一目标值,其中,n为大于1的自然数;第一叠加单元,用于将多层处理后的纹理图像进行叠加处理,得到待处理图像对应的具有景深的目标图像。

在本发明实施例中,通过对待处理图像按照像素点的coc取值进行分层,按照每层纹理图像中的像素点的coc取值将其像素值降低,并设置其周围n个像素点的像素值为降低后的像素值,最后通过对处理后的纹理图像进行叠加得到待处理图像对应的具有景深的目标图像,达到了高效准确地获取图像景深的目的,进而解决了相关技术仅在物体本体上对图像中的模糊纹理进行采样混合,导致图像在深度不连续的时候产生失真的技术问题,从而实现了获取图像景深的准确度和效率的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的物理成像原理的示意图;

图2是根据本发明实施例的模糊圈coc形成原理的示意图;

图3是根据本发明实施例的图像处理方法的硬件环境的示意图;

图4是根据本发明实施例的一种可选的图像处理方法的流程图;

图5是根据本发明实施例的物体图像的示意图;

图6是根据本发明实施例的像素点的coc取值与物体相对于拍摄设备的透镜之间的距离的关系示意图;

图7是根据本发明实施例的图像分层的示意图;

图8是根据本发明实施例的分层纹理图像的示意图;

图9是根据本发明实施例的coc=3的过滤器的示意图;

图10是根据本发明实施例的纹理图像缩小的示意图;

图11是根据本发明实施例的按照缩小比例为2更新后的过滤器的示意图;

图12是根据本发明实施例的按照缩小比例为4更新后的过滤器的示意图;

图13是根据本发明实施例的过滤处理后的纹理图像的示意图;

图14是根据本发明实施例的一种可选的图像处理装置的示意图;

以及

图15是根据本发明实施例的一种终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

1、实时渲染:以cpu为处理器每秒钟达到24帧以上的画面渲染速度可以被认为与操作者进行有效的交互。

2、景深效果:物体在距离镜头的一个范围之内能够清晰成像,在该范围之外(或近或远)则成像模糊,这种效果就是景深。景深效果由透镜的物理性质产生,若要穿过摄像机透镜(或人眼睛的晶体)的光会聚到胶片(或人的视网膜)上的一个点,光源必须与透镜有特定的距离,在这个距离上的屏幕成为焦平面,不在这个距离上的任何东西投影到胶片上的区域成为模糊圈,简称为coc,其中,coc的直径与透镜尺寸和偏离焦平面的距离成正比。当偏移距离小到一定程度,coc会变得比胶片的分辨率更小,这个范围被成为聚焦了或者成像清晰,而在这个范围之外的任何东西都是模糊的。景深效果的物理原理具体参见图1和图2,在图1中,d为物距,v为像距,f为焦距,则存在以下关系:

在图2中,c为模糊圈,a为光圈,f为焦距,p为焦平面,d为物距,i为像距,则存在以下关系:

在计算机图形中,通常使用一个理想的针孔照相机(透镜尺寸相当于0)向虚拟胶片上投影,因此从场景到胶片的光纤只有一条传输路径,若想得到景深效果,必须近似模拟真实透镜产生的模糊。

实施例1

根据本发明实施例,提供了一种图像处理方法的方法实施例。

可选地,在本实施例中,上述图像处理方法可以应用于如图3所示的由服务器102和终端104所构成的硬件环境中。如图3所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于pc、手机、平板电脑等。本发明实施例的图像处理方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的图像处理方法也可以是由安装在其上的客户端来执行。

图4是根据本发明实施例的一种可选的图像处理方法的流程图,如图4所示,该方法可以包括以下步骤:

步骤s202,获取待处理图像的每个像素点的coc取值,其中,每个像素点的coc取值与待处理图像中像素点对应的对象相对于拍摄设备的透镜之间的距离具有对应关系,待处理图像为拍摄设备拍摄对象所得到的图像;

步骤s204,根据每个像素点的coc取值将待处理图像进行分层,得到多层纹理图像,其中,每层纹理图像中的像素点的coc取值位于同一个coc取值范围内;

步骤s206,在每个coc取值范围的最大值都小于或等于预定阈值的情况下,对于每层纹理图像中的每个像素点,执行以下第一操作,得到多层处理后的纹理图像,其中,每个像素点在执行第一操作时记为第一当前像素点:根据第一当前像素点的coc取值将第一当前像素点的像素值从第一当前值降低至第一目标值,并将第一当前像素点周围n个第一目标像素点的像素值设置为第一目标值,其中,n为大于1的自然数;

步骤s208,将多层处理后的纹理图像进行叠加处理,得到待处理图像对应的具有景深的目标图像。

通过上述步骤s202至步骤s208,通过对待处理图像按照像素点的coc取值进行分层,按照每层纹理图像中的像素点的coc取值将其像素值降低,并设置其周围n个像素点的像素值为降低后的像素值,最后通过对处理后的纹理图像进行叠加得到待处理图像对应的具有景深的目标图像,达到了高效准确地获取图像景深的目的,进而解决了相关技术仅在物体本体上对图像中的模糊纹理进行采样混合,导致图像在深度不连续的时候产生失真的技术问题,从而实现了获取图像景深的准确度和效率的技术效果。

在步骤s202提供的技术方案中,待处理图像是由拍摄设备对某个对象进行拍摄所得到的图像,其中,本发明实施例对对象的类型。待处理图像的参数属性中可以包括待处理图像中的对象相对于拍摄设备的透镜之间的距离,由于待处理图像中的对象相对于拍摄设备(照相机、摄影机等)的透镜之间的距离与待处理图像中的像素点的coc取值具有对应关系,该对应关系可以为某种函数关系,因此,在根据待处理图像的参数属性确定待处理图像中的对象相对于拍摄设备的透镜之间的距离之后,可以根据该对应关系获取到待处理图像中的像素点的coc取值。需要说明的是,景深效果由透镜的物理性质产生,若要穿过摄像机透镜(或人眼睛的晶体)的光会聚到胶片(或人的视网膜)上的一个点,光源必须与透镜有特定的距离,在这个距离上的屏幕成为焦平面,不在这个距离上的任何东西投影到胶片上的区域成为模糊圈,简称为coc。还需要说明的是,待处理图像中某个像素点的coc取值可以用于指示该像素点相对于中心像素点的距离。

在步骤s204提供的技术方案中,在获取到待处理图像中的每个像素点的coc取值之后,本发明实施例可以按照每个像素点的coc取值将待处理图像进行分层处理,得到多层纹理图像。可选地,分层处理的原则可以为每层纹理图像中的像素点的coc取值位于同一个coc取值范围内,也即每层纹理图像对应一个coc取值范围。

举例说明步骤s202以及步骤s204:

假设利用拍摄设备所拍摄的物体图像如图5所示,图5为一个四方锥的俯视图,图5中的近平面表示距离拍摄设备较近,远平面表示距离拍摄设备较远。由于物体图像中像素点的coc取值与物体相对于拍摄设备的距离具有某种函数关系,假设该函数关系如图6所示,从图6中可以看出,与拍摄设备的距离越近,像素点的coc取值越大;与拍摄设备的距离越远,像素点的coc取值越小。根据物体图像中像素点的coc取值与物体相对于拍摄设备的距离之间的函数关系,可以获取到物体图像中所有像素点的coc取值,然后可以根据实际需求按照像素点的coc取值将物体图像分为多层纹理图像,例如如图7所示,该物体图像被分为4层纹理图像,每层纹理图像对应一个coc取值范围,按照距离拍摄设备由近到远每层纹理图像对应的coc取值范围依次为:6<coc≤12、3<coc≤6、1<coc≤3、coc=1。此处需要说明的是,像素点的coc取值范围所代表的含义可以为:例如1<coc≤3代表该纹理图像中的某个像素会被扩散到周围的2到3个像素,其他层次同理。将图5所示的物体按照coc划分区域可以渲染到图8所示的三张纹理图像上,其中,纹理图像中像素点的颜色是该像素点的正常颜色,且像素点的颜色可以存储像素点的coc取值。

需要说明的是,按照每个像素点的coc取值对待处理图像进行分层后,所得到的多层纹理图像,这些纹理图像的coc取值范围的最大值将会影响对该纹理图像所执行的处理操作。可选地,在本发明实施例中,在得到多层纹理图像的coc取值范围之后,可以首先判断每层纹理图像的coc取值范围的最大值是否都小于或者等于预定阈值,其中,预定阈值可以为根据实际需求所设定的数值,此处不做具体限定,例如该预定阈值可以根据纹理图像的硬件处理器的处理能力确定为3。经过上述判断之后,判断结果可以包括以下两种情况:第一种情况,每层纹理图像的coc取值范围的最大值都小于或者等于预定阈值;第二种情况,存在部分层纹理图像的coc取值范围的最大值小于或者等于预定阈值,也存在部分层纹理图像的coc取值范围的最大值大于预定阈值。本发明实施例针对上述两种情况所采取的处理操作不同,下面将分别进行详细介绍:

对于第一种情况,每层纹理图像的coc取值范围的最大值都小于或者等于预定阈值,其处理操作参见步骤s206至步骤s208,具体地:

对于每层纹理图像中的每个像素点可以执行以下第一操作,以得到多层处理后的纹理图像,其中,每个像素点在执行第一操作时记为第一当前像素点:

首先,确定第一当前像素点的coc取值的数值范围,如果确定出m<第一当前像素点的coc取值≤m+1,其中,m为自然数,则可以将第一当前像素点周围的、距第一当前像素点的距离小于等于m的像素点确定为第一目标像素点,假设第一目标像素点的个数为n,其中,n可以为大于1的自然数。

然后,将第一当前像素点的像素值从第一当前值降低至第一目标值,其中,第一当前值为第一当前像素点当前的像素值,第一目标值=第一当前值/(n+1)。

最后,将第一当前像素点周围n个第一目标像素点的像素值也设置为第一目标值。

经过上述第一操作之后,第一当前像素点及其周围n个像素点的像素值均发生了更新,且更新后的像素值为第一当前像素点的当前像素值的1/(n+1),这样能够实现对该第一当前像素点的模糊渲染。如果遍历纹理图像中的每个像素值,则可以实现对该纹理图像的模糊渲染,也即可以得到该纹理图像的景深效果。

本发明实施例可以通过对每层coc取值范围的最大值小于或等于预定阈值的纹理图像均执行上述第一操作,则可以得到多层处理后的纹理图像,这些处理后的纹理图像为具有景深的纹理图像。之后本发明实施例还可以对这些处理后的纹理图像进行叠加处理,以得到待处理图像所对应的具有景深的目标图像。此处需要说明的是,本发明实施例对多层纹理图像进行叠加处理所采取的操作不做具体限定,凡是能够实现多层纹理图像叠加的方法均属于本发明实施例的保护范围。

对于第二种情况,存在部分层纹理图像的coc取值范围的最大值小于或者等于预定阈值,也存在部分层纹理图像的coc取值范围的最大值大于预定阈值,本发明实施例可以将coc取值范围的最大值小于或等于预定阈值的coc取值范围称为多个coc取值范围中的第一部分coc取值范围,将coc取值范围的最大值大于预定阈值的coc取值范围称为多个coc取值范围中的第二部分coc取值范围。相应地,第一部分coc取值范围对应的纹理图像称为第一部分纹理图像,第二部分coc取值范围对应的纹理图像称为第二部分纹理图像。需要说明的是,第一部分纹理图像和第二部分纹理图像的个数不做限定,可以是一个,也可以是多个。在该情况下,本发明实施例对第一部分纹理图像和第二部分纹理图像所执行的处理操作不同,具体分别为:

(1)对第一部分纹理图像所执行的处理操作为:

对于第一部分纹理图像中每个纹理图像中的每个像素点,执行本发明实施例上述第一操作,以得到一个或者多个处理后的第一部分纹理图像。此处需要说明的是,第一操作的内容已经在上述实施例中进行了详细说明,此处不再赘述。

(2)对第二部分纹理图像所执行的处理操作为:

首先,对第二部分纹理图像中每层纹理图像执行第二操作,以得到处理后的第二部分纹理图像,其中,第二部分纹理图像中的每层纹理图像在执行第二操作时被记为当前层纹理图像,其中,第二操作可以包括以下步骤s1至步骤s4:

步骤s1,将当前层纹理图像的尺寸大小由q×q缩小至得到第一纹理图像。其中,p和q为大于1的自然数。需要说明的是,第一纹理图像为当前层纹理图像按照缩小比例p缩小后得到的纹理图像。

步骤s2,根据第一纹理图像中的像素点的coc取值将第一纹理图像中的i个像素点的像素值设置为第二目标值,得到第二纹理图像。可选地,步骤s2可以具体包括:

对于第一纹理图像中的每个像素点,执行以下第三操作,其中,第一纹理图像中的每个像素点在执行第三操作时记为第二当前像素点:根据第二当前像素点的coc取值将第二当前像素点的像素值从第二当前值降低至第二目标值,并将第二当前像素点周围i-1个第二目标像素点的像素值设置为第二目标值。其中,可以包括以下内容:1)确定第二当前像素点的coc取值的数值范围,如果确定出p*k<第二当前像素点的coc取值≤p*(k+1),其中,p为缩小比例,k为自然数,则可以将第二当前像素点周围的、距第二当前像素点的距离小于等于p*k的像素点确定为第二目标像素点,假设第二目标像素点的个数为i-1;2)将第二当前像素点的像素值从第二当前值降低至第二目标值,其中,第二当前值为第二当前像素点当前的像素值,第二目标值=第二当前值/(i*p2);3)将第二当前像素点周围i-1个第二目标像素点的像素值设置为第二目标值。

步骤s3,将第二纹理图像的尺寸大小由放大至q×q,得到第三纹理图像。需要说明的是,第三纹理图像为对缩小后的图像进行还原所得到的图像,还原比例与缩小比例相同,均为p。

步骤s4,将第三纹理图像中的j个像素点的像素值设置为第二目标值,其中,第二目标值=第二当前值/(i*p2),且i+j=n+1。需要说明的是,缩小后的纹理图像(即第一纹理图像)进行步骤s2的处理操作后,可以得到第二纹理图像,其中,第二纹理图像中存在i个像素点的像素值被更新为第二目标值。当第二纹理图像被还原之后得到第三纹理图像,第三纹理图像中的像素点个数增加,此时需要在第三纹理图像中增加像素值是第二目标值的像素点,所增加的像素点的个数为j,i+j即为该纹理图像中的像素值为第二目标值所覆盖的像素点的个数。这样能够使得该纹理图像中当前像素点能够模糊渲染所覆盖的像素点更加准确,进而达到提高对该纹理图像进行模糊渲染的准确度。

需要说明的是,在经过上述(1)所示的处理操作得到第一部分纹理图像以及经过上述(2)所示的处理操作得到第二部分纹理图像之后,本发明实施例可以对其进行叠加处理,以得到待处理图像所对应的具有景深的目标图像。

还需要说明的是,针对上述实施例中的处理操作的具体举例详见下文本发明所提供的优选实施例。

通过本发明上述实施例中的处理操作,能够实现高效准确地获取图像景深的目的,进而解决了相关技术仅在物体本体上对图像中的模糊纹理进行采样混合,导致图像在深度不连续的时候产生失真的技术问题,从而实现了获取图像景深的准确度和效率的技术效果。

本发明还提供了一种优选实施例,该优选实施例提供了一种基于coc分层和扩散实现景深效果的方法。该优选实施例的方法采用coc分层和扩散的方式来实现景深效果,能够达到极高的精度和效果,该方法的技术方案具体包括以下几个部分:

第一部分:绘制物体图像,具体可以包括获取该物体图像的coc分层纹理以及存储coc纹理中像素的颜色和coc信息。其中,分层操作以及存储coc纹理中像素的颜色和coc信息与本发明上述实施例中所介绍的内容相同,此处不再赘述。分层后得到的结果可以参见图8所示。

第二部分:处理分层纹理,具体可以包括按照比例缩小分层纹理。此处需要说明的是,对纹理图像进行缩小的比例可以根据预先设定的、用于对纹理图像进行过滤的过滤器确定,过滤器中每个像素点可以标有coc距离值,该coc距离值可以用于表示该像素点与中心像素点之间的距离。假设如图9所示的过滤器是一个coc=3的过滤器,则在该过滤器是一个5*5的像素矩阵,在该过滤器中距离中心像素点(图9中标有斜线的像素点)的coc距离值,图9中的“1”代表与中心像素点的距离为1,“2”代表与中心像素点的距离为2。按照图9所示的过滤器,对图8所示的三张纹理图像进行比例缩小时,如图10所示,针对1≤coc≤3对应的纹理图像,由于coc取值范围的最大值3等于过滤器coc=3,则该纹理图像无需被缩小;针对3<coc≤6对应的纹理图像,由于coc取值范围的最大值6大于3,且为2倍关系,则该纹理图像缩小比例为2;针对6<coc≤12对应的纹理图像,由于coc取值范围的最大值12大于3,且为4倍关系,则该纹理图像缩小比例为4。

第三部分,利用过滤器分别对每张纹理图像进行过滤处理,具体可以包括coc比较和颜色叠加。其中,coc比较的原理可以描述为:判断纹理图像中像素点的coc取值是否小于等于过滤器中的coc距离值,如果是,则将该像素点的像素值乘以coc权重,其中,coc权重可以为该像素点所能够扩散影响的像素点的个数的倒数,此处假设像素是均匀扩散的。下面将具体举例说明对不同纹理图像进行coc比较的详细过程:

例1,针对1≤coc≤3对应的纹理图像,假设某个像素点的coc取值为1.5,则由于1<1.5<2,则该像素点只能被扩散到图9所示过滤器中coc距离值标“1”的4个像素点,其中,该像素点位于中心像素点的位置,则加上中心像素点个数为5,则coc权重为1/5,也即该像素点的像素值变为原来的1/5,且其他被扩散影响的像素点(即过滤器中coc距离值标“1”的4个像素点)的像素值也被设置为与像素点的像素值变为原来的1/5。假设某个像素点的coc取值为2.5,则由于2<1.5<3,则该像素点能被扩散到图9所示过滤器中coc距离值标“1”和“2”的12个像素点,其中,该像素点位于中心像素点的位置,则加上中心像素点个数为13,则coc权重为1/13,也即该像素点的像素值变为原来的1/13,且其他被扩散影响的像素点(即过滤器中coc距离值标“1”和“2”的12个像素点)的像素值也被设置为与像素点的像素值变为原来的1/13。

例2,针对3<coc≤6对应的纹理图像,针对该纹理图像利用过滤器进行过滤处理是需要按照缩小倍数将过滤器中的coc距离值乘以相应倍数,假设3<coc≤6对应的纹理图像缩小比例为2,则过滤器中coc距离值乘以2,变为图11所示的过滤器。假设3<coc≤6对应的纹理图像中某个像素点的coc取值为3.5,则由于2<3.5<4,则该像素点只能被扩散到图11所示过滤器中coc距离值标“2”的4个像素点,其中,该像素点位于中心像素点的位置,则加上中心像素点个数为5。当利用如图11所示的过滤器对缩小后的纹理图像进行过滤处理之后,还需要对缩小后的纹理图像进行还原处理,还原处理将会增加像素点的个数,相应地,该像素点所能扩散影响的像素点的个数也会增加,增加至5*22,则coc权重为1/5*22,也即该像素点的像素值变为原来的1/5*22,且其他被扩散影响的5*22个像素点的像素值也被设置为与像素点的像素值变为原来的1/5*22。假设3<coc≤6对应的纹理图像中某个像素点的coc取值为5.5,则由于4<5.5<6,则该像素点能被扩散到图11所示过滤器中coc距离值标“2”和“4”的12个像素点,其中,该像素点位于中心像素点的位置,则加上中心像素点个数为13。当利用如图11所示的过滤器对缩小后的纹理图像进行过滤处理之后,还需要对缩小后的纹理图像进行还原处理,还原处理将会增加像素点的个数,相应地,该像素点所能扩散影响的像素点的个数也会增加,增加至13*22,则coc权重为1/13*22,也即该像素点的像素值变为原来的1/13*22,且其他被扩散影响的13*22个像素点的像素值也被设置为与像素点的像素值变为原来的1/13*22

例3,针对6<coc≤12对应的纹理图像,针对该纹理图像利用过滤器进行过滤处理是需要按照缩小倍数将过滤器中的coc距离值乘以相应倍数,假设6<coc≤12对应的纹理图像缩小比例为4,则过滤器中coc距离值乘以4,变为图12所示的过滤器。假设6<coc≤12对应的纹理图像中某个像素点的coc取值为7.5,则由于4<7.5<8,则该像素点只能被扩散到图12所示过滤器中coc距离值标“4”的4个像素点,其中,该像素点位于中心像素点的位置,则加上中心像素点个数为5。当利用如图12所示的过滤器对缩小后的纹理图像进行过滤处理之后,还需要对缩小后的纹理图像进行还原处理,还原处理将会增加像素点的个数,相应地,该像素点所能扩散影响的像素点的个数也会增加,增加至5*42,则coc权重为1/5*42,也即该像素点的像素值变为原来的1/5*42,且其他被扩散影响的5*42个像素点的像素值也被设置为与像素点的像素值变为原来的1/5*42。假设6<coc≤12对应的纹理图像中某个像素点的coc取值为8.5,则由于8<8.5<14,则该像素点能被扩散到图12所示过滤器中coc距离值标“4”和“8”的12个像素点,其中,该像素点位于中心像素点的位置,则加上中心像素点个数为13。当利用如图12所示的过滤器对缩小后的纹理图像进行过滤处理之后,还需要对缩小后的纹理图像进行还原处理,还原处理将会增加像素点的个数,相应地,该像素点所能扩散影响的像素点的个数也会增加,增加至13*42,则coc权重为1/13*42,也即该像素点的像素值变为原来的1/13*42,且其他被扩散影响的13*42个像素点的像素值也被设置为与像素点的像素值变为原来的1/13*42

需要说明的是,图8所示的三张纹理图像经过过滤处理之后得到的纹理图像可以如图13所示。

第四部分,叠加图13中所示的各个过滤处理后的纹理图像,可以得到图5所示的物理图像的具有景深的图像。

需要说明的是,本发明可以应用于照相、电影等行业中,也可以应用于高品质游戏中,用来模拟人眼视觉感受的景深效果,进而能够实现提高玩家使用体验的效果。本发明基于反向映射的z缓冲区景深,采用coc分层和扩散的方式达到了极高的精度和效率,通过基于物理的扩散模拟,得到更加准确的结果,同时还可以处理深度突变的情况,比如物体边缘。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种用于实施上述图像处理方法的图像处理装置。图14是根据本发明实施例的一种可选的图像处理装置的示意图,如图14所示,该装置可以包括:

获取单元22,用于获取待处理图像的每个像素点的coc取值,其中,每个像素点的coc取值与待处理图像中像素点对应的对象相对于拍摄设备的透镜之间的距离具有对应关系,待处理图像为拍摄设备拍摄对象所得到的图像;分层单元24,用于根据每个像素点的coc取值将待处理图像进行分层,得到多层纹理图像,其中,每层纹理图像中的像素点的coc取值位于同一个coc取值范围内;第一执行单元26,用于在每个coc取值范围的最大值都小于或等于预定阈值的情况下,对于每层纹理图像中的每个像素点,执行以下第一操作,得到多层处理后的纹理图像,其中,每个像素点在执行第一操作时记为第一当前像素点:根据第一当前像素点的coc取值将第一当前像素点的像素值从第一当前值降低至第一目标值,并将第一当前像素点周围n个第一目标像素点的像素值设置为第一目标值,其中,n为大于1的自然数;第一叠加单元28,用于将多层处理后的纹理图像进行叠加处理,得到待处理图像对应的具有景深的目标图像。

需要说明的是,该实施例中的获取单元22可以用于执行本申请实施例1中的步骤s202,该实施例中的分层单元24可以用于执行本申请实施例1中的步骤s204,该实施例中的第一执行单元26可以用于执行本申请实施例1中的步骤s206,该实施例中的第一叠加单元28可以用于执行本申请实施例1中的步骤s208。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图3所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

作为一种可选的实施例,第一执行单元包括:第一确定模块,用于确定出m<第一当前像素点的coc取值≤m+1,其中,m为自然数;第二确定模块,用于将第一当前像素点周围距第一当前像素点的距离小于等于m的像素点确定第一目标像素点,其中,第一目标像素点的个数为n;第一设置模块,用于将第一当前像素点的像素值从第一当前值降低至第一目标值,并将第一当前像素点周围n个第一目标像素点的像素值设置为第一目标值,其中,第一目标值=第一当前值/(n+1)。

作为一种可选的实施例,该装置还包括:第二执行单元,用于在多个coc取值范围中的第一部分coc取值范围的最大值小于或等于预定阈值、且多个coc取值范围中除第一部分coc取值范围之外的第二部分coc取值范围的最大值大于预定阈值的情况下,对于多层纹理图像中第一部分纹理图像中的每个像素点,执行第一操作,得到处理后的第一部分纹理图像,其中,第一部分纹理图像中的每层纹理图像中的像素点的coc取值位于第一部分coc取值范围内;第三执行单元,用于对于多层纹理图像中除第一部分纹理图像之外的第二部分纹理图像中的每层纹理图像,执行以下第二操作,得到处理后的第二部分纹理图像,其中,第二部分纹理图像中的每层纹理图像在执行第二操作时被记为当前层纹理图像,第二部分纹理图像中的每层纹理图像中的像素点的coc取值位于第二部分coc取值范围内:将当前层纹理图像的尺寸大小由q×q缩小至得到第一纹理图像;根据第一纹理图像中的像素点的coc取值将第一纹理图像中的i个像素点的像素值设置为第二目标值,得到第二纹理图像;将第二纹理图像的尺寸大小由放大至q×q,得到第三纹理图像;并将第三纹理图像中的j个像素点的像素值设置为第二目标值,其中,p和q为大于1的自然数,i+j=n+1;第二叠加单元,用于将处理后的第一部分纹理图像和处理后的第二部分纹理图像进行叠加处理,得到待处理图像对应的具有景深的目标图像。

作为一种可选的实施例,第三执行单元包括:第一执行模块,用于对于第一纹理图像中的每个像素点,执行以下第三操作,其中,第一纹理图像中的每个像素点在执行第三操作时记为第二当前像素点:根据第二当前像素点的coc取值将第二当前像素点的像素值从第二当前值降低至第二目标值,并将第二当前像素点周围i-1个第二目标像素点的像素值设置为第二目标值。

作为一种可选的实施例,第一执行模块包括:第三确定模块,用于确定出p*k<第二当前像素点的coc取值≤p*(k+1),其中,k为自然数;第四确定模块,用于将第二当前像素点周围距第二当前像素点的距离小于等于p*k的像素点确定第二目标像素点,其中,第二目标像素点的个数为i-1;第二设置模块,用于将第二当前像素点的像素值从第二当前值降低至第二目标值,并将第二当前像素点周围i-1个第二目标像素点的像素值设置为第二目标值,其中,第二目标值=第二当前值/(i*p2)。

作为一种可选的实施例,第三执行单元还包括:第三设置模块,用于将第三纹理图像中的j个像素点的像素值设置为第二目标值,其中,第二目标值=第二当前值/(i*p2)。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图3所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,达到了高效准确地获取图像景深的目的,进而解决了相关技术仅在物体本体上对图像中的模糊纹理进行采样混合,导致图像在深度不连续的时候产生失真的技术问题,从而实现了获取图像景深的准确度和效率的技术效果。

实施例3

根据本发明实施例,还提供了一种用于实施上述图像处理方法的终端。

图15是根据本发明实施例的一种终端的结构框图,如图15所示,该终端可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205,如图15所示,该终端还可以包括输入输出设备207。

其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的图像处理方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的图像处理方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置205用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器203用于存储应用程序。

处理器201可以调用存储器203存储的应用程序,以执行下述步骤:获取待处理图像的每个像素点的coc取值,其中,每个像素点的coc取值与待处理图像中像素点对应的对象相对于拍摄设备的透镜之间的距离具有对应关系,待处理图像为拍摄设备拍摄对象所得到的图像;根据每个像素点的coc取值将待处理图像进行分层,得到多层纹理图像,其中,每层纹理图像中的像素点的coc取值位于同一个coc取值范围内;在每个coc取值范围的最大值都小于或等于预定阈值的情况下,对于每层纹理图像中的每个像素点,执行以下第一操作,得到多层处理后的纹理图像,其中,每个像素点在执行第一操作时记为第一当前像素点:根据第一当前像素点的coc取值将第一当前像素点的像素值从第一当前值降低至第一目标值,并将第一当前像素点周围n个第一目标像素点的像素值设置为第一目标值,其中,n为大于1的自然数;将多层处理后的纹理图像进行叠加处理,得到待处理图像对应的具有景深的目标图像。

处理器201还用于执行下述步骤:确定出m<第一当前像素点的coc取值≤m+1,其中,m为自然数;将第一当前像素点周围距第一当前像素点的距离小于等于m的像素点确定第一目标像素点,其中,第一目标像素点的个数为n;将第一当前像素点的像素值从第一当前值降低至第一目标值,并将第一当前像素点周围n个第一目标像素点的像素值设置为第一目标值,其中,第一目标值=第一当前值/(n+1)。

处理器201还用于执行下述步骤:在多个coc取值范围中的第一部分coc取值范围的最大值小于或等于预定阈值、且多个coc取值范围中除第一部分coc取值范围之外的第二部分coc取值范围的最大值大于预定阈值的情况下,对于多层纹理图像中第一部分纹理图像中的每个像素点,执行第一操作,得到处理后的第一部分纹理图像,其中,第一部分纹理图像中的每层纹理图像中的像素点的coc取值位于第一部分coc取值范围内;对于多层纹理图像中除第一部分纹理图像之外的第二部分纹理图像中的每层纹理图像,执行以下第二操作,得到处理后的第二部分纹理图像,其中,第二部分纹理图像中的每层纹理图像在执行第二操作时被记为当前层纹理图像,第二部分纹理图像中的每层纹理图像中的像素点的coc取值位于第二部分coc取值范围内:将当前层纹理图像的尺寸大小由q×q缩小至得到第一纹理图像;根据第一纹理图像中的像素点的coc取值将第一纹理图像中的i个像素点的像素值设置为第二目标值,得到第二纹理图像;将第二纹理图像的尺寸大小由放大至q×q,得到第三纹理图像;并将第三纹理图像中的j个像素点的像素值设置为第二目标值,其中,p和q为大于1的自然数,i+j=n+1;将处理后的第一部分纹理图像和处理后的第二部分纹理图像进行叠加处理,得到待处理图像对应的具有景深的目标图像。

处理器201还用于执行下述步骤:对于第一纹理图像中的每个像素点,执行以下第三操作,其中,第一纹理图像中的每个像素点在执行第三操作时记为第二当前像素点:根据第二当前像素点的coc取值将第二当前像素点的像素值从第二当前值降低至第二目标值,并将第二当前像素点周围i-1个第二目标像素点的像素值设置为第二目标值。

处理器201还用于执行下述步骤:确定出p*k<第二当前像素点的coc取值≤p*(k+1),其中,k为自然数;将第二当前像素点周围距第二当前像素点的距离小于等于p*k的像素点确定第二目标像素点,其中,第二目标像素点的个数为i-1;将第二当前像素点的像素值从第二当前值降低至第二目标值,并将第二当前像素点周围i-1个第二目标像素点的像素值设置为第二目标值,其中,第二目标值=第二当前值/(i*p2)。

处理器201还用于执行下述步骤:将第三纹理图像中的j个像素点的像素值设置为第二目标值,其中,第二目标值=第二当前值/(i*p2)。

采用本发明实施例,提供了一种图像处理方案。通过对待处理图像按照像素点的coc取值进行分层,按照每层纹理图像中的像素点的coc取值将其像素值降低,并设置其周围n个像素点的像素值为降低后的像素值,最后通过对处理后的纹理图像进行叠加得到待处理图像对应的具有景深的目标图像,达到了高效准确地获取图像景深的目的,进而解决了相关技术仅在物体本体上对图像中的模糊纹理进行采样混合,导致图像在深度不连续的时候产生失真的技术问题,从而实现了获取图像景深的准确度和效率的技术效果。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图15所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图15其并不对上述电子装置的结构造成限定。例如,终端还可包括比图15中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图15所示不同的配置。

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

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行图像处理方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

s1,获取待处理图像的每个像素点的coc取值,其中,每个像素点的coc取值与待处理图像中像素点对应的对象相对于拍摄设备的透镜之间的距离具有对应关系,待处理图像为拍摄设备拍摄对象所得到的图像;

s2,根据每个像素点的coc取值将待处理图像进行分层,得到多层纹理图像,其中,每层纹理图像中的像素点的coc取值位于同一个coc取值范围内;

s3,在每个coc取值范围的最大值都小于或等于预定阈值的情况下,对于每层纹理图像中的每个像素点,执行以下第一操作,得到多层处理后的纹理图像,其中,每个像素点在执行第一操作时记为第一当前像素点:根据第一当前像素点的coc取值将第一当前像素点的像素值从第一当前值降低至第一目标值,并将第一当前像素点周围n个第一目标像素点的像素值设置为第一目标值,其中,n为大于1的自然数;

s4,将多层处理后的纹理图像进行叠加处理,得到待处理图像对应的具有景深的目标图像。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:确定出m<第一当前像素点的coc取值≤m+1,其中,m为自然数;将第一当前像素点周围距第一当前像素点的距离小于等于m的像素点确定第一目标像素点,其中,第一目标像素点的个数为n;将第一当前像素点的像素值从第一当前值降低至第一目标值,并将第一当前像素点周围n个第一目标像素点的像素值设置为第一目标值,其中,第一目标值=第一当前值/(n+1)。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在多个coc取值范围中的第一部分coc取值范围的最大值小于或等于预定阈值、且多个coc取值范围中除第一部分coc取值范围之外的第二部分coc取值范围的最大值大于预定阈值的情况下,对于多层纹理图像中第一部分纹理图像中的每个像素点,执行第一操作,得到处理后的第一部分纹理图像,其中,第一部分纹理图像中的每层纹理图像中的像素点的coc取值位于第一部分coc取值范围内;对于多层纹理图像中除第一部分纹理图像之外的第二部分纹理图像中的每层纹理图像,执行以下第二操作,得到处理后的第二部分纹理图像,其中,第二部分纹理图像中的每层纹理图像在执行第二操作时被记为当前层纹理图像,第二部分纹理图像中的每层纹理图像中的像素点的coc取值位于第二部分coc取值范围内:将当前层纹理图像的尺寸大小由q×q缩小至得到第一纹理图像;根据第一纹理图像中的像素点的coc取值将第一纹理图像中的i个像素点的像素值设置为第二目标值,得到第二纹理图像;将第二纹理图像的尺寸大小由放大至q×q,得到第三纹理图像;并将第三纹理图像中的j个像素点的像素值设置为第二目标值,其中,p和q为大于1的自然数,i+j=n+1;将处理后的第一部分纹理图像和处理后的第二部分纹理图像进行叠加处理,得到待处理图像对应的具有景深的目标图像。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:对于第一纹理图像中的每个像素点,执行以下第三操作,其中,第一纹理图像中的每个像素点在执行第三操作时记为第二当前像素点:根据第二当前像素点的coc取值将第二当前像素点的像素值从第二当前值降低至第二目标值,并将第二当前像素点周围i-1个第二目标像素点的像素值设置为第二目标值。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:确定出p*k<第二当前像素点的coc取值≤p*(k+1),其中,k为自然数;将第二当前像素点周围距第二当前像素点的距离小于等于p*k的像素点确定第二目标像素点,其中,第二目标像素点的个数为i-1;将第二当前像素点的像素值从第二当前值降低至第二目标值,并将第二当前像素点周围i-1个第二目标像素点的像素值设置为第二目标值,其中,第二目标值=第二当前值/(i*p2)。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:将第三纹理图像中的j个像素点的像素值设置为第二目标值,其中,第二目标值=第二当前值/(i*p2)。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

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

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

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

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

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

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