具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
光学成像技术已经与我们的生活密不可分,从日常生活中的相机、摄像机、望远镜、投影仪,到实验室中的显微镜、激光散斑成像系统,都涉及光学成像。在光学成像过程中,聚焦搜索方法是一个重要的组成部分。影响聚焦搜索方法运行时间的因素包括镜头组的启动、移动和停止,图像的拍摄和分析。
在本发明实施例中,将镜头组移动和图像拍摄、图像分析分别放到不同的线程里以并行的方式进行,第一线程控制镜头组在移动的过程中拍摄图像,第二线程对图像队列中的图像进行分析,由此,图像拍摄和图像分析同时进行,镜头组无需频繁地停止和启动,从而大大缩短了聚焦搜索方法的运行时间。
实施例一
图1是本发明实施例一提供的聚焦搜索方法的流程图。如图1所示,该方法包括:
步骤S101:第一线程控制镜头组移动,并在移动过程中控制镜头组以预设的第一时间间隔拍摄图像。
在本发明实施例中,第一线程控制镜头组单向移动并在移动过程中拍摄图像,镜头组无需中途停止和再次启动。镜头组在移动过程中以预设的第一时间间隔拍摄,得到若干张图像,如第一时间间隔为400ms。在镜头组是连续移动的情况下,拍摄图像的间隔采用时间间隔而不是距离间隔,简化了线程控制。
步骤S102:第一线程将拍摄到的图像放入第一图像队列。
在本发明实施例中,第一图像队列是一个先进先出队列(first input firstoutput, FIFO),长度为N,N为正整数。第一线程在第一图像队列的队列尾添加图像,第二线程从第一图像队列的队列头获取图像进行分析。由于第一线程和第二线程对FIFO的操作是异步的,FIFO的长度N取决于第二线程分析图像的速度,第二线程分析图像的速度越快,N越小。如图2所示,为本发明实施例提供的第一图像队列的示意图。第一图像队列的长度N=10,左边为队列头,图像较模糊;右边为队列尾,图像较清晰。
此外,为防止产生访问冲突,还采用线程互斥技术防止第一线程和第二线程同时读写同一张图像。
步骤S103:第二线程从第一图像队列中获取拍摄到的图像并计算图像的清晰度。
第二线程从第一图像队列的队列头获取图像进行清晰度分析。利用聚焦评价函数来计算表征清晰度的数值D,D越大越清晰或者D越小越清晰。这里的聚焦评价函数可采用现有的算法,在此不再赘述。
步骤S104:第一线程根据清晰度确定聚焦位置。
在本发明实施例中,第二线程计算得到第一图像队列中的图像的数值D后,将表征清晰度的信息发送至第一线程,第一线程根据该信息移动镜头组。
需要说明的是,第一线程执行的步骤S101和步骤S102与第二线程执行的步骤S103是并行进行的。在本发明实施例中,将镜头组移动和图像拍摄、图像分析分别放到不同的线程里以并行的方式进行,第一线程控制镜头组在移动的过程中拍摄图像,第二线程对图像队列中的图像进行分析,由此,图像拍摄和图像分析同时进行,镜头组无需频繁地停止和启动,从而大大缩短了聚焦搜索方法的运行时间。
实施例二
作为本发明的一个实施例,异步的等间距搜索法如图3所示,该方法包括:
步骤S301:第一线程控制镜头组移动,并在移动过程中控制镜头组以预设的第一时间间隔拍摄图像。
步骤S301与实施例一中的步骤S101相同,在此不再赘述。
步骤S302:第一线程将拍摄到的图像放入第一图像队列直至填满第一图像队列。
在本发明实施例中,第一线程单向移动镜头组拍摄图像,镜头组中途不需停止,直至将第一图像队列填满后再停止。
步骤S303:第二线程从第一图像队列中获取拍摄到的图像,计算第一图像队列中所有图像的清晰度,确定第一图像队列中清晰度最高的图像的第一序号并发送至第一线程。
第二线程从第一图像队列中获取拍摄到的图像与实施例一中的步骤S103相同,在此不再赘述。
第二线程采用聚焦评价函数计算第一图像队列中所有图像的清晰度,选出清晰度最高的图像,将其序号作为消息发送至第一线程。
步骤S304:第一线程根据第一序号计算拍摄第一图像队列中清晰度最高的图像的第一位置,并控制镜头组移动到第一位置。
由于采用异步机制,清晰度最高的图像的位置并非镜头组当前所处的位置,第一线程需要控制镜头组从当前所处的位置回调到清晰度最高的图像的位置。
在本发明实施例中,第一线程计算和控制镜头组移动到第一位置均采用时间间隔来衡量。例如:假设镜头组初始位置为A,单向移动后的结束位置为B,第一图像队列长度为N,第一时间间隔为t1,镜头组在AB段移动的总时间为N*t1。第二线程计算得到第一序号为M(M<=N),从结束位置B移动到拍摄图像M的位置需耗时(N-M)*t1,则镜头组在结束位置B反方向移动(N-M)*t1后即认为到达第一位置,作为聚焦位置。
需要说明的是,如果本次搜索为最后一次搜索,则第一线程控制镜头组移动到聚焦位置;否则,缩小拍摄图像的时间间隔,镜头组在以聚焦位置为中心点的某一预设区间内重复上述搜索过程,直至达到预设的单向移动次数或者拍摄图像的最小时间间隔,搜索停止,如此可获得精度更高的聚焦位置。
作为本发明的另一实施例,如图4所示,异步的等间距搜索法还包括:
步骤S401:第一线程控制镜头组在以第一位置为中心点的预设区间内移动,并在移动过程中控制镜头组以预设的第二时间间隔拍摄图像。
在本发明实施例中,镜头组在以第一位置为中心点的预设区间内等间距移动,该预设区间的长度比上一次单向移动的长度短;第二时间间隔小于第一时间间隔,以提高再次搜索的精度。
步骤S402:第一线程将拍摄到的图像放入第二图像队列直至填满第二图像队列。
在本发明实施例中,第二图像队列的长度小于第一图像队列的长度,可节省再次搜索所需的时间。
步骤S403:第二线程从第二图像队列中获取拍摄到的图像并计算第二图像队列中所有图像的清晰度。
步骤S404:第二线程确定第二图像队列中清晰度最高的图像的第二序号并发送至第一线程。
步骤S405:第一线程根据第二序号计算拍摄第二图像队列中清晰度最高的图像的第二位置,并控制镜头组移动到第二位置。
步骤S403、S404、S405与步骤S303、S304相同,在此不再赘述。
在本发明实施例中,将镜头组移动和图像拍摄、图像分析分别放到不同的线程里以并行的方式进行,由此,图像拍摄和图像分析同时进行,镜头组无需频繁地停止和启动,从而大大缩短了等间距搜索法的运行时间。重复搜索时,缩短拍摄图像的时间间隔和图像队列的长度,以提高再次搜索的精度,并节省再次搜索所需的时间。
实施例三
作为本发明的一个实施例,异步的爬山法如图5所示,该方法包括:
步骤S501:第一线程控制镜头组移动,并在移动过程中控制镜头组以预设的第一时间间隔拍摄图像。
步骤S502:第一线程将拍摄到的图像放入第一图像队列。
步骤S501、S502与实施例一中的步骤S101、S102相同,在此不再赘述。
步骤S503:第二线程从第一图像队列中获取拍摄到的图像,依次计算第一图像队列中图像的清晰度,当图像的清晰度下降时,第二线程将第一图像队列中清晰度最高的图像的第三序号作为第一停止消息发送至第一线程。
在本发明实施例中,第二线程依次计算第一图像队列中图像的清晰度。当图像的清晰度下降时,即图像从清晰变为模糊时,第二线程停止计算,将清晰度最高的图像的第三序号发送至第一线程,然后清空第一图像队列中的所有图像。
步骤S504:第一线程在收到第一停止消息后控制镜头组停止移动和拍摄。
在本发明实施例中,第一线程接收到作为第一停止消息的第三序号后控制镜头组停止移动和拍摄,无需将第一图像队列填满。
由于采用异步机制,清晰度最高的图像的位置并非镜头组当前所处的位置。如果本次搜索为最后一次搜索,则第一线程控制镜头组移动到清晰度最高的图像的位置,作为聚焦位置;否则,镜头组从当前位置开始进行下一次搜索。
作为本发明的另一实施例,如图6所示,在镜头组停止移动和拍摄后,异步的爬山法还包括:
步骤S601:第一线程控制镜头组移动,并在移动过程中控制镜头组以预设的第三时间间隔拍摄图像。
在本发明实施例中,第三时间间隔小于第一时间间隔,以提高再次搜索的精度。
步骤S602:第一线程将拍摄到的图像放入第三图像队列。
步骤S603:第二线程从第三图像队列中获取拍摄到的图像并依次计算第三图像队列中图像的清晰度。
步骤S604:当图像的清晰度下降时,第二线程将第三图像队列中清晰度最高的图像的第四序号作为第二停止消息发送至第一线程。
步骤S605:第一线程在收到第二停止消息后控制镜头组停止移动和拍摄。
步骤S602、S603、S604、S605与实施例三中的步骤S502、S503、S504相同,在此不再赘述。
步骤S606:第一线程根据第四序号计算拍摄第三图像队列中清晰度最高的图像的第三位置,并且控制镜头组沿反方向移动到第三位置。
在本发明实施例中,第三时间间隔等于预设的最小时间间隔,本次搜索为最后一次搜索,第一线程控制镜头组沿反方向移动到第三位置,作为聚焦位置。
在本发明实施例中,将镜头组移动和图像拍摄、图像分析分别放到不同的线程里以并行的方式进行,由此,图像拍摄和图像分析同时进行,镜头组无需频繁地停止和启动,从而大大缩短了爬山法的运行时间。
实施例四
图7是本发明实施例四提供的聚焦搜索系统的结构示意图。如图7所示,该系统包括:镜头组71、存储器72和处理器73,其中,存储器72用于存储可执行程序代码,处理器73与镜头组71连接,包括第一线程和第二线程以控制镜头组71动作,处理器73还通过读取存储器72中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:
第一线程控制镜头组71移动,并在移动过程中控制镜头组71以预设的第一时间间隔拍摄图像。
第一线程将拍摄到的图像放入第一图像队列。
第二线程从第一图像队列中获取拍摄到的图像并计算图像的清晰度。
第一线程根据清晰度确定聚焦位置。
作为本发明的一个实施例,第一线程将拍摄到的图像放入第一图像队列包括:第一线程将拍摄到的图像放入第一图像队列直至填满第一图像队列。
第二线程计算图像的清晰度包括:
第二线程计算第一图像队列中所有图像的清晰度;
第二线程确定第一图像队列中清晰度最高的图像的第一序号并发送至第一线程。
第一线程根据清晰度确定聚焦位置包括:
第一线程根据第一序号计算拍摄第一图像队列中清晰度最高的图像的第一位置,并控制镜头组移动到第一位置。
作为本发明的另一个实施例,第二线程计算图像的清晰度包括:
第二线程依次计算第一图像队列中图像的清晰度;
当图像的清晰度下降时,第二线程将第一图像队列中清晰度最高的图像的第三序号作为第一停止消息发送至第一线程。
第一线程根据清晰度确定聚焦位置包括:第一线程在收到第一停止消息后控制镜头组停止移动和拍摄。
需要说明的是,第一线程与第二线程是并行进行的。在本发明实施例中,将镜头组移动和图像拍摄、图像分析分别放到不同的线程里以并行的方式进行,第一线程控制镜头组在移动的过程中拍摄图像,第二线程对图像队列中的图像进行分析,由此,图像拍摄和图像分析同时进行,镜头组无需频繁地停止和启动,从而大大缩短了聚焦搜索方法的运行时间。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。