一种镜片检验系统的制作方法

文档序号:6091245阅读:280来源:国知局
专利名称:一种镜片检验系统的制作方法
本申请与下列同时提出的审查未决的序列申请有关申请号为的“自动检验眼镜片的方法和系统”;申请号为的“镜片检验系统用的照明及成象子系统”;申请号为的“一种检验眼镜片的方法”,以及申请号为的“用于承载眼镜片的装置”。
本发明一般涉及用于检查眼镜片的系统,更确切地说,涉及检查接触透镜用的高速自动检验系统。
一般说来,接触透镜是以较高精度和准确性制成的。尽管如此,个别情况下的个别镜片仍可包含某些不规则性,为此要在将接触透镜销售给用户之前进行检验,以弄清该镜片对于用户的使用是否合适。
在一种已有技术的镜片检验系统中,使照明光束透过镜片,然后聚焦在屏幕上,以在其上产生出该镜片的象;操作者则检查该象,以确定该镜片是否包含任何不规则性。假如发现任何可使镜片不适于用户使用的不规则性或者缺陷,则要么将该镜片从检查系统中除掉,要么以其它方法做出标记,以使其以后不会销售给用户。
现有技术的这种检验系统是非常有效和可靠的,然而该系统仍比较缓慢和昂贵。这主要是由于必须由操作者将所产生的镜片象聚焦在屏幕上,并且对任何不规则性都要检查整个象。因而相信已有的检验系统是可以加以改进的,尤其应当相信,通过提供一种自动系统进行这些检验,则可以降低检查镜片的费用,而且可以提高检查的速度。
本发明的目的在于对检验眼镜片的系统进行改进。
本发明的另一个目的在于提供一种高速度自动检验接触透镜的系统。
本发明的再一个目的是将眼镜片自动定位于完全确定的镜片检查位置,让光脉冲自动透过该镜片,然后将此光脉冲的选定部分聚焦在象素阵列上面,并对来自该象素阵列的信号进行自动处理,以确定该镜片是否包含可使其不适于用户使用的任何不规则性。
这些目的以及其它目的可由一种镜片检验系统实现,该系统包括运送子系统,它使许多眼镜片沿着预定的路径移动,使这些眼镜片中的每一个都能一次一个地移动到镜片检查位置上;照明子系统,它产生一系列光脉冲,并让一个相应的光脉冲射过移过镜片检查位置运动的每一个眼镜片。此镜片检验系统进一步包括成象子系统,它产生一组代表这些光脉冲透过眼镜片选定部位的信号;还有图象处理子系统,由成象子系统接收到那些信号,并按预定程序处理那些信号,以便识别出这些被检查镜片中每个镜片的至少一种情况。
最好让成象子系统产生一组代表光脉冲透过每个眼镜片选定部位的相应的信号,而且图象处理子系统对这些组信号中的每一组信号进行处理,以确定该镜片是否适于用户使用。如果发现该镜片不适于用户使用,则图象处理子系统产生信号,指示这种发现。
最好让此镜片检验系统还包括控制子系统,以使照明及成象子系统的动作与运送子系统的动作同步。控制子系统的配备,特别是为了激励照明子系统,每当一个眼镜片经过镜片检查位置时产生一个相应的光脉冲。
参照详细说明并表示本发明最佳实施方式的附图而考虑以下给出的详细描述,将使本发明的其它长处和优点变得非常明白。


