网格方向、比例、变换和调制估算的制作方法

文档序号:6563206阅读:195来源:国知局
专利名称:网格方向、比例、变换和调制估算的制作方法
技术领域
本发明一般涉及图像处理,特别涉及网格检测。本发明还涉及用于确定网格的方向(以下称为“网格方向”)、间隔(以下称为“网格间隔”)和变换(以下称为“网格变换”)的方法和装置,并涉及包含其上记录有用于确定网格的网格方向、网格间隔和网格变换的计算机程序的计算机可读介质的计算机程序产品。
背景技术
在用于确定网格方向(grid orientation)和网格间隔的领域中存在多种方法。这些方法一般是用于对准数据以网格状结构被存储在其中的二维条形码或水印的方法的一部分。
现有技术方法一般使用诸如自相关或周期图的基于褶合的方法以确定网格方向和网格间隔。自相关和周期图都确定输入数据中的主频率,该主频率在输出数据中以峰值显现。这些峰值然后可被确定,并且最大峰值的位置给出网格的主频率。然后可从主频率确定网格的网格间隔和网格方向。
基于褶合的方法的主要缺点在于,由于它们在整个图像上执行褶合,因此它们在计算上花费较大。
因此,很显然存在对在计算上花费较小的、用于确定网格的网格方向、网格间隔和网格变换的改进的方法的需要。

发明内容
根据本发明的一个方面,提供一种用于确定以点的调制网格编码的数据的一个或更多个参数的方法,该方法包括以下步骤确定从所述网格的至少一个点到最近的其它点的一个或更多个矢量,这些点关于虚拟网格被调制;使用矢量去除调制以确定虚拟网格;和通过使用确定的矢量确定所述网格的方向。
根据本发明的另一方面,提供一种用于确定编码数据的网格的方法,该方法包括以下步骤确定数据的数据点相对于数据的至少一个最近的相邻数据点的位移方向的统计平均值;基于所述统计平均值确定数据的角取向;基于角取向确定数据的网格。
根据本发明的另一方面,提供一种用于确定以点的调制网格编码的数据的网格方向、网格间隔和网格变换的方法,该方法包括以下步骤确定从至少一个点中的每一个到最近的其它点的位移矢量;通过使用位移矢量确定网格方向;确定网格间隔;和通过使用附近的点的邻近关系确定至少一个点的网格变换。
根据本发明的另一方面,提供一种用于确定编码数据的网格的方法,该方法包括以下步骤确定数据的角取向,该角取向是基于数据点和最近的相邻数据点的位移方向的统计平均值被确定的;确定网格中的相邻数据点的间隔;和确定关于网格的各数据点的偏移量。
根据本发明的另一方面,提供一种用于确定以点的调制网格编码的数据的一个或更多个参数的装置,该装置包括用于确定从所述网格的至少一个点到最近的其它点的一个或更多个矢量的矢量确定装置,这些点关于虚拟网格被调制;用于使用矢量去除调制以确定虚拟网格的调制去除装置;和用于通过使用确定的矢量确定所述网格的方向的网格方向确定装置。
根据本发明的另一方面,提供一种确定编码数据的网格的装置,该装置包括用于确定数据的数据点相对于数据的至少一个最近的相邻数据点的位移方向的统计平均值的统计平均值确定装置;用于基于所述统计平均值确定数据的角取向的角取向确定装置;用于基于角取向确定数据的网格的网格确定装置。
根据本发明的另一方面,提供一种用于确定以点的调制网格编码的数据的网格方向、网格间隔和网格变换的装置,该装置包括用于确定从至少一个点中的每一个到最近的其它点的位移矢量的位移矢量确定装置;用于通过使用位移矢量确定网格方向的网格方向确定装置;用于确定网格间隔的网格间隔确定装置;和用于通过使用附近的点的邻近关系确定至少一个点的网格变换的网格变换确定装置。
根据本发明的另一方面,提供一种用于确定编码数据的网格的装置,该装置包括用于确定数据的角取向的角取向确定装置,该角取向是基于数据点和最近的相邻数据点的位移方向的统计平均值被确定的;用于确定网格中的相邻数据点的间隔的间隔确定装置;和用于确定关于网格的各数据点的偏移量的偏移量确定装置。
根据本发明的另一方面,提供一种用于确定以点的调制网格编码的数据的一个或更多个参数的计算机程序,该程序包括用于确定从所述网格的至少一个点到最近的其它点的一个或更多个矢量的代码,这些点关于虚拟网格被调制;和用于使用矢量去除调制以确定虚拟网格的代码;用于通过使用确定的矢量确定网格的方向的代码。
根据本发明的另一方面,提供一种用于确定编码数据的网格的计算机程序,该程序包括用于确定数据的数据点相对于数据的至少一个最近的相邻数据点的位移方向的统计平均值的代码;和用于基于统计平均值确定数据的角取向的代码;用于基于角取向确定数据的网格的代码。
根据本发明的另一方面,提供一种用于确定以点的调制网格编码的数据的网格方向、网格间隔和网格变换的计算机程序,该程序包括用于确定从至少一个点中的每一个到最近的其它点的位移矢量的代码;用于通过使用位移矢量确定网格方向的代码;用于确定网格间隔的代码;和用于通过使用附近的点的邻近关系确定至少一个点的网格变换的代码。
根据本发明的另一方面,提供一种用于确定编码数据的网格的计算机程序,该程序包括用于确定数据的角取向的代码,该角取向是基于数据点和最近的相邻数据点的位移方向的统计平均值被确定的;用于确定网格中的相邻数据点的间隔的代码;和用于确定关于网格的各数据点的偏移量的代码。
根据本发明的另一方面,提供一种计算机程序产品,该计算机程序产品具有其中记录有用于确定以点的调制网格编码的数据的一个或更多个参数的计算机程序的计算机可读介质,该计算机程序产品包括用于确定从所述网格的至少一个点到最近的其它点的一个或更多个矢量的计算机程序代码装置,这些点关于虚拟网格被调制;用于使用矢量去除调制以确定虚拟网格的计算机程序代码装置;和用于通过使用确定的矢量确定网格的方向的计算机程序代码装置。
根据本发明的另一方面,提供一种计算机程序产品,该计算机程序产品具有其中记录有用于确定编码数据的网格的计算机程序的计算机可读介质,该计算机程序产品包括
用于确定数据的数据点相对于数据的至少一个最近的相邻数据点的位移方向的统计平均值的计算机程序代码装置;和用于基于统计平均值确定数据的角取向的计算机程序代码装置;用于基于角取向确定数据的网格的计算机程序代码装置。
根据本发明的另一方面,提供一种计算机程序产品,该计算机程序产品具有其中记录有用于确定以点的调制网格编码的数据的网格方向、网格间隔和网格变换的计算机程序的计算机可读介质,该计算机程序产品包括用于确定从至少一个点中的每一个到最近的其它点的位移矢量的计算机程序代码装置;用于通过使用位移矢量确定网格方向的计算机程序代码装置;用于确定网格间隔的计算机程序代码装置;和用于通过使用附近的点的邻近关系确定至少一个点的网格变换的计算机程序代码装置。
根据本发明的另一方面,提供一种计算机程序产品,该计算机程序产品具有其中记录有用于确定编码数据的网格的计算机程序的计算机可读介质,该计算机程序产品包括用于确定数据的角取向的计算机程序代码装置,该角取向是基于数据点和最近的相邻数据点的位移方向的统计平均值被确定的;用于确定网格中的相邻数据点的间隔的计算机程序代码装置;和用于确定关于网格的各数据点的偏移量的计算机程序代码装置。


