一种图像坏点检测及处理方法与流程

文档序号:11961233阅读:699来源:国知局
一种图像坏点检测及处理方法与流程

本发明涉及数字图像处理技术领域,具体涉及一种图像坏点检测及处理方法,对多坏点情况有一定的效果。



背景技术:

目前一般电脑摄像头、手机摄像头各种数码相机和摄像机等数码成像产品,所用的图像传感器大多为RGB Bayer类型,在采集图像时通过Bayer色彩矩阵得到图像。由于目前制造工艺水平的原因,使得图像传感器采集的图像几乎不可避免的会出现坏点,并且,当图像传感器设备经过长时间使用后,会因为图像传感器的使用导致图像产生更多的坏点。坏点的出现不仅会降低图像的视觉效果,多坏点出现甚至会丢失部分重要的图像信息。

因此,对图像坏点的检测以及处理一直以来都是图像处理领域一个重要的研究内容。现有的一些坏点检测算法要么出现图像坏点误检率比较高,要么出现坏点处理效果不好,或者出现无法处理多个连续出现坏点的情况。



技术实现要素:

本发明的目的在于针对已有技术的不足,提供一种图像坏点检测及处理方法,对边缘处的坏点以及连续出现的多坏点有较好处理效果。

为达到上述目的,本发明的构思是:

基于Bayer图像,以当前点为中心的包含当前像素与周围24个像素点组成一个像素矩阵,首先根据硬件性能情况,判断该传感器输出的图像通常存在几个坏点连续出现的情况,据此设置本坏点检测及处理方法能够具备处理几个坏点连续出现的情况,根据像素点与周边亮度情况判断该点是否为坏点,并且检测该坏点是否处于图像边缘,根据不同的方向选择周围像素点中的值来替代当前像素,并且该方法对于去掉多个坏点有很好的效果。

上述的方法中,首先根据图像传感器硬件性能情况,设置控制信号来决定该方法能处理单坏点、二坏点、三坏点、四坏点的能力。

上述的方法中,根据当前像素点是否为G(Green)点,以当前像素点为中心,像素矩阵中的周围24个像素点中选择8个像素点,同时计算出当前像素点与周围8个像素点的差值。

上述的方法中,由于处理方式为逐行迭代实现,因此将当前点前面的4个像素点作为经过该图像坏点检测及处理方法处理后的可信赖的点,判断是否为坏点时,比较当前点与前面4个像素点的差值。若当前点亮度比前四个可信赖点亮度最大值还超过亮点阈值的情况下,判断当前点为亮点;若当前点亮度比前四个可信赖点亮度最小值还低于暗点阈值的情况下,判断当前点为暗点。

上述的方法中,判断出当前点为亮点或暗点后,还不能确定当前像素点是不是坏点,选择一个噪声模型,设置噪声阈值,根据当前噪声与噪声阈值大小关系,得到一个有用噪声值,比较有用噪声值与前四个可靠像素差值的最小值,判断该点是否为正常的噪声,当该像素点不是噪声阈值范围内的噪声,并且同时满足该像素为亮点或暗点时,则判断该像素点为坏点。

上述方法中,判断出该像素点为坏点后,依据设置的去坏点能力情况,初步判断该像素点后面的几个像素点可能为坏点还是正常像素点。

上述的方法中,判断出当前像素点为坏点后,考虑该坏点的位置。当坏点处于图像边缘的时候,识别出坏点处于图像的哪个边缘,赋予当前像素点不同的方向。

上述方法中,根据像素所处不同的边缘,在该方向上选择不同的可靠像素来替代当前坏点,对坏点进行校正。

上述方法中,当坏点没有处于图像边缘,处于图像中部的时候,从该像素点前面的4个可靠像素中,选择那个与当前像素差距最小的像素点作为替代点,对当前坏点进行校正。

根据上述发明构思,本发明采用下述技术方案:

一种图像坏点检测及处理方法,其特征在于:具体操作步骤如下:

1)根据当前像素点颜色的不同在像素矩阵中选取不同的参考点,并计算参考点与当前像素点的差异值;

2)根据图像传感器硬件质量,选择该算法最大能够处理单、二、三、四等几个坏点连续存在的情况;

3)选择不同的噪声模型,根据不同的噪声模型和邻域情况,判断当前像素点是否为坏点;

4)根据设置的去坏点强度,预判当前像素点后面的几个像素是否也有可能为坏点;

5)根据不同方向的变化量判断该坏点是否处于边缘,确定坏点所在的边缘方向;

6)该像素点不在边缘时,选择当前像素点前面的四个像素点中对应的可靠像素替代坏点;

7)根据当前像素不同的方向,在前面四个可靠像素中选取一个适当的替代像素执行坏点处理。

所述参考点选择及差异值的计算,根据中心像素点颜色是否为G(Green)点,按照不同位置,如图2或图3所示,选取相同颜色的邻近8个像素点作为参考像素,包含当前像素点在内的矩阵中9个参考点按从左到右从上到下顺序标记为op1、op2、op3、op4、op5、op6、op7、op8、op9,中心像素点op5为当前待测像素点,对8个参考像素点的像素值与中心像素点的像素值作差取绝对值,作为后续坏点检测的依据。用符号abs表示取绝对值运算,具体的diff1为op1的像素值Iop1与op5的像素值Iop5之差的绝对值,即diff1=abs(Iop1-Iop5);diff2为op2的像素值Iop2与op5的像素值Iop5之差的绝对值,即diff2=abs(Iop2-Iop5);diff3为op3的像素值Iop3与op5的像素值Iop5之差的绝对值,即diff3=abs(Iop3-Iop5);diff4为op4的像素值Iop4与op5的像素值Iop5之差的绝对值,即diff4=abs(Iop4-Iop5);diff6为op6的像素值Iop6与op5的像素值Iop5之差的绝对值,即diff6=abs(Iop6-Iop5);diff7为op7的像素值Iop7与op5的像素值Iop5之差的绝对值,即diff7=abs(Iop7-Iop5);diff8为op8的像素值Iop8与op5的像素值Iop5之差的绝对值,即diff8=abs(Iop8-Iop5);diff9为op9的像素值Iop9与op5的像素值Iop5之差的绝对值,即diff9=abs(Iop9-Iop5)。

所述根据图像传感器硬件质量,选择图像检测及处理方法的处理多坏点能力。根据检测方法采用逐行迭代方式,因此像素矩阵在当前像素点op5以外选中的8个像素点中,处在当前像素点以前的4个参考像素点,即op1~op4为经过处理后的可靠像素点,根据传感器的硬件性能情况,手动设置该传感器获取图像的多坏点情况,决定该方法需要用于检测并处理单坏点、二坏点、三坏点、四坏点能力。

所述根据噪声模型及领域情况,判断当前像素点是否为坏点。首先设置亮点阈值bright_th和坏点阈值dark_th。由于本方法采用按行迭代的方式进行处理,即表明8个参考点中,op1、op2、op3、op4为经过本方法处理过后的有效像素点,设置亮点阈值及暗点阈值后,若op5的像素值大于前面4个可靠像素点的最大像素值亮点阈值外时,则判断op5为亮点;若op5的像素值小于前面4个可靠像素点的最小像素值暗点阈值外时,则判定op5为暗点。

所述根据噪声模型及领域情况,判断当前像素点是否为坏点。进一步的,利用相机感光度来获得当前图像的噪声强度值noise_used,若当前中心像素点op5的像素值与前面4个可靠像素点的像素值的差值范围在噪声强度值noise_used以外时,表明当前待测像素点op5不属于噪声点,结合亮点或暗点的判断结果,最终确定当前待测像素点op5为坏点。

所述根据去坏点强度,对后面几个像素点进行坏点预判。即根据设置去坏点强度,预判断后面的四个像素op6~op9中是否同样为坏点,当设定为去单坏点时,op6~op9中无坏点;去二坏点时,op6~op9中还有一个与op5差异最小点为坏点;三坏点时,op6~op9中与op5差异值最小的两个为坏点;四坏点时,op6~op9中与op5差异值最小的三个为坏点。