图1示意地表示一种自动检验眼镜片的系统;
图2为可由图1中系统检验的一种眼镜片的平面视图;
图3为图2所示眼镜片的侧视图;
图3A为图2及3中所示镜片外围部分的放大图;
图4为图1镜片检查系统中所用的运送子系统的较详视图;
图5为图1系统中所用的镜片承载装置平面图;
图6为图1所示的镜片运载装置侧视图;
图7为概括表示被称为暗场照明的照明技术原理的示意图;
图8为图1所示的镜片检查系统中照明及成象子系统的较详示意图;
图9表示成象子系统中的象素阵列部分;
图10表示当2及3所示类型眼镜片在图1的镜片检验系统中进行检查时,在象素阵列上面形成的图象;
图11A、11B及11C表示可被用在照明及成象子系统中的三种不同的光学结构;
图12A说明镜片检验系统中控制子系统的操作;
图12B为说明运送、照明及成象子系统操作中各种动作顺序的时序图;
图13示意地表示该镜片检验系统中的数据处理子系统;
图14概括说明与镜片检验系统一起采用的优选数据处理程序的主要组成部分;
图15表示该镜片检验系统的象素阵列上面形成的眼镜片的象;
图16A和16B为说明被称做偏心检验的镜片检查程序的流程图;
图17A与图15类似,表示眼镜片在象素阵列上面形成的象;
图17B为图17A所示环形带的局部放大图;
图17C为表示在横过图17B的线段上一定象素被照射的强度图;
图17D至17I用图解说明为了得到这些象素的处理值,对这些确定象素的照明强度值所做的各种处理结果,这有助于识别图17A所示环形带的边缘;
图17J表示以那些处理过的照明值照明的象素阵列中的象素;
图18为表示处理为此象素阵列中的象素确定初始照明强度值的优选程序的流程图;
图19A至19C表示对象素阵列象素的数据值进行掩模处置的效果;
图20为说明优选的掩模程序流程图;
图21A及21B说明被称为橡皮带算法的另一数据处理程序;
图22表示用于识别行图象边缘第一象素的子程序;
图23为更详细表示橡皮带算法第一主节(section)的流程图;
图24为表示当在镜片象的外侧边缘发现裂隙时所调用的子程序流程图;
图25A至25E表示镜片象的外侧边缘部分,并识别该边缘上感兴趣的各种象素;
图26为当镜片象的外侧边缘发现多余碎片时调用的子程序流程图;
图27表示在图23中框出的程序完成之后调用的程序;
图28为更详细地表示橡皮带算法第二主节的流程图;
图29表示一部分镜片象的外缘,并表示橡皮带算法第二节中所用的若干向量;
图30为更详细地框出橡皮带算法第三主节的流程图;
图31及32用图示说明表示在图30中的两步处置的效果;
图33用附加在外缘上的某些直线表示该环形带的一部分外缘;
图34A至34E概括表示被称做MAX,PMAX,MIN以及PMIN的各种运算的结果;
图35表示应用于象素的数据值中用以突出或者强调镜片边缘可能存在缺陷的优选程序;
图36用于说明图35中所示程序的结果;
图37为表示在象素数据处理中所用的第二个掩模程序的流程图;
图38A至38C用图说明第二个掩模程序及其效果;
图39为应用于象素数据中用以进一步突出被检验镜片的任何缺陷的另一程序流程图;
图40A至40D用图说明图39框出的程序的操作和效果;
图41A及41B表示用于识别被检验镜片的任何伤痕或缺陷的程序的流程图;
图42表示镜片中可能出现的各种类型的缺陷。
图1为用于说明镜片检验系统10的方框图。概括说来,该系统10包括有运送子系统12、照明子系统14、成象子系统16以及图象处理子系统20。就系统10的优选实施方式来说,运送子系统12包括镜片承载装置22和支承装置24(如图4所示),照明子系统14则包括外壳26、光源30以及反射镜32和34。而且,就此优选的系统10来说,成象子系统16包括摄象机36、光阑40以及镜头组件42。更准确地说,参见图8,摄象机则包括外壳44、象素阵列46以及快门50,而且镜头组件包括外壳52、一对透镜54和56以及多块隔板60。如图1所示,图象处理子系统20包括予处理器62、主处理器64以及输入装置如键盘66,而且该子系统20最好还包括存储单元70、视频监视器72、键盘终端74以及打印机76。
一般说来,运送子系统12的配音是让许多眼镜片沿着预定的路径移动,以使这些镜片中的每一个都能一次一个地移动到镜片检验位置,图1就表示处在该镜片检验位置上的这样一个镜片80。照明子系统14的配备是为产生一系列光脉冲,并让一个相应的光脉冲射到光路82上,并穿过每个从镜片检验位置走过的眼镜片。成象子系统16产生出一组信号,它们代表这些光脉冲透过眼镜片的选定部位,并将这些信号传输给图象处理子系统20。图象处理子系统接收这些来自成象子系统16的信号,并根据预定的程序处理这些信号,以便识别出这些被检查镜片中每个镜片的至少一种状况。在以下详细描述的子系统20的优选实施方式中,由其确定被检查的每个镜片对于用户使用是否合格。
系统10可被用来检验各种类型和多种规格的眼镜片。详细地说,该系统非常适于检验接触透镜,例如图2及3就表示可由系统10检验的接触透镜84。一般说来,镜片84具有半球面形状,包括前表面86和后表面90,而且该镜片加工有中心光学区84a和外围区84b。此镜片具有基本均匀的厚度,然而如图3A中特别表示的那样,在紧靠此镜片外侧边缘的环形带84c范围内,镜片的厚度逐渐减小。
图4更加详细地表示出运送子系统12,并且如上所述,此子系统最好包括镜片承载装置22和支承组件24。更确切地说,此支承组件包括位移平台92以及第一和第二步进电机94和96,而且位移平台本身又包括基础件100和框架102及104。
一般说来,镜片承载装置22应具备夹持许多眼镜片的能力,而且图5及6更详细地表示此镜片承载装置。如在此表示的那样,该镜片承载装置包括矩形的基础件106及与基础件连在一起的镜片检查杯110阵列。每个检查杯最好包括截头圆锥形的侧壁110a和半球面形状的底部110b,它们连成一体并从杯的侧壁向下延伸。此外,每个检查杯的底部最好具有固定的曲率半径,大约比放在此杯中的眼镜片84的曲率半径大10%,而且底部110b的直径大于眼镜片的直径。而且每个杯的侧壁以约20°的倾角相对杯的轴线延伸,且每个侧壁的厚度最好小于约0.010英寸。
对于图5及6所示的特定镜片承载装置22来说,每个杯110顶部的直径约为22毫米,且其深度最好大于被检验镜片的直径,对于接触透镜通常为20毫米。如在图5及6中表示的那样,镜片承载装置包括一个3×4检查杯的阵列。本领域中的那些普通熟练技术人员将会理解,这些检查杯也可按其它构形来安排,例如可以按3×3阵列,3×8阵列,4×8阵列,3×10阵列或者4×10阵列来安置。
检查杯110,最好还包括基础件106,是由基本上透明的材料制做的,例如聚氯乙烯塑料。此外,检查杯110和基础件106最好整体模压在一起,而且比较薄,以降低成本,因而可根据实际情况在一次使用之后即可废弃此承载装置。一次使用之后即废弃该承载装置,实质上能够减少或者消除当重复使用镜片检查杯时经常发生的在杯中所形成的擦伤。如下面将要讨论的那样,由于杯上的擦伤有可能被看作是杯内镜片上的伤痕或者缺陷,所以采用能够容易废弃的镜片承载装置,可以改进镜片检查过程的精度。
在使用中,每个检查杯110一部分充以溶液112,例如盐溶液,并将一个相应的眼镜片放在杯的底部,完全沉没在其中的溶液中。当把镜片放在杯中时,由于检查杯的上述形状及参量,该杯趋于让其中的镜片自动定心在杯底。
再参见图4,支承组件24的配备,是为了支承镜片承载装置并使其移动,以便使其中的每个镜片每次一个地移动到镜片检查位置。支承组件24最好能让镜片承载装置22沿着预定的路径连续移动,以便平稳地驱动镜片84进入并通过镜片检查位置。例如,可将支承组件设计成让镜片承载装置移动,以使其上的检查杯110每次一列杯地移动通过镜片检查位置,而且在每一列杯通过镜片检查位置之后,由支承组件24驱动承载装置22,让另一列杯对准镜片检查位置。
对于图4中表示的优选支承组件24来说,底座100支撑着位移平台92的框架102,以便如图4所示在其上作向右及向左的横向移动;框架102支撑着框架104,以便如图4所示在其上作向上及向下移动,而且镜片承载装置22被支撑在框架104上,以使其随同移动。步进电机94安装在底座100上并与框架102相连,以使该框架横过该底座移动;而且步进电机96安装在框架102上且与框架104相连,以驱动后一框架移动。
任何适合的框架102和104以及步进电机94和96都可以用在支承组件24中。此外,如本领域普通技术人员将会理解的那样,其它适合的支承组件也是公知的,并可按所需的方式驱动镜片承载装置24。
再参见图1,子系统14和16结合在一起,产生并随之利用被称作暗场照明效果,以检查移过镜片检查位置的眼镜片。按照这种方法,在象素阵列46上形成的象,具有眼镜片对所通过的光进行散射或反射的特征。暗场照明确实是一种高效方法,由于眼镜片的所有缺陷以及某些正常性能基本上都能对光散射,所以可用它来检测眼镜片中的伤痕或者不规则性,即便是非常细微、薄层的缺陷如那些称之为小坑(puddle)的,通过采用暗场照明法能够容易地被检测到。
参照图7可以理解暗场照明的原理,图中表示出眼镜片114、准直光束116、一对透镜120和122、不透光的光阑124和象素阵列126。光束116透过眼镜片114,然后入射在成象透镜120上。如果照明光束116当入射在镜片114上时是完全被准直的,那么此光束将被引导至聚焦在透镜120的后焦点上。即使照明光束116完全不受眼镜片114的影响,也可认为此光束当入射在透镜120上时未被完全准直,而且此光束116在透镜120的后焦点附近将形成一个称作最小弥散圆的小圆。光阑124位于成象透镜头120的另一侧,在其后焦点上,并选择此光阑大小为略大于由照明光束116透镜在120后焦点处形成的那个弥散圆图象。
因此,在不存在镜片114对照明光束116的任何散射或折射时,便没有光透过光阑124,而且象素阵列46完全是暗的。然而镜片114使光偏向足以错过光阑124的任何特点,将会造成某些光被入射在象素阵列上。眼镜片114位于与象素阵列46的位置光学共轭的位置上,因此,如有任何光能透过光阑124,则这样的光将在象素阵列上形成眼镜片114中对光散射的实物的象。
图8表示用于产生并随后将此暗场照明效果用于系统10中的优选设备,具体说来,此图更详细地表示优选的照明子系统和成象子系统。如在图中表示的那样,照明子系统14包括外壳或壳体26、光源30、反射镜32及34、光阑片130、电源132、控制电路134、第一及第二可调支撑机构136和140,以及出射窗142。同时,成象子系统16包括摄象机36、光阑40以及镜头组件42。更具体地说,摄象机36包括外壳44、象素阵列46和快门50,镜头组件42则包括外壳52、透镜54及56以及隔板60。
照明子系统14的外壳26为此子系统的其它元件提供保护性封装,光源30、反射镜32及34和光阑片130全部固紧在此外壳中。更具体地说,外壳26包括一个竖直的主支架26a以及顶部和底部的水平支架26b及26c,而且光源30是装在此外壳主支架内部的。反射镜32被固定在支架26a及26c的相交处,反射镜34定位在支架26c的远端附近,而且光阑片130定位在支架26c内部的反射镜32和34之间。外壳26上还加工有开口26d,恰好在反射镜34上方,而且窗142卡紧在该开口上。使用时,光源30产生大量闪光或者脉冲,并将这些脉冲中的每一个射到光路82上面。反射镜32位于这条光路之上,并且经过光阑片130将这些光脉冲射到反射镜34上,再由其经过出射窗142将此脉冲向上射,通过图8中编号为14的镜片检查位置射向或射到成象子系统16上。
最好将光源30安装在可调支撑机构136上,以使由此光源发出的光的具体方向能得到调整;而将反射镜34安装在另一个可调支撑机构140上,以使由该反射镜反射的光的具体方向和位置能得到调整。更具体地说,对于图8表示的照明子系统14的最佳实施例,支撑机构136包括固定在外壳26上并可绕两个互相正交的水平轴线转动的倾斜平台。此外,对该子系统14的实施例来说,反射镜34的支撑机构140包括有倾斜平台140a和移动平台140b,而且反射镜34安装在前一平台上,而前一平台又安装在后一平台上。如在图8中看到的那样,平台140b可向左及向右作横向运动,使反射镜34的横向位置得以调整;而且平台140a能绕两个互相正交的水平轴线旋转,又使反射镜34的具体角度能被调整。
成象子系统16接收透过位于镜片检查位置144上的眼镜片的光脉冲,并且产生一系列信号代表光透过这些眼镜片的选定位置。更切地说,将象素阵列46配置在摄象机的外壳44内部,正好处在快门50之后,而且此象素阵列最好包括许多光敏传感器,其中每个传感器都能产生一个对应的电流,它们所具有的幅度正比于或者代表入射在该传感器上光的强度。
图9为一小部分象素阵列46的放大图,并且具体表示出该象素阵列的多个单个光传感器。参照该图,这些光传感器或者阵列,最好排列成给定行列数的均匀格栅,例如该格栅可以包括将一百万个象素排列成一千行和一千列。在此格栅中的象素,最好构成许多均匀隔开了的行和均匀隔开了的列;而且除了沿此阵列最边缘的那些象素之外,每一个象素都有八个最接近的邻居。例如象素146a具有的八个邻居是位于正上方的象素146b,位于正下方的象素146c,分别位于正左方和正右方的象素146d和146e,以及分别位于右上方、左上方、右下方和左下方的象素140f,146g,146h和146i。
再参见图8,光阑40和透镜54及56位于快门50的前面,彼此同轴地对准并和象素阵列46及摄象机快门同轴对准。光阑40位于透镜54及56之间,并且基本上处在透镜54的后焦平面上,而且透镜56的定位是使象素阵列46位于其后焦平面上。最好将透镜54及56和光阑40安装在外壳52内部,依次再将该外壳52安装在摄象机36的前端。此外,快门60可以包括一系列环形膜片,最好沿外壳52的长度方向上安装并分隔开,以帮助准直通过它而行进的光。
对于透镜54及56以及光阑40的这种特定位置来说,透过被检查的特定眼镜片的光束大部分或者全部均被透镜54聚焦在光阑40上,因而不会入射在象素阵列46上。然而一些通过眼镜片不规则细节的光以及一些通过眼镜片有规则细节的光可以充分偏向,以使这种不会被透镜54聚焦在光阑40上,但代之以透过该光阑并入射在象素阵列46上。此外,镜片尖锐位置是位于与象素阵列46的位置光学共轭的位置上的,因而透过光阑40的任何光,都能在象素阵列上形成使光散射的眼镜片中实物的象。
这种暗场照明技术对于照明眼镜片中的不规则性是非常有效的方法。图10表示由透过眼镜片,尤其是图2及3所示的接触透镜84的光束在象素阵列46上形成的图象。透过此镜片的大部分光由光阑40对象素阵列阻挡。然而由于镜片的环形带84c的厚度不一致,故透过该部分镜片的光被偏向而通过光阑40并入射在象素阵列46上,从而在此阵列上面形成该环形带的图象。镜片84中的其它不规则性也能在此象素阵列上产生照明区。例如即便象小坑之类细微、薄层的缺陷,也能在象素阵列上看到。尤其是假如小坑存在于镜片的内部,那么此小坑将作为暗场上的亮轮廓线很容易地出现在象素阵列上;假如小坑存在于镜片外围区,那么此小坑将作为亮场上的暗线很容易地出现在象素阵列上。并且,由于接触透镜的外围区具有楔形横截面,故此外围区足以使光偏向而通过光阑40,使得整个区域作为暗场上的白色亮环形带150出现在象素阵列上。
如本领域普通技术人员将会理解的那样,任何适合的光源、透镜和摄象机都能用于子系统14和16中。例如光源30可以是Hamamatsu制造的短弧闪光氙灯。这种特殊的闪光灯具有弧稳定性和寿命长的极好结合,且此闪光灯的输出为额定值±2%,具有109次闪光的寿命。
此外,对于实际上付诸实施的成象子系统16的一个实施例来说,第一成象透镜54是焦距为100毫米的消色差透镜,它对于其光轴在2.5°范围内的物体是受衍射限制的,而且透镜54被安装在阳极发黑氧化的铝管中,并以内部的隔板60来消除由于光从铝管内壁反射所造成的对比度降低。第二透镜56为标准的50毫米焦距F-1.8尼康镜头。作为第一透镜54的镜筒的端部,是粘接在拧在50毫米镜头外壳上的紫外雾状(haze)滤光片上的。
不透光的光阑40,是一个具有0.100英寸直径的小塑料圆片,并且包括一个粘性的垫底,以将其固定到位。适合的光阑是市场上可以买得到的,并且在为印刷电路版手工敷设布线图时作为焊盘(soldevpad)掩模用,而且很多尺寸的这种焊盘掩模都可用作不透光光阑。可以根据该系统10的其它参数改变光阑40的最佳尺寸,而且最好对选定的光阑规格加以精选,以便在对比度、易于对准和对于振动的敏感性之间提供最好的折衷。
用在子系统16中的实际做出的摄象机,是一种由Videk出售的高分辨率摄象机,而且能接纳标准的尼康镜头框架。首先将F-1.8的50毫米尼康镜头56安装在摄象机36上,然后将透镜54的外壳拧到镜头56上。Videk摄象机的有效视场比如为13.8×13.8毫米,约比最大的接触透镜尺寸大10~15%。之所以需要这样做,是因为被检验的眼镜片要使用摄象机36尽可能大的视场,以使镜片检查精度最佳。因此,通过让被检查的镜片自动定心,则镜片承载装置22的检查杯110就使摄象机中所能达到的分辨率得到最充分的利用。
子系统14及16的这种优选结构有许多优点。首先,由于光路82是弯折的,故闪光灯30可以放在距眼镜片较大的距离处,即在镜片检查位置144,而且这样就能在此眼镜片上产生高准直性的光束。其次,弧光在光阑40上所成象的大小基本上等于该弧光的实际尺寸乘以(ⅰ)闪光灯30至透镜54的距离与(ⅱ)透镜54至光阑40的距离之比。图8所示的优选结构还能减小弧光的成象大小,同时允许采用较小的光阑并因而产生较高的灵敏度。第三,可变光阑130能对光束82的截面积因而也对其照明面积加以限制。光阑130最好用来调节光束82的截面积或大小,以使该光束照明的圆面积只比被检查眼镜片的直径约大10~15%。限制照明光束82的尺寸,能够改善象素阵列上产生的图象和象素阵列其余部分之间的对比度特别是限制光束82的尺寸,能够消除或者基本上减少由镜片检查杯的制品所散射的光量。这种被散射光可能作为象素阵列46上的背景先出现,从而使该象素阵列上感兴趣的图象和象素阵列其余部分之间的对比度下降。
此外,对于子系统14和16的优选结构来说,该系统的放大倍率,即眼镜片在象素阵列46上的成象大小与该眼镜片的实际大小之比,约等于第二透镜56的焦距与第一透镜54的焦距之比。实际放大倍率还取决于透镜54及56间的距离以及被检查眼镜片距第一成象透镜54的距离。此外,倾斜平台140a和移动平台140b,可将反射镜34反射掉的输出光束中心调整为与成象光学子系统16的光轴重合。
如上所述,成象子系统16包括两个透镜54和56,彼此分开约为第一透镜54的焦距。采用两块透镜并不是必须的,然而这样做是首先的,因为采用两块透镜能在更大的范围内控制子系统14及16的各种参数,例如它能够消除后焦面和象面之间因子系统放大倍率所致的分开的影响。
图11A,11B及11C表示分别标注为152,154及156的另一些光学结构,可用在系统10中,让光束82射过镜片检查位置及固定在该位置上的眼镜片,并射在光阑40和象素阵列46上。
光学结构152仅包括一块透镜160,它同时将光束82成象在光阑40上并将被检查镜片成象在象素阵列46上。更具体地说,图11A中表示的光学结构包括反射镜162、成象透镜160和光阑40,而且该图还表示出以164示意表示的镜片座、被检查的眼镜片166和象素阵列46。对该结构来说,来自光源30的光束82或脉冲射在反射镜162上,接着再由其将此光射过镜片166并射在成象透镜160上。射在透镜160上的大部分光被聚焦在光阑40上。不过镜片166中的某些细节足以使光偏向,以致于使该被偏向的光透过光阑40并聚焦在象素阵列46上,从而在其上产生出镜片166中能引起光透过光阑40的某些细节的象。假如摄象机36的CCD屏幕比上述高分辨率Vidik摄象机的CCD屏幕大,则图11A的结构可为优选的结构。
对于图11B的光学结构154来说,使光源成象在光阑40上的功能和使被检查眼镜片成象在象素阵列46上的功能是分开的。为详细描述起见,此光学结构包括反射镜170、透镜172和174以及光阑40,而且图11B还表示出镜片座164、眼镜片166和象素阵列46。在该结构中,来自光源30的光束82射在反射镜170上,并由其将该光束射在透镜172上。透镜172使此光射过眼镜片166,而且透过镜片166的大多数光聚焦在光阑40上。镜片166中的某些细胞会使此光偏离开光阑40,然而,被偏向的光会入射在透镜174上,并由该透镜将此光聚焦在象素阵列46上,在阵列上产生镜片166中能使该光偏过光阑40的细节的象。图11B中透镜布局的优点在于,两块透镜172和174的作用是完全独立的。
图11C中表示的光学结构156和图8中表示的光学结构非常类似,但是结构156并不包括反射镜32或者光阑膜片130。更确切地说,结构156包括反射镜176、透镜180和182以及光阑40,而且图11C还表示出镜片座164、眼镜片166和象素阵列46。采用图11C的布局,来自光源30的光束82射在反射镜176上,并由其将该光射过镜片166并射在第一透镜180上。射在透镜180上的大多数光聚焦在光阑40上,不过镜片166中的某些细节足以使光偏向,以致于使该光透过光阑40并射在第二透镜182上,并由透镜182将该光聚焦在象素阵列46上。在此结构中,透镜180将光源成象在光阑上而与透镜182无关。然而这两块透镜180和182都与将镜片166的任何缺陷成象在象素阵列46上有关。
除上述内容外,系统10最好还包括控制子系统,使照明子系统14和成象子系统16的动作能和运送子系统12的动作同步,尤其是当镜片处在镜片检查位置144时,激励光源30产生光脉冲,并打开摄象机快门50。图12A中示意地说明这种优选的控制子系统。对这种优选的控制子系统来说,运送子系统12每次产生让一个镜片检查杯处在镜片检查位置的电信号。可由例如步进电机94或由另一个驱动位移平台92的机构产生这种信号,或者通过一个限位开关来产生,它约束每次使一个镜片检查杯到达镜片检查位置。最好将此信号传输给摄象机快门50,将其打开,同时还传输给延时电路184,使该电信号延时一段时间,让摄象机快门完全打开,而且在这段短延时之后该电信号随之被传输给闪光灯激励器134,然后触发光源30。
例如,对于已经构制的系统10的实施例,对照图12B,当眼镜片处在其检查位置时,运送子系统产生24伏的脉冲,并传输给摄象机36和延射电路184。摄象机的快门响应此脉冲的前沿而打开,并且约花费9毫秒时间即完全打开。该延时电路将通向闪光灯激励器134的信号延时约15毫秒,且在此延时之后将此触发脉冲传输给闪光灯激励器。此触发脉冲的前沿触发可控硅整流器(SCR)以点燃闪光灯30。在此点燃点,闪光灯成为电导通的,而且预先充电的电容器则通过此闪光灯放电。电容器被充电的电容量和电压决定了闪光灯发出的总光能以及光脉冲的宽度。其时,由一个接口电路维持摄象机快门打开约30毫秒,然后关闭快门。
按照上述方式使用摄象机快门,能够避免或者基本上减少镜片检查过程之间环境光在象素阵列46上的积累。此外,最好将高压电源、闪光灯激励器电子线路和存储电容器安装在包含照明光学系统的外壳结构26中。
来自闪光灯30的光足以让摄象机在如此短暂的时间内在象素阵列46上拍摄到图象,而无需让被检验的眼镜片停止。因此,最好将运送子系统12设计成能让一排眼镜片在成象子系统16下方连续移动。成排眼镜片的这种连续、平稳移动之所以有利,是因其能够减少或者消除检查杯110中溶液112顶部产生的可能干扰成象过程的波纹或其它干扰。
本领域普遍技术人员将会理解,可以用其它方式达到运送子系统12、照明子系统14和成象子系统16之间所要求的同步或者同位。例如激光源30,同时可在预定的时间间隔打开快门50,选择这段间隔与镜片定位在其检查位置144重合。
可将照明、成象和运送子系统都装在外壳(未表示)中,以减少悬浮在空气中的碎片对照明和成象过程的影响。此外壳可配备以透明的前门或带透明窗的前门,以便进出并能观察外壳的内部,而且这些前门的透明部分可以被着色,以减少环绕空间光线对照明和成象过程的影响。
图13为表示图象处理子系统20的方框图。在这个子系统中,来自象素阵列的电信号,按照串联与平行相结合的格式传给予处理机62。可以按任何适合的方式用产生该信号的特定象素表示这些传给处理机62的电信号。例如,可以按照给定的同步时序将来自摄象机36中象素的信号传给予处理机62,同时将时钟信号也从摄象机传给该予处理机,以识别该时序的开始或选定的时间间隔。换一种方法,可为每个传给处理机62的信号配备字头,或者其它的数据标记,以识别出产生该信号的特定象素。
予处理机单元62将来自象素阵列46中各象素的每个电流信号转换成一个相应的数字数据值I。,并将此数据值存储在具有与产生该电信号的象素地址相关地址的存储位置。这些数据值适合于处理机64,并可经过总线186传输给它。如下面所要详细讨论的那样,最好能够产生多组附加数据值I1……In,每一组数据具有一个相应的数据值,它与象素阵列46上各象素有关,而且予处理机62可以包括许多存储件(section)或存储板(board),其中每一个用来存储一组相应的这些数据值。
处理机64经过总线186与予处理机62相连,以便由该予处理机得到数据值并把数据值传给该予处理机。如下面更加详细说明的那样,处理64机是可编程的,用以处理并分析存储在予处理中的数据值,以便由系统10识别出每个被检查镜片的至少一种状况或者参数,例如指出每个镜片对用户使用是否合适。
存储磁盘70与处理机64相连,以便接收数据值并在永久或者半永久的基础上将其存储。例如存储磁盘70可以具备为处理机64所使用的各种查询表,同时该存储磁盘可用来存储与镜片检查过程有关的数据或在该过程中得到的数据。举例来说,可用存储磁盘70始终监视在给定的工作日或时间内被检查镜片的总数,还可用来始终监视在任何给定的样品或者一组镜片中所发现的任何缺陷的总数量、类型和大小。
键盘66与处理机64相连,以供操作者向其输入,而键盘的终端74用来直观地显示输入给处理机的数据或者信息。监视器72与予处理机62相连,用来从存储在予处理机中的数据值产生视频图象。例如可将数据值I。传给监视器72,以在其上得到象素阵列46上所得的实像的象。其余各组数据值I1……In可被传给监视器72,以得到该实像的精确象或处理过的象。打印机76经过串联-并联变换器190与处理机64相连,提供由处理机64传给该打印机的选定数据值的永久性直观记录。如本领域普通技术人员将会理解的那样,可以给子系统20配备其它的或者附加的输入和输出装置,以便让操作者或者分析人员能够和处理机64、予处理机62以及存储器70相互联系。
子系统20的各组成部分都是通用的并为本领域普通技术人员所公知的。处理机64最好是高速度数字计算机,而监视器72则是高分辨率彩色监视器。此外,例如予处理机62可以是Datacube信号处理板,处理机64可以是太阳牌3/140工作站。
如上面讨论过的那样,每次有一个眼镜片从摄象机36正下方通过,光透过眼镜片并聚焦在象素阵列46上,象素阵列46的每个象素都产生一个对应的输出电流,该电流的幅度代表入射在此象素上的光强。各象素的这种输出电流被转换为数学表示的数据值,按地址储存在与该象素相关的予处理机存储器中。按以下所述的来处理这些被称为I。值的数字数据值,确定在摄象机36下方通过的镜片是否包含被选定的一组或多组细节,特别是确定该镜片是否包含任何被认为是伤痕或缺陷而使该镜片对用户使用不适合的细节。
图14表示优选的图象处理程序的主要组成部分,用来发现图2及图3所示的那种类型镜片84中的任何缺陷。在象素阵列上得到镜片的象之后,用被称作偏心的程序检验该图象,确定该镜片环形带84C的内侧和外侧圆周边缘是否彼此严格同心。这种偏心检查包括让第一和第二个圆拟合(fit)到象素阵列上所产生的环形带的内侧和外侧边缘上。这之后便可发现或得到该环形带的实际边缘。随后用第一个掩膜程序来减小或者消除与镜片检查杯外围折射或者反射的光有关的数据,而任何边缘缺陷均可由被称做橡皮带算法的程序突出出来。接下去,任何缺陷还可由被称做填充和清除的程序以及第二个掩膜程序进一步明朗化,这样就能消除与靠近环形带图象中心的某些象素有关的数据。
在任何可能的缺陷被强调或予以突出之后,要进行搜索以确定事实上是否存在任何缺陷。尤其要对象素阵列46上的象素,或者更确切地说是对与该象素相关的数据值进行搜索,以便识别出可作为缺陷的象素的线段(IineSegments)或扫描路程(runlength),随后再把这些扫描路程分组以识别缺陷的候选物。继而分析这些缺陷候选物的规格和位置,确定它们是否真正就是使镜片对于用户使用是不合格的缺陷。
如上面指出的那样,利用检验偏心来确定摄象机下方通过的镜片上环形带84C内侧和外侧的圆周边缘是否同心。参见图15,通常是使大量扫描202越过象素阵列46,或者更确切地说,是研究予处理机的存储器中的地址上的数据,这些地址对应于象素阵列46上选定线段内象素的地址来完成的,以此确定环形带150的外侧边缘150a是否与其内侧边缘150b同心。
图16A及16B说明偏心检验或者程序R1。该程序的第一步204称为确定阈值的子程序,该程序的目的是让每一个象素与一个新的强度值I1联系起来,I1值等于最大照明值Tmax或等于最小照明值Tmin,这取决于该象素的起始照明值I。相应地是在给定的阀值Tt之上还是在其以下。因此,例如起始照明值I。大于127的各象素可配备以新的照明值I1为255;起始照明值I。为127或者更小的各象素可配备以新的照明值I1为零。
在偏心检验中的下一步骤206,是设定该检验中采用的扫描202的次数、位置及规格,而且这是靠给处理机64提供每次扫描的起始象素地址、扫描宽度及方向来完成的。对这些参数进行挑选,使得除镜片严重偏心以外,大量扫描中的每次扫描都穿过该环形带150的两条边缘。最好让处理机64或者存储磁盘70具备扫描开始地址、方向和宽度的半永久性记录。在检查每个给定了规定型号或尺寸的镜片时,均可使用这种记录,而且当检查不同的规定型号或尺寸的镜片时,可以改变这种半永久性记录。
接下去的步骤210,使选定的扫描穿过象素阵列或显示器46。除非镜片为严重偏心,这些扫描中的大多数都将穿过该显示器的被照明部分。当扫描越过该显示器被照明部分时,越过该照明部分的线段中第一个和最后一个象素的地址,以及被称作扫描路程的该线段长度都被记录在文件(file)f1中。检测扫描路程上的第一个及最后一个象素的子程序,得到这些象素的地址的子程序,以及确定每一扫描路程的长度的子程序,对于本领域的普通技术人员都是公知的,而且任何这样的适合程序均可应用在此偏心检查中。
然后在步骤212,将这些扫描路程中的每个的长度与予定值进行比较,去掉与小于该预定值的每个扫描路程相关的数据,即该扫描路程中的第一个以及最后一个象素的地址和该扫描路程的长度。之所以要去掉这些,是为了消除或者至少能够减少由于象素阵列46上的噪声(即不希望入射在该象素阵列的光)产生的数据值。详细说来,噪声可以是由于背景光或由于灰尘或其它颗粒使所需光路偏向产生的光在象素阵列上产生出照明区。在绝大多数情况下,这些被照明区中每一个只包括一组或少量几组相邻的象素。如果在步骤210时使上述扫描之一穿过此被照明区,那么处理机就会记录到穿过该照明区的扫描路程的第一个和最后一个象素地址,以及该扫描路程的长度。不过,这种照明区及其相关数据与环形带150及其边缘无关,所以提供步骤212是为了清除该数据。
偏心检验的下一步骤214是识别环形带外部边缘及内部边缘上每一个保留象素的地址,而且可以采用任何适合的子程序来做这一步。例如可以互相比较每一扫描路程的第一象素和最后一个象素的地址,并可把较靠近整个象素阵列46中心的象素看作处在环形带150的内侧边缘上,而远离该中心的象素看作处在其外侧边缘上。换一种方法,可以将扫描分成两组,使得对于第一组中的每次扫描来说,如果在扫描过程中发现被照明的扫描路程,则该扫描路程中的第一个和最后一个象素便分别处在该环形带的外侧边缘和内侧边缘上;而对于第二组中的每次扫描来说,如果在扫描过程中发现被照明的扫描路程,则该扫描路程中的第一个和最后一个象素便分别处在该环形带的内侧边缘和外侧边缘上。
在每一个象素被确定为是在环形带150的内侧边缘上或外侧边缘上之后,于是在步骤216中要对每个边缘上找到的象素的数目进行计数。如果这些数目中的任何一个小于3,那么在步骤220中,该镜片在被认为是严重偏心的基础上被舍弃。然而,如果在每一边缘上至少找到三个象素,那么在步骤222调用子程序,即首先让第一个圆拟合在该环形带外侧边缘上找到的象素上;其次让第二个圆拟合在该环形带内侧边缘上找到的象素上;第三是确定这两个圆的中心和半径。用于将一个圆拟合到三个或者更多个点上,并计算出该圆的中心和半径的很多子程序是公知的,而且任何这样的子程序均可应用在步骤222的片心检验中。
在计算出这两个被拟合的圆的中心之后,在步骤224中便确定这两个中心之间的距离d。随后在步骤226将此距离同第一个值d1进行比较,如果该距离大于d1,则该镜片在步骤230被作为严重偏心而废弃。如果该距离d小于d1,那么在步骤232将此距离d与d2进行比较,d2为环形带150的内侧边缘中心和外侧边缘中心之间可以接受的最大距离。假如被拟合的两个圆中心间的距离d大于d2,那么在步骤234作为存在偏心而废弃;然而,假如该距离d等于或者小于d2,则如步骤236所表示的那样,该镜片通过偏心检查。
如果镜片通过了偏心检查,随后处理机64就启动被称做边缘检查器的过程或程序R2,以产生一组照明值,它们依次被用来识别环形带150边缘上的象素。通常,这些边缘并不是理想的圆,因而是和偏心检查时找到的被拟合圆不同的。通过一系列在赋于象素阵列46中每一象素或与其相关的起始强度值方面的形态学运算或变化,取得这组新的照明值。这些形态学方面的变化绘图表示在图17A至17I中,并以流程图的形式表示在图18中。更具体地说,图17A表示环形带150在象素阵列46上的象;而图17B表示该环形带的局部放大视图,并且还表示也一段短线段240或者穿过该象素阵列的环形带部分及邻近区域的扫描。图17C表示处在该扫描240中的象素的强度值I1,而且如这里表示的那样,处在图17B暗区内的象素具有较低的强度值I。或者为零;处在图17B亮区内的象素具有较高的强度值I1如Tmax。
参照图18以及图17C和17D,在边缘检查器处理的第一步242,对每一个象素计算出一个新的I2值,尤其是设定作为每一象素的I2值等于该象素及其紧邻的八个象素的I1值的平均值。象素阵列46中每个象素的I1值和I2值之间的差异在于,后面的值在具有最低I2值的象素(通常为象素阵列46暗区内的那些象素)和具有最高I2值的象素(通常为象素阵列46亮区内的那些象素)之间变化更加平缓。对比图17C和17D能更好地理解这种差异。
然后在步骤244中,对于每一象素确定另一个值I3,具体说来,设定每个象素的I3值等于该象素及其八个紧邻的象素中的最小I2值。参照图17D和17E,I3值可按非常类似于I2值越过该象素扫描变化的方式,越过扫描240而变化。象素的I2值和I3值越过象素阵列变化的两种方式之间的原则性差别在于,具有最高I3值的象素区域,略窄于具有最高I2值的象素区域。
边缘检查器处理的下一步246,是根据等式I4=I2-I3对每个象素再确定一个值I4。特别参见图17F,在扫描240中的大多数象素具有I4值为零;然而沿径向紧靠环形带150两边缘内侧及其上面的象素具有正的I4值。接下去在步骤250,对每个象素确定一个I5值,更准确地说,设定每一个象素的I5值等于该象素及其八个紧邻的象素的最大I2值。对于象素阵列46上的多数象素来说,象素的I5值与I2值相同。然而对于环形带150边缘给定距离内的象素来说,象素的I5值大于其I2值,而且具有最高I5值的象素区域略宽于具有最高I2值的象素区域。
边缘检查器处理的下一步252,是根据等式I6=I5-I2对每一个象素再确定一个值I6。特别参见图17H,象素阵列上的多数象素具有的I6值将为零,然而沿径向紧靠环形带150两边缘外侧及其上面的象素具有正的I6值。接下去的步骤254,为每一象素赋以I7值,更确切地说,设定每个象素的I7值等于该象素的I4值和I6值中较小者。参见图17I,象素阵列上的多数象素具有的I7值为零,不过,恰在环形带150的两边缘和紧邻这两个边缘的象素具有正的I7值。象素的I7值可按这种方式识别位于环形带边缘上的象素。
然后,在步骤256可以调用确定阈值的子程序,以便使显示器46中处在环形带150边缘上的象素下其它象素间的差异更加明显。特别是可以再赋于每个象素一个值I8,根据该象素的I7值相应地是高于或低于给定的阈值如Tt,而使其等于最大照明强度值Tmax或者等于最小照明强度值Tmin。因此,比如每个象素具有大于32的I7值,则可以提供为255的I8值;每个象素具有等于32或者更小的I7值;则可以提供为零的I8值。
图17J表示强度等于其I8值的照明象素阵列46上的各个象素。
在计算和处理I1-I8值的过程中,最好将各组象素的值储存在予处理机62中一个相应的存储寄存器中,例如I0值全都储存在第一个寄存器中,I1值全都储存在第二个寄存器中,I2值全都储存在第三个寄存器中。在每个镜片的整个处理期间内,无需储存所有的I1~I8值,不过举例来说,在每个处理周期内,可以在计算出I4之后丢掉I3的值,可以在确定I6的值之后丢掉I5的值。
此外,并不需要对象素阵列46中的所有象素计算I2~I8的值。对于任何给定类型的眼镜片来说,镜片的环形带将出现在象素阵列46的较清晰的范围和区域内,仅需要对这样范围和区域内的象素确定I2~I8的值。然而作为实际情况,常可比较容易地简化象素阵列46中的所有象素的I2~I8值的计算,而不进一步增加处理步骤去识别那些在给定的感兴趣区域内的象素。
在完成边缘检查器程序之后,镜片检验系统将调用掩膜程序,以产生一组象素照明值,而不受固定镜片用的镜片检查杯边缘的影响。为详细描述,当用来自闪光灯30的闪光照明眼镜片时,此光还透过固定此镜片的检查杯。检查杯的边缘可使此光中的某些光充分衍射,足以使其透过光阑40并射在象素阵列46上,从而在其上产生该杯边缘的象或局部的象,就象图19A中以260表示的那样。这种边缘象与镜片本身无关,因而不需要任何与其相关的数据,而且也不需要处理与镜片象本身有关的数据。调用一种掩膜程序,以便从象素阵列46上消除此杯的边缘象,或者更准确地说,是为了产生一组象素照明值,免除了与检查杯的边缘象260有关的象素数据。
图20为说明优选掩膜程序R3的流程图。该程序中的第一步262是确定在偏心检查的步骤216或226中,能否在环形带150的外侧边缘上至少找到三个象素,或者能否发现眼镜片是严重偏心的。如果在偏心检查的这两步中的任一步发现该镜片是严重偏心的,那么掩膜程序R3本身便在步骤262终止。
假如程序R3未在步骤262终止,则该程序转到步骤264,以便获得在偏心检查中被拟合在环形带150的外侧边缘150a上的圆的中心座标。在偏心检查中,这些坐标已经被确定而且随后被存储在存储器中,即存储在处理机64的存储器中或者存储在存储磁盘70中,因此这些坐标通过简单地从该存储器中取出它们就能被得到。一旦得到这些中心坐标,便在步骤266调用一个掩膜子程序。现在参见图19B,这个子程序实际上就是在象素阵列46上叠合一个圆形掩膜270,它定心在上述中心的坐标上且直径稍大于被拟合在环形带150外边缘上的圆的直径。此掩膜程序随后根据各象素是位于该掩膜内侧还是外侧,赋于每个象素以I9值。特别是对于该掩膜外侧的每个象素,该掩膜程序赋于象素的I9值为零;对于该掩膜内侧的每个象素,该掩膜程序赋于象素的I9值等于该象素的I8值。
更准确地说,在步骤266,将上述中心点的坐标(xo,yo)以及半径值r1传输给掩膜子程序,选择r1略大于被拟合在环形带150外侧边缘上的圆的半径。然后由此掩膜子程序形成距中心点(x0,y0)为r1范围内的象素阵列46上的所有象素地址的文件f2。随后在步骤272检查象素阵列46中每个象素的地址,以确定其是否在该文件中。如果象素的地址在该文件中,那么在步骤274,设定该象素的I9值等于其I8值;然而,如果象素的地址不在该文件中,那么在步骤276,设定该象素的I9值等于零。
为数众多的专用掩膜子程序在技术上是公知的,并可应用在程序R3的步骤266中。
图19C表示以强度等于其相应的I9值照明的象素阵列46上的象素。
在完成图20中表示的掩膜程序之后,由处理机64启动另一个被称做橡皮带算法的处理程序。一般说来,这种算法包括分析并处理环形带边缘150a中的或紧靠此边缘150a的象素或与其相关的象素的数据值,图21A和21B表示概括说明此橡皮带算法的流程图。参见该图,该算法的第一步280是,获得在偏心检查中被拟合在镜片外缘150a上的圆的圆心坐标和半径。如上所述,这些值在偏心检查过程中已经确定而后储存在储存器中,而且通过从该存储器中提取就能得到这些值。
该橡皮带算法的下一个步骤282是,通过从象素阵列46的左边缘向内搜索,直至找到被照明的象素为止,以便将象素定位在环形带150的外缘150a上。在给定的搜索中所发现的第一个被照明的象素或许不在镜片象的边缘上,而可能在其它某处,而且是由于背景噪声而被照明的。因此,在步骤282中最好进行大量扫描或搜索,以找到许多被照明的象素,然后对这些象素的位置进行分析或相互比较,以有助于确保象素是在镜片象边缘上面找到的。
一旦在镜片象的边缘上找到第一个象素,则此橡皮带算法转到步骤284,而且,在这一步算法,实际上是在此第一个象素上开始,并且跟踪围绕镜片象边缘的全部路程,最后返回到此第一个象素。在此第一次跟踪过程中,此算法将镜片象外缘上的大多数象素或所有象素的地址记录在文件f3中,而且此算法还能够识别镜片边缘中较大的凹口、那些凹口的长度以及镜片边缘上较大的多余碎片。在步骤286,此算法是将一些被选直线两端点象素的地址记录在文件f4中。这些被选直线将在下面更详细地讨论,它实际上是穿过镜片边缘中任何较大的凹口,并穿过该边缘上任何较大的多余碎片两侧的。
在完成第一次扫描或围绕镜片象跟踪之后,然后在步骤290由该橡皮带算法确定任何可能发现的凹口是否大到足以使该镜片报废。如果发现这样的凹口,则报废此镜片,而且在步骤292由打印机76打印出信息该镜片具有坏的边缘。
假如该镜片在步骤290通过这种凹口检查,则该橡皮带算法转到进行第二次扫描或围绕镜片象边缘跟踪。在第二次扫描如图21B的步骤294表示的那样,该算法在于识别出某些薄层的细节,例如沿镜片外侧边缘径向向内或向外伸展的较小的凹口和较小的多余碎片,而且此算法检查每个被检测到的这样的细节,以确定该镜片是否将因此而被报废。一般说来,这是通过对镜片外侧边缘上至少每个选定的象素计算穿过该象素的被称作径向向量和边缘向量的两个向量的标量积来完成的。穿过象素的径向向量,就是穿过拟合在环形带150外缘150a上的圆的中心点伸展的向量。穿过象素的边缘向量,就是经过该象素以及环形带150外边缘150a上的第二个象素伸展的向量,所述第二象素系指沿此外边缘距前一象素后面(或逆时针方向)为规定数目的象素。
对于不包含任何缺陷(凹口或多余碎片)的镜片边缘的规则圆形部分的任何象素来说,以上标记的两个向量的标量积基本上为零,因为经过该象素的径向向量和边缘向量实质上互相垂直。然而对于镜片边缘上的凹口或者多余碎片边缘上的大多数象素或所有象素来说,经过该象素的边缘和径向向量的标量积将不为零,因为这两个向量并不垂直。假如算出来的任何标量积大于给出值,对此镜片被认为不适合用户使用,可以废弃。
假如该镜片通过在围绕镜片边缘进行的第二次扫描中施加的检查,则此橡皮带算法将进行围绕镜片象边缘的第三次扫描,如图21B中步骤296所示。此第三次扫描并不包括确定该镜片是否将被报废的任何检查,却包括为后续的检查处理数据或者准备数据特别是要使该第三次扫描得出一组数据值,该数据值并不含有与镜片中恰在环形带150外边缘150a内侧的任何缺陷有关的数据。随后从一组包含与这些缺陷有关的数据值中扣除这组数据值,从而得到一组只与这些缺陷有关的数据值。
一般说来,在围绕镜片边缘的第三次扫描中,此橡皮带算法是要确定该环形带150外缘150a的径向平均厚度,然后该算法将恰在该环形带外缘内侧的所有象素的I9值设为零。例如,假如该环形带外缘的平均厚度为六个象素,那么此橡皮带算法可将该环形带外缘径向朝向的7和27象素之间所有象素的I9值设为零。
图22至32较详细地说明此橡皮带算法。具体说来,图22说明一个子程序S1,它适于将第一象素p(x,y)定位在环形带150外缘150a上。在步骤300,设定(x0,y0)等于偏心检查中拟合在环形带外边缘上的圆的圆心坐标;而且在步骤302,设定ro等于此外部拟合圆的半径。而然后如步骤304所示,使许多水平扫描自象素阵列左边缘的中心或其附近开始,穿过该象素阵列46。更确切地说,处理机64对予处理机的存储中那些与象素阵列上选定的水平线段中象素的地址对应的地址上的数据值I9进行分析研究。在每个这样的扫描中,由处理机64检查给定水平行象素中各象素的I9值,并找出该行中I9值高于给定值的第一象素;而且最好进行多个这种扫描,由此而得到多个被找出的象素。
所有这些被找出的象素一般都在环形带150的外缘150a上。然而,由于镜片检查过程中的背景噪声或者杂散光可能入射在象素阵列的某象素上,该象素处在可能具有高I9值的边缘的左方;象这样的象素,有可能被确定为上述扫描中的照明象素。为了避免将这样的象素确定为边缘象素。在步骤306由子程序S1确定并舍弃任何这种象素的地址。更确切地说,先由该子程序确定这些扫描中所确定的各象素和镜片偏心检查中拟合在镜片象外缘上的外圆中心(x0,y0)间的距离;其次,将每个确定的距离与已设为等于拟合外圆半径的ro进行比较。假如某象素和该拟合圆中心间的距离超过ro的数大于给定的距离d3,则认为此象素不在环形带150边缘上或者并不紧靠着此边缘,则舍弃该象素的地址。检查此扫描过程中找到的所有象素的地址,确定它们是否在镜片边缘或紧靠此边缘之后-而且那些地址是未被丢弃的-然后如步骤310所示,可把所有剩下的象素地址选作象素p(x,y)再开始围绕此镜片象边缘的第一次扫描。
图23详细说明怎样进行第一次扫描,还特别表示出进行第一次扫描的程序R4。在步骤312中,从象素p(x,y)开始,该算法为沿环形带150的外缘向前或顺时针方向寻找该边缘内大的凹口或者该边缘上大的多余碎片,有如步骤314及320所示者。任何适合的子程序或程序均可用于沿此边缘的搜索。例如,从此边缘上给定的每个象素出发,以p(x,y)开始,处理机可以检查给定象素之上或之下的行中,或给定象素右方或左方的列中三或五个最靠近的象素(取决于显示器46上此给定象素所定位的象限或者区域),以确定该镜片边缘上的下一个象素。从这下一个象素出发,处理机可以利用同一种处置来确定该镜边缘上的再下一个象素。
对于在镜片边缘上找到的每个象素,可由该处理机确定该象素和拟合在该镜片外边缘上的圆的中心点(x0,y0)之间的距离r0对于该镜片边缘上给定个数的连续象素中的每一个来说,当r比r0小到多于给定的量dg(r0-r>dg)时,则处理机可得出结论发现大的凹口。相反,对于该镜片边缘上给定个数的连续象素中的每一个来说,当r比r0大到多于给定的量dep(即r-r0>dep)时,则处理机可得出结论发现大的多余碎片。
假如找到了凹口或者多余碎片,那么在步骤316和322将分别调用子程序S2或S3,此两子程序将在下面详细讨论。如果既没有发现凹口又没有发现多余碎片。那么程序R4便转到步骤324。
在步骤324,由程序R4检查确定是否完成围绕环形带150边缘的第一次扫描,而且任何适合的专用程序或子程序都可用来做此工作。例如,如上所述,跟踪围绕镜片边缘的象,由在此边缘上找到的象素的地址构成文件f3。在步骤324可以检查此文件,确定所考虑的现行边缘象素地址是否已在此文件中。假如此象素地址已知在此文件中,则认为完成围绕该镜片边缘象的第一次扫描;然而如果现行象素地址未在文件f3中,则认为没有完成此第一次扫描。假如已完成第一次扫描,则此橡皮带算法转到程序R5;但是,如果尚未完成围绕镜片的第一次扫描,则此算法转到步骤326,并把所考虑的现行边缘象素地址加到文件f3上。于是在步骤330,在镜片边缘上找到下一个象素,而且令p(x,y)等于此下一个象素的地址,然后该程序R4返回到步骤312。
图24为框出的子程序S2,每次在环形带150的外缘上找到凹口时被调用。此子程序中的第一步332是,识别凹口开始及终止处象素的地址及此两端象素之间的距离并记录在文件f4中。在图25A中,分别以P1和P2表示这两个象素。一旦发现凹口-即对于镜片边缘给定个数的连续象素中的每一个来说,r比r0小到大于dg,即r0-r>dg-镜片边缘上在给定个数的连续象素之前的最后一个象素,可被看作该凹口开始处的象素。
一旦发现凹口,则通过沿着偏心检查中拟合在镜片外缘上的圆上的象素穿过该凹口进行搜索,并对给定个数的象素由此拟合的圆开始作沿径向向内和向外的搜索,直至找到镜片边缘为止-即直至找到被照明的象素(或者更确切地说是具有高I9值的象素),就能找到此凹口的端部。找到镜片的边缘之后,若发现一系列连续象素全都在此拟合圆一定距离之内,特别是当对该系列中的每个象素为r0-r小于dg时,则可认为该凹口终于到达端部。可将镜片边缘上一系列连续象素之前的最后一个象素看成是在该凹口端部的象素。
在此子程序S2的340步,规定象素P1和P2之间的直线,即图25B中线段L1上的象素的I9值等于最大照明强度值,随后该子程序返回到程序R4。
图26表示当环形带150边缘上发现多余碎片350时说明在程序R4的步骤322调用的子程序S3的流程图。程序S3中所做的最初几步,实际上是相对多余碎片给出各种桥接线。尤其是在步骤352,此子程序在于识别出图25B中所示的环形带150边缘上多余碎片350的开始和终止处的象素P3和P4,然后在步骤354,规定图25C中表示的象素P3和P4之间的线段L2上各象素的I9值为Tmax。接下去在步骤356,此子程序识别出环形带150边缘上多余碎片350开始之前(或逆时针方向)给定个数的象素P5的地址;而且在步骤360,在多余碎片边缘上寻找距象素P5为给定距离d4的象素P6。接下去在步骤362,并且参见图25D,规定象素P5和P6之间直线L3上的每一象素的I9值为Tmax。
此后在步骤364,此子程序识别出环形带150边缘上多余碎片终止之后(或顺时针方向)给定个数象素的另一象素P7的地址;随后在步骤366,此子程序识别出多余碎片边缘上距象素P7为给定距离d5的象素P8。在步骤370,如图25E中表示的象素P7和P8间的直线L4上的每个象素I9值也被设定为Tmax。在绘出这些适当的桥接线之后,该子程序返回到程序R4。
在完成围绕镜片外缘象的第一次扫描之后,调用子程序R5。如图27中说明的那样,该程序用来确定在围绕镜片边缘象的第一次扫描中可能找到的任何凹口是否宽到足以使该镜片不适于用户使用。该程序R5中的第一步376是,确定在围绕镜片边缘的第一次扫描中实际上是否发现有凹口。假如没有发现凹口,则此程序R5本身终止,且此橡皮带算法转到程序R6。然而,若在围绕此镜片边缘的第一次扫描中发现有任何凹口,则此程序R5转入步骤380。在这一步,每次一个地将凹口的宽度与给定的值d6进行比较,而且,如果任意凹口的宽度大于该值d5,则认为镜片不适合用户使用,并且在步骤382中废弃镜片。然而,假如所有的凹口宽度约小于d5,则此程序R5终止,此橡皮带算法转到程序R6,以便进行围绕镜片边缘象的第二此扫描或者跟踪。
图28说明程序R6。如前所述,本程序主要是搜索镜片边缘中的薄层凹口和镜片边缘上细小的多余碎片,而这些薄层的凹口和细小的多余的碎片在围绕镜片边缘的第一次扫描的程序R4中未被看作凹口和多余碎片。尤其是在步骤384,设定象素p(x,y)的地址等于文件f3中第一个象素的地址。然后在步骤386、390和392,识别分别被称作边缘向量和径向向量的两个向量v1和v2,并计算这两个向量的标量积。更具体地说,第一个向量v1是经过象素p(x,y)和镜片边缘上沿此边缘的该象素p(x,y)之前(或逆时针方向)给定个数的第二个象素的向量,第二个向量是经过象素p(x,y)伸展的环形带150的径向向量。从这些向量伸展所经过的象素的地址中很容易确定这两个向量的斜率及其标量积。
参见图29,如果象素p(x,y)是沿着镜片边缘上规则的圆形部分,那么经过此象素的边缘向量v1基本上与镜片边缘相切,如图29中394所示。并且,此向量v1基本上与经过此象素的径向向量v2垂直,而且这两个向量v1和v2的标量积基本上为零。然而,如果象素p(x,y)处在镜片边缘的不规则部分,例如处在镜片上的凹口或者多余碎片的边缘,如图29中396和400所示,则经过象素p(x,y)的边缘向量v1和径向向量v2一般不垂直,而且这两个向量的标量积通常不为零。
在步骤402,将这两个向量v1和v2的标量积与给定值d7进行比较。如果此标量积等于或者大于此给定值-它表明在象素p(x,y)的区域内存在明显的凹口或多余碎片-则认为此镜片对于用户使用不合格,并在步骤404被废弃,而且整个程序R6终止。在步骤402,如果计算出来的标量积小于d7-它表明在象素p(x,y)的区域内,镜片边缘上任何偏离理想图的情况都在可容许的限度内,则此程序R6转到步骤406。在此步骤406,该程序检查确定是否完成围绕镜片边缘象的第二次扫描或跟踪。更确切地说,这样做是通过检查来确定象素p(x,y)是否为文件f3上的最后一个象素。如果是,则此第二次扫描完成,且此橡皮带算法转到程序R7。然而在步骤406,如果确定尚未完成此围绕镜片边缘象的第二次扫描,则在步骤408,规定象素p(x,y)的地址等于文件f3上面下一个象素的地址,然后该程序返回到步骤386。重复步骤386至408,直到报废镜片或者对于文件f3上的每个象素来说,算出经过该象素的两个向量v1和v2的相关标量积并判定小于d7为止,此时橡皮带算法转到程序R7,进行围绕镜片边缘的第三次扫描或跟踪。
最好不对镜片边缘上的所有象素都计算上述标量积,尤其不对在围绕镜片边缘所作第一次扫描中已经找到的凹口或者多余碎片边缘上的象素进行计算。之所以不需要对这些凹口及多余碎片上的象素计算这种标量积,是因为早已知道这些象素不是在凹口上就是在多余碎片上,而且通过不必确定经过这些象素的向量v1及v2以及这两个向量的标量积,可以节省可观的大量处理时间。
完成程序R6之后,此橡皮带算法便转到程序R7,进行围绕此镜片边缘的第三次扫描或跟踪。如前面讨论过的那样,此第三次扫描的目的,实际上是要产生一组新的数据值I10,该值免除了与镜片中恰好处在其外边缘内侧的任意缺陷有关的任何数据。图30更详细地表示出程序R7,该程序通常包括三个部分。在其第一部分,规定每个象素的I10值等于该象素的I9值;在第二部分,计算环形带150的外缘150a的平均边缘厚度值N;且在第三部分,规定此平均边缘厚度更内侧的给定范围内的象素的I10值为零。
更确切地说,在程序R7的步骤410,规定每一象素的I10值等于该象素的I9值。接下去参见图30及31,在412步,如图31中414a~414e表示的那样,环形带150最外侧边缘150a上面选择给定个数的象素。然后在该程序R7的416步,如图31中420a~420e所示,对于经过这些象素414a~414e的镜片象每一半径上被照明的象素数进行计数。例如该程序可以把该环形带最外侧边缘上的象素记数为第一个象素,并由此象素沿径向向内搜索,对此半径上的每个被照明象素增加记数值1。在422步,算出每个半径上面被照明象素的平均数,例如可以很简单地通过将计数出来的被照明象素总数除以所作径向扫描数来做到这一点。通常此平均值并不是一个整数,因此随后最好将该平均值增加到下一个最大的整数。
在程序R7接下去的部分,要进行围绕环形带150外缘150a的第三次扫描。为开始此扫描,如图30中424步所示,选择该边缘上的任意象素为开始象素P(x,y)。然后如426和430步表示的那样,对于平均边缘厚度上沿径向向内的所选定数的象素,设定其I10值为零。更确切地说,在环形带150外侧边缘上的每一象素处,该程序沿镜片半径径向向内对象素数N进行计数。然后对沿此半径进一步径向向内的给定象素数中的每一个,设定其I10值为零。参见图32,该程序中的这些步骤,实际上是设定画阴影线区域432中象素的I10值为零。
在该程序R7的434步,检查确定是否完成此围绕镜片边缘象的第三次扫描,而且可调用任何适合的子程序。例如,假如被选作此扫描开始象素的象素是处在文件f3中的顶部象素,那么该程序在对该文件中底部象素完成步骤426及430后,可认为完成该扫描。换一种方法,可以对程序R7中426和430步利用的象素地址分开列表,而且每次将一个象素的地址加到该表中,可对此表进行检查以观察是否已将新地址加在该表中。假如被增加给该表的地址值已在该表中,则认为完成此围绕镜片边缘象的第三次扫描。
假如在434步并未完成第三次扫描,那么在436步,设定象素P(x,y)的地址等于现行象素P(x,y)沿环形带150外缘150a的下一个象素(顺时针方向)的地址。例如可由文件f3中提取该地址;在436步,简单地设定象素P(x,y)的地址等于该文件中现行象素地址的下一个象素地址。此后该程序R7返回到426步,并且对新象素地址P(x,y)重复步骤426、430以及434。
在完成围绕镜片边缘象的这个第三次扫描之后,处理机64退出程序R7,并终止该橡皮带算法。
完成橡皮带算法之后,还要进行许多进一步的操作,总的目的在于使所考虑或检查的镜片中的不规则性显现出来,从而使随后更加容易识别这些不规则性。
这些程序中的第一个称作填充程序,是对象素阵列46上的每个象素建立另外一组数据值I11,可用来识别环形带150外侧边缘之中、之上或其邻近的任何不规则性象素。更确切地说,参见图33,可用这些数据值识别一些象素,包括(ⅰ)镜片边缘中的任何凹口,如以436表示者;(ⅱ)镜片边缘内侧的任何不规则性,如以440表示者;(ⅲ)镜片边缘上的任何多余碎片,如以442表示者,以及(ⅳ)子程序S3中在步骤362及370上形成的任何多余碎片和相邻的线段L3及L4之间的象素。
这个填充程序包括许多比较特殊的运算,它们被称之为MAX,PMAX,MIN和PMIN;这个程序涉及要处理一组与这些象素有关的基本数据值。在MAX运算中,对给定象素建立新数据值,它等于紧邻的8个象素中为最大的基本数据值;在PMAX运算中,对给定的象素建立新数据值,它等于紧靠其左、右和上、下的四个象素中为最大的基本数据值。在MIN运算中,对给定象素建立新数据值,它等于紧邻的8个象素中为最小的基本数据值;在PMIN运算中,对给定象素建立新数据值,它等于紧靠其左、右和上、下的四个象素中为最小的基本数据值。
图34A至34E说明MAX,PMAX,MIN和PMIN运算。更确切地说,图34A表示一个7×7数字阵列,每个数字代表相关象素的数据值,该数字在阵列中的位置与相关象素的地址相对应。例如,地址为(1,1)的象素的数据值为7;地址为(4,1)的象素的数据值为零;地址为(4,2),(4,7)和(5,2)的象素的数据值则分别为7、0和0。
图34B表示在图34A中所示的整个数字阵列上完成MAX运算之后产生的值。例如在图34B中地址(2,6)处的数据值为7,是因为在图34A中与此象素地址相邻的8个象素之一具有7的值。与此类似,在图34B中地址(6,2)处的值为7,是因在图34A的数据组中邻近该象素地址的8个象素之一具有7的值。图34C表示在图34A的整个数据组上进行PMAX运算结果产生的值;例如图34C中地址(6,3)和(6,4)处的值为7,是由于图34A中紧靠此两象素地址中每一个左方的象素具有7的值。
图34D和34E分别表示MIN和PMIN运算之后产生的值是在图34A表示的数值阵列上完成的。例如在图34D中,地址(4,3)处的值之所以为0,因在图34A中地址(4,3)的8个相邻象素之一具有0值;而在图34E中地址(4,2)处的值之所以为0,因在图34A中紧靠该象素地址右方的象素具有0值。
图35说明优选的填充程序R8。参见该图,此程序涉及对象素阵列46上的数据值完成14个独立的运算,其中每个运算都是在整个象素阵列上一次一个地进行。这些运算依次为MAX,PMAX,PMAX,MAX,MAX,PMAX,PMAX,MIN,PMIN,PMIN,MIN,MIN,PMIN及PMIN。从各象素的I9值开始这些运算,在完成所有14个运算之后得到的数据值称为I11值。
实际上,这些运算的结果填充到环形带150外侧边缘之中、之上或其邻近的凹口436、多余碎片442和不规则性440中。更确切地说,图33和36表示环形带150的相同部分,只不过前一个图表示以I9值照明的象素,后一个图则表示以其I11值照明的象素。这两个图之间的不同表示出图35中填充程序的效果。尤其这种差别在于,对于凹口436中、多余碎片442中、不规则性440中以及处在多余碎片和线段L3及L4之间的象素来说,这些象素的I11值为Tmax,而这些象素的I9值却为零。
如本领域普通技术人员所理解的那样,其它各种特定的程序是已知的,并可用来产生上述象素所需要的I11值。
完成填充运算R8之后,处理机64调用第二个掩模程序R9,产生一组象素照明值I12,在距偏心检查中拟合在环形带150内侧边缘150b上圆中心点给定半径内,这个照明值I12不受任何入射在象素阵列46上的光的影响。如下面更详细讨论的那样,以后就用这组象素照明值I12帮助识别镜片内部的缺陷,即在环形带150内侧边缘的径向以内区域中的缺陷。
镜片检查过程这一阶段所用的掩模程序R9非常类似于图19A~19C和图20中表示的掩模程序R3。这两个掩模程序之间的原则性差别在于,程序R9中所用掩模的半径略小于拟合在环形带150内侧边缘上的圆的半径;而程序R3中所用掩模的半径略大于拟合在环形带150外侧边缘上的圆的半径。
图37为说明优选的掩模程序R9的流程图。这个程序的第一步446是,确定在偏心检查的步骤216或226中,环形带150内侧边缘上是否已经发现至少三个象素,或者是否发现此眼镜片是严重偏心的。假如在偏心检查的这两步中任一步发现该镜片是严重偏心的,则在步骤450终止掩模程序R9。
如果程序R9并不在步骤450终止,该程序便转入步骤452,该步骤是要获得在偏心检查中拟合在环形带150内侧边缘150b上面的圆的中心的坐标。在偏心检查过程中,这些坐标已经被确定并储存在处理机的存储器中,通过简单地从该处理机的存储器中检索它们,就能得到这些坐标。一旦得到这些中心的坐标,则在步骤454调用掩模子程序。现在参见图38A~38C,此子程序实际上是将一个圆形掩模456叠加在象素阵列46上,掩模的中心在上述中心坐标上,其直径略小于拟合在环形带150内侧边缘150b上的圆的直径,然后此掩模子程序为每一象素赋值I12。特别是对此掩模外侧的每个象素来说,此掩模子程序给象素的I12值等于该象素的I8值;对此掩模内侧的每个象素来说,此掩模子程序赋给象素的I12值为零。
更确切地说,在步骤452,将上述中心点的坐标(xi,yi)和被选择为略小于拟合在环形带150内侧边缘上的圆的半径的半径值r2,传输给此掩模子程序。随后在步骤454,由此子程序形成象素阵列46中所有处在距中心点(xi,yi)为r2的象素地址的文件f5。然后在步骤460,检查象素阵列46中的每个象素的地址,确定其是否在此文件中。假如该象素的地址在此文件中,那么在步骤462,设定该象素的I12值为零;假如该象素的地址不在该文件中,那么在步骤464设定象素的I12值等于该象素的I12值等于该象素的I8值。
许多实现上述目的的专用掩模子程序在本领域中都是公知的,而且任何适合的子程序都可以用在程序R9的步骤454中。
图38C表示以强度等于其相应的I12值照明的象素阵列46上的象素。
完成第二个掩模程序之后,执行由一系列运算组成的又一个程序R10,以提供一组象素照明值,借以清楚地识别出那些在所检查的镜片中的任何不规则性或缺陷中的象素。更确切地说,这些进一步运算的目的是为了提供一组象素照明值,该值不受因背景噪声或光对象素阵列46产生的任何影响,也不受由于环形带150的正常的或者规则的边缘150a及150b对象素阵列46的任何影响。图39的流程图中表示了这些进一步的运算。
在步骤466,对每一个象素得到的另外一个I值即I13,尤其是通过从象素的I10值中减去象素的I12值,可获得各象素的I13值。图40a,40b和40c分别表示以强度等于其I10,I12和I13值照明的一部分环形带150中的象素,并且正如所能看到的那样,步骤466的实际效果是从图40a的象中去掉图40b的象,以产生图40c的象。
然后在步骤470,进行一种称作清除运算的操作,实际上是帮助清除寄生的照明象素。更具体地说,由象素的I13值开始,按照顺序在整个象素阵列46上进行MAX,MIN,PMIN和PMAX运算,产生被称为I14值的另一组象素值。图40d表示以强度等于其相应的I14值照明的环带象素阵列46,并且正像通过对比图40c及40d所能看到的那样,此清除运算的作用在于很简单地就能清除因一种或它种原因在图40c中被照明的各种孤立的象素。
系统10按上述程序R1~R10进行数据处理以后,进行伤痕或缺陷分析,图41A及41B表示用来说明一种优选的缺陷检测或分析程序R11的流程图。参照图42能够更好地理解这种分析,该图表示以强度等于其相应的I14值照明的一部分环形带150上的象素。
参见图41A,41B及图42,作为这种缺陷分析的第一部分的图41A中步骤472及474,是对被称作扫描路程的各水平序列连贯的照明象素中开始及结束处象素的地址列表。更确切地说,处理机64实际上是穿过象素阵列46中各水平行的象素进行扫描,而且在每一扫描过程中,每次都会碰到一系列被照明的象素,将该系列中的第一及最后一个象素的地址记录在文件f6中。在单个孤立的照明的象素的情况下-即处在此照明象素左方及右方的象素本身未被照明-将这个被照明象素的地址既作为第一又作为最后一个象素的地址记录在由被照明象素形成的扫描路程中。
更确切地说,处理机实际上并不跨过象素阵列上的图象进行扫描,而是代之以编译上述地址表。这种编译是通过检查储存在该处理机储存器中的象素阵列46中象素的I14值来实现的。
完成文件f6之后,程序R11在步骤476调用群集子程序,对每个区域或每组连续的照明象素生成单独的文件f6a……f6n-或者更准确地说,是为每个区域或每组具有高I14值的连续的象素生成文件。任何适合的群集子程序均可用来做这种群集。生成这些单独的文件f6a……,f6n之后,随后在步骤480,可以对那些彼此靠近的照明区例如图42中以482和484表示的那些,归并这些文件,例如通过检查确定一个照明区内的任意象素是否离另一照明区内任意象素在给定的象素数(例如二或三个象素)范围以内就可以做到这一点。这些彼此靠近的照明区,实际上被认为构成了一个照明区。
完成步骤480之后,在步骤486调用子程序,计算每个被照明的象素区的面积和矩心及其边界框。在所进行的这些计算的领域中,许多子程序都是公知的。任何这种适合的子程序均可用在程序R11中,在此无需对这些子程序作详细描述。
接下去由程序R11确定每个照明区的总体位置。更具体地说,在步骤490,得到的拟合在环形带150的内外边缘150a及150b上的两个圆的中心的地址和半径。在偏心检查过程中已经确定了这些数据,随后储存在处理机的储存器中,而且简单地通过自储存器中检索这些数据就能得到它。然后在步骤492,由处理机确定每个照明象素区域的矩心是否位于(ⅰ)镜片中心区的内部(即沿径向位于拟合在环形带内缘上的圆的内侧区域),或者(ⅱ)镜片的外围区(即镜片上拟合在环形带内外边缘上的两个圆之间的区域)。
许多确定该区域的矩心是在第一个圆之内或在通常为同心的两个圆之间的子程序都是公值的,在此无需详细描述这些子程序。
步骤490和492就其最广泛意义来说对于系统10的运算并不需要。然而最好还是做这些步骤,并收集相关的数据以为分析之用,特别是帮助识别镜片中可能出现的不规则性或者缺陷的位置。对于调整或改进制作镜片的工艺规程或材料,这些数据可能是有用的。
完成步骤490和492之后,处理机随后确定每个被照明象素区的尺寸是否大到足以看成可使镜片报废的伤痕或缺陷的程度。更具体地说,在步骤494,将每个被照明象素面积大小同予先选定的尺寸进行比较。如果被照明面积小于予选的尺寸,则此被照明象素的面积不足以使镜片报废。然而,假如被照明象素的面积大于此予选的尺寸,则此被照明面积被看成伤痕或者缺陷,它们使镜片不适合用户使用。这个予选的尺寸可以储存在存储磁盘70中。
在步骤496,最好保留每个镜片中所发现的缺陷的计数。这种计数对于分析制作镜片中采用的工艺和材料可能是有用的。
在步骤500,可在监视器72上得到显示,表示那些面积大于上述在边界框之内所示阀值尺寸的被照明象素的面积。随后在步骤502,处理机64进行检查,以确定镜片中实际上是否发现任何缺陷。假如发现缺陷,则在步骤504产生废弃镜片的信号,并传输给监视器72和打印机76,同时将该镜片自系统10中除掉。然而,如果镜片中没有发现缺陷,则程序R11便完全终止。随后系统10将工作在移动另一个镜片通过照明子系统14,而且另一个光脉冲将透过该另一个镜片。将透射光聚焦在象素阵列46上,并重复以上处理程序,确定该另一镜片对于用户使用是否合格。
非常明显,尽管这里所公开的发明非常适于实现上述目的,然而应当理解,本领域的技术熟练人员可作出许多改进和实施方式,并且使所附的权利要求书覆盖所有这些改进和实施方式,因为它们都落在本发明的真实精神和范围内。
权利要求
1.一种镜片检验系统,包括有运送子系统,驱使许多眼镜片沿着预定的路径移动,以使这些眼镜片中的每一个都能一次一个地移动到镜片检查位置上;照明子系统,产生一系列光脉冲,并让一个相应的光脉冲射过通过镜片检查位置移动的每个眼镜片;成象子系统,产生一组信号代表这些光脉冲透过眼镜片的选定部位,以及图象处理子系统,由成象子系统接收上述信号,并按预定的程序对上述信号进行处理,以便识别出这些被检查镜片中每个镜片的至少一种情况。
2.根据权利要求1的镜片检验系统,其中的运送子系统包括夹持多个眼镜片的镜片承载装置,以及支承该镜片承载装置的支承装置,适于驱动该镜片承载装置运动,以使其中的每个镜片一次一个地移动到镜片检查位置。
3.根据权利要求2的镜片检验系统,其中支承装置包括有(ⅰ)位移平台,该平台包括底座,由该底座支撑,沿第一方向移动的第一框架,以及由此第一框架支撑,沿垂直于上述第一方向的第二个方向移动的第二框架,以及(ⅱ)驱动第一框架沿上述第一方向移动和驱动第二框架沿上述第二方向移动的装置,而且镜片承载装置被第二框架支撑,以便随同移动。
4.根据权利要求1的镜片检验系统,其中的照明子系统包括有能够产生光脉冲的闪光灯;按选定的时间触发该闪光灯的闪光灯控制器,以及将来自该闪光灯的光脉冲沿着预定的路径射出,并通过经过镜片检查位置移动的眼镜片的装置。
5.根据权利要求4的镜片检验系统,其中的照明子系统,还包括位于上述预定光路中用以调整光脉冲横截面大小的可调光阑。
6.根据权利要求1的镜片检验系统,其中的成象子系统包括产生上述信号组的象素阵列;位于该象素阵列和镜片检查位置之间的不透光的光阑,以及位于该光阑和镜片检查位置之间的成象透镜,用来将透过镜片检查位置的第一部分光聚焦在该光阑上,并将透过镜片检查位置的第二部分光聚焦在该象素阵列上。
7.根据权利要求6的镜片检验系统,其中照明子系统沿着给定轴线将光脉冲射过镜片检查位置,并射在成象子系统中,而且象素阵列、不透光的光阑以及成象透镜均位于上述给定轴线之上。
8.根据权利要求1的镜片检验系统,还包括一个控制子系统,以便在每次一个眼镜片移过镜片检查位置时触发照明子系统产生一个相应的光脉冲。
9.根据权利要求8的镜片检验系统,其中运送子系统包括每次当眼镜片之一移过镜片检查位置时能够产生触发信号的装置,以及控制子系统接收开自该运送子系统的触发信号,并将此触发信号传输给照明子系统以产生上述相应的一个光脉冲。
10.根据权利要求1的镜片检验系统,其中运送子系统包括每次当眼镜片之一移过镜片检查位置时能够产生触发信号的装置;照明子系统包括(ⅰ)能够产生光脉冲的闪光灯,以及(ⅱ)按选定的时间触发该闪光灯的闪光灯控制器;成象子系统包括(ⅰ)外壳,以及(ⅱ)位于该外壳中,产生上述信号组的象素阵列;外壳则包括快门,具有关闭位置和让象素阵列暴露给射过眼镜片的光脉冲的打开位置,并且,其中的镜片检验系统还包括控制子系统,接收来自传送子系统的触发信号,并将此触发信号(ⅰ)传输给闪光灯控制器,触发该闪光灯,产生一个光脉冲,(ⅱ)传输给上述快门,驱动快门至打开位置,让象素阵列对上述一个光脉冲而曝光。
11.根据权利要求1的镜片检验系统,其中成象子系统产生一组相应的信号代表光脉冲透过每个眼镜片的选定部位,并且图象处理子系统处理上述信号组中的每一组信号,以确定在每个眼镜片中是否存在许多预定情况中的任何一种情况;如果在一个眼镜片中发现上述预定情况中的任何一种,则数据处理子系统将产生表明上述一个眼镜片中存在上述预定情况中的上述一种情况的信号。
12.一种检验眼镜片的方法,包括收集该镜片对于至少一种电磁频率的象;将该象划分成一组象素;赋予每一象素以位置值和图象强度值;对各象素之间的位置值和图象强度进行比较;识别与所述镜片的特征对应的多组象素;将一组象素中的相互关系同预定的相互关系进行比较,确定镜片是否合格。
13.根据权利要求12的方法,其中所述的各象素之间进行对比,是沿着横过该镜片边缘的路径进行的。
14.根据权利要求12的方法,其中所述的对特征进行识别,包括收集共有一个特征的压一些象素的特征形成组。
15.根据权利要求12的方法,其中所述的比较是在包括该镜片边缘的一组象素之中进行的。
16.根据权利要求12的方法,其中所述的比较是在包括一部分镜片内的一组象素之中进行的。
17.一种检验眼镜片的方法,包括以下步骤使许多眼镜片沿着预定的路径移动,使这些眼镜片中的每一个移动至镜片检查位置;产生一列光脉冲;将一个相应的光脉冲射过经过镜片检查位置移动的每一个眼镜片;产生一组信号,代表这些光脉冲透过眼镜片的选定部位,以及按预定的程序处理所述信号,识别所述镜片中每个镜片的至少一种情况。
18.根据权利要求17的方法,其中的处理步骤包括以下步骤处理所述信号,确定每个眼镜片中是否存在许多预定情况中的任何一种,以及如果在一个眼镜片中发现所述预定情况中的任何一种,则产生一个信号,表示上述情况中的上述一种情况存在于上述一个眼镜片中。
19.根据权利要求17的方法,其中移动步骤包括每次当镜片之一移至镜片检查位置时产生一个触发信号的步骤;产生光脉冲的步骤,包括每次当触发信号产生时就产生一个光脉冲信号的步骤。
全文摘要
一种用于检验眼镜片的系统,包括运送、照明、成像和图像处理子系统。运送子系统驱动许多眼镜片沿着预定的路径移动,将这些镜片中的每一个一次一个地移至镜片检查位置;而照明子系统产生出一列光脉冲,并将一个相应的光脉冲射过每个眼镜片。成像子系统产生一组信号,代表这些光脉冲透过眼镜片的选定部位;图像处理子系统由成像子系统接收这些信号,并按预定的程序处理这些信号,识别镜片中每一镜片的至少一种情况。
文档编号G01M11/00GK1092167SQ9311989
公开日1994年9月14日 申请日期1993年12月21日 优先权日1992年12月21日
发明者T·G·戴维斯, J·怀尔德, D·德赖发斯 申请人:庄臣及庄臣视力产品有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1