DE3853885T2 - Vektorisationsverfahren. - Google Patents

Vektorisationsverfahren.

Info

Publication number
DE3853885T2
DE3853885T2 DE3853885T DE3853885T DE3853885T2 DE 3853885 T2 DE3853885 T2 DE 3853885T2 DE 3853885 T DE3853885 T DE 3853885T DE 3853885 T DE3853885 T DE 3853885T DE 3853885 T2 DE3853885 T2 DE 3853885T2
Authority
DE
Germany
Prior art keywords
chain code
train
codes
extracting
pixel
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
DE3853885T
Other languages
English (en)
Other versions
DE3853885D1 (de
Inventor
Ryohei Kumagai
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.)
Yozan Inc
Original Assignee
Ezel Inc
Sharp 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 Ezel Inc, Sharp Corp filed Critical Ezel Inc
Application granted granted Critical
Publication of DE3853885D1 publication Critical patent/DE3853885D1/de
Publication of DE3853885T2 publication Critical patent/DE3853885T2/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
    • G06T9/00Image coding
    • G06T9/20Contour coding, e.g. using detection of edges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/469Contour-based spatial representations, e.g. vector-coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Vektorisierungsverfahren gemäß dem Oberbegriff des Patentanspruchs 1.
  • Es gibt zwei Datentypen, die sich zum Speichern einer Konfiguration eignen: Rastertyp-Daten und Vektortyp-Daten. Die Vektortyp-Daten insbesondere die peripheren Vektordaten sind vorteilhaft, da sie einen geringeren Umfang einnehmen als die Rasterdaten und da mit ihnen in einfacher Weise eine Konfiguration rotiert oder in ihrer Größe geändert werden kann.
  • Vektordaten werden durch einen Zug von Randpixeln einer Konfiguration definiert. Somit hängt die Qualität der wiedergegebenen Konfiguration von der Auswahl der Randpixel ab.
  • Im Falle einer Zeichen-Vektorisierung, wie beispielsweise der Vektorisierung von chinesischen Buchstaben, ist die Wiedergabequalität sehr bedeutend, da der Wert der entsprechenden Produkte überwiegend von der Wiedergabequalität abhängt.
  • Ein herkömmliches Vektorisierungsverfahren sieht Winkelberechnungen zwischen Paaren von Randpixeln einer Konfiguration vor. Da die Winkelberechnung eine Berechnung mit Gleitkomma darstellt, vergeht viel Zeit, bis die Randpixel ausgewählt sind.
  • Weiterhin ist es schwierig, Eckpunkte bei rechtwinkeligen konkaven Stellen zu finden und zu definieren.
  • In ELECTRONICS LETTERS, vol. 23, no. 24, 19. November 1987, Seiten 1326-1327, Stevenage, Herts, GB; D.T. NGUYEN et al: "Efficient technique for scale-space imaging of planar objects" wird vorgeschlagen, die Kontur eines planaren Objekts durch einen Zug aus Freeman's Chain Codes zu beschreiben. Die Druckschrift beschreibt, wie die Lage von Beugungspunkten in der Kontur direkt aus den Chain Codes erkannt werden kann.
  • Aus EP-A-0 090 395 ist ein Verfahren und eine Vorrichtung zum automatischen Verarbeiten von visuellen Bildern bekannt, um eine intelligente Maschinenanalyse von dem Bildinhalt vorzunehmen. Eine spezielle verteilte logische Systemarchitektur vereinfacht die schnelle Echtzeit-Bildanalyse und die Erzeugung von Steuersignalen für eine Hochgeschwindigkeitsproduktionsstraßenumgebung. Es ist eine Entscheidungslogik vorgesehen, um in einem einzelnen Mikrobefehlszyklus zu bestimmen, ob ein erkannter Randpunkt des Bildes mit einer anderen bereits verbundenen Kette derartiger Eckpunkte verbunden werden soll, um einen Teil einer geschlossenen Eckenkontur des zu überprüfenden Bildes zu definieren.
  • Wie in Figur 1 gezeigt ist, besteht ein Freeman's chain code aus einer Zahl zwischen 0 und 7. Null bedeutet rechts, 1 nach oben rechts, 2 oben, 3 oben links, 4 links, 5 unten links, 6 unten, und 7 unten rechts. Jeder Chain Code zeigt die Richtung von einem Randpixel zum nächsten Randpixel an, wenn Randpixel in einer Umdrehungsrichtung nacheinander abgetastet werden.
  • Durch Auswählen von Vektorpunkten entsprechend einem Zug von Chain Codes oder einem anderen Code ist es möglich, hochqualitative Vektordaten in wesentlich kürzerer Zeit als herkömmlich zu erzeugen.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein Vektorisierungsverfahren anzugeben, welches sich zum Erzeugen von Vektordaten in sehr kurzer Zeit eignet, wobei von diesen Daten eine Hochqualitätskonfiguration wiedergewonnen werden kann. Diese Aufgabe wird durch den Gegenstand des Patentanspruchs 1 gelöst.
  • Im folgenden werden bevorzugte Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. Dabei zeigen die Zeichnungen im einzelnen:
  • Figur 1 einen Freeman's Chain Code;
  • Figur 2 ein Chain Code-Diagramm einer Konfiguration, wobei Chain Codes den Randpixeln in Gegenuhrzeigersinn zugeordnet sind;
  • Figur 3 ein Chain Code-Diagramm, bei dem einem Pixel zwei unterschiedliche Chain Codes zugewiesen werden;
  • Figur 4 einen konvexen Teil einer Konfiguration;
  • Figur 5 ein Chain Code-Diagramm für eine rechtwinkelige konkave Stelle;
  • Figur 6 ein Chain Code-Diagramm für eine rechtwinkelige konvexe Stelle;
  • Figuren 7a und b ein Chain Code-Digramm von zwei Schritten bei einer ersten Ausführungsform hinsichtlich einer rechtwinkeligen konkaven Stelle;
  • Figuren 8a und b ein Chain Code-Diagramm, das durch die erste Ausführungsform im Hinblick auf eine andere rechtwinkelige konkave Stelle erzeugt wurde;
  • Figuren 9a und b ein Chain Code-Diagramm, welches durch eine erste Ausführungsform bezüglich einer anderen rechtwinkeligen konkaven Stelle erzeugt wurde;
  • Figuren 10a und b ein Chain Code Diagramm, welches durch die erste Ausführungsform bezüglich einer weiteren rechtwinkeligen konkaven Stelle erzeugt wurde;
  • Figur 11 eine geneigte rechtwinkelige konkave Stelle;
  • Figuren 12a und b ein Chain Code-Diagramm, welches durch die erste Ausführungsform bezüglich innerer Randpixel erzeugt wurde;
  • Figuren 13a und b ein Chain Code-Digaramm von zwei Schrittten der zweiten Ausführungsform der vorliegenden Erfindung bezüglich einer rechtwinkeligen konkaven Stelle;
  • Figuren 14a und b ein Chain Code-Diagramm, welches durch eine zweite Ausführungsform im bezug auf eine andere rechtwinkelige konkave Stelle erzeugt wurde;
  • Figuren 15a und b zeigen ein Chain Code-Diagramm, welches durch die zweite Ausführungsform bezüglich einer anderen rechtwinkeligen konkaven Stelle erzeugt wurde;
  • Figuren 16a und b ein Chain Code-Diagramm, welches durch die zweite Ausführungsform bezüglich einer anderen rechtwinkeligen konkaven Stelle erzeugt wurde,
  • Figuren 17a und b ein Chain Code-Diagramm, welches durch die zweite Ausführungsform bezüglich innerer Randpixel erzeugt wurde,
  • Figur 18 zeigt einen gestuften Rand mit kleinen Schritten;
  • Figur 19 zeigt einen Startpunkt eines Chain Codes auf dem äußeren Rand;
  • Figur 20 zeigt einen Startpunkt des Chain Codes auf dem inneren Rand;
  • Figur 21 zeigt einen Rand mit einem Chain Code-Zug, bei dem die Chain Codes abwechselnd gewechselt werden;
  • Figur 22 zeigt einen Randpixel, der von einem Pixel gefolgt wird, bei dem der Chain Code um 1 kleiner ist als der vorausgehende;
  • Figur 23 zeigt einen linearen Rand;
  • Figur 24 zeigt einen Rand, der aus zwei fortlaufenden linearen Rändern besteht;
  • Figur 25 zeigt eine konkave Stelle von einem Pixel;
  • Figur 26 zeigt einen kurzen linearen Rand, der einem relativ langen linearen Rand folgt;
  • Figur 27 zeigt einen relativ langen linearen Rand, der einem relativ langen linearen Rand folgt; und
  • Figuren 28 bis 35 zeigen gestufte Ränder.
  • In Figur 2 ist eine Konfiguration F gezeigt. Um dieser Konfiguration einen Chain Code zuzuweisen, wird zunächst ein Startpunkt ermittelt. Wenn das Bild entlang der gewöhnlichen Abtastrichtung abgetastet wird, wird zunächst ein oberer linker Pixel gefunden.
  • Der Chain Code wird gegenuhrzeigersinnmäßig vom Startpunkt entlang des Randes erzeugt. Jeder Chain Code zeigt die Richtung zum folgenden Pixel von dem momentanen Pixel an. Der momentane Pixel ist der Pixel, der momentan erzeugt wird.
  • Figur 2 ist ein Chain Code-Diagramm, welches einen Chain Code für jeden Randpixel anzeigt, wenn der Rand in Gegenuhrzeigersinn abgetastet wird. In Figur 2 ist der letzte Pixel b neben dem Startpixel a und zeigt mit seinem Chain Code zum Startpunkt.
  • Auf der anderen Seite ist es manchmal nicht notwendig, dem letzten Pixel einen Chain Code zu geben.
  • In Figur 3 ist eine Linie 1 gezeigt, welche eine Weite von 1 Pixel aufweist. Um den Pixeln a, b und c auf der Linie 1 einen Chain Code zuzuweisen, wird die Linie zum freien Ende hin abgetastet, und dann zurück von dem freien Ende. Deshalb werden einem Pixel zwei unterschiedliche Chain Codes zugeordnet.
  • Der Chain-Code Zug in Figur 2 ist 66000766002222244444, wobei eine vertikale nach unten gerichtete Linie durch 66, eine horizontale, nach rechts verlaufende Linie durch 00, eine vertikale, nach oben verlaufende Linie durch 22 und eine horizontale nach links laufende Linie durch 44 definiert wird.
  • Wenn die Konfiguration der Figur 2 vektorisiert wird, sollten der Startpixel a, der Pixel c&sub1; an der rechtwinkeligen konvexen Ecke neben dem Pixel a, der Pixel c&sub2; an der rechtwinkeligen konkaven Ecke rechts vom Pixel c&sub1;, der Pixel c&sub3; an der rechtwinkeligen konvexen Ecke neben dem Pixel c&sub2;, der Pixel c&sub4; an der rechtwinkeligen konvexen Ecke rechts von dem Pixel c&sub3; und der Pixel c&sub5; an der rechtwinkeligen konvexen Ecke über dem Pixel c&sub4; als Vektorpunkte von den Randpixeln extrahiert werden. Der Pixel an der rechtwinkeligen konvexen Ecke weist zumindest zwei Pixel auf, die einen Chain Code aufweisen, der um zwei kleiner ist als der Chain Code des früheren Pixels. Bei dieser Berechnung wird 0 als Addition zwischen 6 und 2 angenommen. Es dürfte klar sein, daß der Chain Code die Charakteristik des Rands der Konfiguration wiedergibt. Eine rechtwinkelige konvexe Ecke besteht aus zwei geneigten Linien, wie dies in Figur 4 erkannt werden kann. Ein Eckpunkt b ist dadurch definiert, daß er zumindest zwei Pixeln mit dem gleichen Code folgt, die einen um zwei kleineren Chain Code aufweisen.
  • Der Eckpunkt c&sub2; an der rechtwinkeligen konkaven Ecke sollte als Vektorpunkt extrahiert werden, wobei die Ecke keinen Chain Code aufweist, da hier kein Randpixel vorliegt. Dies stellt eine Schwierigkeit bei der Vektorisierung dar. Die Lösung dieser Schwierigkeit wird durch die vorliegende Erfindung bereitgestellt und wird im folgenden beschrieben.
  • Der Chain Code wird üblicherweise durch Nachfolgen des Randes in Gegenuhrzeigersinnrichtung im Bezug auf den äußeren Rand erzeugt. Es ist jedoch auch möglich, dem Rand in Uhrzeigersinnrichtung zu folgen. Im Bezug auf den inneren Rand, sollte die Nachführrichtung die entgegengesetzte, zur Nachführrichtung beim äußeren Rand sein, um den Rand entweder als äußeren oder Innenrand zu definieren.
  • Im folgenden wird eine Beschreibung im Gegenuhrzeigersinn für den äußeren Rand und in Uhrzeigersinnrichtung für den inneren Rand gegeben.
  • Wenn ein Pixel einen Chain Code k aufweist, so ist der Chain Code k' für den folgenden Pixel wie folgt zu ermitteln:
  • a) k ist eine gerade Zahl k'≠ (k-2) und (k-3)
  • b) k ist eine ungerade Zahl k'≠ (k-3)
  • wobei k' unter Modulo 7 berechnet wird, so daß gilt 0-2=6.
  • In Figur 1 wird k' nie zu 1 und nie zu 2, wenn k=4 ist. K' wird nie 2, wenn k=5 ist. Daher begrenzt der Chain Code eines Pixels den Chain Code des nachfolgenden Pixels.
  • Wie oben erwähnt, ist der Pixel des Chain Codes ein Pixel auf der rechtwinkeligen konvexen Ecke, wenn k'= (k+2) ist. Selbstverständlich ist es wählbar, ob alle Punkte auf der rechtwinkeligen konvexen Ecke als Vektorpunkte extrahiert werden oder nicht. Beispielsweise wird nur ein Eckpunkt extrahiert, wenn die Ecke aus zwei Linien besteht, von denen beide länger als eine vorgegebene Länge sind, beispielsweise länger als drei Pixel. In diesem Fall ist die Ecke abc und def (Figur 5) nicht als rechtwinklige Ecke definiert, so daß die Pixel a, c, d und f nicht als Vektorpunkte extrahiert werden, sondern nur die Pixel b und e extrahiert werden. Die Konfiguration wird dann zu einer Konfiguration mit relativ stumpfen oder weichen Rändern, wie dies durch die Linie 1 der Figur 5 gezeigt ist.
  • Wenn alle Pixel extrahiert werden sollen, werden die Pixel a bis f Vektorpunkte (Figur 5).
  • Durch die obige Verarbeitung wurde der Eckpunkt an der rechtwinkeligen konkaven Ecke noch nicht verarbeitet.
  • Im folgenden wird ein Verfahren zum Verarbeiten der rechtwinkeligen konkaven Ecke beschrieben.
  • Die rechtwinkelige konkave Ecke besteht jeweils aus einer vertikalen Linie und einer horizontalen Linie wie dies in den Figuren 7a, 8a, 9a und 10a gezeigt ist.
  • Die Figur 7a zeigt eine Ecke, die nach unten links geöffnet ist. Der Chain Code-Zug weist 007 auf der horizontalen Linie zum Eckpunkt a hin und ändert dann nach 66.. auf der vertikalen Linie. In dem Chain Code-Zug definieren die letzten zwei Chain Codes der horizontalen Linie zusammen mit dem ersten Chain Code der vertikalen Linie die rechtwinkelige Ecke. In Figur 7a sind die Chain Codes, die die rechtwinkelige Ecke definieren 076. Dies bedeutet, daß es eine nach links unten geöffnete rechtwinkelige Ecke gibt, wenn der Chain Code 076 in dem Chain Code-Zug enthalten ist. Figur 7b zeigt ein Chain Code-Diagramm, bei dem der Chain Code-Zug der Figur 7a gemäß der vorliegenden Erfindung geändert ist. In Figur 7b wird der letzte Chain Code der horizontalen Linie von 7 nach 0 geändert und ein neuer Chain Code 6 hinter den geänderten Chain Code angehängt. Daher wird der Chain Code-Zug 076 zum Chain Code-Zug 0066. Mit dieser Modifikation zeigt der letzte Chain Code c der horizontalen Linie den Eckpunkt a an und der Chain Code am Eckpunkt zeigt den ersten Pixel b der vertikalen Linie an.
  • Figur 8a zeigt eine nach rechts unten geöffnete rechtwinkelige Ecke. Der Chain Code-Zug auf der vertikalen Linie weist "...221" zum Eckpunkt a hin auf. Nach dem Eckpunkt a wird der Chain Code mit 00... fortgesetzt. In diesem Fall wird die rechtwinkelige Ecke durch die letzten zwei Chain Codes b und c der vertikalen Linie sowie den ersten Chain Code d auf der horizontalen Linie festgelegt. Der Chain Code-Zug ist somit 210. Dies bedeutet, daß es eine nach unten rechts geöffnete rechtwinkelige Ecke gibt, wenn der Chain Code-Zug den Chain Code 210 enthält.
  • Figur 8a zeigt ein Chain Code-Diagramm, bei dem Chain Code-Zug der Figur 8a gemäß der vorliegenden Erfindung geändert wurde. In Figur 8b wurde der letzte Chain Code keine auf der horizontalen Linie von 1 nach 2 geändert und ein neuer Chain Code 0 nach dem geänderten Chain Code eingefügt. Daher wird der Chain Code 210 zum Chain Code 2200 modifziert. Durch diese Modifikation zeigt der letzte Chain Code c der horizontalen Linie den Eckpunkt a an und der Chain Code auf dem Eckpunkt a zeigt den ersten Pixel d auf der horizontalen Linie an.
  • Figur 9a zeigt eine nach oben links geöffnete rechtwinkelige Ecke. Der Chain Code-Zug der vertikalen Linie weist 665 zum Eckpunkt a hin auf. Nach dem Eckpunkt a setzt sich der Chain Code-Zug mit 44... auf der horizontalen Linie fort. Diese rechtwinklige Ecke wird durch die letzten beiden Chain Codes b und c der horizontalen Linie sowie den ersten Chain Code d auf der vertikalen Linie bestimmt. Der Chain Code-Zug ist 654. Dies bedeutet, es existiert eine nach links unten geöffnete rechtwinkelige Ecke, wenn ein Chain Code-Zug den Chain Code 654 enthält.
  • Figur 9b zeigt ein Chain Code-Diagramm, bei dem der Chain Code- Zug der Figur 9a gemäß der vorliegenden Erfindung geändert wurde. In Figur 9b ist der letzte Chain Code c auf der vertikalen Linie von 5 nach 6 geändert worden und ein neuer Chain Code 4 wurde nach dem geänderten Chain Code eingefügt. Daher wurde der Chain Code-Zug 654 zum Chain Code-Zug 6644 geändert. Durch diese Modifikation zeigt der letzte Chain Code c auf der horizontalen Linie den Eckpunkt a an und der Chain Code auf dem Eckpunkt a zeigt den ersten Pixel d auf der vertikalen Linie an.
  • Figur 10a zeigt eine nach rechts oben geöffnete rechtwinkelige Ecke. Der Chain Code-Zug auf der vertikalen Linie beinhaltet ..443 zum Eckpunkt a hin. Nach dem Eckpunkt a setzt sich der Chain Code-Zug mit 22... auf der horizontalen Linie fort. Diese rechtwinkelige Ecke wird durch die letzten zwei Chain Codes b und c auf der horizontalen Linie sowie durch den ersten Chain Code d auf der vertikalen Linie definiert. Dieser Chain Code- Zug ist 432. Dies bedeutet, es existiert eine nach oben rechts geöffnete rechtwinkelige Ecke, wenn in dem Chain Code-Zug ein Chain Code von 432 enthalten ist.
  • Durch Modifikationen ähnlich den Modifikationen in den Figuren 7b, 8b und 9b wird dem Eckpunkt ein neuer Chain Code gegeben und der Chain Code gerade vor dem Eckpunkt wird geändert, um auf den Eckpunkt zu zeigen.
  • Der letzte Chain Code c auf der horizontalen Linie wird von 3 nach 4 geändert und ein neuer Chain Code 2 wird dem Eckpunkt zugwiesen. Der Chain Code-Zug 432 wird zum Chain Code-Zug 4422 modifiziert. Durch diese Modifikation zeigt der letzte Chain Code c auf der horizontalen Linie zum Eckpunkt a und der Chain Code auf dem Eckpunkt zeigt zum ersten Pixel c auf der vertikalen Linie.
  • Obige Verarbeitung gilt für den äußeren Rand. Die Verarbeitung für den Innenrand wird im folgenden beschrieben.
  • Figur 12a zeigt ein Chain Code-Diagramm eines inneren Randes. Der Chain Code-Zug ist dabei 0007666544432221. Wenn der letzte Chain Code des Zuges den ersten Chain Code erreicht, sind die rechtwinkeligen Ecken durch die Chain Codes 076, 654, 432 oder 210 definiert, ähnlich wie dies bei den äußeren rechtwinkeligen Ecken der Fall war.
  • Die Chain Code-Züge werden in ähnlicher Weise wie bei dem äußeren Rand verarbeitet oder modifiziert, d.h. 076 wird zu 0066 verändert, 654 wird zu 6644 verändert, 432 wird zu 4422 verändert und 210 wird zu 2200 verändert, wie dies in Figur 8 ezeigt ist. Mit anderen Worten werden den Eckpunkten a1, a2, a3 und a4 neue Chain Codes zugeordnet und die Chain Codes, denen die Eckpunkte nachfolgen, werden von 7 nach 0, von 5 nach 6, von 3 nach 4 und von 1 nach 2 verändert.
  • Durch obige Verarbeitung wird sowohl der äußere als auch innnere Rand hinsichtlich der rechtwinkeligen Ecken verbessert.
  • Mit obiger Verarbeitung werden rechtwinkelige Ecken durch jeweils drei aufeinanderfolgende Chain Codes detektiert. In manchen Fällen, wie beispielsweise bei gestuften Rändern, die aus feinen Stufen bestehen, wie dies in Figur 18 gezeigt ist, kann es notwendig sein, den Rand als gerade Linie wiederzugeben. Daher ist es möglich, eine Bestimmung von rechtwinkeligen Ecken nur dann vorzunehmen, wenn es eine kontinuierliche gerade Linie gibt, die an ihren beiden Enden eine Mindestlänge von drei Chain Codes aufweist. Beispielsweise wird der Chain Code-Zug zu 00766 als rechtwinkelige Ecke angesehen und wird somit nach 000666 (Figur 7), verändert.
  • Im folgenden wird die zweite Ausführungsform für Chaincode-Züge in Uhrzeigersinn beschrieben.
  • Figur 14a zeigt ein Chain Code-Diagramm, bei dem ein Chain Code-Zug im Uhrzeigersinn einer Konfiguration zugewiesen wird, die ählich der der Figur 8 ist. In Figur 14a wird die rechtwinkelige Ecke durch die Chain Codes 456 definiert. Figur 14b zeigt eine Modifikation des Chain Code-Zuges von 456 nach 4466. Durch die Modifikatlon wird die rechtwinkelige Ecke klar wiedergegeben.
  • Figur 15a zeigt ein Chain Code-Diagramm, bei dem ein Chain Code-Zug im Uhrzeigersinn der Konfiguration der Figur 9 zugewiesen wird. In Figur 15a wird die rechtwinkelige Ecke durch die Chain Codes 012 definiert. Figur 15b zeigt eine Modifikation des Chain Code-Zuges von 012 nach 0022. Durch die Modifikation wird die rechtwinkelige Ecke klar wiedergegeben.
  • Figur 16a zeigt ein Chain Code-Diagramm, bei dem ein Chain Code-Zug im Uhrzeigersinn der Konfiguration der Figur 10 zugewiesen wird.
  • In Figur 16a ist die rechtwinkelige Ecke durch den Chain Code 234 definiert. Figur 16b zeigt eine Modifikation des Chain Code-Zuges von 234 nach 2244. Durch die Modifikation kann die rechtwinkelige Ecke klar wiedergegeben werden.
  • Figur 17 zeigt eine Verarbeitung für einen inneren Rand oder für eine Öffnung. Der innere Rand wird durch den Chain Code-Zug in entgegengesetzter Richtung zudem für den äußeren Rand definiert. Wie in Figur 17a gezeigt, besteht der Chaine Code- Zug aus 5666700012223444. Der letzte Chain Code wird als fortlaufend zu dem ersten behandelt, ähnlich wie bei der ersten Ausführungsform. Die Chain Code-Züge definieren rechtwinkelige Ecken wie dies der Fall für den äußeren Rand war. Die Chain Code-Züge sind 234, 456, 012 und 670, und werden zu 2244, 4466, 0222 und 6600 verändert. Durch diese Modifikation werden die rechtwinkeligen Ecken klar wiedergegeben.
  • Ähnlich wie bei der ersten Ausführungsform ist es möglich, eine Bestimmung einer rechtwinkeligen Ecke dann vorzunehmen, wenn zu beiden Enden gerade Linien vorhanden sind, die länger als eine vorbestimmte Länge sind.
  • Ein Beispiel für einen Chain Code-Erzeugungsprozeß wird im folgenden gegeben.Um einen Chain Code zu erzeugen, muß zunächst der Startpunkt gefunden werden. Der Startpunkt kann durch die Nachbarpixel im bezug auf die Abstastrichtung bestimmt werden. Wenn die Abtastrichtung normal ist, d.h. von oben nach unten und von links nach rechts verlaufend, wird der Randpixel, der keinen oberen und linken Nachbarn hat, als Startpunkt für den Chain Code des äußeren Randes definiert, wie dies in Figur 19 gezeigt ist. Der Randpixel mit einem tieferen linken Nachbarn jedoch ohne tieferen Nachbarn kann als Startpunkt für den Chain Code des inneren Randes angenommen werden, wie dies in Figur 20 gezeigt ist.
  • Wie oben erwähnt (siehe Seite 7, Formeln a und b) sollte, da ein Chain Code den folgenden Chain Code limitiert, nur der Bereich in Uhrzeigersinnrichtung oder gegen Uhrzeigersinnrichtung durchsucht werden, bei dem ein nachfolgender Chain Code existieren kann. Wenn der Chain Code zu in Gegenuhrzeigersinnrichtung am äußeren Rand betrachtet wird, sollte die Suchrichtung ebenfalls in Gegenuhrzeigersinnrichtung verlaufen und umgekehrt.
  • Der Chain Code-Zug für den Innenrand kann entsprechend dem Algorithmus für den äußeren Rand erzeugt werden.
  • Wenn ein Pixel auf dem Innenrand einen Chain Code von k aufweist und k eine gerade Zahl ist, kann der nachfolgende Chain Code durch Suchen eines Randpixels in Gegenuhrzeigersinnrichtung von dem Chain Code (k-1) gesucht werden. Die Richtung, in der der Randpixel zuerst gefunden Der Algorithmus ist effizient, da der gesamte Chain Code-Zug durch einmaliges Nachziehen der Randpixel generiert wird. Der Algorithmus ist effizient zum Auffüllen von Öffnungen, da der äußere Rand und der innere Rand voneinander unterscheidbar sind.
  • Im folgenden wird ein Algorithmus für das Extrahieren von Vectorpunkten von einem Chain Code-Zug angegeben, wobei dies nicht auf rechtwinkelige Ecken beschränkt ist.
  • In Figur 21 gibt es hintereinanderliegende unterschiedliche Chain Codes und die Konfiguration weist konkave und konvexe Stellen auf. Um eine solche Konfiguration präzise zu beschreiben, werden die Randpixel als Vektorpunkte extrahiert.
  • Auf der anderen Seite kann es wie in Figur 22, besser sein, kleine konkave Stellen nicht zu beachten, selbst wenn es dort unterschiedliche Chain Codes gibt. In Figur 22 wird der Chain Code 5 an den Pixeln a und b um die konkave Stelle von ein Chain Code gefolgt der um 1 kleiner ist, d.h., vier ist. Der Chain Code-Zug k, (k -1) definiert eine gerade Linie, die länger als ein Pixel nach einem Einpixelschritt ist. Durch Weglassen des Pixels des Chain Codes k-1 von den Vektorpunkten und durch Extrahieren des nächsten Pixels zum Pixel k-1, wird die Wiedergabekonfiguration eine höhere Qualität aufweisen, als wenn die Konfiguration präzise wiedergegeben wird. Die Dateneffizienz ist ebenfalls verbessert. Diese Regel schließt eine Regel für das Vektorisieren rechtwinkeliger konkaver Stellen ein und kann wie folgt ausgedrückt werden.
  • In dem Chain Code-Zug k, k' kann der Pixel mit Chain Code k als Vektorpunkt extrahiert werden, wenn folgende Beziehung zwischen k und k' gilt:
  • eine Regel für das Vektorisieren rechtwinkeliger konkaver Stellen ein und kann wie folgt ausgedrückt werden.
  • In dem Chain Code-Zug k, k' kann der Pixel mit Chain Code k als Vektorpunkt extrahiert werden, wenn folgende Beziehung zwischen k und k' gilt:
  • k≠ k' und k'≠(k-1).
  • Wenn gilt k'= (k-1) und ein oder mehr Pixel des Chain Codes k-1 dem ersten Pixel von k-1 nachfolgen, wie dies in Figur 23 gezeigt ist, ist es besser, alle Pixel mit k-1 von den Vektorpunkten auszuschließen. Dann wird der erste Pixel b des Chain Codes der nicht k-1 ist, nach dem Chain Code-Zug von k-1, k-1 als Vektorpunkt extrahiert.
  • Mit anderen Worten sollte der Pixel des Chain Codes k' in dem folgenden Chain Code-Zug als Vektorpunkt extrahiert werden.
  • k, (k-1) , (k-1) , ...(k-1) , k' ..... wobei k'≠k-1 ist.
  • Es ist möglich, daß der Startpunkt a für den Chain Code-Zug auf den der Startpunkt folgt, weggelassen wird. Jedoch kann der Verbindungspunkt b als Vektorpunkt extrahiert werden. Mit anderen Worten sollte, wenn ein konstanter Chain Code-Zug von einem Chain Code-Zug gefolgt wird, der konstante Chain Codes aufweist, der Pixel des ersten Chain Codes der zweiten Linie als Vektorpunkt extrahiert werden, wie dies im nachfolgenden Chain Code-Zug durch Unterstreichen gezeigt ist.
  • k, k, ...k, k', k', ..., k wobei k'≠k
  • ist.
  • Ein Chain Code-Zug mit konstanten Chain Codes definiert eine gerade Linie. Wenn zwei gerade Linien mit unterschiedlichen Neigungen an ihren Endpunkten miteinander verbunden sind, wie dies in Figur 24 gezeigt ist, sollten beide geraden Linien wiedergegeben werden. In Figur 24 wird eine Linie mit dem Chain Code-Zug 5,5, ... durch eine Linie eines Chain Code-Zuges 6, 6, ... gefolgt. Der Startpunkt der Linie mit dem Chain Code 5 ist a und der Endpunkt ist b.
  • Figur 25 zeigt eine konkave Stelle von einem Pixel nach der geraden Linie mit dem Chain Code 5. Der Bodenpunkt der konkaven Stelle kann extrahiert werden indem ein Pixel mit einem Chain Code extrahiert wird, der sich von den konstanten Chain Codes, die die gerade Linie unterscheidet, und dieser nachfolgt.
  • Figur 26 zeigt eine gerade Linie aus zwei Pixeln nach einer geraden Linie mit einem Chain Code, der um 1 kleiner ist als der Chain Code der ersten geraden Linie. Der Chain Code-Zug kann wie folgt ausgedrückt werden:
  • k, k, ...., k, k-1, k' wobei k'≠k-1
  • gilt.
  • In diesem Fall sollte der Pixel a des Chain Codes k-1 von den Vektorpunkten ausgeschlossen werden. Der nächste Pixel des Chain Codes k' sollte als Vektorpunkt extrahiert werden, wie dies im bezug auf Figuren 22 und 23 beschrieben wurde.
  • Figur 27 zeigt ein Chain Code-Diagramm mit einem Rand, der aus zwei geraden Linien besteht. Die erste Linie hat einen Chain Code von 5 und die zweite Linie hat einen Chain Code von 4. Der Startpunkt b der zweiten Linie sollte als Vektorpunkt extrahiert werden. Mit anderen Worten sollte der Pixel, der dem unterstrichenen Chain Code in dem folgenden Chain Code-Zug entspricht, extrahiert werden.
  • k, k, ..., k, k-1, k-1, ..., k-1.
  • Die Regeln können wie folgt zusammengefaßt werden:
  • i) wenn k1, k2, und k3 unterschiedliche Chain Codes in dem Chain Code-Zug k1, k2, k3 sind,
  • wenn k2≠k1-1 ist, sollte k2 als Vektorpunkt extrahiert werden und ansonsten, falls k2=k-1 ist, sollte k3 als Vektorpunkt extrahiert werden.
  • ii) Wenn k1≠k2, k2≠k3 und k3≠k1 in dem Chain Code-Zug k1, k1, ..., k1, k2, k3 gilt,
  • und falls k2≠k1-1, gilt, sollte k2 als Vektorpunkt extrahiert werden, ansonsten falls k2=k1-1 ist, sollte k3 als Vektorpunkt extrahiert werden.
  • iii) Wenn k1≠k2, k2≠k3 und k3≠k1 in dem Chain Code-Zug k1, k2, k2, ..., k2, k3 gilt, und falls
  • k2≠k1-1 gilt, sollte k2 als Vektorpunkt extrahiert werden und ansonsten, falls k2=k1-1 gilt, sollte k3 als Vectorpunkt extrahiert werden.
  • iv) Wenn k1≠k2, k2≠k3 und k3≠k1 in dem Chain Code-Zug k1, k1, ..., k1, k2, k2, k3 ist, sollte k2 als Vektorpunkt extrahiert werden.
  • Die nächste Regel ist für die Vektorisierung anzuwenden, um die Vektordaten zu minimieren.
  • v) Wie in Figur 28 gezeigt ist, ist ein Chain Code-Zug gegeben, der aus aufeinanderfolgender Kombination 445 besteht. Diese Chain Code-Züge definieren Stufen mit konstanter Länge. Die Konfiguration kann durch eine gerade Linie angenähert werden. Für diese Annäherung sollte die folgende Regel angewendet werden.
  • Wenn die Chain Code-Züge aus einer Kombination von Chain Codes k und k-1 bestehen oder ein Chain Code-Zug aus einer Kombination von Chain Codes k und k+1 wiederholt besteht, sollte der erste Punkt der ersten Kombination der letzte Punkt der letzten Kombination als Vektorpunkt extrahiert werden, wie dies in Figur 28 durch a und b angezeigt ist.
  • Die Konfiguration der Figur 30 weist eine Neigung auf, die entgegengesetzt zu der in der Konfiguration der Figur 28 ist. Die Konfiguration in Figur 31 weist eine Neigung auf, die entgegengesetzt der von der Konfiguration der Figur 29 ist.
  • Die Chain Code-Züge 001 werden wiederholt erzeugt. Bei diesen Konfigurationen, sollte der Startpunkt des ersten Schrittes und der Endpunkt des letzten Schrittes als Vektorpunkt extrahiert werden, so daß die Konfiguration durch eine gerade Linie angenähert wird.
  • Die obigen schrittweisen Konfigurationen weisen eine relativ geringe Neigung auf.
  • Die Konfigurationen in den Figuren 32 bis 35 weisen relativ steile Neigungen auf.
  • Die Konfiguration in Figur 32 enthält einen wiederholten Chain Code-Zug von 665.
  • Die Konfiguration der Figur 33 enthält einen wiederholten Chain Code-Zug von 667.
  • Die Konfiguration der Figur 34 enthält einen wiederholten Chain Code-Zug von 223.
  • Die Konfiguration der Figur 35 enthält einen wiederholten Chain Code-Zug von 221.
  • In jeder Konfiguration mit steilen Stufen, wird der untere Eckpunkt einer jeden Stufe extrahiert, wenn der Rand nach unten gerichtet wird und umgekehrt, wie dies in Figur 32 bis 35 gezeigt ist. Die Annäherungsregel für die schrittweise Konfiguration kann wie folgt zusammengefaßt werden:
  • vi) Wenn der Chain Code-Zug aus einem wiederholten Chain Code- Zug aus wiederholten Chain Code-Zügen von k, k, ...., k, k-1 besteht, sollte der erste Pixel von k in dem ersten Chain Code- Zug und der erste Pixel von k in dem letzten Chain Code-Zug als Vektorpunkt extrahiert werden.
  • vii) In dem Chain Code-Zug der aus wiederholten Chain Code- Zügen von k,k, ..., k, k+1 besteht, sollte der Pixel k+1 im ersten und letzten Chain Code-Zug als Vektorpunkt extrahiert werden.
  • Die verallgemeinerten Regeln sind auch zum Vektorisieren einer Öffnung anwendbar. Wenn der Chain Code-Zug in Uhrzeigersinnrichtung generiert wird, d.h. entgegengesetzt der Richtung wie oben beschrieben wurde, sollten die Chain Code- Veränderungen entsprechend umgedreht werden, d.h. das Inkrementieren wird zu einem Dekrementieren.
  • Wenn ein Code äquivalent zum Chain Code für Vektorisierung angewendet wird, können die obigen Regeln leicht entsprechend angepaßt werden.
  • Wie in den obigen Ausführungsformen beschrieben wurde, können, duch Extrahieren von Vektorpunkten entsprechend dem Chain Code oder einem äquivalenten Code die Vektordaten leicht erzeugt werden, ohne daß hierfür komplexe Winkelberechnungen notwendig sind. Eine Konfiguration mit hoher Qualität kann aus den Vektordaten erstellt werden.

