本发明涉及图像处理技术领域,更具体地说,涉及一种图像去模糊方法及装置。
背景技术:
图像模糊通常是由于在相机曝光的时间内,相机和场景之间发生相对运动(如相机抖动)的结果。由于位移运动的任意性,自然图像的多样性,以及各种噪声的复杂性,使得图像去模糊问题变得非常困难。
图像去模糊的目的是从观测到的模糊图像重新估计原始图像。图像去模糊分为两大类:图像非盲去模糊和图像盲去模糊。如果图像的退化过程是已知的,即模糊核已知,则这类图像去模糊的问题称为图像非盲去模糊,这类问题已经研究的非常成熟,现在很多技术可以得到非常清晰的解;如果图像的模糊核是未知的,则这类图像去模糊的问题称为图像盲去模糊。由于此类问题中的图像可以利用的经验知识比较少,使得图像盲去模糊更加困难,但是此类问题更符合实际需求,因而图像盲去模糊问题成为现代研究的热点。
图像盲去模糊问题中由于原始清晰图像和模糊核均未知,因此所有的实际解决方案都必须事先对模糊核或要恢复的清晰图像做出假设。发明人研究发现,目前已有的图像盲去模糊方法均以一个简单的参数模型假设模糊核,使得去模糊图像的某些区域的去模糊效果不佳,去模糊后的图像常出现振铃现象和失真。
技术实现要素:
本发明的目的是提供一种图像去模糊方法及装置,以克服去模糊后的图像存在振铃现象和失真的问题。
为实现上述目的,本发明提供了如下技术方案:
一种图像去模糊方法,包括:
估计待处理图像的各个像素点的深度;
基于所述深度将所述待处理图像划分为若干个区域;
分别计算每一个区域的模糊核;
对于每一个区域,基于该区域的模糊核对该区域进行去模糊处理;
将去模糊后的区域进行边缘融合,得到去模糊后的图像。
上述方法,优选的,所述估计待处理图像的各个像素点的深度包括:
获得待处理图像的灰度图像;
计算所述灰度图像中各个像素点的梯度;
对于每一个像素点,基于该像素点的梯度计算该像素点的深度。
上述方法,优选的,所述基于所述深度将所述待处理图像划分为若干个区域包括:
基于各个像素点的深度对所述待处理图像进行粗划分,得到若干第一级区域;
若所述若干第一级区域中存在满足预设条件的第一级区域,则获取所述满足预设条件的第一级区域的最外围的若干像素点;基于所述最外围的若干像素点对所述满足预设条件的第一级区域进行区域细分,得到若干第二级区域。
上述方法,优选的,所述基于各个像素点的深度对所述待处理图像进行粗划分包括:
将邻域内深度相同的像素点标记为一个区域。
上述方法,优选的,所述第一级区域满足预设条件包括:
所述第一级区域的像素个数与所述待处理图像的像素个数的比值大于预置的比值阈值;或者,
所述第一级区域中包括特定的标识信息,该特定的标识信息由人为标定。
上述方法,优选的,所述分别计算每一个区域的模糊核包括:
计算各个区域的模糊度;
对于每一个区域,若该区域的模糊度小于第一阈值,则确定该区域的模糊核的尺寸为第一尺寸;若该区域的模糊度大于第二阈值,则确定该区域的模糊核的尺寸为第二尺寸;若该区域的模糊度大于或等于所述第一阈值,且小于或等于所述第二阈值,则确定该区域的模糊核尺寸为第三尺寸;基于该区域的模糊核尺寸计算该区域的模糊核;
其中,所述第一阈值小于所述第二阈值;所述第一尺寸大于所述第三尺寸,所述第三尺寸大于所述第二尺寸。
一种图像去模糊装置,包括:
估计模块,用于估计待处理图像的各个像素点的深度;
区域划分模块,用于基于所述深度将所述待处理图像划分为若干个区域;
计算模块,用于分别计算每一个区域的模糊核;
处理模块,用于对于每一个区域,基于该区域的模糊核对该区域进行去模糊处理;
融合模块,用于将去模糊后的区域进行边缘融合,得到去模糊后的图像。
上述装置,优选的,所述估计模块包括:
获得单元,用于获得待处理图像的灰度图像;
第一计算单元,用于计算所述灰度图像中各个像素点的梯度;
第二计算单元,用于对于每一个像素点,基于该像素点的梯度计算该像素点的深度。
上述装置,优选的,所述区域划分模块包括:
第一划分单元,用于基于各个像素点的深度对所述待处理图像进行粗划分,得到若干第一级区域;
第二划分单元,用于若所述若干第一级区域中存在满足预设条件的第一级区域,则获取所述满足预设条件的第一级区域的最外围的若干像素点;基于所述最外围的若干像素点对所述满足预设条件的第一级区域进行区域细分,得到若干第二级区域。
上述装置,优选的,所述第一划分单元具体用于,将邻域内深度相同的像素点标记为一个区域。
上述装置,优选的,所述计算模块包括:
第三计算单元,用于计算各个区域的模糊度;
第四计算单元,用于对于每一个区域,若该区域的模糊度小于第一阈值,则确定该区域的模糊核的尺寸为第一尺寸;若该区域的模糊度大于第二阈值,则确定该区域的模糊核的尺寸为第二尺寸;若该区域的模糊度大于或等于所述第一阈值,且小于或等于所述第二阈值,则确定该区域的模糊核尺寸为第三尺寸;基于该区域的模糊核尺寸计算该区域的模糊核;
其中,所述第一阈值小于所述第二阈值;所述第一尺寸大于所述第三尺寸,所述第三尺寸大于所述第二尺寸。
通过以上方案可知,本申请提供的一种图像去模糊方法及装置,基于像素点的深度将待处理图像划分为若干个区域,并分别计算每个区域的模糊核,对于每一个区域,基于该区域的模糊核进行去模糊处理,将去模糊后的区域进行边缘融合,得到去模糊后的图像,克服了去模糊后的图像存在振铃现象和失真的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的图像去模糊方法的一种实现流程图;
图2为本发明实施例提供的估计待处理图像的各个像素点的深度的一种实现流程图;
图3为本发明实施例提供的图像去模糊装置的一种结构示意图;
图4为本发明实施例提供的估计模块的一种结构示意图;
图5为本发明实施例提供的区域划分模块的一种结构示意图;
图6为本发明实施例提供的计算模块的一种结构示意图。
说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的图像去模糊方法的一种实现流程图,可以包括:
步骤s11:估计待处理图像的各个像素点的深度;
步骤s12:基于像素点的深度将待处理图像划分为若干个区域;
本发明实施例中,在对待处理图像进行区域划分时,是按照像素点的深度进行划分。
步骤s13:分别计算每一个区域的模糊核;
本发明实施例中,不是计算整个待处理图像的模糊核,而是分区域计算模糊核,不同的区域的模糊核可能相同,也可能不同。由于待处理图像的区域划分是基于像素点的深度的划分,因此,区域的模糊核是与该区域的深度相关联的。
步骤s14:对于每一个区域,基于该区域的模糊核对该区域进行去模糊处理;
本发明实施例中,分区域进行去模糊处理。可选的,可以基于全变分去卷积算法对各个区域进行去模糊处理。
步骤s15:将去模糊后的区域进行边缘融合,得到去模糊后的图像。
可以基于常用的边缘融合算法对去模糊后的区域进行边缘融合。
本发明实施例提供的图像去模糊方法,基于像素点的深度将待处理图像划分为若干个区域,并分别计算每个区域的模糊核,对于每一个区域,基于该区域的模糊核进行去模糊处理,将去模糊后的区域进行边缘融合,得到去模糊后的图像,克服了去模糊后的图像存在振铃现象和失真的问题。
可选的,本发明实施例提供的估计待处理图像的各个像素点的深度的一种实现流程图如图2所示,可以包括:
步骤s21:获得待处理图像的灰度图像;
待处理图像若为彩色空间图像,则将待处理图像转化为灰度图像。例如,待处理图像为rgb彩色图,则可以利用公式(1)获得待处理图像的灰度图。
i(i,j)=0.299*r(i,j)+0.578g(i,j)+0.114*b(i,j)(1)
其中,i(i,j)表示待处理图像中(i,j)处像素点的灰度;r(i,j)表示待处理图像中(i,j)处像素点的红色分量;g(i,j)表示待处理图像中(i,j)处像素点的绿色分量;b(i,j)表示待处理图像中(i,j)处像素点的蓝色分量。
若待处理图像为其它彩色空间的图像,可以按照相应的已公开的计算其灰度的公式进行计算。
若待处理图像本身就为灰度图,则直接执行步骤s22即可。
步骤s22:计算灰度图像中各个像素点的梯度;
对于每一个像素点,可以通过该像素点的8邻域内的像素的灰度值计算该像素点在x方向、y方向、45°方向和135°方向的偏导数;其中,
(i,j)处的像素点在x方向的偏导数px[i,j]为:px[i,j]=i[i+1,j]-i[i-1,j];
(i,j)处的像素点在y方向的偏导数py[i,j]为:py[i,j]=i[i,j+1]-i[i,j-1];
(i,j)处的像素点在45°方向的偏导数p45°[i,j]为:
p45°[i,j]=i[i-1,j+1]-i[i+1,j-1];
(i,j)处的像素点在135°方向的偏导数p135°[i,j]为:
p135°[i,j]=i[i+1,j+1]-i[i-1,j-1];
计算上述四个方向的偏导数的二阶范数,得到该像素点的梯度。计算公式如公式(2)所示:
其中,m(i,j)为(i,j)处的像素点的梯度。
步骤s23:对于每一个像素点,基于该像素点的梯度计算该像素点的深度。
可选的,由于景物具有一定的深度,而且景物的细节主要存在于图像的灰度梯度信息中,可以基于公式(3)计算(i,j)处的像素点的深度。
其中,d(i,j)为(i,j)处像素点的深度;m(i,j)为(i,j)处像素点的梯度;c1、c2均为梯度修正系数,0<c1<1,0<c2<1,c1和c2的取值可能相同,也可能不同;i=1,2,...,m;j=1,2,...,n;m为待处理图像中像素的行数;n为待处理图像中像素的列数。
c1和c2的具体取值可以根据实际应用场景、客户需求以及实验结果确定。
可选的,本发明实施例提供的基于像素点的深度将待处理图像划分为若干个区域的一种实现方式可以为:
基于各个像素点的深度对待处理图像进行粗划分,得到若干第一级区域;
若上述若干第一级区域中存在满足预设条件的第一级区域,则获取该满足预设条件的第一级区域的最外围的若干像素点;基于该最外围的若干像素点对该满足预设条件的第一级区域进行区域细分,得到若干第二级区域。
也就是说,本发明实施例中,先基于像素点的深度对待处理图像进行一次区域划分,若划分得到的区域中存在满足预设条件的区域,则对该满足预设条件的区域再次进行区域细分,即进行两次划分。若第一次区域划分后,没有满足预设条件的区域,则不再进行第二次划分。因此,本发明实施例中,在对待处理图像进行区域划分后,待处理图像只包括第一级区域,或者,只包括第二级区域,或者,既包括第一级区域,又包括第二级区域。
可选的,本发明实施例提供的基于各个像素点的深度对待处理图像进行粗划分的一种实现方式可以为:
将邻域内深度相同的像素点标记为一个区域。
其中,两个像素点的深度相同可以包括:该两个像素点的深度值绝对相等,或者,该两个像素点的深度值的差值在预置范围内。
一般深度相同的像素点,模糊程度也相同。
可选的,一个像素点的邻域内的像素点可以是指该像素点的8邻域像素点,其中,边缘像素点的邻域是指与该像素点在水平方向、垂直方向和对角线方向上相邻的像素点。
发明人研究发现,对于刚性物体,同一深度处的像素点的模糊程度相同;而对于非刚性物体,如行人,不同部位的像素点,即使深度相同,模糊度也可能不相同。因此,对具有非刚性物体(特别是行人)的区域进行进一步的分区。
可选的,本发明实施例提供的第一级区域满足预设条件的一种实现方式可以为:
第一级区域的像素个数与待处理图像的像素个数的比值大于预置的比值阈值。
本发明实施例中,若第一级区域的像素个数与待处理图像的像素个数的比值大于预置的比值阈值,说明该区域较大,需要进一步进行分区。
可选的,本发明实施例提供的第一级区域满足预设条件的另一种实现方式可以为:
该第一级区域中包括特定的标识信息,该特定的标识信息由人为标定,例如,当相关人员在肉眼观测到某个第一级区域中含有比较大的非刚性物体(例如,人、树木等)时,则对该第一级区域标定上述特定的标识信息。
可选的,本发明实施例提供的获取该满足预设条件的第一级区域的最外围的若干像素点的一种实现方式可以为:
由相关人员在满足预设条件的第一级区域的最外围像素点中手动选择若干个像素点。
或者,由计算机按照一定规则自动在满足预设条件的第一级区域的最外围像素点中若干个像素点。
可选的,可以在满足预设条件的第一级区域的最外围像素点中选择7个像素点,为方便叙述,7个像素点分别记为:(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5),(x6,y6),(x7,y7)。上述7个像素点依次对应人体的最顶部(头顶)、左上(左肩)、右上(右肩)、左下(左手)、右下(右手)、左底(左脚)、右底(右脚);基于上述7个像素点坐标,将第一级区域划分为至少6个区域。具体可以将头部分成一个区域,上身躯干分成一个区域,左、右手臂各分成一个区域,左、右腿各分成一个区域。对应的划分方法如下:
将x1行与(x2+x3)/2行之间的区域作为一个新的区域,即头部区域;
将行数位于(x2+x3)/2行与[(x6+x7)/4+(x2+x3)/4]行之间,列数位于y2和y3之间的区域作为一个新的区域,即上身躯干部分;
将列数位于y4和y2之间的区域作为一个新的区域,即左手臂区域;
将列数位于y3和y5之间的区域作为一个新的区域,即右手臂区域;
将行数在[(x6+x7)/4+(x2+x3)/4]与x6行之间,列数位于y6与(y2+y3)/2之间的区域作为一个新的区域,即左腿部区域;
将行数在[(x6+x7)/4+(x2+x3)/4]与x7行之间,列数位于(y2+y3)/2与y7之间的区域作为一个新的区域,即右腿部区域;
若在确定一个新的区域时,该新的区域与已经确认的区域之间有重叠,则将重叠的区域从该新确定的区域中删除,即重叠的区域属于已经确认的区域。
另外,通过上述方法进行细分后,若该满足预设条件的第一级区域中仍有剩余区域,则将剩余区域作为新的区域。
可选的,本发明实施例提供的分别计算每一个区域的模糊核的一种实现方式可以为:
计算各个区域的模糊度;
对于每一个区域,可以将该区域行方向、列方向图像差分的平方和作为模糊度的度量,具体计算公式如下:
其中,s表示该区域的模糊度的计算值;n表示该区域的像素点个数;(i,j)表示第n个像素点在待处理图像中的坐标。
对于每一个区域,若该区域的模糊度小于第一阈值,则确定该区域的模糊核的尺寸为第一尺寸;若该区域的模糊度大于第二阈值,则确定该区域的模糊核的尺寸为第二尺寸;若该区域的模糊度大于或等于所述第一阈值,且小于或等于所述第二阈值,则确定该区域的模糊核尺寸为第三尺寸;基于该区域的模糊核尺寸计算该区域的模糊核;
其中,第一阈值小于第二阈值;第一尺寸大于第三尺寸,第三尺寸大于第二尺寸。
由公式(4)可知,灰度变化程度越大,模糊度量值s越大,则图像越清晰;灰度变化程度越小,模糊度量值s越小,则图像越模糊。
当模糊度量值s小于第一阈值时,则该区域的模糊核的尺寸为k1×k1;当模糊度量值s大于第二阈值时,则该区域的模糊核的尺寸为k2×k2;当模糊度量值s大于或等于第一阈值,且模糊度量值s小于或等于第二阈值时,则该区域的模糊核的尺寸为k3×k3;
其中,第一阈值小于第二阈值;k1>k3>k2。第一阈值和第二阈值的具体取值可以根据实际应用场景、客户需求以及实验结果确定。
模糊核的计算过程包括模糊度的计算,以及根据模糊度计算模糊核尺寸,然后根据模糊核尺寸计算模糊核的步骤。本发明实施例中计算模糊核的过程与现有技术的不同在于,本发明是分区域计算模糊核,不同的区域的模糊度的度量值不同,计算得到的模糊核的尺寸可能不同,从而计算得到的模糊核也不同。
与方法实施例相对应,本发明实施例还提供一种图像去模糊装置,本发明实施例提供的图像去模糊装置的一种结构示意图如图3所示,可以包括:
估计模块31,区域划分模块32,计算模块33,处理模块34和融合模块35;其中,
估计模块31用于估计待处理图像的各个像素点的深度;
区域划分模块32用于基于像素点的深度将待处理图像划分为若干个区域;
计算模块33用于分别计算每一个区域的模糊核;
处理模块34用于对于每一个区域,基于该区域的模糊核对该区域进行去模糊处理;
融合模块35用于将去模糊后的区域进行边缘融合,得到去模糊后的图像。
本发明实施例提供的图像去模糊装置,基于像素点的深度将待处理图像划分为若干个区域,并分别计算每个区域的模糊核,对于每一个区域,基于该区域的模糊核进行去模糊处理,将去模糊后的区域进行边缘融合,得到去模糊后的图像,克服了去模糊后的图像存在振铃现象和失真的问题。
可选的,本发明实施例提供的估计模块31的一种结构示意图如图4所示,可以包括:获得单元41,第一计算单元42和第二计算单元43;其中,
获得单元41用于获得待处理图像的灰度图像;
第一计算单元42用于计算灰度图像中各个像素点的梯度;
第二计算单元43用于对于每一个像素点,基于该像素点的梯度计算该像素点的深度。
可选的,本发明实施例提供的区域划分模块32的一种结构示意图如同5所示,可以包括:第一划分单元51和第二划分单元52;其中,
第一划分单元51用于基于各个像素点的深度对待处理图像进行粗划分,得到若干第一级区域;
第二划分单元52用于若上述若干第一级区域中存在满足预设条件的第一级区域,则获取满足预设条件的第一级区域的最外围的若干像素点;基于最外围的若干像素点对满足预设条件的第一级区域进行区域细分,得到若干第二级区域。
可选的,第一划分单元51具体可以用于将邻域内深度相同的像素点标记为一个区域。
可选的,本发明实施例提供的第一级区域满足预设条件的一种实现方式可以为:
第一级区域的像素个数与待处理图像的像素个数的比值大于预置的比值阈值。
本发明实施例中,若第一级区域的像素个数与待处理图像的像素个数的比值大于预置的比值阈值,说明该区域较大,需要进一步进行分区。
可选的,本发明实施例提供的第一级区域满足预设条件的另一种实现方式可以为:
第一级区域中包括特定的标识信息该特定的标识信息为人为标定,例如,相关人员在肉眼观测到某个第一级区域中含有比较大的非刚性物体(例如,人、树木等)时,则对该第一级区域标定上述特定信息。
可选的,本发明实施例提供的计算模块33的一种结构示意图如图6所示,可以包括:第三计算单元61和第四计算单元62;其中,
第三计算单元61用于计算各个区域的模糊度;
第四计算单元62用于对于每一个区域,若该区域的模糊度小于第一阈值,则确定该区域的模糊核的尺寸为第一尺寸;若该区域的模糊度大于第二阈值,则确定该区域的模糊核的尺寸为第二尺寸;若该区域的模糊度大于或等于所述第一阈值,且小于或等于所述第二阈值,则确定该区域的模糊核尺寸为第三尺寸;基于该区域的模糊核尺寸计算该区域的模糊核;
其中,第一阈值小于第二阈值;第一尺寸大于第三尺寸,第三尺寸大于第二尺寸。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统(若存在)、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。