发明内容
本发明实施例提供了一种自动对焦方法,能够在噪声大的场景下准确计算出图像的对比度,实现准确、稳定的对焦。
本申请第一方面提供一种自动对焦方法,包括:
获取目标物体的当前数字图像;
计算所述当前数字图像的每个像素点的对比度分量;
根据所述每个像素点的对比度分量计算所述当前数字图像的像素点的对比度分量平均值,并将所述平均值与阈值系数相乘得到对比度阈值;
将所述当前数字图像中对比度分量大于等于所述对比度阈值的像素点的对比度分量相加得到所述当前数字图像的对比度;
判断所述当前数字图像的对比度是否为最大对比度;
若所述当前数字图像的对比度分量为最大对比度,则确定所述目标物体处于对焦状态。
在第一方面的第一种可能的实现方式中,所述计算所述当前数字图像的每个像素点的对比度分量包括:
将所述当前数字图像的每个像素点的亮度分量分别与水平梯度算子和垂直梯度算子进行卷积运算,得到该每个像素点的水平梯度和垂直梯度;
将所述每个像素点的水平梯度和垂直梯度分别进行平方运算,得到该每个像素点的水平梯度平方值和垂直梯度平方值;
将所述每个像素点的水平梯度平方值和垂直梯度平方值进行相加,得到该每个像素点的对比度分量。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,其特征在于,所述水平梯度算子为二维高斯函数在x方向的一阶导数,所述垂直梯度算子为二维高斯函数在y方向的一阶导数。
本申请第二方面提供一种自动对焦设备,包括:
图像获取模块,用于获取目标物体的当前数字图像;
对比度分量计算模块,用于计算所述图像获取模块获取的所述当前数字图像的每个像素点的对比度分量;
对比度阈值确定模块,用于根据所述对比度分量计算模块计算出来的所述每个像素点的对比度分量计算所述当前数字图像的像素点的对比度分量平均值,并将所述平均值与阈值系数相乘得到对比度阈值;
对比度计算模块,用于将所述当前数字图像中对比度分量大于等于所述对比度阈值的像素点的对比度分量相加得到所述当前数字图像的对比度;
判断模块,用于判断所述对比度计算模块计算得出的所述当前数字图像的对比度分量是否为最大对比度;
对焦确定模块,用于在所述判断模块判断出所述当前数字图像的对比度分量为最大对比度分量时,确定所述目标物体处于对焦状态。
在第二方面的第一种可能的实现方式中,所述对比度分量计算模块包括:
梯度计算子单元,用于将所述当前数字图像的每个像素点的亮度分量分别与水平梯度算子和垂直梯度算子进行卷积运算,得到该每个像素点的水平梯度和垂直梯度;
梯度平方值计算子单元,用于将所述梯度计算子单元计算得出的所述每个像素点的水平梯度和垂直梯度分别进行平方运算,得到该每个像素点的水平梯度平方值和垂直梯度平方值;
对比度计算子单元,用于将所述梯度平方值计算子单元计算得出的所述每个像素点的水平梯度平方值和垂直梯度平方值进行相加,得到该每个像素点的所述当前数字图像的对比度。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述水平梯度算子为二维高斯函数在x方向的一阶导数,所述垂直梯度算子为二维高斯函数在y方向的一阶导数。
本申请第三方面提供一种自动对焦设备,包括存储器和处理器,其中:
所述存储器用于存储一组程序代码;
所述处理器用于读取存储器中的所述程序代码,执行:
获取目标物体的当前数字图像;
计算所述当前数字图像的每个像素点的对比度分量;
根据所述每个像素点的对比度分量计算所述当前数字图像的像素点的对比度分量平均值,并将所述平均值与阈值系数相乘得到对比度阈值;
将所述当前数字图像中对比度分量大于等于所述对比度阈值的像素点的对比度分量相加得到所述当前数字图像的对比度;
判断所述当前数字图像的对比度是否为最大对比度;
若所述当前数字图像的对比度分量为最大对比度,则确定所述目标物体处于对焦状态。
在第三方面的第一种可能的实现方式中,所述处理器执行所述计算所述当前数字图像的每个像素点的对比度分量的具体方式为:
将所述当前数字图像的每个像素点的亮度分量分别与水平梯度算子和垂直梯度算子进行卷积运算,得到该每个像素点的水平梯度和垂直梯度;
将所述每个像素点的水平梯度和垂直梯度分别进行平方运算,得到该每个像素点的水平梯度平方值和垂直梯度平方值;
将所述每个像素点的水平梯度平方值和垂直梯度平方值进行相加,得到该每个像素点的对比度分量。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述水平梯度算子为二维高斯函数在x方向的一阶导数,所述垂直梯度算子为二维高斯函数在y方面的一阶导数。
本发明通过计算出一个对比度阈值,并用此对比度阈值与每个像素点的对比度分量进行比较,剔除噪声大的像素点,从而去除噪声的影响,准确计算出图像的对比度。本发明可以在噪声大的场景下准确地计算出图像对比度,实现噪声大的场景下准确、稳定的自动对焦。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一般认为对焦状态下图像对比度最大,因此,通过移动镜头位置改变像距,对摄像机获得的数字图像进行分析,实时计算出图像的对比度,将镜头移动至图像对比度达到最大值时的位置,就实现了自动对焦。图1是对比度曲线,对比度曲线描述每一个镜头位置(即像距)所对应的图像对比度,如图1所示,对比度曲线的峰值位置即为最佳的对焦位置。
目前,常见的数字图像的对比度c计算公式为:
其中,M为数字图像的水平分辨率,N为数字图像的垂直分辨率,I为亮度分量。上述公式不能准确地计算出噪声大的场景下的图像对比度,从而导致成像设备出现对焦不准确和不稳定的现象。
请参考图2,图2是本发明实施例提供的一种自动对焦方法的流程图,本实施例的执行主体可以为照相机或者投影仪等成像设备,为叙述方便本实施例以照相机为例进行描述,但并不限制于照相机。如图2所示,本实施例提供的自动对焦方法包括:
101、获取目标物体的当前数字图像。
本实施例可以采用爬山算法搜索对比度曲线的峰值位置。照相机的步进电机驱动聚焦镜头的从起始位置出发,以等步长向前或向后运动,每走一步,就计算一次图像对比度值。若计算所得的图像对比度值逐渐增大,说明步进电机驱动方向正确,照相机逐步对焦。当图像对比度值第一次出现减小时,说明镜头已经越过最佳对焦点,照相机开始离焦,此时,照相机控制步进电机反向运转,并减小步长,带动镜头反向移动,往回寻找最佳对焦点。同理,当图像对比度值再次出现减小现象时,说明镜头再次越过最佳对焦点,照相机控制步进电机驱动再一次反转运行,并进一步减小步长,带动镜头再一次反向搜索。如此反复搜索,直到步进电机的步长减小到设定值,搜索结束,且将当前位置作为对比度曲线的峰值位置。
其中,本步骤是在步进电机转动一个步长后,获取的目标物体在当前像距位置的数字图像。
102、计算当前数字图像的每个像素点的对比度分量。
可选地,计算当前数字图像的每个像素点的对比度分量的方法可以为:
将当前数字图像的每个像素点的亮度分量分别与水平梯度算子和垂直梯度算子进行卷积运算,得到该每个像素点的水平梯度和垂直梯度。
将每个像素点的水平梯度和垂直梯度分别进行平方运算,得到该每个像素点的水平梯度平方值和垂直梯度平方值;
将每个像素点的水平梯度平方值和垂直梯度平方值进行相加,得到该每个像素点的对比度分量。
其中,水平梯度算子FDOGx为二维高斯函数在x方向的一阶导数,垂直梯度算子FDOGy为二维高斯函数在y方向的一阶导数,即:
其中,σ优选为1.2。x、y的取值范围可以为:︱x︱、︱y︱小于等于1至5的数值,即︱x︱≤1、︱y︱≤1,︱x︱≤2、︱y︱≤2,︱x︱≤3、︱y︱≤3,︱x︱≤4、︱y︱≤4或︱x︱≤5、︱y︱≤5,其中,x、y为整数。例如当x取值范围为︱x︱≤3即-3≤x≤3,y取值范围为︱y︱≤3即-3≤y≤3时,水平梯度算子和垂直梯度算子分别见下表1,表2:
表1:水平梯度算子
FDOGx |
x=-3 |
x=-2 |
x=-1 |
x=0 |
x=1 |
x=2 |
x=3 |
y=-3 |
0.004 |
0.02 |
0.02 |
0 |
-0.02 |
-0.02 |
-0.004 |
y=-2 |
0.023 |
0.09 |
0.12 |
0 |
-0.12 |
-0.09 |
-0.023 |
y=-1 |
0.065 |
0.24 |
0.35 |
0 |
-0.35 |
-0.24 |
-0.065 |
y=0 |
0.092 |
0.35 |
0.49 |
0 |
-0.49 |
-0.35 |
-0.092 |
y=1 |
0.065 |
0.24 |
0.35 |
0 |
-0.35 |
-0.24 |
-0.065 |
y=2 |
0.023 |
0.09 |
0.12 |
0 |
-0.12 |
-0.09 |
-0.023 |
y=3 |
0.004 |
0.02 |
0.02 |
0 |
-0.02 |
-0.02 |
-0.004 |
表1:垂直梯度算子
FDOGy |
x=-3 |
x=-2 |
x=-1 |
x=0 |
x=1 |
x=2 |
x=3 |
y=-3 |
0.004 |
0.02 |
0.06 |
0.09 |
0.065 |
0.023 |
0.004 |
y=-2 |
0.015 |
0.09 |
0.24 |
0.35 |
0.245 |
0.086 |
0.0152 |
y=-1 |
0.022 |
0.12 |
0.35 |
0.49 |
0.347 |
0.122 |
0.0216 |
y=0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
y=1 |
-0.02 |
-0.1 |
-0.3 |
-0.5 |
-0.35 |
-0.12 |
-0.022 |
y=2 |
-0.02 |
-0.1 |
-0.2 |
-0.3 |
-0.24 |
-0.09 |
-0.015 |
y=3 |
-0 |
-0 |
-0.1 |
-0.1 |
-0.06 |
-0.02 |
-0.004 |
103、根据每个像素点的对比度分量计算当前数字图像的像素点的对比度分量平均值,并将该平均值与阈值系数相乘得到对比度阈值。
104、将当前数字图像中对比度分量大于等于对比度阈值的像素点的对比度分量相加得到当前数字图像的对比度。
其中,步骤102至104计算当前数字图像的对比度的流程图可以参考图3,如图3所示,
步骤201、202分别进行水平梯度计算和垂直梯度计算,将当前数字图像的每个像素点的亮度分量分别与水平梯度算子和垂直梯度算子进行卷积运算,得到每个像素点的水平梯度Gx和垂直梯度Gy,其中:
Gx=I*FDOGx
Gy=I*FDOGy
步骤203、204分别将水平梯度和垂直梯度进行平方运算,得到每个像素点的水平梯度平方值Gx 2和垂直梯度平方值Gy 2。
步骤205将每个像素点的水平梯度平方值Gx 2和垂直梯度平方值Gy 2进行相加,得到该每个像素点的对比度分量G2。
步骤206计算每个像素点的对比度分量的平均值,并将平均值与阈值系数Scale相乘得到对比度阈值t,计算公式为:
其中,M为数字图像的水平分辨率,N为数字图像的垂直分辨率,阈值系数Scale优选为3。
其中,步骤104将当前数字图像中对比度分量大于等于对比度阈值的像素点的对比度分量相加得到当前数字图像的对比度的方法可以为,先对当前数字图像的对比度分量进行步骤207阈值化处理,即将G2中大于等于t的元素保持值不变,小于t的元素置为0。然后将阈值化处理后的对比度分量TG 2进行累加得到当前数字图像的对比度。
105、判断当前数字图像的对比度是否为最大对比度。
其中,判断当前数字图像的对比度是否为最大对比度的方法为判断当前步进电机的步长是否小于设定值,若步进电机的步长小于设定值,说明对比度峰值曲线峰值搜索结束,且将当前位置作为对比度曲线的峰值位置。
106、若当前数字图像的对比度分量为最大对比度,则确定目标物体处于对焦状态。
本实施例将二维高斯函数在x方向的一阶导数作为水平梯度算子,将二维高斯函数在y方向的一阶导数作为垂直梯度算子,计算出每个像素点的对比度分量,并对对比度分量进行阈值化处理,剔除噪声大的像素点,从而准确计算出图像的对比度。本实施例可以自动评估场景的噪声强度并去除噪声的影响,从而实现噪声大的场景下的准确和稳定地自动对焦。
请参考图4,图4是本发明实施例提供的一种自动对焦设备的结构图,包括:
图像获取模块301,用于获取目标物体的当前数字图像。
对比度分量计算模块302,用于计算图像获取模块301获取的当前数字图像的每个像素点的对比度分量。
对比度阈值确定模块303,用于根据对比度分量计算模块302计算出来的每个像素点的对比度分量计算当前数字图像的像素点的对比度分量平均值,并将平均值与阈值系数相乘得到对比度阈值。
对比度计算模块304,用于将当前数字图像中对比度分量大于等于对比度阈值的像素点的对比度分量相加得到所述当前数字图像的对比度。
判断模块305,用于判断对比度计算模块304计算得出的当前数字图像的对比度分量是否为最大对比度。
对焦确定模块306,用于在判断模块305判断出当前数字图像的对比度分量为最大对比度分量时,确定目标物体处于对焦状态。
可选地,对比度分量计算模块302可以包括梯度计算子单元3021、梯度平方值计算子单元3022和对比度计算子单元3023,如图5所示,其中:
梯度计算子单元3021,用于将当前数字图像的每个像素点的亮度分量分别与水平梯度算子和垂直梯度算子进行卷积运算,得到该每个像素点的水平梯度和垂直梯度。
梯度平方值计算子单元3022,用于将梯度计算子单元3021计算得出的每个像素点的水平梯度和垂直梯度分别进行平方运算,得到该每个像素点的水平梯度平方值和垂直梯度平方值。
对比度计算子单元3023,用于将梯度平方值计算子单元3022计算得出的每个像素点的水平梯度平方值和垂直梯度平方值进行相加,得到该每个像素点的当前数字图像的对比度。
其中,水平梯度算子为二维高斯函数在x方向的一阶导数,所述垂直梯度算子为二维高斯函数在y方向的一阶导数。当前数字图像的对比度的具体计算方法和判断对比度计算模块3023计算得出的所述当前数字图像的对比度分量是否为最大对比度参考上述方法实施例,这里不再赘述。
本实施例提供的自动对焦设备通过计算出一个对比度阈值,并用此对比度阈值与每个像素点的对比度分量进行比较,剔除噪声大的像素点,从而去除噪声的影响,准确计算出图像的对比度。本实施例可以在噪声大的场景下准确地计算出图像对比度,实现噪声大的场景下准确、稳定的自动对焦。
请参考图6,图6是本发明实施例提供的一种自动对焦设备的结构图,包括:
包括存储器401和处理器402,其中:
存储器401用于存储一组程序代码;
处理器402用于读取存储器中的程序代码,执行:
获取目标物体的当前数字图像;
计算当前数字图像的每个像素点的对比度分量;
根据每个像素点的对比度分量计算当前数字图像的像素点的对比度分量平均值,并将平均值与阈值系数相乘得到对比度阈值;
将当前数字图像中对比度分量大于等于对比度阈值的像素点的对比度分量相加得到当前数字图像的对比度;
判断当前数字图像的对比度是否为最大对比度;
若当前数字图像的对比度分量为最大对比度,则确定目标物体处于对焦状态。
可选地,处理器402执行计算当前数字图像的每个像素点的对比度分量的具体方式可以为:
将当前数字图像的每个像素点的亮度分量分别与水平梯度算子和垂直梯度算子进行卷积运算,得到该每个像素点的水平梯度和垂直梯度;
将每个像素点的水平梯度和垂直梯度分别进行平方运算,得到该每个像素点的水平梯度平方值和垂直梯度平方值;
将每个像素点的水平梯度平方值和垂直梯度平方值进行相加,得到该每个像素点的对比度分量。
其中,水平梯度算子为二维高斯函数在x方向的一阶导数,所述垂直梯度算子为二维高斯函数在y方向的一阶导数。当前数字图像的对比度的具体计算方法和判断对比度计算模块3023计算得出的所述当前数字图像的对比度分量是否为最大对比度参考上述方法实施例,这里不再赘述。
本实施例提供的自动对焦设备通过计算出一个对比度阈值,并用此对比度阈值与每个像素点的对比度分量进行比较,剔除噪声大的像素点,从而去除噪声的影响,准确计算出图像的对比度。本实施例可以在噪声大的场景下准确地计算出图像对比度,实现噪声大的场景下准确、稳定的自动对焦。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存取存储器(RandomAccessMemory,简称RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。