Claims (26)

1. Verfahren zum Vektorisieren gespeicherter Randdaten einer Konfiguration, die in einem aus Pixel bestehenden Bild enthalten ist mit folgenden Schritten:
a) Erzeugen eines ursprünglichen Zuges aus Chain Codes, wobei der Wert der Codes die Randpixel der Konfiguration spezifiziert;
wobei das Verfahren gekennzeichnet ist durch folgende Schritte:
b) Identifizieren vorbestimmter Muster aus Codewerten in dem ursprünglichen Zug von Chain Codes, wobei die vorbestimmten Muster rechtwinklige konkave Ecken der Konfiguration definieren und wobei es eine durchgehend gerade Linie an beiden Enden der rechtwinkligen konkaven Ecken gibt, welche eine vorbestimmte Mindestlänge aufweist;
c) Erzeugen eines veränderten Zuges von Codes durch Modifizieren der vorgegebenen Muster der Codewerte, so daß jedem Eckpunktpixel, welcher keinen Chain Code in dem ursprünglichen Zug von Chain-Codes aufwies, da er kein Randpixel war, ein Chain- Codewert zugewiesen wird;
d) Extrahieren von Vektorpunkten, die die Grenzen der Konfiguration definieren, aus dem veränderten Zug von Codes entsprechend bestimmter Codekombinationen in dem veränderten Zug erfolgen.
2. Verfahren nach Anspruch 1, bei dem die Codes Freeman-Chain Codes sind.
3. Verfahren im Gegenuhrzeigersinn nach Anspruch 2, bei dem der Schritt des Extrahierens von Vektorpunkten den Schritt des Extrahierens eines Pixels entsprechend dem Chain Code k2 in einem Chain Code-Zug von "k1, k2, k3", welcher in dem veränderten Zug von Codes enthalten ist, wenn k2≠k1-1 und k1≠k2, k2≠k3, k3≠k1 ist, aufweist.
4. Verfahren im Gegenuhrzeigersinn nach Anspruch 2, bei dem der Schritt des Extrahierens von Vektorpunkten einen Schritt zum Extrahieren eines Pixels entsprechend dem Chain Code k3 in dem Chain Code-Zug von "k1, k2, k3", wie er in dem veränderten Zug von Codes enthalten ist, enthält, wobei k2≠k1-1 und k1≠k2, k2≠k3, k3≠k1 gilt.
5. Verfahren im Gegenuhrzeigersinn nach Anspruch 2, bei dem der Schritt des Extrahierens von Vektorpunkten einen Schritt des Extrahierens eines Pixels entsprechend dem Chain Code k2 in einem Chain Code-Zug von "k1, k1, ..., k1, k2, k3", wie er in dem veränderten Zug von Codes enthalten ist, einschließt, wobei k1≠k2, k2≠3, k3≠k1, k2≠k1-1 gilt.
6. Verfahren im Gegenuhrzeigersinn nach Anspruch 2, bei dem der Schritt des Extrahierens einen Schritt des Extrahierens eines Pixels entsprechend dem Chain Code k3 in einem Chain Code-Zug von "k1, k1, ..., k1, k2, k3", wie er in dem veränderten Zug von Codes enthalten ist, einschließt, wobei k1≠k2, k2≠k3, k3≠k1, k2≠k1-1 gilt.
7. Verfahren im Gegenuhrzeigersinn nach Anspruch 2, bei dem der Schritt des Extrahierens von Vektorpunkten den Schritt des Extrahierens eines Pixels entsprechend dem ersten Chain Code k2 in einem Chain Code-Zug von "k1, k2, k2,..., k2, k3", wie er in dem veränderten Zug von Codes enthalten ist, einschließt, wobei k1≠k2, k2≠k3, k3≠k1 und k2≠k1-1 gilt.
8. Verfahren im Gegenuhrzeigersinn nach Anspruch 2, bei dem der Schritt des Extrahierens von Vektorpunkten einen Schritt des Extrahierens eines Pixels entsprechend dem Chain Code k3 in dem Chain Code-Zug von "k1, k2, k2,..., k2, k3", wie er in dem veränderten Zug von Codes enthalten ist, einschließt, wobei k1≠k2, k2≠k3, k3≠k1 und k2≠k1-1 git.
9. Verfahren im Gegenuhrzeigersinn nach Anspruch 2, wobei der Schritt des Extrahierens von Vektorpunkten einen Schritt des Extrahierens eines Pixels entsprechend dem ersten Chain Code von k2 in dem Chain Code-Zug "k1, k1, ..., k1, k2, k2 ..., k2, k3", wie er in dem veränderten Zug von Codes enthalten ist, einschließt, wobei k1≠k2, k2≠k3, k3≠k1 gilt.
10. Verfahren im Gegenuhrzeigersinn nach Anspruch 2, wobei der Schritt des Extrahierens von Vektorpunkten einen Schritt des Extrahierens von Pixeln entsprechend dem ersten Chain Code k beim ersten und letzten Auftreten einer sich in dem ursprünglichen Zug von Codes wiederholenden Chain Code-Kombination von "k, k, ..., k, k-1" einschließt.
11. Verfahren im Gegenuhrzeigersinn nach Anspruch 2, wobei der Schritt des Extrahierens von Vektorpunkten einen Schritt des Extrahierens von Pixeln entspechend einem Chain Code k+1 beim ersten und letzten Auftreten einer sich wiederholenden Chain Code-Kombination von "k, k,..., k, k+1", wie sie wiederholt in dem ursprünglichen Zug von Codes enthalten ist, einschließt.
12. Verfahren im Uhrzeigersinn nach Anspruch 2, bei dem der Schritt des Extrahierens von Vektorpunkten einen Schritt des Extrahierens eines Pixels entsprechend dem Chain Code k2 in einem Chain Code-Zug von "k1, k2, k3", welcher in dem veränderten Zug von Codes enthalten ist, wenn k2≠k1+1 und k1≠k2, k2≠k3, k3≠k1 ist, enthält.
13. Verfahren im Uhrzeigersinn nach Anspruch 2, bei dem der Schritt des Extrahierens von Vektorpunkten einen Schritt zum Extrahieren eines Pixels entsprechend dem Chain Code k3 in den Chain Code-Zug von "k1, k2, k3", wie er in dem veränderten Zug von Codes enthalten ist, enthält, wobei k2≠k1+1 und k1≠k2, k2≠k3, k3≠k1 gilt.
14. Verfahren im Uhrzeigersinn nach Anspruch 2, bei dem der Schritt des Extrahierens von Vektorpunkten einen Schritt des Extrahierens eines Pixels entsprechend dem Chain Code k2 in einem Chain Code-Zug von "k1, k1, ..., k1, k2, k3", wie er in dem veränderten Zug von Codes enthalten ist, einschließt, wobei k1≠k2, k2≠k3, k3≠k1, k2≠k1+1 gilt.
15. Verfahren im Uhrzeigersinn nach Anspruch 2, bei dem der Schritt des Extrahierens einen Schritt des Extrahierens eines Pixels entsprechend dem Chain Code k3 in einem Chain Code-Zug von "k1, k1 ..., k1, k2, k3", wie er in dem veränderten Zug von Codes enthalten ist, einschließt, wobei k1≠k2, k2≠k3, k3≠k1, k2≠k1+1 gilt.
16. Verfahren im Uhrzeigersinn nach Anspruch 2, bei dem der Schritt des Extrahierens von Vektorpunkten den Schritt des Extrahierens eines Pixels entsprechend dem ersten Chain Code k2 in einem Chain Code-Zug von "k1, k2, k2, ..., k2, k3", wie er in dem veränderten Zug von codes enthalten ist; einschließt, wobei k1≠k2, k2≠k3, k3≠k1 und K2≠k1+1 gilt.
17. Verfahren im Uhrzeigersinn nach Anspruch 2, bei dem der Schritt des Extrahierens von Vektorpunkten einen Schritt des Extrahierens eines Pixels entsprechend dem Chain Code k3 in dem Chain Code-Zug von "k1, k2, k2, ..., k2, k3", wie er in dem veränderten Zug von Codes enthalten ist, einschließt, wobei k1≠k2, k2≠k3, k3≠k1 und k2≠k1+1 gilt.
18. Verfahren im Uhrzeigersinn nach Anspruch 2, wobei der Schritt des Extrahierens von Vektorpunkten ein Schritt des Extrahierens von Pixeln entsprechend dem ersten Chain Code k beim ersten und letzten Auftreten einer wiederholenden Chain Code- Kombination von "k, k,..., k, k-1", wie er wiederholt in dem ursprünglichen Zug von Codes enthalten ist, einschließt.
19. Verfahren im Uhrzeigersinn nach Anspruch 2, wobei der Schritt des Extrahierens von Vektorpunkten einen Schritt des Extrahierens von Pixeln entspechend einem Chain Code k+1 beim ersten und letzten Auftren einer sich wiederholenden Chain Code-Kombination von "k, k, ..., k, k+1", wie sie wiederholt in dem ursprünglichen Zug von Codes enthalten ist, einschließt.
20. Verfahren nach Anspruch 1, bei dem der Schritt des Erzeugens eines ursprünglichen Zugs von Codes folgende Schritte einschließt:
Erzeugen eines ursprünglichen Zugs von Codes für einen äußeren Rand in einer ersten Umlaufrichtung um die Konfiguration; und Erzeugen eines ursprünglichen Zugs von Codes für einen inneren Rand der Konfiguration in einer entgegengesetzten Umlaufrichtung gegenüber der für den äußeren Rand.
21. Verfahren nach Anspruch 1, bei dem der Schritt des Erzeugen eines ursprünglichen Zugs von Codes einen Schritt mit einschließt, bei dem ein Pixel beurteilt wird, um festzustellen, ob dieser ein Startpunkt des ursprünglichen Zugs von Codes ist, in dem seine Nachbarpixel bewertet werden.
22. Verfahren nach Anspruch 21, bei dem der Schritt des Beurteilen eines Pixels den Schritt des Definierens eines Randpixels mit weder oberen noch linken Nachbarn als Startpunkt des ursprünglichen Zugs von Codes auf dem äußeren Rand mit einschließt, wenn die Abtastung von links nach rechts und von oben nach unten verläuft.
23. Verfahren nach Anspruch 21, bei dem der Schritt des Beurteilen eines Pixels den Schritt des Definierens eines Randpixels mit einem linken Nachbarn, jedoch ohne einen unteren Nachbar, als Startpunkt des ursprünglichen Zugs von Codes auf dem inneren Rand mit einschließt, wenn die Abtastung nach rechts und von oben nach unten erfolgt.
24. Verfahren nach Anspruch 1, bei dem der Schritt des Erzeugens eines ursprünglichen Zugs von Codes folgende Schritte aufweist:
Erzeugen von Codes entsprechend einem Umlaufsinn um die Konfiguration; und Suchen von Randpixeln, die zu einem Pixel benachbart sind, und deren ein Code in gleicher Umlaufrichtung wie bei der Erzeugung es ursprünglichen Zugs von Codes gegeben wird.
25. Verfahren nch Anspruch 24, wobei
der Zug von Codes aus Freeman-Chain Codes besteht;
dem Pixel, dem ein Chain Code gegeben wird, sich in einem Abstand k von dem ursprünglichen Pixel befindet; und
der Suchschritt von der Richtung (k-1) beginnt, wenn k eine gerade Anzahl ist.
26. Verfahren nach Anspruch 24, wobei der Zug von Codes aus Freeman-Codes besteht;
der Pixel, dem ein Chain Code zugewiesen wird, in Richtung k von dem vorhergehenden Pixel liegt; und
der Suchschritt von der Richtung (k-2) beginnt, wenn k eine ungerade Zahl ist.
DE3853885T 1988-12-30 1988-12-30 Vektorisationsverfahren. Expired - Lifetime DE3853885T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP88121903A EP0375805B1 (de) 1988-12-30 1988-12-30 Vektorisationsverfahren