现在参照

本发明的一个或更多个实施例,其中,图1是可实践说明的配置的通用计算机的示意性框图;图2表示已被相位调制的点的阵列;图3表示另一根据规则网格排列的点的阵列;图4表示又一已被相位调制的点的阵列;图5表示图4的规则正方形网格的交点的点调制位置;
图6表示数字数据存储器的数字的排序;图7表示用于确定点的网格的网格方向、网格间隔和网格变换的方法;图8表示用于确定点的调制网格中的网格方向、网格间隔、网格变换和调制量(quantum)的方法;图9表示在图7的方法中执行的用于确定网格方向的方法;图10表示在图7的方法中执行的用于确定网格的网格间隔的方法;图11表示右邻差分矢量的列表的示图。
图12表示x值的频率直方图;图13表示在图7的方法中执行的用于确定网格的网格变换的方法;图14表示以网格状结构排列的点以及在对网格的网格变换的估算中使用的局部窗口;图15表示用于确定调制量的方法;图16表示y值的频率直方图;图17表示用于确定调制量的替代性方法。
具体实施例方式
(调制网格)图2表示已被相位调制形成点的调制网格200(以下称为“调制网格”200)的点(例如,202)的阵列的放大图。调制网格200包含大量的临近正方形规则网格201的交点(例如,203)的点202。实际上,如图2所示,只有点202形成调制网格200。网格201及其线条是虚拟的,并且在图2中示出的目的仅是为了解释点202的位置。
调制网格200的外观与如图3所示根据规则正方形网格301排列形成点的规则网格300(以下称为“规则网格300”)的点(例如,302)的相似。但是,调制网格200和规则网格300是不同的。图3还表示规则正方形网格301的网格间隔303。
规则网格300和调制网格200之间的差异在于,调制网格200中的点202的位置被稍微调制得离开如果根据规则网格201的交点203排列点202则点202会占据的网格位置。这种轻微的调制出于两种目的。首先,调制使得调制网格200的点202的可见性比规则网格300的点302稍差。这是因为人的视觉系统非常善于注意规则的网格。其次,数字数据形式的消息可被存储在诸如调制网格200的点的调制网格中。
图4表示另一已被相位调制形成调制网格400的点(例如,402)的阵列。点402位于规则正方形网格400的交点(例如,407)附近。如图4所示,各点402被调制到九个可能的位置(例如,403)中的一个。每个点的九个可能的位置被排列成以相关的网格交点407为中心的三乘三阵列(例如405)。三乘三阵列405的中心位置409位于网格交点407上,并在水平和垂直方向上与零距离的调制对应。类似地,规则正方形网格401的其它交点具有位于该交点周围的三乘三阵列。剩余的八个调制位置(例如403)沿水平方向、垂直方向或同时沿水平和垂直方向偏离网格交点407。剩余调制位置偏离的水平和垂直距离称为“调制量”404。九个调制位置403相对于网格交点407的位置可被写作一系列(x,y)矢量,这里,x表示水平方向,y表示垂直方向,并且,使用对于x向右偏离为正、对于y向下偏离为正的约定。表示九个调制位置403相对于网格交点407的位置的矢量可被写成以下的形式,这里,“mq”表示调制量(-mq,-mq),(0,-mq),(+mq,-mq),(-mq,+0),(0,+0),(+mq,+0),(-mq,+mq),(0,+mq)和
(+mq,+mq)。
图5更详细地表示规则正方形网格401的点调制位置(例如,403)。点调制位置403的中心在网格401的网格交点407上,并且,诸如调制位置403的各调制位置具有与调制位置403有关的数字代码值(例如503)。包含调制位置403的九个调制位置允许各点402对包括调制位置403的数字代码值503的九个可能的数字代码值中的一个进行编码。这使得调制网格400能够用作数字数据存储器,使得调制网格400的各点402存储数据的一个九进制(base-nine)数字。数字数据存储器的数字的优选排序是通过使用如图6所示的点601的矩形阵列600提供的排序。该排序在最上面、最左边的点601开始,并如箭头(例如604)所示从左到右然后从上到下前进,直到到达最底下、最右边的点603。也可以使用图6中所示的以外的数字数据存储器的数字的排序。
在一些情况下,在包含一些数据的调制网格给出时,确定调制网格的网格方向、网格间隔和调制量是有用的。可以通过利用这样一种事实实现网格方向、网格间隔和调制量的确定,即,在诸如调制网格400的调制网格中,点402之间的平均间隔将等于网格间隔411。但是,点402之间的平均间隔不总是等于网格间隔411。类似地,诸如点402和点413的相邻的点之间的平均方向与规则正方形网格401的线条对准。但是,相邻的点(402和403)之间的方向不总是与网格401的线条对准。
另外,对于给定的点(例如,402),估算其对应的基础网格点的位置是有用的。这个问题称为发现网格变换。点的网格点位置由最接近该点的交点的坐标表示。例如,点402的网格点位置是交点407的坐标。
在许多应用中,调制网格(例如,400)会在产生调制网格400的时间和确定与调制网格400有关的参数(例如,网格间隔、网格方向)的时间之间被修改。例如,调制网格400会被打印、被扫描和经受点检测。在这种修改中,一些额外的点会被引入,或者一些点会消失,以及一些点会移动。即使在出现这些修改时,网格参数的估算也应可靠。
(确定网格参数)现在参照图7~17说明用于确定点的网格的网格方向、网格间隔和网格变换的方法700。可以通过使用诸如图1所示的通用计算机系统100实践方法700,其中,图7~17的方法可被实现为诸如在计算机系统100内执行的应用程序的软件。特别地,通过由计算机执行的软件中的指令实现方法700的步骤。这些指令可形成为一个或更多个代码模块,每一个代码模块用于执行一个或更多个特定的任务。软件也可被分成两个分开的部分,其中,第一部分执行说明的过程,第二部分管理第一部分和用户之间的用户接口。例如,软件可被存储在包含以下说明的存储设备的计算机可读介质中。软件被从计算机可读介质加载到计算机中,然后被计算机执行。具有记录在其上面的这种软件或计算机程序的计算机可读介质是计算机程序产品。优选地在计算机中使用计算机程序产品实现用于执行方法700的有益的装置。
通过计算机模块101、诸如键盘102和鼠标103的输入设备、包含打印机115、显示器114和扬声器117的输出设备形成计算机系统100。计算机模块101使用调制器-解调器(调制解调器)收发器116以相对例如可经由电话线121或其它功能介质连接的通信网络120通信。调制解调器116可用于获得对因特网和诸如局域网(LAN)或广域网(WAN)的其它网络系统的访问,并可在一些实现中被包含在计算机模块101中。
计算机模块101一般包含至少一个处理器单元105和例如由半导体随机访问存储器(RAM)和只读存储器(ROM)形成的存储器单元106。模块101还包含多个输入/输出(I/O)接口,这些输入/输出(I/O)接口包含与视频显示器114和扬声器117耦合的音频-视频接口107、用于键盘102和鼠标103以及任选地用于游戏杆(未示出)的I/O接口113和用于调制解调器115和打印机115的接口108。在一些实现中,可以在计算机模块101中例如接口108中包含调制解调器116。存储设备109被设置且一般包含硬盘驱动器(HDD)110和软盘驱动器(FDD)111。也可使用磁带驱动器(未示出)。CD-ROM驱动器112一般被设置为数据的非易失性源。计算机模块101的部件105~113一般经由互连的总线104并以导致相关领域技术人员公知的计算机系统100的常规操作模式的方式通信。其上可实践说明的配置的计算机的例子包括IBM-PC和兼容机、Sun Sparcstation或从它们发展的类似的计算机系统。
一般地,应用程序驻留在硬盘驱动器110上并在其执行中被处理器105读取和控制。可以通过使用可能与硬盘驱动器110协作的半导体存储器106实现程序和从网络120取回的任何数据的中间存储。在一些情况下,应用程序可以以被编码到CD-ROM或软盘上的形式供给用户,并通过相应的驱动器112或111被读取,或者,作为替代方案,可通过调制解调器116从网络120被用户读取。并且,软件也可从其它计算机可读介质被加载到计算机系统100中。这里使用的术语“计算机可读介质”指的是参与向计算机系统100提供用于执行和/或处理的指令和/或数据的任何存储或传输介质。存储介质的例子包含软盘、磁带、CD-ROM、硬盘驱动器、ROM或集成电路、磁光盘或诸如PCMCIA卡的计算机可读卡等,不论这些设备是在计算机模块101的内部或外部。传输介质的例子包含无线或红外传输通路以及到另一计算机或网络设备的网络连接、和包含电子邮件传输和记录在网站等上的信息的因特网或内部网。
也可以以诸如执行图7~17的方法的功能或子功能的一个或更多个集成电路的专用硬件实现方法700。这些专用硬件可包含图形处理器、数字信号处理器或一个或更多个微处理器和相关的存储器。
对方法700的输入是可被存储在存储器106中的网格的点的点坐标。方法700在步骤703开始,在步骤703,处理器105确定代表网格的网格方向的角度。网格方向是从存储在存储器106中的网格的点的点坐标确定的。将在下面参照图9详细说明在步骤703中执行的用于确定网格的网格方向的方法900。确定的网格方向可被存储在存储器106中。一旦网格方向被确定,那么在下一个步骤705中,处理器105对网格的所有点坐标施加旋转。该旋转将点坐标旋转网格方向角,使得旋转的点坐标具有与x和y轴对准的网格轴。给出旋转的点坐标,在下面的步骤707中,处理器105确定网格的网格间隔,该网格间隔可被存储在存储器106中。将在下面参照图10详细说明在步骤707中执行的用于检测网格的网格间隔的方法1000。在下面的步骤709中,处理器105使用网格间隔和旋转的点坐标以确定可被存储在存储器106中的网格变换。将在下面参照图13详细说明用于确定网格变换的方法1300。该方法在步骤709之后结束。
图8表示用于确定调制网格的网格方向、网格间隔、网格变换和调制量的方法800。对方法800的输入是可被存储在存储器106中的调制网格上的点的坐标。在下面的步骤803中,处理器105通过执行方法700确定网格方向、网格间隔和网格变换。然后,在下面的步骤805中,处理器105确定调制量。将在下面参照图15详细说明在步骤805中执行的用于确定调制量的方法1500。确定的调制量可被存储在存储器106中。
(确定网格方向)现在参照图9更详细地说明在方法700的步骤703中执行的用于确定网格方向的方法900。方法900确定网格的点的网格方向。
方法900在第一步骤902开始,这里,处理器105对网格的每一个点确定最接近该点的其它点。对网格中的每一个点执行步骤902。在步骤902中可使用任何公知的用于确定给定点的最接近点的方法。例如,一种用于确定给定点的最接近点的方法是,依次选择每一个其它的点,确定从选择的点到各其它的点的距离,然后选择确定的距离为最小的其它点。用于确定给定点的最接近点的优选方法是较快的方法,其中,整个网格空间被分成许多“桶(bucket)”。每个点被分配给覆盖给定点的位置的桶。为了确定给定点的最接近点,处理器105在覆盖给定点的桶开始,查看给定点周围的各桶中的所有的点,并选择最接近给定点的点。如果在任何周围的桶中都不存在点,那么处理器105沿径向向外继续下一组最接近的桶,并且方法以同样的方式继续。这种用于确定给定点的最接近点的优选方法大大减少为最接近点考虑的候选点的数量。
在下面的步骤903中,处理器105确定从各点到在步骤902中发现的最接近的其它点的位移矢量。因此,网格的每个点都具有对该点确定的相应的位移矢量。
在下面的步骤904中,处理器105为在步骤903中确定的各个位移矢量确定位移矢量的角度。矢量的角度θ可被如下确定θ=atan2(y,x)这里,x和y是矢量的水平和垂直分量。
方法900继续到以下的步骤905,这里,处理器105确定如下定义的变量A和B的值A=Σicos(4θi)]]>B=Σisin(4θi)]]>这里,θi是在步骤904中确定的位移矢量的角度。对所有的位移矢量取和。
方法900的下面的步骤906然后通过使用以下公式确定表示网格方向的网格方向角ΦΦ=atan2(B,A)方法900在步骤906后结束。
(确定网格间隔)现在参照图10详细说明在方法700的步骤707中执行的用于确定网格的网格间隔的方法1000。方法1000在第一步骤1002开始,在步骤1002,处理器105以网格的点作为输入。对于网格的各个点(x,y),同一水平行上的点(x,y)右边最接近的邻近点被确定并被存储在存储器106中。可以使用以下的试探法以执行步骤1002。不是(x,y)的每一个点(a,b)被考虑,并且,如果(a,b)在点(x,y)右边的九十(90)度扇区外面,那么点(a,b)被舍弃。形式上,如果
a-x≤0或|a-x|≤|b-y|那么点(a,b)被舍弃。对于留下的点,使以下函数最小化的点被确定d(a,b)=|a-x|+2|b-y|该点被认为是(x,y)的右面的点,并被存储在在存储器106中配置的右邻点的列表中。
在下面的步骤1003中,处理器105获取在步骤1002中存储在存储器106中的右邻点(a,b)中的每一个,并确定与(x,y)的差分(difference)矢量(dx,dy)(dx,dy)=(a,b)-(x,y)这里,(dx,dy)被存储在在存储器106内配置的差分矢量列表中。作为例子,图11表示差分矢量列表的图形1100。图形1100包含y轴1101和x轴1102。图形1100的圆圈(例如1103)代表差分矢量的端点。由于网格中的噪声和畸变,将存在一些诸如端点1104的误位的、远离(misplaced outlying)的端点。
方法1000继续到下面的步骤1004,在步骤1004,处理器105获取在步骤1003中确定的各差分矢量的x纵坐标,并产生x纵坐标的值的频率直方图。图12表示直方图1200的例子。轴1201是频率轴,轴1202是x纵坐标轴。频率直方图1200还包含频率条(例如,1203)。x纵坐标轴1202中的各量的大小与点坐标的粒度(granularity)相关。该量优选被选择为网格坐标轴系统的0.5。但是,对该量可使用任意适当的值。
方法1000继续到下面的步骤1005,这里,处理器105使用直方图1200以确定网格间隔。注意,大多数的右邻点将聚集在网格的间隔周围。因此,通过提取在图12的例子中被示为频率条1204的频率最高的x纵坐标的x值,确定网格间隔。
(确定网格变换)现在参照图13进一步详细说明在方法700的步骤709中执行的用于确定网格的网格变换的方法1300。提供存储在存储器106中的点坐标和网格间隔的列表作为对方法1300的输入。方法1300为网格的每一个点确定网格变换。即,对于每一个点,方法1300估算点的网格点位置。
方法在步骤1303开始,在步骤1303,处理器105为网格从存储在存储器106中的点的列表选择还没有被处理的点。该选择的点称为“当前点”。处理器105确定在当前点的局部窗口内的每一个点,并将该点放在在存储器106内配置的局部窗口点列表中。例如,图14表示噪声环境中以网格状配置1400排列的点。网格1400包含当前点1402以及当前点1402的网格点位置1403。当前点1402的局部窗口1401也被示出。在图14的例子中,局部窗口1401的边长为五(5)。局部窗口1401的尺寸取决于网格环境中存在的噪声的类型和严重程度。局部窗口的优选尺寸是三十(30)。
在下面的步骤1305中,处理器105从存储器106取得局部窗口点(例如,1404)的列表,并将各点(xk,yk)的坐标归一化,使得网格间隔变为2π,如下所示(xNewk,yNewk)=(2xkπgridSpacing,2ykπgridSpacing)]]>方法1300继续到以下的步骤1307,在步骤1307,处理器105获取存储在存储器106中的归一化的局部窗口点的列表并确定两个相量(phasor)xOffset和yOffsetxOffset=Σkcos(xNewk)+jsin(xNewk)]]>yOffset=Σkcos(yNewk)+jsin(yNewk)]]>对归一化的局部窗口点的列表进行步骤1307中的求和。xOffset和yOffset的相位分别估算当前点与其网格点沿x和y方向的相位差的量。
在以下的步骤1309中,处理器105确定当前点的网格点的位置。用(xc,yc)表示当前点。当前点的网格点(xGrid,yGrid)如下给出
xOffset1=xOffset(cos(-2xcπgridSpacing)+jsin(-2ycπgridSpacing))]]>yOffset2=yOffset(cos(-2xcπgridSpacing)+jsin(-2ycπgridSpacing))]]>xGrid=∠(xOffset2)×gridSpacing2π+xc]]>yGrid=∠(yOffset2)×gridSpacing2π+yc]]>方法1300继续到以下的步骤1311,这里,如果处理器105确定存在网格点还没有被确定的点,那么方法1300返回步骤1303。否则,方法1300终结。
(确定调制量)现在参照图15详细说明在步骤805中执行的用于确定调制量的方法1500。方法1500在第一步骤1502开始,在步骤1502,处理器105以网格的点作为输入。如以上对步骤1002说明的那样,对于网格的各点(x,y),同一水平行上的点(x,y)右边的最接近的邻近点被确定,并被存储在存储器106中。在下面的步骤1503中,处理器105获取在步骤1002中存储在存储器106中的右邻点(a,b)中的每一个,并如以上对步骤1003的说明那样确定与(x,y)的差分矢量(dx,dy)。
在下面的步骤1504中,处理器105确定在步骤1503中确定的各差分矢量的y值的频率直方图。作为例子,图16表示直方图1600。直方图包含频率轴1601、y纵坐标轴1602和频率条(例如,1603)。y纵坐标轴中的各量的大小与点坐标的粒度(granularity)相关。该量仍优选被选择为网格坐标轴系统的0.5。但是,对该量可使用任意适当的值。
在下面的步骤1505中,处理器105使用直方图1600以确定网格的调制量。在步骤1505中,处理器105在接近零的位置确定直方图1600中的峰值。峰值被限定为具有相关的频率条的y值,该频率条大于称为“峰值窗口半径”的给定半径内的邻近y值的所有频率条。峰值窗口半径与网格间隔成比例。在说明的过程中,峰值窗口半径优选是网格间隔的十分之一。在图16中示出这种峰值为1603的例子,这里,峰值窗口半径是一(1)。一旦在原点1601周围确定几个峰值(例如,五个峰值),就通过取相邻峰值之间的距离的平均值,确定调制量。方法1500在步骤1505后结束。
(用于确定调制量的替代性方法)在图17中示出方法800的步骤805中的用于确定调制量的替代性方法1700。方法1700在步骤1702开始,在步骤1702,处理器105对配置在存储器106中的点的列表中的每一个点估算最近的网格点。即,处理器105对网格的点确定网格变换。通过使用上述的图13的方法1300,在步骤1702中对各点确定最近的网格点。
在下面的步骤1703中,处理器105确定从各点到在步骤1702中确定的该点的对应网格点的偏离矢量。然后,在下一个步骤1704中,处理器105确定如上所述在步骤1703中确定的偏离矢量的y分量的直方图。在下面的步骤1705中,处理器105确定在步骤1704中确定的直方图的三个最大峰值。这些峰值中最小的一个与这些峰值中第二小的一个之间的距离、以及这些峰值中第二小的一个与这些峰值中最大的一个之间的距离大致等于网格的调制量。在步骤1706中,处理器105检测这两个距离的平均值,该平均值被用作调制量。
(替代性配置)在图9中,在步骤902中,方法900对各个点确定最近的其它点。在替代性配置中,可以仅对网格的点的子集确定最近的其它点。在这种情况下,最近的其它点被确定的点的子集可以为例如点的随机选择。作为替代方案,可以仅对位于网格的最上面的25%的点、或仅对位于网格的预定带中的点确定最近的其它点。在这种情况下,在方法900的随后的步骤903和904中,仅考虑子集中的点。
在另一替代性配置中,不是仅使用最近的点,而是可以使用最近的N个点以确定位移矢量。例如,N可以等于二(2)或四(4)。以复杂性和速度为代价,这种配置有时可在噪声非常大的网格中导致更精确的网格方向检测。
在图9中,在步骤906中,方法900从在上面的步骤905中确定的位移矢量角确定网格方向角Φ。相关领域技术人员可以理解,可以在步骤906中使用许多替代性的方法。例如,可以确定位移矢量角的直方图。在这种情况下,包含最大数量的位移矢量角的直方图仓(bin)与网格方向角Φ对应。
在图10中,在步骤1003中,确定一组差分矢量,并在随后的步骤1004和1005中使用每一个差分矢量。在替代性配置中,可以在步骤1004和1005中使用差分矢量的随机子集,并且基于该随机子集确定网格间隔的值。在这种情况下,步骤1004和1005的过程然后被重复N次(例如,三十(30)次),每一次使用差分矢量的不同随机子集。这导致N+1个不同的网格间隔值。然后可将实际网格间隔确定为这些N+1个值的最频值(mode)。以复杂性和速度为代价,该替代性配置有时可在噪声非常大的网格中导致更精确的网格间隔检测。
类似地,为了更精确的调制量检测,可以以复杂性和速度为代价在方法1500的步骤1503和1504中使用差分矢量的随机子集。
在图10中,在步骤1004和1005中,从在步骤1003中得到的差分矢量的x纵坐标确定网格间隔。相关领域技术人员可以理解,可以使用许多替代性方法以确定网格间隔。例如,可以将网格间隔确定为在步骤1003中确定的差分矢量的x纵坐标的平均值。
(工业实用性)从以上说明可清楚地看到,说明的配置可应用于计算机和数据处理工业。
以上仅说明了本发明的一些实施例,在不背离本发明的范围和精神的情况下,可以进行修改和/或改变,这些实施例是解释性而非限制性的。
权利要求
1.一种用于确定以点的调制网格编码的数据的一个或更多个参数的方法,该方法包括以下步骤确定从所述网格的至少一个点到最近的其它点的一个或更多个矢量,所述点关于虚拟网格被调制;使用矢量去除调制以确定虚拟网格;和通过使用确定的矢量确定所述网格的方向。
2.根据权利要求1的方法,还包括通过使用所述矢量对点的所述网格确定间隔值的步骤。
3.根据权利要求1的方法,还包括基于一个或更多个邻近的有界区域对所述点中的至少一个确定从所述调制网格到虚拟网格的变换的步骤。
4.根据权利要求1的方法,其中,所述矢量中的至少一个是位移矢量。
5.根据权利要求1的方法,其中,所述矢量中的至少一个是差分矢量。
6.根据权利要求1的方法,其中,点的所述网格被相位调制。
7.一种用于确定编码数据的网格的方法,所述方法包括以下步骤确定所述数据的数据点相对于所述数据的至少一个最近的相邻数据点的位移的方向的统计平均值;基于所述统计平均值确定所述数据的角取向;基于角取向确定所述数据的网格。
8.根据权利要求7的方法,还包括确定网格中的相邻数据点的间隔的步骤。
9.根据权利要求7的方法,还包括确定关于网格的各数据点的偏移量的步骤。
10.一种用于确定以点的调制网格编码的数据的网格方向、网格间隔和网格变换的方法,该方法包括以下步骤确定从至少一个点中的每一个到最近的其它点的位移矢量;通过使用位移矢量确定网格方向;确定网格间隔;和通过使用附近的点的邻近关系确定至少一个点的网格变换。
11.一种用于确定编码数据的网格的方法,所述方法包括以下步骤确定所述数据的角取向,该角取向是基于数据点和最近的相邻数据点的位移的方向的统计平均值被确定的;确定网格中的相邻数据点的间隔;和确定关于网格的各数据点的偏移量。
12.一种用于确定以点的调制网格编码的数据的一个或更多个参数的装置,该装置包括用于确定从所述网格的至少一个点到最近的其它点的一个或更多个矢量的矢量确定装置,所述点关于虚拟网格被调制;用于使用矢量去除调制以确定虚拟网格的调制去除装置;和用于通过使用确定的矢量确定所述网格的方向的网格方向确定装置。
13.一种用于确定编码数据的网格的装置,所述装置包括用于确定所述数据的数据点相对于所述数据的至少一个最近的相邻数据点的位移的方向的统计平均值的统计平均值确定装置;用于基于所述统计平均值确定所述数据的角取向的角取向确定装置;和用于基于角取向确定所述数据的网格的网格确定装置。
14.一种用于确定以点的调制网格编码的数据的网格方向、网格间隔和网格变换的装置,该装置包括用于确定从至少一个点中的每一个到最近的其它点的位移矢量的位移矢量确定装置;用于通过使用位移矢量确定网格方向的网格方向确定装置;用于确定网格间隔的网格间隔确定装置;和用于通过使用附近的点的邻近关系确定至少一个点的网格变换的网格变换确定装置。
15.一种用于确定编码数据的网格的装置,所述装置包括用于确定所述数据的角取向的角取向确定装置,该角取向是基于数据点和最近的相邻数据点的位移的方向的统计平均值被确定的;用于确定网格中的相邻数据点的间隔的间隔确定装置;和用于确定关于网格的各数据点的偏移量的偏移量确定装置。
16.一种用于确定以点的调制网格编码的数据的一个或更多个参数的计算机程序,该程序包括用于确定从所述网格的至少一个点到最近的其它点的一个或更多个矢量的代码,所述点关于虚拟网格被调制;用于使用矢量去除调制以确定虚拟网格的代码;用于通过使用确定的矢量确定所述网格的方向的代码。
17.一种用于确定编码数据的网格的计算机程序,所述程序包括用于确定所述数据的数据点相对于所述数据的至少一个最近的相邻数据点的位移方向的统计平均值的代码;用于基于所述统计平均值确定所述数据的角取向的代码;用于基于角取向确定所述数据的网格的代码。
18.一种用于确定以点的调制网格编码的数据的网格方向、网格间隔和网格变换的计算机程序,该程序包括用于确定从至少一个点中的每一个到最近的其它点的位移矢量的代码;用于通过使用位移矢量确定网格方向的代码;用于确定网格间隔的代码;和用于通过使用附近的点的邻近关系确定至少一个点的网格变换的代码。
19.一种用于确定编码数据的网格的计算机程序,所述程序包括用于确定所述数据的角取向的代码,该角取向是基于数据点和最近的相邻数据点的位移方向的统计平均值被确定的;用于确定网格中的相邻数据点的间隔的代码;和用于确定关于网格的各数据点的偏移量的代码。
20.一种计算机程序产品,具有其中记录有用于确定以点的调制网格编码的数据的一个或更多个参数的计算机程序的计算机可读介质,所述计算机程序产品包括用于确定从所述网格的至少一个点到最近的其它点的一个或更多个矢量的计算机程序代码装置,所述点关于虚拟网格被调制;用于使用矢量去除调制以确定虚拟网格的计算机程序代码装置;和用于通过使用确定的矢量确定所述网格的方向的计算机程序代码装置。
21.一种计算机程序产品,具有其中记录有用于确定编码数据的网格的计算机程序的计算机可读介质,所述计算机程序产品包括用于确定所述数据的数据点相对于所述数据的至少一个最近的相邻数据点的位移方向的统计平均值的计算机程序代码装置;用于基于所述统计平均值确定所述数据的角取向的计算机程序代码装置;用于基于角取向确定所述数据的网格的计算机程序代码装置。
22.一种计算机程序产品,具有其中记录有用于确定以点的调制网格编码的数据的网格方向、网格间隔和网格变换的计算机程序的计算机可读介质,所述计算机程序产品包括用于确定从至少一个点中的每一个到最近的其它点的位移矢量的计算机程序代码装置;用于通过使用位移矢量确定网格方向的计算机程序代码装置;用于确定网格间隔的计算机程序代码装置;和用于通过使用附近的点的邻近关系确定至少一个点的网格变换的计算机程序代码装置。
23.一种计算机程序产品,具有其中记录有用于确定编码数据的网格的计算机程序的计算机可读介质,所述计算机程序产品包括用于确定所述数据的角取向的计算机程序代码装置,该角取向是基于数据点和最近的相邻数据点的位移方向的统计平均值被确定的;用于确定网格中的相邻数据点的间隔的计算机程序代码装置;和用于确定关于网格的各数据点的偏移量的计算机程序代码装置。
全文摘要
提供一种用于确定以点(例如,202)的调制网格(例如,200)编码的数据的一个或更多个参数的方法(700)。方法(700)确定从网格(200)的至少一个点(202)到最近的其它点的一个或更多个矢量。这些点关于虚拟网格(例如,201)被调制。方法(700)使用矢量去除调制以确定虚拟网格。方法(700)然后通过使用确定的矢量确定网格(200)的方向。
文档编号G06K7/01GK1932836SQ20061015182
公开日2007年3月21日 申请日期2006年9月13日 优先权日2005年9月13日
发明者埃瑞克·拉普·明·陈, 斯蒂芬·法拉尔 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1