亚像素定位方法、系统、电子设备和介质转让专利

申请号 : CN202311489290.6

文献号 : CN117237441B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨罡曹源源莫静谭兆胡柳张建南曹动

申请人 : 湖南科天健光电技术有限公司

摘要 :

本发明涉及图像处理技术领域,提供一种亚像素定位方法、系统、电子设备和介质,方法包括:S1:获取图像;S2:查找图像的整像素边缘,获得整像素位置;S3:计算第一边缘参数和第二边缘参数;S4:获得中心点到像素边缘的距离,根据中心点到像素边缘的距离和整像素位置获得亚像素位置;S5:判断亚像素位置相对于整像素位置的移动距离是否大于指定阈值,如果大于,则计算新的整像素位置,重新执行步骤S3至步骤S5;否则输出该亚像素位置对应的亚像素边缘。本方案能够准确地计算出亚像素边缘的位置。(56)对比文件杨一帆等.基于亚像素边缘检测的高速摄影下枪机运动分析.电子测量与仪器学报.2018,第32卷(第11期),第43-49页.杨斌等.基于气门油封的亚像素边缘检测.计算机系统应用.2023,第32卷(第09期),第183-189页.高世一等.基于Zernike正交矩的图像亚像素边缘检测算法改进.自动化学报.2008,第34卷(第09期),第1163-1168页.高沙沙等.基于形态学和空间矩亚像素定位方法研究.计算机仿真.2014,第31卷(第12期),第229-232页.

权利要求 :

1.一种基于zernike矩的亚像素定位方法,其特征在于,包括以下步骤:S1:获取图像;

S2:查找图像的整像素边缘,获得整像素位置;

S3:根据整像素位置使用多阶zernike矩计算第一边缘参数和第二边缘参数;

S4:根据第一边缘参数和第二边缘参数获得中心点到像素边缘的距离,根据中心点到像素边缘的距离和整像素位置获得亚像素位置;

S5:判断亚像素位置相对于整像素位置的移动距离是否大于指定阈值,如果大于指定阈值,则计算新的整像素位置,重新执行步骤S3至步骤S5;否则输出该亚像素位置对应的亚像素边缘;

步骤S3中,所述根据整像素位置使用多阶zernike矩计算第一边缘参数和第二边缘参数的方法包括:计算各阶的zernike模板;

使用模板计算zernike矩,并计算出坐标轴旋转角度;

通过坐标轴旋转角度,根据整像素位置计算出旋转后的各阶的zernike矩;

根据旋转后的一阶和二阶zernike矩,计算出第一边缘参数,第一边缘参数包括中心点到像素边缘的第一距离、第一阶跃高度;根据旋转后的一阶和三阶zernike矩,计算出第二边缘参数,第二边缘参数包括中心点到像素边缘的第二距离、第二阶跃高度;

步骤S4中, 所述根据第一边缘参数和第二边缘参数获得中心点到像素边缘的距离采用如下公式:;

其中,l表示中心点到像素边缘的距离;l1表示中心点到像素边缘的第一距离,l2表示中心点到像素边缘的第二距离,k1表示第一阶跃高度,k2表示第二阶跃高度。

2.根据权利要求1所述的基于zernike矩的亚像素定位方法,其特征在于,步骤S1中,还包括:获取图像后,对图像进行降噪处理;所述降噪处理包括高斯滤波和/或Kuwahara滤波。

3.根据权利要求1所述的基于zernike矩的亚像素定位方法,其特征在于,步骤S2中,所述查找图像的整像素边缘的方法包括:使用ED算法、Canny或Sobel算子提取边缘。

4.根据权利要求1所述的基于zernike矩的亚像素定位方法,其特征在于,步骤S4中,所述根据中心点到像素边缘的距离和整像素位置获得亚像素位置采用如下公式:;

其中,(x0,y0)为整像素位置,(xs,ys)为亚像素位置,N为zernike矩的模板的大小, 表示坐标轴旋转角度,l表示中心点到像素边缘的距离。

5.根据权利要求1所述的基于zernike矩的亚像素定位方法,其特征在于,步骤S5中,所述计算新的整像素位置包括:若 ,则x1=x0+1;若 ,则x1=x0‑1;