Publications (2)

Publication Number Publication Date
DE3853885D1 DE3853885D1 (de) 1995-06-29
DE3853885T2 true DE3853885T2 (de) 1995-09-14

Family

ID=8199731

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3853885T Expired - Lifetime DE3853885T2 (de) 1988-12-30 1988-12-30 Vektorisationsverfahren.

Country Status (3)

Country Link
US (1) US5007098A (de)
EP (1) EP0375805B1 (de)
DE (1) DE3853885T2 (de)

Families Citing this family (141)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68920144T2 (de) * 1989-10-12 1995-06-29 Ibm Anzeigesystem.
US5265173A (en) * 1991-03-20 1993-11-23 Hughes Aircraft Company Rectilinear object image matcher
US5568566A (en) * 1991-11-25 1996-10-22 Kabushiki Kaisha Toshiba Drawing processing apparatus
EP0553762B1 (de) * 1992-01-27 2000-05-03 Canon Kabushiki Kaisha Bildverarbeitungs-Verfahren und Vorrichtung
US5380428A (en) * 1992-04-22 1995-01-10 Product Research & Development Pump for reverse osmosis system
US5418862A (en) * 1992-08-10 1995-05-23 United Parcel Service Of America Method and apparatus for detecting artifact corners in two-dimensional images
JPH0749927A (ja) * 1993-08-09 1995-02-21 Nireco Corp パターン認識方法
US5362796A (en) 1993-08-09 1994-11-08 Isp Investments Inc. Molded crosslinked vinyl lactam polymer gel and method of preparation
EP0650287B1 (de) * 1993-10-26 2004-03-10 Canon Kabushiki Kaisha Bildverarbeitungsverfahren und -gerät
US5600733A (en) * 1993-11-01 1997-02-04 Kulicke And Soffa Investments, Inc Method for locating eye points on objects subject to size variations
US5577134A (en) * 1994-01-07 1996-11-19 Panasonic Technologies, Inc. Method and apparatus for encoding a segmented image without loss of information
JP2918465B2 (ja) * 1994-11-14 1999-07-12 大日本スクリーン製造株式会社 画像処理方法
US6005680A (en) * 1995-04-04 1999-12-21 Canon Information Systems, Inc. Method for capturing a document image, a scanner using the method and a document image management system using the scanner
US6041137A (en) 1995-08-25 2000-03-21 Microsoft Corporation Radical definition and dictionary creation for a handwriting recognition system
KR100203266B1 (ko) * 1996-07-09 1999-06-15 윤종용 윤곽선복호화장치
US5969317A (en) * 1996-11-13 1999-10-19 Ncr Corporation Price determination system and method using digitized gray-scale image recognition and price-lookup files
US6324300B1 (en) * 1998-06-24 2001-11-27 Colorcom, Ltd. Defining color borders in a raster image
US6310970B1 (en) * 1998-06-24 2001-10-30 Colorcom, Ltd. Defining surfaces in border string sequences representing a raster image
US6226400B1 (en) 1998-06-24 2001-05-01 Colorcom, Ltd. Defining color borders in a raster image by identifying and breaking contrast ties
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US7069108B2 (en) 2002-12-10 2006-06-27 Jostens, Inc. Automated engraving of a customized jewelry item
CA2563700C (en) * 2004-04-19 2014-07-08 Jostens, Inc. System and method for smoothing three-dimensional images
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
CN100403769C (zh) * 2006-04-29 2008-07-16 北京北大方正电子有限公司 一种在排版过程中进行图像勾边的方法
JP4829835B2 (ja) * 2006-06-12 2011-12-07 キヤノン株式会社 画像処理装置、画像処理方法、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US7856285B2 (en) 2007-01-18 2010-12-21 Jostens, Inc. System and method for generating instructions for customization
WO2008112796A1 (en) 2007-03-12 2008-09-18 Jostens, Inc. Method for embellishment placement
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
WO2010067118A1 (en) 2008-12-11 2010-06-17 Novauris Technologies Limited Speech recognition involving a mobile device
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
DE202011111062U1 (de) 2010-01-25 2019-02-19 Newvaluexchange Ltd. Vorrichtung und System für eine Digitalkonversationsmanagementplattform
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US8977377B2 (en) 2010-02-25 2015-03-10 Jostens, Inc. Method for digital manufacturing of jewelry items
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8977059B2 (en) * 2011-06-03 2015-03-10 Apple Inc. Integrating feature extraction via local sequential embedding for automatic handwriting recognition
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US9208265B2 (en) 2011-12-02 2015-12-08 Jostens, Inc. System and method for jewelry design
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US9582615B2 (en) 2013-01-16 2017-02-28 Jostens, Inc. Modeling using thin plate spline technology
KR20240132105A (ko) 2013-02-07 2024-09-02 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
AU2014233517B2 (en) 2013-03-15 2017-05-25 Apple Inc. Training an at least partial voice command system
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
KR101772152B1 (ko) 2013-06-09 2017-08-28 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
EP3008964B1 (de) 2013-06-13 2019-09-25 Apple Inc. System und verfahren für durch sprachsteuerung ausgelöste notrufe
DE112014003653B4 (de) 2013-08-06 2024-04-18 Apple Inc. Automatisch aktivierende intelligente Antworten auf der Grundlage von Aktivitäten von entfernt angeordneten Vorrichtungen
USD789228S1 (en) 2013-11-25 2017-06-13 Jostens, Inc. Bezel for a ring
US10725650B2 (en) * 2014-03-17 2020-07-28 Kabushiki Kaisha Kawai Gakki Seisakusho Handwritten music sign recognition device and program
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
CN110797019B (zh) 2014-05-30 2023-08-29 苹果公司 多命令单一话语输入方法
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
EP4254337A1 (de) 2023-01-17 2023-10-04 University of Maribor Verfahren zur kodierung und dekodierung binärer bilder unter verwendung von kettenkoden

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5619657B2 (de) * 1973-09-10 1981-05-08
GB1517869A (en) * 1976-12-20 1978-07-12 Ibm Image encoding apparatus
JPS5851388A (ja) * 1981-09-22 1983-03-26 Ricoh Co Ltd 方向コ−ド割付け方法
DE3381833D1 (de) * 1982-03-31 1990-10-04 Gen Electric Verfahren und geraet zur sehbildverarbeitung und zur eckpunktsortierung in einem sehbild-verarbeitungssystem.
JPS5930179A (ja) * 1982-08-10 1984-02-17 Agency Of Ind Science & Technol パタ−ンの線分近似方式
GB8311813D0 (en) * 1983-04-29 1983-06-02 West G A W Coding and storing raster scan images
US4628532A (en) * 1983-07-14 1986-12-09 Scan Optics, Inc. Alphanumeric handprint recognition
JPS60136892A (ja) * 1983-12-26 1985-07-20 Hitachi Ltd オンライン手書き図形認識装置
JPS6282486A (ja) * 1985-10-08 1987-04-15 Hitachi Ltd オンライン手書き図形認識装置

