用于手机屏幕缺陷检测相机自适应步长DPC算法及装置
技术领域
本申请涉及屏幕缺陷检测技术领域,特别涉及一种用于手机屏幕缺陷检测相机自适应步长DPC算法及装置。
背景技术
手机屏在生产的过程中,可能存在灰尘划痕等缺陷,这些问题应当在屏幕出厂时被检测出来。目前常用的缺陷检测办法如下:首先让手机显示蓝色、绿色、红色、黑色、灰色等纯色图像,然后利用工业相机拍摄手机屏幕的图像,最后采用基于图像处理技术的缺陷检测算法,检测出屏幕的缺陷。这就需要保证用于屏幕缺陷检测的相机不能有坏点、坏线。坏点是由于相机本身的Sensor造成的,反应在最终的图片上往往表现为过亮或过暗的点。连续的坏点组成的线叫做坏线。所以如果不在相机输出图像时把坏点校正掉,这个坏点就有可能会被缺陷检测算法误认为是缺陷,造成错误。消除坏点的算法称为DPC算法。
手机屏幕根据发光原理可以分为OLED屏与LCD屏,根据组成像素的子像素颜色的不同,又可分为RGB与RGBW两种屏幕。各种屏幕的像素分布是均匀分布的,所以当手机屏幕显示的颜色为纯色时,相机采集到的图像是呈周期分布的,其分布规律与手机像素分布相同,比如手机屏幕显示蓝色时,相机拍摄的屏幕图像,反应的就是蓝色像素的分布规律。所以如果手机屏幕与其所成的像的分辨率相同,且屏幕图像中位于(x,y)的某个像素是坏点,则可以用与其最近的像素,即位于(x-1,y)处的像素的灰度值来替代该点灰度值即可。
但由于相机镜头放大倍率的不同,导致屏幕在相机中所成的像的分辨率与手机实际的分辨率不同。手机屏幕的一个像素可能对应的图像中的多个像素。所以实际校正中不能直接用(x-1,y)的灰度值来替代(x,y)处的灰度值。假设手机屏幕上的一个像素,经相机成像后由3×3的像素表示,则(x,y)处的灰度值应该用(x-3,y)处的替代,此时这个3称作校正步长,简称步长;若调整相机位置与镜头放大倍率,则经相机成像后,图像表示屏幕上一个点所用的像素点增多,例如需要9×9的像素块表示,此时(x,y)处的灰度值就应用(x-9,y)处的值来替代。如果手机屏幕的一个像素经相机成像后用3×3个像素表示,则称放大比例为3。容易得出只有放大倍率与步长相等时才能正确校正。
但是固定步长的DPC算法就是由用户将校正所需要的放大比例输入相机作为校正时的校正步长。这种方法存在以下两个问题:步长过度依赖放大倍率,如果放大倍率更改,则步长要相应修改。步长过度依赖屏幕像素的分布,在一种像素分布下计算的步长,并不能用于另外一个屏幕的校正。如RGBW屏幕的步长与RGB屏幕的不能混用。
发明内容
本申请的目的在于提供一种用于手机屏幕缺陷检测相机自适应步长DPC算法及装置,以解决现有DPC算法中步长过度依赖放大倍率和屏幕像素的分布的问题。
第一方面,根据本申请的实施例,提供了一种用于手机屏幕缺陷检测相机自适应步长DPC算法,包括:
获取坏点坐标;
遍历图片像素;
判断当前像素的坐标是否为所述坏点坐标;
如果当前像素的坐标不是所述坏点坐标,判断所述当前像素是否为屏幕区像素;
如果所述当前像素为屏幕区像素,根据预设数量的所述屏幕区像素计算当前步长;
如果所述当前像素的坐标是所述坏点坐标,根据所述当前步长校正所述当前像素。
结合第一方面,在第一方面的第一种可实现方式中,所述判断当前像素是否为屏幕区像素的步骤包括:
判断所述当前像素的灰度值是否大于20;
如果所述当前像素的灰度值大于20,所述当前像素为屏幕区像素;
如果所述当前像素的灰度值小于或等于20,所述当前像素为背景区像素。
结合第一方面,在第一方面的第二种可实现方式中,所述根据预设数量的屏幕区像素计算当前步长的步骤,包括:
计算所述屏幕区像素与预设列像素的灰度差绝对值;
将所述灰度差绝对值累加到对应的步长偏差统计值,得到步长偏差统计值数组;
选取所述步长偏差统计值数组中步长偏差统计最小值对应的步长为当前步长。
结合第一方面,在第一方面的第三种可实现方式中,所述算法还包括:
判断行计数是否改变;
如果所述行计数改变,初始化所述步长偏差统计值数组。
结合第一方面,在第一方面的第四种可实现方式中,所述算法还包括:
如果所述当前像素不是屏幕区像素,初始化所述步长偏差统计值数组。
结合第一方面,在第一方面的第五种可实现方式中,所述根据当前步长校正当前像素的步骤包括:
判断左侧像素和右侧像素是否为坏点,所述当前像素与所述左侧像素的列数差值为所述当前步长,所述右侧像素与所述当前像素的列数差值为当前步长;
如果所述左侧像素和所述右侧像素均不为坏点,利用所述右侧像素和所述左侧像素的灰度均值校正所述当前像素;
如果所述左侧像素为坏点,所述右侧像素不为坏点,利用所述右侧像素灰度值校正所述当前像素;
如果所述右侧像素为坏点,所述左侧像素不为坏点,利用所述左侧像素灰度值校正所述当前像素。
结合第一方面,在第一方面的第五种可实现方式中,所述根据当前步长校正当前像素的步骤,还包括:
如果所述左侧像素和所述右侧像素均为坏点;
判断上侧像素和下侧像素是否为坏点,所述当前像素与所述上侧像素的行数差值为所述当前步长,所述下侧像素与所述当前像素的行数差值为当前步长;
如果所述上侧像素和所述下侧像素均不为坏点,利用所述上侧像素和所述下侧像素的灰度均值校正所述当前像素;
如果所述上侧像素为坏点,所述下侧像素不为坏点,利用所述下侧像素灰度值校正所述当前像素;
如果所述下侧像素为坏点,所述上侧像素不为坏点,利用所述上侧像素灰度值校正所述当前像素。
第二方面,根据本申请的实施例,提供了一种用于手机屏幕缺陷检测相机自适应步长DPC装置,包括:
获取单元,用于获取坏点坐标;
遍历单元,用于遍历图片像素;
第一判断单元,用于判断当前像素的坐标是否为所述坏点坐标;
第二判断单元,用于如果当前像素的坐标不是所述坏点坐标,判断所述当前像素是否为屏幕区像素;
步长计算单元,用于如果所述当前像素为屏幕区像素,根据预设数量的所述屏幕区像素计算当前步长;
校正单元,用于如果所述当前像素的坐标是所述坏点坐标,根据所述当前步长校正所述当前像素。
由以上技术方案可知,本申请实施例提供了一种用于手机屏幕缺陷检测相机自适应步长DPC算法及装置,所述算法包括:获取坏点坐标;遍历图片像素;判断当前像素的坐标是否为所述坏点坐标;如果当前像素的坐标不是所述坏点坐标,判断所述当前像素是否为屏幕区像素;如果所述当前像素为屏幕区像素,根据预设数量的所述屏幕区像素计算当前步长;如果所述当前像素的坐标是所述坏点坐标,根据所述当前步长校正所述当前像素。本申请消除现有DPC对相机调试时放大倍率(对应DPC中的步长)的依赖,即可以在任意放大倍率下进行DPC;消除现有DPC对手机屏幕类型的依赖,可以随意更换被检测屏幕,而无需重新标定校正步长。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请实施例示出的一种用于手机屏幕缺陷检测相机自适应步长DPC算法的流程图;
图2为根据本申请实施例示出的被检测屏幕的部分区域的示意图;
图3为根据本申请实施例示出的一种相机获取到手机屏幕图片的示意图;
图4为根据本申请实施例示出的一种用于手机屏幕缺陷检测相机自适应步长DPC装置的结构框图。
具体实施方式
参阅图1,本申请实施例提供了一种用于手机屏幕缺陷检测相机自适应步长DPC算法,包括:
步骤S1、获取坏点坐标;
在校正坏点之前,首先将坏点坐标储存到相机中。
步骤S2、遍历图片像素;
步骤S3、判断当前像素的坐标是否为所述坏点坐标;
将坏点坐标存到了一个坏点表中,每读取一个像素通过行计数和列计数将其坐标与坏点表中的坏点坐标做对比。如果当前像素的坐标为坏点坐标,则当前像素为坏点,如果当前像素的坐标不是坏点坐标,则当前像素不是坏点。
如果当前像素的坐标不是所述坏点坐标,执行步骤S4、判断所述当前像素是否为屏幕区像素;
如果所述当前像素为屏幕区像素,执行步骤S5、根据预设数量的所述屏幕区像素计算当前步长;
参与计算的像素的个数越多,当前步长的计算越准确。屏幕区像素个数建议取200。经大量实践表明预设数量取200时,便可得到较好的结果。
如果所述当前像素的坐标是所述坏点坐标,步骤S6、根据所述当前步长校正所述当前像素。
以200个屏幕区像素为例,每200个像素计算一次步长,后一次计算的步长覆盖前一次计算的步长。在相机实际获取手机屏幕图片的过程中,由于手机放置不当等原因导致手机并不处于水平状态,即手机屏幕所在平面与相机镜头所在平面不平行,导致像素分布与正常像素分布有所差异,越靠近坏点的屏幕区像素计算的步长越为准确。当前像素的坐标是所述坏点坐标,即当前像素是坏点,在校正时利用最新计算的步长(即当前步长)校正。
由以上技术方案可知,本申请实施例提供了一种用于手机屏幕缺陷检测相机自适应步长DPC算法,包括:获取坏点坐标;遍历图片像素;判断当前像素的坐标是否为所述坏点坐标;如果当前像素的坐标不是所述坏点坐标,判断所述当前像素是否为屏幕区像素;如果所述当前像素为屏幕区像素,根据预设数量的所述屏幕区像素计算当前步长;如果所述当前像素的坐标是所述坏点坐标,根据所述当前步长校正所述当前像素。本申请消除现有DPC对相机调试时放大倍率(对应DPC中的步长)的依赖,即可以在任意放大倍率下进行DPC;消除现有DPC对手机屏幕类型的依赖,可以随意更换被检测屏幕,而无需重新标定校正步长。
在一些实施例中,所述判断当前像素是否为屏幕区像素的步骤包括:
判断所述当前像素的灰度值是否大于20;
如果所述当前像素的灰度值大于20,所述当前像素为屏幕区像素;
如果所述当前像素的灰度值小于或等于20,所述当前像素为背景区像素。
在相机采集手机屏幕图片的过程中,相机不仅能采集到手机屏幕的图片,而且不可避免的还能采集到手机屏幕周围的背景照片。通过判断当前像素灰度值是否大于20可判断当前像素是否在屏幕区内,从而避免背景区像素对步长计算的干扰,提高当前步长计算的准确性。
在一些实施例中,所述根据预设数量的屏幕区像素计算当前步长的步骤,包括:
计算所述屏幕区像素与预设列像素的灰度差绝对值;
即计算当前像素点f(x,y),与f(x,y-Δy)的差的绝对值,其中Δy=1,…N,N为极限步长。
将所述灰度差绝对值累加到对应的步长偏差统计值,得到步长偏差统计值数组;
即将其累加到对应的Sum_deviation,得到步长偏差统计值数组。
Sum_deviation[Δy]=Sum_deviation[Δy]+|f(x,y)-f(x,y-Δy)|
选取所述步长偏差统计值数组中步长偏差统计最小值对应的步长为当前步长。
即找到Sum_deviation[Δy]取得最小值时Δy的取值T。
需要说明的是,上述方法推导过程如下:定义屏幕区像素f(x,y)为图片在点(x,y)处的像素灰度值,x是行索引,y是列索引。
预设列像素f(x,y-Δy)为图片在点(x,y-Δy)处的像素灰度值。
假设Δf为f(x,y)与f(x,y-Δy)之间的理论差值,noise为噪声带来的偏差,其中Δy>0,则有
f(x,y)-f(x,y-Δy)=Δf+noise (1)
已知屏幕所成的像其像素是均匀分布的,故f(x,y)为周期函数,若周期为T,即步长为T。则理论上有:
f(x,y)=f(x,y-T) (2)
考虑图像噪声则有
f(x,y)-f(x,y-T)=noise (3)
若假设噪声为常数,由(1),(3)则有
|f(x,y)-f(x,y-T)|≤|f(x,y)-f(x,y-Δy)|,Δy≠T (4)
所以,若极限步长为N(即已知可能的最大周期,建议将其设为8或9)。则可令Δy分别取1,2,…,N,分别计算像素差值的绝对值,见式(5):
deviation[x][Δy]=|f(x,y)-f(x,y-Δy)| (5)
该公式计算出的最小值对应的Δy即为步长T。
考虑到噪声noise不可能为常数,所以为了降低noise的干扰,对同一个Δy求取多个|f(x,y)-f(x,y-Δy)|,然后求和,见式(6)
上式中的indexStart为开始统计的像素的列索引,indexStart一般取值为进入屏幕区域的第一个像素的列索引再加上N。上式中的pixelCount为参与计算的像素的个数,即预设数量,建议取200。pixelCount越大,步长计算结果越准确,但是一般取200时,便可得到较好的结果。找到Sum_deviation[Δy]的最小值对应的Δy取值,即为步长T。
以下是计算当前步长的具体实施方式。图2是被检测屏幕的部分区域的示意图。其中,f(1,21)列为坏列。很容易发现本图的步长为3。下面通过该例具体分析。
假设算法的极限步长为8,如果要校正f(1,21)这个坏点,则沿第一行遍历像素。当y<8时不做任何的处理。
当y=9时即像素遍历到第一行第九列的位置时,计算Sum_deviation[Δy]得
Sum_deviation[1]=|f(1,9)-f(1,8)|=0,Δy=1
Sum_deviation[2]=|f(1,9)-f(1,7)|=50,Δy=2
Sum_deviation[3]=|f(1,9)-f(1,6)|=0,Δy=3
Sum_deviation[4]=|f(1,9)-f(1,5)|=0,Δy=4
Sum_deviation[5]=|f(1,9)-f(1,4)|=50,Δy=5
Sum_deviation[6]=|f(1,9)-f(1,3)|=0,Δy=6
Sum_deviation[7]=|f(1,9)-f(1,2)|=0,Δy=7
Sum_deviation[8]=|f(1,9)-f(1,1)|=50,Δy=8
当像素y=10时计算:
Sum_deviation[1]=|f(1,9)-f(1,8)|+|f(1,10)-f(1,9)|=0+50=50,Δy=1
Sum_deviation[2]=|f(1,9)-f(1,7)|+|f(1,10)-f(1,8)|=50+50=100,Δy=2
Sum_deviation[3]=|f(1,9)-f(1,6)|+|f(1,10)-f(1,7)|=0+0=0,Δy=3
Sum_deviation[4]=|f(1,9)-f(1,5)|+|f(1,10)-f(1,6)|=0+50=50,Δy=4
Sum_deviation[5]=|f(1,9)-f(1,4)|+|f(1,10)-f(1,5)|=50+50=100,Δy=5
Sum_deviation[6]=|f(1,9)-f(1,3)|+|f(1,10)-f(1,4)|=0+0=0,Δy=6
Sum_deviation[7]=|f(1,9)-f(1,2)|+|f(1,10)-f(1,3)|=0+50=50,Δy=7
Sum_deviation[8]=|f(1,9)-f(1,1)|+|f(1,10)-f(1,2)|=50+50=100,Δy=8
当像素索引y=11时有
Sum_deviation[1]=|f(1,9)-f(1,8)|+|f(1,10)-f(1,9)|+|f(1,11)-f(1,10)|=0+50+50=100,Δy=1
Sum_deviation[2]=|f(1,9)-f(1,7)|+|f(1,10)-f(1,8)|+|f(1,11)-f(1,9)|=50+50+0=100,Δy=2
Sum_deviation[3]=|f(1,9)-f(1,6)|+|f(1,10)-f(1,7)|+|f(1,11)-f(1,8)|=0+0+0=0,Δy=3
Sum_deviation[4]=|f(1,9)-f(1,5)|+|f(1,10)-f(1,6)|+|f(1,11)-f(1,7)|=0+50+50=100,Δy=4
Sum_deviation[5]=|f(1,9)-f(1,4)|+|f(1,10)-f(1,5)|+|f(1,11)-f(1,6)|=50+50+0=100,Δy=5
Sum_deviation[6]=|f(1,9)-f(1,3)|+|f(1,10)-f(1,4)|+|f(1,11)-f(1,5)|=0+0+0=0,Δy=6
Sum_deviation[7]=|f(1,9)-f(1,2)|+|f(1,10)-f(1,3)|+|f(1,11)-f(1,4)|=0+50+50=100,Δy=7
Sum_deviation[8]=|f(1,9)-f(1,1)|+|f(1,10)-f(1,2)|+|f(1,11)-f(1,3)|=50+50+0=100,Δy=8
依次类推,一直到y=20时
Sum_deviation[1]=400,Δy=1
Sum_deviation[2]=450,Δy=2
Sum_deviation[3]=0,Δy=3
Sum_deviation[4]=400,Δy=4
Sum_deviation[5]=450,Δy=5
Sum_deviation[6]=0,Δy=6
Sum_deviation[7]=400,Δy=7
Sum_deviation[8]=450,Δy=8
y=20时,找到Sum_deviation取得最小值时对应的最小Δy,即为步长,由上式可知步长为3及其倍数时偏差最小,理论值为0,所以列步长为3。需要说明的是,理想状态下需要类推到y=209。
在一些实施例中,所述算法还包括:
判断行计数是否改变;
如果所述行计数改变,初始化所述步长偏差统计值数组。
本实施例具体的步骤包括:
获取坏点坐标;
遍历图片像素;
判断行计数是否改变;
如果所述行计数改变,初始化所述步长偏差统计值数组。
判断当前像素的坐标是否为所述坏点坐标;
如果当前像素的坐标不是所述坏点坐标,判断所述当前像素是否为屏幕区像素;
如果所述当前像素为屏幕区像素,根据预设数量的所述屏幕区像素计算当前步长;
所述根据预设数量的屏幕区像素计算当前步长的步骤,包括:计算所述屏幕区像素与预设列像素的灰度差绝对值;将所述灰度差绝对值累加到对应的步长偏差统计值,得到步长偏差统计值数组;选取所述步长偏差统计值数组中步长偏差统计最小值对应的步长为当前步长。
如果所述当前像素的坐标是所述坏点坐标,根据所述当前步长校正所述当前像素。
每一行的步长应该单独计算,后一行处理是不能利用前一行的步长偏差统计值,即Sum_deviation[x],所以应该将所有步长偏差统计值以及变量重新设置为初始值,完成初始化。
每一行的步长应该单独计算,后一行处理是不利用前一行的步长偏差统计值,可减少上述情况给步长计算带来的误差,提高步长计算的准确性,从而提高坏点校正的准确性。
在一些实施例中,所述算法还包括:
如果所述当前像素不是屏幕区像素,初始化所述步长偏差统计值数组。
本实施例具体的步骤包括:
获取坏点坐标;
遍历图片像素;
判断当前像素的坐标是否为所述坏点坐标;
如果当前像素的坐标不是所述坏点坐标,判断所述当前像素是否为屏幕区像素;
如果所述当前像素为屏幕区像素,根据预设数量的所述屏幕区像素计算当前步长;
所述根据预设数量的屏幕区像素计算当前步长的步骤,包括:计算所述屏幕区像素与预设列像素的灰度差绝对值;将所述灰度差绝对值累加到对应的步长偏差统计值,得到步长偏差统计值数组;选取所述步长偏差统计值数组中步长偏差统计最小值对应的步长为当前步长;
如果所述当前像素不是屏幕区像素,初始化所述步长偏差统计值数组;
如果所述当前像素的坐标是所述坏点坐标,根据所述当前步长校正所述当前像素。
参阅图3,图3是一种相机获取到手机屏幕图片的示意图。根据像素的灰度值是否大于20来判断是否该像素是否在屏幕内。图3中的白色区域的灰度值大于20,但是实际上并不在屏幕范围内,白色区域可判断为噪声。在计算当前步长的过程中,白色区域的噪声会参与到当前步长的计算中,影响当前步长计算的准确性。采用如果所述当前像素不是屏幕区像素,初始化所述步长偏差统计值数组的方式可以避免非屏幕区的噪声统计值参与到当前步长的计算中,提高步长计算的准确性,从而提高坏点校正的准确性。需要说明的是,上述方法适用于非屏幕区的噪声不与屏幕区图片连为一体。
在一些实施例中,所述根据当前步长校正当前像素的步骤包括:
判断左侧像素和右侧像素是否为坏点,所述当前像素与所述左侧像素的列数差值为所述当前步长,所述右侧像素与所述当前像素的列数差值为当前步长;
如果所述左侧像素和所述右侧像素均不为坏点,利用所述右侧像素和所述左侧像素的灰度均值校正所述当前像素;
如果所述左侧像素为坏点,所述右侧像素不为坏点,利用所述右侧像素灰度值校正所述当前像素;
如果所述右侧像素为坏点,所述左侧像素不为坏点,利用所述左侧像素灰度值校正所述当前像素。
具体地,如果f(x,y)是坏点,则判断其左侧像素f(x,y-T),右侧像素f(x,y+T)是不是坏点,其中,T为步长。
如果左侧像素和右侧像素均不是坏点,则令即利用所述右侧像素和所述左侧像素的灰度均值校正所述当前像素。
如果f(x,y-T)为坏点而f(x,y+T)不是坏点,则令f(x,y)=f(x,y+T),即利用所述右侧像素灰度值校正所述当前像素;
如果f(x,y+T)为坏点而f(x,y-T)不是坏点,则令f(x,y)=f(x,y-T),即利用所述左侧像素灰度值校正所述当前像素。
在一些实施例中,存在左侧像素与右侧像素均为坏点的情况,因此,所述根据当前步长校正当前像素的步骤,还包括:
如果所述左侧像素和所述右侧像素均为坏点;
判断上侧像素和下侧像素是否为坏点,所述当前像素与所述上侧像素的行数差值为所述当前步长,所述下侧像素与所述当前像素的行数差值为当前步长;
如果所述上侧像素和所述下侧像素均不为坏点,利用所述上侧像素和所述下侧像素的灰度均值校正所述当前像素;
如果所述上侧像素为坏点,所述下侧像素不为坏点,利用所述下侧像素灰度值校正所述当前像素;
如果所述下侧像素为坏点,所述上侧像素不为坏点,利用所述上侧像素灰度值校正所述当前像素。
具体地,如果f(x,y)是坏点,则判断上侧像素f(x-T,y)和下侧像素f(x+T,y)是否是坏点,其中,T为步长。
如果上侧像素和下侧像素均不是坏点,则令即利用所述上侧像素和所述下侧像素的灰度均值校正所述当前像素。
如果f(x-T,y)为坏点,而f(x+T,y)不是坏点,则令f(x,y)=f(x+T,y),即利用所述下侧像素灰度值校正所述当前像素;
如果f(x+T,y)为坏点,而f(x-T,y)不是坏点,则令f(x,y)=f(x-T,y),即利用所述下侧像素灰度值校正所述当前像素。
需要说明的是,根据相机资源大小对上侧像素和下侧像素做适当筛选。假设步长为9,如果仅考虑用f(x-9,y)校正f(x,y),相机中仅需要缓存9行数据。如果同时考虑f(x+9,y)的话,相机中需要再缓存9行数据,而相机一行就要有12000个像素点,缓存18行数据会极大的占用资源,因此根据相机资源大小对其进行选择。如果仅考虑上侧像素对其进行校正,具体地,判断上侧像素f(x-T,y)是否是坏点,若不是,令f(x,y)=f(x-T,y),即利用所述下侧像素灰度值校正所述当前像素。
由以上技术方案可知,本申请实施例提供了一种用于手机屏幕缺陷检测相机自适应步长DPC算法,包括:获取坏点坐标;遍历图片像素;判断当前像素的坐标是否为所述坏点坐标;如果当前像素的坐标不是所述坏点坐标,判断所述当前像素是否为屏幕区像素;如果所述当前像素为屏幕区像素,根据预设数量的所述屏幕区像素计算当前步长;如果所述当前像素的坐标是所述坏点坐标,根据所述当前步长校正所述当前像素。本申请消除现有DPC对相机调试时放大倍率(对应DPC中的步长)的依赖,即可以在任意放大倍率下进行DPC;消除现有DPC对手机屏幕类型的依赖,可以随意更换被检测屏幕,而无需重新标定校正步长。
参阅图4,本申请实施例提供了一种用于手机屏幕缺陷检测相机自适应步长DPC装置,包括:
获取单元101,用于获取坏点坐标;
遍历单元102,用于遍历图片像素;
第一判断单元103,用于判断当前像素的坐标是否为所述坏点坐标;
第二判断单元104,用于如果当前像素的坐标不是所述坏点坐标,判断所述当前像素是否为屏幕区像素;
步长计算单元105,用于如果所述当前像素为屏幕区像素,根据预设数量的所述屏幕区像素计算当前步长;
校正单元106,用于如果所述当前像素的坐标是所述坏点坐标,根据所述当前步长校正所述当前像素。
由以上技术方案可知,本申请实施例提供了一种用于手机屏幕缺陷检测相机自适应步长DPC算法及装置,所述算法包括:获取坏点坐标;遍历图片像素;判断当前像素的坐标是否为所述坏点坐标;如果当前像素的坐标不是所述坏点坐标,判断所述当前像素是否为屏幕区像素;如果所述当前像素为屏幕区像素,根据预设数量的所述屏幕区像素计算当前步长;如果所述当前像素的坐标是所述坏点坐标,根据所述当前步长校正所述当前像素。本申请消除现有DPC对相机调试时放大倍率(对应DPC中的步长)的依赖,即可以在任意放大倍率下进行DPC;消除现有DPC对手机屏幕类型的依赖,可以随意更换被检测屏幕,而无需重新标定校正步长。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的基于大数据处理的景点离线图像识别方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:Read-Only Memory,简称:ROM)或随机存储记忆体(英文:Random Access Memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括如果干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于实现设备全寿命管理平台和方法实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。