发明内容
本发明的目的是提供一种图像坏点的检测方法,以避免根据检测窗口中单一的阈值信息判断待检测像素是否为图像坏点,无法检测出行列坏点的问题,既实现了检测图像中是否存在行列坏点,又提高了检测图像坏点的准确性。
本发明实施例提供了一种图像坏点的检测方法,该方法包括:
针对检测图像,将待检测像素作为检测窗口的中心,获取检测窗口内所述待检测像素以及与所述待检测像素颜色相同的同色像素的像素值,并分别确定所述待检测像素与检测窗口内每一个同色像素的像素差值;统计所述像素差值大于第一像素差值阈值的同色像素的数量,作为第一数量值;
确定所述检测窗口内所述待检测像素以及与所述待检测像素在同一行、且位于所述待检测像素右侧的同色像素的像素值均不在设定的像素值阈值范围内,且所述确定的待检测像素与所述待检测像素右侧的同色像素的像素差值的绝对值均小于设定的绝对值阈值,则确定所述待检测像素为所述检测图像的疑似行坏点;
确定所述检测窗口内所述待检测像素以及与所述待检测像素在同一列、且位于所述待检测像素下方的同色像素的像素值均不在设定的像素值阈值范围内,且所述确定的待检测像素与所述待检测像素下方的同色像素的像素值的差值的绝对值小于设定的绝对值阈值,则确定所述待检测像素为所述检测图像的疑似列坏点;
确定所述第一数量值大于设定的第一数量阈值,且确定所述待检测像素为所述检测图像的疑似行坏点,则确定所述待检测像素为所述检测图像的行坏点;确定所述第一数量值大于设定的第一数量阈值,且确定所述待检测像素为所述检测图像的疑似列坏点,则确定所述待检测像素为所述检测图像的列坏点。
上述实施例中通过检测窗口中待检测像素以及待检测像素的同色像素的像素值,以及待检测像素与同色像素的像素差值确定检测窗口中是否存在疑似行列坏点;根据待检测像素与检测窗口内每一个同色像素的像素差值确定该待检测像素是否为行列坏点,避免了根据检测窗口中单一的阈值信息判断待检测像素是否为图像坏点,既实现了检测图像中是否存在行列坏点,又提高了检测图像坏点的准确性。
本发明实施例中该方法还包括:
确定所述第一数量值不大于设定的第一数量阈值;和/或,确定所述待检测像素不是疑似行坏点,也不是疑似列坏点;
触发对所述待检测像素进行常规坏点检测。
本发明实施例中所述对待检测像素进行常规坏点检测,具体包括:
统计所述待检测像素与检测窗口内每一个同色像素的像素差值大于第二像素差值阈值的同色像素的数量,作为第二数量值,若所述第二数量值大于设定的第二数量阈值,则确定所述待检测像素为常规坏点,否则确定所述待检测像素为正常像素,触发检测窗口移动。
上述实施例中当确定待检测像素不满足行列坏点确定条件时,对待检测像素进行常规坏点检测,使待检测像素的检测更准确。
本发明实施例中确定所述待检测像素为行坏点之后,则将所述检测窗口内所述待检测像素的纵向方向梯度值、左对角线方向梯度值、右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向;将确定的参考方向上与所述待检测像素相距2p个像素单位的一对同色像素的像素值取平均值,将确定的平均值作为待检测像素校正后的像素值,其中p为正整数;
或,确定所述待检测像素为列坏点之后,则将所述检测窗口内所述待检测像素的横向方向梯度值、左对角线方向梯度值、右对角线方向梯度值进行比较、确定梯度值最小的方向为参考方向;将确定的参考方向上与所述待检测像素相距2p个像素单位的一对同色像素的像素值取平均值,将确定的平均值作为待检测像素校正后的像素值,其中p为正整数;
或,确定所述待检测像素是行坏点,也是列坏点之后,则将所述检测窗口内所述待检测像素的左对角线方向梯度值、右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向;将确定的参考方向上与所述待检测像素相距2p个像素单位的一对同色像素的像素值取平均值,将确定的平均值作为待检测像素校正后的像素值,其中p为正整数;
或,确定所述待检测像素不是行坏点,也不是列坏点之后,则将所述检测窗口内所述待检测像素的横向方向梯度值、纵向方向梯度值、左对角线方向梯度值、右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向;将确定的参考方向上与所述待检测像素相距2p个像素单位的一对同色像素的像素值取平均值,将确定的平均值作为待检测像素校正后的像素值,其中p为正整数。
上述实施例中当确定待检测像素为图像坏点后,根据图像坏点类型对待检测像素进行校正,使校正后的待检测像素的像素值与待检测像素的实际像素值更加接近。
本发明实施例中确定方向梯度值的方法包括:
确定所述检测窗口中与待检测像素在同一行、且与待检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为待检测像素的横向方向梯度值;
确定所述检测窗口中与待检测像素在同一列、且与待检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为待检测像素的纵向方向梯度值;
确定所述检测窗口中左对角线上、且与所述待检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为待检测像素的左对角线方向梯度值;
确定所述检测窗口中右对角线上、且与所述待检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为待检测像素的右对角线方向梯度值。
上述实施例中根据待检测像素确定的方向梯度值中的最小方向梯度进行修正,有利于保留图像边缘细节。
本发明实施例提供了一种图像坏点的检测装置,该装置包括:
像素值统计单元,用于针对检测图像,将待检测像素作为检测窗口的中心,获取检测窗口内所述待检测像素以及与所述待检测像素颜色相同的同色像素的像素值,并分别确定所述待检测像素与检测窗口内每一个同色像素的像素差值;统计所述像素差值大于第一像素差值阈值的同色像素的数量,作为第一数量值;
疑似行坏点确定单元,用于确定所述检测窗口内所述待检测像素以及与所述待检测像素在同一行、且位于所述待检测像素右侧的同色像素的像素值均不在设定的像素值阈值范围内,且所述确定的待检测像素与所述待检测像素右侧的同色像素的像素差值的绝对值均小于设定的绝对值阈值,则确定所述待检测像素为所述检测图像的疑似行坏点;
疑似列坏点确定单元,确定所述检测窗口内所述待检测像素以及与所述待检测像素在同一列、且位于所述待检测像素下方的同色像素的像素值均不在设定的像素值阈值范围内,且所述确定的待检测像素与所述待检测像素下方的同色像素的像素值的差值的绝对值小于设定的绝对值阈值,则确定所述待检测像素为所述检测图像的疑似列坏点;
行列坏点确定单元,用于确定所述第一数量值大于设定的第一数量阈值,且确定所述待检测像素为所述检测图像的疑似行坏点,则确定所述待检测像素为所述检测图像的行坏点;确定所述第一数量值大于设定的第一数量阈值,且确定所述待检测像素为所述检测图像的疑似列坏点,则确定所述待检测像素为所述检测图像的列坏点。
上述实施例中通过检测窗口中待检测像素以及待检测像素的同色像素的像素值,以及待检测像素与同色像素的像素差值确定检测窗口中是否存在疑似行列坏点;根据待检测像素与检测窗口内每一个同色像素的像素差值确定该待检测像素是否为行列坏点,避免了根据检测窗口中单一的阈值信息判断待检测像素是否为坏点,既实现了检测图像传感器中是否存在行列坏点,又提高了检测图像中坏点的准确性。
本发明实施例中所述行列坏点确定单元,还用于:
确定所述第一数量值不大于设定的第一数量阈值;和/或,确定所述待检测像素不是疑似行坏点,也不是疑似列坏点;触发对所述待检测像素进行常规坏点检测。
该装置还包括常规坏点检测单元,用于:
统计所述待检测像素与检测窗口内每一个同色像素的像素差值大于第二像素差值阈值的同色像素的数量,作为第二数量值,若所述第二数量值大于设定的第二数量阈值,则确定所述待检测像素为常规坏点,否则确定所述待检测像素为正常像素,触发检测窗口移动。
上述实施例中当确定待检测像素不满足行列坏点确定条件时,对待检测像素进行常规坏点检测,使待检测像素的检测更准确。
本发明实施例中该装置还包括坏点校正单元,具体用于:
确定所述待检测像素为行坏点之后,则将所述检测窗口内所述待检测像素的纵向方向梯度值、左对角线方向梯度值、右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向;将确定的参考方向上与所述待检测像素相距2p个像素单位的一对同色像素的像素值取平均值,将确定的平均值作为待检测像素校正后的像素值,其中p为正整数;
或,确定所述待检测像素为列坏点之后,则将所述检测窗口内所述待检测像素的横向方向梯度值、左对角线方向梯度值、右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向;将确定的参考方向上与所述待检测像素相距2p个像素单位的一对同色像素的像素值取平均值,将确定的平均值作为待检测像素校正后的像素值,其中p为正整数;
或,确定所述待检测像素是行坏点,也是列坏点之后,则将所述检测窗口内所述待检测像素的左对角线方向梯度值、右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向;将确定的参考方向上与所述待检测像素相距2p个像素单位的一对同色像素的像素值取平均值,将确定的平均值作为待检测像素校正后的像素值,其中p为正整数;
或,确定所述待检测像素不是行坏点,也不是列坏点之后,则将所述检测窗口内所述待检测像素的横向方向梯度值、纵向方向梯度值、左对角线方向梯度值、右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向;将确定的参考方向上与所述待检测像素相距2p个像素单位的一对同色像素的像素值取平均值,将确定的平均值作为待检测像素校正后的像素值,其中p为正整数。
上述实施例中当确定待检测像素为图像坏点后,根据图像坏点类型对待检测像素进行校正,使校正后的待检测像素的像素值与待检测像素的实际像素值更加接近。
本发明实施例中所述坏点校正单元具体用于:
确定所述检测窗口中与待检测像素在同一行、且与待检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为待检测像素的横向方向梯度值;
确定所述检测窗口中与待检测像素在同一列、且与待检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为待检测像素的纵向方向梯度值;
确定所述检测窗口中左对角线上、且与所述待检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为待检测像素的左对角线方向梯度值;
确定所述检测窗口中右对角线上、且与所述待检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为待检测像素的右对角线方向梯度值。
上述实施例中根据待检测像素确定的方向梯度值中的最小方向梯度进行修正,有利于保留图像边缘细节。
具体实施方式
本发明提供了一种图像坏点的检测方法,通过检测窗口中待检测像素以及待检测像素的同色像素的像素值,以及待检测像素与同色像素的像素差值确定检测窗口中是否存在疑似行列坏点;根据待检测像素与检测窗口内每一个同色像素的像素差值确定该待检测像素是否为行列坏点,避免了根据检测窗口中单一的阈值信息判断待检测像素是否为图像坏点,既实现了检测图像传感器中是否存在行列坏点,又提高了检测图像坏点的准确性。
下面结合说明书附图对本发明进行进一步说明。
如图2所示,为本发明实施例中一种图像坏点的检测方法,该方法包括:
步骤201:针对检测图像,将待检测像素作为检测窗口的中心,获取检测窗口内待检测像素以及与待检测像素颜色相同的同色像素的像素值,并分别确定待检测像素与检测窗口内每一个同色像素的像素差值;统计像素差值大于第一像素差值阈值的同色像素的数量,作为第一数量值;
步骤202:确定检测窗口内待检测像素以及与待检测像素在同一行、且位于待检测像素右侧的同色像素的像素值均不在设定的像素值阈值范围内,且确定待检测像素与待检测像素右侧的同色像素的像素差值的绝对值均小于设定的绝对值阈值,则确定待检测像素为检测图像的疑似行坏点;
步骤203:确定检测窗口内待检测像素以及与待检测像素在同一列、且位于待检测像素下方的同色像素的像素值均不在设定的像素值阈值范围内,且确定的待检测像素与待检测像素下方的同色像素的像素值的差值的绝对值小于设定的绝对值阈值,则确定待检测像素为检测图像的疑似列坏点;
步骤204:确定第一数量值大于设定的第一数量阈值,且确定待检测像素为检测图像的疑似行坏点,则确定待检测像素为检测图像的行坏点;确定第一数量值大于设定的第一数量阈值,且确定待检测像素为检测图像的疑似列坏点,则确定待检测像素为检测图像的列坏点。
其中,步骤201中,将待检测像素作为检测窗口的中心,获取检测窗口内所述待检测像素以及与所述待检测像素颜色相同的同色像素的像素值,具体包括:采用拜耳滤镜,使传感器阵列上每一点只能采集到一种波长的光,光信号通过拜耳滤镜滤波后将光信号转化为电信号,经过数字化处理后,得到图像传感器上每一光线采集的点对应的像素。如图3所示,为图像传感器中的每个传感器经过光电信号转化后,每个传感器对应的像素颜色的4种排列方式。
将待检测像素作为检测窗口的中心,具体包括:检测窗口的大小为(4m+1)*(4m+1)大小的窗口,其中m为正整数。当检测窗口的部分窗口位于待测图像画面之外时,进行自动补图处理。其中,每次进行补图处理时,所补图像为2n行和/或2n列像素,n为正整数。如当检测窗口上部或下部部分窗口位于待检测图像之外时,每次复制2n行像素,且复制后的相邻两行的像素的排列顺序与原待检测图像的像素的排列方式相同;和/或,当检测窗口左侧或右侧部分窗口位于待检测图像之外时,每次复制2n列像素,且复制后的相邻两列的像素的排列顺序与原待检测图像的像素的排列方式相同;使检测窗口的全部窗口位于补图处理后的图像中。
以检测窗口的大小为5*5为例,当待检测像素为一帧图像的第一行第一列时,检测窗口将第一行第一列的像素作为检测窗口的中心,检测到检测窗口上侧部分位于待检测图像外,则将第一行以及第二行像素复制至第一行像素的上方,且复制后的第二行像素与原第一行像素相接触,形成行复制图像;继续对检测窗口进行检测,检测到检测窗口左侧部分位于位于待检测图像外,则将行复制图像的第一列和第二列复制至第一列像素的左侧,且复制后的第二列像素与原第一列像素相接触,形成列复制图像。
步骤201中,通过式(1)和式(2)确定待检测像素与同色像素的像素差值是否大于第一像素差值阈值:
其中,pBayer[0]为待检测像素的像素值,pBayer[2x*W+2y]为检测窗口内与待检测像素颜色相同的同色像素的像素值,且pBayer[0]>pBayer[2x*W+2y],reg_hvdpc_diffval为第一像素差值阈值,x、y为整数,W为待检测像素所在帧图像的宽度,m为待检测窗口控制参数。
其中,pBayer[0]为待检测像素的像素值,pBayer[2x*W+2y]为检测窗口内与待检测像素颜色相同的同色像素的像素值,且pBayer[2x*W+2y]>pBayer[0],reg_hvdpc_diffval为第一像素差值阈值,x、y为整数,W为待检测像素所在帧图像的宽度,m为待检测窗口控制参数。
统计所述像素差值大于第一像素差值阈值的同色像素的数量,即满足式(1)或式(2)时(x,y)组合数,作为第一数量值,判断第一数量值是否大于设定的第一数量阈值。
步骤202中,确定检测窗口内所述待检测像素以及与待检测像素在同一行的右侧同色像素的像素值均不在设定的像素值阈值范围内,且确定待检测像素与同一行的右侧同色像素的像素差值的绝对值均小于设定的绝对值阈值,具体包括:对于检测窗口内待检测像素以及与待检测像素在同一行的右侧同色像素i(0≤i≤2m,且i为偶数)的像素值,若满足式(3),则表示待检测像素以及与待检测像素同行的右侧同色像素的亮度都很小,且与待检测像素同行的右侧同色像素与待检测像素的像素值的差别很小:
其中,pBayer[i]为与待检测像素位于同一行的右侧同色像素的像素值,reg_hvdpc_lowval为设定的像素值阈值的下限值,reg_hvdpc_sameval为设定的绝对值阈值,pBayer[0]为待检测像素的像素值。
或,对于检测窗口内待检测像素以及与待检测像素在同一行的右侧同色像素i(0≤i≤2m,且i为偶数)的像素值,若满足式(4),则表示待检测像素以及与待检测像素同行的右侧同色像素的亮度都很大,且与待检测像素同行的右侧同色像素与待检测像素的像素值的差别很小:
其中,pBayer[i]为与待检测像素位于同一行的右侧同色像素的像素值,reg_hvdpc_highval为设定的像素值阈值的上限值,reg_hvdpc_sameval为设定的绝对值阈值,pBayer[0]为待检测像素的像素值。
当待检测像素以及与待检测像素同行、且位于待检测像素右侧的同色像素均满足式(3)或式(4)时,则确定该待检测像素为疑似行坏点。
步骤203中,确定检测窗口内待检测像素以及与待检测像素在同一列的下方同色像素的像素值均不在设定的像素值阈值范围内,且确定待检测像素与同一列的下方同色像素的像素值的差值的绝对值小于设定的绝对值阈值,具体包括:对于检测窗口内待检测像素以及与待检测像素在同一列的下方同色像素i(0≤i≤2m,且i为偶数)的像素值,若满足式(5),则表示待检测像素以及与待检测像素同列的下侧同色像素的亮度都很小,且与待检测像素同列的下侧同色像素与待检测像素的像素值的差别很小:
其中,pBayer[i*W]为与待检测像素位于同一列的下方同色像素的像素值,reg_hvdpc_lowval为设定的像素值阈值的下限值,reg_hvdpc_sameval为设定的绝对值阈值,pBayer[0]为待检测像素的像素值,W为为待检测像素所在帧图像的宽度。
或,对于检测窗口内待检测像素以及与待检测像素在同一列的下方同色像素i(0≤i≤2m,其i为偶数)的像素值,若满足式(6),则表示待检测像素以及与待检测像素同列的下侧同色像素的亮度都很大,且与待检测像素同列的下侧同色像素与待检测像素的像素值的差别很小:
其中,pBayer[i*W]为与待检测像素位于同一列的下方同色像素的像素值,reg_hvdpc_highval为设定的像素值阈值的上限值,reg_hvdpc_sameval为设定的绝对值阈值,pBayer[0]为待检测像素的像素值。
当待检测像素以及与待检测像素同列、且位于待检测像素下侧的同色像素均满足式(5)或式(6)时,则确定该待检测像素为疑似列坏点。
步骤204中具体包括:判断第一数量值是否大于设定的第一数量阈值,当确定第一数量值大于设定的第一数量阈值,且确定待检测像素为疑似行图像坏点,则确定该待检测像素为行坏点;和/或,当确定第一数量值大于设定的第一数量阈值,且确定待检测像素为疑似列坏点,则确定该待检测像素为列坏点。
当确定第一数量值不大于设定的第一数量阈值,则进行常规坏点检测。当确定确定第一数量值大于设定的第一数量阈值,但确定待检测像素不是疑似行坏点,且不是疑似列坏点,则进行常规坏点检测。
对待检测像素进行常规坏点检测,具体包括:统计像素差值大于第二像素差值阈值的同色像素的数量,作为第二数量值,判断第二数量值是否大于设定的第二数量阈值;若第二数量值大于设定的第二数量阈值,则确定待检测像素为常规坏点,否则确定待检测像素为正常像素,触发检测窗口移动。其中,通常情况下第二像素差值阈值大于第一像素差值阈值。
当确定待检测像素为坏点后,对待检测像素进行校正,具体包括:当确定待检测像素为常规坏点后,确定待检测像素的横向方向梯度值、纵向方向梯度值、左对角线方向梯度值、右对角线方向梯度值,选取上述4个方向中方向梯度值最小的方向为参考方向;确定待检测像素为行坏点后,确定待检测像素的纵向方向梯度值、左对角线方向梯度值、右对角线方向梯度值,选取上述3个方向中方向梯度值最小的方向为参考方向;确定待检测像素为列坏点后,确定待检测像素的横向方向梯度值、左对角线方向梯度值、右对角线方向梯度值,选取上述3个方向中方向梯度值最小的方向为参考方向;确定待检测像素既是行坏点,又是列坏点后,确定待检测像素的左对角线方向梯度值、右对角线方向梯度值,选取上述2个方向中方向梯度值最小的方向为参考方向。将确定的参考方向上与待检测像素相距2p个像素单位的同色像素的像素值取平均值,将取得的平均值作为待检测像素校正后的像素值,其中p为正整数。可以将检测窗口中参考方向上与待检测像素相距2p个像素单位的两个同色像素的像素值取平均值,作为待检测像素校正后的像素值;也可以将检测窗口中参考方向上与待检测像素同色的全部像素的像素值取平均值,作为待检测像素校正后的像素值。
以将检测窗口中参考方向上与待检测像素相距2p个像素单位的两个同色像素的像素值取平均值,作为待检测像素校正后的像素值为例,若待检测像素确定的参考方向为横向方向,则待检测像素校正后的像素值如式(7)所示:
dpc_pBayer=(pBayer[2p]+pBayer[-2p])/2(7)
其中,dpc_pBayer为待检测像素校正后的像素值,pBayer[2p]和pBayer[-2p]为待检测像素横向方向上与待检测像素相距2p个像素单位的两个同色像素的像素值。
若待检测像素确定的参考方向为纵向方向,则待检测像素校正后的像素值如式(8)所示:
dpc_pBayer=(pBayer[2p*W]+pBayer[-2p*W])/2(8)
其中,dpc_pBayer为待检测像素校正后的像素值,pBayer[2p*W]和pBayer[-2p*W]为待检测像素纵向方向上与待检测像素相距2p个像素单位的两个同色像素的像素值,W为待检测像素所在帧图像的宽度。
若待检测像素确定的参考方向为左对角线方向,则待检测像素校正后的像素值如式(9)所示:
dpc_pBayer=(pBayer[2p*(W+1)]+pBayer[-2p*(W+1)])/2(9)
其中,dpc_pBayer为待检测像素校正后的像素值,pBayer[2p*(W+1)]和pBayer[-2p*(W+1)]为待检测像素左对角线方向上与待检测像素相距2p个像素单位的两个同色像素的像素值,W为待检测像素所在帧图像的宽度。
若待检测像素确定的参考方向为右对角线方向,则待检测像素校正后的像素值如式(10)所示:
dpc_pBayer=(pBayer[2p*(W-1)]+pBayer[-2p*(W-1)])/2(10)
其中,dpc_pBayer为待检测像素校正后的像素值,pBayer[2p*(W-1)]和pBayer[-2p*(W-1)]为待检测像素右对角线方向上与待检测像素相距2p个像素单位的两个同色像素的像素值,W为待检测像素所在帧图像的宽度。
当对待检测像素校正完成后,将校正后的像素值写入待检测像素中,使下一检测窗口获取当前检测窗口中待检测像素的像素值为校正后的像素值,并触发检测窗口移动。
确定待检测像素的方向梯度值的方法如下:如式(11)所示确定检测窗口中与待检测像素在同一行、且与待检测像素相距2p个像素单位的两个同色像素的像素差值的绝对值,将该像素差值的绝对值作为待检测像素的横向方向梯度值;
hdir=|pBayer[2p]-pBayer[-2p]|(11)
其中,hdir为待检测像素的横向方向梯度值,pBayer[2p]和pBayer[-2p]为与待检测像素相距2p个像素单位的两个同色像素的像素值。
如式(12)所示确定检测窗口中与待检测像素在同一列、且与待检测像相距2p个像素单位的两个同色像素的像素差值的绝对值,将该像素差值的绝对值作为待检测像素的纵向方向梯度值;
vdir=|pBayer[2p*W]-pBayer[-2p*W]|(12)
其中,vdir为待检测像素的纵向方向梯度值,pBayer[2p*W]和pBayer[-2p*W]为与待检测像素相距2p个像素单位的两个同色像素的像素值。
如式(13)所示确定检测窗口左对角线上、且与待检测像素相距2p个像素单位的两个同色像素的像素差值的绝对值,将该像素差值的绝对值作为待检测像素的左对角线方向梯度值;
ldir=|pBayer[2p*(W+1)]-pBayer[-2p*(W+1)]|(13)
其中,ldir为待检测像素的纵向方向梯度值,pBayer[2p*(W+1)]和pBayer[-2p*(W+1)]为与待检测像素相距2p个像素单位的两个同色像素的像素值。
如式(14)所示,确定检测窗口右对角线上、且与待检测像素相距2p个像素单位的两个同色像素的像素差值的绝对值,将该像素差值的绝对值作为待检测像素的右对角线方向梯度值;
rdir=|pBayer[2p*(W-1)]-pBayer[-2p*(W-1)]|(14)
其中,rdir为待检测像素的纵向方向梯度值,pBayer[2p*(W-1)]和pBayer[-2p*(W-1)]为与待检测像素相距2p个像素单位的两个同色像素的像素值。
较佳地,上述实施例中在计算方向梯度值和校正后像素值时,p取1时,是一种较优的实施方式,但是p为其他整数值,且也能满足本发明实施例要求的的取值,也在本发明欲保护的范围内。
本发明实施例中,检测窗口按照从左至右,从上至下的顺序移动,确定疑似行坏点和疑似列坏点时,检测窗口中与待检测像素同行、且位于待检测像素左侧的像素,以及与待检测像素同列、且位于待检测像素上侧的像素都是校正后的像素,或不是坏点的像素,因此本发明实施例中对待检测像素进行检测时,验证与待检测像素同行、且位于待检测像素右侧的像素,以及与待检测像素同列、且位于待检测像素下侧的像素;当检测窗口按照其他顺序进行移动,对待检测像素进行检测时,根据未检测的像素确定待检测像素是否为图像坏点。
如图4所示,为本发明实施例中一种行列坏点的检测方法,假设待检测窗口的大小为5*5像素,该方法包括:
步骤401:针对检测图像,将待检测像素作为检测窗口的中心;
步骤402:判断检测窗口上部或下部部分窗口是否位于待检测图像之外,若有,则执行步骤403,否则执行步骤404;
步骤403:在检测窗口上部或下部部分窗口复制2行像素,且复制的两行的像素的排列顺序与原待检测图像的像素的排列方式相同;
步骤404:判断检测窗口左侧或右侧部分窗口是否位于待检测图像之外,若有,则执行步骤405,否则执行步骤406;
步骤405:在检测窗口左侧或右侧部分窗口复制2列像素,且复制的两列的像素的排列顺序与原待检测图像的像素的排列方式相同;
步骤406:获取检测窗口内待检测像素以及与待检测像素颜色相同的同色像素的像素值;
步骤407:分别确定待检测像素与检测窗口内每一个同色像素的像素差值;
步骤408:统计像素差值大于第一像素差值阈值的同色像素的数量,作为第一数量值;
步骤409:判断第一数量值是否大于设定的第一数量阈值,若大于,则执行步骤410,否则执行步骤412;
步骤410:判断待检测像素是否疑似行坏点,若不是,则执行步骤411,否则执行步骤413;
步骤411:判断待检测像素是否疑似列坏点,若不是,则执行步骤412,否则执行步骤414;
步骤412:对待检测像素进行常规坏点检测,并结束本流程;
步骤413:确定待检测像素为行坏点,将行坏点标志置为1,并结束本流程;
步骤414:确定待检测像素为列坏点,将列坏点标志置为1,并结束本流程。
如图5所示,为本发明实施例中对待检测像素进行行列坏点检测后,需要进行常规坏点检测的方法流程示意图,该方法包括:
步骤501:对待检测像素进行常规坏点检测;
步骤502:统计像素差值大于第二像素差值阈值的同色像素的数量,作为第二数量值;
步骤503:判断第二数量值是否大于设定的第二数量阈值,若不大于则执行步骤504,否则执行步骤505;
步骤504:确定待检测像素为正常像素,触发检测窗口移动,并结束本流程;
步骤505:确定待检测像素为常规坏点;
步骤506:将待检测像素的横向方向梯度值、纵向方向梯度值、左对角线方向梯度值、右对角线方向梯度值中方向梯度值最小的方向为参考方向;
步骤507:将确定的参考方向上与待检测像素相距2个像素单位的2个同色像素的像素值取平均值,将取得的平均值作为待检测像素校正后的像素值;
步骤508:将校正后的像素值写入待检测像素,并结束本流程。
如图6所示,为本发明实施例中确定待检测像素为行列坏点后,对待检测像素进行校正的方法,该方法包括:
步骤601:确定待检测像素为行列坏点;
步骤602:判断行坏点标志,和列坏点标识是否同时置为1,若是,则执行步骤603,否则执行步骤604;
步骤603:确定待检测像素的左对角线方向梯度值、右对角线方向梯度值,选取方向梯度值最小的方向为参考方向,并执行步骤607;
步骤604:判断行坏点标志是否置为1,若是,则执行步骤605,否则执行步骤606;
步骤605:确定待检测像素的纵向方向梯度值、左对角线方向梯度值、右对角线方向梯度值,选取方向梯度值最小的方向为参考方向,并执行步骤607;
步骤606:确定待检测像素的横向方向梯度值、左对角线方向梯度值、右对角线方向梯度值,选取方向梯度值最小的方向为参考方向;
步骤607:将确定的参考方向上与待检测像素相距2个像素单位的2个同色像素的像素值取平均值、将取得的平均值作为待检测像素校正后的像素值;
步骤608:将校正后的像素值写入待检测像素,并结束本流程。
基于同一发明构思,本发明实施例中还提供了一种图像坏点的检测装置,由于该装置解决问题的原理与本发明实施例一种图像坏点的检测方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图7所示,为本发明实施例中一种图像坏点的检测装置,该装置包括像素值统计单元701,疑似行坏点确定单元702,疑似列坏点确定单元703,行列坏点确定单元704:
像素值统计单701,用于针对检测图像,将待检测像素作为检测窗口的中心,获取检测窗口内待检测像素以及与待检测像素颜色相同的同色像素的像素值,并分别确定待检测像素与检测窗口内每一个同色像素的像素差值;统计像素差值大于第一像素差值阈值的同色像素的数量,作为第一数量值;
疑似行坏点确定单元702,用于确定检测窗口内待检测像素以及与待检测像素在同一行、且位于待检测像素右侧的同色像素的像素值均不在设定的像素值阈值范围内,且确定的待检测像素与待检测像素右侧的同色像素的像素差值的绝对值均小于设定的绝对值阈值,则确定待检测像素为检测图像的疑似行坏点;
疑似列坏点确定单元703,确定检测窗口内所述待检测像素以及与待检测像素在同一列、且位于待检测像素下方的同色像素的像素值均不在设定的像素值阈值范围内,且确定的待检测像素与待检测像素下方的同色像素的像素值的差值的绝对值小于设定的绝对值阈值,则确定待检测像素为检测图像的疑似列坏点;
行列坏点确定单元704,用于确定第一数量值大于设定的第一数量阈值,且确定待检测像素为检测图像的疑似行坏点,则确定待检测像素为行坏点;确定第一数量值大于设定的第一数量阈值,且确定待检测像素为检测图像的疑似列坏点,则确定待检测像素为检测图像的列坏点。
其中,像素值统计单元701,具体用于:采用拜耳滤镜,使每个传感器只能采集到一种波长的光,光信号通过拜耳滤镜滤波后将光信号转化为电信号,经过数字化处理后,得到每个图像传感器对应的像素。
检测窗口的大小为(4m+1)*(4m+1)大小的窗口,其中m为正整数。当检测窗口的部分窗口位于待测图像画面之外时,进行自动补图处理。其中,每次进行补图处理时,所补图像为2n行和/或2n列像素,n为正整数。如当检测窗口上部或下部部分窗口位于待检测图像之外时,每次复制2n行像素,且复制后的相邻两行的像素的排列顺序与原待检测图像的像素的排列方式相同;和/或,当检测窗口左侧或右侧部分窗口位于待检测图像之外时,每次复制2n列像素,且复制后的相邻两列的像素的排列顺序与原待检测图像的像素的排列方式相同;使检测窗口的全部窗口位于补图处理后的图像中。
像素值统计单元701,具体用于:通过式(1)和式(2)确定待检测像素与同色像素的像素差值是否大于第一像素差值阈值。
其中,pBayer[0]为待检测像素的像素值,pBayer[2x*W+2y]为检测窗口内与待检测像素颜色相同的同色像素的像素值,且pBayer[0]>pBayer[2x*W+2y],reg_hvdpc_diffval为第一像素差值阈值,x、y为整数,W为待检测像素所在帧图像的宽度,m为待检测窗口控制参数。
其中,pBayer[0]为待检测像素的像素值,pBayer[2x*W+2y]为检测窗口内与待检测像素颜色相同的同色像素的像素值,且pBayer[2x*W+2y]>pBayer[0],reg_hvdpc_diffval为第一像素差值阈值,x、y为整数,W为待检测像素所在帧图像的宽度,m为待检测窗口控制参数。
统计所述像素差值大于第一像素差值阈值的同色像素的数量,作为第一数量值,判断第一数量值是否大于设定的第一数量阈值。
疑似行坏点确定单元702,具体用于:对于检测窗口内待检测像素以及与待检测像素在同一行的右侧同色像素i(0≤i≤2m,且i为偶数)的像素值,若满足式(3),则表示待检测像素以及与待检测像素同行的右侧同色像素的亮度都很小,且与待检测像素同行的右侧同色像素与待检测像素的像素值的差别很小:
其中,pBayer[i]为与待检测像素位于同一行的右侧同色像素的像素值,reg_hvdpc_lowval为设定的像素值阈值的下限值,reg_hvdpc_sameval为设定的绝对值阈值,pBayer[0]为待检测像素的像素值。
或,对于检测窗口内待检测像素以及与待检测像素在同一行的右侧同色像素i(0≤i≤2m,且i为偶数)的像素值,若满足式(4),则表示待检测像素以及与待检测像素同行的右侧同色像素的亮度都很大,且与待检测像素同行的右侧同色像素与待检测像素的像素值的差别很小:
其中,pBayer[i]为与待检测像素位于同一行的右侧同色像素的像素值,reg_hvdpc_highval为设定的像素值阈值的上限值,reg_hvdpc_sameval为设定的绝对值阈值,pBayer[0]为待检测像素的像素值。
当待检测像素以及与待检测像素同行、且位于待检测像素右侧的同色像素均满足式(3)或式(4)时,则确定该待检测像素为疑似行坏点。
疑似列坏点确定单元703,具体用于:对于检测窗口内待检测像素以及与待检测像素在同一列的下方同色像素i(0≤i≤2m,且i为偶数)的像素值,若满足式(5),则表示待检测像素以及与待检测像素同列的下侧同色像素的亮度都很小,且与待检测像素同列的下侧同色像素与待检测像素的像素值的差别很小:
其中,pBayer[i*W]为与待检测像素位于同一列的下方同色像素的像素值,reg_hvdpc_lowval为设定的像素值阈值的下限值,reg_hvdpc_sameval为设定的绝对值阈值,pBayer[0]为待检测像素的像素值,W为为待检测像素所在帧图像的宽度。
或,对于检测窗口内待检测像素以及与待检测像素在同一列的下方同色像素i(0≤i≤2m,且i为偶数)的像素值,若满足式(6),则表示待检测像素以及与待检测像素同列的下侧同色像素的亮度都很大,且与待检测像素同列的下侧同色像素与待检测像素的像素值的差别很小:
其中,pBayer[i*W]为与待检测像素位于同一列的下方同色像素的像素值,reg_hvdpc_highval为设定的像素值阈值的上限值,reg_hvdpc_sameval为设定的绝对值阈值,pBayer[0]为待检测像素的像素值。
当待检测像素以及与待检测像素同列、且位于待检测像素下侧的同色像素均满足式(5)或式(6)时,则确定该待检测像素为疑似列坏点。
行列坏点确定单元704,具体用于:判断第一数量值是否大于设定的第一数量阈值,当确定第一数量值大于设定的第一数量阈值,且确定待检测像素为疑似行坏点,则确定该待检测像素为行坏点;和/或,当确定第一数量值大于设定的第一数量阈值,且确定待检测像素为疑似列坏点,则确定该待检测像素为列坏点。
当确定第一数量值不大于设定的第一数量阈值,则进行常规坏点检测。当确定确定第一数量值大于设定的第一数量阈值,但确定待检测像素不是疑似行坏点,且不是疑似列坏点,则进行常规坏点检测。
如图8所示,该装置还包括常规坏点检测单元801,坏点校正单元802。常规坏点检测单元801,具体用于:统计所述像素差值大于第二像素差值阈值的同色像素的数量,作为第二数量值,判断第二数量值是否大于设定的第二数量阈值;若第二数量值大于设定的第二数量阈值,则确定待检测像素为常规坏点,否则确定待检测像素为正常像素,触发检测窗口移动。其中,通常情况下第二像素差值阈值大于第一像素差值阈值。
坏点校正单元802,具体用于:当确定待检测像素为坏点后,确定待检测像素的横向方向梯度值、纵向方向梯度值、左对角线方向梯度值、右对角线方向梯度值,选取上述4个方向中方向梯度值最小的方向为参考方向,如图9所示,为一个检测窗口中4个获取方向梯度值的方向,其中黑色方块为待检测像素,hdir为梯度值横向方向,ldir为梯度值左对角线,rdir为梯度值右对角线,vdir为梯度纵向方向;确定待检测像素为行坏点后,确定待检测像素的纵向方向梯度值、左对角线方向梯度值、右对角线方向梯度值,选取上述3个方向中方向梯度值最小的方向为参考方向;确定待检测像素为列坏点后,确定待检测像素的横向方向梯度值、左对角线方向梯度值、右对角线方向梯度值,选取上述3个方向中方向梯度值最小的方向为参考方向;确定待检测像素既是行坏点,又是列坏点后,确定待检测像素的左对角线方向梯度值、右对角线方向梯度值,选取上述2个方向中方向梯度值最小的方向为参考方向。将确定的参考方向上与待检测像素相距2p个像素单位的同色像素的像素值取平均值,将取得的平均值作为待检测像素校正后的像素值,其中p为正整数。可以将检测窗口中参考方向上与待检测像素相距2p个像素单位的两个同色像素的像素值取平均值,作为待检测像素校正后的像素值;也可以将检测窗口中参考方向上与待检测像素同色的全部像素的像素值取平均值,作为待检测像素校正后的像素值。
以将检测窗口中参考方向上与待检测像素相距2p个像素单位的两个同色像素的像素值取平均值,作为待检测像素校正后的像素值为例,若待检测像素确定的参考方向为横向方向,则待检测像素校正后的像素值如式(7)所示:
dpc_pBayer=(pBayer[2p]+pBayer[-2p])/2(7)
其中,dpc_pBayer为待检测像素校正后的像素值,pBayer[2p]和pBayer[-2p]为待检测像素横向方向上与待检测像素相距2p个像素单位的两个同色像素的像素值。
若待检测像素确定的参考方向为纵向方向,则待检测像素校正后的像素值如式(8)所示:
dpc_pBayer=(pBayer[2p*W]+pBayer[-2p*W])/2(8)
其中,dpc_pBayer为待检测像素校正后的像素值,pBayer[2p*W]和pBayer[-2p*W]为待检测像素纵向方向上与待检测像素相距2p个像素单位的两个同色像素的像素值,W为待检测像素所在帧图像的宽度。
若待检测像素确定的参考方向为左对角线方向,则待检测像素校正后的像素值如式(9)所示:
dpc_pBayer=(pBayer[2p*(W+1)]+pBayer[-2p*(W+1)])/2(9)
其中,dpc_pBayer为待检测像素校正后的像素值,pBayer[2p*(W+1)]和pBayer[-2p*(W+1)]为待检测像素左对角线方向上与待检测像素相距2p个像素单位的两个同色像素的像素值,W为待检测像素所在帧图像的宽度。
若待检测像素确定的参考方向为右对角线方向,则待检测像素校正后的像素值如式(10)所示:
dpc_pBayer=(pBayer[2p*(W-1)]+pBayer[-2p*(W-1)])/2(10)
其中,dpc_pBayer为待检测像素校正后的像素值,pBayer[2p*(W-1)]和pBayer[-2p*(W-1)]为待检测像素右对角线方向上与待检测像素相距2p个像素单位的两个同色像素的像素值,W为待检测像素所在帧图像的宽度。
当对待检测像素校正完成后,将校正后的像素值写入待检测像素中,使下一检测窗口获取当前检测窗口中待检测像素的像素值为校正后的像素值,并触发检测窗口移动。
确定待检测像素的方向梯度值的方法如下:如式(11)所示确定检测窗口中与待检测像素在同一行、且与待检测像素相距2p个像素单位的两个同色像素的像素差值的绝对值,将该像素差值的绝对值作为待检测像素的横向方向梯度值;
hdir=|pBayer[2p]-pBayer[-2p]|(11)
其中,hdir为待检测像素的横向方向梯度值,pBayer[2p]和pBayer[-2p]为与待检测像素相距2p个像素单位的两个同色像素的像素值。
如式(12)所示确定检测窗口中与待检测像素在同一列、且与待检测像相距2p个像素单位的两个同色像素的像素差值的绝对值,将该像素差值的绝对值作为待检测像素的纵向方向梯度值;
vdir=|pBayer[2p*W]-pBayer[-2p*W]|(12)
其中,vdir为待检测像素的纵向方向梯度值,pBayer[2p*W]和pBayer[-2p*W]为与待检测像素相距2p个像素单位的两个同色像素的像素值。
如式(13)所示确定检测窗口左对角线上、且与待检测像素相距2p个像素单位的两个同色像素的像素差值的绝对值,将该像素差值的绝对值作为待检测像素的左对角线方向梯度值;
ldir=|pBayer[2p*(W+1)]-pBayer[-2p*(W+1)]|(13)
其中,ldir为待检测像素的纵向方向梯度值,pBayer[2p*(W+1)]和pBayer[-2p*(W+1)]为与待检测像素相距2p个像素单位的两个同色像素的像素值。
如式(14)所示,确定检测窗口右对角线上、且与待检测像素相距2p个像素单位的两个同色像素的像素差值的绝对值,将该像素差值的绝对值作为待检测像素的右对角线方向梯度值;
rdir=|pBayer[2p*(W-1)]-pBayer[-2p*(W-1)]|(14)
其中,rdir为待检测像素的纵向方向梯度值,pBayer[2p*(W-1)]和pBayer[-2p*(W-1)]为与待检测像素相距2p个像素单位的两个同色像素的像素值。
较佳地,上述实施例中在计算方向梯度值和校正后像素值时,p取1时,是一种较优的实施方式,但是p为其他整数值,且也能满足本发明实施例要求的的取值,也在本发明欲保护的范围内。
本发明实施例中,检测窗口按照从左至右,从上至下的顺序移动,确定疑似行坏点和疑似列坏点时,检测窗口中与待检测像素同行、且位于待检测像素左侧的像素,以及与待检测像素同列、且位于待检测像素上侧的像素都是校正后的像素,或不是坏点的像素,因此本发明实施例中对待检测像素进行检测时,验证与待检测像素同行、且位于待检测像素右侧的像素,以及与待检测像素同列、且位于待检测像素下侧的像素;当检测窗口按照其他顺序进行移动,对待检测像素进行检测时,根据未检测的像素确定待检测像素是否为图像坏点。如图10a和10b所示,为采用本发明实施例中的装置进行图像坏点检测和校正前后的对比示意图,图10a为检测和校正前的检测图像示意图,图10b为检测和校正后的检测图像示意图。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。