自动检验眼镜片的方法和系统的制作方法

文档序号:6091088阅读:242来源:国知局
专利名称:自动检验眼镜片的方法和系统的制作方法
本申请与下列共同未决的申请有关申请号为-的“镜片检验系统用的照明及成象系统”;申请号为-的“一种检验眼镜片的方法”;申请号为-的“一种镜片检验系统”,以及申请号为-的“用于运载眼镜片的装置”。
本发明一般涉及用于检查如接触透镜之类眼镜片的方法和系统,具体说来,涉及照明光束射过该镜片以产生其象的这种类型的镜片检查方法和系统。
一般说来,接触透镜是以高精度和准确性制造的。尽管如此,个别情况下的个别镜片仍可包含一定的不规则性,为此要在将接触透镜销售给用户之前进行检验,以弄清该镜片对于用户的使用是否合格。
在一种类型的已有技术的镜片检验系统中,大批的镜片被放在承载每个镜片运动的镜片运载装置上,一次一个地通过有照明光束透过此每一镜片的镜片检查位置。此照明光束随后被聚焦在屏上以在其上产生该镜片的象,而且操作者对此进行检查,以确定该镜片是否包含任何不规则性。假如发现任何可使镜片对于用户使用不适合的不规则性或者缺陷,一是该镜片要么从检查系统中除掉,要么以其它方法做出标记,以使其随后不会销售给用户。
现有技术的这种检验系统是非常有效和可靠的。尽管如此,相信该系统仍可加以改进。例如对该系统较缓慢和费用昂贵方面。这是由于必须由操作者将所产生的镜片象聚焦在屏上,并为任何不规则性检查整个象。因此应当相信,通过采用图象处理设备来分析所产生的该镜片象,以确定该镜片是否包含任何不规则性,则检查镜片的费用可以降低,而且检查的速度可以提高。
此外,对于现有技术的上述系统来说,以操作者的判断为验收合格或者不合格的镜片,包含某种主观见解,可能因人而异,即便对于同一个操作者来说,也可能经常变化。典型情况下,操作者可能对不认可镜片失之过偏,从而使好的镜片偶尔被标记为对于用户使用不适合的镜片。因而可对此检查系统加以改进,通过为其配备可以一致应用的更固定程序,以便确定镜片是否合格。
本发明的目的在于对检验眼镜片的方法和系统进行改进。
本发明的另一个目的在于产生出镜片的象,并使用图象处理设备分析该图象,以确定该镜片是否包含任何不规则性。
本发明的再一个目的是利用图象处理设备,并根据意义明确的、标准且一致的程序对眼镜片的图象进行处理,以确定该透镜对于用户使用是否合格。
所有这些以及其它一些目的的达到,是用自动检验眼镜片的方法,而且所包括的步骤是让光束射过该镜片并射在象素阵列上面,并为每一象素赋以代表该象素上光束强度的数据值。该方法进一步包括的步骤是,按照预定的程序对这些数据值进行处理,以确定该镜片是否包含许多预定状态中的任何一种。
例如,此方法可以用来检验沿镜片外缘的凹口(gaps)或其上的多余碎片毛刺(extrapieces)。为了做到这一点,可以让此外边缘的图象形成在该象素阵列上,然后为该外缘寻找任何凹口或多余碎片毛刺。假如任何这种凹口或多余碎片毛刺被找到,则处在此凹口和多余碎片毛刺位置上的象素可被赋以高数据值,而且邻近此凹口和多余碎片毛刺位置的辅助象素也可赋以高数据值,以突出此凹口和多余碎片毛刺。而且该镜片外缘本身上面的象素可被赋以低数据值,而只让凹口和多余碎片毛刺位置上或其附近的象素具有高数据值。然后可对具有高数据值的每组邻接象素的面积进行计算并同预定的标准进行比较,以确定该象素组是否表示提出该镜片对于用户使用不适合的不规则性。
本发明的其它长处和优点,从参照给定及表示本发明最佳实施例的附图而考虑以下给出的详细描述中,将变得非常明白。