所述根据不同方向的变化量判断该坏点是否处于边缘,确定坏点所在的边缘方向。对坏点是否处于图像边缘位置考虑时,首先计算像素点在四个方向上的像素值变化量,分别为水平方向像素值变化量delta_H、竖直方向像素值变化量delta_V、正斜方向像素值变化量delta_I、反斜方向像素值变化量delta_T,同时根据设置的4个方向阈值direction_TH1、direction_TH2、direction_diff_TH1、direction_diff_TH2作为方向阈值,其中direction_diff_TH1和direction_diff_TH2为两个方向差阈值,据此判断当前像素点处于水平竖直方向还是正斜反斜方向,而direction_TH1和direction_TH2两个方向阈值用于进一步判断当前像素点的具体方向。结合像素值在四个方向的变化量以及方向阈值,最终确定当前坏点像素是否处于边缘并且处于哪个方向的边缘。

所述根据坏点是否处于边缘以及处于哪个方向边缘,对坏点选取不同的替代像素值。若当前坏点像素不在图像的边缘,则直接利用前面4个可靠像素点中像素值与当前像素点op5像素值之差最小的像素值作为当前坏点像素点新的像素值。若当前坏点处于图像边缘位置时,若方向为正斜I方向,则用op1的像素值替代坏点像素值;若方向为竖直V方向,则用op2的像素值替代坏点像素值;若方向为反斜T方向,则用op3的像素值替代坏点像素值;若方向为水平H方向,则用op4的像素值来替代坏点像素值。最终完成坏点校正。

本发明与现有技术相对比,具有如下显而易见的突出实质性特点及显著技术进步:

1)上述方法处理过程中,设定本方法需要的去多坏点能力,对矩阵中后续像素是否为坏点进行初步预判,对预判为坏点的像素进行同样的处理,有效降低坏点的漏判率;

2)上述方法中,对坏点的判断过程中,充分考虑了噪声模型,可以更加精确有效地判断当前像素是否为坏点;

3)上述方法对坏点的位置充分考虑,对坏点是否处于图像边缘进行判断,根据不同的边缘位置选择更加合适的像素点进行替代处理。

附图说明

图1:初始5×5像素矩阵。

图2:参考像素矩阵选择方式1。

图3:参考像素矩阵选择方式2。

图4:图像坏点检测及处理方法处理程序框图。

图5:图像坏点检测及处理方法具体实施例的流程图。

具体实施方式

本发明的核心的是在检测坏点的过程中,结合周围像素点与中心像素点之间的差值以及周围像素变化量之间的关系,对后续像素点是否为坏点也进行了考虑,判断出当前像素点为坏点时,进一步考虑该坏点是否处在图像的边缘位置,根据判断出的坏点位置的不同,选择出一个相应的可靠像素对当前坏点进行替代,其简要处理步骤如图4所示。

本发明的优选实施例结合附图详述如下:

实施例一:

参考图1~图4,本图像坏点检测及处理方法,其特征在于根据当前像素点颜色的不同在像素矩阵中选取不同的参考点,并计算参考点与当前像素点的差异值;由图像传感器硬件质量,选择该算法最大能够处理单、二、三、四等几个坏点连续存在的情况;再根据不同的噪声模型和邻域情况,判断当前像素点是否为坏点;进一步根据设置的去坏点强度,预判当前像素点后面的几个像素是否也有可能为坏点;再根据不同方向的变化量判断该坏点是否处于边缘,确定坏点所在的边缘方向;最后根据坏点是否在边缘以及在不同方向的边缘,选择对应的替代像素对坏点进行处理。

实施例二:

所述根据不同的像素点颜色选取参考点时,选取该点为中心的Bayer像素矩阵中3邻域24个像素点中的8个与中心像素点颜色相同的像素点作为参考点,8个参考像素点从左到右从上到下分别记op1~op4、op6~op9,并且计算参考点与中心像素点像素值的差值的绝对值,用符号abs表示取绝对值运算,具体的diff1为op1的像素值Iop1与中心像素点op5的像素值Iop5之差的绝对值,即diff1=abs(Iop1-Iop5);diff2为op2的像素值Iop2与中心像素点op5的像素值Iop5之差的绝对值,即diff2=abs(Iop2-Iop5);diff3为op3的像素值Iop3与中心像素点op5的像素值Iop5之差的绝对值,即diff3=abs(Iop3-Iop5);diff4为op4的像素值Iop4与中心像素点op5的像素值Iop5之差的绝对值,即diff4=abs(Iop4-Iop5);diff6为op6的像素值Iop6与中心像素点op5的像素值Iop5之差的绝对值,即diff6=abs(Iop6-Iop5);diff7为op7的像素值Iop7与中心像素点op5的像素值Iop5之差的绝对值,即diff7=abs(Iop7-Iop5);diff8为op8的像素值Iop8与中心像素点op5的像素值Iop5之差的绝对值,即diff8=abs(Iop8-Iop5);diff9为op9的像素值Iop9与中心像素点op5的像素值Iop5之差的绝对值,即diff9=abs(Iop9-Iop5)。

所述根据图像传感器硬件质量,选择图像检测及处理方法的处理多坏点能力,检测方法采用逐行迭代方式,因此像素矩阵在当前像素点op5以外选中的8个像素点中,处在当前像素点以前的4个参考像素点,即op1~op4为经过处理后的可靠像素点,根据传感器的硬件性能情况,手动设置该方法可检测并处理单坏点、二坏点、三坏点、四坏点能力。

所述判断当前像素点是否为坏点时,首先根据当前像素点与周围像素点的差异值以及设置的亮点阈值和暗点阈值判断该点是否为亮点或暗点;当中心像素点op5的像素值比所述的前面四个可靠像素点op1~op4中像素值的最大值还超过亮点阈值bright_th外时,则判断为亮点;当op5的像素值比op1~op4中像素值的最小值还小于暗点阈值dark_th外时,则判断当前像素点op5为暗点。

所述最后判断当前像素是否为坏点时,根据所述噪声模型选取,将所述的diff1~diff4中的最小值min与通过相机感光度获取的图像噪声强度值noise_used作比较,满足min>noise_used时,表明中心像素点op5在正常噪声范围外,若同时满足该中心点op5为亮点或暗点时,则最终判断该像素点为坏点。

所述根据去坏点强度,预判断后面的四个像素op6~op9中是否同样为坏点,当设定为去单坏点时,op6~op9中无坏点;去二坏点时,op6~op9中还有一个与op5差异最小点为坏点;三坏点时,op6~op9中与op5差异值最小的两个为坏点;四坏点时,op6~op9中与op5差异值最小的三个为坏点。

所述根据不同方向的变化量判断当前像素是否处于边缘时,在确定当前点为坏点后,首先根据权利要求2中的差异值的绝对值,计算像素点在四个方向上的像素值变化量,分别为水平方向像素值变化量delta_H、竖直方向像素值变化量delta_V、正斜方向像素值变化量delta_I、反斜方向像素值变化量delta_T,判断当前坏点是否处于图像的边缘;具体计算如下所示:

delta_H=center_delta_H+top_delta_H/2+bot_delta_H/2

其中,center_delta_H为像素矩阵中,当前中心像素点所在行水平方向的像素值变化量,top_delta_H为中心像素点前一行水平方向上的像素值变化量,bot_delta_H为中心像素点后一行水平方向上的像素值变化量,以I(i,j)表示当前中心像素点(i,j)的像素值,i表示像素矩阵中的i行,j表示像素矩阵中的j列,abs表示取绝对值计算,具体计算方法为:

center_delta_H=abs(I(i,j-1)-I(i,j+1))+abs(I(i,i)-(I(i,j-2)+I(i,j+2))/2)/2

