发明内容
本发明实施例提供了一种滤除像素中噪声的方法和装置,用以解决现有的滤波方法在图像中的像素中既包含脉冲噪声又包含高斯噪声时,需要分别针对脉冲噪声和高斯噪声各进行一次滤波,从而导致了这些滤波方法在滤除图像中的噪声时效率较低的问题。
第一方面,提供一种滤除像素中噪声的方法,包括:
针对一个对比像素,确定所述对比像素的局部邻域中至少一个具有对应像素的比较像素的相似度,并根据确定的各个相似度,确定所述对比像素的局部邻域相对于待处理像素的局部邻域的权重;其中,所述对比像素为所述待处理像素的滑动窗内不包含脉冲噪声的像素,所述比较像素为所述对比像素的局部邻域中不包含脉冲噪声的像素,一个具有对应像素的比较像素的相似度是该比较像素相对于该对应像素的相似度,所述比较像素具有的对应像素是位于所述待处理像素的局部邻域中、且不包含脉冲噪声的像素,所述对应像素相对于所述待处理像素的位置与所述比较像素相对于所述对比像素的位置相同;
根据所述滑动窗内的至少一个对比像素的局部邻域相对于所述待处理像素的局部邻域的权重,确定所述待处理像素的滤波后的像素值。
结合第一方面,在第一种可能的实现方式中,根据确定的各个相似度,确定所述对比像素的局部邻域相对于所述待处理像素的局部邻域的权重,具体包括:
当确定的相似度仅有一个时,将确定的相似度作为所述对比像素的局部邻域相对于所述待处理像素的局部邻域的权重;当确定的相似度多于一个时,将确定的各个相似度的乘积,作为所述对比像素的局部邻域相对于所述待处理像素的局部邻域的权重。
结合第一方面,在第二种可能的实现方式中,当包含待处理像素的图像为视频文件中的一帧图像时,所述待处理像素的滑动窗包括位于该帧图像中的第一滑动窗,以及位于该帧图像之前的N帧图像中的至少一个第二滑动窗和/或该帧图像之后的M帧图像中的至少一个第二滑动窗,每个第二滑动窗在其所在的图像中的位置与所述第一滑动窗在其所在的图像中的位置相同。
结合第一方面,在第三种可能的实现方式中,按照下列公式确定所述对比像素的局部邻域中一个具有对应像素的比较像素的相似度:
其中,x为所述对比像素的坐标值,y为所述待处理像素的坐标值,b为坐标偏移量,x+b为所述比较像素的坐标值,y+b为所述比较像素具有的对应像素的坐标值,I(x+b)为所述比较像素的像素值,I(y+b)为所述对应像素的像素值,wx+b,y+b为所述比较像素相对于所述对应像素的相似度;Gσ为带宽为σ的高斯滤波函数,h为非局部平均NL-means算法的强度参数。
结合第一方面第三种可能的实现方式,在第四种可能的实现方式中,NL-means算法的强度参数h是根据包含待处理像素的图像中的噪声的方差和带宽确定的,所述带宽由局部邻域的大小和所述图像的颜色分量的个数确定,所述图像中的噪声的方差根据所述图像以及对所述图像中包含噪声脉冲的像素进行滤波后得到的图像确定的。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,NL-means算法的强度参数h的平方反比于所述图像中的噪声的方差和带宽。
结合第一方面,在第六种可能的实现方式中,在所述待处理像素为包含脉冲噪声的像素时,按照下列公式根据所述滑动窗内至少一个对比像素的局部邻域相对于所述待处理像素的局部邻域的权重,确定所述待处理像素的滤波后的像素值:
其中,Wx,y为坐标值为x的对比像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重,I(x)为坐标值为x的对比像素的像素值,If(y)为滤波后的坐标值为y的待处理像素的像素值。
结合第一方面,在第七种可能的实现方式中,在所述待处理像素为不包含脉冲噪声的像素时,按照下列公式根据所述滑动窗内至少一个对比像素的局部邻域相对于所述待处理像素的局部邻域的权重,确定所述待处理像素的滤波后的像素值:
其中,Wx,y为坐标值为x的对比像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重,I(x)为坐标值为x的对比像素的像素值,I(y)为坐标值为y的待处理像素的像素值,If(y)为滤波后的坐标值为y的待处理像素的像素值;Wy,y为坐标值为y的待处理像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重与坐标值为y的待处理像素的滑动窗内各个对比像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重中最大的前K个值之和,K为非负整数。
第二方面,提供一种滤除像素中噪声的装置,所述装置包括第一确定模块和第二确定模块;
所述第一确定模块,用于针对一个对比像素,确定所述对比像素的局部邻域中至少一个具有对应像素的比较像素的相似度,并根据确定的各个相似度,确定所述对比像素的局部邻域相对于待处理像素的局部邻域的权重;其中,所述对比像素为所述待处理像素的滑动窗内不包含脉冲噪声的像素,所述比较像素为所述对比像素的局部邻域中不包含脉冲噪声的像素,一个具有对应像素的比较像素的相似度是该比较像素相对于该对应像素的相似度,所述比较像素具有的对应像素是位于所述待处理像素的局部邻域中、且不包含脉冲噪声的像素,所述对应像素相对于所述待处理像素的位置与所述比较像素相对于所述对比像素的位置相同;
所述第二确定模块,用于根据所述第一确定模块确定的所述滑动窗内的至少一个对比像素的局部邻域相对于所述待处理像素的局部邻域的权重,确定所述待处理像素的滤波后的像素值。
结合第二方面,在第一种可能的实现方式中,所述第一确定模块具体用于:
当确定的相似度仅有一个时,将确定的相似度作为所述对比像素的局部邻域相对于所述待处理像素的局部邻域的权重;当确定的相似度多于一个时,将确定的各个相似度的乘积,作为所述对比像素的局部邻域相对于所述待处理像素的局部邻域的权重。
结合第二方面,在第二种可能的实现方式中,当包含待处理像素的图像为视频文件中的一帧图像时,所述待处理像素的滑动窗包括位于该帧图像中的第一滑动窗,以及位于该帧图像之前的N帧图像中的至少一个第二滑动窗和/或该帧图像之后的M帧图像中的至少一个第二滑动窗,每个第二滑动窗在其所在的图像中的位置与所述第一滑动窗在其所在的图像中的位置相同。
结合第二方面,在第三种可能的实现方式中,所述确定模块具体用于:
按照下列公式确定所述对比像素的局部邻域中一个具有对应像素的比较像素的相似度:
其中,x为所述对比像素的坐标值,y为所述待处理像素的坐标值,b为坐标偏移量,x+b为所述比较像素的坐标值,y+b为所述比较像素具有的对应像素的坐标值,I(x+b)为所述比较像素的像素值,I(y+b)为所述比较像素的对应像素的像素值,wx+b,y+b为所述比较像素相对于所述对应像素的相似度;Gσ为带宽为σ的高斯滤波函数,h为非局部平均NL-means算法的强度参数。
结合第二方面第三种可能的实现方式,在第四种可能的实现方式中,NL-means算法的强度参数h是根据包含待处理像素的图像中的噪声的方差和带宽确定的,所述带宽由局部邻域的大小和所述图像的颜色分量的个数确定,所述图像中的噪声的方差根据所述图像以及对所述图像中包含噪声脉冲的像素进行滤波后得到的图像确定的。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,NL-means算法的强度参数h的平方反比于所述图像中的噪声的方差和带宽。
结合第二方面,在第六种可能的实现方式中,所述第二确定模块具体用于:
在所述待处理像素为包含脉冲噪声的像素时,按照下列公式根据所述滑动窗内至少一个对比像素的局部邻域相对于所述待处理像素的局部邻域的权重,确定所述待处理像素的滤波后的像素值:
其中,Wx,y为坐标值为x的对比像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重,I(x)为坐标值为x的对比像素的像素值,If(y)为滤波后的坐标值为y的待处理像素的像素值。
结合第二方面,在第七种可能的实现方式中,所述第二确定模块具体用于:在所述待处理像素为不包含脉冲噪声的像素时,按照下列公式根据所述滑动窗内至少一个对比像素的局部邻域相对于所述待处理像素的局部邻域的权重,确定所述待处理像素的滤波后的像素值:
其中,Wx,y为坐标值为x的对比像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重,I(x)为坐标值为x的对比像素的像素值,I(y)为坐标值为y的待处理像素的像素值,If(y)为滤波后的坐标值为y的待处理像素的像素值;Wy,y为坐标值为y的待处理像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重与坐标值为y的待处理像素的滑动窗内各个对比像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重中最大的前K个值之和,K为非负整数。
本发明实施例的有益效果包括:
本发明实施例提供了一种滤除像素中噪声的方法和装置,该方法首先确定至少一个对比像素的局部邻域相对于待处理像素的局部邻域的权重,然后根据这至少一个对比像素的局部邻域相对于所述待处理像素的局部邻域的权重,确定待处理像素的滤波后的像素值,其中,对比像素是该待处理像素的滑动窗内不包含脉冲噪声的像素,一个对比像素的局部邻域相对于待处理像素的局部邻域的权重是根据该对比像素的局部邻域中至少一个具有对应像素的比较像素的相似度确定的,比较像素为对比像素的局部邻域中不包含脉冲噪声的像素,一个具有对应像素的比较像素的相似度是该比较像素相对于该对应像素的相似度,该比较像素具有的对应像素是位于该待处理像素的局部邻域中、且不包含脉冲噪声的像素,比较像素具有的对应像素相对于该待处理像素的位置与该比较像素相对于该对比像素的位置相同。采用该方法对待处理像素进行滤波时,不再计算待处理像素的滑动窗内的包含脉冲噪声的像素的局部邻域相对于待处理像素的局部邻域的权重,也不再使用包含脉冲噪声的像素的像素值,计算待处理像素的滑动窗内的不包含脉冲噪声的像素的局部邻域相对于待处理像素的局部邻域的权重,避免了包含脉冲噪声的像素的像素值对权重的不良影响,从而避免了在采用需要使用包含脉冲噪声的像素的像素值,计算待处理像素的滑动窗内的像素的局部邻域相对于待处理像素的局部邻域的权重的滤波方法,对待处理像素进行滤波时,需要首先对包含脉冲噪声的像素进行滤波的弊端,减少了滤波的次数。也就是说,该方法不需要区分待处理像素是包含脉冲噪声的像素,还是包含高斯噪声的像素,还是包含混合噪声的像素,即无论待处理像素中包含的是哪一种噪声,只对待处理像素采用该方法处理一次,与现有技术中对包含混合噪声的像素需要进行两次滤波的方法相比,提高了滤除像素中的混合噪声的速度,从而提高了滤除图像中的噪声时的效率。
具体实施方式
本发明实施例提供了一种滤除像素中噪声的方法和装置,无论待处理像素中包含的是哪一种噪声,该方法仅对待处理像素进行一次滤波处理,提高了滤除像素中的混合噪声的速度,从而提高了滤除图像中的噪声时的效率。
下面结合说明书附图,对本发明实施例提供的一种滤除像素中噪声的方法和装置的具体实施方式进行说明。
本发明实施例提供的一种滤除像素中噪声的方法,如图1所示,具体包括以下步骤:
S101、针对一个对比像素,确定该对比像素的局部邻域中至少一个具有对应像素的比较像素的相似度,并根据确定的各个相似度,确定该对比像素的局部邻域相对于待处理像素的局部邻域的权重;其中,该对比像素为该待处理像素的滑动窗内不包含脉冲噪声的像素,该比较像素为该对比像素的局部邻域中不包含脉冲噪声的像素,一个具有对应像素的比较像素的相似度是该比较像素相对于该对应像素的相似度,该比较像素具有的对应像素是位于该待处理像素的局部邻域中、且不包含脉冲噪声的像素,该对应像素相对于该待处理像素的位置与该比较像素相对于该对比像素的位置相同;
S102、根据待处理像素的滑动窗内的至少一个对比像素的局部邻域相对于待处理像素的局部邻域的权重,确定待处理像素的滤波后的像素值。
在确定对比像素的局部邻域相对于待处理像素的局部邻域的权重时,具体根据对比像素的局部邻域中的几个具有对应像素的比较像素的相似度来确定,需要根据噪声滤除的效果来决定。
若待处理的图像如图2所示,待处理像素为像素s,SW表示像素s的滑动窗,滑动窗SW中包含49个像素,当然滑动窗的大小不限于7×7,还可以是其它大小。像素t为滑动窗SW中的一个对比像素,像素t1、像素t2、像素t3、像素t4、像素t、像素t5、像素t6、像素t7、像素t8为像素t的局部邻域中的像素,当然,像素t的局部邻域的大小不限于3×3,还可以是其它大小;像素s1、像素s2、像素s3、像素s4、像素s、像素s5、像素s6、像素s7、像素s8为像素s的局部邻域中的像素,当然,像素s的局部邻域的大小不限于3×3,还可以是其它大小;像素t的局部邻域的大小和像素s的局部邻域的大小均小于滑动窗SW的大小。当局部邻域的范围超过图像的边界时,为处于局部邻域中、且处于图像的边界以外的像素设置像素值,例如,可以根据图像边界对称填充(Image Boundary Symmetric Padding)的方法设置处于局部邻域中、且处于图像的边界以外的像素的像素值。当图像为灰度图像时,像素的像素值是指像素的灰度值,当图像为彩色图像时,像素的像素值是指像素的某一颜色分量的值。
若像素t的局部邻域中的像素t1、像素t3和像素t7为包含脉冲噪声的像素,则像素t的局部邻域中的像素t2、像素t4、像素t、像素t5、像素t6和像素t8均为比较像素;像素s的局部邻域中的像素s2和像素s7为包含脉冲噪声的像素,则像素t的局部邻域中具有对应像素的比较像素为像素t4、像素t、像素t5、像素t6和像素t8;在S101中确定对比像素的局部邻域中至少一个具有对应像素的比较像素的相似度时,仅需要确定出像素t4相对于像素s4的相似度、像素t相对于像素s的相似度、像素t5相对于像素s5的相似度、像素t6相对于像素s6的相似度、像素t8相对于像素s8的相似度中的至少一个相似度即可。
进一步地,在S101中,根据公式1确定对比像素的局部邻域中一个具有对应像素的比较像素的相似度:
公式1。其中,x为对比像素的坐标值,y为待处理像素的坐标值,b为坐标偏移量,x+b为比较像素的坐标值,y+b为该比较像素具有的对应像素的坐标值,I(x+b)为该比较像素的像素值,I(y+b)为该对应像素的像素值,wx+b,y+b为该比较像素相对于该对应像素的相似度;Gσ为带宽为σ的高斯滤波函数,σ的取值可以在0.2到0.5之间;h为非局部平均NL-means算法的强度参数。其中,h可以根据经验设置,也可以根据包含待处理像素的图像中的噪声的方差和带宽确定,带宽由局部邻域的大小和图像的颜色分量的个数确定,如果图像为灰度图像,其颜色分量的个数为1,如果图像为彩色图像,其颜色分量的个数为3;图像中的噪声的方差根据该图像以及对该图像中包含噪声脉冲的像素进行滤波后得到的图像确定。因此,在图2所示的图像中,仅需要根据公式1确定像素t4相对于像素s4的相似度、像素t相对于像素s的相似度、像素t5相对于像素s5的相似度、像素t6相对于像素s6的相似度和像素t8相对于像素s8的相似度中的至少一个相似度即可。
较佳地,NL-means算法的强度参数h的平方反比于图像中的噪声的方差和带宽,例如,h2=0.5/(噪声的方差*带宽),h2=1/(2.5*噪声的方差*带宽),h2=1/(1.2*噪声的方差*带宽),等等。
进一步地,根据S101中确定的各个相似度,确定对比像素的局部邻域相对于待处理像素的局部邻域的权重,具体包括:当确定的相似度仅有一个时,将确定的相似度作为所述对比像素的局部邻域相对于所述待处理像素的局部邻域的权重;当确定的相似度多于一个时,将确定的各个相似度的乘积,作为该对比像素的局部邻域相对于该待处理像素的局部邻域的权重。因此,在图2所示的图像中,在确定对比像素t的局部邻域相对于待处理像素s的局部邻域的权重时,需要将像素t4相对于像素s4的相似度、像素t相对于像素s的相似度、像素t5相对于像素s5的相似度、像素t6相对于像素s6的相似度和像素t8相对于像素s8的相似度中的一个相似度,作为对比像素t的局部邻域相对于待处理像素s的局部邻域的权重,或者需要将像素t4相对于像素s4的相似度、像素t相对于像素s的相似度、像素t5相对于像素s5的相似度、像素t6相对于像素s6的相似度和像素t8相对于像素s8的相似度中的至少两个相似度的乘积,作为对比像素t的局部邻域相对于待处理像素s的局部邻域的权重。
在S102中,若所述待处理像素为包含脉冲噪声的像素,按照公式2根据所述滑动窗内至少一个对比像素的局部邻域相对于所述待处理像素的局部邻域的权重,确定待处理像素的滤波后的像素值:
公式2其中,Wx,y为坐标值为x的对比像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重,I(x)为坐标值为x的对比像素的像素值,If(y)为滤波后的坐标值为y的待处理像素的像素值,将滤波后的坐标值为y的像素值If(y)作为坐标值为y的待处理像素的像素值。其中Wx,y既可以是归一化之后的权重,也可以是未归一化的权重。在图2所示的图像中,若待处理像素为包含脉冲噪声的像素,确定待处理像素s的滑动窗SW中的至少一个对比像素的局部邻域相对于待处理像素s的局部邻域的权重,然后,按照公式2进行加权平均,将加权平均得到的像素值作为待处理像素s的滤波后的像素值,其中,对比像素为待处理像素s的滑动窗SW中不包含脉冲噪声的像素;由于待处理像素为包含脉冲噪声的像素,因此待处理像素并未包含在该待处理像素的滑动窗内的对比像素中。
进一步地,在S102中,当待处理像素为不包含脉冲噪声的像素时,按照公式3根据该待处理像素的滑动窗内至少一个对比像素的局部邻域相对于该待处理像素的局部邻域的权重,确定待处理像素的滤波后的像素值:
公式3
其中,Wx,y为坐标值为x的对比像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重,I(x)为坐标值为x的对比像素的像素值,I(y)为坐标值为y的待处理像素的像素值,If(y)为滤波后的坐标值为y的待处理像素的像素值;Wy,y为坐标值为y的待处理像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重与坐标值为y的待处理像素的滑动窗内各个对比像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重中最大的前K个值之和,K为非负整数。
通常认为待处理图像中的每一个像素中都包含高斯噪声,仅包含高斯噪声的待处理像素包含有用信息,因此在根据该待处理像素的滑动窗内的至少一个对比像素的局部邻域相对于该待处理像素的局部邻域的权重确定待处理像素的滤波后的像素值时,选择的至少一个对比像素中需要包含该待处理像素,此时,可以取K=0,由于坐标值为y的待处理像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重为1,因此Wy,y=1。进一步地,为了防止仅包含高斯噪声的待处理像素的像素值被过度平均,要为该对比像素的局部邻域赋予更高的权重以尽量保存原始信息,此时可以取K为正整数,因此,Wy,y=1+MAXK,MAXK为待处理像素的滑动窗内各个对比像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重中最大的前K个值之和。
在根据待处理像素的滑动窗内的至少一个对比像素的局部邻域相对于该待处理像素的局部邻域的权重,确定待处理像素的滤波后的像素值时,具体根据待处理像素的滑动窗内的几个对比像素的局部邻域相对于该待处理像素的局部邻域的权重,确定待处理像素的滤波后的像素值,需要根据噪声滤除的效果来决定。
然后,可以按照S101-S102的方法对待处理图像中的每一个像素进行处理,从而滤去待处理图像中每一个像素中包含的噪声。
当包含待处理像素的图像为视频文件中的一帧图像时,待处理像素的滑动窗包括位于该帧图像中的第一滑动窗,以及位于该帧图像之前的N帧图像中的至少一个第二滑动窗和/或该帧图像之后的M帧图像中的至少一个第二滑动窗,每个第二滑动窗在其所在的图像中的位置与该第一滑动窗的在包含待处理像素的图像中的位置相同。
第二滑动窗可以位于包含待处理像素的图像之前的N帧图像和包含待处理像素的图像之后的M帧图像,共M+N帧图像中的一帧图像中,此时,第二滑动窗仅有一个;第二滑动窗还可以位于这M+N帧图像中的多帧图像中,这多帧图像中的每一帧图像中都有一个第二滑动窗;第二滑动窗还可以位于这M+N帧图像中的每一帧图像中,此时,第二滑动窗共有M+N个。第一滑动窗和第二滑动窗共同构成了待处理像素的滑动窗。
因此,当本发明实施例提供的滤除像素中噪声的方法应用到视频文件中的一帧图像中的一个待处理像素上时,该待处理像素的滑动窗由第一滑动窗和第二滑动窗共同构成,因此,与该待处理像素进行局部邻域匹配的对比像素的数量大大增加。
为了进一步说明本发明实施例提供的一种滤除像素中噪声的方法,下面以根据对比像素的局部邻域中的各个具有对应像素的比较像素的相似度来确定对比像素的局部邻域相对于待处理像素的局部邻域的权重,以及根据滑动窗内的各个对比像素的局部邻域相对于所述待处理像素的局部邻域的权重,确定待处理像素的滤波后的像素值为例,来说明本发明实施例提供的滤除像素中的噪声的方法应用于实际的图像滤波时的过程。
如图3所示,本发明实施例提供的滤除像素中的噪声的方法应用于实际的图像滤波时的流程包括:
S301、检测待处理图像中的每个像素,确定出包含脉冲噪声的像素;并将包含脉冲噪声的像素的像素标记设为0,将不包含脉冲噪声的像素的像素标记设为1。
若待处理图像中包含的脉冲噪声为椒盐脉冲噪声,可以采用边缘区别的噪声检测(BDND,Boundary Discriminative Noise Detection)方法检测每一个像素,从而确定出包含椒盐脉冲噪声的像素。下面举例说明BDND方法如何判断一个待处理像素是否为包含椒盐脉冲噪声的像素:
第1步、以待处理像素为中心取一个21×21的邻域,当然,该邻域的大小也可以任意设置,若该邻域中的一些像素位于待处理图像的边界之外,则为处于待处理图像的边界之外、且位于该邻域中的像素设置像素值;
第2步、对该邻域内的像素的像素值按照递增的顺序排列,得到序列v01,并求出第一中值;其中,当邻域大小n×n为奇数时,第一中值为序列v01中排在第(n×n+mod(n×n/2))/2位的像素值;当邻域大小n×n为偶数时,第一中值为序列v01中排在第n×n/2位的像素值以及序列v01中排在第n×n/2+1位的像素值的平均值;因此,当邻域大小为21×21时,第一中值为序列v01中排在第221位的像素值,当邻域大小为20×20时,第一中值为序列v01中排在第200位的像素值和序列v01中排在第201位的像素值的平均值。
第3步、计算序列v01中的每一个像素值减去其前一个像素值的值,得到一个像素值的差值的序列vd1;
第4步、对序列v01中像素值在0到第一中值之间的像素值,找到其在序列vd1中对应的像素值的差值,找到这些像素值的差值中的最大值,并将序列v01中相减得到该最大值的相邻两个像素值中较大的像素值记为b11;
第5步、对序列v01中像素值在第一中值到255之间的像素值,找到其在序列vd1中对应的像素值的差值,并找到这些像素值的差值中的最大值,并将序列v01中相减得到该最大值的相邻两个像素值中较大的像素值记为b21;
第6步、判断待处理像素的像素值是否大于b11且小于b21;若是,则该待处理像素不是包含椒盐脉冲噪声的像素;否则,执行第7步;
第7步、以待处理像素为中心取一个3×3的邻域,当然,该邻域的大小也可以任意设置,但要小于第1步中设置的邻域的大小,若该邻域中的一些像素位于待处理图像的边界之外,则为处于待处理图像的边界之外、且位于该邻域中的像素设置像素值;
第8步、对该3×3邻域内的像素的像素值按照递增的顺序排列,得到序列v02,并求出第二中值;第二中值的确定方法与第一中值的确定方法类似,在此不再赘述。
第9步、计算序列v02中的每一个像素值减去其前一个像素值的值,得到一个像素值的差值的序列vd2;
第10步、对序列v02中像素值在0到第二中值之间的像素值,找到其在序列vd2中对应的像素值的差值,并找到这些像素值的差值中的最大值,并将序列v02中相减得到该最大值的相邻两个像素值中较大的像素值记为b12;
第11步、对序列v02中像素值在第二中值到255之间的像素值,找到其在序列vd2中对应的像素值的差值,并找到这些像素值的差值中的最大值,并将序列v02中相减得到该最大值的相邻两个像素值中较大的像素值记为b22;
第12步、判断待处理像素的像素值是否大于b12且小于b22;若是,则该待处理像素不是包含椒盐脉冲噪声的像素;否则,该待处理像素是包含椒盐脉冲噪声的像素。
然后,对待处理图像中的每一个像素依次执行第1步至第12步,从而判断出该像素是否为包含脉冲噪声的像素。
若待处理图像中包含的脉冲噪声不是椒盐脉冲噪声,而是随机脉冲噪声,这时BDND方法并不能很好地判断出一个像素是否为包含脉冲噪声的像素,此时,可以采用排序绝对差值(Rank-Ordered Absolute,ROAD)的方法来判断。下面举例说明ROAD方法如何判断一个待处理像素是否为包含随机脉冲噪声的像素:
第1步、以待处理像素为中心取一个n×n的邻域,并求出待处理像素的像素值与其邻域中除该待处理像素以外的其它像素的像素值的差值的绝对值,即dxy=|Ix-Iy|,其中,Ix为待处理像素的像素值,Iy为待处理像素的邻域中除待处理像素意外的其他像素的像素值;
第2步、将得到的像素值的差值的绝对值按照递增的顺序排列,并定义 ri(x)是第i个最小的dxy;
第3步、取m为接近n2/2的整数,如果ROADm(x)大于某个设定的阈值T;则确定该待处理像素为包含随机脉冲噪声的像素;否则,该待处理像素不是包含随机脉冲噪声的像素。
如果预先无法知道待处理图像中包含的脉冲噪声的类型,则可以采用BDND方法和ROAD方法分别判断待处理图像中的每一个像素是否为包含脉冲噪声的像素,只要BDND方法和ROAD方法中的任意一种判断该像素为包含脉冲噪声的像素,则该像素即为包含脉冲噪声的像素,将该像素的像素标记设为0。
S302、对待处理图像中像素标记为0的像素进行滤波,生成滤波后的过渡图像;根据过渡图像中各像素的像素值和待处理图像中对应的像素的像素值的差值,确定待处理图像的噪声的方差;并根据局部邻域的大小以及待处理图像的颜色分量的个数确定带宽;根据确定出的待处理图像的噪声的方差和带宽确定NL-means算法的强度参数h;
S303、针对待处理图像中的一个待处理像素,取该待处理像素的邻域作为该待处理像素的滑动窗;
S304、针对该待处理像素的滑动窗内的一个对比像素,对比像素的是该待处理像素的滑动窗内像素标记为1的像素,计算该对比像素的局部邻域(大小为m×m)中的每一个第一像素相对于对应的第二像素的相似度,其中,与第一像素对应的第二像素位于待处理像素的局部邻域(大小为m×m)中,且该第二像素相对于待处理像素的位置与该第一像素相对于该对比像素的位置相同。
在本发明的一个实施例中,可以采用公式4计算该对比像素的局部邻域(大小为m×m)中的每一个第一像素相对于对应的第二像素的相似度:
公式4
其中,x为对比像素的坐标值,y为待处理像素的坐标值,b为坐标偏移量,I(x+b)为坐标值为x+b的第一像素的像素值,I(y+b)为坐标值为y+b的第二像素的像素值,V(x+b)为坐标值为x+b的第一像素的像素标记,V(y+b)为坐标值为y+b的第二像素的像素标记,wx+b,y+b为坐标值为x+b的第一像素相对于坐标值为y+b的第二像素的相似度;Gσ为带宽为σ的高斯滤波函数,h为非局部平均NL-means算法的强度参数;其中,h的值可以根据经验值设置,也可以采用S302中确定出的h的值,因此,S302并不是一个必要的步骤,但是,较佳地,h的值采用S302中确定出的值;另外,x,y,b,x+b,y+b均为二维的坐标值。
如果以3×3的局部邻域为例,由于对比像素的局部邻域中的第一像素共9个,第二像素也是9个,因此,采用公式4共计算出来9个相似度;并且根据公式3可以知道像素标记为0的第一像素相对于对应的第二像素的相似度为1,并且第一像素相对于对应的像素标记为0的第二像素的相似度为1。但是,采用公式1计算的是比较像素相对于该比较像素具有的对应像素的相似度,即仅计算像素标记为1的第一像素相对于对应的像素标记为1的第二像素的相似度,因此,采用公式1计算出来的相似度的个数小于或者等于9个。
S305、确定S304中的对比像素的局部邻域相对于待处理像素的局部邻域的权重。
在本发明的一个实施例中,可以根据公式5确定S304中的对比像素的局部邻域相对于待处理像素的局部邻域的权重:
公式5
其中,公式5中的∏wx+b,y+b表示S304中的对比像素的局部邻域中的每个第一像素分别相对于对应的第二像素的相似度的乘积,即一共m×m个相似度的乘积。
由于根据公式4计算的像素标记为0的第一像素相对于对应的第二像素的相似度为1,并且第一像素相对于对应的像素标记为0的第二像素的相似度也为1,因此,根据公式5可以看出,像素标记为0的第一像素相对于对应的第二像素的相似度以及第一像素相对于对应的像素标记为0的第二像素的相似度,在计算对比像素的局部邻域相对于待处理像素的局部邻域的权重时并不起作用;也就是说,无论是采用公式1仅计算像素标记为1的第一像素相对于对应的像素标记为1的第二像素的相似度,还是采用公式4计算每一个第一像素相对于对应的第二像素的相似度,最终根据公式5计算出的对比像素的局部邻域相对于待处理像素的局部邻域的权重是完全相同的。
重复执行S304和S305,直至待处理像素的滑动窗内的每一个像素标记为1的像素的局部邻域相对于待处理像素的局部邻域的权重都被确定出来。
S306、根据待处理像素的滑动窗内每一个像素标记为1的像素的局部邻域相对于待处理像素的局部邻域的权重,确定待处理像素的滤波后的像素值。
具体地,若待处理像素是像素标记为0的像素,则采用公式2根据待处理像素的滑动窗内每一个像素标记为1的像素的局部邻域相对于待处理像素的局部邻域的权重,确定待处理像素的滤波后的像素值;若待处理像素是像素标记为1的像素,则采用公式3根据待处理像素的滑动窗内每一个像素标记为1的像素的局部邻域相对于待处理像素的局部邻域的权重,确定待处理像素的滤波后的像素值。
在执行S303-S306对待处理像素进行滤波时,不再计算待处理像素的滑动窗内的包含脉冲噪声的像素的局部邻域相对于待处理像素的局部邻域的权重,也不再使用包含脉冲噪声的像素的像素值,计算待处理像素的滑动窗内的不包含脉冲噪声的像素的局部邻域相对于待处理像素的局部邻域的权重,避免了包含脉冲噪声的像素的像素值对权重的不良影响,从而避免了在采用需要使用包含脉冲噪声的像素的像素值,计算待处理像素的滑动窗内的像素的局部邻域相对于待处理像素的局部邻域的权重的滤波方法,例如NL-means算法,对待处理像素进行滤波时,需要首先对包含脉冲噪声的像素进行滤波的弊端,减少了滤波的次数。也就是说,该方法不需要区分待处理像素是包含脉冲噪声的像素,还是包含高斯噪声的像素,还是包含混合噪声的像素,即无论待处理像素中包含的是哪一种噪声,只对待处理像素采用该方法处理一次,与现有技术中对包含混合噪声的像素需要进行多次滤波的方法相比,提高了滤除像素中的混合噪声的速度,从而提高了滤除图像中的噪声时的效率。
重复执行S303-S306,直至待处理图像中的每一个像素都执行过一次,即待处理图像中的每一个像素中的噪声都被滤掉。
基于同一发明构思,本发明实施例还提供了一种滤除像素中噪声的装置,由于该装置所解决问题的原理与前述滤除像素中噪声的方法相似,因此该装置实施可以参见前述方法的实施,重复之处不再赘述。
本发明实施例提供的一种滤除像素中噪声的装置,如图4所示,包括第一确定模块41和第二确定模块42;
所述第一确定模块41,用于针对一个对比像素,确定所述对比像素的局部邻域中至少一个具有对应像素的比较像素的相似度,并根据确定的各个相似度,确定所述对比像素的局部邻域相对于待处理像素的局部邻域的权重;其中,所述对比像素为所述待处理像素的滑动窗内不包含脉冲噪声的像素,所述比较像素为所述对比像素的局部邻域中不包含脉冲噪声的像素,一个具有对应像素的比较像素的相似度是该比较像素相对于该对应像素的相似度,所述比较像素具有的对应像素是位于所述待处理像素的局部邻域中、且不包含脉冲噪声的像素,所述对应像素相对于所述待处理像素的位置与所述比较像素相对于所述对比像素的位置相同;
所述第二确定模块42,用于根据所述第一确定模块41确定的所述滑动窗内的至少一个对比像素的局部邻域相对于所述待处理像素的局部邻域的权重,确定所述待处理像素的滤波后的像素值。
进一步地,所述第一确定模块41具体用于:当确定的相似度仅有一个时,将确定的相似度作为所述对比像素的局部邻域相对于所述待处理像素的局部邻域的权重;当确定的相似度多于一个时,将确定的各个相似度的乘积,作为所述对比像素的局部邻域相对于所述待处理像素的局部邻域的权重。
进一步地,当包含待处理像素的图像为视频文件中的一帧图像时,所述待处理像素的滑动窗包括位于该帧图像中的第一滑动窗,以及位于该帧图像之前的N帧图像中的至少一个第二滑动窗和/或该帧图像之后的M帧图像中的至少一个第二滑动窗,每个第二滑动窗在其所在的图像中的位置与所述第一滑动窗在包含待处理像素的图像中的位置相同。
进一步地,所述第一确定模块41具体用于:按照下列公式确定所述对比像素的局部邻域中一个具有对应像素的比较像素的相似度:
其中,x为所述对比像素的坐标值,y为所述待处理像素的坐标值,b为坐标偏移量,x+b为所述比较像素的坐标值,y+b为所述比较像素具有的对应像素的坐标值,I(x+b)为所述比较像素的像素值,I(y+b)为所述比较像素的对应像素的像素值,wx+b,y+b为所述比较像素相对于所述对应像素的相似度;Gσ为带宽为σ的高斯滤波函数,h为非局部平均NL-means算法的强度参数;其中,h可以根据经验设置,也可以根据包含待处理像素的图像中的噪声的方差和带宽确定,所述带宽由局部邻域的大小和所述图像的颜色分量的个数确定,所述图像中的噪声的方差根据所述图像以及对所述图像中包含噪声脉冲的像素进行滤波后得到的图像确定。
较佳地,NL-means算法的强度参数h的平方反比于所述图像中的噪声的方差和带宽。
进一步地,所述第二确定模块42具体用于:在所述待处理像素为包含脉冲噪声的像素时,按照下列公式根据所述滑动窗内至少一个对比像素的局部邻域相对于所述待处理像素的局部邻域的权重,确定待处理像素的滤波后的像素值:
其中,Wx,y为坐标值为x的对比像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重,I(x)为坐标值为x的对比像素的像素值,If(y)为滤波后的坐标值为y的待处理像素的像素值。
进一步地,所述第二确定模块42具体用于:在所述待处理像素为不包含脉冲噪声的像素时,按照下列公式根据所述滑动窗内至少一个对比像素的局部邻域相对于所述待处理像素的局部邻域的权重,确定待处理像素的滤波后的像素值:
其中,Wx,y为坐标值为x的对比像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重,I(x)为坐标值为x的对比像素的像素值,I(y)为坐标值为y的待处理像素的像素值,If(y)为滤波后的坐标值为y的待处理像素的像素值;Wy,y为坐标值为y的待处理像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重与坐标值为y的待处理像素的滑动窗内各个对比像素的局部邻域相对于坐标值为y的待处理像素的局部邻域的权重中最大的前K个值之和,K为非负整数。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。