图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至40C用图说明图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来说,位移平台92的框架102被底座100来支撑,以便如图4所示在其上作向右及向左的横向移动;框架104被框架102支撑,以便如图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中编号为144的镜片检查位置射向或射到成象子系统16上。
最好将光源30安装在可调整的支撑机构136上,以使由此光源发出的光的具体方向能被调整;而且反射镜34被安装在另一个可调整的支撑机构140上,以使由该反射镜反射的光的具体方向和位置能被调整。更具体地说,对于图8表示的照明子系统14的最佳实施例,支撑机构136包括固定在外壳26上并可绕两个互相正交的水平轴线转动的倾斜平台。此外,对该子系统14的实施例来说,反射镜34的支撑机构140包括有倾斜平台140a和移动平台140b,而且反射镜34安装在前一平台上,而前一平台又安装在后一平台上。平台140b如在图8中看到的那样,可向左及向右作横向运动,以使反射镜34的横向位置可被调整;而且平台140a能绕两个互相正交的水平轴线旋转,又使反射镜34的具体角度能被调整。
成象子系统16接收透过处于镜片检查位置144上的眼镜片的光脉冲,并且产生出一系列代表光透过这些眼镜片的被选定位置的信号。更确切地说,象素阵列46被配置在摄象机的外壳44内部,直接处在快门50之后,而且此象素阵列最好包括一大批光敏传感器,其中每个传感器都能产生一个对应的电流,其所具有的幅度正比或者代表入射在该传感器上光的强度。
图9为一小部分象素阵列46的放大图,并且具体表示出该象素阵列大量的单独一些光传感器。参照该图,这些光传感器或者阵列,最好按照给定行列数的均匀格栅排列,例如该格栅可以包括将一百万个象素按照一千行和一千列进行排列。在此格栅中的象素,最好构成大量均匀隔开了的行和均匀隔开了的列;而且除了沿此阵列最边缘的那些象素之外,每一个象素都有八个最接近的邻居。例如象素146a具有的八个邻居是直接位于上方的象素146b,直接位于下方的象素146c,分别直接位于左方和右方的象素146d和146e,以及分别位于右上方、左上方、右下方和左下方的象素146f,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聚焦,但代之以透过此光阑并入射在该象素阵列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英寸直径的小塑料圆片,并且包括一个粘性的背面,以将其固定到位。适合的光阑是市场上可以买得到的,并且在印刷电路板手工敷设布线图中是被用作焊盘(solderpad)掩模,很多尺寸的这种焊盘掩模都可用作光阑。光阑40的最佳尺寸可以根据系统10的其它参数而变化,而且最好对选定的光阑规格加以精选,以便在对比度、易于对准和对于振动的敏感性之间提供最好的折衷。
用在子系统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屏幕大于上述高分辨率Videk摄象机的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上,并由其将该光聚焦在象素阵列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中每一象素的每个电流信号转换成一个相应的数字数据值Ⅰ0,并将此数据值存储在具有地址与产生此电信号的象素的地址相关的存储单元。这些数据值对于处理机64是适合的,并可经过总线186传输给它。如在下面详细讨论的那样,最好能够产生出许多组附加的数据值Ⅰ1……Ⅰn,每一组数据具有一个相应的与象素阵列46上每一象素相关的数据值,而且予处理机62可以包括许多存储件(section)或存储板(board),其中每一个用来存储一组相应的这些数据值。
处理机64经过总线186与予处理机62相连,以便由此予处理机得到数据值及把数据值传输给该予处理机。如在下面更加详细说明的那样,处理机64是可编程的,以对存储在予处理机中的数据值进行处理及分析,以便由系统10识别出每个被检查镜片的至少一种状态或者参数,例如指出每个镜片对用户使用是否合格。
存储磁盘70是和处理机64相连的,以便接收数据值并在永久或者半永久的基础上将其存储。例如存储磁盘70可以具备为处理机64所使用的各种查询表,而且该存储磁盘可被用来存储与镜片检查过程有关或在该过程中得到的数据。举例来说,存储磁盘70可被用来始终监视在给定的工作日或时间周期内被检查镜片的总数,并且始终监视在任何给定的样品或者一组镜中片中发现的任何缺陷的总数量、类型和大小。
键盘66是和处理机64相连的,以供操作者向其输入,而且键盘的终端74是用来目视显示被输入给处理机的数据或者信息的。监视器72是和予处理机62相连的,而且被提供来从存储在予处理机中的数据值中产生出视频图象。例如可将数据值Ⅰ0传输给监视器72,以在其上产生出象素阵列46上实际的图象的象。其余的一些组数据值Ⅰ1……Ⅰn可被传输给监视器72,以产生出此实际图象的精确象或处理过的象。打印机76经过串联-并联变换器190与处理器64相连,以便提供由处理机64传输给该打印机的选定数据值的直观的永久性记录。如本领域普通技术人员将会理解的那样,子系统20可以配备其它的或者附加的输入和输出装置,以便让操作者或者分析人员能够和处理机64、予处理机62以及存储器70相互配合。
子系统20中的各个组成部分,都是普通的并且为本领域普通技术人员所公知的。处理机64最好是高速度数字计算机,而且监视器72是高分辨率彩色监视器。此外,例如予处理机62可以是Datacube信号处理板,处理机64可以是太阳牌3/140工作站。
如上面讨论过的那样,每次有一个眼镜片直接在摄象机36下方通过,光透过该眼镜片并被聚焦在象素阵列46上,而且象素阵列46上的每一个象素都产生一个对应的输出电流,其所具有的幅度代表入射在此象素上的光的强度。对于每一象素的这种输出电流,被转换为以数字表示的数据值,按地址储存在予处理机中与该象素相关的存储器中。这些被称之为Ⅰ0值的数字数据值如下所述进行处理,以确定在摄象机36下方通过的镜片是否包含被选定的一或多组细节,特别是确定该镜片是否包含任何被认为是伤痕或缺陷而使该镜片对用户使用不适合的任何细节。
图14表示优选的图象处理程序的主要组成部分,以识别图2及3中表示的那种类型镜片84中的任何缺陷。在象素阵列上获得该镜片的象之后,在被称之为偏心的程序中检验该图象,以确定是否该镜片环形带84C的内侧和外侧的圆周边缘是彼此严格同心的,而且这种偏心检查包括让第一和第二个圆贴合(fit)到象素阵列上面产生的环形带的内侧和外侧边缘上。在此之后便可发现或获得该环形带的实际边缘。于是第一个掩模程序被用来减小或者消除与镜片检查杯外围折射或者反射的光有关的数据,而且任何边缘缺陷可由被称之为橡皮带算法的程序予以突出。接下去,任何缺陷可由被称之为填充和清除的程序以及第二个掩模程序进一步予以突出,以便消除与靠近环形带图象中心的某些象素有关的数据。
在任何可能性的缺陷被强调或予以突出之后,要进行搜索以确定事实上是否存在任何缺陷。尤其要对象素阵列46上的象素,或者更确切地说是对与该象素相关的数据值进行搜索,以便识别出可作为缺陷的这些象素的线段或扫描路程,而且这些扫描路程随后被集结以识别有缺陷的选择物。于是这些有缺陷选择物的规格和位置便被分析出来,以确定它们是否为使镜片对于用户使用不合格的实际缺陷。
如上面指出的那样,检验偏心被用来确定在摄象机下方通过的镜片上环形带84C的内侧和外侧的圆周边缘是否同心。一般说来,参见图15,这样做是靠横过象素阵列46进行大量扫描202,或者更确切地说,是靠对予处理机的存储器中与象素阵列46上选定线段内象素的地址对应的地址上的数据进行研究,以确定环形带150的外侧边缘150a是否与其内侧边缘150b同心。
图16A及16B说明偏心检验或者程序R1。在此程序中的第一步204称之为确定阈值的子程序,而且该程序的目的是让每一个象素与一个新的强度值I1相关联,此值Ⅰ1不是等于最大照明值Tmax就是等于最小照明值Tmin,取决于该象素的起始照明值Ⅰ0相应地是在给定的阈值Tt之上还是在其以下。因此,例如每一象素具有的起始照明值Ⅰ0大于127,于是可配备以新的照明值Ⅰ1为255;每一象素具有的起始照明值Ⅰ0为127或者更小,于是可配备以新的照明值Ⅰ1为零。
在偏心检验中的下一步206,是设定在该检验中采用的扫描202的次数、位置及规格,而且这样做是靠给处理机64提供每次扫描的起始象素的地址、扫描宽度及方向。对这些参数进行挑选,是使除非镜片为严重偏心之外,大量扫描中的每次扫描都穿过该环形带150的两条边缘。最好让处理机64或者存储磁盘70配备以对此扫描开始地址、方向和宽度的半永久性记录。在检查给定的额定型号或规格的每个镜片时,这种记录均可使用,而且当检查不同的额定型号或规格的镜片时,这种半永久性记录可以改变。
接下去在步骤210,选定的扫描穿过象素阵列或显示器46进行。除非镜片为严重偏心的之外,这些扫描中的大多数将穿过该显示器的被照明部分。当扫描横过该显示器被照明部分时,横过该照明部分的线段中第一个和最后一个象素的地址以及被称之为扫描路程的该线段的长度,被记录在文件f1中。用于检测扫描路程上的第一个及最后一个象素,以便得到这些象素的地址,并且确定每一扫描路程的长度的子程序,对于本领域的普通技术人员是公知的,而且任何这样的适合程序均可应用在此偏心检查中。
然后在步骤212,将这些扫描路程中的每个的长度与预定值进行比较,而且与小于该预定值的每个扫描路程相关的数据,即该扫描路程中的第一个以及最后一个象素的地址和该扫描路程的长度,被丢掉。这种废弃之所以要做,是为了消除或者至少能够减少由于象素阵列46上的噪声(即不希望入射在该象素阵列的光)产生的数据值。详细说来,噪声可以是由于背景光或由于灰尘或其它颗粒使所需光路偏向而产生的光,可以在象素阵列上面产生出照明区。在绝大多数情况下,这些被照明区中的每一个仅只包括一组或少量几组相邻的象素。如果在步骤210时所做上述扫描之一穿过此被照明区,那么处理机就会记录到穿过该照明区的扫描路程的第一个和最后一个象素的地址以及该扫描路程的长度。然而此照明区及其相关数据与环形带150及其边缘无关,因而提供步骤212是为了清除该数据。
在此偏心检验中的下一个步骤214,是识别存在该环形带外部及内部边缘上的每一个保留象素的地址,而且可以利用任何适合的子程序来做这一步。例如可以将每一扫描路程的第一个象素和最后一个象素的地址相互进行比较,并可把较靠近整个象素阵列46中心的象素看作处在环形带150的内侧边缘上,而远离该中心的象素看作处在其外侧边缘上。换一种方法,可以将扫描分成两组,使得对于第一组中的每次扫描来说,如果在扫描过程中发现被照明的扫描路程,那么该扫描路程中的第一个和最后一个象素便分别处在该环形带的外侧边缘和内侧边缘上;而且对于第二组中的每次扫描来说,如果在扫描过程中发现被照明的扫描路程,那么该扫描路程中的第一个和最后一个象素便分别处在该环形带的内侧边缘和外侧边缘上。
在每一个象素被确定为是在环形带150的内侧边缘上或外侧边缘上之后,于是在步骤216中要对每个边缘上找到的象素的数目进行计数。如果这些数目中的任何一个小于3,那么在步骤220中,该镜片在被认为是严重偏心的基础上被报废。然而,如果在每一边缘上至少找到三个象素,那么在步骤222子程序被调用,即首先让第一个圆贴合在该环形带外侧边缘上找到的象素上面;其次让第二个圆贴合在该环形带内侧边缘上找到的象素上面;第三是确定这两个圆的中心和半径。用于将一个圆贴合到三个或者更多点上并计算出该圆的中心和半径的很多子程序是公知的,而且任何这样的子程序均可应用在步骤222的偏心检验中。
在此两个被贴合的圆的中心被计算出来之后,这两个中心之间的距离d便在步骤224中确定。此距离随后在步骤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中暗区内的象素,具有较低的强度值I0或者为零;处在图17B中亮区内的象素,具有较高的强度值I1如Tmax。
参照图18以及图17C和17D,在边缘检查器处理的第一步242,对于每一个象素计算出一个新的I2值,尤其是作为每一象素的I2值,被设定为等于该象素及其直接相邻的八个邻近象素的I1值的平均值。对于象素阵列46中的每一象素的I1值和I2之间的差异在于,后面的值在具有最低的I2值的象素(通常为象素阵列暗区内的那些象素)和具有最高的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值,被设定为等于该象素的Ⅰ4值和Ⅰ6值中的较小的。参见图17Ⅰ,象素阵列上面的大多数象素具有的I7值为零,然而直接在环形带150的两边缘之下和直接与其邻近的象素,具有正的I7值。按照这种方式,象素的I7值便能识别出位于环形带边缘上的象素。
然后在步骤256可以调用确定阈值的子程序,以便突出显示器46中处在环形带150边缘上的象素与其它象素间的差异。特别是可以赋于每一象素再另一个值I8,根据该象素的I7值相应地是高于或低于给定的阈值如Tt,而使其不是等于最大的照明强度值Tmax就是等于最小的照明强度值Tmin。因此例如每一象素具有的I7值大于32,那么可以提供为255的I8值;每一象素具有的I7值为32或者更小,那么可以提供为零的I8值。
图17J表示以强度等于其I8值照明的象素阵列46上的每一象素。
在计算和处理I1~I8值的过程中,最好将每一组象素的值储存在予处理机62中的一个相应的存储寄存器中,例如I0值全都储存在第一个寄存器中,I1值全都储存在第二个寄存器中,I2值全都储存在第三个寄存器中。在为每一镜片进行的整个处理周期内,并不需要储存所有的值I1~I8,然而举例来说,在每一处理周期内,I3的值可以在I4的值被计算出来之后丢掉,I5的值可以在I6的值被确定之后丢掉。
此外,并不需要对象素阵列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上叠合一个被定心在上述中心的坐标上且其直径稍大于被贴合在环形带150外边缘上的圆的直径的圆形掩模270。此掩模程序随后根据各象素是位于该掩模内侧还是外侧,赋于每个象素以I9值。特别是对于该掩模外侧的每个象素,该掩模程序赋于该象素的I9值为零;对于该掩模内侧的每个象素,该掩模程序赋于该象素的I9值等于该象素的I8值。
更准确地说,在步骤266,上述中心点的坐标(x0,y0),以及被选择为略大于被贴合在环形带150外侧边缘上的圆的半径的半径值r1,被传输给掩模子程序。然后由此掩模子程序形成距中心点(x0,y0)为r1范围内的象素阵列46上的所有象素地址的条件f2。然后在步骤272对象素阵列46中每一象素的地址进行检查,以确定其是否在该文件中。如果象素的地址在该文件中,那么在步骤274,该象素的I9值被设定等于其I8值;然而,如果象素的地址不在该文件中,那么在步骤276,该象素的I9值被设定等于零。
为数众多的专用掩模子程序在技术上是众知的,并可应用在程序R3的步骤266中。
图19C表示以强度等于其相应的I9值照明的象素阵列46上的象素。
在图20中表示的掩模的程序完成之后,由处理机64起动另一个被称之为橡皮带算法的处理程序。一般说来,这种算法包括对于环形带边缘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说明一个适于将第一个象素p(x,y)定位在环形带150外缘150a上的子程序S1。在步骤300,(x0,y0)被设定为等于偏心检查中被贴合在环形带外边缘上的圆的圆心的坐标;而且在步骤302,r0被设定为等于此外部被贴合圆的半径。然后如步骤304所示,从象素阵列左边缘的中心或其附近开始,穿过该象素阵列46进行大量水平扫描。更确切地说,由处理机64对予处理机的存储器中与象素阵列上选定的水平线段中象素的地址对应的地址上的数据值I9进行分析研究。在每一个这样的扫描中,由处理机64对于给定的水平行象素中每一象素的I9值进行检查,并且识别出该行中具有I9值高于给定值的第一个象素;而且最好进行许多个这种扫描,由此而产生出许多个被识别出来的象素。
通常所有这些被识别出来的象素将处在环形带150的外缘150a上面。然而由于镜片检查过程中的背景噪声或者杂散光入射在象素上,该象素有可能处在象素阵列上某处,而且处在可能具有高I9值的边缘的左方;象这样的象素,有可能被识别为上述扫描中被照明的象素。为了避免将这样的象素识别为边缘象素,在步骤306由子程序S1进行识别并丢掉任何这种象素的地址。更确切地说,首先,由此子程序确定在这些扫描中被识别出来的每一个象素和镜片偏心检查中被贴合在镜片象外缘上的外圆中心(x0,y0)之间的距离;其次,将每一个被确定的距离与已被设定为等于被贴合外圆半径的r0进行比较。假如特定的象素和该贴合圆中心间的距离超过r0的数大于给定的距离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)时,则处理机可以作出结论大的多余碎片毛刺已被发现。
假如找到了凹口或者多余碎片毛刺,那么子程序S2或S3将分别在步骤316和322被调用,此两子程序将在下面详细讨论。如果既没有发现凹口又没有发现多余碎片毛刺,那么程序R4便转到步骤324。
在步骤324,由此程序进行检查以确定围绕环形带150边缘的第一次扫描是否完成,而且任何适合的专用方法或子程序都可用来做此工作。例如,如上所述,当围绕镜片边缘的象进行跟踪时,文件f3由在此边缘上找到的象素的地址构成。在步骤324可以对此文件进行检查,以确定正被考虑的现行边缘象素地址是否已在此文件中。假如此象素地址已在此文件中,则围绕该镜片边缘象的第一次扫描认为完成;然而如果现行象素地址未在文件f3中,则此第一次扫描被认为没有完成。假如此第一次扫描完成了,于是此橡皮带算法便转到程序R5;但是,如果此围绕镜片的第一次扫描未能完成,则此算法转到步骤326,而且此正被考虑的现行边缘象素的地址要加到文件f3上。于是在步骤330,下一个象素在镜片边缘上被找到,而且p(x,y)被设定为等于此下一个象素的地址,然后该程序R4返回到步骤312。
图24框出子程序S2,每次在环形带150的外缘上找到凹口时被调用。此子程序中的第一步332是,对于凹口开始和终止处象素的地址及此两端象素之间的距离进行识别并记录在文件f4中。在图25A中,这两个象素分别以P1和P2表示。一旦发现凹口-即对于镜片边缘给定个数的连续象素中的每一个来说,r小于r0以大于dg-镜片边缘上在给定个数的连续象素之前的最后一个象素,可被看作该凹口开始处的象素。
并且,一旦发现凹口,则通过沿着偏心检查中被贴合在镜片外缘上的圆上的象素穿过该凹口进行搜索,以及对于给定个数的象素由此被贴合的圆开始作沿径向向内和向外的搜索,直至找到镜片边缘为止-即直到被照明的象素(或者更确切地说是具有高I9值的象素)被找到为止,就能找到此凹口的端部。在镜片的边缘被找到之后,一旦一系列连续的象素被发现全都在此被贴合圆一定距离之内,特别是当对该系列中的每个象素为r0-r小于dg时,此凹口可被认为终于到达端部。镜片边缘上一系列连续象素之前的最后一个象素,可被认为是在该凹口端部的象素。
在此子程序S2的340步,位于象素P1和P2之间直线即图25B中线段L1上的象素的I9值,被设定等于最大照明强度值,然后该子程序返回到程序R4。
图26表示当在环形带150边缘上面发现多余碎片毛刺350时说明在程序R4的步骤322被调用的子程序S3的流程图。程序S3中所做的最初几步,实际上是相对多余碎片毛刺绘出各种跨接线。尤其是在步骤352,此子程序在于识别出环形带150边缘上多余碎片毛刺350的开始和终止处表示在图25B中的象素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本身终止,且此橡皮带算法转到程序R5。然而,在围绕此镜片边缘的第一次扫描中假如发现有任何凹口,则此程序R5转入步骤380。在这一步,每次一个地将凹口的宽度与给定的值d6进行比较,而且,如果任意凹口的宽度大于该值d5,则镜片被认为对用户使用不适合,并且在步骤382此镜片被报废。然而,假如所有的凹口宽度均小于d5,则此程序R5终止,且此橡皮带算法转到程序R6,以便进行围绕镜片边缘象的第二次扫描或者跟踪。
程序R6将在图28中进行说明。如前所述,本程序主要是对镜片边缘中浅薄的凹口和镜片边缘上细小的多余碎片进行搜索,而这些浅薄的凹口和细小的多余碎片在围绕镜片边缘的第一次扫描的程序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步利用的象素地址分开列表(list),而且每次将一个象素的地址加到该表中,可对此表进行检查以观察新的地址是否已被加在该表中。假如被增加给该表的地址值已在该表中,则此围绕镜片边缘象的第三次扫描被认为完成。
假如在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的内侧边缘上是否已经发现至少三个象素,或者是否发现此眼镜片是严重偏心的。假如在偏心检查的这两步中任一步发现该镜片是严重偏心的,那么掩模程序R9本身便在步骤450终止。
如果程序R9并不终止在步骤450,该程序便转入步骤452,该步骤是要获得在偏心检查中被贴合在环形带150内侧边缘150b上面的圆的中心的坐标。在偏心检查过程中这些坐标已经被确定并储存在处理机的存储器中,通过简单地从该处理机的存储器中取回就能得到这些坐标。一旦获得该中心的坐标,则掩模子程序在步骤454被调用。现在参见图38A~38C,此子程序实际上是将一个中心在上述中心坐标之上,且其直径略小于被贴合在环形带150内侧边缘150b上的圆的直径的圆形掩模456叠加在象素阵列46上,然后由此掩模子程序为每一象素赋值I12。特别是对此掩模外侧的每一象素来说,此掩模子程序赋给该象素的I12值等于该象素的I8值;对此掩模内侧的每一象素来说,此掩模子程序赋给该象素的I12值为零。
更确切地说,在步骤452,上述中心点的坐标(xi,yi)以及被选择为略小于贴合在环形带150内缘上的圆的半径的半径值r2,被传输给此掩模子程序。随后在步骤454,由此子程序形成象素阵列46中所有处在距中心点(xi,yi)为r2的象素地址的文件f5。然后在步骤460,对象素阵列46中每个象素的地址进行检查,以确定其是否在此文件中。假如该象素的地址在此文件中,那么在步骤462,该象素的I12值被设定为零;然而,假如该象素的地址不在该文件中,那么在步骤464该象素的I12值被设定等于该象素的I8值。
许多专用的掩模子程序对于达到上述目的在本领域中是公知的,而且任何适合的子程序也可以用在程序R9中的步骤454中。
图38C表示象素阵列46上面以其强度等于其相应的I12值照明的象素。
在此第二个掩模程序完成之后,进一步的程序R10是由一系列运算组成的,完成这组运算,是为了提供一组象素照明值,借以清楚地识别出那些在镜片检查中处在任意不规则性或缺陷中的象素。更确切地说,这些进一步运算的目的是为了提供一组象素照明值,该值不受由于背景噪声或光对象素阵列46产生的任何影响,而且也不受由于环形带150的正常的或者规则的边缘150a及150b对象素阵列46的任何影响。这些进一步的运算表示在图39的流程图中。
在步骤466,另外一个I值即I13为每一象素获得,尤其是对于每一象素的I13值,是通过从该象素的I10值中减去该象素的I12值获得的。图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.根据权利要求3的方法,其特征在于识别出三个第一象素和三个第二象素的步骤包括识别出许多象素系列,上述象素中的每一个形成一条线段,以及检查上述每一象素系列的高于及低于给定强度水平照明的象素之间的跃迁变化(transition)。
5.根据权利要求4的方法,其特征在于识别出许多象素系列的步骤,包括对于上述每一象素系列识别出该系列的起始点;识别出该系列的方向,以及识别出该系列的长度。
6.根据权利要求1的方法,其中的镜片带有外缘,其特征在于让光束射过镜片的步骤,包括在象素阵列上面形成该镜片外缘的象,而且对上述数据值进行处理的步骤,包括(Ⅰ)识别出位于该镜片外缘象上面的至少为选定的一些象素;(Ⅱ)识别出该镜片外缘象上面的凹口和多余碎片毛刺;(Ⅲ)对于每一被识别出来的凹口,确定其宽度,并将上述宽度与其预定值进行比较,如果上述宽度大于上述预定值,则该镜片被验明为有缺陷;(Ⅳ)对于该镜片外缘象上面每一被识别出来的多余碎片毛刺,确定其面积,并将上述面积与其预定值进行比较,如果上述面积大于上述预定值,则该镜片被验明为有缺陷。
7.根据权利要求6的方法,其特征在于识别出镜片外缘象上面的凹口和多余碎片毛刺的步骤包括识别出象素阵列上面具有圆周通常与该镜片外缘象同等大小的第一个圆的中心点和半径;对于每个上述选定的一些象素,确定上述象素和上述圆周之间的距离;对于镜片象外缘上面给定数目的连续象素中的每一个,如果该象素沿径向位于上述圆周内侧,且其与上述圆周之间的距离大于给定的距离,则该镜片被验明为带有凹口的,以及对于镜片象外缘上给定数目的连续象素中的每一个,如果该象素沿径向位于上述圆周外侧,且其与上述圆周之间的距离大于选定的距离,则该镜片被验明为带有多余碎片毛刺的镜片。
8.根据权利要求7的方法,其特征在于确定凹口宽度的步骤包括,一旦凹口被识别出来,对于镜片象外缘上象素之一,通过沿上述第一个圆的圆周穿过此凹口进行搜索,以及由该圆周沿径向向内及向外搜索,寻找此凹口的端部。
9.根据权利要求1的方法,其中的镜片带有外缘,其特征在于让光束射过镜片的步骤,包括在象素阵列上面形成该镜片外缘的象,而且对上述数据值进行处理的步骤包括(Ⅰ)识别出位于该镜片外缘象上面的至少为选定的一些象素;(Ⅱ)识别出该镜片外缘象上面的凹口;(Ⅲ)通过赋予凹口中或靠近凹口的选定象素以高的数据值,使每个被识别出来的凹口突出。
10.根据权利要求9的方法,其特征在于使凹口突出的步骤包括对于每一被识别出来的凹口识别出作为该凹口开端的第一个象素;识别出作为该凹口终端的第二个象素,以及赋予上述第一及第二个象素之间线段上的象素以高的数据值。
11.根据权利要求10的方法,其特征在于使凹口突出的步骤进一步包括,还要赋予镜片边缘象上处在该凹口中的象素以高的数据值。
12.根据权利要求1的方法,其中的镜片通常带有圆周形的外缘,其特征在于让光束射过镜片的步骤,包括在象素阵列上面形成该镜片外缘的象,而且对上述数据值进行处理的步骤包括(Ⅰ)识别出象素阵列上面具有圆周通常与该镜片外缘象同等大小的圆的中心点;(Ⅱ)识别出位于该镜片外缘象上面至少为选定的一些象素;(Ⅲ)对于被选定的一些象素中的每一个,①识别出镜片象外缘上距上述被选定象素之一为给定距离的另一象素;②识别出经过上述被选定象素之一和上述另一象素伸展的第一向量;③识别出经过上述被选定象素之一和上述中心点伸展的第二向量;④计算出上述第一向量和第二向量的标量积,并将此标量积同预定值比较,如果此标量积大于上述预定值,则验明该镜片为有缺陷的镜片。
13.根据权利要求1的方法,其中的镜片带有外缘,其特征在于让光束射过镜片的步骤,包括在象素阵列上面形成该镜片外缘的象,而且对上述数据值进行处理的步骤包括(Ⅰ)识别出位于该镜片外缘象上面的至少为选定的一些象素;(Ⅱ)识别出该镜片象外缘上面的多余碎片毛刺,以及(Ⅲ)通过赋予靠近多余碎片毛刺的选定象素以高的数据值,使每个被识别出来的多余碎片毛刺突出。
14.根据权利要求13的方法,其特征在于使多余碎片毛刺突出的步骤包括对每个被识别出来的多余碎片毛刺识别出作为该多余碎片毛刺开端的第一个象素;识别出作为该多余碎片毛刺终端的第二个象素,并且赋予上述第一及第二个象素之间线段上的象素以高的数据值。
15.根据权利要求14的方法,其特征在于使多余碎片毛刺突出的步骤进一步包括赋予该多余碎片毛刺上的象素以高的数据值。
16.根据权利要求13的方法,其特征在于使多余碎片毛刺突出的步骤包括对每个被识别出来的多余碎片毛刺识别出该多余碎片毛刺前侧的第一个象素;识别出该镜片象边缘上面该多余碎片毛刺前方距上述第一象素为给定距离的第二个象素;识别出该多余碎片毛刺后侧的第三个象素;识别出该镜片象边缘上面此多余碎片毛刺后方距上述第三象素为选定距离的第四个象素;赋予上述第一及第二个象素之间的第一个线段上的象素以高的数据值,以及赋予上述第三及第四个象素之间的第二个线段上的象素以高的数据值。
17.根据权利要求16的方法,其特征在于多余碎片毛刺、镜片象的外缘以及第一个线段,限定了包含第一组象素的第一个区域;多余碎片毛刺、镜片象的外缘以及第二个线段,限定了包含第二组象素的第二个区域,而且,使多余碎片毛刺突出的步骤,进一步包括赋予第一及第二组象素以高的数据值。
18.根据权利要求1的方法,其特征在于对上述数据值进行处理的步骤包括识别出象素阵列上面被选定为具有高数据值的象素区域;以及通过赋予靠近上述被选定区域的象素以高数据值,使上述被选定区域突出。
19.根据权利要求18的方法,其中的镜片带有外缘,其特征在于让光束射过镜片的步骤,包括在象素阵列上面形成表示镜片外缘的镜片象,而且对上述数据进行处理的步骤,进一步包括(Ⅰ)识别出镜片象外缘上的象素,以及(Ⅱ)赋予该镜片象外缘上的象素以低的数据值。
20.根据权利要求19的方法,其特征在于对上述数据值进行处理的步骤,进一步包括寻找具有高数据值的连续的象素组。
21.一种自动检查眼镜片的系统,其特征在于包括一个象素阵列;用于将光束射过镜片并射在该象素阵列上的装置;用来赋予每一象素一个代表该象素上光束强度的数据值的装置,以及处理装置,按照预定的程序对上述数据值进行处理,以确定该镜片是否包含许多预定状态中的任何一种。
22.根据权利要求21的系统,其中的眼镜片包括第一和第二个圆盘,圆盘中的每一个都具有通常为圆周形的外缘,其特征在于用于将光束射过镜片的装置,包括在象素阵列上面形成第一及第二个圆盘的外缘象的装置,以及对上述数据值进行处理的装置包括(Ⅰ)用于识别象素阵列上面具有圆周通常与第一圆盘外缘的象同样大小的第一个圆的中心点的装置;(Ⅱ)用于识别象素阵列上面具有圆周通常与第二圆盘外缘的象同样大小的第二个圆的中心点的装置;(Ⅲ)用于确定第一个圆和第二个圆的中心点之间距离的装置,和(Ⅳ)用于识别镜片圆盘的装置,假如上述距离大于预定值,则该装置验明这些圆盘为偏心的。
23.根据权利要求21的系统,其中的镜片带有外缘,其特征在于用于将光束射过镜片的装置,包括在象素阵列上面形成镜片外缘象的装置,以及对上述数据值进行处理的装置包括(Ⅰ)用于识别镜片外缘象上面凹口和多余碎片毛刺的装置;(Ⅱ)用于确定每个被识别出来的凹口宽度的装置,如果上述宽度大于预定值,则该装置验明该镜片为有缺陷的镜片,以及(Ⅲ)用于确定每个被识别出来的多余碎片毛刺尺寸的装置,如果上述尺寸大于预选定值,则该装置验明该镜片为有缺陷的镜片。
24.根据权利要求23的系统,其特征在于处理装置包括一种突出强调装置,通过赋予靠近该凹口和多余碎片毛刺的象素以高的数据值,使每个凹口和多余碎片毛刺突出强调出来。
25.根据权利要求21的系统,其中的镜片带有通常为圆周形的外缘,其特征在于用于将光束射过镜片的装置,包括在象素阵列上面形成该镜片外缘象的装置;和对上述数据值进行处理的装置包括(Ⅰ)用于识别象素阵列上面具有圆周通常与该镜片外缘象同样大小的圆的中心点的装置;(Ⅱ)用于识别位于该镜片外缘象上面至少为选定的一些象素的装置;(Ⅲ)识别装置,对于被选定象素中的每一个,识别出镜片象外缘上面距上述被选定象素之一为给定距离的另一象素;识别出经过上述被选定象素之一和上述另一象素伸展的第一向量,并且识别出经过上述被选定象素之一和上述中心点伸展的第二向量,以及(Ⅳ)识别装置,假如上述第一及第二向量的标量积大于预定值,则由该装置验明此镜片为有缺陷的镜片。
26.根据权利要求21的系统,其特征在于对上述数据值进行处理的装置包括用以识别出象素阵列上面被选定为具有高数据值的象素区域的装置,以及通过赋予靠近上述被选定区域的象素以高数据值,使上述被选定区域突出的装置。
27.根据权利要求26的系统,其中的镜片带有外缘,其特征在于用于将光束射过镜片的装置,包括在象素阵列上面形成该镜片外缘象的装置,而且对上述数据值进行处理的装置进一步包括(Ⅰ)识别出镜片象外缘上面象素的装置,以及(Ⅱ)赋予该镜片象外缘上面的象素以低数据值的装置。
28.根据权利要求27的系统,其特征在于对上述数据值进行处理的装置进一步包括找出具有高数据值的连续象素组的装置。
全文摘要
一种用于自动检验眼镜片的方法和系统。该方法包括的步骤为让光束射过该镜片并射在象素阵列上面,并列赋予每一象素以代表该象素上面光束强度的数据值,随后按照预定的程序对该数据值进行处理,以确定该镜片是否包含一组预定状态中的任何一种。
文档编号G01M11/02GK1088688SQ9311296
公开日1994年6月29日 申请日期1993年12月21日 优先权日1992年12月21日
发明者J·韦尔德, D·德赖法斯 申请人:庄臣及庄臣视力产品有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1