DE60003032T2 - Verfahren zur bildsegmentation - Google Patents

Verfahren zur bildsegmentation Download PDF

Info

Publication number
DE60003032T2
DE60003032T2 DE60003032T DE60003032T DE60003032T2 DE 60003032 T2 DE60003032 T2 DE 60003032T2 DE 60003032 T DE60003032 T DE 60003032T DE 60003032 T DE60003032 T DE 60003032T DE 60003032 T2 DE60003032 T2 DE 60003032T2
Authority
DE
Germany
Prior art keywords
edge
image
pixels
pixel
segment
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 - Lifetime
Application number
DE60003032T
Other languages
English (en)
Other versions
DE60003032D1 (de
Inventor
Adityo Prakash
R. Edward RATNER
S. John CHEN
L. David COOK
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altera Corp
Original Assignee
Pulsent Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Pulsent Corp filed Critical Pulsent Corp
Publication of DE60003032D1 publication Critical patent/DE60003032D1/de
Application granted granted Critical
Publication of DE60003032T2 publication Critical patent/DE60003032T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/181Segmentation; Edge detection involving edge growing; involving edge linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform

Description

  • ERFINDUNGSGEBIET
  • Die vorliegende Erfindung betrifft die Bildverarbeitung allgemein und insbesondere das Problem der Bildsegmentierung, bei der ein Bild auf der Basis der Pixelfarbwerte des Bilds automatisch in Segmente unterteilt werden muss.
  • ALLGEMEINER STAND DER TECHNIK
  • Die Bildsegmentierung ist der Prozess der Aufteilung eines Bilds in einen Satz von nicht überlappenden Teilen oder Segmenten, die zusammen das ganze Bild darstellen. Die Bildsegmentierung eignet sich für viele Anwendungen, von denen eine das Maschinenlernen ist.
  • Beim Maschinenlernen wird ein Bild in einen Satz von Segmenten unterteilt, und ein bezeichnetes Segment von dem Bild oder ein anderes Bild wird mit dem Satz von Segmenten verglichen. Wenn eine Maschine das bezeichnete Segment erfolgreich mit einem oder mehreren Segmenten von einem segmentierten Bild gepaart hat, zieht die Maschine eine entsprechende Schlussfolgerung. Die Bildsegmentierung könnte beispielsweise dazu verwendet werden, missgebildete Blutkorpuskel zu identifizieren, um Blutkrankheiten wie etwa Sichelzellenanämie zu bestimmen. Bei diesem Beispiel würde das bezeichnete Segment eine erkrankte Blutzelle sein. Durch Zählen der Anzahl von Segmentübereinstimmungen in einem gegebenen Bild kann die relative Gesundheit des Bluts eines Patienten bestimmt werden. Zu weiteren Anwendungen zählen Kompression und Prozesse, die Bereiche des Bildes auf eine Weise verarbeiten, die von den Segmenten der Bereiche abhängen.
  • Wie die Ausdrücke hier verwendet werden, handelt es sich bei einem Bild um von einem mehrdimensionalen Signal abgeleitete Daten. Das Signal könnte entweder natürlich oder künstlich entstehen oder erzeugt werden. Dieses mehrdimensionale Signal (wobei es sich um eine, zwei, drei oder mehr Dimensionen handeln könnte) kann als eine Anordnung von Pixelfarbwerten repräsentiert werden, so dass Pixel, die in einer Anordnung platziert und entsprechend dem Farbwert jedes Pixels gefärbt sind, das Bild darstellen würden. Jedes Pixel weist einen Ort auf, und man kann ihn sich als einen Punkt an diesem Ort oder als eine Form vorstellen, die den Bereich um das Pixel herum so ausfüllt, dass jeder Punkt innerhalb des Bilds als „innerhalb" des Bereichs eines Pixels oder als Teil des Pixels angesehen werden kann. Das Bild selbst könnte eine mehrdimensionale Pixelanordnung auf einem Display, auf einer bedruckten Seite, eine in einem Speicher gespeicherte Anordnung oder ein Datensignal sein, das übertragen wird und das Bild repräsentiert. Die mehrdimensionale Pixelanordnung kann eine zweidimensionale Anordnung für ein zweidimensionales Bild, eine dreidimensionale Anordnung für ein dreidimensionales Bild sein oder es kann sich dabei um eine beliebige andere Anzahl von Dimensionen handeln.
  • Bei dem Bild kann es sich um ein Bild eines physischen Raums oder einer physischen Ebene oder ein Bild eines simulierten und/oder computererzeugten Raums oder einer simulierten und/oder computererzeugten Ebene handeln. Bei Computergraphiken ist ein übliches Bild eine zweidimensionale Ansicht eines computererzeugten dreidimensionalen Raums (wie etwa ein geometrisches Modell von Objekten und Lichtquellen in einem dreidimensionalen Raum). Bei einem Bild kann es sich um ein einziges Bild oder eines von mehreren Bildern handeln, die bei Anordnung in einer geeigneten zeitlichen Reihenfolge ein bewegliches Bild ergeben, was hier als eine Videosequenz bezeichnet wird.
  • Wenn ein Bild segmentiert wird, wird das Bild durch mehrere Segmente repräsentiert. Der degenerierte Fall eines das ganze Bild umfassenden einzigen Segments liegt innerhalb der hier verwendeten Definition von Segment, doch unterteilt die typische Segmentierung ein Bild in mindestens zwei Segmente. Bei vielen Bildern unterteilt die Segmentierung das Bild in ein Hintergrundsegment und ein oder mehrere Vordergrundsegmente.
  • Bei einem Segmentierungsverfahren wird ein Bild derart segmentiert, dass jedes Segment ein Gebiet des Bilds repräsentiert, bei dem die Pixelfarbwerte innerhalb des Segments mehr oder weniger gleichförmig sind, sich aber an den Kanten des Bilds dramatisch ändern. Bei dieser Umsetzung werden die Gebiete verbunden, d. h., es ist möglich, sich Pixel für Pixel von einem beliebigen Pixel im Gebiet zu einem beliebigen anderen Pixel im Gebiet zu bewegen, ohne das Gebiet zu verlassen.
  • Pixelfarbwerte können unter einer beliebigen Anzahl von Pixelfarbräumen ausgewählt werden. Ein üblicherweise verwendeter Farbraum ist als der YUV-Farbraum bekannt, wobei der Pixelfarbwert durch ein Tripel (Y, U, V) beschrieben wird, wobei die Y-Komponente eine Grauskalenintensität oder Luminanz und U und V zwei Chrominanzkomponenten bezeichnen. Den YUV-Farbraum sieht man häufig bei Fernsehanwendungen. Ein weiterer üblicher Farbraum wird als der RGB-Farbraum bezeichnet, wobei R, G und B jeweils die Rot-, Grün- und Blau- Farbkomponente bezeichnen. Den RGB-Farbraum trifft man üblicherweise bei Computergraphikdarstellungen an, zusammen mit CYMB (Cyan, Yellow, Magenta, Black), was oft bei Computerdruckern verwendet wird.
  • Ein Beispiel für eine Bildsegmentierung ist in 1 dargestellt. Dort findet man ein Bild 10 eines Hemds 20 auf einem Hintergrund 15. Das Bild kann auf der Basis von Farben in Segmente unterteilt werden (die Schattierung des Hemds 20 in 1 repräsentiert eine Farbe, die sich von den Farben des Hintergrunds 15 oder der Taschen 70, 80 unterscheidet). Somit werden Hintergrund 15, Hemd 20, Knöpfe 30, 40, 50, 60 und Taschen 70, 80 bei diesem Beispiel zu separaten Segmenten segmentiert. Wenn bei diesem Beispiel jedes Segment eine sehr andere Farbe aufweist und die Objekte in Bild 10 sauber an Pixelgrenzen enden, ist die Segmentierung eine einfacher Prozess. Das Erzeugen präziser Bildsegmente ist allgemein jedoch ein schwieriges Problem, und auf diesem Gebiet wird noch viel geforscht, wie etwa auf dem Gebiet der Forschung zur „industriellen Bildverarbeitung" (computer vision). Ein Grund, weshalb die Segmentierung oftmals schwierig ist, besteht darin, dass ein typisches Bild von verschiedenen Quellen eingeführtes Rauschen enthält, zu denen beispielsweise der Digitalisierungsprozess zählt, wenn das Bild von physischen Geräten erfasst wird, und das Bild enthält außerdem Gebiete ohne wohl definierte Grenzen.
  • Es existieren verschiedene Wege, wie man bei der Aufgabe der Bildsegmentierung vorgehen kann, die allgemein wie folgt gruppiert werden können: 1) histogrammbasierte Segmentierung; 2) traditionelle kantenbasierte Segmentierung; 3) gebietsbasierte Segmentierung und 4) hybride Segmentierung, bei der mehrere der anderen Ansätze kombiniert werden. Jeder dieser Ansätze wird unten beschrieben.
  • 1. Histogrammbasierte Segmentierung.
  • Die auf einer Histogrammtechnik basierende Segmentierung beruht auf der Bestimmung der Farbverteilung in jedem Segment. Diese Technik verwendet zur Segmentierung nur eine Farbebene des Bilds, in der Regel eine Intensitätsfarbebene (auch als der Grauskalenteil des Bilds bezeichnet). Zur Durchführung der Technik erzeugt ein Prozessor ein Histogramm der Pixelfarbwerte in dieser Ebene. Ein Histogramm ist eine graphische Darstellung, wobei eine Reihe von „Intervallen", die jeweils einen Bereich von Werten repräsentieren, entlang einer Achse angeordnet ist und die Gesamtzahl des Auftretens der Werte innerhalb jedes Bereichs entlang der anderen Achse gezeigt ist. Mit dem Histogramm kann die Anzahl der Pixel in jedem Segment bestimmt werden, indem angenommen wird, dass die Farbverteilung innerhalb jedes Segments ungefähr eine Gaußsche oder glockenförmige Verteilung und die Farbverteilung für das gesamte Bild eine Summe von Gaußschen Verteilungen ist. Histogrammbasierte Techniken versuchen, die einzelnen Gaußschen Kurven durch Variieren der Größe der Intervalle, d. h. Vergrößern oder Verkleinern des Wertbereichs, und Suchen von hohen oder tiefen Punkten wiederherzustellen. Nachdem die Verteilungen bestimmt worden sind, wird jedes Pixel dem Segment mit seinem entsprechenden Intensitätsbereich zugeordnet.
  • Das Histogrammverfahren ist fehleranfällig. Die zugrunde liegende Annahme, dass die Farbverteilung eine Gaußsche Verteilung ist, ist im besten Fall geraten, was möglicherweise nicht für alle Bilder akkurat ist. Außerdem werden zwei separate Gebiete identischer Intensität als das gleiche Segment betrachtet. Zudem sind die durch das Histogramm wiederhergestellten Gaußschen Verteilungen unvollständig, da sie an den Enden abgeschnitten sind, wodurch einige Pixel eliminiert werden. Dieses Verfahren der Segmentierung ist weiterhin nur halbautomatisch, da. die Technik erfordert, dass die Anzahl der Segmente zuvor bekannt ist und dass alle Segmente ungefähr die gleiche Größe aufweisen.
  • 2. Traditionelle kantenbasierte Segmentierung
  • Die traditionelle kantenbasierte Segmentierung verwendet Unterschiede bei Farb- oder Grauskalenintensitäten, um Kantenpixel zu bestimmen, die innerhalb eines Bilds verschiedene Gebiete skizzieren. Bei diesem Ansatz wird in der Regel davon ausgegangen, dass, wenn Kantenpixel identifiziert werden, sie unterschiedliche Gebiete im Bild vollständig umschließen, wodurch die Segmente angezeigt werden. Traditionelle Kantenerfassungstechniken identifizieren jedoch oftmals nicht alle Pixel, die tatsächlich Kantenpixel sind, und zwar aufgrund von Rauschen in Bildern oder anderen Artefakten. Falls einige Kantenpixel übersehen werden, kann möglicherweise eine gewisse Vielzahl unterschiedlicher Gebiete fälschlicherweise als ein einziges Segment identifiziert werden.
  • 3. Gebietsbasierte Segmentierung
  • Bei der gebietsbasierten Segmentierung wird versucht, homogene Gebiete zu erfassen und sie als Segmente zu bezeichnen. Ein Klasse von gebietsbasierten Ansätzen beginnt mit kleinen gleichförmigen Gebieten innerhalb des Bilds und versucht, benachbarte Gebiete mit einem sehr ähnlichen Farbwert zu vereinigen, um größere Gebiete zu bilden. Umgekehrt beginnt eine weitere Klasse von gebietsbasierten Ansätzen mit dem ganzen Bild und versucht, das Bild in mehrere homogene Gebiete aufzuteilen. Diese beiden Ansätze führen dazu, dass das Bild bei Gebieten aufgeteilt wird, bei denen einige Homogenitätsanforderungen nicht erfüllt sind.
  • Die erste Klasse gebietsbasierter Segmentierungsansätze ist dadurch begrenzt, dass die Segment kanten je nach dem Verfahren des Unterteilens des Ausgangsbilds approximiert werden. Bei der zweiten Klasse gebietsbasierter Ansätze besteht ein Problem darin, dass die erzeugten Segmente im Allgemeinen relativ zu den tatsächlichen zugrunde liegenden Segmenten verzerrt werden.
  • 4. Hybride Segmentierung
  • Das Ziel von hybriden Techniken besteht darin, Prozesse von mehreren vorausgegangenen Segmentierungsprozessen zu verknüpfen, um die Bildsegmentierung zu verbessern. Die meisten hybriden Techniken sind eine Kombination aus Kantensegmentierung und gebietsbasierter Segmentierung, wobei das Bild so segmentiert wird, dass einer der Prozesse verwendet und mit dem anderen Prozess fortgefahren wird. Die hybriden Techniken versuchen, eine bessere Segmentierung als ein einziger Prozess alleine zu erzeugen. Es hat sich jedoch herausgestellt, dass hybride Verfahren eine erhebliche Führung durch einen Benutzer und ein Vorauswissen über das zu segmentierende Bild erfordern, wodurch sie für Anwendungen nicht geeignet sind, die eine vollautomatisierte Segmentierung erfordern.
  • Die Erfindung ist in Anspruch 1 dargelegt, und bevorzugte Merkmale sind in den abhängigen Ansprüchen umrissen. Die vorliegende Erfindung kann dabei helfen, viele der Probleme bisheriger Segmentierungsprozesse zu lösen. Der hier beschriebene Bildsegmentierer kann eine oder mehrere Techniken verwenden, um ein Bild präzise zu der segmentieren, einschließlich der Verwendung einer progressiven Farbfüllung, um unvollständig abgegrenzte Segmente zu füllen, der Verwendung mehrerer skalierter Transformationen und führender Segmentierung auf einer Skala mit Segmentierungsergebnissen von einer anderen Skala, Erfassen von Kanten unter Verwendung eines zusammengesetzten Bilds, das ein Verbund mehrerer Farbebenen ist, Erzeugen von Kantenketten unter Verwendung mehrerer Klassen von Kantenpixeln, Erzeugen von Kantenketten unter Verwendung der mehreren skalierten Transformationen und/oder Filtern falscher Kanten bei einer Skala auf der Basis von mit einer anderen Skala erfassten Kanten.
  • Das Wesen und die Vorteile des hier offenbarten Bildsegmentierers kann man unter Bezugnahme auf die restlichen Teile der Patentschrift und die beiliegenden Zeichnungen besser verstehen. Es zeigen:
  • 1 ein Bild, das einen einfachen Bildsegmentierungsprozess veranschaulicht;
  • 2 ein Blockdiagramm einer Vorrichtung zum Segmentieren von Bildern;
  • 3 ein Blockdiagramm eines Systems, in dem ein segmentiertes Bild verwendet werden könnte;
  • 4 eine Darstellung eines Datenstroms aus einem Bild und verwandten Segmentdaten;
  • 5, wie eine Segmentliste für ein entsprechendes Bild aussehen könnte;
  • 6 Kantenpixel in einem Bild aus schwarzen und weißen Bildpixeln. Die durch die kleineren, schwach schattierten Pixel dargestellten Kantenpixel liegen zwischen den schwarzen und weißen Bildpixeln;
  • 7 eine Kantenkette zwischen zwei Segmenten von Bildpixeln;
  • 8 ein Bild, das unter Verwendung eines progressiven Pinsels segmentiert werden soll;
  • 9 eine Darstellung eines auf beiden Seiten einer Kantenkette teilweise gefüllten Bilds;
  • 10 Gradienten für Pixel in jeder der drei Farbkomponenten;
  • 11 ein Bild mit Bildpixeln, Kantenpixeln und einer Kante;
  • 12 einen Prozess zum Bestimmen starker Kantenpixel unter Verwendung einer Gradiententechnik;
  • 13 einen Prozess zum Bestimmen schwacher Kantenpixel unter Verwendung einer Gradiententechnik;
  • 14 einen Prozess zum Bestimmen starker Kantenpixel unter Verwendung einer Laplace-Technik;
  • 15 ein Bild mit identifizierten Bildpixeln und Kantenpixeln einschließlich starker Kantenpixel und schwacher Kantenpixel;
  • 16 einen Prozess zur Auswahl unter Kantenpixeln beim Erzeugen einer Kantenkette;
  • 17 einen Prozess zum Fortsetzen von Kantenketten über kleine Lücken; 17(a) zeigt zwei Kantenketten mit einer Lücke; 17(b) zeigt die ausgefüllte Lücke;
  • 18 einen Prozess zum Verbinden von Kantenketten aus mehr als einem Maßstab; 18(a) zeigt eine Kantenkette von einer gröberen Skala; 18(b) zeigt eine Kantenkette von einer feineren Skala und 18(c) zeigt ihre Kombination;
  • 19 einen Prozess der Kantenkettenverlängerung; 19(a) zeigt ein Bild vor der Verlängerung von Kantenketten; 19(b) zeigt das Bild nach der Verlängerung von Kantenketten;
  • 20(a)–(e) Bilder mit verschiedenen Graden der Kantenkettenfilterung; und
  • 21(a)–(c) einen Prozess der Kantenkettenfilterung über Videoeinzelbilder.
  • BESCHREIBUNG DER SPEZIFISCHEN AUSFÜHRUNGSFORMEN
  • Segmentierung ist derjenige Prozess, durch den ein digitales Bild in Komponenten unterteilt wird, die als „Segmente" des Bilds bezeichnet werden. Bei einem auf dem Farbwert basierenden Segmentierungsprozess repräsentiert jedes Segment einen Bereich, der von radikalen oder scharfen Änderungen der Farbwerte innerhalb des Bilds begrenzt wird, wie in 1 gezeigt und wie im Stand der Technik beschrieben. Bei vielen hier ausführlich beschriebenen Beispielen repräsentiert das Bild ein zweidimensionales Signal, doch ist zu verstehen, dass die hier beschriebenen Verfahren und Vorrichtungen vom Fachmann nach dem Lesen dieser Offenbarung an andere Zahlen von Dimensionen angepasst werden können.
  • 2 ist ein Blockdiagramm eines Systems mit einem Segmentierer 100, der Segmentdefinitionen für ein Bild gemäß einer Ausführungsform der vorliegenden Erfindung erzeugt. Der Segmentierer 100 empfängt als seine Eingabe Bilddaten 102 und gibt eine Segmentliste 104 aus. Das Format der Bilddaten 102 und der Segmentliste 104 kann je nach der Art des Bilds, seinen Speicherungsanforderungen und anderer Verarbeitung, die nicht zum Segmentierungsprozess in Beziehung steht, variieren, doch eine Form der Speicherung für Bilddaten 102 ist eine Anordnung von Pixelfarbwerten, möglicherweise komprimiert, und in einem der vielen möglichen Bildformate nach Industriestandard gespeichert, wie etwa Rohdaten, Bitmaps, MPEG, JPEG, GIF usw. Bilddaten 102 könnten im Speicher als eine zweidimensionale Anordnung von Werten gespeichert werden, wobei jeder Wert ein Pixelfarbwert ist. Der Pixelfarbwert könnte mehrere Komponenten aufweisen. Ein Bild könnte beispielsweise eine 1024 mal 768 große Anordnung von Pixeln sein, wobei der durch drei Komponentenwerte (Rot, Grün, Blau) repräsentierte Farbwert jedes Pixels im Bereich zwischen 0 und 255 liegt. Das Format der Segmentliste 104 könnte als eine lauflängencodierte geordnete Liste von Mittelpixeln (unten unter Bezugnahme auf 6 definiert) oder Bildpixeln, die die Grenzen jedes Segments umfassen, gespeichert werden.
  • Der Segmentierer 100 ist mit einem Einzelbildpuffer 110 gezeigt, der die betrachteten Bilddaten hält, mit einer Segmenttabelle 112, die Daten über die identifizierten oder zu identifizierenden Segmente enthält, und mit einem Prozessor 114, der am Einzelbildpuffer 110 arbeitet, um entsprechend Programmanweisungen 116, die im Segmentierer 100 bereitgestellt werden, Segmentdaten zu erzeugen. Mehrere Aspekte von Programmanweisungen 116 werden unten beschrieben und könnten Programmanweisungen beinhalten, die einigen oder allen der Verfahren und Prozesse zur Segmentierung entsprechen und die hier beschriebene Segmentierung unterstützen.
  • 3 veranschaulicht ein System, in dem die Segmentliste 104 verwendet werden könnte. Ein Bildgenerator 200 erzeugt, wie dort gezeigt, ein Bild, möglicherweise unter Verwendung herkömmlicher Bilderzeugungs- oder Bilderfassungstechniken, und speichert dieses Bild repräsentierende Daten als Bilddaten 102. Mit einem Segmentierer, wie etwa dem in 2 gezeigten Segmentierer 100, wird wie oben beschrieben die Segmentliste 104 erzeugt. Der Bildgenerator 200 liefert die Segmentliste 104 an einen Segmentfeldgenerator 201, der Daten für jedes der Segmente erzeugt. Derartige Daten könnten eine Kennung, eine anklickbare Verknüpfung (wie etwa einen Uniform Resource Locator oder „URL") und andere Daten enthalten, die nicht notwendigerweise aus dem Bild gewonnen werden, aber Segmenten des Bilds zugeordnet sind.
  • Die Bilddaten 102, die Segmentliste 104 und die Segmentfelder werden als von einem Webserver 202 zu bedienende Webseiten gespeichert. Diese Bilddaten und verwandten Daten können dann von einem Browser 206 oder einem anderen Web Client (nicht gezeigt) über das Internet 204 vom Webserver 202 abgerufen werden.
  • Nunmehr unter Bezugnahme auf 4 werden in 4 eine Anordnung von Bilddaten und der verwandten Daten gezeigt, wie sie als ein Datensignal übertragen werden könnten. Bei diesem Beispiel werden die Bilddaten 250 als ein Signal (möglicherweise in einem Format nach Industriestandard) übertragen, gefolgt von der Segmentliste 260 und den Segmentfeldern 270.
  • 5 zeigt ein extrem einfaches Bild und seine resultierende Segmentierung. Wie gezeigt enthält das Bild 500 drei Segmente, zwei polygonale Vordergrundsegmente und ein Hintergrundsegment. Der Segmentierer 100 verarbeitet das Bild 500 und erzeugt eine Segmentliste 510. Wie in der Figur gezeigt repräsentiert das mit „Seg #1" gekennzeichnete Segment das Hintergrundsegment, das mit „Seg #2" gekennzeichnete Segment repräsentiert das Vordergrundsegment, das durch ein Polygon mit den Punkten A, B, C, E und D begrenzt wird (endet an Punkt A, um das Polygon zu schließen), und das mit „Seg #3" gekennzeichnete Segment repräsentiert das Vordergrundsegment, das durch ein Polygon zwischen den Punkten F, G, K, J, I und H begrenzt wird (endet mit Punkt F, um das Polygon zu schließen). Das typische segmentierte Bild ist natürlich üblicherweise nicht so gut definiert, so dass möglicherweise einige oder alle der hier beschriebenen Verfahren benötigt werden, um Segmentgrenzen korrekt zu identifizieren.
  • Der Ausdruck „Mittelpixel", wie er hier verwendet wird, bezieht sich auf einen logischen Punkt, der relativ zu Bildpixeln in einem Bild angeordnet ist. Eine Kante eines Segments verläuft von Mittelpixel zu Mittelpixel, wodurch Bildpixel auf jeder Seite des Segments getrennt werden. Mittelpixel liegen bevorzugt nicht in den gleichen Punkten, auf denen Bildpixel liegen, sondern fallen zwischen Bildpixel. Obwohl nicht erforderlich ist, dass Mittelpixel präzise in einem Rechteck zentriert sind, das durch vier gegenseitig benachbarte Bildpixel (oder ein anderes, durch gegenseitig benachbarte Bildpixel auf nichtrechteckigen Bildpixelanordnungen definiertes kleinstes Polygon) definiert ist, werden ohne Verlust an Allgemeinheit zur Vereinfachung der Anordnung zentrierte Mittelpixel bevorzugt.
  • Eine derartige Anordnung ist in 6 gezeigt, bei der ein Bild 600 Bildpixel wie etwa Bildpixel 602 umfasst, und Mittelpixel 604 treten zwischen Bildpixeln auf. Falls eine Kante spezifiziert würde, die alle Mittelpixel 604 in einer von oben nach unten oder von unten nach oben verlaufenden Reihenfolge verbindet, dann sollte offensichtlich sein, dass die Kante Bildpixel auf der linken Seite der Kante von Bildpixeln auf der rechten Seite der Kante trennt.
  • Wenn ein Mittelpixel Teil einer Kante ist oder als Teil einer Kante vorgeschlagen ist, wird es als ein Kantenpixel bezeichnet. Kanten sind somit Ketten von Kantenpixeln, und die Bildpixel eines Segments können durch eine Kantenkette begrenzt werden, die diese Bildpixel umgibt. Bei einigen Fällen enthält ein Segment Bildpixel, die genau auf einer Kante liegen. Wenn ein Bildpixel genau auf eine Kante zwischen zwei Segmenten fällt (wie dies bei einer diagonalen Kante und zentrierten Kantenpixeln der Fall sein könnte), können eine oder mehrere von verschiedenen Zuteilungsroutinen verwendet werden, um zu bestimmen, zu welchem Segment das Bildpixel gehören sollte. Wie hier ausführlicher erläutert wird, sind Kantenpixel in einem Bild die ungefähren Punkte, an denen die Pixelfarbwerte relativ große Verschiebungen erfahren.
  • Der unten beschriebene Segmentierungsprozess umfasst mehrere Sequenzen von Schritten. Nicht alle Schritte müssen ausgeführt werden, und diejenigen, die ausgeführt werden, müssen nicht in der angegebenen Reihenfolge ausgeführt werden. Die anfänglich beschriebenen Sequenzen sind:
    • 1) Progressive Farbfüllung – unter Verwendung variierender Pinselgrößen, um Gebiete, die möglicherweise unvollständig begrenzt sind, progressiv zu füllen;
    • 2) Mehrskalige Segmentierung – dies erzeugt mehrere „Skalen"-Transformationen des Ausgangsbilds und verwendet Segmente von einer Skalentransformation, um die Segmentierung bei einer anderen Skala zu führen;
    • 3) Verbundkantenerfassung – Erfassen von Kanten unter Verwendung eines zusammengesetzten Bilds, das ein Verbund mehrerer Farbebenen ist;
    • 4) Mehrklassige Kantenverkettung – erzeugt Kantenketten unter Verwendung mehrerer Klassen von Kantenpixeln;
    • 5) Mehrskalige Kantenverkettung – unter Verwendung von Informationen von mehreren Skalen zum Erzeugen von Kantenketten;
    • 6) Kantenkettenfilterung – unter Verwendung verschiedener kontextualer Kantencharakteristiken wie etwa Mehrfachskalierung, Videosequenzierung, dynamische Skalen, um fremde Kantenketten herauszufiltern.
  • Gegebenenfalls unter Bezugnahme auf die Figuren werden die obigen Schritte nun ausführlicher beschrieben, worauf sich einige besonders nützliche Kombinationen der obigen Schritte anschließen.
  • 1. Progressive Farbfüllung
  • Der Prozess der progressiven Farbfüllung erzeugt aus möglicherweise unvollständigen Kantenketten geschlossene Segmentgrenzen. Dieser Prozess setzt ein Bild mit mindestens einigen Kantenketten voraus, wobei eine Kantenkette eine geordnete Liste von Kantenpixeln ist, die logisch mit Liniensegmenten zwischen in der geordneten Liste benachbarten Kantenpixeln verbunden sind. Die Kantenketten können für ein gegebenes Bild auf vielerlei Weise erzeugt werden, einschließlich eines hier beschriebenen Kantenkettenerzeugungsprozesses. 7 zeigt ein Beispiel für eine Kantenkette 650. Die Kantenkette 650 wird durch die sechs Kantenpixel 652 und die die Kantenpixel verbindenden Liniensegmente definiert.
  • Um voraussichtliche Segmente zu „füllen", verwendet der unmittelbar nachstehend beschriebene Prozess der progressiven Farbfüllung allgemein eine Sequenz von Pinseln von groß bis klein. Ein Pinsel ist ein logisches Fenster oder eine in Pixeleinheiten ausgedrückte gegebene Form. Ein möglicher Pinsel ist beispielsweise ein sechs mal sechs Pixel großes quadratisches Fenster, ein anderer ist ein hexagonales Fenster mit sieben Pixeln pro Seite. Beim Füllen eines voraussichtlichen Segments werden Bildpixel mit dem Pinsel bedeckt, wobei den Bildpixeln ein Segmentwert (d. h. ein Wert oder eine Zahl, die als Referenz für ein Segment verwendet werden kann) zugeordnet wird und der Pinsel über das Bild bewegt wird, ohne dass er irgendeinen Teil einer Kantenkette bedeckt und ohne dass er ein anders zugeordnetes Bildpixel bedeckt, zum Beispiel ein zuvor bedecktes Bildpixel, dem ein Segmentwert zugeteilt war, der von dem Segmentwert verschieden ist, der gegenwärtig bedeckten Bildpixeln zugeteilt wird. Der Satz von Bildpixeln, der durch die Sequenz von Pinseln erreicht werden kann, ohne dass eine Kantenkette oder ein anders zugeordnetes Bildpixel bedeckt wird, ist ein Satz von Bildpixeln, die dem voraussichtlichen Segment zugeordnet sind.
  • Es soll beispielsweise 8 betrachtet werden, die ein Bild 700 und einen Pinsel 702 zeigt, wobei das Bild, wie markiert, Kantenketten 701 und 701a aufweist. Bei der Größe des Pinsels 702 wird der Füllprozess, falls der Pinsel 702 im dreieckigen Bereich 704 platziert wird, nicht durch die Lücke 705 oben im Bereich 704 „zerfließen", da der Pinsel 702 nicht durch die Lücke 705 passt, ohne einen Teil einer Kantenkette zu bedecken. Der erste Schritt des Prozesses des progressiven Füllens pinselt über den Bereich 704, den quadratischen Bereich 706 und den Hintergrundbereich 708, wobei ein Pinsel mit der angegebenen Größe verwendet wird. Ein Ergebnis dieses ersten Schrittes besteht darin, dass einige, in diesem Fall die meisten, der Pixel des Bilds jeweiligen Segmenten zugeordnet werden. Einige der Bildpixel sind keinen Segmenten zugeordnet, da der Pinsel 702 diese Pixel nicht erreichen konnte, ohne eine Kantenkette zu bedecken.
  • Bei einer Umsetzung bewegt der Prozessor den Pinsel zu jedem möglichen Ort im Bild, wobei er aufpasst, dass er keine Kantenkette oder ein anders zugeordnetes Bildpixel bedeckt. Der Prozessor betrachtet bei jedem Pinselort die zugrunde liegenden Mittelpixel und Bildpixel. Wenn der Pinsel ein Kantenpixel oder eine Kantenkette oder ein anders zugeordnetes Bildpixel bedeckt, bleibt der Pinsel ohne Effekt und wird zur nächsten Position bewegt. Falls der Pinsel jedoch keinen Teil eines Kantenpixels, einer Kantenkette oder eines anders zugeordneten Bildpixels bedeckt, untersucht der Prozessor die zugrunde liegenden Bildpixel. Falls ein beliebiges der zugrunde liegenden Bildpixel bereits einem Segment zugeordnet worden ist, werden alle die zugrunde liegenden Bildpixel diesem Segment zugeordnet, ansonsten werden alle zugrunde liegenden Bildpixel einem neuen Segment zugeordnet. Im Fall eines Pinsels mit einem Pixel betrachtet der Prozessor die benachbarten Bildpixel und ordnet das Bildpixel dem Segment mit den naheliegendsten Bildpixeln zu, ohne irgendwelche Kantenketten zu kreuzen.
  • Bei einer weiteren Umsetzung bewegt der Prozessor zwei Pinsel auf beiden Seiten jeder erfassten Kantenkette, wobei er Bildpixel auf beiden Seiten der Kantenketten verschiedenen Segmenten zuordnet. Bei noch einer weiteren Umsetzung platziert der Prozessor einen Pinsel an einen beliebigen unbearbeiteten Ort im Bild und bewegt den Pinsel zu benachbarten Orten, die erreicht werden können, ohne eine Kantenkette zu bedecken.
  • Bei einer weiteren Umsetzung verwendet der Prozessor eine Sequenz von inkremental kleineren Pinseln, um abwechselnd neue Segmente zu erzeugen und vorausgegangene Segmente zu erweitern. So könnten ungeradzahlige Durchgänge neu Segmente erzeugen, während geradzahlige Durchgänge zuvor erzeugte Segmente erweitern könnten.
  • Bei noch einer weiteren Umsetzung erzeugt der Prozessor eine Sequenz von Kantenketten in jeder Farbkomponente und vereinigt die Kantenketten, um ein Verbundkantenkettenbild zu erzeugen. Die Kombination kann entweder die Vereinigungsmenge oder die Schnittmenge der Kantenketten in jeder Farbkomponente sein.
  • Nachdem der Prozessor den ersten Pinsel (oder die ersten Pinsel) über das Bild geführt hat, werden einige der Bildpixel Segmenten zugeordnet. Diese Bildpixel repräsentieren diejenigen Teile des Bilds, die für den bzw. die Pinsel zugänglich waren. Der Prozessor führt dann mit einem kleineren Pinsel einen weiteren Durchgang über das Bild aus. Bei diesem zweiten Durchgang führt der Prozessor den gleichen Prozess mit dem kleineren Pinsel aus, um Bildpixel zu bedecken und zuzuordnen, die durch den größeren Pinsel nicht „erreichbar" waren (d. h., der Pinsel konnte die Bildpixel nicht bedecken, ohne auch ein Kantenpixel, eine Kantenkette oder ein anders zugeordnetes Bildpixel zu bedecken). Der Prozess wird in nachfolgenden Durchgängen mit ständig kleineren Pinseln wiederholt, bis der Prozessor einen Durchgang mit dem kleinsten Pinsel, wie etwa einem Pinsel von einem Pixel, durchführt.
  • Die Anfangspinselgröße ist bevorzugt um ein Pixel größer als die größte annehmbare Lücke in einer ein Segment definierenden Kantenkette. Wenn beispielsweise eine Spanne von fünf Pixeln oder weniger zwischen den Enden von zwei Kantenketten als eine Lücke in einer größeren Kantenkette angesehen wird, dann könnte der Anfangspinsel ein sechs mal sechs Pixel großes Quadrat sein. Bei einer derartigen Anordnung würde der Anfangspinsel nicht durch eine Lücke „zerfließen" und dabei zwei Segmente falsch vereinigen. Nach dem Anfangspinsel könnten nachfolgende, kleinere Pinsel möglicherweise durch eine Lücke zerfließen, aber der Betrag des Zerfließens würde begrenzt sein, da sich auf beiden Seiten der Lücke zuvor zugeordnete Bildpixel befinden würden, die die Bewegungen des Pinsels begrenzen würden.
  • 9 veranschaulicht diesen Punkt. Diese Figur zeigt eine Kantenkette 800 mit einer Lücke. Die Kantenkette 800 trennt zwei Segmente 802, 804. Bei einem früheren Pinseldurchgang wurden einige der Bildpixel Segmenten zugeordnet, und einige Bildpixel, wie etwa solche in der Nähe der Lücke, konnte der Pinsel nicht erreichen. Wenn ein kleinerer Pinsel verwendet wird, könnte der Pinsel klein genug sein, um alle verbleibenden nicht zugeordneten Pixel auf beiden Seiten der Lücke zu erreichen, was zu einem Zerfließen aus demjenigen Segment führt, das zuerst verarbeitet wird. Um dies zu verhindern, führt der Prozessor zwei Pinsel von beiden Seiten der Lücke über die nicht zugeordneten Pinsel, so dass beide Seiten der Lücke gleichmäßig gefüllt werden.
  • Um das unerwünschte Zerfließen kleinerer Pinsel weiter zu begrenzen, können zwei Pinsel in einem Durchgang geführt werden, und zwar einer auf jeder Seite der Lücke, oder ein Pinsel kann beim Prozess des Zuordnens von Bildpixeln zu Segmenten von einer Seite zur anderen wechseln. In einigen Fällen, wie etwa für das in 7 gezeigte Bildpixel 660, ist sogar ein Pinsel von einem Pixel nicht klein genug, um einige Bildpixel zu erreichen, wie etwa solche, die von einer Kantenkette gekreuzt werden. Diese unerreichbaren Pixel können nach der Beendigung des Durchgangs unter Verwendung des kleinsten Pinsels erledigt werden.
  • Ein Prozess zum Erledigen von unerreichbaren Pixeln besteht in der Verwendung eines Zuteilungsverfahrens, um ein unerreichbares Pixel einem der Segmente zuzuordnen, die sich an dem unerreichbaren Pixel treffen. Ein Zuteilungsverfahren betrachtet den Gradienten am Bildpixel und den Gradienten am nächsten Bildpixel in jedem der sich streitenden Segmente, und das Bildpixel wird dem Segment zugeordnet, das das naheliegenste Bildpixel enthält, dessen Gradient hinsichtlich Größe und Richtung dem Gradienten beim unerreichbaren Bildpixel am nächsten liegt. Ein Gradient ist eine Vektorableitung.
  • Nachdem der Prozess jedes Bildpixel einem Segment zugeordnet hat, kann man die Orte der Grenzen jedes Segments leicht finden. Wie unten beschrieben könnte der Prozess des progressiven Füllens mit anderen Prozessen kombiniert werden, um Segmentgrenzen präziser zu bestimmen.
  • 2. Mehrskalige Segmentierung
  • Der Segmentierer erzeugt beginnend mit einem Bild mehrere Transformationen des Bilds mit zunehmend geringeren Auflösungen, auch als „Skalen" bezeichnet, wobei von Skala zu Skala nur Informationen hinsichtlich der größeren, dominanteren Merkmale beibehalten werden. Um die Transformationen zu erzeugen, gibt es mehrere verschiedene Möglichkeiten, wie etwa die Verwendung von Glättungs- oder ähnlichen Filtern. Ein Satz von Transformationen, der sich für einige Bilder eignen könnte, ist eine Anordnung von Gaußschen Glättungsfiltern, wobei jedes Filter eine andere charakteristische Entfernung aufweist.
  • Bei einem mehrskaligen Segmentierungsprozess werden die transformierten Bilder in der Reihenfolge vom gröbsten zum feinsten verarbeitet, wobei das gröbste Bild die Transformation unter Verwendung des breitesten Glättungsfilters ist. Das gröbste Bild behält in der Regel nur die größeren Merkmale des Bilds bei. Das feinste Bild ist entweder das Bild, das mit dem Glättungsfilter mit der kleinsten charakteristischen Entfernung transformiert wurde, oder das ursprüngliche untransformierte Bild.
  • Der Prozess geht weiter durch Abarbeiten eines Segmentierungsprozesses des gröbsten Bilds, um einen Satz von Segmenten für das gröbste Bild zu definieren. Bei dem Segmentierungsprozess kann es sich um den oben beschriebenen progressiven Füllungssegmentierungsprozess oder einen beliebigen anderen, an einzelnen Bildern durchgeführten Segmentierungsprozess handeln. Nachdem der Segmentierungsprozess am gröbsten Bild durchgeführt worden ist, wird der Satz von Segmenten dieses Bilds bei nachfolgenden, an feineren Bildern durchgeführten Segmentierungsprozessen verwendet.
  • Beispielsweise wird das zweitgröbste Bild wie zuvor segmentiert, aber mit einer Einschränkung, dass ein Segment im zweitgröbsten Bild nicht mehr als ein Segment im gröbsten Bild umgeben kann. Mit anderen Worten sind die Segmente im zweiten Bild jeweils ein Teilsatz der Segmente im ersten Bild.
  • Der Prozess wird für jedes nächstgröbere Bild fortgesetzt, wobei die Segmente des zuvor segmentierten Bilds verwendet werden. Da die Segmente jedes vorausgegangenen Bilds darauf beschränkt waren, Teilsätze seines vorausgegangenen Bilds zu sein, sind die Segmente eines beliebigen der transformierten Bilder Teilsätze der Segmente eines beliebigen Segments in jedem gröberen Bild.
  • Ein Verfahren, um die „Teilsatz"-Einschränkung zu erzwingen, besteht darin, eine uneingeschränkte Segmentierung eines Bilds durchzuführen, dann ein beliebiges Segment, das mehr als ein Segment in einem gröberen Bild kreuzt, zu unterteilen. Ein weiteres Verfahren zum Erzwingen der Teilsatzeinschränkung könnte verwendet werden, wenn die Segmentierung durch den oben beschriebenen Prozess des progressiven Füllens erfolgt. Bei diesem letzteren Verfahren werden die Segmentgrenzen des gröberen Bilds als Kantenketten in dem verarbeiteten Bild hinzugefügt, um die Teilsatzeinschränkung zu bewirken.
  • 3. Verbundkantenerfassung
  • Der Prozess des progressiven Füllens und der mehrskalige Segmentierungsprozess, die oben beschrieben sind, arbeiten an einem Bild und einem Satz von Kantenketten, wobei eine Kantenkette ein geordneter Satz von Kantenpixeln ist. Die Kantenketten werden aus den Kantenpixeln erzeugt. Die oben beschriebenen Verfahren könnten andere Verfahren der Kantenerfassung verwenden, doch ist ein Verfahren, das sich besonders eignet, wenn Pixelfarbwerte mehrere Farbkomponenten umfassen, der Verbundkantenerfassungsprozess, der nun beschrieben wird.
  • Bei dem Verbundkantenerfassungsprozess werden Informationen von den verschiedenen Farbkomponenten zu einem Verbundbild vereinigt, wobei jeder Pixelfarbwert im Verbundbild eine Funktion der Komponenten der Farbwerte des entsprechenden Farbpixels und möglicherweise der Farbwerte von umgebenden Bildpixeln ist. Mit dem Verbundbild wird dann bestimmt, welche der Mittelpixel Kantenpixel sind. Nach der Bestimmung der Kantenpixel im Verbundbild können die Kantenpixel zu Kantenketten verbunden werden.
  • Unten werden drei Verfahren zur Verbundbildverarbeitung beschrieben. Das erste Verfahren kombiniert Farbinformationen, bevor es die Kantenpixel bestimmt, während das zweite Verfahren die Kantenpixel für jede Farbebene bestimmt und dann die Ergebnisse zu einem Satz von Verbundkantenpixeln kombiniert. Der Ausdruck „Farbebene" bezieht sich auf ein Bild, das eine N-dimensionale Anordnung von Pixelfarbwerten ist, wobei jedes Pixel nur eines von mehreren des diesem Pixel zugeordneten Farbbilds beibehält. Falls beispielsweise jedem Pixel ein roter Wert, ein grüner Wert und ein blauer Wert zugeordnet wäre, dann ist ein Bild, bei dem jedes Pixel nur seinen zugeordneten roten Wert hätte, ein Farbebenenbild für die rote Farbebene.
  • Beim ersten Verfahren wird aus den Farbkomponentenwerten für die Pixel ein Verbundgradientenbild berechnet, das eine Anordnung von Gradientenvektoren, einen pro Pixel, umfasst. Das Verbundgradientenbild wird dann verarbeitet, um Kantenpixel zu erfassen.
  • Ein Prozess zur Erzeugung des Verbundgradientenbilds erzeugt einen Verbundgradienten für jedes Pixel auf der Basis der Gradienten bei diesem Pixel in jeder der Farbebenen, wobei der Verbundgradient für ein Pixel eine modifizierte Vektoraddition der Gradienten in jeder Farbebene bei diesem Pixel ist. Die modifizierte Vektoraddition wird dadurch modifiziert, dass die Vorzeichen der einzelnen Vektoren soweit erforderlich geändert werden, um die Richtungen aller Addenden innerhalb einer Halbebene zu halten, wenn mehr als zwei Farbebenen vorliegen.
  • 10 wird zur Veranschaulichung einer derartigen modifizierten Vektoraddition verwendet. Wie dort gezeigt, weisen die Vektoren in jeder Farbebene für Pixel A einen Bereich von Richtungen auf, der kleiner ist als ein Halbkreis, so dass der Verbundgradient einfach die Vektorsumme der Vektoren in jeder der Komponenten ist. Das gleiche gilt für die Pixel B und C. Es existiert jedoch keine Orientierung eines Halbkreises, die die Richtungen aller Vektoren für Pixel D enthalten würde. Im letzteren Fall wird das Vorzeichen eines der Vektoren umgekehrt (d. h., es weist in die entgegengesetzte Richtung), bevor die Vektoren addiert werden.
  • Diese modifizierte Vektoraddition berücksichtigt im Grunde, dass es für einen beliebigen gegebenen Punkt an einer gegebenen Kante zwei Vektoren gibt, die die Normale zur Kante oder die Tangente zur Kante definieren. Folglich kann ein Gradientenvektor umgekehrt werden und immer noch die gleiche Kante repräsentieren. Indem sichergestellt wird, dass alle Vektoren, die addiert werden, – in einen Halbkreis fallen, ist es weniger wahrscheinlich, dass der Beitrag eines Komponentengradientenvektors den Beitrag eines anderen Komponentengradientenvektors auslöscht.
  • Indem sichergestellt wird, dass die Addenden in einen Halbkreis fallen, sollten die Polaritäten der Gradienten das Ergebnis ihrer Summe kaum beeinflussen. Bei vielen Bildern entspricht die Änderung der Polarität einer physischen Charakteristik des Bilds. Die Polaritäten von Kanten in jeder Farbkomponente eines YUV-Bilds sind im allgemeinen voneinander unabhängig. Wenn beispielsweise ein hellgrünes Gebiet in ein dunkelrotes Gebiet übergeht, nimmt „Y" ab und „V" nimmt zu.
  • Bei einigen Farbräumen könnten die Farbkomponenten bei einer gleichmäßig gewichteten Addition einen größeren Einfluss aufweisen, und zwar aufgrund von Farbdifferenzen insgesamt oder aufgrund einer bei einigen Farbräumen vorliegenden Tendenz, extremere Gradientengrößen zu haben, was ausgeprägtere oder stärkere Kanten zum Ausdruck bringt. In derartigen Fällen könnten die Farbkomponenten vor dem Addieren mit einem Normierungsfaktor gewichtet werden. Gute Normierungsfaktoren sind skalare Werte, die zu ähnlichen Gewichten für Gradientengrößen in jeder Farbebene führen. Wenn sich beispielsweise der Dynamik zwischen einer Luminanz- und einer Chrominanzfarbebene bewegt, derart, dass die mittlere Gradientengröße über eine Abtastung von Bildern oder ein einzelnes Bild in der Luminanzfarbebene doppelt so groß ist relativ zu einer Chrominanzfarbebene, könnte der Luminanzvektor vor dem Addieren der Vektoren normiert werden, indem er durch zwei dividiert wird.
  • Ein weiterer Prozess zum Erzeugen des Verbundgradientenbilds erzeugt für jedes Pixel einen Verbundgradienten, der gleich dem Farbkomponentenvektor oder eine Funktion des Farbkomponentenvektors bei diesem Pixel mit der größten Größe ist. Bei diesem Prozess, den größten Vektor zu nehmen, anstatt Vektoren zu addieren, könnte ein Normierungsfaktor angewendet werden, bevor der Vergleich erfolgt, um den Vektor mit der größten Größe auszuwählen.
  • Wie auch immer die Verbundgradientenvektoren erzeugt werden, sie bilden kollektiv ein Verbundgradientenbild. Anhand dieses Verbundgradientenbilds können Kantenpixel bestimmt und Kantenketten aus diesen Kantenpixeln geformt werden, um an dem Bild einen Segmentierungsprozess vorzunehmen.
  • 4. Mehrklassige Kantenverkettung
  • Wie oben erläutert, werden die Kantenpixel eines Bilds, nachdem sie identifiziert worden sind, dazu verwendet, Kantenketten zu identifizieren, und diese Kantenketten werden im Segmentierungsprozess verwendet. Bei einem hier beschriebenen Prozess der Kantenkettenidentifizierung („Kantenverkettung") werden Kantenpixel in mehrere Klassen klassifiziert. In dem hier ausführlich mit Bezug auf 11 beschriebenen Beispiel handelt es sich bei den mehreren Klassen um zwei Klassen mit der Bezeichnung „starke Kantenpixel" und „schwache Kantenpixel". Kantenpixel sind in einem Bild die ungefähren Punkte, an denen die Farbwerte relativ große Verschiebungen erfahren, wie etwa die Verschiebung im Bild 1110 vom Pixel 1102(1) zu Pixel 1109(1).
  • Zwei Verfahren zum Identifizieren von Kantenpixeln jeder Klasse werden unten beschrieben: Das Gradientenverfahren und das Laplacesche Verfahren. Das Gradientenverfahren wird unter Bezugnahme auf die 12–13 veranschaulicht, während das Laplacesche Verfahren unter Bezugnahme auf 14 veranschaulicht wird.
  • Bei dem Gradientenverfahren werden Mittelpixel, die lokale Maxima von Gradienten von Farbwerten in der Gradientenrichtung sind, als Kantenpixel identifiziert. Ein lokales Maximum ist ein Punkt, an dem der Wert einer Funktion größer ist als der Funktionswert an umgebenden Punkten auf einer Seite und größer oder gleich dem Funktionswert an umgebenden Punkten auf der anderen Seite.
  • Man betrachte beispielsweise 12, die ein Array von Mittelpunkten auf einem Bild zeigt – die Bildpixel des Bilds sind nicht gezeigt. Es sind mehrere Mittelpunkte gezeigt, von denen einige mit „A" bis „I" bezeichnet sind. Bei dem Gradientenprozess, zur Bestimmung, ob Kantenpunkt A ein Kantenpixel ist oder nicht und falls ja, welche Klasse von Kantenpixel, werden die Gradienten der Mittelpixel A bis I betrachtet.
  • Beim Gradientenverfahren wählt ein Prozessor ein zweites Mittelpixel unter den Mittelpixeln B bis I aus, das am nächsten an einem Strahl liegt, der in der gleichen Richtung wie die Richtung des Gradienten des Mittelpixels A vom Mittelpixel A ausgeht. Eine Zuteilungsregel könnte verwendet werden, um ein nächstgelegenes Mittelpixel zu wählen, falls zwei Mittelpixel den gleichen Abstand vom Strahl aufweisen. Beim Beispiel von 12 ist das nächstgelegene Mittelpixel das Mittelpixel C. Es gibt ein drittes Mittelpixel, das sich auf gleicher Linie mit dem Mittelpixel A und dem nächstgelegenen Mittelpixel C befindet. Bei diesem Beispiel ist dieses dritte Mittelpixel Pixel H. Ein Gradient kann bei jedem Mittelpixel definiert werden, einschließlich der Mittelpixel A, C und H. 12 enthält Pfeile, um die Größe und Richtungen der Gradienten für diese drei Mittelpixel anzuzeigen.
  • Falls die Größe des Gradienten des Mittelpixels A größer ist als die Größe des Gradienten von einem von Mittelpixel C und Mittelpixel H und mindestens so groß ist wie die Gradientengröße des anderen von Mittelpixel C und Mittelpixel H, dann ist das Mittelpixel A als ein starkes Kantenpixel identifiziert.
  • Falls Mittelpixel A nicht als ein starkes Kantenpixel identifiziert wird, wird geprüft, um zu bestimmen, ob es die Kriterien für ein schwaches Kantenpixel erfüllt. 13 veranschaulicht einen Prozess zum Bestimmen, ob ein Mittelpixel ein schwaches Kantenpixel ist. Wie dort gezeigt wird, wird das Mittelpixel A hinsichtlich seines Status als schwaches Kantenpixel betrachtet. Dazu wird eine Linie betrachtet, die durch das Mittelpixel A und parallel zur Gradientenrichtung des Mittelpixels A verläuft (in 13 durch Linie 1302 gezeigt). Die benachbarten Mittelpixel B bis I definieren ein Quadrat, und die Linie 1302 schneidet dieses Quadrat an zwei Punkten, die in 13 als Punkte 1304(1) und 1304(2) gezeigt sind.
  • Die Gradienten am Mittelpixel A und jedem der Punkte 1304(1) und 1304(2) kann man durch Interpolation finden. Falls die Gradientengröße des Mittelpixels A größer ist als die Gradientengrößen von einem der Punkte 1304(1) oder 1304(2) und mindestens so groß ist wie der Gradient des anderen der Punkte 1304(1) oder 1304(2), dann wird das Mittelpixel A als ein schwaches Kantenpixel bezeichnet. Ansonsten ist das Mittelpixel A ein unbezeichnetes Mittelpixel.
  • Bei einem typischen Bild gibt es mehr schwache Kantenpixel als starke Kantenpixel, da schwache Kantenpixel allgemein allmählichen Änderungen der Farbe oder Intensität im Bild oder scharfen Kontrasten entsprechen, während starke Kantenpixel allgemein üblicherweise nur scharfen und unzweideutigen Kontrasten entsprechen.
  • Nunmehr unter Bezugnahme auf 14 wird das Laplacesche Verfahren nun unter Bezugnahme auf die Bestimmung des Kantenpixelstatus eines Mittelpixels 1405 beschrieben, das innerhalb des durch vier Bildpixel 1410, 1420, 1430, 1440 definierten Rechtecks lokalisiert ist. Alle vier Bildpixel sind mit einem Vorzeichen „+" oder „-" entsprechend dem Vorzeichen der Laplaceschen Funktion bei diesem Bildpixel bezeichnet. Die Laplacesche Funktion ist eine zweite Vektorableitung. Bei einem Bild sind Nulldurchgänge der auf die Pixelfarbwerte angewendeten Laplaceschen Funktion Kantenpixel. Die Nulldurchgänge der Laplaceschen Funktion treten dort auf, wo die zweite Ableitung der Laplaceschen Funktion null ist.
  • Falls das das Mittelpixel 1405 umgebende Rechteck einen Nulldurchgang enthält, dann ist das Mittelpixel 1405 ein Kantenpixel. Bei diskreten Pixelorten ist die Berechnung des Orts eines Nulldurchgangs entweder unmöglich oder rechnerisch schwierig. Die Vorzeichen der Laplaceschen Funktion bei den Bildpixeln geben jedoch die Wahrscheinlichkeit an, dass sich der Nulldurchgang im Rechteck befindet. Folglich identifiziert das Laplacesche Verfahren ein Mittelpixel als ein starkes Kantenpixel, falls die Vorzeichen der Laplaceschen Funktion bei jedem der vier umgebenden Bildpixel sowohl vertikal als auch horizontal verschieden sind (d. h., das rechte obere und das linke untere Pixel weisen das eine Vorzeichen und das rechte untere und das linke obere weisen das andere Vorzeichen auf). Falls die Vorzeichen derart sind, dass das eine Vorzeichen einmal und das andere Vorzeichen dreimal auftritt, oder falls es für jedes Vorzeichen zwei Vorkommen gibt, die nicht beide vertikal und horizontal verschieden sind, dann wird das Mittelpixel als ein schwaches Kantenpixel identifiziert. Falls die Vorzeichen für alle vier Bildpixel gleich sind, wird das Mittelpixel als kein Kantenpixel identifiziert.
  • Es wurden zwei Verfahren zum Identifizieren mehrerer Klassen von Kantenpixeln beschrieben, doch könnten stattdessen andere geeignete Verfahren verwendet werden. Ein Beispiel für ein Ergebnis beim Identifizieren von Klassen von Kantenpixeln ist in 15 dargestellt. Das Bild in 15 umfasst zwei Segmente, ein inneres Segment von schwarzen Pixeln und ein äußeres Segment von weißen Pixeln. Die Ergebnisse eines Kantenpixelerfassungsprozesses sind gezeigt, wobei identifizierte starke Kantenpixel und identifizierte schwache Kantenpixel gezeigt sind; in 15 sind Nicht-Kanten-Mittelpixel weggelassen. Allgemein sind starke Kantenpixel Mittelpixel, die einer großen und/oder eindeutigen Verschiebungen im Bild (z. B. scharfen Kontrasten) entsprechen, während schwache Kantenpixel feine Änderungen im Bild zum Ausdruck bringen, die auf tatsächliche Farbkanten zurückgeführt werden können, oder durch ein Zerfließen von Farbe oder Rauschen verursacht sein könnten.
  • Nachdem die Kantenpixel von verschiedenen Klassen identifiziert worden sind, können Kantenketten identifiziert werden. Eine Kantenkette wird als ein geordneter Satz von Kantenpixeln identifiziert. Eine Möglichkeit der Identifizierung von Kantenketten anhand von Kantenpixeln verschiedener Klassen besteht darin, mit einem willkürlichen starken Kantenpixel zu beginnen und es zu einer Kantenkette als ein Ende der Kantenkette hinzuzufügen. Dann werden die nächstgelegenen benachbarten Mittelpixel des hinzugefügten Kantenpixels im Hinblick auf ein weiteres starkes Kantenpixel betrachtet. Falls eines existiert, wird die Kantenkette zum Nachbar verlängert, indem das Kantenpixel zum wachsenden Ende der Kantenkette hinzugefügt wird. Falls mehr als ein starker Kantenpixelnachbar existiert, wird derjenige mit dem am besten entsprechenden Gradienten ausgewählt, der senkrecht zur Richtung des Gradienten des Kantenpixels verläuft. Als weiterer Test kann die Größe des Gradienten bei jedem Nachbar betrachtet werden. Falls unter den nächstgelegenen Nachbarn keine starken Kantenpixel existieren, wird die Kante zu einem Nachbar verlängert, der ein schwaches Kantenpixel ist, und falls mehr als eines existiert, wird die beste Wahl getroffen, wobei ein Test verwendet wird, der dem für die Wahl unter mehreren starken Kantenpixeln ähnelt. Falls keine starken oder schwachen Kantenpixel existieren, um die Kantenkette fortzusetzen, endet die Kette und der Prozess sucht ein weiteres willkürliches starkes Kantenpixel.
  • Der Prozess wird solange wiederholt, bis alle Kantenpixel verarbeitet oder betrachtet worden sind, was zu einem Satz von Kantenketten für ein Bild führt. Diese Kantenketten können dann in einem Segmentierungsprozess zum Segmentieren eines Bilds verwendet werden.
  • 5. Mehrskalige Kantenkettenerzeugung
  • Bei mehreren transformierten Repräsentationen eines Bilds können die gröberskaligen Bilder eine Führung zu den feinerskaligen Bildern liefern. Die gröberen Skalen können einen Anhalt liefern, wenn eine Zuordnung von Kantenpixeln über die Skalen hinweg vorliegt. Es kommt zu einer Zuordnung von Kantenpixeln, wenn ein Kantenpixel in einer Skala die gleiche oder eine ähnliche Gradientengröße und -richtung wie das gleiche Kantenpixel oder ein benachbartes Kantenpixel in einer anderen Skala aufweist. Die Gleichheit oder Ähnlichkeit von zwei Gradientenvektoren sind Tests, die Gewichtungsfaktoren zwischen Skalen berücksichtigen könnten.
  • Ein mehrskaliger Kantenkettenerzeugungsprozess gemäß der vorliegenden Erfindung verwendet zum Identifizieren von Kantenketten Kantenpixel von Bildern mehrerer Skalen. Feinerskalige Bilder weisen im Allgemeinen mehr Kanten als gröberskalige Bilder auf, so dass eine Verbindungsroutine, die in einem feinerskaligen Bild Kantenketten identifiziert, am Ende einer Kantenkette oftmals auf mehrere Kantenpixel trifft, zu denen die Kantenkette verlängert werden kann. Einige Verfahren zum Entscheiden, welches Kantenpixel ausgewählt werden soll, sind oben beschrieben. Wenn Bilder mit mehreren Skalen zur Verfügung stehen, kann der Auswahlprozess verfeinert werden.
  • Bei einem Ansatz gibt ein Prozess, wenn er die Wahl zwischen den benachbarten Kantenpixeln hat und Kantenketten für gröbere Skalen identifiziert worden sind, bei seiner Auswahl Kantenpixeln den Vorzug, die zu einer Verlängerung der Kantenkette entlang einer Kantenkette bei gröberen Skalen führen würden. Man betrachte beispielsweise 16, die eine Mittelpixelanordnung 1600 zeigt, wobei Kantenpixel als gefüllte Kreise und Nicht-Kantenpixel-Mittelpixel als offene Kreise gezeigt sind. Es sei angenommen, dass eine Kantenkette identifiziert worden ist und das Ende der Kantenkette sich an einem Kantenpixel 1605 befindet. Der Verbindungsprozess steht vor einer Entscheidung, die Kantenkette zum Kantenpixel 1610 oder zum Kantenpixel 1615 zu verlängern. Es sei weiterhin angenommen, dass die Mittelpixelanordnung 1600 das Ergebnis einer Kantenpixelidentifizierung bei einer feineren Skala als in einer vorausgegangenen Anordnung ist und dass bei der vorausgegangenen, gröberen Anordnung eine Kantenkette identifiziert wurde, die Kantenpixel enthält, die dem Kantenpixel 1605 und dem Kantenpixel 1610 zugeordnet sind, aber nicht dem Kantenpixel 1615. In diesem Fall würde der Verbindungsprozess dem Kantenpixel 1610 den Vorzug geben.
  • Bei einigen Ausführungsformen sind die Kantenketten bei gröberen Skalen determinativ und das Kantenpixel 1610 würde ohne weitere Nachfrage zur Kantenkette hinzugefügt werden. Bei anderen Ausführungsformen werden zusammen mit den gröberskaligen Übereinstimmungen andere Faktoren berücksichtigt. Bei noch weiteren Ausführungsformen könnte ein Mittelpixel selbst dann ausgewählt werden, wenn es kein Kantenpixel ist, falls nämlich eine Kantenkette bei einer gröberen Skala anzeigt, dass die Kantenkette über eine Lücke hinweg fortgesetzt werden sollte, wie in den 17(a)–(b) dargestellt. Wie dort gezeigt wird, ist das Mittelpixel 1705 bei der feineren Skala kein Kantenpixel, so dass die Kantenketten 1710, 1712 das Mittelpixel 1705 nicht erreichen würden. Bei der gröberen Skala ist das entsprechende Mittelpixel jedoch ein Kantenpixel und ist in einer Kantenkette enthalten. Folglich würde das Mittelpixel 1705 zu einer Kantenkette bei der feineren Skala hinzugefügt werden, was zu einer Fortsetzung führt, die die Kantenkette 1710 und die Kantenkette 1715 verbindet. Außerdem können Kantenpixel von anderen feinerskaligen Kantenketten der gleichen Kantenkette in einer gröberen Skala zugeordnet werden. In derartigen Fällen werden zwei feinerskalige Kantenketten derart miteinander verbunden, dass von der groben Kantenkettengeometrie soviel wie möglich dupliziert wird.
  • Wie in den 18(a)–(c) gezeigt, wo eine Kantenkette bei einer gröberen Skala länger ist als die zugeordnete Kette in den feineren Skalen, verlängert weiterhin der Verbindungsprozess die feinerskalige Kantenkette entsprechend. Dies wird als „Kantenkettenverlängerung" bezeichnet. Bei dem gezeigten Beispiel weisen zwei Ketten die gleichen Kantenpixel in der gleichen Ordnung auf, außer dass in der feineren Skala (18(b)) die Kette beim Mittelpixel 2302 aufhört, während die Kantenkette des gröberskaligen Bilds vom Mittelpixel 2202 um ein Mittelpixel zum Mittelpixel 2201 weiterläuft (18(a)). Der Prozess setzt dann die feinere Kantenkette fort, um eine Verbindung zum Mittelpixel 2301 herzustellen, wie in 18(c) gezeigt.
  • Wie in den 19(a)–(b) gezeigt, könnte die Verbindungsroutine, nachdem eine Kantenkette vollständig erzeugt worden ist, zu jedem Ende der Kante einige wenige weitere Mittelpixel hinzufügen. Der Effekt davon ist oftmals, dass kleine Lücken zwischen Kantenketten geschlossen werden und oftmals ein gegebenes Gebiet ganz eingeschlossen wird. Indem ein weiteres Pixel zu jeder in 19(a) gezeigten Kantenkette hinzugefügt wird, werden nicht umschlossene Gebiete vollständig begrenzt, wie in 19(b) gezeigt.
  • Bei einer Abwandlung des grundlegenden Prozesses zur Verwendung mehrskaliger Zuordnungen bei der Kantenkettenverbindung könnten mehrere Klassen von Kantenpixeln verwendet werden. Bei einer Ausführungsform werden Kantenketten auf der Basis der Klasse der Nachbarn und etwaiger Zuordnungen von gröberen Skalen von einem Kantenpixelende zu einem weiteren Mittelpixel verlängert. Ein Verbindungsprozess könnte beispielsweise zunächst nur starke Kantenpixel betrachten und eine entsprechende Kantenkettenverlängerung in einer gröberen Skala suchen und dann, falls keine starken Kantenpixel oder Zuordnungen gefunden werden, schwächere Kantenpixel betrachten. Bei einer anderen Abwandlung könnte der Verbindungsprozess zuerst starke Kantenpixel und dann schwache Kantenpixel betrachten und dann erst eine entsprechende Kantenkettenverlängerung in einer gröberen Skala suchen, die starke oder schwache Kantenpixel verwendet, falls bei der feineren Skala keine Kantenpixel gefunden werden.
  • 6. Kantenkettenfilterung
  • 20(a) ist ein Kantenkettenbild, das sich aus einem Prozess ergibt, der Kantenketten identifiziert. Bei diesem Kantenkettenbild gibt es viele kurze Kantenketten, die keinen Segment kanten entsprechen. Derartige falsche Kanten könnten auftreten, wenn eine Kantenkette in erster Linie als Ergebnis von Digitalisierungsfehlern oder feinen Änderungen bei der Schattierung im Bild erzeugt werden.
  • Die 20(b)–(e) sind die Ergebnisse nach der Anwendung einer Schwellwertroutine auf das Bild bei jeder Skala. Die Schwellwertroutine kann die Bilder der 20(b)–(e) unter Verwendung einer statischen gleitenden Skala oder einer dynamischen gleitenden Skala erzeugen. Beim statischen Verfahren werden Kantenketten entfernt, falls sie nicht sowohl eine Basislinienlängenanforderung als auch eine Minimalintensitätsanforderung erfüllen.
  • Der Test durch eine dynamische gleitende Skala ist inklusiver. Die Längen- und Intensitätsschwellwerte stehen in Beziehung. Das heißt, je länger eine Kette ist, umso niedriger ist der Intensitätsschwellwert, der erfüllt werden muss, damit die Kantenkette beibehalten wird. Analog wird der Längenschwellwert umso niedriger, je heller die Kantenkette ist.
  • Bei einer Umsetzung werden Kantenketten trotz Schwellwertbildung über Skalen hinweg beibehalten. Genauer gesagt sind Kantenketten über Skalen hinweg zugeordnet, und Kantenketten, die eine Schwellwertbildung bei gröberen Skalen überleben, werden bei feineren Skalen beibehalten, selbst wenn sie eine Schwellwertbildung bei der feineren Skala nicht überleben würden, wenn sie getrennt von den gröberen Skalen betrachtet würden. Bei einer weiteren Umsetzung können Ketten von vorausgegangenen Videoeinzelbildern verhindern, dass Kantenketten verworfen werden.
  • 21 zeigt die Situation, bei der die Quelle des eingegebenen Bilds eine Videosequenz ist. Man beachte, dass die Kantenketteninformationen bei jeder Skala über die Einzelbilder hinweg beibehalten werden. 21(a) zeigt ein vorausgegangenes Videoeinzelbild; 21(b) zeigt ein aktuelles Videoeinzelbild und 21(c) zeigt das aktuelle Einzelbild nach der Schwellwertbildung auf der Basis des vorausgegangenen Einzelbilds.
  • Das vorausgegangene Einzelbild wird nach der Schwellwertbildung gezeigt, und die Kantenkette 40011 wurde beibehalten. Die Kantenketten des aktuellen Einzelbilds enthalten die Kantenketten 40020, 40021 und 40022. Die Kantenketten 40011 und 40021 sind über Einzelbilder hinweg zugeordnet, da die Kantenketten 40011 und 40021 Pixel mit identischen Orten und ähnlichen Gradienten gemeinsam haben. Bei dem aktuellen Einzelbild besteht die Kantenkette 40020 die oben beschriebenen Schwellwertbildungstests, weshalb sie beibehalten wird. Jedoch besteht weder die Kantenkette 40021 noch die Kantenkette 40022 die Schwellwertbildungstests, weshalb sie Kandidaten für das Entfernen sind. Um über Einzelbilder hinweg eine konsistente Segmentierung sicherzustellen, wird die Kantenkette 40021 beibehalten, da sie der Kantenkette 40011 zugeordnet ist, die im vorausgegangenen Einzelbild beibehalten wurde. Umgekehrt wird die Kantenkette 40022 nicht beibehalten, da sie bei den Schwellwerttests durchgefallen ist und keiner im vorausgegangenen Einzelbild beibehaltenen Kantenkette zugeordnet ist.
  • 7. Kombinationen
  • Oben werden sechs Verfahren und entsprechende Vorrichtungen zum Verbessern der Segmentierung beschrieben. Eines oder mehrere dieser Verfahren und Vorrichtungen können kombiniert werden, um den Segmentierungsprozess weiter zu verbessern. Beispielsweise kann das progressive Füllen über mehrere Skalen hinweg verwendet werden, wobei der Füllprozess bei der gröbsten Skala ausgeführt wird, danach werden die Segmente bei den gröberen Skalen zum Führen der Segmentierung bei den feineren Skalen verwendet.
  • Eine weitere Kombination ist die Kombination aus Verbundkantenerfassung mit mehreren Klassen von Kantenerfassung. Bei dieser Kombination würde ein Kantenerfassungsprozess separat auf jeder Farbebene arbeiten, um starke und schwache Kantenpixel zu identifizieren und dann durch Kombinieren von Kantenpixeln von verschiedenen Farbebenen zu filtern.
  • Bei einer weiteren Abwandlung werden die Farbinformationen in einem späteren Stadium verwendet, nachdem die starken und schwachen Kantenpixel identifiziert worden sind, aber vor der Identifizierung der Kantenketten. Eine Kantenpixelidentifizierungsroutine erzeugt bei jeder Skala zwei Verbundkantenpixelbilder. Das erste Bild besteht aus allen starken Kantenpixeln aus allen Farbebenen, und das zweite Bild besteht aus allen schwachen Kantenpixeln aus einer weiteren Farbebene. Manchmal wird das gleiche Kantenpixel in mehreren Farbkomponenten bezeichnet. Bei dieser Situation sind die Kantenpixel im Verbundbild nur einmal enthalten. Kantenpixel in mehreren Farbkomponenten werden als identisch bezeichnet, falls eine der zwei Bedingungen erfüllt ist: 1) sie teilen sich einen identischen Ort in verschiedenen Farbkomponenten oder 2) sie teilen sich die gleichen Anordnungsorte in verschiedenen Farbkomponenten und weisen ähnliche Gradienten auf.
  • Noch eine weitere Kombination ist ein Verfahren, bei dem die Kantenketten in jeder Komponente gefunden und dann die Kantenketten zusammengesetzt werden. Insbesondere werden die in jeder Farbkomponente gefundenen lokalen Extremwerte anfänglich von den in den anderen Farbkomponenten des Bilds gefundenen Extremwerten getrennt gehalten. Der Verbindungsprozess erzeugt Kantenketten, indem er Kantenpixel in jeder Farbkomponente getrennt verbindet, dann die Kantenketten zu. einem Verbundbild kombiniert. Da es möglich und sogar wahrscheinlich ist, dass einige der durch die Gradienten einer Farbkomponente bestimmten Kantenketten ähnlich sind zu durch die Gradienten der anderen Farbkomponenten bestimmten Kantenketten, vereinigt der Verbindungsprozess ähnliche Ketten zu einer Kette, was möglicherweise längere Ketten mit weniger Lücken bildet. Kantenketten in der gleichen Skala sind ähnlich, falls sie eine oder mehrere der folgenden Kriterien erfüllen: 1) in jeder Hinsicht identisch; 2) teilen sich den größten Teil ihrer Pixel; 3) identisch hinsichtlich Geometrie (bis auf eine kleine Schwankung), aber um sehr wenige Pixel versetzt; 4) sind beide der gleichen gröberskaligen Kantenkette in einer anderen Skala zugeordnet.
  • Bei noch einer weiteren Kombination werden alle obigen Prozesse kombiniert, um einen verbesserten Segmentierungsprozess zu bilden.
  • Die obige Beschreibung ist veranschaulichend und nicht einschränkend. Für den Fachmann ergeben sich bei Betrachtung dieser Offenbarung viele Abwandlungen der Erfindung. Der Schutzbereich der Erfindung sollte deshalb nicht unter Bezugnahme auf die obige Beschreibung, sondern stattdessen unter Bezugnahme auf die beiligenden Ansprüche bestimmt werden.