Also Published As

Publication number Publication date
US5007098A (en) 1991-04-09
EP0375805B1 (de) 1995-05-24
DE3853885D1 (de) 1995-06-29
EP0375805A1 (de) 1990-07-04

Similar Documents

Publication Publication Date Title
DE3853885T2 (de) Vektorisationsverfahren.
EP0409310B1 (de) Verfahren sowie Anordnung zum Bestimmen von Kanten in Bildern
DE69026041T2 (de) Identifikation, Kennzeichnung und Segmentierung der halbtongerasterten oder punktierten Bereiche eines Binärbildes
DE68914528T2 (de) Bildsignalverarbeitungsvorrichtung für Strichkodebildsignale.
DE69230633T2 (de) Verfahren zur Ermittlung von Wortformen zum folgenden Vergleich
DE69433492T2 (de) Verfahren und Vorrichtung zum Dekodieren von Streifencodes durch unabhängige Analyse von Streifen und Zwischenräumen
DE2557553C2 (de) Maschinelles Verfahren zur Verdichtung und -Wiederausdehnung eines beliebigen Schwarzweiß-Bildes und Einrichtung zur Durchführung des Verfahrens
DE69434131T2 (de) Vorrichtung zur Segmentierung von aus Texturen bestehenden Bildern
DE19814075B4 (de) Verfahren zum Abtasten und Erkennen mehrerer Fotografien und zum Beseitigen von Randfehlern
DE69327928T2 (de) Vorrichtung zur Kodierung von unbeweglichen Bildern
DE60003032T2 (de) Verfahren zur bildsegmentation
DE2432129C3 (de) Verfahren zum maschinellen Lesen von Zeichen und Vorrichtung zur Durchführung des Verfahrens
DE3342947C2 (de) System zur Verarbeitung eines grafischen Musters
DE60028584T2 (de) System und methode zur bildinterpolation
DE3633743A1 (de) Zeichenerkennungssystem
DE3685571T2 (de) Verfahren zum ueberbruecken von luecken zwischen konturelementen in einem bild.
DE2752421A1 (de) Anordnung fuer die abtastung und digitalisierung von grafischen darstellungen oder daten
DE4005492A1 (de) Bildcodierverfahren
DE102008013789A1 (de) Vorrichtung, Verfahren und Programm zum Eliminieren von Zeichenstörungen
DE69309823T2 (de) Verfahren und Apparat zum Erzeugen einer Mustereinheit auf einem Druckzylinder zum Drucken eines endlosen Musters
DE2435982A1 (de) Verfahren und vorrichtung zur verarbeitung von durch abtastung eines mehrfarbigen musters erhaltenen informationen
DE3923914C2 (de) Verfahren zum Extrahieren von Merkmalsgrößen eines Zeichens
DE3524505A1 (de) Bilderkennungsvorrichtung
DE3811396C2 (de)
DE19711873C2 (de) Verfahren und Vorrichtung zum Lesen eines Strichcodes

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: YOZAN INC., TOKIO/TOKYO, JP SHARP K.K., OSAKA, JP

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

Owner name: YOZAN, INC., TOKIO/TOKYO, JP SHARP K.K., OSAKA, JP