top_delta_H/2=[abs(I(i-1,j-1)-I(i-1,j+1))+abs(I(i-1,j)-(I(i-1,j-2)+I(i-1,j+2))/2)/2]/2

bot_delta_H/2=[abs(I(i+1,j-1)-I(i+1,j+1))+abs(I(i+1,j)-(I(i+1,j-2)+I(i+1,j+2))/2)/2]/2

同理,竖直方向上:

delta_V=center_delta_V+left_delta_V/2+right_delta_V/2

其中,center_delta_V为像素矩阵中,当前中心像素点所在列竖直方向的像素值变化量,left_delta_V为中心像素点前一列竖直方向上的像素值变化量,right_delta_V为中心像素点后一列竖直方向上的像素值变化量,计算方法为:

center_delta_V=abs(I(i-1,j)-I(i+1,j))+abs(I(i,j)-(I(i-2,j)+I(i+2,j))/2)/2

left_delta_V/2=[abs(I(i-1,j-1)-I(i+1,j-1))+abs(I(i,j-1)-(I(i-2,j-1)+I(i+2,j-1))/2)/2]/2

right_delta_V/2=[abs(I(i-1,j+1)-I(i+1,j+1))+abs(I(i,j+1)-(I(i-2,j+1)+I(i+2,j+1))/2)/2]/2

正斜方向上:

delta_I=center_delta_I+left_delta_I/2+right_delta_I/2

其中,center_delta_I为像素矩阵中,当前中心像素点所在正斜方向的像素值变化量,left_delta_I为中心像素点左边正斜方向上的像素值变化量,right_delta_I为中心像素点右边正斜方向上的像素值变化量,计算方法为:

center_delta_I=abs(I(i-1,j-1)-I(i+1,j+1))+abs(I(i,j)-(I(i-2,j-2)+I(i+2,j+2))/2)/2

left_delta_I/2=[abs(I(i-1,j-2)-I(i+1,j))+abs(I(i,j-1)-I(i+2,j+1))]/2

right_delta_I/2=[abs(I(i-2,j-1)-I(i,j+1))+abs(I(i-1,j)-I(i+1,j+2))]/2

反斜方向上:

delta_T=center_delta_T+left_delta_T/2+right_delta_T/2

其中,center_delta_T为像素矩阵中,当前中心像素点所在反斜方向的像素值变化量,left_delta_T为中心像素点左边反斜方向上的像素值变化量,right_delta_T为中心像素点右边反斜方向上的像素值变化量,计算方法为:

center_delta_T=abs(I(i-1,j+1)-I(i+1,j-1))+abs(I(i,j)-(I(i+2,j-2)+I(i-2,j+2))/2)/2

left_delta_T/2=[abs(I(i+1,j-2)-I(i-1,j))+abs(I(i,j-1)-I(i-2,j+1))]/2

right_delta_T/2=[abs(I(i+2,j-1)-I(i,j+1))+abs(I(i+1,j)-I(i-1,j+2))]/2

所述判断当前像素点是否在图像边缘,根据四个方向的变化量,进一步的设置四个阈值direction_TH1、direction_TH2、direction_diff_TH1、direction_diff_TH2作为方向阈值,其中direction_diff_TH1和direction_diff_TH2为两个方向差阈值,据此判断当前像素点处于水平竖直方向还是正斜反斜方向,而direction_TH1和direction_TH2两个方向阈值用于进一步判断当前像素点的具体方向。结合方向阈值,计算出水平竖直方向像素值差值的绝对值diff_H_V_abs以及正斜反斜方向像素值差值的绝对值diff_T_I_abs:

diff_H_V_abs=abs(delta_H-delta_V)/2

diff_T_I_abs=abs(delta_T-delta_I)/2

当diff_H_V_abs-diff_T_I_abs>direction_diff_TH1时,表明该坏点在水平H或竖直V方向上,进一步的,当delta_H-delta_V>direction_TH1时,确定坏点在竖直V方向的边缘上;当delta_V-delta_H>direction_TH1时,确定坏点在水平H方向的边缘上;