若 ,则y1=y0+1;若 ,则y1=y0‑1;

其中,(x0,y0)为整像素位置,(x1,y1)为新的整像素位置,N为zernike矩的模板的大小,表示坐标轴旋转角度,l表示中心点到像素边缘的距离。

6.一种亚像素定位系统,其特征在于,包括:

图像输入模块,用于获取图像;

整像素位置计算模块,用于查找图像的整像素边缘,获得整像素位置;

边缘参数计算模块,用于根据整像素位置使用多阶zernike矩计算第一边缘参数和第二边缘参数;

亚像素位置计算模块,用于根据第一边缘参数和第二边缘参数获得中心点到像素边缘的距离,根据中心点到像素边缘的距离和整像素位置获得亚像素位置;所述根据第一边缘参数 和第二 边缘参 数获 得中心 点到像 素边 缘的 距离采 用如下 公式 :;其中,l表示中心点到像素边缘的距离;l1表示中心点到像素边缘的第一距离,l2表示中心点到像素边缘的第二距离,k1表示第一阶跃高度,k2表示第二阶跃高度;

移动距离判断模块,用于判断亚像素位置相对于整像素位置的移动距离是否大于指定阈值,如果大于指定阈值,则计算新的整像素位置,否则输出该亚像素位置对应的亚像素边缘;以及整像素位置更新模块,用于计算新的整像素位置;

所述根据整像素位置使用多阶zernike矩计算第一边缘参数和第二边缘参数包括:计算各阶的zernike模板;

使用模板计算zernike矩,并计算出坐标轴旋转角度;

通过坐标轴旋转角度,根据整像素位置计算出旋转后的各阶的zernike矩;

根据旋转后的一阶和二阶zernike矩,计算出第一边缘参数,第一边缘参数包括中心点到像素边缘的第一距离、第一阶跃高度;根据旋转后的一阶和三阶zernike矩,计算出第二边缘参数,第二边缘参数包括中心点到像素边缘的第二距离、第二阶跃高度。

7.一种电子设备,其特征在于,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1‑5中任一所述的基于zernike矩的亚像素定位方法。

8.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1‑5中任一所述的基于zernike矩的亚像素定位方法。

说明书 :

亚像素定位方法、系统、电子设备和介质

技术领域

[0001] 本发明涉及图像处理技术领域,尤其涉及一种亚像素定位方法、系统、电子设备和介质。

背景技术

[0002] 随着工业技术的发展,对测量的精度的要求也越来越高。在实际测量中,整像素级的精度已经不能满足需求。为了获得更高的测量精度,最直接的办法是提高摄像机的图像分辨率。但是,相机分辨率的提高会带来相机价格的急剧上升。因此通过提高硬件分辨率的方法来提高测量精度是不够经济的。
[0003] 除了提高硬件规格,另一种方法就是采用亚像素边缘定位技术。亚像素边缘定位技术首先利用经典的边缘检测方法如Soble算子,canny算法找到整像素边缘,再结合整像素边缘点附近的像素灰度值,进而获得更高精度的边缘位置。
[0004] 常用的亚像素定位技术有拟合法,矩法。拟合法先要假设边缘模型,然后获取边缘像素值,再利用像素值对边缘模型进行拟合。矩法主要有空间矩法,灰度矩法和zernike矩法。矩法具有旋转不变性,且图像的矩包含了边缘模型的参数,可以通过边缘点的不同矩,来计算出边缘参数。Zernike矩是正交的,具有计算量小,检测精度高,抗噪性好的特点,因此常被用于边缘的亚像素定位。
[0005] 但是现有技术中,存在如下缺陷:其一,多套边缘参数的融合方法不合理:对于三台阶边缘,当两个台阶高度相同,但边缘距离不同时,边缘会取其中一个边缘,而不是两个边缘的均值。其二,在亚像素定位的过程中,许多文献都默认整像素边缘是正确的,离真正的边缘距离一个1像素之内,只需要亚像素进行一次定位即可,但未考虑到由于噪声影响,获得的整像素和真实边缘的距离可能大于1个像素,计算出来的数据是不准确的。
[0006] 因此,需要提供一种亚像素定位方法、系统、电子设备和介质,能够准确地计算出亚像素边缘的位置。
[0007] 在所述背景技术部分公开的上述信息仅用于加强对本申请的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

