发明内容
本发明实施例提供一种图像坏点的检测方法,当确定出被检测像素为图像坏点后,根据被检测像素的方向梯度值确定图像坏点的类型,根据图像坏点的类型确定对图像进行校正的方法,当图像坏点位于检测图像中的边缘细节区时,使用对应的校正方法,从而使校正后的图像保留图像的边缘细节信息。
本发明实施例提供了一种图像坏点的检测方法,该方法包括:
针对检测图像,确定当前检测窗口中心的被检测像素为图像坏点;
分别确定检测窗口内根据与该被检测像素同一行的同色像素的像素值计算得到的第一横向方向梯度值,以及根据与该被检测像素同一列的同色像素的像素值计算得到的第一纵向方向梯度值;
确定所述被检测像素的第一横向方向梯度值的绝对值与所述第一纵向方向梯度值的绝对值之和大于设定的绝对值阈值,则确定所述被检测像素为位于图像边缘细节区域的第一类图像坏点;否则,确定所述被检测像素为位于图像平坦区域的第二类图像坏点。
上述实施例中确定被检测像素为图像坏点后,根据被检测像素各个方向的方向梯度值确定被检测像素所属图像坏点的类型;由于根据多个方向的方向梯度值确定被检测像素所属图像坏点的类型,使图像坏点类型判定更准确,且能够根据图像坏点的类型,确定如何对图像坏点进行校正;当确定图像坏点位于检测图像的边缘细节区时,根据适当的方法对被检测像素进行校正,有利于保留图像边缘细节。
本发明实施例中检测窗口内根据被检测像素的同色像素的像素值计算得到的第一横向方向梯度值,第一纵向方向梯度值,具体包括:
确定所述检测窗口中与被检测像素在同一行、且与被检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为被检测像素的第一横向方向梯度值;
确定所述检测窗口中与被检测像素在同一列、且与被检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为被检测像素的第一纵向方向梯度值;
其中,p为正整数。
另一种确定所述第一横向方向梯度值,以及所述第一纵向方向梯度值,具体包括:
确定所述检测窗口中与被检测像素在同一行、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,将所述N对同色像素值的绝对值之和作为被检测像素的第一横向方向梯度值;
确定所述检测窗口中与被检测像素在同一列、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,并将所述N对同色像素值的绝对值之和作为被检测像素的第一纵向方向梯度值;
其中p,N均为正整数。
上述实施例中根据被检测像素各个方向的方向梯度值确定被检测像素所属图像坏点的类型;由于根据多个方向的方向梯度值确定被检测像素所属图像坏点的类型,使图像坏点类型判定更准确。
本发明实施例中确定被检测像素为位于第一类图像坏点之后,还包括:
确定检测窗口内根据被检测像素,以及与被检测像素的同一行的同色像素的像素值计算得到的第二横向方向梯度值;
确定检测窗口内根据被检测像素,以及与被检测像素的同一列的同色像素的像素值计算得到的第二纵向方向梯度值;
确定检测窗口内根据被检测像素,以及检测窗口左对角线上与被检测像素同色的像素的像素值计算得到的第二左对角线方向梯度值;
确定检测窗口内根据被检测像素,以及检测窗口右对角线上与被检测像素同色的像素的像素值计算得到的第二右对角线方向梯度值;
确定检测窗口内根据检测窗口左对角线上被检测像素的同色像素的像素值计算得到的第一左对角线方向梯度值;
确定检测窗口内根据检测窗口右对角线上被检测像素的同色像素的像素值计算得到的第一右对角线方向梯度值;
将第一横向方向梯度值与第二横向方向梯度值相加,得到第三横向方向梯度值;
将第一纵向方向梯度值与第二纵向方向梯度值相加,得到第三纵向方向梯度值;
将第一左对角线方向梯度值与第二左对角线方向梯度值相加,得到第三左对角线方向梯度值;
将第一右对角线方向梯度值与第二右对角线方向梯度值相加,得到第三右对角线方向梯度值;
将所述被检测像素的第三横向方向梯度值,第三纵向方向梯度值,第三左对角线方向梯度值,第三右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向;
将确定的参考方向上与所述被检测像素相距2p个像素单位的同色像素的像素值取平均值,将确定的平均值作为被检测像素校正后的像素值,其中p为正整数。
上述实施例中当确定被检测像素为图像坏点,且位于检测图像的图像细节边缘区后,根据包含被检测像素的方向梯度值和不包含被检测像素的方向梯度值,确定被检测像素的参考方向,根据参考方向的像素平均值,确定被检测像素校正后的像素值。由于根据多个方向的方向梯度值确定方向梯度值变化最小的方向,确定的方向梯度值变化最小的方向的像素平均值最接近被检测像素的实际像素值,有利于保存图像的边缘细节。
本发明实施例中确定第二方向梯度值的方法包括:
确定被检测像素的像素值;
确定所述检测窗口中与被检测像素在同一行、且与被检测像素相距2p个像素单位的一对同色像素的像素值,将二倍的被检测像素的像素值与确定的一对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二横向方向梯度值;
确定所述检测窗口中与被检测像素在同一列、且与被检测像素相距2p个像素单位的一对同色像素的像素值,将二倍的被检测像素的像素值与确定的一对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二纵向方向梯度值;
确定所述检测窗口中左对角线上、且与所述被检测像素相距2p个像素单位的一对同色像素的像素值,将二倍的被检测像素的像素值与确定的一对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二左对角线方向梯度值;
确定所述检测窗口中右对角线上、且与所述被检测像素相距2p个像素单位的一对同色像素的像素值,将二倍的被检测像素的像素值与确定的一对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二右对角线方向梯度值;
确定第一左对角线方向梯度值,以及第一右对角线方向梯度值,具体包括:
确定所述检测窗口中左对角线上、且与所述被检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为被检测像素的第一左对角线方向梯度值;
确定所述检测窗口中右对角线上、且与所述被检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为被检测像素的第一右对角线方向梯度值。
另一种确定第二方向梯度值的方法包括:
确定被检测像素的像素值;
确定所述检测窗口中与被检测像素在同一行、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将2N倍的被检测像素的像素值与确定的N对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二横向方向梯度值;
确定所述检测窗口中与被检测像素在同一列、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将2N倍的被检测像素的像素值与确定的N对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二纵向方向梯度值;
确定所述检测窗口中左对角线上、且与所述被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将2N倍的被检测像素的像素值与确定的N对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二左对角线方向梯度值;
确定所述检测窗口中右对角线上、且与所述被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将2N倍的被检测像素的像素值与确定的N对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二右对角线方向梯度值;
确定第一左对角线方向梯度值,以及第一右对角线方向梯度值,具体包括:
确定所述检测窗口中左对角线上、且与所述被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,并将所述N对同色像素值的绝对值之和作为被检测像素的第一左对角线方向梯度值;
确定所述检测窗口中右对角线上、且与所述被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,并将所述N对同色像素值的绝对值之和作为被检测像素的第一右对角线方向梯度值。
上述实施例中根据被检测像素的像素值与一个方向上的一对同色像素的像素值的差的绝对值,确定被检测像素的第二方向梯度值,可以确定与被检测像素差值最小的方向。
本发明实施例中确定所述被检测像素为第二类图像坏点之后,还包括:
确定检测窗口内根据检测窗口左对角线上被检测像素的同色像素的像素值计算得到的第一左对角线方向梯度值;
确定检测窗口内根据检测窗口右对角线上被检测像素的同色像素的像素值计算得到的第一右对角线方向梯度值;
将所述被检测像素的第一横向方向梯度值,第一纵向方向梯度值,第一左对角线方向梯度值,第一右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向;
将确定的参考方向上与所述被检测像素相距2p个像素单位的同色像素的像素值取平均值,将确定的平均值作为被检测像素校正后的像素值,其中p为正整数。
上述实施例中根据被检测像素的最小的方向梯度值,确定被检测像素的像素值,由于被检测像素与周边像素的差别不大,因此,采用传统的方法对被检测像素进行校正得到的像素值与实际像素值差别也不大。
本发明实施例中所述确定检测窗口中被检测像素为图像坏点,具体包括:
获取检测窗口内所述被检测像素以及与所述被检测像素颜色相同的同色像素的像素值,并分别确定所述被检测像素与检测窗口内每一个同色像素的像素差值;统计所述像素差值大于第一像素差值阈值的同色像素的数量,作为第一数量值;
确定第一数量值大于设定的第一数量阈值,则确定被检测像素为待检测图像的图像坏点。
确定第一数量值不大于设定的第一数量阈值,该方法还包括:
确定所述第一数量值大于设定的第二数量阈值;
分别确定所述被检测像素与检测窗口内每一个同色像素的像素差值的绝对值,确定所述像素差值的绝对值小于设定的绝对值阈值的数量,作为第二数量值;确定第二数量值小于设定的第三数量阈值;
确定被检测像素的像素值不在设定的像素阈值范围内;
分别确定检测窗口内包含被检测像素的第二横向方向梯度值,第二纵向方向梯度值,第二左对角线方向梯度值,以及第二右对角线方向梯度值;确定梯度值最小的方向为参考方向;确定所述参考方向的方向梯度值大于设定的方向梯度值的阈值;
则确定被检测像素为检测图像的图像坏点。
上述实施例中确定被检测像素为图像坏点,需要同时满足多个条件,避免了根据单一条件判断被检测像素是否为图像坏点时,容易造成误判的问题。
本发明实施例中提供了一种图像坏点的检测装置,该装置包括:
图像坏点检测单元,用于针对检测图像,确定当前检测窗口中心的被检测像素为图像坏点;
方向梯度值计算单元,用于分别确定检测窗口内根据该被检测像素的同一行的同色像素的像素值计算得到的第一横向方向梯度值,以及根据该被检测像素的同一列的同色像素的像素值计算得到的第一纵向方向梯度值;
坏点类型确定单元,用于确定所述被检测像素的第一横向方向梯度值的绝对值与所述第一纵向方向梯度值的绝对值之和大于设定的绝对值阈值,则确定所述被检测像素为位于图像边缘细节区域的第一类图像坏点;否则,确定所述被检测像素为位于图像平坦区域的第二类图像坏点。
上述实施例中确定被检测像素为图像坏点后,根据被检测像素各个方向的方向梯度值确定被检测像素所属图像坏点的类型;由于根据多个方向的方向梯度值确定被检测像素所属图像坏点的类型,使图像坏点类型判定更准确,且能够根据图像坏点的类型,确定如何对图像坏点进行校正;当确定图像坏点位于检测图像的边缘细节区时,根据适当的方法对被检测像素进行校正,有利于保留图像边缘细节。
本发明实施例中所述方向梯度值计算单元,具体用于:
所述方向梯度值计算单元,具体用于:
确定所述检测窗口中与被检测像素在同一行、且与被检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为被检测像素的第一横向方向梯度值;
确定所述检测窗口中与被检测像素在同一列、且与被检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为被检测像素的第一纵向方向梯度值;
其中p为正整数。
所述方向梯度值计算单元,具体用于:
确定所述检测窗口中与被检测像素在同一行、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,并将所述N对同色像素值的绝对值之和作为被检测像素的第一横向方向梯度值;
确定所述检测窗口中与被检测像素在同一列、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,并将所述N对同色像素值的绝对值之和作为被检测像素的第一纵向方向梯度值;其中p,N均为正整数。
上述实施例中根据被检测像素确定的方向梯度值中的最小方向梯度进行修正,有利于保留图像边缘细节。
本发明实施例中所述方向梯度值计算单元还用于:
确定被检测像素为第一类图像坏点之后,确定检测窗口内根据被检测像素,以及被检测像素的同一行的同色像素的像素值计算得到的第二横向方向梯度值;确定检测窗口内根据被检测像素,以及与被检测像素的同一列的同色像素的像素值计算得到的第二纵向方向梯度值;确定检测窗口内根据被检测像素,以及检测窗口左对角线上与被检测像素同色的像素的像素值计算得到的第二左对角线方向梯度值;确定检测窗口内根据被检测像素,以及检测窗口右对角线上与被检测像素同色的像素的像素值计算得到的第二右对角线方向梯度值;
确定检测窗口内根据检测窗口左对角线上被检测像素的同色像素的像素值计算得到的第一左对角线方向梯度值,以及根据检测窗口右对角线上被检测像素的同色像素的像素值计算得到的第一右对角线方向梯度值;
将第一横向方向梯度值与第二横向方向梯度值相加,得到第三横向方向梯度值;
将第一纵向方向梯度值与第二纵向方向梯度值相加,得到第三纵向方向梯度值;
将第一左对角线方向梯度值与第二左对角线方向梯度值相加,得到第三左对角线方向梯度值;
将第一右对角线方向梯度值与第二右对角线方向梯度值相加,得到第三右对角线方向梯度值;
所述装置还包括校正单元,用于将所述被检测像素的第三横向方向梯度值,第三纵向方向梯度值,第三左对角线方向梯度值,第三右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向;将确定的参考方向上与所述被检测像素相距2p个像素单位的同色像素的像素值取平均值,将确定的平均值作为被检测像素校正后的像素值,其中p为正整数。
上述实施例中当确定被检测像素为图像坏点,且位于检测图像的图像细节边缘区后,根据包含被检测像素的方向梯度值和不包含被检测像素的方向梯度值,确定被检测像素的参考方向,根据参考方向的像素平均值,确定被检测像素校正后的像素值。由于根据多个方向的方向梯度值确定方向梯度值变化最小的方向,确定的方向梯度值变化最小的方向的像素平均值最接近被检测像素的实际像素值,有利于保存图像的边缘细节。
本发明实施例中所述方向梯度值计算单元具体用于:
确定被检测像素的像素值;
确定所述检测窗口中与被检测像素在同一行、且与被检测像素相距2p个像素单位的一对同色像素的像素值,将二倍的被检测像素的像素值与确定的一对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二横向方向梯度值;
确定所述检测窗口中与被检测像素在同一列、且与被检测像素相距2p个像素单位的一对同色像素的像素值,将二倍的被检测像素的像素值与确定的一对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二纵向方向梯度值;
确定所述检测窗口中左对角线上、且与所述被检测像素相距2p个像素单位的一对同色像素的像素值,将二倍的被检测像素的像素值与确定的一对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二左对角线方向梯度值;
确定所述检测窗口中右对角线上、且与所述被检测像素相距2p个像素单位的一对同色像素的像素值,将二倍的被检测像素的像素值与确定的一对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二右对角线方向梯度值;
确定所述检测窗口中左对角线上、且与所述被检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为被检测像素的第一左对角线方向梯度值;
确定所述检测窗口中右对角线上、且与所述被检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将所述绝对值作为被检测像素的第一右对角线方向梯度值。
所述方向梯度值计算单元具体用于:
确定被检测像素的像素值;
确定所述检测窗口中与被检测像素在同一行、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将2N倍的被检测像素的像素值与确定的N对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二横向方向梯度值;
确定所述检测窗口中与被检测像素在同一列、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将2N倍的被检测像素的像素值与确定的N对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二纵向方向梯度值;
确定所述检测窗口中左对角线上、且与所述被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将2N倍的被检测像素的像素值与确定的N对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二左对角线方向梯度值;
确定所述检测窗口中右对角线上、且与所述被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将2N倍的被检测像素的像素值与确定的N对同色像素的像素值之和作差取绝对值,将所述绝对值作为被检测像素的第二右对角线方向梯度值;
确定第一左对角线方向梯度值,以及第一右对角线方向梯度值,具体包括:
确定所述检测窗口中左对角线上、且与所述被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,并将所述N对同色像素值的绝对值之和作为被检测像素的第一左对角线方向梯度值;
确定所述检测窗口中右对角线上、且与所述被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,并将所述N对同色像素值的绝对值之和作为被检测像素的第一右对角线方向梯度值。
上述实施例中根据被检测像素的像素值与一个方向上的一对同色像素的像素值的差的绝对值,确定被检测像素的第二方向梯度值,可以确定与被检测像素差值最小的方向。
本发明实施例中所述方向梯度值计算单元还用于:
确定检测窗口内根据检测窗口左对角线上被检测像素的同色像素的像素值计算得到的第一左对角线方向梯度值,以及检测窗口内根据检测窗口右对角线上被检测像素的同色像素的像素值计算得到的第一右对角线方向梯度值;
该装置还包括校正单元,具体用于:
确定所述被检测像素为位于第二类图像坏点之后,将所述被检测像素的第一横向方向梯度值,第一纵向方向梯度值,第一左对角线方向梯度值,第一右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向;
将确定的参考方向上与所述被检测像素相距2p个像素单位的同色像素的像素值取平均值,将确定的平均值作为被检测像素校正后的像素值,其中p为正整数。
上述实施例中根据被检测像素的最小的方向梯度值,确定被检测像素的像素值,由于被检测像素与周边像素的差别不大,因此,采用传统的方法对被检测像素进行校正得到的像素值与实际像素值差别也不大。
本发明实施例中所述图像坏点检测单元,具体用于:
获取检测窗口内所述被检测像素以及与所述被检测像素颜色相同的同色像素的像素值,并分别确定所述被检测像素与检测窗口内每一个同色像素的像素差值;统计所述像素差值大于第一像素差值阈值的同色像素的数量,作为第一数量值;确定第一数量值大于设定的第一数量阈值,则确定被检测像素为待检测图像的图像坏点。
所述图像坏点检测单元,还用于:
确定第一数量值不大于设定的第一数量阈值之后,确定所述第一数量值大于设定的第二数量阈值;
分别确定所述被检测像素与检测窗口内每一个同色像素的像素差值的绝对值,确定所述像素差值的绝对值小于设定的绝对值阈值的数量,作为第二数量值;确定第二数量值小于设定的第三数量阈值;
确定被检测像素的像素值不在设定的像素阈值范围内;
分别确定检测窗口内包含被检测像素的第二横向方向梯度值,第二纵向方向梯度值,第二左对角线方向梯度值,以及第二右对角线方向梯度值;确定梯度值最小的方向为参考方向;确定所述参考方向的方向梯度值大于设定的方向梯度值的阈值;
则确定被检测像素为检测图像的图像坏点。
上述实施例中确定被检测像素为图像坏点,需要同时满足多个条件,避免了根据单一条件判断被检测像素是否为图像坏点时,容易造成误判的问题。
具体实施方式
本发明提供了一种图像坏点的检测方法,当确定被检测像素为图像坏点后,通过检测窗口中被检测像素的各个方向梯度值确定图像坏点的类型;使图像坏点类型判定更准确,且能够根据图像坏点的类型,确定如何对图像坏点进行校正;当确定图像坏点位于检测图像的边缘细节区时,根据适当的方法对被检测像素进行校正,有利于保留图像边缘细节。
下面结合说明书附图对本发明进行进一步说明。
如图2所示,为本发明实施例中一种图像坏点的检测方法,该方法包括:
步骤201:针对检测图像,确定当前检测窗口中心的被检测像素为图像坏点;
步骤202:分别确定检测窗口内根据与该被检测像素同一行的同色像素的像素值计算得到的第一横向方向梯度值,以及根据与该被检测像素同一列的同色像素的像素值计算得到的第一纵向方向梯度值;
步骤203:确定被检测像素的第一横向方向梯度值的绝对值与第一纵向方向梯度值的绝对值之和大于设定的绝对值阈值,则确定被检测像素为位于图像边缘细节区域的第一类图像坏点;否则,确定所述被检测像素为位于图像平坦区域的第二类图像坏点。
其中,步骤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为待检测窗口控制参数。
统计检测窗口中满足式(1)的,且与被检测像素同色的像素数量dpc_min,即满足式(1)时(x,y)的组合数,作为第一数量,判断第一数量是否大于设定的像素阈值,即判断dpc_min是否大于reg_dpc_maxnum。
其中,pBayer[0]为被检测像素的像素值,pBayer[2x*W+2y]为检测窗口内与被检测像素颜色相同的同色像素的像素值,且pBayer[2x*W+2y]>pBayer[0],reg_hvdpc_diffval为像素差值阈值,x、y为整数,W为被检测像素所在帧图像的宽度,m为待检测窗口控制参数。
统计检测窗口中满足式(2)的,且与被检测像素同色的像素数量dpc_max,即满足式(2)时(x,y)的组合数,作为第一数量,判断第一数量是否大于设定的像素阈值,即判断dpc_max是否大于reg_dpc_maxnum。
当确定检测窗口内的,与被检测像素同色的像素的第一数量值大于设定的第一数量阈值,即满足dpc_min>reg_dpc_maxnum或dpc_max>reg_dpc_maxnum时,则确定被检测像素为检测图像的图像坏点。
较佳地,步骤201中还包括:确定被检测像素同时满足以下四个条件,则确定被检测像素为图像坏点;若被检测像素不满足以下条件中的任意一个条件,则确定被检测像素为正常像素,触发移动检测窗口。
一、确定第一数量值不大于设定的第一数量阈值,但第一数量值大于设定的第二数量阈值;
二、分别确定被检测像素与检测窗口内每一个同色像素的像素差值的绝对值,确定像素差值的绝对值小于设定的绝对值阈值的数量,作为第二数量值,且确定第二数量值小于设定的第三数量阈值;
三、且确定被检测像素的像素值不在设定的像素阈值范围内;
四、确定检测窗口内根据被检测像素,以及与被检测像素的同一行的同色像素的像素值计算得到的第二横向方向梯度值;确定检测窗口内根据被检测像素,以及与被检测像素的同一列的同色像素的像素值计算得到的第二纵向方向梯度值;确定检测窗口内根据被检测像素,以及检测窗口左对角线上与被检测像素同色的像素的像素值计算得到的第二左对角线方向梯度值;确定检测窗口内根据被检测像素,以及检测窗口右对角线上与被检测像素同色的像素的像素值计算得到的第二右对角线方向梯度值;确定梯度值最小的方向为参考方向;且确定参考方向的方向梯度值大于设定的方向梯度值的阈值。
确定第一数量值不大于设定的第一数量阈值,确定第一数量值大于设定的第二数量阈值,具体包括:确定检测窗口内的,与被检测像素同色的像素的第一数量值dpc_min<reg_dpc_maxnum,且dpc_max<reg_dpc_maxnum时,判断与被检测像素同色的像素的第一数量值dpc_min是否大于设定的第二数量阈值reg_dpc_diffnum,或第一数量值dpc_max是否大于设定的第二数量阈值reg_dpc_diffnum。其中,第二数量阈值reg_dpc_diffnum小于第一数量阈值reg_dpc_maxnum。
通过式(3)确定被检测像素与检测窗口内每一个同色像素的像素差值的绝对值是否大于设定的绝对值阈值:
其中,pBayer[0]为被检测像素的像素值,pBayer[2x*W+2y]为检测窗口内被检测像素的同色像素的像素值,reg_dpc_sameval为设定的绝对值阈值,x、y为整数,W为被检测像素所在帧图像的宽度,m为待检测窗口控制参数。
统计检测窗口中满足式(3)的,且与被检测像素同色的像素数量dpc_same,即满足式(3)时(x,y)的组合数,作为第二数量,判断第二数量是否大于设定的第三数量阈值,即判断dpc_same是否大于reg_dpc_samenum。
确定被检测像素的像素值不在设定的像素阈值范围内,包括:pBayer[0]>reg_hot_highval,或pBayer[0]<reg_hot_lowval,其中pBayer[0]为被检测像素的像素值,reg_hot_highval为像素阈值上限值,reg_hot_lowval为像素阈值下限值。
本发明实施例中有两种确定第二方向梯度值的方法,下面分别进行介绍。
第一种确定第二方向梯度值的方法如下:
如式(4-1)所示,为被检测像素的第二横向方向梯度值的确定方法:
bs2_hdir=|2*pBayer[0]-pBayer[2p]-pBayer[-2p]| (4-1)
其中,bs2_hdir为被检测像素的第二横向方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2p]和pBayer[-2p]为被检测像素横向方向上与被检测像素相距2p个像素单位的一对同色像素的像素值。
如式(5-1)所示,为被检测像素的第二纵向方向梯度值的确定方法:
bs2_vdir=|2*pBayer[0]-pBayer[2p*W]-pBayer[-2p*W]| (5-1)
其中,bs2_vdir为被检测像素的第二纵向方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2p*W]和pBayer[-2p*W]为被检测像素纵向方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
如式(6-1)所示,为被检测像素的第二左对角线方向梯度值的确定方法:
bs2_ldir=|2*pBayer[0]-pBayer[2p*(W+1)]-pBayer[-2p*(W+1)]| (6-1)
其中,bs2_ldir为被检测像素的第二左对角线方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2p*(W+1)]和pBayer[-2p*(W+1)]为被检测像素左对角线方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
如式(7-1)所示,为被检测像素的第二右对角线方向梯度值的确定方法:
bs2_rdir=|2*pBayer[0]-pBayer[2p*(W-1)]-pBayer[-2p*(W-1)]| (7-1)
其中,bs2_rdir为被检测像素的第二右对角线方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2p*(W-1)]和pBayer[-2p*(W-1)]为被检测像素右对角线方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
第二种确定第二方向梯度值的方法如下:
如式(4-2)所示,为被检测像素的第二横向方向梯度值的确定方法:
其中,bs2_hdir为被检测像素的第二横向方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2pk]和pBayer[-2pk]为被检测像素横向方向上与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素中每个同色像素的像素值,N为正整数。
如式(5-2)所示,为被检测像素的第二纵向方向梯度值的确定方法:
其中,bs2_vdir为被检测像素的第二纵向方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2pk*W]和pBayer[-2pk*W]为被检测像素纵向方向上与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素中每个同色像素的像素值,N为正整数,W为被检测像素所在帧图像的宽度。
如式(6-2)所示,为被检测像素的第二左对角线方向梯度值的确定方法:
其中,bs2_ldir为被检测像素的第二左对角线方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2pk*(W+1)]和pBayer[-2pk*(W+1)]为被检测像素左对角线方向上与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素中每个同色像素的像素值,N为正整数,W为被检测像素所在帧图像的宽度。
如式(7-2)所示,为被检测像素的第二右对角线方向梯度值的确定方法:
其中,bs2_rdir为被检测像素的第二右对角线方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2pk*(W-1)]和pBayer[-2pk*(W-1)]为被检测像素右对角线方向上与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素中每个同色像素的像素值,N为正整数,W为被检测像素所在帧图像的宽度。
根据被检测像素的第二横向方向梯度值,第二纵向方向梯度值,第二左对角线方向梯度值,以及第二右对角线方向梯度值,确定梯度值最小的方向为参考方向,判断参考方向的方向梯度值bs2_mindir是否大于设定的方向梯度值阈值reg_dpc_mindirval。
当确定被检测像素同时满足以下条件时,则确定被检测像素为图像坏点:
发检测窗口移动。
步骤202中,确定检测窗口内不包含被检测像素的像素值计算得到的第一横向方向梯度值,第一纵向方向梯度值,包括两种方法,下面分别进行介绍:
第一种方法。
将检测窗口中横向方向上与被检测像素相距2p个像素单位的一对同色像素的像素值之差取平均值,作为点检测像素的第一横向方向梯度值,被检测像素的第一横向方向梯度值的计算方法如式(8-1)所示:
bs1_hdir=|pBayer[2p]-pBayer[-2p]| (8-1)
其中,bs1_hdir为被检测像素的第一横向方向梯度值,pBayer[2p]和pBayer[-2p]为被检测像素横向方向上与被检测像素相距2p个像素单位的一对同色像素的像素值。
被检测像素的第一纵向方向梯度值的计算方法如式(9-1)所示:
bs1_vdir=|pBayer[2p*W]-pBayer[-2p*W]| (9-1)
其中,bs1_vdir为被检测像素的第一纵向方向梯度值,pBayer[2p*W]和pBayer[-2p*W]为被检测像素纵向方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
第二种方法。
确定检测窗口中与被检测像素在同一行、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,将该N对同色像素值的绝对值之和作为被检测像素的第一横向方向梯度值;被检测像素的第一横向方向梯度值的计算方法如式(8-2)所示:
其中,bs1_hdir为被检测像素的第一横向方向梯度值,pBayer[2pk]和pBayer[-2pk]为被检测像素横向方向上与被检测像素同色的N对像素中每一对像素的像素值,其中N为正整数。
确定检测窗口中与被检测像素在同一列、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,将该N对同色像素值的绝对值之和作为被检测像素的第一纵向方向梯度值;被检测像素的第一纵向方向梯度值的计算方法如式(9-2)所示:
其中,bs1_vdir为被检测像素的第一纵向方向梯度值,pBayer[2pk*W]和pBayer[-2pk*W]为被检测像素纵向方向上与被检测像素同色的N对像素中每一对像素的像素值,其中N为正整数,W为被检测像素所在帧图像的宽度。
步骤203中,确定被检测像素的第一横向方向梯度值的绝对值与第一纵向方向梯度值的绝对值之和,作为梯度绝对值,如式(10)所示:
gxy=|bs1_hdir|+|bs1_vdir| (10)
其中,bs1_hdir为被检测像素的第一横向方向梯度值,bs1_vdir为被检测像素的第一纵向方向梯度值。
当确定被检测像素的梯度绝对值gxy大于设定的绝对值阈值reg_dpc_edgeval,则确定被检测像素是位于图像边缘细节区域的第一类图像坏点;否则确定被检测像素是位于图像平坦区域的第二类图像坏点。
较佳地,在确定了图像坏点类型之后,本发明实施例还包括对被检测像素的像素值进行校正,具体包括:当确定被检测像素是位于图像边缘细节区域的第一类图像坏点后,分别将被检测像素的第一横向方向梯度值与第二横向方向梯度值相加,得到第三横向方向梯度值;将第一纵向方向梯度值与第二纵向方向梯度值相加,得到第三纵向方向梯度值;将第一左对角线方向梯度值与第二左对角线方向梯度值相加,得到第三左对角线方向梯度值;将第一右对角线方向梯度值与第二右对角线方向梯度值相加,得到第三右对角线方向梯度值;将被检测像素的第三横向方向梯度值,第三纵向方向梯度值,第三左对角线方向梯度值,第三右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向。如式(11)所示,为确定第三方向梯度值的方法:
其中,bs3_hdir为被检测像素的第三横向方向梯度值,bs1_hdir为被检测像素的第一横向方向梯度值,bs2_hdir为被检测像素的第二横向方向梯度值,bs3_vdir为被检测像素的第三纵向方向梯度值,bs1_vdir为被检测像素的第一纵向方向梯度值,bs2_vdir为被检测像素的第二纵向方向梯度值,bs3_ldir为被检测像素的第三左对角线方向梯度值,bs1_ldir为被检测像素的第一左对角线方向梯度值,bs2_ldir为被检测像素的第二左对角线方向梯度值,bs3_rdir为被检测像素的第三右对角线方向梯度值,bs1_rdir为被检测像素的第一右对角线方向梯度值,bs2_rdir为被检测像素的第二右对角线方向梯度值。
当确定被检测像素是位于图像平坦区域的第二类图像坏点后,分别确定被检测像素的第一横向方向梯度值,第一纵向方向梯度值,第一左对角线方向梯度值,第一右对角线方向梯度值;将被检测像素的第一横向方向梯度值,第一纵向方向梯度值,第一左对角线方向梯度值,第一右对角线方向梯度值进行比较,确定确定第一方向梯度值最小的方向为参考方向。
其中,确定检测窗口内不包含被检测像素的像素值计算得到的第一左对角线方向梯度值,第一右对角线方向梯度值,包括两种方法,下面分别进行介绍。
第一种方法。
确定检测窗口中左对角线上、且与被检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将绝对值作为被检测像素的第一左对角线方向梯度值;如式(12-1)所示,为被检测像素的第一左对角线方向梯度值的确定方法:
bs1_ldir=|pBayer[2p*(W+1)]-pBayer[-2p*(W+1)]| (12-1)
其中,bs1_ldir为被检测像素的第一左对角线方向梯度值,pBayer[2p*(W+1)]和pBayer[-2p*(W+1)]为被检测像素左对角线方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
确定检测窗口中右对角线上、且与被检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将绝对值作为被检测像素的第一右对角线方向梯度值;如式(13-1)所示,为被检测像素的第一右对角线方向梯度值的确定方法:
bs1_rdir=|pBayer[2p*(W-1)]-pBayer[-2p*(W-1)]| (13-1)
其中,bs1_rdir为被检测像素的第一右对角线方向梯度值,pBayer[2p*(W-1)]和pBayer[-2p*(W-1)]为被检测像素右对角线方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
第二种方法。
确定检测窗口中左对角线上、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,将该N对同色像素值的绝对值之和作为被检测像素的第一左对角线方向梯度值;如式(12-2)所示,为被检测像素的第一左对角线方向梯度值的确定方法:
其中,bs1_ldir为被检测像素的第一左对角线方向梯度值,pBayer[2pk*(W+1)]和pBayer[-2pk*(W+1)]为被检测像素左对角线方向上与被检测像素同色的N对像素中每一对像素的像素值,其中N为正整数,W为被检测像素所在帧图像的宽度。
确定检测窗口中右对角线上、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,将该N对同色像素值的绝对值之和作为被检测像素的第一右对角线方向梯度值;如式(13-2)所示,为被检测像素的第一右对角线方向梯度值的确定方法:
其中,bs1_rdir为被检测像素的第一右对角线方向梯度值,pBayer[2pk*(W-1)]和pBayer[-2pk*(W-1)]为被检测像素右对角线方向上与被检测像素同色的N对像素中每一对像素的像素值,其中N为正整数,W为被检测像素所在帧图像的宽度。
当确定出被检测像素的参考方向后,将确定的参考方向上与被检测像素相距2p个像素单位的同色像素的像素值取平均值,将取得的平均值作为被检测像素校正后的像素值,其中p为正整数。
若被检测像素确定的参考方向为横向方向,则被检测像素校正后的像素值如式(14)所示:
dpc_pBayer=(pBayer[2p]+pBayer[-2p])/2 (14)
其中,dpc_pBayer为被检测像素校正后的像素值,pBayer[2p]和pBayer[-2p]为被检测像素横向方向上与被检测像素相距2p个像素单位的一对同色像素的像素值。
若被检测像素确定的参考方向为纵向方向,则被检测像素校正后的像素值如式(15)所示:
dpc_pBayer=(pBayer[2p*W]+pBayer[-2p*W])/2 (15)
其中,dpc_pBayer为被检测像素校正后的像素值,pBayer[2p*W]和pBayer[-2p*W]为被检测像素纵向方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
若被检测像素确定的参考方向为左对角线方向,则被检测像素校正后的像素值如式(16)所示:
dpc_pBayer=(pBayer[2p*(W+1)]+pBayer[-2p*(W+1)])/2 (16)
其中,dpc_pBayer为被检测像素校正后的像素值,pBayer[2p*(W+1)]和pBayer[-2p*(W+1)]为被检测像素左对角线方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
若被检测像素确定的参考方向为右对角线方向,则被检测像素校正后的像素值如式(17)所示:
dpc_pBayer=(pBayer[2p*(W-1)]+pBayer[-2p*(W-1)])/2 (17)
其中,dpc_pBayer为被检测像素校正后的像素值,pBayer[2p*(W-1)]和pBayer[-2p*(W-1)]为被检测像素右对角线方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
当对被检测像素校正完成后,将校正后的像素值写入被检测像素中,使下一检测窗口获取当前检测窗口中被检测像素的像素值为校正后的像素值,并触发检测窗口移动。
较佳地,上述实施例中在计算方向梯度值和校正后像素值时,p取1时,是一种较优的实施方式,但是p为其他整数值,且也能满足本发明实施例要求的的取值,也在本发明欲保护的范围内。
如图4所示,为本发明实施例中一种检测被检测像素是否为图像坏点的方法,该方法包括:
步骤401:针对检测图像,将被检测像素作为检测窗口的中心;
步骤402:获取检测窗口内被检测像素以及与被检测像素颜色相同的同色像素的像素值;
步骤403:分别确定被检测像素与检测窗口内每一个同色像素的像素差值;
步骤404:统计像素差值大于第一像素差值阈值的同色像素的数量dpc_min和dpc_max,将dpc_min和dpc_max作为第一数量值;
步骤405:判断第一数量值dpc_min是否大于设定的第一数量阈值,若大于则执行步骤416,否则执行步骤406;
步骤406:判断第一数量值dpc_max是否大于设定的第一数量阈值,若大于则执行步骤416,否则执行步骤407;
步骤407:判断第一数量值dpc_min是否大于设定的第二数量阈值,若大于则执行步骤409,否则执行步骤408;
步骤408:判断第一数量值dpc_max是否大于设定的第二数量阈值,若大于则执行步骤409,否则执行步骤417;
步骤409:分别确定被检测像素与检测窗口内每一个同色像素的像素差值的绝对值;
步骤410:确定像素差值的绝对值小于设定的绝对值阈值的数量,作为第二数量值;
步骤411:判断确定的第二数量值是否小于设定的第三数量阈值,若小于,则执行步骤412,否则执行步骤417;
步骤412:判断被检测像素的像素值是否在设定的像素阈值范围内,若不在设定的阈值范围内,则执行步骤413,否则执行步骤417;
步骤413:确定检测窗口内包含被检测像素的第二横向方向梯度值,第二纵向方向梯度值,第二左对角线方向梯度值,以及第二右对角线方向梯度值;
步骤414:确定第二方向梯度值最小的方向为参考方向;
步骤415:判断参考方向的第二方向梯度值是否大于设定的第二方向梯度值阈值,若大于,则执行步骤416,否则执行步骤417;
步骤416:确定被检测像素为图像坏点,将图像坏点标识置为1,并结束本流程;
步骤417:确定被检测像素为正常像素,触发检测窗口移动,并结束本流程。
如图5所示,为本发明实施例中确定被检测像素为图像坏点后,确定图像坏点的类型的方法,该方法包括:
步骤501:确定被检测像素为图像坏点;
步骤502:分别确定检测窗口中不根据被检测像素的像素值计算得到的第一横向方向梯度值,第一纵向方向梯度值;
步骤503:将第一横向方向梯度值的绝对值与第一纵向方向梯度值的绝对值作和,得到第一方向梯度值绝对值之和;
步骤504:判断第一方向梯度值绝对值之和是否大于设定的第一方向梯度值绝对值阈值,若大于则执行步骤505,否则执行步骤506;
步骤505:确定被检测像素是位于图像边缘细节区域的图像坏点,并结束本流程;
步骤506:确定被检测像素是位于图像平坦区域的图像坏点,并结束本流程。
如图6所示,为本发明实施例中确定被检测像素为图像坏点后,对被检测像素进行校正的方法,该方法包括:
步骤601:判断被检测像素是否为图像边缘细节区域的图像坏点,若是,则执行步骤602,否则执行步骤609;
步骤602:分别确定被检测素根据被检测像素的像素值计算得到的第二横向方向梯度值,第二纵向方向梯度值,第二左对角线方向梯度值,第二右对角线方向梯度值;
步骤603:分别确定检测窗口中不根据被检测像素的像素值计算得到的第一横向方向梯度值,第一纵向方向梯度值,第一左对角线方向梯度值,第一右对角线方向梯度值;
步骤604:将被检测像素的第一横向方向梯度值与第二横向方向梯度值相加,得到第三横向方向梯度值;
步骤605:将第一纵向方向梯度值与第二纵向方向梯度值相加,得到第三纵向方向梯度值;
步骤606:将第一左对角线方向梯度值与第二左对角线方向梯度值相加,得到第三左对角线方向梯度值;
步骤607:将第一右对角线方向梯度值与第二右对角线方向梯度值相加,得到第三右对角线方向梯度值;
步骤608:将被检测像素的第三横向方向梯度值,第三纵向方向梯度值,第三左对角线方向梯度值,第三右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向,并执行步骤611;
步骤609:分别确定检测窗口中不根据被检测像素的像素值计算得到的第一横向方向梯度值,第一纵向方向梯度值,第一左对角线方向梯度值,第一右对角线方向梯度值;
步骤610:将被检测像素的第一横向方向梯度值,第一纵向方向梯度值,第一左对角线方向梯度值,第一右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向;
步骤611:获取确定的参考方向上与被检测像素相距2个像素单位的同色像素的像素值;
步骤612:将获取的同色像素的像素值取平均值,将取得的平均值作为被检测像素校正后的像素值,并结束本流程。
如图7所示,为本发明实施例中第一种确定第一方向梯度值的方法,该方法包括:
步骤701:确定检测窗口中与被检测像素在同一行、且与被检测像素相距2p个像素单位的一对同色像素的像素值;
步骤702:将确定的两个同一行同色像素的像素值作差取绝对值,将该绝对值作为被检测像素的第一横向方向梯度值;
步骤703:确定检测窗口中与被检测像素在同一列、且与被检测像素相距2p个像素单位的一对同色像素的像素值;
步骤704:将确定的两个同一列的同色像素的像素值作差取绝对值,将该绝对值作为被检测像素的第一纵向方向梯度值;
步骤705:确定检测窗口中左对角线上、且与被检测像素相距2p个像素单位的一对同色像素的像素值;
步骤706:将确定的两个检测窗口中左对角线上的同色像素的像素值作差取绝对值,将该绝对值作为被检测像素的第一左对角线方向梯度值;
步骤707:确定检测窗口中右对角线上、且与被检测像素相距2p个像素单位的一对同色像素的像素值;
步骤708:将确定的两个检测窗口中右对角线上的同色像素的像素值作差取绝对值,将该绝对值作为被检测像素的第一右对角线方向梯度值,并结束本流程。
如图8所示,为本发明实施例中第二种确定第一方向梯度值的方法,该方法包括:
步骤801:确定检测窗口中与被检测像素在同一行、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值;
步骤802:将确定的每一对同色像素值作差后取绝对值,将N对同色像素值的绝对值之和作为被检测像素的第一横向方向梯度值;
步骤803:确定检测窗口中与被检测像素在同一列、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值;
步骤804:将确定的每一对同色像素值作差后取绝对值,并将N对同色像素值的绝对值之和作为被检测像素的第一纵向方向梯度值;
步骤805:确定检测窗口中左对角线上、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值;
步骤806:将确定的每一对同色像素值作差后取绝对值,将N对同色像素值的绝对值之和作为被检测像素的第一左对角线方向梯度值;
步骤807:确定检测窗口中右对角线上、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值;
步骤808:将确定的每一对同色像素值作差后取绝对值,将该N对同色像素值的绝对值之和作为被检测像素的第一右对角线方向梯度值,并结束本流程。
上述实施例中,通过位于被检测像素的一侧的同色像素的像素值确定第一方向梯度值,也可以通过位于被检测像素的另一侧的同色像素的像素值确定第一方向梯度值。
如图9所示,为本发明实施例中第一种确定第二方向梯度值的方法,该方法包括:
步骤901:确定检测窗口中与被检测像素在同一行、且与被检测像素相距2p个像素单位的一对同色像素的像素值;
步骤902:将二倍的被检测像素的像素值与确定的一对同色像素的像素值之和作差取绝对值,将该绝对值作为被检测像素的第二横向方向梯度值;
步骤903:确定检测窗口中与被检测像素在同一列、且与被检测像素相距2p个像素单位的一对同色像素的像素值;
步骤904:将二倍的被检测像素的像素值与确定的一对同色像素的像素值之和作差取绝对值,将绝对值作为被检测像素的第二纵向方向梯度值;
步骤905:确定检测窗口中左对角线上、且与被检测像素相距2p个像素单位的一对同色像素的像素值;
步骤906:将二倍的被检测像素的像素值与确定的一对同色像素的像素值之和作差取绝对值,将绝对值作为被检测像素的第二左对角线方向梯度值;
步骤907:确定检测窗口中右对角线上、且与被检测像素相距2p个像素单位的一对同色像素的像素值;
步骤908:将二倍的被检测像素的像素值与确定的一对同色像素的像素值之和作差取绝对值,将绝对值作为被检测像素的第二右对角线方向梯度值,并结束本流程。
如图10所示,为本发明实施例中第二种确定第二方向梯度值的方法,该方法包括:
步骤1001:确定检测窗口中与被检测像素在同一行、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值;
步骤1002:将2N倍的被检测像素的像素值与确定的N对同色像素的像素值之和作差取绝对值,将该绝对值作为被检测像素的第二横向方向梯度值;
步骤1003:确定检测窗口中与被检测像素在同一列、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值;
步骤1004:将2N倍的被检测像素的像素值与确定的N对同色像素的像素值之和作差取绝对值,将绝对值作为被检测像素的第二纵向方向梯度值;
步骤1005:确定检测窗口中左对角线上、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值;
步骤1006:将2N倍的被检测像素的像素值与确定的N对同色像素的像素值之和作差取绝对值,将该绝对值作为被检测像素的第二左对角线方向梯度值;
步骤1007:确定检测窗口中右对角线上、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值;
步骤1008:将2N倍的被检测像素的像素值与确定的N对同色像素的像素值之和作差取绝对值,将绝对值作为被检测像素的第二右对角线方向梯度值,并结束本流程。
基于同一发明构思,本发明实施例中还提供了一种图像坏点的检测装置,由于该装置解决问题的原理与本发明实施例一种图像坏点的检测方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图11所示,为本发明实施例中一种图像坏点的检测装置,该装置包括图像坏点检测单元1101,方向梯度值计算单元1102,坏点类型确定单元1103:
图像坏点检测单元1101,用于针对检测图像,确定当前检测窗口中心的被检测像素为图像坏点;
方向梯度值计算单元1102,用于分别确定检测窗口内根据与该被检测像素同一行的同色像素的像素值计算得到的第一横向方向梯度值,以及根据与该被检测像素同一列的同色像素的像素值计算得到的第一纵向方向梯度值;
坏点类型确定单元1103,用于确定被检测像素的第一横向方向梯度值的绝对值与第一纵向方向梯度值的绝对值之和大于设定的绝对值阈值,则确定被检测像素为位于图像边缘细节区域的第一类图像坏点;否则,确定所述被检测像素为位于图像平坦区域的第二类图像坏点。
其中图像坏点的检测装置,还用于:通过拜耳滤镜,使传感器阵列上每一点只能采集到一种波长的光,光信号通过拜耳滤镜滤波后将光信号转化为电信号,经过数字化处理后,得到每个图像传感器对应的像素。
将被检测像素作为检测窗口的中心,检测窗口的大小为(4m+1)*(4m+1)大小的窗口,其中m为正整数。当检测窗口的部分窗口位于检测图像画面之外时,进行自动补图处理。其中,每次进行补图处理时,所补图像为2n行和/或2n列像素,n为正整数。如当检测窗口上部或下部部分窗口位于待检测图像之外时,每次复制2n行像素,且复制后的相邻两行的像素的排列顺序与原待检测图像的像素的排列方式相同;和/或,当检测窗口左侧或右侧部分窗口位于待检测图像之外时,每次复制2n列像素,且复制后的相邻两列的像素的排列顺序与原待检测图像的像素的排列方式相同;使检测窗口的全部窗口位于补图处理后的图像中。
图像坏点检测单元1101,具体用于:将被检测像素作为检测窗口的中心,获取检测窗口内被检测像素以及与被检测像素颜色相同的同色像素的像素值,并分别确定被检测像素与检测窗口内每一个同色像素的像素差值;统计像素差值大于第一像素差值阈值的同色像素的数量,作为第一数量值;确定第一数量值大于设定的第一数量阈值,则确定被检测像素为待检测图像的图像坏点。
通过式(1)或式(2)确定被检测像素与检测窗口内每一个同色像素的像素差值是否大于设定的像素差值阈值:
其中,pBayer[0]为被检测像素的像素值,pBayer[2x*W+2y]为检测窗口内与被检测像素颜色相同的同色像素的像素值,且pBayer[0]>pBayer[2x*W+2y],reg_hvdpc_diffval为像素差值阈值,x、y为整数,W为被检测像素所在帧图像的宽度,m为待检测窗口控制参数。
统计检测窗口中满足式(1)的,且与被检测像素同色的像素数量dpc_min,即满足式(1)时(x,y)的组合数,作为第一数量,判断第一数量是否大于设定的像素阈值,即判断dpc_min是否大于reg_dpc_maxnum。
其中,pBayer[0]为被检测像素的像素值,pBayer[2x*W+2y]为检测窗口内与被检测像素颜色相同的同色像素的像素值,且pBayer[2x*W+2y]>pBayer[0],reg_hvdpc_diffval为像素差值阈值,x、y为整数,W为被检测像素所在帧图像的宽度,m为待检测窗口控制参数。
统计检测窗口中满足式(2)的,且与被检测像素同色的像素数量dpc_max,即满足式(2)时(x,y)的组合数,作为第一数量,判断第一数量是否大于设定的像素阈值,即判断dpc_max是否大于reg_dpc_maxnum。
当确定检测窗口内的,与被检测像素同色的像素的第一数量值大于设定的第一数量阈值,即满足dpc_min>reg_dpc_maxnum或dpc_max>reg_dpc_maxnum时,则确定被检测像素为检测图像的图像坏点。
较佳地,图像坏点检测单元1101还用于:确定被检测像素同时满足以下四个条件,则确定被检测像素为图像坏点;若被检测像素不满足以下条件中的任意一个条件,则确定被检测像素为正常像素,触发移动检测窗口。
一、确定第一数量值不大于设定的第一数量阈值,但第一数量值大于设定的第二数量阈值;
二、分别确定被检测像素与检测窗口内每一个同色像素的像素差值的绝对值,确定像素差值的绝对值小于设定的绝对值阈值的数量,作为第二数量值,且确定第二数量值小于设定的第三数量阈值;
三、确定被检测像素的像素值不在设定的像素阈值范围内;
四、确定检测窗口内根据被检测像素,以及与被检测像素的同一行的同色像素的像素值计算得到的第二横向方向梯度值;确定检测窗口内根据被检测像素,以及与被检测像素的同一列的同色像素的像素值计算得到的第二纵向方向梯度值;确定检测窗口内根据被检测像素,以及检测窗口左对角线上与被检测像素同色的像素的像素值计算得到的第二左对角线方向梯度值;确定检测窗口内根据被检测像素,以及检测窗口右对角线上与被检测像素同色的像素的像素值计算得到的第二右对角线方向梯度值;确定梯度值最小的方向为参考方向;且确定参考方向的方向梯度值大于设定的方向梯度值的阈值;
则确定被检测像素为图像坏点;若被检测像素不满足上述条件中的任意一个条件,则确定被检测像素为正常像素,触发移动检测窗口。
确定第一数量值不大于设定的第一数量阈值,确定第一数量值大于设定的第二数量阈值,具体包括:确定检测窗口内的,与被检测像素同色的像素的第一数量值dpc_min<reg_dpc_maxnum,且dpc_max<reg_dpc_maxnum时,判断与被检测像素同色的像素的第一数量值dpc_min是否大于设定的第二数量阈值reg_dpc_diffnum,或第一数量值dpc_max是否大于设定的第二数量阈值reg_dpc_diffnum。其中,第二数量阈值reg_dpc_diffnum小于第一数量阈值reg_dpc_maxnum。
通过式(3)确定被检测像素与检测窗口内每一个同色像素的像素差值的绝对值是否大于设定的绝对值阈值:
其中,pBayer[0]为被检测像素的像素值,pBayer[2x*W+2y]为检测窗口内被检测像素的同色像素的像素值,reg_dpc_sameval为设定的绝对值阈值,x,y为整数,W为被检测像素所在帧图像的宽度,m为待检测窗口控制参数。
统计检测窗口中满足式(3)的,且与被检测像素同色的像素数量dpc_same,即满足式(3)时(x,y)的组合数,作为第二数量,判断第二数量是否大于设定的第三数量阈值,即判断dpc_same是否大于reg_dpc_samenum。
确定被检测像素的像素值不在设定的像素阈值范围内,包括:pBayer[0]>reg_hot_highval,或pBayer[0]<reg_hot_lowval,其中pBayer[0]为被检测像素的像素值,reg_hot_highval为像素阈值上限值,reg_hot_lowval为像素阈值下限值。
方向梯度值计算单元1102中,确定第二方向梯度值的方法有两种,下面分别进行介绍。
第一种确定第二方向梯度值的方法如下:
如式(4-1)所示,为被检测像素的第二横向方向梯度值的确定方法:
bs2_hdir=|2*pBayer[0]-pBayer[2p]-pBayer[-2p]| (4-1)
其中,bs2_hdir为被检测像素的第二横向方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2p]和pBayer[-2p]为被检测像素横向方向上与被检测像素相距2p个像素单位的一对同色像素的像素值。
如式(5-1)所示,为被检测像素的第二纵向方向梯度值的确定方法:
bs2_vdir=|2*pBayer[0]-pBayer[2p*W]-pBayer[-2p*W]| (5-1)
其中,bs2_vdir为被检测像素的第二纵向方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2p*W]和pBayer[-2p*W]为被检测像素纵向方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
如式(6-1)所示,为被检测像素的第二左对角线方向梯度值的确定方法:
bs2_ldir=|2*pBayer[0]-pBayer[2p*(W+1)]-pBayer[-2p*(W+1)]| (6-1)
其中,bs2_ldir为被检测像素的第二左对角线方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2p*(W+1)]和pBayer[-2p*(W+1)]为被检测像素左对角线方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
如式(7-1)所示,为被检测像素的第二右对角线方向梯度值的确定方法:
bs2_rdir=|2*pBayer[0]-pBayer[2p*(W-1)]-pBayer[-2p*(W-1)]| (7-1)
其中,bs2_rdir为被检测像素的第二右对角线方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2p*(W-1)]和pBayer[-2p*(W-1)]为被检测像素右对角线方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
第二种确定第二方向梯度值的方法如下:
如式(4-2)所示,为被检测像素的第二横向方向梯度值的确定方法:
其中,bs2_hdir为被检测像素的第二横向方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2pk]和pBayer[-2pk]为被检测像素横向方向上与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素中每个同色像素的像素值,N为正整数。
如式(5-2)所示,为被检测像素的第二纵向方向梯度值的确定方法:
其中,bs2_vdir为被检测像素的第二纵向方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2pk*W]和pBayer[-2pk*W]为被检测像素纵向方向上与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素中每个同色像素的像素值,N为正整数,W为被检测像素所在帧图像的宽度。
如式(6-2)所示,为被检测像素的第二左对角线方向梯度值的确定方法:
其中,bs2_ldir为被检测像素的第二左对角线方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2pk*(W+1)]和pBayer[-2pk*(W+1)]为被检测像素左对角线方向上与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素中每个同色像素的像素值,N为正整数,W为被检测像素所在帧图像的宽度。
如式(7-2)所示,为被检测像素的第二右对角线方向梯度值的确定方法:
其中,bs2_rdir为被检测像素的第二右对角线方向梯度值,pBayer[0]为被检测像素的像素值,pBayer[2pk*(W-1)]和pBayer[-2pk*(W-1)]为被检测像素右对角线方向上与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素中每个同色像素的像素值,N为正整数,W为被检测像素所在帧图像的宽度。
根据被检测像素的第二横向方向梯度值,第二纵向方向梯度值,第二左对角线方向梯度值,以及第二右对角线方向梯度值,确定梯度值最小的方向为参考方向,判断参考方向的方向梯度值bs2_mindir是否大于设定的方向梯度值阈值reg_dpc_mindirval。
当确定被检测像素同时满足以下条件时,则确定被检测像素为图像坏点:
发检测窗口移动。
方向梯度值计算单元1102中确定检测窗口内不包含被检测像素的第一横向方向梯度值,第一纵向方向梯度值,包括两种方法,下面分别进行介绍:
第一种方法。
将检测窗口中横向方向上与被检测像素相距2p个像素单位的一对同色像素的像素值之差取平均值,作为点检测像素的第一横向方向梯度值,被检测像素的第一横向方向梯度值的计算方法如式(8-1)所示:
bs1_hdir=|pBayer[2p]-pBayer[-2p]| (8-1)
其中,bs1_hdir为被检测像素的第一横向方向梯度值,pBayer[2p]和pBayer[-2p]为被检测像素横向方向上与被检测像素相距2p个像素单位的一对同色像素的像素值。
被检测像素的第一纵向方向梯度值的计算方法如式(9-1)所示:
bs1_vdir=|pBayer[2p*W]-pBayer[-2p*W]| (9-1)
其中,bs1_vdir为被检测像素的第一纵向方向梯度值,pBayer[2p*W]和pBayer[-2p*W]为被检测像素纵向方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
第二种方法。
确定检测窗口中与被检测像素在同一行、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,将该N对同色像素值的绝对值之和作为被检测像素的第一横向方向梯度值;被检测像素的第一横向方向梯度值的计算方法如式(8-2)所示:
其中,bs1_hdir为被检测像素的第一横向方向梯度值,pBayer[2pk]和pBayer[-2pk]为被检测像素横向方向上与被检测像素同色的N对像素中每一对像素的像素值,其中N为正整数。
确定检测窗口中与被检测像素在同一列、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,将该N对同色像素值的绝对值之和作为被检测像素的第一纵向方向梯度值;被检测像素的第一纵向方向梯度值的计算方法如式(9-2)所示:
其中,bs1_vdir为被检测像素的第一纵向方向梯度值,pBayer[2pk*W]和pBayer[-2pk*W]为被检测像素纵向方向上与被检测像素同色的N对像素中每一对像素的像素值,其中N为正整数,W为被检测像素所在帧图像的宽度。
坏点类型确定单元1103具体用于:确定被检测像素的第一横向方向梯度值的绝对值与第一纵向方向梯度值的绝对值之和,作为梯度绝对值,如式(10)所示:
gxy=|bs1_hdir|+|bs1_vdir| (10)
其中,bs1_hdir为被检测像素的第一横向方向梯度值,bs1_vdir为被检测像素的第一纵向方向梯度值。
当确定被检测像素的梯度绝对值gxy大于设定的绝对值阈值reg_dpc_edgeval,则确定被检测像素是位于图像边缘细节区域的第一类图像坏点;否则确定被检测像素是位于图像平坦区域的第二类图像坏点。
较佳地,如图12所示该装置还包括校正单元1201,具体用于:当确定被检测像素是位于图像边缘细节区域的第一类图像坏点后,分别将被检测像素的第一横向方向梯度值与第二横向方向梯度值相加,得到第三横向方向梯度值;将第一纵向方向梯度值与第二纵向方向梯度值相加,得到第三纵向方向梯度值;将第一左对角线方向梯度值与第二左对角线方向梯度值相加,得到第三左对角线方向梯度值;将第一右对角线方向梯度值与第二右对角线方向梯度值相加,得到第三右对角线方向梯度值;将被检测像素的第三横向方向梯度值,第三纵向方向梯度值,第三左对角线方向梯度值,第三右对角线方向梯度值进行比较,确定梯度值最小的方向为参考方向。如图13所示,为一个检测窗口中4个获取方向梯度值的方向,其中黑色方块为被检测像素,hdir为梯度值横向方向、ldir为梯度值左对角线、rdir为梯度值右对角线、vdir为梯度纵向方向。如式(11)所示,为确定第三方向梯度值的方法:
其中,bs3_hdir为被检测像素的第三横向方向梯度值,bs1_hdir为被检测像素的第一横向方向梯度值,bs2_hdir为被检测像素的第二横向方向梯度值,bs3_vdir为被检测像素的第三纵向方向梯度值,bs1_vdir为被检测像素的第一纵向方向梯度值,bs2_vdir为被检测像素的第二纵向方向梯度值,bs3_ldir为被检测像素的第三左对角线方向梯度值,bs1_ldir为被检测像素的第一左对角线方向梯度值,bs2_ldir为被检测像素的第二左对角线方向梯度值,bs3_rdir为被检测像素的第三右对角线方向梯度值,bs1_rdir为被检测像素的第一右对角线方向梯度值,bs2_rdir为被检测像素的第二右对角线方向梯度值。
当确定被检测像素是位于图像平坦区域的第二类图像坏点后,分别确定被检测像素的第一横向方向梯度值,第一纵向方向梯度值,第一左对角线方向梯度值,第一右对角线方向梯度值;将被检测像素的第一横向方向梯度值,第一纵向方向梯度值,第一左对角线方向梯度值,第一右对角线方向梯度值进行比较,确定确定第一方向梯度值最小的方向为参考方向。
其中,方向梯度值计算单元1102中确定检测窗口内不包含被检测像素的第一左对角线方向梯度值,第一右对角线方向梯度值,包括两种方法,下面分别进行介绍。
第一种方法。
确定检测窗口中左对角线上、且与被检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将绝对值作为被检测像素的第一左对角线方向梯度值;如式(12-1)所示,为被检测像素的第一左对角线方向梯度值的确定方法:
bs1_ldir=|pBayer[2p*(W+1)]+pBayer[-2p*(W+1)]| (12-1)
其中,bs1_ldir为被检测像素的第一左对角线方向梯度值,pBayer[2p*(W+1)]和pBayer[-2p*(W+1)]为被检测像素左对角线方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
确定检测窗口中右对角线上、且与被检测像素相距2p个像素单位的一对同色像素的像素值,将确定的两个像素值作差取绝对值,将绝对值作为被检测像素的第一右对角线方向梯度值;如式(13-1)所示,为被检测像素的第一右对角线方向梯度值的确定方法:
bs1_rdir=|pBayer[2p*(W-1)]+pBayer[-2p*(W-1)]| (13-1)
其中,bs1_rdir为被检测像素的第一右对角线方向梯度值,pBayer[2p*(W-1)]和pBayer[-2p*(W-1)]为被检测像素右对角线方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
第二种方法。
确定检测窗口中左对角线上、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,将该N对同色像素值的绝对值之和作为被检测像素的第一左对角线方向梯度值;如式(12-2)所示,为被检测像素的第一左对角线方向梯度值的确定方法:
其中,bs1_ldir为被检测像素的第一左对角线方向梯度值,pBayer[2pk*(W+1)]和pBayer[-2pk*(W+1)]为被检测像素左对角线方向上与被检测像素同色的N对像素中每一对像素的像素值,其中N为正整数,W为被检测像素所在帧图像的宽度。
确定检测窗口中右对角线上、且与被检测像素相距2pk(1≤k≤N)个像素单位的N对同色像素的像素值,将确定的每一对同色像素值作差后取绝对值,将该N对同色像素值的绝对值之和作为被检测像素的第一右对角线方向梯度值;如式(13-2)所示,为被检测像素的第一右对角线方向梯度值的确定方法:
其中,bs1_rdir为被检测像素的第一右对角线方向梯度值,pBayer[2pk*(W-1)]和pBayer[-2pk*(W-1)]为被检测像素右对角线方向上与被检测像素同色的N对像素中每一对像素的像素值,其中N为正整数,W为被检测像素所在帧图像的宽度。
当确定出被检测像素的参考方向后,将确定的参考方向上与被检测像素相距2p个像素单位的同色像素的像素值取平均值,将取得的平均值作为被检测像素校正后的像素值,其中p为正整数。
若被检测像素确定的参考方向为横向方向,则被检测像素校正后的像素值如式(14)所示:
dpc_pBayer=(pBayer[2p]+pBayer[-2p])/2 (14)
其中,dpc_pBayer为被检测像素校正后的像素值,pBayer[2p]和pBayer[-2p]为被检测像素横向方向上与被检测像素相距2p个像素单位的一对同色像素的像素值。
若被检测像素确定的参考方向为纵向方向,则被检测像素校正后的像素值如式(15)所示:
dpc_pBayer=(pBayer[2p*W]+pBayer[-2p*W])/2 (15)
其中,dpc_pBayer为被检测像素校正后的像素值,pBayer[2p*W]和pBayer[-2p*W]为被检测像素纵向方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
若被检测像素确定的参考方向为左对角线方向,则被检测像素校正后的像素值如式(16)所示:
dpc_pBayer=(pBayer[2p*(W+1)]+pBayer[-2p*(W+1)])/2 (16)
其中,dpc_pBayer为被检测像素校正后的像素值,pBayer[2p*(W+1)]和pBayer[-2p*(W+1)]为被检测像素左对角线方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
若被检测像素确定的参考方向为右对角线方向,则被检测像素校正后的像素值如式(17)所示:
dpc_pBayer=(pBayer[2p*(W-1)]+pBayer[-2p*(W-1)])/2 (17)
其中,dpc_pBayer为被检测像素校正后的像素值,pBayer[2p*(W-1)]和pBayer[-2p*(W-1)]为被检测像素右对角线方向上与被检测像素相距2p个像素单位的一对同色像素的像素值,W为被检测像素所在帧图像的宽度。
当对被检测像素校正完成后,将校正后的像素值写入被检测像素中,使下一检测窗口获取当前检测窗口中被检测像素的像素值为校正后的像素值,并触发检测窗口移动。
较佳地,上述实施例中在计算方向梯度值和校正后像素值时,p取1时,是一种较优的实施方式,但是p为其他整数值,且也能满足本发明实施例要求的的取值,也在本发明欲保护的范围内。
如图14a和14b所示,为采用本发明实施例中的装置对随机坏点进行图像坏点检测和校正前后的对比示意图,图14a为随机坏点检测和校正前的检测图像示意图,图14b为随机坏点检测和校正后的检测图像示意图,图15a和15b所示,为采用本发明实施例中的装置对聚类坏点进行图像坏点检测和校正前后的对比示意图,图15a为聚类坏点检测和校正前的检测图像示意图,图15b为聚类坏点检测和校正后的检测图像示意图。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。