当diff_T_I_abs-diff_H_V_abs>direction_diff_TH2时,表明该坏点在正斜I或反斜T方向上,进一步的,当delta_T-delta_I>direction_TH2时,确定坏点在正斜I方向的边缘上;当delta_I-delta_T>direction_TH2时,确定坏点在反斜T方向的边缘上;

当该坏点周围像素差值不满足上面四种情况的时候,则判定该坏点不在图像的边缘,此时坏点不具有方向。

所述判断出当前像素点不在图像边缘时,则在前面4个可靠像素op1~op4中选择像素值与当前像素点的像素值差值即diff1~diff4中的最小值作为当前像素替代值,对当前坏点进行校正。

所述对不同方向的坏点进行处理,判断当前像素点op5是否处于不同方向的边缘,若方向为I方向,则用op1的像素值替代坏点像素值;若方向为V方向,则用op2的像素值替代坏点像素值;若方向为T方向,则用op3的像素值替代坏点像素值;若方向为H方向,则用op4的像素值来替代坏点像素值。

实施例三:

参见图5,首先在(000)步骤,手动设置去坏点模式,本实施例设置为模式1,即本发明方法用于处理单坏点图像。然后(001)以当前像素点为中心,建立5×5Bayer像素矩阵,如图1所示;

接下来进入图5中的(010)步骤进行选点,首先判断当前像素是否为G像素点,以不同的方式在中心以外的24个像素点中选中8个作为参考点,若图1所示矩阵中,当前像素点33为G像素点,则参考像素矩阵选择方式如图2所示;若不是G像素点,则选择图3方式。针对不同的参考点选择结果,如图2和图3所示,当前像素点标记为op5,九个像素点按图2或图3所示,逐个标记为op1~op9,其中由于本发明方法是逐行迭代实现的,因此当前像素点op5之前的像素点op1~op4都是经过处理后的可靠像素。

选择参考像素矩阵之后,一方面开始步骤(011),计算出周围选出的8个像素点与中心像素点的差异值的绝对值,用符号abs表示取绝对值运算,具体的diff1为op1的像素值Iop1与op5的像素值Iop5之差的绝对值,即diff1=abs(Iop1-Iop5);diff2为op2的像素值Iop2与op5的像素值Iop5之差的绝对值,即diff2=abs(Iop2-Iop5);diff3为op3的像素值Iop3与op5的像素值Iop5之差的绝对值,即diff3=abs(Iop3-Iop5);diff4为op4的像素值Iop4与op5的像素值Iop5之差的绝对值,即diff4=abs(Iop4-Iop5);diff6为op6的像素值Iop6与op5的像素值Iop5之差的绝对值,即diff6=abs(Iop6-Iop5);diff7为op7的像素值Iop7与op5的像素值Iop5之差的绝对值,即diff7=abs(Iop7-Iop5);diff8为op8的像素值Iop8与op5的像素值Iop5之差的绝对值,即diff8=abs(Iop8-Iop5);diff9为op9的像素值Iop9与op5的像素值Iop5之差的绝对值,即diff9=abs(Iop9-Iop5)。

在模式1下,该方法仅处理单坏点,不对后面的坏点进行初步预判。模式2下处理二坏点图像时,在对当前坏点进行可靠像素值替换时,将后面的4个人像素点op6、op7、op8、op9中像素值与当前像素值差值最小的像素点也作为坏点像素,和当前判断为坏点的像素点一起进行像素值的替换;模式3下处理三坏点图像时,在对当前坏点进行可靠像素值替换时,将后面的4个人像素点op6、op7、op8、op9中像素值与当前像素值差值最小的两个像素点也作为坏点像素,和当前判断为坏点的像素点一起进行像素值的替换;模式4下处理四坏点图像时,在对当前坏点进行可靠像素值替换时,将后面的4个人像素点op6、op7、op8、op9中像素值与当前像素值差值最小的三个像素点也作为坏点像素,和当前判断为坏点的像素点一起进行像素值的替换。