[0008] 本发明主要目的是克服像素边缘计算不准确的问题,提供一种亚像素定位方法、系统、电子设备和介质,能够准确地计算出亚像素边缘的位置。
[0009] 为实现上述的目的,本发明第一方面提供了一种基于zernike矩的亚像素定位方法,包括以下步骤:
[0010] S1:获取图像;
[0011] S2:查找图像的整像素边缘,获得整像素位置;
[0012] S3:根据整像素位置使用多阶zernike矩计算第一边缘参数和第二边缘参数;
[0013] S4:根据第一边缘参数和第二边缘参数获得中心点到像素边缘的距离,根据中心点到像素边缘的距离和整像素位置获得亚像素位置;
[0014] S5:判断亚像素位置相对于整像素位置的移动距离是否大于指定阈值,如果大于指定阈值,则计算新的整像素位置,重新执行步骤S3至步骤S5;否则输出该亚像素位置对应的亚像素边缘。
[0015] 根据本发明一示例实施方式,步骤S1中,还包括:获取图像后,对图像进行降噪处理;所述降噪处理包括高斯滤波和/或Kuwahara滤波。
[0016] 根据本发明一示例实施方式,步骤S2中,所述提取图像的整像素边缘的方法包括:使用ED算法、Canny或Sobel算子提取边缘。
[0017] 根据本发明一示例实施方式,步骤S3中,所述根据整像素位置使用多阶zernike矩计算第一边缘参数和第二边缘参数的方法包括:
[0018] 计算各阶的zernike模板;
[0019] 使用模板计算zernike矩,并计算出坐标轴旋转角度;
[0020] 通过坐标轴旋转角度,根据整像素位置计算出旋转后的各阶的zernike矩;
[0021] 根据旋转后的一阶和二阶zernike矩,计算出第一边缘参数,第一边缘参数包括中心点到像素边缘的第一距离、第一阶跃高度;根据旋转后的一阶和三阶zernike矩,计算出第二边缘参数,第二边缘参数包括中心点到像素边缘的第二距离、第二阶跃高度。
[0022] 根据本发明一示例实施方式,步骤S5中,所述根据第一边缘参数和第二边缘参数获得中心点到像素边缘的距离采用如下公式:
[0023] ;
[0024] 其中,l表示中心点到像素边缘的距离;l1表示中心点到像素边缘的第一距离,l2表示中心点到像素边缘的第二距离,k1表示第一阶跃高度,k2表示第二阶跃高度。
[0025] 根据本发明一示例实施方式,步骤S6中,所述根据中心点到像素边缘的距离和整像素位置获得亚像素位置采用如下公式:
[0026] ;
[0027] 其中,(x0,y0)为整像素位置,(xs,y)s 为亚像素位置,N为zernike矩的模板的大小,表示坐标轴旋转角度,l表示中心点到像素边缘的距离。
[0028] 根据本发明一示例实施方式,步骤S5中,所述计算新的整像素位置包括:
[0029] 若 ,则x1=x0+1;若 ,则x1=x0‑1;
[0030] 若 ,则y1=y0+1;若 ,则y1=y0‑1;
[0031] 其中,(x0,y0)为整像素位置,(x1,y1)为新的整像素位置,N为zernike矩的模板的大小,表示坐标轴旋转角度,l表示中心点到像素边缘的距离。
[0032] 作为本发明的第二个方面,提供一种亚像素定位系统,包括:
[0033] 图像输入模块,用于获取图像;
[0034] 整像素位置计算模块,用于查找图像的整像素边缘,获得整像素位置;
[0035] 边缘参数计算模块,用于根据整像素位置使用多阶zernike矩计算第一边缘参数和第二边缘参数;
[0036] 亚像素位置计算模块,用于根据第一边缘参数和第二边缘参数获得中心点到像素边缘的距离,根据中心点到像素边缘的距离和整像素位置获得亚像素位置;
[0037] 移动距离判断模块,用于判断移动距离判断模块,用于判断亚像素位置相对于整像素位置的移动距离是否大于指定阈值,如果大于指定阈值,则计算新的整像素位置,否则输出该亚像素位置对应的亚像素边缘;以及
[0038] 整像素位置更新模块,用于计算新的整象素位置;
[0039] 所述根据整像素位置使用多阶zernike矩计算第一边缘参数和第二边缘参数包括:
[0040] 计算各阶的zernike模板;
[0041] 使用模板计算zernike矩,并计算出坐标轴旋转角度;
[0042] 通过坐标轴旋转角度,根据整像素位置计算出旋转后的各阶的zernike矩;
[0043] 根据旋转后的一阶和二阶zernike矩,计算出第一边缘参数,第一边缘参数包括中心点到像素边缘的第一距离、第一阶跃高度;根据旋转后的一阶和三阶zernike矩,计算出第二边缘参数,第二边缘参数包括中心点到像素边缘的第二距离、第二阶跃高度。
[0044] 根据本发明一示例实施方式,所述亚像素定位系统可执行所述的基于zernike矩的亚像素定位方法。
[0045] 作为本发明的第三个方面,本发明提供一种电子设备,包括:
[0046] 一个或多个处理器;
[0047] 存储装置,用于存储一个或多个程序;
[0048] 当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现所述基于zernike矩的亚像素定位方法。
[0049] 作为本发明的第四个方面,本发明提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现所述基于zernike矩的亚像素定位方法。
[0050] 本发明的优势效果是,本发明对不同的zernike矩计算出两套边缘参数,并进行合理融合,亚像素位置的计算更准确;同时本发明在亚像素位置和整像素位置距离过大时重新计算整像素位置,使得计算结果更准确。