Claims (4)

  1. Verfahren zur Erfassung von Kanten in einem digitalen Bild, wobei das digitale Bild eine Anordnung von Pixeln umfasst, von denen jeder einen Pixelort und einen Pixelfarbwert hat, und wobei eine Kante einen Übergang in der Anordnung repräsentiert, zwischen den Pixeln, welche ein Segment des digitalen Bildes repräsentieren und Pixeln, welche ein anderes Segment des digitalen Bildes repräsentieren, wobei das Verfahren die folgenden Schritte umfasst: Identifizierung von Kantenpunkten des digitalen Bildes, wobei ein Kantenpunkt ein Punkt in der Anordnung von Pixeln zwischen Punktorten ist, welche Pixelorte sind; Identifizierung einer Vielzahl von Klassen von Kantenpunkten, einschließlich einer sichereren Klasse von Kantenpunkten und einer weniger sicheren Klasse von Kantenpunkten, wobei ein Kantenpunkt in einer sichereren Klasse eher für eine Kante eines Segments des digitalen Bildes repräsentativ ist, als ein Kantenpunkt in der weniger sicheren Klasse; und Identifizierung von Kanten durch das Verbinden benachbarter Kantenpunkte aus der sichereren Klasse zur Ausbildung von Kantenpunktketten; wenn Lücken zwischen Kantenpunktketten vorhanden sind, Identifizieren von Kantenpunkten in der weniger sicheren Klasse, um Lücken in den Kantenpunktkette zu überspannen; und Verwenden der Kantenpunktketten als Repräsentationen der Kanten im digitalen Bild.
  2. Verfahren nach Anspruch 1, bei dem die Pixelanordnung eine rechteckige Anordnung ist und das ferner den Schritt des Lokalisierens jedes Kantenpunktes im Zentrum eines Rechteckes umfasst, das durch vier gegenseitig benachbarte Pixel in der Pixelanordnung definiert wird.
  3. Verfahren nach Anspruch 1, bei dem die Vielzahl der Klassen mehr als zwei Klassen umfasst und jede Klasse eine relative Sicherheit in Zuordnung mit den Kantenpunkten in der Klasse hat, wobei die relativen Sicherheiten jeder Klasse geordnet werden können und sich von den relativen Sicherheiten anderer Klassen unterscheiden, wobei das Verfahren einen Schritt der Identifizierung von Kantenpunkten in einer Klasse zur Verwendung bei der Verbindung von Kantenketten aufweist, bevor Kantenpunkte in weniger sicheren Klassen verwendet werden, aber nachdem Kantenpunkte in sichereren Klassen verwendet werden.
  4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem jeder Pixelfarbwert als ein Vektor in einem Farbraum wiedergegeben werden kann; und bei dem die Klasse eines Kantenpunktes eine Funktion der Komponentenwerte der Pixelfarbwertvektoren für Pixel nahe dem Kantenpunkt ist.
