一种基于中值滤波器的图像噪声去除方法和装置转让专利

申请号 : CN200710041443.5

文献号 : CN101316321B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张本好冯晓光胡静林福辉

申请人 : 展讯通信(上海)有限公司

摘要 :

本发明公开了基于中值滤波器的图像噪声去除方法和装置,去除传感器的线性噪声和随机噪声,去除传感器图像的坏点及防止过度去噪。其技术方案为:该方法包括:对于当前点cur_pixel,从周围像素点中取三种组合,计算每组像素点的中值φ1、φ2和φ3;计算参考亮度值Y:Y=φ2+[φ1+φ3-2*φ2]*h*[1-k*var],其中var=φ3-φ1;判断cur_pixel是否为坏点,如为坏点则令tmp_data=φ1,否则令tmp_data=cur_pixel;判断当前点是否位于边缘,如位于边缘,则将Y限位于[tmp_data-edge_limit,tmp_data+edge_limit],并更新cur_pixel,去噪完毕;如果不位于边缘,则进一步判断|Y-tmp_data|和avoid_over_noise的大小,如果|Y-tmp_data|<avoid_over_noise,则用Y更新当前点,否则用tmp_data更新当前点;对图像每一点重复上述步骤。本发明应用于图像去噪领域。

权利要求 :

1.一种基于中值滤波器的图像噪声去除方法,包括:

对于当前点cur_pixel,从周围的像素点中取出三种组合,分别计算该三个组合中每组像素点的中值φ1、φ2和φ3;

计算参考亮度值Y:Y=φ2+[φ1+φ3-2*φ2]*h*[1-k*var],其中var=φ3-φ1,且h、k是两个可调的参数,用于控制去噪的强度;

判断当前点cur_pixel是否为坏点,判断当前点是否为坏点的条件是:判断|cur_pixel_φ1|和bad_pixel的大小,如果|cur_pixel-φ1|>bad_pixel,则该当前点为坏点,否则该当前点不是坏点,其中bad_pixel是坏点检测参数,如为坏点则令中间变量tmp_data=φ1,否则令tmp_data=cur_pixel;

判断当前点是否位于边缘,判断当前点是否位于边缘的条件是:判断max_d的值和edge_par的大小,其中max_d是于第一个步骤所取的点中在水平方向上距离最远的两个点的数值之差和竖直方向上距离最远的两个点的数值之差的最大值,edge_par是可调参数,表示边缘阀值,如果max_d>edge_par则当前点位于边缘,否则当前点不位于边缘,如果当前点位于边缘,则将参考亮度值Y限位于[tmp_data-edge_limit,tmp_data+edge_limit],其中亮度调整范围参数edge_limit取值范围为0~255,并用限位之后的参考亮度值Y更新当前点cur_pixel;

如果当前点不位于边缘,则进一步判断|Y-tmp_data|和avoid_over_noise的大小,其中avoid_over_noise是可调参数,表示避免过度去噪的阀值,如果|Y-tmp_data|<avoid_over_noise,则用参考亮度值Y更新当前点,否则用tmp_data更新当前点;

对图像中的每一像素点都重复上述步骤进行处理。

2.根据权利要求1所述的基于中值滤波器的图像噪声去除方法,其特征在于,对于从当前点的周围像素点中所取出的任一组合,同组的其他像素点均以该当前点为中心点呈对称分布。

3.一种基于中值滤波器的图像噪声去除装置,该装置包括:

取点模块,对于当前点cur_pixel,从周围的像素点中取三种组合;

中值计算模块,通过中值滤波器分别计算上述三种组合的像素点中值φ1、φ2和φ3;

参考亮度值计算模块,根据公式Y=φ2+[φ1+φ3-2*φ2]*h*[1-k*var]计算参考亮度值Y的数值,其中var=φ3-φ1,且h、k是两个可调的参数,用于控制去噪的强度;

坏点处理模块,判断当前点cur_pixel是否为坏点,判断当前点是否为坏点的条件是:判断|cur_pixel-φ1|和bad_pixel的大小,如果|cur_pixel-φ1|>bad_pixel,则该当前点为坏点,否则该当前点不是坏点,其中bad_pixel是坏点检测参数,如当前点为坏点则令中间变量tmp_data=φ1,否则令tmp_data=cur_pixel;

边缘判断模块,判断当前点是否位于边缘,判断当前点是否位于边缘的条件是:判断max_d的值和edge_par的大小,其中max_d是该取点模块所取的点中在水平方向上距离最远的两个点的数值之差和竖直方向上距离最远的两个点的数值之差的最大值,edge_par是可调参数,表示边缘阀值,如果max_d>edge_par则当前点位于边缘,否则当前点不位于边缘;

