-
HINTERGRUND
DER ERFINDUNG
-
Diese
Anmeldung steht mit den folgenden, gleichzeitig mit der vorliegenden
Anmeldung hinterlegten europäischen
Patentanmeldungen in Beziehung: EP-A-0604174; EP-A-0605171; EP-A-0607692;
und EP-A-0604173.
-
Die
Erfindung betrifft allgemein Systeme zur Inspektion ophthalmischer
Linsen, wie z.B. Kontaktlinsen, und spezieller, Systeme zur Linseninspektion von
dem Typ, bei dem ein Beleuchtungsstrahl durch die Linse gerichtet
wird, um von dieser ein Bild zu erzeugen.
-
Kontaktlinsen
werden typischerweise mit einem hohen Maß an Präzision und Genauigkeit hergestellt.
Gleichwohl kann in seltenen Fällen
eine bestimmte Linse eine Unregelmäßigkeit aufweisen; und aus
diesem Grund werden Kontaktlinsen vor dem Verkauf an den Kunden
inspiziert, um so sicherzugehen, daß die Linsen für die Verwendung
durch den Kunden annehmbar sind.
-
Bei
einem Typ eines Systems zur Linseninspektion des Standes der Technik
wird ein Beleuchtungsstrahl durch eine Linse transmittiert und daraufhin
auf einen Schirm fokussiert, um darauf ein Bild der Linse zu erzeugen,
wobei eine Bedienungsperson das Bild betrachtet, um so festzustellen,
ob die Linse irgendwelche Unregelmäßigkeiten aufweist. Wenn irgendeine
Unregelmäßigkeit
oder ein Fehler gefunden wird, wodurch die Linse zur Verwendung durch
den Kunden ungeeignet wird, so wird die Linse entweder aus dem Inspektionssystem
entfernt oder auf eine andere Weise identifiziert, so daß sie daraufhin
nicht an einen Kunden verkauft wird.
-
Dieses
Inspektionssystem des Standes der Technik ist sehr effektiv und verläßlich. Gleichwohl
ist das System vermutlich verbesserungsfähig. Zum Beispiel hängt die
Genauigkeit des Systems teilweise vom Kontrast zwischen dem von
der Linse auf dem Schirm erzeugten Bild und dem Rest des Schirmes ab;
und die Verbesserung des Kontrastes verbessert selbstverständlich die
Genauigkeit des Systems. Zusätzlich
ist es bei dem Linseninspektionsystem dieses Typs wichtig, daß der Beleuchtungsstrahl
kollimiert wird, wenn er durch die zu inspizierende Linse tritt,
wobei eine Verbesserung der Fähigkeit
des Systems, einen stark kollimierten Lichtstrahl zu erzeugen und
diesen durch die zu inspizierende Linse zu transmittieren ebenfalls
die Genauigkeit des Systems verbessert.
-
In
der EP-A-0491663 ist ein Prozeß (ebenso ein
Gerät)
zum Überprüfen transparenter,
optischer Komponenten offenbart. Der Prozeß umfaßt das Ausbilden einer Abbildung
der Komponente mittels der Dunkelfeldbeleuchtung; Aufzeichnen der
Abbildung der Komponente zu einem einzigen Zeitpunkt; Bestimmen
der Flächen
von Fehlern, welche in dem Bild sichtbar geworden sind; und Vergleichen
der Flächen
von Fehlern mit einem oder mehreren Schwellenwerten.
-
In
der US-A-3 904 294 ist ein Verfahren (und ein Gerät) zum Testen
der Annehmbarkeit fotografischer Objektivlinsen offenbart, welches
den Schritt umfaßt,
die optische Funktionsfähigkeit
der Linse an einigen repräsentativen
Stellen der Brennebene auszuwerten. Das Gerät umfaßt Merkmale, welche die Signalverarbeitung
vereinfachen, die erforderlich ist, um zu bestimmen, ob eine spezifische
Objektivlinse annehmbar ist oder nicht. Das Gerät umfaßt ebenfalls eine Bildplatte
bei der Brennebene der im Test befindlichen Linse, was das Durchtreten
von Licht zu einem Fotomultiplier einschränkt. Die Bildplatte umfaßt eine
Vielzahl von Schlitzen, welche dem Fotomultiplier Licht zuführen und
welche das Bild eines auf der Bildplatte durch die Testlinse gebildeten
Zielfeldes abtasten. Aufgrund dieses Abtastens mittels der Schlitze,
ist die schnelle Veränderung
der Menge an Licht, welches den Fotomultiplier erreicht, ein Anzeichen
der Linsenkontrast-Transfereffizienz, welche, zusammen mit anderen
Informationen, die Basis für
die Annahme oder die Verwertung der Testlinse ist.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Gemäß der vorliegenden
Erfindung wird ein Linseninspektionssystem zur Verfügung gestellt,
wie es im nachstehenden Anspruch 1 dargelegt ist.
-
Eine
Aufgabe dieser Erfindung besteht darin, die Systeme zum Inspizieren
ophthalmischer Linsen zu verbessern.
-
Eine
andere Aufgabe dieser Erfindung besteht darin, die Beleuchtungs-
und Abbildungs-Teilsysteme in einem Linseninspektionssystem des
Typs zu verbessern, bei dem ein Beleuchtungsstrahl durch eine Linse
gerichtet wird, um eine Abbildung derselben zu erzeugen.
-
Eine
weitere Aufgabe dieser Erfindung besteht darin, einen stark kollimierten,
engen Lichtstrahl durch eine Linse zu transmittieren und daraufhin
ausgewählte
Abschnitte dieses Lichtstrahls auf einer relativ kleinen ebenen
Fläche
zu fokussieren, um darauf ein Bild mit hohem Kontrast der ausgewählten Abschnitte
der Linse zu erzeugen.
-
Eine
andere Aufgabe der vorliegenden Erfindung besteht darin, ein Beleuchtungs-
und Abbildungs-Teilsystem zur Verfügung zu stellen, welche zur
Verwendung in einem automatisierten Hochgeschwindigkeits-Linseninspektionssystem
gut geeignet sind.
-
Diese
und andere Aufgaben werden durch ein Linseninspektionssystem gemäß Anspruch
1 gelöst.
-
Bevorzugt
umfassen die Signalerzeugungsmittel ein Gehäuse, wobei eine Pixelanordnung
in dem Gehäuse
angeordnet ist, um den Satz von Signalen zu erzeugen. Vorzugsweise
umfaßt
dieses Gehäuse
einen Verschluß mit
einer geschlossenen Position und einer offenen Position, um die
Pixelanordnung selektiv den Lichtimpulsen, welche auf die ophthermische
Linse gerichtet werden, auszusetzen. Ebenfalls weisen die Mittel
zum Richten der Lichtimpulse durch die Linsenhaltemittel vorzugsweise
ein Gehäuse
auf, und wenigstens einen ersten Spiegel zum Empfangen der Lichtimpulse
von den Beleuchtungsmitteln und zum Richten der Lichtimpulse auf einen
gegebenen Pfad durch die Linsenhaltemittel sowie in die Signalerzeugungsmittel.
-
Weitere
Vorzüge
und Vorteile der Erfindung werden durch die Betrachtung der folgenden,
detaillierten Beschreibung offensichtlich, welche mit Bezug auf
die begleitenden Zeichnungen erfolgt, die bevorzugte Ausführungsformen
der Erfindung darlegen und zeigen.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 veranschaulicht schematisch
ein System zur automatischen Inspektion ophthalmischer Linsen.
-
2 ist eine Draufsicht auf
einen Typ einer oph-thalmischen Linse, die mittels des Systems nach 1 inspiziert werden kann.
-
3 ist eine Seitenansicht
der in 2 gezeigten Linse.
-
3A ist eine vergrößerte Ansicht
eines Randabschnittes der in den 2 und 3 gezeigten Linse.
-
4 ist eine detailliertere
Ansicht des Transport-Teilsystems, welches bei dem System zur Linseninspektion
nach 1 verwendet wird.
-
5 ist eine Draufsicht auf
einen Linsenträger,
der bei dem System nach 1 verwendet
wird.
-
6 ist eine Seitenansicht
des in 1 gezeigten Linsenträgers.
-
7 ist ein schematisches
Diagramm, welches die Grundlagen einer Beleuchtungstechnik, auf welche
als Dunkelfeldbeleuchtung Bezug genommen wird, allgemein veranschaulicht.
-
8 ist ein detaillierteres
Diagramm der Beleuchtungs- und Abbildungs-Teilsysteme des in 1 gezeigten Systems zur Linseninspektion.
-
9 zeigt einen Abschnitt
einer Pixelanordnung des Abbildungs- Teilsystems.
-
10 zeigt ein Bild, das auf
der Pixelanordnung gebildet wird, wenn eine ophthalmische Linse des
in den 2 und 3 gezeigten Typs in dem System
zur Linseninspektion nach 1 inspiziert
wird.
-
11A, 11B und 11C zeigen
drei verschiedene optische Konfigurationen, die in dem Beleuchtungs-
und Abbildungs-Teilsystem verwendet werden können.
-
12A veranschaulicht den
Betrieb eines Steuerungs-Teilsystems des Systems zur Linseninspektion.
-
12B ist ein Zeitdiagramm,
welches die Abfolge verschiedener Ereignisse bei der Operation des
Transport-, des Beleuchtungs- und des Abbildungs-Teilsystems veranschaulicht.
-
13 veranschaulicht schematisch
das Datenverarbeitungs-Teilsystem des Systems zur Linseninspektion.
-
14 veranschaulicht allgemein
die Hauptkomponenten eines bevorzugten Datenverarbeitungsablaufes,
der bei dem System zur Linseninspektion verwendet wird.
-
15 zeigt ein Bild einer
ophthalmischen Linse, das auf der Pixelanordnung des Systems zur Linseninspektion
gebildet ist.
-
16A und 16B sind Flußdiagramme, die einen Linsensinspektionsablauf
veranschaulichen, auf welchen als Dezentrierungstest Bezug genommen
wird.
-
17A ist ähnlich der 15 und zeigt das Bild einer ophthalmischen
Linse, welches auf der Pixelnanordnung gebildet ist.
-
17B ist eine vergrößerte Ansicht
eines Abschnittes des in 17A gezeigten
Kreisringes.
-
17C ist ein Graph, der die
Intensitäten zeigt,
mit welchen gewisse Pixel auf einem Liniensegment durch 17B beleuchtet werden.
-
17D – 17I veranschaulichen
graphisch die Ergebnisse ver schiedener Prozesse, die anhand der
Beleuchtungsintensitätswerte
der gewissen Pixel durchgeführt
wurden, um verarbeitete Werte für
diese Pixel abzuleiten, was bei der Identifikation der Ränder des
in 17A gezeigten Kreisringes
hilfreich ist.
-
17J zeigt die Pixel der
beleuchteten Pixelanordnung bei ihren verarbeiteten Beleuchtungswerten.
-
18 ist ein Flußdiagramm,
welches einen bevorzugten Ablauf zur Verarbeitung der anfänglichen
Beleuchtungsintensitätswerte
zeigt, die für
die Pixel der Pixelanordnung bestimmt wurden.
-
19A – 19C zeigen
den Effekt eines Maskierungsablaufes bei den Datenwerten für die Pixel der
Pixelanordnung.
-
20 ist ein Flußdiagramm,
welches einen bevorzugten Maskierungsablauf veranschaulicht.
-
21A und 21B veranschaulichen einen weiteren Datenverarbeitungsablauf,
auf welchen als Gummiband-Algorithmus ("Rubber Band Algorithm") Bezug genommen
wird.
-
22 zeigt ein zur Identifikation
eines ersten Pixels auf dem Rand des Linienbildes verwendetes Unterprogramm.
-
23 ist ein Flußdiagramm,
das einen ersten Hauptabschnitt des Gummiband-Algorithmus' mit größerer Genauigkeit
zeigt.
-
24 ist ein Flußdiagramm,
welches ein Unterprogramm zeigt, das aufgerufen wird, wenn eine
Lücke in
dem Außenrand
des Bildes der Linse gefunden wird.
-
25A – 25E zeigen
einen Abschnitt des Außenrandes
des Bildes der Linse und identifizieren verschiedene interessierende
Pixel auf diesem Rand.
-
26 ist ein Flußdiagramm
eines Unterprogrammes, das aufgerufen wird, wenn ein Extrastück auf dem
Außenrand
des Linsenbildes gefunden wird.
-
27 zeigt ein Programm, das
aufgerufen wird, nachdem der in 23 gezeigte
Ablauf beendet ist.
-
28 ist ein Flußdiagramm,
welches einen zweiten Hauptteil des Gummiband-Algorithmus' mit größerer Genauigkeit
zeigt.
-
29 zeigt den Außenrand
eines Abschnittes des Linsenbildes und zeigt einige Vektoren, die
in dem zweiten Abschnitt des Gummiband-Algorithmus' verwendet werden.
-
30 ist ein Flußdiagramm,
welches einen dritten Hauptabschnitt des Gummiband-Algorithmus mit
größerer Genauigkeit
aufzeigt.
-
31 und 32 veranschaulichen bildlich die Wirkung
zweier Schritte des in 30 gezeigten
Ablaufes.
-
33 zeigt einen Abschnitt
des Außenrandes
des Kreisringes, wobei gewisse Linien an dem Rand angefügt sind.
-
34A – 34E veranschaulichen
allgemein die Ergebnisse der verschiedenen Operationen, auf die
als MAX, PMAX, MIN und PMIN Bezug genommen wird.
-
35 zeigt einen bevorzugten
Ablauf, der auf Pixeldatenwerte angewendet wird, um mögliche Defekte
im Linsenrand hervorzuheben oder herauszustellen.
-
36 veranschaulicht die Ergebnisse
des in 35 gezeigten
Ablaufes.
-
37 ist ein Flußdiagramm,
welches einen zweiten Maskierungsablauf zeigt, der bei der Verarbeitung
der Pixeldaten verwendet wird.
-
38A – 38C veranschaulichen
bildlich diesen zweiten Maskierungsablauf und dessen Ergebnisse.
-
39 ist ein Flußdiagramm
eines weiteren Ablaufs, der auf die Pixeldaten angewendet wird,
um weiterhin irgendwelche Defekte in der inspizierten Linse hervorzuheben.
-
40A – 40D veranschaulichen
bildlich die Operation und die Ergebnisse des in 39 aufgezeigten Ablaufes.
-
41A und 41B zeigen ein Flußdiagramm eines Ablaufes, der
zur Indentifikation irgendwelcher Fehler oder Defekte in der inspizierten
Linse verwendet wird.
-
42 zeigt verschiedene Typen
möglicher Defekte
in der Linse.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
1 ist ein Blockdiagramm,
welches ein System 10 zur Linseninspektion veranschaulicht;
im allgemeinen weist das System 10 ein Transport-Teilsystem 12,
ein Beleuchtungssystem 14, ein Abbildungs-Teilsystem 16 sowie
ein Bildverarbeitungs-Teilsystem 20 auf. Bei der bevorzugten
Ausführung
des Systems 10 weist das Transport-Teilsystem 12 den
Linsenträger 22 und
die Unterstützungsanordnung 24 (in 4 gezeigt) auf; und das
Beleuchtungs-Teilsystem 14 enthält ein Gehäuse 26, eine
Lichtquelle 30 und Spiegel 32 und 34.
Ebenso enthält
bei diesem bevorzugten System 10 das Abbildungs-Teilsystem 16 die
Kamera 36, die Blende 40 und die Linsenanordnung 42.
Spezieller enthält
die Kamera, Bezug nehmend auf 8,
das Gehäuse 44,
die Pixelanordnung 46 und den Verschluß 50; und die Linsenanordnung
enthält
das Gehäuse 52, ein
Paar Linsen 54 und 56 sowie eine Vielzahl von Scheiben 60.
Wie in 1 gezeigt ist,
enthält
das Bildverarbeitungs-Teilsystem 20 den Vorprozessor 62,
den Hauptprozessor 64 sowie Eingabemittel, wie zum Beispiel
die Tastatur 66; und vorzugsweise enthält das Teilsystem 20 weiterhin
die Speichereinheit 70, den Videomonitor 72, das
Tastatur-Terminal 74 und den Drucker 76.
-
Im
allgemeinen ist das Transport-Teilsystem 12 vorgesehen,
um eine Vielzahl ophthalmischer Linsen entlang eines vorbestimmten
Pfades zu bewegen, um so jede der Linsen nacheinander in eine Position
zu Linseninspektion zu bewegen, wobei 1 eine
solche Linse 80 in dieser Position zur Linseninspektion
zeigt. Das Beleuchtungs-Teilsystem 14 ist vorgesehen, um
eine Reihe von Lichtimpulsen zu erzeugen und einen entsprechenden
Lichtimpuls auf den Lichtpfad 82 zu richten sowie durch
jede ophthalmische Linse, die sich durch die Position zur Linseninspektion
bewegt. Das Teilsystem 16 erzeugt einen Satz Signale, die
die ausgewählten
Abschnitte der durch die ophthalmischen Linsen transmittierten Lichtimpulse
repräsentieren,
und transmittiert daraufhin diese Signale zu dem Verarbeitungs-Teilsystem 20.
Das Bildverarbeitungs-Teilsystem empfängt diese Signale von dem Teilsystem 16 und
verarbeitet diese Signale gemäß einem
vorbestimmten Programm, um wenigstens eine Bedingung von jeder inspizierten
Linse zu identifizieren; und bei der bevorzugten Ausführung des
Teilsystems 20, welche unten detailliert beschrieben wird,
bestimmt dieses Teilsystem, ob jede inspizierte Linse für die Verwendung durch
den Kunden annehmbar ist.
-
Das
System 10 kann verwendet werden, um eine große Vielfalt
von Typen und Größen ophthalmischer
Linsen zu inspizieren. Das System ist besonders gut für die Inspektion
von Kontaktlinsen geeignet, wobei die 2 und 3 zum Beispiel die Kontaktlinse 84 darstellen,
die mittels des Systems 10 inspiziert werden kann. Die
Linse 84 hat im allgemeinen eine halbsphärische Gestalt
mit Vorder- und Rückflächen 86 und 90;
und die Linse bildet eine zentrale optische Zone 84a und
eine äußere Zone 84b.
Die Linse hat eine im wesentlichen einheitliche Dicke; jedoch, wie
speziell in 3A gezeigt,
nimmt die Dicke der Linse graduell über den Kreisring 84C in
unmittelbarer Nachbarschaft des Außenrandes der Linse ab.
-
4 veranschaulicht das Transport-Teilsystem 12 mit
größerer Genauigkeit;
wie oben diskutiert enthält
dieses Teilsystem vorzugsweise den Linsenträger 22 und die Unterstützungsanordnung 24. Insbesondere
enthält
die Unterstützungsanordnung einen
Translationstisch 92 sowie erste und zweite Schrittmotoren 94 und 96,
wobei der Translationstisch wiederum ein Grundteil 100 und
Rahmen 102 und 104 aufweist.
-
Im
allgemeinen ist der Linsenträger 22 vorgesehen,
um eine Vielzahl der ophthalmischen Linsen zu halten, wobei die 5 und 6 den Linsenträger mit größere Genauigkeit darstellen.
Wie darin gezeigt, enthält
der Linsenträger
ein rechteckiges Grundteil 106 und eine Anordnung von Inspektionsschalen 110,
die mit dem Grundteil verbunden sind. Vorzugsweise weist jede Schale
eine kegelstumpfartige Seitenwand 110a und einen halbsphärisch geformten
Bodenabschnitt 110b auf, der einstückig mit der Seitenwand der
Schale verbunden ist und sich von dieser abwärts erstreckt. Zusätzlich hat
der Bodenabschnitt jeder Schale vorzugsweise einen konstanten Krümmungsradius,
etwa 10 % größer als
der Krümmungsradius
der in der Schale plazierten ophthalmischen Linse 84, wobei
der Durchmesser des Bodenabschnittes 110b größer ist
als der Durchmesser der ophthalmischen Linse. Ebenso erstreckt sich die
Seitenwand jeder Schale mit einer Neigung von etwa 20° bezüglich der
Achse der Schale, und die Dicke jeder Seitenwand ist vorzugsweise
geringer als etwa 0,010 Inch.
-
Bei
dem in den 5 und 6 gezeigten speziellen Linsenträger 22 beträgt der Durchmesser
der Oberseite jeder Schale 110 etwa 22 mm; und die Tiefe
jeder Schale ist vorzugsweise größer als
der Durchmesser der zu inspizierenden Linse, welcher bei Kontaktlinsen
typischerweise 20 mm beträgt.
Wie in den 5 und 6 gezeigt enthält der Linsenträger eine
Anordnung von 3 × 4
Inspektionsschalen. Die Durchschnittsfachleute werden erkennen,
daß die
Inspektionsschalen in anderen Konfigurationen angeordnet werden
können;
zum Beispiel können
die Schalen in einer Anordnung von 3 × 3, einer Anordnung von 3 × 8, einer
Anordnung von 4 × 8,
einer Anordnung von 3 × 10
oder einer Anordnung von 4 × 10 vorliegen.
-
Die
Schalen 110 und vorzugsweise das Grundteil 106 sind
im wesentlichen aus einem transparenten Material, wie zum Beispiel
Kunststoff aus Polyvinylchlorid, hergestellt. Weiterhin sind die
Schalen 110 und das Grundteil 106 vorzugsweise
einstückig
zusammengeformt und relativ dünn,
was die Kosten reduziert und somit, als praktischer Gesichtspunkt,
es gestattet, den Träger
nach einer einmaligen Verwendung zu entsorgen. Die Entsorgung des
Trägers
nach einer einmaligen Verwendung bringt eine wesentlichen Reduzierung
oder Vermeidung der Ausbildung von Kratzern in den Schalen mit sich, welche
häufig
auftreten, wenn die Inspektionsschalen wiederverwendet werden. Da,
entsprechend der unten geführten
Diskussion, ein Kratzer auf einer Schale als Fehler oder Defekt
in der sich innerhalb der Schale befindlichen Linse interpretiert
werden kann, verbessert die Verwendung von sofort entsorgbaren Linsenträgern die
Genauigkeit des Linseninspektionsprozesses.
-
Bei
der Verwendung ist jede Schale 110 teilweise mit einer
flüssigen
Lösung 112 gefüllt, wie
zum Beispiel einer Salzlösung,
und eine jeweilige ophthalmische Linse wird auf dem Boden jeder
Schale plaziert, wobei diese vollständig in die darin befindliche Lösung eingetaucht
ist. Wenn eine Linse in einer Schale plaziert ist, so tendiert die
Schale dahin, die Linse darin automatisch, aufgrund der oben beschriebenen
Gestalt und der Parameter der Schale, zu zentrieren.
-
Es
wird wiederum auf 4 Bezug
genommen, wonach die Unterstützungsanordnung 24 vorgesehen
ist, um den Linsenträger
zu unterstützen und
um den Linsenträger
so zu bewegen, daß die sich
darin befindlichen Linsen nacheinander in die Position zur Linseninspektion
bewegt werden. Die Unterstützungsanordnung 24 bewegt
den Linsenträger 22 kontinuierlich
entlang eines vorbestimmten Pfades, um die Linsen 84 sanft
in und durch diese Position zur Linseninspektion zu bewegen. Zum
Beispiel kann die Unterstützungsanordnung
in einer Weise gestaltet sein, daß der Linsenträger so bewegt wird,
daß Schalen 110 dieses
Trägers
durch die Position zur Linseninspektion hindurchbewegt werden, wobei
dies gleichzeitig eine Schalenreihe betrifft; und nachdem jede Schalenreihe
durch die Position zur Linseninspektion hindurchbewegt wurde, bewegt
die Unterstützungsanordnung 24 den
Träger 22,
um eine andere Schalenreihe bezüglich
der Position zur Linseninspektion auszurichten.
-
Bei
der bevorzugten, in 4 gezeigten
Unterstützungsanordnung 24 ist
der Rahmen 102 des Translationstisches 92 durch
die Basis 100 unterstützt,
um sich darauf seitlich, nach rechts und nach links, wie in 4 gezeigt, zu bewegen; der
Rahmen 104 wird durch den Rahmen 102 unterstützt, so
daß er
sich darauf aufwärts
und abwärts,
wie in 4 gezeigt, bewegen
kann; und der Linsenträger 22 wird von
dem Rahmen 104 unterstützt,
so daß er
sich mit diesem bewegt. Der Schrittmotor 94 ist auf der
Basis 100 angebracht und mit dem Rahmen 102 verbunden,
so daß der
Rahmen über
das Grundteil bewegt wird, wobei der Schrittmotor 96 auf
dem Rahmen 102 angebracht ist und mit dem Rahmen 104 verbunden ist,
um diesen letzteren Rahmen zu bewegen.
-
Beliebige
geeignete Rahmen 102 und 104 sowie Schrittmotoren 94 und 96 können in
der Unterstützungsanordnung 24 verwendet
werden. Wie den Durchschnittsfachleuten verständlich sein wird, sind weiterhin
andere geeignete Unterstützungsanordnungen
bekannt, und solche können
verwendet werden, um den Linsenträger 24 in der gewünschten Weise
zu bewegen.
-
Wiederum
mit Bezug auf 1 erzeugen
die Teilsysteme 14 und 16 zusammen den als Dunkelfeldbeleuchtung
bezeichneten Effekt und verwenden diesen zur Inspektion der ophthalmischen
Linse, die sich durch die Position zur Linseninspektion bewegt. Bei
diesem Ablauf wird eine Abbildung von Eigenschaften der opthalmischen
Linse auf der Pixelanordnung 46 gebildet, die durch die
Linse transmittiertes Licht streuen oder reflektieren. Die Dunkelfeldbeleuchtung
kann verwendet werden – und
sie ist tatsächlich
ein sehr effektives Verfahren – um
Fehler oder Unregelmäßigkeiten
in ophthalmischen Linsen nachzuweisen, da im wesentlichen alle Defekte,
wie auch einige normale Eigenschaften der ophthalmischen Linsen,
das Licht streuen; und selbst sehr subtile, schwache Defekte, so
wie jene, die als Trübungen
("Puddles") bezeichnet werden,
können
ohne weiteres durch die Verwendung des Verfahrens der Dunkelfeldbeleuchtung
nachgewiesen werden.
-
Die
Prinzipien der Dunkelfeldbeleuchtung können mit Bezug auf 7 verstanden werden, welche
eine ophthalmische Linse 114, einen kollimierten Lichtstrahl 116,
ein Paar Linsen 120 und 122, eine lichtundurchlässige Blende 124 sowie
eine Pixelanordnung 126 zeigt. Der Lichtstrahl 116 wird
durch die ophthalmische Linse 114 transmittiert und fällt daraufhin
auf die Abbildungslinse 120.
-
Wenn
der Beleuchtungsstrahl 116 perfekt kollimiert wäre, wenn
er auf die Linse 114 fällt,
so würde
der Strahl zu einem Brennpunkt bei dem hinteren Brennpunkt der Linse 120 geleitet.
Selbst wenn der Beleuchtungsstrahl 116 durch die ophthalmische Linse 114 vollständig unbeeinflußt bliebe,
so ist dieser Strahl dennoch nicht perfekt kollimiert, wenn er auf
die Linse 120 fällt,
und der Strahl 116 bildet einen kleinen Kreis etwa beim
hinteren Brennpunkt der Linse 120, der als Kreis der geringsten
Störung
bezeichnet wird. Die Blende 124 ist an der anderen Seite
der Abbildungslinse 120 an dem hinteren Brennpunkt derselben
angeordnet, wobei die Größe der Blende so
gewählt
wird, daß sie
geringfügig
größer ist
als das Kreisbild, welches von dem Beleuchtungsstrahl 116 bei
dem hinteren Brennpunkt der Linse 120 gebildet wird.
-
Somit
wird bei Abwesenheit von Streuung oder Brechung des Beleuchtungsstrahls 116 durch die
Linse 114 kein Licht über
die Blende 124 hinaus transmittiert, wobei die Pixelanordnung 126 vollständig im
Dunkeln liegt. Jedoch werden irgendwelche Eigenschaften der Linse 114,
die das Licht in ausreichendem Maße ablenken, so daß es die
Blende 124 verfehlt, bewirken, daß ein Teil des Lichtes auf
die Pixelanordnung auftrifft. Die ophthalmische Linse 114 ist
an der Position angeordnet, die optisch mit der Position der Pixelanordnung 126 konjugiert
ist; und wenn somit irgendwelches Licht über den Stopper 124 hinaus
transmittiert wird, so bildet dieses Licht eine Abbildung der Einheit
der ophthalmischen Linse 114 auf der Pixelanordnung, die
das Licht gestreut hat.
-
8 zeigt das bevorzugte Gerät zur Erzeugung
und daraufhin zur Verwendung dieses Effektes der Dunkelfeldbeleuchtung
in System 10; und insbesondere zeigt diese Figur das bevorzugte
Beleuchtungs-Teilsystem und Abbildungs-Teilsystem mit größerer Genauigkeit.
Wie in dieser Figur gezeigt ist, enthält das Teilsystem 14 das
Gehäuse
oder den Kasten 26, die Lichtquelle 30, die Spiegel 32 und 34, die
Blende 130, die Energieversorgung 132, den Steuerungsschaltkreis 134,
erste und zweite einstellbare Unterstützungsmittel 136 und 140 sowie
ein Ausgangsfenster 142. Ebenso enthält das Teilsystem 16 die
Ka mera 36, die Blende 40 und die Linsenanordnung 42.
Insbesondere enthält
die Kamera 36 das Gehäuse 44,
die Pixelanordnung 46 sowie den Verschluß 50;
und die Linsenanordnung 42 enthält das Gehäuse 52, die Linsen 54 und 56 sowie
die Scheiben 60.
-
Das
Gehäuse 26 des
Teilsystems 14 stellt eine schützende Umhüllung für die anderen Elemente dieses
Teilsystems zur Verfügung;
und die Lichtquelle 30, die Spiegel 32 und 34 sowie
die Blende 130 sind alle in diesem Gehäuse sicher untergebracht. Insbesondere
enthält
das Gehäuse 26 einen vertikalen
Hauptschenkel 26a und obere und untere horizontale Schenkel 26b und 26c,
wobei die Lichtquelle 30 in dem Hauptschenkel des Gehäuses positioniert
ist. Der Spiegel 32 ist an der Kreuzungsstelle der Schenkel 26a und 26c befestigt,
der Spiegel 34 ist dem distalen Ende des Schenkels 26c benachbart positioniert,
und die Blende 130 ist innerhalb des Schenkels 26c zwischen
den Spiegeln 32 und 34 positioniert. Das Gehäuse 26 bildet
ebenfalls direkt oberhalb des Spiegels 34 eine Öffnung 26d,
und das Fenster 142 ist in dieser Öffnung befestigt. Bei der Verwendung
erzeugt die Lichtquelle 30 eine Vielzahl von Lichtblitzen
oder -impulsen und richtet jeden dieser Impulse auf den Lichtpfad 82.
Der Spiegel 32 ist auf diesem Pfad angeordnet und richtet
die Lichtimpulse durch die Blende 130 sowie auf den Spiegel 34, welcher
wiederum die Lichtimpulse aufwärts
durch das Fenster 142, durch die Position zur Linseninspektion,
in 8 mit 144 bezeichnet,
und in Richtung oder auf das Abbildungs-Teilsystem 16 richtet.
-
Vorzugsweise
ist die Lichtquelle 30 auf einstellbaren Unterstützungsmitteln 136 befestigt,
welche es erlauben, die spezifische Richtung des von der Lichtquelle
emittierten Lichtes einzustellen, wobei der Spiegel 34 auf
einem anderen einstellbaren Unterstützungsmittel 140 angebracht
ist, welches es erlaubt, sowohl die spezifische Richtung und die
spezifische Position des von diesem Spiegel reflektierten Lichtes
einzustellen. Insbesondere enthalten bei der bevorzugten Ausführung des
in 8 gezeigten Teilsystems 14 die
Unterstützungsmittel 136 einen
Kipptisch, der an dem Gehäuse 26 befestigt
ist und um zwei zueinander senkrechte horizontale Achsen schwenkbar
ist. Ebenso enthalten bei dieser Ausführung des Teilsystems 14 die
Spiegelunterstützungsmittel 140 den
Kipptisch 140a und den Translationstisch 140b;
und der Spiegel 34 wird auf dem ersteren Tisch angebracht,
welcher wiederum auf dem letzteren Tisch angebracht ist. Der Tisch 140b ist
seitlich nach links und nach rechts, wie in 8 gezeigt, beweglich, was die Einstellung
der seitlichen Position von Spiegel 34 gestattet; und der
Tisch 140a ist um zwei zueinander senkrechte horizontale
Achsen drehbar, was es ebenso gestattet, den speziellen Winkel des
Spiegels 34 einzustellen.
-
Das
Abbildungs-Teilsystem 16 empfängt Lichtimpulse, die durch
die in der Position 144 zur Linseninspektion angeordneten
ophthalmischen Linse transmittiert wird, und erzeugt eine Reihe
von Signalen, die die ausgewählten
Anteile des durch diese ophthalmischen Linsen transmittierten Lichtes
darstellen. Insbesondere ist die Pixelanordnung 46 innerhalb
des Kameragehäuses 44 direkt
hinter dem Verschluß 50 angeordnet;
und die Pixelanordnung ist vorzugsweise aus einer Vielzahl von Lichtsensoren zusammengesetzt,
wobei jeder in der Lage ist, einen entsprechenden elektrischen Strom
zu erzeugen, der eine zur Intensität des auf den Sensor einfallenden Lichtes
proportionale Größe hat oder
diese repräsentiert.
-
9 ist eine vergrößerte Ansicht
eines kleinen Abschnittes der Pixelanordnung 46 und zeigt
insbesondere eine Vielzahl individueller Lichtsensoren dieser Pixelanordnung.
Mit Bezug auf diese Figur sind diese Lichtsensoren oder Pixel in
einem gleichförmigen
Gitter einer gegebenen Anzahl von Reihen und Spalten angeordnet,
wobei dieses Gitter beispielsweise eine Million Pixel aufweist,
die in tausend Spalten und tausend Reihen angeordnet sind. Vorzugsweise
bilden die Pixel in diesem Gitter eine Vielzahl von Reihen mit gleichförmigem Abstand
und eine Vielzahl von Spalten mit gleichförmigem Abstand; und, außer den
Pixeln entlang des äußeren Randes
der Anordnung, hat jedes Pixel acht unmittelbare Nachbarn. Beispielsweise
hat Pixel 146a acht Nachbarn: das direkt oberhalb angeordnete
Pixel 146b, das direkt unterhalb angeordnete Pixel 146c, die
direkt jeweils links und rechts angeordneten Pixel 146d und 146e und
die Pixel 146f, 146g, 146h und 146i,
die jeweils oberhalb und rechts, oberhalb und links, unterhalb und
rechts sowie unterhalb und links angeordnet sind.
-
Es
wird wiederum Bezug auf 8 genommen,
wo die Blende 40 und die Linsen 54 und 46 bezüglich des
Verschlusses 50 in Vorwärtsrichtung
angeordnet sind und koaxial zueinander sowie bezüglich der Pixelanordnung 46 und
dem Kameraverschluß ausgerichtet
sind. Die Blende 40 ist zwischen den Linsen 54 und 56 und
im wesentlichen an der hinteren Brennebene der Linse 54 positioniert,
wobei die Linse 56 so positioniert ist, daß die Pixelanordnung
bei der hinteren Brennebene dieser Linse 56 positioniert
ist. Vorzugsweise sind die Linsen 54 und 56 sowie
die Blende 40 innerhalb des Gehäuses 52 angebracht,
welches wiederum an dem Frontende der Kamera 46 angebracht
ist. Zusätzlich
sind die Scheiben 60, die eine Reihe ringförmiger Glieder
aufweisen können,
vorzugsweise in und mit Abstand entlang der Länge des Gehäuses 42 angeordnet,
um die Kollimation des durchgehenden Lichtes zu unterstützen.
-
Bei
dieser speziellen Position der Linsen 54 und 56 sowie
der Blende 40 wird das meiste oder alles von einem durch
eine spezielle inspizierte ophthalmische Linse transmittierten Lichtstrahl
von der Linse 54 auf die Blende 40 fokussiert
und fällt
somit nicht auf die Pixelanordnung 46. Jedoch kann ein
Teil des durch unregelmäßige Bestandteile
der ophthalmischen Linse tretenden Lichtes sowie ein Teil des durch
regelmäßige Bestandteile
einiger ophthalmischer Linsen tretenden Lichtes ausreichend abgelenkt
werden, so daß dieses
Licht nicht durch die Linse 54 auf die Blende 40 fokussiert
wird, sondern stattdessen über
die Blende hinaus transmittiert wird und auf die Pixelanordnung 46 auftrifft.
Zusätzlich
ist die Position zur Linseninspektion an einer Stelle angeordnet,
die optisch zu der Position der Pixelanordnung 46 konjugiert
ist, wobei somit jegliches Licht, das über die Blende 40 hinaus
transmittiert wird, ein Bild auf der Pixelanordnung von der Einheit
der ophthalmischen Linse erzeugt, die das Licht gestreut hat.
-
Diese
Dunkelfeldbeleuchtungs-Technik ist eine sehr effektive Art, Unregelmäßigkeiten
in ophthalmischen Linsen zu beleuchten; und 10 zeigt die auf einer Pixelanordnung 46 mittels
eines durch eine ophthalmische Linse und insbesondere durch eine
in den 2 und 3 gezeigte Kontaktlinse 84 transmittierten
Lichtstrahls gebildeten Abbildung. Das meiste des durch die Linse
transmittierten Lichtes wird von der Pixelanordnung durch die Blende 40 ferngehalten.
Jedoch wird aufgrund der nicht einheitlichen Dicke des Kreisringes 84c der
Linse das durch diesen Abschnitt der Linse transmittierte Licht über die
Blende 40 hinaus abgelenkt, wobei es auf die Pixelanordnung 46 auftritt
und ein Bild des Kreisringes auf dieser Anordnung ausbildet. Andere
Unregelmäßigkeiten
in der Linse 84 erzeugen ebenfalls ausgeleuchtete Bereiche
auf der Pixelanordnung. Zum Beispiel können selbst subtile, schwache
Defekte, wie zum Beispiel Trübungen,
auf der Pixelanordnung gesehen werden. Wenn zum Beispiel eine Trübung im Inneren
der Linse vorliegt, so wird die Trübung ohne weiteres auf der
Pixelanordnung als heller Umriß auf einem
dunklen Feld erscheinen; und wenn eine Trübung in der Randzone einer
Linse vorliegt, so wird die Trübung
ohne weiteres auf der Pixelanordnung als dunkle Linien auf einem
hellen Feld erscheinen. Da ebenfalls die Randzone der Kontaktlinse
einen keilförmigen
Querschnitt aufweist, lenkt diese Randzone genügend Licht über die Blende 40 hinaus,
so daß die
gesamte Zone auf der Pixelanordnung 46 als ein heller,
weißer
Kreisring 150 auf einem dunklen Feld erscheint.
-
Wie
von den Durchschnittsfachleuten verstanden wird, können irgendwelche
geeigneten Lichtquellen, Linsen und Kameras in den Teilsystemen 14 und 16 verwendet
werden. Zum Beispiel kann die Lichtquelle 30 ein Kurzbogen-Xenon-Blitzlicht
von Hamamatsu sein. Dieses spezielle Blitzlicht weist eine einzigartige
Kombination von Bogenstabilität
und Langlebigkeit auf, wobei die Ausgabe dieses Blitzlichtes um
plus oder minus 2 % rangiert, mit einer Lebensdauer von 109 Blitzen.
-
Weiterhin
ist bei einer Ausführung
des Teilsystems 16, das tatsächlich verwirklicht wurde,
die erste Abbildungslinse 54 eine achromatische Linse mit
100 mm Brennweite, welche für
Objekte innerhalb von 2,5° bezüglich der
optischen Achse der Linse beugungsbegrenzt ist, wobei die Linse 54 in
einer schwarz eloxierten Aluminiumröhre mit internen Scheiben 60 zum
Eliminieren der Kontrastverschlechterung aufgrund der Lichtreflektion
von den Innenwänden
der Röhre
angeordnet ist. Die zweite Linse 56 ist eine F-1.8-Nikon-Standardlinse
mit 50 mm Brennweite. Das Ende des Tubus' der ersten Linse 54 ist auf
einen ultravioletten Dunstfilter zementiert, der über ein
Gewinde in dem Gehäuse
der 50 mm-Linse sitzt.
-
Die
lichtundurchlässige
Blende 40 ist eine kleine Kunststoffscheibe mit einem Durchmesser
von 0,100 Inch, welche eine klebende Rückseite aufweist, um die Blende
an Ort und Stelle zu befestigen. Geeignete Blenden können käuflich erworben
werden und werden als Masken für
Lötanschlußstellen beim
manuellen Layout der Druckvorlage für gedruckte Schaltungen verwendet,
wobei diese Blenden in vielen verschiedenen Größen erhältlich sind. Die bevorzugte
Größe der Blende 40 kann
von anderen Parametern des Systems 10 abhängen, und
die ausgewählte
Größe der Blende
ist vorzugsweise so gewählt,
daß sie
den besten Kompromiß zwischen Kontrast,
Einfachheit bei der Ausrichtung und Vibrationsempfindlichkeit bereitstellt.
-
Die
in dem Teilsystem 16 verwendete Kamera, das tatsächlich konstruiert
wurde, ist eine Kamera mit hoher Auflösung, die von Videk verkauft
wird und welche für
die Montage von Standard-Nikon-Linsen geeignet sind. Die F-1.8 50
mm-Nikonlinse 56 wird zunächst an der Kamera 36 befestigt,
woraufhin das Gehäuse
der Linse 54 auf die Linse 56 aufgeschraubt wird.
Das effektive Gesichtsfeld dieser Videk-Kamera beträgt 13,8 × 13,8 mm,
was zum Beispiel etwa 10 – 15
% größer ist
als die maximale Kontaktlinsengröße. Es ist
erwünscht,
daß die
inspizierte ophthalmische Linse das Gesichtsfeld der Kamera 36 so
weitgehend wie möglich
belegt, um so die Genauigkeit der Inspektion zu optimieren. Folglich
nutzen die Inspektionsschalen 110 des Linsenträgers 22 bei
automatischer Zentrierung der zu inspizierenden Linse die von der
Kamera zur Verfügung
ge stellte Auflösung
in maximaler Weise aus.
-
Die
bevorzugten Konfigurationen der Teilsysteme 14 und 16 haben
eine Reihe von Vorteilen. Da zunächst
der Lichtpfad 82 zusammengefaltet ist, kann das Blitzlicht 30 in
größerem Abstand
von der ophthalmischen Linse angeordnet sein, und zwar an der Position
zur Linseninspektion 144, wobei dies einen stark kollimierten
Lichtstrahl bei dieser ophthalmischen Linse erzeugt. Zweitens ist
die Größe des Lichtbogens
bei der Blende 40 im wesentlichen gleich der physikalischen Größe des Lichtbogens, multipliziert
mit dem Verhältnis
(i) des Abstandes von der Lampe 30 zu der Linse 54 zu
(ii) dem Abstand von der Linse 54 zur Blende 40.
Die bevorzugte in 8 gezeigte
Konfiguration minimiert ebenfalls die Bogen-Bildgröße, was
die Verwendung einer kleineren Blende erlaubt und folglich die Erzeugung
einer größeren Empfindlichkeit.
Drittens begrenzt die Irisblende 130 die Querschnittsfläche des
Lichtstrahls 82 und somit die Fläche, die von diesem Strahl
beleuchtet wird. Vorzugsweise wird die Blende 130 verwendet,
um die Querschnittsfläche
oder die Abmessung des Strahls 82 so einzustellen, daß der Strahl eine
kreisförmige
Fläche
beleuchtet, die nur etwa 10 bis 15 % größer ist als der Durchmesser
der zu inspizierenden ophthalmischen Linse. Die Begrenzung der Größe des Beleuchtungsstrahls 82 verbessert den
Kontrast zwischen dem auf der Pixelanordnung erzeugten Bild und
dem Rest dieser Anordnung; und insbesondere wird durch die Begrenzung
der Abmessung des Lichtstrahls 82 die Lichtmenge, welche
von Artefakten der Linseninspektionsschale gestreut wird, eliminiert
oder wesentlichen vermindert. Dieses gestreute Licht könnte als
Hintergrundlicht auf der Pixelanordnung 46 erscheinen und
den Kontrast zwischen dem interessierenden Bild auf der Pixelanordnung
und dem Rest dieser Anordnung verringern.
-
Zusätzlich ist
bei der bevorzugten Konfiguration der Teilsysteme 14 und 15 der
Vergrößerungsfaktor
des Systems – das
heißt,
das Verhältnis
der Größe des Bildes
der ophthalmischen Linse auf der Pixelanordnung 46 zur
tatsächlichen
Größe dieser ophthalmischen
Linse – etwa
gleich dem Verhältnis der
Brennweite der zweiten Linse 56 zur Brennweite der ersten
Linse 54. Der tatsächliche
Vergrößerungsfaktor
hängt ebenfalls
vom Abstand zwischen den Linsen 54 und 56 sowie
dem Abstand der zu inspizierenden ophthalmischen Linse von der ersten
abbildenden Linse 54 ab. Zusätzlich gestatten es der Kipptisch 140a und
der Translationstisch 140b, daß die Mitte des vom Spiegel 34 reflektierten
Strahls so eingestellt wird, daß sie
mit der Achse des abbildenden optischen Teilsystems 16 zusammenfällt.
-
Wie
oben beschrieben, enthält
das abbildende Teilsystem 16 zwei Linsen 54 und 56,
die näherungsweise
um die Brennweite der ersten Linse 54 voneinander getrennt
sind. Die Verwendung von zwei Linsen ist nicht erforderlich; jedoch
ist dies bevorzugt, da die Verwendung von zwei Linsen eine bessere Kontrolle
der verschiedenen Parameter der Teilsysteme 14 und 16 gestattet
und, zum Beispiel, die Trennung zwischen der hinteren Brennebene
und der Bildebene von der Vergrößerung der
Teilsysteme entkoppelt.
-
Die 11A, 11B und 11C veranschaulichen andere
optische Konfigurationen, auf die im allgemeinen jeweils als 152, 154 und 156 Bezug
genommen wird und welche im System 10 zum Richten eines Lichtstrahls 82 durch
die Linseninspektionsposition verwendet werden können, sowie auf die Blende 40 und
die Pixelanordnung 46.
-
Die
Konfiguration 152 enthält
nur eine Linse 160, die gleichzeitig den Lichtstrahl 82 auf
die Blende 40 abbildet, sowie die zu inspizierende Linse
auf die Pixelanordnung 46 abbildet. Spezieller enthält die in 11A gezeigte optische Konfiguration
den Spiegel 162, die abbildende Linse 160 und
die Blende 40; und die Figur zeigt ebenfalls einen Linsenhalter,
der schematisch bei 164 repräsentiert ist, eine zu inspizierende
ophthalmische Linse 166 und die Pixelanordnung 46.
Mit dieser Konfiguration werden der Lichtstrahl 82 oder
Pulse von der Lichtquelle 30 auf den Spiegel 162 gerichtet,
welcher wiederum das Licht durch die Linsen 166 sowie auf
die Abbildungslinse 160 richtet. Das meiste auf die Linse 160 gerichtete
Licht wird dadurch auf die Blende 40 fokussiert; jedoch
werden gewisse Bestandteile der Linse 166 das Licht ausreichend
ablenken, so daß dieses
abgelenkte Licht über
die Blende 40 hinaus transmittiert und auf der Pixelanordnung
fokussiert wird, wobei darauf ein Bild der Bestandteile der Linse 166 erzeugt
wird, welche bewirkt haben, daß das
Licht über die
Blende 40 hinaus transmittiert wird. Die Konfiguration
von 11A kann die bevorzugte
Konfiguration sein, wenn der CCD-Schirm der Kamera 36 größer ist
als der CCD-Schirm
der obengenannten Videk-Kamera mit hoher Auflösung.
-
Bei
der Konfiguration 154 nach 11B sind die
Funktionen der Abbildung der Lichtquelle auf die Blende 40 und
der Abbildung der zu inspizierenden ophthalmischen Linse auf die
Pixelanordnung 46 getrennt. Näher ausgeführt enthält diese Konfiguration den
Spiegel 170, die Linsen 172 und 174 und
die Blende 40; und 11B zeigt
ebenso den Linsenhalter 164, die ophthalmische Linse 166 und
die Pixelanordnung 46. Bei dieser Konfiguration wird der
Lichtstrahl 82 von der Lichtquelle 30 auf den
Spiegel 170 gerichtet, wobei dieser Spiegel den Lichtstrahl
auf die Linse 172 richtet. Die Linse 172 richtet
den Lichtstrahl durch die ophthalmische Linse 166, wobei
das meiste des durch die Linse 166 transmittierten Lichtes
auf die Blende 40 fokussiert wird. Einige Bestandteile
der Linse 166 lenken jedoch Licht von der Blende 40 ab; und
dieses abgelenkte Licht fällt
auf die Linse 174, welche dieses Licht auf die Pixelanordnung 46 fokussiert,
wobei darauf ein Bild der Bestandteile der Linse 174 erzeugt
wird, welche das Licht über
die Blende 40 hinaus abgelenkt haben. Ein Vorteil der Linsenanordnung
von 11B besteht darin,
daß die
Wirkungen der beiden Linsen 172 und 174 voneinander
vollständig
unabhängig
sind.
-
Die
in 11C gezeigte optische
Konfiguration 156 ist der in 8 gezeigten
optischen Konfiguration sehr ähnlich;
jedoch enthält
die Konfiguration 156 keinen Spiegel 32 und keine
Blende 130. Insbesondere enthält die Konfiguration 156 den
Spiegel 176, die Linsen 180 und 182 sowie
die Blende 40; und die 11C zeigt
ebenso den Linsenhalter 164, die ophthalmische Linse 166 und
die Pixelanordnung 46. Bei der Anordnung nach 11C wird der Lichtstrahl 82 von der
Lichtquelle 30 auf einen Spiegel 176 gerichtet,
welcher das Licht durch die Linse 166 und auf die erste
Linse 180 richtet. Das meiste auf die Linse 180 gerichtete
Licht wird auf die Blende 40 fokussiert; jedoch lenken
einige Bestandteile der Linse 166 das Licht ausreichend
ab, so daß dieses
Licht über die
Blende 40 hinaus sowie auf die zweite Linse 182 transmittiert
wird, wobei diese Linse 182 dieses Licht auf der Pixelanordnung 46 fokussiert.
Bei dieser Konfiguration bildet die Linse 180 die Lichtquelle
unabhängig
von der Linse 182 auf der Blende ab. Beide Linsen 180 und 182 sind
jedoch bei der Abbildung irgendwelcher Defekte in der Linse 166 auf
die Pixelanordnung 46 beteiligt.
-
Zusätzlich zum
Vorangehenden, enthält
das System 10 ebenfalls ein Steuerungs-Teilsystem, um die
Operation des Beleuchtungs-Teilsystems 14 und des Abbildungs-Teilsystems 16 mit
der Operation des Transport-Teilsystems 12 zu synchronisieren;
und insbesondere, um die Lichtquelle 30 zum Erzeugen eines
Lichtpulses zu betätigen
und den Kameraverschluß 50 zu öffnen, wenn
sich eine Linse in der Linseninspektionsposition 144 befindet.
Das bevorzugte Steuerungs-Teilsystem
ist schematisch in 12A veranschaulicht.
Bei diesem bevorzugten Steuerungs-Teilsystem erzeugt das Transport-Teilsystem 14 jedesmal,
wenn sich eine der Linseninspektionsschalen in der Linseninspektionsposition
befindet, ein elektrisches Signal. Dieses Signal kann beispielsweise
von einem Schrittmotor 94 erzeugt werden oder von einem
anderen Antriebsmittel für
den Translationstisch 92 oder von einem Grenzschalter,
der jedesmal betätigt
wird, wenn eine der Linseninspektionsschalen die Linseninspektionsposition
erreicht. Vorzugsweise wird dieses Signal auf den Kameraverschluß 50 übertragen,
um diesen Verschluß zu öffnen, sowie
ebenso auf einen Verzögerungsschaltkreis 184 übertragen,
welcher das elektrische Signal um eine kurze Periode verzögert, um
dem Kameraverschluß zu
gestatten, vollständig
zu öffnen,
wobei nach dieser kurzen Verzögerung
dieses elektrische Signal daraufhin auf einen Lampentreiber 134 übertragen
wird, der daraufhin die Lichtquelle 30 betätigt.
-
Bei
einer Ausführung
von System 10, welche konstruiert wurde, mit Bezug auf 12B, erzeugt beispielsweise
das Transport-Teilsystem einen 24-Volt-Puls, wenn sich eine ophthalmische Linse
in der Linseninspektionsposition befindet, und überträgt diesen sowohl auf die Kamera 36 und
auf den Verzögerungsschaltkreis 184.
Der Kameraverschluß öffnet als
Folge der Anstiegsflanke dieses Pulses und benötigt etwa 9 Millisekunden,
um vollständig
zu öffnen. Der
Verzögerungsschaltkreis
verzögert
den Durchgang des Signals zu dem Lampentreiber 134 um etwa
15 Millisekunden; und nach dieser Verzögerung wird dieser Triggerpuls
auf den Lampentreiber übertragen.
Die Anstiegsflanke dieses Triggerpulses betätigt einen SCR, welcher das
Blitzlicht 30 zündet.
An diesem Punkt der Zündung
wird die Lampe elektrisch leitend, und ein im voraus geladener Kondensator wird über die
Lampe entladen. Die Kapazität
und die Spannung, auf welche dieser Kondensator geladen wurde, bestimmen
die gesamte von der Lampe emittierte Lichtenergie sowie die Dauer
des Lichtpulses. Inzwischen hält
ein Interface-Schaltkreis den Kameraverschluß für etwa 30 Millisekunden offen
und schließt
daraufhin den Verschluß.
-
Die
Verwendung eines Kameraverschlusses in der oben beschriebenen Weise
vermeidet bzw. vermindert wesentlich die Integration des Umgebungslichtes
in der Pixelanordnung 46 zwichen den Linseninspektionen.
Ebenso sind bevorzugt die Hochspannungs-Energieversorgung, die Lampentreiber-Elektronik
und der Speicherkondensator in der Gehäusestruktur 26 angebracht,
welche die Beleuchtungsoptik enthält.
-
Das
Licht von der Lampe 30 ist ausreichend, um den Einfang
eines Bildes auf der Pixelanordnung 46 in einer solch kurzen
Zeitperiode zu gestatten, so daß es
nicht erforderlich ist, die zu inspizierende ophthalmische Linse
anzuhalten. Somit ist das Transport-Teilsystem 12 derart
gestaltet, daß es
die Anordnung ophthalmischer Linsen kontinuierlich unter dem Abbildungs-Teilsystem 16 bewegt.
Diese kontinuierliche, gleichmäßige Bewegung
der Anordnung ophthalmischer Linsen ist vorteilhaft, da es die Entwicklung
von Kräuselungen
oder anderen Störungen
auf der Oberfläche
der Lösung 112 in
den Schalen 110, welche sich mit dem Abbildungsprozeß überlagern könnten, vermindert
oder vermeidet.
-
Wie
den Fachleuten verständlich
sein wird, kann die erwünschte
Synchronisation oder Koordination zwischen dem Transport-Teilsystem 12,
dem Beleuchtungs-Teilsystem und dem Abbildungs-Teilsystem 16 auf
andere Arten erreicht werden. Beispielweise können die Lichtquelle 30 und
der Verschluß 50 bezüglich vorbestimmter
Zeitintervalle aktiviert werden, welche so gewählt sind, daß sie mit
der Positionierung einer Linse an der Linseninspektionsposition 144 zusammenfallen.
-
Das
Beleuchtungs-, das Abbildungs- und das Transport-Teilsystem können innerhalb
eines (nicht gezeigten) Gehäuses
liegen, um die Effekte von schwebendem Schmutz auf die Beleuchtungs- und
Abbildungsprozesse zu minimieren. Dieses Gehäuse kann mit durchsichtigen
Fronttüren
oder mit Fronttüren,
welche durchsichtige Fenster aufweisen, ausgestattet sein, um einen
Zugang zur Verfügung
zu stellen und die Beobachtung des Gehäuseinneren zu gestatten, wobei
die durchsichtigen Abschnitte dieser Fronttüren getönt sein können, um die Effekte von umgebendem
Licht auf den Beleuchtungs- und Abbildungsprozeß zu minimieren.
-
Die
folgenden Einzelheiten des Verarbeitungs-Teilsystems und seiner
Funktionen werden nur zum Zwecke der Information angegeben und bilden keinen
Teil der vorliegenden Erfindung.
-
13 ist ein Blockdiagramm,
welches das Abbildungs-Verarbeitungs-Teilsystem 20 veranschaulicht.
In diesem Teilsystem werden die Signale in einer Kombination serieller
und paralleler Formate dem Vorprozessor 62 zugeleitet.
Diese auf den Vorprozessor 62 übertragenen elektrischen Signale
können
in irgendeiner geeigneten Weise mit den spezifischen Pixeln, die
die Signale erzeugt haben, identifiziert werden. Beispielsweise
können
die Signale von den Pixeln der Kamera 36 in einer vorgegebenen, zeitlich
abgestimmten Folge auf den Vorprozessor 62 übertragen
werden, wobei ebenfalls ein Taktsignal von der Kamera auf den Vorprozessor übertragen werden
kann, um den Beginn oder ausgewählte Intervalle
dieser Sequenz zu identifizieren. Alternativ kann jedes auf den
Prozessor 62 übertragene
Signal mit einem "Header" oder einem anderen
Datenkennzeichen ausgestattet sein, wobei die bestimmten Pixel,
welche das Signal erzeugt haben, identifiziert werden.
-
Die
Einheit 62 konvertiert jedes elektrische Stromsignal von
jedem Pixel der Anordnung 46 in einen entsprechenden digitalen
Datenwert I0 und speichert diesen Datenwert
an einer Speicherstelle mit einer Adresse, welche mit der Adresse
des Pixels, das das elektrische Signal erzeugt hat, in Beziehung steht.
Diese Datenwerte sind dem Prozessor 64 verfügbar und
können
auf diesen über
Busleitungen 186 übertragen
werden. Wie unten detailliert diskutiert, wird vorzugsweise eine
Vielzahl zusätzlicher
Sätze von
Datenwerten I1 ...In erzeugt,
wobei jeder Datensatz einen entsprechenden Datenwert hat, der mit
jedem Pixel der Anordnung 46 in Beziehung steht, wobei
der Vorprozessor 62 eine Vielzahl von Speicherabschnitten
oder Karten aufweisen kann und jeder) davon verwendet wird, um einen
entsprechenden Satz dieser Datenwerte zu speichern.
-
Der
Prozessor 64 ist über
Busleitungen 186 an dem Vorprozessor 62 angeschlossen,
um Datenwerte von dem Vorprozessor zu erhalten und um Datenwerte
auf diesen zu übertragen.
Wie unten genauer beschrieben ist, ist der Prozessor 64 zum
Verarbeiten und Analysieren der in dem Vorprozessor gespeicherten
Datenwerte programmiert, um wenigstens eine Bedingung oder einen
Parameter von jeder durch das System 10 inspizierten Linse
zu identifizieren und zum Beispiel anzuzeigen, ob jede Linse zur Verwendung
durch den Kunden akzeptabel ist.
-
Die
Speicherplatte 70 ist an den Prozessor 64 angeschlossen,
um Datenwerte auf einer permanenten oder halbpermanenten Basis zu
empfangen und festzuhalten. Beispielsweise kann die Speicherplatte 70 mit
verschiedenen von dem Prozessor 64 verwendeten Tabellen
ausgestalten sein, und die Speicherplatte kann verwendet werden
um Daten zu speichern, die sich auf den Linseninspektionsprozeß beziehen
oder von diesem erhalten wurden.
-
Beispielsweise
kann die Speicherplatte 70 verwendet werden, um die Gesamtzahl
der während eines
vorgegebenen Tages oder einer Zeitperiode inspizierten Linsen nachzuhalten
und um die Gesamtzahl, den Typ und die Größe irgendwelcher in irgendeiner
gegebenen Probe oder Linsengruppe gefundenen Defekte nachzuhalten.
-
Die
Tastatur 66 ist an den Prozessor 64 angeschlossen,
um eine Eingabe durch eine Betriebsperson zu gestatten, wobei das
Tastaturterminal 74 verwendet wird, um Daten oder Botschaften,
die in den Prozessor eingegeben werden, sichtbar darzustellen. Der
Monitor 72 ist an den Vorprozessor 62 angeschlossen
und vorgesehen, um Videobilder von den im dem Vorprozessor gespeicherten
Datenwerten zu erzeugen. Beispielsweise können die I0-Datenwerte
auf den Monitor 72 übertragen
werden, um darauf eine Abbildung des tatsächlich von der Pixelanordnung 46 erzeugten
Bildes zu erzeugen. Andere Sätze
der Datenwerte I1...In können auf
den Monitor 72 übertragen
werden, um verbesserte oder verarbeitete Bilder dieses realen Bildes
zu erzeugen. Der Drucker 76 ist an dem Prozessor 64 über einen
Serie-Parallel-Konverter 190 angeschlossen, um eine sichtbare,
permanente Aufnahme von auf den Drucker von dem Prozessor 64 übertragenen
ausgewählten
Datenwerten zur Verfügung
zu stellen. Für die
Fachleute wird verständlich
sein, daß das
Teilsystem 20 mit anderen oder zusätzlichen Eingabe- und Ausgabevorrichtungen
ausgestattet sein kann, um es einer Betriebsperson oder einem Analysierer
zu gestatten, mit dem Prozessor 64, dem Vorprozessor 62 und
der Speichereinheit 70 interaktiv zu kommunizieren.
-
Die
individuellen Komponenten des Teilsystems 20 sind herkömmlich und
den Fachleuten wohlbekannt. Vorzugsweise ist der Vorprozessor 64 ein digitaler
Computer mit hoher Geschwindigkeit, und der Monitor 72 ist
ein Farbmonitor mit hoher Auflösung.
Auch kann zum Beispiel der Vorprozessor 62 eine Zusammenstellung
von Datacube-Signalverarbeitungskarten sein und der Prozessor 64 kann
eine Sun-3/140-Workstation sein.
-
Wie
oben diskutiert, wird jedesmal, wenn eine ophthalmische Linse direkt unter
die Kamera 36 tritt, Licht durch die ophthalmische Linse
transmittiert und auf die Pixelanordnung 46 fokussiert,
wobei jedes Pixel der Anordnung 46 einen entsprechenden elektrischen
Ausgangsstrom mit einer Größe erzeugt,
die die Intensität
des auf das Pixel fallenden Lichtes repräsentiert. Dieser Ausgangsstrom
wird für jedes
Pixel in einen digitalen Datenwert konvertiert, der in einer Adresse
im Vorprozessorspeicher gespeichert wird, die dem Pixel zugeordnet
ist. Diese digitalen Datenwerte, welche als I0-Werte
bezeichnet werden, werden, wie unten beschrieben, erzeugt, um zu
bestimmen, ob die Linse die unter die Kamera 36 tritt,
eine oder mehrere Merkmale einer ausgewählten Gruppe aufweist; und
insbesondere, um zu bestimmen, ob diese Linse irgendwelche Merkmale
aufweist, die als Fehler oder Defekt betrachtet werden können, welcher
die Linse für
die Verwendung durch den Kunden ungeeignet macht.
-
14 zeigt die Hauptkomponenten
eines bevorzugten Bildverarbeitungsverfahrens, um irgendwelche Defekte
des Linsentyps 84 zu identifizieren, welcher in den 2 und 3 dargestellt ist. Nachdem das Linsenbild
auf der Pixelanordnung aufgenommen wurde, wird dieses Bild in einem
Verfahren getestet, welches als Dezentrierung bezeichnet wird, um
zu bestimmen, ob der innere und der äußere Umfangsrand des Kreisringes 84c der
Linse relativ zueinander genau zentriert sind, wobei dieser Dezentrierungstest
beinhaltet, erste und zweite Kreise an den Innen- und Außenrand
des auf der Pixelanordnung erzeugten Kreisringes anzupassen. Hiernach werden
die tatsächlichen
Ränder
des Kreisringes gefunden oder extrahiert. Darauf wird ein erstes
Maskierungsverfahren verwendet, um Daten zu vermindern oder zu eliminieren,
die mit von der Peripherie der Linseninspektionsschale gebrochenem
oder abgelenktem Licht in Verbindung stehen, wobei irgendwelche
Randdefekte durch ein Verfahren hervorgehoben werden, welches als
Gummibandalgorithmus ("Rubber
Band Algorithm")
bezeichnet wird. Im folgenden werden irgendwelche Defekte durch
Verfahren weiter hervorgehoben, die als "Fill-in" und "Clean-up" bezeichnet werden, sowie durch ein
zweites Maskierungsverfahren, welches Daten eliminiert, die mit
bestimmten Pixeln in der Nähe
der Mitte des Kreisringbildes in Beziehung stehen.
-
Nachdem
irgendwelche möglichen
Defekte betont oder hervorgehoben wurden, wird eine Suche ausgeführt, um
festzustellen, ob tatsächlich
irgendwelche Defekte vorliegen. Insbesondere werden die Pixel der
Anordnung 46 durchsucht – oder, genauer gesagt, mit
jenen Pixeln in Verbindung stehende Datenwerte werden durchsucht – um Liniensegmente oder
Lauflängen
von Pixeln zu identifizieren, welche ein Teil des Defektes sein
könnten,
wobei jene Lauflängen
daraufhin gebündelt
werden, um die fehlerhaften Kandidaten zu identifizieren. Daraufhin
werden die Größen und
die Orte dieser fehlerhaften Kandiaten analysiert, um zu bestimmen,
ob es sich tatsächlich
um Defekte handelt, die die Linse ungeeignet für die Verwendung durch den
Kunden machen.
-
Wie
oben erwähnt
wird der Dezentrierungstest zur Bestimmung verwendet, ob der innere
und der äußere Umfangsrand
des Kreisringes 84c der Linse, welche unter der Kamera
hindurchläuft,
konzentrisch sind. Allgemein wird dies mit Bezug auf 15 erreicht, indem eine
Vielzahl von Abtastvorgängen 202 über die
Pixelanordnung 46 vorgenommen werden – oder, genauer gesagt, durch
das Studium der Datenwerte bei Adressen im Vorprozessorspeicher,
welche den Adressen der Pixel in dem ausgewählten Linienelement auf der
Anordnung 46 entsprechen – um festzustellen, ob der äußere und
der innere Rand 150a und 150b des Kreisringes 150 konzentrisch
sind.
-
16a und 16b veranschaulichen den Dezentrierungstest
oder die Routine R1. Auf den ersten Schritt 204 dieser
Routine wird als Schwellen-Unterprogramm
Bezug genommen; und der Zweck dieser Routine besteht darin, jeden
Pixel mit einem neuen Intensitätswert
I1 in Verbindung zu bringen, welcher gleich
dem maximalen oder dem minimalen Beleuchtungswert Tmax oder
Tmin ist, abhängig davon, ob der ursprüngliche
Beleuchtungswert I0 des Pixels jeweils oberhalb
oder unterhalb eines gegebenen Schwellenwertes Tt liegt.
Somit kann zum Beispiel jeder Pixel mit einem ursprünglichen
Beleuchtungswertwert I1 von 255 versehen
werden, wobei jeder Pixel mit einem ursprünglichen Beleuchtungswert von
127 oder weniger mit einem neuen Beleuchtungswert I1 von
0 versehen werden kann.
-
Der
nächste
Schritt 206 bei dem Dezentrierungstest besteht darin, die
Anzahl, die Orte und die Größen der
bei diesem Test verwendeten Abtastvorgänge 202 festzusetzen,
wobei dies dadurch vorgenommen wird, daß dem Prozessor 64 die
Adresse des Anfangspixels und die Länge sowie die Richtung eines
jeden Abtastvorganges zugeführt
werden. Diese Parameter können
so gewählt
werden, daß,
falls die Linse nicht stark dezentriert ist, jeder einer Vielzahl
von Abtastvorgängen
beide Ränder
des Kreisringes 150 kreuzt. Vorzugsweise wird dem Prozessor 64 oder
der Speicherplatte 70 eine teilpermanente Aufzeichnung
dieser Anfangsadressen, Richtungen sowie Abtastlängen zugeführt. Diese Aufzeichnung wird
während
der Inspektion jeder Linse von gegebenem nominalem Typ oder gegebener
nominaler Größe verwendet,
wobei diese teilpermanente Aufzeichnung geändert werden kann, wenn Linsen
von anderem nominalem Typ oder anderer nominaler Größe inspiziert
werden.
-
Als
nächstes
werden bei Schritt 210 die ausgewählten Abtastvorgänge über die
Pixelanordnung oder die Anzeige 46 vorgenommen. Wenn keine
Linse stark dezentriert ist, werden die meisten dieser Abtastvorgänge einen
beleuchteten Abschnitt dieser Anzeige kreuzen. Wenn ein Abtastvorgang
einen beleuchteten Abschnitt der Anzeige kreuzt, so werden die Adressen
des ersten und des letzten Pixels des Liniensegmentes, welches diesen
beleuchteten Abschnitt kreuzt, sowie die Länge dieses Liniensegmentes,
auf welches als Lauflänge
Bezug genommen wird, in einer Datei f1 aufgezeichnet.
Unterprogramme zum Ermitteln des ersten und des letzten Pixels in
einer Lauflänge,
um die Adressen jeder Pixel zu erhalten, und zum Bestimmen der Länge jeder Lauflänge, sind
den Fachleuten wohlbekannt, wobei beliebige solcher geeigneter Routinen
bei dem Dezentrierungstest eingesetzt werden können.
-
Daraufhin
wird bei Schritt 212 die Länge von jeder dieser Lauflängen mit
einem vorbestimmten Wert verglichen, wobei die Daten – das heißt, die Adressen des
ersten und des letzten Pixels in der Lauflänge sowie die Länge der
Lauflänge – welche mit
jeder Lauflänge
in Verbindung stehen und geringer sind als der vorbestimmte Wert,
ausgesondert. Diese Aussonderung wird vorgenommen, um Daten zu eliminieren
oder wenigstens ihre Menge zu vermindern, welche durch das Rauschen
auf der Pixelanordnung 46 verursacht wird – das heißt, durch
unerwünschtes
Licht, welches auf die Pixelanordnung fällt. Um dies näher auszuführen, wird
ein Rauschen, das aufgrund von Hintergrundlicht oder aufgrund von Licht
vorliegt, welches von dem erwünschten
Lichtweg durch Staub oder andere Teilchen abgelenkt wird, beleuchtete
Flächen
auf der Pixelanordnung erzeugen. In der großen Mehrheit der Fälle wird
jede dieser beleuchteten Flächen
nur ein oder nur eine geringe Gruppe benachbarter Pixel aufweisen.
Wenn einer der oben genannten Abtastvorgänge, die während Schritt 210 durchgeführt werden,
eine solche beleuchtete Fläche
kreuzen, so zeichnet der Prozessor die Adressen des ersten und des
letzten Pixels sowie die Länge
der Lauflänge über diese
beleuchtete Fläche
auf. Diese beleuchtete Fläche
und die dazugehörigen
Daten stehen jedoch nicht mit dem Kreisring 162 oder mit
seinen Rändern
in Beziehung, und somit wird Schritt 212 zur Verfügung gestellt,
um diese Daten zu eliminieren.
-
Der
nächste
Schritt 214 bei dem Dezentrierungstest dient dem Identifizieren,
daß jede
der verbleibenden Pixeladressen auf dem äußeren Rand oder dem inneren
Rand des Kreisringes liegen, wobei irgendein geeignetes Unterprogramm
hierzu eingesetzt werden kann. Beispielsweise können die Adressen des ersten
und des letzten Pixels jeder Lauflänge miteinander verglichen
werden; und die Pixel, die näher
am Zentrum der gesamten Pixelanordnung 46 liegen, können als
auf dem inneren Rand des Kreisringes 162 liegend betrachtet
werden, während
die Pixel, die weiter entfernt von dem Zentrum der Pixelanordnung
liegen, als auf dem äußeren Rand
des Kreisringes liegend betrachtet werden können. Alternativ können die
Abtastvorgänge
in zwei Gruppen unterteilt werden, so daß für jeden Abtastvorgang in der
ersten Gruppe, falls eine beleuchtete Lauflänge während des Abtastvorganges gefunden wird,
die ersten und die letzten Pixel in der Lauflänge jeweils auf der äußeren und
der inneren Kante des Kreisringes liegen; und für jeden Abtastvorgang in der
zweiten Gruppe, falls eine beleuchtete Lauflänge während des Abtastvorganges gefunden
wird, befinden sich das erste und das letzte Pixel in der Lauflänge jeweils
auf dem inneren und dem äußeren Rand des
Kreisringes.
-
Nachdem
bestimmt wurde, daß jedes
Pixel auf dem inneren oder dem äußeren Rand
des Kreisringes 162 liegt, wird bei Schritt 216 die
Anzahl der auf jedem Rand gefundenen Pixel gezählt. Wenn irgendeine dieser
Zahlen geringer ist als 3, so wird bei Schritt 220 die
Linse auf der Basis verworfen, daß die Linse stark dezentriert
ist. Wenn jedoch wenigstens drei Pixel auf jedem Rand gefunden wurden,
so wird bei Schritt 222 ein Unterprogramm aufgerufen, um zunächst einen
ersten Kreis an die Pixel die auf dem äußeren Rand des Kreisringes
gefunden wurden, anzupassen, zweitens einen zweiten Kreis an die
Pixel, die auf dem inneren Rand des Kreisringes gefunden wurden,
anzupassen und drittens die Mittelpunkte und die Radien dieser beiden
Kreise zu bestimmen. Zahlreiche Unterprogramme sind wohlbekannt,
um einen Kreis an drei oder mehr Punkte anzupassen und um den Mittelpunkt
und den Radius dieses Kreises zu berechnen, wobei jedes dieser Unterprogramme
bei dem Dezentrierungstest in Schritt 222 angewandt werden
kann.
-
Nachdem
die Mittelpunkte dieser beiden angepaßte Kreise berechnet wurden,
wird der Abstand d zwischen diesen beiden Mittelpunkten bei Schritt 224 bestimmt.
Dieser Abstand wird dann bei Schritt 226 mit einem ersten
Wert d1 verglichen; und wenn der Abstand
größer ist
als d1, so wird die Linse bei Schritt 220 als
stark dezentriert verworfen. Wenn der Abstand d geringer ist als
d1, so wird bei Schritt 232 dieser
Abstand d mit d2 verglichen, bei welchem
es sich um den maximal annehmbaren Abstand zwischen den Kreisen
des inneren und des äußeren Randes
des Kreisringes 150 handelt. Wenn der Abstand d zwischen
den Mittelpunkten der angepaßten Kreise
größer ist
als d2, so wird die Linse bei Schritt 234 als
dezentriert verworfen; wenn jedoch der Abstand d gleich oder geringer
ist als d2, so besteht die Linse den Dezentrierungstest,
wie bei Schritt 236 angedeutet.
-
Wenn
eine Linse den Dezentrierungstest besteht, so setzt der Prozessor 64 einen
Prozeß oder eine
Routine R2 in Gang, auf welche als Randdetektor
Bezug genommen wird, um einen Satz von Beleuchtungswerten zu erzeugen,
welche umgekehrt verwendet werden können, um die Pixel auf den
Rändern
des Kreisringes zu identifizieren. Typischerweise sind diese Ränder keine
perfekten Kreise und somit von den angepaßten Kreisen, die während des Dezentrierungstestes
gefunden wurden, verschieden. Dieser neue Satz Beleuchtungswerte
wird durch eine Serie morphologischer Operationen oder Änderungen
bezüglich
der ursprünglichen
Intensitätswerte erhalten,
die jedem Pixel der Anordnung 46 zugeordnet sind, oder
damit in Verbindung stehen. Diese morphologischen Änderungen
sind in den 17a bis 17i bildlich dargestellt
und in Form eines Flußdiagrammes
in 18 gezeigt. Spezieller
zeigt 17a ein Bild eines
Kreisringes 150 auf der Pixelanordnung 46; und 17b zeigt eine vergrößerte Ansicht eines
Abschnittes dieses Kreisringes und zeigt ebenso ein kurzes Liniensegment 240 oder
einen Abtastvorgang über
diesen Kreisringabschnitt und die benachbarten Flächen der
Pixelanordnung. 17c veranschaulicht
die Intensitätswerte
I1 der Pixel in diesem Abtastvorgang 240;
und wie darin dargestellt, haben die Pixel in den dunklen Flächen von 17b einen geringeren oder
einen I1-Wert von 0, wobei die Pixel in
den hellen Flächen
von 17b einen höheren I1-Wert haben, wie zum Beispiel Tmax.
-
Mit
Bezug auf 18 und die 17c und 17d, wird in den ersten Schritt 242 des
Randdetektorprozesses ein neuer Wert I2 für jedes
Pixel berechnet; und insbesondere wird der I2-Wert
für jedes
Pixel gleich dem Durchschnitt der I1-Werte
dieses Pixel und seiner acht unmittelbar benachbarten Pixel gesetzt.
Der Unterschied zwischen den I1- und den I2-Werten für die Pixel in der Anordnung 46 besteht darin,
daß sich
die letzteren Werte eher graduell zwischen den Pixeln mit den geringsten
I2-Werten (welche allgemein jene Pixel in den
dunklen Flächen
der Pixelanordnung sind) und den Pixeln mit den höchsten I2-Werten
(welche allgemein jene Pixel in den hellen Flächen der Anordnung 46 sind) ändern. Dieser Unterschied
kann am besten durch den Vergleich der 17c und 17d verstanden
werden.
-
Dann
wird bei Schritt 244 ein weiterer Wert I3 für jedes
Pixel bestimmt; und speziell wird der I3-Wert für jedes
Pixel gleich dem minimalen I2-Wert des Pixels
und seiner acht unmittelbar benachbarten Pixel gesetzt. Mit Bezug
auf die 17d und 17e können sich die I3-Werte über den
Abtastvorgang 240 in einer sehr ähnlichen Weise ändern, in
der sich die I2-Werte über den Pixel-Abtastvorgang ändern. Der
prinzipielle Unterschied zwischen der Art, in der sich die I2- und I3-Werte der Pixel über die
Pixelanordnung ändern,
ist der, daß das
Band der Pixel mit den höchsten
I3-Werten ein wenig schmaler ist als das
Band der Pixel mit den höchsten
I2-Werten.
-
Der
nächste
Schritt 246 bei dem Randdetektorprozeß besteht darin, noch einen
weiteren Wert I4 für jedes Pixel gemäß der Gleichung
I4 = I2 – I3 zu bestimmen. Mit speziellem Bezug auf 17f haben die meisten Pixel
in dem Abtastvorgang 240 I4-Werte von
Null; jedoch haben die Pixel auf und in radialer Richtung unmittelbar
innerhalb der beiden Ränder des
Kreisringes 162 positive I4-Werte. Als nächstes wird
bei Schritt 250 ein I5-Wert für jedes
Pixel bestimmt; und spezieller wird der I5-Wert
von jedem Pixel gleich dem maximalen I2-Wert
des Pixels und seiner acht unmittelbar benachbarten Pixel gesetzt.
Für die
meisten Pixel der Pixelanordnung 46 ist der I5-Wert
des Pixels derselbe wie der I2-Wert des
Pixels. Jedoch sind für
die Pixel innerhalb eines gegebenen Abstandes von den Rändern des
Kreisringes 150 die I5-Werte der
Pixel größer als
die I2-Werte der Pixel, wobei das Band der
Pixel mit den höchsten I5-Werten geringfügig breiter ist als das Band
der Pixel mit den höchsten
I2-Werten.
-
Der
nächste
Schritt 252 in dem Randdetektorprozeß besteht darin, noch einen
weiteren Wert I6 für jedes Pixel gemäß der Gleichung
I6 = I5 – I2 zu bestimmen. Mit speziellem Bezug auf
die 17h werden die meisten
der Pixel auf der Pixelanordnung einen I6-Wert
von Null haben; jedoch haben die Pixel auf und in radialer Richtung
unmittelbar außerhalb der
beiden Ränder
des Kreisringes 150 positive I6-Werte.
Als nächstes
wird bei Schritt 254 ein I7-Wert jedem
Pixel zugeordnet; und spezieller wird der I7-Wert
jedes Pixels gleich dem kleineren der I4-
und I6-Werte des Pixels gesetzt. Mit Bezug
auf die 17i werden die
meisten der Pixel auf der Pixelanordnung einen I7-Wert
von Null haben; jedoch haben die Pixel, die direkt auf und unmittelbar
benachbart zu den beiden Rändern
des Kreisringes 150 liegen, positive I7-Werte.
Auf diese Weise identifizieren die I7-Werte der Pixel,
daß die
Pixel auf den Rändern des
Kreisringes liegen.
-
Ein
Schwellen-Unterprogramm kann daraufhin bei Schritt 256 aufgerufen
werden, um die Unterscheidung zwischen den Pixeln auf den Rändern des Kreisringes 150 und
den anderen Pixeln auf der Anzeige 46 zu verdeutlichen.
Insbesondere kann jedem Pixel noch ein weiterer Wert I8 zugeordnet
werden, welcher gleich dem maximalen Beleuchtungs-Intensitätswert Tmax oder dem minimalen Beleuchtungs-Intensitätswert Tmax ist, davon abhängig, ob der I7-Wert des
Pixels jeweils oberhalb oder unterhalb eines gegebenen Schwellenwertes
liegt, wie zum Beispiel Tt. Somit kann zum
Beispiel jeder Pixel mit einem I7-Wert,
welcher größer ist
als 32 mit einem I8-Wert gleich 255 versehen
werden, wobei jeder Pixel mit einem I7-Wert
von 32 oder weniger mit einem I8-Wert von
Null versehen werden kann.
-
In 17j ist jedes Pixel der
Anordnung 46 mit einer Intensität beleuchtet, die gleich seinem I8-Wert ist.
-
Während der
Berechnung und der Verarbeitung der I1-I8-Werte wird bevorzugt jeder Satz von Pixelwerten
in einem entsprechenden Speicherregister in dem Vorprozessor 62 gespeichert – das heißt, daß beispielsweise
die I0-Werte alle in einem ersten Register
gespeichert werden, die I1-Werte alle in
einem zweiten Register gespeichert werden und die I2-Werte
alle in einem dritten Register gespeichert werden. Es ist allerdings
nicht erforderlich, alle I1-I8-Werte während der
gesamten Verarbeitungsperiode für jede
Linse zu speichern; und beispielsweise können während jeder Verarbeitungsperiode
die I3-Werte verworfen werden, nachdem die
I4-Werte berechnet wurden, und die I5-Werte können
verworfen werden, nachdem die I6-Werte bestimmt
wurden.
-
Zusätzlich ist
es nicht erforderlich, I2-I8-Werte für alle Pixel
in der Anordnung 46 zu berechnen. Bei einer ophthalmischen
Linse eines gegebenen Typs wird der Kreisring der Linse in einem
vergleichsweise wohldefinierten Bereich oder einer Fläche der
Pixelanordnung 46 erscheinen, und es ist nur erforderlich, die
I2-I8-Werte für die Pixel
in diesem Bereich oder der Fläche
zu bestimmen. Jedoch kann es aus praktischen Gründen häufig einfacher sein, die I2-I8-Werte für alle Pixel
in der Anordnung 46 zu berechnen, statt weitere Verarbeitungsschritte
hinzuzufügen,
um jene Pixel zu identifizieren, die sich auf der gegebenen, interessierenden
Fläche
befinden.
-
Nachdem
die Randdetektorroutine beendet ist, ruft das Linseninspektionssystem
eine Maskierungsroutine auf, um einen Satz Pixelbeleuchtungswerte
zu erzeugen, welcher frei ist von dem Effekt, der durch den Rand
der Linseninspektionsschale erzeugt wird, welche zum Halten der
Linse verwendet wird. Genauer gesagt wird, wenn eine ophthalmische Linse
durch einen Lichtblitz aus einer Blitzlichtlampe 30 beleuchtet
wird, auch Licht durch die Schale transmittiert, welche die Linse
hält. Der
Rand der Schale kann einen Teil dieses Lichtes ausreichend brechen, so
daß das
Licht über
die Blende 40 und auf die Pixelanordnung 46 hinaus
transmittiert wird, wobei darauf ein Bild oder ein Teilbild des
Randes der Schale erzeugt wird, wie bei 260 in 19a gezeigt. Dieses Bild
steht mit der Linse selbst nicht in Beziehung, und somit sind alle
Daten, die mit dem Schalenrandbild in Verbindung stehen, für die Verarbeitung
der mit dem Linsenbild selbst in Verbindung stehenden Daten unnötig und
unerwünscht;
es wird eine Maskierungsroutine aufgerufen, um das Schalenrandbild
von der Pixelanordnung 46 zu eliminieren oder genauer,
um einen Satz von Pixelbeleuchtungswerten zu erzeugen, der frei
ist von Pixeldaten, die mit dem oben erwähnten Schalenrandbild 260 in
Verbindung stehen.
-
20 ist ein Flußdiagramm,
welches eine bevorzugte Maskierungsroutine R3 veranschaulicht. Der
erste Schritt 262 in dieser Routine besteht darin zu bestimmen,
ob bei den Schritten 260 oder 226 des Dezentrierungstestes
wenigstens drei Pixel auf dem äußeren Rand
des Kreisringes 162 gefunden wurden oder ob gefunden wurde,
daß die
ophthalmische Linse stark dezentriert ist. Wenn bei einem dieser
beiden Schritte des Dezentrierungstestes gefunden wurde, daß die Linse
stark dezentriert ist, so wird die Maskierungsroutine R3 selbst
bei Schritt 262 beendet.
-
Wenn
die Routine R3 nicht bei Schritt 262 endet,
so geht die Routine zum Schritt 264 über, bei dem die Koordinaten
des Mittelpunktes des Kreises erhalten werden sollen, welcher an
den äußeren Rand 150a des
Kreisringes 150 während
des Dezentrierungstestes angepaßt
wurde. Diese Koordinaten wurden bestimmt und daraufhin im Speicher,
entweder im Speicher des Prozessors 64 oder auf der Speicherplatte 70,
während
des Dezentrierungstestes gespeichert, und somit können diese
Koordinaten dadurch erhalten werden, daß sie einfach aus dem Speicher
wiedergewonnen werden. Sobald diese Mittelpunktskoordinaten erhalten
wurden, wird ein Maskierungsunterprogramm bei Schritt 266 aufgerufen.
Nun, mit Bezug auf 19b, überlagert
dieses Unterprogramm in der Tat die Pixelanordnung 46 mit einer
kreisförmigen
Maske 270, die bezüglich
der obengenannten Mittelpunktskoordinaten zentriert ist, wobei diese
einen Durchmesser aufweist, der geringfügig größer ist als der Durchmesser
des an den äußeren Rand
des Kreisrings 150 angepaßten Kreises. Das Maskierungsunterprogramm
weist dann jedem Pixel ein I9-Wert abhängig davon,
ob sich das Pixel innerhalb oder außerhalb der Maske befindet.
Insbesondere weist das Maskierungsunterprogramm bezüglich eines
jeden Pixels außerhalb
der Maske dem Pixel einen I9-Wert von Null
zu; und bezüglich
jedes Pixels innerhalb der Maske weist das Maskierungsunterprogramm
dem Pixel einen I9-Wert zu, der gleich dem
I8-Wert des Pixels ist.
-
Genauer
werden bei Schritt 266 die Koordinaten (x0,
y0) des oben erwähnten Mittelpunktes sowie ein
Radiuswert r1, der geringfügig größer gewählt wird
als der Radius des an den äußeren Rand
des Kreisringes 150 angepaßten Kreises, auf das Maskierungsunterprogramm übertragen.
Daraufhin bildet dieses Unterprogramm eine Datei f2 aus
Adressen aller Pixel in der Anordnung 46, die sich innerhalb
des Abstandes r1 dieses Mittelpunktes (x0, y0) befinden. Daraufhin
wird bei Schritt 272 die Adresse von jedem Pixel in der
Anordnung 46 geprüft,
um zu bestimmen, ob sie sich in dieser Datei befindet. Wenn sich
die Pixeladresse in dieser Datei befindet, so wird bei Schritt 274 der
I9-Wert des Pixels gleich dem I8-Wert des Pixels gesetzt;
wenn sich die Pixeladresse jedoch nicht in dieser Datei befindet,
so wird bei Schritt 276 der I9-Wert
des Pixels auf Null gesetzt.
-
Zahlreiche
spezifische Maskierungsunterprogramme sind in der Technik wohlbekannt
und können
bei Schritt 266 der Routine R3 eingesetzt
werden.
-
Die 19c zeigt die Pixel der
Anordnung 46, die mit einer Intensität beleuchtet sind, welche gleich
ihren entsprechenden I9-Werten ist.
-
Nachdem
der in 20 gezeigte Maskierungsvorgang
abgeschlossen ist, beginnt der Prozessor 64 einen weiteren
Vorgang, auf den als Gummibandalgorithmus Bezug genommen wird. Dieser Algorithmus
beinhaltet allgemein die Analyse und die Verarbeitung von Datenwerten
für oder
bezogen auf die Pixel in und unmittelbar benachbart dem Kreisringrand 150a,
wobei die 21a und 21b ein Flußdiagramm
zeigen, welches allgemein den Gummibandalgorithmus veranschaulicht.
Mit Bezug auf diese Figuren dient der erste Schritt 280 bei
diesem Algorithmus dem Erhalten der Mittelpunktskoordinaten und des
Radius' des an den äußeren Rand 150a der
Linse in dem Dezentrierungstest angepaßten Kreises. Wie oben diskutiert,
wurden diese Werte bestimmt und daraufhin im Speicher während des
Dezentrierungstestes gespeichert, wobei diese Werte durch Wiedergewinnen
aus diesem Speicher erhalten werden können.
-
Der
nächste
Schritt 282 bei dem Gummibandalgorithmus soll ein Pixel
auf dem Außenrand 150a des
Kreisringes 150 orten, indem, ausgehend vom linken Rand
der Pixelanordnung 46, nach innen gesucht wird, bis ein
beleuchtetes Pixel gefunden wird. Es ist möglich, daß das erste während einer
gegebenen Suche gefundene beleuchtete Pixel nicht auf dem Rand des
Bildes der Linse liegt, sondern irgendwo anders und aufgrund von
Hintergrundrauschen beleuchet ist. Somit werden vorzugsweise eine
Vielzahl von Abtastvorgängen
oder Suchen bei Schritt 282 ausgeführt, um eine Vielzahl beleuchteter Pixel
zu finden, wobei die Orte dieser Pixel dann analysiert oder miteinander
verglichen werden, um sicherzustellen, daß ein Pixel auf dem Rand des
Linsenbildes gefunden wurde.
-
Sobald
ein erstes Pixel auf dem Rand des Linsenbildes gefunden wurde, geht
der Gummibandalgorithmus auf Schritt 284 über; und
bei diesem Schritt beginnt dieser Algorithmus in der Tat bei diesem
ersten Pixel und verfolgt den gesamten Weg um den Rand des Linsenbildes,
um eventuell zu diesem ersten Pixel zurückzukehren. Während dieses
ersten Verfolgens zeichnet der Algorithmus in der Datei f3 die Adressen der meisten oder aller der
Pixel auf dem Außenrand
des Linsenbildes auf; und der Algorithmus identifiziert ebenso größere Lücken im
Linsenrand, die Längen
jener Lücken
und größere Extrastücke auf
dem Linsenrand. Bei Schritt 286 zeichnet der Algorithmus
in der Datei f4 die Adressen der Pixel auf, welche
die Endpunkte der ausgewählten
Linien sind, was weiter unten genauer diskutiert wird, welche in der
Tat über
irgendwelche größeren Lücken im
Linsenrand und über
und auf jeder Seite von jedem größeren Extrastück auf dem
Rand gezeichnet werden.
-
Nachdem
dieser) erste Durchgang oder Verfolgung um das Linsenbild beendet
ist, bestimmt der Gummibandalgorithmus bei Schritt 290,
ob irgendeine Lücke,
welche gefunden worden sein könnte,
groß genug
ist, um zu bewirken, daß die
Linse zu verwerfen ist. Wenn eine solche Lücke gefunden wurde, wird die
Linse verworfen, wobei bei Schritt 292 der Drucker 76 die
Nachricht ausdruckt, daß die
Linse einen schlechten Rand aufweist.
-
Wenn
die Linse diesen Lückentest
bei Schritt 290 besteht, geht der Gummibandalgorithmus
dazu über,
den zweiten Durchgang oder die zweite Verfolgung um den Rand des
Linsenbildes duchzuführen. Bei
diesem zweiten Durchgang, wie bei 294 in 21b angezeigt, identifiziert der Algorithmus schwächere Merkmale,
wie zum Beispiel kleinere Lücken
und kleinere Extrastücke,
die sich entweder radial nach innen oder nach außen entlang dem Außenrand
der Linse erstrecken, wobei der Algorithmus ein jedes solches nachgewiesenes
Merkmal testet, um zu bestimmen, ob die Linse deswegen verworfen werden
sollte. Allgemein wird dies vorgenommen, indem wenigstens für alle ausgewählten Pixel
auf dem Außenrand
der Linse das Skalarprodukt zweier Vektoren durch dieses Pixel berechnet
wird, auf welche als Radialvektor und Randvektor Bezug genommen wird.
Der Radialvektor durch ein Pixel ist der Vektor, der sich ebenso
durch den Mittelpunkt des Kreises erstreckt, welcher dem Außenrand 150a des
Kreisringes 150 angepaßt
wurde. Der Randvektor durch ein Pixel ist der Vektor, der sich durch
das Pixel und ein zweites Pixel auf dem Außenrand des Kreisringes erstreckt,
um eine gegebene Anzahl von Pixeln in Rückwärtsrichtung oder gegen den
Uhrzeigersinn bezüglich
des ersteren Pixels entlang dem Außenrand 150a des Kreisrings 150.
-
Für jedes
Pixel auf einem regulären,
kreisförmigen
Abschnitt des Linsenrandes, welcher keinen Fehler aufweist – weder
eine Lücke
noch ein Extrastück – wird das
Skalarprodukt der beiden oben identifizierten Vektoren im wesentlichen
Null betragen, da der Radial- und der Randvektor durch dieses Pixel
im wesentlichen senkrecht zueinander stehen. Jedoch wird für die meisten
oder alle Pixel auf dem Rand einer Lücke oder eines Extrastückes auf
dem Linsenrand das Skalarprodukt des Rand- und des Radialvektors
durch dieses Pixel nicht gleich Null sein, da diese beiden Vektoren
nicht senkrecht zueinander stehen. Wenn irgendein berechnetes Produkt
größer ist
als ein vorgegebener Wert, so wird die Linse als nicht geeignet
für die
Verwendung durch den Kunden betrachtet und kann verworfen werden.
-
Wenn
die Linse die während
des zweiten Durchgangs um den Linsenrand angewandten Tests besteht,
so führt
der Gummibandalgorithmus einen dritten Durchgang um den Rand des
Linsenbildes aus, wie durch Schritt 296 in 21B dargestellt. Dieser dritte Durchgang
beinhaltet keinen Test zur Bestimmung, ob die Linse verworfen werden
sollte, sondern umfaßt
stattdessen die Verarbeitung oder die Vorbereitung von Daten für nachfolgende
Tests. Insbesondere wird dieser dritte Durchgang durchgeführt, um
einen Satz von Datenwerten zu erzeugen, welcher frei von Daten ist,
die mit irgendwelchen Defekten in der Linse in Verbindung stehen,
die sich unmittelbar innerhalb des äußeren Randes 150a des Kreisrings 150 befinden.
Dieser Satz von Datenwerten wird nachfolgend von einem Satz von
Datenwerten subtrahiert, welche mit jenen Defekten in Verbindung
stehende Daten aufweisen, um dadurch einen Satz von Datenwerten
zu erzeugen, die nur die mit jenen Fehlern in Verbindung stehenden
Daten aufweisen.
-
Allgemein
bestimmt bei diesem dritten Durchgang um den Linsenrand der Gummibandalgorithmus
die durchschnittliche radiale Dicke des Außenrandes 150a des
Kreisringes 150; und daraufhin setzt der Algorithmus die
I9-Werte aller derjenigen Pixel auf Null,
die sich unmittelbar innerhalb dieses äußeren Randes des Kreisringes
befinden. Wenn beispielsweise der äußere Rand des Kreisringes eine durchschnittliche
Dicke von sechs Pixeln hat, so kann der Gummibandalgorithmus die
I9-Werte aller Pixel auf Null setzen, die
sich zwischen 7 und 27 Pixeln in radialer Richtung innerhalb des äußeren Randes
des Kreisringes befinden.
-
Die 22 – 32 veranschaulichen
den Gummibandalgorithmus mit größerer Genauigkeit.
Spezieller veranschaulicht die 22 ein
geeignetes Unterprogramm S1 zum Orten eines
ersten Pixels P(x, y) auf dem äußeren Rand 150a des
Kreisringes 150. Beim Schritt 300 wird (x0, y0) auf die Koordinaten
des Mittelpunktes des Kreises gesetzt, welcher an den äußeren Rand
des Kreisringes während
des Dezentrierungstestes angepaßt
wurde; und bei Schritt 302 wird r0 gleich
dem Radius des äußeren angepaßten Kreises
gesetzt. Dann werden, wie von Schritt 304 repräsentiert,
eine Vielzahl horizontaler Abtastvorgänge über die Pixelanordnung 46 ausgeführt, wobei bei
oder ungefähr
bei dem Mittelpunkt des linken Randes der Anordnung begonnen wird.
Genauer studiert der Prozessor 64 die Datenwerte I9 bei Adressen im Vorprozessorspeicher, welche
Adressen von Pixeln entsprechen, die sich in ausgewählten horizontalen
Liniensegmenten auf der Pixelanordnung befinden. Während jedem
dieser Abtastvorgänge prüft der Prozessor 64 den
I9-Wert von jedem Pixel in einer gegebenen
horizontalen Reihe von Pixeln und identifiziert das erste Pixel
in dieser Reihe, welches einen I9-Wert oberhalb
eines gegebenen Wertes aufweist; und vorzugsweise wird eine Vielzahl
solcher Abtastvorgänge
ausgeführt,
was zu einer Vielzahl identifizierter Pixel führt.
-
Typischerweise
werden alle diese identifizierten Pixel auf dem äußeren Rand 150a des
Kreisringes 150 liegen. Es ist jedoch möglich, daß ein Pixel irgendwo auf der
Anordnung und auf der linken Seite des Randes einen hohen I9-Wert
aufgrund von Hintergrundrauschen oder Streulicht aufweist, welches
auf das Pixel während
des Linseninspektionsvorganges fällt,
wobei ein solches Pixel als beleuchtetes Pixel bei den oben erwähnten Abtastvorgängen identifiziert
werden könnte.
Um zu verhindern, daß ein
solches Pixel als ein Randpixel identifiziert wird, identifiziert
das Unterprogramm S1 bei Schritt 306 die Adressen
irgendwelcher solcher Pixel und verwirft sie. Spezieller bestimmt
das Unterprogramm zuerst den Abstand zwischen allen bei den Abtastvorgängen identifizierten
Pixeln und den Mittelpunkt (x0, y0) des an den äußeren Rand des Linsenbildes
während des
Dezentrierungstestes angepaßten
Kreises; und vergleicht zweitens jeden bestimmten Abstand mit r0, welcher gleich dem Radius des angepaßten äußeren Kreises
gesetzt wurde. Wenn der Abstand zwischen einem speziellen Pixel
und dem Mittelpunkt des angepaßten
Kreises r0 um mehr als um einen vorgegebenen
Abstand d3 überschreitet, so wird dieses
Pixel als nicht auf dem oder dem Rand des Kreisringes 150 unmittelbar
benachbart betrachtet, wobei die Adresse des Pixels verworfen wird.
Nachdem die Adressen aller Pixel, die während des Abtastvorganges gefunden
wurden, geprüft
wurden, um zu bestimmen, ob sie sich auf dem oder unmittelbar dem
Linsenrand benachbart befinden – und
diejenigen, die dies nicht erfüllen,
verworfen wurden – so
können
daraufhin, wie bei Schritt 310 gezeigt, irgendwelche Pixeladressen
als Pixel P(x, y) ausgewählt
werden, wobei daraufhin der erste Durchgang um den Rand des Linsenbildes
begonnen wird. 23 veranschaulicht genauer,
wie dieser erste Durchgang durchgeführt wird, und zeigt insbesondere
die Routine R4, um diesen Durchgang auszuführen. Mit
dem Pixel P(x, y) bei Schritt 312 beginnend, sucht der
Algorithmus in Vorwärtsrichtung
oder im Uhrzeigersinn entlang dem äußeren Rand des Kreisringes 150 nach
entweder einer großen
Lücke in
diesem Rand oder nach einem großen
Extrastück
auf diesem Rand, wie durch die Schritte 314 und 320 repräsentiert.
Irgendein geeignetes Unterprogramm oder Verfahren kann verwendet
werden, um entlang der Kante zu suchen. Zum Beispiel kann, beginnend
mit Pixel P(x, y), der Prozessor von jedem auf dem Rand gegebenen
Pixel die drei oder die fünf
nächsten
Pixel in der Reihe oberhalb und unterhalb des gegebenen Pixels oder
in der Spalte auf der rechten oder auf der linken Seite des gegebenen
Pixels prüfen,
abhängig
von dem Quadranten oder dem Sektor der Anzeige 46, in welcher das
gegebene Pixel angeordnet ist, um das nächste Pixel auf dem Linsenrand
zu identifizieren. Von diesem nächsten
Pixel kann der Prozessor diesen selben Vorgang verwenden, um wiederum
das nächste Pixel
auf dem Linsenrand zu identifizieren.
-
Auch
kann der Prozessor für
jedes Pixel, welches auf dem Linsenrand gefunden wurde, den Abstand
r zwischen diesem Pixel und dem Mittelpunkt (x0,
y0) des an den äußeren Rand der Linse angepaßten Kreises
bestimmen. Der Prozessor kann schließen, daß eine große Lücke gefunden wurde, wenn für jedes
einer gegebenen Anzahl aufeinanderfolgender Pixel auf dem Linsenrand,
r um mehr als einen gegebenen Betrag d9 kleiner
ist als r0 (das heißt, r0 – r < d9).
Umgekehrt kann der Prozessor schließen, daß ein großes Extrastück gefunden wurde, wenn für jedes
einer gegebenen Anzahl von aufeinanderfolgenden Pixeln auf dem Linsenrand
r um mehr als einen gegebenen wert dep größer ist
als r0 (das heißt r – r0 > dep).
-
Wenn
eine Lücke
oder ein Extrastück
gefunden wurde, so werden die Unterprogramme S2 oder S3 jeweils bei den Schritten 316 und 322 aufgerufen, welche
beide unten genauer diskutiert werden. Wenn weder eine Lücke noch
ein Extrastück
gefunden wurde, so geht die Routine R4 zu
Schritt 324 über.
-
Bei
Schritt 324 testet die Routine R4,
ob der erste Durchgang um den Rand des Kreisringes 150 vollständig ist,
wobei irgendein geeigneter, spezifischer Vorgang oder ein Unterprogramm
verwendet werden kann, um dies zu bewerkstelligen. Beispielsweise
wird, wie oben erwähnt,
wenn die Verfolgung um das Bild des Linsenrandes ausgeführt wird,
eine Datei f3 aus Adressen der Pixel erstellt,
die auf diesem Rand gefunden wurden. Bei Schritt 324 kann diese
Datei geprüft
werden, um zu bestimmten, ob die Adresse des jeweiligen betrachteten
Randpixels sich bereits in der Datei befindet. Wenn sich die Pixeladresse
bereits in der Datei befindet, so wird der erste Durchgang um das
Bild des Linsenrandes als vollständig
betrachtet, während
der Durchgang als nicht vollständig
betrachtet wird, wenn sich diese jeweilige Pixeladresse noch nicht
in der Datei f3 befindet. Wenn der erste
Durchgang beendet ist, so geht der Gummibandalgorithmus auf die
Routine R5 über; wenn jedoch der erste
Durchgang um die Linse nicht vollständig ist, so geht der Algorithmus
zu Schritt 326 über,
wobei die Adresse dieses derzeitig betrachteten Randpixels der Datei
f3 zugefügt
wird. Dann wird bei Schritt 330 das nächste Pixel auf dem Linsenrand gefunden
und P(x, y) wird gleich der Adresse dieses nächsten Pixels gesetzt, wobei
die Routine R4 daraufhin zu Schritt 312 zurückkehrt.
-
24 ist ein Flußdiagramm,
welches das Unterprogramm S2 skizziert,
das jedesmal aufgerufen wird, wenn eine Lücke auf dem äußeren Rand des
Kreisringes 150 gefunden wird. Der erste Schritt 332 in
diesem Unterprogramm dient dem Identifizieren und dem Aufzeichnen
der Adresse der Pixel am Anfang und am Ende der Lücke und
des Abstandes zwischen diesen beiden Endpixel in einer Datei f4. Diese beiden Pixel sind bei P1 bzw.
P2 in 25A gezeigt.
Sobald eine Lücke
gefunden wurde – das
heißt, für jedes
einer gegebenen Anzahl aufeinanderfolgender Pixel auf dem Linsenrand
ist r um mehr als dg kleiner als r0 – so
kann das letzte Pixel auf dem Linsenrand vor der gegebenen Anzahl aufeinanderfolgender
Pixel als das Pixel am Anfang der Lücke betrachtet werden. Ebenso
kann, sobald eine Lücke
gefunden wurde, das Ende der Lücke
gefunden werden, indem über
die Lücke
gesucht wird, entlang der Pixel auf dem an den äußeren Rand der Linse bei dem
Dezentrierungstest angepaßten
Kreis, wobei um eine gegebene Anzahl von Pixeln radial innerhalb
und außerhalb
von dem Abschnitt des angepaßten
Kreises gesucht wird, bis der Linsenrand gefunden wird – das heißt, bis
beleuchtete Pixel – oder
genauer – Pixel
mit großen
I9-Werten gefunden werden. Nachdem der Linsenrand
gefunden wurde, kann die Lücke
als beendet betrachtet werden, sobald eine Serie aufeinanderfolgender
Pixel gefunden wurde, die sich alle innerhalb eines gewissen Abstandes
von dem angepaßten
Kreis befinden; und insbesondere, wenn für jedes Pixel in dieser Serie
r0 – r
geringer ist als d9. Das letzte Pixel auf
dem Linsenrand vor der Serie aufeinanderfolgender Pixel kann als
das Pixel am Ende der Lücke
betrachtet werden.
-
Bei
Schritt 340 des Unterprogrammes S2 werden
die I9-Werte der Pixel auf der Linie zwischen den
Pixeln P1 und P2 – das Liniensegment
L1 in 25b – auf den
maximalen Beleuchtungsintensitätswert
gesetzt, und daraufhin kehrt das Unterprogramm zurück zur Routine
R4.
-
26 zeigt ein Flußdiagramm,
welches das Unterprogramm S3 veranschaulicht,
welches bei Schritt 322 der Routine R4 aufgerufen
wird, wenn ein Extrastück 350 auf
dem Rand des Kreisringes 150 gefunden wurde. Die ersten,
wenigen Schritte in Routine R3 werden in
der Tat durchgeführt,
um verschiedene Brückenlinien
zu zeichnen, die sich auf das Extrastück beziehen. Insbesondere identifiziert
bei Schritt 352 das Unterprogramm die Pixel P3 und
P4, gezeigt in 25b, auf dem Rand des Kreisringes 150 am
Anfang und am Ende des Extrastückes 350; und
daraufhin wird beim Schritt 354 der I9-Wert
von jedem Pixel auf einem Liniensegment L2,
gezeigt in 25c, zwischen
den Pixeln P3 und P4 auf
Tmax gesetzt. Als nächstes identifiziert bei Schritt 356 das Unterprogramm
die Adresse von einem Pixel P5, welches
sich auf dem Rand des Kreisringes 150 um eine gegebene
Anzahl von Pixeln in Rückwärtsrichtung – oder entgegen
dem Uhrzeigersinn – vom
Beginn des Extrastückes 350 entfernt
befindet; und bei Schritt 360 wird das Pixel P6 auf
dem Rand des Extrastückes,
welches bei einem gegebenen Abstand d4 von dem
Pixel P5 liegt, gefunden. Als nächstes wird
bei Schritt 362 – und
ebenso mit Bezug auf die 25d – der I9-Wert von jedem Pixel auf einer Linie L3 zwischen den Pixeln P5 und
P6 auf Tmax gesetzt.
-
Als
nächstes
identifiziert das Unterprogramm bei Schritt 364 die Adresse
eines anderen Pixels P7, welches sich auf
dem Rand des Kreisringes 150 um eine gegebene Anzahl von
Pixeln in Vorwärtsrichtung – oder im
Uhrzeigersinn – von
dem Rand des Extrastückes
entfernt befindet; und daraufhin identifiziert bei Schritt 366 das
Unterprogramm das Pixel P8 auf dem Rand
des Extrastückes,
weiches sich in einem gegebenen Abstand d5 von
dem Pixel P8 befindet. Bei Schritt 370 wird
der I9-Wert von jedem Pixel auf der Linie
L4, gezeigt in 25e, zwischen den Pixeln P7 und
P8 ebenso auf Tmax gesetzt.
Nachdem die angemessenen Brückenlinien
gezeichnet wurden, kehrt das Unterprogramm zur Routine R4 zurück.
-
Nachdem
der erste Durchgang um das Bild des Linsenrandes beendet ist, wird
das Unterprogramm R5 aufgerufen. Diese Routine,
die in 27 veranschaulicht
ist, wird verwendet, um zu bestimmen, ob irgendwelche der Lücken, die
während
des ersten Durchganges um das Bild des Linsenrandes gefunden worden
sein könnten,
so breit sind, daß die Linse
für das
Tragen durch den Kunden ungeeignet ist. Der erste Schritt 376 in
der Routine R5 dient dem Bestimmen, ob irgendwelche
Lücken
in der Tat während
des ersten Durchganges um den Linsenrand gefunden wurden. Wenn keine
Lücken
gefunden wurden, wird die Routine R5 selbst
beendet und der Gummibandalgorithmus geht zur Routine R6 über. Wenn
jedoch irgendwelche Lücken
während
des ersten Durchganges um den Linsenrand gefunden wurden, geht die
Routine R5 zu Schritt 380 über. Bei
diesem Schritt wird jede Lükenbreite – eine nach
der anderen – mit
einem gegebenen Wert d6 verglichen; und
wenn irgendeine Lückenbreite
größer ist
als dieser Wert d6, so wird die Linse als
für die
Verwendung durch den Kunden ungeeignet betrachtet, und die Linse
wird beim Schritt 382 verworfen. Wenn jedoch alle Lückenbreiten
geringer sind als d6, so endet die Routine
R5, und der Gummibandalgorithmus geht zur Routine
R6 über,
welche den zweiten Durchgang oder die zweite Verfolgung um das Bild
des Linsenrandes ausführt.
-
Die
Routine R6 ist in 28 veranschaulicht. Wie bereits erwähnt, sucht
die Routine primär
nach schwachen Lücken
in dem Linsenrand und kleinen Extrastücken auf dem Linsenrand, welche
nicht als Lücken
oder Extrastücke
in der Routine R4, welche der erste Durchgang
um den Linsenrand war, identifiziert wurden. Insbesondere wird bei
Schritt 384 die Adresse des Pixels P(x, y) gleich der Adresse
des ersten Pixels in der Datei f3 gesetzt.
Dann werden bei den Schritten 386, 390 und 392 zwei
Vektoren V1 und V2,
auf die jeweils als Rand- und Radialvektoren Bezug genommen wird,
identifiziert, wobei das Skalarprodukt dieser beiden Vektoren berechnet
wird. Spezieller ist der erste Vektor V1 der
Vektor durch das Pixel P(x, y) und ein zweites Pixel auf dem Linsenrand, welches
um eine gegebene Anzahl von Pixeln in Rückwärtsrichtung – oder entgegen
dem Uhrzeigersinn – von
dem Pixel P(x, y) entlang dieses Linsenrandes liegt, und der zweite
Vektor V2 ist der Radialvektor des Kreisringes 150,
welcher sich durch das Pixel P(x, y) erstreckt. Die Neigungen dieser
beiden Vektoren und ihr Skalarprodukt kann in einfacher Weise aus
den Adressen der Pixel bestimmt werden, durch welche sich die Vektoren
erstrecken.
-
Mit
Bezug auf 29, wenn das
Pixel P(x, y) sich auf einem regulären, kreisförmigen Abschnitt des Linsenrandes
befindet, so verläuft
der Randvektor V1 durch das Pixel im wesentlichen
tangential zum Linsenrand, wie bei 394 in 29 gezeigt. Ebenso ist dieser Vektor
V1 im wesentlichen senkrecht zu dem Radialvektor
V2 durch dieses Pixel, und das Skalarprodukt
dieser beiden Vektoren V1 und V2 ist
im wesentlichen gleich Null. Wenn sich jedoch das Pixel P(x, y)
auf einem irregulären
Abschnitt des Linsenrandes befindet, wie beispielsweise auf dem
Rand einer Lücke
oder eines Extrastückes
der Linse, wie bei 396 und 400 in 29 gezeigt,
so sind der Randvektor V1 und der Radialvektor
V2 durch das Pixel P(x, y) normalerweise
nicht senkrecht zueinander, wobei das Skalarprodukt dieser beiden
Vektoren normalerweise nicht gleich Null sein wird.
-
Das
Skalarprodukt dieser beiden Vektoren V1 und
V2 wird bei Schritt 402 mit einem
gegebenen Wert d7 verglichen. Wenn dieses
Skalarprodukt gleich oder größer als
dieser gegebene Wert ist – was anzeigt,
daß eine
merkliche Lücke
oder ein Extrastück
in der Fläche
des Pixels P(x, y) vorliegt, so wird die Linse als unannehmbar für die Verwendung
durch den Kunden betrachtet und bei Schritt 404 verworfen, und
die gesamte Routine R6 wird beendet. Wenn
bei dem Schritt 402 das berechnete Skalarprodukt geringer
ist als d7 – was anzeigt, daß in der
Fläche
des Pixels P(x, y) irgendeine Abweichung des Linsenrandes von einem
perfekten Kreis innerhalb annehmbarer Grenzen liegt – so geht
die Routine R6 zu Schritt 406 über. Bei
diesem Schritt führt
die Routine einen Test zur Bestimmung aus, ob dieser zweite Durchgang – oder die
zweite Verfolgung – um
das Bild des Linsenrandes beendet ist. Dies wird spezieller dadurch
erreicht, indem ein Test durchgeführt wird, um zu bestimmen,
ob das Pixel P(x, y) das letzte Pixel in der Datei f3 ist.
Wenn ja, so ist der zweite Durchgang beendet, und der Gummibandalgorithmus
geht zur Routine R7 über. Wenn jedoch bei Schritt 406 bestimmt
wird, daß dieser
zweite Durchgang um das Linsenrandbild nicht beendet ist, so wird
bei Schritt 408 die Adresse des Pixels P(x, y) gleich der
Adresse des nächsten
Pixels in der Datei f3 gesetzt, und daraufhin
kehrt die Routine zu Schritt 386 zurück. Die Schritte 386 bis 408 werden
wiederholt, bis entweder die Linse verworfen wird oder bis für jedes
Pixel in der Datei f3 das zugehörige Skalarprodukt
der beiden Vektoren V1 und V2 durch
dieses Pixel berechnet wurde und gefunden wurde, daß es geringer
ist als d7, wobei dann der Gummibandalgorithmus
zur Routine R7 übergeht, welche den dritten
Durchgang – oder
die dritte Verfolgung – um
den Linsenrand ausführt.
-
Vorzugsweise
wird das oben erwähnte
Skalarprodukt nicht für
alle Pixel auf dem Linsenrand berechnet, und insbesondere wird das
Produkt nicht für die
Pixel berechnet, die auf den Rändern
von Lücken oder
Extrastücken
liegen, welche während
der ersten Verfolgung um den Linsenrand gefunden wurden. Es ist
nicht erforderlich, dieses Skalarprodukt für diese Lücken- und Extrastückpixel
zu berechnen, da es bereits bekannt ist, daß die Pixel entweder in einer
Lücke oder
auf einem Extrastück
liegen, wobei eine merkliche Menge von Verarbeitungszeit gespart
werden kann, indem die Vektoren V1 und V2 durch diese Pixel sowie das Skalarprodukt
jener beider Vektoren nicht bestimmt werden.
-
Wenn
die Routine R6 beendet ist, geht der Gummibandalgorithmus
zur Routine R7 über, welche den dritten Durchgang – oder die
dritte Verfolgung – um
den Linsenrand ausführt.
Wie bereits diskutiert ist der Zweck dieses dritten Durchganges
in der Tat derjenige, einen neuen Satz von Datenwerten I10 zu erzeugen, welcher frei von irgendwelchen
Daten ist, die mit irgendwelchen Trübungen in der Linse in Verbindung
stehen, die sich unmittelbar innerhalb des äußeren Randes der Linse befinden. 30 zeigt die Routine R7 genauer; und diese Routine umfaßt allgemein
drei Abschnitte. Im ersten Abschnitt wird der I10-Wert für jedes
Pixel gleich dem I9-Wert für das Pixel
gesetzt; im zweiten Abschnitt wird ein durchschnittlicher Randdickenwert
N für den äußeren Rand 164 des
Kreisringes 162 berechnet; und im dritten Abschnitt werden
die I10-Werte der Pixel in einem gegebenen
Bereich weiter innerhalb dieser durchschnittlichen Randdicke auf
Null gesetzt.
-
Spezieller
wird bei Schritt 410 der Routine R7 der
I10-Wert für jedes Pixel gleich dem I9-Wert für
das Pixel gesetzt. Als nächstes
wird mit Bezug auf die 30 und 31 bei Schritt 410 eine
gegebene Anzahl von Pixeln, gezeigt bei 414a-e in 31, auf dem extremen äußeren Rand 150a des
Kreisringes 150 ausgewählt.
Dann zählt
bei Schritt 416 die Routine R7 die Anzahl
beleuchteter Pixel auf jedem der Radien, gezeigt bei 420a-e in 31, des Linsenbildes, welche durch
die Pixel 414a-e gehen. Beispielsweise kann die
Routine das Pixel auf dem extremen äußeren Rand des Kreisringes
als erstes Pixel zählen,
wobei dann radial nach innen bezüglich
dieses Pixels gesucht wird, und diesen Zählwert um 1 für jedes
beleuchtete Pixel auf diesem Radius erhöhen. Bei Schritt 422 wird
die Durchschnittszahl beleuchteter Pixel pro Radius berechnet; und
dies kann beispielsweise dadurch erfolgen, daß einfach die gesamte Anzahl
gezählter,
beleuchteter Pixel durch die Anzahl der erfolgten radialen Abtastvorgänge dividiert
wird. Typischerweise ist dieser Durchschnittswert keine ganze Zahl
und somit wird bevorzugt der Durchschnittswert daraufhin auf die
nächstgrößere ganze Zahl
erhöht.
-
Im
nächsten
Abschnitt der Routine R7 wird ein dritter
Durchgang um den äußeren Rand 150a des
Kreisringes 150 durchgeführt. Um diesen Durchgang zu
beginnen, wird irgendein Pixel auf dem Rand als Anfangspixel P (x,
y) ausgewählt,
wie bei Schritt 424 in 30 angezeigt
ist. Daraufhin werden, wie durch die Schritte 426 und 430 repräsentiert,
die I10-Werte für ausgewählte Pixel, die sich radial
innerhalb der durchschnittlichen Randdicke befinden, auf Null gesetzt.
Spezieller zählt
die Routine bei jedem Pixel auf dem äußeren Rand des Kreisrings 162 die Anzahl
N von Pixeln radial innerhalb entlang dem Radius der Linse. Dann
wird für
jede einer gegebenen Anzahl von Pixeln, radial weiter innerhalb
entlang dem Radius, der I10-Wert des Pixels
auf Null gesetzt. Mit Bezug auf 32 setzen
diese Schritte der Routine in der Tat die I10-Werte
der Pixel in der schraffierten Fläche 432 auf Null.
-
Bei
Schritt 434 der Routine R7 wird
eine Überprüfung ausgeführt, um
zu bestimmen ob dieser dritte Durchgang um das Bild des Linsenrandes
beendet ist, wobei irgendein geeignetes Unterprogramm aufgerufen
werden kann, um dies auszuführen.
Wenn beispielsweise das als für
diesen Durchgang als Anfangspixel ausgewählte Pixel das obere Pixel
in der Datei f3 ist, so kann der Durchgang
als beendet betrachtet werden, nachdem die Routine die Schritte 426 und 430 für die unteren
Pixel in dieser Datei ausgeführt
hat. Alternativ kann eine separate Liste der Adressen von in den
Schritten 426 und 430 der Routine R7 verwendeten
Pixel erstellt werden; und jedesmal, wenn eine Pixeladresse dieser
Liste zugefügt
wird, kann die Liste überprüft werden,
um zu sehen, ob die neu zugefügte
Adresse sich bereits in der Liste befindet. Wenn sich ein der Liste
zugefügter Adressenwert
be reits in der Liste befindet, so wird der dritte Durchgang um das
Bild des Linsenrandes als vollständig
betrachtet.
-
Wenn
bei Schritt 434 dieser dritte Durchgang um das Linsenbild
nicht vollständig
ist, so wird bei Schritt 436 die Adresse des Pixels P(x,
y) gleich der Adresse des Pixels gesetzt, welches im Uhrzeigersinn
das nächste
bezüglich
des derzeitigen Pixels P(x, y) entlang dem äußeren Rand 150a des
Kreisringes 150 ist. Zum Beispiel kann diese Adresse der
Datei f3 entnommen werden; und bei Schritt 436 wird
die Adresse des Pixels P(x, y) einfach gleich der Adresse aus dieser
Datei gesetzt, welche der Adresse des derzeitigen Pixels am nächsten liegt.
Dann kehrt die Routine R7 zu Schritt 426 zurück, wobei
die Schritte 426, 430 und 434 für die neue
Pixeladresse P(x, y) wiederholt werden.
-
Nachdem
dieser dritte Durchgang um das Bild des Linsenrandes beendet wurde,
tritt der Prozessor 64 aus der Routine R7 aus,
und der Gummibandalgorithmus wird beendet.
-
Nachdem
der Gummibandalgorithmus beendet ist, wird eine Reihe weiterer Operationen
ausgeführt,
deren allgemeine Aufgabe darin besteht, beliebige Unregelmäßigkeiten
der betrachteten oder inspizierten Linse hervorzuheben und es dadurch
einfacher zu machen, diese Unregelmäßigkeiten nachfolgend zu identifizieren.
-
Der
erste dieser Vorgänge,
welcher als Fill-in-Vorgang bezeichnet wird, dient dem Ausbilden eines
weiteren Satzes von Datenwerten I11 für die Pixel
in der Anordnung 46, und kann verwendet werden, um Pixel
in irgendwelchen Unregelmäßigkeiten in,
auf oder dem benachbart äußeren Rand
des Kreisringes 150 zu identifizieren. Spezieller können mit
Bezug auf 33 diese Datenwerte
verwendet werden, um Pixel in (i) irgendwelchen Lücken des Linsenrandes,
wie zum Beispiel bei 436 gezeigt, (ii) irgendwelche Unregelmäßigkeiten
innerhalb des Linsenrandes, wie zum Beispiel bei 440 gezeigt,
(iii) irgendwelche Extrastücke
auf dem Linsenrand, wie zum Beispiel bei 442 gezeigt, und
(iv) die Pixel zwischen irgendwelchen Extrastüken und den benachbarten Liniensegmenten
L3 und L4, die bei
den Schritten 362 und 370 im Unterprogramm S3 gebildet wurden, zu identifizieren.
-
Dieser
Fill-in-Vorgang umfaßt
eine Reihe spezifischerer Operationen, die als MAX, PMAX, MIN und
PMIN bezeichnet werden und die Verarbeitung eines Satzes von mit
den Pixeln in Verbindung stehenden Basisdatenwerten umfassen. Bei
einer MAX-Operation wird ein neuer Datenwert für ein gegebenes Pixel gebildet,
der gleich dem maximalen Basisdatenwert der an das Pixel unmittelbar
angrenzenden acht Nachbarn ist; und bei einer PMAX-Operation wird
für ein
gegebenes Pixel ein neuer Datenwert ausgebildet, der gleich dem
maximalen Basisdatenwert der vier Pixel ist, welche unmittelbar
links, rechts, oberhalb und unterhalb bezüglich des gegebenen Pixels
liegen. Bei einer MIN-Operation wird für ein gegebenes Pixel ein neuer
Datenwert ausgebildet, welcher gleich dem minimalen Basisdatenwert der
an das Pixel unmittelbar angrenzenden acht Nachbarn ist; und bei
einer PMIN-Operation wird für ein
gegebenes Pixel ein neuer Datenwert ausgebildet, welcher gleich
dem minimalen Basisdatenwert der vier Pixel ist, welche sich unmittelbar
links, rechts, oberhalb und unterhalb des gegebenen Pixels befinden.
-
Die 34a bis 34e veranschaulichen die MAX-, PMAX-,
MIN- und PMIN-Operationen. Spezieller zeigt die 34a eine 7 × 7-Anordnung von Zahlen; und
jede Zahl stellt einen Datenwert für ein zugehöriges Pixel dar, wobei die
Position der Zahl in der Anordnung der Adresse des zugehörigen Pixels entspricht.
Damit ist beispielsweise der Datenwert für das Pixel bei der Adresse
(1,1) gleich 7; der Datenwert für
das Pixel bei der Adresse (4,1) beträgt 0, und der Datenwert für die Pixel
bei den Adressen (4,2), (4,7) und (5,2) betragen jeweils 7,0 und
0.
-
34b zeigt die erzeugten
Werte, nachdem eine MAX-Operation auf der gesamten in 34a gezeigten Anordnung
von Zahlen ausgeführt
wurde. Somit ist beispielsweise in 34d der Datenwert
bei der Adresse (2,6) gleich 7, da in 34a einer
der acht dieser Pixeladresse benachbarten Pixel einen Wert von 7 aufweist. Ähnlich ist
der Wert bei der Adresse (6,2) in 34b gleich
7, da in dem Datensatz von 34a einer
der acht der Pixeladresse benachbarten Pixel einen Datenwert von
7 aufweist. 34c zeigt
die als Ergebnis einer auf dem gesamten Datensatz von 34a ausgeführten PMAX-Operation
erzeugten Werte; und beispielsweise betragen die Werte bei den Adressen
(6,3) und (6,4) in 34c 7,
da in 34a jede dieser
beiden Pixeladressen unmittelbar rechts von einem Pixel liegt, welches
einen Wert von 7 aufweist.
-
Die 34d und 34e zeigen die Werte, welche jeweils
nach MIN und PMIN-Operationen erzeugt wurden, welche auf der in 34a gezeigten Anordnung
von Werten ausgeführt
wurden. Beispielsweise ist in 34d der
Wert bei der Adresse (4,3) gleich 0, da in 34a eines der acht Pixel, welche zur
Adresse (4,3) benachbart sind, einen Wert von 0 aufweist; und in 34e ist der Wert bei der
Adresse (4,2) 0, da in 34a das
Pixel, das unmittelbar rechts neben der Pixeladresse liegt einen
Wert von 0 aufweist.
-
35 veranschaulicht einen
bevorzugten Fill-in-Vorgang R8. Mit Bezug
darauf umfaßt
der Vorgang 14 getrennte Operationen, die bezüglich der Datenwerte
für die
Pixelanordnung 46 ausgeführt werden; und jede dieser
Operationen wird einzeln über
die gesamte Pixelanordnung ausgeführt. Diese Operationen sind
in Reihenfolge: MAX, PMAX, PMAX, MAX, MAX, PMAX, PMAX, MIN, PMIN, PMIN,
MIN, MIN, PMIN, und PMIN. Diese Operationen beginnen mit den I9-Werten für die Pixel, und auf die resultierenden
Datenwerte wird, nachdem alle 14 Operationen beendet sind, als I11-Werte Bezug genommen.
-
Die
Ergebnisse dieser Operationen dienen in der Tat dem Füllen (Fill-in)
der Lücken 436,
der Extrastücke 442 und
der Unregelmäßigkeiten 440 in,
auf, oder in Nachbarschaft zum äußeren Rand
des Kreisringes 150. Spezieller zeigen die 33 und 36 denselben
Abschnitt des Kreisring 150, wobei die erstere Figur die
Pixel bei ihren I9-Werten beleuchtet zeigt und
die letztere Figur die Pixel bei ihren I11-Werten beleuchtet
zeigt. Die Unterschiede zwischen diesen beiden Figuren zeigen den
Effekt des Fill-in-Vorganges nach 35.
Insbesondere besteht der Unterschied darin, daß für die Pixel in den Lücken 436,
in den Extrastücken 442,
in den Unregelmäßigkeiten 440 und
in den Flächen
zwischen den Extrastücken und
den Liniensegmenten L3 und L4 die
I11-Werte für diese Pixel Tmax sind,
während
die I9-Werte für diese Pixel gleich Null sind.
-
Wie
für die
Durchschnittsfachleute verständlich
sein wird, sind andere spezifische Vorgänge bekannt und können verwendet
werden, um die erwünschten.
I11-Werte für die oben beschriebenen Pixel
zu erzeugen.
-
Nachdem
die Fill-in-Operation R8 beendet ist, ruft
der Prozessor 64 einen zweiten Maskierungsvorgang R9 auf, um einen Satz von Pixelbeleuchtungswerten
I12 zu erzeugen, der frei von dem Effekt von
irgendwelchem Licht ist, welches auf die Pixelanordnung 46 innerhalb
eines gegebenen Radius' vom
Mittelpunkt des Kreises auftritt, der an den Innenrand 150b des
Kreisringes 150 während
des Dezentrierungstestes angepaßt
wurde. Wie unten mit größerer Genauigkeit
diskutiert wird, wird dieser Satz von Pixelbeleuchtungswerten I 12 nachfolgend verwendet, um bei der
Identifizierung von Fehlern im Inneren der Linse behilflich zu sein – das heißt, in der Fläche, welche
radial innerhalb des inneren Randes des Kreisringes 150 liegt.
-
Der
Maskierungsvorgang R9, der in dieser Stufe
des Linseninspektionsprozesses verwendet wird, ist der Maskierungsroutine
R9 sehr ähnlich,
die in den 19a – 19c und 20 gezeigt ist. Der prinzipelle Unterschied
zwischen diesen beiden Maskierungsvorgängen besteht darin, daß der Radius
der in dem Vorgang R9 verwendeten Maske
geringfügig kleiner
ist als der Radius des an den inneren Rand des Kreisringes 150 angepaßten Kreises,
während der
Radius der in dem Vorgang R3 verwendet wird, geringfügig größer ist
als der an den äußeren Rand des
Kreisringes 150 angepaßten
Kreises.
-
37 ist ein Flußdiagramm,
welches eine bevorzugte Maskierungsroutine R9 illustriert.
Der erste Schritt 446 in dieser Routine besteht darin,
zu bestimmen, ob bei den Schritten 216 oder 226 des
Dezentrierungstestes wenigstens drei Pixel auf dem inneren Rand
des Kreisringes 150 gefunden wurden oder ob festgestellt
wurde, daß die
ophthalmische Linse stark dezentriert ist. Wenn bei einem dieser beiden
Schritte des Dezentrierungstestes festgestellt wurde, daß die Linse
stark dezentriert ist, so wird die Maskierungsroutine R9 selbst
bei Schritt 450 beendet.
-
Wenn
die Routine R5 nicht bei Schritt 450 beendet
wird, so geht die Routine zu Schritt 452 über, welcher
dazu dient, die Koordinaten des Mittelpunktes des Kreises zu erhalten,
welcher an den inneren Rand 150b des Kreisringes 150 während des
Dezentrierungstestes angepaßt
wurde. Diese Koordinaten wurden bestimmt und daraufhin im Prozessorspeicher
während
des Dezentrierungstestes gespeichert, wobei diese Koordinaten erhalten
werden können,
indem man sie einfach aus dem Prozessorspeicher zurückgewinnt.
Sobald diese Mittelpunktskoordinaten erhalten sind, wird ein Maskierungsunterprogramm bei
Schritt 454 aufgerufen. Es wird nun Bezug auf die 38a – 38c genommen,
wo dieses Unterprogramm in der Tat eine kreisförmige Maske 456 der
Pixelanordnung 46 überlagert,
welche bezüglich
der oben erwähnten
Mittelpunktskoordinaten zentriert ist und einen Durchmesser aufweist,
der geringfügig kleiner
ist als der Durchmesser des an den inneren Rand 150b des
Kreisringes angepaßten
Kreises, wobei daraufhin das Maskierungsunterprogramm einen I12-Wert jedem Pixel zuweist. Insbesondere
wird für jedes
Pixel außerhalb
der Maske durch das Maskierungsunterprogramm dem Pixel ein I12-Wert zugewiesen, welcher gleich dem I8-Wert für
dieses Pixel ist; und für
jedes Pixel innerhalb der Maske weist das Maskierungsunterprogramm
dem Pixel einen I12-Wert von Null zu.
-
Genauer
werden bei Schritt 452 die Koordinaten (xi,
yi) des oben erwähnten Mittelpunktes und ein
Radiuswert r2, der so gewählt wird,
daß er
geringfügig
kleiner ist als der Radius des an den inneren Rand des Kreisringes 150 angepaßten Kreises,
an das Maskierungsunterprogramm übertragen.
Daraufhin bildet bei Schritt 454 dieses Unterprogramm eine Datei
f5 aus Adressen aller Pixel in der Anordnung 46, welche
innerhalb des Abstandes r2 von dem Mittelpunkt
(xi, yi) liegen.
Daraufhin wird bei Schritt 460 die Adresse von jedem Pixel
in der Anordnung 46 überprüft, um festzustellen,
ob sie sich in der Datei befindet. Wenn die Pixeladresse sich in
der Datei befindet, so wird bei Schritt 462 der I12-Wert des Pixels auf Null gesetzt. Wenn
sich die Pixeladresse jedoch nicht in der Liste befindet, so wird
bei Schritt 464 der I12-Wert des
Pixels gleich dem I8-Wert des Pixels gesetzt.
-
Zahlreiche
verschiedene Maskierungsunterprogramme sind in der Technik wohlbekannt,
um die obigen Aufgaben zu erfüllen,
und irgendwelche geeigneten Unterprogramme können bei Schritt 454 der Routine
R9 verwendet werden.
-
38c zeigt die Pixel der
Anordnung 46, welche mit Intensitäten beleuchtet sind, die gleich
ihren entsprechenden I12-Werten sind.
-
Nachdem
dieser zweite Maskierungsvorgang beendet ist, wird eine weitere
Routine R10 ausgeführt, welche eine Reihe von
Operationen umfaßt, um
einen Satz von Pixelbeleuchtungswerten zur Verfügung zu stellen, welche die
Pixel, die sich in irgendeiner Unregelmäßigkeit oder in einem Fehler
in der inspizierten Linse befinden, klar zu identifizieren. Spezieller
besteht der Zweck dieser weiteren Operationen darin, einen Satz
von Pixelbeleuchtungswerten zur Verfügung zu stellen, welcher frei
von irgendwelchen Effekten ist, die auf der Anordnung 46 durch Hintergrundrauschen
oder Licht erzeugt werden, als auch von irgendeinem Effekt, der
auf der Anordnung 46 durch die normalen oder regulären Ränder 150a und 150b des
Kreisringes 150 erzeugt werden. Diese weiteren Operationen
werden in dem Flußdiagramm von 39 gezeigt.
-
Bei
Schritt 466 wird ein weiterer I-Wert, I13, für jedes
Pixel erhalten; und insbesondere wird der I13-Wert
für jedes
Pixel durch Subtraktion des I12-Wertes für das Pixel
von dem I10-Wert für das Pixel erhalten. Die 40a, 40b und 40c zeigen
die Pixel in einem Abschnitt des Kreisringes 152, der mit
Intensitäten
beleuchtet ist, die ihren I10-, I12- und I13-Werten
jeweils entsprechen; und wie zu sehen ist, besteht der praktische
Effekt des Schrittes 466 darin, das Bild von 40b von dem Bild nach 40a zu subtrahieren und
so das Bild nach 40c zu
erzeugen.
-
Daraufhin
wird bei Schritt 470 eine Operation ausgeführt, auf
welche als Clean-up-Operation Bezug genommen wird, um in der Tat
falsche, beleuchtete Pixel zu eliminieren. Spezieller werden, mit
den I13-Werten für die Pixel beginnend, MAX-,
MIN-, PMIN- und PMAX-Operationen in dieser Reihenfolge bezüglich der
gesamten Pixelanordnung 46 ausgeführt, wobei ein weiterer Satz
von Pixelwerten erzeugt wird, auf die als I14-Werte
Bezug genommen wird. 40d zeigt
die Pixel des Kreisringes 46, die mit Intensitäten beleuchtet
sind, welche gleich ihren entsprechenden I14-Werten
sind; und wie durch Vergleich der 40c und 40d zu sehen ist, besteht
der Effekt der Clean-up-Operation einfach darin, verschiedene isolierte
Pixel zu eliminieren, welche, aus dem einen oder aus dem anderen
Grunde, in 40c beleuchtet
sind.
-
Nachdem
das System 10 die Daten gemäß der Routinen R1 – R10 wie oben beschrieben verarbeitet hat,
wird eine Fehler- oder Defektanalyse ausgeführt, wobei die 41a und 41b ein
Flußdiagramm zeigen,
welches eine bevorzugte Defektnachweis- oder Analyse-Routine R11 veranschaulicht. Diese Analyse ist mit
Bezug auf die 42 am
besten verständlich,
welche die Pixel eines Abschnittes des Kreisringes 150 zeigt,
welche mit Intensitäten
beleuchtet sind, die gleich ihren entsprechenden I14-Werten
sind.
-
Mit
Bezug auf die 41a, 41b und 42 wird im ersten Abschnitt dieser Defektanalyse
bei den Schritten 472 und 474 nach 41a eine Liste von Adressen
der Pixel am Anfang und am Ende von jeder horizontalen Serie aufeinanderfolgender
beleuchteter Pixel erstellt, auf die als Lauflänge Bezug genommen wird. Spezieller
tastet der Prozessor 64 in der Tat jede horizontale Reihe
von Pixeln in der Anordnung 46 ab; und während jedes
Abtastvorganges, werden jedesmal wenn eine Serie beleuchteter Pixel angetroffen
wird, die Adressen des ersten und des letzten Pixels in dieser Serie
in der Datei f6 aufgezeichnet. Im Fall eines
einzelnen, isolierten, beleuchteten Pixels – das heißt, die Pixel auf der linken
und der rechten Seite dieses beleuchteten Pixels sind selbst nicht
beleuchtet – wird
die Adresse dieses beleuchteten Pixels sowohl als die Adresse des
ersten als auch als die Adresse des letzten Pixels in der Lauflänge, welche
von dem beleuchteten Pixel gebildet wird, aufgezeichnet.
-
Genauer
tastet der Prozessor tatsächlich nicht
ein Bild der Pixelanordnung ab, sondern übersetzt stattdessen die oben
erwähnte
Adressenliste, indem die I14-Werte, welche in
dem Prozessorspeicher für
die Pixel in der Anordnung 46 gespeichert sind, überprüft werden.
-
Nachdem
die Datei f6 beendet ist, ruft die Routine
R11 ein Bündelungsunterprogramm bei Schritt 476 auf,
um eine getrennte Datei f6a ... f6n für jede
Fläche
oder Gruppe aufeinanderfolgender beleuchteter Pixel zu erzeugen – oder – genauer
gesagt – für jede Fläche oder
Gruppe aufeinanderfolgender Pixel mit hohen I14-Werten.
Jedes geeignete Bündelungsunterprogramm
kann verwendet werden, um diese Bündelung vorzunehmen. Nachdem
diese getrennten Dateien f6a ... f6n erzeugt wurden, werden bei Schritt 480 die
Dateien für
beleuchtete Flächen,
welche beieinanderliegen, wie zum Beispiel jene, die bei 482 und 484 in 42 gezeigt sind, verbunden.
Dies kann beispielsweise dadurch geschehen, daß eine Prüfung durchgeführt wird,
um zu bestimmen, ob irgendein Pixel in irgendeiner beleuchteten
Fläche
innerhalb einer gegebenen Anzahl von Pixeln, wie zum Beispiel zwei
oder drei Pixeln, von irgendeinem Pixel in einer anderen beleuchteten
Fläche
liegt. Diese nahen beleuchteten Flächen werden so betrachtet,
als bildeten sie tatsächlich
eine beleuchtete Fläche.
-
Nachdem
Schritt 480 beendet ist, wird ein Unterprogramm bei Schritt 486 aufgerufen,
um die Fläche
und den Schwerpunkt sowie die umhüllende für jede Fläche beleuchteter Pixel zu berechnen. Zahlreiche
Unterprogramme sind in der Technik wohlbekannt, um diese Berechnung
auszuführen.
Irgendwelche solcher geeigneter Unterprogramme können in der Routine R11 verwendet werden, und es ist nicht erforderlich,
diese Unterprogramme hier im Detail zu beschreiben.
-
Als
nächstes
bestimmt die Routine R11 den allgemeinen
Ort von jeder beleuchteten Fläche.
Spezieller werden bei Schritt 490 die Adressen der Mittelpunkte
und die Radien der beiden Kreise erhalten, die an den äußeren und an
den inneren Rand 150a und 150b des Kreisringes 150 angepaßt wurden. Dieses
Daten wurden während
des Dezentrierungstestes bestimmt oder gefunden und daraufhin in
dem Prozessorspeicher gespeichert, wobei diese Daten dadurch erhalten
werden können,
daß die
Daten einfach aus dem Prozessorspeicher wiedergewonnen werden. Daraufhin
bestimmt bei Schritt 492 der Prozessor 64, ob
der Schwerpunkt von jeder Fläche
beleuchteter Pixel (i) innerhalb des zentralen Bereiches der Linse
(der Fläche,
die radial innerhalb des an den inneren Rand des Kreisringes angepaßten Kreises liegt)
oder (ii) dem Randbereich der Linse (der Fläche der Linse zwischen den
beiden an den inneren und den äußeren Rand
des Kreisringes angepaßten
Kreisen) liegt.
-
Zahlreiche
Unterprogramme zur Bestimmung, ob ein Schwerpunkt einer Fläche innerhalb
eines ersten Kreises oder zwischen zwei allgemein konzentrischen
Kreisen liegt, sind wohlbekannt, und es ist nicht erforderlich,
diese Unterprogramme hier im Detail zu beschreiben.
-
Die
Schritte 490 und 492 sind nicht für den Betrieb
des Systems 10 im weitesten Sinne erforderlich. Vorzugsweise
werden diese Schritte jedoch ausgeführt, und die damit in Verbindung
stehenden Daten werden für
Analysezwecke gesammelt, wobei sie insbesondere bei der Identifizierung
behilflich sein sollen, wo mögliche
Unregelmäßigkeiten
oder Defekte in den Linsen auftauchen. Diese Daten können bei der
Einstellung oder bei der Verbesserung des Verfahrens oder der für die Herstellung
der Linsen verwendeten Materialien hilfreich sein.
-
Nachdem
die Schritte 490 und 492 beendet sind, bestimmt
der Prozessor daraufhin, ob die Größe von jeder beleuchteten Fläche von
Pixeln ausreichend groß ist,
um als ein Fehler oder ein Defekt qualifiziert zu werden, weswegen
die Linse verworfen werden kann. Spezieller wird bei Schritt 494 die
Größe von jeder
Fläche
beleuchteter Pixel mit einer vorgewählten Größe verglichen. Wenn diese beleuchtete
Fläche
geringer ist als die vorgewählte
Größe, so ist
die beleuchtete Fläche
nicht ausreichend, um die Linse zu verwerfen. Wenn jedoch die Fläche be leuchteter
Pixel größer ist
als die vorgewählte
Größe, so wird
die beleuchtete Fläche
als ein Fehler oder ein Defekt qualifiziert, wodurch die Linse zur
Verwendung durch den Kunden ungeeignet wird. Diese vorgewählte Größe kann
beispielsweise in der Speichereinheit 70 gespeichert werden.
-
Ebenso
kann vorzugsweise bei Schritt 496 eine Zählung der
Anzahl von Defekten, die in jeder Linse gefunden wurden, erhalten
werden. Diese Zählung
kann ebenso nützlich
sein, um den Prozeß und die
zur Herstellung der Linsen verwendeten Materialien zu analysieren.
-
Beim
Schritt 500 wird auf einem Monitor 72 eine Anzeige
erzeugt, welche die Flächen
von beleuchteten Pixeln zeigt, wobei jene Flächen, die größer sind
als die oben erwähnten
Schwellengrößen innerhalb
einer Umhüllenden
gezeigt werden. Dann führt
bei Schritt 502 der Prozessor 64 eine Prüfung durch,
um zu bestimmen, ob tatsächlich
irgendwelche Fehler in der Linse gefunden wurden. Wenn ein Defekt
gefunden wurde, so wird bei Schritt 504 ein Linsen-Verwerfungssignal
erzeugt und auf den Monitor 72 sowie den Drucker 76 übertragen,
und die Linsen können
aus dem System 10 entfernt werden. Wenn in der Linse jedoch
kein Defekt gefunden wurde, so wird die Routine R11 schlicht
beendet. Nachfolgend arbeitet das System 10 so, daß eine andere
Linse unter das beleuchtete Teilsystem 14 bewegt wird und
ein anderer Lichtpuls durch jene andere Linse transmittiert wird.
Dieses transmittierte Licht wird auf der Pixelanordnung 46 fokussiert
und das oben beschriebene Verarbeitungsverfahren wird wiederholt, um
zu bestimmen, ob diese andere Linse für die Verwendung durch den
Kunden annehmbar ist.
-
Während es
offensichtlich ist, daß die
hier offenbarte Erfindung gut geeignet ist, um die zuvor angeführten Aufgaben
zu erfüllen,
wird es erkannt werden, daß zahlreiche
Veränderungen
und Ausführungsformen
von den Fachleuten erdacht werden können, und es ist beabsichtigt,
daß die
beigefügten Ansprüche sämtliche
dieser Veränderungen
und Ausführungsformen
abdecken, die innerhalb des tatsächlichen
Umfanges der vorliegenden Erfindung liegen.