具体实施方式
参照图1,示出一个袖珍手持扫描设备10,它遵循沿原图14的一个曲折路径12移动。原图可以是一张纸、一种透明胶片或任何其它承受图象的表面。原图的与固有结构有关的特性可以被用于在沿曲折路径导航时提供位置信息。在这个方案中,固有结构特性的位置被跟踪,位置信息被用于纠正图象数据,可是将描述其它实施例。扫描设备最好装在一个机壳内并由电池供电,但可以包括至外部电源和至计算机或网络的数据端口的连接。
图1扫描设备10包括一个图象显示器16,可以查看被俘获的图象。然而,对扫描设备的使用来说,显示器不是必不可少的。
现在参照图1-3,扫描设备10的正面包括一个转动式构件20,它有助于保持原图14与图象传感器22之间的适当接触。图象传感器22包括图象传感器元件的一个线性阵列。导航传感器24和26被位于图象传感器的相对的两端。导航传感器24、26被安装在转动式构件上,因而导航传感器是处于相对于图象传感器的一个固定位置上。
扫描设备10允许三个自由度,二个是直线,一个是旋转。第一个自由度是沿原图14左右移动(X轴移动)。第二个自由度是沿原图上下移动(Y轴移动)。第三个自由度是能操作图象传感器相对于原图14的边缘具有旋转偏差的设备。也就是说,图象传感器22可以具有一个与设备位移方向不垂直的迎角角度。
鉴于物理紧凑性的缘故,图象传感器最好是一个接触式图象设备,可是对紧凑性不大重要或希望较小图象的应用场合,可以采用使用投影光学的传感器,其放大倍数小于1。在这样的应用中,图象传感器22的元件应是较小的且更紧密地封装在一起。接触式图象设备一般采用以SELFOC商标销售的透镜,它是Nippon Sheet Glass有限公司的注册商标。偶而,接触式图象可以使用源和邻近传感器的交叉阵列元件来获得,没有任何图象透镜。扫描应用的通常图象传感器可以被使用。图象传感器可以是也包括照明源、照明光学系统和图象变换光学器件的一个单元的一部分。
所示出的图象传感器22是分立的光学敏感元件的一个线性阵列。元件的间距在决定扫描仪10的空间分辨率方面起着重要作用。例如,具有101.6mm长的一个线性阵列要求1200个传感器元件以便达到300dpi分辨率。传感器可以是电荷耦合器件,非晶硅光电二极管阵列,或技术上熟悉的任何其它类型的线性阵列传感器。
在设计图象传感器单元中的一个关键考虑是速度。图象传感器22最好是能以每秒约5K取样映射每个象素。线性图象阵列通常产生一个串行数据流,其中象素值即电荷被放置到一个移位寄存器,然后移出。达到所希望的速度要求整个图象阵列具有十分快速的串行传送速率或多个分支,因而象素值可以通过较少的单元被移出。这引起并行性(parallelism),这对数字处理是便利的。
速度要求的另一个后果是在原图表面上象素区的产生,它们的所收集和传递到每个阵列元件的发射光的立体角应足够大,以便产生在200微秒量级的积分时间内的可检测信号。一个增强的选项是增添一个光学元件到传感器,以便增加每个传感元件对之敏感的传感器节距的有效系数。因为在阵列矩阵中一般有不使用区域,所以这样的光收集光学系统增加灵敏度。
图象传感器22的简单改进可以检测彩色图象。三个互相平行的线性阵列,其中每个具有至少一个有选择地分别通过入射光的红、绿和蓝分量的嵌入滤光器元件,能彩色成象。另外,具有宽带灵敏度的单个阵列可以顺序地被红、绿和蓝色光源照射。
关于用于改善图象传感器22的工作的照明,可以使用一个黄色波长的高强度发光二极管的线性阵列。然而,优选照明源和任何光学元件的选择与原图的媒质有关。选择光的波长以使在原图14的给定区域内扫描时所采集的对比图象数据最大,而忽略不希望的信号。照明光学系统可以LED半球形透镜组成或可以包括一个由精密铸造的光学元件组成的光管,它以最小的光损耗引导光照到原图上。这样的设计可以在原图的目标区域以宽范围的角度获得相对均匀的照明,可是为了避免镜面反射,遮挡法向的入射光束。
在图1中示出曲折路径12,它有四点几幅,即沿原图14左右来回。对最有机会的应用的一个有用的图象传感器22有介于25.4mm和101.6mm的长度。如果传感器22有63.5mm的长度,则可以4或5幅扫描A4纸。如下面将进一步解释的,幅应当包括重叠区,因而可以使用一个拼接进程以便制作忠实再现的原有图象。
扫描设备10一般包括至少一个导航传感器24或26。在优选实施例中,在该传感器安放在图象传感器22的相对的两端上的情况下,该设备包括一对导航传感器。虽然可以使用一维阵列的光电元件,但在优选实施例中,每个导航传感器是二维阵列的元件。导航传感器24和26被用于跟踪扫描设备10相对于原图14的移动。
在优选实施例中,每个导航传感器24和26俘获与原图的与固有结构有关的特性有关的图象,以便产生与扫描设备10的位置有关的信息。对最近的现有扫描设备,固有结构特性被认为是噪声。对于图1-3的扫描设备10,这样的特性是关于图象传感器22的噪声,但可以被用于为导航传感器24和26提供基础以便产生位置信息。通常,表面纹理高对比图象可以通过检测媒质固有的或媒质上形成的结构变化,例如文本来产生。例如,图象可以根据在固有结构特性的峰值上谷和亮斑的阴影之间的对比来形成。这样的特性事实上一般是极细微的,常常在常用印刷媒质上尺寸分布在10μm和40μm范围内。作为替代方法,可以使用小斑点,因为相干波束的镜面反射产生亮区和暗区的对比图案。对比信息的第三个来源是色彩。色彩对比与表面纹理无关。即使当用可见光照射无纹理表面时,色彩对比在不同色彩区之间,例如在不同的灰色调之间存在。
然而,可以预期,将本发明使用于导航信息与原图的固有结构有关的特性无关的应用场合。非图象方案也可以被用于采集和处理X、Y和角度位置信息。这样的替代方案在美国专利US-5578813中讨论。
图2的导航传感器24和26有效地观测原图14的图象上的移动窗口并产生邻接观测之间的两个平面尺寸的位移指示。如下面将进一步解释的,来自导航传感器的象素值被处理以便决定来自图象传感器22的图象数据的适当映射。特定象素和它最近邻的值被用于产生在每个象素位置上的相关值的阵列。相关值是建立在表面结构的当前图象与所保存的代表固有结构特性的已知位置的图象之间的比较基础上,在这里所保存的图象用作一位置参照。然而,可以采用除相关处理外的操作来操纵输入图象数据以形成输出图象。
现在参照图4和5,示出导航传感器24,它有效地与照明光学系统有关。如果原图14是纸制品,其纸纤维用导航传感器24被检测,光线以入射的切线角引入最好。虽然不是本质的,但可以使用一个或多个发光二极管(LED)28。切线角30,它是入射的余角,最好在零度和15度范围内,可是这可以改变,取决于原图14的特性。在图5中,示出具有照明光学系统34的源28。光学系统可以包括单一元件或透镜、滤光镜和/或全息元件的组合,以实现目标表面的适当平行和通常均匀的照射。由源28所发射的光的波长应被选择以便增强导航可获得的空间频率信息。在照射区的固定模式噪声应被减至最小。源28的输出可能要求调整以便当扫描设备在所打印材料上用吸收或映出墨水或其它打印墨水处理时适应宽的媒质反射率的动态范围。
在图4中,来自源35的光线在照明光学系统36中被准直,然后由幅度分裂分光镜37更改方向。从LED直接到分光镜和透射过分光镜的部分光能量在图4中未示出。来自分光镜的光能量沿表面的法线照射原图14。
在图4中也示出从原图14反射或散射的部分光能量,其通过分光镜37以在元件38上经孔径作用和滤光并在元件39上对图象聚焦。从原图到分光镜通过的和从分光镜反射的部分光能量未被示出。导航图象光学系统的放大倍数在检测被聚焦光线的二维传感器阵列24的可见区上应为常数。在许多应用中,导航光学系统的调制传递函数,即光频响应的幅度量度必须在尼奎斯特频率之前提供衰耗,尼奎斯特频率由导航传感器的传感器元件的节距以及光学元件的放大倍数决定。光学元件也应当被设计成防止背景照射产生噪声。应当指出,也可使用波前分裂分光镜。
入射角的选择取决于原因的材料特性。照明的切线角产生较长的阴影和更明显的对比,或者AC信号,如果原图的表面不光滑的话。然而,DC信号电平随着照明角度接近于原图法线而增加。
以切线角30照射原图14的目标区,对原图表面具有微观级的非常的不平度的应用场合工作得很好。例如,源28的光线以一切线角引入,当原图是信纸、纸板、纤维或人的皮肤时提供与固有结构特性有关的数据的高信噪比。换句话说,使用在入射的法角上的的非相干光线,对于为跟踪扫描仪沿这样的原图如照片、光滑的杂志页和透明胶片移动需要位置数据的应用场合可能是优选的。在法向照射情况下,使用非相干光观看在镜面反射视场中的原图将提供含有足够丰富的纹理内容的图象以允许成象和基于相关的导航。原图的表面有微观的凸纹,因而表面反射光线,仿佛表面是片或小平面镶嵌的。原图的许多“片”以从法线稍微扰动的方向反射光线。包括散射光和镜面反射光的可见区因而可以被仿造,好象表面被许多这样的片组成,每个被铺砌得与法线稍微不同。这个模型类似于W.W.Barkas在题目为“Analysis of Light Scattered from a surface of Low Gloss intoIts Specular and Diffuse Components”(Proc.Phys.Soc.,Vol.51,pp.274-292(1939))的文章中的模型。
图4示出由非相干光的源35的照明,它是沿原图14表面的法线方向。图5描述以法线角30的照明。在第三个实施例中,没有提供照明。相反,导航信息使用背景光,即来自环境的光被聚集。
在第四个实施例中,相干光以法向入射被引入,以允许基于小斑点的导航。扫描设备和原图之间的相对移动可以通过监测小斑点相对于导航传感器的运动来跟踪。如果在不使用成象光学元件情况下使用相干照明,然后通过选择小的照明区并通过在原图表面与导航传感器24的光检测器阵列之间具有相对大的间隙,则在相干照明下所获得的占优势的小斑点单元尺寸是足够大以便满足尼奎斯特取样准则。分光镜的使用允许入射照明和被检测的散射接近于原图表面的法线,如在图4中所类似地实现的那样。
现在参照图6,示出扫描仪10,它沿原图44移动,原图44具有印刷在原图表面的一个方块46。因为扫描仪在原图平面中不受任何运动学制约的支配,所以存在用户沿原图遵循曲折路径的趋势,如果当用户的手和前臂绕肘旋转时产生。在图6中,示出扫描设备,它沿方块46遵循曲线路径48。如果扫描设备的底边是接近于规定旋转轴的肘的边,那么底边将有较短的半径。因此图象传感器的图象元件将相对于通过方块46所要求的时间和距离而变化。当该设备被移到虚线所示的第二个位置时,方块的一个畸变图象50被俘获。
俘获图象50是未经下面所述的处理的保存图象。然而,当图象传感器俘获与方块46有关的数据时,导航信息被采集。在所述的实施例中,一个或多个导航传感器俘获与原图44的固有结构特性有关的数据。固有结构特性相对于扫描设备10的移动被跟踪,以便决定图象传感器相对于方块46的位移。一个忠实俘获的图象54则可以被形成。图象54在这里被定义为“经纠正”的图象。
在图7中,示出导航处理的一个实施例。导航处理通过使导航信息的相邻帧,例如与固有结构特性有关的数据发生连系来实现。相关比较在相邻帧中固有结构特性的位置以便提供与在特定时间上导航传感器的位置有关的信息。导航信息然后被用于纠正图象数据。图7的处理一般对每个导航传感器被执行。
在第一个步骤56中,采集一个参考帧。实际上,参考帧是一个起始位置。在后一个时间上导航传感器的位置可以通过采集58在后一个时间上导航传感器的位置数据的一个取样帧并且然后计算在参考帧与后来采集取样帧之间的相关60来决定。
采集初始的参考帧56可以在成象进程初始化时发生。例如,采集可以通过一旦放置扫描设备与原图接触就被触发。另外,扫描设备可以包括一个初始化成象进程和导航进程的起始按钮。初始化也可以用每个导航器的照明系统的一个周期性脉冲来发生。如果有一个超过所规定的反射门限的被反射信号或指示运动的相关信号,参考帧则被采集。
虽然导航处理经计算地被执行,但是本实施例的概念可以根据图7和8来描述。一个参考帧被表示成具有一个T型固有结构特性64的图象。参考帧的大小取决于诸如扫描设备的最大扫描速度、在结构特性的图象中的主空间频率和传感器的图象分辨率等因素。32象素(N)×64象素(M)的导航传感器的参考帧的实际尺寸为24×56象素。
在后一个时间(dt)上,导航传感器采集一个取样帧66,它相对于帧62被移位,但它实质上说明相同的固有结构特性。在扫描设备的平移速度上,持续时间dt最好被设置得使T型特性64的相对位移小于导航传感器的一个象素。对在600dpi上速度0.45m/s,可接受的时间周期是50μm。这个相对位移在这里称之为一个“微步”。
如果扫描设备在采集56参考帧62和采集58取样帧66之间的时间间隔内已移动,那么T型特性的第一个和第二个图象将是特性已移动的图象。当优选实施例是dt小于允许整个象素移动的时间的情况时,图8的原理图是允许特性64向上向右移动一个象素的图示。这里假定整个象素移动仅仅为图示。
在图8中元素70表示帧68的象素值顺序移到8个最近的相邻象素。也就是说,步骤“0”不包括移动,步骤“1”是向左上方的对角移动,步骤“2”是向上移动,等等。在这个方式中,象素移动帧可以与取样帧66组合起来产生位置帧的阵列72。标记为“位置0”的位置不包括移动,因此结果仅是帧66和68的组合。“位置3”有最小数目的阴影象素,因此是具有最高相关的帧。根据相关的结果,在取样帧66中T型特性64的位置被确定为相对于在较早采集的参考帧62中相同特性的位置向右向上的对角移动,这意味着扫描设备在时间dt内已向左向下移动了。
尽管可以采用其它相关方案,但一个可接受的方案是“平方差之和”相关。对于图8的实施例,存在从元素70上9个偏移形成的9个相关系数(Ck=C0,C1…C8),相关系数由下式确定:
Ck=∑i∑j(Sij-R(ij)+k)2
其中Sij为在样本帧66的位置ij上导航传感器的测得值,Rij为当在元素70上以k方向移动时帧68上导航传感器的测得值,其中k是在元素70上移动的标识符。在图8中,k=3提供具有最少值的相关系数。
相关被用于求得在相邻帧中相同特性的位置,以便确定帧至帧的位移。求和或积分这些位移以及修正通过有关的光学系统的设计引入的比例系数,以便确定当扫描过程进行时图象传感器的位移。
如上所述,帧至帧的相关称之为“微步”,因为帧速率被选择得足够高以确保该位移不超过单个象素的大小。过取样可以提供子象素位移精度。参照图7,一个微步是否被产生的判定74遵照相关的每个计算64来进行。如果要求一个微步,那么参考帧在76被移动。在这个步骤,图8的取样帧66成为参考帧,同时采集一个新的取样帧。相关计算然后被重复。
虽然该进程提供高度的相关配对,但确实存在的任何误差将随取样帧66至参考帧标志的每个逐次移动76而累积起来。为了给这个“随机走动”误差的成长速率规定一个限制,取样帧被存储在单独的缓冲存储器中。这个单独存储的取样帧成为其后一系列相关计算的一个新的参考帧。后面的相关称之为“宏步”。
通过使用宏步,在m图象帧位移,即沿m微步的距离上扫描仪位移的更精确判定可以被求得。在一个宏步中的误差是单次相关计算的结果,而m微步的等效误差是单一微步中的误差的m1/2倍。虽然当m增加时,m微步中的误差平均接近于零,但是误差平均的标准差随m1/2增长。因此,通过采用具有与实际一样大的m宏步将累积误差的标准差减小是有利的,只要规定一个宏步的两个帧相互间隔不如此远以致于它们没有很大的公共图象内容区域。
取样周期dt不必为常数。取样周期可以作为上次测量的函数来确定。采用变量dt的一个方法是通过保持一定界限内邻接参考帧之间对位移改进位移计算的准确度。例如,上限可以是一个象素位移,而下限由在导航数据的处理中数字的四舍五入的考虑决定。
参照图9a,在图象传感器22上产生的图象信号则可以是基于导航数据的“标记位置”。在一个实施例中,来自导航传感器24和26的象素值被导航处理器80接收,以便执行图7和8的操作。根据计算得的相关,确定第一个导航传感器24和第二个导航传感器26的当前位置的坐标。
在一个宏步内,导航处理器80直接复原每个导航传感器运动的平移分量。来自两个导航传感器的数据必须被积分,以便求得也计及扫描头的任何旋转的绝对位置估计值。处理器80保存扫描头相对于它的初始取向的当前取向的一个模型。每个导航传感器的平移的各个估计值相对于这个模型来解释。而扫描仪模型的取向是它本身定期更新的。
在一个实施例中,每个导航传感器的宏步被同步,因而如果导航传感器处理器80要求在一个导航传感器中一个宏步,那么它也触发在其它导航传感器中一个宏步。这简化由每个导航传感器记录的平移的解释。如果在宏步T上,扫描仪的取向是与垂直成θ度,那么在每个导航传感器的微步内所记录的平移被解释如下。
图9b示出一对导航传感器的运动。对每一个,我们有描述扫描仪取向的相对于一坐标帧(具有标示为u和v的单位矢量)的所记录的平移。对第一个和第二个导航传感器,这些分别具有幅度(u1,v1)和(u2,v2)。目的是为了解释这些平移,以便给出导航传感器相对于全局坐标帧的更新位置。本质上,我们正在再现来自它的逐段线性近似的路径,其中线性段的幅度由宏步的大小确定。
每个单位矢量与扫描仪取向θ具有如下的标准三角关系:
v=(sinθ,cosθ)
u=(cosθ,-sinθ)
但正如我们将看到的,u和v的估计值不需进行大量三角计算就可以被保持。
在图9b中,P1和P2代表导航传感器位置,相对于全局帧,在宏步的起点上;它们分别具有值(x1,y1)和(x2,y2)。更新位置,相对于相同的全局帧,某些导航传感器帧,以后由P1’和P2’给出,其分别具有值(x1’,y1’)和(x2’,y2’)。
在极限值(我们假定我们接近的值,以便于执行精确积分)中,每个导航传感器的平移的v分量必须是相同的(切断同样地影响每个末端,在极限值中,旋转根本不引起v分量)。因此我们可以设置v1和v2到它们的平均值
v=(v1+v2)/2
在这种情况下,更新的终点位置给出如下
P1’=P1+u1u+vv and P2’=P2+u2u+vv
在这时平移相应于图象传感器物理终点的位置估计值而不是各个导航传感器,也是方便的。这使用建立导航和图象传感器的物理位置之间关系的校准数据来进行。为简单起见,终点位置被取在相应于图象传感器的第一个和最末一个传感器的中央。
我们必须定期更新惯性帧。这仅在一个宏帧的结束或下一个开始时实进行。它要求宏步被同步:即如果一个导航传感器触发一个新的宏步,因为它已超过微步的最大数目,那么在其它导航传感器中也应触发一个宏步,即使已保持完全固定不动。这个方法有附加优点,即导航帧的旋转总是很小,因为所经历的最大旋转必须总是小于由导航传感器之间的基线划分的微步的最大数目。
更新惯性帧具有反过来增加扫描仪运动的丢失的旋转分量的作用。这根据由各个导航传感器经历的不同平移被隐含地确定。不是显式地计算运动的旋转分量,而是惯性坐标帧被根据它的与扫描仪的主轴(连接导航传感器位置的线)的关系直接更新。惯性帧的v轴是沿主轴从导航传感器1至导航传感器2的单位矢量,u轴是与它正交完成2D基线的单位矢量。
v的更新值为
v’=(v’x,v’y)=(P2’-P1’)/|P2’-P1’|=(P2’-P1’)/D
正交适量u为:
u’=(v’y,-v’x)
长度|P2’-P1’|是扫描仪的恒定(模导航误差)长度,在图9b中标示为D。这大大简化了惯性帧的计算,因为它不需要计算每个宏步的平方和之平方根。
导航处理器80也经由象素放大器82和模数变换器84接收图象传感器22的N象素值。虽然图9仅示出来自图象传感器22和单个A/D变换器84的多个分支,但每个具有一个A/D变换器的多个分支属本发明的范围。当前位置坐标被“标记”在相应于图象传感器内象素号码的数据线的末端上。导航处理器80的输出86因此是标记位置的数据流。
导航处理器80不需要一定以相同帧速率接收来自图象传感器22的象素数据和来自导航传感器24、26的位置信息。位置数据流可以被用于更新通常以比线性传感器阵列的象素节距更高的空间分辨率的线性传感器终点位置的估计值。线性图象传感器的最佳时钟频率通常由扫描仪的运动速率来确定,以便最快的移动端被以刚小于线性传感器本身的象素节距的数目取样,否则将产生过取样或欠取样。过取样将导致进一步沿图象处理流水线增加计算和数据处理要求而几乎不改善图象质量,而欠取样将导致图象质量的肯定的下降。
一个解决办法是在总是引起过取样的也就是说超过最快可能扫描速度的取样要求的固定频率上取样线性传感器。那么如果扫描仪正在以比最大扫描速度慢的速度移动,则不希望的取样由导航处理器根据当前终点位置估计值被排除。也就是说,自上次一个线性传感器取样的有效增量和被标记的位置数据从导航传感器80输出以来每个终点的相对位置的幅值被用于选通进一步的增量的输出。最简单的方法是仅当一个或其它幅值严格等于或超过象素节距(或它的有效百分率)时才允许输出。这个方法可能导致欠取样,尤其当恰好小于最大扫描速度扫描时更甚。另一方面,为了防止欠取样,当前取样应输出,如果下一个线性传感器取样的相对终点位置的预测量超过象素节距的话,其中预测量是建立在终点位置的变化率(或更高阶数值导数)基础上。第三个也防止欠取样的方法在导航处理器80中引入一个增量缓冲器,因而上一个增量可以被传送,如果当前增量的相对位置数据超过象素节距的话。
上述的每个取样方案建立在同步取样基础上且通常将导致某种程度的过取样或欠取样。一种更精确地达到理想空间取样的更好的总解决办法是导航处理器80异步触发线性传感器俘获。一种方法是为相对终点位置,因为上次有效俘获(或进一步的预测量)被直接用于识别触发线性传感器的俘获和取样的最佳时间点。
在图10a中,数据流的增量88表示成具有在N象素单元的相对端处的位置坐标单元90、92、94、96,虽然这个次序不是本质的问题。
图象传感器22当扫描设备沿原图移动时被同步。如上所讨论的,同步确保传感器的最快移动元件在至少每个象素位移一次时取样。
在导航处理器80输出端86上的标记位置数据流如图10b所示被缓存。缓冲器B保持图10a的增量88的幅值。缓冲器B可以被用于容纳一个完整的扫描,在这个情况下可以使用数据压缩。这个数据然后被映射到直线坐标,以便按照下面将描述的本发明的方法形成最后被纠正的再建图象。
在国际专利申请公布号WO96/27257和美国专利US-5578813中所述的现有方法中,映射到直线坐标通过映射到预定尺寸的直线栅格来实现。以这个方式把直线图象表示成单个二维阵列有两个缺点,它要求大量的工作存储器并限制扫描路径在预定页内。因此本发明的实施例提供一个采用动态铺砌系统的改进方法。在这样的系统中,图象空间被表示成许多分立的片,它根据需要进行配置,以便在运行时间具有基准。
在这样的基于片表示法的情况下,数据俘获(在上述扫描仪实施例情况下,一次扫描)的实际路径不需要提前被限制。使用下面详述的通用片索引方案,有可能用上述的手提式扫描仪扫描任何形状的区域:扫描的总尺寸反受超过可用存储器的扫描下面的总区域所限制。此外,在本发明的实施例中,当片变成“不活动”的且不再要求确定其它片的处理(即它们不再要求纠正目的)时,这些片可以在数据俘获正在继续时被“飞着”压缩。这允许在处理时存储直线图象所要求的总工作储存器大大减小。
在优选方法中,每个活动片被表示成二维字节阵列,其中每个字节代表一个象素。被表示成单个字节的多个象素或每个象素多个字节的其它象素表示法应不难提供。为方便起见,片被选择为具有一个尺寸(高和宽)的二次方的方形。64×64是特别适合的选择:下面描述的实施例采用这个尺寸。与每个片左上角有关的直线图象位置根据配置的几何形状是多个片尺寸。片不重叠;它们相对于它们代表的直线图象是邻接的。
单个片以三个状态中的一个存在:
空 意味着片当前不存在
活动 当前活动片由二维阵列表示
压缩 一个已被压缩的完成的片
片的索引对这样的方法有效工作是重要的。在这方面,优选的铺砌方案所采用的方法有两个主要部分:
·维持片列表的索引方案,它代表被扫描图象并提供空间地索引各个片的方法;以及
·进入当前活动片的快速本地索引,它将使用基于片的表示法使辅助操作减至最少,以便经常访问在纠正进程中发生的图象。
每个线性图象坐标被表示为两个无符号16比特值;一个为x,一个为y。对于64×64片的情况,x和y的顶上10个比特提供片索引,它被用于识别线性象素位于其中的片。x和y底下6个比特给出片象素位置,同时被用作代表一个活动片的二维阵列的索引。如果由顶上10个比特标识的片是空的,或者已被压缩,那么不可以使用底下6个比特直接索引上述的片。在这两种情况中,必须特别地为片分配存储器或片必须被解压缩。解压缩的一个替代方法是分配一个附加片,它必须后来与早先形成的片合并。解压缩和合并是花费计算的操作,为有效操作应尽可能采用。
10比特允许索引一边上具有1024片的片空间。每个64×64片在每边上以300dpi约为一英寸的1/5,它在200英寸宽和高内产生一个可寻址空间。这个虚拟图象尺寸将满足最需要的扫描任务,例如如果扫描路径的起点被位于靠近地址空间的中央,那么可能在运行出片空间范围之前以任一方向扫描直至100英寸。耗尽工作存储器或长期存储器的问题因此更值得注意。这些下面更详细讨论。
代表片索引的一个特别方便的方式是作为一个二维阵列。这个片索引形式将比索引相同尺寸的平面图象的总平直阵列(忽略图象存储器本身)要求更少的存储器。然而,即使所有10个比特被使用,这个方法恰好为索引(允许每个片项目16比特)要求2MB工作存储器。对于如手持扫描的应用场合,使用如此大量的存储器目前是很大的缺点。因此希望找到消耗较少工作存储器的另一个方法。
可以发现,采用仅使用8比特来索引片的较小阵列是可能的。这仅要求130KB工作存储器并允许以宽度和高度达到约25英寸来扫描。下面的说明指出如何建立以这一方式的索引方案。图11示出如此一个阵列201(但仅示出4个索引比特)。在片索引阵列中每个16比特项目不是设置为零(意味着它是空的,如阵列项目202)或者包含一个进入一个片目录211的索引(在图11中阴影所示的一个阵列项目203)。采用16比特作为进入片目录211的索引允许访问高达64K片,对于300dpi的手提扫描仪实施例,它限制扫描的总区域为至多2560平方英寸。假如一个字母长度页面是100平方英寸量级(2500片),这不成问题,因而在实践中使用更小的片目录也是可能的。
每个片目录项目包含一个表示它是否已被压缩的标记,一个至它的起始地址的指针,以及给出用于存储被压缩版本的比特数目的长度参数。在单独的存储器块中保持活动的和被压缩的数据块是方便的。最后,在扫描完成时,所有块将被压缩以便使被压缩数据与工作存储器中的不同,从而减小合并被压缩数据并把它传送到长期存储器所要求的额外处理。一个指针next Available Directory Entry表示哪个目录项目已被使用。当每个新片被遭遇到时它们被配置,并且它们每个被用于代表每次扫描的一个单一片。
一个特别优选的方法是把索引表示成一个部分四线树。这对使用10比特片索引的情况加以讨论。在四线树中每个结点仅可以有四个子结点(children):四个中没有一个,有几个或全部可能被设置为零。该结点有至这些子结点的指针。四个子结点(编号为0,1,2和3)分别相应于空间位置:左上、右上、左下和右下。在树中每个等级因此代表在树中上一个较高等级的空间分辨率之两倍的一个空间分辨率。在本例中,在树中有十个等级-对片索引的10个比特的每一个的一个等级以x和y方向的尺寸单独提供。在每个等级上,来自y索引的适当比特表示顶或底(分别为0/1),来自x索引的相应比特表示左或右(分别为0/1)。以这个方式由y比特后跟x比特构成的2比特数给出在树中当前等级上的子结点数。树的“叶结点”(在最低等级,等级10上的结点)不是空的(设置为零)就是指向一个如上面参照图11所述的那样被表示的片目录。
图12a和12b示出一个4比特树,它表示上面所述的取样2维片索引的如图11所示的活动和被压缩片。图12a是片索引的空间表示法,它示出对由该索引覆盖的不同区域存在的不同等级的空间分辨率。仅仅代表(或邻接)被扫描区域和具有活动或被压缩片的那些区域才在索引中以最高分辨率表示。图12b示出相应于空间索引的索引树。指向片目录项目的被填入的叶结点在树中用在相应叶结点下面的竖线来表示。具有4位二进制y索引0101和4位二进制x索引1000的片项目224在图12a中用实心示出:相应的阵列单元在图11示为单元204。在图12b表示出有关的叶结点225。可以看出,由来自两个索引(在每个例子中首先给出y比特)的每个邻接比特对构成的二进制数给出在树中每个等级上导致这个叶结点的结点数。这是按次序01(结点数1),然后10(结点数2),然后00(结点数0)以及最后再10(结点数1)。
图13示出树作为四线(quad)214的阵列的一个适当表示法:实际的实施例将具有16比特(即10个索引比特,对x和y方向的尺寸),虽然为方便起见在图13中示出4比特的例子。在阵列中第一个四线总是树的根结点。在当前树中其它结点在阵列内的位置取决于该树被建立的次序。树的结构将在下面描述。在这之前,即在我们描述树的索引之前,我们假设树已被适当地建立,且我们希望寻址的片已经在树中。
图12示出索引在左边与y坐标索引垂直安排的树所使用的比特。如上所述,每对相应y和x坐标比特构成一个二位地址,它相应于在树中的一个子结点。第一对总是代表根结点(在象限阵列中的第一个结点)的子结点。由第一对比特构成的二位地址给出在代表根结点的四线内的子结点的16比特元素的数字(0,1,2,3)。在这个16比特位置上所存储的值给出代表那个结点的子结点的四线的四线阵列索引:再次有存在显然的四个这样的子结点。第二对比特标识在那个等级上的子结点。这个进程以相同方式继续到第十个比特对(在图13中所示的更受限制的例子中,第四个比特对),其中四线值现在给出一个片目录项目数代之-在树中这个最后一个结点是叶结点。
四线树结构提供片索引的一个有效的表示法。树的每个叶结点代表4个片目录项目。700四线结点的树只要求恰好700*(4个子结点)*(2字节)来代表它;对整个树这小于6KB。在树中大多数结点是叶结点,因为每个四个结点的组仅有一个母结点:母结点数的1/4为叶结点;祖母结点数的1/16(在母亲的母亲的意义上对叶结点);以及1/64曾祖母结点;如此等等。这些“祖先结点”可以假定为一个级数:该级数收敛到一个总祖先结点的数,它小于叶结点数的3/8。在这个700个总四线结点的例子中,我们因此有代表2000片的超过500个叶结点:在以300dpi工作的扫描仪的例子中,这足以扫描整个文字定大小的页的区域。由这个数据结构提供的一个特别的优点是这个区域可以任何方向被扫描。此外,在较大阵列被用于代表四线树的场合,可以被扫描的区域线性地增加。
现在描述四线树的结构。这不复杂:所需要的全部东西是一个附加指针nextAvailableQuad,它恰好指向刚超出目前使用的最高四线阵列项目的地方。起初只分配根结点,至它的子结点的所有指针为零(用四线阵列索引值0表示),nextAvailableQuad指向四线阵列项目1。当建造树时,我们开始往树下面扩展我们的道路,仿佛我们正在索引它。如果在任何等级上由相应一对y索引和x索引比特组成的两位值表示一个零指针,那么nextAvailableQuad的当前值被替代,nextAvilableQuad被增加到下一个四线阵列位置。最新建立的结点的子结点的四个项目当然必须设置为零。用这种方法,树仅在它的建造期间才增长,毋需包括支持删除树中结点的方法。
在图14的流程图中示出在手动扫描情况下铺砌的方法。这包括与铺砌一起发生的纠正的进程:然而,纠正进程的细节在这里不讨论,而是在这个描述的稍后处进行。终点位置信息由片管理器231在被用于纠正的点前面从增量数据流230读出。在片管理器231和纠正单元237之间的适当延迟由一增量保持缓冲器232引入。这用于保持一个预定数目的增量,该增量已由片管理器检验但还没有被纠正。从下面的讨论将十分清楚,所保持增量的一个合适的数目是(2n+1),其中n是整数(在某些优选实施例中一般33个增量)。在增量保持缓冲器232满了之后,片管理被暂停,直到在保持缓冲器232中的所有增量已被纠正为止。一个这样的增量块的最后一个增量成为下一个块的第一个增量(因此对一个33增量保持缓冲器232来说所组合的铺砌和纠正进程在32增量步骤中进行)。
在每轮片管理期间,与增量保持缓冲器232中增量(包括来自上一轮的被重复的增量)有关的终点几何形状被分析,以便识别当前活动片的组。这可以通过考察片组来实现,通过该片组在块通路中每个增量的终点之间画一条线。所有这样的片的子组(即由块中增量相交的所有片所组合的组)将是当增量保持缓冲器232完成时将接着的那次纠正期间为活动的组。通过终点位置通路之间的线的片组可以采用标准帧缓冲器画线法(standard frame buffer line drawingtechnique)来确定:此法的一个例子在James D.Foley,Andries vanDam,Steven K.Feiner和John F.Hughes著的“ComputerGraphics:Principles and Practice(计算机图形:原理和实践)”(第二版,Addision-wesley出版公司,Reading,Massachusettes,1990,p.72-81)一书中讨论。图15示出部分可能片的空间以及一个增量的终点位置之间画的线相交的活动片的子组。
在可以通过可能片的空间画出这样一根线之前,终点位置数据必须从直线图象象素单位被换算为片索引单位。在所示出的对手动扫描合适的64×64片的例子中,这包括64等分。在实际中非常希望保留在终点位置数据中存在的所有分数的精度,以便于确保制作完全相同的活动的片组,如在纠正进程期间将被遇到的那样。
这里假设两个增量之间的空间不是大到足以允许整个片位于它们之间。对于具有64×64片的所考虑的手动扫描的实施例,这个假设明显成立,因为增量之间的间隔大小一般为至多2个输出象素单元。在实际上甚至可能子取样增量组(例如为此目的仅考虑每第四个增量),用于识别活动片而不会损失普遍性来达到减小计算的辅助操作。
当以这一方式明显地制作每个活动片时,它被增加到活动片索引的一个片索引表N上。当在画线过程中遇到一个片时,则那个片的索引与在活动片索引的表N中存在的那些片比较。如果一个相似的项目已经存在,则忽略新的片索引;否则它们被增加到表的末尾,表的大小被增加1。每个片索引对要求y索引的10个比特和x索引的10个比特。在优选实施例中,鉴于下面进一步讨论的理由,一对16位无符号整数被用来表示该片索引对,y索引再次在前,后面跟x索引。
当前活动片索引的表N被用作许多重要片管理活动的基础。这些是:
·识别上一个活动片,该片不再活动且现在可能被压缩。
·更新片索引214,以确保新的活动片存在且具有为它们配置的存储器;以及
·建立一个由纠正单元237使用的片高速缓存236,以便给出对活动片数据存储器的快速访问而不需要参照片索引本身。
在本方法的一特定的优选实施例中,在活动片数据存储器缓冲器212中配置一个片区。这由代表由每个片所代表的部分图象的字节数据的二维阵列组成。活动片数据存储器被划分成邻接的区域,每个区域大到足以代表一个图象片。所要求的活动片的最小数目等于可以在任何一个时刻表示为活动的片的最大数目。这依次根据可以位于增量保持缓冲器232中增量块下面的片的最大数目来确定。假设增量之间的间隔小于2个输出象素,如对所考虑的手动扫描仪实施例的情况那样,因此,块的总间隔应为至多32*2:64输出象素单位。当相对于直线图象以45°扫描时,最大的水平尺寸将为64*:90象素。在最坏情况下,这些跨距3铺在每行上。沿扫描仪的片的最大数目按输出象素单位L由扫描仪的长度给出,由片尺寸分度并被截断+2以供部分片之用(如果L是片尺寸的精确倍数的话为1)。这给出一个保守的(因为扫描仪不足以45°对着它的整个长度)活动片的最大数目为
maxActiveTiles=3*(L/64+2)
对于2.5英寸扫描仪,这给出
maxActiveTiles2.5=3*(750/64+2)=39片
对于5英寸扫描仪,它给出
maxActiveTiles5=3*(1500/64+2)=75片
以及对于11英寸扫描仪,它给出
maxActiveTiles11=90*(3300/64+2)=159片
假定对于每一个,输出分辨率为300dpi。应当指出,假设在分度中有截断。
如果如在这里讨论的实施例中那样,人们有一个为灰度级提供的字节,那么64×64片要求4KB存储器,300dpi的2.5、5和11英寸扫描仪分别要求最小150KB、300KB和636KB活动片数据存储器(不同的分辨率等级以及因而不同的存储器要求当然完全可能属于本发明范围内)。这些图假设在创建新片之前所有不再活动的上一个活动片被复制、压缩和存储在被压缩片数据缓冲器213中。因此,来自活动片数据缓冲器212的代表不再与当前增量块相交的片的存储器资源被返回到活动片区。这可以经由片索引和有关的片目录项目重新分配活动片数据存储器到新的活动片。这个方案要求按顺序压缩和纠正进程,先进行压缩,接着进行纠正。事实上,并行实施是最好的。在一个优选实施例中,活动片的数目(因此活动片数据缓冲器212的大小)相对于最小要求被增加,以便允许一双处理器实施一个处理器和支持的硬件单元执行纠正,同时另一个执行压缩。所要求的活动片数目的增加由相邻块之间必须存在的最小程度的重叠来确定。
现在我们描述片管理器231如何更新片索引214以便确保新活动片具有分配给它们的存储器。在扫描开始时,片索引214和片目录211项目将表示一个空的四线树。这时代表片索引214的四线阵列有一个在阵列位置0上的单一根项目,根项目的所有四个子结点指针为零,nextAvailable Quad指向四线阵列元素1。一个索引nextAvailableDirectoryEntry指向片目录211中的第一个项目。活动片数据偏移FIFO 233被初始化,以便包括活动片数据缓冲器212中每个片数据块的一个项目。当扫描开始时,在活动片索引N的新表中的每个项目被检验,与它的位置有关的片索引通过四线树片索引214被访问。如果四线树片索引要求代表这个片的一个新项目,那么这样的新项目如上面参照图13所讨论的那样被创建。如果在索引表中的一个项目指的是当前为零的树的叶结点,那么这说明扫描路径已进入一个新片。结果,形成被考虑的叶结点以便参照在由nextAvailableDirectoryEntry所指向的位置上片目录211的下一个项目:nextAvailableDirectoryEntry则被增加1。这个新目录项目被标记以便说明它还没有被压缩,以及使它经由它的偏移字段指向从活动片数据偏移FIFO233中提取的活动片数据偏移值。与活动片数据缓冲器212中的片图象有关的数据则被初始化到一个背景值。这个背景值被选择为最亮的8比特白色亮度,对所用的灰色是可以获得的。
眼下可以确定哪个片在最后的扫描回合中(在本说明所使用的例子中,33增量的最后一个块(tranche))是活动的可是在当前回合中不再活动。这样的片的索引是增加到完成的片索引FIFO234的方法的优选方案。这个方法要求在片管理器231内的额外存储器以便为33增量的上一个块保留活动片索引的表。在扫描开始时,这个表将是空的。将在片索引“陈旧”表中的每个项目与新采集的增量保持缓冲器232的当前33增量的活动索引表相比较。在新表中不存在的旧表中的任何项目被添加到完成的片索引FIFO234中以便说明它们应由片压缩器238压缩。
片压缩器238从完成的片索引FIFO234中依次提取片索引并压缩这些片。压缩可以包括任何适当的处理形式以便减小由片耗用的存储器数目,包括数据中任何分量的损失,它们的保留不被认为对达到所希望质量或形式的表示法是必须的。压缩因此应当包括表示法和/或空间或灰色分辨率的变化。技术熟悉的一种适合的方法是作为应用门限方案结果的双态配置(binaristation)(这样的一种方案在williamK.Pratt著的“Digital Image Processing(数字图象处理)”,JohnWiley & Sons Inc.New York,1991,p.597-600中讨论)。应当采用灰度或二进制数据的许多标准压缩方案的任何一个,例如二进制数据或灰度的LZW的组合4画面压缩(group 4fax compression)。
在压缩阶段,活动片数据缓冲器212的原有片仍不受影响。使以被压缩(或其它变化)形式的片的新拷贝在由nextAvailableCompressed Data指针表示的被压缩片数据缓冲器213单元内进行。这个缓冲器顺序地被填充,以便片被打上压缩的标记。与现在被压缩的话(从片索引235获得)有关的片目录211项目则被更新,以便指向被压缩片数据缓冲器213内的适当单元,并变更它的长度字段和压缩状态。与现在被压缩的片的活动版本有关的活动片数据缓冲器212内的偏移则被回到活动片数据偏移FIFO 233的后面,当要求代表一个进一步活动片时被使用。最后,nextAvailableCompressedData指针按照被压缩片的字节长度被增加1。通常,每个片将压缩到不同字节数,取决于片的内容和所采用的压缩方案。
如上所述,为纠正进程的计算效率,提供一个片高速缓存236。图16示出由片管理器231建立的片高速缓存。为了寻址在位置(x,y)上的一特定象素,其中y和x是每个16比特行和列位置,每个坐标必须首先被分为它的片索引分量,以及它的“片内”位置分量。这些分别由每个坐标的顶上10比特和底下6比特提供。采用图16所示的片高速缓存,y和x10比特片索引的方式被用于访问活动片数据存储器缓冲器212内的片阵列数据。Y索引偏移,其相应于当前活动片中的最小y索引,被从所考虑的坐标的y索引中减去,以便给出一个局部y索引,被用于访问x索引偏移表241和片数据偏移表242。X索引偏移表241是一个x片偏移的线性表,其包含y偏移行之后片索引的每行(因此y片索引值)的最小x索引,直到由扫描仪长度决定的最大行(这个最大行将是y索引偏移+(L/64)+2,其中再一次加上的系数2引起分度和部分填充片的必然后果和截断)。片数据偏移表242是一个三元组的阵列,其每个元素包含至活动片存储器缓冲器212的16比特索引。在x索引偏移表241中的项目在所示出的本例中通过将局部y索引加到表基地址上被给出(假设算法以x索引偏移表单元单位执行:在这个装置中,这将是16比特)。同样地,在片数据偏移表242中有关的三元组通过将三倍局部y索引加到片数据偏移表的基地址上被给出。至片数据偏移表242的索引被进一步更改,以便通过对有关行加上局部x偏移来寻址有关片索引:这由原来的x片索引与来自x索引偏移表241的那个行的项目之间的差给出。
在片数据偏移表242中有关表元的内容提供一个至代表活动片数据存储器缓冲器212内片的图象数据阵列的基地址的指针。来自每个坐标的低6比特则被用于以通常方式形成片内的一个地址。不是片数据偏移表242中的所有单元都是有效的:那些没有一个零指针。表被建造得对最坏例子的情况(按照这里33增量的块所要求的片)来说足够大,同时比起可以由片数据偏移表242索引的常常更少的片当前将是活动的。
适合于与上面参照图14所讨论的组合的铺砌和纠正方案一起使用的纠正进程在下面讨论。可以沿用Bresenham算法实现纠正,如在国际专利申请公布号WO96/27257和美国专利US-5578813中所讨论的那样。然而,更简单的方法例如在欧洲专利申请NO.97302519.0所讨论的方法是优选的,其内容在国家法律许可范围内被包括到本申请内。
图17示出由为形成最后的纠正图象把增量流88映射到的片阵列所提供的坐标帧。如在国际专利申请公布号WO96/27257和美国专利US-5578813中那样,没有预定大小的直线图象缓冲器,而是未确定总尺寸但预定刻度的一个铺砌的直线图象空间。与每个增量有关的位置标记的x和y坐标相应于直线图象空间中的水平和垂直坐标(列和行索引)。也示出与增量流有关的线性图象传感器的每个终点的位置标记(在右边一小部分被放大示出)的轨迹。在这些中,一对增量(增量#1和增量#2)通过用直线连结它们的位置标记被强调。当在扫描本身两次返回处的重叠区域中几乎相交时,这些被选择。
有可能的是,由扫描仪所要求的输出分辨率(一般不是200就是300dpi)确定的直线图象缓冲器的分辨率不同于测得终点位置数据所用的分辨率。那个由导航传感器24依次确定(其取决于在导航期间所成象的特性例如纸纤维的空间范围)。为了适应这样的差别,必须将终点位置数据换算成输出象素分辨率。
下一个操作是将一幅内的位置标记图象增量映射为被铺砌的直线图象空间。十分重要的是,在这个进程中保持足够的图象质量。一种方法是只要将每个增量内的元素映射到在终点位置通路之间画直线所经过的直线图象阵列的象素。映射应最靠近每个图象象素的线性传感器元素,或包括传感器元素之间的内插值。在这个上下文中应用的适当的线性或三次内插法在Wolberg,“Digital Image Warping”,pp.127-131,IEEE Computer Society Press,Los Alamitos,CA,1992中描述。
以这种方式实现纠正必然引入取样人工产品,因为每个增量有不同的影响。此外,在实践中将有必要的是,位置标记图象数据的原有幅被相对于直线象素栅格(为方便起见,它可能为以比线性传感器本身的象素节距要高的空间分辨率)严格地过取样,否则在直线图象中将出现象素的意外丢失。在图18中示出一个解决办法。在这个图中,一对增量I1和I2的终点位置规定一个区域。这些增量可以是相邻的一对线性传感器读数-使用连续的读数这里被称为PAIRWISE法。另一方面,增量I1和I2可以是约束的一对较大的传感器增量组-使用这样的增量这里被称为CHUNKWISE法。将会指出,在CHUNKWISE法中具有处理一组增量所获得的计算的优点,同时当与PAIRWISE法相比时以图象质量的一些小的降低为代价。
在铺砌的直线图象空间中的象素单元与整数单元有关。对于由一对增量规定的区域内的每个这样的象素,通过综合映射到线性传感器象素周围区域的许多线性传感器象素,一个强度值则被计算。在特定的优选实施例中,各种形式的双线性内插法被用于综合从跨越象素单元的一对相邻增量所获取的特定四个线性传感器象素:来自于映射到位于直线阵列象素一边的一根线的增量的两个传感器象素,以及来自于映射到在直线阵列象素另一边上的一根线的相邻象素的另外两个传感器象素。
在图18中,示出一对增量I1和I2,其被映射到规定被扫描图象的直线空间的一部分。为简单起见,使终点位置P1、P2和P1’、P2’分别相应于增量I1和I2的头一个和最后一个传感器元件的中央。中间的传感器元件例如A1、A2和B1、B2也被示出。在直线图象阵列中的象素单元被选择以使相应于关于终点位置几何形状的整数单元。输出直线图象的分辨率不可能与线性图象传感器的分辨率相同。然而,不管实际分辨率,N传感器象素沿着连结每个增量终点的一根线映射。为说明简单起见,在图18中N=8,也就是每个线性传感器在其中只有8个元件,每个增量的长度为N-1=7乘以当以输出直线象素分辨率单位测量时的线性传感器的象素节距。
落在由约束的一对增量所规定区域内的特定象素可以根据每个直线图象行与两个增量相交的X分量给出的间隔来识别。在图18中用直线图象行D上的象素C1和C2提供一个例子。根据简单的几何形状,如果增量I1有终点坐标(x1,y1)和(x2,y2),则它与具有整数值yD的行D的交点的x坐标由下式给出
xD=(yD-y1)*(x2-x1)/(y2-y1)
因而与行D+1的交点为
x(D+1)=xD+(x2-x1)/(y2-y1)=xD+xInc
式中xInc为对每个相邻行的常数增量。同样地,如果增量I2有终点坐标(x1’,y1’)和(x2’,y2’),则它与具有整数值yD的行D的交点由下式给出
xD’=(yD-y1’)*(x2’-x1’)/(y2’-y1’)
因而对于行D+1的交点
x(D+1)’=xD’+(x2’-x1’)/(y2’-y1’)=xD’+xInc’
这提供一个有效计算方法以便依次计算每行的交点范围。与当前行的交点用简单增加与上一行的交点来计算。
首先我们必须规定落在该区域内的行的范围。这由对两个增量公用的整数y值的范围给出。这些是在如下范围中的整数值
[Ceiling(Max(y1,y1’)),Floor(Min(y2,y2’))]=[Y1,Y2]假设扫描仪相对于纸张的取向保持大致垂直。这个方法可以很容易被扩展到允许扫描仪为以相对于页的任意取向。例如,如果扫描仪被颠倒,则线性传感器数据可以被反向,终点位置数据的极性被反向。此外,如果扫描仪的角度为偏离垂直超过45%,那么纠正可以通过倒转x/y位置坐标以及图象的行与列的极性来实现。为说明简单起见,该实施例的讨论将仅处理大致垂直的情况,可是扩展到上面所指出的更一般的情况对本专业人员是一种轻而易举的事情。
在该区域中的活动象素可以依次使用下面的伪码识别。
TRANSFORM LOOP 1
{
//INITIALISATION
y=Y1
xInc=(x2-x1)/(y2-y1)
xInc’=(x2’-x1’)/(y2’-y1’)
xD=x1+(y-y1)*xInc
xD’=x1’+(y-y1’)*xInc’
//MAIN LOOP
while(y<=Y2)
{
[
X1,
X2]=[Ceiling(xD),Floor(xD’)]
x=X1
//INNER LOOP
while(x<=
X2)
VISIT PIXEL(x,y)
xD+=xInc
xD’+=xInc’
y++;
}
}
其中运算符floor和ceiling具有它们通常的数字解释。初始化和内循环的实际细节对下面所述的不同方法是明确的。为了在所示出的TRANSFORM LOOP的实施例中表达的简单起见,假设xD总是小于xD’。通过测试在每行上xD和xD’的次序,不难把这个扩展到一般情况。
下一个步骤是确定哪个线性传感器象素对每个直线栅格象素作出贡献和以什么比例。现在描述PAIRWISE法的一个实施例。
在按照本发明方法的PAIRWISE法的实施例中,纠正基于如在计算机图形纹理映射(见上面引用的Wolberg的188页上的例子)中所使用的逆映射,因而在由连结增量I1和I2的终点位置的两根线所限定的间隔中的每个象素,被反向映射到在一对增量本身之间所规定的坐标空间内的一个子象素位置。这个情况在图19中说明,其中所示出的映射到图18中的直线图象的该对增量I1和I2也规定一个简单增量空间,其中单位是线性传感器象素间隔,该增量与y轴对准同时该增量被安排相距一个单位象素。在这个空间内,左边增量的顶上的传感器元件具有坐标(0,0)。
映射到增量I1和I2之间的来自直线图象的象素C1被示出。它具有子象素坐标(x,Y.y),其中Y是沿增量的坐标的整数分量,x和y是子象素偏移。一个代表性的象素值则可以使用四个周围象素的双线性内插法来确定。也就是说:
BiLinear(I1,I2,Y,y,x)=I1[Y]*(1-x)*(1-y)+I2[Y]*(1-y)*x
+I1[Y+1]*(1-x)*y+I2[Y+1]*x*y
从直线图象至增量之间的空间的变换的最好近似涉及每个象素的二项式求解。这不是一个令人满意的实际解决方法,因为所涉及的计算量太大。尽管有可能导出从直线图象坐标至由一对增量所规定的坐标空间的近似线性齐次映射,但非齐次求解是最好的。在这样的非齐次求解中,不要求局部变换性质的假设。也有可能很容易解决转弯处的情况,例如当相邻一对增量的投影涉及在直线图象空间中一个交叉时。
在这样的非齐次法中,对在间隔[Y1,Y2]中直线图象的每行规定不同的映射。这再次根据那行与连接终点位置的线的交点来确定。在此情况下,沿线本身的相交点的距离被找到。在分辨率差别所要求的任何换算之后,这相应于沿线性传感器的物理位置。在图19中,aD和aD’是直线行D分别沿增量I1和I2的交点;根据简单的几何形状有
aD=(yD-y1)*(N-1)/(y2-y1)
和
aD’=(yD-y1’)*(N-1)/(y2’-y1’)
因此行D+1的交点为
a(D+1)=aD+(N-1)/(y2-y1)=aD+aRowInc
和
a(D+1)’=aD’+(N-1)/(y2’-y1’)=aD+aRowInc’
其再次给出对有效串行实施的每个相邻行的简单递归关系。
在间隔[x1,x2]中沿行D的直线图象中的每个象素分别映射到沿在增量空间中连结在(0,aD)和(1,aD’)上的两个相交点的一根线的不同点。假设沿这行的线性映射,在直线图象中位置(xE,yD)上的象素将映射为在增量空间中的位置(aE,bE)其中:
aE=aD+(xE-xD)*(aD’-aD)/(xD’-xD)
和
bE=(xE-xD)/(xD’-xD)
以及再次由此得到对于沿行D的下一个象素为
a(E+1)=aE+(aD’-aD)/(xD’-xD)=aE+aInc
和
b(E+1)=bE+1/(xD’-xD)=bE+bInc
式中在(aE,bE)上的强度由双线性内插法确定。TRANSFORM LOOP的附加初始化和改进的内部循环为
TRANSFORM LOOP 2
{
//INITIALISATION
y=Y1
xInc=(x2-x1)/(y2-y1)
xInc’=(x2’-x1’)/(y2’-y1’)
xD=x1+(y-y1)*xInc
xD’=x1’+(y-y1’)*xInc’
aRowInc=(N-1)/(y2-y1)
aRowInc’=(N-1)/(y2’-y1’)
aD=(y-y1)*aRowInc
aD’=(y-y1’)*aRowInc’
//MAIN LOOP
while(y<=Y2)
{
[
X1,
X2]=[Ceiling(xD),Floor(xD’)]
x=X1
aInc=(aD’-aD)/(xD’-xD)
bInc=1/(xD’-xD)
a=(x1-xD)*aInc
b=(x1-xD)*bInc
//INNER LOOP
while(x<=
X2)
{
A=Floor(a)
pixel[y][x]=BiLinear(I1,I2,A,a-A,b)
a+=aInc
b+=bInc
}
xD+=xInc
xD’+=xInc’
aD+=aRowInc
aD’+=aRowIInc’
y++;
}
}
在按照本发明的方法执行PAIRWISE直线象素内插法的其它实施例中也可以使用更直接的几何图形内插法。这样的方法不要求把直线图象象素显式映射回到一个增量坐标空间。
一个特别简单的具有与反投影法相比减少计算要求的实施例是沿每个增量执行内插,然后把这些值直接内插在直线图象中。通过把每个直线图象象素映射到在每个增量上最靠近的点,以增加计算为代价,可获得更好的图象质量。这些是在增量上的点,其被内插的强度更好地反映所考虑的直线象素的强度。然后再次利用线性内插法把该对被内插的增量强度值组合起来,以便给出该象素的最好代表性的强度。这样的实施例在欧洲专利申请NO.97302519.0中描述。
采用直线映射的CHUNKWISE法的纠正方案的下一个另外的实施例将被介绍。CHUNKWISE法有两个优点,适当的TRANSFORM LOOP版本的外部循环不太经常被计算,以及较大数目的输出象素被顺序地访问,其直接导致(不需要高速缓存)改善存储器带宽。
图20示出由M(在本例中为4)个增量组成的一个块。标记为I1和I2的外部的一对增量再次被TRANSFORM LOOP的外部循环使用,以便识别映射在块内的有效象素。优选实施例确定具有如前面对PAIRWISE例子所述的非齐次反投影算法的扩展形式的直线阵列象素列值。图21示出在图20中标记为D的行变换为包含由I1和I2约束的4个增量的一个增量空间。它连结行D与每个外部增量的相交点。按照PAIRWISE例子继续,如图19所示,这些交点具有沿分别对I1和I2的aD和aD’的线性传感器的偏移距离。在增量空间中交点的坐标因而为(0,aD)和((M-1),aD’)。
在间隔[X1,X2]中沿行D的直线图象中的每个象素映射到沿增量空间中一根分别连结在(0,aD)和((M-1),aD’)上的两个交点的线的不同点。假设沿这个行的一个线性映射,在直线图象中位置(xE,yD)上的象素将映射到增量空间中的位置(aE,bE),其中:
aE=aD+(xE-xD)*(aD’-aD)/(xD’-xD)
和
bE=(M-1)*(xE-xD)/(xD’-xD)
以及对于沿行D的下一个象素可以再次得到为
a(E+1)=aE+(aD’-aD)/(xD’-xD)=aE+aInc
和
b(E+1)=bE+(M-1)/(xD’-xD)=bE+bInc
其中在(aE,bE)上的强度由双线性内插法确定。
因此,TRANSFORM LOOP变成:
TRANSFORM LOOP 3
{
//INITLALISATION
y=Y1
xInc=(x2-x1)/(y2-y1)
xInc’=(x2’-x1’)/(y2’-y1’)
xD=x1+(y-y1)*xInc
xD’=x1’+(y-y1’)*xInc’
aRowInc=(N-1)/(y2-y1)
aRowInc’=(N-1)/(y2’-y1’)
aD=(y-y1)*aRowInc
aD’=(y-y1’)*aRowInc’
//MAIN LOOP
while(y<=Y2)
{
[
X1,
X2]=[Ceiling(xD),Floor(xD’)]
x=X1
aInc=(aD’-aD)/(xD’-xD)
bInc=(M-1)/(xD’-xD)
a=(x1-xD)*aInc
b=(x1-xD)*bInc
//INNER LOOP
while(x<=
X2)
{
A=Floor(a)
B=Floor(b)
pixel[y][x]=BiLinear(IB,IB+1,A,a-A,b-B)
a+=aInc
b+=bInc
}
xD+=xInc
xD’+=xInc’
aD+=aRowInc
aD’+=aRowIInc’
y++;
}
}
其中IB是在块中第B个增量,IB+1是在块中第(B+1)个增量。
CHUNKWISE法依赖于下列事实,即扫描路径几乎均匀并仅平滑地变化。这必须既对空间分布(扫描应是一均匀的形状)正确,也对治扫描路径的取样频率(扫描应当被均匀地取样)来说正确。CHUNKWISE法特别适合于在图14中所示的铺砌法。如果增量保持缓冲器232被改编以便保持(S+1)个增量,那么具有(T+1)增量的均匀块被采用,其中T是S的一个整数系数。例如,如果在增量保持缓冲器232中保持33增量,那么可以构成任何2(PAIRWISE极限),3,5,9,17或33增量的均匀纠正块。纠正步骤将在增量保持缓冲器232的相邻容量之间的S/T时刻发生。
通过动态地取决于扫描路径的均匀性程度改变块尺寸,CHUNKWISE法的扩展也是可能的。均匀性好的场合,可以适应大的块,不会引入图象畸变,但扫描路径或取样方式变化很快,只适合小块尺寸不引入副产品。在有限的例子中,这样的实施例回复到PAIRWISE法。
如上面已讨论的那样,直线图象空间可利用的存储器可以以线性传感器分辨率(一般不是200就是300dpi)很容易容纳一个单一文字尺寸或A4尺寸页。由于对直线图象空间没有尺寸限制,能形成的最后图象与开始的起始位置或扫描路径无关。为了获得适当的对齐,扫描或必须在假设的取向(例如总是与页边平行)开始,或取向必须根据扫描内容被恢复并被用于最后图象的重取向。自动确定页上文本的主取向的方法,其可以被用作今后的一个基础,这在文献例如H.S.Baird,“The Skew Angle of Printed Documents(打印文档的斜交角)”,Proc 4th SPSE Conference Symposium on Hybrid Image Systems,Rochester,New York 1987中得知。
下个步骤是拼接在它们的重叠区内相邻图象幅。目标是组合多个幅以使结果是以铺砌形式存储的最后经纠正的再现图象-便利的是,这个图象也将被压缩。这应被以这样的方式实现以便识别和修正多数累积的导航误差和掩盖任何剩余误差。
在所描述的实施例中,导航数据流提供拼接所需要的注册信息。因为导航信号往往引起累积误差,所以不断地通过反馈一个根据特性偏差的分析求得的修正信号来修正它。
然而,首先我们将描述拼接假设没有导航误差的图象幅的方法。
有些重叠区是必须,为了拼接两个图象幅。幅由在原图区域中仅一部分被扫描的扫描设备返回路径中一个换向所限定。一个幅包括在沿被扫描原图一次扫描期间所俘获的图象数据。在下面的描述中,术语“幅(swath)”有时也将被用于指根据映射这样的数据所形成的再建图象的一部分。
由图17中增量终点轨迹所表示的扫描产生两个重叠的幅。在图22中,映射到包括幅#1的直线图象空间的部分通过相应于具有示出填充线的重叠区102的幅#2的部分扫描被重映射回去。在时间T,部分幅至此已被扫描。在本例中,通过单纯地继续把幅#2映射到幅#1上部直线图象空间,可以实现令人满意的拼接。回到图17,进量#2可以沿它的整个长度以与增量#1完全相同的方式被映射,同时对图22中重叠区102中每个象素类似地处理。由幅#1得到的直线图象空间中的最后的再现容易被由幅#2得到的所替代。
结果,关于图14提出的方法将需要作修改以便允许不再活动的内容,因此被压缩的片的内容被取代—这可能要求附加存储器用于存储被压缩片,仿佛根据每个片所要求的存储器由片压缩器238给被压缩片分配存储器,如果片的第二版本压缩后比第一版本要求更多的存储器,则将产生困难。困难也可能在仅在第一幅中部分被填充但被变得不活动的片(在线性传感器边缘上的片)的例子出现。如果这些在第一通道被压缩,那么第二个“完全”版本将显然占据更多的存储器。一个可能的方案是决不压缩不被填充的片—部分填充的片通过评价片的每个角落来检验以便确定信息是否已被在压缩阶段写入到它里面。当部分填充的片变为不活动时它们应被删除(依赖于幅重叠来获得一个完整图象),或被存储在单独的存储器区中。
在重叠区102中映射为幅#1中的填充的片的象素不被由幅#2映射的那样所取代的方法将在铺砌方案中造成较少的困难,只要由幅#2映射的非重叠部分的所有象素(即也不被幅#1映射)被适当地映射。这就是说,由幅#1映射的区域被用于切去由幅#2映射的区域。原则上,只要幅#1和幅#2正确地映射落在重叠区之外的所有象素,那么在重叠区中的象素可以从幅#1或幅#2或一个组合同等地获得。
事实上,由于幅#1和幅#2的位置标记之间的误差累积,这个假设没有导航误差的简单方案不给出非常好的结果。
现在参照图23和24描述按照本发明拼接方法的一个实施例。图23示出处理步骤和当图24与利用有关幅#1和幅#2的进程时所涉及的数据缓冲器。如前面所述,图象增量数据被映射到铺砌的直线图象空间。图24示出在映射到回程通路幅#2的直线图象空间中使用在幅#1中所俘获的图象。导航修正通过在幅#1和幅#2之间重叠区内相关特性来计算。
图24强调这个重叠区,其被分为两部分104和105。如图24所示,在收集幅#1期间,四边形图象段103(今后称为“注册片”)被沿在重叠区105中幅的较低边缘周期地标记。在后一个通路(幅#2)上,区105上面的包含幅#1的注册片130的幅#2的重叠区104,当幅#2被采集时,通过不允许由幅#1所提供的填充片的那些被改写来切去,即抛弃。来自幅#1的注册片被位于在重叠区104已被切去后仍然是幅#2部分的上部。如果导航数据是理想的,在注册片130的位置与在幅#2中那个片的重扫描图象的位置之间将没有偏移。更实际的是,当上次注册被执行时将累积一些导航误差。在两个幅中这个片的出现之间的偏移产生一个修正系数,其然后被用于更新与图象数据有关的未来的导航位置标记,以便于将总累积误差减至最小。以这个方式防止在导航数据中总累积误差增长得太大以致于在幅重叠的区域中引起明显的畸变。
导航误差可以通过在增量流中幅#1和幅#2最靠近的点开始拼接幅#2到幅#1来减至最小。导航误差在扫描取样中这些紧挨着的增量之间应是最小。继续使用相邻幅之间“转弯点”周围配对(其中正如为便利计按照图1所示的俘获方法获得),同时逐渐使用被拼接加上被预计的幅和还有沿幅的处理误差之间所检测的误差,允许以本质上类似于闭合一个拉链或拉锁的方式的拼接的自动导向控制。
现在参照图23和24描述拼接幅#1到幅#2的处理步骤。图23示出图象增量缓冲器B和铺砌的直线图象空间100。图23也示出一个特性位置缓冲器131和图象缓冲器132。这种类型的安排在国际专利申请,公布号WO96/27257中示出。然而,在这里所述的铺砌方案中,要求一个附加的特性数据缓冲器135。当一个注册片130被建造时,必须获得包含那个注册片的图象的拷贝。这是因为当这样的图象片成为不活动时,它们将被压缩器238压缩,它们包含的数据将不再容易获得以用于拼接。因此方便的做法是把非压缩形式的这些片拷贝到附加特性片缓冲器,用来自特性位置缓冲器131至附加特性数据缓冲器135中每个有关片的一个指针。处理步骤如下:
1.如上所述,在收集幅#1期间,注册片被沿在重叠区105中幅的较低边缘周期地标记。整个注册片应被用于上述的相关,但在优选实施例中,一个由灰度图象的长方形片(例如,15×15象素)组成的高频对比(今后称为“注册特性”)的小区域被位于构成在作为幅#1俘获结果的直线图象空间100中被再现图象一部分的注册片内。包含这些注册片130的图象片,在如图14的方法中所示那样提供压缩的实施例中,在这样的图象片被压缩之前被拷贝到附加特性数据缓冲器135。
2.注册特性的位置标记(其规定铺砌的直线图象空间100内多个注册特性的位置)在幅#2开始映射到直线图象空间100之前被保存在特性位置缓冲器131。
3.当幅#2被映射时,在直线图象空间的那个区域被幅#2写入之前识别注册特性位置。这通过规定一个长方形俘获窗口107来实现,如图24所示该窗口具有与一个图象增量相等的长度和几个象素的宽度,它在当前正在映射到直线图象空间100的幅#2的图象增量之前。当存储在特性位置缓冲器131中的注册特性位置落在俘获窗口107内时,注册特性位置被选择(在任一时刻只能选择一个注册特性位置)。
4.被选择的注册特性位置被用于规定当幅#2被映射到直线图象空间时注册特性的预计位置。所发现的相对于上一个注册特性的导航误差通过使用当前误差估计值(存储在误差缓冲器134中)来考虑,以预计当前注册特性的位置。因此,用于探测当前注册特性的搜索区域则仅需要足够大以计及可能的误差增量。
5.专用图象缓冲器132被用于暂时存储直接来自增量缓冲器B的直线图象,该直线图象是由位于所选择的注册特性周围的幅#2的图象数据映射的以及存储在注册特性位置。换句话说,在时间T,图24所示的图象增量138被映射到缓冲器132。专用图象缓冲器132的大小必须足以存储注册特性加上所要求的搜索区域,其大小根据已知的误差估计算法计算。
6.来自存储在专用图象缓冲器132中的幅#2的图象段然后与存储在特性数据缓冲器135中的由有关注册片130的特性位置缓冲器131所指向的相应图象段相比较。以这种方式求得一个偏移,当与以前的误差估计值累积时,其给出导航误差的一个更新估计值。这个更新估计值与位置标记一起被存储在误差缓冲器134。
误差估计值的位置标记只是相对于直线图象空间的当前注册特性中央的位置。它被依次用于确定在增量缓冲器B中误差估计值与之有关的增量(即相应于映射到那个图象位置的幅#2的第一增量)。这说明被测误差估计值应完全由其容纳的增量。
尽管可以采用其它相关法,但是计算两个图象段之间偏移的可接受的方法是“平方差之和”相关。在特性的原有位置周围规定一个小搜索区域,相关系数由下式确定:
Ck,l=∑i∑j(Ti,j-Ii+k,j+l)2
式中Ti,j表示幅#1特性的灰度值,II+k,j+l表示幅#2所采集特性的灰度值。索引i和j规定特性内的象素位置,而k和l规定所建议的变换偏移的大小(被约束保持在搜索空间内)。在由此得到的相关阵列中的最小元素表示两个特性之间的偏移。注册片内的注册特性被选择使图象方差最大,因为这改善相关法的准确度。这个方法应用的详情在国际专利申请公布号WO96/27257中进一步被讨论。
在第二个处理阶段中,来自幅#2的图象数据被写入到考虑了在所记录位置上的误差估计值的直线图象空间,以致从最后再现图象中消除那些误差。这通过改变与传感器数据的单个图象增量的终点有关的位置数据来实现。这个处理被方便地完成,以图14方法的角度,先确定哪个片被要求在片的一个“回合”中作为活动片,纠正和压缩。
这个优选方法给出改进的拼接,因为在成品图象被再现之前,经过幅之间重叠区移动的导航传感器位置中的误差被识别和修正。此外,在收集以前幅期间已累积的图象增量的上部和下部的被计算位置之间的误差可以在下一幅开始时马上被吸收而不引入不希望的人工产品。这在图24中用从上面所述的第一和第二处理阶段所获得的幅#1和幅#2之间转变点右边沿之间的不连续表示。
拼接步骤也可以对所要求的图象俘获特性(更具体地不排除扫描)以不同方法实现。一个替代方法是要求执行从页顶上到底部的扫描,在该情况中拼接仅要求在一幅的底部和下一幅的顶上之间完成。另一个方法允许扫描在页的任何部分开始但要求保持扫描的初始取向。在那个情况下,必须能够识别幅两个边的注册特性,可是在扫描的方向被建立之后,误差估计值仅需要对当前幅的一边被保存。在另一个方法中,扫描可以允许以任何方向,同时扫描方向的变化也可以被容纳例如螺旋扫描。在这个第三种方法中,不仅必须能够识别幅两边的注册特性,而且误差估计在扫描方向可能改变的例子中也必须对每幅的顶部和顶部被保持。后一种方法对用户给出最大的灵活性,但有较大的计算辅助操作。
在优选实施例中,图象再现、拼接和图象管理的处理电子设备被包含在规定图1的扫描设备10的盒子内。因此,被扫描图象可以在图象显示器16上立即出现。然而,扫描设备可能包含存储器以便存储位置标记图象数据,但没有处理和文件管理电子设备和固件。
如根据图3所指出的那样,导航和图象传感器22、24和26最好被安置在转动式构件20上。在一个实施例中,转动式构件通过至少一个弹性体被连接到盒子的剩余部分,弹性体的一端被连接到盒子的固定部分,另一端被连接到转动式构件。弹性体用作铰链。这样一来,转动部分被允许“浮动”而不使用摩擦元件。电源、控制和数据信号可以经由屏蔽以使电磁干扰减至最小的挠性电缆被引入到传感器。可以使用其它方法转动式地连接转动构件。如果取消转动式构件,传感器在盒子的固定位置上,那么必须小心在图象俘获时不能过分倾斜扫描设备10。在这个实施例中,照明和光学元件的设计必须给予特别多的注意。
虽然本发明已被描述并作为扫描一个二维原图来介绍,但这不是关键的。事实上,本专业技术人员不难知道为扫描三维图象可以使用多少种方法。然而,本优选实施例是一种所考虑图象在一个媒体上被形成,例如一张纸、透明胶片或相片上,同时扫描设备与该媒体相接触的情况。
然而,如上所述,在另一方面,本发明同样地适用于不同种类的图象俘获。本发明同样地可以用于具有一个区域传感器,例如通常的数字相机的图象数据的俘获。对于以增大的分辨经用一数字相机的大图象的俘获,一个有效的方法是沿取一系列图象帧的图象扫描,每次俘获大图象的一部分,过取样以便在由数字相机俘获的不同图象帧之间有重叠区,然后通过采用这些重叠区建立不同元素之间的相对位置。根据这些相对位置,图象则可以按照本发明的方法被再现-因此不要求单独的位置传感器。当然有可能提供一个具有区域图象传感器的位置传感器,但在这种情况下关于优选实施例所描述的本发明的第一个方面完全适用-然而,在有些俘获方法,使用这样的位置传感器可能是昂贵的,不方便的甚至不可能的。
现在讨论确定相对位置的步骤。虽然本专业人员将知道可能寻找更复杂的情况,但这个方法最简捷的应用是对下述情况,即仅具有几个参数的单一全局变换可以被用于使按顺序的一个图象的位置相对于按顺序的相邻图象发生关系。这将适用,如果被俘获的图象是二维的(例如一平的文档或白板)或事实上的平面(特性相对于区域传感器移动非常不同的风景画)。它也将在不考虑被扫描现场的内容来使用,如果传感器的运动是(或非常接近于)有关图象设备光学中心的一个旋转—如同对来自一个不继续快照的序列的全景图俘获常是这一情况。如上所述,在俘获上不要求位置数据—它仅适合于知道哪个图象帧是空间上相邻的(虽然如果必须的话应当由更广泛的特性映射步骤)。
在上述情况的每个中,相对位置可以通过例如2D平面投影变换的种类来确定。通用变换有8个参数且有下列形式
式中(x,y)是第一个图象的坐标,(x’,y’)是第二个图象的坐标,以及(m0,m1,m2,m3,m4,m5,m6,m7)是变换参数。
正如本专业人员将了解的,确定这个变换的方法充斥图象处理的技术文献。如上所述,中心思想是使用一对图象之间的重叠部分来确定作为整体的图象之间存在的相对变换。逐个的图象可以相对于单个全局坐标帧被变换和拼接。这个方法的一个例子在Richard Szeleski,“Video Mosaics for Virtual Environments”,IEEE ComputerGraphics and Applications,March 1996,pp.22-30中和其中所引用的文献内给出。
在图象帧相对于一全局坐标帧被拼接之后,则可能简单地采用上面所述的铺砌方案和本质上如在图14中所述的方法实现一铺砌的图象。