边缘处理模块,对位于边缘的当前点做边缘保护处理,将参考亮度值Y限位于[tmp_data-edge_limit,tmp_data+edge_limit],其中亮度调整范围参数edge_limit取值范围为0~255,并使用限位之后的参考亮度值Y更新当前点cur_pixel;

非边缘处理模块,对非边缘的当前点做防止过度去噪的处理,如果|Y-tmp_data|<avoid_over_noise,则用参考亮度值Y更新当前点,否则用tmp_data更新当前点,其中avoid_over_noise是可调参数,表示避免过度去噪的阀值。

4.根据权利要求3所述的基于中值滤波器的图像噪声去除装置,其特征在于,该取点模块中,对于从当前点的周围像素点中所取出的任一组合,同组的其他像素点均以该当前点为中心点呈对称分布。

说明书 :

技术领域

本发明涉及图像去噪,尤其涉及用于Bayer图像空间或经过插值后的RGB图像空间的图像去噪方法和装置。

背景技术

图像去噪是ISP流程中重要的一个单元,用于图像去噪的方法有很多,目前大多数基于中值滤波器的图像去噪方法都很简单。一般传统的图像去噪方法参见图1,对于当前点先按一定方式从周围的像素点中取出三组,分别求这三组的中值φ1、φ2和φ3。然后对当前点做去噪处理,如果当前点位于边缘(edge)则进行edge保护处理。
采用上述传统的方法进行去噪,去噪效果不是很好,且有时会引入新的噪声,尤其是对图像中存在坏点的情况,去噪效果更加不理想。

发明内容

本发明的目的在于提供一种基于中值滤波器的图像噪声去除方法和装置,它能去除传感器的线性噪声以及一部分随机噪声,去除传感器图像中的一些坏点以及防止去噪过程造成的过度去噪。
本发明的技术方案为:本发明提出了一种基于中值滤波器的图像噪声去除方法,包括:
对于当前点cur_pixel,从周围的像素点中取出三种组合,分别计算该三个组合中每组像素点的中值φ1、φ2和φ3;
计算参考亮度值Y:Y=φ2+[φ1+φ3-2*φ2]*h*[1-k*var],其中var=φ3-φ1,且h、k是两个可调的参数,用于控制去噪的强度;
判断当前点cur_pixel是否为坏点,如为坏点则令中间变量tmp_data=φ1,否则令tmp_data=cur_pixel;
判断当前点是否位于边缘,如果当前点位于边缘,则将参考亮度值Y限位于[tmp_data-edge_limit,tmp_data+edge_limit],其中亮度调整范围参数edge_limit取值范围为0~255,并用限位之后的参考亮度值Y更新当前点cur_pixel,去噪完毕;
如果当前点不位于边缘,则进一步判断|Y-tmp_data|和avoid_over_noise的大小,其中avoid_over_noise是可调参数,表示避免过度去噪的阀值,如果|Y-tmp_data|<avoid_over_noise,则用参考亮度值Y更新当前点,否则用tmp_data更新当前点;
对图像中的每一像素点都重复上述步骤进行处理。
上述的基于中值滤波器的图像噪声去除方法,其中,对于从当前点的周围像素点中所取出的任一组合,同组的其他像素点均以该当前点为中心点呈对称分布。
上述的基于中值滤波器的图像噪声去除方法,其中,判断当前点是否为坏点的条件是:判断|cur_pixel-φ1|和bad_pixel的大小,如果|cur_pixel-φ1|>bad_pixel,则该当前点为坏点,否则该当前点不是坏点,其中bad_pixel是坏点检测参数。
上述的基于中值滤波器的图像噪声去除方法,其中,判断当前点是否位于边缘的条件是:判断max_d的值和edge_par的大小,其中max_d是于第一步所取的点中在水平方向上距离最远的两个点的数值之差和竖直方向上距离最远的两个点的数值之差的最大值,edge_par是可调参数,表示边缘阀值,如果max_d>edge_par则当前点位于边缘,否则当前点不位于边缘。
基于上述的方法,本发明还提出了一种基于中值滤波器的图像噪声去除装置,该装置包括:
取点模块,对于当前点cur_pixel,从周围的像素点中取三种组合;
中值计算模块,通过中值滤波器分别计算上述三种组合的像素点中值φ1、φ2和φ3;
参考亮度值计算模块,根据公式Y=φ2+[φ1+φ3-2*φ2]*h*[1-k*var]计算参考亮度值Y的数值,其中var=φ3-φ1,且h、k是两个可调的参数,用于控制去噪的强度;
坏点处理模块,判断当前点cur_pixel是否为坏点,如当前点为坏点则令中间变量tmp_data=φ1,否则令tmp_data=cur_pixel;
边缘判断模块,判断当前点是否位于边缘;
边缘处理模块,对位于边缘的当前点做边缘保护处理,将参考亮度值Y限位于[tmp_data-edge_limit,tmp_data+edge_limit],其中亮度调整范围参数edge_limit取值范围为0~255,并使用限位之后的参考亮度值Y更新当前点cur_pixel;
非边缘处理模块,对非边缘的当前点做防止过度去噪的处理,如果|Y-tmp_data|<avoid_over_noise,则用参考亮度值Y更新当前点,否则用tmp_data更新当前点,其中avoid_over_noise是可调参数,表示避免过度去噪的阀值。
上述的基于中值滤波器的图像噪声去除装置,其中,该取点模块中,对于从当前点的周围像素点中所取出的任一组合,同组的其他像素点均以该当前点为中心点呈对称分布。
上述的基于中值滤波器的图像噪声去除装置,其中,该坏点处理模块中,判断当前点是否为坏点的条件是:判断|cur_pixel-φ1|和bad_pixel的大小,如果|cur_pixel-φ1|>bad_pixel,则该当前点为坏点,否则该当前点不是坏点,其中bad_pixel是坏点检测参数。
上述的基于中值滤波器的图像噪声去除装置,其中,该边缘判断模块判断当前点是否位于边缘的条件是:判断max_d的值和edge_par的大小,其中max_d是该取点模块所取的点中在水平方向上距离最远的两个点的数值之差和竖直方向上距离最远的两个点的数值之差的最大值,edge_par是可调参数,表示边缘阀值,如果max_d>edge_par则当前点位于边缘,否则当前点不位于边缘。
本发明对比现有技术有如下的有益效果:本发明通过在传统的图像去噪过程中增加在当前点为坏点的情况下对坏点的处理以及对处于非edge的当前点所进行的防止过度去噪处理,使得本发明的方法对比现有技术,能够去除传感器的线性噪声以及一部分随机噪声,去除传感器图像中的一些坏点以及防止去噪过程造成的过度去噪。