DE60003032T 1999-06-11 2000-06-09 Verfahren zur bildsegmentation Expired - Lifetime DE60003032T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13913499P 1999-06-11 1999-06-11
US139134P 1999-06-11
PCT/US2000/015942 WO2000077735A1 (en) 1999-06-11 2000-06-09 Method and apparatus for digital image segmentation

Publications (2)

Publication Number Publication Date
DE60003032D1 DE60003032D1 (de) 2003-07-03
DE60003032T2 true DE60003032T2 (de) 2004-04-01

Family

ID=22485268

Family Applications (2)

Application Number Title Priority Date Filing Date
DE60003032T Expired - Lifetime DE60003032T2 (de) 1999-06-11 2000-06-09 Verfahren zur bildsegmentation
DE60045162T Expired - Lifetime DE60045162D1 (de) 1999-06-11 2000-06-09 Verfahren und Vorrichtung zur Segmentierung numerischer Bilder

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE60045162T Expired - Lifetime DE60045162D1 (de) 1999-06-11 2000-06-09 Verfahren und Vorrichtung zur Segmentierung numerischer Bilder

Country Status (10)

Country Link
EP (4) EP1190387B1 (de)
JP (1) JP2003502744A (de)
KR (1) KR100698334B1 (de)
CN (1) CN1260680C (de)
AT (2) ATE241831T1 (de)
AU (1) AU5603300A (de)
DE (2) DE60003032T2 (de)
IL (1) IL146978A (de)
TW (1) TW516008B (de)
WO (1) WO2000077735A1 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985527B2 (en) 2001-03-07 2006-01-10 Pts Corporation Local constraints for motion matching
AU2002235252A1 (en) 2000-12-19 2002-07-01 Pulsent Corporation Deblurring and re-blurring image segments
US7792390B2 (en) 2000-12-19 2010-09-07 Altera Corporation Adaptive transforms
AU2002241713A1 (en) 2000-12-20 2002-07-01 Pulsent Corporation Efficiently adaptive double pyramidal coding
WO2002051158A2 (en) 2000-12-20 2002-06-27 Pulsent Corporation Method of filling exposed areas in digital images
JP4351411B2 (ja) * 2001-02-01 2009-10-28 エイ・ティ・アンド・ティ・コーポレーション 画素を分類するための方法およびシステム
US6901169B2 (en) 2001-02-01 2005-05-31 At & T Corp. Method and system for classifying image elements
US6947605B2 (en) 2001-02-28 2005-09-20 Pts Corporation Dynamic chain-based thresholding using local characteristics
AU2002255684A1 (en) 2001-03-07 2002-09-19 Pulsent Corporation Predictive edge extension into uncovered regions
FR2825817B1 (fr) * 2001-06-07 2003-09-19 Commissariat Energie Atomique Procede de traitement d'images pour l'extraction automatique d'elements semantiques
US6999620B1 (en) 2001-12-10 2006-02-14 Hewlett-Packard Development Company, L.P. Segmenting video input using high-level feedback
US6690823B2 (en) 2002-01-31 2004-02-10 Pts Corporation Method and apparatus for partitioning an arbitrarily-shaped area
US6985623B2 (en) 2002-06-10 2006-01-10 Pts Corporation Scene change detection by segmentation analysis
US6909749B2 (en) 2002-07-15 2005-06-21 Pts Corporation Hierarchical segment-based motion vector encoding and decoding
US7295711B1 (en) 2002-10-23 2007-11-13 Altera Corporation Method and apparatus for merging related image segments
US7426306B1 (en) 2002-10-24 2008-09-16 Altera Corporation Efficient use of keyframes in video compression
US7639741B1 (en) 2002-12-06 2009-12-29 Altera Corporation Temporal filtering using object motion estimation
US7038697B2 (en) 2003-02-25 2006-05-02 Microsoft Corporation Color gradient paths
US7522762B2 (en) * 2003-04-16 2009-04-21 Inverness Medical-Biostar, Inc. Detection, resolution, and identification of arrayed elements
EP2183703A1 (de) 2007-08-01 2010-05-12 Yeda Research And Development Company Limited Multiskalare kantenerkennung und faserverstärkung durch unterschiedlich ausgerichtete mittel
RU2382407C1 (ru) * 2008-11-21 2010-02-20 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ и система для обнаружения лица
TWI401614B (zh) * 2010-02-05 2013-07-11 Pixart Imaging Inc 資料轉換方法及資料轉換裝置
JP2013196308A (ja) * 2012-03-19 2013-09-30 Ricoh Co Ltd 画像処理装置、画像処理方法、プログラムおよび記録媒体
CN104021391B (zh) * 2013-03-01 2019-03-26 北京三星通信技术研究有限公司 处理超声图像的方法和装置以及乳腺癌诊断设备
CN103489190B (zh) * 2013-09-26 2016-05-11 中国科学院深圳先进技术研究院 图像特征曲线提取方法及系统
CN104915927B (zh) * 2014-03-11 2018-08-07 株式会社理光 视差图像优化方法及装置
CN105469446A (zh) 2014-09-05 2016-04-06 富泰华工业(深圳)有限公司 点云网格简化系统及方法
CN105608459B (zh) 2014-10-29 2018-09-14 阿里巴巴集团控股有限公司 商品图片的分割方法及其装置
CN112884794B (zh) * 2019-11-29 2022-12-02 北京航空航天大学 生成图像方法、装置、电子设备和计算机可读介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4685071A (en) * 1985-03-18 1987-08-04 Eastman Kodak Company Method for determining the color of a scene illuminant from a color image
JPH06203157A (ja) * 1992-10-14 1994-07-22 Fujitsu Ltd カラー画像処理方法および装置
US5365596A (en) * 1992-12-17 1994-11-15 Philip Morris Incorporated Methods and apparatus for automatic image inspection of continuously moving objects
JPH10191020A (ja) * 1996-12-20 1998-07-21 Canon Inc 被写体画像切出し方法及び装置

Also Published As

Publication number Publication date
AU5603300A (en) 2001-01-02
ATE486330T1 (de) 2010-11-15
JP2003502744A (ja) 2003-01-21
EP1321898B1 (de) 2017-02-22
CN1260680C (zh) 2006-06-21
KR20020021795A (ko) 2002-03-22
EP1321898A9 (de) 2004-12-22
DE60045162D1 (de) 2010-12-09
DE60003032D1 (de) 2003-07-03
TW516008B (en) 2003-01-01
ATE241831T1 (de) 2003-06-15
EP1321898A3 (de) 2004-08-04
IL146978A (en) 2006-12-31
EP1329848A2 (de) 2003-07-23
EP1320070A9 (de) 2004-12-22
EP1329848A3 (de) 2004-08-04
EP1190387B1 (de) 2003-05-28
EP1320070A3 (de) 2004-08-04
KR100698334B1 (ko) 2007-03-23
WO2000077735A1 (en) 2000-12-21
EP1321898A2 (de) 2003-06-25
EP1190387A1 (de) 2002-03-27
EP1329848A9 (de) 2004-12-22
EP1320070B1 (de) 2010-10-27
CN1370309A (zh) 2002-09-18
EP1320070A2 (de) 2003-06-18

Similar Documents

Publication Publication Date Title
DE60003032T2 (de) Verfahren zur bildsegmentation
DE69631009T2 (de) Bildverarbeitung mit angrenzenden Beziehungen zwischen Bildelementen
DE69333694T2 (de) Verfahren und Anordnung zur Bildverarbeitung
DE60118240T2 (de) Methode zur bildanalyse
DE602004005358T2 (de) Objektdetektion in bildern
DE3722444C2 (de) Verfahren und Vorrichtung zum Erzeugen von Entwurfsmusterdaten
DE602005005230T2 (de) Vorrichtung und Verfahren zum Zusammenführen von Bildbereichen mit ähnlichen Eigenschaften
DE60109278T2 (de) Verfahren und Gerät zur Lokalisierung von Schriftzeichen in Bildern aus einer Digitalkamera
EP1316057B1 (de) Auswerten von kantenrichtungsinformation
DE69910631T2 (de) Bildanpassung um die Empfindlichkeit auf Falschregistrierung zu vermindern
DE19634768A1 (de) Vorrichtung und Verfahren zur Erfassung eines Gesichts in einem Videobild
DE102013210375A1 (de) Auffinden von text in natürlichen szenen
EP1238364A2 (de) Verfahren zur verarbeitung von datenstrukturen
DE112012004809B4 (de) Kantenverfolgung mit Hysterese-Schwellenwertbildung
EP0474304B1 (de) Schaltungsanordnung zum Erkennen eines menschlichen Gesichts
EP2400458B1 (de) Verfahren und Vorrichtung zur Segmentierung von biologischen Zellen in einer Aufnahme
EP3029628A1 (de) Verfahren zum Erzeugen eines Trainingsbildes
DE19531392C1 (de) Verfahren zur Erzeugung einer Graphrepräsentation von Bildvorlagen
DE60320118T2 (de) Verfahren zur zusammenlegung von bildern einer videosequenz
DE10017551C2 (de) Verfahren zur zyklischen, interaktiven Bildanalyse sowie Computersystem und Computerprogramm zur Ausführung des Verfahrens
DE10303724B4 (de) Dynamisches Zweipegel-Schwellwertverfahren digitaler Bilder
DE112012003377T5 (de) Bildsegmentierungsverfahren
EP1282070B1 (de) Hierarchische Bildmodellanpassung
DE69721913T2 (de) Filterverfahren und dazugehöriges filtersystem
DE60102928T2 (de) Verfahren und vorrichtung zur bildverarbeitung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PTS CORP. (N.D.GES.D. STAATES DELAWARE), SAN JOSE,

8327 Change in the person/name/address of the patent owner

Owner name: ALTERA CORP. ( A DELAWARE CORPORATION), SAN JOSE,