发明内容
鉴于此,本发明实施例提供了一种校准摄像头的旋转角度的方法及装置,以解决现有的基于可旋转式摄像头的移动终端中的磁敏传感器容易受到电磁环境影响,导致判断摄像头的旋转状态的准确度较低的问题。
一方面,本发明实施例提供了一种校准摄像头的旋转角度的方法,包括:
控制所述摄像头由初始位置向第一预设方向旋转,并通过磁敏传感器获取输出值;
当当前输出值小于第一输出值,且所述第一输出值大于第二输出值时,确定所述摄像头当前处于第一预设角度,并计算所述当前输出值与预先存储的第一预设值的差值的绝对值,其中,所述第一输出值为所述当前输出值的上一个输出值,所述第二输出值为所述第一输出值的上一个输出值;
当所述差值的绝对值大于第二预设值时,控制所述摄像头由所述第一预设角度向第二预设方向旋转至第二预设角度,并记录与所述第二预设角度对应的所述磁敏传感器的第三输出值;控制所述摄像头由所述第二预设角度向第二预设方向旋转至第三预设角度,并记录与所述第三预设角度对应的所述磁敏传感器的第四输出值;
将所述第三输出值作为第一切换值,将所述第四输出值作为第二切换值;
根据所述第一切换值以及所述第二切换值确定所述摄像头的前后置状态。
第二方面,本发明实施例提供了一种校准摄像头的旋转角度的装置,包括:
输出值获取单元,用于控制所述摄像头由初始位置向第一预设方向旋转,并通过磁敏传感器获取输出值;
计算单元,用于当当前输出值小于第一输出值,且所述第一输出值大于第二输出值时,确定所述摄像头当前处于第一预设角度,并计算所述当前输出值与预先存储的第一预设值的差值的绝对值,其中,所述第一输出值为所述当前输出值的上一个输出值,所述第二输出值为所述第一输出值的上一个输出值;
输出值记录单元,用于当所述差值的绝对值大于第二预设值时,控制所述摄像头由所述第一预设角度向第二预设方向旋转至第二预设角度,并记录与所述第二预设角度对应的所述磁敏传感器的第三输出值;控制所述摄像头由所述第二预设角度向第二预设方向旋转至第三预设角度,并记录与所述第三预设角度对应的所述磁敏传感器的第四输出值;
切换值确定单元,用于将所述第三输出值作为第一切换值,将所述第四输出值作为第二切换值;
前后置状态确定单元,用于根据所述第一切换值以及所述第二切换值确定所述摄像头的前后置状态。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过当当前输出值小于第一输出值,且第一输出值大于第二输出值时,确定摄像头当前处于第一预设角度,根据第一预设角度及其对应的当前输出值对第一切换值以及第二切换值进行校准,再根据第一切换值以及第二切换值确定摄像头的前后置状态,由此使移动终端对于摄像头的前后置判断不受电磁环境的影响,提高了判断摄像头的旋转状态的准确性。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明实施例提供的校准摄像头的旋转角度的方法的实现流程图,详述如下:
在步骤S101中,控制所述摄像头由初始位置向第一预设方向旋转,并通过磁敏传感器获取输出值。
本发明实施例提供的校准摄像头的旋转角度的方法可应用于移动终端中。移动终端包括机身本体,以及与机身本体连接的可旋转式摄像头部件。机身本体包括处理器、马达以及磁敏传感器,可旋转式摄像头部件包括磁铁。处理器分别与马达以及磁敏传感器电连接,马达与可旋转式摄像头部件连接,磁敏传感器与磁铁磁性连接。磁敏传感器内置磁感应芯片,在可旋转式摄像头部件旋转的过程中,磁敏传感器感应到的磁场发生变化,由此磁敏传感器的输出值发生变化,从而可通过磁敏传感器的输出值判断摄像头的旋转角度。优选地,磁敏传感器为数字霍尔传感器。
当摄像头处于初始位置时,本实施例中的摄像头相当于一个不具有旋转摄像头的移动终端中的后置摄像头,此时,摄像头的旋转角度为0度。摄像头的旋转角度指的是摄像头与指定方向的夹角。其中,指定方向指的是垂直于移动终端的屏幕且由移动终端屏幕指向移动终端后壳的方向。
在本发明实施例中,第一预设方向为逆时针方向,第二预设方向为顺时针方向。控制摄像头旋转具体为通过马达控制可旋转式摄像头部件旋转,再由可旋转式摄像头部件带动摄像头旋转。在摄像头旋转的过程中,处理器持续获取磁敏传感器的输出值。
在步骤S102中,当当前输出值小于第一输出值,且所述第一输出值大于第二输出值时,确定所述摄像头当前处于第一预设角度,并计算所述当前输出值与预先存储的第一预设值的差值的绝对值,其中,所述第一输出值为所述当前输出值的上一个输出值,所述第二输出值为所述第一输出值的上一个输出值。
当磁敏传感器为数字霍尔传感器时,从0度到180度,数字霍尔传感器的输出值逐渐增大;从180度206度,数字霍尔传感器的输出值逐渐减小。数字霍尔传感器在180度的输出值达到最大值。当当前输出值小于第一输出值,且第一输出值大于第二输出值时,在很大程度上表明当前输出值对应的摄像头的旋转角度接近于180度。因此,将摄像头当前所处位置近似为180度。
预先存储的第一预设值为出厂前设置的摄像头的旋转角度为180度对应的磁敏传感器的输出值。
在步骤S103中,当所述差值的绝对值大于第二预设值时,控制所述摄像头由所述第一预设角度向第二预设方向旋转至第二预设角度,并记录与所述第二预设角度对应的所述磁敏传感器的第三输出值;控制所述摄像头由所述第二预设角度向第二预设方向旋转至第三预设角度,并记录与所述第三预设角度对应的所述磁敏传感器的第四输出值。
若预先存储的第二预设值为5,而当前输出值与第一预设值的差值的绝对值为10,则当前输出值与第一预设值的差值的绝对值大于第二预设值,表明磁场受到了干扰。
第二预设角度以及第三预设角度是用于切换摄像头的前后置状态的两个角度。例如,第二预设角度为80度,第三预设角度为110度。分别获取第二预设角度对应的磁敏传感器的第三输出值,以及第三预设角度对应的磁敏传感器的第四输出值,以用于判断是否切换摄像头的旋转状态。
在步骤S104中,将所述第三输出值作为第一切换值,将所述第四输出值作为第二切换值。
例如,将第一切换值设置为5,将第二切换值设置为25。
在步骤S105中,根据所述第一切换值以及所述第二切换值确定所述摄像头的前后置状态。
进一步地,所述控制所述摄像头由所述第一预设角度向第二预设方向旋转至第二预设角度具体为:
控制所述摄像头由所述第一预设角度向第二预设方向旋转第三预设值,以达到第二预设角度;
所述控制所述摄像头由所述第二预设角度向第二预设方向旋转至第三预设角度具体为:
控制所述摄像头由所述第二预设角度向第二预设方向旋转第四预设值,以达到第三预设角度。
由于马达中的每个齿轮旋转的角度都是精确的,因此,处理器可控制马达旋转精确的角度。例如,第一预设角度为180度,第二预设角度为110度,第三预设角度为80度,第一预设方向为逆时针方向,第二预设方向为顺时针方向,则第三预设值为70度,第四预设值为30度。处理器控制马达旋转,控制摄像头由180度向顺时针方向旋转70度,使摄像头处于110度的位置;控制摄像头由110度向顺时针方向旋转30度,使摄像头处于80度的位置。
图2示出了本发明另一实施例提供的校准摄像头的旋转角度的方法的实现流程图,参照图2:
在步骤S201中,控制所述摄像头由初始位置向第一预设方向旋转,并通过磁敏传感器获取输出值;
在步骤S202中,当当前输出值小于第一输出值,且所述第一输出值大于第二输出值时,确定所述摄像头当前处于第一预设角度,并计算所述当前输出值与预先存储的第一预设值的差值的绝对值;
在步骤S203中,判断所述差值的绝对值是否大于第二预设值,若是,执行步骤S204;若否,执行步骤S205;
在步骤S204中,控制所述摄像头由所述第一预设角度向第二预设方向旋转至第二预设角度,并记录与所述第二预设角度对应的所述磁敏传感器的第三输出值;控制所述摄像头由所述第二预设角度向第二预设方向旋转至第三预设角度,并记录与所述第三预设角度对应的所述磁敏传感器的第四输出值;将所述第三输出值作为第一切换值,将所述第四输出值作为第二切换值;
在步骤S205中,根据预先存储的第五预设值作为所述第一切换值,将预先存储的第六预设值作为所述第二切换值;
在步骤S206中,根据所述第一切换值以及所述第二切换值确定所述摄像头的前后置状态。
在本发明实施例中,当当前输出值与预先存储的第一预设值的差值的绝对值小于或等于第二预设值时,表明磁敏传感器受到的磁场干扰较小,因此,利用预先存储的第五预设值以及第六预设值来对摄像头的前后置状态进行判断。
图3示出了本发明实施例提供的校准摄像头的旋转角度的方法步骤S105的具体实现流程图,参照图3:
在步骤S301中,通过所述磁敏传感器连续获取N个输出值,根据所述N个输出值确定所述摄像头的当前旋转角度区间,其中,N为大于或等于2的整数;
在步骤S302中,获取所述摄像头的当前旋转状态;
在步骤S303中,根据所述N个输出值、所述当前旋转状态以及所述当前旋转角度区间确定所述摄像头的前后置状态。
当前旋转角度区间包括第一旋转角度区间以及第二旋转角度区间。第一旋转角度区间为0度~180度,第二旋转角度区间为180度~206度。从0度到180度,数字霍尔传感器的输出值逐渐增大;从180度206度,数字霍尔传感器的输出值逐渐减小。数字霍尔传感器的输出值相对于旋转角度的变化率在第一旋转角度区间小于第二旋转角度区间,因此,根据数字霍尔传感器的连续N个输出值,计算每两个连续的输出值的差值的绝对值,可得到N-1个差值的绝对值,根据N-1个差值的绝对值可确定可旋转摄像头部件的当前旋转角度区间。在这里,N可以为3,在此不作限定。进一步地,当N-1个差值的绝对值均小于第七预设值时,则判定当前旋转角度区间为第一旋转角度区间;当N-1个差值的绝对值均大于或等于第七预设值且小于第八预设值时,判定当前旋转角度区间为第二旋转角度区间。
进一步地,步骤S303所述所述根据所述N个输出值、所述当前旋转状态以及所述当前旋转角度区间确定所述摄像头的前后置状态包括:
当所述摄像头的当前旋转状态为后置状态,且所述当前旋转角度区间为第一旋转角度区间时,判断所述N个输出值中的最后一个输出值是否小于所述第一切换值,若是,保持所述摄像头的旋转状态为所述后置状态;若否,将所述摄像头的旋转状态切换为前置状态;
当所述摄像头的当前旋转状态为所述后置状态,且所述当前旋转角度区间为第二旋转角度区间时,将所述摄像头的旋转状态切换为所述前置状态;
当所述摄像头的当前旋转状态为所述前置状态,且所述当前旋转角度区间为第一旋转角度区间时,判断所述N个输出值中的最后一个输出值是否大于所述第二切换值,若是,保持所述摄像头的旋转状态为所述前置状态;若否,将所述摄像头的旋转状态切换为所述后置状态;
当所述摄像头的当前旋转状态为所述前置状态,且所述当前旋转角度区间为第二旋转角度区间时,保持所述摄像头的旋转状态为所述前置状态。
假设摄像头的总旋转角度区间为0度至206度。通过本发明实施例,实现了:若摄像头的当前旋转状态为后置状态,且当前旋转角度大于或等于0度且小于110度,则保持摄像头的旋转状态为后置状态;若摄像头的当前旋转状态为后置状态,且当前旋转角度大于或等于110度且小于或等于206度,则将摄像头的旋转状态切换为前置状态;若摄像头的当前旋转状态为前置状态,且当前旋转角度大于80度且小于或等于206度,则保持摄像头的旋转状态为前置状态;若摄像头的当前旋转状态为前置状态,且当前旋转角度大于或等于0度且小于或等于80度,则将摄像头的旋转状态切换为后置状态。
应理解,在本发明实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本发明实施例通过当当前输出值小于第一输出值,且第一输出值大于第二输出值时,确定摄像头当前处于第一预设角度,根据第一预设角度及其对应的当前输出值对第一切换值以及第二切换值进行校准,再根据第一切换值以及第二切换值确定摄像头的前后置状态,由此使移动终端对于摄像头的前后置判断不受电磁环境的影响,提高了判断摄像头的旋转状态的准确性。
图4示出了本发明实施例提供的校准摄像头的旋转角度的装置的结构框图,该装置可以用于运行图1至图3所述的校准摄像头的旋转角度的方法。为了便于说明,仅示出了与本发明实施例相关的部分。
参照图4,所述装置包括:
输出值获取单元41,用于控制所述摄像头由初始位置向第一预设方向旋转,并通过磁敏传感器获取输出值;
计算单元42,用于当当前输出值小于第一输出值,且所述第一输出值大于第二输出值时,确定所述摄像头当前处于第一预设角度,并计算所述当前输出值与预先存储的第一预设值的差值的绝对值,其中,所述第一输出值为所述当前输出值的上一个输出值,所述第二输出值为所述第一输出值的上一个输出值;
输出值记录单元43,用于当所述差值的绝对值大于第二预设值时,控制所述摄像头由所述第一预设角度向第二预设方向旋转至第二预设角度,并记录与所述第二预设角度对应的所述磁敏传感器的第三输出值;控制所述摄像头由所述第二预设角度向第二预设方向旋转至第三预设角度,并记录与所述第三预设角度对应的所述磁敏传感器的第四输出值;
切换值确定单元44,用于将所述第三输出值作为第一切换值,将所述第四输出值作为第二切换值;
前后置状态确定单元45,用于根据所述第一切换值以及所述第二切换值确定所述摄像头的前后置状态。
进一步地,所述输出值记录单元43具体用于:
当所述差值的绝对值大于第二预设值时,控制所述摄像头由所述第一预设角度向第二预设方向旋转第三预设值,以达到第二预设角度,并记录与所述第二预设角度对应的所述磁敏传感器的第三输出值;控制所述摄像头由所述第二预设角度向第二预设方向旋转第四预设值,以达到第三预设角度,并记录与所述第三预设角度对应的所述磁敏传感器的第四输出值。
进一步地,所述切换值确定单元44还用于:
当所述差值的绝对值小于或等于所述第二预设值时,根据预先存储的第五预设值作为所述第一切换值,将预先存储的第六预设值作为所述第二切换值。
优选地,所述前后置状态确定单元45包括:
当前旋转角度区间确定子单元451,用于通过所述磁敏传感器连续获取N个输出值,根据所述N个输出值确定所述摄像头的当前旋转角度区间,其中,N为大于或等于2的整数;
当前旋转状态获取子单元452,用于获取所述摄像头的当前旋转状态;
前后置状态确定子单元453,根据所述N个输出值、所述当前旋转状态以及所述当前旋转角度区间确定所述摄像头的前后置状态。
进一步地,所述前后置状态确定子单元453具体用于:
当所述摄像头的当前旋转状态为后置状态,且所述当前旋转角度区间为第一旋转角度区间时,判断所述N个输出值中的最后一个输出值是否小于所述第一切换值,若是,保持所述摄像头的旋转状态为所述后置状态;若否,将所述摄像头的旋转状态切换为前置状态;
当所述摄像头的当前旋转状态为所述后置状态,且所述当前旋转角度区间为第二旋转角度区间时,将所述摄像头的旋转状态切换为所述前置状态;
当所述摄像头的当前旋转状态为所述前置状态,且所述当前旋转角度区间为第一旋转角度区间时,判断所述N个输出值中的最后一个输出值是否大于所述第二切换值,若是,保持所述摄像头的旋转状态为所述前置状态;若否,将所述摄像头的旋转状态切换为所述后置状态;
当所述摄像头的当前旋转状态为所述前置状态,且所述当前旋转角度区间为第二旋转角度区间时,保持所述摄像头的旋转状态为所述前置状态。
本发明实施例通过当当前输出值小于第一输出值,且第一输出值大于第二输出值时,确定摄像头当前处于第一预设角度,根据第一预设角度及其对应的当前输出值对第一切换值以及第二切换值进行校准,再根据第一切换值以及第二切换值确定摄像头的前后置状态,由此使移动终端对于摄像头的前后置判断不受电磁环境的影响,提高了判断摄像头的旋转状态的准确性。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。