发明内容
本发明提供一种图像滤波的方法和滤波器,以实现将方向个数逐渐地减少,并维持较高的滤波精度。
本发明第一方面提供一种图像滤波的方法,包括:
在给定的窗口内,自所述给定的窗口的中心点确定至少一个选定的方向和所述至少一个选定的方向的反方向,所述窗口用于确定当前待处理的图像区域;
在所述至少一个选定的方向和所述至少一个选定的方向的反方向上进行图像样本点的采集;
确定在所述至少一个选定的方向和所述至少一个选定的方向的反方向上采集到的图像样本点的均值和所述图像样本点的均值对应的权重;
对所述待处理的图像区域内的图像进行滤波操作,将所有所述选定的方向和所述所有所述选定的方向的反方向上的所述图像样本点的均值和所述图像样本点的均值对应的权重进行加权平均,获得滤波后的图像。
结合第一方面,在第一方面的第一种可能的实现方式中,所述在所述至少一个选定的方向和所述至少一个选定的方向的反方向上进行图像样本点的采集包括:
在所述至少一个选定的方向和所述至少一个选定的方向的反方向上分别选取截取长度,所述截取长度用于确定采集的图像样本点的范围,根据确定的所述范围进行图像样本点的采集。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述在所述至少一个选定的方向和所述至少一个选定的方向的反方向上分别选取截取长度包括:
在所述至少一个选定的方向上选取的截取长度为所述给定的窗口的中心点与所述给定的窗口的外边界之间的长度;
在所述至少一个选定的方向的反方向上选取的截取长度小于或等于所述给定的窗口的中心点与所述给定的窗口的外边界之间的距离。
结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述自所述给定的窗口的中心点确定至少一个选定的方向和所述至少一个选定的方向的反方向包括:
自所述给定的窗口的中心点确定两个选定的方向和所述两个选定的方向的反方向;
在所述两个选定的方向和所述两个选定的方向的反方向上分别选取截取长度以后,判断所述两个选定的方向和所述两个选定的方向的反方向及其截取长度是否完全重叠,如果是,则确定所述两个方向中的任意一个方向为所述选定的方向,所述两个方向中除所述选定的方向之外的方向为所述选定的方向的反方向。
本发明第二方面提供一种滤波器,包括:
确定模块,用于在给定的窗口内,自所述给定的窗口的中心点确定至少一个选定的方向和所述至少一个选定的方向的反方向,所述窗口用于确定当前待处理的图像区域;以及确定在所述至少一个选定的方向和所述至少一个选定的方向的反方向上采集模块采集到的图像样本点的均值和所述图像样本点的均值对应的权重;
所述采集模块,用于在所述至少一个选定的方向和所述至少一个选定的方向的反方向上进行图像样本点的采集;
滤波模块,用于对所述待处理的图像区域内的图像进行滤波操作,将所有所述选定的方向和所述所有所述选定的方向的反方向上的所述图像样本点的均值和所述图像样本点的均值对应的权重进行加权平均,获得滤波后的图像。
结合第二方面,在第二方面的第一种可能的实现方式中,所述采集模块,具体用于在所述至少一个选定的方向和所述至少一个选定的方向的反方向上分别选取截取长度,所述截取长度用于确定采集的图像样本点的范围,根据确定的所述范围进行图像样本点的采集。
结合第二方面的第一种可能的实现方式,所述采集模块用于在所述至少一个选定的方向和所述至少一个选定的方向的反方向上分别选取截取长度包括:
所述采集模块在所述至少一个选定的方向上选取的截取长度为所述给定的窗口的中心点与所述给定的窗口的外边界之间的长度;在所述至少一个选定的方向的反方向上选取的截取长度小于或等于所述给定的窗口的中心点与所述给定的窗口的外边界之间的距离。
结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述确定模块用于自所述给定的窗口的中心点确定至少一个选定的方向和所述至少一个选定的方向的反方向包括:
所述确定模块,具体用于自所述给定的窗口的中心点确定两个选定的方向和所述两个选定的方向的反方向,在所述两个选定的方向和所述两个选定的方向的反方向上分别选取截取长度以后,判断所述两个选定的方向和所述两个选定的方向的反方向及其截取长度是否完全重叠,如果是,则确定所述两个方向中的任意一个方向为所述选定的方向,所述两个方向中除所述选定的方向之外的方向为所述选定的方向的反方向。
本发明提供的方向数渐变的方法和滤波器中,在给定的窗口内,上述窗口用于确定当前待处理的图像区域,自上述给定的窗口的中心点确定至少一个选定的方向和至少一个选定的方向的反方向,在上述至少一个选定的方向和上述至少一个选定的方向的反方向上进行图像样本点的采集,从而可以实现将方向个数逐渐地减少;并且确定在上述至少一个选定的方向和所述至少一个选定的方向的反方向上采集到的图像样本点的均值和所述图像样本点的均值对应的权重;最后,对上述待处理的图像区域内的图像进行滤波操作,将所有所述选定的方向和上述所有所述选定的方向的反方向上的所述图像样本点的均值和所述图像样本点的均值对应的权重进行加权平均,获得滤波后的图像。由于在每个选定的方向和每个选定的方向的反方向上采集到的图像样本点比单独在选定的方向上采集到的图像样本点的个数多,因此可以维持较高的滤波精度。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以红绿蓝三种颜色为基色的加色空间是使用的最广泛的颜色模式,实践证明,光谱上的大多数颜色都可以用红色(Red;以下简称:R)、绿色(Green;以下简称:G)和蓝色(Blue;以下简称:B)这三种单色加权混合产生,基于RGB三基色的颜色表示称为RGB颜色,三个平面单独看的话,可以当作灰度图像。为了减少成本,缩小数码相机的体积,一般市场上的相机大都只有一个传感器,在传感器的上面覆盖了一层按照拜耳(Bayer)模式排列的色彩滤波阵列,每一个图像样本点只能够捕获一个色彩值,而缺失另外两个色彩值,这时候得到的是一幅马赛克图像,为了得到全彩色的图像,需要利用其周围的图像样本点的色彩值来估计出缺失的另外两种色彩值,这种处理叫做去马赛克。
本发明实施例提供一种图像滤波的方法,可以用于上述去马赛克,提高滤波精度。
图1为本发明图像滤波的方法一个实施例的流程图,如图1所示,该图像滤波的方法可以包括:
步骤101,在给定的窗口内,自上述给定的窗口的中心点确定至少一个选定的方向和上述至少一个选定的方向的反方向,上述窗口用于确定当前待处理的图像区域。
步骤102,在上述至少一个选定的方向和上述至少一个选定的方向的反方向上进行图像样本点的采集。
步骤103,确定在上述至少一个选定的方向和上述至少一个选定的方向的反方向上采集到的图像样本点的均值和上述均值对应的权重。
步骤104,对上述待处理的图像区域内的图像进行滤波操作,将所有所述选定的方向和上述所有所述选定的方向的反方向上的均值和上述均值对应的权重进行加权平均,获得滤波后的图像。
具体地,步骤102中,在上述至少一个选定的方向和上述至少一个选定的方向的反方向上进行图像样本点的采集可以为:在上述至少一个选定的方向和上述至少一个选定的方向的反方向上分别选取截取长度,上述截取长度用于确定采集的图像样本点的范围,根据确定的所述范围进行图像样本点的采集。
其中,在上述至少一个选定的方向和上述至少一个选定的方向的反方向上分别选取截取长度可以为:在上述至少一个选定的方向上选取的截取长度为上述给定的窗口的中心点与上述给定的窗口的外边界之间的长度;在上述至少一个选定的方向的反方向上选取的截取长度小于或等于上述给定的窗口的中心点与上述给定的窗口的外边界之间的距离。
步骤101中,自上述给定的窗口的中心点确定至少一个选定的方向和上述至少一个选定的方向的反方向可以为:自上述给定的窗口的中心点确定两个选定的方向和上述两个选定的方向的反方向;在上述两个选定的方向和上述两个选定的方向的反方向上分别选取截取长度以后,判断上述两个选定的方向和上述两个选定的方向的反方向及其截取长度是否完全重叠,如果是,则确定上述两个方向中的任意一个方向为上述选定的方向,上述两个方向中除选定的方向之外的方向为上述选定的方向的反方向。
上述实施例中,在给定的窗口内,上述窗口用于确定当前待处理的图像区域,自上述给定的窗口的中心点确定至少一个选定的方向和至少一个选定的方向的反方向,在上述至少一个选定的方向和上述至少一个选定的方向的反方向上进行图像样本点的采集,从而可以实现将方向个数逐渐地减少;并且确定在上述至少一个选定的方向和所述至少一个选定的方向的反方向上采集到的图像样本点的均值和所述图像样本点的均值对应的权重;最后,对上述待处理的图像区域内的图像进行滤波操作,将所有所述选定的方向和上述所有所述选定的方向的反方向上的所述图像样本点的均值和所述图像样本点的均值对应的权重进行加权平均,获得滤波后的图像。由于在每个选定的方向和每个选定的方向的反方向上采集到的图像样本点比单独在选定的方向上采集到的图像样本点的个数多,因此可以维持较高的滤波精度。
本发明提供的方法在有限的窗口大小内巧妙地融合了方向个数和方向长度,既保留了图像的更多细节,又弱化了细节处的方格效应,取得了更好的插值效果,同时在硬件实现上更简单。
图2为本发明图像滤波的方法另一个实施例的示意图。
一种实现方式中,在给定的窗口内,上述窗口用于确定当前待处理的图像区域,自给定的窗口的中心点确定至少一个选定的方向和上述至少一个选定的方向的反方向,然后分别向选定的方向和选定的方向的反方向延伸,每个选定的方向和每个选定的方向的反方向的长度最短为两个像素点(包括中心点在内)。在选定的方向和上述选定的方向的反方向上分别选取截取长度,自上述给定的窗口的中心点可以分别向选定的方向和该选定的方向的反方向延伸上述截取长度。
然后在给定的窗口内,确定在上述至少一个选定的方向和上述至少一个选定的方向的反方向上采集到的图像样本点的均值和上述均值对应的权重。
最后,对上述待处理的图像区域内的图像进行滤波操作,将所有所述选定的方向和上述所有所述选定的方向的反方向上的上述均值和上述均值对应的权重进行加权平均,获得滤波后的图像。
参见图2,在给定的窗口内,选定8个方向,即选定的方向的个数为8。
以上述给定的窗口的中心点为界,水平方向分为h0方向和h1方向,本实施例中,自中心点向h0方向和h0方向的反方向延伸,并且自中心点向h1方向和h1方向的反方向延伸,如图2所示,当延伸到完全重叠时,原来的两个水平方向变成了只有一个水平方向。
以上述给定的窗口的中心点为界,垂直方向分为v0方向和v1方向,本实施例中,自中心点向v0方向和v0方向的反方向延伸,并且自中心点向v1方向和v1方向的反方向延伸,如图2所示,当延伸到完全重叠时,原来的两个垂直方向变成了只有一个垂直方向。
以上述给定的窗口的中心点为界,斜方向分为q0方向和q1方向,以及p0方向和p1方向。本实施例中,自中心点向q0方向和q0方向的反方向延伸,并且自中心点向q1方向和q1方向的反方向延伸,如图2所示,当延伸到完全重叠时,这两个斜方向变成了一个斜方向。
同样,自中心点向p0方向和p0方向的反方向延伸,并且自中心点向p1方向和p1方向的反方向延伸,如图2所示,当延伸到完全重叠时,这两个斜方向变成了一个斜方向。
另一种实现方式中,在给定的窗口内,上述窗口用于确定当前待处理的图像区域,在上述选定的方向上选取的截取长度为上述给定的窗口的中心点与上述给定的窗口的外边界之间的长度;在上述选定的方向的反方向上选取的截取长度小于或等于上述给定的窗口的中心点与上述给定的窗口的外边界之间的距离。其中,每个选定的方向和每个选定的方向的反方向的长度最短为两个像素点(包括中心点在内)。
然后在给定的窗口内,计算在每个选定的方向和每个选定的方向的反方向上采集到的图像样本点的均值和上述均值对应的权重。
最后,对所有所述选定的方向和所有所述选定的方向的反方向上的均值和该均值对应的权重进行加权平均,获得最终的估计值,并根据上述估计值对上述给定的窗口内的图像进行滤波。
下面通过图3(a)~图3(d)介绍方向数渐变的过程,图3(a)~图3(d)为本发明方向数渐变的过程一个实施例的示意图。
参见图3(a),给定的窗口为9×9窗口,以窗口中心点为界,上下左右共选定4个方向,自上述给定的窗口的中心点向选定的方向延伸至上述给定的窗口的外边界之后,每个方向长度为5个像素点(pixel),在中心点重叠1个像素点。
继续参见图3(b),以上述中心点为界,上下两个方向可以分别向反方向延伸2个像素点,而左右两个方向不作延伸,这时,左右两个方向在中心点重叠1个像素点,上下两个方向在中心点重叠5个像素点。
继续参见图3(c),以上述中心点为界,上下两个方向可以继续分别向反方向延伸2个像素点,同时,以上述中心点为界,左右两个方向可以分别向反方向延伸2个像素点,这时,上下两个方向的长度均为9个像素点,即垂直方向只有1个方向了。而左右两个方向在中心点重叠5个像素点。
继续参见图3(d),以上述中心点为界,左右两个方向可以继续分别向反方向延伸2个像素点,这时,左右两个方向的长度均为9个像素点,即水平方向只有1个方向。
从图3(a)~图3(d)可以看出,本发明提供的图像滤波的方法,可以在行缓存(buffer)数有限时,将方向个数逐渐地减少,并且硬件实现简单,可以保持较高的精度。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明滤波器一个实施例的结构示意图,本实施例中的滤波器可以实现本发明图1所示实施例的流程。如图4所示,该滤波器可以包括:确定模块41、采集模块42和滤波模块43;
其中,确定模块41,用于在给定的窗口内,自上述给定的窗口的中心点确定至少一个选定的方向和上述至少一个选定的方向的反方向,上述窗口用于确定当前待处理的图像区域;以及确定在上述至少一个选定的方向和上述至少一个选定的方向的反方向上采集模块42采集到的图像样本点的均值和上述均值对应的权重;
采集模块42,用于在上述至少一个选定的方向和上述至少一个选定的方向的反方向上进行图像样本点的采集;
滤波模块43,用于对上述待处理的图像区域内的图像进行滤波操作,将所有所述选定的方向和所有所述选定的方向的反方向上的上述均值和上述均值对应的权重进行加权平均,获得滤波后的图像。
本实施例中,采集模块42,具体用于在上述至少一个选定的方向和上述至少一个选定的方向的反方向上分别选取截取长度,上述截取长度用于确定采集的图像样本点的范围,根据确定的上述范围进行图像样本点的采集。
其中,采集模块42用于在上述至少一个选定的方向和上述至少一个选定的方向的反方向上分别选取截取长度可以为:采集模块42在上述至少一个选定的方向上选取的截取长度为上述给定的窗口的中心点与上述给定的窗口的外边界之间的长度;在上述至少一个选定的方向的反方向上选取的截取长度小于或等于上述给定的窗口的中心点与上述给定的窗口的外边界之间的距离。
本实施例中,确定模块41用于自上述给定的窗口的中心点确定至少一个选定的方向和上述至少一个选定的方向的反方向可以为:确定模块41,具体用于自上述给定的窗口的中心点确定两个选定的方向和上述两个选定的方向的反方向,在上述两个选定的方向和上述两个选定的方向的反方向上分别选取截取长度以后,判断上述两个选定的方向和上述两个选定的方向的反方向及其截取长度是否完全重叠,如果是,则确定上述两个方向中的任意一个方向为选定的方向,上述两个方向中除上述选定的方向之外的方向为上述选定的方向的反方向。
上述实施例中,在给定的窗口内,上述窗口用于确定当前待处理的图像区域,确定模块41自上述给定的窗口的中心点确定至少一个选定的方向和至少一个选定的方向的反方向,采集模块42在上述至少一个选定的方向和上述至少一个选定的方向的反方向上进行图像样本点的采集,从而可以实现将方向个数逐渐地减少;并且确定模块41确定在上述至少一个选定的方向和所述至少一个选定的方向的反方向上采集到的图像样本点的均值和所述图像样本点的均值对应的权重;最后,滤波模块43对上述待处理的图像区域内的图像进行滤波操作,将所有所述选定的方向和上述所有所述选定的方向的反方向上的所述图像样本点的均值和所述图像样本点的均值对应的权重进行加权平均,获得滤波后的图像。由于在每个选定的方向和每个选定的方向的反方向上采集到的图像样本点比单独在选定的方向上采集到的图像样本点的个数多,因此可以维持较高的滤波精度。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。