附图说明

[0051] 通过参照附图详细描述其示例实施例,本申请的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0052] 图1示意性示出了亚像素定位系统的结构图。
[0053] 图2示意性示出了基于zernike矩的亚像素定位方法的步骤图。
[0054] 图3示意性示出了基于zernike矩的亚像素定位方法的流程图。
[0055] 图4示意性示出了zernike边缘模型的示意图,其中,图4(a)为原始边缘模型,图4(b)为旋转后的边缘模型。
[0056] 图5示意性示出了两套边缘参数的示意图。
[0057] 图6示意性示出了二次亚像素定位的示意图,其中,图6(a)为初定位的整像素和亚像素的位置关系,图6(b)为二次定位的整像素位置,图6(c)为二次定位的亚像素的位置。
[0058] 图7示意性示出了整像素定位、本方案的zernike算法、标准zernike算法检测结果示意图。
[0059] 图8示意性示出了整像素定位、使用一次亚像素定位和使用二次亚像素定位的检测结果示意图。
[0060] 图9示意性示出了一种电子设备的框图。

具体实施方式

[0061] 现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
[0062] 此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
[0063] 附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0064] 附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0065] 应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
[0066] 本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
[0067] 根据本发明的第一个具体实施方式,本发明提供一种亚像素定位系统,如图1所示,包括图像输入模块、整像素位置计算模块、边缘参数计算模块、亚像素位置计算模块、移动距离判断模块和整像素位置更新模块。
[0068] 图像输入模块用于获取图像。
[0069] 整像素位置计算模块和图像输入模块通讯地连接,用于提查找图像的整像素边缘,获得整像素位置。
[0070] 边缘参数计算模块和整像素位置计算模块通讯地连接,用于根据整像素位置使用多阶zernike矩计算第一边缘参数和第二边缘参数。
[0071] 亚像素位置计算模块和边缘参数计算模块通讯地连接,用于根据第一边缘参数和第二边缘参数获得中心点到像素边缘的距离,根据中心点到像素边缘的距离和整像素位置获得亚像素位置。
[0072] 移动距离判断模块和整像素计算模块、亚像素位置计算模块、整像素位置更新模块通讯地连接,用于判断移动距离判断模块,用于判断亚像素位置相对于整像素位置的移动距离是否大于指定阈值,如果大于指定阈值,则指示整像素位置更新模块计算新的整像素位置,否则输出该亚像素位置对应的亚像素边缘。
[0073] 整像素位置更新模块和整像素位置计算模块、亚像素位置计算模块通讯地连接,用于根据亚像素位置和整像素位置计算新的整象素位置。
[0074] 根据本发明的第二个具体实施方式,本发明提供一种基于zernike矩的亚像素定位方法,采用第一个具体实施方式的亚像素定位系统,如图2和图3所示,包括以下步骤:
[0075] S1:获取图像。
[0076] 采用图像输入模块获取图像后,对图像进行降噪处理。降噪处理包括高斯滤波和/或Kuwahara滤波。
[0077] S2:查找图像的整像素边缘,获得整像素位置。
[0078] 整像素位置计算模块查找图像的整像素边缘,获得整像素位置,具体方法包括:使用ED算法、Canny或Sobel算子提取边缘。
[0079] S3:根据整像素位置使用多阶zernike矩计算第一边缘参数和第二边缘参数。
[0080] 根据整像素位置使用多阶zernike矩计算第一边缘参数和第二边缘参数的方法包括:
[0081] S31:计算各阶的zernike模板。
[0082] 优选地,模板的大小选用5*5或7*7。
[0083] 计算亚像素位置时,会以整像素位置为中心点位置,取5*5或者7*7的邻域,基于这些邻域信息获取更加准确的亚像素。所以中心点位置就是整像素位置。
[0084] n阶m次zernike多项式 的定义为:
[0085] ;
[0086] 其中,n和m为正整数,且n≥m≥0,j为虚数单位, , 分别为极坐标下的任一点到坐标原点距离和角度。 的计算公式为:
[0087] ;
[0088] 其中,s、n、m为正整数,为极坐标下的任一点到坐标原点距离。
[0089] 使用zernike多项式可以计算图像的zernike矩,图像的n阶m次zernike矩 定义为:
[0090] ;
[0091] 其中,n和m为正整数,且n≥m≥0, 为zernike多项式, 为极坐标下的图像坐标, 分别为极坐标下的任一点到坐标原点距离和角度。
[0092] 去掉 表达式中的系数,将积分从极坐标变换到直角坐标系,得到未归一化的zernike矩 :
[0093] ;
[0094] 其中,u为图像的水平方向像素点的距离,v为图像的垂直方向像素点的距离,为直角坐标系中的zernike多项式, 为直角坐标系下的图像中像素点(u,v)的像素值。
[0095] zernike矩的特点在于其具有旋转不变性,即旋转前后zernike矩的模不变,只是相角发生变化。因此在边缘点的一个邻域内,将边缘旋转后计算多阶zernike矩,并推导出zernike矩和边缘参数的关系,联立即可解出这些边缘参数。
[0096] 如图4所示,图4(a)为原始边缘模型,图4(b)为旋转后的边缘模型,x轴表示水平方向,y轴表示垂直方向,图像的边缘可由4个参数表示,包括:图像的背景灰度值h、阶跃高度k、中心点到像素边缘的距离l、边缘的垂线和x轴的夹角。图中的边缘模型为标准的阶跃边缘模型,图中直线代表一段边缘。图中的原点为某个整像素点,圆内区域表示中心整像素点的邻域,圆内的点都会参与计算zernike矩,得到的亚像素点则位于直线上,具体位置可由边缘参数中的距离和角度得到。
[0097] S32:使用模板计算zernike矩,并计算出坐标轴旋转角度。
[0098] 当坐标轴旋转角度为 时,旋转前后zernike矩的关系为:
[0099] ;
[0100] 其中, 为旋转后的n阶m次zernike矩, 为旋转前的n阶m次zernike矩,表示坐标轴旋转角度,j为虚数单位, 。
[0101] 坐标轴旋转角度 由如下公式计算:
[0102] ;
[0103] 其中,表示坐标轴旋转角度,atan2表示反正切函数,Im表示取虚部,Re表示取实部,Z1,1表示一阶zernike矩。
[0104] S33:通过坐标轴旋转角度,根据整像素位置计算出旋转后的各阶的zernike矩。
[0105] 旋转后,0到3阶的zernike矩为:
[0106] ;
[0107] ;
[0108] ;
[0109] ;
[0110] 其中, 表示旋转后的0阶zernike矩, 表示旋转后的一阶zernike矩, 表示旋转后的二阶zernike矩, 表示旋转后的三阶zernike矩,l表示中心点到像素边缘的距离,k表示阶跃高度。
[0111] 中心点位置就是整像素位置,根据整像素位置,可以获得中心点到像素边缘的距离。
[0112] S34:根据旋转后的一阶和二阶zernike矩,计算出第一边缘参数,第一边缘参数包括中心点到像素边缘的第一距离、第一阶跃高度;根据旋转后的一阶和三阶zernike矩,计算出第二边缘参数,第二边缘参数包括中心点到像素边缘的第二距离、第二阶跃高度。
[0113] 由旋转后的一阶zernike矩和旋转后的二阶zernike矩可以确定l和k,记为l1、k1:
[0114] ;
[0115] ;
[0116] 其中,l1表示中心点到像素边缘的第一距离; 表示旋转后的二阶zernike矩;表示旋转后的一阶zernike矩;k1表示第一阶跃高度。
[0117] 同理,由旋转后的一阶zernike矩和旋转后的三阶zernike矩可得l2、k2:
[0118] ;
[0119] ;
[0120] 其中,l2表示中心点到像素边缘的第二距离; 表示旋转后的三阶zernike矩,表示旋转后的一阶zernike矩;k2表示第二阶跃高度。
[0121] S4:根据第一边缘参数和第二边缘参数获得中心点到像素边缘的距离,根据中心点到像素边缘的距离和整像素位置获得亚像素位置。
[0122] 根据第一边缘参数和第二边缘参数获得中心点到像素边缘的距离采用如下公式:
[0123] ;
[0124] 其中,l表示中心点到像素边缘到中心的距离;l1表示中心点到像素边缘的第一距离,l2表示中心点到像素边缘的第二距离,k1表示第一阶跃高度,k2表示第二阶跃高度。
[0125] 根据中心点到像素边缘的距离和整像素位置获得亚像素位置采用如下公式:
[0126] ;
[0127] 其中,(x0,y0)为整像素位置,(xs,y)s 为亚像素位置,N为zernike矩的模板的大小,表示坐标轴旋转角度,l表示中心点到像素边缘的距离。
[0128] S5:判断亚像素位置相对于整像素位置的移动距离是否大于指定阈值,如果大于指定阈值,则计算新的整像素位置,重新执行步骤S3至步骤S5;否则输出该亚像素位置所对应的亚像素边缘。
[0129] 优选地,指定阈值为0.75。
[0130] 具体地,只要在x方向或者y方向的移动距离大于指定阈值就认为亚像素位置相对于整像素位置的移动距离是否大于指定阈值。
[0131] 的绝对值为水平方向的移动距离, 的绝对值为垂直方向的移动距离。
[0132] 计算新的整像素位置包括:
[0133] 若 ,则x1=x0+1;若 ,则x1=x0‑1;
[0134] 若 ,则y1=y0+1;若 ,则y1=y0‑1;
[0135] 其中,(x0,y0)为整像素位置,(x1,y1)为新的整像素位置,N为zernike矩的模板的大小,表示坐标轴旋转角度,l表示中心点到像素边缘的距离。
[0136] 发明对不同的zernike矩计算出两套边缘参数,并进行合理融合,亚像素位置的计算更准确;同时本发明在亚像素位置和整像素位置距离过大时重新计算整像素位置,使得计算结果更准确;并且,本发明经过二次融合,根据第一次计算的亚像素位置重新获得整像素位置,并第二次计算出亚像素位置,计算结果更精确。
[0137] 如图5所示,本方案采用两套边缘参数进行计算,h、l1、k1和h、l2、k2为计算出的两套边缘参数,分别代表边缘的背景灰度、中心点到像素边缘的距离和阶跃高度,本方案采用,当k2=0时,l=l1;当k2=k1时, 。理论上,当k2=k1时,真正的边缘应该在l1和l2中间,即: 。结果符合理论预期。
[0138] 如图6所示,图6(a)为初定位的整像素和亚像素的位置关系,图6(b)为二次定位的整像素位置,图6(c)为二次定位的亚像素的位置。本方案先计算出亚像素位置,如果整像素位置和亚像素位置差距过大,基于亚像素位置对整像素位置进行修正,最后基于修正的整像素位置进行二次亚像素定位。在水平方向对整像素进行修正及二次像素定位的示意图如图6所示,其中圆点代表整像素点,五角星代表亚像素点。如图6(a)所示,初定位时,计算出的整像素位置和第一次亚像素位置偏差很大。如图6(b)所示,二次定位时,修正了整像素位置,修正后更新了整像素位置,二次定位后,如图6(c)所示,又根据整像素位置获得第二次亚像素位置,修正了偏差,使得结果更为准确。
[0139] 如图7所示,图7为整像素定位、本方案的zernike算法、标准zernike算法检测结果示意图。图7为一图案的边缘,下方最深色为非图案部分,上方最浅色为图案部分,中间介于最深色和最浅色之间为圆的边缘,例如图案为一圆的最下面部分,最上方浅色为圆内,最下方深色为圆外,中间由最浅色到最深色的过度为圆的边缘,如图7所示,以一个颜色均一的正方形像素点为例,从上到下可分为6个行像素点,其中最下方一行为半行,由上至下颜色依次加深,最上方一行为圆内,中间三行为圆的边缘,最下面两行为圆外,正是因为圆形的边缘颜色深浅界定不明确,所以需要找到精确的边缘,因此,本方案目标是为了找到精确的边缘,计算到的整像素位置为圆形,计算到的标准zernike的亚像素位置为+号,计算到的本方案的zernike的亚像素位置为星号。从图中可以看出,相对于整像素定位,标准zernike算法和真实的边缘更加接近;相对于标准zernike算法,本发明算法的亚像素位置和真实的边缘更加接近,本方案的亚像素定位精度更高。
[0140] 如图8所示,图8为整像素定位、使用一次亚像素定位和使用二次亚像素定位的检测结果示意图,图8为一图案的边缘,下方最深色为非图案部分,上方最浅色为图案部分中间介于最深色和最浅色之间为圆的边缘,例如图案为一圆的最下面部分,最上方浅色为圆内,最下方深色为圆外,中间由最浅色到最深色的过度为圆的边缘,如图8所示,以一个颜色均一的正方形像素点为例,从上到下可分为11个行像素点,其中最上方和最下方一行均为半行,由上至下颜色依次加深,最上方4行为圆内,中间4行为圆的边缘,最下面3行为圆外,正是因为圆形的边缘颜色深浅界定不明确,所以需要找到精确的边缘,因此,本方案目标是为了找到精确的边缘计算到的整像素位置为圆形,计算到的一次亚像素定位为+号,计算到的本方案的二次亚像素定位的为星号。从图上可以看出,使用了一次亚像素定位的算法明显要好于整像素定位,使用了二次亚像素定位的算法检测的结果明显要好于未使用二次亚像素定位(一次亚像素定位)。
[0141] 综上所示,通过使用本方案的新的边缘融合方式,以及使用亚像素二次定位技术,都可以提高zerniek定位的精度,使检测的亚像素边缘和真实边缘更加接近。
[0142] 根据本发明的第三个具体实施方式,本发明提供一种电子设备,如图9所示,图9是根据一示例性实施例示出的一种电子设备的框图。
[0143] 下面参照图9来描述根据本申请的这种实施方式的电子设备900。图9显示的电子设备900仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
[0144] 如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:至少一个处理单元910、至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930、显示单元940等。
[0145] 其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元910执行,使得所述处理单元910执行本说明书中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元910可以执行第二个具体实施方式所示的步骤。
[0146] 所述存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)9201和/或高速缓存存储单元9202,还可以进一步包括只读存储单元(ROM)9203。
[0147] 所述存储单元920还可以包括具有一组(至少一个)程序模块9205的程序/实用工具9204,这样的程序模块9205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0148] 总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0149] 电子设备900也可以与一个或多个外部设备900’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备900交互的设备通信,和/或该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器960可以通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0150] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。
[0151] 因此,根据本发明的第四个具体实施方式,本发明提供一种计算机可读介质。根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD‑ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明实施方式的上述方法。
[0152] 所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0153] 所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0154] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0155] 上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现第二个实施方式的功能。
[0156] 本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0157] 通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD‑ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本发明实施例的方法。
[0158] 以上具体地示出和描述了本发明的示例性实施例。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。