但是,为了防止去坏点力度过大,避免将图像中亮度较高的正常像素检测为坏点,因此本发明在(011)作差的时候,可以同时进行(100),判断当前像素是否为过亮点或过暗点,只有在当前像素点是亮点或暗点时,才认为当前点是坏点进行去坏点处理。根据前四个可靠像素op1、op2、op3、op4的像素值,判断当前像素点op5是否为亮点或暗点:

亮点:Iop5>max{Iop1,Iop2,Iop3,Iop4}+bright_th;

暗点:Iop5<min{Iop1,Iop2,Iop3,Iop4}-dark_th;

其中bright_th为亮点阈值,当op5像素点的像素值Iop5超过op1、op2、op3、op4四个像素点中最大像素值亮点阈值外时,判断op5为亮点;dark_th为暗点阈值,当op5像素点的像素值Iop5小于op1、op2、op3、op4四个像素点中最小像素值暗点阈值外时,判断op5为暗点。

根据(011)步作差的结果,下面的(101)对该像素点是否为正常的噪声进行判断,通过相机感光度来获得当前图像的噪声强度值noise_used。

最后将diff1~diff4中的最小值min与noise_used作比较,满足min>noise_used并且同时满足该点为过亮点或过暗点时,则判断该像素点为坏点。

判定为坏点后,需要判断该坏点是否在图像的边缘,进入到图5流程中的(110)进行边缘判定。首先计算像素点四个方向上像素值的变化量,分别为水平方向像素值变化量delta_H、竖直方向像素值变化量delta_V、正斜方向像素值变化量delta_I、反斜方向像素值变化量delta_T,具体计算如下所示:

delta_H=center_delta_H+top_delta_H/2+bot_delta_H/2

其中,center_delta_H为图1所示矩阵中,当前中心像素op5(即图1中33像素点)所在行水平方向的像素值变化量,top_delta_H为图1中中心像素点前一行水平方向上的像素值变化量,bot_delta_H为图1中中心像素点后一行水平方向上的像素值变化量,以I(i,j)表示当前中心像素点(i,j)的像素值,i表示图1所示矩阵中的i行,j表示图1矩阵中的j列,abs表示取绝对值计算,具体计算方法为:

center_delta_H=abs(I(i,j-1)-I(i,j+1))+abs(I(i,i)-(I(i,j-2)+I(i,j+2))/2)/2

top_delta_H/2=[abs(I(i-1,j-1)-I(i-1,j+1))+abs(I(i-1,j)-(I(i-1,j-2)+I(i-1,j+2))/2)/2]/2

bot_delta_H/2=[abs(I(i+1,j-1)-I(i+1,j+1))+abs(I(i+1,j)-(I(i+1,j-2)+I(i+1,j+2))/2)/2]/2

同理,竖直方向上:

delta_V=center_delta_V+left_delta_V/2+right_delta_V/2

其中,center_delta_V为图1所示矩阵中,当前中心像素op5(即图1中33像素点)所在列竖直方向的像素值变化量,left_delta_V为图1中中心像素点前一列竖直方向上的像素值变化量,right_delta_V为图1中中心像素点后一列竖直方向上的像素值变化量,计算方法为:

center_delta_V=abs(I(i-1,j)-I(i+1,j))+abs(I(i,j)-(I(i-2,j)+I(i+2,j))/2)/2

left_delta_V/2=[abs(I(i-1,j-1)-I(i+1,j-1))+abs(I(i,j-1)-(I(i-2,j-1)+I(i+2,j-1))/2)/2]/2

right_delta_V/2=[abs(I(i-1,j+1)-I(i+1,j+1))+abs(I(i,j+1)-(I(i-2,j+1)+I(i+2,j+1))/2)/2]/2

正斜方向上:

delta_I=center_delta_I+left_delta_I/2+right_delta_I/2

其中,center_delta_I为图1所示矩阵中,当前中心像素op5(即图1中33像素点)所在正斜方向的像素值变化量,left_delta_I为图1中中心像素点左边正斜方向上的像素值变化量,right_delta_I为图1中中心像素点右边正斜方向上的像素值变化量,计算方法为:

