DE69331383T2 - Verfaren zur bestimmung der innenpunkte eines objektes in einem hintergrund - Google Patents
Verfaren zur bestimmung der innenpunkte eines objektes in einem hintergrundInfo
- Publication number
- DE69331383T2 DE69331383T2 DE69331383T DE69331383T DE69331383T2 DE 69331383 T2 DE69331383 T2 DE 69331383T2 DE 69331383 T DE69331383 T DE 69331383T DE 69331383 T DE69331383 T DE 69331383T DE 69331383 T2 DE69331383 T2 DE 69331383T2
- Authority
- DE
- Germany
- Prior art keywords
- gray level
- perimeter
- point
- value
- image
- 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 description 133
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000003703 image analysis method Methods 0.000 abstract 1
- 229910003460 diamond Inorganic materials 0.000 description 100
- 239000010432 diamond Substances 0.000 description 100
- 230000006870 function Effects 0.000 description 35
- 230000001174 ascending effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 241000607142 Salmonella Species 0.000 description 9
- 238000010200 validation analysis Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 6
- 241000894006 Bacteria Species 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000010191 image analysis Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 229920001817 Agar Polymers 0.000 description 2
- 239000008272 agar Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 239000008280 blood Substances 0.000 description 2
- 210000004369 blood Anatomy 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 241000894007 species Species 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 229920004943 Delrin® Polymers 0.000 description 1
- 240000005636 Dryobalanops aromatica Species 0.000 description 1
- 239000006155 Hektoen enteric agar Substances 0.000 description 1
- SNIOPGDIGTZGOP-UHFFFAOYSA-N Nitroglycerin Chemical compound [O-][N+](=O)OCC(O[N+]([O-])=O)CO[N+]([O-])=O SNIOPGDIGTZGOP-UHFFFAOYSA-N 0.000 description 1
- 238000000149 argon plasma sintering Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000002537 cosmetic Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004313 glare Effects 0.000 description 1
- 125000001475 halogen functional group Chemical group 0.000 description 1
- 229920001519 homopolymer Polymers 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- WSFSSNUMVMOOMR-NJFSPNSNSA-N methanone Chemical compound O=[14CH2] WSFSSNUMVMOOMR-NJFSPNSNSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000001717 pathogenic effect Effects 0.000 description 1
- 230000001575 pathological effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- XEBWQGVWTUSTLN-UHFFFAOYSA-M phenylmercury acetate Chemical compound CC(=O)O[Hg]C1=CC=CC=C1 XEBWQGVWTUSTLN-UHFFFAOYSA-M 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000011179 visual inspection Methods 0.000 description 1
Classifications
-
- 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/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
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- 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/12—Edge-based segmentation
-
- 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
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/194—Segmentation; Edge detection involving foreground-background segmentation
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- 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
-
- 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/30108—Industrial image inspection
- G06T2207/30128—Food products
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)
- Medical Informatics (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Radiology & Medical Imaging (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
- Analysing Materials By The Use Of Radiation (AREA)
- Image Processing (AREA)
Description
- Diese Erfindung ist eine Teilfortsetzung der Anmeldung mit der Serien-Nr. 07/767,339, die am 27. September 1991 eingereicht wurde.
- Hieran angehängt ist ein Mikrofilm, der 86 Modulbilder enthält, die in den beschriebenen Ausführungsformen und in anderen Ausführungsformen verwendet werden können. Dieser Mikrofilm ist als ein Teil der Offenbarung dieses Patentdokuments enthalten.
- Ein Teil der Offenbarung dieses Patentdokuments enthält Material, welches dem Urheberschutz unterliegt. Der Eigentümer des Urheberschutzes hat keinerlei Einwände gegenüber der Reproduktion des Patentdokuments oder der Patentoffenbarung durch Dritte, sowie sie in die Akte oder von Aufzeichnungen des Patent- und Markenamts erscheint, behält sich aber ansonsten sämtliche Urheberrechte vor.
- Die vorliegende Erfindung betrifft ein Analyseverfabren zum Bestimmen der inneren Punkte eines Objekts in einem Hintergrund. Die vorliegende Erfindung betrifft auch ein Verfahren zum Identifizieren wenigstens eines gültigen Objekts mit wenigstens einem vorgegebenen Attributwert in einem Hintergrund. Durch Bestimmen der inneren Punkte des Objekts kann man vorher identifizierte Objekte aus einem Bild des Objekts und des Hintergrunds "ausblenden" oder effektiv entfernen, wodurch ein Restbild für einen weiteren Suchvorgang erzeugt wird.
- Die Fähigkeit zum Zugreifen auf innere Punkte eines Bereichs, wenn seine Kontur bzw. sein Umfang gegeben ist, ist ein klassisches Problem bei der Bildverarbeitung. Vorherige Lösungen für dieses Problem sind von L. W. Chang und K. L. Leu in einem Artikel mit dem Titel "A Fast Algorithm for the Restoration of Images Based on Chain Codes Description and Its Applications" in Computer Vision, Graphics und Image Processing 50, 296-307 (1990) beschrieben worden. Ein beschriebener Algorithmus, ein Verbindbarkeits-Auffüllen, erfordert, dass jedes Pixel in dem Objekt befragt wird. Da die Anzahl von Pixeln innerhalb eines Objekts größer als die Anzahl von Pixeln, die den Umfang des Objekts umfassen, ist, ist eine derartige Technik relativ langsam. Ein anderes beschriebenes Verfahren ist eine Paritätsüberprüfimg, die sich auf die Tatsache stützt, dass die Überschneidung einer geraden Linie mit den Konturbereichen eines Objekts eine gerade Anzahl von Punkten auf dem Umfang des Objekts delinearisiert. Eine Auszeichnung der inneren Punkte wird durch eine beliebige Füllregel bestimmt, bei der sämtliche Punkte zwischen jedem ungeraden Punkt und dem nächsten geraden Punkt auf der Kontur in jeder Linie des Bilds als innere Punkte bestimmt werden. Ein derartiger Paritätsüberprüfungs-Algorithmus wird nicht mit Objekten einer komplexen Form arbeiten.
- In dem gleichen voranstehenden angegebenen Artikel schlagen Chang und Leu einen verbesserten Paritätsüberprüfungs-Algorithmus vor, der sich auf die Charakterisierung der Umfangspunkte in eine von vier Kategorien auf Grundlage von Richtungscodewerten stützt. Eine Charakterisierung der Punkte führt zu der Erzeugung eines neuen Puffers von Umfangspunkten, wobei einige Punkte dupliziert und andere beseitigt worden sind. Durch Anwenden des Paritätsüberprüfungs-Algorithmus auf den neu erzeugten Puffer können innere Punkte von Objekten mit komplexen Formen identifiziert werden. Jedoch ist der verbesserte Algorithmus, der von Chang und Leu angeboten wird, ein indirektes Verfahren zum Lösen des Problems der Innenpunktbestimmung, das eine extensive Anzahl von Schritten erfordert.
- Die japanische Patentanmeldung mit der Nummer 62-60069 von Hitachi Electronic Engineering Co., Ltd., veröffentlicht am 12/14/87, offenbart eine Kolonie-Abschirmungseinrichtung, die Kolonien auf Grundlage der Farbe unterscheidet. Kolonien werden durch eine Mustererkennung unter Verwendung eines vorgegebenen Schwellwerts identifiziert und eine kleine Anzahl von Punkten in der Mitte einer Kolonie wird beliebig gewählt. Diese Veröffentlichung offenbart nicht ein Verfahren zum Bestimmen sämtlicher Innenpunkte eines Objekts. Ein Begrenzen der Fläche bzw. des Gebiets für die Bestimmung führt Fehlermöglichkeiten bei irgendeinem Versuch einer Objektidentifikation ein und macht eine Durchsuchung des Restabschnitts des Bilds weniger effektiv.
- Das U. S. Patent Nr. 4,453,266 von Bacus offenbart ein Verfahren zum Messen der optischen Dichte einer Zelle unter Verwendung der Summe von Graupegelwerten innerhalb der geschlossenen Ränder bzw. Grenzen der Zelle. Bacus führt keinerlei Erwägungen einer Bestimmung sämtlicher inneren Punkte eines Objekts mit einer unbekannten und beliebigen Form unter Verwendung einer automatischen Schwellwertverwendungs-Technik vor.
- Keine von diesen Referenzen offenbart ein Verfahren zum Bestimmen sämtlicher inneren Punkte des identifizierten Objekts. Ferner offenbart keine von diesen Referenzen ein Verfahren zum Identifizieren wenigstens eines gültigen Objekts, das wenigstens einen vorgegebenen Attributwert eines gültigen Objekts in einem Hintergrund unter Verwendung von automatisch berechneten Schwellwerten durch Bestimmen der inneren Punkte des Objekts aufweist. Ferner offenbart keine von diesen Referenzen ein Verfahren zum effektiven Entfernen eines vorher identifizierten Objekts aus einem Bild, wodurch ein Restbild für eine weitere Durchsuchung erzeugt wird.
- Demzufolge löst die vorliegende Erfindung die Probleme des Standes der Technik durch Bereitstellen eines Verfahrens zum Bestimmen der inneren Punkte des identifizierten Objekts.
- Die vorliegende Erfindung löst die Probleme des Standes der Technik auch durch Bereitstellen eines Verfahrens zum Identifizieren von Objekten mit wenigstens einem vorgegebenen Attributwert in einem Hintergrund unter Verwendung von automatisch berechneten Schwellwerten durch Bestimmen der inneren Punkte der identifizierten Objekte. Insbesondere ist das Verfahren der vorliegenden Erfindung in die Lage, Objekte in einem sich verändernden Hintergrund zu identifizieren.
- Die vorliegende Erfindung löst ferner die Probleme des Standes der Technik durch Bereitstellen eines Verfahrens zum effektiven Entfernen eines vorher identifizierten Objekts aus einem Bild, wodurch ein Restbild für eine weitere Durchsuchung erzeugt wird.
- Das Verfahren der vorliegenden Erfindung löst die Probleme des Standes der Technik auch durch Bereitstellen von Füllregeln, die spezifisch für jeden Umfangspunkt eines Objekts sind, um ein Richtungsverfahren zum Bestimmen der inneren Punkte des Objekts bereitzustellen.
- Um die vorangehenden Lösungen zu erreichen und in Übereinstimmung mit den Absichten einer ersten Ausführungsform der Erfindung, wie hier verkörpert und breit beschrieben, ist ein Verfahren zum Bestimmen der inneren Punkte eines Objekts in einem Hintergrund vorgesehen. Das Verfahren umfasst die Schritte zum Erzeugen eines Bilds des Objekts und des Hintergrunds, ein Durchsuchen des Bilds nach dem Objekt und ein Bestimmen der Umfangspunkte des Objekts. Das Verfahren umfasst auch die Schritte zum Erzeugen eines Umfangspuffers. Der Umfangspuffer umfasst die Umfangspunkte, wobei jeder Umfangspunkt einen Zeilenpositions-Koordinatenwert, einen Spaltenpositions-Koordinatenwert und einen Richtungscodevektor aufweist. Der Richtungscodevektor umfasst einen ersten und einen zweiten Richtungscodewert für jeden Umfangspunkt. Der erste Richtungscodewert beschreibt die Beziehung von jedem jeweiligen Umfangspunkt zu dem nächsten Umfangspunkt und der zweite Richtungscodewert beschreibt die Beziehung von jedem jeweiligen Umfangspunkt zu dem vorangehenden Umfangspunkt. Das Verfahren umfasst auch den Schritt zum Sortieren der Umfangspunkte in dem Umfangspuffer in einer vorgegebenen Reihenfolge, um einen sortierten Umfangspuffer zu erzeugen, und zum Zuweisen einer Statusvariablen, die einen eines ersten und eines zweiten Werts aufweist, wobei der Wert der Statusvariablen durch die ersten und zweiten Richtungscodewerte bestimmt wird, zu jedem Umfangspunkt in dem sortierten Umfangspuffer. Das Verfahren umfasst auch den Schritt, bei dem als die inneren Punkte des Objekts jeder Punkt auf dem gleichen Liniensegment wie der Umfangspunkt, der gerade untersucht wird und zwischen dem untersuchten Umfangspunkt und dem nächsten Umfangspunkt in dem sortierten Umfangspuffer liegt, bestimmt wird, wobei dem untersuchten Umfangspunkt der erste Wert der Statusvariablen zugewiesen wird.
- Ferner ist in Übereinstimmung mit den Absichten einer zweiten Ausführungsform der Erfindung, wie hier verkörpert und breit beschrieben, ein Verfahren zum Identifizieren wenigstens eines gültigen Objekts mit wenigstens einem vorgegebenen Attributwert in einem Hintergrund vorgesehen. Das Verfahren umfasst die Schritte zum Erzeugen eines Bilds des Objekts und des Hintergrunds, ein Durchsuchen des Bilds nach wenigstens einem Kandidatenobjekt unter Verwendung wenigstens eines automatisch erzeugten Schwellwerts und zum Bestimmen der Umfangspunkte des Kandidatenobjekts. Das Verfahren umfasst auch den Schritt zum Erzeugen eines Umfangspuffers. Der Umfangspuffer umfasst die Umfangspunkte, wobei jeder Umfangspunkt einen Zeilenpositions-Koordinatenwert, einen Spaltenpositions-Koordinatenwert und einen Richtungscodevektor aufweist. Der Richtungscodevektor umfasst einen ersten und einen zweiten Richtungscodewert für jeden Umfang. Der erste Richtungscodewert beschreibt den Zusammenhang von jedem jeweiligen Umfangspunkt zu dem nächsten Umfangspunkt und der zweite Richtungscodewert beschreibt die Beziehung jedes jeweiligen Umfangspunkts zu dem vorangehenden Umfangspunkt. Das Verfahren umfasst auch den Schritt zum Sortieren der Umfangspunkte in dem Umfangspuffer in einer vorgegebenen Reihenfolge, um einen sortierten Umfangspuffer zu erzeugen, und ein Zuweisen einer Statusvariablen, die einen eines ersten und eines zweiten Werts aufweist, wobei der Wert der Statusvariable durch die ersten und zweiten Richtungscodewerte bestimmt wird, an jeden Umfangspunkt in dem sortieren Umfangspuffer. Das Verfahren umfasst auch den Schritt, bei dem als die inneren Punkte des Objekts jeder Punkt auf dem gleichen Liniensegment wie der Umfangspunkt, der gerade untersucht wird und zwischen dem untersuchten Umfangspunkt und dem nächsten Umfangspunkt in dem sortierten Umfangspuffer liegt, bestimmt wird, wobei dem untersuchten Umfangspunkt der erste Wert der Statusvariablen zugewiesen wird. Das Verfahren umfasst auch die Schritte, bei denen das Kandidatenobjekt durch den Kandidatenobjekt-Attributwert charakterisiert wird und das Kandidatenobjekt mit dem vorgegebenen Attributwert eines gültigen Objekts als gültig erkannt wird, um das gültige Objekt zu identifizieren.
- Um ein vorher identifiziertes Objekt aus einem Bild zu entfernen, ist ein Verfahren zum Erzeugen eines Restbilds für eine weitere Durchsuchung vorgesehen. Das Verfahren umfasst die Schritte der zweiten Ausführungsform und umfasst zusätzlich die Schritte zum Wählen eines vorgegebenen Graupegelwerts und Scannen des Bilds, um sämtliche Punkte mit dem vorgegebenen Graupegelwert zu bestimmen, zum erneuten Zuweisen eines neuen vorgegebenen Graupegelwerts zu dem Graupegelwert jedes Punkts, der den vorgegebenen Graupegelwert aufweist, und Zuweisen des vorgegebenen Graupegelwerts zu allen inneren Punkten von sämtlichen gültigen Objekten. Das Verfahren umfasst auch die Schritte zum Erzeugen eines Graupegelhistogramms eines Restbilds, wobei das Restbild sämtliche Punkte umfasst, die einen anderen Graupegelwert als den vorgegebenen Graupegelwert aufweisen, Wählen von N-globalen entropischen Schwellenpegeln, Aufteilen des Graupegelhistogramms in N + 1 Unterhistogramme unter Verwendung jedes der entropisch gewählten Schwellengraupegelwerte, Durchsuchen von Abschnitten bzw. Teilen des Bilds entsprechend zu jedem Unterhistogramm unter Verwendung jedes globalen entropisch gewählten Schwellengraupegelwerts für wenigstens ein neues Kandidatenobjekt, wobei das neue Kandidatenobjekt wenigstens einen Kandidatenobjekt-Attributwert aufweist, und Validieren der neuen Kandidatenobjekte, die die vorgegebenen Attributwerte für ein gültiges Objekt aufweisen, für jedes der Subhistogramme, um das gültige Objekt zu identifizieren.
- Die beiliegenden Zeichnungen, die einen Teil der Beschreibung bilden und darin eingebaut sind, illustrieren die gegenwärtig bevorzugten Ausführungsformen der Erfindung und dienen zusammen mit der allgemeinen voranstehend angegebenen Beschreibung und der ausführlichen Beschreibung der nachstehend angegebenen bevorzugten Ausführungsformen der Erläuterung der Prinzipien der Erfindung. In den Zeichnungen zeigen:
- Fig. 1 ein Blockdiagramm, das die Schritte des Gesamtverfahrens gemäß einer ersten Ausführungsform der vorliegenden Erfindung zeigt;
- Fig. 2A eine schematische Ansicht mit bestimmten Zeilen und Spalten, die die Zeilen- und Spaltenpositions-Koordinatenwerte eines einfachen Objekts, das in einer Uhrzeigerrichtung abgetastet bzw. nachgezeichnet wird, darstellt;
- Fig. 2B ein Diagramm, das den Zeilenpositions-Koordinatenwert, den Spaltenpositions- Koordinatenwert und die Richtungscodewerte für die in Fig. 2A dargestellten 13 Punkte zeigt;
- Fig. 3 ein Flussdiagramm, das die Schritte eines Moduls GET PERIM zum Bestimmen der Koordinaten jedes Umfangspunkts eines Objekts zeigt;
- Fig. 4 eine schematische Ansicht, die Richtungscodewerte für ein Objekt darstellt, welches in der Uhrzeigerrichtung abgetastet bzw. nachgezeichnet wird;
- Fig. 5 eine schematische Ansicht, die die Richtungscodewerte für ein Objekt darstellen, welches in der Gegenuhrzeigerrichtung nachgezeichnet bzw. abgetastet wird;
- Fig. 6A und 6B ein Flussdiagramm, die die Schritte eines Moduls LOAD PUFFER zeigt, das einen Umfangspuffer erzeugt, der die Umfangspunkte eines Objekts umfasst;
- Fig. 7 ein Flussdiagramm, das die Schritte eines Teils eines Moduls READ COLOR zeigt, das eine Statusvariable zu jedem Umfangspunkt zuweist;
- Fig. 8 eine FILL Nachschlagtabelle für Objekte, die in einer Uhrzeigerrichtung abgetastet bzw. nachgezeichnet werden;
- Fig. 9 eine FILL Nachschlagtabelle für Objekte, die in der Gegenuhrzeigerrichtung abgetastet werden;
- Fig. 10A und 10B ein Flussdiagramm, das die Schritte eines Teils des Moduls READ COLOR für die Implementierung der ersten Ausführungsform der vorliegenden Erfindung zeigt, wobei die Umfangspunkte in dem Umfangspuffer zuerst zeilenweise und dann spaltenweise sortiert werden;
- Fig. 11A ein schematisches Diagramm, das einen Rot-Grün-Blau-Farbraum zeigt;
- Fig. 11B ein schematisches Diagramm, das einen Rot-Grün-Blau-Farbtonkreis zeigt;
- Fig. 12 ein Flussdiagramm, das die Schritte eines Moduls HISTOGRAM zeigt, das verwendet wird, um ein Graupegelhistogramm eines Bilds zu erzeugen;
- Fig. 13 ein Flussdiagramm, das die Schritte eines Moduls ENTROPY zeigt, das verwendet wird, um einen Schwellengraupegel entropisch derart zu wählen, dass die Entropiefunktion des Histogramms in Übereinstimmung mit einer spezifischen Anwendung der ersten Ausführungsform maximiert wird;
- Fig. 14 ein Graupegelhistogramm eines Bilds eines einzelnen einfachen Objekts in einem sich ändernden Hintergrund;
- Fig. 15 ein Flussdiagramm, das die Schritte eines Moduls SEARCH IMAGE zeigt, das verwendet wird, um ein Bild nach wenigstens einem Kandidatenobjekt zu durchsuchen;
- Fig. 16 ein Flussdiagramm, das die Schritte eines Moduls FIND OBJECT darstellt, welches ebenfalls zum Durchsuchen des Bilds verwendet wird;
- Fig. 17 ein Blockdiagramm, das das Gesamtverfahren einer zweiten Ausführungsform der vorliegenden Erfindung zeigt;
- Fig. 18 ein Flussdiagramm, das die Schritte eines Moduls COL FILT zeigt, das zum Filtern von Objekten verwendet wird;
- Fig. 19A-19B ein Flussdiagramm, das die Schritte eines Moduls TRACE OBJECT zeigt, das zum Nachzeichnen bzw. Abtasten von Objekten verwendet wird;
- Fig. 20 ein Flussdiagramm, das die Schritte eines Moduls CHK GRAY darstellt, das verwendet wird, um zu erfassen, ob ein Kandidatenobjekt relativ heller oder dunkler als der Hintergrund ist;
- Fig. 21A-21C ursprüngliche obere bzw. untere Graupegelhistogramme eines Bilds für eine erste spezifische Implementierung der zweiten Ausführungsform der vorliegenden Erfindung;
- Fig. 22 ein Flussdiagramm, das die Schritte eines Moduls ANALYZE zeigt, das verwendet wird, um das Bild nach Kandidatenobjekten in Übereinstimmung mit der ersten spezifischen Implementierung der zweiten Ausführungsfonn rekursiv zu durchsuchen;
- Fig. 23A-23D ein Flussdiagramm, das die Schritte eines Moduls CHK LIST zeigt, das zum Auflösen von Redundanzen in inhomogenen Objekten verwendet wird;
- Fig. 24 ein Flussdiagramm, das die Schritte eines Moduls SET STAT zeigt, das mit dem Modul CHK LIST verwendet wird, wie in den Fig. 22A-22D gezeigt;
- Fig. 25A-25B ein Flussdiagramm, das die Schritte eines Moduls CHK LIST zeigt, das verwendet wird, um Redundanzen in inhomogenen Objekten aufzulösen;
- Fig. 26 ein Flussdiagramm, das die Schritte eines Moduls SET STAT zeigt, das mit dem Modul CHK LIST wie in den Fig. 25A-25B gezeigt, verwendet wird;
- Fig. 27A-27B ein Flussdiagramm, das die Schritte eines Moduls FINAL CHK zeigt, das verwendet wird, um eine abschließende Überprüfung zum Auflösen von Redundanzen in inhomogenen und homogenen Objekten verwendet wird;
- Fig. 28 ein Flussdiagramm, das die Schritte eines Moduls INT STAT zeigt, das mit dem Modul FiNAL CHK verwendet wird, wie in den Fig. 27A-27B gezeigt;
- Fig. 29A-29B ein Flussdiagramm, das die Schritte des Gesamtverfahrens einer zweiten spezifischen Implementierung der zweiten Ausführungsform der vorliegenden Erfindung zeigt;
- Fig. 30 ein Graupegelhistogramm, das in N + 1 Unterhistogrammen in Übereinstimmung mit der zweiten spezifischen Anwendung der zweiten Ausführungsform aufgeteilt worden ist; und
- Fig. 31 ein schematisches Diagramm, das die Komponenten eines Systems zeigt, das mit den ersten und zweiten Ausführungsformen der vorliegenden Erfindung verwendet wird.
- Nun wird ausführlich auf die vorliegenden bevorzugten Ausführungsformen der Erfindung, wie in den beiliegenden Zeichnungen dargestellt, Bezug genommen.
- Gemäß einer ersten Ausführungsform der vorliegenden Erfindung ist ein Verfahren zum Bestimmen der inneren Punkte eines Objekts in einem Hintergrund vorgesehen. Fig. 1 ist ein Blockdiagramm, das das gesamte Verfahren der vorliegenden Erfindung zeigt. Das Verfahren umfasst den Schritt zum Erzeugen eines Bilds des Objekts und des Hintergrunds, wie im Block A in Fig. 1 gezeigt. Die Hardware, die zum Implementieren des Verfahrens der vorliegenden Erfindung verwendet wird, muss zunächst initialisiert werden, wenn das Bild erzeugt wird. Das Bild des Objekts und des Hintergrunds kann durch eine Kamera erzeugt werden. Obwohl eine CCD Kamera allgemein mit der vorliegenden Erfindung verwendet wird, kann ohne Abweichung von den allgemeinen Prinzipien der vorliegenden Erfindung irgendeine Art von Kamera verwendet werden. Das Bild wird dann durch eine Rahmen- Ergreifmgseinrichtung oder einen Video-Digitalisierer digitalisiert und gespeichert.
- Das Verfahren der vorliegenden Erfindung umfasst auch den Schritt zum Durchsuchen des Bilds nach dem Objekt, wie im Block B in Fig. 1 gezeigt. Der Durchsuchungsschritt kann das Durchsuchen des gesamten Objekts umfassen. Bei Fällen, bei denen bekannt ist, dass ein fragliches Identifikationsmerkmal eines Objekts in einem bestimmten Teil eines Objekts liegt, kann der Suchschritt nur das Durchsuchen dieses Teiles bzw. Abschnitts des Objekts umfassen. Der Suchschritt kann in irgendeiner Weise durchgeführt werden, zum Beispiel unter Verwendung eines automatisch berechneten Schwellwerts oder eines vom Benutzer gewählten Schwellwerts.
- Das Verfahren der vorliegenden Erfindung umfasst ferner den Schritt zum Bestimmen der Umfangspunkte des Objekts, was durch ein Abtasten bzw. Nachverfolgen (Nachzeichnen bzw. Nachziehen) des Objekts durchgeführt wird. Dieser Schritt ist im Block C der Fig. 1 gezeigt. Die Koordinaten jedes Umfangspunkts werden durch ein Modul GET PERIM bestimmt. Die Schritte von GET PERIM sind in Fig. 3 dargestellt. Die grundlegenden Prinzipien des GET PERiM Moduls sind ähnlich wie diejenigen, die in "Digital Image Processing" von Rafael C. Gonzales und Paul Wintz, zweite Auflage, Addison-Wesley Publishing Company, Reading, Massachusetts (1987) beschrieben sind. In einem Fall umfasst der Schritt zum Bestimmen der Umfangspunkte des Objekts ein Nachverfolgen des Objekts sequentiell in einer Uhrzeigerrichtung. In einem anderen Fall umfasst der Schritt zum Bestimmen der Umfangspunkte des Objekts ein Nachverfolgen (Tracing) des Objekts sequentiell in einer Gegenuhrzeigerrichtung.
- Das Verfahren der vorliegenden Erfindung umfasst auch den Schritt zum Erzeugen eines Umfangspuffers. Dieser Schritt ist allgemein mit dem Block D der Fig. 1 gezeigt und wird von einem Modul LOAD BUFFER ausgeführt, wie spezifisch in Fig. 6 gezeigt, wie nachstehend beschrieben. Der Umfangspuffer umfasst die Umfangspunkte, wie von dem Modul GET PERIM bestimmt.
- Fig. 2A zeigt eine schematische Darstellung für ein einzelnes Objekt, welches in einer Uhrzeigerrichtung nachverfolgt bzw. abgetastet wird. Für Illustrationszwecke sind 13 Umfangspunkte gezeigt. Jeder Umfangspunkt weist einen Zeilenpositions-Koordinatenwert, einen Spaltenpositions- Koordinatenwert und einen Richtungscodevektor auf. Der Richtungscodevektor umfasst einen ersten und einen zweiten Richtungscodewert für jeden Umfangspunkt. Der erste Richtungscodewert beschreibt die Beziehung jedes jeweiligen Umfangspunkts zu dem nächsten Umfangspunkt, wie von dem GET PERIM Modul bestimmt, und der zweite Richtungscodewert beschreibt die Beziehung jedes jeweiligen Umfangspunkts zu dem vorangehenden Umfangspunkt, wie von dem GET PERIM Modul bestimmt. Die Definition eines "nächsten oder vorangehenden Punkts", wie nachstehend diskutiert, hängt von der Richtung ab, in der das Objekt nachverfolgt wird. Das i-te Element des Umfangspuffers wird mit dem Richtungscode-Beschreiber (xi, yi, Vektori) bezeichnet, wobei xi der Zeilenpositions-Koordinatenwert ist, yi der Spaltenpositions-Koordinatenwert ist und Vektori der Richtungscodevektor ist, der die folgende Information enthält:
- (i) nexti ist der Richtungscodewert zu dem nächsten Umfangspunkt; und
- (ii) previ ist der Richtungscodewert von dem vorangehenden Punkt zu dem gegenwärtigen Punkt.
- Fig. 2B ist ein Diagramm, das den Zeilenpositions-Koordinatenwert, den Spaltenpositions- Koordinatenwert und die ersten und zweiten Richtungscodewerte für die 13 Punkte, die in Fig. 2A gezeigt sind, zeigt. Zum Beispiel ist ein Punkt 13 gezeigt, der einen Zeilenpositions-Koordinatenwert von 2, einen Spaltenpositions-Koordinatenwert von 1, einen ersten Richtungscodewert von 1 und einen zweiten Richtungscodewert von 7 aufweist.
- Bei der vorliegenden Erfindung können die Richtungscodewerte im Bereich von 0-7 liegen, in Abhängigkeit von der Richtung jedes Umfangspunkts zu einem benachbarten Umfangspunkt (entweder der nächste Umfangspunkt oder der vorangehende Umfangspunkt). Die Richtungscodewerte für die vorliegende Erfindung sind in den Fig. 4 und 5 gezeigt. Die Richtungscodewerte der Fig. 5 werden durch Drehen der Werte, die in Fig. 4 dargestellt sind, um 90º abgeleitet. Die Anwendung des Satzes von Richtungscodewerten, wie in Fig. 4 dargestellt, im Gegensatz zu den Richtungscodewerten wie in Fig. 5 dargestellt, hängt von dem Verfahren zur Sortierung des Umfangspuffers, was nachstehend diskutiert werden soll, ab. Wenn, wie sich der Fig. 4 entnehmen lässt, nexti gleich Null ist, würde der nächste Umfangspunkt vertikal über dem gegenwärtigen Umfangspunkt und in der gleichen Spalte sein. Es ist wichtig zu realisieren, dass der Wert eines Richtungscodes von einem Umfangspunkt zu dem nächsten von dem Sinn abhängt, in dem das Objekt durch das Modul GET PERIM nachverfolgt wird. Wenn das Objekt in der Uhrzeigerrichtung nachverfolgt wird, dann sind die Richtungscodes, die zu dem Umfangspunkten gehören, anders als in dem Fall, bei dem das Objekt in der Gegenuhrzeigerrichtung nachverfolgt wird.
- Die Schritte des Moduls GET PERIM sind in Fig. 3 dargestellt. Wie in Fig. 3 dargestellt, setzt ein Block A den gegenwärtigen Punkt auf den ersten Punkt in dem Objekt. Eine Entscheidungsraute B fragt dann, ob der nächste Umfangspunkt gefunden worden ist. Wenn nicht, dann ist das abgetastete bzw. nachverfolgte Objekt nicht gültig, und das Modul ist durchgeführt, wie in Block C gezeigt. Wenn der nächste Umfangspunkt gefunden worden ist, dann werden die Zeilen- und Spaltenpositions- Koordinatenwerte in dem Umfangspuffer gespeichert, wie im Block D der Fig. 3 gezeigt. Der gegenwärtige Punkt wird auf den nächsten Umfangspunkt gesetzt, wie im Block E der Fig. 3 gezeigt. Die Entscheidungsraute F fragt dann, ob der gegenwärtige Punkt an dem ersten Umfangspunkt ist. Wenn nicht, dann wird die Schleife durch die Entscheidungsraute B, die Blöcke C-E und die Entscheidungsraute F wiederholt, bis der gegenwärtige Punkt an dem ersten Umfangspunkt ist. Wenn die Antwort zu der Entscheidungsraute F ja ist, dann ist das Modul GET PERN durchgeführt.
- Die Schritte des Moduls LOAD BUFFER, das einen Umfangspuffer erzeugt, sind in den Fig. 6A und 6B dargestellt. In dem ersten Schritt, wie im Block A gezeigt, wird der gegenwärtige Punkt auf den ersten Punkt in dem Umfangspuffer gesetzt. Die Entscheidungsraute B fragt dann, ob der gegenwärtige Punkt über den letzten Punkt in dem Puffer hinaus ist. Wenn dem so ist, dann wird das LOAD BUFFER Modul durchgeführt, wie im Block C der Fig. 6A gezeigt. Wenn der gegenwärtige Punkt nicht über dem letzten Punkt in dem Puffer hinausgeht, dann fragt die Entscheidungsraute D, ob der gegenwärtige Punkt der erste Punkt in dem Puffer ist. Wenn dem so ist, dann setzt der Block E den vorangehenden Punkt als den letzten Punkt in dem Puffer. Wenn der gegenwärtige Punkt nicht der erste Punkt in dem Puffer ist, dann fragt die Entscheidungsraute F, ob der gegenwärtige Punkt der letzte Punkt in dem Puffer ist. Wenn dem so ist, dann setzt der Block G den nächsten Punkt als den ersten Punkt in dem Puffer. Nachdem der vorangehende Punkt als der letzte Punkt in dem Umfangspuffer gesetzt ist oder der nächste Punkt als der erste Punkt in dem Umfangspuffer gesetzt ist, wird die Differenz in dem Zeilenkoordinatenwert zwischen dem nächsten Punkt und dem gegenwärtigen Punkt berechnet und in dem Puffer gespeichert, wie im Block H in Fig. 6A gezeigt. Diese Differenz wird mit Δ ROWNEXT bezeichnet. Die Differenz in dem Spaltenkoordinatenwert zwischen dem nächsten Punkt und dem gegenwärtigen Punkt wird dann berechnet und in dem Puffer gespeichert, wie im Block I in Fig. 6A gezeigt. Diese Differenz wird mit Δ COLNEXT bezeichnet. Die Differenz in dem Zeilenkoordinatenwert zwischen dem gegenwärtigen Punkt und dem vorangehenden Punkt wird dann berechnet und in dem Puffer gespeichert, wie im Block J in Fig. 6B gezeigt. Diese Differenz wird mit Δ ROWPREV bezeichnet. Als nächstes wird die Differenz in dem Spaltenkoordinatenwert zwischen dem gegenwärtigen Punkt und dem vorangehenden Punkt berechnet und in dem Puffer gespeichert, wie in dem Block K gezeigt. Diese Differenz wird mit Δ COLPREV bezeichnet. Der gegenwärtige Punkt wird dann an den nächsten Umfangspunkt in dem Puffer bewegt, wie im Block L gezeigt, und das Modul kehrt zu der Entscheidungsraute B der Fig. 6A zurück. Die Schleife durch B und D- L wird fortgesetzt, bis der gegenwärtige Punkt über den letzen Punkt in dem Puffer hinaus ist, wobei an diesem Punkt das LOAD BUFFER Modul durchgeführt ist, wie im Block C gezeigt.
- Das Verfahren der vorliegenden Erfindung umfasst auch den Schritt zum Sortieren der Umfangspunkte in dem Umfangspuffer in einer vorgegebenen Reihenfolge, um einen sortierten Umfangspuffer zu erzeugen. Dieser Schritt ist im Block E in Fig. 1 dargestellt. Dieser Sortierungsschritt wird ausgeführt, um das Objekt entweder in der Uhrzeiger- oder der Gegenuhrzeiger-Richtung nachzuverfolgen (abzutasten). Dieser Sortierungsschritt wird durch die standardmäßige "Shell Sort" Technik ausgeführt, die von Robert Sedgewick in seinem Textbuch Algorithms in C, Addison Wesley, 1990, beschrieben ist. Es sei darauf hingewiesen, dass die "Vektori" Information, die zu jedem Umfangspunkt gehört, sich mit dem Punkt während der Sortierung bewegt.
- Bei einer ersten Implementierung der ersten Ausführungsform der Erfindung wird das Objekt in der Uhrzeigerrichtung nachverfolgt und der Sortierungsschritt umfasst den Unterschritt zum Sortieren der Umfangspunkte in dem Umfangspuffer zeilenweise in einer vorgegebenen Reihenfolge, um einen Zeilensortierten Umfangspuffer zu erzeugen, der wenigstens einen Zeilen-sortierten Umfangspunkt umfasst. Der Unterschritt zum Sortieren der Umfangspunkte zeilenweise umfasst das Sortieren der Umfangspunkte in einer ansteigenden Reihenfolge, so dass die Punkte mit den niedrigsten Zeilenpositions-Koordinatenwerten an dem Start (was das erste Element der Sequenz des Puffers bedeutet) des Puffers platziert werden. Alternativ umfasst der Unterschritt zum Sortieren der Umfangspunkte zeilenweise die Sortierung der Umfangspunkte in einer abfallenden Reihenfolge, so dass die Punkte mit den höchsten Zeilenpositions- Koordinatenwerten an dem Start des Puffers platziert werden.
- Bei dieser Implementierung der ersten Ausführungsform umfasst der Sortierungsschritt auch den zusätzlichen Unterschritt zum Sortieren der Umfangspunkte in einem Zeilen-sortierten Umfangspuffer spaltenweise (nach der Spalte) in einer weiteren vorgegebenen Reihenfolge, um einen Zeilen-Spaltensortierten Umfangspuffer zu erzeugen, der wenigstens einen Zeilen-Spalten-sortierten Umfangspunkt umfasst. Der Unterschritt zum Sortieren der Umfangspunkte nach der Spalte umfasst das Sortieren der Umfangspunkte in einer ansteigenden Reihenfolge. Für den Fall, dass der Puffer zeilenweise (nach der Zeile) in einer ansteigenden Reihenfolge und danach spaltenweise sortiert worden ist, wird der Punkt mit dem niedrigsten Spaltenpositions-Koordinatenwert und dem niedrigsten Zeilenpositions-Koordinatenwert an dem Start des Puffers platziert. Für den Fall, dass der Puffer zeilenweise in einer abfallenden Reihenfolge und danach spaltenweise sortiert worden ist, wird der Punkt mit dem niedrigsten Spaltenpositions-Koordinatenwert und dem höchsten Zeilenpositions-Koordinatenwert an dem Start des Puffers platziert.
- In einer zweiten Implementierung der ersten Ausführungsform wird das Objekt in der Uhrzeigerrichtung nachverfolgt (abgetastet) und der Sortierungsschritt umfasst den Unterschritt zum Sortieren der Umfangspunkte in dem Umfangspuffer spaltenweise in einer vorgegebenen Reihenfolge, um einen Spalten-sortierten Umfangspuffer zu erzeugen, der wenigstens einen Spalten-sortierten Umfangspunkt umfasst. Bei dieser Implementierung umfasst der Sortierungsschritt den Unterschritt zum Sortieren der Umfangspunkte in dem Spalten-sortierten Umfangspuffer zeilenweise in einer vorgegebenen Reihenfolge, um einen Spalten-Zeilen-sortierten Umfangspuffer zu erzeugen, der wenigstens einen Spalten- Zeilen-sortierten Umfangspunkt umfasst. Der Unterschritt zum Sortieren der Umfangspunkte spaltenweise umfasst das Sortieren der Umfangspunkte in einer ansteigenden Reihenfolge, so dass die Punkte mit den niedrigsten Spaltenpositions-Koordinatenwerten an dem Start des Puffers platziert werden. Alternativ umfasst der Unterschritt zum Sortieren der Umfangspunkte spaltenweise das Sortieren der Umfangspunkte in einer abfallenden Reihenfolge, so dass die Punkte mit den höchsten Spaltenpositions-Koordinatenwerten an dem Start des Puffers platziert werden.
- Bei dieser zweiten Implementierung umfasst der Sortierungsschritt auch den zusätzlichen Unterschritt zum Sortieren der Umfangspunkte in einem Spalten-sortierten Puffer zeilenweise in einer weiteren vorgegebenen Reihenfolge, um einen Spalten-Zeilen-sortierten Umfangspuffer zu erzeugen, der wenigstens einen Spalten-Zeilen-sortierten Umfangspunkt umfasst. Der Unterschritt zum Sortieren der Umfangspunkte zeilenweise umfasst das Sortieren der Spalten-sortierten Umfangspunkte in einer abfallenden Reihenfolge. Für den Fall, dass der Puffer spaltenweise in einer ansteigenden Reihenfolge und danach zeilenweise sortiert worden ist, wird der Punkt mit der höchsten Zeilenpositions-Koordinate und der niedrigsten Spaltenpositions-Koordinate an dem Start des Puffers platziert. Für den Fall, dass der Puffer spaltenweise in einer abfallenden Reihenfolge und dann zeilenweise sortiert worden ist, wird der Punkt mit dem höchsten Zeilen-Koordinatenwert und dem höchsten Spalten-Koordinatenwert an dem Start des Puffers platziert.
- Bei der dritten Implementierung der ersten Ausführungsfonn der Erfindung wird das Objekt in der Gegenuhrzeigerrichtung nachverfolgt bzw. nachgezogen und der Sortierungsschritt umfasst den Unterschritt zum Sortieren der Umfangspunkte in dem Umfangspuffer zeilenweise in einer vorgegebenen Reihenfolge, um einen Zeilen-sortierten Umfangspuffer zu erzeugen, der wenigstens einen Zeilen-sortierten Umfangspunkt umfasst. Der Unterschritt zum Sortieren der Umfangspunkte zeilenweise umfasst das Sortieren der Umfangspunkte in einer ansteigenden Reihenfolge, so dass die Punkte mit den niedrigsten Zeilenpositions-Koordinatenwerten an dem Start des Puffers platziert werden. Alternativ umfasst der Unterschritt zum Sortieren der Umfangspunkte zeilenweise das Sortieren der Umfangspunkte in einer abfallenden Reihenfolge, so dass die Punkte mit den höchsten Zeilenpositions-Koordinatenwerten an dem Start des Puffers platziert werden.
- Bei dieser dritten Implementierung umfasst der Sortierungsschritt auch den zusätzlichen Unterschritt zum Sortieren der Umfangspunkte in einem Zeilen-sortierten Umfangspuffer spaltenweise in einer weiteren vorgegebenen Reihenfolge, um einen Zeilen-Spalten-sortierten Umfangspuffer zu erzeugen, der wenigstens einen Zeilen-Spalten-sortierten Umfangspunkt umfasst. Der Unterschritt zum Sortieren der Zeilen-sortierten Umfangspunkte spaltenweise umfasst das Sortieren der Umfangspunkte in einer abfallenden Reihenfolge. Für den Fall, dass der Puffer zunächst zeilenweise in einer ansteigenden Reihenfolge und danach spaltenweise sortiert worden ist, wird der Punkt mit der höchsten Spaltenpositions- Koordinate und der niedrigsten Zeilenpositions-Koordinate an dem Start des Puffers platziert. Für den Fall, dass der Puffer zunächst zeilenweise in einer abfallenden Reihenfolge und dann spaltenweise sortiert worden ist, wird der Punkt mit der höchsten Spaltenpositions-Koordinate und der höchsten Zeilenpositions- Koordinate an dem Start des Puffers platziert.
- In einer vierten Implementierung der ersten Ausführungsform der vorliegenden Erfindung wird das Objekt in der Gegenuhrzeigerrichtung nachverfolgt und der Sortierungsschritt umfasst den Unterschritt zum Sortieren der Umfangspunkte in dem Umfangspuffer spaltenweise in einer vorgegebenen Reihenfolge, um einen Spalten-sortierten Umfangspuffer zu erzeugen, der wenigstens einen Spalten-sortierten Umfangspunkt umfasst. Der Unterschritt zum Sortieren der Umfangspunkte spaltenweise umfasst das Sortieren der Umfangspunkte in einer ansteigenden Reihenfolge, so dass die Punkte mit den niedrigsten Spaltenpositions-Koordinatenwerte an dem Start des Puffers platziert werden. Alternativ umfasst der Unterschritt zum Sortieren der Umfangspunkte spaltenweise ein Sortieren der Umfangspunkte in einer abfallenden Reihenfolge, so dass die Punkte mit den höchsten Spaltenpositions-Koordinatenwerten an dem Start des Puffers platziert werden.
- Bei dieser vierten Implementierung umfasst der Sortierungsschritt auch den zusätzlichen Unterschritt zum Sortieren der Umfangspunkte in einem Spalten-sortierten Umfangspuffer zeilenweise in einer weiteren vorgegebenen Reihenfolge, um einen Zeilen-Spalten-sortierten Umfangspuffer zu erzeugen, der wenigstens einen Spalten-Zeilen-sortierten Umfangspunkt umfasst. Der Unterschritt zum Sortieren der Umfangspunkte zeilenweise in dem Spalten-sortierten Puffer umfasst das Sortieren der Umfangspunkte in einer ansteigenden Reihenfolge. Für den Fall, dass der Puffer zunächst nach der Spalte (spaltenweise) in einer ansteigenden Reihenfolge und danach nach der Zeile (zeilenweise) sortiert worden ist, wird der Punkt mit dem niedrigsten Zeilenpositions-Koordinatenwert und dem niedrigsten Spaltenpositions- Koordinatenwert an dem Start des Puffers platziert. Für den Fall, dass der Puffer zunächst nach der Spalte (spaltenweise) in einer abfallenden Reihenfolge und danach nach der Zeile (zeilenweise) sortiert worden ist, wird der Punkt mit dem niedrigsten Zeilenpositions-Koordinatenwert und dem höchsten Spaltenpositions- Koordinatenwert an dem Start des Puffers platziert.
- Das Verfahren der vorliegenden Erfindung umfasst auch den Schritt zum Zuweisen einer Statusvariablen, die einen ersten oder einen zweiten Wert aufweist, an jeden Umfangspunkt. Dieser Schritt ist allgemein mit dem Block F in Fig. 1 gezeigt und wird in einem Modul READ COLOR ausgeführt, wie in dem Flussdiagramm der Fig. 7 gezeigt. Der erste Wert der Statusvariablen ist "FILL" (FÜLLEN) und der zweite Wert der Statusvariablen ist "NO FILL" (NICHT FÜLLEN). Der Wert der Statusvariablen wird durch die ersten und zweiten Richtungscodewerte nexti und previ bestimmt. Die Richtungscodewerte werden in Übereinstimmung mit den Fig. 4 und 5 in Abhängigkeit von dem Verfahren zum Sortieren des Umfangspuffers, das verwendet wird, bestimmt. Wenn die Punkte in dem Umfangspuffer zunächst nach der Zeile und dann nach der Spalte sortiert werden, wie bei den ersten und dritten Implementierungen der ersten Ausführungsform, werden die Richtungscodewerte in Fig. 4 verwendet. Wenn die Punkte in dem Umfangspuffer zunächst nach der Spalte und dann nach der Zeile sortiert werden, wie in den zweiten und vierten Implementierungen der ersten Ausführungsform, dann werden die Richtungscodewerte, die in Fig. 5 dargestellt sind, verwendet. Die Regeln für eine Abbildung von nexti und previ auf FILL oder NO FILL sind für Objekte, die in einer Uhrzeigerrichtung nachverfolgt werden, in einer FILL Nachschlagtabelle (LUT) zusammengefasst, wie in Fig. 8 gezeigt. Die Regeln zum Abbilden von nexti und previ auf FILL oder NO FILL sind für Objekte, die in einer Gegenuhrzeigerrichtung abgetastet sind, in einer FILL Nachschlagtabelle (LUT) zusammengefasst, wie in Fig. 9 gezeigt. In den Nachschlagtabellen der Fig. 8 und 9 steht F für FILL (FÜLLEN) und NF steht für NO FILL (NICHT FÜLLEN). Die Nachschlagtabellen der Fig. 8 und 9 sind empirisch auf Grundlage der lokalen konkaven Form oder konvexen Form des Objekts abgeleitet.
- Wie im Block A in Fig. 7 gezeigt, wird der gegenwärtige Punkt auf den ersten Punkt in dem Umfangspuffer gesetzt. Die Entscheidungsraute B fragt dann, ob der gegenwärtige Punkt über den letzten Punkt in dem Puffer hinaus ist. Wenn dem so ist, dann ist das Modul durchgeführt, wie im Block C gezeigt. Unter Verwendung der Nachschlagtabelle, wie in Fig. 8 gezeigt, wird der Wert der Statusvariablen auf Grundlage der ersten und zweiten Richtungscodewerte, nexti und previ zugewiesen, wie im Block D der Fig. 7 gezeigt. Der gegenwärtige Punkt wird dann an den nächsten Punkt in dem Umfangspuffer bewegt, wie im Block E der Fig. 7 gezeigt. Die Schleife durch die Entscheidungsraute B und die Blöcke D und E wird wiederholt, bis der gegenwärtige Punkt über den letzten Punkt in dem Puffer hinaus ist, wobei an diesem Punkt der Teil von READ COLOR, wie in Fig. 7 gezeigt, durchgeführt ist, wie im Block C gezeigt.
- Das Verfahren der ersten Ausführungsform der Erfindung umfasst ferner den Schritt, bei dem als die inneren Punkte des Objekts jeder Punkt auf dem gleichen Liniensegment wie der Umfangspunkt, der gerade untersucht wird und zwischen dem untersuchten Umfangspunkt und dem nächsten Umfangspunkt in dem sortierten Umfangspuffer liegt, bestimmt wird, wobei dem untersuchten Umfangspunkt der erste Wert FILL der Statusvariablen zugewiesen wird. Dieser Schritt ist im Block G der Fig. 1 allgemein gezeigt und wird in dem Modul READ COLOR ausgeführt. Das Flussdiagramm der ersten Implementierung der ersten Ausführungsform der vorliegenden Erfindung ist in den Fig. 10A und 10B gezeigt, wobei darauf hingewiesen wird, dass analoge Flussdiagramme für die zweiten, dritten und vierten Implementierungen existieren. In den ersten und dritten Implementierungen, bei denen die Umfangspunkte in dem Umfangspuffer zunächst nach der Zeile, dann nach der Spalte, sortiert werden, umfasst der Bestimmungsschritt den Unterschritt, bei dem als die inneren Punkte des Objekts jeder Punkt auf der gleichen Zeile wie der Umfangspunkt, der gerade untersucht wird und zwischen dem untersuchten Umfangspunkt und dem nächsten Umfangspunkt in dem Zeilen-Spalten-sortierten Umfangspuffer liegt, bestimmt wird. Bei den zweiten und vierten Implementierungen, bei denen die Umfangspunkte in dem Umfangspuffer zunächst nach der Spalte und dann nach der Zeile sortiert werden, umfasst der Bestimmungsschritt den Unterschritt, bei dem als die inneren Punkte des Objekts jeder Punkt auf der gleichen Spalte wie der Umfangspunkt, der gerade untersucht wird und zwischen dem Umfangspunkt und dem nächsten Umfangspunkt in dem Spalten-Zeilen-sortierten Umfangspuffer liegt, bestimmt wird.
- Das Verfahren der ersten Ausführungsform der vorliegenden Erfindung umfasst ferner den Schritt zum Prüfen nach redundanten Umfangspunkten. Dieser Schritt wird in dem Modul READ COLOR ausgeführt, wie in den Fig. 10A und 10B mit der Entscheidungsraute E und dem Block F dargestellt. Ein redundanter Umfangspunkt ist einer, auf den mehr als einmal während des sequentiellen Nachziehens (Nachverfolgens) des Objekts zugegriffen worden ist oder der mehr als einmal durchquert wurde. Zum Beispiel könnte dies an Überkreuzungspunkten auftreten, was ein Punkt ist, der mehr als einmal während des Nachverfolgungsschritts durchquert worden ist. Wenn diese Überprüfung nach redundanten inneren Punkten ausgeführt wird, tritt der Schritt, bei dem sämtliche Punkte, die zwischen jedem redundanten Umfangspunkt und dem nächsten Umfangspunkt auf dem gleichen Liniensegment als die inneren Punkte des Objekts bestimmt werden, nur dann auf, wenn sämtlichen Exemplare von jedem redundanten Umfangspunkt der erste Wert der Statusvariablen (FILL) zugewiesen ist.
- Wie im Block A der Fig. 10A gezeigt, besteht der erste Schritt von READ COLOR, die für die erste Implementierung der ersten Ausführungsform ablaufengelassen wird, darin, den gegenwärtigen Punkt auf den ersten Punkt des Umfangspuffers zu setzen. Die Entscheidungsraute B fragt dann, ob der gegenwärtige Punkt über den letzten Punkt des Umfangspuffers hinaus ist. Wenn dem so ist, dann ist das Modul ausgeführt, wie im Block C gezeigt. Wenn der gegenwärtige Punkt nicht über dem letzten Punkt hinaus ist, dann wird der gegenwärtige Punkt als ein innerer Punkt markiert, wie im Block D gezeigt. Dann fragt die Entscheidungsraute E, ob der gegenwärtige Punkt der gleiche Punkt wie der nächste Punkt in dem Puffer ist. Wenn dem so ist, dann wird der gegenwärtige Punkt wie im Block F gezeigt als redundant markiert. Dann fragt die Entscheidungsraute H, ob die Statusvariable von sämtlichen Instanzen des gegenwärtigen Punkts gleich zu FILL ist. Wenn die Antwort ja ist, dann bewegt sich READ COLOR an den nächsten Punkt auf der gleichen Zeile wie der gegenwärtige Punkt, wie im Block J gezeigt. Wenn die Antwort nein ist, wird der gegenwärtige Punkt auf den nächsten Punkt in dem Puffer gesetzt, wie im Block I gezeigt, und das Modul kehrt zur Entscheidungsraute B zurück. Wenn, zurückkehrend zur Entscheidungsraute E, der gegenwärtige Punkt nicht der gleiche Punkt wie der nächste Punkt in dem Puffer ist, dann fragt die Entscheidungsraute G, ob der Statuswert des gegenwärtigen Punkts gleich zu FILL ist. Wenn dem nicht so ist, dann kehrt das Modul zur Entscheidungsraute B zurück. Die Schleife durch B und D -I wird fortgesetzt, bis der gegenwärtige Punkt über den letzten Punkt hinaus ist, wobei zu dieser Zeit der Teil von READ COLOR, wie in den Fig. 10A und 10B dargestellt, durchgeführt ist, wie im Block C der Fig. 10A gezeigt. Wenn, zurückkehrend zur Entscheidungsraute G, der Statuswert des gegenwärtigen Punkts gleich zu FILL ist, dann bewegt sich das Modul READ COLOR zu dem nächsten Punkt auf der gleichen Zeile wie der gegenwärtige Punkt, wie im Block J gezeigt. Die Entscheidungsraute G fragt dann, ob die Spaltenkoordinate des nächsten Punkts kleiner oder gleich wie die Spaltenkoordinate des nächsten Umfangspunkts in dem Umfangspuffer ist. Wenn dem so ist, dann wird der nächste Punkt als ein innerer Punkt identifiziert, wie im Block L gezeigt. Nach Identifizieren der inneren Punkte eines Objekts, wie im Block L der Fig. 10B gezeigt, kann der Graupegelwert jedes inneren Punkts bestimmt werden und das Objekt kann durch Verwenden der Graupegelwerte charakterisiert werden, wie nachstehend beschrieben. Zusätzlich kann jedem inneren Punkt ein vorgegebener Graupegel zugewiesen werden, um das Objekt zu markieren. Nachdem der nächste Punkt als der innere Punkt identifiziert ist, wie im Block L gezeigt, wird die Schleife durch den Block J und die Raute K fortgesetzt, bis die Spaltenkoordinate des nächsten Punkts größer als die Spaltenkoordinate des nächsten Umfangspunkts in dem Umfangspuffer ist. Dann wird der gegenwärtige Punkt auf den nächsten Umfangspunkt in dem Puffer gesetzt, wie im Block M gezeigt. Die Schleife durch B-M, bis der gegenwärtige Punkt über den letzten Punkt über den Puffer hinaus ist, wobei an diesem Punkt der Teil von READ COLOR wie in den Fig. 10A und 10B dargestellt durchgeführt ist, wie im Block C der Fig. 10A gezeigt.
- Wie voranstehend erwähnt, umfasst das Verfahren der ersten Ausführungsform der vorliegenden Erfindung ferner die Schritte zum Bestimmen des Graupegelwerts jedes inneren Punkts und das Charakterisieren des Objekts durch Verwenden der Graupegelwerte der inneren Punkte. Der Charakterisierungsschritt kann ein Bestimmen der Textur des Objekts umfassen. Alternativ oder zusätzlich kann der Charakterisierungsschritt ein Bestimmen der Farbe des Objekts umfassen. Alternativ oder zusätzlich kann der Charakterisierungsschritt ein Bestimmen von irgendwelchen Mustern, die in dem Objekt vorhanden sind, umfassen.
- Wenn eine Farbe verwendet wird, um das Objekt zu charakterisieren, oder als ein vorgegebener Attributwert zum Validieren des Objekts, wie nachstehend beschrieben wird, umfasst das Verfahren der vorliegenden Erfindung den Unterschritt zum Berechnen wenigstens eines Farbparameters für wenigstens einen inneren Punkt des Kandidatenobjekts. Mit Farbparameter ist irgendein Parameter gemeint, der sich auf den Farbinhalt des Objekts bezieht. Genauer gesagt sind drei gebräuchliche Parameter, die in der Farbtheorie verwendet werden, der Farbton, die Sättigung und die Helligkeit, wie in "Color Science, Concepts and Methods, Quantitative Data and Formulae", von G. Wyszeck und W. S. Stile, John Wiley & Sons (1967) definiert ist. Bei einer bevorzugten Anwendung der ersten Ausführungsform wird nur der Farbparameter-Farbton berechnet. Jedoch ist selbstverständlich, dass irgendein Farbparameter oder eine Kombination von Farbparametern verwendet werden könnten, um ein Kandidatenobjekt mittels seines Farbinhaltes zu identifizieren oder zu charakterisieren.
- Der Graupegel eines inneren Punkts kann unter Verwendung einer "RGB" Information einer Standardfarbtheorie beschrieben werden, wobei R den Rotinhalt bezeichnet, G den Grüninhalt bezeichnet und G den Blauinhalt bezeichnet. In Fig. 11A ist eine Beschreibung eines RGB Farbraums angegeben und in Fig. 11B ist eine Vereinfachung dieses Raums, der als der RGB Farbtonkreis bekannt ist, angegeben. Eine einfache Vorgehensweise zum Berechnen eines relativen Farbtonparameters, der als Farbtonwinkel bekannt ist, ist unter Bezugnahme auf die Fig. 11A und 11B dargestellt. Der Wert des Farbtonwinkels eines Objekts kann im Bereich von 0º-360º liegen, da er ein Winkel A in dem RGB Farbtonkreis ist, der ein Maß der relativen Hinzumischung von roten, grünen und blauen Farben ist. Der Winkel φ ist ein gewählter "Versatzwinkel" und ist ein einstellbarer Parameter, der für eine spezifische Anwendung optimiert werden kann. Der Winkel φ wird so gewählt, dass für das betreffende Problem keiner der Farbtonwinkel des gültigen Objekts zu nahe zu 0º bis 360º kommt. Der Grund zum Vermeiden des 0º (oder 360º) Winkels ist die Folge der Diskontinuität in dem Wert des Farbtonwinkels für diesen Winkel.
- Der Farbtonwinkel jedes inneren Punkts in einem Objekt kann berechnet werden. Der Farbtonwinkel A, der aus dem RGB Farbtonkreis berechnet wird, verwendet die folgenden Gleichungen:
- α = Rcos(φ) + Gcos(120 + φ) + Bcos(240 + φ) (1)
- b = Rsin(φ) + Gsin(120 + φ) + Bsin(240 + φ)Farbtonwinkel = tan-1 (b/a) (2)
- mit
- φ = einstellbarer Versatzwinkel
- R = Graupegel eines Punkts in dem Bild, wenn das Bild durch ein Rotfilter betrachtet wird.
- B = Graupegel eines Punkts in dem Bild, wenn das Bild durch ein Blaufilter betrachtet wird.
- G = Graupegel eines Punkts in dem Bild, wenn das Bild durch ein Grünfilter betrachtet wird.
- a, b = Projektionen des R, G, B Vektors auf den Farbtonkreis.
- Der mittlere Farbton wird durch eine Durchschnittsbildung des Farbtonwinkels für jeden inneren Punkt über dem Objekt abgeleitet.
- Die Farbtongröße, die die Länge des Farbtonwinkelvektors in dem RGB Farbtonkreis ist, ist ein Maß davon, wie viel Farbe ein Objekt hat und wird wie folgt berechnet:
- Farbtongröße = a² + b² (3)
- Der mittlere Farbtonwinkel und die Farbtongröße kann verwendet werden, um den Farbtoninhalt eines Objekts zu bestimmen. Diese Parameter, die zum Charakterisieren eines Objekts verwendet werden, können mit vorgegebenen Attributwerten verglichen werden, um ein Objekt zu identifizieren, wie vollständig nachstehend unter Bezug auf die zweite Ausführungsform erläutert wird.
- Bei einer spezifischen Anwendung der ersten Ausführungsform der vorliegenden Erfindung wird das Konzept einer entropischen Schwellwertbildung verwendet. Das Konzept einer Entropie in der Informationstheorie für eine Signalverarbeitung wurde zuerst von Shannon in einem Artikel mit dem Titel "A Mathematical Theory of Communication", Beil System Technology J., Vol. 27, Juli 1948, Seiten 379- 423 vorgeschlagen. Shannon zeigte, dass die Entropiefunktion
- H(p&sub1;,p&sub2;, ..., Pn) = -λ pklnpk (4)
- in einzigartiger Weise die folgenden drei Eigenschaften erfüllt:
- (a) H(p&sub1;,p&sub2;, ..., pn) ist ein Maximum für:
- Pk = 1/n fürk = 1, ..., n;
- (b) H(AB) = H(A) + HA(B), wobei A und B zwei fmite Teilungen sind und HA(B) die konditionelle Entropie einer Teilung B bei gegebener Teilung A ist;
- H(p&sub1;, p&sub2;, ..., pn, 0) = H(p&sub1;, p&sub2;, ..., pn)
- Zusätzlich, Hmax(1/n, ..., 1/n) = 1n n. (6)
- Die Idee einer Verwendung der Entropie zum Analysieren eines Graupegeihistogramms eines Bilds wurde ursprünglich von Pun in einem Artikel mit dem Titel "Entropic Thresholding, a New Approach", Comp. Graphics and Image Proc., Vol. 16, 1981, Seiten 210-239 vorgeschlagen. Die Entropieanalyse von Pun wurde ferner von Kapur et al. in einem Artikel mit dem Titel "A New Method for Grey-Level Picture Thresholding Using the Entropy of the Histogram", Comp. Graphics and Image Proc. 29, 1985, Seitem 273-285 verbessert. Wie von Pun gezeigt und von Kapur verbessert, kann das Konzept einer Entropie in zwei Dimensionen ausgedehnt werden, wenn das Graupegelhistogramm des Bilds verwendet wird, um eine Wahrscheinlichkeitsverteilung zu definieren:
- Ps = fs / N für s = 1, ..., Ngray
- mit fs = Frequenz des Graupegels s
- N = # Pixels in einem Bild (7)
- Ngray = # Graupegel
- Es ergibt sich daraus, dass die Entropiefunktion eines Histogramms, die ein Bild mit einer gleichförmigen Graupegelverteilung beschreibt; auf einem Maximum ist. Je mehr Spitzen in der Verteilung vorhanden sind, desto geringer ist die Entropie.
- Bei dieser spezifischen Anwendung der ersten Ausführungsform, bei der eine entropische Schwellwertbildung verwendet wird, umfasst der Suchschritt die Unterschritte zum Erzeugen eines Graupegelhistogramms des Bilds, wobei das Graupegelhistogramm eine Entropiefunktion aufweist, und ein entropisches Wählen eines Schwellengraupegels derart, dass die Entropiefunktion des Histogramms maximiert wird. Ein Modul HISTOGRAM wird verwendet, um das Graupegelhistogramm des betreffenden Bereichs des Bilds zu erzeugen. Die Schritte zum Erzeugen des Graupegelhistogramms sind in dem Flussdiagramm der Fig. 12 gezeigt. Wie in Block A der Fig. 12 gezeigt, berechnet HISTOGRAM zunächst ein Histogramm des interessierenden Bereichs des Bilds. Es berechnet dann die Werte, die danach bei der Berechnung der Entropiefunktion Hs für jeden Graupegel s verwendet werden sollen, wie im Block B der Fig. 12 gezeigt. Die Ergebnisse dieser Berechnung werden in einem Speicher gespeichert, wie im Block C gezeigt. Dies stellt sicher, dass für nachfolgende Berechnungen des entropischen Schwellengraupegels nur ein einfacher Nachschlagbetrieb benötigt wird.
- Die Anwendung einer entropischen Schwellwertbildung des Verfahrens gemäß der ersten Ausführungsform der vorliegenden Erfindung umfasst auch den Schritt zum entropischen Wählen eines Schwellengraupegelwerts derart, dass die Entropiefunktion des Histogramms maximiert wird. Dieser Schritt wird von dem ENTROPY Modul ausgeführt, wie in Fig. 13 gezeigt. Wie im Block A der Fig. 13 gezeigt, besteht der erste Schritt beim Maximieren der Entropiefunktion des Histogramms darin, die maximale Entropiefunktion auf einen minimalen Wert zu initialisieren.
- Der Schritt zum entropischen Wählen eines Schwellengraupegels umfasst den Subschritt zum sequentiellen Aufteilen des Graupegelhistogramms an jedem Graupegelwert in eine erste Abteilung und eine zweite Abteilung. Um den einfachen Fall zu illustrieren, bei dem ein einzelnes einfaches Objekt in einem sich verändernden Hintergrund identifiziert wird, ist ein Graupegelhistogramm eines Bilds in Fig. 14 gezeigt. Die ersten und zweiten Teile (Abteilung) sind in dem Histogramm der Fig. 14 dargestellt, wobei die Graupegelwerte des Hintergrunds mit einem ersten Abschnitt A dargestellt sind und die Graupegel des gültigen Objekts mit einem zweiten Abschnitt (Teilung) B dargestellt sind. In dem ENTROPY Modul wird der aufgeteilte Schwellengraupegelwert auf einen minimalen Wert initialisiert, wie im Block B der Fig. 13 gezeigt.
- Der Schritt zum entropischen Wählen eines Schwellengraupegels umfasst auch den Unterschritt zum Berechnen der Entropiefunktion für jeden Abschnitt (Teilung), wobei die Gesamtentropiefimktion des Histogramms als die Summe der Entropiefunktion Hs(A) des ersten Abschnitts A und der Entropiefbnktion Hs(B) des zweiten Abschnitts B definiert ist. Dieser Schritt ist im Block C der Fig. 13 gezeigt und wird mathematisch wie folgt ausgedrückt:
- Für einen gegebenen Schwellengraupegelwert s gilt:
- Die Summe Hs(A) + Hs(B) stellt die Gesamtentropiefunktion des Graupegelhistogramms des Bilds dar. Der maximale entropische Schwellengraupegelwert ist der Wert von s, der die Gesamtentropiefunktion maximiert.
- Die Entscheidungsraute D der Fig. 13 fragt, ob die Entropiefunktion des Histogramms größer als die maximale Entropiefunktion ist, wie im Block A initialisiert. Wenn dem so ist, dann wird die maximale Entropiefunktion unter Verwendung des aufgeteilten Schwellengraupegels aktualisiert, wie im Block E der Fig. 13 gezeigt. Der maximale entropische Schwellengraupegelwert wird dann auf den aufgeteilten Schwellengraupegelwert gesetzt, wie im Block F gezeigt. Nachdem der maximale entropische Schwellengraupegelwert gesetzt worden ist oder dann, wenn die entropische Funktion des Histogramms nicht größer als die maximale Entropiefunktion ist, dann fragt die Entscheidungsraute G des ENTROPY Moduls, wie in Fig. 13 dargestellt, ob der aufgeteilte Schwellengraupegelwert dem maximalen Schwellengraupegelwert gleicht. Wenn dem so ist, wird der maximale entropische Schwellengraupegelwert zurückgegeben, wie im Block H der Fig. 13 gezeigt. Wenn dem nicht so ist, wird der aufgeteilte Schwellengraupegelwert inkrementiert, wie im Block I der Fig. 13 gezeigt, und der inkrementierte aufgeteilte Schwellengraupegelwert wird an den Block C zurückgegeben, wo die Entropiefunktion des inkrementierten aufgeteilten Schwellengraupegelwerts berechnet wird. Die Schleife durch C-G wird wiederholt, bis der aufgeteilte Schwellengraupegelwert dem maximalen Schwellengraupegelwert gleicht, wobei an diesem Punkt der maximale entropische Schwellengraupegelwert zurückgegeben wird, wie im Block H gezeigt.
- Die Wahrscheinlichkeitsverteilungen werden re-normalisiert in Hs(A) und Hs(B), um nur die Graupegelwerte innerhalb jeder der Abschnitte zu enthalten. Mit dieser Re-Normalisierung tritt die maximale Entropiefunktion genau an der Kante der Objektspitze in dem Graupegelhistogramm auf, wie bei T in Fig. 14 gezeigt. Somit wird ein neuer Schwellengraupegelwert gewählt, so dass die Entropiefunktion des Histogramms maximiert wird. Mit dieser maximalen Wahl eines Schwellwerts für den einfachen Fall, wie in Fig. 14 dargestellt, wird die re-normalisierte Verteilung des Hintergrunds die am wenigstens mit Spitzen versehene und die gleichmäßigste. Die Gesamtentropiefunktion des Histogramms wird von der Entropiefunktion des Hintergrunds bestimmt, da die Anzahl von Graupegelwerten in dem Hintergrundabschnitt viel größer als die Anzahl von Graupegelwerten in dem Objektabschnitt ist.
- Bei der Anwendung der ersten Ausführungsform, bei der der entropische Schwellengraupegel maximiert wird, umfasst der Suchschritt ferner den Unterschritt zum Abtasten bzw. Scannen des Bilds nach wenigstens einem Objekt unter Verwendung des entropisch gewählten Schwellengraupegelwerts. Insbesondere kann der Teil des Bilds, der gescannt wird, eine Vielzahl von Pixeln umfassen und jedes Pixel weist einen Graupegelwert kleiner als der obere Abgrenzer plus ein Inkrement auf. Der obere Abgrenzer weist auch die Bezeichnung MAX auf. Das Inkrement ist gleich zu der Differenz zwischen MAX, dem maximalen Graupegelwert des Bereichs, der gerade untersucht wird, und MIN, dem minimalen Graupegelwert des Bereichs, der gerade durchsucht wird, was zu einem neuen maximalen Graupegelwert Gray-Levelmax (Graupegelmax) führt:
- Gray Levelmax = 2 · MAX-MIN (14)
- Bereiche in dem Bild, an denen der Graupegelwert den Graupegelmax überschreitet, werden in der Suche ignoriert.
- Der Suchschritt umfasst ferner den Unterschritt zum Nachverfolgen des Kandidatenobjekts mit Grenzgraupegelwerten, die von dem entropisch gewählten Schwellengraupegelwert bestimmt werden. Bei dieser Anwendung wird der Suchschritt von einem Modul SEARCH IMAGE wie in Fig. 15 gezeigt, einem Modul FIND OBJECT wie in Fig. 16 gezeigt und dem Modul GET PERIM wie in Fig. 3 gezeigt, ausgeführt.
- Wie mit dem Block A in Fig. 15 dargestellt, besteht der erste Schritt darin, die Suchposition zu initialisieren. Das Modul SEARCH IMAGE durchsucht den interessierenden Bereich mit dem gegenwärtigen entropisch gewählten Schwellengraupegelwert. Die Entscheidungsraute B der Fig. 15 fragt dann, ob die Suchposition an dem Ende des Scanvorgangs ist. Wenn dem so ist, ist SEARCH IMAGE durchgeführt.
- Wenn die Suchposition nicht an dem Ende des Scanvorgangs ist, dann durchsucht das Modul SEARCH IMAGE den interessierenden Bereich mit dem gegenwärtigen entropisch gewählten Schwellengraupegelwert, bis es einen Punkt findet, der einen Graupegelwert aufweist, der den entropisch gewählten Schwellengraupegelwert übersteigt, und zwar unter Verwendung eines Moduls FIND OBJECT. Um Objekte zu identifizieren, die dunkler als der Hintergrund sind, wird das Bild invertiert, unmittelbar nachdem es erzeugt worden ist. Ein derartiger Punkt könnte der erste Punkt eines neuen Objekts sein. Eine Entscheidungsraute D der Fig. 14 fragt, ob ein neues Objekt unter Verwendung des Moduls FIND OBJECT gefunden worden ist. Wenn das Objekt bei der gegenwärtigen Suche nicht bereits nachverfolgt worden ist, macht das Modul SEARCH IMAGE weiter, um das Objekt nachzuverfolgen, indem das Modul GET PERIM, wie im Block E der Fig. 15 gezeigt, ablaufen gelassen wird. Das Modul GET PERIM ist voranstehend ausführlich unter Bezugnahme auf Fig. 3 beschrieben worden. Nachdem das Objekt nachzeichnet (nachverfolgt) worden ist, wird die Suchposition inkrementiert, wie im Block F der Fig. 15 gezeigt. Die Schleife durch B-F wird fortgesetzt, bis das Modul SEARCH IMAGE am Ende der Suche ist, wie mit der Entscheidungsraute B angezeigt. Alternativ, wenn ein neues Objekt nicht gefunden worden ist, wie mit der Entscheidungsraute D angezeigt, dann wird die Suchposition inkrementiert, wie im Block F dargestellt, wobei somit der Nachverfolgungsschritt übergangen wird, und die Schleife durch B-I wird fortgesetzt, bis SEARCH IMAGE an dem Ende der Suche ist.
- Die Schritte des Moduls FIND OBJECT sind in Fig. 16 dargestellt. Der erste Schritt in FIND OBJECT besteht darin, die Suchposition auf die gegenwärtige Stelle des Bilds, welches durchsucht wird, zu initialisieren, wie im Block A gezeigt. Die Entscheidungsraute B fragt dann, ob die Suchposition innerhalb des Objekts ist. Wenn dem so ist, wird die Suchposition inkrementiert, wie in Block C dargestellt, und die Entscheidungsraute D fragt, ob das FIND OBJECT Modul am Ende seiner Suche ist. Wenn dem so ist, dann wird kein neues Objekt gefunden, wie im Block E angedeutet. Wenn nicht, dann fragt die Entscheidungsraute B, ob die inkrementierte Suchposition innerhalb des Objekts ist. Dieser Prozess eines Durchlaufens einer Schleife durch B-E wird fortgesetzt, bis die Suchposition nicht innerhalb des Objekts ist. An diesem Punkt fragt die Entscheidungsraute F, ob ein neues Objekt gefunden worden ist. Wenn dem nicht so ist, dann wird die Suchposition inkrementiert, wie im Block G der Fig. 15 dargestellt, und die Entscheidungsraute H fragt, ob das SEARCH IMAGE MODUL am Ende seiner Suche ist. Wenn dem so ist, dann wird eine Information "kein neues Objekt gefunden" zurückgegeben, wie mit dem Block I angezeigt. Wenn dem nicht so ist, dann fragt die Entscheidungsraute F erneut, ob unter Verwendung der inkrementierten Suchposition ein neues Objekt gefunden worden ist. Dieser Prozess zum Durchlaufen einer Schleife durch F-I wird fortgesetzt, bis ein neues Objekt gefunden worden ist. Die Entscheidungsraute J fragt, ob das Objekt, welches gefunden worden ist, bereits nachgezeichnet (nachverfolgt) worden ist. Wenn dem so ist, dann wird eine Information "neues Objekt gefunden" zurückgegeben, wie mit dem Block K angedeutet. Wenn das Objekt, welches gefunden worden ist, nicht bereits nachgezeichnet bzw. nachverfolgt worden ist, dann wird die Suchposition aktualisiert, wie mit dem Block L angedeutet und eine Information "neues Objekt gefunden" wird zurückgegeben, wie mit dem Block M in Fig. 16 angedeutet. Durch Ablaufenlassen von SEARCH IMAGE, FIND OBJECT und GET PERIM wie voranstehend beschrieben, wird dann das Objekt, welches im Block M der Fig. 16 zurückgegeben wird, dann nachgezeichnet, um die inneren Punkte davon zu bestimmen, wie im Block C der Fig. 1 gezeigt.
- Gemäß einer zweiten Ausführungsform der vorliegenden Erfindung ist ein Verfahren zum Identifizieren wenigstens eines gültigen Objekts, das wenigstens einen vorgegebenen Attributwert aufweist, in einem Hintergrund vorgesehen. Das Verfahren umfasst ein Erzeugen eines Bilds des Objekts und des Hintergrunds. Fig. 17 ist ein Blockdiagramm, das das gesamte Verfahren der zweiten Ausführungsform der vorliegenden Erfindung zeigt. Ein Bild wird erzeugt, wie mit dem Block A der Fig. 17 gezeigt. Wie bei der vorangehenden Ausführungsform muss zunächst die Hardware, die zum Implementieren des Verfahrens der zweiten Ausführungsform der vorliegenden Erfindung verwendet wird, initialisiert werden, wenn das Bild erzeugt wird. Das Bild des Objekts und des Hintergrunds können durch eine Kamera erzeugt werden. Wie bei der vorangehenden Ausführungsfonn wird eine CCD Kamera verwendet, obwohl irgendeine Art von Kamera verwendet werden kann, ohne von den allgemeinen Prinzipien der vorliegenden Erfindung abzuweichen. Das Bild wird dann von einer Rahmen-Ergreifungseinrichtung oder einem Video- Digitalisierer digitalisiert und gespeichert.
- Das Verfahren zum Identifizieren wenigstens eines gültigen Objekts der vorliegenden Erfindung umfasst auch den Schritt zum Durchsuchen des Bilds nach wenigstens einem Kandidatenobjekt unter Verwendung wenigstens eines automatisch berechneten Schwellwerts, wobei das Kandidatenobjekt wenigstens einen Kandidatenobjekt-Attributwert aufweist. Dieser Schritt ist im Block B der Fig. 17 gezeigt. In der zweiten Ausführungsform der vorliegenden Erfindung kann das gesamte Objekt durchsucht werden. Jedoch kann in Fällen, bei denen bekannt ist, dass ein identifizierendes Merkmal eines fraglichen Objekts in einem bestimmten Abschnitt eines Objekts liegt, der Suchschritt ein Durchsuchen nur eines Abschnitts des Objekts umfassen. Der automatisch berechnete Schwellwert kann in vielerlei Vorgehensweisen bestimmt werden. Zum Beispiel wird der automatisch berechnete Schwellwert unter Verwendung eines Histogramms, wie voranstehend in der ersten Ausführungsform beschrieben, oder eine Co-Auftrittsmatrix (Co-Occurrence Matrix), wie in Pal und Pal in einem Artikel "Entropic Thresholding", Signal Processing, Vol. 16, 1989, Seiten 97-108 beschrieben, bestimmt werden.
- Die Fähigkeit, ein Bild einer automatischen Schwellwertunterscheidung auszusetzen, um Kandidatenobjekte zu identifizieren und zu validieren, ermöglicht die Ausführung einer "On-Line" Bildanalyse zum Überwachen und Steuern von Herstellungs- und Industrieprozessen. Diese Fähigkeit würde im allgemeinen nicht möglich sein, wenn ein manuelles Schwellwertbildungsschema verwendet wird, da der Schwellwert (oder die Schwellwerte) auf einer Bild-für-Bild-Basis eingestellt werden müssten. Das Ausführen einer nicht überwachten automatischen Objektidentifikation ermöglicht die Verwendung von Bildanalysetechniken für einen breiten Bereich von industriellen Anwendungen. In Umgebungen, in denen sich der Hintergrund in einer nicht vorhersagbaren Weise verändert, wo viele Verfahren fehlschlagen, die einen automatisch berechneten Schwellwert nicht verwenden, ist die rekursive Berechnung eines automatischen Schwellwerts, wie nachstehend beschrieben, besonders leistungsfähig.
- Das Verfahren zum Identifizieren wenigstens eines gültigen Objekts der vorliegenden Erfindung umfasst den Schritt zum Bestimmen der Umfangspunkte des Kandidatenobjekts. Dieser Schritt wird durchgeführt, indem das Objekt nachgezogen wird, wie im Block C der Fig. 17 gezeigt. Die Koordinaten jedes Umfangspunkts des Objekts werden durch das Modul GET PERIM bestimmt, wie unter Bezugnahme auf Fig. 3 voranstehend beschrieben. Wie bei der ersten Ausführungsform kann der Schritt zum Bestimmen der Umfangspunkte ein Nachzeichnen des Objekts sequentiell in der Uhrzeigerrichtung oder ein Nachzeichnen (Nachverfolgen) des Objekts sequentiell in der Gegenuhrzeigerrichtung umfassen.
- Das Verfahren zum Identifizieren wenigstens eines gültigen Objekts der vorliegenden Erfindung umfasst ferner den Schritt zum Erzeugen eines Umfangspuffers. Dieser Schritt ist allgemein mit dem Block D der Fig. 17 gezeigt und wird in dem Modul LOAD BUFFER ausgeführt, wie voranstehend unter Bezugnahme auf die Fig. 6A und 6B gezeigt und beschrieben wurde.
- Das Verfahren zum Identifizieren wenigstens eines gültigen Objekts der vorliegenden Erfindung umfasst auch den Schritt zum Sortieren der Umfangspunkte in dem Umfangspuffer in einer vorgegebenen Reihenfolge, um einen sortierten Umfangspuffer zu erzeugen. Dieser Schritt ist mit dem Block E in Fig. 17 dargestellt. Der Sortierungsschritt wird, wie voranstehend unter Bezugnahme auf die erste Ausführungsform beschrieben, zum Nachzeichnen des Objekts entweder in der Uhrzeiger- oder der Gegenuhrzeigerrichtung ausgeführt.
- Das Verfahren zum Identifizieren von gültigen Objekten der vorliegenden Erfindung umfasst auch den Schritt, bei dem jedem Umfangspunkt eine Statusvariable, die einen ersten oder einen zweiten Wert aufweist, zugewiesen wird. Dieser Schritt ist allgemein im Block F der Fig. 17 gezeigt und wird in dem Modul READ COLOR ausgeführt, wie voranstehend unter Bezugnahme auf die Fig. 7 und 10 gezeigt und beschrieben.
- Das Verfahren zum Identifizieren wenigstens eines gültigen Objekts in Übereinstimmung mit der zweiten Ausführungsform der vorliegenden Erfindung umfasst ferner den Schritt, bei dem als die inneren Punkte des Objekts jeder Punkt auf dem gleichen Liniensegment wie der Umfangspunkt, der gerade untersucht wird und zwischen dem untersuchten Umfangspunkt und dem nächsten Umfangspunkt in dem sortierten Umfangspuffer liegt, bestimmt wird, wobei dem untersuchten Umfangspunkt der erste Wert FILL der Statusvariablen zugewiesen wird. Dieser Schritt ist allgemein im Block G der Fig. 17 gezeigt und wird in dem Modul READ COLOR ausgeführt, wie unter Bezugnahme auf die Fig. 7 und 10 für irgendwelche der Implementierungen der ersten Ausführungsform voranstehend beschrieben.
- Das Verfahren zum Identifizieren wenigstens eines gültigen Objekts in Übereinstimmung mit der zweiten Ausführungsform der vorliegenden Erfindung umfasst ferner den Schritt, bei dem das Objekt durch Zuweisen eines vorgegebenen Graupegelwerts an jedem bestimmten inneren Punkt markiert (gekennzeichnet) wird. Diese Markierung wird in dem Modul READ COLOR durchgeführt, wie voranstehend unter Bezugnahme auf den Block in Fig. 1 OB gezeigt und beschrieben.
- Das Verfahren zum Identifizieren wenigstens eines gültigen Objekts der vorliegenden Erfindung umfasst ferner den Schritt zum Prüfen nach redundanten Umfangspunkten. Dieser Schritt ist in dem Flussdiagramm der Fig. 10A durch die Entscheidungsraute E und den Block F dargestellt, wie voranstehend beschrieben. Wenn diese Überprüfung nach redundanten inneren Punkten ausgeführt wird, tritt der Schritt, bei dem sämtliche Punkte, die zwischen jedem redundanten Umfangspunkt und dem nächsten Umfangspunkt auf dem gleichen Liniensegment liegen, als die inneren Punkte des Objekts bestimmt werden, nur auf, wenn sämtlichen Exemplaren jedes redundanten Umfangspunkts der erste Wert der Statusvariablen (FILL) zugewiesen ist, wie voranstehend unter Bezugnahme auf die erste Ausführungsform beschrieben wurde.
- Das Verfahren der zweiten Ausführungsform der vorliegenden Erfindung umfasst ferner die Schritte zum Bestimmen des Graupegelwerts jedes inneren Punkts und das Charakterisieren des Objekts durch Verwenden der Graupegelwerte der inneren Punkte. Der Charakterisierungsschritt kann ein Bestimmen der Textur des Objekts umfassen. Alternativ oder zusätzlich kann der Charakterisierungsschritt ein Bestimmen der Farbe des Objekts umfassen. Alternativ oder zusätzlich kann der Charakterisierungsschritt ein Bestimmen von irgendwelchen Mustern umfassen, die in dem Objekt vorhanden sind.
- Das Verfahren zum Identifizieren wenigstens eines gültigen Objekts der vorliegenden Erfindung umfasst auch den Schritt zum Charakterisieren des Kandidatenobjekts durch den Kandidatenobjekt- Attributwert. Dieser Schritt könnte der gleiche wie der Schritt zum Charakterisieren des Objekts durch Verwenden der Graupegelwerte der inneren Punkte sein, wie Wir den Fall, wenn die Objektattributwerte die Innenpunktinformation verwenden. In einem Fall kann der Kandidatenobjekt-Attributwert die Farbe sein.
- Alternativ oder zusätzlich kann der Kandidatenobjekt-Attributwert die Textur des Objekts sein, oder in einem anderen Fall ein Muster in dem Objekt.
- Das Verfahren zum Identifizieren wenigstens eines gültigen Objekts der vorliegenden Erfindung umfasst auch den Schritt zum Validieren des Kandidatenobjekts, das den gültigen vorgegebenen Objekt- Attributwert aufweist, um das gültige Objekt zu identifizieren. Dieser Schritt ist im Block I der Fig. 17 gezeigt. Der Validierungsschritt umfasst auch die Unterschritte zum Berechnen der Kandidatenobjekt- Attributwerte und zum Vergleichen der Kandidatenobjekt-Attributwerte mit den vorgegebenen Attributwerten eines gültigen Objekts, um Kandidatenobjekte zu validieren. Der Berechnungs-Unterschritt kann ferner den Unterschritt zum Speichern der Kandidatenobjekt-Attributwerte umfassen. Der Validierungsschritt wird von einem Modul COL FILT ausgeführt, wie unter Bezugnahme auf Fig. 18 gezeigt und beschrieben ist. In dieser Ausführungsform der vorliegenden Erfindung verwendet COL FILT nur die Größe und die Farbe als vorgegebene Attributwerte von gültigen Objekten. Im allgemeinen können andere Attributwerte für die vorgegebenen Attributwerte von gültigen Objekten verwendet werden.
- Das Verfahren der zweiten Ausführungsform der vorliegenden Erfindung umfasst ferner den Schritt zum Filtern des Bilds. Der Filterungsschritt wird von dem Modul COL FILT entweder für inhomogene oder inhomogene Objekte ausgeführt. Das Filter in dem Schritt zum Filtern von inhomogenen Objekten umfasst drei Bedingungen, bei denen Objekte gelöscht werden sollten. Die erste Bedingung löscht Objekte, wenn ein Objekt eine kleinere Fläche als eine vorgegebene minimale Fläche aufweist. Die zweite Bedingung löscht Objekte, wenn das Objekt einen mittleren Farbtonwinkel kleiner als ein vorgegebenes Minimum und ein Farbton größer als ein vorgegebenes Minimum aufweist. Die dritte Bedingung löscht Objekte, wenn ein Objekt einen mittleren Farbtonwinkel größer als ein vorgegebenes Maximum aufweist und eine Farbtongröße größer als ein vorgegebenes Minimum aufweist. Der Farbtonwinkel und die Farbtongröße werden wie voranstehend mit den Gleichungen (1) und (2) oben berechnet.
- Wie im Block A der Fig. 18 gezeigt, besteht der erste Schritt von COL FILT zum Filtern von Objekten darin, zu dem anfänglichen Objekt fortzuschreiten. Die Entscheidungsraute B fragt dann, ob COL FILT über das letzte Objekt hinaus ist. Wenn dem so ist, dann ist das Modul ausgeführt, wie im Block C gezeigt. Wenn dem nicht so ist, dann fragt die Entscheidungsraute D, ob das Objekt eine Fläche aufweist, die größer als eine vorgegebene minimale Fläche ist. Wenn die Antwort ja ist, dann wird das Objekt gelöscht, wie im Block E gezeigt und das Modul geht weiter zu dem nächsten Objekt, wie im Block F gezeigt. Die Entscheidungsraute B fragt dann, ob COL FILT über das letzte Objekt hinaus ist und die Schleife durch B-F wird fortgesetzt, bis die Objektfläche nicht kleiner als die vorgegebene minimale Fläche ist. An diesem Punkt fragt die Entscheidungsraute G, ob der mittlere Farbtonwinkel des Objekts kleiner als ein vorgegebener minimaler Wert MINHUE ist und ob die Farbtongröße des Objekts größer als ein vorgegebener minimaler Wert MINMAG ist. Wenn die Antwort auf diese beiden Fragen ja ist, dann wird das Objekt gelöscht, wie im Block E gezeigt, und das Modul geht weiter zu dem nächsten Objekt, wie im Block F gezeigt. Die Schleife A und B wird fortgesetzt, bis COL FILT über das letzte Objekt hinaus ist, wobei sie an diesem Punkt durchgeführt ist, wie im Block C gezeigt. Wenn COL FILT nicht über das letzte Objekt hinaus ist, wird die Schleife durch A-G fortgesetzt, bis der Objektfarbton größer als oder gleich zu MINHUE ist oder die Objektfarbtongröße kleiner oder gleich zu MINMAG ist. Die Entscheidungsraute H fragt dann, ob der mittlere Farbtonwinkel des Objekts größer als ein vorgegebener maximaler Wert MAXHUE ist und ob die Farbtongröße des Objekts größer als der vorgegebene minimale Wert MINMAG ist. Wenn die Antwort auf diese beiden Fragen ja ist, dann wird das Objekt gelöscht, wie im Block E gezeigt und das Modul rückt vor zu dem nächsten Objekt, wie im Block F gezeigt. Die Schleife durch A und B wird fortgesetzt, bis COL FILT über das letzte Objekt hinaus ist, wobei sie an diesem Punkt durchgeführt ist, wie mit dem Block C gezeigt. Wenn COL FILT nicht über das letzte Objekt hinaus ist, dann wird die Schleife durch A-H fortgesetzt, bis die Objektfarbtongröße kleiner oder gleich wie der vorgegebene maximale Wert MAXHUE ist oder die Objektfarbtongröße kleiner oder gleich wie der vorgegebene minimale Wert MINMAG ist. Wenn die Antwort auf eine von diesen Fragen nein ist, dann wird das Objekt beibehalten und das Modul rückt zu dem nächsten Objekt vor, wie im Block F gezeigt. Die Schleife durch B-H wird fortgesetzt, bis das Modul über das letzte Objekt hinaus ist. Das Modul ist dann durchgeführt, wie im Block C gezeigt.
- Das Verfahren der zweiten Ausführungsform der vorliegenden Erfindung verwendet einen Treiber und einen Kern zum Validieren von Kandidatenobjekten. Der Treiber speichert die Attributwerte des gültigen Objekts, wobei jeder Wert die Definition eines gültigen Objekts darstellt, z. B. Farbe, Kantenkontrast, Fläche, Form, etc. Der Treiber der vorliegenden Erfindung ist für eine gegebene Anwendung spezifisch. In einer objektorientierten Umgebung ist es in vielen Fällen unkompliziert, ein Objekt über eine Liste von Attributen wie Größe, Form, Farbe, etc. zu beschreiben. Für komplexere Objekte, bei denen eine einfache parametrische Beschreibung nicht möglich sein kann, könnte man ein neuronales Netz in dem Treiber verwenden, um das Objekt zu identifizieren. Parameter, die von dem Kandidatenobjekt abgeleitet werden, können in das neuronale Netz geführt werden, welches trainiert worden ist, um spezifische Objekte zu erkennen. An diesem Punkt beginnt die Architektur der vorliegenden Erfindung einer neuronalen Seearchitektur zu ähneln, bei der eine Rückkopplungsschleife zwischen dem Gehirn und dem Auge vorhanden ist. Bei der vorliegenden Erfindung ist ein Treiber hoher Ordnung mit einem Kern niedrigerer Ordnung verbunden. In diesem Fall wird eine komplexere Beschreibung des Objekts verwendet, um den Suchprozess zu steuern, der wiederum weitere Kandidatenobjekte identifiziert.
- Der Treiber steuert den Kern an. Der Kern führt mehrere Funktionen aus. Er berechnet automatisch einen entropisch gewählten Schwellenpegelwert, durchsucht das Bild und berechnet die Attributwerte für ein Kandidatenobjekt. Zusätzlich führt er eine Gültigkeitsprüfung von Kandidatenobjekten durch Vergleichen der Attributwerte der Kandidatenobjekte mit den vorgegebenen Attributwerten für die gültigen Objekte aus, die wie voranstehend angegeben, in dem Treiber enthalten sind. Er führt auch eine Redundanzüberprüfung aus, um eine Mehrfachidentifikation eines gültigen Objekts zu verhindern.
- Gemäß einer ersten spezifischen Anwendung der zweiten Ausführungsform der vorliegenden Erfindung wird eine entropische Schwellwertbildung zum Durchsuchen des Bilds verwendet. Bei dieser ersten spezifischen Anwendung umfasst der Schritt zum Durchsuchen des Bilds den Unterschritt zum Erzeugen eines Graupegelhistogramms des Bilds. Das Graupegelhistogramm weist eine Entropiefunktion auf. Das Modul HISTOGRAMM wie voranstehend unter Bezugnahme auf Fig. 12 beschrieben, wird verwendet, um das Graupegelhistogramm des interessierenden Bereichs des Bilds zu erzeugen. Der Schritt zum Durchsuchen des Bilds umfasst den Unterschritt zum entropischen Wählen eines Schwellengraupegelwerts derart, dass die Entropiefunktion des Histogramms maximiert wird. Dieser Schritt wird von dem ENTROPY Modul ausgeführt, wie voranstehend unter Bezugnahme auf Fig. 13 beschrieben.
- Gemäß der Anwendung für eine entropische Schwellwertbildung der zweiten Ausführungsform umfasst der Suchschritt den Unterschritt zum Scannen eines Abschnitts des Bilds nach wenigstens einem Kandidatenobjekt unter Verwendung des entropisch gewählten Schwellengraupegelwerts. Der Durchsuchungsschritt umfasst ferner den Unterschritt zum Nachziehen (Nachverfolgen) des Kandidatenobjekts mit Grenzgraupegeln, die von dem entropisch gewählten Schwellengraupegel bestimmt werden. Bei dieser Implementierung wird der Suchschritt von dem Modul SEARCH IMAGE, wie voranstehend unter Bezugnahme auf Fig. 15 beschrieben, dem Modul FIND OBJECT, wie voranstehend unter Bezugnahme auf Fig. 16 beschrieben, und einem Modul TRACE OBJECT, wie in den Fig. 19A und 19B beschrieben, ausgeführt. Die grundlegenden Prinzipien des Moduls TRACE OBJECT sind ähnlich wie diejenigen, die in "Digital Image Processing" von Rafael C. Gonazles und Paul Wintz, Zweite Auflage, Addison-Wesley Publishing Company, Reading, Massachusetts (1987) beschrieben sind.
- Wie im Block A der Fig. 19A gezeigt, besteht der erste Schritt in dem TRACE OBJECT Modul darin, die Kandidatenobjekt-Attributwerte zu initialisieren. Das TRACE OBJECT Modul fragt dann in der Entscheidungsraute B, ob ein benachbarter Umfangspunkt gefunden worden ist. Wenn dem nicht so ist, ist das nachgezogene Objekt ungültig, wie im Block C dargestellt. Wenn der benachbarte Umfangspunkt gefunden worden ist, dann fragt die Entscheidungsraute D, ob das TRACE OBJECT Modul an dem ersten Umfangspunkt des Kandidatenobjekts ist. Wenn dem nicht so ist, dann werden die Kandidatenobjekt- Attributwerte aktualisiert, wie im Block E der Fig. 19A dargestellt. Die Schleife durch B-E wird dann unter Verwendung der aktualisierten Kandidatenobjekt-Attributwerte wiederholt, bis das TRACE OBJECT Modul an dem ersten Umfangspunkt des Kandidatenobjekts ist. Die Schwerpunktskoordinate wird dann berechnet, wie im Block F der Fig. 19A gezeigt. Die Entscheidungsraute G fragt dann, ob die Kandidatenobjektfläche zu groß ist. Wenn dem so ist, dann ist das nachgezogene Objekt ungültig, wie mit dem Block H der Fig. 19A angezeigt.
- Wenn die Kandidatenobjektfläche nicht zu groß ist, dann wird ein Formfaktor berechnet, wie im Block I der Fig. 19B gezeigt. Die Definition des Formfaktors kann in Abhängigkeit von der Geometrie des Objekts, welches gerade identifiziert wird, unterschiedlich sein. Zum Beispiel ist die Definition des Formfaktors für kreisförmige Objekte:
- Formfaktor = 1 - p²/4πA
- wobei P der Umfang eines Kandidatenobjekts ist; und
- A die Fläche des Kandidatenobjekts ist.
- TRACE OBJECT überprüft dann, ob der Formfaktor innerhalb eines vorgegebenen Bereichs, wie in dem Treiber enthalten, ist, wie in der Entscheidungsraute J in Fig. 19B gezeigt. Wenn der Formfaktor nicht in den vorgegebenen Bereich fällt, dann ist das nachverfolgte oder nachgezogene Objekt ungültig, wie mit dem Block K der Fig. 19B dargestellt. Wenn der Formfaktor in den vorgegebenen Bereich fällt, dann wird das Kandidatenobjekt zu der Liste von gültigen Objekten hinzugefügt, die von dem Kern aufrechterhalten werden, wie mit dem Block L gezeigt.
- Nachdem sämtliche Kandidatenobjekte bei der gegenwärtigen Suche nachgezogen worden sind, wird das Modul CHK GRAY, wie in Fig. 20 gezeigt, aufgerufen, um zu überprüfen, ob die Kandidatenobjekte relativ heller als der Hintergrund sind. CHK GRAY wird nach der Entscheidungsraute C der Fig. 15 laufengelassen, wenn die Suchposition an dem Ende des Scanvorgangs ist. Wie mit dem Block A in Fig. 20 gezeigt, besteht der erste Schritt in dem CHK GRAY Modul darin, zu dem nächsten ersten Kandidatenobjekt vorzurücken, das in der gegenwärtigen Suche gefunden wird. Die Entscheidungsraute B der Fig. 20 fragt, ob das Kandidatenobjekt das letzte Objekt in der Liste von Kandidatenobjekten ist. Wenn dem so ist, stoppt das Modul den Ablauf wie mit dem ovalen C gezeigt. Wenn das Kandidatenobjekt nicht das letzte Objekt in der Liste von Kandidatenobjekten ist, dann wird der durchschnittliche externe Graupegel berechnet, wie im Block D illustriert. Die Entscheidungsraute E fragt dann, ob der Graupegel des Schwerpunkts größer als der durchschnittliche externe Graupegel der vier externen Punkte (d. h. des oberen, unteren, linken und rechten Punkts), die die Extrempunkte des Objekts umgeben, ist. Die externen Punkte sind diejenigen Punkte in dem Hintergrund, die unmittelbare Nachbarn zu den Extrempunkten des Objekts sind. Wenn dem nicht so ist, dann wird das Objekt gelöscht, wie mit dem Block F in Fig. 20 gezeigt. Wenn der Schwerpunkt des Graupegels größer als der durchschnittliche externe Graupegel ist, dann wird das Kandidatenobjekt beibehalten und das CHK GRAY Modul rückt vor zu dem nächsten Kandidatenobjekt, wie mit dem Block G gezeigt. Das CHK CRAY Modul kehrt dann zu der Entscheidungsraute B zurück, um zu fragen, ob das Kandidatenobjekt das letzte Objekt ist. Die Schleife wie in B-G gezeigt, wird für das nächste Kandidatenobjekt wiederholt, bis das nächste Kandidatenobjekt das letzte Kandidatenobjekt ist, wobei an diesem Punkt der Ablauf von CHK GRAY stoppt. Wie voranstehend angegeben, kann das Modul CHK GRAY ablaufengelassen werden, um Objekte zu erfassen, die dunkler als der Hintergrund sind. In diesem Fall wird das Bild vor der Ausführung des Schritts zum Erzeugen des Bilds des Objekts und des Hintergrunds anfänglich invertiert.
- Das Verfahren wie bis hierhin beschrieben, kann als ein Durchforstungsprozess (Screening- Prozess) bezeichnet werden. Zum Beispiel kann es verwendet werden, um die Anwesenheit von pathologischen Bakterien in Lebensmitteln oder im Blut oder Schmutzproben zu durchforsten. Ein Durchforstungsprozess führt zu einer ja-nein-Antwort; eine absolute Quantifizierung ist nicht erforderlich. Für einen strengeren Identifikationsprozess ist es erforderlich, das Verfahren einer Anwendung mit einem entropischen Schwellwert der zweiten Ausführungsform der vorliegenden Erfindung rekursiv wie nachstehend beschrieben, anzuwenden.
- Die rekursive Version der ersten spezifischen Anwendung der zweiten Ausführungsform kann ferner die Schritte zum Aufteilen des Graupegelhistogramms in ein oberes Histogramm und ein unteres Histogramm unter Verwendung des entropischen Schwellengraupegels, der zum Maximieren der Entropiefunktion des Histogramms gewählt wurde, als ein oberer Abgrenzer und ein unterer Abgrenzer umfassen. Die Schritte der Auswahl, der Durchsuchung, der Validierung und der Unterteilung werden rekursiv für jedes der oberen und unteren Histogramme wiederholt. Die Wiederholung des Wählschritts wählt einen nächsten sukzessiven entropischen Schwellengraupegel, wodurch das Graupegelhistogramm rekursiv aufgeteilt wird, um die gültigen Objekte zu identifizieren, bis eine vorgegebene minimale Anzahl von neuen gültigen Objekten identifiziert ist. In der bevorzugten Implementierung dieser Erfindung ist die vorgegebene minimale Anzahl Null. Jedoch kann es Fälle geben, bei denen die vorgegebene Anzahl größer als Null ist, beispielsweise dann, wenn eine vollständige Identifikation nicht benötigt wird.
- Die Fig. 21A-21C zeigen das Konzept einer Unterteilung eines Histogramms in ein oberes Histogramm und ein unteres Histogramm. Ein ursprüngliches Histogramm ist in Fig. 21A gezeigt. THRESH (Schwellwert), wie bei T in Fig. 21A gezeigt, ist der entropisch gewählte Schwellengraupegel für das Graupegelhistogramm, das dem Graupegelbereich zwischen dem minimalen Graupegel, der gerade gesucht wird, und dem maximalen Graupegel, der gerade gesucht wird, entspricht. Für das ursprüngliche Histogramm, wie in Fig. 21A gezeigt, ist der minimale Graupegel, der gesucht wird, Null und der maximale Graupegel, der gesucht wird, ist MAX. THRESH HI (Schwellwert oben), wie bei B gezeigt, ist der entropisch gewählte Schwellengraupegel für das Graupegelhistogramm, das dem Graupegelbereich zwischen THRESH (Schwellwert) und MAX entspricht. THRESH LO (Schwellwert unten), wie bei A gezeigt, ist der entropisch gewählte Schwellengraupegel für das Graupegelhistogramm, das dem Graupegelbereich zwischen Null und THRESH (Schwellwert) entspricht.
- Gemäß der rekursiven Version der ersten spezifischen Anwendung werden dann die Unterteilungs- , Wähl-, Such- und Validierungsschritte rekursiv wiederholt. Mit einer Rekursion ist der Prozess eines kontinuierlichen Unterteilens eines Histogramm in obere und untere Histogramme, das Durchsuchen jedes oberen Histogramms, wobei dieses obere Histogramm selbst in obere und untere Histogramme kontinuierlich aufgeteilt wird, nach neuen gültigen Objekten, bis die Anzahl von neuen gültigen Objekten, die in einem oberen Histogramm gefunden werden, kleiner oder gleich wie eine vorgegebene minimale Anzahl ist, und nachfolgende Durchsuchen jedes unteren Histogramms, das dem jüngsten durchsuchten oberen Histogramm entspricht, wobei dieses untere Histogramm selbst in obere und untere Histogramm kontinuierlich aufgeteilt wird, entspricht, bis die Anzahl von neuen gültigen Objekten, die in einem unteren Histogramm gefunden werden, kleiner als oder gleich zu der vorgegebenen minimalen Anzahl ist.
- Das obere Histogramm ist in Fig. 21B gezeigt. Die Wiederholung des Unterteilungsschritts teilt das obere Histogramm in ein nächstes sukzessives oberes und unteres Histogramm auf, wie in Fig. 21B gezeigt. Die Wiederholung des Wählschritts für das obere Histogramm wählt einen nächsten oberen sukzessiven entropischen Schwellengraupegelwert, wie bei B in Fig. 21B gezeigt. Somit wird der Punkt B, der THRESH HI (Schwellwert oben) in dem ursprünglichen Histogramm wahr, der Schwellwert für das obere Histogramm oder NEXT UPPER THRESH (nächster oberer Schwellwert). In Fig. 21B ist der minimale Graupegelwert, der gesucht wird, nun IHRESH (Schwellwert) und der maximale Graupegelwert, der gesucht wird, ist nun MAX. Der NEXT UPPER THRESH III (nächster oberer Schwellwert oben), der bei C gezeigt ist, ist der entropisch gewählte Schwellengraupegelwert für das Graupegelhistogramm, das dem Graupegelbereich zwischen B und MAX entspricht. Der NEXT UPPER THRESH LO (nächster oberer Schwellwert unten), der bei D gezeigt ist, ist der entropisch gewählte Schwellengraupegelwert für das Graupegelhistogramm, das dem Graupegelbereich zwischen IHRESH (Schwellwert) und B entspricht. Die Wähl-, Durchsuchungs- und Validierungsschritte werden dann rekursiv unter Verwendung des nächsten oberen sukzessiven entropischen Schwellengraupegelwerts B als der entropische Schwellengraupegelwert rekursiv wiederholt.
- Fig. 21C zeigt das untere Histogramm. Die Wiederholung des Unterteilungsschritts teilt das untere Histogramm in ein nächstes sukzessives oberes und unteres Histogramm auf, wie in Fig. 21C gezeigt. Die Wiederholung des Wählschritts für das untere Histogramm wählt einen nächsten unteren sukzessiven entropischen Schwellengraupegelwert, wie bei A in Fig. 21C gezeigt. Somit wird der Punkt A, der THRESH LO (Schwellwert unten) in dem ursprünglichen Histogramm wahr, der Schwellwert für das aufgeteilte untere Histogramm oder NEXT LOWER THRESH (nächster unterer Schwellwert). In Fig. 21 C ist der minimale Graupegelwert, der gesucht wird, nun Null und der maximale Graupegelwert, der gesucht wird, ist nun THRESH. Der NEXT LOWER THRESH HI (nächster untere Schwellwert oben), der bei E gezeigt ist, ist der entropisch gewählte Schwellengraupegelwert für das Graupegelhistogramm, das dem Graupegelbereich zwischen A und THRESH (Schwellwert) entspricht. Der NEXT LOWER THRESH LO (nächster unterer Schwellwert LO), der bei F gezeigt ist, ist der entropisch gewählte Schwellengraupegelwert für das Graupegelhistogramm, das dem Graupegelbereich zwischen Null und A entspricht. Die Wähl-, Durchsuchungs- und Validierungsschritte werden dann für das untere Histogramm unter Verwendung des nächsten unteren sukzessiven entropischen Schwellengraupegelwerts A als der entropische Schwellengraupegelwert wiederholt.
- Das ANALYZE Modul, wie in Fig. 22 gezeigt, bildet den grundlegenden rekursiven Kern der rekursiven Version der zweiten Ausführungsform. Das ANALYZE Modul zoomt effektiv auf einen spezifischen Bereich in dem Graupegelraum hinein, um nach Exemplaren des Kandidatenobjekts zu suchen, und teilt rekursiv das Histogramm auf. Der erste Schritt in dem ANALYZE Modul, wie in Fig. 22 gezeigt, besteht darin, die entropisch gewählten Schwellengraupegelwerte THRESH, THRESH HI und THRESH LO, wie voranstehend beschrieben und wie im Block A der Fig. 22 gezeigt, zu berechnen. Wie im Block B gezeigt, wird das Modul SEARCH IMAGE unter Verwendung der Graupegelwerte ablaufengelassen, die in dem oberen Histogramm enthalten sind. Eine Entscheidungsraute C fragt dann, ob die Anzahl von neuen gültigen Objekten, die gefunden werden, größer als die vorgegebene minimale Anzahl ist. Wenn dem so ist, dann wird das Modul ANALYZE rekursiv auf dem oberen Histogramm laufengelassen. Wenn die Anzahl von gültigen Objekten, die gefunden werden, nicht größer als die vorgegebene minimale Anzahl ist, dann wird das Modul SEARCH IMAGE wiederum unter Verwendung der Graupegelwerte laufengelassen, die in dem unteren Histogramm enthalten sind, wie im Block E gezeigt. Die Entscheidungsraute F fragt dann, ob die Anzahl von neuen gültigen Objekten, die gefunden werden, größer als die vorgegebene minimale Anzahl ist. Wenn dem so ist, dann wird ANALYZE auf dem unteren Histogramm rekursiv laufengelassen, wie im Block G gezeigt. Wenn dem nicht so ist, wird der Ablauf von ANALYZE dann angehalten und die gültigen Objekte werden zurückgegeben, wie im Block H der Fig. 22 gezeigt. Mit der vorliegenden Erfindung besteht eine gewisse Breite bei der Auswahl des Bereichs von Werten der Anzahl von Attributen, nach denen in dem Validierungsschritt während des rekursiven Prozesses geprüft wird.
- In Übereinstimmung mit dem Verfahren der ersten spezifischen Anwendung der zweiten Ausführungsform der vorliegenden Erfindung umfasst der Validierungsschritt ferner den Unterschritt zum Überprüfen von Redundanzen, um eine mehrfache Identifikation des gültigen Objekts zu verhindern. Eine derartige Redundanzüberprüfung ist erforderlich, da ein Objekt, das als gültig erkannt worden ist, nach der gegenwärtigen Suche als ein gültiges Objekt in einer früheren Suche erkannt werden kann. Um den Redundanzüberprüfungs-Unterschritt auszuführen, werden gültige Objekte als entweder homogen oder inhomogen klassifiziert. Inhomogene Objekte werden in dem nachstehend angegebenen Beispiel beschrieben, bei dem Farbkolonien identifiziert werden. Gültige Objekte werden weiter als entweder ein relativ großes gültiges Objekt oder ein kleines gültiges Objekt klassifiziert. Zusätzlich werden gültige Objekte als entweder in einem anderen gültigen Objekt enthalten (innere gültige Objekte) oder niemals in einem anderen gültigen Objekt enthalten (externe gültige Objekte) klassifiziert.
- In Übereinstimmung mit dem Verfahren der ersten spezifischen Anwendung der zweiten Ausführungsform der vorliegenden Erfindung kann der Redundanzüberprüfungs-Unterschritt ausgeführt werden, um inhomogene gültige Objekte zu löschen. Wenn dem so ist, umfasst das Verfahren der vorliegenden Erfindung ferner den Unterschritt zum Löschen des großen Objekts, wenn das große Objekt mehr als ein kleines Objekt umfasst. Wenn der Redundanzüberprüfungs-Unterschritt ausgeführt wird, um inhomogene gültige Objekte zu löschen, umfasst das Verfahren der vorliegenden Erfindung auch die Unterschritte zum Berechnen des durchschnittlichen Kantenkontrasts der großen und der kleinen gültigen Objekte und das Löschen des Objekts, das den kleineren Kantenkontrast aufweist, wenn das große Objekt nur ein kleines Objekt enthält. Diese Unterschritte werden von einem Modul CHK LIST ausgeführt, wie in den Fig. 23A-D für inhomogene gültige Objekte gezeigt.
- Wie im Block A der Fig. 23A gezeigt, besteht der erste Schritt des CHK LIST Moduls zum Löschen von inhomogenen Objekten darin, den vorangehenden Zählwert als die Anzahl von gültigen Objekten zu definieren, der vor der gegenwärtigen Suche gefunden werden. Dann wird das Schwanzobjekt (Endobjekt) als das anfängliche Kandidatenobjekt definiert, das in der gegenwärtigen Suche gefunden wird, wie im Block B gezeigt. Der Objektzählwert wird auf Eins initialisiert, wie im Block C gezeigt, und das Kopfobjekt wird als das anfängliche Objekt in der Gesamtobjektliste (d. h. der Liste von sämtlichen Objekten, die bislang gefunden wurden) definiert, wie im Block D gezeigt. Die Entscheidungsraute E fragt, ob der Objektzählwert größer als der vorangehende Zählwert ist.
- Wenn der Objektzählwert größer als der vorangehende Zählwert ist, rückt CHK LIST zu dem nächsten Objekt in der Gesamtobjektliste vor, wie im Block A der Fig. 23B gezeigt. Die Entscheidungsraute B der Fig. 23B fragt, ob CHK LIST an dem letzten Objekt ist. Wenn dem nicht so ist, dann fragt die Entscheidungsraute C, ob das gültige Objekt innerhalb eines anderen gültigen Objekts enthalten ist. Wenn dem so ist, wird der Objektstatus auf den Status des Objekts gesetzt, in dem es enthalten ist, wie im Block D gezeigt, und CHK LIST rückt zu dem nächsten Objekt vor, wie mit dem Block E gezeigt. Wenn das Objekt nicht innerhalb eines anderen Objekts enthalten ist, dann rückt CHK LIST zu dem nächsten Objekt vor, wie im Block E gezeigt. Die Schleife durch B-E wird fortgesetzt, bis das nächste Objekt des Blocks E das letzte Objekt ist, wobei an diesem Punkt CHK LIST zu dem ersten Objekt in der Gesamtobjektliste vorrückt, wie im Block F gezeigt. Die Objektstatus-Attributwerte für sämtliche Objekte werden auf "wahr" gesetzt, wie im Block G gezeigt. "Wahr" in dieser Hinsicht bedeutet gültig und "unwahr" bedeutet ungültig. Die Entscheidungsraute H fragt dann, ob CHK LIST an dem letzten Objekt ist.
- Wenn dem so ist, dann rückt CHK LIST zu dem ersten Objekt vor, wie im Block A der Fig. 23C gezeigt. Die Entscheidungsraute B fragt dann wiederum, ob CHK LIST an dem letzten Objekt ist. Wenn dem so ist, dann wird die Gesamtanzahl von Objekten gezählt, wie im Block C gezeigt, und die Differenz zwischen der Gesamtanzahl von Objekten und dem vorangehenden Zählwert wird zurückgegeben, wie im Block D gezeigt. Wenn CHK LIST nicht an dem letzten Objekt ist, dann fragt die Entscheidungsraute E, ob der Objektstatus-Attributwert unwahr ist. Wenn dem so ist, dann wird das Objekt gelöscht, wie im Block F gezeigt. Wenn dem nicht so ist, dann rückt CHK LIST das Objekt vor, wie im Block G gezeigt, und CHK LIST fragt wiederum, ob es an dem letzten Objekt ist, wie in der Entscheidungsraute B gezeigt. Die Schleife durch B, E, F und G wird fortgesetzt, bis das vorgerückte Objekt des Blocks G das letzte Objekt ist. An diesem Punkt wird die Gesamtanzahl von Objekten gezählt, wie im Block C gezeigt, und die Differenz zwischen der Gesamtanzahl von Objekten und dem vorangehenden Zählwert wird zurückgegeben, wieim Block D gezeigt.
- Zurückkehrend zu der Entscheidungsraute H in der Fig. 23B, wenn CHK LIST nicht an dem letzten Objekt zu diesem Punkt ist, dann geht es zu der Entscheidungsraute I, die fragt, ob das Objekt mehr als ein gültiges Objekt enthält. Wenn dem so ist, dann wird der Objektstatus-Attributwert auf unwahr gesetzt, wie im Block J gezeigt, und CHK LIST geht zu dem nächsten Objekt weiter, wie mit dem Block K gezeigt. CHK LIST kehrt dann zu der Entscheidungsraute H zurück, fragt nach, ob es an dem letzten Objekt ist und setzt diesen Prozess fort, bis das Objekt nicht mehr als ein gültiges Objekt enthält. Die Entscheidungsraute A der Fig. 23D fragt, ob das Objekt das einzige Objekt ist, das innerhalb eines anderen Objekts enthalten ist. Wenn nicht, dann geht CHK LIST zu dem nächsten Objekt weiter, wie in dem Block K der Fig. 23B gezeigt und die Schleife durch H-K der Fig. 23B und A der Fig. 23D wird wiederholt, bis das Objekt das einzige Objekt ist, das in einem anderen Objekt enthalten ist. Wenn das Objekt das einzige Objekt ist, das innerhalb eines anderen Objekts enthalten ist, dann fragt die Entscheidungsraute B, ob der Statusattributwert des Objekts, der das Objekt enthält, unwahr ist. Wenn dem so ist, dann geht CHK LIST zu dem nächsten Objekt weiter, wie mit dem Block K der Fig. 23B gezeigt, und die Schleife durch H-K der Fig. 23B und A-B der Fig. 23D wird wiederholt, bis der Statusattributwert des Objekts, der das Objekt enthält, nicht unwahr ist. An diesem Punkt fragt die Entscheidungsraute N, ob der Kantenkontrast des Objekts, das ein anderes Objekt enthält, größer als der Kantenkontrast des Objekts ist. Wenn dem so ist, dann setzt CHK LIST den Objektstatus-Attributwert auf unwahr, wie im Block D gezeigt, geht zu dem nächsten Objekt, wie in dem Block K der Fig. 23B gezeigt, und die Schleife durch H-K der Fig. 23B und A-C der Fig. 23D wird wiederholt, bis der Kantenkontrast des Objekts, das ein anderes Objekt enthält, nicht größer als der Kantenkontrast des Objekts ist, das in einem anderen Objekt enthalten ist. Dann setzt CHK LIST den Status des Objekts, das das Objekt enthält, auf unwahr, wie im Block E der Fig. 23D gezeigt, und rückt vor zu dem nächsten Objekt, wie mit dem Block K der Fig. 23D gezeigt, bis es an dem letzten Objekt ist.
- Wenn zurückkehrend zu der Entscheidungsraute E in Fig. 23A der Objektzählwert nicht größer als der vorangehende Zählwert ist, dann fragt die Entscheidungsraute F, ob das Kopfobjekt innerhalb eines anderen Objekts enthalten ist. Wenn dem so ist, dann wird das Kopfobjekt vorgerückt, wie im Block G gezeigt, und der Objektzählwert wird inkrementiert, wie im Block H gezeigt. Die Entscheidungsraute E fragt wiederum, ob der inkrementierte Objektzählwert größer als der vorangehende Zählwert ist. Wenn dem so ist, dann rückt CHK LIST zum Block A der Fig. 23B vor, wie voranstehend erläutert. Wenn der inkrementierte Zählwert nicht größer als der vorangehende Zählwert ist, dann wird die Schleife durch F, G, H und E in Fig. 23A wiederholt, bis das Kopfobjekt nicht innerhalb eines anderen Objekts enthalten ist. Dann rückt CHK LIST zur Entscheidungsraute I der Fig. 23A vor, die fragt, ob das Schwanzobjekt das letzte Objekt ist oder ob das Kopfobjekt innerhalb eines anderen Objekts enthalten ist. Wenn das Schwanzobjekt das letzte Objekt ist oder wenn das Kopfobjekt innerhalb eines anderen Objekts enthalten ist, dann rückt CHK LIST das Kopfobjekt vor, wie im Block G gezeigt, und der Zählwert wird inkrementiert, wie im Block H gezeigt. Die Schleife durch E, F, I, G und H wird wiederholt, bis das Schwanzobjekt nicht das letzte Objekt ist oder das Kopfobjekt nicht in einem anderen Objekt enthalten ist. Die Entscheidungsraute J fragt dann, ob das Schwanzobjekt innerhalb eines anderen Objekts enthalten ist. Wenn dem so ist, dann wird das Schwanzobjekt vorgerückt, wie im Block K der Fig. 23A gezeigt, und die Schleife durch I, J und K wird wiederholt, bis das Schwanzobjekt nicht innerhalb eines anderen Objekts enthalten ist. Dann geht CHK LIST zu dem Modul SET STAT, wie in Fig. 24 gezeigt, um den Status der Kopf und Schwanzobjekte einzustellen, wie im Block L der Fig. 23A gezeigt.
- Der Redundanzüberprüfungs-Unterschritt umfasst ferner die Unterschritte zum Vergleichen der Gebiete (Flächen) einer Vielzahl von gültigen Objekten und das Bestimmen von einem der gültigen Objekte als ein großes gültiges Objekt und der anderen der ersten und zweiten gültigen Objekte als ein kleines gültiges Objekt und das Bestimmen, ob das kleine gültige Objekt in dem großen gültigen Objekt enthalten ist, wie mit den vier Extrempunkten des größeren Objekts für inhomogene Objekte definiert. Das Modul SET STAT, wie in Fig. 24 gezeigt, führt diese Unterschritte für inhomogene Objekte aus. Der erste Schritt von SET STAT, wie in der Entscheidungsraute A der Fig. 24 gezeigt, besteht darin, zu fragen, ob das Kopfobjekt größer als das Schwanzobjekt ist. Wenn dem so ist, dann wird das Kopfobjekt als das große gültige Objekt definiert und das Schwanzobjekt wird als das kleine gültige Objekt definiert, wie im Block B gezeigt. Wenn das Kopfobjekt nicht größer als das Schwanzobjekt ist, dann wird das Kopfobjekt als das kleine gültige Objekt definiert und das Schwanzobjekt wird als das große gültige Objekt definiert, wie im Block C gezeigt. Dann fragt die Entscheidungsraute D, ob das kleine Objekt innerhalb des großen Objekts enthalten ist. Wenn dem nicht so ist, dann wird SET STAT beendet, wie mit einem END Oval E angedeutet. Wenn das kleine Objekt innerhalb eines großen Objekts enthalten ist, dann wird der Typenattributwert des großen Objekts auf einen Wert gesetzt, der anzeigt, dass es ein kleines Objekt enthält, wie in Figur F gezeigt. Der Typenattributwert teilt SET STAT mit, ob ein Objekt innerhalb eines anderen Objekts enthalten ist oder ob das Objekt ein anderes Objekt enthält. Ferner wird der Typenattributwert des kleinen Objekts auf einen Wert gesetzt, der anzeigt, dass es in einem großen Objekt enthalten ist, wie im Block G gezeigt. Schließlich wird der Statusattributwert des großen Objekts inkrementiert, wie im Block H gezeigt. SET STAT wird beendet, wie mit dem END Oval I angedeutet und kehrt zum Block L der Fig. 23A zurück.
- Gemäß der ersten spezifischen Anwendung der zweiten Ausführungsform kann der Redundanzüberprüfungs-Unterschritt ausgeführt werden, um Redundanzen in den homogenen Objekten aufzulösen. Wenn dies so ist, dann umfasst das Verfahren der vorliegenden Erfindung ferner die Unterschritte zum Berechnen des Kantenkontrasts der großen und kleinen gültigen Objekte und zum Löschen des großen Objekts, wenn der durchschnittliche Kantenkontrast des großen Objekts kleiner als der durchschnittliche Kantenkontrast des kleinen Objekts ist und kleiner als ein vorgegebener minimaler Kantenkontrast ist. Der Redundanzüberprüfungs-Unterschritt zum Auflösen von Redundanzen umfasst auch die Unterschritte zum Berechnen des Kantenkontrasts der großen und kleinen gültigen Objekte und zum Löschen des kleinen Objekts, wenn der durchschnittliche Kantenkontrast des großen Objekts größer als der durchschnittliche Kantenkontrast des kleinen Objekts ist und größer als der vorgegebene minimale Kontrast ist. Diese Unterschritte werden unter Verwendung des Moduls CHK LIST für homogene Objekte ausgeführt, wie mit den Flussdiagrammen der Fig. 25A und 25B gezeigt.
- Wie im Block A der Fig. 25A gezeigt, besteht der erste Schritt des CHK LIST Moduls, wenn es zum Löschen von homogenen Objekten laufengelassen wird, darin, den vorangehenden Zählwert als die Anzahl von gültigen Objekten zu definieren, die vor der gegenwärtigen Suche gefunden werden. Dann wird das Schwanzobjekt als das anfängliche Kandidatenobjekt definiert, das in der gegenwärtigen Suche gefunden wird, wie im Block B gezeigt. Der Objektzählwert wird auf Eins initialisiert, wie im Block C gezeigt, und das Kopfobjekt wird als das anfängliche Objekt in der Gesamtobjektliste definiert, wie im Block D gezeigt. Der Objektstatus-Attributwert wird dann auf wahr für alle Objekte gesetzt, wie im Block E gezeigt. Die Entscheidungsraute F fragt, ob der Objektzählwert größer als der vorangehende Zählwert ist.
- Wenn der Objektzählwert größer als der vorangehende Zählwert ist, dann rückt CHK LIST zu dem anfänglichen Objekt in der Gesamtobjektliste vor, wie im Block A der Fig. 25B gezeigt. Die Entscheidungsraute B der Fig. 25B fragt, ob CHK LIST an dem letzten Objekt ist. Wenn dem so ist, wird die Gesamtanzahl von Objekten gezählt, wie im Block C gezeigt, und die Differenz zwischen der Gesamtanzahl von Objekten und dem vorangehenden Zählwert wird zurückgegeben, wie im Block D gezeigt. Wenn CHK LIST nicht an dem letzten Objekt ist, dann fragt die Entscheidungsraute E, ob der Objektstatus-Attributwert unwahr ist. Wenn dem so ist, dann wird das Objekt gelöscht, wie im Block F gezeigt. Wenn der Objektstatus nicht unwahr ist, dann wird das Objekt vorgerückt, wie im Block G gezeigt und das CHK LIST Modul fragt wiederum, ob es an dem letzten Objekt ist, wie in der Entscheidungsraute B gezeigt. Dieser Prozess wird fortgesetzt, bis CHK LIST das letzte Objekt erreicht, wobei an diesem Punkt die Gesamtanzahl von Objekten gezählt ist, wie im Block C gezeigt, und die Differenz zwischen der gesamten Anzahl von Objekten und dem vorangehenden Zählwert wird zurückgegeben, wie im Block D gezeigt.
- Wenn bei der Rückkehr zur Entscheidungsraute F in Fig. 25A der Objektzählwert nicht größer als der vorangehende Zählwert ist, dann fragt die Entscheidungsraute G der Fig. 25A, ob der Statusattributwert des Kopfobjektes unwahr ist. Wenn dem so ist, dann wird das Kopfobjekt vorgerückt, wie im Block H gezeigt, und der Zählwert wird inkrementiert, wie im Block I gezeigt. Die Entscheidungsraute F fragt dann, ob der inkrementierte Objektzählwert größer als der vorangehende Zählwert ist. Wenn dem so ist, dann geht CHK LIST zum Block A der Fig. 23B weiter, wie voranstehend erläutert. Die Schleife durch G, H und I in Fig. 25A wird wiederholt, bis der Status des Objekts nicht unwahr ist: Dann rückt CHK LIST zu der Entscheidungsraute J der Fig. 25A vor, die fragt, ob das Schwanzobjekt nicht das letzte Objekt ist und ob der Kopfobjekt-Statusattributwert wahr ist. Die Antwort auf beide diese Fragen muss ja sein. Wenn dem nicht so ist, dann rückt CHK LIST das Kopfobjekt vor, wie im Block H gezeigt, und der Zählwert wird inkrementiert, wie im Block I gezeigt. Die Schleife durch F, G, H, I und J wird wiederholt, bis das Schwanzobjekt das letzte Objekt ist und der Kopfobjekt-Statusattributwert wahr ist. Die Entscheidungsraute K fragt dann, ob der Schwanzobjekt-Statusattributwert wahr ist. Wenn dem so ist, dann wird der Kantenstatus des Kopf und Schwanzobjekts gesetzt, wie im Block L der Fig. 25A gezeigt und wie mit Einzelheiten in Fig. 26 gezeigt, nämlich durch das Modul SET STAT. CHK LIST rückt dann das Schwanzobjekt vor, wie im Block M gezeigt, und die Schleife durch J, K, L und M wird wiederholt. Wenn der Schwanzobjektstatus nicht wahr ist, dann rückt CHK LIST das Schwanzobjekt vor, wie im Block M gezeigt, und die Schleife durch J, K und M wird wiederholt.
- Das Modul SET STAT, wie in Fig. 26 gezeigt, führt die Unterschritte zum Vergleichen der Gebiete einer Vielzahl von gültigen Objekten und zum Bestimmen von einem der gültigen Objekte als ein großes gültiges Objekt und des anderen der ersten und zweiten gültigen Objekte als ein kleines gültiges Objekt und zum Bestimmen, ob das kleine gültige Objekt in dem großen gültigen Objekt enthalten ist, wie durch die vier Extrempunkte des großen Objekts für homogene Objekte definiert, aus. Wie in der Entscheidungsraute A der Fig. 26 gezeigt, besteht der erste Schritt von SET STAT darin, zu fragen, ob das Kopfobjekt größer als das Schwanzobjekt ist. Wenn dem so ist, wird das Kopfobjekt als ein großes gültiges Objekt definiert und das Schwanzobjekt wird als das kleine gültige Objekt definiert, wie im Block B gezeigt. Wenn das Kopfobjekt nicht größer als das Schwanzobjekt ist, dann wird das Kopfobjekt als das kleine gültige Objekt definiert und das Schwanzobjekt wird als das große gültige Objekt definiert. Die Entscheidungsraute D von SET STAT fragt dann, ob das kleine Objekt innerhalb des großen Objekts enthalten ist. Wenn dem nicht so ist, stoppt SET STAT den Ablauf, wie mit einem Oval E gezeigt. Wenn das kleine Objekt innerhalb des großen Objekts enthalten ist, dann fragt die Entscheidungsraute F, ob der Kantenkontrast des großen Objekts größer als der Kantenkontrast des kleinen Objekts ist und ob der Kantenkontrast des großen Objekts größer als der vorgegebene minimale Kantenkontrast ist. Wenn die Antwort auf diese beiden Fragen ja ist, dann wird der Statusattributwert des großen Objekts auf wahr gesetzt und der Statusattributwert des kleinen Objekts wird auf unwahr gesetzt, wie mit dem Block G gezeigt, und das Modul stoppt einen Ablauf, wie mit dem Oval H gezeigt. Wenn die Antwort auf wenigstens eine der Fragen in der Entscheidungsraute F nein ist, dann wird der Statusattributwert des kleinen Objekts auf wahr gesetzt, der Statusattributwert des großen Objekts wird auf unwahr gesetzt, wie mit dem Block I angedeutet, und das Modul stoppt einen Ablauf, wie mit dem Oval J angedeutet.
- Das Verfahren der ersten spezifischen Anwendung der zweiten Ausführungsform umfasst ferner den Schritt zum Ausführen einer abschließenden Überprüfung nach Redundanzen des gültigen Objekts und zum Auflösen der Redundanzen, um eine mehrfache Identifikation des gültigen Objekts zu verhindern. Der abschließende Redundanzüberprüfungsschritt umfasst ferner die Unterschritte zum Vergleichen der Gebiete einer Vielzahl von gültigen Objekten und zum Bestimmen von einem der gültigen Objekte als ein großes gültiges Objekt und der anderen der ersten und zweiten gültigen Objekte als ein kleines gültiges Objekt und zum Entfernen des großen gültigen Objekts, wenn das kleine gültige Objekt und das große gültige Objekt überlappen. Der abschließende Redundanzüberprüfüngsschritt wird von einem Modul FINAL CHK ausgeführt, wie mit dem Flussdiagramm der Fig. 27A und 27B gezeigt, und einem Modul SET STAT, wie mit dem Flussdiagramm der Fig. 28 dargestellt. Die Module FINAL CHK und SET STAT sind die gleichen für sowohl homogene als auch inhomogene Objekte und sind somit nur einmal dargestellt.
- Der erste Schritt von FINAL CHK besteht darin, den Objektattributwert auf wahr für sämtliche Objekte zu initialisieren, wie im Block A der Fig. 27A gezeigt. Der Zählindex zum Zählen von gültigen Objekten wird auf Eins initialisiert, wie im Block B gezeigt. Das Kopfobjekt wird als das anfängliche Objekt in der Liste von Statusattributwerten definiert, wie im Block C dargestellt. Die Entscheidungsraute D fragt dann, ob der Zählindex kleiner als die Gesamtanzahl von Objekten ist. Wenn dem nicht so ist, geht das Modul FINAL CHK zum Block A der Fig. 27B.
- Wie im Block A der Fig. 27B gezeigt, rückt FINAL CHK zu dem ersten Objekt vor. Die Entscheidungsraute B fragt, ob FINAL CHK an dem letzten Objekt ist. Wenn dem nicht so ist, dann fragt die Entscheidungsraute C, ob der Objektstatus-Attributwert unwahr ist. Wenn nicht, dann geht FINAL CHK zu dem nächsten Objekt, wie im Block E gezeigt, und die Entscheidungsraute B fragt wiederum, ob FINAL CHK an dem letzten Objekt ist. Die Schleife durch B, C und E wird fortgesetzt, bis FINAL CHK an dem letzten Objekt ist. Wenn der Objektstatus-Attributwert unwahr ist, dann wird das Objekt gelöscht, wie im Block D gezeigt. FINAL CHK geht dann zu dem nächsten Objekt, wie im Block E gezeigt, und die Entscheidungsraute B fragt, ob das FINAL CHK an dem letzten Objekt ist. Die Schleife durch B-E wird fortgesetzt, bis das nächste Objekt das letzte Objekt ist, wobei an diesem Punkt FINAL CHK zu dem ersten Objekt vorrückt, wie im Block F gezeigt. Der Zählwert wird dann auf Eins initialisiert, wie im Block G gezeigt. Die Entscheidungsraute H fragt dann, ob FINAL CHK das letzte Objekt ist. Wenn dem nicht so ist, dann wird der Zählwert inkrementiert, wie im Block I gezeigt, und FINAL CHK geht zu dem nächsten Objekt, wie im Block J gezeigt. Die Entscheidungsraute H fragt wiederum, ob FINAL CHK das letzte Objekt ist und die Schleife durch H, I und J wird fortgesetzt, bis FINAL CHK an dem ersten Objekt ist. Dann wird die Gesamtanzahl von gültigen Objekten, wie in dem Zählwert enthalten, zurückgegeben, wie mit dem Block K der Fig. 27B gezeigt.
- Wenn zurückkehrend zur Entscheidungsraute D der Fig. 27A der Zählindex kleiner als die Gesamtanzahl von Objekten ist, dann wird das Schwanzobjekt als das nächste Objekt über das Kopfobjekt hinaus definiert, wie im Block E gezeigt. Die Entscheidungsraute F fragt dann, ob der Statusattributwert des Kopfobjekts wahr ist. Wenn dem nicht so ist, dann rückt FINAL CHK das Kopfobjekt vor, wie im Block G gezeigt, und inkrementiert den Zählindex, wie im Block H gezeigt. FINAL CHK kehrt dann zur Entscheidungsraute D zurück und die Schleife durch D-I wird fortgesetzt, bis der Statusattributwert des Kopfobjekts wahr ist. Die Entscheidungsraute I fragt, ob das Schwanzobjekt nicht das letzte Objekt ist und ob der Kopfobjekt-Statusattributwert wahr ist. Wenn wenigstens eine von diesen Bedingungen nicht erfüllt wird, rückt FINAL CHK das Kopfobjekt vor, wie im Block G gezeigt, und inkrementiert den Index, wie im Block H gezeigt. FINAL CHK kehrt dann zur Entscheidungsraute D zurück und die Schleife durch D-I wird fortgesetzt, bis die Antwort auf beide Fragen in der Entscheidungsraute I ja ist. Die Entscheidungsraute J fragt dann, ob der Schwanzobjekt-Statusattributwert wahr ist. Wenn dem nicht so ist, rückt FINAL CHK das Schwanzobjekt vor, wie im Block L der Fig. 27A gezeigt, und die Schleife durch I, J und L wird wiederholt, bis der Schwanzobjekt-Statusattributwert wahr ist. Dann lässt FINAL CHK ein Modul SET STAT ablaufen, wie im Block K der Fig. 27A gezeigt, und rückt das Schwanzobjekt vor, wie im Block L gezeigt.
- Die Schritte des Moduls SET STAT, wie im Block K der Fig. 27A dargestellt, sind mit näheren Einzelheiten in Fig. 28 gezeigt. Die Entscheidungsraute A der Fig. 28 fragt, ob das Kopfobjekt größer als das Schwanzobjekt ist. Wenn dem so ist, dann wird das Kopfobjekt als das große gültige Objekt definiert und das Schwanzobjekt wird als das kleine gültige Objekt definiert, wie im Block B gezeigt. Wenn das Kopfobjekt nicht größer als das Schwanzobjekt ist, dann wird das Kopfobjekt als das kleine gültige Objekt definiert und das Schwanzobjekt wird als das große gültige Objekt definiert, wie im Block C gezeigt. Die Entscheidungsraute D fragt dann, ob das kleine gültige Objekt in dem großen gültigen Objekt enthalten ist. Wenn dem nicht so ist, dann ist SET STAT an seinem Ende, wie mit einem Oval E gezeigt. Wenn das kleine gültige Objekt in dem großen gültigen Objekt enthalten ist, dann wird der Statusatiributwert des großen Objekts auf unwahr gesetzt, wie im Block F gezeigt, und INT STAT ist an seinem Ende, wie mit dem Oval G gezeigt.
- Ferner ist in Übereinstimmung mit der vorliegenden Erfindung eine zweite spezifische Anwendung des Verfahrens der zweiten Ausführungsform zum Identifizieren wenigstens eines gültigen Objekts vorgesehen. Diese Anwendung umfasst ein Verfahren zum effektiven Entfernen von vorangehend identifizierten Objekten von einem Bild, wodurch ein Restbild für einen weiteren Suchvorgang erzeugt wird. Das Verfahren verwendet eine iterative Methodologie zum Identifizieren von neuen Objekten in einem Restbild. Das Restbild ist derjenige Teil des Objekts, wo Objekte nach einer vorangehenden Durchsuchung des Bilds nicht identifiziert worden sind. Dieses Verfahren umfasst die Schritte der zweiten Ausführungsform, das Verwenden einer entropischen Schwellwertbildung und zusätzlich die Schritte, die allgemein in dem Flussdiagramm der Fig. 29A und 29B gezeigt sind. Wie im Block A der Fig. 29A gezeigt, besteht der erste Schritt bei dem Verfahren zum Entfernen von vorangehend identifizierten oder gültigen Objekten von einem Bild, um nach neuen Objekten in dem Restbild zu suchen darin, nach sämtlichen vorangehenden identifizierten gültigen Objekten zu suchen. Der nächste Schritt in dem Verfahren besteht darin, vorgegebene Graupegelwerte zu wählen, wie im Block B gezeigt, und dann das Bild abzuscannen, um sämtliche Punkte zu bestimmen, die die vorgegebenen Graupegelwerte aufweisen, wie im Block C der Fig. 29A gezeigt.
- Das Verfahren zum Entfernen von vorher identifizierten Objekten aus einem Bild der vorliegenden Erfindung umfasst ferner den Schritt, bei dem dem Graupegelwert jedes Punkts, der den vorgegebenen Graupegelwert aufweist, ein neuer vorgegebener Graupegelwert zugewiesen wird, wie im Block D der Fig. 29A gezeigt. Der nächste Schritt des Verfahrens besteht darin, den vorgegebenen Graupegelwert sämtlichen inneren Punkten von sämtlichen vorher identifizierten gültigen Objekten zuzuweisen, wie im Block E gezeigt.
- Das Verfahren zum Entfernen von vorher identifizierten Objekten von einem Bild der vorliegenden Erfindung umfasst ferner den Schritt zum Erzeugen eines Graupegelhistogramms eines Restbilds, wie im Block F der Fig. 29A gezeigt. Das Restbild umfasst sämtliche Punkte mit einem anderen Graupegelwert als dem vorgegebenen Graupegelwert.
- Das Verfahren zum Entfernen von vorher identifizierten Objekten aus einem Bild der vorliegenden Erfindung umfasst ferner auch den Schritt zum Wählen von N globalen entropischen Schwellengraupegeln, wie im Block G der Fig. 29B gezeigt, und das Unterteilen des Graupegelhistogramms des Restbilds in N + 1 Unterhistogramme unter Verwendung jedes der entropisch gewählten Schwellengraupegeln, wie im Block H der Fig. 29B gezeigt. Das Verfahren ist dahingehend iterativ, dass der Prozess ein Aufteilen eines Histogramms in obere und untere Histogramme für eine vorgegebene Anzahl von N Teilungen oder Iterationen umfasst, um so N + 1 Unterhistogramme zu erzeugen. Um diese Schritte zu illustrieren, zeigt Fig. 30 ein Graupegelhistogramm mit N globalen entropischen Schwellengraupegelwerten t&sub1; - tN. Das Graupegelhistogramm des Restbilds wird in N + 1 Unterhistogramme unter Verwendung jedes der globalen entropischen Schwellengraupegel aufgeteilt. Die Schritte zum Wählen von N globalen entropischen Schwellengraupegeln werden von dem Modul ENTROPY ausgeführt, und sind die gleichen wie diejenigen, die in dem Flussdiagramm der Fig. 13 gezeigt sind.
- Der Wählschritt umfasst die Unterschritte zum sequentiellen Aufteilen des Histogramms des Restbilds an jedem Graupegel in einen ersten und einen zweiten Teil bzw. Abschnitt. Die Entropiefunktion wird dann für jeden Teil (für jede Abteilung) berechnet. Die Entropiefunktion des Histogramms ist als die Summe der Entropiefunktionen der ersten und zweiten Teile (bzw. Abteilungen) definiert. Ein globaler entropischer Schwellengraupegel wird dann gewählt, so dass die Entropiefunktion des Histogramms maximiert wird. Das Graupegeihistogramm wird dann unter Verwendung des globalen entropisch gewählten Schwellengraupegels unterteilt, wie voranstehend definiert, was die Entropiefunktion des Histogramms als ein oberer Begrenzer und ein unterer Begrenzer maximiert, um ein oberes Histogramm und ein unteres Histogramm zu erzeugen. Die Aufteilungs-, Berechnungs- und Wählschritte werden dann wiederholt, wobei die Wiederholung des Wählschritts einen nächsten sukzessiven globalen entropischen Schwellengraupegel wählt. Der Unterteilungsschritt wird dann unter Verwendung des nächsten sukzessiven globalen entropischen Schwellengraupegels als der globale entropische Schwellengraupegel, wie in dem Wählschritt definiert, wiederholt, um iterativ die N globalen entropischen Schwellengraupegel zu berechnen.
- Das Verfahren zum Entfernen von vorher identifizierten Objekten auf einem Bild der vorliegenden Erfindung umfasst ferner den Schritt zum Durchsuchen von Abschnitten des Restbilds, die jedem Unterhistogramm entsprechen, unter Verwendung jedes entropisch gewählten Schwellengraupegelwerts nach wenigstens einem neuen Kandidatenobjekt. Wenn der Graupegelwert des Schwerpunkts des Kandidatenobjekts sich von dem vorgegebenen Graupegel unterscheidet, dann wird das Kandidatenobjekt noch als ein Kandidatenobjekt betrachtet, um ein neues gültiges Objekt zu sein. Wenn dem nicht so ist, dann ist das Kandidatenobjekt nicht ein neues gültiges Objekt. Das Kandidatenobjekt weist wenigstens einen Kandidatenobjekt-Attributwert auf. Der Schritt zum Durchsuchen von Abschnitten des Bilds ist im Block I der Fig. 29B gezeigt. Der Durchsuchungsschritt umfasst die Unterschritte zum Scannen des Bilds nach wenigstens einem Kandidatenobjekt unter Verwendung jedes globalen entropisch gewählten Schwellengraupegelwerts und das Nachzeichnen (Nachverfolgen) des Kandidatenobjekts mit Grenzgraupegelwerten, die von jedem globalen entropisch gewählten Schwellengraupegelwert bestimmt werden. Der Schritt zum Durchsuchen von Abschnitten des Bilds wird durch die Module SEARCH IMAGE, FIND OBJECT und TRACE OBJECT ausgeführt, wie voranstehend für die ersten und zweiten Ausführungsformen beschrieben und wie in den Fig. 14, 15 und 19A bzw. 19B gezeigt. Zusätzlich kann das Modul CHK GRAY, wie in Fig. 20 gezeigt, für das iterative Verfahren ablaufengelassen werden, um die Kandidatenobjekte beizubehalten, die relativ heller als der Hintergrund sind. Um Objekte zu identifizieren, die dunkler als der Hintergrund sind, wird das Bild unmittelbar invertiert, nachdem es erzeugt worden ist.
- Das Verfahren zum Entfernen von vorher identifizierten Objekten aus einem Bild der vorliegenden Erfindung umfasst ferner bei der vorliegenden Erfindung auch den Schritt zum Validieren des neuen Kandidatenobjekts, das den vorgegebenen Attributwert eines gültigen Objekts aufweist, für jedes der Unterhistogramme, wodurch das gültige Objekt identifiziert wird. Dieser Schritt ist im Block J der Fig. 29B gezeigt. Der Validierungsschritt umfasst die Unterschritte zum Berechnen des Kandidatenobjekt- Attributwerts und zum Vergleichen des Kandidatenobjekt-Attributwerts mit den vorgegebenen Attributwerten eines gültigen Objekts, um gültige Kandidatenobjekte zu identifizieren. Der Validierungsschritt umfasst ferner den Unterschritt zum Prüfen nach Redundanzen des gültigen Objekts, um eine mehrfache Identifikation des gültigen Objekts zu verhindern. Der Redundanzüberprüfungs- Unterschritt wird von dem Modul CHK LIST, wie voranstehend für die erste Ausführungsform unter Bezugnahme auf die Fig. 23A-23D, 25A und 25B beschrieben und dem Modul SET STAT, wie voranstehend unter Bezugnahme auf die Fig. 24 und 26 beschrieben, ausgeführt.
- Der Validierungsschritt des Verfahrens zum Entfernen von vorher identifizierten Objekt aus einem Bild der vorliegenden Erfindung kann den Schritt zum Filtern des Bilds umfassen. Der Filterungsschritt für inhomogene Objekte wird von dem Modul COL FLT ausgeführt, wie in Fig. 18 gezeigt, wie voranstehend beschrieben.
- Das Verfahren zum Entfernen von vorher identifizierten Objekten aus einem Bild der vorliegenden Erfindung umfasst ferner den Schritt zum Ausführen einer abschließenden Überprüfung nach Redundanzen des gültigen Objekts und zum Auflösen der Redundanzen, um eine mehrfache Identifikation des gültigen Objekts zu verhindern. Der abschließende Redundanzüberprüfungs-Unterschritt wird von dem Modul FINAL CHK ausgeführt, wie voranstehend für die erste Ausführungsform unter Bezugnahme auf die Fig. 24A-24B beschrieben, und dem Modul INT STAT, wie in Fig. 25A dargestellt.
- Gemäß der ersten und zweiten Ausführungsform der vorliegenden Erfindung ist ein Bildanalysesystem zum Identifizieren wenigstens eines gültigen Objekts an einem Hintergrund vorgesehen. Das gültige Objekt weist wenigstens einen vorgegebenen Attributwert auf, der die Definition eines gültigen Objekts eines zu identifizierenden Objekts darstellt. Ein Blockdiagramm des Systems der vorliegenden Erfindung ist in Fig. 31 gezeigt. Ein System zum Identifizieren wenigstens eines gültigen Objekts in einem Hintergrund ist allgemein mit 10 in Fig. 31 dargestellt.
- Das System der vorliegenden Erfindung umfasst eine Einrichtung zum Erzeugen eines Bilds des Objekts und des Hintergrunds. Wie in Fig. 31 gezeigt, umfasst die Einrichtung zum Erzeugen eines Bilds des Objekts und des Hintergrunds eine Kamera 12. Obwohl eine CCD Kamera allgemein mit der vorliegenden Erfindung verwendet wird, kann irgendein Typ von Kamera verwendet werden, ohne von den allgemeinen Prinzipien der vorliegenden Erfindung abzuweichen.
- Das System der vorliegenden Erfindung umfasst auch eine Einrichtung zum Digitalisieren und Speichern des Bilds. Die Einrichtung zum Digitalisieren und Speichern des Bilds umfasst eine Rahmen- Ergreifungseinheit 14, wie in Fig. 31 gezeigt. Die Rahmen-Ergreifungseinheit digitalisiert und speichert das Videobild in einem Rahmen, wie Durchschnittsfachleuten in der Bildverarbeitungstechnik bekannt ist. Alternativ umfasst die Einrichtung zum Digitalisieren und Speichern des Bilds einen Video-Digitalisierer, der das Bild ebenfalls digitalisiert und speichert, obwohl nicht notwendigerweise in einem Rahmen (einem Bild). Das System der vorliegenden Erfindung umfasst ferner eine Einrichtung zum Anzeigen des Bilds. Die Einrichtung zum Anzeigen des Bilds umfasst einen Monitor 16, wie in Fig. 31 gezeigt.
- Das System der vorliegenden Erfindung umfasst auch eine Computereinrichtung. Die Computereinrichtung umfasst ein Computersystem 18, wie in Fig. 31 gezeigt. Das Computersystem umfasst eine Zentralverarbeitungseinheit (CPU) und einen Speicher. Die Computereinrichtung umfasst auch einen Treiber 20, einen Kern 22 und ein Post-Scanfilter 26, wie in Fig. 31 gezeigt. Der Treiber 20 speichert die Definition des gültigen Objekts. Der entropische Kern 22 erzeugt ein Graupegelhistogramm des Bilds und wählt entropisch einen Schwellengraupegel, so dass die Entropiefunktion des Histogramms maximiert wird.
- Der entropische Kern 22 durchsucht auch das Bild nach wenigstens einem Kandidatenobjekt und validiert das Kandidatenobjekt, das den vorgegebenen Attributwert eines gültigen Objekts aufweist, um das gültige Objekt zu identifizieren. Die validierten Objekte werden mit der Box 24 in Fig. 31 dargestellt. Der Treiber und der Kern können eine Software umfassen, die in dem Speicher eingebaut ist. Alternativ können der Treiber und der Kern in einen programmierbaren Nur-Lese-Speicher (PROM) programmiert werden, aus dem die Software ausgelesen werden kann. Das Post-Scan Filter ist bei 26 in Fig. 31 gezeigt und stellt eine abschließende Überprüfung zum Entfernen von Redundanzen bei überlappenden Objekten bereit, wie voranstehend beschrieben.
- Durchschnittsfachleuten wird erkenntlich sein, dass verschiedene Modifikationen und Variationen in den Verfahren der vorliegenden Erfindung durchgeführt werden können, ohne von dem Umfang oder Grundgedanken der Erfindung abzuweichen. Zum Beispiel kann irgendein Typ einer entropischen Schwellwertbildung verwendet werden, beispielsweise eine entropische Schwellwertbildung einer Co- Auftrittsmatrix, wie von Pal und Pal, supra, offenbart.
- Die Erfindung wird weiter durch die folgenden Beispiele verdeutlicht, die lediglich als beispielhaft für die vorliegende Erfindung vorgesehen sind.
- In diesem Beispiel wird ein Koloniezählsystem beschrieben. Eine Koloniezählung ist eine Aufgabe, die in mikrobiologischen Laboratorien routinemäßig ausgeführt wird, um die Bakterienmenge in einer Probe zu quantifizieren. Die Probe kann eine Anzahl von verschiedenen Typen sein, wie Blut, Nahrungsmittel, Kosmetika, Schmutz, etc. Das System identifizierte Kolonien in sich verändernden Hintergründen und konnte auch höchst verklumpte Kolonien entklumpen.
- Zusätzlich zu einer genauen Koloniezählung ist es wichtig in der Lage zu sein, Kolonien nach dem Typ bei Fällen zu klassifizieren, bei denen mehr als eine Art von Bakterien auf der gleichen Platte vorhanden ist. In diesem Beispiel waren sowohl typische als auch atypische Spuren von Salmonellen vorhanden. Zusätzlich waren Hintergrund- (nicht-pathogenische) Bakterien ebenfalls vorhanden. Es ist auch wichtig, in die Lage zu sein, beide Spuren von Salmonellen von den Hintergrundbakterien zu unterscheiden. In diesem Beispiel war die Agar-Platte Hektoen Enteric Agar, bei der die typischen Salmonellenkolonien schwarz waren, die atypischen Salmonellenkolonien leicht grün waren und die Hintergrundkolonien gelb waren. Das System dieses Beispiels konnte die Kolonien nach dem Farbton klassifizieren und somit eine Klassifikation von Arten auf der Platte ausführen.
- In diesem Beispiel wurde eine zusätzliche Komplexität durch die Anzahl von Kolonien in der Platte dargestellt. Es waren 875 Kolonien in der Platte vorhanden, was die visuelle Klassifikation der Kolonien extrem aufwendig machen würde. Die große Anzahl von Kolonien führte zu einer signifikanten Verklumpung, die eine andere Hauptschwierigkeit darstellte. Das in diesem Beispiel beschriebene System war in die Lage, die Kolonien zu entklumpen und dann eine Farbtonklassifikation auszuführen, um die verschiedenen Arten auf der Platte zu klassifizieren.
- Die in diesem Beispiel verwendete Vorrichtung zum Zählen von Kolonien umfasst einen Petri- Schalenhalter, um die Platte zu halten, ein optisches System zum Beleuchten der Platte und ein Bildaufnahmesystem, zum Erzeugen eines Bilds der Probe auf der Platte, wie voranstehend unter Bezugnahme auf Fig. 31 beschrieben. Ein Videosignal von einer Kamera wurde an eine Rahmen- Ergreifungseinheit geführt, die einen Schlitz in einem PC belegte. Die Rahmen-Ergreifungseinheit digitalisierte das Bild.
- Der Petri-Schalenhalter umfasste ein bewegbares bearbeitetes Element, welches standardmäßige Petri-Schalen aufnehmen konnte. Das Element wies eine eingesenkte zirkulare Einkerbung auf, die die Schalen aufnehmen konnte, und wurde über eine Halterung, die auf einem Lager basierte, an seine Stelle geschoben. Unterhalb des Halters war Platz zum Einfügen einer geeigneten Hintergrundschicht zum Erhöhen des Bildkontrasts.
- Die Beleuchtungsquelle, die verwendet wurde, umfasste eine Philips FC 8T9/CW zirkulare Fluoreszenzlampe (8"(20,3 cm) Durchmesser), die die Petri-Schale umgab. Die Lampe wurde ungefähr 1" (2,54 cm) oberhalb der Schale angebracht und beleuchtete die Schale gleichförmig von sämtlichen Seiten. Der Abstand zwischen der Lampe und der Schale war wichtig. Wenn die Lampe zu hoch ist, würde das sich ergebende Bild eine signifikante "Blendwirkung" und "Halo-Erscheinungen" von den gekrümmten Oberflächen der Kolonien aufzeigen. Die Kolonien können als kleine 3D Linsen angesehen werden und eine schräge Schiefwinkelbeleuchtung war erforderlich, so dass eine Lichtstreuung von den linsenartigen Oberflächen nicht in die Kamera eintrat. Die Lampe wurde aktiv unter Verwendung eines Mercron FL0416- 2 Controllers stabilisiert, der den Lichtpegel konstant hielt, um Schwankungen im Ausgang zu vermeiden. Zusätzlich war der Controller per Fernsteuerung programmierbar, um die Helligkeit der Lampe einzustellen. Dieses Merkmal war für Kolonieplatten besonders nützlich, bei denen der inhärente Kontrast variabel war. Für Platten mit niedrigem Kontrast konnte der Lichtpegel erhöht werden, um den Kontrast zu verbessern.
- Das optische System umfasste eine Sony XC-77 Monochrom-CCD-Videokamera mit einer 16 mm F2.8 Nikkon Linse. Die Kamera war über der Petri-Schale in einem Abstand von ungefähr 1,5 Fuß (0,05 m) zentriert. Der Abstand von der Kamera zu der Schale war derart, dass die Platte gerade die Oberfläche des CCD Sensors füllte, um die räumliche Auflösung zu maximieren.
- Ein Filterrad wurde zwischen die Linse und den Kamerasensor platziert. Das Filterrad hatte vier Positionen. Die Filterkombination in jeder Position ist nachstehend beschrieben:
- Postion Filter KOMBINATION
- 1 (BW) 1,2 ND Filter (ND = neutrale Dichte)
- 2 (ROT) Kodak Filter #25 (Katalog #149 5605) + 0,5 ND Filter
- 3 (GRUN) Kodak Filter #58 (cat# 149 5860) + 0,3 ND Filter
- 4 (BLAU) Kodak Filter #47B (Cat. #149 5795)
- Eine schwarze Lichtabschirmung, die aus einem kristallinen Homopolymer aus Formaldehyd hergestellt war, verkauft unter dem Handelsnamen "DELRIN" von E. I. u Pont de Nemours und Company of Wihnington, Delware, erstreckte sich von der Kamera zu der Platte, um zu verhindern, dass Streulicht in die Kamera eintritt. Das Videosignal von der Kamera ging direkt an die Rahmen-Ergreifungseinheit auf dem PC.
- Das Bildaufnahmesystem umfasste eine Datenübersetzungs-DT2851-Rahmen-Ergreifungseinheit- Karte, die einen Erweiterungsschlitz auf dem PC belegt. Ein Dell 33 MHZ 386AT System wurde verwendet, um Bilder zu speichern und das Verfahren der vorliegenden Erfindung unter Verwendung von Farbe als einen Attributwert auszuführen. Die Rahmen-Ergreifungseinheit-Karte hatte einen 512 · 512 Pixel-Videopuffer, in dem das digitalisierte Bild gespeichert wurde. Um das "Schrot"-Rauschen (shotnoise) von der Kamera zu minimieren, wurden mehrere Bilderrahmen gemittelt und das sich ergebende gemittelte Bild wurde gespeichert und für eine weitere Analyse verwendet. Der Ausgang der Rahmen- Ergreifungseinheit war mit einem Sony TRINITRON Monitor verbunden, um das Bild anzuzeigen. Die folgenden (1)-(4) Aspekte waren Computerspezifikationen:
- (1) Treiber:
- Die Attribute und ihre Bereiche für gültige Kolonien sind in der nachstehenden Tabelle 2 gezeigt.
- (1) xcm = x Koordinate des Objektsschwerpunkts DESKRIPTOR
- (2) ycm = y Koordinate des Objektsschwerpunkts DESKRIPTOR
- (3) perim = Gesamtlänge des Umfangs des Objekts DESKRIPTOR
- (4) npts = Anzahl von Umfangspunkten in dem Objekt npts > 3
- (5) obj_type = Objekttyp (Extern oder Intern) DESKRIPTOR
- Extern = Objekt, welches niemals innerhalb eines anderen Objekts enthalten ist
- Innen = Objekt, welches vorher innerhalb eines anderen Objekts enthalten war
- (6) Fläche = Fläche des Objekts Fläche > 0,0
- (7) Form = Formfaktor des Objekts Form > -0,8
- (8) Status = Statuswert des DESKRIPTOR Objekts, die in einer Artifakt-entfernung und Redundanzüberprüfung in mehreren verschiedenen Vorgehensweisen verwendet wird
- (9) Kontrast = Kantenkontrast des Objekts Kontrast > 100
- (10) Kante = Datenstruktur, die Koordinaten von Extrempunkten DESKRIPTOR des Objekts enthält
- (11) thresh = Schwellwert, bei dem DESKRIPTOR das Objekt erfasst wurde
- (12) max = maximaler Graupegel des des Histogrammteils, DESKRIPTOR in dem das Objekt erfasst wurde
- (13) clump_Form = maximaler Formfaktor NICHT für eine Verklumpung von VERWENDET Kandidatenobjekten
- (14) clump_Grösse = minimale Fläche für NICHT eine Verklumpung von Kandidatenobjekten VERWENDET
- (15) worst_Form = minimaler Formfaktor NICHT für eine Verklumpung von VERWENDET Kandidatenobjekten
- (16) hue_mean = mittlerer Farbton des huemean Objekts > 1,90 und humean 3,40 (wenn huemag < 200)
- (17) hue_mag = Größe des Farbtonvektors des Objekts nach Klassifikationsregeln
- (18) hue_cm = Farbtonvektor von cm DESKRIPTOR
- (2) Artifakt-Entfernung:
- Die folgenden Regeln wurden verwendet, um Artifakte in dem Agar zu beseitigen:
- Wenn der mittlere Farbton einer Kandidatenkolonie kleiner als 1,90 war und die Farbtongröße größer als 200 war, wurde die Kandidatenkolonie gelöscht
- Wenn der mittlere Farbton einer Kandidatenkolonie kleiner als 1,90 war und die Farbtongröße größer als 200 war, wurde die Kandidatenkolonie gelöscht
- Wenn der mittlere Farbton einer Kandidatenkolonie größer als 3,40 war und die Farbtongröße größer als 200 war, dann wurde die Kandidatenkolonie gelöscht.
- (3) Redundanzüberprüfung:
- Die Redundanzüberprüfung für inhomogene Objekte, die voranstehend unter Bezugnahme auf die Fig. 23A-23D und Fig. 24 beschrieben wurde, wurde für eine Redundanzüberprüfung in diesem Beispiel verwendet.
- (4) Kolonieklassifikation:
- Die Regeln, die zum Klassifizieren der Kolonien in die drei Kategorien (atypische Salmonellen, typische Salmonellen und Hintergrund) verwendet werden, sind nachstehend zusammengefasst:
- Wenn die Farbtongröße kleiner oder gleich zu 200 war, wurde die Kolonie als TYPISCHE Salmonellen klassifiziert.
- Wenn der mittlere Farbton größer als 1,90 war und kleiner als 2,55 war, wurde die Kolonie als eine Hintergrundkolonie klassifiziert.
- Wenn der mittlere Farbton größer als oder gleich zu 2,55 war und kleiner als 2,70 war:
- Wenn die Farbtongröße kleiner als 2000 war oder der Farbton des Schwerpunkts der Kolonie plus einem Farbtonversatz von 0,05 kleiner als der mittlere Farbton ist, dann wurde die Kolonie als eine HINTERGRUND-Kolonie klassifiziert.
- Ansonsten wurde die Kolonie als eine ATYPISCHE Kolonie klassifiziert.
- Ansonsten wurden sämtliche anderen gültigen Kolonien als ATYPISCHE Kolonien klassifiziert.
- Insgesamt 875 gültige Kolonien wurden identifiziert. Eine Klassifikation der Kolonien nach dem Farbton führte zu der folgenden Aufteilung:
- Typische Salmonellen: 155
- Atypische Salmonellen: 385
- Hintergrund: 335
- Die Ergebnisse stimmen mit den Ergebnissen, die von einer Sichtuntersuchung der Platte erwartet wurden, gut überein.
- Andere Ausführungsformen der Erfindung sind Durchschnittsfachleuten in dem technischen Gebiet aus einer Betrachtung der Beschreibung und der Umsetzung der Erfindung, wie hier beschrieben, ersichtlich. Es ist beabsichtigt, dass die Beschreibung und die Beispiele nur als beispielhaft betrachtet werden, wobei ein echter Umfang der Erfindung durch die beigefügten Ansprüche angedeutet wird.
Claims (22)
1. Verfahren zum Bestimmen der inneren Punkte eines Objekts in einem Hintergrund, umfassend die
folgenden Schritte:
(a) Erzeugen eines Bild des Objekts und des Hintergrunds;
(b) Durchsuchen des Bilds nach dem Objekt unter Verwendung von wenigstens einem
automatisch berechneten Schwellwert;
(c) Bestimmen der Umfangspunkte des Objekts;
(d) Erzeugen eines Umfangspuffers, wobei der Umfangspuffer die Umfangspunkte umfasst,
wobei jeder Umfangspunkt einen Zeilenpositions-Koordinatenwert, einen Spaltenpositions-
Koordinatenwert und einen Richtungscodevektor aufweist, wobei der Richtungscodevektor einen ersten und
einen zweiten Richtungscodewert für jeden Umfangspunkt umfasst, wobei der erste Richtungscodewert die
Beziehung jedes jeweiligen Umfangspunkt zu dem nächsten Umfangspunkt beschreibt und der zweite
Richtungscodewert die Beziehung von jedem jeweiligen Umfangspunkt zu dem vorangehenden
Umfangspunkt beschreibt;
(e) Sortieren der Umfangspunkte in dem Umfangspuffer in einer vorgegebenen Reihenfolge,
um einen sortierten Umfangspuffer zu erzeugen;
(f) Zuweisen einer Statusvariablen, die einen eines ersten und eines zweiten Werts aufweist,
wobei der Wert der Statusvariablen durch die ersten und zweiten Richtungscodewerte bestimmt werden, zu
jedem Umfangspunkt in dem sortierten Umfangspuffer; und
(g) Bestimmen als die inneren Punkte des Objekts jeden Punkt auf dem gleichen
Liniensegment wie der Umfangspunkt, der gerade untersucht wird und zwischen dem untersuchten
Umfangspunkt und dem nächsten Umfangspunkt in dem sortierten Umfangspuffer liegt, wobei dem
untersuchten Umfangspunkt der erste Werte der Statusvariablen zugewiesen wird.
2. Verfahren nach Anspruch 1, ferner umfassend die folgenden Schritte:
(h) Bestimmen des Graupegelwerts jedes inneren Punkts, und
(i) Charakterisieren des Objekts durch Verwenden der Graupegelwerte der inneren Punkte.
3. Verfahren nach Anspruch 2, wobei der Charakterisierungsschritt das Bestimmen der Textur des
Objekts umfasst.
4. Verfahren nach Anspruch 2, wobei der Charakterisierungsschritt das Bestimmen der Farbe des
Objekts umfasst.
5. Verfahren nach Anspruch 2, wobei der Charakterisierungsschritt das Bestimmen der Muster in
dem Objekt umfasst.
6. Verfahren nach irgendeinem vorangehenden Anspruch, ferner umfassend den Schritt zum
Kennzeichnen des Objekts durch Zuweisen eines vorgegebenen Graupegelwerts zu jedem inneren Punkt,
der im Schritt (g) bestimmt wird.
7. Verfahren nach irgendeinem vorangehenden Anspruch, ferner umfassend den Schritt zum
Überprüfen für jeden redundanten Umfangspunkt.
8. Verfahren nach Anspruch 7, ferner umfassend den Schritt zum Bestimmen sämtlicher Punkte, die
zwischen jedem redundanten Umfangspunkt und dem nächsten Umfangspunkt auf dem Liniensegment
liegen, als die inneren Punkte des Objekts nur dann, wenn sämtlichen Instanzen jedes redundanten
Umfangspunkts der erste Wert der Statusvariablen zugewiesen wird.
9. Verfahren nach irgendeinem vorangehenden Anspruch, wobei der Schritt zum Durchsuchen des
Bilds die folgenden Unterschritte umfasst:
(i) Erzeugen eines Graupegelhistogramms des Bilds, wobei das Graupegelhistogramm eine
Entropiefunktion aufweist,
(ii) entropisches Wählen eines Schwellengraupegelwerts, so dass die Entropiefunktion des
Histogramms maximiert wird;
(iii) Scannen des Bilds nach wenigstens einem Objekt unter Verwendung des entropisch
gewählten Schwellengraupegelwerts; und
(iv) Verfolgen des Kandidatenobjekts, welches Grenzgraupegelwerte aufweist, die durch den
entropisch gewählten Schwellengraupegelwert bestimmt werden.
10. Verfahren nach Anspruch 1, ferner umfassend die folgenden Schritte:
(h) Charakterisieren des Kandidatenobjekts durch den Kandidatenobjektattributwert; und
(i) Validieren des Kandidatenobjekts, das den vorgegebenen Attributwert eines gültigen
Objekts aufweist;
wodurch wenigstens ein gültiges Objekt mit wenigstens einem vorgegebenen Attributwert in
einem Hintergrund identifiziert wird.
11. Verfahren nach Anspruch 10, wobei der Schritt zum Durchsuchen des Bilds ein Durchsuchen nur
eines Abschnitts des Objekts umfasst.
12. Verfahren nach Anspruch 10, wobei der Schritt zum Durchsuchen des Bilds die folgenden
Unterschritte umfasst:
(i) Erzeugen eines Graupegelhistogramms des Bilds, wobei das Graupegelhistogramm eine
Entropiefunktion aufweist;
(ii) Entropisches Wählen eines Schwellengraupegelwerts, so dass die Entropiefunktion des
Histogramms maximiert wird;
(iii) Scannen des Bilds nach wenigstens einem Objekt unter Verwendung des entropisch
gewählten Schwellengraupegelwerts; und
(iv) Verfolgen des Kandidatenobjekts, welches Grenzgraupegel aufweist, die durch den
entropisch gewählten Schwellengraupegelwert bestimmt sind.
13. Verfahren nach Anspruch 12, ferner umfassend die folgenden Schritte:
(j) Unterteilen des Graupegelhistrogramms in ein oberes Histogramm und ein unteres
Histogramm unter Verwendung des entropischen Schwellengraupegelwerts wie mit dem Schritt (b) (ii)
definiert als einen oberen Abgrenzer und einem unteren Abgrenzer, und
(k) Rekursives Wiederholen der Schritte (b) (ii) und (b) (iii) und des Schritts (b) (i) für jedes
der oberen und unteren Histogramme, wobei die Wiederholung des Schritts (b) (ii) einen nächsten
sukzessiven entropischen Schwellengraupegelwert wählt, wodurch rekursiv das Graupegelhistogramm
aufgeteilt wird, bis eine vorgegebene minimale Anzahl von neuen gültigen Objekten identifiziert wird.
14. Verfahren nach Anspruch 13, ferner umfassend die folgenden Schritte:
(l) Bestimmen des Graupegelwerts von jedem inneren Punkt, und
(m) Charakterisieren des Objekts durch Verwenden der Graupegelwerte der inneren Punkte
nach dem Bestimmungsschritt (g).
15. Verfahren nach Anspruch 14, wobei der Charakterisierungsschritt das Bestimmen der Textur des
Objekts umfasst.
16. Verfahren nach Anspruch 14, wobei der Charakterisierungsschritt das Bestimmen der Farbe des
Objekts umfasst.
17. Verfahren nach Anspruch 14, wobei der Charakterisierungsschritt das Bestimmen der Muster in
dem Objekt umfasst.
18. Verfahren nach irgendeinem der Ansprüche 14 bis 17, ferner umfassend den Schritt zum
Kennzeichnen des Objekts durch Zuweisen eines vorgegebenen Graupegelwerts zu jedem inneren Punkt,
der im Schritt (g) bestimmt wird.
19. Verfahren nach Anspruch 10, ferner umfassend die folgenden Schritte:
(j) Wählen eines vorgegebenen Graupegelwerts,
(k) Scannen des Bilds, um sämtliche Punkte zu bestimmen, die den vorgegebenen
Graupegelwert aufweisen,
(l) erneutes Zuweisen eines neuen vorgegebenen Graupegelwerts zu dem Graupegelwert
jedes Punkts, der den vorgegebenen Graupegelwert aufweist,
(m) Zuweisen des vorgegebenen Graupegelwerts an sämtliche inneren Punkte von sämtlichen
gültigen Objekten,
(n) Erzeugen eines Graupegelhistogramms eines Restbilds, wobei das Restbild sämtliche
Punkte umfasst die einen anderen Graupegelwert als den vorgegebenen Graupegelwert aufweisen,
(o) Wählen von N globalen entropischen Schwellenpegelwerten,
(p) Unterteilen des Graupegelhistogramms in N + 1 Unterhistogramme unter Verwendung
jedes der entropisch gewählten Schwellengraupegelwerte,
(q) Durchsuchen von Abschnitten des Bilds, die jedem Unterhistogramm entsprechen, unter
Verwendung jedes globalen entropisch gewählten Schwellengraupegelwerts für wenigstens ein neues
Kandidatenobjekt, wobei das neue Kandidatenobjekt wenigstens einen Kandidatenobjekt-Attributwert
aufweist, und
(r) Validieren des neuen Kandidatenobjekts, das den vorgegebenen Attributwert eines
gültigen Objekts für jede der Unterhistogramme aufweist, um das gültige Objekt zu identifizieren.
20. Verfahren nach Anspruch 1, ferner umfassend den Schritt zum Bestimmen, ob der Graupegelwert
des Massenzentrums des Kandidatenobjekts sich von dem vorgegebenen Graupegelwert unterscheidet.
21. Verfahren nach Anspruch 20, ferner umfassend die Schritte zum Anwenden eines Post-Scan-
Filters auf Grundlage des Attributwerts des gültigen Objekts, das im Schritt (i) validiert wird.
22. Verfahren nach Anspruch 20 oder 21, ferner umfassend den Schritt zum Zusammenfassen der
Liste von nicht-redundanten, gültigen, neu identifizierten Objekten mit dem gültigen Objekt, das im Schritt
(i) validiert wird.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/999,702 US5371810A (en) | 1991-09-27 | 1992-12-31 | Method of determining the interior points of an object in a background |
PCT/US1993/002736 WO1994016402A1 (en) | 1992-12-31 | 1993-03-24 | Method of determining the interior points of an object in a background |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69331383D1 DE69331383D1 (de) | 2002-01-31 |
DE69331383T2 true DE69331383T2 (de) | 2002-08-08 |
Family
ID=25546609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69331383T Expired - Fee Related DE69331383T2 (de) | 1992-12-31 | 1993-03-24 | Verfaren zur bestimmung der innenpunkte eines objektes in einem hintergrund |
Country Status (10)
Country | Link |
---|---|
US (1) | US5371810A (de) |
EP (1) | EP0635151B1 (de) |
JP (1) | JP3296493B2 (de) |
AT (1) | ATE211280T1 (de) |
AU (1) | AU4276193A (de) |
CA (1) | CA2130917A1 (de) |
DE (1) | DE69331383T2 (de) |
IL (1) | IL105802A0 (de) |
MX (1) | MX9303459A (de) |
WO (1) | WO1994016402A1 (de) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058209A (en) * | 1991-09-27 | 2000-05-02 | E. I. Du Pont De Nemours And Company | Method for resolving redundant identifications of an object |
US5982944A (en) * | 1991-09-27 | 1999-11-09 | E. I. Du Pont De Nemours And Company | Adaptive vision system using dual thresholding |
US5481620A (en) * | 1991-09-27 | 1996-01-02 | E. I. Du Pont De Nemours And Company | Adaptive vision system |
US5579409A (en) * | 1991-09-27 | 1996-11-26 | E. I. Du Pont De Nemours And Company | Methods for determining the exterior points of an object in a background |
US5699442A (en) * | 1992-04-10 | 1997-12-16 | Andrew Welch | System for detecting the location of a reflective object within a video field |
US5651077A (en) * | 1993-12-21 | 1997-07-22 | Hewlett-Packard Company | Automatic threshold determination for a digital scanner |
US6256529B1 (en) | 1995-07-26 | 2001-07-03 | Burdette Medical Systems, Inc. | Virtual reality 3D visualization for surgical procedures |
US6136911A (en) * | 1996-01-11 | 2000-10-24 | E.I. Du Pont De Nemours And Company | Fibers flash-spun from partially fluorinated polymers |
ES2156355T3 (es) * | 1996-01-11 | 2001-06-16 | Du Pont | Fibras obtenidas por hilatura por evaporacion subita a partir de polimeros parcialmente fluorados. |
US6096421A (en) * | 1996-01-11 | 2000-08-01 | E. I. Du Pont De Nemours And Company | Plexifilamentary strand of blended polymers |
US5901245A (en) * | 1997-01-23 | 1999-05-04 | Eastman Kodak Company | Method and system for detection and characterization of open space in digital images |
US5859891A (en) * | 1997-03-07 | 1999-01-12 | Hibbard; Lyn | Autosegmentation/autocontouring system and method for use with three-dimensional radiation therapy treatment planning |
AU4318499A (en) | 1997-11-24 | 1999-12-13 | Burdette Medical Systems, Inc. | Real time brachytherapy spatial registration and visualization system |
JP2000067247A (ja) * | 1998-06-08 | 2000-03-03 | Toshiba Corp | 画像認識装置 |
US7672022B1 (en) | 2000-04-07 | 2010-03-02 | Hewlett-Packard Development Company, L.P. | Methods and apparatus for analyzing an image |
US7389208B1 (en) * | 2000-06-30 | 2008-06-17 | Accord Solutions, Inc. | System and method for dynamic knowledge construction |
US7438685B2 (en) | 2001-11-05 | 2008-10-21 | Computerized Medical Systems, Inc. | Apparatus and method for registration, guidance and targeting of external beam radiation therapy |
US7187800B2 (en) | 2002-08-02 | 2007-03-06 | Computerized Medical Systems, Inc. | Method and apparatus for image segmentation using Jensen-Shannon divergence and Jensen-Renyi divergence |
US8121415B2 (en) | 2008-10-28 | 2012-02-21 | Quality Vision International, Inc. | Combining feature boundaries |
WO2016032524A1 (en) * | 2014-08-29 | 2016-03-03 | Hewlett-Packard Development Company, Lp | Image processing |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JPS61249175A (ja) * | 1985-04-24 | 1986-11-06 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 図形処理装置 |
JPH0661091B2 (ja) * | 1985-09-10 | 1994-08-10 | 株式会社東芝 | 画像処理装置 |
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 |
-
1992
- 1992-12-31 US US07/999,702 patent/US5371810A/en not_active Expired - Fee Related
-
1993
- 1993-03-24 CA CA002130917A patent/CA2130917A1/en not_active Abandoned
- 1993-03-24 EP EP93912073A patent/EP0635151B1/de not_active Expired - Lifetime
- 1993-03-24 DE DE69331383T patent/DE69331383T2/de not_active Expired - Fee Related
- 1993-03-24 AT AT93912073T patent/ATE211280T1/de not_active IP Right Cessation
- 1993-03-24 AU AU42761/93A patent/AU4276193A/en not_active Abandoned
- 1993-03-24 JP JP51593994A patent/JP3296493B2/ja not_active Expired - Fee Related
- 1993-03-24 WO PCT/US1993/002736 patent/WO1994016402A1/en active IP Right Grant
- 1993-05-25 IL IL105802A patent/IL105802A0/xx unknown
- 1993-06-09 MX MX9303459A patent/MX9303459A/es unknown
Also Published As
Publication number | Publication date |
---|---|
MX9303459A (es) | 1994-06-30 |
EP0635151A1 (de) | 1995-01-25 |
US5371810A (en) | 1994-12-06 |
AU4276193A (en) | 1994-08-15 |
DE69331383D1 (de) | 2002-01-31 |
WO1994016402A1 (en) | 1994-07-21 |
IL105802A0 (en) | 1993-09-22 |
CA2130917A1 (en) | 1994-07-21 |
JP3296493B2 (ja) | 2002-07-02 |
JPH07504532A (ja) | 1995-05-18 |
ATE211280T1 (de) | 2002-01-15 |
EP0635151B1 (de) | 2001-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69331380T2 (de) | Adaptives anzeigesystem. | |
DE69331968T2 (de) | Verfahren zur identifizierung und zum farbkennzeichnen eines gueltigen objektes | |
DE69331383T2 (de) | Verfaren zur bestimmung der innenpunkte eines objektes in einem hintergrund | |
EP0425595B1 (de) | Verfahren und anordnung zur automatischen optischen klassifikation von pflanzen | |
DE69229856T2 (de) | Adaptives sichtverfahren und -system | |
DE69422702T2 (de) | Verfahren zur bestimmung der aussenpunkte eines objektes in einem hintergrund | |
DE69521811T2 (de) | Verfahren zur vermeidung überflüssiger identifizierungen (verursacht durch antefakten in bildern von bakterienkolonien) | |
EP0409310B1 (de) | Verfahren sowie Anordnung zum Bestimmen von Kanten in Bildern | |
DE3886560T2 (de) | Musterkonturen in Bildverarbeitung. | |
DE69322095T2 (de) | Verfahren und gerät zur identifizierung eines objekts mittels eine geordneten folge von grenz-pixel-parametern | |
DE69231049T2 (de) | Bildverarbeitung | |
DE102005049017B4 (de) | Verfahren zur Segmentierung in einem n-dimensionalen Merkmalsraum und Verfahren zur Klassifikation auf Grundlage von geometrischen Eigenschaften segmentierter Objekte in einem n-dimensionalen Datenraum | |
DE10303724A1 (de) | Dynamisches Zweipegel-Schwellwertverfahren digitaler Bilder | |
DE60114465T2 (de) | Verbesserungen bei oder in verbindung mit indexierungssystemen für bilder | |
DE69817973T2 (de) | Gerät und Verfahren zur Bilderkennung | |
DE69511107T2 (de) | Adaptives sichtsystem mit dualer schwellwertverarbeitung | |
DE69901565T2 (de) | Automatische maskierung von objekten in bildern | |
DE69032400T2 (de) | Bilddatenverarbeitungssystem und methode | |
DE10041037A1 (de) | Bildkodierungsverfahren und Bildkodierer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8339 | Ceased/non-payment of the annual fee |