DE69521811T2 - Verfahren zur vermeidung überflüssiger identifizierungen (verursacht durch antefakten in bildern von bakterienkolonien) - Google Patents
Verfahren zur vermeidung überflüssiger identifizierungen (verursacht durch antefakten in bildern von bakterienkolonien)Info
- Publication number
- DE69521811T2 DE69521811T2 DE69521811T DE69521811T DE69521811T2 DE 69521811 T2 DE69521811 T2 DE 69521811T2 DE 69521811 T DE69521811 T DE 69521811T DE 69521811 T DE69521811 T DE 69521811T DE 69521811 T2 DE69521811 T2 DE 69521811T2
- Authority
- DE
- Germany
- Prior art keywords
- point
- smaller
- larger
- value
- position coordinate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 158
- 230000001580 bacterial effect Effects 0.000 title description 4
- 238000012790 confirmation Methods 0.000 claims description 13
- 239000013598 vector Substances 0.000 claims description 12
- 230000000877 morphologic effect Effects 0.000 claims description 2
- 238000010191 image analysis Methods 0.000 abstract description 4
- 239000011800 void material Substances 0.000 abstract 1
- 238000012360 testing method Methods 0.000 description 108
- 230000006870 function Effects 0.000 description 34
- 230000000717 retained effect Effects 0.000 description 27
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 19
- 238000012549 training Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 230000001174 ascending effect Effects 0.000 description 11
- 238000005192 partition Methods 0.000 description 11
- 238000009826 distribution Methods 0.000 description 9
- 238000003703 image analysis method Methods 0.000 description 6
- 238000012417 linear regression Methods 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- 238000005070 sampling Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 239000006158 Baird–Parker agar Substances 0.000 description 2
- 241000191940 Staphylococcus Species 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- ORWQBKPSGDRPPA-UHFFFAOYSA-N 3-[2-[ethyl(methyl)amino]ethyl]-1h-indol-4-ol Chemical compound C1=CC(O)=C2C(CCN(C)CC)=CNC2=C1 ORWQBKPSGDRPPA-UHFFFAOYSA-N 0.000 description 1
- 229920001817 Agar Polymers 0.000 description 1
- 241000191967 Staphylococcus aureus Species 0.000 description 1
- 239000008272 agar Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 244000052616 bacterial pathogen Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000001802 infusion Methods 0.000 description 1
- 238000013101 initial test Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 235000012771 pancakes Nutrition 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0012—Biomedical image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/136—Segmentation; Edge detection involving thresholding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/20—Contour coding, e.g. using detection of edges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/69—Microscopic objects, e.g. biological cells or cellular parts
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/02—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
- G09G5/06—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed using colour palettes, e.g. look-up tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10056—Microscopic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30004—Biomedical image processing
- G06T2207/30024—Cell structures in vitro; Tissue sections in vitro
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Radiology & Medical Imaging (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Medical Informatics (AREA)
- Quality & Reliability (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computer Hardware Design (AREA)
- Image Analysis (AREA)
- Peptides Or Proteins (AREA)
- Cosmetics (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
- Image Processing (AREA)
Description
- Die vorliegende Erfindung betrifft Bildanalyseverfahren zur Auflösung redundanter Identifikationen eines Objekts. Genauer gesagt, die vorliegende Erfindung betrifft Objektidentifikationsysteme bzw. -programme, in denen man beim mehrfachen Durchsuchen des gleichen Bildes mehrere Darstellungen des gleichen Objekts erhält. Alternativ können Objektidentifikationsprogramme beim einfachen oder mehrfachen Durchsuchen des Bildes auch leere oder pfannkuchenförmige Objekte identifizieren. Ferner ist die vorliegende Erfindung bei der Auflösung mehrerer getrennter Objekte verwendbar, wenn das gleiche Bild entweder einfach oder mehrfach durchsucht wird, wo andere Objektidentifikationsprogramme diese getrennten Objekte als ein einziges zusammengeballtes Objekt identifiziert haben. Solche Objektidentifikationsprogramme entscheiden, ob die Identifikation eines Objekts, die ein oder mehrere vorgegebene Attribute aufweist und aus einer Darstellung des Objekts ermittelt wird, mit einer anderen Identifikation des Objekts redundant ist, die zumindest eines der vorgegebenen Attribute aufweist und aus einer anderen Abtastung des Objekts ermittelt wird. Die vorliegende Erfindung kann beispielsweise angewandt werden, um festzustellen, ob ein kleineres Objekt in einem vorher identifizierten, größeren Objekt enthalten ist.
- Bildanalyseverfahren zur Identifikation eines Objekts vor einem Hintergrund sind bekannt. Siehe z. B. US-A-4453266 von Bacus. Derartige Bildanalyseverfahren können jedoch nicht zwischen einander überlappenden Objekten unterscheiden. In einem Objektidentifikationsprogramm können z. B. beim Betrachten eines Bildes, das eine zweidimensionale Darstellung eines Objekts ist, mehrere Darstellungen eines Objekts auftreten, die aneinanderhängen, d. h. im Bild den gleichen zweidimensionalen Raum einnehmen. Diese mehreren Darstellungen können als nur ein Objekt erscheinen, sollten aber in Wirklichkeit als mehrere Objekte identifiziert werden. In anderen Bildidentifikationsprogrammen werden mehrere, einander überlappende Objekte als ein einziges zusammengeballtes Objekt identifiziert und nicht in mehrere getrennte Objekte aufgelöst.
- Derartige Systeme bzw. Programme, die den nächstliegenden Stand der Technik für den beanspruchten Gegenstand darstellen, sind in volumetrischen Objektmodellierungssystemen bekannt: siehe EP-A-549944, wo die Redundanz verringert wird, indem die Fläche oder das Volumen eines Begrenzungsrahmens, der um das Objekt herum berechnet wird, als Gesamtfläche oder -volumen des Objekts angenommen wird.
- Die vorliegende Erfindung stellt ein Verfahren zur Auflösung redundanter Identifikationen eines Objekts bereit, derart, daß das gleiche Objekt in einem Objektidentifikationsprogramm nur einmal gezählt wird. Die vorliegende Erfindung ist besonders gut für Objektidentifikationsprogramme verwendbar, wo mehrfache Abtastungen eines Bildes zu mehrfachen Identifikationen eines einzigen Objekts führen. Die Erfindung wird in dem beigefügten Anspruch 1 dargelegt.
- Entsprechend der Aufgabe der Erfindung, wie sie hierin ausgeführt und allgemein beschrieben wird, wird ein Verfahren zur Auflösung redundanter Identifikationen eines identifizierten Objekts in einem Bild bereitgestellt. Eine erste und eine vierte Ausführungsform des Verfahrens nach der vorliegenden Erfindung weisen die folgenden Schritte auf Identifikation einer Gruppe möglicherweise redundanter Objekte in einem Bild; Sortieren der identifizierten Objekte in einer vorgegebenen Reihenfolge zur Erzeugung einer sortierten Objektliste, wobei das erste bzw. Anfangsobjekt in der Liste einen ersten charakteristischen Wert bzw. charakteristischen Anfangswert und das letzte Objekt in der Liste einen letzten charakteristischen Wert aufweist; Definition einer Objektzustandsvariablen, wobei die Objektzustandsvariable einen Wert von einem ersten und einem zweiten Wert aufweist; Zuordnen des ersten Wertes der Objektzustandsvariablen zum Anfangsobjekt in der sortierten Liste; Vergleich des jeweils auf das Anfangsobjekt folgenden Objekts mit jedem Objekt, das einen kleineren charakteristischen Wert als das jeweils nachfolgende Objekt aufweist und den ersten Wert der Objektzustandsvariablen aufweist, wobei für jeden Vergleich das jeweils nachfolgende Objekt als ein erstes Objekt definiert wird und jedes Objekt, das einen kleineren charakteristischen Wert als das erste Objekt aufweist, als zweites Objekt definiert wird; Ermitteln, ob das jeweils zweite Objekt einen charakteristischen Wert aufweist, der in einem vorgegebenen Bereich des charakteristischen Wertes des ersten Objekts enthalten ist, wodurch einer von den ersten und zweiten Zustandswerten der Objektzustandsvariablen dem jeweils ersten Objekt und dem jeweils zweiten Objekt zugewiesen wird, um redundante Identifikationen eines Objekts in dem Bild aufzulösen; und Identifikation der Objekte, die den ersten Wert der Objektzustandsvariablen aufweisen, als nichtredundante Objekte und Beibehalten der nichtredundanten Objekte.
- Nach einer zweiten Ausführungsform der Erfindung wird ein Verfahren zur Auflösung redundanter Identifikationen eines Objekts in einem Bild bereitgestellt. Das Verfahren weist die folgenden Schritte auf Identifikation einer Gruppe möglicherweise redundanter Objekte; Vergleich der Flächen von zwei identifizierten Objekten und Kennzeichnen eines der Objekte als relativ größeres Objekt als das andere Objekt und des anderen Objekts als relativ kleineres Objekt als das größere Objekt; Feststellen, ob das kleinere Objekt in dem größeren Objekt enthalten ist, durch Bestimmen der vier Extremalpunkte des größeren Objekts, wobei jeder Extremalpunkt einen Zeilenpositions-Koordinatenwert und einen Spaltenpositions-Koordinatenwert aufweist; Konstruktion eines Rechtecks, welches das größere Objekt umrandet, unter Verwendung der Zeilen- und Spaltenpositions-Koordinatenwerte der vier Extremalpunkte; Bestimmen eines vorgegebenen Punkts an dem kleineren Objekt, wobei der vorgegebene Punkt einen vorgegebenen Zeilenpositions-Koordinatenwert und einen vorgegebenen Spaltenpositions-Koordinatenwert aufweist; Bestimmen der Position des vorgegebenen Punkts des kleineren Objekts bezüglich des Rechtecks, welches das größere Objekt umrandet; und Kennzeichnen des kleineren Objekts als in dem größeren Objekt enthalten, wenn der vorgegebene Punkt des kleineren Objekts in dem Rechteck enthalten ist, und dadurch Auflösen von redundanten Identifikationen jedes identifizierten Objekts in dem Bild.
- Ferner wird nach einer dritten Ausführungsform der vorliegenden Erfindung ein Verfahren zur Identifikation eines gültigen Objekts mit mindestens einem vorgegebenen Attribut vor einem Hintergrund und zur Auflösung redundanter Identifikationen des gültigen Objekts bereitgestellt. Das Verfahren weist die folgenden Schritte auf Erzeugen eines Bildes eines Objekts und eines Hintergrunds; Definition eines mehrdimensionalen Datenraums, der mehrere Unterräume aufweist; Auswahl mindestens eines Unterraums, mehrfaches Durchsuchen des Bildes unter Verwendung des ausgewählten Unterraums nach mindestens einer Darstellung eines Anwärterobjekts, wobei das Anwärterobjekt mindestens einen Anwärterobjekt- Attributwert aufweist; und Bestätigen des Anwärterobjekts, das den vorgegebenen Attributwert eines gültigen Objekts zur Identifikation eines gültigen Objekts aufweist, durch Vergleich der Flächen zweier gültiger Objekte und Kennzeichnen eines der gültigen Objekte als größeres gültiges Objekt als das andere gültige Objekt und des anderen gültigen Objekts als kleineres gültiges Objekt als das größere Objekt; Bestimmen der Umfangspunkte des größeren gültigen Objekts, Erzeugen eines Umfangspuffers, der die Umfangspunkte des gültigen Objekts aufweist, wobei jeder Umfangspunkt einen Zeilenpositions- Koordinatenwert und einen Spaltenpositions-Koordinatenwert aufweist; Bestimmen der vier Extremalpunkte des größeren gültigen Objekts; Konstruktion eines Rechtecks, welches das größere gültige Objekt umrandet bzw. beschränkt, unter Verwendung der Zeilen- und Spaltenpositions-Koordinatenwerte der vier Extremalpunkte; Bestimmen eines vorgegebenen Punkts an dem kleineren Objekt, wobei der vorgegebene Punkt einen Zeilenpositions-Koordinatenwert und einen Spaltenpositions-Koordinatenwert aufweist; Bestimmen der Position des vorgegebenen Punkts des kleineren Objekts bezüglich des Rechtecks, welches das größere Objekt umrandet; und Kennzeichnen des kleineren Objekts als in dem größeren Objekt enthalten, wenn der vorgegebene Punkt des kleineren Objekts in dem Rechteck enthalten ist, und. dadurch Auflösen redundanter Identifikationen jedes identifizierten gültigen Objekts in dem Bild.
- Die beigefügten Zeichnungen, die in die vorliegende Beschreibung einbezogen werden und einen Teil davon bilden, veranschaulichen mehrere Ausführungsformen der Erfindung und dienen zusammen mit der Beschreibung zur Erläuterung der Grundgedanken der Erfindung.
- Fig. 1 zeigt ein Blockdiagramm, das die Schritte des Gesamtverfahrens nach einer ersten und einer vierten Ausführungsform der vorliegenden Erfindung darstellt.
- Die Fig. 2A und 2B zeigen Schemazeichnungen von zwei Objekten, die durch mehrfaches Durchsuchen eines Bildes identifiziert werden.
- Die Fig. 3A und 3B zeigen Schemazeichnungen von drei Objekten, die durch mehrfaches Durchsuchen eines Bildes identifiziert werden.
- Die Fig. 4A-4E zeigen ein Ablaufdiagramm, das die Schritte des Moduls FILTER OBJECTS (OBJEKTE FILTERN) darstellt, welcher der Hauptmodul für die Auflösung redundanter Identifikationen eines Objekts in der ersten und der zweiten Ausführungsform ist.
- Fig. 5 zeigt eine Schemazeichnung eines Objekts, die den ersten Schritt der Enthaltensein-Prüfung oder des "Rahmentests" veranschaulicht, wie er bei der ersten, zweiten und dritten Ausführungsform der vorliegenden Erfindung verwendet wird.
- Fig. 6 zeigt ein Ablaufdiagramm, das die Schritte des Moduls SET STATUS (ZUSTAND SETZEN) darstellt; der durch FILTER OBJECTS (OBJEKTE FILTERN) aufgerufen wird und ein relativ kleineres mit einem größeren Objekt vergleicht.
- Fig. 7 zeigt eine Schemazeichnung mit gekennzeichneten Zeilen und Spalten, welche die Zeilen- und Spaltenpositions-Koordinatenwerte eines einfachen Objekts darstellen, das in Uhrzeigerrichtung verfolgt bzw. umfahren wird.
- Fig. 8 zeigt eine Tabelle, welche den Zeilenpositions-Koordinatenwert, den Spaltenpositions- Koordinatenwert und die Richtungscodewerte für die in Fig. 7 dargestellten dreizehn Punkte darstellt.
- Fig. 9 zeigt eine Schemazeichnung, welche die Richtungscodewerte für ein Objekt darstellt, das in Uhrzeigerrichtung verfolgt wird.
- Fig. 10 zeigt eine Schemazeichnung, welche die Richtungscodewerte für ein Objekt darstellt, das gegen die Uhrzeigerrichtung verfolgt wird.
- Fig. 11 zeigt ein Ablaufdiagramm, das die Schritte des Moduls GET PERIM (UMFANG ERMITTELN) zur Bestimmung der Koordinaten jedes Umfangspunkts eines Objekts darstellt.
- Fig. 12 zeigt eine Schemazeichnung eines Objekts, die den zweiten Schritt der Enthaltensein- Prüfung nach der ersten Ausführungsform darstellt.
- Die Fig. 13A-13B zeigen ein Ablaufdiagramm, das die Schritte des Moduls LOAD BUFFER (PUFFER LADEN) darstellt, der einen Umfangspuffer erzeugt, welcher die Umfangspunkte eines Objekts aufweist.
- Fig. 14 zeigt eine Nachschlagetabelle FILL für in Uhrzeigerrichtung verfolgte Objekte.
- Fig. 15 zeigt eine Nachschlagetabelle FILL für gegen die Uhrzeigerrichtung verfolgte Objekte.
- Fig. 16 zeigt ein Ablaufdiagramm, das die Schritte des Moduls CHECK CONTAIN (ENTHALTENSEIN PRÜFEN) darstellt, der durch SET STATUS (ZUSTAND SETZEN) aufgerufen wird und für die erste Ausführungsform prüft, ob ein relativ kleineres Objekt in einem größeren Objekt enthalten ist.
- Die Fig. 17A-17B zeigen ein Ablaufdiagramm, das die Schritte des Moduls CONTAIN STATUS (ENTHALTEN-ZUSTAND) darstellt, der durch CHECK CONTAIN aufgerufen wird und für die erste Ausführungsform einen Teil der Prüfung ausführt, ob ein kleineres Objekt in einem größeren Objekt enthalten ist.
- Fig. 18 zeigt eine Schemazeichnung eines Objekts, welche die Gleichartigkeitsprüfung nach der ersten und der vierten Ausführungsform der vorliegenden Erfindung ausführt.
- Fig. 19 zeigt ein Ablaufdiagramm, das die Schritte des Moduls CHECK SIMILARITY (GLEICHARTIGKEIT PRÜFEN), der gleichfalls durch SET STATUS aufgerufen wird und einen weiteren Teil der Prüfung ausführt, in dem für die erste Ausführungsform festgestellt wird, ob der Farbton eines kleineren Objekts dem Farbton eines größeren Objekts ähnlich ist.
- Die Fig. 20A-20B zeigen ein Ablaufdiagramm, das die Schritte des Moduls WRITE BUF (IN PUFFER SCHREIBEN) darstellt, der nach der ersten Ausführungsform verwendet wird und die inneren Punkte des kleineren Objekts bestimmt und sie mit einem vorgegebenen Graustufenwert markiert.
- Die Fig. 21A-21B zeigen ein Ablaufdiagramm, das die Schritte eines Moduls READ COLOUR (FARBE LESEN) darstellt, der den inneren Farbton und die Farbtonstärke eines Objekts nach der ersten Ausführungsform berechnet.
- Fig. 22 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls HISTOGRAM (HISTOGRAMM) darstellt, der zur Erzeugung eines Graustufenhistogramms eines Bildes verwendet wird.
- Fig. 23 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls ENTROPY (ENTROPIE) darstellt, der zur entropischen Auswahl eines Graustufenschwellwerts dient, derart daß die Entropiefunktion des Histogramms maximiert wird.
- Fig. 24 zeigt ein Graustufenhistogramm eines Bildes eines einzelnen, einfachen Objekts vor einem sich ändernden Hintergrund.
- Fig. 25 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls SEARCH IMAGE (BILD DURCHSUCHEN) darstellt; der für die erste Ausführungsform zum Durchsuchen eines Bildes nach mindestens einem Anwärterobjekt verwendet wird.
- Fig. 26 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls FIND OBJECT (OBJEKT SUCHEN) darstellt, der gleichfalls für die erste Ausführungsform zum Duchsuchen des Bildes verwendet wird.
- Die Fig. 27A-27B zeigen ein Ablaufdiagramm, das die Schritte eines Moduls TRACE OBJECT (OBJEKT VERFOLGEN) darstellt, der für die erste Ausführungsform zum Verfolgen von Objekten verwendet wird.
- Die Fig. 28A-28C zeigen ursprüngliche obere bzw. untere Graustufenhistogramme eines Bildes.
- Fig. 29 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls ANALYZE (ANALYSIEREN) darstellt, der für die erste Ausführungsform zum rekursiven Durchsuchen des Bildes nach Anwärterobjekten verwendet wird.
- Fig. 30 zeigt eine Schemazeichnung, welche die Komponenten eines Systems darstellt, das bei der ersten, zweiten und vierten Ausführungsform der vorliegenden Erfindung verwendet wird.
- Fig. 31 zeigt ein Blockdiagramm, das die Schritte des Gesamtverfahrens nach einer zweiten Ausführungsform der vorliegenden Erfindung darstellt.
- Fig. 32 zeigt ein Blockdiagramm, das die Schritte des Gesamtverfahrens nach einer dritten Ausführungsform der vorliegenden Erfindung darstellt.
- Fig. 33 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls EDGE CONTRAST (RANDKONTRAST) darstellt, der in der dritten und der vierten Ausführungsform zur Berechnung des Randkontrasts eines Objekts verwendet wird.
- Die Fig. 34A-34D zeigen ein Ablaufdiagramm, das die Schritte eines Moduls CHK LIST (LISTE KONTROLLIEREN) darstellt, der in der dritten Ausführungsform zur Auflösung von Redundanzen in inhomogenen Objekten verwendet wird.
- Fig. 35 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls SET STAT darstellt; der zusammen mit dem in den Fig. 34A-34D dargestellten Modul CHK LIST verwendet wird.
- Die Fig. 36A-36B zeigen ein Ablaufdiagramm, das die Schritte eines Moduls CHK LIST (LISTE KONTROLLIEREN) darstellt, der in der dritten Ausführungsform zur Auflösung von Redundanzen in homogenen Objekten verwendet wird.
- Fig. 37 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls SET STAT darstellt, der zusammen mit dem in den Fig. 36A-36B dargestellten Modul CHK LIST verwendet wird.
- Die Fig. 38A-38B zeigen ein Ablaufdiagramm, das die Schritte eines Moduls FINAL CHECK (ENDKONTROLLE) darstellt, der in der dritten Ausführungsform zur Ausführung einer Endkontrolle zum Auflösen von Redundanzen in inhomogenen und homogenen Objekten verwendet wird.
- Fig. 39 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls INT STAT darstellt, der zusammen mit dem in den Fig. 38A-38B dargestellten Modul FINAL CHK verwendet wird.
- Fig. 40 zeigt eine Schemazeichnung, welche die Komponenten eines Systems darstellt, das bei der dritten Ausführungsform der vorliegenden Erfindung verwendet wird.
- Fig. 41 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls LOCATE (LOKALISIEREN) darstellt, der die Gesamtschritte eines Verfahrens zum Auflösen von redundanten Identifikationen eines Objekts nach einer vierten Ausführungsform der vorliegenden Erfindung ausführt.
- Fig. 42 zeigt eine Schemazeichnung, welche die in bezug auf die vierte Ausführungsform beschriebenen Beziehungen zwischen Objekten darstellt.
- Fig. 43 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls IDENT (IDENTIFIZIEREN) darstellt; welcher der Hauptmodul für die Identifikation redundanter Objekte ist.
- Fig. 44 zeigt ein Ablaufdiagramm, das die Schritte der Verfahrens der doppelten Schwellwertbestimmung darstellt, das gemäß der vierten Ausführungsform ausgeführt wird.
- Fig. 45 zeigt ein Ablaufdiagramm, das die Schritte eines durch IDENT aufgerufenen Moduls darstellt, der Objekte unter Verwendung eines gegebenen Schwellwertpaars findet.
- Fig. 46 zeigt eine Schemazeichnung, welche die Beziehungen zwischen Objekten nach Ausführung des Moduls IDENT darstellt.
- Fig. 47 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls CONTAIN (ENTHALTENSEIN) darstellt, der die Enthaltensein-Prüfung nach der vierten Ausführungsform ausführt.
- Fig. 48 zeigt eine Schemazeichnung eines Objekts, die den ersten Schritt der Enthaltensein- Prüfung oder des "Rahmentests" darstellt, wie sie bei der vierten Ausführungsform der vorliegenden Erfindung ausgeführt wird.
- Fig. 49 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls LINK FAMILY (FAMILIE VERBINDEN) darstellt, der eine Familieneinordnung aller Objekte erzeugt.
- Fig. 50 zeigt eine Schemazeichnung eines Objekts, die den zweiten Schritt der Enthaltensein- Prüfung nach der vierten Ausführungsform darstellt.
- Fig. 51 zeigt einen Modul CONTAIN TEST (ENTHALTENSEIN-TEST), der durch LINK FAMILY aufgerufen wird und ermittelt, ob ein Objekt ein bestimmtes Objekt enthält.
- Die Fig. 52A-52E zeigen Schemazeichnungen, die darstellen, was bei der Ausführung von LINK FAMILY mit der Familieneinordnung der Objekte geschieht.
- Fig. 53 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls HETEROGENEOUS DECLUMP (HETEROGENE OBJEKTE ENTKLUMPEN) darstellt, der jedes Objekt auf unabhängige Objekte kontrolliert.
- Fig. 54 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls SEPARATE HETEROGENEOUS CHILDREN (HETEROGENE TOCHTEROBJEKTE ABTRENNEN) darstellt, der Objekte als unabhängige Objekte wiederherstellt.
- Die Fig. 55A-55F zeigen Schemazeichnungen, die darstellen, wie Objekte klassifiziert werden, wenn die Module HETEROGENEOUS DECLUMP und SEPARATE HETEROGENEOUS CHILDREN ausgeführt werden.
- Fig. 56 zeigt ein Ablaufdiagramm, das die Schritte eines Moduls REMOVE REDUNDANCIES (REDUNDANZEN ENTFERNEN) darstellt, der unter Verwendung verschiedener Objektgenerationen redundante Exemplare eines Objekts identifiziert.
- Die Fig. 57A-57B zeigen ein Ablaufdiagramm, das die Schritte eines Moduls CHECK REDUNDANCY (REDUNDANZ KONTROLLIEREN) darstellt, der redundante Identifikationen von verschiedenen Objektgenerationen entfernt.
- Die Fig. 58A-58D zeigen Schemazeichnungen, die darstellen, wie Objekte bei der Ausführung des Moduls REMOVE REDUNDANCIES klassifiziert werden.
- Fig. 59 zeigt ein Ablaufdiagramm des Gesamtverfahrens, in dem der Modul LOCATE verwendet wird, um Objekte nach der vierten Ausführungsform zu identifizieren.
- Fig. 60 zeigt eine graphische Darstellung der Perzentilverteilung von Artefakten und Bakterienkolonien, die durch das in Beispiel 1 beschriebene erfindungsgemäße Verfahren identifiziert werden.
- Fig. 61 zeigt eine graphische Darstellung der Zählwertverteilung von Artefakten und Bakterienkolonien, die durch das in Beispiel 1 beschriebene erfindungsgemäße Verfahren identifiziert werden.
- Fig. 62 zeigt eine graphische Darstellung der Regressionswerte von Objekten (Kolonien und Artefakten), die durch das in Beispiel 2 beschriebene erfindungsgemäße Verfahren identifiziert werden.
- Fig. 63 zeigt eine graphische Darstellung der Zählwertverteilung von Artefakten und Kolonien, die durch das in Beispiel 2 beschriebene erfindungsgemäße Verfahren identifiziert werden.
- Im folgenden wird ausführlich auf die vorliegenden bevorzugten Ausführungsformen der Erfindung Bezug genommen, wie sie in den beigefügten Zeichnungen dargestellt sind.
- Nach einer ersten und einer vierten Ausführungsform der vorliegenden Erfindung wird ein Verfahren zur Auflösung redundanter Identifikationen eines Objekts in einem Bild bereitgestellt. Das Verfahren nach der ersten Ausführungsform ist besonders gut verwendbar, wenn das Bild mehrmals durchsucht oder abgetastet wird und wenn mehrere Darstellungen eines einzigen Objekts identifiziert werden. Die vorliegende Erfindung ist auch von Nutzen, wenn das Bild nur einmal abgetastet wird oder nur eine Darstellung des Bildes erzeugt wird. Die vorliegende Erfindung kann insbesondere zur Identifikation von leeren oder "pfannkuchenförmigen" Objekten benutzt werden, wenn das Bild einmal durchsucht wird. Ferner hat sich auch gezeigt, daß die vorliegende Erfindung bei der Auflösung mehrerer getrennter Objekte wertvoll ist, wenn andere Bildanalyseverfahren entweder durch einmaliges Durchsuchen oder durch mehrmaliges Durchsuchen des Bildes ein einziges, zusammengeballtes Objekt identifiziert haben.
- Die Gesamtschritte des Verfahrens nach der ersten und der vierten Ausführungsform sind im Blockdiagramm von Fig. 1 dargestellt. Das Verfahren nach der ersten Ausführungsform weist den Schritt zur Identifikation einer Gruppe von möglicherweise redundanten Objekten in einem Bild auf. Dieser Schritt ist im Block A von Fig. 1 dargestellt. Die Gruppe von möglicherweise redundanten Objekten kann durch Anwendung eines Schwellwertverfahrens identifiziert werden, das ein Bild durchsucht, wie z. B. die entropische Schwellwertbestimmung, die weiter unten in bezug auf eine bevorzugte Implementierung der ersten Ausführungsform beschrieben wird. Derartige Schwellwertbestimmungsverfahren können manuell berechnete Schwellwerte und automatisch berechnete Schwellwerte aufweisen, wie weiter unten in bezug auf die Fig. 28A-28C erläutert wird.
- Eine bevorzugte Implementierung der ersten und der vierten Ausführungsform wird nachstehend anhand der Fig. 2A und 2B sowie der Fig. 3A und 3B erläutert, wobei zur leichteren Veranschaulichung die Bestimmung der Redundanz auf dem charakteristischen Wert des Größenattributs basiert, d. h. darauf, ob ein kleineres Objekt in einem größeren Objekt enthalten ist. Die Fig. 2A und 2B zeigen Schemazeichnungen von zwei Objekten, die durch mehrfaches Durchsuchen eines Bildes identifiziert werden. In Fig. 2A wird eine erste Durchsuchung oder Abtastung des Bildes ausgeführt, und ein Objekt f wird identifiziert. In Fig. 2B wird eine zweite Durchsuchung oder Abtastung des Bildes ausgeführt, und es wird ein Objekt g identifiziert. Die gestrichelte Kontur eines Objekts f ist auch in Fig. 2B dargestellt, um ihre relative Größe und Position bezüglich des Objekts g zu zeigen. In den Fig. 2A und 2B ist das Objekt f kleiner als das Objekt g und ist in dem Objekt g enthalten. Bei dem erfindungsgemäßen Verfahren wird festgestellt, daß das Objekt f mit dem Objekt g redundant ist. Folglich wird das Objekt g beibehalten, und das Objekt f wird gelöscht oder nicht beibehalten.
- Die Feststellung, ob ein kleineres Objekt in einem größeren Objekt enthalten ist, wird auch in Verbindung mit den Fig. 3A und 3B erläutert, die Schemazeichnungen von drei Objekten sind, die durch mehrfaches Durchsuchen eines Bildes identifiziert werden. Für Fig. 3A wird eine erste Durchsuchung oder Abtastung eines Bildes ausgeführt, und es wird ein Objekt h identifiziert. In Fig. 3B wird eine zweite Durchsuchung oder Abtastung des Bildes ausgeführt, und es werden ein Objekt i und ein Objekt j identifiziert. Die gestrichelte Kontur des Objekts h ist auch in Fig. 3B dargestellt, um ihre relative Größe und Position bezüglich der Objekte i und j zu zeigen. In den Schemazeichnungen der Fig. 3A und 3B sind die Objekte i und j kleiner als das Objekt h und sind in dem Objekt h enthalten. Bei dem erfindungsgemäßen Verfahren wird festgestellt, daß das Objekt h mit den Objekten i und j redundant ist. Folglich wird das Objekt h gelöscht oder nicht beibehalten, und die Objekte i und j werden beibehalten.
- Das Verfahren zur Auflösung redundanter Identifikationen eines Objekts nach der erste und der zweiten Ausführungsform weist außerdem den Schritt zum Sortieren der identifizierten Objekte in einer vorgegebenen Reihenfolge und zum Erzeugen einer sortierten Objektliste auf. Dieser Schritt ist im Block B von Fig. 1 dargestellt. Das erste bzw. Anfangsobjekt in der Liste weist einen charakteristischen Anfangswert auf, und das letzte Objekt in der Liste weist einen letzten charakteristischen Wert auf. In einer bevorzugten Implementierung der ersten und der vierten Ausführungsform zeigt der charakteristische Wert die Größe an, so daß das erste Objekt in der Liste das kleinste Objekt und das letzte Objekt in der Liste das größte Objekt ist. Der charakteristische Wert kann jedoch andere Attribute eines Objekts anzeigen. Zwei derartige Attribut-Typen sind unter anderem (1) morphologische Attribute, wie z. B. Größe und Form, und (2) Graustufenattribute, zu denen Farbton und Randkontrast gehören. Im Falle des Farbtons könnten mehrfache Darstellungen des gleichen Objekts möglicherweise einen Farbtonbereich aufweisen, der enger ist als die Farbtondifferenz zwischen verschiedenen Objekten. In diesem Falle könnte man redundante Identifikationen auf der Basis des Farbtonbereichs auflösen.
- Das Verfahren zum Auflösen redundanter Identifikationen eines Objekts nach der ersten und der vierten Ausführungsform weist außerdem den Schritt zur Definition einer Objektzustandsvariablen auf. Dieser Schritt ist im Block C von Fig. 1 dargestellt. Die Objektzustandsvariable weist einen ersten und einen zweiten Wert auf. Der erste Wert der Zustandsvariablen ist "RETAIN" (BEIBEHALTEN) oder "KEEP BOTH" (BEIDE BEHALTEN). In der ersten Ausführungsform ist der zweite Wert der Zustandsvariablen "DELETE" (LÖSCHEN).
- Das Verfahren zum Auflösen redundanter Identifikationen eines Objekts nach der ersten und der vierten Ausführungsform weist außerdem den Schritt zum Zuordnen des ersten Werts der Objektzustandsvariablen zum Anfangsobjekt in der Liste auf. Dieser Schritt ist im Block D von Fig. 1 dargestellt. Für die erste Ausführungsform ist dieser Schritt auch im Block B von Fig. 4A dargestellt. In der bevorzugten Implementierung der ersten und der vierten Ausführungsform, wo die Redundanzbestimmung auf der Größe basiert, wird dem kleinsten Objekt in der Gruppe der als möglicherweise redundant identifizierten Objekte ein Zustandswert "RETAIN" zugeordnet.
- Das Verfahren zum Auflösen redundanter Identifikationen eines Objekts nach der ersten und der vierten Ausführungsform weist außerdem den Schritt zum Vergleich des jeweils auf das erste Objekt folgenden Objekts mit jedem Objekt auf, das einen kleineren charakteristischen Wert als den des jeweils folgenden Objekts sowie den ersten Wert der Zustandsvariablen aufweist. Dieser Schritt ist im Block E in Fig. 1 dargestellt. Zum Beispiel wird in der bevorzugten Implementierung der ersten und der vierten Ausführungsform jedes Objekt, das größer ist als das kleinste Objekt in deR Liste und diesem folgt, mit jedem Objekt verglichen, das kleiner ist als jedes entsprechende, nachfolgende Objekt, das einen Zustandswert RETAIN aufweist. Für jeden Vergleich wird das jeweils nachfolgende Objekt als erstes Objekt definiert, und jedes Objekt mit einem kleineren charakteristischen Wert als dem des ersten Objekts wird als zweites Objekt definiert. In der bevorzugten Implementierung der ersten Ausführungsform ist beispielsweise das nachfolgende Objekt, welches größer ist als das kleinste Objekt, das erste Objekt, und jedes Objekt, das kleiner als das nachfolgende Objekt ist, ist zu Vergleichszwecken das zweite Objekt.
- Das Verfahren zum Auflösen redundanter Identifikationen eines Objekts nach der ersten und der vierten Ausführungsform weist außerdem den Schritt zur Feststellung auf, ob das jeweils zweite Objekt einen charakteristischen Wert hat, der in einem vorgegebenen Bereich des charakteristischen Wertes des ersten Objekts enthalten ist, wodurch dem jeweils ersten Objekt und dem jeweils zweiten Objekt einer der ersten und zweiten Zustandswerte der Objektzustandsvariablen zugeordnet wird. Auf diese Weise werden redundante Identifikationen eines Objekts im Bild aufgelöst. Dieser Schritt ist im Block F von Fig. 1 dargestellt. Das Verfahren zum Auflösen redundanter Identifikationen nach der ersten und der vierten Ausführungsform weist ferner den Schritt zur Identifikation der Objekte mit dem ersten Wert der Objektzustandsvariablen als nichtredundante Objekte und zum Beibehalten der nichtredundanten Objekte auf. Dieser Schritt ist im Block G von Fig. 1 dargestellt. Wenn in der bevorzugten Implementierung der ersten Ausführungsform als charakteristischer Wert das Größenattribut verwendet wird und eine größenbezogene Redundanzprüfung ausgeführt wird, ist das zweite Objekt ein kleineres Objekt und in dem ersten Objekt enthalten. Im Falle der Farbtonredundanz liegt der Farbton des zweiten Objekts in einem vorgegebenen Farbtonbereich des ersten Objekts. Im Falle der Form liegt der Formfaktor des zweiten Objekts innerhalb eines vorgegebenen Formfaktorbereichs des ersten Objekts. Außerdem können zur Konstruktion des charakteristischen Wertes mehrere Attribute verwendet werden. Um sich einen Begriff von der vorliegenden Erfindung machen zu können, werden über die allgemeinste Implementierung der ersten und der vierten Ausführungsform hinaus alle Ablaufdiagramme für die bevorzugte Implementierung dargestellt, wobei das Größenattribut als charakteristischer Wert verwendet wird. Folglich ist in der nachstehenden Beschreibung und den beigefügten Figuren das erste Objekt als größeres Objekt (im Vergleich zum zweiten Objekt) dargestellt, und das zweite Objekt ist als kleineres Objekt (im Vergleich zum ersten oder größeren Objekt) dargestellt. Wie leicht zu erkennen ist, umfaßt daher der Schritt zu der Feststellung, ob das jeweilige zweite Objekt einen charakteristischen Wert aufweist, der in einem vorgegebenen Bereich des charakteristischen Wertes des ersten Objekts enthalten ist, die Feststellung, ob das kleinere Objekt in dem größeren Objekt enthalten ist.
- Der Schritt zur Feststellung, ob das jeweils zweite Objekt einen charakteristischen Wert aufweist, der in einem vorgegebenen Bereich des charakteristischen Wertes des ersten Objekts enthalten ist, weist zwei Teilschritte auf, die als Auswahlregeln bezeichnet werden können. In der ersten Ausführungsform bestimmen die Auswahlregeln, daß 1) das erste Objekt beibehalten wird und die Zustandsvariable des ersten Objekts auf den ersten Wert RETAIN (BEIBEHALTEN gesetzt wird, wenn kein zweites Objekt einen charakteristischen Wert innerhalb des vorgegebenen Bereichs für den charakteristischen Wert des ersten Objekts aufweist. Die Auswahlregeln bestimmen außerdem, daß 1) das erste Objekt beibehalten wird und die Zustandsvariable des ersten Objekts auf den ersten Wert RETAIN gesetzt wird, wenn nur ein zweites Objekt einen charakteristischen Wert innerhalb des vorgegebenen Bereichs für den charakteristischen Wert des ersten Objekts aufweist, und daß 2) das zweite Objekt gelöscht wird. Außerdem bestimmen die Auswahlregeln, daß 1) das erste Objekt gelöscht wird und 2) die Objektzustandsvariable des zweiten Objekts auf den ersten Wert RETAIN gesetzt wird, wenn mehr als ein zweites Objekt einen charakteristischen Wert innerhalb des vorgegebenen Bereichs für den charakteristischen Wert des ersten Objekts aufweist.
- Der Modul FILTER OBJECTS (OBJEKTE FILTERN) ist der Hauptmodul, der die Redundanzprüfung für die erste Ausführungsform ausführt und in den Fig. 4A-4E beschrieben wird. FILTER OBJECTS ruft einen Modul SET STATUS (ZUSTAND SETZEN) auf, der weiter unten anhand von Fig. 6 beschrieben wird. SET STATUS führt zunächst einen Kasten- bzw. Rahmentest aus, der den ersten Schritt einer Enthaltensein-Prüfung darstellt - d. h. einer Prüfung, ob ein kleineres Objekt in einem größeren Objekt enthalten ist, wie weiter unten anhand von Fig. 5 beschrieben wird. Wenn der Rahmentest erfüllt ist, führt SET STATUS einen Modul CHECK CONTAIN (ENTHALTENSEIN PRÜFEN) aus, wie weiter unten anhand von Fig. 16 beschrieben wird. Der Modul CHECK CONTAIN führt einen zweiten Schritt der Enthaltensein-Prüfung aus. Wenn CHECK CONTAIN erfüllt ist, führt SET STATUS einen Modul CHECK SIMILARITY (GLEICHARTIGKEIT PRÜFEN) aus, wie weiter unten anhand von Fig. 19 beschrieben wird. Der Modul CHECK SIMILARITY führt einen weiteren Teil der Enthaltensein-Prüfung aus, wie weiter unten erläutert wird.
- Die Schritte des Moduls FILTER OBJECTS sind in dem Ablaufdiagramm der Fig. 4A-4E dargestellt. Der erste Schritt von FILTER OBJECTS, wenn er für die bevorzugte Implementierung der ersten Ausführungsform ausgeführt wird, besteht darin, alle Objekte in der Gruppe nach dem charakteristischen Größenwert zu sortieren, um eine Liste zu erzeugen. Das erste Objekt in der Liste ist das kleinste Objekt, und das letzte Objekt in der Liste ist das größte Objekt. Wie im Block B von Fig. 4A dargestellt, wird für alle sortierten Objekte in der Liste der Wert der Objektzustandsvariablen auf RETAIN gesetzt, und die Anzahl kleinerer Objekte, die in diesem Objekt enthalten sind, wird auf eins gesetzt. In einem Vergleich von zwei Objekten ist das Mutterobjekt das Objekt, welches das andere Objekt enthält. Das enthaltene Objekt wird als Tochterobjekt bezeichnet. Wie im Block C von Fig. 4A gezeigt, wird für jedes Objekt das Mutterobjekt, auch als erstes oder größeres Objekt bezeichnet, auf sich selbst gesetzt. Das "Kopf"-Objekt, d. h. das erste Objekt, welches das jeweils nachfolgende Objekt des Anfangsobjekts wird, wird in der Liste mit dem Anfangsobjekt initialisiert, wie im Block D von Fig. 4A dargestellt. Das Kopf- Objekt wird zum nächsten Objekt in der Liste weitergerückt, z. B. zum nächstgrößeren Objekt in der Liste, wie im Block E dargestellt. Dann wird im Entscheidungsblock F in Fig. 4A gefragt, ob sich das Kopf- Objekt am Ende der Liste befindet. Wenn nicht, wird das "Wappen"-Objekt auf das Anfangsobjekt in der Liste gesetzt, wie im Block G dargestellt. Dann wird im Entscheidungsblock H gefragt, ob das Wappen- Objekt gleich dem Kopf-Objekt ist. Wenn nicht, wird im Entscheidungsblock I in Fig. 4A gefragt, ob der Wert der Objektzustandsvariablen des Wappen-Objekts RETAIN ist. Wenn ja, dann wird der weiter unten anhand von Fig. 6A und 6B beschriebene Modul SET STATUS (ZUSTAND SETZEN) aufgerufen, um das Kopf und das Wappen-Objekt auf Enthaltensein zu vergleichen (bzw. zu ermitteln, ob das eine im anderen Objekt enthalten ist), wie im Block J dargestellt, und das Wappen-Objekt wird weitergerückt, wie im Block K von Fig. 4A dargestellt. Der Modul FILTER OBJECTS (OBJEKTE FILTERN) springt zum Entscheidungsblock H zurück, und die Schleife über H, I, J und K läuft so lange weiter, bis das Wappen- Objekt gleich dem Kopf-Objekt ist.
- In Fig. 4B führen die Blöcke L, M, N, O und P die oben beschriebenen Auswahlregeln aus. Konkret ausgedrückt, wenn das Wappen-Objekt gleich dem Kopf-Objekt ist, dann wird im Entscheidungsblock L von Fig. 4B gefragt, ob die Anzahl kleinerer Objekte, die in dem größeren Objekt enthalten sind, oder die Anzahl der Tochterobjekte des Kopf-Objekts gleich eins ist. Wenn ja, dann wird der Wert der Objektzustandsvariablen des kleineren Objekts, das in dem Kopf-Objekt enthalten ist, auf den zweiten Wert oder auf DELETE (LÖSCHEN) gesetzt, wie im Block M dargestellt, und das Kopf-Objekt wird weitergerückt, wie im Block N von Fig. 4A dargestellt.
- Der Modul FILTER OBJECTS springt zum Entscheidungsblock F in Fig. 4A zurück, und die Schleife über F-L läuft weiter, bis der Zustandswert des Kopf-Objekts ungleich eins ist. Dann wird im Entscheidungsblock O von Fig. 4B gefragt, ob die Anzahl der Tochterobjekte des Kopf-Objekts größer als eins ist. Wenn ja, dann wird der Wert der Objektzustandsvariablen des Kopf-Objekts auf DELETE gesetzt, wie im Block P dargestellt, und das Kopf-Objekt wird weitergerückt, wie im Block N von Fig. 4B dargestellt. Der Modul FILTER OBJECTS springt zum Entscheidungsblock F zurück, und die Schleife über F-O läuft weiter, bis der Zustandswert des Kopf-Objekts nicht größer als eins ist. Das Kopf-Objekt wird nochmals weitergerückt, wie im Block N von Fig. 4B dargestellt.
- Der Modul FILTER OBJECTS springt zum Entscheidungsblock F von Fig. 4A zurück, wo gefragt wird, ob das Kopf-Objekt am Ende der Liste angelangt ist. Wenn ja, dann wird das Kopf-Objekt mit dem Anfangsobjekt in der Liste initialisiert, wie im Block Q von Fig. 4C dargestellt. Dann wird im Entscheidungsblock R gefragt, ob das Kopf-Objekt am Ende der Liste angelangt ist. Wenn nicht, dann wird im Entscheidungsblock 5 gefragt, ob der Vorgeschichte-Wert des Kopf-Objekts gleich "CHILD" (TOCHTEROBJEKT) ist, und ob die Fläche des Kopf-Objekts kleiner ist als eine vorgegebene Mindestgröße. Der Vorgeschichte-Wert eines Objekts gibt an, ob dieses Objekt jemals als Tochterobjekt irgendeines anderen Objekts ermittelt wurde, und beschreibt daher die Vorgeschichte des Objekts. Wenn die Antwort auf beide Fragen im Entscheidungsblock S "ja" ist, dann wird der Wert der Objektzustandsvariablen des Kopf-Objekts auf DELETE gesetzt, wie im Block T dargestellt, und das Kopf- Objekt wird weitergerückt, wie im Block U von Fig. 4C dargestellt. Der Modul FILTER OBJECTS springt dann zum Entscheidungsblock R von Fig. 4C zurück, und die Schleife über R-U läuft weiter, bis das Kopf-Objekt am Ende der Liste angelangt ist.
- Ist das Kopf-Objekt am Ende der Liste angelangt, dann geht der Modul FILTER OBJECTS zum Block V von Fig. 4D über, und das Kopf-Objekt wird so initialisiert, daß es auf das Anfangsobjekt zeigt, wie im Block V von Fig. 4D dargestellt. Im Entscheidungsblock W von Fig. 4D wird dann gefragt, ob das Kopf-Objekt am Ende der Liste angelangt ist. Wenn nicht, wird im Entscheidungsblock X gefragt, ob das Mutterobjekt des Kopf-Objekts (d. h. das größere Objekt, in dem das Kopf-Objekt enthalten ist) das Kopf- Objekt ist. Wenn nicht, wird im Entscheidungsblock Y gefragt, ob der Wert der Objektzustandsvariablen des Mutterobjekts des Kopf-Objekts DELETE ist. Wenn die Antwort auf den Entscheidungsblock X "ja" ist, dann wird das Kopf-Objekt weitergerückt, und die Schleife über W-Z läuft weiter, bis das Kopf- Objekt das letzte Objekt in der Liste ist. Ist die Antwort auf den Entscheidungsblock Y "ja", dann wird das Mutterobjekt des Kopf-Objekts auf das Kopf-Objekt gesetzt, wie im Block Z dargestellt, und das Kopf- Objekt wird weitergerückt, wie im Block AA von Fig. 4D dargestellt. Der Modul FILTER OBJECTS springt zum Entscheidungsblock W zurück, und die Schleife über W-Z läuft weiter, bis das Kopf-Objekt beim letzten Objekt in der Liste angelangt ist.
- Wenn das Kopf-Objekt beim letzten Objekt angelangt ist, dann wird das Kopf-Objekt mit dem Anfangsobjekt in der Liste initialisiert, wie im Block BB von Fig. 4E dargestellt. Dann wird im Entscheidungsblock CC gefragt, ob das Kopf-Objekt am Ende der Liste angelangt ist. Wenn nicht, wird das Wappen-Objekt auf das nächste Objekt nach dem Kopf-Objekt gesetzt, wie im Block DD dargestellt. Im Entscheidungsblock EE wird dann gefragt, ob der Wert der Zustandsvariablen des Kopf-Objekts DELETE ist. Wenn ja, wird das Kopf-Objekt dann gelöscht, wie im Block FF dargestellt, und das Kopf-Objekt wird auf das Wappen-Objekt gesetzt, wie im Block GG in Fig. 4E dargestellt. Wenn beim Rücksprung zum Entscheidungsblock EE der Wert der Objektzustandsvariablen des Kopf-Objekts gleich DELETE ist, dann werden die nichtredundanten Objekte beibehalten, und das Kopf-Objekt wird auf das Wappen-Objekt gesetzt, wie im Block GG dargestellt. Der Modul FILTER OBJECTS springt dann zum Entscheidungsblock CC zurück, und die Schleife über CC, DD, EE, FF und GG läuft weiter, bis das Kopf-Objekt am Ende der Liste angelangt ist. Wenn die Antwort auf den Entscheidungsblock X "ja" ist, wird das Kopf-Objekt weitergerückt, und die Schleife über W-Z läuft weiter, bis das Kopf-Objekt das letzte Objekt in der Liste ist. Wenn ja, wird der Modul FILTER OBJECTS beendet, wie in dem Oval II von Fig. 4F dargestellt.
- Wie oben festgestellt, führt der Modul SET STATUS (ZUSTAND SETZEN) drei Tests aus: den Rahmentest, CHECK CONTAIN (ENTHALTENSEIN PRÜFEN) und CHECK SIMILARITY (GLEICHARTIGKEIT PRÜFEN). Der Rahmentest ist der erste Schritt einer Enthaltensein-Prüfung, die ausgeführt wird, um festzustellen, ob das kleinere Objekt in dem größeren Objekt enthalten ist. Fig. 5 zeigt eine Schemazeichnung, die den Rahmentest veranschaulicht. In Fig. 5 sind ein Objekt 1 und ein Objekt k identifiziert worden, wobei das Objekt 1 größer ist als das Objekt k. Nach dem Verfahren gemäß der ersten Ausführungsform schließt der Schritt zur Feststellung, ob jedes kleinere Objekt in jedem größeren Objekt enthalten ist, den Teilschritt zur Bestimmung der vier Extremalpunkte des größeren Objekts ein. Wie in Fig. 5 dargestellt, werden vier Extremalpunkte L, T, R und B für das Objekt 1 bestimmt. Jeder Extremalpunkt weist einen Zeilenpositions-Koordinatenwert und einen Spaltenpositions-Koordinatenwert auf. Die vier Extremalpunkte werden mit Hilfe eines Moduls TRACE OBJECT (OBJEKT VERFOLGEN) ermittelt, wie weiter unten anhand der Fig. 27A-27B beschrieben wird. Jeder Extremalpunkt hat einen Zeilenpositions-Koordinatenwert und einen Spaltenpositions-Koordinatenwert, die weiter unten anhand der Fig. 6-9 beschrieben werden. Der Zeilenpositions-Koordinatenwert und der Spaltenpositions- Koordinatenwert jedes der vier Extremalpunkte werden mit Hilfe des Moduls TRACE OBJECT ermittelt. Der Bestimmungsschritt weist ferner die Teilschritte zur Konstruktion eines das größere Objekt begrenzenden Rechtecks unter Verwendung des Zeilenpositions-Koordinatenwerts und des Spaltenpositions-Koordinatenwerts der vier Extremalpunkte auf. Durch Ausführung des Rahmentests wird mit Hilfe des Zeilenpositions-Koordinatenwerts und des Spaltenpositions-Koordinatenwerts der vier Extremalpunkte L, T, R und B für das Objekt 1 ein Rechteck X konstruiert, wie in Fig. 5 dargestellt. Der Bestimmungsschritt schließt ferner die Teilschritte zum Bestimmen eines vorgegebenen Punkts auf dem kleineren Objekt ein. Dieser Punkt ist als Punkt c in Fig. 5 dargestellt. Der vorgegebene Punkt weist einen Zeilenpositions-Koordinatenwert und einen Spaltenpositions-Koordinatenwert auf, die mit Hilfe des Moduls TRACE OBJECT ermittelt werden. Der Bestimmungsschritt weist ferner die Teilschritte zum Bestimmen der Position eines vorgegebenen Punkts des kleineren Objekts bezüglich des Rechtecks auf, welches das größere Objekt begrenzt. In einer bevorzugten Implementierung der ersten Ausführungsform ist der vorgegebene Punkt der Massenmittelpunkt. Der vorgegebene Punkt kann jedoch ein beliebiger Punkt auf dem kleineren Objekt sein.
- Um den ersten Schritt des Rahmentests auszuführen, ruft der Modul FILTER OBJECTS den Modul SET STATUS auf, wie weiter unten anhand von Fig. 6 beschrieben. SET STATUS verwendet Informationen über die Umfangspunkte an einem Objekt, die aus dem Modul TRACE OBJECT abgeleitet sind. Der Modul SET STATUS führt den Rahmentest aus, wie weiter oben anhand von Fig. 5 beschrieben. Fig. 6 zeigt ein Ablaufdiagramm, das die Schritte des Moduls SET STATUS darstellt. Wie im Entscheidungsblock A von Fig. 6 gezeigt, wird im ersten Schritt von SET STATUS gefragt, ob das kleinere Objekt in dem größeren Objekt aus dem Rahmentest enthalten ist. Wenn nicht, dann wird der Modul SET STATUS beendet, wie im Oval B dargestellt. Ist das kleinere Objekt in dem durch den Rahmentest bestimmten größeren Objekt enthalten, dann wird im Entscheidungsblock C wieder gefragt, ob das kleinere Objekt in dem größeren Objekt enthalten ist, welche Feststellung mit Hilfe des Moduls CONTAIN STATUS (ENTHALTENSEIN-ZUSTAND) getroffen wird, der weiter unten in den Fig. 17A und 17B beschrieben wird. Wenn nicht, dann wird der Modul SET STATUS beendet, wie im Oval D dargestellt. Ist das kleinere Objekt in dem größeren Objekt enthalten, was mit Hilfe des Moduls CONTAIN STATUS festgestellt wird, dann wird im Entscheidungsblock E gefragt, ob die Farbtöne des kleineren Objekts und des größeren Objekts ähnlich sind. Diese Feststellung erfolgt mit Hilfe des Moduls CHECK SIMILARITY (GLEICHARTIGKEIT PRÜFEN), wie weiter unten in Fig. 19 beschrieben. Sind die Farbtöne des kleineren Objekts und des größeren Objekts nicht ähnlich, dann wird der Modul SET STATUS beendet, wie im Oval F angegeben.
- Wenn die Farbtöne des kleineren Objekts und des größeren Objekts ähnlich sind, dann wird im Entscheidungsblock G von Fig. 6 gefragt, ob die Anzahl der Tochterobjekte des größeren Objekts gleich eins ist. Wenn ja, dann wird das Tochterobjekt des größeren Objekts (d. h. das kleinere Objekt, das in dem größeren Objekt enthalten ist) auf das kleinere Objekt gesetzt, wie im Block H in Fig. 6 dargestellt, und die Anzahl der Tochterobjekte wird inkrementiert, wie im Block I dargestellt. Alternativ wird, wenn die Anzahl der Tochterobjekte des größeren Objekts ungleich eins ist, die Anzahl der Tochterobjekte des größeren Objekts inkrementiert, wie im Block I dargestellt. In jedem der beiden Fälle wird nach dem Inkrementieren der Anzahl der Tochterobjekte der Zustandswert HISTORY (VORGESCHICHTE) des kleineren Objekts auf CHILD (TOCHTEROBJEKT) gesetzt, wie im Block J von Fig. 6 dargestellt. Dann wird der Modul SET STATUS beendet, wie im Oval K angegeben.
- Gemäß dem ersten Schritt der Enthaltensein-Prüfung ist der vorgegebene Punkt in dem das größere Objekt begrenzenden Rechteck enthalten, wenn die beiden folgenden Bedingungen erfüllt sind. Erstens liegt der Zeilenpositions-Koordinatenwert des vorgegebenen Punkts des kleineren Objekts zwischen dem Minimal- und dem Maximalwert für die Zeilenpositions-Koordinatenwerte des Rechtecks, welches das größere Objekt begrenzt. Zweitens liegt der Spaltenpositions-Koordinatenwert des vorgegebenen Punkts des kleineren Objekts zwischen dem Minimal- und dem Maximalwert für die Spaltenpositions- Koordinatenwerte des Rechtecks, welches das größere Objekt begrenzt. In einer bevorzugten Ausführungsform ist der vorgegebene Punkt der Massenmittelpunkt. Der vorgegebene Punkt kann jedoch ein beliebiger Punkt auf dem kleineren Objekt sein.
- Fig. 12 veranschaulicht den zweiten Schritt der Enthaltensein-Prüfung gemäß der ersten Ausführungsform, der durch den Modul CHECK CONTAIN (ENTHALTENSEIN PRÜFEN) ausgeführt wird, wie weiter unten anhand von Fig. 16 beschrieben wird. Gemäß dem zweiten Schritt der Enthaltensein- Prüfung schließt der Schritt zur Feststellung, ob das jeweilige kleinere Objekt einen charakteristischen Wert aufweist, der in einem vorgegebenen Bereich für die charakteristischen Werte des größeren Objekts enthalten ist, ferner die folgenden Teilschritte ein. Die Umfangspunkte des größeren Objekts werden bestimmt. Dies erfolgt für die erste Ausführungsform mit Hilfe des Moduls GET PERIM (UMFANG ERMITTELN), wie anhand von Fig. 11 beschrieben. Um Informationen über die Umfangspunkte eines Objekts zu erhalten, wird das Objekt zuerst fortlaufend entweder in Uhrzeigerrichtung oder gegen die Uhrzeigerrichtung verfolgt bzw. umfahren. Der Modul GET PERIM wird benutzt, um den Zeilenpositions- Koordinatenwert und den Spaltenpositions-Koordinatenwert jedes Umfangspunkts zu bestimmen. Die Grundgedanken des Moduls GET PERIM sind ähnlich denjenigen, die in "Digital Image Processing" (Digitale Bildverarbeitung) von Rafael C. Gonzalez und Paul Wintz, 2. Aufl., Eddison-Wesley Publishing Company, Reading, Massachusetts (1987), beschrieben werden.
- Fig. 7 zeigt eine Schemazeichnung für ein einfaches Objekt, das in Uhrzeigerrichtung verfolgt wird. Zu Erläuterungszwecken sind dreizehn Umfangspunkte dargestellt. Jeder Umfangspunkt weist einen Zeilenpositions-Koordinatenwert, einen Spaltenpositions-Koordinatenwert und einen Richtungscodevektor auf. Dabei ist zu beachten, daß in diesem Zusammenhang Zeile und Spalte nicht unbedingt horizontale Zeilen und vertikale Spalten sind. Vielmehr kann jedes beliebige Liniensegment durch das Objekt durch Vorgabe der geeigneten Kordinatenachsen in eine Zeile oder eine Spalte übersetzt werden. Der Richtungscodevektor weist für jeden Umfangspunkt einen ersten und einen zweiten Richtungscodewert auf. Der erste Richtungscodewert beschreibt die Positionsbeziehung des jeweiligen Umfangspunkts zum nächsten Umfangspunkt, wie sie durch den Modul GET PERIM bestimmt wird, und der zweite Richtungscodewert beschreibt die Positionsbeziehung des jeweiligen Umfangspunkts zum vorhergehenden Umfangspunkt, wie durch den Modul GET PERIM ermittelt. Die Definition des "nächsten bzw. vorhergehenden Punkts ", wie weiter unten diskutiert, ist von der Richtung abhängig, in der das Objekt verfolgt wird. Das i-te Element des Umfangspuffers wird mit dem Richtungscode-Deskriptor (xi , yi , vectori ) bezeichnet, wobei xi der Zeilenpositions-Koordinatenwert, yi der Spaltenpositions-Koordinatenwert und vectori der Richtungscodevektor ist, der die folgenden Informationen enthält:
- (i) nexti ist der Richtungscodewert zum nächsten Umfangspunkt und
- (ii) previ ist der Richtungscodewert vom vorhergehenden Punkt des aktuellen Punkts.
- Fig. 8 zeigt eine Tabelle, die den Zeilenpositions-Koordinatenwert, den Spaltenpositions- Koordinatenwert und die ersten und zweiten Richtungscodewerte für die in Fig. 7 dargestellten dreizehn Punkte angibt. Zum Beispiel wird der Punkt 13 mit einem Zeilenpositions-Koordinatenwert 2, einem Spaltenpositions-Koordinatenwert 1, einem ersten Richtungscodewert 1 und einem zweiten Richtungscodewert 7 bezeichnet.
- Bei der vorliegenden Erfindung können die Richtungscodewerte im Bereich von 0-7 liegen, in Abhängigkeit von der Richtung von einem Umfangspunkt zu einem benachbarten Umfangspunkt (entweder dem nächsten Umfangspunkt oder dem vorhergehenden Umfangspunkt). Die Richtungscodewerte für die vorliegende Erfindung sind in den Fig. 9 und 10 dargestellt. Die Richtungscodewerte von Fig. 10 werden durch Drehung der in Fig. 9 dargestellten Werte um 90º abgeleitet. Die Anwendung des in Fig. 9 dargestellten Satzes von Richtungscodewerten im Gegensatz zu den in Fig. 10 dargestellten Richtungscodewerten ist außerdem von dem weiter unten zu erörternden Sortierverfahren des Umfangspuffers abhängig. Wie aus Fig. 9 erkennbar, würde für nexti gleich null der nächste Umfangspunkt senkrecht über dem aktuellen Umfangspunkt und in der gleichen Spalte liegen. Es ist wichtig, zu erkennen, daß der Wert eines Richtungscodes von einem Umfangspunkt zum nächsten von dem Richtungssinn abhängt, in dem das Objekt durch den Modul GET PERIM verfolgt wird. Wird das Objekt in Uhrzeigerrichtung verfolgt, dann ergeben sich andere zu den Umfangspunkten gehörende Richtungscodes, als wenn das Objekt gegen die Uhrzeigerrichtung verfolgt wird.
- Die Schritte des Moduls GET PERIM sind in Fig. 11 dargestellt. Wie in Fig. 11 dargestellt, setzt der Block A den aktuellen Punkt auf den ersten Punkt im Objekt. Im Entscheidungsblock B wird dann gefragt, ob der nächste Umfangspunkt gefunden worden ist. Wenn nicht, dann ist das verfolgte Objekt ungültig, und der Modul ist beendet, wie im Block C dargestellt. Ist der nächste Umfangspunkt gefunden worden, dann werden die Zeilen- und Spaltenpositions-Koordinatenwerte im Umfangspuffer gespeichert, wie im Block D von Fig. 11 erläutert. Der aktuelle Punkt wird auf den nächsten Umfangspunkt gesetzt, wie im Block E von Fig. 11 dargestellt. Dann wird im Entscheidungsblock gefragt, ob der aktuelle Punkt am ersten Umfangspunkt angelangt ist. Wenn nicht, dann wird die Schleife über den Entscheidungsblock B, die Blöcke C-E und den Entscheidungsblock F wiederholt, bis der aktuelle Punkt am ersten Umfangspunkt angelangt ist. Wenn die Antwort auf den Entscheidungsblock F "ja" ist, dann wird der Modul GET PERIM beendet.
- Nach dem Ausführen des Moduls GET PERIM wird dann ein Umfangspuffer erzeugt. Dies erfolgt durch einen Modul LOAD BUFFER (PUFFER LADEN), der anhand der Fig. 13A und 13B beschrieben wird. Der Umfangspuffer enthält die Umfangspunkte des größeren Objekts. Jeder Umfangspunkt weist einen Zeilenpositions-Koordinatenwert, einen Spaltenpositions-Koordinatenwert und einen Richtungscodevektor auf. Der Richtungscodevektor weist einen ersten und einen zweiten Richtungscodewert für jeden Umfangspunkt auf. Der erste Richtungscodewert beschreibt die Beziehung des jeweiligen Umfangspunkts zum nächsten Umfangspunkt, und der zweite Richtungscodewert beschreibt die Beziehung des jeweiligen Umfangspunkts zum vorhergehenden Umfangspunkt. Die Umfangspunkte im Umfangspuffer werden dann in einer vorgegebenen Reihenfolge sortiert, um einen nach Zeilen und Spalten sortierten Umfangspuffer zu erzeugen. Dann wird jedem Umfangspunkt im Puffer eine Umfangspunktzustandsvariable zugeordnet. Dieser Schritt erfolgt durch einen Modul CONTAIN STATUS (ENTHALTENSEIN-ZUSTAND), der weiter unten anhand der Fig. 17A und 17B beschrieben wird. Die Umfangspunktzustandsvariable weist einen Wert von einem ersten und einem zweiten Wert auf. Der Wert der Umfangspunktzustandsvariablen ist durch die ersten und die zweiten Richtungscodewerte bestimmt. Das kleinere Objekt wird als in dem größeren Objekt enthalten gekennzeichnet, wenn der Spaltenpositions-Koordinatenwert eines vorgegebenen Punkts des kleineren Objekts zwischen dem Spaltenpositions-Koordinatenwert eines Umfangspunkts mit dem ersten Wert der Umfangspunktzustandsvariablen und dem Spaltenpositions-Koordinatenwert des nächsten Umfangspunkts im sortierten Umfangspuffer liegt, wobei die Umfangspunkte den gleichen Zeilenpositions- Koordinatenwert wie der vorgegebene Punkt des kleineren Objekts aufweisen. In einer bevorzugten Implementierung der ersten Ausführungsform ist der vorgegebene Punkt der Massenmittelpunkt. Der vorgegebene Punkt kann jedoch ein beliebiger Punkt auf dem kleineren Objekt sein.
- Wenn man diese auf Fig. 12 bezieht, werden Objekte m, n und o identifiziert. Ein vorgegebener Punkt v im Objekt n und ein vorgegebener Punkt w im Objekt o werden beide so festgelegt, daß sie innerhalb der Grenzen des Rechtecks X' liegen. Bei Anwendung des zweiten Schritts der Enthaltensein- Prüfung wird der vorgegebene Punkt v des Objekts n so bestimmt, daß er einen Spaltenpositions- Koordinatenwert aufweist, der zwischen den Spaltenpositions-Koordinatenwerten von zwei Umfangspunkten des Objekts m liegt, wobei beide Umfangspunkte den gleichen Zeilenpositions- Koordinatenwert wie der Punkt v aufweisen. Es wird festgestellt, daß das Objekt n im Objekt m enthalten ist, Das Objekt n ist ein einzelnes, kleineres Objekt, das im Objekt m enthalten ist und anschließend gelöscht - d. h. nicht beibehalten - werden kann, wenn gewisse Kriterien erfüllt sind. Bei Anwendung des zweiten Schritts der Enthaltensein-Prüfung weist der Punkt w des Objekts o keinen Spaltenpositions- Koordinatenwert auf, der zwischen den Spaltenpositions-Koordinatenwerten von zwei Umfangspunkten des Objekts m mit dem gleichen Zeilenpositions-Koordinatenwert wie der Punkt w liegt. Es wird daher festgestellt, daß das Objekt o nicht in dem Objekt m enthalten ist. Das Objekt ist weder ein Mutterobjekt noch ein Tochterobjekt des Objekts m und wird daher beibehalten.
- Zu beachten ist, daß der zweite Schritt der Enthaltensein-Prüfung auf alle identifizierten Objekts angewandt werden kann, ohne zunächst den ersten Schritt (d. h. den Rahmentest) anzuwenden. Durch aufeinanderfolgendes Anwenden des ersten und des zweiten Schritts dient der erste Schritt jedoch als Anfangssieb für die Enthaltensein-Prüfung. Der zweite Schritt wird nur dann angewandt, wenn festgestellt wird, daß sich in dem rechteckigen Rahmen ein Objekt befindet. Diese aufeinanderfolgende Anwendung des ersten und des zweiten Schritts ist weniger rechenintensiv und ermöglicht die Ausführung der Redundanzbestimmung mit höherer Geschwindigkeit.
- Die Schritte des Moduls LOAD BUFFER, der einen Umfangspuffer erzeugt, sind in den Fig. 13A und 13B dargestellt. Im ersten Schritt, der im Block A dargestellt ist, wird der aktuelle Punkt auf den ersten Punkt im Umfangspuffer gesetzt. Im Entscheidungsblock B wird dann gefragt, ob der aktuelle Punkt jenseits des letzten Punkts im Puffer liegt. Wenn ja, dann wird der Modul LOAD BUFFER beendet, wie in dem Oval C von Fig. 13A dargestellt. Liegt der aktuelle Punkt nicht jenseits des letzten Punkts im Puffer, dann wird im Entscheidungsblock D gefragt, ob der aktuelle Punkt der erste Punkt im Puffer ist. Wenn ja, dann setzt der Block E den vorhergehenden Punkt auf den letzten Punkt im Puffer. Ist der aktuelle Punkt nicht der erste Punkt im Puffer, dann wird im Entscheidungsblock F gefragt, ob der aktuelle Punkt der letzte Punkt im Puffer ist. Wenn ja, dann setzt der Block G den nächsten Punkt auf den ersten Punkt im Puffer. Nachdem der vorhergehende Punkt auf den letzten Punkt im Umfangspuffer gesetzt worden ist, wenn der aktuelle Punkt der erste Punkt im Umfangspuffer ist, oder nachdem der nächste Punkt auf den ersten Punkt im Umfangspuffer gesetzt worden ist, wenn der aktuelle Punkt der letzte Punkt im Umfangspuffer ist, wird die Differenz des Zeilenpositions-Koordinatenwerts zwischen dem nächsten Punkt und dem aktuellen Punkt berechnet und im Puffer gespeichert, wie im Block H in Fig. 13A dargestellt. Diese Differenz wird mit ΔROWNEXT bezeichnet. Dann wird die Differenz des Spaltenpositions-Koordinatenwertes zwischen dem nächsten Punkt und dem aktuellen Punkt berechnet und im Puffer gespeichert, wie im Block I in Fig. 13A dargestellt. Diese Differenz wird als ΔCOLNEXT bezeichnet. Dann wird die Differenz des Zeilenpositions- Koordinatenwerts zwischen dem aktuellen Punkt und dem vorhergehenden Punkt berechnet und im Puffer gespeichert, wie im Block J in Fig. 13b dargestellt. Diese Differenz wird als ΔROWPREV bezeichnet. Als nächstes wird die Differenz des Spaltenpositions-Koordinatenwertes zwischen dem aktuellen Punkt und dem vorhergehenden Punkt berechnet und im Puffer gespeichert, wie im Block K dargestellt. Diese Differenz wird mit ΔCOLPREV bezeichnet. Der aktuelle Punkt wird dann zum nächsten Umfangspunkt im Puffer verschoben, wie im Block L dargestellt, und der Modul springt zum Entscheidungsblock B von Fig. 13A zurück. Die Schleife über B und D-L läuft weiter, bis der aktuelle Punkt hinter dem letzten Punkt im Puffer liegt, zu welchem Zeitpunkt der Modul LOAD BUFFER beendet ist, wie im Oval C dargestellt.
- Dann werden die Umfangspunkte zuerst nach der Zeile und dann nach der Spalte sortiert, um einen nach Zeilen und Spalten sortierten Umfangspuffer zu erzeugen. Dieser Sortierschritt wird für das Verfolgen des Objekts entweder in Uhrzeigerrichtung oder gegen die Uhrzeigerrichtung ausgeführt. Dieser Sortierschritt wird nach dem normalen "Schalensortierverfahren" ausgeführt, das von Robert Sedgewick in seinem Lehrbuch Algorithms in C (Algorithmen in C), Addison Wesley, 1990, beschrieben wird. Zu beachten ist, daß die Information "vectori", die zu jedem Umfangspunkt gehört, sich während der Sortierung mit dem Punkt verschiebt. Zu beachten ist auch, daß eine Zeile und eine Spalte zwei orthogonale, unabhängige Koordinatenwerte darstellen, die bezüglich zweier Bezugsachsen, die willkürlich gewählt werden können, mit jedem Punkt in dem Bild verbunden sind. So können die Umfangspunkte alternativ zunächst in der Richtung sortiert werden, die herkömmlicherweise als eine Zeile betrachtet wird (in horizontaler Richtung), und dann in einer dazu senkrechten Richtung (in vertikaler Richtung), wie weiter unten explizit erläutert wird.
- In einer Version der ersten oder der vierten Ausführungsform wird das Objekt in Uhrzeigerrichtung verfolgt, und die Umfangspunkte werden zuerst nach der Zeile sortiert, um einen nach Zeilen sortierten Umfangspuffer zu erzeugen, der zumindest einen nach Zeilen sortierten Umfangspunkt aufweist. Die Umfangspunkte werden in aufsteigender Reihenfolge sortiert, so daß die Punkte mit den niedrigsten Zeilenpositions-Koordinatenwerten an den Anfang (d. h. das erste Element in der Pufferfolge) des Puffers gesetzt werden. Als Alternative werden die Umfangspunkte in absteigender Reihenfolge sortiert, so daß die Punkte mit den höchsten Zeilenpositions-Koordinatenwerten an den Anfang des Puffers gesetzt werden.
- In dieser einen Version werden dann die Umfangspunkte in dem nach Zeilen sortierten Umfangspuffer nach Spalten sortiert, um einen nach Zeilen und Spalten sortierten Umfangspuffer zu erzeugen, der mindestens einen nach Zeilen und Spalten sortierten Umfangspunkt aufweist. Der Schritt zum Sortieren der Umfangspunkte nach Spalten weist das Sortieren der Umfangspunkte in aufsteigender Reihenfolge auf. Falls der Puffer in aufsteigender Reihenfolge nach Zeilen und anschließend nach Spalten sortiert worden ist, befindet sich der Punkt mit dem niedrigsten Spaltenpositions-Koordinatenwert und dem niedrigsten Zeilenpositions-Koordinatenwert am Anfang des Puffers. Falls der Puffer in absteigender Reihenfolge nach Zeilen und anschließend nach Spalten sortiert worden ist, befindet sich der Punkt mit dem niedrigsten Spaltenpositions-Koordinatenwert und dem höchsten Zeilenpositions-Koordinatenwert am Anfang des Puffers.
- In einer zweiten Version der ersten oder der vierten Ausführungsform wird das Objekt gegen die Uhrzeigerrichtung verfolgt, und die Umfangspunkte im Umfangspuffer werden nach Zeilen sortiert, um einen nach Zeilen sortierten Umfangspuffer zu erzeugen, der mindestens einen nach Zeilen sortierten Umfangspunkt aufweist. Der Schritt zum Sortieren der Umfangspunkte nach Zeilen weist das Sortieren der Umfangspunkte in aufsteigender Reihenfolge auf, so daß die Punkte mit den niedrigsten Zeilenpositions- Koordinatenwerten an den Anfang des Puffers gesetzt werden. Alternativ weist der Schritt zum Sortieren der Umfangspunkte nach Zeilen das Sortieren der Umfangspunkte in absteigender Reihenfolge auf, so daß die Punkte mit den höchsten Zeilenpositions-Koordinatenwerten an den Anfang des Puffers gesetzt werden.
- In dieser zweiten Version werden dann die Umfangspunkte in dem nach Zeilen sortierten Umfangspuffer nach Spalten sortiert, um einen nach Zeilen und Spalten sortierten Umfangspuffer zu erzeugen, der mindestens einen nach Zeilen und Spalten sortierten Umfangspunkt aufweist. Der Schritt zum Sortieren der nach Zeilen sortierten Umfangspunkte nach Spalten weist das Sortieren der Umfangspunkte in absteigender Reihenfolge auf. Falls der Puffer zunächst nach Zeilen in absteigender Reihenfolge und anschließend nach Spalten sortiert worden ist, befindet sich der Punkt mit der höchsten Spaltenpositions- Koordinate und der niedrigsten Zeilenpositions-Koordinate am Anfang des Puffers. Falls der Puffer zunächst nach Zeilen in absteigender Reihenfolge und dann nach Spalten sortiert worden ist, befindet sich der Punkt mit der höchsten Spaltenpositions-Koordinate und der höchsten Zeilenpositions-Koordinate am Anfang des Puffers.
- In einer dritten Version der ersten oder der vierten Ausführungsform wird das Objekt in Uhrzeigerrichtung verfolgt, und die Umfangspunkte im Umfangspuffer werden nach Spalten sortiert, um einen nach Spalten sortierten Umfangspuffer zu erzeugen, der mindestens einen nach Spalten sortierten Umfangspunkt aufweist. Der Schritt zum Sortieren der Umfangspunkte nach Spalten weist das Sortieren der Umfangspunkte in aufsteigender Reihenfolge auf, so daß die Punkte mit den niedrigsten Spaltenpositions- Koordinatenwerten an den Anfang des Puffers gesetzt werden. Als Alternative weist der Schritt zum Sortieren der Umfangspunkte nach Spalten das Sortieren der Umfangspunkte in absteigender Reihenfolge auf, so daß die Punkt mit den höchsten Spaltenpositions-Koordinatenwerten am Anfang des Puffers gesetzt werden.
- In dieser dritten Version werden die Umfangspunkte in dem nach Spalten sortierten Puffer dann nach Zeilen sortiert, um einen nach Spalten und Zeilen sortierten Umfangspuffer zu erzeugen, der mindestens einen nach Spalten und Zeilen sortierten Umfangspunkt aufweist. Der Schritt zum Sortieren der Umfangspunkte nach Zeilen weist das Sortieren der nach Spalten sortierten Umfangspunkte in absteigender Reihenfolge auf. Falls der Puffer in aufsteigender Reihenfolge nach Spalten und anschließend in absteigender Reihenfolge nach Zeilen sortiert worden ist, wird der Punkt mit der höchsten Zeilenpositions- Koordinate und der niedrigsten Spaltenpositions-Koordinate an den Anfang des Puffers gesetzt. Falls der Puffer in absteigender Reihenfolge nach Spalten und dann in absteigender Reihenfolge nach Zeilen sortiert worden ist, wird der Punkt mit dem höchsten Zeilenpositions-Koordinatenwert und dem höchsten Spaltenpositions-Koordinatenwert an den Anfang des Puffers gesetzt.
- In einer vierten Version der ersten oder der vierten Ausführungsform wird das Objekt gegen die Uhrzeigerrichtung verfolgt, und die Umfangspunkte im Umfangspuffer werden nach Spalten sortiert, um einen nach Spalten sortierten Umfangspuffer zu erzeugen, der mindestens einen nach Spalten sortierten Umfangspunkt aufweist. Der Schritt zum Sortieren der Umfangspunkte nach Spalten weist das Sortieren der Umfangspunkte in aufsteigender Reihenfolge auf, so daß die Punkte mit den niedrigsten Spaltenpositions- Koordinatenwerten an den Anfang des Puffers gesetzt werden. Als Alternative weist der Schritt zum Sortieren der Umfangspunkte nach Spalten das Sortieren der Umfangspunkte in absteigender Reihenfolge auf, so daß die Punkte mit den höchsten Spaltenpositions-Koordinatenwerten an den Anfang des Puffers gesetzt werden.
- In dieser vierten Version der ersten Ausführungsform werden die Umfangspunkte in einem nach Spalten sortierten Umfangspuffer dann nach Zeilen sortiert, um einen nach Spalten und Zeilen sortierten Umfangspuffer zu erzeugen, der mindestens einen nach Spalten und Zeilen sortierten Umfangspunkt aufweist. Der Schritt zum Sortieren der Umfangspunkte nach Zeilen in dem nach Spalten sortierten Puffer weist das Sortieren der Umfangspunkte in aufsteigender Reihenfolge auf. Falls der Puffer zuerst in aufsteigender Reihenfolge nach Spalten und anschließend in aufsteigender Reihenfolge nach Zeilen sortiert worden ist, befindet sich der Punkt mit dem niedrigsten Zeilenpositions-Koordinatenwert und dem niedrigsten Spaltenpositions-Koordinatenwert am Anfang des Puffers. Falls der Puffer zuerst in absteigender Reihenfolge nach Spalten und anschließend in aufsteigender Reihenfolge nach Zeilen sortiert worden ist, befindet sich der Punkt mit dem niedrigsten Zeilenpositions-Koordinatenwert und dem höchsten Spaltenpositions-Koordinatenwert am Anfang des Puffers.
- Dann wird jedem Umfangspunkt eine Umfangspunktzustandsvariable zugeordnet, die einen von einem ersten und einem zweiten Wert aufweist. Dieser Schritt wird in einem Modul CONTAIN STATUS (ENTHALTENSEIN-ZUSTAND) ausgeführt, dessen Ablaufdiagramm weiter unten anhand der Fig. 17A und 17B beschrieben wird. Der erste Wert der Umfangspunktzustandsvariablen ist "FILL", und der zweite Wert der Umfangspunktzustandsvariablen ist "NO FILL" Der Wert der Zustandsvariablen wird durch die ersten und zweiten Richtungscodewerte nexti und previ bestimmt. Die Richtungscodewerte werden entsprechend den Fig. 9 und 10 in Abhängigkeit von der angewandten Sortierversion des Umfangspuffers bestimmt. Wenn die Punkte im Umfangspuffer zuerst nach Zeilen und dann nach Spalten sortiert werden, wie z. B. in der ersten Version der ersten Ausführungsform, dann werden die in Fig. 9 dargestellten Richtungscodewerte verwendet. Wenn die Punkte im Umfangspuffer zuerst nach Spalten und dann nach Zeilen sortiert werden, wie z. B. in der zweiten Version der ersten Ausführungsform, dann werden die in Fig. 10 dargestellten Richtungscodewerte verwendet. Die Regeln für die Abbildung von nexti und previ auf FILL oder NO FILL sind für Objekte, die in Uhrzeigerrichtung verfolgt werden, in einer in Fig. 14 dargestellten FILL-Nachschlagetabelle (LUT) zusammengefaßt. Für Objekte, die gegen die Uhrzeigerrichtung verfolgt werden, sind die Regeln für die Abbildung von nexti und previ auf FILL oder NO FILL in einer in Fig. 15 dargestellten FILL-Nachschlagetabelle (LUT) zusammengefaßt. In den Nachschlagetabellen der Fig. 14 und 15 steht F für FILL und NF steht für NO FILL. Die Nachschlagetabelle der Fig. 14 und 15 werden auf der Grundlage der lokalen Konkavität oder Konvexität des Objekts empirisch abgeleitet.
- Die Schritte des Moduls CHECK CONTAIN sind in dem Ablaufdiagramm von Fig. 16 dargestellt. Der Modul CHECK CONTAIN führt eine definitive Prüfung auf Enthaltensein aus. Der Modul CHECK CONTAIN ruft den in Fig. 11 dargestellten Modul GET PERIM (UMFANG ERMITTELN) auf, der die Koordinaten der Umfangspunkte des größeren Objekts bestimmt, und speichert diese im Umfangspuffer, wie im Block A von Fig. 16 dargestellt. Der Modul LOAD BUFFER (PUFFER LADEN), der konkret in den Fig. 13A und 13B dargestellt ist, wie oben beschrieben, erweitert den Umfangspuffer durch Einbeziehen der Richtungscodevektoren von jedem Umfangspunkt zum vorhergehenden und zum nächsten Umfangspunkt im Umfangspuffer. Dies ist eigentlich der zweite Schritt des Moduls SET STATUS (ZUSTAND SETZEN), der weiter oben in bezug auf Fig. 6 beschrieben wurde.
- Wie weiter oben in bezug auf Fig. 16 beschrieben, ruft der Modul CHECK CUNTAIN einen Modul CONTAIN STATUS (ENTHALTENSEIN-ZUSTAND) auf, um festzustellen, ob das kleinere Objekt in dem größeren Objekt enthalten ist. Die Schritte des Moduls CONTAIN STATUS sind in den Fig. 17A und 17B dargestellt. Wie im Block AA von Fig. 17A gezeigt, besteht der erste Schritt von CONTAIN STATUS darin, den Umfangspuffer nach Zeilen und Spalten zu sortieren. Dann wird, wie im Block A von Fig. 17A dargestellt, der aktuelle Punkt auf den ersten Punkt des Umfangspuffers des größeren Objekts gesetzt. Im Entscheidungsblock B wird dann gefragt, ob der aktuelle Punkt hinter dem letzten Punkt des Umfangspuffers liegt. Wenn ja, wird FALSE (FALSCH) zurückgegeben, wie im Block C dargestellt, was bedeutet, daß das kleinere Objekt nicht in dem größeren Objekt enthalten ist, und der Modul ist beendet, wie im Oval D angegeben. Wenn der aktuelle Punkt nicht hinter dem letzten Punkt liegt, dann wird im Entscheidungsblock E gefragt, ob der Zeilenpositions-Koordinatenwert des aktuellen Wertes gleich dem Zeilenpositions-Koordinatenwert des Massenmittelpunkts des kleineren Objekts ist. Wenn die Antwort auf den Entscheidungsblock E "ja" ist, dann wird im Entscheidungsblock F gefragt, ob der aktuelle Punkt der gleiche Punkt ist wie der nächste Punkt im Umfangspuffer. Wenn ja, dann wird der aktuelle Punkt als redundanter Punkt gekennzeichnet, wie im Block G dargestellt. Ein redundanter Umfangspunkt ist ein Punkt, auf den beim fortlaufenden Verfolgen des Objekts mehr als einmal zugegriffen wurde bzw. der mehr als einmal durchquert wurde. Dies könnte z. B. bei Überkreuzungspunkten auftreten, d. h. bei einem Punkt, der während des Verfolgungsschritts mehr als einmal durchquert wurde. Bei der Ausführung dieser Prüfung auf redundante Punkte tritt der Schritt, in dem alle Punkte, die zwischen jedem redundanten Umfangspunkt und dem nächsten Umfangspunkt auf dem gleichen Liniensegment liegen, als innere Punkte des Objekts gekennzeichnet werden, nur dann auf, wenn allen Fällen jedes redundanten Umfangspunkts der erste Wert der Umfangspunktzustandsvariablen (FILL) zugeordnet wird.
- Dann wird im Entscheidungsblock H gefragt, ob die Zustandsvariable des aktuellen Punkts und des nächsten Punkts gleich FILL sind. Ist die Antwort "ja", dann geht CONTAIN STATUS zum Entscheidungsblock I in Fig. 17B über. Im Entscheidungsblock I in Fig. 17B wird gefragt, ob der Spaltenpositions-Koordinatenwert des Massenmittelpunkts des kleineren Objekts größer oder gleich dem Spaltenpositions-Koordinatenwert des Massenmittelpunkts des aktuellen Punkts und kleiner oder gleich dem Spaltenpositions-Koordinatenwert des nächsten Umfangspunkts im Umfangspuffer ist. Ist die Antwort auf eine oder beide von diesen Fragen "nein", dann wird der aktuelle Punkt auf den nächsten Punkt im Umfangspuffer gesetzt, wie im Block J in Fig. 17A dargestellt, und die Schleife über B, E, F, G, H, I und J läuft weiter, bis der aktuelle Punkt hinter dem letzten Punkt liegt. Dann wird FALSE zurückgegeben, wie im Block C dargestellt, und der Modul CONTAIN STATUS ist beendet, wie im Oval D angegeben.
- Wenn im Entscheidungsblock E der Zeilenpositions-Koordinatenwert des aktuellen Punkts nicht gleich dem Zeilenpositions-Koordinatenwert des Massenmittelpunkts des kleineren Objekts ist, dann geht der Modul CONTAIN STATUS zum Block J über, und die Schleife über B, E und J läuft weiter, bis der aktuelle Punkt hinter dem letzten Punkt liegt, dann wird FALSE zurückgegeben, und der Modul CONTAIN STATUS ist beendet, wie im Oval D angegeben.
- Wenn im Entscheidungsblock F der aktuelle Punkt nicht der gleiche Punkt wie der nächste Punkt im Umfangspuffer ist, dann wird im Entscheidungsblock K gefragt, ob der Zustandswert des aktuellen Punkts gleich FILL ist, Wenn ja, dann geht der Modul CONTAIN STATUS weiter zum Entscheidungsblock I. Wenn die Antwort auf den Entscheidungsblock I "nein" ist, dann läuft die Schleife über B, E, F, K, I und J weiter, bis der aktuelle Punkt hinter dem letzten Punkt liegt. Zu diesem Zeitpunkt wird FALSE zurückgegeben, und der Modul CONTAIN STATUS ist beendet; wie im Oval D angegeben.
- Wenn im Entscheidungsblock H der Zustandswert des aktuellen Punkts und des nächsten Punkts nicht gleich FILL ist, setzt der Modul CONTAIN STATUS den aktuellen Punkt auf den nächsten Punkt im Umfangspuffer, wie im Block J dargestellt. Die Schleife über B, E, F, G, H und J läuft weiter, bis der aktuelle Punkt hinter dem letzten Punkt liegt. Zu diesem Zeitpunkt wird FALSE zurückgegeben, und der Modul CONTAIN STATUS ist beendet, wie im Oval D angegeben.
- Wenn im Entscheidungsblock K der Zustandswert des aktuellen Punkts nicht gleich FILL ist, dann wird der aktuelle Punkt auf den nächsten Punkt im Umfangspuffer gesetzt, wie im Block J dargestellt, und der Modul springt zum Entscheidungsblock B zurück. Die Schleife über B, E, F und K läuft weiter, bis der aktuelle Punkt hinter dem letzten Punkt liegt, zu welchem Zeitpunkt FALSE zurückgegeben wird und CONTAIN STATUS beendet ist, wie im Oval D angegeben.
- Wenn im Entscheidungsblock I der Spaltenpositions-Koordinatenwert des Massenmittelpunkts des kleineren Objekts größer oder gleich dem Spaltenpositions-Koordinatenwert des aktuellen Punkts und kleiner oder gleich dem Spaltenpositions-Koordinatenwert des nächsten Umfangspunkts im Umfangspuffer ist, wird TRUE (WAHR) zurückgegeben, wie im Block L dargestellt. Der Modul CONTAIN STATUS ist beendet, wie im Oval M angegeben.
- Eine weitere Modifikation der ersten und der vierten Ausführungsform der vorliegenden Erfindung, die aus später zu erörternden Gründen als "Huckepack-Verfahren" bezeichnet wird, unterscheidet zwischen verschiedenartigen Kolonien, die einander räumlich überlappen. Fig. 18 zeigt eine Schemazeichnung, welche die Prüfung auf huckepack getragene Objekte veranschaulicht, die auch als Ähnlichkeitsprüfung bzw. Gleichartigkeitsprüfung bezeichnet wird. Fig. 18 zeigt Objekte q, p und r. Durch Anwendung der Enthaltensein-Prüfungen, wie weiter oben in bezug auf die Fig. 5 und 12 beschrieben, wird festgestellt, daß die beiden Objekte q und r in dem Objekt p enthalten sind. Im Falle der Identifizierung von Objekten unter Anwendung von Bildanalyseverfahren ist es jedoch möglich, daß Objekte zwar scheinbar die gleichen Ebenenkoordinaten im Raum einnehmen, tatsächlich aber getrennte Objekte sind. Ein Beispiel dafür wäre der Fall von lebenden Organismen, wo ein Organismus, der völlig verschiedenartig von einem zweiten Organismus ist, auf einem Teil des zweiten Organismus wächst oder auf diesem "huckepack getragen" wird. Folglich wird eine Gleichartigkeitsprüfung ausgeführt, um festzustellen, ob verschiedene Objekte vorhanden sind.
- Zur Erläuterung wird festgestellt, daß ein vorgegebener Punkt s des Objekts q, wie in Fig. 18 dargestellt, ein charakteristisches Attribut aufweist, z. B. einen Farbton, der in einem vorgegebenen Bereich des Farbtonwerts der inneren Punkte eines Objekts p liegt. Das Objekt q wird als gleichartig und redundant mit dem Objekt p ermittelt. Das Objekt q wird gelöscht. Es wird festgestellt, daß ein vorgegebener Punkt t des Objekts r, wie in Fig. 18 dargestellt, einen charakteristischen Farbtonwert aufweist, der außerhalb des vorgegebenen Farbtonwertbereichs der inneren Punkte des Objekts p liegt. Das Objekt r wird als von dem Objekt p verschieden ermittelt. Beide Objekte r und p werden beibehalten.
- Nach dem Huckepack-Verfahren gemäß der ersten Ausführungsform wird ein charakteristisches Attribut mindestens eines vorgegebenen Punkts jedes zweiten Objekts bestimmt, das mit dem ersten Objekt redundant ist. So wird in einer Implementierung der ersten Ausführungsform ein charakteristisches Attribut eines vorgegebenen Punkts jedes kleineren Objekts bestimmt, das in einem größeren Objekt enthalten ist. Der vorgegebene Punkt kann, muß aber nicht unbedingt der Massenmittelpunkt sein. Das charakteristische Attribut könnte z. B. der Farbton sein, oder es könnte irgendein anderer Struktur- oder Farbparameter sein. Dann wird das gleiche charakteristische Attribut des ersten Objekts, oder in der bevorzugten Implementierung des größeren Objekts, bestimmt. Das erste und das zweite Objekt, die in der bevorzugten Implementierung der ersten und der vierten Ausführungsform das größere bzw. das kleinere Objekt sind, werden beibehalten, und die Objektzustandsvariablen sowohl des größeren als auch des kleineren Objekts werden auf den ersten Wert "RETAIN BOTH" (BEIDE BEIBEHALTEN) gesetzt, wenn die Differenz im charakteristischen Attribut des vorgegebenen Punkts zwischen dem größeren Objekt und dem kleineren Objekt eine vorgegebene Mindestzahl übersteigt. In einer bevorzugten Implementierung der ersten Ausführungsform weist der Bestimmungsschritt die Bestimmung der inneren Punkte des größeren Objekts unter Ausschluß der inneren Punkte des kleineren Objekts auf.
- In der ersten Ausführungsform wird das Huckepack-Verfahren durch einen Modul CHECK SIMILARITY (GLEICHARTIGKEIT PRÜFEN) ausgeführt, dessen Schritte in Fig. 19 dargestellt sind. Der Klarheit halber werden die Schritte von CHECK SIMILARITY mit dem ersten Objekt als einem größeren Objekt und dem zweiten Objekt als einem kleineren Objekt erläutert, wobei es sich versteht, daß Fälle auftreten können, wo das erste und das zweite Objekt auf andere Weise als durch räumliche Überlappung redundant sein können, wie oben angegeben. Wie im Block A von Fig. 19 dargestellt, besteht der erste Schritt von CHECK SIMILARITY darin, den Modul WRITE BUF (IN PUFFER SCHREIBEN) aufzurufen, der, wie weiter unten in bezug auf die Fig. 20A und 20B erläutert, Pixeln in einem Pufferbild, die den inneren Punkten des kleineren Objekts entsprechen, einen vorgegebenen Graustufenwert zuordnet, der als "CENTER" (MITTELPUNKT) bezeichnet wird. Durch Kennzeichnung dieser Punkte mit einem vorgegebenen Graustufenwert ermöglicht der Modul eine genaue Farbtonbestimmung des größeren Objekts, ohne die äußeren Punkte des kleineren Objekts einzuschließen.
- In der obigen Erläuterung wurde ein Punkt in einem Objekt gekennzeichnet, und sein Farbton wurde bestimmt, statt den mittleren Farbton des Objekts zu bestimmen. Der vorgegebene Punkt kann der Massenmittelpunkt sein, um einen Farbtonvergleich zwischen dem kleineren und dem größeren Objekt vorzunehmen. Es ist jedoch festgestellt worden, daß durch Berechnen eines mittleren Farbtons ein aussagekräftigerer Vergleich angestellt werden kann. In diesem Falle wird das mittlere charakteristische Attribut jedes kleineren Objekts verwendet, das in dem größeren Objekt enthalten ist.
- Wie im Block B von Fig. 19 dargestellt, besteht der zweite Schritt von CHECK SIMILARITY in der Berechnung von HUESMALL (FARBTON KLEINES OBJEKT), dem mittleren Farbton des kleineren Objekts. Dann wird der mittlere Farbton des größeren Objekts HUELARGE (FARBTON GROSSES OBJEKT) berechnet, wie im Block C von Fig. 19 dargestellt. Ein Wert DELTA, der gleich HUELARGE - HUESMALL ist, wird berechnet, wie im Block D dargestellt. Im Entscheidungsblock E wird dann gefragt, ob DELTA kleiner als "DELTAHUE" (FARBTONDIFFERENZ) ist. "DELTAHUE" ist ein vorgegebener Wert, der anzeigt, wie dicht die Farbtöne beieinander liegen müssen, damit eine Gleichartigkeit gegeben ist. Wenn die Antwort "nein" ist, dann wird das Mutterobjekt des kleineren Objekts auf das größere Objekt gesetzt, wie im Block F von Fig. 19 dargestellt, und der Objekttyp des kleineren Objekts wird auf CHILD (TOCHTEROBJEKT) gesetzt, wie im Block G von Fig. 19 dargestellt. Dann wird DELETE (LÖSCHEN) zurückgegeben, wie im Block H dargestellt, und der Modul CHECK SIMILARITY ist beendet, wie im Oval I von Fig. 19 angegeben. Wenn im Entscheidungsblock E DELTA kleiner als DELTAHUE ist, dann wird das Mutterobjekt des kleineren Objekts auf das größere Objekt gesetzt, wie im Block J dargestellt, und der Objekttyp des kleineren Objekts wird auf ein gleichartiges Tochterobjekt gesetzt, wie im Block K dargestellt. Es wird RETAIN (BEIBEHALTEN) zurückgegeben, wie im Block L dargestellt, und der Modul ist beendet, wie durch M dargestellt.
- In einer Implementierung des Huckepack-Verfahrens wird das mittlere charakteristische Attribut jedes inneren Punkts jedes zweiten Objekts. z. B. jedes kleineren Objekts, bestimmt. Diese Implementierung, die das mittlere charakteristische Attribut verwendet, liefert einen besseren Vergleich als die Implementierung des Huckepack-Verfahrens, die das charakteristische Attribut verwendet. Es wird dann von jedem inneren Punkt jedes ersten Objekts dieses gleiche mittlere charakteristische Attribut bestimmt. In der bevorzugten Implementierung ist das erste Objekt ein größeres Objekt, das zweite Objekt ist ein kleineres Objekt, und das mittlere charakteristische Attribut ist ein mittlerer innerer Farbton, d. h. der mittlere Farbton aller inneren Punkte. Die Objektzustandsvariable jedes Objekts wird auf einen ersten Wert gesetzt, d. h. auf RETAIN BOTH (BEIDE BEIBEHALTEN), wie oben beschrieben, wenn die Differenz zwischen dem mittleren charakteristischen Attribut der inneren Punkte des ersten Objekts und dem mittleren charakteristischen Attribut der inneren Punkte mindestens eines zweiten Objekts, das mit dem ersten Objekt redundant ist, einen vorgegebenen Mindestwert übersteigt. Folglich werden in der bevorzugten Ausführungsform sowohl das erste als auch das zweite Objekt beibehalten, wenn die Differenz zwischen dem mittleren inneren Farbton des größeren Objekts und dem mittleren inneren Farbton mindestens eines kleineren Objekts, das in dem größeren Objekt enthalten ist, einen vorgegebenen Mindestwert übersteigt.
- In den Fig. 20A und 20B wird durch die Schritte von WRITE BUF (IN PUFFER SCHREIBEN) Pixeln in einem Pufferbild, die den inneren Punkten eines kleineren Objekts entsprechen, ein vorgegebener Graustufenwert zugeordnet, der als CENTER bezeichnet wird. Wie im Block AA dargestellt, besteht der erste Schritt von WRITE BUF darin, den Umfangspuffer nach Zeilen und Spalten zu sortieren. Wie im Block A von Fig. 20A dargestellt, wird dann der aktuelle Punkt auf den ersten Punkt des Umfangspuffers gesetzt, und der FILLPREV-Zustand wird auf FALSE gesetzt. FILLPREV ist eine Zustandsvariable, die den FILL-Zustandswert des Punkts unmittelbar vor dem aktuellen Umfangspunkt anzeigt. Der Zustandswert für die FILLPREV-Zustandsvariable und der FILL-Zustandswert sind durch die Richtungscodevektoren der aktuellen Punkte und durch die Nachschlagetabellen (LUT) von Fig. 14 und Fig. 15 in Abhängigkeit von der Verfolgungsrichtung festgelegt. Im Entscheidungsblock B wird dann gefragt, ob der aktuelle Punkt hinter dem letzten Punkt des Umfangspuffers liegt. Wenn ja, wird der Modul beendet, wie im Oval C angegeben. Liegt der aktuelle Punkt nicht hinter dem letzten Punkt, dann wird im Entscheidungsblock D gefragt, ob der FILLPREV-Zustand des aktuellen Punkts FALSE ist. Wenn ja, dann wird der entsprechende Punkt im Pufferbild mit dem vorgegebenen Graustufenwert CENTER markiert, wie im Block E von Fig. 20A dargestellt.
- Der Modul geht zum Entscheidungsblock F über. Wenn der FILLPREV-Zustand des aktuellen Punkts nicht FALSE ist, dann geht der Modul direkt zum Entscheidungsblock F über. Im Entscheidungsblock F wird gefragt, ob der aktuelle Punkt der gleiche wie der nächste Punkt im Umfangspuffer ist. Wenn ja, dann wird der aktuelle Punkt als redundanter Punkt gekennzeichnet, wie im Block G dargestellt. Im Entscheidungsblock H wird dann gefragt, ob der Zustandswert des aktuellen Punkts und des nächsten Punkts gleich FILL ist. Wenn nicht, dann wird der aktuelle Punkt auf den nächsten Punkt im Puffer gesetzt, wie im Block M dargestellt, und der Modul WRITE BUF springt zum Entscheidungsblock B von Fig. 20A zurück. Die Schleife über B-M läuft weiter, bis der aktuelle Punkt hinter dem letzten Punkt im Umfangspuffer liegt, an welchem Punkt der Modul beendet ist, wie im Oval C von Fig. 20A angegeben.
- Wenn im Entscheidungsblock H der Zustandswert des aktuellen Punkts gleich FILL ist, dann geht der Modul zum Block J über und schreitet zum nächsten Punkt in der gleichen Zeile wie der des aktuellen Punkts fort. Dann wird im Entscheidungsblock K gefragt, ob der Spaltenpositions-Koordinatenwert des nächsten Punkts kleiner oder gleich dem Spaltenpositions-Koordinatenwert des nächsten Umfangspunkts im Puffer ist. Wenn ja, dann wird der entsprechende Punkt im Pufferbild mit dem Wert CENTER gekennzeichnet, wie im Block L dargestellt. Der Modul WRITE BUF geht dann zum nächsten Punkt in der gleichen Zeile wie der des aktuellen Punkts über, wie im Block J dargestellt, und die Schleife über J, K und L läuft weiter, bis der Spaltenpositions-Koordinatenwert des nächsten Punkts kleiner oder gleich dem Spaltenpositions-Koordinatenwert des nächsten Umfangspunkts im Puffer ist.
- Wenn im Entscheidungsblock F der aktuelle Punkt nicht der gleiche wie der nächste Punkt im Umfangspuffer ist, dann geht der Modul zum Entscheidungsblock I über. Im Entscheidungsblock I wird gefragt, ob der Zustandswert des aktuellen Punkts gleich FILL ist. Wenn nicht, dann wird der aktuelle Punkt auf den nächsten Punkt im Puffer gesetzt, wie im Block M dargestellt, der Modul springt zum Entscheidungsblock B von Fig. 20A zurück, und die Schleife über B-I läuft weiter, bis der aktuelle Punkt hinter dem letzte Punkt im Umfangspuffer liegt. An diesem Punkt wird der Modul beendet, wie im Oval C angegeben.
- Wenn im Entscheidungsblock I der Zustandswert des aktuellen Punkts gleich FILL ist, dann geht der Modul zum Block J über und geht weiter zum nächsten Punkt in der gleichen Zeile wie der des aktuellen Punkts. Dann wird im Entscheidungsblock K gefragt, ob der Spaltenpositions-Koordinatenwert des nächsten Punkts kleiner oder gleich dem Spaltenpositions-Koordinatenwert des nächsten Umfangspunkts im Puffer ist. Wenn ja, dann wird der entsprechende Punkt im Pufferbild mit dem Wert CENTER gekennzeichnet, wie im Block L dargestellt. Der Modul WRITE BUF geht dann weiter zum nächsten Punkt in der gleichen Zeile wie der des aktuellen Punkts, wie im Block J dargestellt, und die Schleife über J, K und L läuft weiter, bis der Spaltenpositions-Koordinatenwert des nächsten Punkts nicht kleiner oder gleich dem Spaltenpositions-Koordinatenwert des nächsten Umfangspunkts im Puffer ist.
- Der Modul WRITE BUF geht dann zum Entscheidungsblock P über, in dem gefragt wird, ob der aktuelle Punkt der letzte Umfangspunkt in der Zeile ist. Wenn er nicht der letzte Umfangspunkt in der Zeile ist, wird der Wert der Zustandsvariablen FILLPREV auf den Zustandswert FILL des aktuellen Punkts gesetzt, wie im Block Q dargestellt. Dann wird der aktuelle Punkt auf den nächsten Punkt im Umfangspuffer gesetzt, wie im Block R dargestellt, und die Schleife über B-P läuft weiter, bis der aktuelle Punkt der letzte Umfangspunkt in der Zeile ist. Wenn er der letzte Umfangspunkt in der Zeile ist, dann wird der aktuelle Punkt auf den nächsten Punkt im Umfangspuffer gesetzt, wie im Block P dargestellt, und die Schleife über B-P läuft weiter, bis der aktuelle Punkt hinter dem letzten Punkt im Umfangspuffer liegt. An diesem Punkt wird der Modul WRITE BUF beendet, wie im Oval C angegeben.
- Die Fig. 21A und 21B beschreiben einen Modul READ COLOR (FARBE LESEN), der den mittleren Farbton der Objekte berechnet, wie oben beschrieben. Wie im Block AA von Fig. 21A dargestellt, besteht der erste Schritt von READ COLOR darin, den Umfangspuffer nach Zeilen und Spalten zu sortieren. Wie im Block A von Fig. 21A gezeigt, wird der aktuelle Punkt auf den ersten Punkt des Umfangspuffers gesetzt, und der FILLPREV-Zustand wird auf FALSE gesetzt. FILLPREV ist eine Zustandsvariable, die den FILL-Zustandswert des Punkts unmittelbar vor dem aktuellen Umfangspunkt anzeigt. Der Zustandswert für die Zustandsvariablen FILLPREV und FILL ist durch die Richtungscodevektoren der aktuellen Punkte und die Nachschlagetabellen (LUT) von Fig. 14 und Fig. 15 in Abhängigkeit von der Verfolgungsrichtung festgelegt. Im Entscheidungsblock B wird dann gefragt, ob der aktuelle Punkt hinter dem letzten Punkt des Umfangspuffers liegt. Wenn ja, wird der Modul beendet, wie im Oval C angegeben. Liegt der aktuelle Punkt nicht hinter dem letzten Punkt, dann wird im Entscheidungsblock D gefragt, ob der FILLPREV-Zustand des aktuellen Punkts FALSE ist. Wenn ja, dann wird der aktuelle Punkt als innerer Punkt gekennzeichnet, und es werden Farbparameter berechnet, wie im Block E dargestellt. Der Modul geht dann zum Entscheidungsblock F über. Wenn der FILLPREV-Zustand des aktuellen Punkts nicht gleich FALSE ist, dann geht der Modul direkt zum Entscheidungsblock F über.
- Im Entscheidungsblock F wird gefragt, ob der aktuelle Punkt der gleiche wie der nächste Punkt im Umfangspuffer ist. Wenn ja, dann wird der aktuelle Punkt als redundanter Punkt gekennzeichnet, wie im Block G dargestellt. Dann wird im Entscheidungsblock H gefragt, ob der Zustandswert des aktuellen Punkts und des nächsten Punkts gleich FILL ist. Wenn nicht, dann wird der aktuelle Punkt auf den nächsten Punkt im Puffer gesetzt, wie im Block O dargestellt, und der Modul READ COLOR kehrt zum Entscheidungsblock B von Fig. 21A zurück. Die Schleife über B-O läuft weiter, bis der aktuelle Punkt hinter dem letzten Punkt im Umfangspuffer liegt, an welchem Punkt der Modul beendet ist, wie im Oval C von Fig. 21A angegeben.
- Wenn im Entscheidungsblock H der Zustandswert des aktuellen Punkts nicht gleich FILL ist, dann geht der Modul zum Block J über und geht weiter zum nächsten Punkt in der gleichen Zeile wie der des aktuellen Punkts. Dann wird im Entscheidungsblock K gefragt, ob der Spaltenpositions-Koordinatenwert des nächsten Punkts kleiner oder gleich dem Spaltenpositions-Koordinatenwert des nächsten Umfangspunkts im Puffer ist. Wenn ja, dann wird im Entscheidungsblock L gefragt, ob der Objekttyp des aktuellen Objekts "PARENT" (MUTTEROBJEKT) ist, was in der bevorzugten Ausführungsform bedeutet, daß dieses Objekt das größere Objekt ist. Wenn ja, dann wird im Entscheidungsblock M gefragt, ob der entsprechende Punkt im Pufferbild mit dem vorgegebenen Graustufenwert gekennzeichnet ist, der als CENTER bezeichnet wird. Ist der entsprechende Punkt im Pufferbild mit CENTER gekennzeichnet, dann geht der Modul READ COLOR zum nächsten Punkt in der gleichen Zeile wie der des aktuellen Punkts über, wie im Block J dargestellt, und die Schleife über J, K, L und M läuft weiter, bis der entsprechende Punkt im Pufferbild nicht mit CENTER gekennzeichnet ist.
- Dann geht der Modul READ COLOR zum Block N von Fig. 21B über. Der nächste Punkt wird als innerer Punkt gekennzeichnet, und es werden Farbparameter berechnet. Der Modul geht dann zum Block J über, und die Schleife über J, K und L läuft weiter, bis der Objekttyp des aktuellen Objekts nicht gleich PARENT ist (d. h. es ist nicht das größere Objekt). Die Schleife über N, J und K läuft dann weiter, bis der Spaltenpositions-Koordinatenwert des nächsten Punkts größer ist als der Spaltenpositions-Koordinatenwert des nächsten Umfangspunkts im Puffer, wie im Entscheidungsblock K dargestellt. Der Modul READ COLOR geht dann zum Entscheidungsblock P über, wo gefragt wird, ob der aktuelle Punkt der letzte Umfangspunkt in der Zeile ist. Wenn er nicht der letzte Umfangspunkt in der Zeile ist, wird im Block Q der Wert der FILLPREV-Zustandsvariablen auf den FILL-Zustandswert des aktuellen Punkts gesetzt. Der aktuelle Punkt wird dann auf den nächsten Punkt im Umfangspuffer gesetzt, wie im Block R dargestellt, und die Schleife über B-P läuft weiter, bis der aktuelle Punkt der letzte Umfangspunkt in der Zeile ist. Wenn der aktuelle Punkt der letzte Umfangspunkt in der Zeile ist, dann wird der aktuelle Punkt auf den nächsten Punkt im Umfangspuffer gesetzt, wie im Block R dargestellt, und die Schleife über B-P läuft weiter, bis der aktuelle Punkt hinter dem letzten Punkt im Umfangspuffer liegt. An diesem Punkt wird der Modul beendet, wie im Oval C angegeben.
- Wenn im Entscheidungsblock F der aktuelle Punkt nicht der gleiche wie der nächste Punkt im Umfangspuffer ist, dann geht der Modul READ COLOR zum Entscheidungsblock I über. Im Entscheidungsblock I wird gefragt, ob der Zustandswert des aktuellen Punkts gleich FILL ist. Wenn nicht, dann wird der aktuelle Punkt auf den nächsten Punkt im Puffer gesetzt, wie im Block O dargestellt, und der Modul springt zum Entscheidungsblock B von Fig. 21A zurück. Die Schleife über B-I läuft weiter, bis der aktuelle Punkt hinter dem letzten Punkt im Umfangspuffer liegt. An diesem Punkt wird der Modul beendet, wie im Oval C dargestellt.
- Wenn in Entscheidungsblock I der Zustandswert des aktuellen Punkts gleich FILL ist, dann geht der Modul zum Block J über und geht weiter zum nächsten Punkt in der gleichen Zeile wie der des aktuellen Punkts. Dann wird im Entscheidungsblock K gefragt, ob der Spaltenpositions-Koordinatenwert des nächsten Punkts kleiner oder gleich dem Spaltenpositions-Koordinatenwert des nächsten Umfangspunkts im Puffer ist. Wenn ja, dann wird im Entscheidungsblock L gefragt, ob der Objekttyp des aktuellen Objekts PARENT (MUTTEROBJEKT) ist. Wenn ja, dann wird im Entscheidungsblock M gefragt, ob der entsprechende Punkt im Pufferbild mit dem vorgegebenen Graustufenwert gekennzeichnet ist, der als CENTER bezeichnet wird. Ist der entsprechende Punkt im Pufferbild mit CENTER gekennzeichnet, dann geht der Modul READ COLOR weiter zum nächsten Punkt in der gleichen Zeile wie der des aktuellen Punkts, wie im Block J dargestellt, und die Schleife über J, K, L und M läuft weiter, bis der entsprechende Punkt im Pufferbild nicht mit CENTER gekennzeichnet ist.
- Dann geht der Modul READ COLOR zum Block N von Fig. 21B über. Der nächste Punkt wird als innerer Punkt identifiziert, und es werden Farbparameter berechnet. Der Modul geht dann zum Block J über, und die Schleife über J, K und L läuft weiter, bis der Objekttyp des aktuellen Objekts nicht gleich PARENT ist (d. h. bis das Objekt nicht das größere Objekt ist). Die Schleife über N, J und K läuft dann weiter, bis der Spaltenpositions-Koordinatenwert des nächsten Punkts größer als der Spaltenpositions- Koordinatenwert des nächsten Umfangspunkts im Puffer ist, wie im Entscheidungsblock K dargestellt. Der Modul READ COLOR geht dann zum Entscheidungsblock P über, in dem gefragt wird, ob der aktuelle Punkt der letzte Umfangspunkt in der Zeile ist. Wenn er nicht der letzte Umfangspunkt in der Zeile ist, setzt der Block Q den Wert der Zustandsvariablen FILLPREV auf den FILL-Zustandswert des aktuellen Punkts. Der aktuelle Punkt wird dann auf den nächsten Punkt im Umfangspuffer gesetzt, wie im Block R dargestellt, und die Schleife über B-P läuft weiter, bis der aktuelle Punkt der letzte Umfangspunkt in der Zeile ist. Wenn der aktuelle Punkt der letzte Umfangspunkt in der Zeile ist, dann wird der aktuelle Punkt auf den nächsten Punkt im Umfangspuffer gesetzt, wie im Block R dargestellt, und die Schleife über B-P läuft weiter, bis der aktuelle Punkt hinter dem letzten Punkt im Umfangspuffer liegt. An dieser Stelle wird der Modul beendet, wie im Oval C angegeben.
- In einer besonderen Implementierung der ersten und der vierten Ausführungsform weist der Schritt zur Identifizierung einer Gruppe von möglicherweise redundanten Objekten in einem Bild den Teilschritt zur Erzeugung eines Bildes der Objekte und des Hintergrunds auf. Der Hintergrund kann entweder fest oder veränderlich sein. Die Hardware, die zur Implementierung des Verfahrens nach der ersten und der vierten Ausführungsform eingesetzt wird, muß bei der Erzeugung des Bildes zunächst initialisiert werden. Das Bild des Objekts und des Hintergrunds können durch eine Kamera erzeugt werden. Bei der vorliegenden Erfindung wird zwar im allgemeinen eine CCD-Kamera verwendet, aber es kann jeder beliebige Kameratyp eingesetzt werden, ohne von den allgemeinen Grundgedanken der vorliegenden Erfindung abzuweichen. Das Bild wird dann durch einen Bilddigitalisierer oder Videodigitalisierer digitalisiert und gespeichert.
- Das erfindungsgemäße Verfahren weist außerdem den Schritt zur Definition eines Datenraums auf, der das Bild darstellt und mehrere Unterräume aufweist. Der Datenraum kann auf mindestens einem vorgegebenen Attributwert eines gültigen Objekts basieren. Alternativ kann der Datenraum auf mindestens einem vorgegebenen Attributwert eines früher identifizierten Objekts basieren. Außerdem kann der Datenraum die Graustufenwerte des Bildes aufweisen. Ein Beispiel für einen eindimensionalen Datenraum, der die mit jedem Punkt im Bild verbundenen Graustufenwerte darstellt, ist ein Histogramm. Dieses Beispiel wird weiter unten als bevorzugte Implementierung eingehender erläutert. Als Alternative kann der Datenraum einen Farbraum des Bildes aufweisen. Dieser Farbraum kann der RGB-Farbraum oder der LAB- Farbraum sein. Derartige Farbräume sind Beispiele von dreidimensionalen Datenräumen. Alternativ kann der Datenraum einen Raum aufweisen, der sich aus der Transformation von Graustufenwerten eines Bildes ergibt. Dieser resultierende Raum kann sich z. B. aus Kontrast, Farbtonbetrag und Randintensität zusammensetzen. Die im vorliegenden Abschnitt beschriebenen Datenräume sind nur als Beispiele gedacht, wobei der Umfang der vorliegenden Erfindung über diese Beispiele hinausgeht.
- In der bevorzugten Implementierung der ersten und der vierten Ausführungsform weist der Schritt zur Identifikation einer Gruppe von möglicherweise redundanten Objekten in einem Bild außerdem den Teilschritt zum Erzeugen eines Histogramms auf, welches das gesamte Bild darstellt, wobei das Graustufenhistogramm eine Entropiefunktion aufweist. Ein Graustufenschwellwert wird entropisch so ausgewählt, daß die Entropiefunktion des Histogramms maximiert wird. Ein Modul HISTOGRAM (HISTOGRAMM) dient zur Erzeugung des Graustufenhistogramms des interessierenden Bildbereichs. Die Schritte zum Erzeugen des Graustufenhistogramms sind in dem Ablaufdiagramm von Fig. 22 dargestellt. Wie im Block A von Fig. 22 gezeigt, berechnet HISTOGRAM zunächst ein Histogramm des interessierenden Bildbereichs. Dann berechnet der Modul die Werte, die anschließend in der Berechnung der Entropiefunktion HS für jede Graustufe s zu verwenden sind, wie im Block B von Fig. 22 dargestellt. Die Ergebnisse dieser Berechnung werden im Speicher abgelegt, wie im Block C dargestellt. Dadurch wird sichergestellt, daß für nachfolgende Berechnungen des entropischen Graustufenschwellwerts nur eine einfache Nachschlageoperation erforderlich ist.
- Das Verfahren nach der ersten und der vierten Ausführungsform schließt außerdem den Schritt zur Auswahl mindestens eines Unterraums ein. Dieser Schritt ist im Block C von Fig. 1 dargestellt. Der Unterraum ist ein beschränkter Teil des Datenraums - d. h. er überspannt nicht den gesamten Datenraum. Der Unterraum kann ein Graustufenwertepaar oder ein Bereich von Graustufenwerten sein. Außerdem kann der Unterraum in Abhängigkeit davon ausgewählt werden, wie sich z. B. Graustufenwerte oder Farbparameter in den jeweiligen Räumen bündeln, wobei allerdings zu beachten ist, daß der Unterraum nicht auf diese Beispiele beschränkt ist.
- In der bevorzugten Implementierung der ersten und der vierten Ausführungsform schließt das Verfahren außerdem den Schritt zur entropischen Auswahl eines Graustufenschwellwerts ein, derart daß die Entropiefunktion des Histogramms maximiert wird. Die Idee der Verwendung der Entropie zur Analyse eines Graustufenhistogramms eines Bildes wurde ursprünglich von Pun in einem Artikel mit dem Titel "Entropic Thresholding, a New Approach" (Entropische Schwellwertbestimmung, eine neue Verfahrensweise), Comp. Graphics and Image Proc., Bd. 16, 1981, S. 210-239, vorgeschlagen. Die Entropieanalyse von Pun wurde von Kapur et al. in einem Artikel "A New Method for Grey-Level Picture Thresholding Using the Entropy of the Histogram" (Ein neues Verfahren zur Graustufen- Schwellwertbestimmung in Bildern unter Verwendung der Entropie des Histogramms), Comp. Graphics and Image Proc. 29, 1985, S. 273-285, weiter verfeinert. Als Alternative kann ein automatisch berechneter Entropieschwellwert bestimmt werden, wie von Pal und Pal in einem Artikel mit dem Titel "Entropic Thresholding" (Entropische Schwellwertbestimmung), Signal Processing, Bd. 16, 1989, S. 97-108, beschrieben. Der bei der vorliegenden Erfindung angewandte Schritt zur entropischen Auswahl eines Graustufenschwellwerts wird durch einen Modul ENTROPY (ENTROPIE) ausgeführt, wie in Fig. 23 dargestellt. Wie im Block A von Fig. 23 gezeigt, besteht der erste Schritt beim Maximieren der Entropiefunktion des Histogramms darin, die maximale Entropiefunktion mit einem Minimalwert zu initialisieren.
- In einer bevorzugten Implementierung der ersten und der vierten Ausführungsform wird ein Schritt zum Erzeugen mehrerer oberer und unterer Graustufenhistogramme des Bildes aus dem Histogramm ausgeführt. Jedes obere und untere Graustufenhistogramm weist eine entsprechende Entropiefunktion auf. Der Schritt zur entropischen Auswahl eines Graustufenschwellwerts schließt den Teilschritt zur sequentiellen Zerlegung bzw. Partitionierung eines Graustufenhistogramms bei jedem Graustufenwert in eine erste Partition und eine zweite Partition ein. Zur Erläuterung des einfachen Falls, wo ein einzelnes, einfaches Objekt vor einem veränderlichen Hintergrund identifiziert wird, ist in Fig. 24 ein Graustufenhistogramm eines Bildes dargestellt. In dem Histogramm von Fig. 24 sind die erste und die zweite Partition dargestellt, wobei die Graustufenwerte des Hintergrunds durch eine erste Partition A und die Graustufenwerte des gültigen Objekts durch eine zweite Partition B dargestellt sind. Im Modul ENTROPY wird der zerlegte bzw. partitionierte Graustufenschwellwert mit einem Minimalwert initialisiert, wie im Block B von Fig. 23 dargestellt.
- Der Schritt zur Identifikation einer Gruppe von möglicherweise redundanten Objekten in einem Bild weist außerdem den Teilschritt zur entropischen Auswahl mehrerer Graustufenschwellwerte für jedes obere und untere Histogramm auf, derart daß die Entropiefunktion jedes Histogramms maximiert wird. Der Schritt zur entropischen Auswahl eines Graustufenschwellwerts weist außerdem den Teilschritt zum Berechnen der Entropiefunktion für jede Partition auf, wobei die Gesamtentropiefunktion des Histogramms als die Summe aus der Entropiefunktion Hs(A) der ersten Partition A und der Entropiefunktion Hs(B) der zweiten Partition B definiert ist. Dieser Schritt ist im Block C von Fig. 23 dargestellt und läßt sich mathematisch wie folgt ausdrücken:
- Für einen gegebenen Graustufenschwellwert s gilt:
- Daher gilt Pi/Ps = fi/ = fi/Ns, mit Ns = fi (3)
- Dies ergibt:
- Entsprechend gilt:
- mit: Ns' = N - Ns
- und
- Die Summe Hs(A) + Hs(B) stellt die Gesamtentropiefunktion des Graustufenhistogramms des Bildes dar. Der Graustufenschwellwert mit maximaler Entropie ist der Wert von s, der die Gesamtentropiefunktion maximiert.
- Im Entscheidungsblock D von Fig. 23 wird gefragt, ob die Entropiefunktion des Histogramms größer als die maximale Entropiefunktion ist, wie sie im Block A initialisiert wurde. Wenn ja, dann wird die maximale Entropiefunktion unter Verwendung des zerlegten Graustufenschwellwerts aktualisiert, wie im Block E von Fig. 23 dargestellt. Der Graustufenschwellwert mit maximaler Entropie wird dann auf den zerlegten Graustufenschwellwert gesetzt, wie im Block F dargestellt. Nachdem der Graustufenschwellwert mit maximaler Entropie eingestellt worden ist, oder wenn die Entropiefunktion des Histogramms nicht größer als die maximale Entropiefunktion ist, wird dann im Entscheidungsblock G des in Fig. 23 dargestellten Moduls ENTROPY gefragt, ob der zerlegte Graustufenschwellwert gleich dem maximalen Graustufenschwellwert ist. Wenn ja, wird der Graustufenschwellwert mit maximaler Entropie zurückgegeben, wie im Block H von Fig. 23 dargestellt. Wenn nein, dann wird der zerlegte Graustufenschwellwert inkrementiert, wie im Block I von Fig. 23 dargestellt, und der inkrementierte zerlegte Graustufenschwellwert wird zum Block C zurückgegeben, wo die Entropiefunktion des inkrementierten, zerlegten Graustufenschwellwerts berechnet wird. Die Schleife über C-G wird so lange wiederholt, bis der zerlegte Graustufenschwellwert gleich dem maximalen Graustufenschwellwert ist, und an dieser Stelle wird der Graustufenschwellwert mit maximaler Entropie zurückgegeben, wie im Block H dargestellt.
- Die Wahrscheinlichkeitsverteilungen werden in Hs(A) und Hs(B) so umnormiert, daß sie nur die Graustufenwerte innerhalb jeder Partition enthalten. Mit dieser Umnormierung tritt die maximale Entropiefunktion genau am Rande des Objektmaximums im Graustufenhistogramm auf, wie in Fig. 24 bei T dargestellt. Folglich wird ein neuer Graustufenschwellwert so ausgewählt, daß die Entropiefunktion des Histogramms maximiert wird. Bei dieser maximierenden Auswahl des Schwellwerts für den in Fig. 24 dargestellten einfachen Fall weist die umnormierte Verteilung des Hintergrunds die wenigsten Spitzen bzw. Maxima und die größte Gleichmäßigkeit auf. Die Gesamtentropiefunktion des Histogramms wird durch die Entropiefunktion des Hintergrundes dominiert, da die Anzahl der Graustufenwerte in der Hintergrund- Partition viel größer ist als die Anzahl der Graustufenwerte in der Objekt-Partition.
- Das Verfahren nach der ersten und der vierten Ausführungsform schließt außerdem den Schritt zum mehrfachen Durchsuchen des Bildes nach mindestens einer Darstellung eines Anwärterobjekts unter Verwendung jedes ausgewählten Unterraums ein. Dieser Schritt kann entweder das gleichzeitige, einmalige Abtasten des Bildes unter Verwendung jedes Unterraums oder das mehrmalige Abtasten des Bildes unter Verwendung eines ausgewählten Unterraums für jede Abtastung aufweisen.
- In einer bevorzugten Implementierung der ersten und der vierten Ausführungsform weist der Schritt zur Identifizierung einer Gruppe von möglicherweise redundanten Objekten in einem Bild außerdem den Teilschritt zum Durchsuchen des Bildes unter Verwendung des automatisch ausgewählten Graustufenschwellwerts für mindestens ein Anwärterobjekt auf. Das Anwärterobjekt weist mindestens einen Anwärterobjekt-Attributwert auf. Der Teilschritt zum Durchsuchen schließt ferner den Teilschritt zum Abtasten des Bildes nach mindestens einem Objekt unter Verwendung des entropisch ausgewählten Graustufenschwellwerts ein. Genauer gesagt, der abgetastete Bildabschnitt kann mehrere Pixel aufweisen, und jedes Pixel weist einen Graustufenwert auf, der kleiner ist als die Summe aus dem oberen Begrenzer und einem Inkrement. Bei bestimmten Anwendungen könnte das Inkrement auf null gesetzt werden. Der obere Begrenzer wird auch durch MAX bezeichnet. Das Inkrement ist gleich der Differenz zwischen MAX, dem maximalen Graustufenwert des durchsuchten Bereichs, und MIN, dem minimalen Graustufenwert des durchsuchten Bereichs, woraus sich ein maximaler Graustufenwert "Graustufemax" ergibt:
- Graustufemax = 2 · MAX - MIN (7)
- Bereiche im Bild, wo der Graustufenwert den Wert "Graustufemax" übersteigt, werden bei der Suche ignoriert.
- Der Suchteilschritt umfaßt ferner den Teilschritt zum Verfolgen des Anwärterobjekts, das Randgraustufenwerte aufweist, die durch den entropisch ausgewählten Graustufenschwellwert festgelegt sind. Der Suchschritt nach der ersten Ausführungsform wird durch einen in Fig. 25 dargestellten Modul SEARCH IMAGE (BILD DURCHSUCHEN), einen in Fig. 26 dargestellten Modul FIND OBJECT (OBJEKT SUCHEN) und den in den Fig. 27A und 27B dargestellten Modul TRACE OBJECT (OBJEKT VERFOLGEN) ausgeführt.
- Wie durch den Block A von Fig. 25 dargestellt, besteht der erste Schritt von SEARCH IMAGE darin, die Suchposition zu initialisieren. Der Modul SEARCH IMAGE durchsucht den interessierenden Bereich mit dem aktuellen, entropisch ausgewählten Graustufenschwellwert. Dann wird im Entscheidungsblock B von Fig. 25 gefragt, ob die Suchposition am Ende der Abtastung angelangt ist. Wenn ja, ist SEARCH IMAGE beendet.
- Wenn die Suchposition nicht am Ende der Abtastung angelangt ist, dann durchsucht der Modul SEARCH IMAGE den interessierenden Bereich mit dem aktuellen, entropisch ausgewählten Graustufenschwellwert, bis er mit Hilfe eines Moduls FIND OBJECT einen Punkt mit einem Graustufenwert findet, der den entropisch ausgewählten Graustufenschwellwert übersteigt. Um Objekte zu identifizieren, die dunkler als der Hintergrund sind, wird das Bild unmittelbar nach seiner Erzeugung invertiert. Ein solcher Punkt könnte der erste Punkt eines neuen Objekts sein. Im Entscheidungsblock D von Fig. 25 wird gefragt, ob mit Hilfe des Moduls FIND OBJECT ein neues Objekt gefunden worden ist. Wenn das Objekt nicht bereits in der aktuellen Suche verfolgt worden ist, geht der Modul SEARCH IMAGE dazu über, durch Ausführen des Moduls TRACE OBJECT das Objekt zu verfolgen, wie durch den Block E von Fig. 25 dargestellt.
- Nach dem Verfolgen des Objekts wird die Suchposition inkrementiert, wie im Block F von Fig. 25 dargestellt. Die Schleife über B-F wird so lange fortgeführt, bis der Modul SEARCH IMAGE am Ende der Suche angelangt ist, wie durch den Entscheidungsblock B angezeigt. Als Alternative wird, wenn gemäß der Anzeige durch den Entscheidungsblock D kein neues Objekt gefunden worden ist, die Suchposition inkrementiert, wie im Block F dargestellt, so daß der Verfolgungsschritt umgangen wird, und die Schleife über B-I wird so lange fortgeführt, bis SEARCH IMAGE am Ende der Suche angelangt ist.
- Die Schritte des Moduls FIND OBJECT sind in Fig. 26 dargestellt. Der erste Schritt in FIND OBJECT besteht in der Initialisierung der Suchposition auf den aktuellen Ort im gerade durchsuchten Bild, wie im Block A dargestellt. Dann wird im Entscheidungsblock B gefragt, ob die Suchposition innerhalb des Objekts liegt. Wenn ja, dann wird die Suchposition inkrementiert, wie durch den Block C dargestellt, und im Entscheidungsblock D wird gefragt, ob FIND OBJECT am Ende seiner Suche angelangt ist. Wenn ja, dann wird kein neues Objekt gefunden, wie im Block E angezeigt. Wenn nein, dann wird im Entscheidungsblock B gefragt, ob die inkrementierte Suchposition innerhalb des Objekts liegt. Dieser Schleifendurchlauf durch B-E geht weiter, bis die Suchposition nicht innerhalb des Objekts liegt. An dieser Stelle wird im Entscheidungsblock F gefragt, ob ein nächstes Objekt gefunden worden ist. Wenn nicht, dann wird die Suchposition inkrementiert, wie im Block G von Fig. 26 dargestellt, und im Entscheidungsblock H wird gefragt, ob der Modul SEARCH IMAGE am Ende seiner Suche angelangt ist. Wenn ja, dann wird kein neues gefundenes Objekt zurückgegeben, wie im Block I angezeigt. Wenn nein, dann wird im Entscheidungsblock F wiederum gefragt, ob unter Verwendung der inkrementierten Suchposition ein nächstes Objekt gefunden worden ist. Dieser Schleifendurchlauf durch F-I geht weiter, bis ein nächstes Objekt gefunden worden ist. Im Entscheidungsblock J wird gefragt, ob das gefundene Objekt bereits verfolgt worden ist. Wenn ja, dann wird das gefundene neue Objekt zurückgegeben, wie durch den Block K angezeigt. Wenn das gefundene Objekt noch nicht verfolgt worden ist, dann wird die Suchposition aktualisiert, wie durch den Block L dargestellt, und einen neues gefundenes Objekt wird zurückgegeben, wie durch den Block M von Fig. 26 angezeigt. Durch Ausführen von SEARCH IMAGE, FIND OBJECT und TRACE OBJECT gemäß der obigen Beschreibung wird das im Block M von Fig. 26 zurückgegebene Objekt zum Entscheidungsblock D von Fig. 26 zurückgegeben.
- Die Grundgedanken des Moduls TRACE OBJECT (OBJEKT VERFOLGEN) sind ähnlich denjenigen, die in "Digital Image Processing" (Digitale Bildverarbeitung) von Rafael C. Gonzalez und Paul Wintz, 2. Aufl., Eddison-Wesley Publishing Company, Reading, Massachusetts (1987), beschrieben werden. Wie im Block A von Fig. 27A dargestellt, besteht der erste Schritt im Modul TRACE OBJECT in der Initialisierung der Anwärterobjekt-Attributwerte. Der Modul TRACE OBJECT fragt dann im Entscheidungsblock B, ob ein benachbarter Umfangspunkt gefunden worden ist. Wenn nicht, ist das verfolgte Objekt ungültig, wie durch Block C dargestellt. Wenn der benachbarte Umfangspunkt gefunden worden ist, dann wird im Entscheidungsblock D gefragt, ob der Modul TRACE OBJECT am ersten Umfangspunkt des Anwärterobjekts angelangt ist. Wenn nicht, werden die Anwärterobjekt-Attributwerte aktualisiert, wie im Block E von Fig. 27 A dargestellt. Die Schleife über B-E wird dann unter Verwendung der aktualisierten Anwärterobjekt-Attributwerte so lange wiederholt, bis der Modul TRACE OBJECT am ersten Umfangspunkt des Anwärterobjekts angelangt ist. Dann werden die Massenmittelpunktskoordinaten und die Zeilenpositions- und Spaltenpositions-Koordinatenwerte der Extremalpunkte berechnet, wie im Block F von Fig. 27A dargestellt. Im Entscheidungsblock G wird dann gefragt, ob der Massenmittelpunkt ein innerer Punkt ist. Wenn nicht, dann ist das verfolgte Objekt INVALID (UNGÜLTIG), wie im Block H dargestellt. Wenn die Antwort auf den Entscheidungsblock G "ja" ist, geht der Modul zum Entscheidungsblock I über, wo gefragt wird, ob die Fläche des Anwärterobjekts zu groß ist, Wenn ja, ist das verfolgte Objekt ungültig, wie durch den Block J von Fig. 27 A angezeigt.
- Ist die Fläche des Anwärterobjekts nicht zu groß, dann wird ein Formfaktor berechnet, wie im Block K in Fig. 27B dargestellt. Die Definition des Formfaktors kann in Abhängigkeit von der Geometrie des zu identifizierenden Objekts variieren. Zum Beispiel ist die Definition des Formfaktors für runde Objekte:
- Formfaktor = 1 - p²/4πA (8)
- Darin bedeuten: p den Umfang eines Anwärterobjekts; und
- A die Fläche des Anwärterobjekts.
- Dann prüft TRACE OBJECT, ob der Formfaktor innerhalb eines vorgegebenen, im Treiber enthaltenen Bereichs liegt, wie im Entscheidungsblock L in Fig. 27B dargestellt. Wenn der Formfaktor nicht innerhalb des vorgegebenen Bereichs liegt, dann ist das verfolgte Objekt INVALID (UNGÜLTIG), wie im Block M von Fig. 27B dargestellt. Liegt der Formfaktor innerhalb des vorgegebenen Bereichs, dann wird das Anwärterobjekt zu der durch den Kern geführten Liste gültiger Objekte hinzugefügt, wie im Block N dargestellt.
- Der Schritt zur Identifikation einer Gruppe von möglicherweise redundanten Objekten in einem Bild nach der ersten und der vierten Ausführungsform weist außerdem den Teilschritt zur Bestätigung des Anwärterobjekts mit dem vorgegebenen Attributwert eines gültigen Objekts auf, um die möglicherweise redundanten Objekte zu identifizieren. Dieser Teilschritt wird zur Identifikation von möglicherweise redundanten Objekten ausgeführt. Der Bestätigungs-Teilschritt schließt die Teilschritte zur Berechnung der Attributwerte des Anwärterobjekts und zum Vergleich der Attribute des Anwärterobjekts mit den vorgegebenen Attributwerten des gültigen Objekts ein, um Anwärterobjekte zu bestätigen. Der Berechnungs-Teilschritt schließt ferner den Teilschritt zum Speichern der Anwärterobjekt-Attributwerte ein. Ein Teil des Bestätigungs-Teilschritts wird durch den Modul TRACE OBJECT ausgeführt. In der hier beschriebenen ersten Ausführungsform der vorliegenden Erfindung verwendet TRACE OBJECT nur die Größe und den Formfaktor als vorgegebene Attributwerte eines gültigen Objekts. Allgemein können andere Attributwerte als vorgegebene Attributwerte eines gültigen Objekts verwendet werden.
- Um Anwärterobjekte zu bestätigen, verwendet das erfindungsgemäße Verfahren einen Treiber und einen Kern zur Bestätigung von Anwärterobjekten. Der Treiber speichert die Attributwerte des gültigen Objekts, wobei jeder Wert die Definition eines gültigen Objekts darstellt, z. B. Farbe, Randkontrast, Fläche, Form usw. Der erfindungsgemäße Treiber ist für eine vorgegebene Anwendung spezifisch. In einer objektorientierten Umgebung ist es in vielen Fällen einfach, ein Objekt mit Hilfe einer Liste von Attributen zu beschreiben, wie z. B. Größe, Form, Farbe usw. Für komplexere Objekte, wo eine einfache parametrische Beschreibung unter Umständen nicht möglich ist, könnte man ein neuronales Netz im Treiber verwenden, um das Objekt zu identifizieren. Parameter, die von dem Anwärterobjekt abgeleitet werden, können in das neuronale Netz eingegeben werden, das so trainiert worden ist, daß es spezifische Objekte erkennt. An dieser Stelle beginnt die Architektur der vorliegenden Erfindung einer Architektur des neuronalen Sehens zu ähneln, wo zwischen dem Auge und dem Gehirn eine Rückkopplungsschleife vorhanden ist. Bei der vorliegenden Erfindung ist ein Treiber höherer Ordnung mit einem Kern niederer Ordnung verflochten. In diesem Falle wird zur Steuerung des Suchprozesses, der wiederum weitere Anwärterobjekte identifiziert, eine komplexere Beschreibung des Objekts verwendet.
- Der Treiber steuert den Kern an. Der Kern führt mehrere Funktionen aus. Er berechnet automatisch einen entropisch ausgewählten Graustufenschwellwert, durchsucht das Bild und berechnet die Attributwerte für ein Anwärterobjekt. Außerdem führt er an Anwärterobjekten eine Gültigkeitsprüfung aus, indem er die Attributwerte der Anwärterobjekte mit den vorgegebenen Attributwerten für die gültigen Objekte vergleicht, die, wie weiter oben festgestellt, im Treiber enthalten sind.
- Das bisher beschriebene Schwellwertbestimmungsverfahren kann als Durchmusterungs- bzw. Screeningverfahren bezeichnet werden. Es kann zum Beispiel zum Durchmustern nach der Anwesenheit krankheitserregender Bakterien in Nahrungsmitteln oder in Blut- oder Bodenproben angewandt werden. Ein Screeningverfahren ergibt eine Ja-Nein-Antwort; eine absolute Quantifizierung ist nicht notwendig. Im vorliegenden Fall kann das erfindungsgemäße Verfahren zur Identifikation von Objekten angewandt werden, die ineinander enthalten sind, wie z. B. von leeren Objekten, die in nicht leeren Objekten enthalten sind. Für ein strengeres Identifikationsverfahren muß die entropische Schwellwertbestimmung rekursiv angewandt werden. Dadurch werden das Durchsuchen und die Bestätigung rekursiv ausgeführt. Bei der Ausführung dieser Schritte löst das Verfahren nach der ersten Ausführungsform mehrfache Identifikationen von Objekten auf, nachdem eine rekursive Suche nach allen Objekten beendet ist.
- Die rekursive Version der entropischen Schwellwertbildung kann ferner die Schritte zur Unterteilung der Graustufenhistogramms in ein oberes Histogramm und ein unteres Histogramm aufweisen, wobei der entropische Graustufenschwellwert verwendet wird, der zur Maximierung der Entropiefunktion des Histogramms als oberer Begrenzer und unterer Begrenzer ausgewählt wurde. Die Auswahl-., Such-, Bestätigungs- und Unterteilungsschritte werden für jedes der oberen und unteren Histogramme rekursiv wiederholt. Bei der Wiederholung des Auswahlschritts wird ein nächstfolgender Entropie- Graustufenschwellwert ausgewählt, wodurch das Graustufenhistogramm rekursiv zerlegt wird, um die gültigen Objekte zu identifizieren, bis eine vorgegebene Mindestzahl von neuen gültigen Objekten identifiziert ist. Bei der bevorzugten Implementierung dieser Anwendung ist die vorgegebene Mindestzahl gleich null. Es kann jedoch Fälle geben, wo die vorgegebene Mindestzahl größer als null ist, wie z. B., wenn keine vollständige Identifikation erforderlich ist. Außerdem können andere Kriterien für den Abbruch einer Rekursion ausgewählt werden, wie z. B. eine minimale Graustufen-Zerlegungsbreite.
- Die Fig. 28A-28C veranschaulichen die Konzeption der Unterteilung des Histogramms in ein oberes Histogramm und ein unteres Histogramm. In Fig. 28A ist ein Ausgangshistogramm dargestellt. Der bei T in Fig. 28A dargestellte Wert THRESH (SCHWELLWERT) ist der entropisch ausgewählte Graustufenschwellwert für das Graustufenhistogramm, das dem Graustufenbereich zwischen der gesuchten minimalen Graustufe und der gesuchten maximalen Graustufe entspricht. Für das in Fig. 28A dargestellte Ausgangshistogramm ist die gesuchte minimale Graustufe gleich null, und die gesuchte maximale Graustufe ist gleich MAX. Der bei B dargestellte Wert THRESH HI (OBERER SCHWELLWERT) ist der entropisch ausgewählte Graustufenschwellwert für das Graustufenhistogramm, das dem Graustufenbereich zwischen THRESH und MAX entspricht. Der bei A dargestellte Wert THRESH LO (UNTERER SCHWELLWERT) ist der entropisch ausgewählte Graustufenschwellwert für das Graustufenhistogramm, das dem Graustufenbereich zwischen null und THRESH entspricht.
- Nach der rekursiven Version des entropischen Schwellwertbestimmungsverfahrens werden die Unterteilungs-, Auswahl-, Such- und Bestätigungsschritte dann rekursiv wiederholt. Mit Rekursion ist das folgende Verfahren gemeint: fortlaufende Unterteilung eines Histogramms in obere und untere Histogramme, Durchsuchen jedes oberen Histogramms, wobei das obere Histogramm selbst fortlaufend in obere und untere Histogramme unterteilt wird, nach neuen gültigen Objekten, bis die Anzahl der in einem oberen Histogramm gefundenen neuen gültigen Objekte kleiner oder gleich einer vorgegebenen Mindestzahl ist, und anschließendes Durchsuchen jedes unteren Histogramms, das dem zuletzt durchsuchten oberen Histogramm entspricht, wobei das untere Histogramm selbst fortlaufend in obere und untere Histogramme unterteilt wird, bis die Anzahl der in einen unteren Histogramm gefundenen neuen gültigen Objekte kleiner oder gleich der vorgegebenen Mindestzahl ist.
- Das obere Histogramm ist in Fig. 28B dargestellt. Durch die Wiederholung des Unterteilungsschritts wird das obere Histogramm in ein nächstfolgendes oberes und unteres Histogramm unterteilt, wie in Fig. 28B dargestellt. Durch die Wiederholung des Auswahlschritts für das obere Histogramm wird ein nächstfolgender oberer Entropie-Graustufenschwellwert ausgewählt, wie bei B in Fig. 28B dargestellt. Folglich wird der Punkt B, der im ursprünglichen Histogramm THRESH HI (der obere Schwellwert) war, der Schwellwert für das obere Histogramm, oder NEXT UPPER THRESH (NÄCHSTHÖHERER SCHWELLWERT). In Fig. 28B ist der gesuchte minimale Graustufenwert jetzt THRESH, und der gesuchte maximale Graustufenwert ist jetzt MAX. Der bei C dargestellte NEXT UPPER THRESH HI (NÄCHSTHÖHERER OBERER SCHWELLWERT) ist der entropisch ausgewählte Graustufenschwellwert für das Graustufenhistogramm, das dem Graustufenbereich zwischen B und MAX entspricht. Der bei D dargestellte NEXT UPPER THRESH LO (NÄCHSTHÖHERER UNTERER SCHWELLWERT) ist der entropisch ausgewählte Graustufenschwellwert für das Graustufenhistogramm, das dem Graustufenbereich zwischen THRESH und B entspricht. Die Auswahl-, Such- und Bestätigungsschritte werden dann unter Verwendung des nächstfolgenden oberen entropischen Graustufenschwellwerts B als Entropie-Graustufenschwellwert rekursiv wiederholt.
- Fig. 28C zeigt das untere Histogramm. Durch die Wiederholung des Unterteilungsschritts wird das untere Histogramm in ein nächstfolgendes oberes und unteres Histogramm unterteilt, wie in Fig. 28C dargestellt. Durch die Wiederholung des Auswahlschritts für das untere Histogramm wird ein nächstfolgender unterer Entropie-Graustufenschwellwert ausgewählt, wie bei A in Fig. 28C gezeigt. Folglich wird der Punkt A, der im Ausgangshistogramm THRESH LO war, der Schwellwert für das unterteilte untere Histogramm, oder NEXT LOWER THRESH (NÄCHSTNIEDERER SCHWELLWERT). In Fig. 28C ist der gesuchte minimale Graustufenwert jetzt null, und der gesuchte maximale Graustufenwert ist jetzt THRESH. Der bei E dargestellte NEXT LOWER THRESH HI (NÄCHSTNIEDERER OBERER SCHWELLWERT) ist der entropisch ausgewählte Graustufenschwellwert für das Graustufenhistogramm, das dem Graustufenbereich zwischen A und THRESH entspricht. Der bei F dargestellte NEXT LOWER THRESH LO (NÄCHSTNIEDERER UNTERER SCHWELLWERT) ist der entropisch ausgewählte Graustufenschwellwert für das Graustufenhistogramm, das dem Graustufenbereich zwischen null und A entspricht. Die Auswahl-, Such-, und Bestätigungsschritte werden dann für das untere Histogramm unter Verwendung des nächstfolgenden niedrigeren Entropie-Graustufenschwellwerts A als Entropie- Graustufenschwellwert rekursiv wiederholt.
- Der in Fig. 29 dargestellte Modul ANALYZE (ANALYSIEREN) bildet den inneren rekursiven Kern der rekursiven Version des bei der ersten Ausführungsform angewandten entropischen Schwellwertbestimmungsverfahrens. Der Modul ANALYZE holt im wesentlichen einen bestimmten Bereich im Graustufenraum näher heran, um ihn nach Beispielen das Anwärterobjekts zu durchsuchen, und führt eine rekursive Zerlegung des Histogramms aus. Der erste Schritt im Modul ANALYZE, wie in Fig. 29 dargestellt, dient zur Berechnung der entropisch ausgewählten Graustufenschwellwerte THRESH, THRESH HI und THRESH LO (SCHWELLWERT; OBERER SCHWELLWERT und UNTERER SCHWELLWERT), wie oben beschrieben und im Block A von Fig. 29 dargestellt. Wie im Block B gezeigt, wird der Modul SEARCH IMAGE (BILD DURCHSUCHEN) unter Verwendung der Graustufenwerte ausgeführt, die in dem oberen Histogramm enthalten sind. Im Entscheidungsblock C wird dann gefragt, ob die Anzahl der gefundenen neuen gültigen Objekte größer ist als die vorgegebene Mindestzahl. Wenn ja, dann wird der Modul ANALYZE rekursiv am oberen Histogramm ausgeführt. Ist die Anzahl der gefundenen gültigen Objekte nicht größer als die vorgegebene Mindestzahl, dann wird der Modul SEARCH IMAGE unter Verwendung der im unteren Histogramm enthaltenen Graustufenwerte nochmals ausgeführt, wie im Block E dargestellt. Im Entscheidungsblock F wird dann gefragt, ob die Anzahl der gefundenen neuen gültigen Objekte größer als die vorgegebene Mindestzahl ist. Wenn ja, dann wird ANALYZE an dem unteren Histogramm rekursiv ausgeführt, wie im Block G dargestellt. Wenn nein, dann wird die Ausführung von ANALYZE beendet, und die gültigen Objekte werden zurückgegeben, wie im Block H von Fig. 29 dargestellt. Bei der vorliegenden Erfindung gibt es einen gewissen Spielraum bei der Auswahl des Wertebereichs für die Anzahl von Attributen, die im Bestätigungsschritt während des rekursiven Verfahrens zu prüfen sind.
- Nach der ersten und der vierten Ausführungsform der vorliegenden Erfindung wird ein Bildanalysesystem zur Auflösung von redundanten Identifikationen eines Objekts in einem Bild bereitgestellt. Ein Blockdiagramm des erfindungsgemäßen Systems ist in Fig. 30 dargestellt. Ein System zum Auflösen redundanter Identifikationen eines Objekts in einem Bild allgemein bei 10 in Fig. 30 dargestellt.
- Das System nach der ersten und der vierten Ausführungsform weist eine Einrichtung zum Erzeugen eines Bildes des Objekts und einen Hintergrunds auf. Wie in Fig. 30 dargestellt, weist die Einrichtung zum Erzeugen eines Bildes des Objekts und des Hintergrunds eine Kamera 12 auf. Bei der vorliegenden Erfindung wird zwar im allgemeinen eine CCD-Kamera verwendet, aber es kann, wie oben festgestellt, jeder beliebige Kameratyp eingesetzt werden, ohne von den allgemeinen Grundgedanken der vorliegenden Erfindung abzuweichen.
- Das System nach der ersten und der vierten Ausführungsform weist außerdem eine Einrichtung zum Digitalisieren und Speichern des Bildes auf. Die Einrichtung zum Digitalisieren und Speichern des Bildes weist einen Bildabtaster 14 auf, wie in Fig. 30 dargestellt. Der Bildabtaster digitalisiert und speichert das Videobild in einen Rahmen, wie dem Fachmann auf dem Gebiet der Bildverarbeitung bekannt ist. Als Alternative weist die Einrichtung zum Digitalisieren und Speichern des Bildes einen Videodigitalisierer auf, der das Bild ebenfalls digitalisiert und speichert, obwohl nicht unbedingt in einem Rahmen. Das erfindungsgemäße System weist ferner eine Einrichtung zur Darstellung des Bildes auf. Die Bilddarstellungseinrichtung weist einen Monitor 16 auf, wie in Fig. 30 dargestellt.
- Das System nach der ersten und der vierten Ausführungsform weist außerdem eine Computereinrichtung auf. Die Computereinrichtung weist ein Computersystem 18 auf, wie in Fig. 30 dargestellt. Das Computersystem umfaßt eine Zentraleinheit (CPU) und einen Speicher. Die Computereinrichtung schließt außerdem einen Treiber 20, einen Kern 22 und ein Nachabtastungsfilter 26 ein, wie in Fig. 30 dargestellt. Der Treiber 20 speichert die Definition eines nichtredundanten Objekts. Der entropische Kern 22 berechnet einen Entropieschwellwert, durchsucht das Bild nach mindestens einem möglicherweise redundanten Objekt und identifiziert das redundante Objekt. Die nicht redundanten Objekte werden durch das Kästchen 24 in Fig. 30 dargestellt. Der Treiber und der Kern können Software aufweisen, die in den Speicher eingebaut ist. Als Alternative können der Treiber und der Kern in einen programmierbaren Festwertspeicher (PROM) einprogrammiert werden, aus dem die Software abgerufen werden kann. Das Kästchen 28 bezeichnet das Redundanzprüfungsprogramm, das durch den Modul FILTER OBJECTS (OBJEKTE FILTERN) ausgeführt wird, wie weiter oben anhand der Fig. 4A-4E beschrieben. Ein Nachabtastungsfilter ist bei 26 in Fig. 30 dargestellt und führt eine weitere Bestätigung der nichtredundanten Objekte aus.
- Nach einer zweiten Ausführungsform der vorliegenden Erfindung wird ein Verfahren zum Auflösen redundanter Identifikationen jedes identifizierten Objekts in einem Bild bereitgestellt. Dieses Verfahren bietet eine schnelle und vereinfachte Möglichkeit zur Redundanzprüfung. Das Verfahren nach der zweiten Ausführungsform ist besonders gut verwendbar, wenn das Bild mehrfach durchsucht wird und wenn mehrere Darstellungen eines einzigen Objekts identifiziert werden. Das Verfahren nach der zweiten Ausführungsform löst mehrfache Identifikationen von Objekten auf, nachdem eine rekursive Suche nach allen Objekten abgeschlossen ist. Ebenso wie bei der ersten Ausführungsform kann das Verfahren nach der zweiten Ausführungsform auch zur Identifikation von leeren oder pfannkuchenförmigen Objekten verwendbar sein, wenn das Bild nur einmal durchsucht wird. Ferner ist festgestellt worden, daß das Verfahren nach der zweiten Ausführungsform bei der Auflösung von mehreren getrennten Objekten wertvoll ist, wo andere Bildanalyseverfahren ein einziges Objekt identifiziert haben.
- Zur Ausführung des Verfahrens nach der zweiten Ausführungsform kann ein System wie das in Fig. 30 verwendete angewandt werden. Die Schritte des Verfahrens nach der zweiten Ausführungsform sind allgemein in Fig. 31 dargestellt. Das Verfahren weist den Schritt zur Identifikation einer Gruppe von möglicherweise redundanten Objekten auf. Dieser Schritt ist im Block A von Fig. 31 dargestellt. Dieser Schritt kann auf verschiedene Weise durchgeführt werden, wie oben in bezug auf die erste Ausführungsform beschrieben.
- Das Verfahren nach der zweiten Ausführungsform weist außerdem den Schritt zum Flächenvergleich von zwei identifizierten Objekten auf. Dieser Schritt ist im Block B von Fig. 31 dargestellt. Eines der Objekte wird im Vergleich zum anderen Objekt als relativ größeres Objekt gekennzeichnet, und das andere Objekt wird im Vergleich zum größeren Objekt als relativ kleineres Objekt gekennzeichnet. Das Verfahren weist ferner den Schritt auf, in dem festgestellt wird, ob das kleinere Objekt in dem größeren Objekt enthalten ist. Dieser Schritt ist im Block C von Fig. 31 dargestellt. Dieser Schritt wird durch den weiter oben in Verbindung mit Fig. 5 diskutierten Rahmentest und den Modul SET STATUS (ZUSTAND SETZEN) ausgeführt, der oben in bezug auf Fig. 6 beschrieben wurde. Präzise gesagt, dieser Bestimmungsschritt wird durch Bestimmen der vier Extremalpunkte des größeren Objekts ausgeführt, wobei jeder Extremalpunkt einen Zeilenpositions-Koordinatenwert und einen Spaltenpositions- Koordinatenwert aufweist. Dieser Schritt wird ausgeführt, wie weiter oben anhand der Fig. 27A-27B beschrieben. Der Bestimmungsschritt wird außerdem ausgeführt, indem unter Verwendung der Zeilenpositions-Koordinatenwerte und der Spaltenpositions-Koordinatenwerte der vier Extremalpunkte ein Rechteck konstruiert wird, welches das größere Objekt umrandet. Dieser Schritt wird ausgeführt, wie weiter oben anhand der Fig. 5 und 6 beschrieben.
- Das Verfahren nach der zweiten Ausführungsform weist ferner den Schritt auf, in dem das kleinere Objekt als in dem größeren Objekt enthalten gekennzeichnet wird, wenn der vorgegebene Punkt des kleineren Objekts in dem Rechteck enthalten ist, wodurch redundante Identifikationen jedes identifizierten Objekts in dem Bild aufgelöst werden. Dieser Schritt wird ausgeführt, wie weiter oben anhand der Fig. 5 und 6 beschrieben. Der vorgegebene Punkt ist in dem Rechteck, welches das größere Objekt umrandet, enthalten, wenn die beiden folgenden Bedingungen erfüllt sind. Erstens liegt der Zeilenpositions- Koordinatenwert des vorgegebenen Punkts des kleineren Objekts zwischen dem Minimalwert und dem Maximalwert für die Zeilenpositions-Koordinatenwerte des Rechtecks, welches das größere Objekt umrandet. Zweitens liegt der Spaltenpositions-Koordinatenwert des vorgegebenen Punkts des kleineren Objekts zwischen dem Minimalwert und dem Maximalwert für die Spaltenpositions-Koordinatenwerte des Rechtecks, welches das größere Objekt umrandet. Dies wird ermittelt, wie weiter oben anhand der Fig. 7 und 13 beschrieben.
- Ferner wird nach einer dritten Ausführungsform der vorliegenden Erfindung ein Verfahren zur Auflösung redundanter Identifikationen eines gültigen Objekts mit mindestens einem vorgegebenen Attributwert vor einem Hintergrund bereitgestellt. Das Verfahren nach der dritten Ausführungsform führt eine Redundanzprüfung aus, während es in jedem Stadium der mehrfachen Suche, wie z. B. der Rekursion, eine Bestätigung ausführt, im Gegensatz zu den ersten und zweiten Ausführungsformen, welche die Redundanzprüfung am Ende der mehrfachen Suche ausführen. Das Verfahren nach der dritten Ausführungsform ist besonders gut verwendbar, wenn das Bild mehrmals durchsucht wird und mehrere Darstellungen eines einzigen Objekts identifiziert werden. Als Alternative kann das Verfahren nach der dritten Ausführungsform, ebenso wie in der ersten und der zweiten Ausführungsform, zur Identifikation von leeren oder pfannkuchenförmigen Objekten verwendbar sein, wenn das Bild nur einmal durchsucht wird. Ferner hat sich das Verfahren nach der dritten Ausführungsform als wertvoll bei der Auflösung mehrerer getrennter Objekte erwiesen, wo andere Bildanalyseverfahren ein einziges Objekt identifiziert haben, wie in der ersten Ausführungsform.
- Fig. 32 zeigt ein Blockdiagramm, welches das Gesamtverfahren nach der dritten Ausführungsform der vorliegenden Erfindung darstellt. Wie im Block A von Fig. 32 gezeigt, besteht der erste Schritt des Verfahrens nach der dritten Ausführungsform darin, ein Bild eines Objekts und eines Hintergrunds zu erzeugen. Dieser Schritt wird ausgeführt, wie oben in bezug auf die erste Ausführungsform beschrieben.
- Das Redundanzauflösungsverfahren nach der dritten Ausführungsform weist außerdem den Schritt zum Erzeugen eines Graustufenhistogramms des Bildes auf, wobei das Graustufenhistogramm eine Entropiefunktion aufweist. Dieser Schritt ist im Block B von Fig. 32 dargestellt und wird ausgeführt, wie oben in bezug auf Fig. 22 beschrieben.
- Das Redundanzauflösungsverfahren nach der dritten Ausführungsform weist ferner den Schritt zur entropischen Auswahl eines Graustufenschwellwertes auf, derart, daß die Entropiefunktion des Histogramms maximiert wird. Dieser Schritt ist im Block C von Fig. 32 dargestellt und wird ausgeführt, wie oben in bezug auf Fig. 23 beschrieben.
- Das Redundanzauflösungsverfahren nach der dritten Ausführungsform weist ferner den Schritt zum Durchsuchen des Bildes nach mindestens einem Anwärterobjekt unter Verwendung des entropisch ausgewählten Graustufenschwellwerts auf, wobei das Anwärterobjekt mindestens einen Anwärterobjekt- Attributwert aufweist. Dieser Schritt ist im Block D von Fig. 32 dargestellt und wird ausgeführt, wie oben in bezug auf die Fig. 25-27 beschrieben.
- Das Redundanzauflösungsverfahren nach der dritten Ausführungsform weist außerdem die Bestätigung des Anwärterobjekts auf, das den vorgegebenen Attributwert eines gültigen Objekts zur Identifikation des gültigen Objekts aufweist. Dieser Schritt ist im Block D von Fig. 32 dargestellt und wird ausgeführt, wie oben in bezug auf die Fig. 25-27 beschrieben.
- Bei dem Verfahren nach der dritten Ausführungsform wird nach jeder Abtastung während des rekursiven Prozesses eine Redundanzkontrolle ausgeführt. Um nach jeder Abtastung den Teilschritt zur Redundanzkontrolle auszuführen, werden gültige Objekte entweder als homogen oder als inhomogen klassifiziert. Hierbei bezieht sich Homogenität auf die Gleichmäßigkeit der Graustufenwerte der inneren Punkte. Inhomogene Objekte werden in dem unten angegebenen Beispiel beschrieben, wo Farbkolonien identifiziert werden. Gültige Objekte werden ferner auch entweder als relativ größeres gültiges Objekt oder als kleineres gültiges Objekt klassifiziert. Außerdem werden gültige Objekte entweder als in einem anderen gültigen Objekt enthalten (innere gültige Objekte) oder als niemals in einem anderen gültigen Objekt enthalten (äußere gültige Objekte) klassifiziert.
- Nach der dritten Ausführungsform der vorliegenden Erfindung kann der Bestätigungsschritt ausgeführt werden, um redundante Identifikationen inhomogener Objekte aufzulösen. Wenn er ausgeführt wird, schließt der Bestätigungsschritt den Teilschritt zum Löschen des größeres Objekts ein, wenn das größere Objekt mehr als ein kleineres Objekt enthält. Wenn ferner der Teilschritt zur Redundanzkontrolle ausgeführt wird, um inhomogene gültige Objekte zu löschen, dann schließt das Verfahren zur Identifikation gültiger Objekte außerdem die Teilschritte zur Berechnung des mittleren Randkontrasts der größeren und der kleineren gültigen Objekte ein. Der Teilschritt zum Berechnen des mittleren Randkontrasts der größeren und kleineren Objekte wird durch einen Modul EDGE CONTRAST (RANDKONTRAST) ausgeführt, wie weiter unten in Fig. 33 dargestellt. Der Teilschritt zum Löschen des Objekts mit dem geringeren Randkontrast, wenn das größere Objekt nur ein kleineres Objekt enthält, wird durch einen Modul CHK LIST (LISTE KONTROLLIEREN) ausgeführt, wie in den Fig. 34A-34D für inhomogene gültige Objekte dargestellt.
- Zur Berechnung des Randkontrasts der kleineren und größeren Objekte müssen zunächst die Extremalpunkte berechnet werden. Dies erfolgt durch den Modul TRACE OBJECT (OBJEKT VERFOLGEN), wie weiter oben in bezug auf die Fig. 27A-27B erläutert. Für jeden Extremalpunkt wird dann die lokale Graustufenwert-Differenz zwischen dem Extremalpunkt und dem benachbarten Extremalpunkt berechnet. Der Randkontrast des - größeren oder kleineren - Objekts wird dann als Summe der Graustufendifferenzen jedes der Extremalpunkte berechnet. Diese Schritte werden durch den Modul EDGE CONTRAST (RANDKONTRAST) ausgeführt, wie im Ablaufdiagramm von Fig. 33 dargestellt.
- Zur Berechnung des Randkontrasts werden die vier Extremalpunkte eines Objekts, wie in den Fig. 5 und 12 dargestellt, durch einen Modul GET PERIM (UMFANG ERMITTELN) bestimmt, wie oben in bezug auf Fig. 11 beschrieben. Wie im Block A von Fig. 33 dargestellt, wird der aktuelle Extremalpunkt auf den ersten Extremalpunkt gesetzt, und der Randkontrast wird auf null gesetzt. Im Entscheidungsblock B wird gefragt, ob der aktuelle Extremalpunkt hinter dem letzten Extremalpunkt liegt. Wenn ja, dann wird der Modul EDGE CONTRAST beendet, wie im Oval C angegeben. Dann wird die örtliche Graustufenwertdifferenz zwischen dem aktuellen Extremalpunkt und dem örtlichen Äußeren berechnet, wie im Block D dargestellt. Dann wird der Randkontrast auf einen Wert gesetzt, der gleich der Summe aus dem Randkontrast und der Graustufenwert-Differenz ist, wie im Block E dargestellt. Der aktuelle Extremalpunkt wird dann inkrementiert, wie im Block F dargestellt. Der Modul EDGE CONTRAST springt dann zum Entscheidungsblock B zurück, und die Schleife über B, D, E und F läuft weiter, bis der aktuelle Extremalpunkt hinter dem letzten Extremalpunkt liegt. An dieser Stelle wird der Modul EDGE CONTRAST beendet, wie im Oval C angegeben.
- Der in den Fig. 34A-34D dargestellte Modul CHK LIST (LISTE KONTROLLIEREN) verwendet die Randkontrastinformationen, die entsprechend der Darstellung in Fig. 33 berechnet werden, um das Objekt mit dem geringeren Randkontrast zu löschen, wenn das größere Objekt nur ein kleineres Objekt enthält. Wie im Block A von Fig. 34A dargestellt, besteht der erste Schritt des Moduls CHK LIST zum Löschen von inhomogenen Objekten darin, den vorhergehenden Zählwert als die Anzahl gültiger Objekte zu definieren, die vor der aktuellen Suche gefunden wurden. Dann wird das "Wappen"-Objekt als das in der aktuellen Suche gefundene Anfangs-Anwärterobjekt definiert, wie im Block B dargestellt. Der Objektzählwert wird mit eins initialisiert, wie im Block C dargestellt, und das "Kopf"-Objekt wird als das Anfangsobjekt in der Gesamtobjektliste (d. h. der Liste aller bisher gefundenen Objekte) definiert, wie im Block D dargestellt. Im Entscheidungsblock E wird gefragt, ob der Objektzählwert größer ist als der vorherige Zählwert.
- Ist der Objektzählwert größer als der vorherige Zählwert, dann geht CHK LIST zum ersten Objekt in der Gesamtobjektliste über, wie im Block A von Fig. 34B dargestellt. Im Entscheidungsblock B von Fig. 34B wird gefragt, ob CHK LIST beim letzten Objekt angelangt ist. Wenn nicht, wird im Entscheidungsblock C gefragt, ob das gültige Objekt in einem anderen gültigen Objekt enthalten ist. Wenn ja, wird der Objektzustand auf den Zustand des Objekts gesetzt, in dem es enthalten ist, wie im Block D dargestellt, und CHK LIST geht zum nächsten Objekt über, wie im Block E dargestellt. Auch wenn das Objekt nicht in einem anderen Objekt enthalten ist, geht CHK LIST zum nächsten Objekt über, wie im Block E dargestellt. Die Schleife über B-E läuft weiter, bis das nächste Objekt des Blocks E das letzte Objekt ist, und an dieser Stelle geht CHK LIST zum ersten Objekt in der Gesamtobjektliste über, wie im Block F dargestellt. Die Objektzustands-Attributwerte für alle Objekte werden auf "TRUE" (WAHR) gesetzt, wie im Block G dargestellt. "TRUE" bedeutet in diesem Zusammenhang gültig, und "FALSE" (FALSCH) bedeutet ungültig. Im Entscheidungsblock H wird dann gefragt, ob CHK LIST beim letzten Objekt angelangt ist.
- Wenn ja, geht CHK LIST zum ersten Objekt über, wie im Block A von Fig. 34C dargestellt. Im Entscheidungsblock B wird dann wiederum gefragt, ob CHK LIST beim letzten Objekt angelangt ist. Wenn ja, dann wird die Gesamtzahl der Objekte gezählt, wie im Block C dargestellt, und die Differenz zwischen der Gesamtzahl der Objekte und dem früheren Zählwert wird zurückgegeben, wie im Block D dargestellt. Ist CHK LIST nicht beim letzten Objekt angelangt, dann wird im Entscheidungsblock E gefragt, ob der Objektzustand-Attributwert FALSE ist. Wenn ja, wird das Objekt gelöscht, wie im Block F dargestellt. Wenn nein, geht CHK LIST zum nächsten Objekt über, wie im Block G dargestellt, und CHK LIST fragt wiederum, ob es beim letzten Objekt angelangt ist, wie im Entscheidungsblock B dargestellt. Die Schleife über B, E, F und G läuft weiter, bis das nächste Objekt im Block G das letzte Objekt ist. An dieser Stelle wird die Gesamtzahl der Objekte gezählt, wie im Block C dargestellt, und die Differenz zwischen der Gesamtzahl der Objekte und dem vorherigen Zählwert wird zurückgegeben, wie im Block D dargestellt.
- Wenn CHK LIST im Entscheidungsblock H in Fig. 34B an dieser Stelle nicht beim letzten Objekt angelangt ist, geht der Modul zum Entscheidungsblock I über, wo gefragt wird, ob das Objekt mehr als ein gültiges Objekt enthält. Wenn ja, dann wird der Objektzustands-Attributwert auf FALSE gesetzt, wie im Block J dargestellt, und CHK LIST geht zum nächsten Objekt über, wie im Block K dargestellt. CHK LIST springt dann zum Entscheidungsblock H zurück, wo gefragt wird, ob der Modul beim letzten Objekt angelangt ist, und setzt dieses Verfahren so lange fort, bis das Objekt nicht mehr als ein gültiges Objekt enthält. Dann wird im Entscheidungsblock A von Fig. 34D gefragt, ob das Objekt das einzige Objekt ist, das in einem anderen Objekt enthalten ist. Wenn nicht, dann geht CHK LIST zum nächsten Objekt über, wie im Block K von Fig. 34B dargestellt, und die Schleife über H-K von Fig. 35B und über A von Fig. 34D wird so lange wiederholt, bis das Objekt das einzige Objekt ist, das in einem anderen Objekt enthalten ist. Wenn das Objekt das einzige Objekt ist, welches in einem anderen Objekt enthalten ist, dann wird im Entscheidungsblock B gefragt, ob der Zustands-Attributwert des Objekts, welches das Objekt enthält, FALSE ist. Wenn ja, dann geht CHK LIST zum nächsten Objekt über, wie im Block K von Fig. 34 dargestellt, und die Schleife über H-K von Fig. 34B und A-B von Fig. 34D wird so lange wiederholt, bis der Zustands- Attributwert des Objekts, welches das Objekt enthält, nicht FALSE ist. An dieser Stelle wird im Entscheidungsblock N gefragt, ob der Randkontrast des Objekts, welches ein anderes Objekt enthält, größer ist als der Randkontrast des Objekts. Wenn ja, dann setzt CHK LIST den Objektzustands- Attributwert auf FALSE, wie im Block D dargestellt, geht zum nächsten Objekt über, wie im Block K in Fig. 34B dargestellt, und die Schleife über H-K von Fig. 34B und A-C von Fig. 34D wird so lange wiederholt, bis der Randkontrast des Objekts, welches ein anderes Objekt enthält, nicht größer als der Randkontrast des in einem anderen Objekt enthaltenen Objekts ist. Dann setzt CHK LIST den Zustand des Objekts, welches das Objekt enthält, auf FALSE, wie im Block E von Fig. 34D dargestellt, und geht zum nächsten Objekt über, wie im Block K von Fig. 34D dargestellt, bis es beim letzten Objekt angelangt ist.
- Wenn im Entscheidungsblock E in Fig. 34A der Objektzählwert nicht größer als der vorherige Zählwert ist, dann wird im Entscheidungsblock F gefragt, ob das Kopf-Objekt in einem anderen Objekt enthalten ist. Wenn ja, dann erfolgt der Übergang zum nächsten Kopf-Objekt, wie im Block G dargestellt, und der Objektzählwert wird inkrementiert, wie im Block H dargestellt. Im Entscheidungsblock E wird wiederum gefragt, ob der inkrementierte Objektzählwert größer ist als der vorherige Zählwert. Wenn ja, dann geht CHK LIST zum Block A von Fig. 34B über, wie oben erläutert. Ist der inkrementierte Zählwert nicht größer als der vorherige Zählwert, dann wird die Schleife über F, G, H und E in Fig. 34A so lange wiederholt, bis das Kopf-Objekt nicht in einem anderen Objekt enthalten ist. Dann geht CHK LIST zum Entscheidungsblock I von Fig. 34A über, wo gefragt wird, ob das Wappen-Objekt das letzte Objekt ist, oder ob das Kopf-Objekt in einem anderen Objekt enthalten ist. Wenn das Wappen-Objekt das letzte Objekt ist, oder wenn das Kopf-Objekt in einem anderen Objekt enthalten ist, dann geht CHK LIST zum nächsten Kopf-Objekt über, wie im Block G dargestellt, und der Zählwert wird inkrementiert, wie im Block H dargestellt. Die Schleife über E, F, I, G und H wird so lange wiederholt, bis das Wappen-Objekt nicht das letzte Objekt ist oder das Kopf-Objekt nicht in einem anderen Objekt enthalten ist. Im Entscheidungsblock J wird dann gefragt, ob das Kopf-Objekt in einem anderen Objekt enthalten ist. Wenn ja, dann erfolgt ein Übergang zum nächsten Wappen-Objekt, wie im Block K von Fig. 34A dargestellt; und die Schleife über I, J und K wird so lange wiederholt, bis das Wappen-Objekt nicht in einem anderen Objekt enthalten ist. Dann geht CHK LIST zu dem Modul SET STAT (ZUSTAND SETZEN) über, wie in Fig. 35 dargestellt, um den Zustand der Kopf und Wappen-Objekte zu setzen, wie im Block L von Fig. 34A dargestellt.
- Der Teilschritt zur Redundanzkontrolle umfaßt ferner die Teilschritte zum Flächenvergleich mehrerer gültiger Objekte und zum Kennzeichnen eines der gültigen Objekte als größeres gültiges Objekt und des anderen von den ersten und zweiten gültigen Objekten als kleineres gültiges Objekt sowie die Feststellung, ob das kleinere gültige Objekt in dem größeren gültigen Objekt enthalten ist.
- Der in Fig. 35 dargestellte Modul SET STAT führt für inhomogene Objekte die Teilschritte aus, in denen die Flächen von mehreren gültigen Objekten verglichen und eines der gültigen Objekte als größeres gültiges Objekt und das andere von den ersten und zweiten gültigen Objekten als kleineres gültiges Objekt gekennzeichnet werden und festgestellt wird; ob das kleinere gültige Objekt in dem größeren gültigen Objekt enthalten ist. Die Feststellung, ob das kleinere gültige Objekt in dem größeren gültigen Objekt enthalten ist, erfolgt durch den Rahmentest, wie oben beschrieben.
- Wir kehren zu den Einzelheiten des Moduls SET STAT zurück, wie in Fig. 35 dargestellt: der erste Schritt von SET STAT, wie im Entscheidungsblock A dargestellt, ist die Frage, ob das Kopf-Objekt größer als das Wappen-Objekt ist. Wenn ja, dann wird das Kopf-Objekt als das größere gültige Objekt definiert, und das Wappen-Objekt wird als das kleinere gültige Objekt definiert, wie im Block B dargestellt. Ist das Kopf-Objekt nicht größer als das Wappen-Objekt, dann wird das Kopf-Objekt als das kleinere gültige Objekt definiert, und das Wappen-Objekt wird als das größere gültige Objekt definiert, wie im Block C dargestellt. Dann wird im Entscheidungsblock D gefragt, ob das kleinere Objekt in dem größeren Objekt enthalten ist. Wenn nicht, dann ist SET STAT beendet, wie durch das ENDE-Oval E angedeutet. Ist das kleinere Objekt in dem größeren Objekt enthalten, dann wird der Typ-Attributwert des größeren Objekts auf einen Wert gesetzt, der anzeigt, daß es ein kleineres Objekt enthält, wie im Block F dargestellt. Der Typ- Attributwert teilt SET STAT mit, ob ein Objekt in einem anderen Objekt enthalten ist oder ob das Objekt ein anderes Objekt enthält. Außerdem wird der Typ-Attributwert des kleineren Objekts auf einen Wert gesetzt, der anzeigt, daß es in einem größeren Objekt enthalten ist, wie im Block G dargestellt. Schließlich wird der Zustands-Attributwert des größeren Objekts inkrementiert, wie im Block H dargestellt. SET STAT ist dann beendet, wie durch das ENDE-Oval I angezeigt, und springt zum Block L von Fig. 34A zurück.
- Nach der dritten Ausführungsform der vorliegenden Erfindung kann der Teilschritt zur Redundanzkontrolle alternativ zur Auflösung von Redundanzen in den homogen Objekten ausgeführt werden. Wenn dies der Fall ist, schließt die dritte Ausführungsform ferner die Teilschritte zur Berechnung des Randkontrasts der größeren und kleineren gültigen Objekte und zum Löschen des größeren Objekts ein, falls der mittlere Randkontrast des größeren Objekts kleiner ist als der mittlere Randkontrast des kleineren Objekts und kleiner als ein vorgegebener minimaler Randkontrast. Der Teilschritt zur Redundanzkontrolle für die Auflösung von Redundanzen schließt außerdem die Teilschritte zur Berechnung des Randkontrasts der größeren und kleineren gültigen Objekte und zum Löschen des kleineren Objekts ein, falls der mittlere Randkontrast des größeren Objekts größer als der mittlere Randkontrast des kleineren Objekts und größer als der vorgegebene minimale Kontrast ist. Die Teilschritte zur Berechnung des mittleren Randkontrasts werden durch den Modul EDGE CONTRAST ausgeführt, wie oben in bezug auf Fig. 33 beschrieben. Die Teilschritte zum Löschen werden unter Verwendung des Moduls CHK LIST für homogene Objekte ausgeführt, wie durch die Ablaufdiagramme der Fig. 36A und 36B dargestellt.
- Wie im Block A von Fig. 36A gezeigt, besteht der erste Schritt des Moduls CHK LIST, wenn dieser zum Löschen von homogenen Objekten ausgeführt wird, in der Definition des vorherigen Zählwerts als Anzahl gültiger Objekte, die vor der aktuellen Suche gefunden wurden. Dann wird das Wappen-Objekt als in der aktuellen Suche gefundenes Anfangs-Anwärterobjekt definiert, wie im Block B dargestellt. Der Objektzählwert wird mit eins initialisiert, wie im Block C dargestellt, und das Kopf-Objekt wird als Anfangsobjekt in der Gesamtobjektliste definiert, wie im Block D dargestellt. Dann wird für alle Objekte der Objektzustands-Attributwert auf TRUE gesetzt, wie im Block E dargestellt. Im Entscheidungsblock Figur wird gefragt, ob der Objektzählwert größer als der vorherige Zählwert ist.
- Ist der Objektzählwert größer als der vorherige Zählwert, dann geht CHK LIST zum Anfangsobjekt in der Gesamtobjektliste über, wie im Block A von Fig. 36B dargestellt. Im Entscheidungsblock B von Fig. 36B wird gefragt, ob CHK LIST beim letzten Objekt angelangt ist. Wenn ja, wird die Gesamtzahl der Objekte gezählt, wie im Block C dargestellt, und die Differenz zwischen der Gesamtzahl der Objekte und dem vorherigen Zählwert wird zurückgegeben, wie im Block D dargestellt. Ist CHK LIST nicht beim letzten Objekt angelangt, dann wird im Entscheidungsblock E gefragt, ob der Objektzustands-Attributwert FALSE ist. Wenn ja, dann wird das Objekt gelöscht, wie im Block F dargestellt. Wenn der Objektzustand NOT FALSE (NICHT FALSCH) ist, dann erfolgt der Übergang zum nächsten Objekt, wie im Block G dargestellt, und der Modul CHK LIST fragt wiederum, ob er beim letzten Objekt angelangt ist, wie im Entscheidungsblock B dargestellt. Dieser Prozeß läuft so lange weiter, bis CHK LIST das letzte Objekt erreicht, an welcher Stelle die Gesamtzahl der Objekte gezählt wird, wie im Block C dargestellt, und die Differenz zwischen der Gesamtzahl der Objekte und dem vorherigen Zählwert zurückgegeben wird, wie im Block D dargestellt.
- Wenn im Entscheidungsblock F in Fig. 36A der Objektzählwert nicht größer ist als der vorherige Zählwert, dann wird im Entscheidungsblock G von Fig. 36A gefragt, ob der Zustands-Attributwert des Kopf-Objekts FALSE ist. Wenn ja, dann erfolgt der Übergang zum nächsten Kopf-Objekt, wie im Block H dargestellt, und der Zählwert wird inkrementiert, wie im Block I dargestellt. Im Entscheidungsblock F wird dann gefragt, ob der inkrementierte Objektzählwert größer ist als der vorherige Zählwert. Wenn ja, dann geht CHK LIST zum Block A von Fig. 36B über, wie oben erläutert. Die Schleife über G, H und I in Fig. 36A wird so lange wiederholt, bis der Zustand des Objekts NOT FALSE ist. Dann geht CHK LIST zum Entscheidungsblock J von Fig. 36A über, wo gefragt wird, ob das Wappen-Objekt nicht das letzte Objekt ist und ob der Zustands-Attributwert des Kopf-Objekts TRUE ist. Die Antwort auf diese beiden Fragen muß "ja" sein. Wenn nicht, dann geht CHK LIST zum nächsten Kopf-Objekt über, wie im Block H dargestellt, und der Zählwert wird inkrementiert, wie im Block I dargestellt. Die Schleife über F, G, H, I und J wird so lange wiederholt, bis das Wappen-Objekt das letzte Objekt ist und der Zustands-Attributwert des Kopf- Objekts TRUE ist. Im Entscheidungsblock K wird dann gefragt, ob der Zustands-Attributwert des Wappen- Objekts TRUE ist. Wenn ja, dann wird durch einen Modul SET STAT der Randzustand des Kopf und des Wappen-Objekts gesetzt, wie im Block L von Fig. 36A und ausführlich in Fig. 37 dargestellt. CHK LIST geht dann zum nächsten Wappen-Objekt über, wie im Block M dargestellt, und die Schleife über J, K, L und M wird wiederholt. Wenn der Zustand des Wappen-Objekts NOT TRUE (NICHT WAHR) ist, dann geht CHK LIST zum nächsten Wappen-Objekt über, wie im Block M dargestellt, und die Schleife über J, K und M wird wiederholt.
- Der in Fig. 37 dargestellte Modul SET STAT führt die Teilschritte aus, in denen die Flächen mehrerer gültiger Objekte verglichen werden und eines der gültigen Objekte als größeres gültiges Objekt und das andere von den ersten und zweiten gültigen Objekten als kleineres gültiges Objekt gekennzeichnet wird und festgestellt wird, ob das kleinere gültige Objekt in dem größeren gültigen Objekt enthalten ist, wie durch die vier Extremalpunkte des größeren Objekts für homogene Objekte definiert. Wie im Entscheidungsblock A von Fig. 37 dargestellt, besteht der erste Schritt von SET STAT in der Frage, ob das Kopf-Objekt größer als das Wappen-Objekt ist. Wenn ja, wird das Kopf-Objekt als größeres gültiges Objekt definiert, und das Wappen-Objekt wird als kleineres gültiges Objekt definiert, wie im Block B dargestellt. Ist das Kopf-Objekt nicht größer als das Wappen-Objekt, dann wird das Kopf-Objekt als das kleinere gültige Objekt definiert, und das Wappen-Objekt wird als das größere gültige Objekt definiert. Im Entscheidungsblock D von SET STAT wird dann gefragt, ob das kleinere Objekt in dem größeren Objekt enthalten ist. Wenn nicht, wird die Ausführung von SET STAT beendet, wie durch das Oval E dargestellt. Ist das kleinere Objekt in dem größeren Objekt enthalten, dann wird im Entscheidungsblock F gefragt, ob der Randkontrast des größeren Objekts größer ist als der Randkontrast des kleineren Objekts, und ob der Randkontrast des größeren Objekts größer ist als der vorgegebene minimale Randkontrast. Wenn die Antwort auf diese beiden Fragen "ja", ist, dann wird der Zustands-Attributwert des größeren Objekts auf TRUE gesetzt, und der Zustands-Attributwert des kleineren Objekts wird auf FALSE gesetzt, wie durch den Block G angezeigt, und die Ausführung des Moduls wird beendet, wie durch das Oval H angezeigt. Wenn die Antwort auf mindestens eine der Fragen im Entscheidungsblock F "nein" ist, dann wird der Zustands- Attributwert des kleineren Objekts auf TRUE gesetzt, der Zustands-Attributwert des größeren Objekts wird auf FALSE gesetzt, wie im Block I angezeigt, und die Ausführung des Moduls wird beendet, wie durch das Oval J angezeigt.
- Die dritte Ausführungsform der vorliegenden Erfindung umfaßt ferner den Schritt zur Ausführung einer Endkontrolle auf Redundanzen des gültigen Objekts und zur Auflösung der Redundanzen, um eine redundante Identifikation des gültigen Objekts zu verhindern. Der abschließende Redundanzkontrollschritt umfaßt ferner die Teilschritte zum Flächenvergleich von mehreren gültigen Objekten und zur Kennzeichnung eines der gültigen Objekte als größeres gültiges Objekt und des anderen von den ersten und zweiten gültigen Objekten als kleineres gültiges Objekt sowie zum Entfernen des größeren gültigen Objekts, wenn das kleinere gültige Objekt und das größere gültige Objekt einander überlappen. Der abschließende Redundanzkontrollschritt wird durch einen Modul FINAL CHK (ENDKONTROLLE), wie durch das Ablaufdiagramm in den Fig. 38A und 38B dargestellt, und einen Modul INT STAT ausgeführt, wie durch das Ablaufdiagramm von Fig. 39 dargestellt. Die Module FINAL CH und INT STAT sind für homogene und inhomogene Objekte die gleichen und werden daher nur einmal erläutert.
- Der erste Schritt von FINAL CHK besteht darin, den Objekt-Attributwert für alle Objekte mit TRUE zu initialisieren, wie im Block A von Fig. 38A dargestellt. Dann wird der Zählindex zum Zählen von gültigen Objekten mit eins initialisiert, wie im Block B dargestellt. Das Kopf-Objekt wird als Anfangsobjekt in einer Liste von Zustands-Attributwerten definiert, wie im Block C dargestellt. Im Entscheidungsblock D wird dann gefragt, ob der Zählindex kleiner als die Gesamtzahl der Objekte ist. Wenn nicht, geht der Modul FINAL CHK zum Block A von Fig. 38B über.
- Wie im Block A von Fig. 38B dargestellt, geht FINAL CHK zum ersten Objekt über. Im Entscheidungsblock B wird gefragt, ob FINAL CHK beim letzten Objekt angelangt ist. Wenn nicht, dann wird im Entscheidungsblock C gefragt, ob der Objektzustands-Attributwert FALSE ist. Wenn nicht, dann geht FINAL CHK zum nächsten Objekt über, wie im Block E dargestellt, und im Entscheidungsblock B wird wiederum gefragt, ob FINAL CHK beim letzten Objekt angelangt ist. Die Schleife über B, C und E läuft so lange weiter, bis FINAL CHK beim letzten Objekt angelangt ist. Wenn der Objektzustands- Attributwert FALSE ist, dann wird das Objekt gelöscht, wie im Block D dargestellt. FINAL CHK geht dann zum nächsten Objekt über, wie im Block E dargestellt, und im Entscheidungsblock B wird gefragt, ob FINAL CHK beim letzten Objekt angelangt ist. Die Schleife über B-E läuft so lange weiter, bis das nächste Objekt das letzte Objekt ist, und an dieser Stelle geht FINAL CHK zum ersten Objekt über, wie im Block F dargestellt. Der Zählwert wird dann mit eins initialisiert, wie im Block G dargestellt. Im Entscheidungsblock H wird dann gefragt, ob FINAL CHK beim letzten Objekt angelangt ist. Wenn nicht, dann wird der Zählwert inkrementiert, wie im Block I dargestellt, und FINAL CHK geht zum nächsten Objekt über, wie im Block J dargestellt. Im Entscheidungsblock H wird wiederum gefragt, ob FINAL CHK beim letzten Objekt angelangt ist, und die Schleife über H, I und J läuft so lange weiter, bis FINAL CHK beim letzten Objekt angelangt ist. Dann wird die im Zählwert enthaltene Gesamtzahl gültiger Objekte zurückgegeben, wie im Block K von Fig. 38B dargestellt.
- Wenn im Entscheidungsblock D von Fig. 38A der Zählindex kleiner ist als die Gesamtzahl der Objekte, dann wird das Wappen-Objekt als nächstes Objekt hinter dem Kopf-Objekt definiert, wie im Block E dargestellt. Im Entscheidungsblock F wird dann gefragt, ob der Zustands-Attributwert des Kopf-Objekts TRUE ist. Wenn nicht, geht FINAL CHK zum nächsten Kopf-Objekt über, wie im Block G dargestellt, und inkrementiert den Zählindex, wie im Block H dargestellt. FINAL CHK springt dann zum Entscheidungsblock D zurück, und die Schleife über D-I läuft so lange weiter, bis der Zustands- Attributwert des Kopf-Objekts TRUE ist. Dann wird im Entscheidungsblock I gefragt, ob das Wappen- Objekt nicht das letzte Objekt ist, und ob der Zustands-Attributwert des Kopf-Objekts TRUE ist. Wenn mindestens eine dieser Bedingungen nicht erfüllt ist, dann geht FINAL CHK zum nächsten Kopf-Objekt über, wie im Block G dargestellt, und inkrementiert den Index, wie im Block H dargestellt. FINAL CHK springt dann zum Entscheidungsblock D zurück, und die Schleife über D-I läuft so lange weiter, bis die Antwort auf beide Fragen im Entscheidungsblock I "ja" ist. Im Entscheidungsblock J wird gefragt, ob der Zustands-Attributwert des Wappen-Objekts TRUE ist. Wenn nicht, geht FINAL CHK zum nächsten Wappen-Objekt über, wie im Block L von Fig. 38A dargestellt, und die Schleife über I, J und L wird so lange wiederholt, bis der Zustands-Attributwert des Wappen-Objekts TRUE ist. Dann führt FINAL CHK einen Modul INT STAT aus, wie im Block K von Fig. 38A dargestellt, und geht zum nächsten Wappen- Objekt über, wie im Block L dargestellt.
- Die im Block K von Fig. 38A erläuterten Schritte des Moduls INT STAT sind ausführlich in Fig. 39 dargestellt. Im Entscheidungsblock A von Fig. 39 wird gefragt, ob das Kopf-Objekt größer ist als das Wappen-Objekt. Wenn ja, wird das Kopf-Objekt als größeres gültiges Objekt definiert, und das Wappen- Objekt wird als kleineres gültiges Objekt definiert, wie im Block B dargestellt. Ist das Kopf-Objekt nicht größer als das Wappen-Objekt, dann wird das Kopf-Objekt als kleineres gültiges Objekt definiert, und das Wappen-Objekt wird als größeres gültiges Objekt definiert, wie im Block C dargestellt. Im Entscheidungsblock D wird dann gefragt, ob das kleinere gültige Objekt in dem größeren gültigen Objekt enthalten ist. Wenn nicht, dann ist INT STAT beendet, wie durch das Oval E dargestellt. Ist das kleinere gültige Objekt in dem größeren gültigen Objekt enthalten, dann wird der Zustands-Attributwert des größeren Objekts auf FALSE gesetzt, wie im Block F dargestellt, und INT STAT ist beendet, wie durch das Oval G dargestellt.
- Nach dem Schritt zur Ausführung einer Endkontrolle auf Redundanzen kann ein Nachabtastungs- Filter angewandt werden, das unter Anwendung strengerer Kriterien, die im Treiber enthalten sind, eine Endbeurteilung ausführt.
- Nach der dritten Ausführungsform der vorliegenden Erfindung wird ein Bildanalysesystem zur Identifikation redundanter Identifikationen eines Objekts in einem Bild bereitgestellt. Ein Blockdiagramm des Systems nach der dritten Ausführungsform der vorliegenden Erfindung ist in Fig. 40 dargestellt. Ein System zur Auflösung redundanter Identifikationen eines Objekts in einem Bild ist allgemein bei 10' in Fig. 40 dargestellt.
- Das System nach der dritten Ausführungsform der Erfindung weist eine Einrichtung zum Erzeugen eines Bildes des Objekts und eines Hintergrunds auf. Wie in Fig. 40 dargestellt, weist die Einrichtung zum Erzeugen eines. Bildes des Objekts und des Hintergrunds eine Kamera 12' auf. Bei der vorliegenden Erfindung wird zwar im allgemeinen eine CCD-Kamera verwendet, aber, wie oben festgestellt, kann jeder beliebige Kameratyp eingesetzt werden, ohne von den allgemeinen Grundgedanken der vorliegenden Erfindung abzuweichen.
- Das erfindungsgemäße System weist außerdem eine Einrichtung zum Digitalisieren und Speichern des Bildes auf. Die Einrichtung zum Digitalisieren und Speichern des Bildes weist einen Bildabtaster 14' auf, wie in Fig. 40 dargestellt. Ebenso wie in den obigen ersten und zweiten Ausführungsformen digitalisiert und speichert der Bildabtaster das Videobild in einem Rahmen.
- Als Alternative weist die Einrichtung zum Digitalisieren und Speichern des Bildes einen Videodigitalisierer auf, der das Bild gleichfalls digitalisiert und speichert, obwohl nicht unbedingt in einem Rahmen. Das erfindungsgemäße System weist ferner eine Einrichtung zur Sichtanzeige des Bildes auf. Die Einrichtung zur Sichtanzeige des Bildes weist einen Monitor 16' auf, wie in Fig. 40 dargestellt.
- Das System nach der dritten Ausführungsform der Erfindung weist außerdem eine Computereinrichtung auf. Die Computereinrichtung weist ein Computersystem 18' auf, wie in Fig. 40 dargestellt. Das Computersystem umfaßt eine Zentraleinheit (CPU) und einen Speicher. Die Computereinrichtung umfaßt außerdem einen Treiber 20', einen Kern 22' und ein Nachabtastungs-Filter 26', wie in Fig. 40 dargestellt. Der Treiber 20' speichert die Definition des gültigen Objekts. Der entropische Kern 22' erzeugt ein Graustufenhistogramm des Bildes und wählt entropisch einen Graustufenschwellwert so aus, daß die Entropiefunktion des Histogramms maximiert wird. Der entropische Kern 22' durchsucht außerdem das Bild nach mindestens einem Anwärterobjekt und bestätigt das Anwärterobjekt, das den vorgegebenen Attributwert für das gültige Objekt aufweist, um das gültige Objekt zu identifizieren. Die Bestätigung im Kern schließt die Redundanzkontrolle ein, wie oben in bezug auf die Fig. 34-39 beschrieben. Die bestätigten Objekte werden durch den Kasten 24' in Fig. 40 dargestellt. Der Treiber und der Kern können im Speicher enthaltene Software aufweisen. Als Alternative können der Treiber und der Kern in einen programmierbaren Festwertspeicher (PROM) einprogrammiert werden, von wo die Software aufgerufen werden kann. Das Nachabtastungs-Filter ist bei 26' in Fig. 40 dargestellt und führt eine weitere Bestätigung aus, nachdem die redundanten Objekte gelöscht worden sind.
- Das Verfahren nach der vierten Ausführungsform ist in der Konzeption dem bei der ersten Ausführungsform beschriebenen Verfahren ähnlich, mit bestimmten Unterschieden in der Architektur des Verfahrens. In Fig. 41 sind die Gesamtschritte eines Moduls LOCATE (LOKALISIEREN) dargestellt, der den Schirmmodul für das Lokalisieren und Auflösen redundanter Identifikationen eines Objekts in einem Bild darstellt. LOCATE beginnt, wie im Oval A in Fig. 41 gezeigt, und initialisiert die Eingabe, wie im Block B dargestellt. Wie im Block C gezeigt, führt der Modul LOCATE dann einen Modul IDENT aus, der den Hauptmodul zur Identifikation redundanter Objekte bildet, wie weiter unten in bezug auf Fig. 44 beschrieben wird. Wie im Block D dargestellt, führt der Modul LOCATE dann einen Modul CONTAIN aus, wie weiter unten in bezug auf Fig. 48 beschrieben wird, der die Schritte der Enthaltensein-Prüfung ausführt, ähnlich den beiden Schritten der Enthaltensein-Prüfung, die weiter oben in bezug auf die Fig. 5 bzw. 12 beschrieben wurden. Der Modul LOCATE führt dann eine Ausgabe, wie weiter unten in bezug auf Fig. 59 beschrieben, und die im Block F dargestellte Bereinigung aus.
- Eine bevorzugte Implementierung der vierten Ausführungsform wird nachstehend anhand von Fig. 42 erläutert, wobei zur leichteren Veranschaulichung die Redundanzbestimmung auf dem charakteristischen Wert der Größe basiert, d. h. darauf, ob ein kleineres Objekt in einem größeren Objekt enthalten ist. So ist in Fig. 42 links von dem Objekt das nächstkleinere Objekt dargestellt. Umgekehrt ist in Fig. 42 rechts von dem Objekt das nächstgrößere Objekt dargestellt. Außerdem sind bei dem Redundanzbestimmungsschema nach der vierten Ausführungsform Objekte auf der Basis des Enthaltenseins entweder als "Mutterobjekt" oder als "Tochterobjekt" miteinander verbunden. Das heißt, ein Objekt enthält sein Tochterobjekt oder seine Tochterobjekte und ist in seinem Mutterobjekt enthalten. Folglich ist in Fig. 42 über dem Objekt das Mutterobjekt dargestellt, und unter dem Objekt in Fig. 42 ist das Tochterobjekt, oder sind die Tochterobjekte, des Objekts dargestellt.
- Zur Identifikation der Gruppe möglicherweise redundanter Objekte wird ein Modul IDENT ausgeführt, wie in bezug auf Fig. 43 beschrieben. Der Modul IDENT beginnt, wie im Oval A von Fig. 43 gezeigt, und definiert dann mindestens ein Schwellwertpaar, wie im Block B dargestellt. Dies erfolgt unter Anwendung des Verfahrens der "doppelten Schwellwertbestimmung", das weiter unten und besonders in bezug auf Fig. 44 beschrieben wird. Dann wird ein Schwellwertpaar ausgewählt, wie im Block C von Fig. 43 dargestellt. Der Modul IDENT sucht dann Objekte unter Verwendung des ausgewählten Paares von Graustufenschwellwerten. Dies kann durch Module ausgeführt werden, die den Modulen SEARCH IMAGE, FIND OBJECT und TRACE OBJECT ähnlich sind, wie weiter oben in bezug auf die Fig. 25- 27 beschrieben, und kann insbesondere rekursiv ausgeführt werden, wie in bezug auf die Fig. 28A- 28C und Fig. 29 beschrieben. Zu beachten ist, daß in der vierten Ausführungsform das in Fig. 28A dargestellte Graustufenhistogramm zunächst zwischen A, THRESH HI und B, THRESH LO durchsucht wird, um Anwärterobjekte zu identifizieren, die unter Umständen diesen Graustufenraum überspannen. Im Entscheidungsblock E in Fig. 43 wird dann gefragt, ob IDENT beim letzten Schwellwertpaar angelangt ist. Wenn ja, dann wird der Modul beendet, wie im Oval F angegeben. Wenn nein, dann geht der Modul IDENT zurück zum Block C, und die Schleife über C-E wird der Reihe nach für jedes weitere Schwellwertpaar fortgesetzt, bis der Modul beendet ist, wie im Oval F dargestellt.
- Das Verfahren der entropischen Schwellwertbestimmung, das zur Identifikation gültiger Objekte verwendet wird, wie oben in bezug auf die ersten bis dritten Ausführungsformen beschrieben, ist insofern ideal, als es die im Bild enthaltene Information benutzt, um auf optimale Weise alle Objekte zu finden. Dieses Verfahren führt jedoch dazu, daß viele nicht erwünschte Objekte - d. h. Artefakte - gefunden werden. Oft übersteigt die Anzahl der Artefakte die Anzahl von erwünschten Objekten um eine Größenordnung. Bei diesem Verfahren sind viele a-priori-Informationen verfügbar, werden aber nicht benutzt. Nach Ausführung des oben beschriebenen Verfahrens zur Identifikation gültiger Objekte über eine bestimmte Zeit erhält man Informationen über die zuvor verarbeitete Gruppe von Bildern. Daher ist ein Verfahren, das diese Informationen nutzt, besonders gut für ein Bild verwendbar, über das man keine a-priori-Information besitzt. Mit einem solchen Verfahren läßt sich feststellen, welche Bedingungen zu erwünschten Objekten führen und welche zu anderen, unerwünschten Objekten führen, wie z. B. bei der Optimierung von Bedingungen für die Ausführung der Lokalisierungsfunktion, wie sie vom Modul LOCATE ausgeführt wird, wie oben in bezug auf Fig. 41 beschrieben. Das bei der vierten Ausführungsform implementierte Verfahren der doppelten Schwellwertbestimmung verwendet die entropische Schwellwertbestimmung und erzeugt eine Liste von festen Schwellwerten, aus der auf der Grundlage der a-priori-Informationen, die man aus früher verarbeiteten Bildern erhält, ein gewünschtes Schwellwertpaar auszuwählen ist.
- So ist bei einer bevorzugten Implementierung der vierten Ausführungsform der mehrdimensionale Datenraum ein Graustufenhistogramm, welches das gesamte Bild darstellt. Aus dem Histogramm werden mehrere obere und untere Histogramme erzeugt, die jeweils eine entsprechende Entropiefunktion aufweisen. Der mindestens eine Unterraum besteht aus mehreren Paaren von Graustufenschwellwerten für jedes obere und untere Histogramm. Ein Paar von Graustufenschwellwerten wird so ausgewählt, daß die Entropiefunktion jedes oberen und unteren Histogramms maximiert wird. Das Bild wird unter Verwendung des ausgewählten Paares von Graustufenschwellwerten für jedes obere und untere Histogramm mehrfach nach mindestens einem Anwärterobjekt durchsucht.
- Kurz gesagt, verarbeitet das Verfahren der doppelten Schwellwertbestimmung eine Menge von Bildern, wobei das zum Auffinden jedes Objekts verwendete Schwellwertpaar verfolgt wird. Diese Daten dienen dazu, das zur Ermittlung jeder Objektspur verwendete Schwellwertpaar mit der Klassifikation von Objekten als erwünscht oder nicht erwünscht zu korrelieren. Für jedes Schwellwertpaar ermittelt das Verfahren der doppelten Schwellwertbestimmung, ob die meisten aufgefundenen Objekte zu einer erwünschten oder einer nicht erwünschten Klasse gehören. Das Verfahren der doppelten Schwellwertbestimmung konstruiert dann eine Liste von Schwellwertpaaren, die bevorzugt erwünschte Objekte identifizieren. Diese neue Schwellwertliste wird dann in Zukunft zur Identifikation von Objekten und zur Auflösung von Redundanzen derartiger Objekte in anderen Bilder verwendet. Es kann wünschenswert sein, eine Menge von Schwellwertpaaren für die Verarbeitung des Bildes festzusetzen, um möglichst viele erwünschte Objekte und möglichst wenige unerwünschte Objekte zu ermitteln. Dazu können verschiedene Verfahren angewandt werden, zu denen gehören: binäre Unterteilung des Graustufenraums; Verwendung einer Menge von Schwellwertpaaren, die aus einem repräsentativen Bild entropisch bestimmt werden; oder Konstruktion eines kombinierten Histogramms aus einer Menge von Bildern und entropische Bestimmung der Menge (von Schwellwertpaaren) aus diesem kombinierten Histogramm, wie z. B. in Fig. 44 dargestellt.
- Fig. 44 zeigt ein Ablaufdiagramm, das die Schritte des Verfahrens der doppelten Schwellwertbestimmung darstellt. Wie im Block A von Fig. 44 dargestellt, wird ein kombiniertes Histogramm für alle "Trainingsbilder" erzeugt. Die Trainingsbildmenge umfaßt eine Menge von Bildern, die repräsentativ für Bilder sind, für welche die Anwendung dieses Verfahrens gewünscht wird. Diese Bilder müssen markiert werden. Das kombinierte Histogramm kann dann verarbeitet werden, wie oben in bezug auf die Fig. 28A-28C beschrieben, außer daß, wie oben in bezug auf die vierte Ausführungsform festgestellt, das Graustufenhistogramm zunächst zwischen A, THRESH LO und B, THRESH HI durchsucht wird, um Anwärterobjekte zu identifizieren, die diesen Graustufenraum überspannen können. Die Verarbeitung des kombinierten Histogramms ist im Block B dargestellt, wobei eine Liste von Schwellwertpaaren aus dem kombinierten Histogramm erzeugt wird. Dies könnte z. B. mit Hilfe der entropischen Schwellwertbestimmung erfolgen, obwohl, wie oben festgestellt, auch andere Verfahren zur Bestimmung der Menge von Schwellwertpaaren angewandt werden können. Dann werden die Trainingsbilder verarbeitet - d. h. nach Anwärterobjekten durchsucht, wobei die erzeugte Schwellwertpaarliste benutzt wird, um eine Objektliste zu erhalten, wie im Block C dargestellt. Die Liste enthält das Schwellwertpaar, das die Objektspur erzeugt. Die Objekte werden dann mit Kategoriemarken verglichen, die Bild für Bild zur Identifikation von gewünschten Objekten benutzt werden, wie im Block D dargestellt. Jedes. Bild weist seine eigene Liste aus Block C auf. Jedes Bild wird in Block D verglichen. Diese Objektlisten werden dann zusammengefaßt, wie im Block E dargestellt. Dann wird die Anzahl der mit jedem Schwellwertpaar gefundenen erwünschten und nicht erwünschten Objekte gezählt, wie gleichfalls im Block E dargestellt. Die erwünschten Schwellwertpaare werden ausgewählt, um eine reduzierte Liste von Schwellwertpaaren zu erzeugen, wie im Block F dargestellt. Wie im Block G dargestellt, wird die reduzierte Liste von Schwellwertpaaren dann verwendet, um "Testbilder" zur Bestätigung der tatsächlichen Leistung oder neue Bilder zu verarbeiten, für die eine Objektklassifizierung gewünscht wird. Die Testbildmenge umfaßt wiederum Bilder, die repräsentativ für Bilder sind, für welche die Anwendung dieses Verfahrens wünschenswert ist, die aber nicht in der Trainingsbildmenge enthalten sind. Die Testbilder sollten manuell gezählt werden, um die Beurteilung der Genauigkeit dieses Verfahrens zu unterstützen.
- Fig. 45 zeigt ein Ablaufdiagramm eines als IDENT bezeichneten Moduls, der unter Verwendung eines gegebenen Schwellwertpaars Objekte sucht. Wie oben festgestellt, schließt der Suchteilschritt den Teilschritt zum Abtasten des Bildes nach mindestens einem Objekt unter Verwendung des Graustufenschwellwerts ein. Genauer gesagt, der abgetastete Bildabschnitt weist mehrere Pixel auf, und jedes Pixel weist einen Graustufenwert auf, der kleiner ist als die Summe aus dem oberen Begrenzer und einem Inkrement, wie oben in bezug auf die erste bis dritte Ausführungsform beschrieben. In der vierten Ausführungsform wird dieses Inkrement auf null gesetzt. Dieser Abtastungsteilschritt ist im Block B in Fig. 45 dargestellt. Präzise gesagt, nach dem Start des Moduls, wie im Block A gezeigt, wird das maskierte Bild d. h. ein Bild, das beschnitten worden ist, damit bestimmte Abschnitte des Bilds nicht verarbeitet zu werden brauchen - wird nach dem nächsten Pixel innerhalb eines Schwellwertpaarbereichs abgetastet. Im Entscheidungsblock C von Fig. 45 wird gefragt, ob das nächste Pixel innerhalb des Schwellwertpaarbereichs gefunden ist. Wenn ja, dann wird der Modul beendet, wie im Oval D gezeigt. Wenn innerhalb eines Schwellwertpaarbereichs das nächste Pixel gefunden wird, dann wird das Objekt verfolgt, ausgehend dem gefundenen Pixel, wie im Block E dargestellt. Im Entscheidungsblock F wird gefragt, ob ein gültiges Objekt verfolgt worden ist. Wenn ein gültiges Objekt verfolgt worden ist, dann wird es an eine "aktive Liste" angefügt, d. h. an eine Liste gültiger Objekte, die nach der Größe sortiert sind, wie im Block G dargestellt. Das verfolgte Objekt wird dann als in keinem anderen Objekt enthalten markiert, wie im Block H dargestellt, und der Modul springt zum Block B zurück. Auch wenn im Entscheidungsblock F ein ungültiges Objekt verfolgt worden ist, springt der Modul zum Block B zurück. Die Schleife über B-C und E-H läuft so lange weiter, bis kein nächstes Pixel gefunden wird, zu welchem Zeitpunkt der Modul beendet ist, wie im Oval D angegeben. Wie oben in bezug auf Block D in Fig. 43 diskutiert, findet der Modul IDENT Objekte unter Verwendung des ausgewählten Schwellwertpaars. Dies kann rekursiv auf ähnliche Weise erfolgen, wie oben in bezug auf die Fig. 28A-28C beschrieben, außer daß, wie oben festgestellt, das Graustufenhistogramm in der vierten Ausführungsform zunächst zwischen A und B durchsucht wird.
- In der vierten Ausführungsform werden bestimmte Kriterien angewandt, um festzustellen, ob ein gültiges Objekt verfolgt worden ist. Die Anzahl der Umfangspixel muß kleiner als ein maximaler Grenzwert sein. Das Objekt muß in Uhrzeigerrichtung verfolgt worden sein. Ferner muß die Objektfläche größer als ein minimaler Grenzwert sein. Der Formfaktor muß kleiner als ein maximaler Grenzwert sein. Außerdem muß der "Mittelpunkt" des Objekts ein innerer Punkt des Objekts sein. Zu beachten ist, daß der Mittelpunkt des Objekts, der weiter oben in Verbindung mit der ersten Ausführungsform berechnet wurde, verschoben werden kann, um ihn zu einem inneren Punkt zu machen. Die Implementierung der Redundanzkontrolle nach der vierten Ausführungsform erfordert einen inneren Punkt. Da der Mittelpunkt normalerweise ein innerer Punkt ist und für keinen anderen Zweck benötigt wird, wird er als dieser innere Punkt verwendet. Ist er kein innerer Punkt, dann wird er verschoben, um ihn dazu zu machen. Folglich ist der "Mittelpunkt" des Objekts in der Tat kein Mittelpunkt, soweit er ein innerer Punkt ist.
- Wie oben festgestellt, zeigt in einer bevorzugten Implementierung der vierten Ausführungsform der charakteristische Wert die Größe an, so daß das erste Objekt in der Liste das kleinste Objekt und das letzte Objekt in der Liste das größte Objekt ist. In der vierten Ausführungsform wird der Sortierschritt im Zusammenhang mit dem Auffinden eines gültigen Objekts ausgeführt, wobei ein gegebenes Schwellwertpaar verwendet wird, wie in Fig. 45 dargestellt. Insbesondere werden, wie im Block G von Fig. 45 angegeben, die verfolgten gültigen Objekte in der Reihenfolge ihrer Größe zu der aktiven Liste hinzugefügt. Die aktive Liste verfolgter gültiger Objekte nach der Ausführung von IDENT ist in Fig. 46 dargestellt. Das Objekt A in Fig. 46 ist das kleinste Objekt, und das Objekt Z ist das größte. Links in Fig. 46 bezeichnet "SA" das kleinste Objekt. Rechts in Fig. 46 bezeichnet "LA" das größte Objekt.
- Der Modul CONTAIN (ENTHALTENSEIN), wie in bezug auf Fig. 27 beschrieben, führt die Enthaltensein-Prüfung gemäß der vierten Ausführungsform aus. Nach dem Start, wie im Oval A von Fig. 47 dargestellt, ruft CONTAIN drei Module auf. Wie im Block B gezeigt, ruft CONTAIN zuerst den Modul LINK FAMILY (FAMILIE VERBINDEN) auf, der weiter unten in bezug auf Fig. 49 beschrieben wird. LINK FAMILY führt die Enthaltensein-Prüfung aus, die zur Erzeugung einer Liste aller Objekte und der Familienbeziehung jedes Objekts zu den anderen Objekten führt (d. h. ob die Objekte ein Mutterobjekt oder ein Tochterobjekt sind), wie oben in bezug auf Fig. 42 diskutiert. Wie im Block C von Fig. 47 dargestellt ruft CONTAIN dann den Modul HETEROGENEOUS DECLUMP (HETEROGENES OBJEKT ENTKLUMPEN) auf, der weiter unten in bezug auf Fig. 53 beschrieben wird. Der Modul HETEROGENEOUS DECLUMP kontrolliert jedes Objekt auf unabhängige Objekte. Ein Objekt wird als unabhängig angesehen, wenn sich seine Eigenschaften von denen seines Mutterobjekts um einen vorgegebenen Grad unterscheiden. Dann ruft CONTAIN, wie im Block D von Fig. 47 gezeigt, den Modul REMOVE REDUNDANCIES (REDUNDANZEN ENTFERNEN) auf, der weiter unten in bezug auf Fig. 46 beschrieben wird. Der Modul REMOVE REDUNDANCIES identifiziert redundante Exemplare eines Objekts unter Verwendung verschiedener Objektgenerationen. Zu beachten ist, daß hierin zwar der Fall eines Mutterobjekts mit einem Tochterobjekt in Verbindung mit Fig. 56 beschrieben wird, daß aber der Modul REMOVE REDUNDANCIES auch Redundanzen für ein Mutterobjekt mit mehr als einem Tochterobjekt und für ein Objekt ohne Tochterobjekte entfernen kann. In der bevorzugten Implementierung der vierten Ausführungsform wird das Objekt mit dem größten Randkontrast aus jeder Menge von Objektexemplaren beibehalten, wie weiter unten in Verbindung mit Fig. 58C erläutert.
- Der erste Schritt von LINK FAMILY, wie in Fig. 49 dargestellt, ist "Start", wie im Oval A gezeigt, und dann wird angenommen, daß das Mutterobjekt das kleinste Objekt aus der aktiven Liste ist, das nicht bereits als Mutterobjekt ausgewählt ist, wie im Block B dargestellt. Wie im Block C von Fig. 49 dargestellt, setzt LINK FAMILY dann "Test" als das größte Objekt an, das kleiner ist als das Mutterobjekt und nicht bereits als Testobjekt für dieses Mutterobjekt ausgewählt wurde. Im Entscheidungsblock D wird gefragt, ob "Test" in irgendeinem anderen Objekt enthalten ist. Wenn ja, dann geht LINK FAMILY zu dem weiter unten beschriebenem Entscheidungsblock H über. Ist "Test" in keinem anderen Objekt enthalten, dann wird im Entscheidungsblock E gefragt, ob das Mutterobjekt "Test" enthält. Wenn nicht, dann geht LINK FAMILY zu dem weiter unten beschriebenen Entscheidungsblock H über. Wenn im Entscheidungsblock E das Mutterobjekt "Test" enthält, dann fügt LINK FAMILY "Test" als Tochterobjekt zu dem Mutterobjekt hinzu, wie im Block F dargestellt, und "Test" wird als in einem anderen Objekt enthalten markiert, wie im Block G dargestellt. Im Entscheidungsblock H wird gefragt, ob "Test" das letzte Objekt ist, das kleiner als das Mutterobjekt ist. Wenn nicht, dann läuft die Schleife über C-H so lange weiter, bis "Test" das letzte Objekt ist, das kleiner ist als das Mutterobjekt. Dann wird im Entscheidungsblock I gefragt, ob das Mutterobjekt das größte Objekt in der aktiven Liste ist. Wenn nicht, dann läuft die Schleife über B-I so lange weiter, bis das Mutterobjekt das größte Objekt in der aktiven Liste ist. Dann werden alle Objekte, die in einem anderen Objekt enthalten sind, aus der aktiven Liste entfernt; wie im Block J dargestellt, und der Modul wird beendet, wie im Oval K von Fig. 49 angegeben.
- Fig. 48 zeigt eine Schemazeichnung eines Objekts, die den ersten Schritt der Enthaltensein- Prüfung oder den leistungsfähigeren "Doppelrahmentest" darstellt, wie er bei der vierten Ausführungsform der vorliegenden Erfindung angewandt wird. Dieser Rahmentest ist dem bei der ersten Ausführungsform der vorliegenden Erfindung ausgeführten Rahmentest ähnlich. Der Rahmentest nach der vierten Ausführungsform ist jedoch in Wirklichkeit ein "Doppelrahmentest", da ebenso wie um das größere Objekt auch um das kleinere, enthaltene Objekt k ein hypothetischer Rahmen gezeichnet wird, wie z. B. ein gestrichelter Rahmen Xk. Dieser Rahmen dient nur dazu, die vier Extremalpunkte des kleineren Objekts k darzustellen. Der Vorteil des Doppelrahmentests ist, daß er mehr Objekte als der einfache Rahmentest als nicht in einem anderen Objekt enthalten bestimmen kann, und daß folglich die vollständige Enthaltensein- Prüfung weniger häufig ausgeführt zu werden braucht. Der Doppelrahmentest wird ausgeführt, wie in den Blöcken B und D von Fig. 51 dargestellt.
- In Fig. 48 sind ein Objekt l und ein Objekt k identifiziert worden, wobei das Objekt l größer als das Objekt k ist. Entsprechend dem Verfahren nach der vierten Ausführungsform schließt der Schritt zur Feststellung, ob jedes kleinere Objekt in jedem größeren Objekt enthalten ist, den Teilschritt zur Bestimmung der vier Extremalpunkte des größeren Objekts ein. Wie in Fig. 48 dargestellt, werden für das Objekt l vier Extremalpunkte Ll, Tl, Rl und Bl bestimmt. In der vierten Ausführungsform werden die vier Extremalpunkte durch einen ähnlichen Modul wie TRACE OBJECT bestimmt, der weiter oben in bezug auf die Fig. 27A-27B beschrieben wurde. Jeder Extremalpunkt weist einen Zeilenpositions- Koordinatenwert und einen Spaltenpositions-Koordinatenwert auf, die weiter oben in bezug auf die Fig. 7-10 beschrieben wurden. Der Bestimmungsschritt umfaßt ferner die Teilschritte zur Konstruktion eines das größere Objekt umrandenden Rechtecks unter Verwendung der Zeilenpositions-Koordinatenwerte und der Spaltenpositions-Koordinatenwerte der vier Extremalpunkte. Das Rechteck Xl, wie in Fig. 48 dargestellt, wird für das Objekt 1 unter Verwendung der Zeilenpositions-Koordinatenwerte und der Spaltenpositions-Koordinatenwerte der vier Extremalpunkte Ll, Tl, Rl und Bl konstruiert. Ebenso wie in der ersten Ausführungsform umfaßt der Bestimmungsschritt ferner die Teilschritte zur Bestimmung eines vorgegebenen Punkts auf dem kleineren Objekt. Der vorgegebene Punkt weist einen Zeilenpositions- Koordinatenwert und einen Spaltenpositions-Koordinatenwert auf, die man auf ähnliche Weise erhält, wie oben in der ersten Ausführungsform beschrieben. Der Bestimmungsschritt umfaßt ferner die Teilschritte zur Bestimmung der Position eines vorgegebenen Punkts des kleineren Objekts in bezug auf das Rechteck, welches das größere Objekt umrandet. Bei der Durchführung des Doppelrahmentests werden für das Objekt k die vier Extremalpunkte Lk, Tk, Rk und Bk bestimmt und mit dem entsprechenden Extremalpunkten des größeren Objekts verglichen, wodurch ermittelt wird, ob die Extremalpunkte des kleineren Objekts in dem Rechteck Xl enthalten sind. Um das Objekt k herum wird unter Verwendung der Extremalpunkte ein Rechteck Xk konstruiert, lediglich zur Veranschaulichung der Extremalpunkte. In einer bevorzugten Implementierung der vierten Ausführungsform ist der vorgegebene Punkt der Massenmittelpunkt. Der vorgegebene Punkt kann jedoch ein beliebiger Punkt auf dem kleineren Objekt sein.
- Wie oben festgestellt, braucht wegen der Anwendung des Doppelrahmentests die vollständige Enthaltensein-Prüfung weniger häufig ausgeführt zu werden. Es gibt jedoch Fälle, wo ein Objekt den Doppelrahmentest bestehen kann, aber die vollständige Enthaltensein-Prüfung unter Umständen nicht besteht. In solchen Fällen ist die Ausführung der vollständigen Enthaltensein-Prüfung nützlich. Fig. 50 zeigt eine Schemazeichnung eines Objekts, welche die vollständige Enthaltensein-Prüfung darstellt, die in der vierten Ausführungsform durch den Modul CONTAIN ausgeführt wird. Die vollständige Enthaltensein- Prüfung wird nur dann angewandt, wenn man feststellt, daß ein Objekt, wie z. B. das Objekt o in Fig. 50, innerhalb des rechteckigen Rahmens liegt. Ebenso wie bei der ersten Ausführungsform ist die weniger häufige Anwendung der vollständigen Enthaltensein-Prüfung weniger rechenintensiv und ermöglicht die Ausführung der Redundanzbestimmung mit höherer Geschwindigkeit. Die vollständige Enthaltensein- Prüfung nach der vierten Ausführungsform kann auf alle identifizierten Objekte angewandt werden, ohne zuerst den Rahmentest anzuwenden. Bei der Anwendung der vollständigen Enthaltensein-Prüfung dient jedoch der Rahmentest als Anfangsprüfung bzw. Vorauswahl für die Enthaltensein-Prüfung. Die vollständige Enthaltensein-Prüfung wird durch den Block H von Fig. 51 ausgeführt.
- In Fig. 50 werden die Objekte m, n und o identifiziert. Es wird festgestellt, daß die Extremalpunkte Ln, Tn, Rn und Bn des Objekts n und die Extremalpunkte Lo, To, Ro und Bo des Objekts o alle innerhalb der Grenze Xm liegen. Nach Anwendung der vollständigen Enthaltensein-Prüfung wird festgestellt, daß die Extremalpunkte des Objekts n Spaltenpositions-Koordinatenwerte und Zeilenpositions-Koordinatenwerte aufweisen, die zwischen den Spaltenpositions-Koordinatenwerten und den Zeilenpositions- Koordinatenwerten der Umfangspunkte des Objekts m liegen. Es wird festgestellt, daß das Objekt n in dem Objekt m enthalten ist. Das Objekt n ist ein einzelnes, kleineres Objekt, das im Objekt m enthalten ist, und kann später gelöscht, d. h. nicht beibehalten werden, wenn bestimmte Kriterien erfüllt sind. Bei Anwendung der vollständigen Enthaltensein-Prüfung weisen die Extremalpunkte des Objekts o keine Spaltenpositions- Koordinatenwerte und Zeilenpositions-Koordinatenwerte auf, die zwischen den Spaltenpositions- Koordinatenwerten und den Zeilenpositions-Koordinatenwerten der Umfangspunkte des Objekts m liegen. Es wird daher festgestellt, daß das Objekt o nicht im Objekt m enthalten ist. Das Objekt o ist weder ein Mutterobjekt noch ein Tochterobjekt des Objekts m und wird daher beibehalten.
- Der in den Fig. 48 und 50 dargestellte Doppelrahmentest wird durch den Modul CONTAIN TEST (ENTHALTENSEIN-TEST) ausgeführt, dessen Schritte in Fig. 51 dargestellt sind. Der Modul CONTAIN TEST wird durch den Modul LINK FAMILY aufgerufen, wie im Block D von Fig. 49 dargestellt. Der Modul CONTAIN TEST stellt fest, ob ein Objekt in einem anderen Objekt enthalten ist. Wie im Oval A von Fig. 41 dargestellt, startet CONTAIN TEST und führt dann den Doppelrahmentest aus, wie im Block B dargestellt. Im Entscheidungsblock C wird gefragt, ob das gerade getestete Objekt den Test besteht. Wenn nicht, dann enthält das Mutterobjekt das Testobjekt nicht, wie im Block D dargestellt, und der Modul CONTAIN TEST ist beendet, wie im Oval E angegeben. Wenn im Entscheidungsblock C das Objekt den Doppelrahmentest besteht, wie im Block B dargestellt, dann wird ein Spur-Enthaltensein-Test ausgeführt, wie im Block F dargestellt. Im Entscheidungsblock G wird dann gefragt, ob das gerade getestete Objekt den Test besteht. Wenn ja, dann wird im Block H angezeigt, daß das Mutterobjekt das Testobjekt enthält. Wenn das gerade getestete Objekt den Test nicht besteht, dann wird im Block D angezeigt, daß das Mutterobjekt das Testobjekt nicht enthält. Nach der Feststellung, daß das Mutterobjekt das Testobjekt enthält oder nicht enthält, wird der Modul CONTAIN TEST beendet, wie im Oval E angegeben.
- Der Klarheit halber wird nachstehend der Modul LINK FAMILY unter Bezugnahme aus die Fig. 52A-52E erläutert. Fig. 52A zeigt eine aktive Liste von Objekten A, B, C, D, E und F, die nach der Größe sortiert sind, wobei A das kleinste Objekt in der Liste und F das größte Objekt in der Liste ist. Anfänglich werden alle Objekte in der aktiven Liste als Mutterobjekte angesehen. Jedes Mutterobjekt in der aktiven Liste wird mit jedem anderen Objekt verglichen, um festzustellen, ob jedes kleinere Objekt in einem größeren Objekt enthalten ist, d. h. ob das kleinere Objekt ein Mutterobjekt besitzt. Dieser Enthaltensein-Test wird durch den Modul CONTAIN TEST (ENTHALTENSEIN-TEST) ausgeführt, wie in Fig. 51. dargestellt. Wenn Festgestellt wird, daß ein kleineres Objekt in einem größeren Objekt enthalten ist, dann wird das kleinere Objekt als Tochterobjekt bezeichnet. Das größere Objekt wird als Mutterobjekt bezeichnet.
- Der Enthaltensein-Test beginnt mit dem kleinsten Objekt in der aktiven Liste, in dieser Darstellung mit dem Objekt A, und bewegt sich zu jedem nächstgrößeren Mutterobjekt. Wenn man das Objekt A betrachtet, gibt es keine kleineren Objekte, die mit ihm zu vergleichen sind, und daher wird A als Mutterobjekt in der aktiven Liste beibehalten. Bei der Betrachtung des Objekts B wird die Frage gestellt, ob das kleinere Objekt A in dem Objekt B enthalten ist. Für die Zwecke dieser Erläuterung stellt der Modul CONTAIN TEST fest, daß das Objekt A nicht im Objekt B enthalten ist, und daher sind die Objekte A und B Mutterobjekte.
- Fig. 52B zeigt die Familienverknüpfungsbeziehung, nach dem die Objekte C und D in der aktiven Liste in bezug auf die kleineren Objekte B und A betrachtet worden sind. Beim Betrachten des Objekts C wird, da das kleinere Objekt B einen aktuellen Mutterobjekt = Zustand einnimmt, der Enthaltensein-Test ausgeführt. Wie hier erläutert, stellt der Modul CONTAIN TEST fest, daß das Objekt B in dem Objekt C enthalten ist, und das Objekt B erhält den Status eines Tochterobjekts. In Fig. 52B ist eine untergeordnete Verknüpfung des Objekts B zum Objekt C dargestellt, während die direkte Verknüpfung zu der aktiven Liste beibehalten wird. Da das kleinere Objekt A den aktuellen Status eines Mutterobjekts besitzt, wird auch getestet, ob das Objekt A indem Objekt C enthalten ist. Der Enthaltensein-Test zeigt, daß das Objekt A nicht im Objekt C enthalten ist, und das Objekt A ist ein Mutterobjekt und bleibt in der aktiven Liste.
- Bei der Betrachtung des Objekts D wird, da das kleinere Objekt C den aktuellen Status eines Mutterobjekts hat, der Enthaltensein-Test ausgeführt. Wie hier dargestellt, stellt der Modul CONTAIN TEST fest, daß das Objekt C nicht in dem Objekt D enthalten ist. Das Objekt C behält seinen Status als Mutterobjekt in der aktiven Liste. Da das kleinere Objekt B den aktuellen Status eines Tochterobjekts hat, wird ein Enthaltensein-Test bezüglich des Objekts D nicht durchgeführt. Da das kleinere Objekt A den aktuellen Status eines Mutterobjekts hat, wird der Enthaltensein-Test bezüglich des Objekts D durchgeführt. Wie hier dargestellt, stellt CONTAIN TEST fest, daß das Objekt A nicht in dem Objekt D enthalten ist, und folglich ist das Objekt A ein Mutterobjekt und bleibt in der aktiven Liste. In Fig. 52B sind die Objekte E und F noch nicht betrachtet worden und behalten ihren initialisierten Status eines Mutterobjekts bei.
- Fig. 52C zeigt die Familienverknüpfungsbeziehung, nach dem das Objekt E bezüglich des kleineren Objekts D betrachtet worden ist. Bei der Betrachtung des Objekts E wird, da das kleinere Objekt D den aktuellen Status eines Mutterobjekts hat, die Enthaltensein-Prüfung durchgeführt. Wie hier dargestellt, stellt der Modul CONTAIN TEST fest, daß das Objekt D in dem Objekt E enthalten ist und das Objekt D ein Tochterobjekt ist. In Fig. 52C ist eine untergeordnete Verknüpfung des Objekts D zum Objekt E dargestellt, während die direkte Verknüpfung des Objekts D zur aktiven Liste beibehalten wird.
- Fig. 52D zeigt die Familienverknüpfungsbeziehung, nachdem das Objekt E in bezug auf die kleineren Objekte C und A betrachtet worden ist, und nachdem das Objekt F in bezug auf die kleineren Objekte E und A betrachtet worden ist. Da bei der Betrachtung des Objekts E festgestellt wird, daß das kleinere Objekt C den aktuellen Status eines Mutterobjekts hat, wird der Enthaltensein-Test ausgeführt. Wie hier erläutert, stellt der Modul CONTAIN TEST fest, daß das Objekt C in dem Objekt E enthalten ist und das Objekt C ein Tochterobjekt ist. In Fig. 52D ist eine untergeordnete Verknüpfung des Objekts C zum Objekt E dargestellt, während die direkte Verknüpfung des Objekts C in der aktiven Liste und die untergeordnete Verknüpfung des Objekts B zu seinem Mutterobjekt C beibehalten werden. Da das kleinere Objekt B den aktuellen Status eines Tochterobjekts hat, wird kein Enthaltensein-Test bezüglich des Objekts E ausgeführt. Da das kleinere Objekt A den aktuellen Status eines Mutterobjekts hat, wird der Test, ob das Objekt A in dem Objekt E enthalten ist, ausgeführt. Wie hier dargestellt, stellt der Modul CONTAIN TEST fest, daß das Objekt A nicht in dem Objekt E enthalten ist, und das Objekt A ist ein Mutterobjekt und bleibt in der aktiven Liste.
- Bei der Betrachtung des Objekts F wird, da das Objekt E den aktuellen Status eines Mutterobjekts hat, der Enthaltensein-Test ausgeführt. Wie hier erläutert, stellt der Modul CONTAIN TEST fest, daß das Objekt E nicht in dem Objekt F enthalten ist. Das Objekt E wird als Mutterobjekt in der aktiven Liste beibehalten, das untergeordnete Verknüpfungen zu allen seinen Tochterobjekten aufweist. Die Objekte D, C und B haben den aktuellen Status von Tochterobjekten, und es wird kein Enthaltensein-Test bezüglich F ausgeführt. Da das kleinere Objekt A den aktuellen Status eines Mutterobjekts hat, wird der Test, ob das Objekt A in dem Objekt F enthalten ist, ausgeführt. Wie hier dargestellt, stellt der Modul CONTAIN TEST fest, daß das Objekt A nicht in dem Objekt F enthalten ist und ein Mutterobjekt ist und in der aktiven Liste verbleibt.
- Fig. 52E zeigt die Familienverknüpfungsbeziehung der Objekte A, B, C, D, E und F bei Beendigung des Moduls LINK FAMILY, wobei die Objekte B, C und D aus der aktiven Liste entfernt sind, wie durch Entfernen ihrer direkten Verknüpfungen in dieser Darstellung gezeigt wird.
- In der vierten Ausführungsform kann eine Gleichartigkeitsprüfung ausgeführt werden, wie weiter oben für die erste Ausführungsform in bezug auf Fig. 18 erläutert. Nach dem Huckepack-Verfahren der vorliegenden Erfindung wird ein charakteristisches Attribut von mindestens einem vorgegebenen Punkt jedes zweiten Objekts bestimmt, das mit dem ersten Objekt redundant ist. Präzise gesagt, in der vierten Ausführungsform sind der mindestens eine vorgegebene Punkt die vier Extremalpunkte des kleineren o Objekts. Dieser Schritt ist in Fig. 47, Block C, dargestellt, der in dem Modul HETEROGENEOUS DECLUMP (HETEROGENES OBJEKT ENTKLUMPEN) entwickelt wird, wie in Fig. 53 dargestellt und weiter unten ausführlich diskutiert. Der Klarheit halber werden die Schritte von HETEROGENEOUS DECLUMP dargestellt, wobei das erste Objekt ein größeres Objekt und das zweite Objekt ein kleineres Objekt ist, wobei es sich versteht, daß Fälle auftreten können, wo das erste und das zweite Objekt auf andere Weise als durch räumliche Überlappung redundant sein können, wie oben festgestellt.
- In der bevorzugten Implementierung der vierten Ausführungsform wird für jeden inneren Punkt jedes ersten und zweiten Objekts ein mittleres charakteristisches Attribut bestimmt, wie oben in bezug auf die erste Ausführungsform diskutiert. Diese Implementierung, die mittlere charakteristische Attribute verwendet, liefert einen besseren Vergleich als die Implementierung des Huckepack-Verfahrens, die das charakteristische Attribut verwendet. Es wird dann dieses gleiche mittlere charakteristische Attribut für jeden inneren Punkt jedes ersten Objekts bestimmt. In der bevorzugten Implementierung ist das erste Objekt ein größeres Objekt, das zweite Objekt ist ein kleineres Objekt, und das mittlere charakteristische Attribut ist ein mittlerer innerer Farbton, d. h. der mittlere Farbton der inneren Punkte des größeres Objekts und des kleineren Objekts.
- Wenn für (größere) Mutterobjekte und (kleinere) Tochterobjekte, wie in bezug auf die vierte Ausführungsform erläutert, die folgende Beziehung gilt:
- p - c > Ht
- oder
- (ap - ac)² +(bp - bc)² > d²t
- mit:
- H - Farbton
- - Farbtonmittelwert
- a, b - R,G,B-Graustufenwerte in einem Farbbild
- p - bezieht sich auf ein Mutterobjekt
- c - bezieht sich auf ein Tochterobjekt
- d - bezieht sich auf einen vorgegebenen Abstand
- t - bezieht sich auf den Schwellwert für den vorgegebenen Abstand
- dann ist das Tochterobjekt heterogen - d. h. das Tochterobjekt unterscheidet sich von dem Mutterobjekt. In einer bevorzugten Implementierung der vierten Ausführungsform werden die inneren Punkte des größeren Objekts ausschließlich der inneren Punkte des kleineren Objekts bestimmt.
- Der Modul HETEROGENEOUS DECLUMP startet, wie im Oval A von Fig. 53 dargestellt. Dieser Modul stellt fest, ob ein Objekt ein heterogenes Tochterobjekt aufweist. Mit "heterogenes Tochterobjekt" ist gemeint, daß das Tochterobjekt von dem Mutterobjekt verschieden ist. Der Modul nimmt an, daß das Mutterobjekt das kleinste Objekt aus der aktiven Liste ist, das nicht bereits als Mutterobjekt ausgewählt worden ist. Im Entscheidungsblock C wird gefragt, ob das Objekt ein oder mehrere Tochterobjekte aufweist. Wenn ja, dann ruft der Modul HETEROGENEOUS DECLUMP den Modul SEPARATE HETEROGENEOUS CHILDREN (HETEROGENE TOCHTEROBJEKTE ABTRENNEN) auf, wie im Block D dargestellt. Dieser Modul wird weiter unten in bezug auf Fig. 54 beschrieben. Dann wird im Entscheidungsblock E gefragt, ob das Mutterobjekt das größte Objekt in der aktiven Liste ist. Wenn ja, dann wird der Modul HETEROGENEOUS DECLUMP beendet, wie im Oval F dargestellt. Wenn nein, dann läuft die Schleife über B-E so lange weiter, bis das Mutterobjekt das größte Objekt in der aktiven Liste ist, und dann wird der Modul beendet. Wenn im Entscheidungsblock C das Mutterobjekt keine Tochterobjekte aufweist, dann geht der Modul HETEROGENEOUS DECLUMP direkt zum Entscheidungsblock E über, und die Schleife über B-E läuft so lange weiter, bis das Mutterobjekt das größte Objekt in der aktiven Liste ist, und an dieser Stelle wird der Modul beendet, wie im Oval F dargestellt.
- Wie oben angegeben, ruft der Modul HETEROGENEOUS DECLUMP den Modul SEPARATE HETEROGENEOUS CHILDREN auf, der in Fig. 54 dargestellt ist. Dieser Modul setzt Objekte wieder als unabhängige Objekte ein. Nach dem Start des Moduls, wie im Oval A dargestellt, nimmt der Modul als Tochterobjekt das nächste Tochterobjekt des Mutterobjekts an, das nicht bereits als Tochterobjekt ausgewählt worden ist, wie im Block B dargestellt, Block C zeigt, daß der Modul SEPARATE HETEROGENEOUS CHILDREN dann einen Vergleich von heterogenen Objekten ausführt, wie weiter unten ausführlicher diskutiert. Im Entscheidungsblock D wird dann gefragt, ob das Mutterobjekt und das Tochterobjekt voneinander verschieden sind. Wenn ja, wird das Tochterobjekt aus einem Tochterobjekt des Mutterobjekts in ein unabhängiges Objekt in der aktiven Liste umgewandelt, wie im Block E dargestellt, und der Modul geht zum Block F über. Wenn das Mutterobjekt und das Tochterobjekt nicht voneinander verschieden sind, dann geht der Modul direkt zum Block F über. Wie im Block F dargestellt, führt der Modul dann rekursiv den Modul SEPARATE HETEROGENEOUS CHILDREN für das Tochterobjekt aus. Dann wird im Entscheidungsblock G gefragt, ob das Tochterobjekt das letzte Tochterobjekt des Mutterobjekts ist. Wenn nicht, dann springt der Modul SEPARATE HETEROGENEOUS CHILDREN zum Block B zurück, und die Schleife über B-G läuft so lange weiter, bis das Tochterobjekt das letzte Tochterobjekt des Mutterobjekts ist. An dieser Stelle wird der Modul beendet, wie im Oval H dargestellt.
- Zu beachten ist, daß die Auswahlregeln der vierten Ausführungsform zwischen Beibehalten, Löschen und Beibehalten zum anschließenden Vergleich unterscheiden. Ein Objekt kann zwar als redundantes Objekt aus der Liste entfernt werden, aber die Umfangspunkte dieses Objekts können für spätere Vergleiche beibehalten werden. Wenn z. B. mehrere Tochterobjekte oder kleinere Objekte innerhalb eines Mutterobjekts gefunden werden, können die Umfangspunkte des äußersten Mutterobjekts beibehalten werden.
- Der Klarheit halber wird der Modul HETEROGENEOUS DECLUMP nachstehend unter Bezugnahme auf die Fig. 55A-55F erläutert. Fig. 55A zeigt eine Gruppe von Objekten A, B, C, D, E und F mit einer Familienbeziehung, die durch den Modul LINK FAMILY bestimmt wurde. Die Objekte A, E und F haben den Status eines Mutterobjekts und sind in der aktiven Liste enthalten. Die Objekte C und D sind Tochterobjekte des Objekts E. Das Objekt B ist ein Tochterobjekt des Objekts C. Der Modul HETEROGENEOUS DECLUMP stellt fest, ob irgendein Tochterobjekt von einem Mutterobjekt verschieden (oder heterogen) ist. Der Modul beginnt mit dem kleinsten Mutterobjekt in der aktiven Liste, in diesem Fall mit dem Objekt A. Das Objekt A weist keine Tochterobjekte auf, daher geht der Modul zum nächstgrößeren Mutterobjekt über, dem Objekt E. Das Objekt E weist Tochterobjekte auf, die für das heterogene Entklumpen zu berücksichtigen sind. Das Objekt F weist keine Tochterobjekte auf und braucht daher nicht durch den Modul HETEROGENEOUS DECLUMP verarbeitet zu werden.
- Fig. 55B zeigt das Ergebnis des heterogenen Entklumpens, wenn das Objekt C von seinem Mutterobjekt E verschieden bzw. heterogen ist. Beim Betrachten des Objekts C stellt der Modul HETEROGENEOUS DECLUMP fest, daß das Objekt C heterogen ist, und das Objekt C wird mit dem Status eines Mutterobjekts wieder mit der aktiven Liste verknüpft.
- Fig. 55C zeigt das Ergebnis des heterogenen Entklumpens, wenn das Objekt B als nächstes betrachtet und festgestellt wird, daß es zu seinem Mutterobjekt C heterogen ist. Das Objekt B wird gleichfalls mit dem Status eines Mutterobjekts wieder mit der aktiven Liste verknüpft.
- Fig. 55D zeigt das Ergebnis des heterogenen Entklumpens, wenn das Objekt D betrachtet und festgestellt wird, daß es zu seinem Mutterobjekt E heterogen ist. Das Objekt D wird dann gleichfalls mit dem Status eines Mutterobjekts wieder mit der aktiven Liste verknüpft. Wenn das Objekt D betrachtet und festgestellt wird, daß es nicht heterogen ist, dann ist die in Fig. 55C dargestellte Familienverknüpfungsbeziehung anwendbar.
- Fig. 55E zeigt das Ergebnis des heterogenen Entklumpens, wenn festgestellt wird, daß das Objekt C nicht heterogen zu seinem Mutterobjekt E ist. Die untergeordnete Verknüpfung des Objekts C zum Mutterobjekt E wird beibehalten, einschließlich der untergeordneten Verknüpfung zu seinem eigenen Tochterobjekt, dem Objekt B.
- Fig. 55F zeigt das Ergebnis des heterogenen Entklumpens, wenn festgestellt wird, daß das Objekt B heterogen zu seinem Mutterobjekt C ist. Das Objekt B wird mit dem Status eines Mutterobjekts wieder mit der aktiven Liste verknüpft.
- Dann wird ein Modul REMOVE REDUNDANCIES (REDUNDANZEN ENTFERNEN) ausgeführt, wie in Fig. 56 dargestellt, um aus jeder Menge von Objektexemplaren nur das Objekt mit dem größten Randkontrast zu behalten. Wie im Oval A dargestellt, startet REMOVE REDUNDANCIES und berechnet dann für alle Objekte einen Parameter, wie z. B. den Randkontrast. Der Randkontrast wird berechnet, wie weiter oben in bezug auf Fig. 31 beschrieben und im Block B von Fig. 56 dargestellt. Dann nimmt REMOVE REDUNDANCIES als Mutterobjekt das kleinste Objekt aus der aktiven Liste an, das nicht bereits als Mutterobjekt ausgewählt ist, wie im Block C dargestellt. REMOVE REDUNDANCIES ruft dann den Modul CHECK REDUNDANCY (REDUNDANZ KONTROLLIEREN) auf und führt diesen Modul für das Mutterobjekt aus, wie im Block D dargestellt. Im Entscheidungsblock E wird dann gefragt, ob das Mutterobjekt das größte aktive Objekt ist. Wenn nicht, dann läuft die Schleife über B-E so lange weiter, bis das Mutterobjekt das größte aktive Objekt ist. An dieser Stelle wird der Modul beendet, wie im Oval F dargestellt.
- In der vierten Ausführungsform entfernt ein Modul CHECK REDUNDANCY (REDUNDANZ KONTROLLIEREN), wie in den Fig. 57A-57B dargestellt, redundante Identifikationen von verschiedenen Objektgenerationen. Der Modul CHECK REDUNDANCY startet, wie im Oval A von Fig. 57A dargestellt. CHECK REDUNDANCY wird aufgerufen, um ein Mutterobjekt zu verarbeiten: Wie im Block B dargestellt, wird CHECK REDUNDANCY rekursiv für jedes Tochterobjekt des Mutterobjekts aufgerufen. Für jedes Objekt, das in keinem anderen Objekt enthalten ist, d. h. für jedes Mutterobjekt, verarbeitet der Modul CHECK REDUNDANCY dann rekursiv jedes Tochterobjekt des Mutterobjekts, wie im Block B von Fig. 57A dargestellt. Dieser rekursive Aufruf führt dazu, daß Objekte, die im Stammbaum am weitesten unten liegen, zuerst verarbeitet werden, wie z. B. in Fig. 55A dargestellt - d. h. Urenkel werden vor Enkeln verarbeitet, und Enkel werden vor Kindern verarbeitet usw. Im Entscheidungsblock C wird dann gefragt, wieviele Kinder bzw. Tochterobjekte das Mutterobjekt hat. Wenn kein Tochterobjekt vorhanden ist, endet der Modul, wie im Oval D dargestellt. Wenn das Mutterobjekt ein Tochterobjekt hat, dann wird im Entscheidungsblock E gefragt, ob der Randkontrast des Tochterobjekts größer als der Randkontrast des Mutterobjekts ist. Wenn nicht, dann wird das Mutterobjekt beibehalten, wie im Block E gezeigt, das Tochterobjekt wird ignoriert, wie im Block F gezeigt, und der Modul wird beendet, wie im Oval D dargestellt. Wenn im Entscheidungsblock E der Randkontrast des Mutterobjekts besser ist als der Randkontrast des Tochterobjekts, dann wird im Entscheidungsblock G gefragt, ob das Mutterobjekt ein Mutterobjekt hat. Wenn nicht, dann wird das Tochterobjekt als Objekt beibehalten, das in keinem anderen Objekt enthalten ist, wie im Block H dargestellt. Das Mutterobjekt wird ignoriert, wie im Block J gezeigt, und der Modul wird beendet, wie im Oval D von Fig. 56B dargestellt. Wenn im Entscheidungsblock G das Mutterobjekt ein Mutterobjekt aufweist, dann wird das Tochterobjekt beibehalten, wie im Block I dargestellt. Das Mutterobjekt wird ignoriert, wie im Block J dargestellt, und der Modul wird beendet, wie im Oval D angegeben.
- Wenn im Entscheidungsblock C die Anzahl der Kinder bzw. Tochterobjekte größer als eins ist dann geht der Modul CHECK REDUNDANCY zum Entscheidungsblock L über, wo gefragt wird, ob das Mutterobjekt ein Mutterobjekt hat. Wenn nicht, dann wird das Mutterobjekt beibehalten, wie im Block M dargestellt. Das Mutterobjekt wird nur zu dem Zweck beibehalten, eine Zuordnung der Eigenschaften des Mutterobjekts, wie z. B. von Umfangspunkten, zu den Tochterobjekten zu ermöglichen. Zum Beispiel wird jeder innere Punkt des Mutterobjekts einem der Tochterobjekte zugeordnet, so daß in der abschließenden Analyse die gesamte Fläche des Mutterobjekts durch die Kinder bzw. Tochterobjekte dargestellt wird. Alle Tochterobjekte werden beibehalten, wie im Block N dargestellt, und der Modul wird beendet, wie im Oval D dargestellt. Wenn das Mutterobjekt ein Mutterobjekt aufweist, dann wird das Mutterobjekt ignoriert, wie im Block O dargestellt. Alle Tochterobjekte werden beibehalten, wie im Block N dargestellt, und der Modul wird beendet, wie im Oval D angegeben.
- Der Klarheit halber wird nachstehend der Modul REMOVE REDUNDANCIES (REDUNDANZEN ENTFERNEN) unter Bezugnahme auf die Fig. 58A-58D erläutert. Fig. 58A zeigt eine Darstellung einer Familienverknüpfungsbeziehung von Objekten A, B, C, D, E, F, G und H nach der Ausführung der Module LINK FAMILY und HETEROGENEOUS DECLUMP. Der Zweck des Moduls REMOVE REDUNDANCIES besteht darin, homogene oder gleichartige Tochterobjekte mit ihren Mutterobjekten zu vergleichen und dadurch Redundanzen zu ermitteln. In diesem Verfahren wird jedes Tochterobjekt eines aktuellen Mutterobjekts rekursiv verarbeitet. In der vorliegenden Darstellung hat das Mutterobjekt A keine Tochterobjekte und wird daher nicht betrachtet. Bei der Betrachtung des nächsten Mutterobjekts G muß jedes Tochterobjekt und jedes verwandte Tochterobjekt rekursiv verarbeitet werden. Der Modul verarbeitet zuerst das Tochterobjekt, das im Stammbaum am weitesten unten liegt. In der vorliegenden Darstellung wird das Objekt B verarbeitet, das die Ururenkelin des Objekts G ist und selbst keine Tochterobjekte hat.
- Fig. 58B zeigt das Ergebnis der Auflösung der Redundanzen des Tochterobjekts B bezüglich seines Mutterobjekts C. Das Objekt B und sein Mutterobjekt C sind als gleichartige (oder homogene) Objekte bekannt, da sie vorher den heterogenen Entklumpungstest passiert haben. Auf der Basis der Kinderzahl des Mutterobjekts C und/oder des Randkontrasts der Objekte B und C ermittelt CHECK REDUNDANCY, welches der Objekte B und C beibehalten wird, während das andere ignoriert wird. Für die Zwecke dieser Darstellung wird festgestellt, daß das Objekt C beibehalten wird, während das Objekt B ignoriert wird, wie in Fig. 58B dargestellt.
- Der Modul springt rekursiv zurück, um das Tochterobjekt D zu betrachten. Da das Objekt D keine Tochterobjekte aufweist, geht der Modul weiter den Stammbaum aufwärts zum Objekt E, welches das Mutterobjekt des Objekts D ist, wie in Fig. 58B dargestellt. Wenn ein Mutterobjekt mehrere Tochterobjekte aufweist, dann wird das Mutterobjekt des Mutterobjekts betrachtet. Da das Objekt E ein Mutterobjekt F aufweist, wird das Objekt E ignoriert, und die resultierende Familienverknüpfungsbeziehung ist in Fig. 58C dargestellt.
- Der Modul springt rekursiv zurück, um das Objekt F in Fig. 58C zu betrachten. Da das Objekt F mehrere Tochterobjekte und ein Mutterobjekt G aufweist, wird das Objekt F ignoriert, und die resultierende Familienverknüpfungsbeziehung ist in Fig. 58D dargestellt. Der Modul springt rekursiv zurück, um das Objekt G in Fig. 58C zu betrachten. Da das Objekt G mehrere Tochterobjekte und kein Mutterobjekt aufweist, werden das Objekt G und seine Tochterobjekte beibehalten, und die Familienverknüpfungsbeziehung ist in Fig. 58D dargestellt.
- Der Modul springt rekursiv zurück, um das Objekt H zu betrachten. Es wird die in Fig. 58D dargestellte Familienverknüpfungsbeziehung hergestellt.
- In diesem Beispiel wurde die Fähigkeit des Verfahrens und des Systems nach der vorliegenden Erfindung untersucht, mit Hilfe des oben beschriebenen Moduls LOCATE (LOKALISIEREN) zwischen zwei Objektklassen zu unterscheiden. In diesem Beispiel wurden Bilder von Spatelplatten verwendet, die auf selektivem Baird-Parker-Agar für Staphylococcus aureus (S. aureus) angelegt und 48 Stunden bei 37ºC inkubiert wurden. Es wurden dreiundzwanzig (23) Platten abgebildet, die 2245 manuell gezählte Kolonien enthielten. In diesem Beispiel war für gegenüber allen anderen Objekten, die als Artefakte betrachtet wurden, nur die Identifikation von typischem S. aureus von Interesse.
- Der Modul LOCATE fand 2061 Objekte, die zu Markierungen der Mikrobiologen für S. aureus paßten, und etwa 4280 Artefakt-Objekte. Für jedes Objekt wurde aus dem Bild eine Anzahl von Parametern abgeleitet, die das Objekt beschreiben, wie in Fig. 59F dargestellt. In der untenstehenden Tabelle 1 sind die in diesem Beispiel verwendeten Parameter aufgeführt. Wie in Fig. 59N dargestellt, wurde eine Anpassung durch lineare Regression ausgeführt, wie von William H. Press, Brian P. Flannery, Saul A. Teukolsky und William T. Vetterling in ihrem Lehrbuch "Numerical Recipes in C", Cambridge University Press (1988) beschrieben, wobei 50% der Artefakt-Objekte verwendet wurden (um die Anzahl der Artefakt-Objekte und der Kolonie-Objekte in der Regressionsanpassung ins Gleichgewicht zu bringen). Für alle Objekte wurde unter Verwendung der aus der Regressionsanpassung bestimmten Regressionskoeffizienten ein Regressionswert erzeugt, wie in Fig. 59H dargestellt.
- Ein System zur Identifikation und Zählung von Objekten unter Anwendung der vierten Ausführungsform ist in Fig. 59 dargestellt. Das System macht Gebrauch von dem beschriebenen Verfahren zur Auflösen möglicherweise redundanter Objekte, die in den visuellen Merkmalen eines zu analysierenden Bildes gefunden werden, um eine automatische Bestimmung der Klassen (oder Kategorien) von Objekten und der Objektzahl in jeder Klasse zu erhalten, wie weiter unten beschrieben.
- Fig. 59 läßt sich am besten durch Betrachtung zweier getrennter Informationsflüsse verstehen. Der erste Informationsfluß dient zur Bildverarbeitung, die gänzlich auf der linken Seite der Figur dargestellt ist. Die Aufgabe dieses Flusses besteht darin, den Zählwert gewünschter Objekte in einer oder mehreren Kategorien in der Ansicht des Bildes zu bestimmen. Dieser Fluß macht Gebrauch von Informationen, die man durch den zweiten Fluß erhält. Der zweite Informationsfluß dient zum Prozeßtraining, das unter Verwendung der gesamten Fig. 59 erläutert wird. Die Aufgabe dieses Flusses besteht darin, die richtigen Einrichtungsdaten für das Objektklassifizierungsverfahren zu bestimmen, das zur Bereitstellung von zwei oder mehr Kategorien verwendet wird, und basiert auf einer Menge von Bildszenen, welche die Szenen darstellen, die im ersten Fluß verwendet werden sollen.
- Nachstehend wird der erste Informationsfluß beschrieben, die Bildverarbeitung. Ein Bild der gewünschten Szene wird erfaßt, wie im Block A von Fig. 59 dargestellt. Dieses Bild, Oval B, ist ein Vierfarbenbild, das aus roten, grünen, blauen und grauen Farbebenen bzw. Teilbildern besteht, die mit Hilfe von Rot-, Grün-, Blau- bzw. Neutralfiltern erfaßt werden, die so angepaßt sind, daß das äquivalente, richtige - Farbgleichgewicht erzielt wird. Dieses Bild wird beschnitten, wie im Block C dargestellt, um die Analyse nur eines Teils der gesamten Bildszene zu ermöglichen. Dieser Beschneidungsprozeß kann vollautomatisch ausgeführt werden, indem z. B. der Rand einer runden Petrischale im Bild lokalisiert und das Bild mit einer vorgegebenen Versetzung beschnitten wird. Das Beschneidungsverfahren kann auch von Hand ausgeführt werden, indem z. B. eine vorgegebene rechteckige Maske verwendet wird. Im einen wie im anderen Fall werden Maskendaten gespeichert, wie im Oval D dargestellt. Die Bilddaten (Oval B) und die Maskendaten (Oval D) werden durch das Lokalisierungsverfahren verwendet, wie im Block E dargestellt und in der vierten Ausführungsform beschrieben, wobei allerdings auch die anderen Ausführungsformen angewandt werden könnten. Die Ergebnisse des Lokalisierungsverfahrens sind eine Liste von Objekten und zugehörigen beschreibenden Daten, wie durch das Oval F dargestellt. Diese Daten werden mit den linearen Regressionskoeffizienten kombiniert, die durch das Oval H dargestellt sind, wobei ein Klassifikationsschritt angewandt wird, wie durch den Block G dargestellt, um einen Zählwert der Objekte in jeder vorhandenen Klasse (oder Kategorie) zu liefern, wie durch das Oval I dargestellt.
- Im folgenden wird der zweite Informationsfluß beschrieben, das Prozeßtraining. Wie oben wird ein Bild erfaßt (Block A), beschnitten (Block C), und das Objekt wird lokalisiert (Block E), woraus sich Bilddaten (Oval B), Maskendaten (Oval D) und Objektbeschreibungsdaten (Oval F) ergeben. Die Bilddaten (Oval B) werden außerdem markiert, wie durch den Block J dargestellt, um eine Datenliste zu erzeugen, welche die Orte aller gewünschten Objekte in einer oder mehreren Kategorien liefert, dargestellt durch das Oval K. Diese Liste von Markierungspositionen wird durch einen Vergleichsschritt, wie durch den Block L gezeigt, mit den lokalisierten Objekten (Oval F) verglichen. Dieser Vergleichs- bzw. Anpassungsschritt kann einen Bestätigungsschritt einschließen, um sicherzustellen, daß alle Objekte einer richtigen Kategorie zugewiesen werden. Der Vergleichsschritt ergibt eine markierte Objektliste, dargestellt durch das Oval M. Zu beachten ist, daß alle Objekt in der Objektliste, Oval F, die nicht einer der Markierungen in der Markierungsliste, Oval K, zugeordnet sind (dazu passen), einer speziellen Artefakten-Kategorie zugeordnet werden. Diese Schritte werden für eine Anzahl von Bildern wiederholt, wobei diese Bilder die Trainingsmenge bilden. Die markierten Objektlisten für jedes Bild in der Trainingsmenge werden kombiniert, um eine kombinierte Objektmerkmalliste zu erzeugen (auch dargestellt durch das Oval M, da die Listen bis auf den Umstand, daß die letztere Objekte aus einer Anzahl von Bildern darstellt, identisch sind).
- Diese kombinierte, markierte Objektliste, Oval M, enthält alle Beschreibungsdaten für jedes Objekt, das in der Objektliste, Oval F, enthalten ist, zuzüglich einer Anzeige der richtigen Kategorie, die jedem Objekt zuzuordnen ist, für alle Bilder in der Trainingsmenge. Diese neue Liste kann dann durch ein lineares Regressionsverfahren (oder irgendein anderes geeignetes, lineares oder nichtlineares Klassifikationsverfahren) verwendet werden, wie durch den Block N dargestellt, um die notwendigen Koeffizienten und Schwellwerte zu erzeugen, die gemeinsam als Oval H dargestellt sind und die zur Einteilung von Objekten (Block F) in eine von zwei oder mehreren Klassen benötigt werden.
- Die Anwendung des obigen Verfahrens besteht normalerweise aus den folgenden Schritten. Es wird eine Trainingsmenge von Bildszenen ausgewählt, die repräsentativ für die Szenen ist, für die eine automatische Verarbeitung gewünscht wird. An dieser Menge wird der oben definierte Prozeßtrainingsschritt ausgeführt. Dann werden weitere Szenen ausgewählt, für die eine automatische Verarbeitung gewünscht wird. An jedem dieser Bilder wird der Bildverarbeitungsschritt ausgeführt, und ergibt, wie gewünscht, für jedes Bild einen Zählwert von Objekten für jede gewünschte Klasse.
- Fig. 60 zeigt eine Perzentilverteilung von Artefakten (linke Kurve) als Funktion vom Regressionskoefizienten. Der Regressions-Schwellwert (vertikale Linie in der Mitte) wurde so eingestellt, daß der Gesamtfehler minimiert wurde (Summe aus dem falsch positiven Fehler, dargestellt durch das Ende der linken Kurve rechts vom Schwellwert, und dem falsch negativen Fehler, dargestellt durch das Ende der rechten Kurve links vom Schwellwert).
- Fig. 61 zeigt die Zählwertverteilung von Artefakten (linke Spitze, wobei das Maximum oberhalb des Diagramm-Maximalwerts von 200 Objekten pro 0,01 Regressionswertbreite liegt) und Kolonien (rechte Spitze). Es ist eine klare Trennung zwischen Artefakten und Kolonien erkennbar.
- npts (Anzahl der Umfangspunkte)
- Fläche
- Kontrast
- Form
- innerer Zählwert
- innerer Farbtonmittelwert
- innerer Größenmittelwert
- innerer Rot-Mittelwert
- innere Rot-Standardabweichung
- innerer Grün-Mittelwert
- innere Grün-Standardabweichung
- innerer Blau-Mittelwert
- innere Blau-Standardabweichung
- innerer Grau-Mittelwert
- innere Grau-Standardabweichung
- äußerer Zählwert
- äußerer Farbtonmittelwert
- äußerer Größenmittelwert
- äußerer Rot-Mittelwert
- äußere Rot-Standardabweichung
- äußerer Grün-Mittelwert
- äußere Grün-Standardabweichung
- äußerer Blau-Mittelwert
- äußere Blau-Standardabweichung
- äußerer Grau-Mittelwert
- äußere Grau-Standardabweichung
- Farbtondifferenz
- Rot-Differenz
- Grün-Differenz
- Blau-Differenz
- Grau-Differenz
- Farbtondifferenz · innerer Farbton
- Rot-Differenz · innerer Rot-Mittelwert
- Grün-Differenz · innerer Grün-Mittelwert
- Blau-Differenz · innerer Blau-Mittelwert
- Grau-Differenz · innerer Grau-Mittelwert
- innerer Farbtonmittelwert · Fläche
- innerer Größenmittelwert · Fläche
- innerer Rot-Mittelwert · Fläche
- innere Rot-Standardabweichung · Fläche
- innerer Grün-Mittelwert · Fläche
- innere Grün-Standardabweichung · Fläche
- innerer Blau-Mittelwert · Fläche
- innere Blau-Standardabweichung · Fläche
- innerer Grau-Mittelwert · Fläche
- innere Grau-Standardabweichung · Fläche
- In diesem Beispiel wurde die Fähigkeit des Verfahrens und des Systems nach der vorliegenden Erfindung untersucht, mit Hilfe des oben beschriebenen Moduls LOCATE (LOKALISIEREN) zwischen mehreren Objektklassen zu unterscheiden. In diesem Beispiel wurden wiederum Bilder von Spatelplatten verwendet, die auf selektivem Baird-Parker-Agar für 5. aureus angelegt und 48 Stunden bei 37ºC inkubiert wurden. Jedoch wurde in diesem Beispiel die Unterscheidungsfähigkeit geprüft, indem zwischen typischen S. aureus-Kolonien (in den Fig. 62 und 63 mit "2" gekennzeichnet), atypischen oder anderen Staphylococcus-Kolonien (in den Fig. 62 mit "1" gekennzeichnet), anderen Hintergrundkolonien (in den Fig. 62 und 63 mit "0" gekennzeichnet) und Artefakten oder Nichtkolonie-Objekten (in den Fig. 62 und 63 mit "X" gekennzeichnet) unterschieden wurde.
- Für dieses Beispiel wurden 69 Platten abgebildet. In der folgende Tabelle 2 sind die Anzahlen jedes gefundenen Objekttyps angegeben und mit den Markierungen der Mikrobiologen verglichen:
- Typisch 1249
- Atypisch 1171
- Hintergrund 1999
- Artefakt 4365
- Für jedes Objekt wurde aus dem Bild eine Anzahl von Parametern extrahiert, die das Objekt beschreiben. In der untenstehenden Tabelle 3 sind die in diesem Beispiel verwendeten Parameter aufgeführt. Alle Objekt wurden verwendet, um eine Regressionsanpassung zu bestimmen. Aus den Anpassungskoeffizienten wurde ein Regressionswert für jedes Objekt bestimmt, der in Fig. 62 aufgetragen ist. Dieses Diagramm zeigt eine klare Trennung zwischen Artefakten und Hintergrundkolonien sowie eine gute Trennung zwischen den Hintergrundkolonien und den beiden Staphylococcus-Populationen.
- Fig. 63 zeigt die Zählwertverteilung für die Daten von Beispiel 2.
- eindeutige Identifikation
- Zahl der Abtastungen
- Objektzahl
- Geschwisterzahl
- Anzahl der Umfangspunkte, npts
- Fläche einschließlich Anzahl der Umfangspunkte
- Kontrast
- Form
- minimaler Radius zum Rand
- maximaler Radius zum Rand
- innerer Zählwert
- innerer Rot-Mittelwert
- innere Rot-Standardabweichung
- innerer Grün-Mittelwert
- innere Grün-Standardabweichung
- innerer Blau-Mittelwert
- innere Blau-Standardabweichung
- innerer Grau-Mittelwert
- innere Grau-Standardabweichung
- äußerer Zählwert
- äußerer Rot-Mittelwert
- äußere Rot-Standardabweichung
- äußerer Grün-Mittelwert
- äußere Grün-Standardabweichung
- äußerer Blau-Mittelwert
- äußere Blau-Standardabweichung
- äußerer Grau-Mittelwert
- äußere Grau-Standardabweichung
- In diesem Beispiel verwendeten das Verfahren und das System den oben beschriebenen Modul LOCATE zur Zählung von Bakterienkolonien. In diesem Beispiel wurden Bilder von Spatelplatten verwendet, die auf nichtselektivem Brain-Heart-Infusions- (BHI-) Nährlösungsagar angelegt und 24 Stunden bei 37ºC inkubiert wurden. Die Platten wurden durch ausgebildete Mikrobiologen manuell gezählt und mit Hilfe des erfindungsgemäßen Verfahrens und Systems abgebildet.
- Eine erste Bildmenge (eine Trainingsmenge) wurde gleichfalls in dem erfindungsgemäßen System durch einen Mikrobiologen markiert, um dem System die Positionen der Kolonien mitzuteilen. Diese Menge bestand aus 74 Platten, von denen 25 in dem Zählwertbereich von 25 bis 250 Kolonien pro Platte lagen, wobei der Rest zum größten Teil weniger als 25 Kolonien pro Platte aufwies. Es wurden insgesamt 3459 Kolonien manuell gezählt und 3572 Markierungen angebracht, die einen zweiten manuellen Zählwert darstellen.
- Der Modul LOCATE fand 9941 Objekte auf den Bildern dieser 74 Platten. Davon paßten 3084 zu den Markierungen der Mikrobiologen. Zu den Abweichungen gehörten 317 Objekte, die bereits einer anderen Markierung zugeordnet waren (d. h. Mehrfachmarkierungen für ein automatisch gefundenes Einzelobjekt), 171 Markierungen, für die automatisch kein geeignetes Objekt gefunden wurde, und 6 Markierungen, für die automatisch zwei oder mehr gleich gut geeignete Objekte gefunden wurden, für die ein Objekt statistisch ausgewählt wurde. Von den übrigen 6857 Nichtkolonie- oder Artefakt-Objekten wurde eine statistische Auswahl von etwa 45% oder 3157 Objekten vorgenommen, die eine annähernd gleiche Anzahl von Kolonie- und Artefakt-Objekten für die lineare Regressionsanpassung ergab.
- Die lineare Regressionsanpassung (unter Verwendung der gleichen Parameter, wie in Tabelle 1 für das erste Beispiel aufgeführt) erzeugte eine Menge von Koeffizienten und einen Schwellwert, die dann auf eine unabhängige Menge von 33 Bildern angewandt wurden, die alle innerhalb des Zählbereichs von 25 bis 250 Kolonien pro Platte lagen. Der Modul LOCATE fand 9850 Objekte auf den Bildern dieser Platten. Nach Anwendung der Regressionskoeffizienten und des Schwellwerts wurden 3048 Objekte automatisch als Kolonien identifiziert, verglichen mit 3220 manuell gezählten Kolonien, so daß sich ein um 5,6% zu niedriger Zählwert ergab. Dies ist ein Schätzwert der Leistung, die für einen Satz von Platten zu erwarten ist, d. h. es wäre im Mittel ein um 5,6% zu niedriger Zählwert zu erwarten.
- Der automatische ermittelte Zählwert für jede Platte wurde dann mit dem manuellen Zählwert für diese Platte verglichen und ergab einen prozentualen Fehler für jede Platte. Der Mittelwert aus diesen Fehlern war ein um 5.0% zu niedriger Zählwert. Dies ist vergleichbar mit dem obigen Fehlerschätzwert von 5,6% und ist der beste Fehlerschätzwert, der für eine Menge von Platten zu erwarten wäre. Der Wertunterschied ist auf die Verteilung der Zählwerte zwischen den Platten in der Menge zurückzuführen, der eine Differenz in der Auswirkung eines einzelnen abweichenden Zählwerts unter den Platten auf den prozentualen Fehler ergibt.
- Der Absolutwert der prozentualen Fehler pro Platte wurde gleichfalls gemittelt und ergab einen Fehlerschätzwert, der auf einer einzelnen Platte zu erwarten war. Für diese 33 Platten betrug dieser mittlere absolute Fehler 13,6%. Folglich wäre für irgendeine gegebene Platte zu erwarten, daß der automatisch bestimmte Zählwert im Mittel um höchstens 13,6% vom manuellen Zählwert abweicht.
- Die Fehlerraten in dem obigen Beispiel basieren auf manuellen Zählwerten. Es ist bekannt, daß die manuelle Zählung nicht völlig genau ist. Andere Daten haben darauf schließen lassen, daß manuelle Zählungen einen Fehler von 5 bis 30% aufweisen. Für diese Datenmenge ist zu beachten, daß die Unstimmigkeit zwischen zwei manuellen Zählwerten an der Trainingsmenge der Platten etwa 3% beträgt, wobei der zweite Zählwert bei bekanntem ersten Zählwert erreicht wurde. Dies zeigt, daß die Leistung des erfindungsgemäßen automatischen Systems recht annehmbar war.
- Für den Fachmann werden nach Betrachtung der Beschreibung und der hier offenbarten praktischen Ausführung der Erfindung weitere Ausführungsformen der Erfindung offensichtlich sein.
Claims (23)
1. Verfahren zur Auflösung redundanter Identifikationen eines Objekts in einem Bild, mit den
folgenden Schritten:
(a) Identifikation einer Gruppe von möglicherweise redundanten Objekten in einem Bild;
(b) Sortieren der identifizierten Objekte in einer vorgegebenen Reihenfolge, um eine sortierte
Liste von Objekten zu erzeugen, wobei das Anfangsobjekt in der Liste einen charakteristischen
Anfangswert aufweist, wobei der charakteristische Wert die morphologischen Attribute der Größe und
Form und die Graustufenattribute von Intensität, Kontrast und Farbton aufweist, und wobei das letzte
Objekt in der Liste einen letzten charakteristischen Wert aufweist;
(c) Definition einer Objektzustandsvariablen, wobei die Objektzustandsvariable einen Wert
von einem ersten und einem zweiten Wert aufweist;
(d) Zuordnen des ersten Wertes der Objektzustandsvariablen zum Anfangsobjekt in der
sortierten Liste;
(e) Vergleich des jeweils auf das Anfangsobjekt folgenden Objekts mit jedem Objekt, das
einen kleineren charakteristischen Wert als das jeweilige nachfolgende Objekt aufweist und den ersten Wert
der Objektzustandsvariablen aufweist, wobei für jeden Vergleich das jeweils nachfolgende Objekt als ein
erstes Objekt definiert wird und jedes Objekt, das einen kleineren charakteristischen Wert als den des ersten
Objekts aufweist, als ein zweites Objekt definiert wird;
(f) Ermitteln, ob das jeweils zweite Objekt einen charakteristischen Wert aufweist, der in
einem vorgegebenen Bereich des charakteristischen Wertes des ersten Objekts enthalten ist, wodurch einer
von den ersten und zweiten Zustandswerten der Objektzustandsvariablen dem jeweils ersten Objekt und
dem jeweils zweiten Objekt zugewiesen wird, um redundante Identifikationen eines Objekts in dem Bild
aufzulösen; und
(g) Identifikation der Objekte, die den ersten Wert der Objektzustandsvariablen von Schritt
(f) aufweisen, als nichtredundante Objekte und Beibehalten der nichtredundanten Objekte.
2. Verfahren nach Anspruch 1, wobei der Ermittlungsschritt die folgenden Teilschritte aufweist:
(i) Beibehalten des ersten Objekts und Setzen der Objektzustandsvariablen des ersten
Objekts auf den ersten Wert, wenn kein zweites Objekt einen charakteristischen Wert innerhalb des
vorgegebenen Bereichs für den charakteristischen Wert des ersten Objekts aufweist;
(ii) Beibehalten des ersten Objekts und Setzen der Objektzustandsvariablen des ersten
Objekts auf den ersten Wert, wenn nur ein zweites Objekt einen charakteristischen Wert innerhalb des
vorgegebenen Bereichs für den charakteristischen Wert des ersten Objekts aufweist, und Löschen des
zweiten Objekts; und
(iii) Löschen des ersten Objekts und Setzen der Objektzustandsvariablen des zweiten Objekts
auf den ersten Wert, wenn mehr als ein zweites Objekt einen charakteristischen Wert innerhalb des
vorgegebenen Bereichs für den charakteristischen Wert des ersten Objekts aufweist.
3. Verfahren nach Anspruch 1, wobei der Ermittlungsschritt die folgenden Teilschritte aufweist:
(i) Beibehalten des ersten Objekts und Setzen der Objektzustandsvariablen des ersten
Objekts auf den ersten Wert, wenn kein zweites Objekt einen charakteristischen Wert innerhalb des
vorgegebenen Bereichs für den charakteristischen Wert des ersten Objekts aufweist;
(ii) Beibehalten des ersten Objekts und Setzen der Objektzustandsvariablen des ersten
Objekts auf den ersten Wert, wenn nur ein zweites Objekt einen ersten charakteristischen Wert innerhalb
des vorgegebenen Bereichs für den charakteristischen Wert des ersten Objekts aufweist und das erste
Objekt einen größeren zweiten charakteristischen Wert des ersten Objekts aufweist, und Löschen des
zweiten Objekts;
(iii) Beibehalten des zweiten Objekts und Setzen der Objektzustandsvariablen des zweiten
Objekts auf den ersten Wert, wenn nur ein zweites Objekt einen ersten charakteristischen Wert innerhalb
des vorgegebenen Bereichs für den charakteristischen Wert des ersten Objekts aufweist und das erste
Objekt einen kleineren zweiten charakteristischen Wert aufweist, und Löschen des ersten Objekts; und
(iv) Löschen des ersten Objekts und Setzen des Objektzustandsvariablen des zweiten Objekts
auf den ersten Wert, wenn mehr als ein zweites Objekt einen ersten charakteristischen Wert innerhalb des
vorgegebenen Bereichs für den ersten charakteristischen Wert des ersten Objekts aufweist.
4. Verfahren nach Anspruch 2, wobei das erste Objekt ein größeres Objekt als das zweite Objekt und
das zweite Objekt ein kleineres Objekt als das erste Objekt ist, und wobei der Ermittlungsschritt die
Feststellung, ob das kleinere Objekt in dem größeren Objekt enthalten ist, und ferner die folgenden
Teilschritte aufweist:
(iv) Bestimmen der Umfangspunkte des größeren Objekts;
(v) Erzeugen eines Umfangspuffers, wobei der Umfangspuffer die Umfangspunkte des
größeren Objekts enthält, wobei jeder Umfangspunkt einen Zeilenpositions-Koordinatenwert, einen
Spaltenpositions-Koordinatenwert und einen Richtungscodevektor aufweist, wobei der
Richtungscodevektor für jeden Umfangspunkt einen ersten und einen zweiten Richtungscodewert aufweist,
wobei der erste Richtungscodewert die Positionsbeziehung des jeweiligen Umfangspunktes zum nächsten
Umfangspunkt beschreibt und der zweite Richtungscodewert die Positionsbeziehung des jeweiligen
Umfangspunktes zum vorhergehenden Umfangspunkt beschreibt,
(vi) Sortieren der Umfangspunkte im Umfangspuffer in einer vorgegebenen Reihenfolge, um
einen nach Zeilen und Spalten sortierten Umfangspuffer zu erzeugen,
(vii) Zuordnen einer Umfangspunktzustandsvariablen mit einem ersten und einem zweiten
Wert zu jedem Umfangspunkt im Puffer, wobei der Wert der Umfangspunktzustandsvariablen durch die
ersten und zweiten Richtungscodewerte festgelegt ist,
(viii) Kennzeichnen des kleineren Objekts als in dem größeren Objekt enthalten, wenn der
Spaltenpositions-Koordinatenwert eines vorgegebenen Punktes des kleineren Objekts zwischen den Werten
des Spaltenpositions-Koordinatenwerts eines Umfangspunktes mit dem ersten Wert der
Umfangspunktzustandsvariablen und des Spaltenpositions-Koordinatenwerts des nächsten Umfangspunktes
in dem sortierten Umfangspuffer liegt, wobei die Umfangspunkte den gleichen Zeilenpositions-
Koordinatenwert wie der vorgegebene Punkt des kleineren Objekts aufweisen.
5. Verfahren nach Anspruch 3, wobei das erste Objekt ein größeres Objekt als das zweite Objekt und
das zweite Objekt ein kleineres Objekt als das erste Objekt ist, und wobei der Ermittlungsschritt die
Feststellung, ob das kleinere Objekt in dem größeren Objekt enthalten ist, und ferner die folgenden
Teilschritte aufweist:
(v) Bestimmen der Umfangspunkte des größeren Objekts;
(vi) Erzeugen eines Umfangspuffers, wobei der Umfangspuffer die Umfangspunkte des
größeren Objekts enthält, wobei jeder Umfangspunkt einen Zeilenpositions-Koordinatenwert, einen
Spaltenpositions-Koordinatenwert und einen Richtungscodevektor aufweist, wobei der
Richtungscodevektor für jeden Umfangspunkt einen ersten und einen zweiten Richtungscodewert aufweist,
wobei der erste Richtungscodewert die Beziehung des jeweiligen Umfangspunktes zum nächsten
Umfangspunkt beschreibt und der zweite Richtungscodewert die Beziehung des jeweiligen
Umfangspunktes zum vorhergehenden Umfangspunkt beschreibt,
(vii) Sortieren der Umfangspunkte im Umfangspuffer in einer vorgegebenen Reihenfolge, um
einen nach Zeilen und Spalten sortierten Umfangspuffer zu erzeugen,
(viii) Zuordnen einer Umfangspunktzustandsvariablen mit einem ersten und einem zweiten
Wert zu jedem Umfangspunkt im Puffer, wobei der Wert der Umfangspunktzustandsvariablen durch die
ersten und zweiten Richtungscodewerte festgelegt ist,
(ix) Kennzeichnen des kleineren Objekts als in dem größeren Objekt enthalten, wenn der
Spaltenpositions-Koordinatenwert eines vorgegebenen Punktes des kleineren Objekts zwischen den Werten
des Spaltenpositions-Koordinatenwerts eines Umfangspunktes mit dem ersten Wert der
Umfangspunktzustandsvariablen und des Spaltenpositions-Koordinatenwerts des nächsten Umfangspunktes
in dem sortierten Umfangspuffer liegt, wobei die Umfangspunkte den gleichen Zeilenpositions-
Koordinatenwert wie der vorgegebene Punkt des kleineren Objekts aufweisen.
6. Verfahren nach Anspruch 4, wobei der Teilschritt zum Kennzeichnen des kleineren Objekts als in
dem größeren Objekt enthalten ferner die folgenden Teilschritte einschließt, die vor den Teilschritten (iv)-
(viii) ausgeführt werden:
(ix) Bestimmen der vier Extremalpunkte des größeren Objekts, wobei jeder Extremalpunkt
einen Zeilenpositions-Koordinatenwert und einen Spaltenpositions-Koordinatenwert aufweist;
(x) Konstruktion eines Rechtecks, welches das größere Objekt umrandet bzw. beschränkt,
unter Verwendung der Zeilen- und Spaltenpositions-Koordinatenwerte der vier Extremalpunkte;
(xi) Bestimmen eines vorgegebenen Punktes an dem kleineren Objekt, wobei der vorgegebene
Punkt einen Zeilenpositions-Koordinatenwert und einen Spaltenpositions-Koordinatenwert aufweist;
(xii) Bestimmen der Position des vorgegebenen Punktes des kleineren Objekts bezüglich des
Rechtecks, welches das größere Objekt umrandet;
(xiii) Ausführen der Schritte (iv)-(viii) nur dann, wenn der vorgegebene Punkt des kleineren
Objekts in dem das größere Objekt umrandenden Rechteck enthalten ist; und
(xiv) Kennzeichnen des kleineren Objekts als in dem größeren Objekt nicht enthalten, wenn der
vorgegebene Punkt des kleineren Objekts nicht in dem Rechteck enthalten ist, welches das größere Objekt
umrandet.
7. Verfahren nach Anspruch 2, wobei das erste Objekt ein größeres Objekt als das zweite Objekt und
das zweite Objekt ein kleineres Objekt als das erste Objekt ist, und wobei der Ermittlungsschritt die
Feststellung aufweist, ob das kleinere Objekt in dem größeren Objekt enthalten ist, und wobei der
Ermittlungsschritt ferner die folgenden Teilschritte aufweist:
(ix) Bestimmen der vier Extremalpunkte des größeren Objekts, wobei jeder Extremalpunkt
einen Zeilenpositions-Koordinatenwert und einen Spaltenpositions-Koordinatenwert aufweist;
(x) Konstruktion eines Rechtecks, welches das größere Objekt umrandet, unter Verwendung
der Zeilen- und Spaltenpositions-Koordinatenwerte der vier Extremalpunkte;
(xi) Bestimmen eines vorgegebenen Punktes an dem kleineren Objekt, wobei der vorgegebene
Punkt einen vorgegebenen Zeilenpositions-Koordinatenwert und einen vorgegebenen Spaltenpositions-
Koordinatenwert aufweist;
(xii) Bestimmen der Position des vorgegebenen Punktes des kleineren Objekts bezüglich des
Rechtecks, welches das größere Objekt umrandet; und
(xiii) Kennzeichnen des kleineren Objekts als in dem größeren Objekt enthalten, wenn der
vorgegebene Punkt des kleineren Objekts in dem Rechteck enthalten ist.
8. Verfahren nach Anspruch 5, wobei das erste Objekt ein größeres Objekt als das zweite Objekt und
das zweite Objekt ein kleineres Objekt als das erste Objekt ist, und wobei der Ermittlungsschritt die
Feststellung, ob das kleinere Objekt in dem größeren Objekt enthalten ist, und ferner die folgenden
Teilschritte aufweist, die vor den Teilschritten (v)-(ix) ausgeführt werden:
(x) Bestimmen der vier Extremalpunkte des größeren Objekts, wobei jeder Extremalpunkt
einen Zeilenpositions-Koordinatenwert und einen Spaltenpositions-Koordinatenwert aufweist;
(xii) Konstruktion eines Rechtecks, welches das kleinere Objekt umrandet, unter Verwendung
der Zeilen- und Spaltenpositions-Koordinatenwerte der vier Extremalpunkte;
(xiii) Bestimmen der vier Extremalpunkte des kleineren Objekts, und
(xiv) Ignorieren des kleineren Objekts, wenn irgendein Extremalpunkt des kleineren Objekts
nicht innerhalb der Begrenzung des Rechtecks enthalten ist.
9. Verfahren nach Anspruch 3, wobei das erste Objekt ein größeres Objekt als das zweite Objekt und
das zweite Objekt ein kleineres Objekt als das erste Objekt ist, und wobei der Ermittlungsschritt die
Feststellung, ob das kleinere Objekt in dem größeren Objekt enthalten ist, und ferner die folgenden
Teilschritte aufweist:
(iv) Bestimmen der vier Extremalpunkte des größeren Objekts, wobei jeder Extremalpunkt
einen Zeilenpositions-Koordinatenwert und einen Spaltenpositions-Koordinatenwert aufweist;
(v) Konstruktion eines Rechtecks, welches das kleinere Objekt umrandet, unter Verwendung
der Zeilen- und Spaltenpositions-Koordinatenwerte der vier Extremalpunkte;
(vi) Bestimmen der vier Extremalpunkte des kleineren Objekts, und
(vii) Ignorieren des kleineren Objekts, wenn irgendein Extremalpunkt des kleineren Objekts
nicht innerhalb der Begrenzung des Rechtecks enthalten ist.
10. Verfahren nach Anspruch 6, wobei der vorgegebene Punkt in dem das größere Objekt
umrandenden Rechteck enthalten ist, wenn die beiden folgenden Bedingungen erfüllt sind:
(A) der Zeilenpositions-Koordinatenwert des vorgegebenen Punktes des kleineren Objekts
liegt zwischen dem Minimal- und dem Maximalwert für die Zeilenpositions-Koordinatenwerte des
Rechtecks, welches das größere Objekt umrandet; und
(B) der Spaltenpositions-Koordinatenwert des vorgegebenen Punktes des kleineren Objekts
liegt zwischen dem Minimal- und dem Maximalwert für die Spaltenpositions-Koordinatenwerte des
Rechtecks, welches das größere Objekt umrandet.
11. Verfahren nach einem der Ansprüche 5, 6 oder 10, wobei der vorgegebene Punkt der
Massenmittelpunkt des kleineren Objekts ist.
12. Verfahren nach einem der Ansprüche 5, 6 oder 10, das ferner die folgenden Schritte aufweist:
(h) Bestimmen eines charakteristischen Attributs mindestens eines vorgegebenen Punktes des
in dem größeren Objekt enthaltenen kleineren Objekts;
(i) Bestimmen des charakteristischen Attributs des größeren Objekts; und
(j) Beibehalten des größeren Objekts und des kleineren Objekts und Setzen der
Objektzustandsvariablen jedes der größeren und kleineren Objekte auf den ersten Wert, wenn die Differenz
zwischen dem charakteristischen Attribut des mindestens einen vorgegebenen Punktes des größeren Objekts
und dem charakteristischen Attribut des vorgegebenen Punktes des in dem größeren Objekt enthaltenen
kleineren Objekts eine vorgegebene Mindestzahl übersteigt.
13. Verfahren nach Anspruch 12, das ferner die folgenden Schritte aufweist:
(k) Bestimmen mindestens eines mittleren charakteristischen Attributs der inneren Punkte des
kleineren Objekts;
(l) Bestimmen des mittleren charakteristischen Attributs der inneren Punkte des größeren
Objekts; und
(m) Beibehalten des größeren Objekts und des kleineren Objekts und Setzen der
Objektzustandsvariablen jedes der größeren und kleineren Objekte auf den ersten Wert, wenn die Differenz
zwischen dem mittleren charakteristischen Attribut der inneren Punkte des größeren Objekts und dem
mittleren charakteristischen Attribut der inneren Punkte des in dem größeren Objekt enthaltenen kleineren
Objekts eine vorgegebene Mindestzahl übersteigt.
14. Verfahren nach Anspruch 13, wobei der Bestimmungsschritt (1) die Bestimmung der inneren
Punkte des größeren Objekts unter Ausschluß der inneren Punkte des kleineren Objekts aufweist.
15. Verfahren nach Anspruch 12, wobei das charakteristische Attribut der Farbton ist.
16. Verfahren nach Anspruch 13, wobei das mittlere charakteristische Attribut der mittlere Farbton der
inneren Punkte des größeren bzw. des kleineren Objekts ist.
17. Verfahren nach Anspruch 1, wobei die Schritte (e), (f) und (g) aufweisen:
(e) Vergleich der Fläche von zwei identifizierten Objekten und Kennzeichnen eines der
Objekte als größeres Objekt als das andere Objekt und des anderen Objekts als kleineres Objekt als das
größere Objekt; und
(f) Bestimmen, ob das kleinere Objekt in dem größeren Objekt enthalten ist, durch
(i) Bestimmen der vier Extremalpunkte des größeren Objekts, wobei jeder Extremalpunkt
einen Zeilenpositions-Koordinatenwert und einen Spaltenpositions-Koordinatenwert aufweist,
(ii) Konstruktion eines Rechtecks, welches das größere Objekt umrandet, unter Verwendung
der Zeilen- und Spaltenpositions-Koordinatenwerte der vier Extremalpunkte;
(iii) Bestimmen eines vorgegebenen Punktes an dem kleineren Objekt, wobei der vorgegebene
Punkt einen vorgegebenen Zeilenpositions-Koordinatenwert und einen vorgegebenen Spaltenpositions-
Koordinatenwert aufweist;
(iv) Bestimmen der Position des vorgegebenen Punktes des kleineren Objekts bezüglich des
Rechtecks, welches das größere Objekt umrandet; und
(v) Kennzeichnen des kleineren Objekts als in dem größeren Objekt enthalten, wenn der
vorgegebene Punkt des kleineren Objekts in dem Rechteck enthalten ist, und dadurch Auflösen der
redundanten Identifikationen jedes identifizierten Objekts in dem Bild.
18. Verfahren nach Anspruch 17, wobei der vorgegebene Punkt in dem das größere Objekt
umrandenden Rechteck enthalten ist, wenn die beiden folgenden Bedingungen erfüllt sind:
(A) der Zeilenpositions-Koordinatenwert des vorgegebenen Punktes des kleineren Objekts
liegt zwischen dem Minimal- und dem Maximalwert für die Zeilenpositions-Koordinatenwerte des
Rechtecks, welches das größere Objekt umrandet; und
(B) der Spaltenpositions-Koordinatenwert des vorgegebenen Punktes des kleineren Objekts
liegt zwischen dem Minimal- und dem Maximalwert für die Spaltenpositions-Koordinatenwerte des
Rechtecks, welches das größere Objekt umrandet.
19. Verfahren nach Anspruch 1, das ein Verfahren zur Identifikation eines gültigen Objekts mit
mindestens einem vorgegebenen Attributwert vor einem Hintergrund und zum Auflösen redundanter
Identifikationen eines gültigen Objekts aufweist, wobei die Schritte (e), (f) und (g) aufweisen:
(e) Bestätigen eines Anwärterobjekts, das den vorgegebenen Attributwert eines gültigen
Objekts zur Identifikation eines gültigen Objekts aufweist, durch
(i) Vergleich der Flächen zweier gültiger Objekte und Kennzeichnen eines der gültigen
Objekte als größeres gültiges Objekt als das andere gültige Objekt und des anderen gültigen Objekts als
kleineres gültiges Objekt als das größere gültige Objekt,
(ii) Bestimmen der vier Extremalpunkte des größeren Objekts, wobei jeder Extremalpunkt
einen Zeilenpositions-Koordinatenwert und einen Spaltenpositions-Koordinatenwert aufweist;
(iii) Konstruktion eines Rechtecks, welches das größere Objekt umrandet bzw. beschränkt,
unter Verwendung der Zeilen- und Spaltenpositions-Koordinatenwerte der vier Extremalpunkte;
(iv) Bestimmen eines vorgegebenen Punktes an dem kleineren Objekt, wobei der vorgegebene
Punkt einen Zeilenpositions-Koordinatenwert und einen Spaltenpositions-Koordinatenwert aufweist;
(v) Bestimmen der Position des vorgegebenen Punktes des kleineren Objekts bezüglich des
Rechtecks, welches das größere Objekt umrandet;
(vi) Kennzeichnen des kleineren Objekts als in dem größeren Objekt enthalten, wenn der
vorgegebene Punkt des kleineren Objekts in dem Rechteck enthalten ist, welches das größere Objekt
umrandet.
20. Verfahren nach Anspruch 19, wobei der Bestätigungsschritt ausgeführt wird, um redundante
Identifikationen von inhomogenen Objekten aufzulösen, und ferner den Teilschritt zum Löschen des
größeren Objekts einschließt, wenn das größere Objekt mehr als ein kleineres Objekt enthält.
21. Verfahren nach Anspruch 19, wobei der Bestätigungsschritt ausgeführt wird, um redundante
Identifikationen von inhomogenen Objekten aufzulösen, und ferner die folgenden Teilschritte enthält:
(vi) Berechnen des mittleren Randkontrasts der größeren und kleineren gültigen Objekte; und
(vii) Löschen des Objekts mit dem kleineren Randkontrast, wenn das größere gültige Objekt
nur ein kleineres gültiges Objekt enthält.
22. Verfahren nach Anspruch 19, wobei der Bestätigungsschritt ausgeführt wird, um redundante
Identifikationen von homogenen Objekten aufzulösen, und ferner die folgenden Teilschritte einschließt:
(vi) Berechnen des mittleren Randkontrasts der größeren und kleineren gültigen Objekte; und
(vii) Löschen des größeren Objekts, falls der mittlere Randkontrast des größeren Objekts
kleiner als der mittlere Randkontrast des kleineren Objekts und kleiner als ein vorgegebener minimaler
Randkontrast ist.
23. Verfahren nach Anspruch 20, wobei der Bestätigungsschritt ausgeführt wird, um redundante
Identifikationen von inhomogenen Objekten aufzulösen, und ferner die folgenden Teilschritte einschließt:
(vi) Berechnen des Randkontrasts der größeren und kleineren gültigen Objekte; und
(vii) Löschen des kleineren gültigen Objekt, falls der mittlere Randkontrast des größeren
gültigen Objekts größer als der mittlere Randkontrast des kleineren gültigen Objekts und größer als ein
vorgegebener maximaler Randkontrast ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/349,581 US6058209A (en) | 1991-09-27 | 1994-12-05 | Method for resolving redundant identifications of an object |
PCT/US1995/015231 WO1996018167A1 (en) | 1994-12-05 | 1995-11-28 | Method for avoiding redundant identification (caused by artifacts in images of bacterial colonies) |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69521811D1 DE69521811D1 (de) | 2001-08-23 |
DE69521811T2 true DE69521811T2 (de) | 2002-10-31 |
Family
ID=23373035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69521811T Expired - Fee Related DE69521811T2 (de) | 1994-12-05 | 1995-11-28 | Verfahren zur vermeidung überflüssiger identifizierungen (verursacht durch antefakten in bildern von bakterienkolonien) |
Country Status (7)
Country | Link |
---|---|
US (1) | US6058209A (de) |
EP (1) | EP0796474B1 (de) |
JP (1) | JPH10510072A (de) |
AT (1) | ATE203344T1 (de) |
AU (1) | AU4286896A (de) |
DE (1) | DE69521811T2 (de) |
WO (1) | WO1996018167A1 (de) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10222663A (ja) * | 1997-01-31 | 1998-08-21 | Yamaha Motor Co Ltd | 画像認識システム及び装置 |
JP3370605B2 (ja) * | 1998-07-14 | 2003-01-27 | 富士通株式会社 | 3次元モデルの最適化装置および方法 |
DE19956625C2 (de) * | 1999-11-25 | 2002-08-14 | Daimler Chrysler Ag | Echtzeit-Datensortierung und -reduktion |
US6643410B1 (en) * | 2000-06-29 | 2003-11-04 | Eastman Kodak Company | Method of determining the extent of blocking artifacts in a digital image |
US7409647B2 (en) * | 2000-09-19 | 2008-08-05 | Technion Research & Development Foundation Ltd. | Control of interactions within virtual environments |
US7458061B2 (en) * | 2002-06-14 | 2008-11-25 | Sun Microsystems, Inc. | Protecting object identity in a language with built-in synchronization objects |
US7302096B2 (en) * | 2002-10-17 | 2007-11-27 | Seiko Epson Corporation | Method and apparatus for low depth of field image segmentation |
US7298885B2 (en) * | 2002-11-27 | 2007-11-20 | 3M Innovative Properties Company | Biological growth plate scanner with automated image processing profile selection |
US20040102903A1 (en) * | 2002-11-27 | 2004-05-27 | Graessle Josef A. | Biological growth plate scanner |
US7319031B2 (en) * | 2002-11-27 | 2008-01-15 | 3M Innovative Properties Company | Mounting platform for biological growth plate scanner |
US20040101954A1 (en) * | 2002-11-27 | 2004-05-27 | Graessle Josef A. | Back side plate illumination for biological growth plate scanner |
US7351574B2 (en) * | 2002-11-27 | 2008-04-01 | 3M Innovative Properties Company | Loading and ejection systems for biological growth plate scanner |
US20050178254A1 (en) * | 2003-07-02 | 2005-08-18 | Lexmark International Inc. | Method for setting a location of an incising boundary around one or more objects |
US7496225B2 (en) * | 2003-09-04 | 2009-02-24 | 3M Innovative Properties Company | Biological growth plate scanner with automated intake |
US7298886B2 (en) * | 2003-09-05 | 2007-11-20 | 3M Innovative Properties Company | Counting biological agents on biological growth plates |
WO2007148284A2 (en) * | 2006-06-23 | 2007-12-27 | Koninklijke Philips Electronics N.V. | A method, a system and a computer program for determining a threshold in an image comprising image values |
WO2009111301A1 (en) * | 2008-03-04 | 2009-09-11 | 3M Innovative Properties Company | Information management in automated processing of biological growth media |
BRPI0906086A2 (pt) * | 2008-03-04 | 2015-07-07 | 3M Innovative Properties Co | Método, sistemas e meio legível por computador. |
JP2010250658A (ja) * | 2009-04-17 | 2010-11-04 | Seiko Epson Corp | 印刷装置、画像処理装置、画像処理方法およびコンピュータープログラム |
US9743020B2 (en) | 2010-03-23 | 2017-08-22 | California Institute Of Technology | Super resolution optofluidic microscopes for 2D and 3D imaging |
CN103080331B (zh) | 2010-06-23 | 2014-07-09 | 株式会社N-Tech | 微生物检测方法、微生物检测设备和程序 |
US9426429B2 (en) | 2010-10-26 | 2016-08-23 | California Institute Of Technology | Scanning projective lensless microscope system |
US9569664B2 (en) * | 2010-10-26 | 2017-02-14 | California Institute Of Technology | Methods for rapid distinction between debris and growing cells |
US9643184B2 (en) | 2010-10-26 | 2017-05-09 | California Institute Of Technology | e-Petri dishes, devices, and systems having a light detector for sampling a sequence of sub-pixel shifted projection images |
US9343494B2 (en) | 2011-03-03 | 2016-05-17 | California Institute Of Technology | Light guided pixel configured for emissions detection and comprising a guide layer with a wavelength selective filter material and a light detector layer |
US8600172B2 (en) * | 2011-03-16 | 2013-12-03 | Sensormatic Electronics, LLC | Video based matching and tracking by analyzing one or more image abstractions |
US20130328760A1 (en) * | 2012-06-08 | 2013-12-12 | Qualcomm Incorporated | Fast feature detection by reducing an area of a camera image |
US9811563B2 (en) * | 2012-09-17 | 2017-11-07 | NetSuite Inc. | System and method for recursively iterating over a loosely associated data structure |
KR20150099779A (ko) | 2012-12-20 | 2015-09-01 | 쓰리엠 이노베이티브 프로퍼티즈 컴파니 | 기체 생성 미생물 콜로니를 검출하는 방법 |
EP3336195B1 (de) | 2012-12-20 | 2020-02-26 | 3M Innovative Properties Company | Verfahren zur differenzierung von mikrobenkolonien auf einem bild |
US8921067B2 (en) | 2013-02-04 | 2014-12-30 | 3M Innovative Properties Company | Method and culture device for detecting yeasts and molds |
KR102436447B1 (ko) | 2014-03-07 | 2022-08-24 | 쓰리엠 이노베이티브 프로퍼티즈 컴파니 | 호기성 세균을 검출하는 물품 및 방법 |
US9898842B2 (en) * | 2015-03-02 | 2018-02-20 | Sap Se | Method and system for generating data-efficient 2D plots |
KR102493051B1 (ko) * | 2016-09-20 | 2023-01-31 | 가부시키가이샤 닛스이 | 이물질이 제거된 어란 페이스트의 제조방법 및 이물질이 제거된 어란 페이스트의 제조장치 |
US9785886B1 (en) | 2017-04-17 | 2017-10-10 | SparkCognition, Inc. | Cooperative execution of a genetic algorithm with an efficient training algorithm for data-driven model creation |
US10963790B2 (en) | 2017-04-28 | 2021-03-30 | SparkCognition, Inc. | Pre-processing for data-driven model creation |
US10839266B2 (en) * | 2018-03-30 | 2020-11-17 | Intel Corporation | Distributed object detection processing |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3736432A (en) * | 1971-03-22 | 1973-05-29 | Varian Associates | Bacterial colony counting method and apparatus |
US3999047A (en) * | 1972-09-05 | 1976-12-21 | Green James E | Method and apparatus utilizing color algebra for analyzing scene regions |
US3811036A (en) * | 1972-09-19 | 1974-05-14 | Artek Syst Corp | Micro-biological colony counter |
US3873974A (en) * | 1973-10-12 | 1975-03-25 | Geometric Data Corp | Scanning system for location and classification of patterns |
US4097845A (en) * | 1976-11-01 | 1978-06-27 | Rush-Presbyterian-St. Luke's Medical Center | Method of and an apparatus for automatic classification of red blood cells |
US4183013A (en) * | 1976-11-29 | 1980-01-08 | Coulter Electronics, Inc. | System for extracting shape features from an image |
JPS5510621A (en) * | 1978-07-07 | 1980-01-25 | Copyer Co Ltd | Method and device for discrimination between inside and outside bordering closed curve |
US4453266A (en) * | 1980-04-21 | 1984-06-05 | Rush-Presbyterian-St. Luke's Medical Center | Method and apparatus for measuring mean cell volume of red blood cells |
US4493105A (en) * | 1982-03-31 | 1985-01-08 | General Electric Company | Method and apparatus for visual image processing |
JPS59133414A (ja) * | 1983-01-21 | 1984-07-31 | Agency Of Ind Science & Technol | 楕円形状検出方法とその装置 |
US4747153A (en) * | 1984-03-08 | 1988-05-24 | Japan As Represented By Director General Of Agency Of Industrial Science And Technology | Device and method for pattern recognition |
US4637053A (en) * | 1984-05-03 | 1987-01-13 | Spiral System Instruments, Inc. | Computer assisted biological assay system |
JPS60254279A (ja) * | 1984-05-31 | 1985-12-14 | Fuji Electric Co Ltd | 2値化しきい値の決定方法 |
JPS61249175A (ja) * | 1985-04-24 | 1986-11-06 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 図形処理装置 |
JPH0661091B2 (ja) * | 1985-09-10 | 1994-08-10 | 株式会社東芝 | 画像処理装置 |
US4958217A (en) * | 1986-02-27 | 1990-09-18 | Canon Kabushiki Kaisha | Image processing apparatus and method capable of extracting a particular image area using either hue or brightness |
US4718090A (en) * | 1986-04-14 | 1988-01-05 | Cooper Jr James E | Method and apparatus for high-speed processing of video images |
FR2602074B1 (fr) * | 1986-07-25 | 1991-05-17 | Univ Rennes | Systeme programmable d'acquisition et de visualisation rapide d'une image haute resolution. |
FR2602387B1 (fr) * | 1986-07-30 | 1988-10-21 | Trt Telecom Radio Electr | Procede d'extraction automatique d'un objet contraste dans une image numerique |
JPH01181173A (ja) * | 1988-01-14 | 1989-07-19 | Toshiba Corp | ベクトルフォント輪郭描画方式 |
JPH07118024B2 (ja) * | 1988-01-30 | 1995-12-18 | 株式会社東芝 | パターンデータ生成方式 |
JPH0277889A (ja) * | 1988-09-14 | 1990-03-16 | Ricoh Co Ltd | 図形塗りつぶし方式 |
US5073960A (en) * | 1989-05-18 | 1991-12-17 | Sharp Kabushiki Kaisha | Image processing method using improved Bresenham algorithm in creating an outline of a figure to be painted and apparatus adopting the method |
JP2746692B2 (ja) * | 1989-10-09 | 1998-05-06 | 富士通株式会社 | 色画像データ処理装置 |
JPH07104921B2 (ja) * | 1989-11-17 | 1995-11-13 | 松下電器産業株式会社 | 画像閾値決定方法 |
US5046118A (en) * | 1990-02-06 | 1991-09-03 | Eastman Kodak Company | Tone-scale generation method and apparatus for digital x-ray images |
US5048099A (en) * | 1990-05-21 | 1991-09-10 | Eastman Kodak Company | Polygon-based method for automatic extraction of selected text in a digitized document |
US5457754A (en) * | 1990-08-02 | 1995-10-10 | University Of Cincinnati | Method for automatic contour extraction of a cardiac image |
US5083313A (en) * | 1991-03-04 | 1992-01-21 | Reinsch Roger A | Video signal digitizer |
US5375177A (en) * | 1991-09-27 | 1994-12-20 | E. I. Du Pont De Nemours And Company | Method of identifying and characterizing a valid object by color |
US5371810A (en) * | 1991-09-27 | 1994-12-06 | E. I. Du Pont De Nemours And Company | Method of determining the interior points of an object in a background |
US5448652A (en) * | 1991-09-27 | 1995-09-05 | E. I. Du Pont De Nemours And Company | Adaptive display system |
US5481620A (en) * | 1991-09-27 | 1996-01-02 | E. I. Du Pont De Nemours And Company | Adaptive vision system |
-
1994
- 1994-12-05 US US08/349,581 patent/US6058209A/en not_active Expired - Fee Related
-
1995
- 1995-11-28 AT AT95941452T patent/ATE203344T1/de not_active IP Right Cessation
- 1995-11-28 EP EP95941452A patent/EP0796474B1/de not_active Expired - Lifetime
- 1995-11-28 WO PCT/US1995/015231 patent/WO1996018167A1/en active IP Right Grant
- 1995-11-28 AU AU42868/96A patent/AU4286896A/en not_active Abandoned
- 1995-11-28 JP JP8517628A patent/JPH10510072A/ja not_active Ceased
- 1995-11-28 DE DE69521811T patent/DE69521811T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
ATE203344T1 (de) | 2001-08-15 |
WO1996018167A1 (en) | 1996-06-13 |
JPH10510072A (ja) | 1998-09-29 |
US6058209A (en) | 2000-05-02 |
AU4286896A (en) | 1996-06-26 |
DE69521811D1 (de) | 2001-08-23 |
EP0796474B1 (de) | 2001-07-18 |
EP0796474A1 (de) | 1997-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69521811T2 (de) | Verfahren zur vermeidung überflüssiger identifizierungen (verursacht durch antefakten in bildern von bakterienkolonien) | |
DE69331968T2 (de) | Verfahren zur identifizierung und zum farbkennzeichnen eines gueltigen objektes | |
DE69331380T2 (de) | Adaptives anzeigesystem. | |
DE69604481T2 (de) | Verfahren und gerät zum trennen des vordergrunds und hintergrunds in textenthaltenden bildern | |
DE69612643T2 (de) | Verfahren und Vorrichtung zum Extrahieren spezifischer Bildinformation zum Erzeugen von Videoinformation | |
EP0425595B1 (de) | Verfahren und anordnung zur automatischen optischen klassifikation von pflanzen | |
DE3689416T2 (de) | Mustermerkmalextraktion. | |
DE69324207T2 (de) | Bildgruppierungsvorrichtung | |
DE69810369T2 (de) | Bildwiederauffindungsvorrichtung und -verfahren | |
DE60014959T2 (de) | Vorrichtung zur lagebestimmung von etiketten, unter verwendung mehrerer auflösungen | |
DE3650446T2 (de) | Paralleler, adaptiver, nichtlinearer Musterklassentrenner und -erkenner in mehreren Einheiten. | |
DE69937785T2 (de) | Verfahren zur Selektion von Farbblockpunkten für die Blockkodierung | |
DE69428293T2 (de) | Gerät zur bildidentifizierung | |
DE69322095T2 (de) | Verfahren und gerät zur identifizierung eines objekts mittels eine geordneten folge von grenz-pixel-parametern | |
EP2187351B1 (de) | Verfahren und Vorrichtung zum Erkennen von Objekten | |
EP2130174B1 (de) | Verfahren und vorrichtung zur ermittlung einer zellkontur einer zelle | |
DE69331383T2 (de) | Verfaren zur bestimmung der innenpunkte eines objektes in einem hintergrund | |
EP1797533B1 (de) | Verfahren und vorrichtung zur segmentierung einer digitalen abbildung von zellen | |
DE69231023T2 (de) | Bildverarbeitungssystem und Verfahren zur automatischen Objektauswahl | |
DE69422702T2 (de) | Verfahren zur bestimmung der aussenpunkte eines objektes in einem hintergrund | |
DE60217748T2 (de) | Verfahren und Gerät zur Anzeige eines Bildraumes | |
DE102019133685A1 (de) | Informationsverarbeitungssystem und -verfahren | |
DE102021201124A1 (de) | Trainieren von bildklassifizierernetzen | |
DE69423607T2 (de) | Verfahren zum klassifizieren von bildern mit ausgabeabbildungen | |
DE69015153T2 (de) | Segmentierungseinrichtung zur erzeugung farbinterpolationswerte für ein getastetes farbbildsignal. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8332 | No legal effect for de | ||
8370 | Indication related to discontinuation of the patent is to be deleted | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |