-
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.