附图说明

图1是传统的图像去噪过程的流程图。
图2是本发明的图像去噪方法的一个较佳实施例的流程图。
图3是本发明的图像去噪方法的更细致的流程图。
图4是本发明中取点方式的一个示例的示意图。
图5是本发明的图像去噪装置的框图。

具体实施方式

下面结合附图和实施例对本发明作进一步的描述。
图2示出了本发明的图像噪声去除方法的一个大略的流程。请参见图2,首先,按照一定方式从当前点周围的若干像素点中取出三组,分别通过中值滤波器求这三组像素点各自的中值φ1、φ2和φ3。然后,根据一定的条件判断当前点是否为坏点,如果为坏点则对坏点做相应处理。最后,对当前点做去噪处理,如果当前点位于edge,做edge保护处理,否则对当前点做防止过度去噪处理。
图3对图2实施例进行了细化,请参见图2,下面是对图像噪声取出方法中各步骤的详细描述。下面的步骤是以处理一个当前点cur_pixel为例,只要对图像中的每一点都重复以下步骤就可以得到一个去噪后的图像。
步骤S10:对当前点cur_pixel,从周围的像素点中取出三种组合。
图4示出了取点的一个示例。假设当前点cur_pixel为R5,从其周围5×5的像素点中取出三组,取法如下:第一组:R1、R3、R7、R9、R5;第二组:R2、R4、R5、R6、R8;第三组:R2、R4、R5、R5、R5、R6、R8。
取点方式可以为合理的任意一种,一般可以遵循如下规则:对于从周围像素点中取出的每一组点,同组的其他像素点均以当前点为中心对称分布。取点的方式和个数都可以变化。
步骤S11:分别计算这三组像素点的中值,即使用中值滤波器得到三个中值φ1、φ2和φ3。
步骤S12:计算参考亮度值Y。计算公式为:Y=φ2+[φ1+φ3-2*φ2]*h*[1-k*var],其中var=φ3-φ1,且h、k是两个可调的参数,用于控制去噪的强度。
步骤S13:判断当前点cur_pixel是否为坏点,如果是则进入步骤S14,否则进入步骤S15。
本实施例中,判断是否为坏点即是判断|cur_pixel-φ1|和坏点检测参数bad_pixel的大小。如果|cur_pixel-φ1|>bad_pixel,则当前点cur_pixel是坏点。
否则当前点cur_pixel不是坏点。
步骤S14:令中间变量tmp_data=φ1。
步骤S15:令中间变量tmp_data=cur_pixel。
步骤S16:求出所取的像素点中在水平方向上距离最远的两个点的数值之差和竖直方向上距离最远的两个点的竖直之差,比较这两个差值,将其中较大的差值作为max_d。
在图4示例中,是比较|R2-R8|与|R4-R6|,将其中的较大值作为max_d。
步骤S17:判断当前点cur_pixel是否位于边缘(edge)。
判断当前点cur_pixel是否位于边缘的条件是:判断max_d的值和edge_par的大小,其中edge_par是可调参数,表示边缘阀值,如果max_d>edge_par则当前点位于边缘,转到步骤S18;否则当前点不位于边缘,转到步骤S19。
步骤S18:将参考亮度值Y限位于[tmp_data-edge_limit,tmp_data+edge_limit],其中亮度调整范围参数edge_limit取值范围为0~255,并用限位之后的参考亮度值Y更新当前点cur_pixel,去噪完毕。
步骤S19:判断|Y-tmp_data|和avoid_over_noise的大小,其中avoid_over_noise是可调参数,表示避免过度去噪的阀值。如果|Y-tmp_data|<avoid_over_noise,则转到步骤S20,否则转到步骤S21。
步骤S20:使用参考亮度值Y更新当前点cur_pixel,去噪完毕。
步骤S21:使用tmp_data更新当前点cur_pixel,去噪完毕。
基于上述方法,本发明还提出了一种基于中值滤波器的图像噪声去除装置,请参见图5。该装置包括:取点模块51、中值计算模块52、参考亮度值计算模块53、坏点处理模块54、边缘判断模块55、边缘处理模块56、非边缘处理模块57。
取点模块51从当前点cur_pixel周围的像素点中取出三种组合。取点方式可以为合理的任意一种,一般遵循如下规则:对于从周围像素点中取出的每一组点,同组的其他像素点均以当前点为中心对称分布。当然,取点的方式和个数都可以变化。
中值计算模块52通过中值滤波器计算这三组像素点的中值,分别得到三个中值φ1、φ2和φ3。参考亮度值计算模块53计算参考亮度值Y,公式为:Y=φ2+[φ1+φ3-2*φ2]*h*[1-k*var],其中var=φ3-φ1,且h、k是两个可调的参数,用于控制去噪的强度。
坏点处理模块54判断当前点cur_pixel是否为坏点,即判断|cur_pixel-φ1和坏点检测参数bad_pixel的大小。如果|cur_pixel-φ1|>bad_pixel,则当前点cur_pixel是坏点,令中间变量tmp_data=φ1。否则当前点cur_pixel不是坏点,令中间变量tmp_data=cur_pixel。
边缘判断模块55判断当前点cur_pixel是否位于边缘,也即判断max_d的值和edge_par的大小,edge_par是可调参数,表示边缘阀值。其中max_d这样计算得到:求出所取的像素点中在水平方向上距离最远的两个点的数值之差和竖直方向上距离最远的两个点的竖直之差,比较这两个差值,将其中较大的差值作为max_d。如果max_d>edge_par则当前点位于边缘,由边缘处理模块56进一步运行;否则当前点不位于边缘,由非边缘处理模块57进一步运行。
边缘处理模块56对位于边缘的当前点cur_pixel做边缘保护处理,将参考亮度值Y限位于[tmp_data-edge_limit,tmp_data+edge_limit],其中亮度调整范围参数edge_limit取值范围为0~255,并用限位之后的参考亮度值Y更新当前点cur_pixel。
非边缘处理模块57对非边缘的当前点cur_pixel做防止过度去噪的处理,首先判断|Y-tmp_data|和avoid_over_noise的大小,其中avoid_over_noise是可调参数,表示避免过度去噪的阀值。如果|Y-tmp_data|<avoid_over_noise,则使用参考亮度值Y更新当前点cur_pixel,否则使用tmp_data更新当前点cur_pixel。
本发明的发明点在于:在去噪过程中增加了对坏点的额外处理和对当前点非边缘时的防止过度去噪处理。
上述实施例是提供给本领域普通技术人员来实现或使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。