center_delta_I=abs(I(i-1,j-1)-I(i+1,j+1))+abs(I(i,j)-(I(i-2,j-2)+I(i+2,j+2))/2)/2

left_delta_I/2=[abs(I(i-1,j-2)-I(i+1,j))+abs(I(i,j-1)-I(i+2,j+1))]/2

right_delta_I/2=[abs(I(i-2,j-1)-I(i,j+1))+abs(I(i-1,j)-I(i+1,j+2))]/2

反斜方向上:

delta_T=center_delta_T+left_delta_T/2+right_delta_T/2

其中,center_delta_T为图1所示矩阵中,当前中心像素op5(即图1中33像素点)所在反斜方向的像素值变化量,left_delta_T为图1中中心像素点左边反斜方向上的像素值变化量,right_delta_T为图1中中心像素点右边反斜方向上的像素值变化量,计算方法为:

center_delta_T=abs(I(i-1,j+1)-I(i+1,j-1))+abs(I(i,j)-(I(i+2,j-2)+I(i-2,j+2))/2)/2

left_delta_T/2=[abs(I(i+1,j-2)-I(i-1,j))+abs(I(i,j-1)-I(i-2,j+1))]/2

right_delta_T/2=[abs(I(i+2,j-1)-I(i,j+1))+abs(I(i+1,j)-I(i-1,j+2))]/2

接下来设置四个方向阈值direction_TH1、direction_TH2、direction_diff_TH1、direction_diff_TH2,其中direction_diff_TH1和direction_diff_TH2为两个方向差阈值,据此判断当前像素点处于水平竖直方向还是正斜反斜方向,而direction_TH1和direction_TH2两个方向阈值用于进一步判断当前像素点的具体方向。最终判断出当前像素在某一方向上。

该方法根据direction_diff_TH1、direction_diff_TH2判断出该坏点是处于水平竖直边缘,然后再根据direction_TH1、direction_TH2两个阈值判断该坏点具体在水平竖直方向中的哪一个,或者是正斜反斜方向中的某一个,具体方法如下:

首先根据四个方向上的像素值变化量,结合方向阈值,计算出水平竖直方向像素值差值的绝对值diff_H_V_abs以及正斜反斜方向像素值差值的绝对值diff_T_I_abs:

diff_H_V_abs=abs(delta_H-delta_V)/2

diff_T_I_abs=abs(delta_T–delta_I)/2

当diff_H_V_abs-diff_T_I_abs>direction_diff_TH1时,表明该坏点在水平H或竖直V方向上,进一步的,当delta_H-delta_V>direction_TH1时,确定坏点在竖直V方向的边缘上;当delta_V-delta_H>direction_TH1时,确定坏点在水平H方向的边缘上。

当diff_T_I_abs-diff_H_V_abs>direction_diff_TH2时,表明该坏点在正斜I或反斜T方向上,进一步的,当delta_T-delta_I>direction_TH2时,确定坏点在正斜I方向的边缘上;当delta_I-delta_T>direction_TH2时,确定坏点在反斜T方向的边缘上。

当该坏点周围像素差值不满足上面四种情况的时候,则判定该坏点不在图像的边缘,此时坏点不具有方向。

判断出当前坏点是否在图像的边缘后,就可以进入到(111)步,对当前的坏点op5进行赋值,用前面的4个可靠像素中的对应值对坏点进行赋值。当坏点不具有方向,即不在图像边缘时,从前面四个可靠像素点的像素值中选择与当前像素点op5像素的差异值的绝对值最小的一个像素值,替代当前坏点的像素值;当坏点在图像的边缘,经过方向判定后,若方向为正斜I方向,则用op1的像素值替代坏点像素值;若方向为竖直V方向,则用op2的像素值替代坏点像素值;若方向为反斜T方向,则用op3的像素值替代坏点像素值;若方向为水平H方向,则用op4的像素值来替代坏点像素值。

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