DE3815869A1 - Verfahren zum extrahieren von merkmalsmengen eines zeichens - Google Patents

Verfahren zum extrahieren von merkmalsmengen eines zeichens

Info

Publication number
DE3815869A1
DE3815869A1 DE3815869A DE3815869A DE3815869A1 DE 3815869 A1 DE3815869 A1 DE 3815869A1 DE 3815869 A DE3815869 A DE 3815869A DE 3815869 A DE3815869 A DE 3815869A DE 3815869 A1 DE3815869 A1 DE 3815869A1
Authority
DE
Germany
Prior art keywords
character
codes
steps
segments
area
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.)
Granted
Application number
DE3815869A
Other languages
English (en)
Other versions
DE3815869C2 (de
Inventor
Hiroshi Nakayama
Keiji Kojima
Gen Sato
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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
Priority claimed from JP63080949A external-priority patent/JPS6478396A/ja
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of DE3815869A1 publication Critical patent/DE3815869A1/de
Application granted granted Critical
Publication of DE3815869C2 publication Critical patent/DE3815869C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/18Extraction of features or characteristics of the image
    • G06V30/182Extraction of features or characteristics of the image by coding the contour of the pattern
    • G06V30/1823Extraction of features or characteristics of the image by coding the contour of the pattern using vector-coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Description

Die Erfindung betrifft ein Verfahren zum Extrahieren von Merkmalsmengen eines Zeichens zur Zeichenerkennung nach dem Oberbegriff des Anspruchs 1.
Insbesondere betrifft die Erfindung ein Verfahren zum Ex­ trahieren von Merkmalsmengen eines Zeichens, welches nicht durch einen Schriftstil oder eine Schrifthöhe eines Zei­ chens beeinflußt wird, welches durch optische Abtastung erhalten worden ist.
Ein Verfahren, um Merkmalsmengen eines Kontur- oder Umriß­ teils eines unbekannten Zeichens dadurch zu extrahieren, daß dem Konturteil gefolgt oder nachgegangen wird, ist als eines der Verfahren bekannt, um Merkmalsmengen eines Zeichens zu extrahieren, welche in einem optischen Zeichen­ leser verwendet werden (welcher nachstehend der Einfachheit halber als OCR-Einheit bezeichnet wird). Die Merkmalsmengen des Kontur- oder Umrißteils werden in Form einer geschlosse­ nen Schleife erhalten, welche aus die Merkmalsmengen dar­ stellenden Richtungscodes zusammengesetzt ist. Zu dem Zeit­ punkt, wenn die Merkmalsmengen mit Merkmalsmengen eines (bekannten) Bezugszeichens verglichen werden, das in einem Wörterbuch gespeichert ist, müssen die erhaltenen Merkmals­ mengen in Form der Schleife als deren eindimensionale Folge oder Kette ausgedehnt bzw. verlängert werden. Zu diesem Zeitpunkt ist dann ein Bezugspunkt zum Schneiden der Schleife erforderlich, um die Schleife der Merkmalsmengen zu verlängern. Andererseits wird ein Bezugspunkt der Gruppe der Merkmalsgrößen des Bezugszeichens vorherbestimmt. In der Praxis ist es sehr schwierig, sicher den Bezugspunkt der Schleife der Richtungscodes des unbekannten Zeichens zu be­ stimmten. Wenn die Schleife an einer fehlerhaften Stelle ge­ schnitten wird, wird ein Unterschied (Abstand) zwischen den Merkmalsmengen des unbekannten Zeichens und demjenigen des bekannten Zeichens entsprechend dem unbekannten Zeichen ver­ größert. Dies führt dann zu einer Fehlerzunahme in der Zei­ chenerkennung. Üblicherweise wird ein Startpunkt, von wel­ chem aus ein Abtasten oder Verfolgen des Kontur- oder Umriß­ teils des unbekannten Zeichens beginnt, als der Bezugspunkt bestimmt. Der Startpunkt wird dadurch erhalten, daß die erste Änderung von einem weißen zu einem schwarzen Bildele­ ment herausgefunden wird, indem ein rechteckiger Bereich raster-abgetastet wird, welcher ein Zeichenbild hat, wobei von dem oberen Teil des rechteckigen Bereich begonnen wird. Jedoch weicht der auf diese Weise erhaltene Bezugspunkt in­ folge einer Schwankung eines Zeichenbildes ab und ist folg­ lich instabil.
Außerdem können mit dem herkömmlichen Verfahren zum Extra­ hieren der Merkmalsmengen des Zeichens-Konturteils keine topologischen Merkmalsmengen eines Zeichens, d. h. eine In­ formation anhand einer Form eines Zeichens, durch einen ein­ fachen Prozeß extrahiert werden.
Ein anderes herkömmliches Verfahren zum Erzeugen eines Histogramms von Zeichencodes, um das unbekannte Zeichen zu identifizieren, ist sehr empfindlich bezüglich Formverän­ derungen von Zeichen. Daher muß eine Anzahl Verzeichnisse oder Wörterbücher, welche zum Speichern von Bezugshisto­ grammen von Zeichen verwendet werden, für verschiedene For­ men eines Zeichens vorbereitet werden. Dies erfordert eine große Speicherkapazität und zusätzlich Zeit für die Zei­ chenerkennung.
Gemäß der Erfindung soll daher ein Verfahren zum Extrahieren von Merkmalsmengen eines Zeichens geschaffen werden, bei welchem die vorstehenden Nachteile der herkömmlichen Verfah­ ren ausgeschlossen sind. Ferner soll gemäß der Erfindung ein Verfahren zum Extrahieren von Merkmalsmengen eines Zeichens geschaffen werden, bei welchem eine vereinheitlichende und stabile Bezugsposition einer Gruppe erhalten wird, die aus Merkmalsmengen eines Zeichenkonturteils selbst bei Vor­ handensein von Rauschen besteht, das in dem Zeichenkonturteil enthalten ist. Eine korrekte Bezugsposition ermöglicht eine bessere und damit höhere Genauigkeit bei der Zeichenerkennung auf der Basis einer Histogrammethode.
Ein weiteres Ziel der Erfindung besteht darin, ein Verfahren zum Extrahieren von Merkmalsmengen eines Zeichens zu schaf­ fen, welches eine topologische Information, d. h. eine In­ formation anhand einer Form des Zeichens, insbesondere von Segmentformen anzeigt, welche durch Aufteilen des Zeichens erhalten worden sind. Die topologische Information wird hierbei nicht durch Größe und Schrifttyp eines zu verarbei­ tenden Zeichens beeinflußt. Daher kann normalerweise nur ein Typ eines Wörterbuchs oder Verzeichnisses für eine Zei­ chenerkennung vorbereitet werden, bei welcher Zeichen ver­ schiedener Größen und Schrifttypen zu verarbeiten sind.
Ein weiteres Ziel der Erfindung ist es, ein Verfahren zum Extrahieren von Merkmalsmengen eines Zeichens zu schaffen, welches ein Beschleunigen des Zeichenerkennungsprozesses ermöglicht. Hierzu wird ein zu verarbeitendes Zeichen in eine verwandte Kategorie klassifiziert, bevor der Zeichen­ erkennungsprozeß durchgeführt wird.
Gemäß der Erfindung ist dies bei einem Verfahren zum Extra­ hieren von Merkmalsmengen eines Zeichens nach dem Oberbe­ griff des Anspruchs 1 durch die einzelnen Schritte im kenn­ zeichnenden Teil des Anspruchs 1 erreicht. Vorteilhafte Wei­ terbildungen der Erfindung sind Gegenstand der Unteransprüche.
Hierbei werden die der Erfindung zugrundeliegenden Ziele bei einem Verfahren zum Extrahieren von Merkmalsmengen eines Zeichens mit Hilfe der folgenden Schritte erreicht. Beim ersten Schritt wird ein Startpunkt ermittelt, von welchem aus ein Verfolgen einer Kontur- oder Umrißlinie eines Bil­ des eines zu identifizierenden Zeichens beginnt, indem ein rechteckiger Bildbereich mit dem Zeichenbild raster-abge­ tastet wird. Beim zweiten Schritt werden Merkmalsmengen er­ mittelt, welche Merkmale eines Kontur- oder Umrißteils des Zeichens anzeigen, indem von dem Startpunkt aus jeweils ein weißes und schwarzes Bildelement des Kontur- oder Umriß­ teils verfolgt wird; hierbei werden die Merkmalsmengen des Konturteils durch eine Gruppe von Codes beschrieben, die verschiedene Typen aufweisen. Beim dritten Schritt wird eine Projektion jedes der verschiedenen Typen der Codes erzeugt, indem die Merkmalsmengen in eine vorbestimmte Projektions­ richtung projiziert werden. Beim vierten Schritt wird ein Paar den Bereich unterteilender Linien erhalten, welche das Zeichenbild in eine vorherbestimmte Teilungsrichtung auf­ schneiden. Beim fünften Schritt wird eine Bezugsposition zum Extrahieren von Merkmalsmengen eines Zeichens be­ stimmt, indem Positionen herausgefunden werden, an welchen die den Bereich teilenden Linien das Zeichenbild schneiden. Der sechste Schritt ist ein Schritt, um die Merkmalsmengen des Zeichens zu extrahieren, welches die Bezugsposition hat, indem Merkmalsmengen der Segmente bezüglich der Bereichstei­ lungslinien extrahiert werden.
Nachfolgend wird die Erfindung anhand von bevorzugten Aus­ führungsformen unter Bezugnahme auf die anliegenden Zeich­ nungen im einzelnen erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm einer Hardware-Konfiguration, mit welcher Ausführungsformen der Erfindung durch­ geführt werden können;
Fig. 2 ein Flußdiagramm von Prozessen, die bei der Erfin­ dung durchgeführt werden;
Fig. 3A und 3B Ansichten, anhand welcher eine Bestimmung eines Startpunktes für ein Konturlinien-Nachfahren er­ läutert wird, was durch Raster-Abtasten eines Zei­ chenbildes erhalten wird;
Fig. 4A bis 4C Darstellungen, anhand welcher bei der Erfin­ dung verwendete Richtungscodes erläutert werden;
Fig. 5A ein Flußdiagramm eines Prozesses, um Richtungs­ codes einem Konturlinienteil eines Zeichenbildes zuzuteilen;
Fig. 5B eine Darstellung, anhand welcher eine Anfangsopera­ tion des Konturlinien-Nachfahrens erläutert wird;
Fig. 6A bis 6C Darstellungen, anhand welcher der Prozeß er­ läutert wird, um Richtungscodes dem Konturlinien­ teil des Zeichenbildes zuzuteilen;
Fig. 7 eine Darstellung zum Erläutern von Bereichstei­ lungslinien;
Fig. 8A und 8B Flußdiagramme eines Algorithmus einer ersten Ausführungsform zum Erhalten von Bereichsteilungs­ linien;
Fig. 9A bis 9C Darstellungen zum Erläutern der Vorteile, die sich aus einer Anwendung der Bereichsteilungslinien ergeben;
Fig. 10A und 10B ins einzelne gehende Flußdiagramme der Fig. 8A bzw. 8B;
Fig. 11 eine Darstellung, anhand welcher Bereichsteilungs­ linien erläutert werden, welche durch einen Al­ gorithmus einer zweiten Ausführungsform zum Erhal­ ten von Bereichsteilungslinien erhalten worden sind;
Fig. 12A und 12B Flußdiagramme eines Algorithmus der zweiten Ausführungsform;
Fig. 13A und 13B Flußdiagramme eines Algorithmus einer drit­ ten Ausführungsform, um Bereichsteilungslinien zu erhalten;
Fig. 14A und 14B Flußdiagramme eines Algorithmus einer vier­ ten Ausführungsform, um Bereichsteilungslinien zu erhalten;
Fig. 15A eine Darstellung, anhand welcher eine Korrektur des Startpunktes erläutert wird, welcher durch das Rasterabtasten des Zeichenbildes erhalten worden ist;
Fig. 15B eine Darstellung, welche eine Folge von Richtungs­ codes zeigt, welche in einem Richtungscode-Speicher- Bereich gespeichert sind;
Fig. 16 ein Flußdiagramm eines Algorithmus einer ersten Ausführungsform zum Korrigieren des Startpunktes;
Fig. 17 ein Flußdiagramm eines Algorithmus einer zweiten Ausführungsform zum Korrigieren des Startpunktes;
Fig. 18A und 18B Darstellungen zum Erläutern eines Fehlers, welcher auf das Vorhandensein von Rauschen zurück­ zuführen ist, das in dem Konturbild eines Zeichens enthalten ist;
Fig. 19A und 19B Ansichten von korrigierten Startpunkten, welche durch den Algorithmus zum Korrigieren des Startpunktes erhalten worden sind:
Fig. 20A und 20B Darstellungen eines Algorithmus einer drit­ ten Ausführungsform zum Korrigieren des Start­ punktes;
Fig. 21A und 21B Darstellungen zum Erläutern von Startpunk­ ten, welche durch den Algorithmus der dritten Aus­ führungsform zum Korrigieren des Startpunktes er­ halten worden sind;
Fig. 22 eine Darstellung, anhand welcher eine Teilung der Folge von Richtungscodes auf der Basis der Bereichs­ teilungslinien erläutert wird;
Fig. 23 eine Darstellung, anhand welcher topologische Merkmalsmengen eines Zeichens erläutert werden;
Fig. 24 ein Gesamtflußdiagramm eines Algorithmus zum Ex­ trahieren von topologischen Merkmalsmengen;
Fig. 25A bis 25C Flußdiagramme eines Algorithmus einer er­ sten Ausführungsform, um eine Beziehung zwischen einem Startpunkt für das Konturlinien-Verfolgen und für Bereichsteilungslinien herauszufinden, und um topologische Merkmalsmengen zu extrahieren (welche durch Schritte 1004 bzw. 1005 festgelegt sind);
Fig. 26A bis 26C; Flußdiagramme eines Algorithmus einer zwei­ ten Ausführungsform von Schritten 1004 und 1005 in Fig. 2;
Fig. 27A bis 27C Flußdiagramme eines Algorithmus einer vier­ ten Ausführungsform von Schritten 1004 und 1005 der Fig. 2;
Fig. 28A und 28B Darstellungen, anhand welchen ein Algorithmus einer fünften Ausführungsform von Schritten 1004 und 1005 der Fig. 2 erläutert wird;
Fig. 29 eine Darstellung zum Erläutern eines Algorithmus einer sechsten Ausführungsform von Schritten 1004 und 1005 der Fig. 2;
Fig. 30 eine Darstellung zum Erläutern eines Algorithmus einer siebten Ausführungsform von Schritten 1004 und 1005 der Fig. 2;
Fig. 31 eine Darstellung zum Erläutern eines Algorithmus einer achten Ausführungsform von Schritten 1004 und 1005 von Fig. 2;
Fig. 32 eine Darstellung zum Erläutern eines Algorithmus einer neunten Ausführungsform von Schritten 1004 und 1005 von Fig. 2;
Fig. 33A und 33B Darstellungen zum Erläutern eines Algorithmus einer zehnten Ausführungsform von Schritten 1004 und 1005 der Fig. 2;
Fig. 34A und 34B Darstellungen zum Erläutern eines Algorith­ mus einer elften Ausführungsform von Schritten 1004 und 1005 der Fig. 2;
Fig. 35A und 35B Darstellungen zum Erläutern eines Al­ gorithmus einer zwölften Ausführungsform von Schritten 1004 und 1005 der Fig. 2 und
Fig. 36A und 36B Darstellungen zum Erläutern eines Algorithmus einer dreizehnten Ausführungsform von Schritten 1004 und 1005 der Fig. 2.
In Fig. 1 ist ein Blockdiagramm zur Durchführung einer Aus­ führungsform eines Verfahrens zum Extrahieren von Merkmals­ mengen eines unbekannten eingegebenen Zeichens gemäß der Erfindung dargestellt. Ein optischer Scanner 10 liest op­ tisch ein Zeichen auf einer Vorlage und erzeugt eine binäre Bilddatenfolge mit binären Einsen, welche ein schwarzes Bildelement anzeigen, und mit binären Nullen, welche ein weißes Bildelement anzeigen. Eine Zentraleinheit 20 führt verschiedene Verarbeitungen durch, welche durch Programme festgelegt sind, die in einem Programmspeicher 30 gespei­ chert sind, welcher durch einen Festwertspeicher 30 gebil­ det ist, der nachstehend der Einfachheit halber als ROM- Speicher bezeichnet wird. Der ROM-Speicher 30 enthält die folgenden, sich auf die Erfindung beziehenden Programme.
Ein Konturverfolgungsprogramm 31 dient dazu, Merkmalsmengen eines Konturteils eines Zeichenbildes zu extrahieren, das in einem rechteckigen Bildbereich ausgebildet ist, der von dem Vorlagenbild segmentiert worden ist, indem ein Kontur­ verfolgen für das Zeichenbild durchgeführt wird. Ein Projek­ tions-Erzeugungsprogramm 32 dient dazu, Projektionen der ex­ trahierten Merkmalsmengen des Zeichenkonturteils für jeden der verschiedenen Richtungscodes zu erzeugen. Ein Bezugspo­ sitions-Bestimmungsprogramm 33 dient dazu, Bereichsuntertei­ lungslinien zu erhalten, welche das Zeichenbild schneiden, und eine Bezugsposition zu bestimmen, indem Merkmalsmengen des unbekannten Zeichens durch eine Bezugnahme auf die er­ haltenen Bereichsteilungslinien zu bestimmen. Ein Programm 34 dient dazu, die Position eines Startpunktes zu korrigie­ ren, von welchem aus die Konturverfolgung startet, um so den Startpunkt zu der festgesetzten Bezugsposition zu ver­ schieben. Ein Programm 35 dient dazu, topologische Merkmals­ mengen des unbekannten Zeichens zu extrahieren. Ein Histo­ gramm-Erzeugungsprogramm 36 dient dazu, ein Histogramm von Richtungscodes (die im einzelnen später noch beschrieben werden) für jedes der Segmente des Zeichenkonturteils zu extrahieren, welche durch Teilen des Zeichenbildes bezüg­ lich Bereichsteilungslinien erhalten werden. Wie später noch beschrieben wird, zeigen die Codes eine Verschiebungsrich­ tung eines Verfolgungspunktes an, an welchem die Verfolgung des Konturteils von dem laufenden Verfolgungspunkt zu einem nächsten Verfolgungspunkt verschoben wird.
In einem Datenspeicher 40 werden verschiedene Daten gespei­ chert, welche in dem System der Fig. 1 verarbeitet worden sind. Der Datenspeicher 40 ist beispielsweise durch einen Festwertspeicher gebildet (welcher nachstehend oft auch als RAM-Speicher bezeichnet wird). Der RAM-Speicher 40 hat die folgenden Speicherbereiche: ein Zeichenbildbereich 41 wird zum Speichern des eingegebenen Bildes verwendet, das mittels des Scanners 10 gelesen worden ist. Ein Konturmerkmalsbild­ bereich 42 wird zum Speichern eines zweidimensionalen Bildes der extrahierten Merkmalsmengen des Konturteils des unbekann­ ten Zeichens verwendet (d. h. eines Zeichenkonturbildes, wel­ chem Richtungscode zugeteilt sind, was nachstehend der Ein­ fachheit halber auch als Konturmerkmalsbild bezeichnet wird). Ein Richtungscode-Speicherbereich 43 wird zum Spei­ chern einer (eindimensionalen) Folge von Richtungscodes des Konturmerkmalsbildes verwendet. Ein Bereich 44 wird zum Speichern einer Projektion jedes der Richtungscodes des Kon­ turmerkmalsbildes verwendet. Ein Bereich 45 wird zum Spei­ chern des Startpunktes für das Konturverfolgen sowie von Werten der y-Koordinate des rechteckigen Bildbereichs ver­ wendet, der in später beschriebenen Schritten berechnet wor­ den ist. Ein Bereich 46 wird zum Speichern von Koordinaten der Bereichsteilungslinien in dem rechteckigen Bildbereich sowie der Bezugsposition zum Extrahieren der Merkmalsmengen des unbekannten Zeichens verwendet. Ein Bereich 47 wird zum Speichern von topologischen Merkmalsmengen des unbekannten Zeichens verwendet. Ein Bereich 48 wird zum Speichern von Histogrammen der Richtungscodes des Konturteils verwendet.
Gemäß der Erfindung werden die Merkmalsmengen des unbekannten Zeichens entweder durch topologische Merkmale oder durch Histogramme von Richtungscodes dargestellt. Um diese Merk­ male des unbekannten Zeichens zu erhalten, werden die Be­ reichsteilungslinien, um das Zeichenbild in eine Anzahl Tei­ le aufzuteilen, immer erhalten. Dann wird eine Merkmalsex­ traktion des unbekannten Zeichens auf der Basis der Bereichs­ teilungslinien durchgeführt.
In Fig. 2 ist ein Flußdiagramm wiedergegeben, das wesentli­ che Schritte der Ausführungsform der Erfindung zeigt. Die jeweiligen Schritte werden nachstehend beschrieben.
Schritt 1001
Zu Beginn des erfindungsgemäßen Prozesses wird durch die Zen­ traleinheit 20 ein eingegebenes Bild in der rechteckigen Form raster-abgetastet, die in dem Zeichenbildbereich 41 in dem ROM-Speicher 40 durchgeführt wird. Das Raster-Abtasten wird von dem oberen Teil des rechteckigen Bildbereichs durchgeführt, welcher ein zu identifizierendes Zeichen hat. Das eingegebene Bild wird durch Segmentieren eines recht­ eckigen Bereichs erhalten, welcher ein Zeichen von einem Vorlagenbild enthält, welches von dem Scanner 10 hergelei­ tet ist. Dann stellt die Zentraleinheit 20 eine Position fest, an welcher eine erste Änderung von einem weißen zu einem schwarzen Bildelement beobachtet wird und bestimmt den festgestellten Punkt als den Startpunkt, von welchem aus das Konturverfolgen beginnt. Wie später noch beschrieben wird, wird die Position des Startpunktes korrigiert, um einen Identifizierungsfehler des unbekannten Zeichens zu vermeiden, was von dem Vorhandensein von in dem Zeichenbild enthaltenem Rauschen herrührt.
In Fig. 3A ist ein Beispiel dargestellt, in welchem ein Ab­ tastgrenzwert, bei welchem die Abtastung zu einer nächsten Abtastzeile verschoben wird, an dem rechten Rand des recht­ eckigen Bildbereichs gesetzt ist. Fig. 3B zeigt ein anderes Beispiel, in welchem ein Abtastgrenzwert an einer Zwischen­ position des rechteckigen Bildbereichs gesetzt ist. Aus Fig. 3A und 3B ist zu ersehen, daß der Startpunkt des Kon­ turenverfolgens nicht immer an einem oberen Ende des Zei­ chens gefühlt wird und von dem Setzen des Abtastgrenzwer­ tes abhängt. Der gefühlte Startpunkt des Konturenverfolgens wird in dem Bereich 45 gespeichert, der zum Speichern des Startpunkts in dem RAM-Speicher 40 vorgesehen ist.
Anschließend verfolgt die Zentraleinheit 20 in oder entgegen der Uhrzeigerrichtung entweder weiße oder schwarze Bildele­ mente, welche an der Konturposition des eingegebenen Zei­ chenbildes positioniert sind, das in dem Zeichenbildbereich 41 in dem RAM-Speicher 40 gespeichert ist, und extrahiert Merkmalsmengen des Zeichenkonturteils. Das Konturverfolgen beginnt von dem festgelegten Startpunkt entsprechend dem in dem ROM-Speicher 30 gespeicherten Kontur-Verfolgungsprogramm 31. Es wird nun angenommen, daß eine Merkmalsmenge des Zei­ chenkonturteils durch einen Richtungscode beschrieben wird, welcher eine Richtung anzeigt, in welcher das Verfolgen des Konturteils von dem aktuellen zu einem nächsten Verfolgungs­ punkt schiftet bzw. verschoben wird. Unter diesem Gesichts­ punkt kann daher ein solcher Richtungscode insbesondere auch als Schieberichtungscode bezeichnet werden.
Fig. 4A bis 4C sind Darstellungen zum Erläutern einer Be­ ziehung zwischen Verschiebungsrichtungen des Verfolgungs­ punktes und Richtungscodes. Eine Position (d. h. Koordinaten) eines interessierenden Bildelements, d. h. eines laufenden bzw. aktuellen Verfolgungspunktes, soll durch einen Posi­ tionsvektor P, Verschiebungen des interessierenden Bildele­ ments zu einem nächsten Verfolgungspunkt sollen durch vier Einheitsvektoren (Verschiebungsrichtungsvektoren) ∆ P, und die nächsten Koordinaten des Verfolgungspunktes, d. h. nächste Verfolgungspunkt, soll durch P + ∆ P dargestellt werden. Jeder der vier Einheitsvektoren ∆ P wird vorher­ bestimmten, in Fig. 4C dargestellten Richtungscodes zuge­ ordnet, so daß die Merkmalsmengen des Zeichenkonturteils durch die Richtungscodes beschrieben werden können. Dies ist in der US-Patentanmeldung mit dem Titel "Musterer­ kennungsverfahren" beschrieben worden (deren Serial Number bis jetzt noch nicht erhalten worden ist; hierbei ist die Anmelderin dieselbe wie bei der vorliegenden Anmeldung); auf diese Anmeldung wird hier Bezug genommen.
Die Gruppe der extrahierten Merkmalsmengen des Zeichenkon­ turteils, der in zweidimensionaler Form beschrieben ist, d. h. das Konturmerkmalsbild, ist in dem Konturmerkmals-Bild­ bereich 42 des RAM-Speichers 40 gespeichert, und die extra­ hierten Richtungscodes selbst, welche in eindimensionaler Form beschrieben sind, sind in dem Richtungscode-Speicher­ bereich 43 des RAM-Speichers 40 gespeichert. Jeweils eine Adresse (Koordinate) des Konturmerkmals-Bildbereichs 42 (die Positionen von Bildelementen) entsprechen der jeweiligen Adresse des Speicherbildbereichs 41. Wenn der nächste Ver­ folgungspunkt bestimmt wird, wird ein Richtungscode, welcher die Verschiebungsrichtung zu dem nächsten bestimmten Verfol­ gungspunkt anzeigt, in einen Speicherbereich des Konturmerk­ mal-Bildbereichs 42 geschrieben, dessen Adresse dem Aktu­ ellen Verfolgungspunkt entspricht. Das heißt, der Inhalt des Bereichs 42 bildet das zweidimensionale Zeichenkontur­ bild, in welchem Richtungscodes schwarzen oder weißen Bild­ elementen zugeordnet sind, welche der Konturverfolgung un­ terzogen worden sind. Jedesmal, wenn der nächste Verfolgungs­ punkt bestimmt wird, wird der entsprechende Richtungscode anschließend in den Speicherbereich 43 eingeschrieben, um dadurch dessen Adresse auf den neuesten Stand zu bringen. Folglich bildet der Inhalt des Speicherbereichs 43 die ein­ dimensionale Richtungscodefolge selbst.
Nunmehr folgt eine weitere Beschreibung der Konturverfolgung. In der folgenden Beschreibung der Konturverfolgung werden weiße Bildelemente des Konturteils verfolgt. In Fig. 5A wird ein binäres Bild rasterabgetastet, und ein erstes weißes Bildelement, auf welches dann der Raster-Abtastrichtung un­ mittelbar ein schwarzes Bildelement folgt, wird festgestellt (Schritt 101 in Fig. 5A). Dann wird ein Vektor P + ∆ P bezüglich des vorstehend erwähnten ersten weißen Bildelements, welches der Startpunkt ist, von welchem aus das Konturver­ folgen startet, auf einen Anfangswert gesetzt (Schritt 102). Bei diesem Schritt wird der Vektor P als die Position (Koor­ dinaten) des Startpunktes gekennzeichnet, und der Einheitsvek­ tor ∆ P wird als der Einheitsvektor gekennzeichnet, dessen Richtung der Raster-Abtastrichtung entgegengesetzt ist.
Fig. 5B ist eine Darstellung, um die Initialisierung des Vektors P und ∆ P im einzelnen zu erläutern. In Fig. 5B zeigen schraffierte Kreise schwarze Bildelemente an, und Zahlen entlang den x- und y-Richtungen zeigen Koordinaten an. Ferner zeigen Pfeile eine Richtung des Raster-Abtastens an. In dem dargestellten Beispiel ist ein mit S angezeigtes, weißes Bildelement ein erstes weißes Bildelement, auf das in der Raster-Abtastrichtung unmittelbar ein schwarzes Bild­ element folgt. Daher wird das mit S bezeichnete weiße Bild­ element als der Startpunkt bezeichnet. Der Positionsvektor des weißen Bildelements S ist als P = (3,4) dargestellt. Die Raster-Abtastrichtung an dem Startpunkt liegt in der Richtung nach rechts. Daher wird der Einheitsvektor ∆ P, welcher zu dem Positionsvektor P des Startpunkts zu addieren ist, als ein Einheitsvektor bestimmt, dessen Richtung der Ab­ tastrichtung entgegengesetzt ist. Das heißt, ∆ P = (-1,0).
Nachdem das Verfolgen der Kontur des binären Bildes begonnen ist, wird das Verschieben des Verfolgungspunktes folgender­ maßen durchgeführt. Vier angrenzende Bildelemente, welche darüber, darunter auf der linken und rechten Seite des interessierenden Punktes angeordnet sind (d. h. vier angren­ zende Bildelemente) werden anschließend in der Uhrzeiger­ richtung überprüft, wobei von einem benachbarten Bildelement begonnen wird, welches auf der linken Seite unter einem Winkel von 90° bezüglich einer Richtung angeordnet ist, in welcher die Spur zu dem interessierenden Punkt weitergeht. Wenn bei dieser Überprüfung das erste überprüfte Bildelement, d. h. das angrenzende Bildelement, das unter einem Winkel von 90° auf der linken Seite bezüglich der Richtung liegt, in welcher die Verfolgung den interessierenden Punkt erreichte, ein weißes Bildelement ist, wird die Verfolgung zu diesem weißen Bildelement verschoben. Wenn andererseits das erste überprüfte Bildelement ein schwarzes Bildelement ist, wird das nächste (oder zweite) angrenzende Bildelement in der Uhrzeigerrichtung überführt. Wenn dieses Element ein weißes Bildelement ist, wird die Verfolgung dort fortgesetzt, und wenn es kein weißes Element ist, wird das dritte angrenzen­ de Bildelement geprüft. Auf diese Weise werden die angren­ zenden Bildelemente nacheinander überprüft, und das erste weiße Bildelement wird festgestellt.
Die vorstehenden Prozeßschritte entsprechen einer Folge von Schritten 103 bis 107 in Fig. 5A. Beim Schritt 103 wird der Einheitsvektor P entgegen dem Uhrzeigersinn um einen Winkel von 90° gedreht. Dann wird auf ein durch den Vektor P + ∆ P dargestelltes Bildelement Bezug genommen und ge­ prüft, ob es ein weißes Bildelement ist oder nicht (Schritte 104 und 105). Wenn das Ergebnis positiv ist, wird beim Schritt 107 fortgefahren, bei welchem das durch den Vektor P angezeigte Bildelement als der Verfolgungspunkt registriert wird. Wenn dagegen das Ergebnis negativ ist, wird auf den Schritt 106 übergegangen, bei welchem der Einheitsvektor ∆ P im Uhrzeigersinn um einen Winkel von 90° gedreht wird. Dann werden ein Schritt 104 und anschließend ein Schritt 105 durch­ geführt. Auf diese Weise wird der Verfolgungspunkt im An­ schluß an den interessierenden Punkt bestimmt und registriert. Im Anschluß an den Schritt 107 wird der aktuelle Vektor P + ∆ P als der Vektor P eingefügt (Schritt 108). Dann wird geprüft, ob die Verfolgung beendet ist oder nicht (Schritt 109). Mit anderen Worten, es wird geprüft, ob die Verfolgung zu dem Startpunkt zurückgekehrt ist oder nicht. Wenn die Verfolgung nicht beendet ist, wird bei der Verfol­ gung an den Schritt 103 zurückgekehrt und die Folge der Schritte 103 bis 109 in der vorstehend beschriebenen Weise durchgeführt. Wenn dagegen die Verfolgung zu dem Startpunkt zurückkehrt, ist sie beendet.
Ein konkretes Beispiel des vorstehend beschriebenen Kontur­ verfolgungsvorgangs ist in Fig. 6A bis 6C dargestellt. Fig. 6A zeigt einen Zustand, unmittelbar bevor der Schritt 103 durchgeführt wird. Ein Symbol bezeichnet einen registrier­ ten Verfolgungspunkt. In dem in Fig. 6A dargestellten Zustand wird das interessierende Bildelement PP + ∆ P an der durch ein Symbol * angezeigten Position als P = (2,3) und ∆ P = (0,1) dargestellt. Dies entspricht dem Schritt 108 in Fig. 5A. Bezüglich dieses interessierenden Punktes wird der Einheitsvektor ∆ P entgegen dem Uhrzeigersinn um 90° ge­ dreht (Schritt 103), so daß ∆ P = (1,0) wird (Richtung nach rechts). Dann wird auf ein Bildelement bei P + ∆ P Bezug genommen, an welchem P = (2,4) und ∆ P = (1,0) ist (Schritt 104). Dieses Bildelement ist an der durch ein Sym­ bol / in Fig. 6B angezeigten Stelle festgelegt. Dann wird geprüft, ob das beim Schritt 104 bestimmte Bildelement ein weißes Bildelement ist oder nicht (Schritt 105). In dem dar­ gestellten Beispiel ist das Bildelement an der Stelle ∆ ein weißes Bildelement. Daher wird der durch das Symbol * gekenn­ zeichnete, interessierende Punkt als der Verfolgungspunkt registriert (Schritt 107). Dann wird der interessierende Punkt an die Position ∆ verschoben (Schritt 108). Zu diesem Zeitpunkt ist dann P = (2,4) und ∆ P = (1,0). (Richtung nach rechts). Auf diese Weise wird der Richtungscode, welcher dem Einheitsvektor P entspricht, in einem Speicherbereich des Vektors ∆ P (der aktuelle Verfolgungspunkt) in dem Kon­ turmerkmals-Speicherbereich 43 geschrieben.
Schritt 1002
Die Zentraleinheit 20 weist auf die Merkmalsmengen des in dem Speicherbereich 42 gespeicherten Konturenteils hin (d. h. auf das zweidimensionale Konturmerkmalsbild) und erzeugt eine Projektion jedes der verschiedenen Typen von Rich­ tungscodes in der horizontalen oder vertikalen Richtung. Diese Operation wird durch das in dem ROM-Speicher 30 ge­ speicherte Programm 32 gesteuert, um die Projektion jedes der verschiedenen Typen der Richtungscodes zu erzeugen. Die erzeugte Projektion jedes der verschiedenen Typen der Rich­ tungscodes wird in dem Bereich 44 des RAM-Speichers 40 ge­ speichert, um dadurch die Projektion jedes der Richtungs­ codes zu speichern.
Danach erhält die Zentraleinheit 20 ein Paar Bereichstei­ lungslinien, um das zweidimensionale Konturmerkmalsbild mit Hilfe der Projektion jedes der verschiedenen Typen der Richtungscodes aufzuteilen, und sucht Positionen, an welchen die Teilungslinien das Konturmerkmalsbild schneiden. Das eine Paar Bereichsteilungslinien teilt auch den rechteckigen Bildbereich in drei rechteckige Unterbereiche. Die erhalte­ nen Positionen werden in dem Bezugspositions-Speicherbereich 46 des RAM-Speichers 40 gespeichert. Eine der erhaltenen Positionen ist eine Bezugsposition bezüglich der Gruppe der Merkmalsmengen des Konturteils des Zeichens. Der vorstehende Prozeß wird von der Zentraleinheit 20 entsprechend dem in dem ROM-Speicher 30 gespeicherten Bezugspositions-Bestim­ mungsprogramm 33 durchgeführt.
Nunmehr werden Beispiele beschrieben, um Bereichsteilungs­ linien zu erhalten.
Ausführungsform 1 von Schritt 1002
Bei der Ausführungsform 1 wird die Projektion jedes der verschiedenen Typen der Richtungscodes in der horizontalen Richtung verwendet. Positionen, an welchen die Projektion des Richtungscodes # 1 mit der Projektion des Richtungscodes # 3 zusammenfällt, werden gesucht, um jeweils von der oberen und unteren Seite des rechteckigen Bildbereichs zu starten. Das erste Zusammenfallen zwischen den Richtungscodes # 1 und # 3 wird, von der oberen Seite des rechteckigen Bildbereichs aus betrachtet, als eine obere Bereichsteilungslinie bestimmt, welche in der horizontalen Richtung verläuft. Ebenso wird das erste Zusammenfallen zwischen den Richtungscodes # 1 und # 3, von der Unterseite des rechteckigen Winkelbereichs her gesehen, als eine untere Bereichsteilungslinie bestimmt, welche in der horizontalen Richtung verläuft.
Fig. 7 ist eine Darstellung zum Erläutern der Ausführungs­ form 1. Fig. 7(A) zeigt ein Bildmuster eines in dem recht­ eckigen Bildbereich gebildeten Zeichens "S" zusammen mit Richtungscodes, die erhalten worden sind, indem weiße Bild­ elemente, die an schwarze Bildelemente des Konturenteils des Zeichenbilds angrenzen, entgegen der Uhrzeigerrichtung verfolgt werden. Die dargestellten Richtungscodes zeigen die Gruppe der Merkmalsmengen des Konturenteils des Zeichens "S" an, welches durch das Abtasten oder Scannen erhalten wor­ den ist. Wie vorher beschrieben, wird das Bild, welches durch die zweidimensionale Anordnung der Richtungscodes ge­ bildet worden ist, als das zweidimensionale Konturenmerk­ malsbild bezeichnet.
Fig. 7(B) zeigt eine Projektion jedes der Richtungscodes # 1 bis # 5, welche durch Projizieren des Merkmalskonturenbildes in der horizontalen Richtung erhalten worden sind. Die Pro­ jektion kann folgendermaßen erhalten werden. Beispielsweise sind bezüglich der ersten Linie des rechteckigen Bildbereichs die Zahlen der Richtungscodes # 1 bis # 4, 1, 0, 0 bzw. 5. Die Zahl, welche für jede der verschiedenen Typen der Richtungs­ codes erhalten worden ist, zeigt den jeweiligen Projektions­ wert an. Ebenso können die Projektionen bezüglich der Linie 2 bis 22 erhalten werden. In Fig. 7 (A) bezeichnen CUT-Y 1 und CUT-Y 2 Bereichsteilungslinien an den oberen bzw. unteren Seiten des Zeichenbildes, welche auf folgende Weise erhalten werden. In Fig. 7(B) sind die Projektionen der Richtungsco­ des # 1 bis # 4 dargestellt.
Fig. 8A ist ein Flußdiagramm eines Algorithmus, um die Be­ reichsteilungslinie CUT-Y 1 an der oberen Seite des Zeichen­ bildes zu erhalten; Fig. 8B ist ein Flußdiagramm eines Al­ gorithmus, um die untere Bereichsteilungslinie CUT-Y 2 an deren Unterseite zu erhalten. Der Algorithmus für die Be­ reichsteilungslinie CUT-Y 1 hat eine symmetrische Beziehung zu dem Algorithmus für die Bereichsteilungslinie CUT-Y 2. Nunmehr wird der Algorithmus für die Bereichsteilungslinie CUT-Y 1 beschrieben.
Beim Schritt 111 der Fig. 8A wird eine Endposition eines Bereichs zum Suchen der Bereichsteilungslinie CUT-Y 1 be­ schrieben. Bei diesem Schritt wird eine Dicke des Zeichens festgestellt. Im Beispiel der Fig. 7(A) ist die erste Posi­ tion, an welcher der Wert der Projektion des Richtungscodes Nr. 2 in der horizontalen Richtung gleich einem Wert aus null wird, auf der Linie 4 festgelegt. Nunmehr sollten die Positionen der Projektion des auf diese Weise erhaltenen Richtungscodes # 2 auf der Linie 4 durch LIM 1+1 dargestellt werden. Dann wird die Endposition des Bereichs zum Suchen der Bereichsteilungslinie CUT-Y 1 als eine Position in der Spalte des Richtungscodes # 2 bestimmt, indem von der Position LIM 1+1 um eine Linie weitergegangen wird. Die Endposition des dadurch erhaltenen Bereichs ist durch LIM 1 dargestellt.
Beim Schritt 112 wird eine Startposition des Bereichs zum Suchen der Bereichsteilungslinie CUT-Y 1 bestimmt. Beim Schritt 112 wird eine Position erhalten, an welcher die beiden Werte der Projektionen der Richtungscodes # 1 und # 3, welche in horizontaler Richtung projiziert worden sind, gleich Werten außer null werden. Die Startposition des auf diese Weise erhaltenen Bereichs entspricht dann dem oberen Ende des Zeichenbildes. In dem Beispiel der Fig. 7( ) ist die Linie 2 die Startposition des Bereichs.
Schritte 113 und 114 legen eine Bedingung zum Bestimmen der Bereichsteilungslinie CUT-Y 1 fest. Beim Schritt 113 wird eine Position, an welcher das erste Zusammenfallen zwischen den Werten der Projektionen der Richtungscodes # 1 bis # 3 erhalten wird, in Abwärtsrichtung gesucht, wobei von der Linie gestartet wird, welche der beim Schritt 112 erhaltenen Linie am nächsten ist, d. h. von der Linie 3. Wenn dann das erste Zusammenfallen festgestellt wird, wird eine Linie, bei welcher das erste Zusammenfallen festgestellt wird, als die Bereichsteilungslinie CUT-Y 1 bestimmt (Schritt 113). Im Bei­ spiel der Fig. 7(A) wird die Linie 3 als die Bereichstei­ lungslinie CUT-Y 1 bestimmt, welche durch die Ausrichtung von |+|-Zeichen dargestellt ist. Wenn die der vorstehenden Be­ dingung genügende Position nicht gefunden wird, wird eine Linie mit der Endposition LIM 1 des Bereichs als die Bereichs­ teilungslinie CUT-Y 1 bestimmt (Schritt 114).
Nunmehr wird anhand von Fig. 8(B) der Algorithmus beschrie­ ben, um die Bereichsteilungslinie CUT-Y 2 an der Unterseite des Zeichenbereichs zu bestimmen. Beim Schritt 121 wird eine Position, an welcher der Wert der Projektion des Richtungs­ codes # 4 gleich einem Wert aus null wird, gesucht, wobei von der Unterseite des Bereichs der Fig. 7(A) gestartet wird. Die festgestellte Position wird durch LIM 2-1 dargestellt. Eine Position LIM 2, welche auf die Position LIM 2-1 folgt, wird als eine Endposition eines Bereichs zum Suchen der Bereichsteilungslinie CUT-Y 2 bestimmt. Dann wird beim Schritt 122 eine Position, an welcher die Werte der Projektion der Richtungscode # 3 in der horizontalen Richtung gleich Werten außer null werden, erhalten, in dem aufgesucht wird, wobei von der Unterseite des Bereichs aus gestartet wird. Die festgestellte Position beim Schritt 122 ist die unterste Position des Zeichenbildes. Danach wird eine Position, an welcher das erste Zusammenfallen zwischen den Richtungscodes # 1 und # 3 erhalten wird, in Aufwärtsrichtung gesucht, wobei von der Richtung ausgegangen wird, die der beim Schritt 122 erhaltenen Linie vorausgeht. Wenn eine derartige Position festgestellt wird, wird eine Linie mit der festgestellten Position als die Bereichsteilungslinie CUT-Y 2 festgesetzt (Schritt 123). Wenn eine solche Position nicht festgestellt wird, wird die Linie mit der Endposition LIM 2 als die Be­ reichsteilungslinie CUT-Y 2 bestimmt (Schritt 124).
Die vorstehende Bedingung zum Bestimmen der Bereichsteilungs­ linie hat eine Funktion, um mit Rauschen fertig zu werden, das in dem Zeichenbild enthalten ist. Fig. 9A bis 9C sind Darstellungen, anhand welcher die vorstehende Funktion erläutert wird. Fig. 9A gilt für einen Fall, wo das Zeichen­ bild kein Rauschen hat, während Fig. 9B und 9C bezüglich der Fälle gilt, wo das Zeichenbild ein Rauschen aufweist. Rau­ schen, das in dem Zeichenbild der Fig. 9B enthalten ist, ist an Positionen (x,y) = (10,3) und (11,3) festgelegt, während Rauschen, das in dem Zeichenbild der Fig. 9C enthalten ist, an Positionen (6,2) und (11,2) festgelegt ist. Aus Fig. 9B und 9C ist zu ersehen, daß der Algorithmus der Fig. 8A die zugehörige Position der Bereichsteilungslinie CUT-Y 1 be­ stimmen kann, ohne durch das Vorhandensein von Rauschen be­ einflußt zu werden, das im oberen Ende des Zeichenbildes enthalten ist. In Fig. 9B ist die Bereichsteilungslinie CUT-Y 1 auf der Linie 3 festgelegt, und die Bereichsteilungslinie CUT-Y 1 der Fig. 9C ist auf der Linie 3 festgelegt. Aus der vorstehenden Erklärung ist zu ersehen, daß die Bereichstei­ lungslinie CUT-Y 2 erhalten werden kann, ohne durch das vor­ handene Rauschen beeinflußt zu werden, das am unteren Ende des Zeichenbildes enthalten ist.
Fig. 10A ist ein detailliertes Flußdiagramm des Algorithmus zum Bestimmen der in Fig. 8A dargestellten Bereichsteilungs­ linie CUT-Y 1, während Fig. 10B ein detailliertes Flußdiagramm des Algorithmus zum Bestimmen der in Fig. 8B dargestellten Bereichsteilungslinie CUT-Y 2 ist. Eine Schleife aus Schrit­ ten 132 und 133, eine Schleife aus Schritten 136 bis 138 und eine Schleife aus Schritten 139 bis 141 in Fig. 10A entspre­ chen den Schritten 111, 112 bzw. 113 der Fig. 8A. Eine Schleife aus Schritten 152 und 153, eine Schleife aus Schrit­ ten 156 bis 158 und eine Schleife aus Schritten 159 bis 161 der Fig. 10B entsprechen den Schritten 121, 122 bzw. 123 der Fig. 8B. In Fig. 10A und 10B bezeichnet "Y" eine Y′-te Linie (Zeile) des rechteckigen Bereichs, welcher das Zeichen­ bild enthält, und "# 1(Y)", "# 2(Y)" und "# 3(Y)" bezeichnen Werte der Projektionen der Richtungscodes # 1, # 2 und # 3. "END OF BUF" bezeichnet die niedrigste Adresse der erzeug­ ten Projektion.
In Fig. 10A wird ein Wert 0 beim Schritt 131 auf Y gesetzt. Dann wird Y beim Schritt 132 um 1 inkrementiert. Dann wird der Wert der # 2 (Y) mit einem Wert 0 beim Schritt 133 ver­ glichen. Ein Symbol ":" zeigt einen Vergleich an. Wenn beide Werte einander gleich sind, wird auf Schritt 132 zurückge­ kehrt. Andernfalls wird LIM 1 beim Schritt 134 auf Y-1 ge­ setzt, und Y wird auf einen Wert null gesetzt. Im Beispiel der Fig. 7 wird die Endposition LIM 1 beim Schritt 134 auf der Linie 3 (LIM 1 = 3) festgelegt. Beim Schritt 136 wird Y um 1 inkrementiert, und CK wird beim Schritt 137 auf MINI [# 1(Y), # 3(Y)] gesetzt. Ein Operator MINI [# 1(Y), # 3(Y)] bezeichnet eine Auswahl kleiner 1 aus # 1(Y) und # 3(Y), und "CK" ist ein Arbeitsbereich. Beim Schritt 138 wird der Wert CK mit null verglichen. Wenn beide Werte einander nicht gleich sind, wird auf den Schritt 136 zurückgekehrt. Wenn dagegen die beiden Werte einander gleich sind, wird beim Schritt 139 fortgefahren. Im Beispiel der Fig. 7 wird die Linie 2, an welcher die Werte der Projektionen der Richtungs­ codes # 1 und # 3 nicht null sind, beim Schritt 138 festgelegt. Danach wird Y beim Schritt 139 um 1 inkrementiert. Dann wird Y beim Schritt 140 mit LIM 1 verglichen. Wenn LIM 1 größer als Y ist, wird # 1(Y) mit # 3(Y) beim Schritt 141 verglichen. Wenn die beiden Werte nicht dieselben sind, wird auf den Schritt 139 zurückgegangen. Wenn Y beim Schritt 140 größer als LIM 1 ist, geht das Verfahren auf Schritt 142 über. Beim Schritt 142 wird eine Linie mit dem aktuellen Wert von Y als die Bereichsteilungslinie CUT-Y 1 bestimmt.
Die Schritte 151 bis 162 der Fig. 10B ergeben sich aus der Beschreibung des Algorithmus der Fig. 10A, so daß eine de­ taillierte Beschreibung der Fig. 10B entfallen kann.
Ausführungsform 2 von Schritt 1002
Bei der Ausführungsform 2 wird die horizontale Projektion jedes der Richtungscodes # 1 bis # 4 wie im Fall der vorste­ hend beschriebenen Ausführungsform 1 benutzt. Bei der Aus­ führungsform 2 ist die Aufmerksamkeit auf die Richtungscodes # 2 und # 4 gerichtet, welche die horizontalen Richtungen an­ zeigen.
Fig. 11 ist eine Darstellung zum Erläutern der Ausführungs­ form 2, während Fig. 12A ein Flußdiagramm eines Algorithmus zum Bestimmen der Bereichsteilungslinie CUT-Y 1 an der oberen Seite des Zeichenbildes und Fig. 12B ein Flußdiagramm eines Algorithmus zum Bestimmen der Bereichsteilungslinie CUT-Y 2 an der unteren Seite des Zeichenbildes ist. In Fig. 12A wird bei Schritten 171 und 172 ein Bereich erhalten, in welchem die Bereichsteilungslinie CUT-Y 1 gesucht wird. Schritte 173 und 174 legen eine Bedingung zum Bestimmen der Bereichstei­ lungslinie CUT-Y 1 fest. Schritte der Fig. 12B, welche den Schritten der Fig. 12A entsprechen, haben dieselbe Funktion.
Beim Schritt 171 in Fig. 12A wird eine Position, an welcher der Wert der horizontalen Projektion des Richtungscodes # 2 gleich einem Wert aus null wird, gesucht, wobei von dem oberen Teil des in Fig. 11(A) dargestellten, rechteckigen Bereichs gestartet wird. Diese Position entspricht LIM 1+1. Dann wird beim Schritt 172 eine Position, an welcher der horizontalen Projektion jedes der Richtungscodes # 1 und # 3 gleich einem Wert aus null wird, gesucht, wobei von dem oberen Teil des rechteckigen Bereichs ausgegangen wird. Da­ nach wird beim Schritt 172 eine Position, bei welcher der kleinste Wert der Projektion des Richtungscodes # 2 erhalten wird in Abwärtsrichtung in dem Bereich von der Position aus, von welche der beim Schritt 172 erhaltenen Position am nächsten ist, zu der Endposition LIM 1 des Bereichs gesucht. Wenn eine derartige Position beim Schritt 173 festgestellt wird, wird die Linie mit der festgestellten Position als die Bereichsteilungslinie CUT-Y 1 bestimmt (Schritt 174). Wenn die Position beim Schritt 173 nicht festgestellt wird, wird die Linie mit der Endposition LIM 1 als die Positionsteilungs­ linie CUT-Y 1 bestimmt (Schritt 174).
In Fig. 12B wird beim Schritt 181 eine Position, an welcher der Wert der horizontalen Projektion des Richtungscodes # 4 gleich einem Wert außer null wird, gesucht, wobei von der Unterseite des rechteckigen Bereichs gestartet wird. Die gefundene Position entspricht der Position LIM 2-1. Dann wird beim Schritt 182 eine Position, an welcher der Wert der horizontalen Projektion jedes der Richtungscodes # 1 und # 3 gleich einem Wert außer null wird, gesucht, wobei von der Unterseite des rechteckigen Bereichs begonnen wird. Danach wird beim Schritt 183 eine Position, an welcher der kleinste Wert der Projektion des Richtungscodes # 4 erhalten wird, in Aufwärtsrichtung in dem Bereich von der Position, welche der vorstehend beim Schritt 182 erhaltenen Position am nächsten ist, zu der Endposition LIM 2 hin gesucht. Wenn eine derartige Position beim Schritt 183 festgestellt wird, wird die Linie mit der festgestellten Position als die Bereichsteilungslinie CUT-Y 2 bestimmt (Schritt 184). Wenn dagegen die Position beim Schritt 183 nicht festgestellt wird, wird die Linie, welche der Endposition LIM 2 zugeordnet ist, als die Bereichsteilungs­ linie CUT-Y 2 bestimmt (Schritt 184).
Auf diese Weise werden die obere Bereichsteilungslinie CUT-Y 1, die auf der Linie 3 festgelegt ist, und die untere Bereichsteilungslinie CUT-Y 2, welche an der Linie 19 festge­ legt ist, erhalten.
Ausführungsform 3 von Schritt 1002
Bei der Ausführungsform 3 wird eine Projektion jedes der Richtungscodes # 1 bis # 4 in der vertikalen Richtung verwen­ det. Bei der Ausführungsform 3 wird eine Position, an wel­ cher ein erstes Zusammenfallen zwischen den Werten der Rich­ tungscodes # 2 und # 4 erhalten wird, von den rechten und lin­ ken Enden des rechteckigen Bereichs aus gesucht.
Fig. 13A ist ein Flußdiagramm eines Algorithmus zum Bestim­ men einer Bereichsteilungslinie, welche auf der linken Seite des rechteckigen Bereichs angeordnet ist, während Fig. 13B ein Flußdiagramm eines Algorithmus zum Bestimmen einer Be­ reichsteilungslinie ist, die auf der rechten Seite des recht­ eckigen Bereichs angeordnet ist. Der Algorithmus der Fig. 13A weist Schritte 191 bis 194 auf, während der Algorithmus der Fig. 13B Schritte 201 bis 204 aufweist. Die Ausführungs­ form 3 entspricht einem Algorithmus, der durch Anwenden des Algorithmus der beschriebenen Ausführungsform 1 vor der Be­ stimmung der Bereichsteilungslinien in der vertikalen Rich­ tung erhalten worden ist. Daher wird der Algorithmus von Fig. 13A und 13B dadurch erhalten, daß einfach "oben" und "unten" von Fig. 8A und 8B durch "links" und "rechts" bzw. "# 1" und "# 3" durch "# 2" und "# 4" ausgetauscht werden. Aus diesem Grund kann eine Beschreibung der Fig. 13A bis 13B entfallen.
Ausführungsform 4 von Schritt 1002
In der Ausführungsform 4 wird die vertikale Projektion je­ des der Richtungscodes # 1 bis # 4 wie im Falle der Ausführungs­ form 5 verwendet. In der Ausführungsform 4 wird den Rich­ tungscodes # 1 und # 3 Beachtung geschenkt. Bei der Ausführungs­ form 4 wird eine Position gesucht, an welcher der kleinste Wert der vertikalen Projektion des Richtungscodes # 1 in ei­ nem Bereich zum Suchen der Bereichsteilungslinie liegt, die auf der linken Seite des rechteckigen Bereichs angeordnet ist, wobei von dem linken Ende dieses Bereichs begonnen wird. Bei der Ausführungsform 4 wird eine Position gesucht, bei welcher der kleinste Wert der vertikalen Projektion des Richtungscodes # 3 in einem Bereich zum Suchen der Bereichs­ teilungslinie liegt, die auf der rechten Seite des recht­ eckigen Bereichs gestartet wird.
Fig. 14A ist ein Flußdiagramm eines Algorithmus zum Bestim­ men der Bereichsteilungslinie auf der linken Seite des rechteckigen Bereichs, während Fig. 14B ein Flußdiagramm eines Algorithmus zum Bestimmen der Bereichsteilungslinie auf der rechten Seite des rechteckigen Bereichs ist. Schritte 211 und 212 der Fig. 14A sind dieselben wie die Schritte 191 und 192 der Fig. 13A. Das heißt, beim Schritt 211 wird eine Position gesucht, an welcher der Wert der vertikalen Projektion des Richtungscodes # 3 gleich einem Wert aus null wird, wobei von dem linken Ende des rechteckigen Bereichs aus gestartet wird. Die gefundene Position entspricht LIM 1+1; daher ist das Ende des Bereichs zum Erhalten der Bereichs­ teilungslinie auf der linken Seite die Position LIM 1. Beim Schritt 212 wird eine Position gesucht, an welcher die bei­ den Werte der Projektionen der Richtungscodes # 2 und # 4 gleich Werten außer null sind. Beim Schritt 213 wird in ei­ ner Richtung nach rechts eine Position gesucht, an welcher der kleinste Wert der Projektion des Richtungscodes # 1 in einem Bereich zwischen der Linie, welche (in der Richtung nach rechts) der beim Schritt 211 erhaltenen Position folgt, und der Position LIM 2 erhalten. Dann wird beim Schritt 214 eine Linie mit der festgestellten Position als die Bereichs­ teilungslinie auf der linken Seite bestimmt.
Schritte 221 und 222 der Fig. 14A sind dieselben wie die Schritte 201 und 202 von Fig. 13B. Beim Schritt 223 wird in der Richtung nach links eine Position gesucht, an welcher der kleinste Wert der Projektion des Richtungscodes # 3 in dem Bereich zwischen der Linie, welche (in der Richtung nach links) der beim Schritt 221 erhaltenen Position folgt, und der Position LIM 2 erhalten wird. Dann wird beim Schritt 224 eine Linie mit der festgestellten Position als die Be­ reichsteilungslinie auf der linken Seite bestimmt.
Die Ausführungsformen 1 bis 4 beziehen sich auf den Fall, wo die Merkmalsmengen des Konturteils durch die Richtungs­ codes # 1 bis # 4 dargestellt sind. Jedoch sind die Ausfüh­ rungsformen 1 bis 4 nicht auf das Verarbeiten des Kontur­ merkmalsbildes beschränkt, welches durch die Richtungscodes dargestellt ist und sind auch bei Fällen anwendbar, wo die herkömmlichen Codes außer den Richtungscodes verwendet wer­ den.
Schritt 1003 (Fig. 2)
Die Zentraleinheit 20 korrigiert den Startpunkt für das Konturverfolgen durch Bezugnahme auf die Bereichsteilungs­ linie CUT-Y 1, welche bei dem vorstehend beschriebenen Schritt 1002 erhalten ist. Die Zentraleinheit 20 führt diese Korrek­ tur entsprechend dem Programm 34 zum Korrigieren des Start­ punktes für die in dem ROM-Speicher 30 gespeicherte Kontur­ verfolgung durch. Die Zentraleinheit 20 findet eine Position an welcher die Bereichsteilungslinie CUT-Y 1 das Konturmerk­ malsbild schneidet. Die gefundene Position ist ein korrigier­ ter Startpunkt für die Konturverfolgung. Der korrigierte Startpunkt zeigt eine Bezugsposition für die Merkmalsextrak­ tion des unbekannten Zeichens an. Dann wird eine Folge der in dem Speicherbereich 43 gespeicherten Richtungscodes wie­ der so angeordnet, daß die Folge der Richtungscodes wieder von dem korrigierten Startpunkt aus startet.
Fig. 15A ist eine Darstellung zum Erläutern des Schrittes 1003. Der rechteckige Bereich der Fig. 15A ist derselbe wie in Fig. 7(A). Die Koordinaten des beim Schritt 1001 er­ haltenen Startpunktes sind (X, Y) = (6, 2), wie in Fig. 15A dargestellt ist. In diesem Fall wird eine Folge der Richtungscodes, die von dem Startpunkt aus startet, in dem Richtungscode-Speicherbereich 43 in der Folge des Auftre­ tens der Richtungscodes gespeichert, wie in Fig. 15B dar­ gestellt. In Fig. 15B ist mit einem Bezugszeichen 60 der Richtungscode-Speicherbereich 43 bezeichnet, und Zahlen, welche an dem Bereich 43 angebracht und in der horizontalen und vertikalen Richtung ausgerichtet sind, werden dazu ver­ wendet, eine Position in diesem Bereich 43 anzuzeigen. In dem dargestellten Beispiel schneidet die Bereichsteilungslinie CUT-Y 1 das Konturmerkmalsbild an dem Koordinaten (4,3) des rechteckigen Bereichs. Daher werden die Koordinaten (4,3) als der korrigierte Startpunkt festgelegt. Dann wird die Folge der in Fig. 15B dargestellten Richtungscodes wieder so angeordnet, daß die wieder angeordnete Folge der Rich­ tungscodes von dem korrigierten Startpunkt aus startet. Das Wiederanordnen der in dem Speicherbereich 43 gespeicherten Richtungscodes kann die Folge der Richtungscodes bilden, welche für den korrekten Startpunkt beginnt, ohne durch Rauschen, u. ä. beeinflußt zu werden. Nunmehr werden Ausfüh­ rungsformen eines Algorithmus zum Erhalten des korrigierten Startpunktes für die Konturverfolgung beschrieben.
Ausführungsform 1 von Schritt 1003
Bei der Ausführungsform 1 wird eine Richtung bestimmt, in welcher die Folge der Richtungscodes zu verfolgen ist, wobei von dem ursprünglichen Startpunkt gestartet wird, der beim Schritt 1001 erhalten worden ist, indem die Y-Koordinate der Bereichsteilungslinie CUT-Y 1 mit der y-Koordinate des beim Schritt 1001 erhaltenen Startpunkts verglichen wird, und es wird die Position des korrigierten Startpunktes in dem Spei­ cherbereich 43 dadurch gefunden, daß die Folge der Richtungs­ codes in der bestimmten Richtung verfolgt wird.
Fig. 16 ist ein detailliertes Flußdiagramm des Schrittes 1003 des Algorithmus zum Korrigieren des Startpunktes für die Konturverfolgung. Die in dem Algorithmus verwendeten Symbole haben die folgenden Bedeutungen:
CK Y: eine Änderung, welche einen Wert der y-Koordi­ nate des rechteckigen Bereichs anzeigt;
STP Y: ein Wert der y-Koordinate des ursprünglichen Startpunkts;
CUT Y(1): ein Wert der y-Koordinate der Bereichstei­ lungslinie, welche auf der oberen Seite des Zeichenbildes positioniert ist;
COPOINT: ein Zeiger zum Anzeigen einer Position eines Richtungscodes in der in dem Speicherbereich 43 gespeicherten Folge, wobei die Richtungscodes in Reihenfolge ihres Auftretens gespeichert werden;
NO CODE: die Anzahl Richtungscodes, welche in dem Speicherbereich 43 vorhanden sind;
CODE CHAIN(*): ein Richtungscode, welcher an einer durch COPOINT angezeigten Position gespeichert ist; und
NEWST: Eine Position in dem Speicherbereich, an welchem der korrigierte Startpunkt gespeichert ist.
Beim Schritt 230 der Fig. 16 wird CK Y auf einen Wert der y-Koordinate des ursprünglichen Startpunkts STP Y gesetzt, der beim Schritt 1001 der Fig. 2 erhalten worden ist. Dann wird beim Schritt 231 der Wert CK Y der y-Koordinate des Startpunkts mit dem Wert CUT Y(1) der y-Koordinate der Be­ reichsteilungslinie CUT-y 1 verglichen. Wenn der y-Koordi­ nate des Startpunkts CK Y kleiner als derjenigen der y-Koor­ dinate der Bereichsteilungslinie CUT Y(1) ist, wird beim Schritt 232 fortgefahren. Andererseits wird, wenn CK Y größer als CUT Y(1) ist, beim Schritt 238 fortgefahren. Eine Folge aus Schritten 232 bis 237 ist ein Fall, bei welchem der ursprüngliche Startpunkt an oder über der Bereichstei­ lungslinie CUT-Y 1 positioniert ist, und eine Folge aus Schritten 238 bis 243 bezieht sich auf einen Fall, wo der ursprüngliche Startpunkt unter der Bereichsteilungslinie CUT-Y 1 positioniert ist. Bei der Folge aus den Schritten 232 bis 237 wird die Position des korrigierten Startpunktes da­ durch erhalten, daß die Folge der Richtungscodes in der durch einen Pfeil IV in Fig. 15B angezeigten Richtung ver­ folgt wird. Bei der Folge aus den Schritten 238 bis 243 wird der korrigierte Startpunkt dadurch erhalten, daß die Folge der Richtungscodes in der umgekehrten Richtung ver­ folgt wird, welche durch einen Pfeil VI in Fig. 15B ange­ zeigt ist.
Beim Schritt 232 wird der Zeiger COPOINT auf einen Wert 0 gesetzt. Dann wird der Zeiger COPOINT beim Schritt 233 um 1 inkrementiert. Anschließend wird beim Schritt 234 geprüft, welcher Richtungscode an einer durch COPOINT angezeigten Position gespeichert ist. Wenn der Richtungscode # 2 oder # 4 gefunden ist, wird auf den Schritt 233 zurückgekehrt. Wenn der Richtungscode # 3 beim Schritt 234 gefunden wird, wird auf den Schritt 236 übergegangen. Wenn der Richtungscode # 4 beim Schritt 234 gefunden wird, wird auf den Schritt 237 übergegangen. Beim Schritt 235 wird der laufende Wert der y-Koordinate um 1 inkrementiert. Beim Schritt 236 wird der laufende Wert der y-Koordinate um 1 dekrementiert. Dann wird beim Schritt 237 CK Y mit CUT Y(1)+1 verglichen, das heißt, der Wert der y-Koordinate, der beim Schritt 235 oder 236 bestimmt worden ist, wird mit dem Wert der y-Koor­ dinate der Linie verglichen, welche der Bereichsteilungs­ linie CUT-y 1 folgt. Wenn sich die beiden Werte voneinander unterscheiden, wird auf den Schritt 233 zurückgegangen. Wenn andererseits die beiden Werte dieselben sind, wird beim Schritt 244 fortgefahren. Dann wird die aktuelle Position in dem Speicherbereich 43, welche durch COPOINT angezeigt ist, als die Position des korrigierten Startpunktes NEWST gesetzt. Dann wird beim Schritt 245 die Folge der in dem Speicherbereich 43 gespeicherten Richtungscodes so umge­ stellt, daß die umgestellte Folge der Richtungscodes von dem Schritt 244 festgelegten Startpunkt aus startet. In der Fol­ ge der Fig. 15B startet die umgestellte Folge der Rich­ tungscodes von der Position 4 aus, an welcher der Richtungs­ code # 1 gespeichert ist. Die Richtungscodes # 4, # 1 und # 4, welche dem Richtungscode # 1 vorangehen, welcher an dem korri­ gierten Startpunkt angeordnet ist, werden in dieser Folge verschoben, um so dem Richtungscode # 1 zu folgen, welcher an der Position 106 angeordnet ist.
Wenn andererseits beim Schritt 231 der Wert CK Y der y- Koordinate des Startpunkts größer als der Wert CUT Y(1) der y-Koordinate der Bereichsteilungslinie ist, wird beim Schritt 238 fortgefahren. Beim Schritt 238 wird der Zeiger COPOINT um 1 dekrementiert. Dann wird beim Schritt 240 ge­ prüft, welcher Richtungscode an der durch den Zeiger COPOINT angezeigten Position gespeichert ist. Wenn der Richtungscode # 2 oder # 4 gefunden ist, wird auf den Schritt 239 zurück­ gekehrt. Wenn der Richtungscode # 1 beim Schritt 240 gefun­ den ist, wird beim Schritt 241 fortgefahren, wo dann der Wert der y-Adresse um 1 dekrementiert wird. Wenn der Rich­ tungscode # 3 gefunden ist, wird beim Schritt 242 fortge­ fahren, wobei der Wert der y-Adresse um 1 dekrementiert wird. Dann wird beim Schritt 243 der Wert der y-Adresse, der beim Schritt 241 oder 242 festgelegt worden ist, mit einem Wert CUT Y(1)-1 der Linie unmittelbar vor der Bereichsteilungs­ linie CUT Y 1 verglichen. Wenn die beiden Werte nicht die­ selben sind, wie beim Schritt 243, wird auf den Schritt 239 zurückgekehrt. Wenn die beiden Werte miteinander identisch sind, wird beim Schritt 244 fortgefahren.
Nunmehr wird das Flußdiagramm der Fig. 16 unter Bezugnahme auf das Beispiel der Fig. 15A beschrieben. Beim Schritt 230 wird CK Y auf STP Y mit einem Wert von 2 gesetzt. Wenn beim Schritt 231 die y-Koordinate CK Y mit einem Wert von 2 klei­ ner als die y-Koordinate der Bereichsteilungslinie CUT Y(1) mit einem Wert von 3 ist, wird beim Schritt 232 fortgefahren. Der Zeiger COPOINT wird beim Schritt 232 auf einen Wert von 0 gesetzt, und dann wird der Zeiger COPOINT beim Schritt 233 um 1 inkrementiert. Da CODE CHAIN(1) den Richtungscode # 4 anzeigt, wird auf den Schritt 233 zurückgekehrt, und es wird geprüft, welcher Richtungscode an der Position 2 (COPOINT = 2) des Richtungspeicherbereichs 43 gespeichert ist. CODE CHAIN(2) zeigt den Richtungscode # 1 an, und folglich wird die y-Koordinate CK Y mit einem Wert von 2 beim Schritt 235 um 1 inkrementiert, so daß die y-Koordinate CK Y mit einem Wert von 3 erhalten wird. Dann wird beim Schritt 237 die Position CK Y mit einem Wert von 3 mit der Position CUT Y(1) + 1 mit einem Wert von 4 verglichen. Da die beiden Werte nicht die­ selben sind, wird auf den Schritt 233 zurückgekehrt, und es wird beim Schritt 234 geprüft, welcher Richtungscode an der Position 3 (COPOINT = 3) gespeichert ist. Der Richtungscode # 4 ist an der Position 3 gespeichert, und daher wird der Schritt 233 durchgeführt. Beim Schritt 234 wird dann ge­ prüft, welcher Richtungscode an der Position 4 gespeichert ist. Der Richtungscode # 1 ist an der Position 4 gespeichert, und daher wird der Wert der y-Adresse beim Schritt 235 um 1 inkrementiert, so daß CK Y = 4 erhalten wird. Zu diesem Zeitpunkt wird dann der Wert von CK Y = dem Wert von CUT Y(1) + 1. Folglich wird beim Schritt 244 die Position 4 in dem Speicherbereich 43 als der korrigierte Startpunkt be­ stimmt. Dann wird die Umstellung der Richtungscodes beim Schritt 245 durchgeführt.
Wie aus der vorstehenden Beschreibung des Algorithmus der Fig. 16 ersehen werden kann, wird eine Änderung in der y-Koordinate durch Verfolgen der Richtungscodes berechnet. Wenn beim Schritt 234 hinsichtlich der Vorwärtsabtastrich­ tung der Richtungscode # 1 festgestellt wird, geht der Ver­ folgungspunkt nach unten zu der nächsten Linie weiter, und daher wird der Wert der y-Koordinate um 1 inkrementiert. Wenn beim Schritt 236 der Richtungscode # 3 festgestellt wird, geht der Verfolgungspunkt nach oben zu der benachbar­ ten Linie weiter, und daher wird der Wert der y-Koordinate um 1 dekrementiert. Andererseits geht beim Schritt 240 hin­ sichtlich der umgekehrten Abtastrichtung, wenn der Rich­ tungscode # 1 festgestellt wird, der Verfolgungspunkt nach oben zu der benachbarten Linie weiter, und daher wird der Wert der y-Koordinate 1 dekrementiert. Wenn beim Schritt 240 der Richtungscode # 3 festgestellt wird, geht der Ver­ folgungspunkt nach unten zu der benachbarten Linie weiter, und daher wird der Wert der y-Koordinate um 1 inkrementiert.
Bei den Schritten 237 und 243 wird der aktuelle Wert der y-Koordinate mit CUT Y(1) + 1 bzw. mit CUT Y(1) - 1 ver­ glichen, da die Richtungscodes die Verschiebungsrichtungen zu dem nächsten Verfolgungspunkt hin anzeigen.
Ausführungsform 2 von Schritt 1003
In der Ausführungsform 2 des Schrittes 1003 werden die Rich­ tungscodes zusammen mit Werten einer entsprechenden y-Koordi­ nate in dem Richtungscode-Speicherbereich 43 gespeichert. Die Richtung, in welcher die Folge der in dem Bereich 43 ge­ speicherten Richtungscodes verfolgt wird, wird dadurch be­ stimmt, daß die y-Koordinate des ursprünglichen Startpunkts mit der Position verglichen wird, an welcher die Bereichstei­ lungslinie CUT-Y 1 das Konturmerkmalsbild schneidet. Dann wird die Position des korrigierten Startpunktes durch Ab­ tasten der gespeicherten Werte der y-Koordinate erhalten.
Fig. 17 ist ein Flußdiagramm eines Algorithmus zum Korri­ gieren des Startpunktes für das Konturverfolgen der Aus­ führungsform 2 von Schritt 1003. In Fig. 17 bezeichnet Y(*) einen Bereich, in welchem die y-Koordinate gespei­ chert ist, und POINT ist ein Zeiger, welcher dasselbe auf­ weist wie der Zeiger COPOINT, und bezeichnet einen Zeiger, der Y(*) und CODE CHAIN (*) gemeinsam ist. In Fig. 17 wird die y-Koordinate Y(1), welche einen Wert von 1 hat, mit der y-Koordinate CUT Y(1) der Bereichsteilungslinie CUT Y(1) beim Schritt 251 verglichen. Wenn der Wert von Y(1) gleich oder kleiner als der Wert von CUT Y(1) ist, wird bei dem Schritt 252 fortgefahren. Andererseits wird, wenn der Wert von Y(1) größer als der Wert CUT Y(1) ist beim Schritt 266 fortgefahren. Eine Folge aus Schritten 252 bis 255 be­ zieht sich auf den Fall, bei welchem die Folge in der Vor­ wärtsrichtung verfolgt wird, um den korrigierten Startpunkt zu erhalten. Eine Folge aus Schritten 266 bis 269 bezieht sich auf den Fall, bei welchem die Folge in der umgekehrten Richtung erfolgt wird, um den genauen Startpunkt zu erhal­ ten.
Beim Schritt 252 wird der Zeiger POINT auf einen Wert von 0 gesetzt, und beim Schritt 253 wird er um 1 inkrementiert. Beim Schritt 254 wird dann der Wert der y-Koordinate, welche durch den Zeiger POINT festgelegt ist, mit dem Wert der y-Adresse der Linie CUT Y(1) + 1 verglichen, welcher der Bereichsteilungslinie CUT Y(1) folgt. Wenn die beiden Werte nicht dieselben sind, wird auf den Schritt 253 zurückge­ kehrt. Umgekehrt wird, wenn die beiden Werte beim Schritt 254 einander gleich sind, auf den Schritt 255 übergegangen. Beim Schritt 255 wird eine Position, welche durch Subtra­ hieren eines Wertes 1 von der aktuellen Position erhalten worden ist, welche durch den Zeiger POINT festgelegt ist, bestimmt, daß sie die Position des korrigierten Startpunk­ tes ist.
Beim Schritt 266 wird ein Wert dadurch erhalten, daß ein Wert von 1 zu der Anzahl (NO CODE) von in dem Speicherbe­ reich 43 gespeicherten Richtungscodes addiert wird. Dann wird beim Schritt 267 der Zeiger um 1 dekrementiert, und der Wert der y-Koordinate wird mit dem Wert CUT Y(1) der y-Koordinate der Bereichsteilungslinie CUT Y(1) beim Schritt 268 verglichen. Wenn die beiden Werte nicht dieselben sind, wird auf den Schritt 267 zurückgekehrt. Wenn dagegen die beiden Werte beim Schritt 268 miteinander identisch sind, wird auf den Schritt 269 übergegangen, bei welchem die laufende, durch den Zeiger POINT angezeigte Position als die korrigierte Startposition bestimmt wird. Dann wird beim Schritt 270 die Folge der in dem Speicherbereich 43 gespei­ cherten Richtungscodes so umgruppiert, daß die umgruppierte Folge von dem korrigierten Startpunkt aus startet. Nunmehr wird unter Bezugnahme auf das Beispiel der Fig. 15A der Algorithmus der Fig. 17 beschrieben.
Beim Schritt 251 sind Y(1) = 1 und CUT Y(1) = 3, und daher wird auf den Schritt 252 übergegangen. Beim Schritt 252 ist POINT = 0 und beim Schritt 253 ist POINT = 1. Dann wird Y(1) beim Schritt 254 mit CUT Y(1) + 1 verglichen. Da die beiden Werte nicht dieselben sind, wird auf den Schritt 253 zurückgekehrt, bei welchem POINT = 2 erhalten wird. Dann wird der Schritt 254 durchgeführt. Beim Schritt 254 sind Y(2) = 2 und CUT Y(1) = 4, und daher wird der Schritt 253 durchgeführt. Dann wird beim Schritt 254 Y(3) = 3, und daher wird der Schritt 253 durchgeführt. Beim Schritt 254 wird Y(4) = 4, und daher sind die beiden Werte einander gleich. Folglich wird der Schritt 255 durchgeführt, so daß die Position 3 als die korrigierte Startposition be­ stimmt wird. Dann wird die Umstellung der Folge der Richtungs­ codes durchgeführt, so daß die umgestellte Folge von der Position 3 in dem Speicherbereich 43 startet.
Ausführungsform 3 von Schritt 1003
Bei der Ausführungsform 3 wird ein Fehler bewältigt, welcher beim Erhalten des korrigierten Startpunktes vorkommen kann. In der Ausführungsform 3 wird ein Raster-Abtasten des recht­ eckigen Bereichs zweimal durchgeführt. Beim ersten Durch­ gang der Raster-Abtastung wird das Abtasten von der Ober­ seite des rechteckigen Bereichs gestartet. Dann wird der Startpunkt bestimmt. Beim zweiten Durchgang der Raster-Ab­ tastung wird bei dieser von einer Zeile aus gestartet, wel­ che zwei Zeilen unter der Zeile angeordnet ist, welche den bestimmten Startpunkt erhält. Dann wird ein Startpunkt durch die zweite Rasterabtastung festgestellt. Nunmehr wer­ den Beispiele der Ausführungsform 3 beschrieben.
Fig. 18A und 18B zeigen ein Beispiel, in welchem der Start­ punkt nach dem herkömmlichen Verfahren festgestellt wird. Hierbei betrifft Fig. 18A einen Fall, bei welchem kein Rau­ schen in einem Zeichenbild "H" vorliegt, während Fig. 18B ein Fall betrifft, bei welchem Rauschen in einem Zeichenbild "H" vorhanden ist. In jeder der Fig. 18A und 18B be­ zeichnet "∎" das erste schwarze Bildelement, was bei der Raster-Abtastung erhalten worden ist, wenn von der Oberseite des rechteckigen Bereichs gestartet wird: In Fig. 18B ist mit einem Bezugszeichen 50 Rauschen angezeigt.
In Fig. 19A ist ein Ergebnis wiedergegeben, das dadurch er­ halten worden ist, daß das rechteckige Muster der Fig. 18A den einzelnen vorstehend beschriebenen Verfahrensschritten 1001 bis 1003 unterzogen wird; in Fig. 19B ist ein Ergebnis dargestellt, das dadurch erhalten wird, daß das rechteckige Muster der Fig. 18B den entsprechenden Verfahrensschritten 1001 bis 1003 unterzogen wird. In jeder der Fig. 19A und 19B zeigt ST 1 den ursprünglichen Startpunkt bei Schritt 1003 an, und ST 2 zeigt den Startpunkt an, der nach der beim Schritt 1003 festgelegten Korrektur erhalten worden ist. Aus Fig. 18A bis 19B ist zu ersehen, daß in dem Fall, wo das Zeichenbild ein Rauschen 50 hat, es unmöglich ist, den ge­ nauen Startpunkt selbst dann zu erhalten, wenn der ursprüng­ liche Startpunkt, welcher durch das Raster-Abtasten erhalten worden ist, dem vorstehend beschriebenen Verfahren unterwor­ fen wird, welches durch den Schritt 1003 festgelegt ist.
Um die vorstehende Schwierigkeit zu beseitigen, wird, wie in Fig. 20A und 20B dargestellt, die Raster-Abtastung zweimal durchgeführt. Bei der ersten Raster-Abtastung, die von der Oberseite des rechteckigen Bereich beginnt, wird die erste Änderung von einem weißen zu einem schwarzen Bildelement festgestellt. "▲" zeigt dieses schwarze Bildelement an. Dann wird die zweite Raster-Abtastung durchgeführt, welche von der Linie beginnt, welche zweimal Linien unter der ersten Linie angeordnet ist, welche das Symbol "▲ + 2" hat. Bei der zweiten Raster-Abtastung wird die erste Änderung von einem weißen zu einem schwarzen Bildelement festgestellt. "∎" zeigt dieses schwarze Bildelement an.
Fig. 21A zeigt einen neuen Startpunkt ST 3, welcher durch die zweite Raster-Abtastung für den Fall der Fig. 20A zusammen mit dem Startpunkt ST 1 und dem korrigierten Startpunkt ST 2 bestimmt worden ist. Fig. 21B zeigt einen neuen Startpunkt ST 3 für den Fall der Fig. 20B zusammen mit dem Startpunkt ST 1 und dem korrigierten Startpunkt ST 2. Es kann aus dem Vergleich zwischen Fig. 21A und 21B ersehen werden, daß die neuen Startpunkte ST 3 an derselben Position in dem rechtecki­ gen Bereich angeordnet sind. Dies bedeutet, daß die Ausfüh­ rungsform 3 durch das Vorhandensein von Rauschen in dem Zei­ chenbild nicht beeinflußt wird.
Die Ausführungsformen 1 bis 3 des Schrittes 1003 beziehen sich auf die Gruppe der Merkmalsmengen des Konturteils, wel­ cher durch die Richtungscodes dargestellt ist. Jedoch sind die Ausführungsformen auch bei anderen Codes als den Rich­ tungscodes verwendbar.
Schritte 1004 und 1005 (Fig. 2)
Beim Schritt 1004 unterwirft die Zentraleinheit 20 Richtungs­ codes von Segmenten des Zeichenbildes, welches durch die Be­ reichsteilungslinien CUT-Y 1 und CUT-Y 2 bei einer vorherbe­ stimmten Operation festgelegt ist, um Merkmalsmengen von Formen der Segmente zu erhalten. Dann erzeugt beim Schritt 1005 die Zentraleinheit 20 die Merkmalsmengen des zu identi­ fizierenden Zeichens mit Hilfe der erhaltenen Information. Dieser Prozeß wird entsprechend dem topologischen Merkmals­ mengen-Extrahierprogramm 35 oder entsprechend dem in dem ROM-Speicher 30 gespeicherten Histogramm-Erzeugungsprogramm 36 durchgeführt.
Nunmehr wird zuerst das Verfahren zum Extrahieren des topo­ logischen Merkmals des Zeichens beschrieben.
Ausführungsform 1 der Schritte 1004 und 1005 der Fig. 2
Die Ausführungsform 1 bezieht sich auf die Folge der Rich­ tungscodes, die in dem Speicherbereich 43 des ROM-Speichers 40 gespeichert sind. In diesem Fall ist der Startpunkt dieser Folge der Startpunkt, welcher durch die Ausführungsform 1 des vorherbeschriebenen Schrittes 1003 erhalten worden ist. In der Ausführungsform 1 wird die Folge der Richtungscodes nacheinander verfolgt, und ein Wert der y-Koordinate jedes der verfolgten Richtungscodes wird erzeugt. Dann überprüft die Ausführungsform 1 eine Positionsbeziehung zwischen der y-Koordinate der Richtungscodes und der Bereichsteilungsli­ nie CUT-Y 1 und CUT-Y 2. Dann werden die topologischen Merk­ malsmengen des Zeichens auf der Basis der erhaltenen Posi­ tionsbeziehung extrahiert. Die extrahierten Merkmalsmengen werden in dem Bereich 47 in dem RAM-Speicher 40 gespeichert.
Fig. 23 ist eine Darstellung, welche eine Beziehung zwischen den Bereichsteilungslinien CUT-Y 1 und CUT-Y 2 und den topo­ logischen Merkmalsmengen des Zeichens zeigt. In Fig. 23 ist ein Zeichen "H" dargestellt, und dessen Zeichenbild wird entgegen der Uhrzeigerrichtung verfolgt. Die Bereichsteilungs­ linien CUT-Y 1 und CUT-Y 2 werden bezüglich des Zeichenbildes erhalten, wie in Fig. 23 dargestellt ist. Zahlen 1 und 3 sind der Bereichsteilungslinie CUT-Y 1 und Zahlen 2 und 4 sind der Bereichsteilungslinie CUT-Y 2 zugeordnet. Die topologischen Merkmalsmengen haben 6 Typen, wie in Fig. 23(A) bis 23(F) dargestellt ist. Die Typen der topologischen Merkmalsmengen können entweder durch ein Beschreibungsformat [1] oder [2] dargestellt werden.
In Fig. 23(A) ist eine Merkmalsmenge dargestellt, welche an­ zeigt, daß das Zeichen ein Segment enthält, das sich von der Bereichsteilungslinie CUT-Y 1 zu der Bereichsteilungslinie CUT-Y 2 nach unten erstreckt. Die Merkmalsmenge der Fig. 23(A) wird als (3-2) durch das Beschreibungsformat [1] und als (1) durch das Beschreibungsformat [2] dargestellt.
Fig. 23(B) zeigt eine Merkmalsmenge, welche anzeigt, daß das Zeichen ein Segment enthält, welches sich von der Bereichs­ teilungslinie CUT-Y 2 nach unten erstreckt und zu der Bereichs­ teilungslinie CUT-Y 2 zurückkehrt. Die Merkmalsmenge der Fig. 23(B) ist durch (4-4) und (2) in dem Beschreibungsformat [1] bzw. [2] dargestellt.
Fig. 23(C) zeigt eine Merkmalsmenge, welche anzeigt, daß das Zeichen ein Segment enthält, welches sich von Bereichstei­ lungslinie CUT-Y 2 nach oben erstreckt und zu der Bereichs­ teilungslinie CUT-Y 2 zurückkehrt. Die Merkmalsmenge von Fig. 23(C) wird als (2-2) und (3) in den Beschreibungsformaten [1] bzw. [2] dargestellt.
Fig. 23(D) zeigt eine Merkmalsmenge, welche anzeigt, daß das Zeichen ein Segment enthält, welches sich von der Be­ reichsteilungslinie CUT-Y 2 zu der Bereichsteilungslinie CUT-Y 1 nach oben erstreckt. Die Merkmalsmenge von Fig. 23(D) ist als (2-3) und (4) durch die Beschreibungsformate [1] bzw. [2] dargestellt.
Fig. 23(E) zeigte eine Merkmalsmenge, welche anzeigt, daß das Zeichen ein Segment enthält, welches sich von der Bereichs­ teilungslinie CUT-Y 1 nach oben erstreckt und zu der Bereichs­ teilungslinie CUT-Y 1 zurückkehrt. Die Merkmalsmenge von Fig. 23(E) wird als (1-1) und (5) durch die Beschreibungs­ formate [1] bzw. [2] dargestellt.
Fig. 23(F) zeigt eine Merkmalsmenge, welche sich von der Bereichsteilungslinie CUT-Y 1 nach unten erstreckt und zu der Bereichsteilungslinie CUT-Y 1 zurückkehrt. Die Merkmalsmenge von Fig. 23(F) wird durch (3-3) und (6) durch die Beschrei­ bungsformate [1] bzw. [2] dargestellt.
Fig. 22 zeigt ein Zeichenbild, welches dasselbe ist, wie das, welches in Fig. 7 dargestellt ist. In dem dargestell­ ten Beispiel werden dessen topologische Merkmalsmengen fol­ gendermaßen beschrieben:
Beschreibungsformat [1]
(3-2), (4-4), (2-3), (1-1)
Beschreibungsformat [2]
(1), (2), (4), (5)
Fig. 24 ist ein Gesamtdiagramm eines Algorithmus zum Extra­ hieren der topologischen Merkmalsmengen des Zeichens der Ausführungsform 1. Beim Schritt 301 der Fig. 24 wird ein Wert der y-Koordinate, welche der y-Koordinate des zu ver­ arbeitenden Richtungscodes folgt, berechnet. Dann wird beim Schritt 301 geprüft, ob der Wert der y-Koordinate, welche beim Schritt 301 erhalten worden ist, mit dem Wert der y- Koordinate der Bereichsteilungslinie CUT-Y 1 an der oberen Seite übereinstimmt oder nicht. Wenn die beiden Werte der y-Koordinate miteinander nicht gleich sind, wird beim Schritt 303 anschließend geprüft, ob der Wert der beim Schritt 301 bezeichneten y-Koordinate mit dem Wert der y-Koordinate der Bereichsteilungslinie CUT-Y 2 auf der unteren Seite überein­ stimmt oder nicht. Wenn die beiden Werte voneinander ver­ schieden sind, wird auf den Schritt 301 zurückgekehrt. Wenn die beiden Werte dieselben sind, wird auf den Schritt 304 übergegangen. Wenn das Ergebnis beim Schritt 302 ja ist, wird auf den Schritt 304 übergegangen. Beim Schritt 304 wird der Typ der topologischen Merkmalsmengen des zu verarbeitenden Segments durch Bezugnahme auf einen Zustand bestimmt, in welchem der vorher verarbeitete Wert der y-Koordinate die Bereichsteilungslinie schneidet. Danach wird beim Schritt 305 geprüft, ob alle y-Koordinaten verarbeitet worden sind oder nicht. Wenn das Ergebnis beim Schritt 305 ja ist, endet das Verfahren. Wenn das Ergebnis dagegen nein ist, wird bei dem Schritt 306 fortgefahren, bei welchem 28932 00070 552 001000280000000200012000285912882100040 0002003815869 00004 28813 Information in ei­ ner Richtung, in welcher das Verfolgen der Richtungscodes die Bereichsteilungslinie schneidet gespeichert wird.
Fig. 25(A) bis 25(C) detaillierte Flußdiagramme der Fig. 24. Die Flußdiagramme der Fig. 24A bis 25C verwenden das Beschreibungsformat [1]. Das Flußdiagramm der Fig. 25A bezieht sich auf einen Fall, bei welchem der zu verarbeiten­ de Richtungscode in einem Bereich zwischen der Bereichstei­ lungslinie CUT-Y 1 und CUT-Y 2 vorhanden ist. Das Flußdiagramm der Fig. 25B bezieht sich auf einen Fall, bei welchem der zu verarbeitende Richtungscode in einem Bereich über der Be­ reichsteilungslinie CUT-Y 1 existiert. Das Flußdiagramm der Fig. 25C bezieht sich auf einen Fall, bei welchem der zu ver­ arbeitende Richtungscode in einem Bereich unter der Bereichs­ teilungslinie CUT-Y 2 vorhanden ist. Die meisten in diesen Flußdiagrammen verwendeten Symbole sind dieselben wie die­ jenigen in den vorherigen Figuren. Symbole ST TYPE und EN TYPE werden in Fig. 25A bis 25C verwendet. Die Symbole ST TYPE und EN TYPE, welche paarweise vorliegen, werden zum Beschreiben der topologischen Merkmalsmengen auf der Basis des Beschreibungsformats [1] verwendet. Beispielsweise wird die topologische Merkmalsmenge (1-1) durch ST TYPE = 1 und durch EN TYPE = 1 bezeichnet, und die topologische Merkmals­ menge (2-3) wird durch ST TYPE = 2 und durch EN TYPE = 3 be­ zeichnet.
Beim Schritt 311 der Fig. 25A wird eine Änderung CK Y auf den Wert der y-Koordinate der Bereichsteilungslinie CUT-Y 1 gesetzt; der Zeiger COPOINT wird auf einen Wert 0 gesetzt, und die Starttype ST TYPE wird auf einen Wert von 3 gesetzt. Dann wird der Zeiger COPOINT beim Schritt 312 um 1 inkremen­ tiert, und der Wert des Zeigers COPOINT wird beim Schritt 313 mit der Anzahl der in dem Speicherbereich 43 gespeicher­ ten Richtungscodes verglichen. Wenn alle Richtungscodes ver­ arbeitet sind, endet das Verfahren. Wenn dagegen alle Rich­ tungscodes noch nicht verarbeitet sind, geht das Verfahren auf den Schritt 314 über, bei welchem geprüft wird, welcher Richtungscode an der durch den Zeiger COPOINT angezeigten Stelle gespeichert ist. Wenn der Richtungscode # 2 oder # 4 gefunden ist, kehrt das Verfahren auf den Schritt 312 zurück. Wenn der Richtungscode # 1 gefunden ist, geht das Verfahren auf den Schritt 316 über, und wenn der Richtungscode # 3 ge­ funden ist, wird auf den Schritt 315 übergegangen.
Beim Schritt 315 wird der Wert der y-Koordinate um 1 de­ krementiert, und beim Schritt 316 wird der Wert der y- Koordinate um 1 inkrementiert. Dann wird beim Schritt 321 der Wert der y-Koordinate mit dem Werte der y-Koordinate der Linie unmittelbar unter der Bereichsteilungslinie CUT-Y 2 verglichen. Bei diesem Schritt wird herausgefunden, ob das Verfolgen der Richtungscodes gerade nach unten die Bereichs­ teilungslinie CUT-Y 2 passiert hat oder nicht. Wenn die Ver­ folgung nach unten die Bereichsteilungslinie CUT-Y 2 passiert hat, wird auf den Schritt 322 übergegangen, und wenn dies nicht der Fall ist, geht das Verfahren beim Schritt 317 wei­ ter. Beim Schritt 317 wird geprüft, daß der Wert der y-Koordinate auf der Linie gerade über der Bereichsteilungs­ linie CUT-Y 1 angeordnet ist. Beim Schritt 317 wird herausge­ funden, ob das Verfolgen der Richtungscodes nach oben die Bereichsteilungslinie CUT-Y 1 passiert hat oder nicht. Wenn dieser Zustand gefunden wird, geht das Verfahren bei dem Schritt 318 weiter, bei welchem EN TYPE auf einen Wert von 3 gesetzt wird. Wenn dagegen der Zustand beim Schritt 317 gefunden wird, kehrt das Verfahren auf den Schritt 312 zu­ rück. Beim Schritt 319 werden die Starttype ST TYPE, die Endtype EN TYPE und der Wert des Zeigers COPOINT gespeichert; ST TYPE wird bei einem Wert von 1 beim Schritt 320 gesetzt. Dann geht das Verfahren auf die Folge von Fig. 25B über. Wenn beim Schritt 321 herausgefunden wird, daß das Verfolgen nach unten die Bereichsteilungslinie CUT-Y 2 passiert hat, wird bestimmt, daß die Endtype 2 beim Schritt 322 ist, und ein dem Schritt 319 identisches Verfahren wird beim Schritt 323 durchgeführt. Dann wird die Starttype 4 gesetzt, und das Verfahren geht auf die Folge von Fig. 25C über.
Der Algorithmus der Fig. 25B bezieht sich auf den Fall, bei welchem der zu verarbeitende Richtungscode in dem Bereich über der Bereichsteilungslinie CUT-Y 1 existiert, und die Schritte 331 bis 333 sind dieselben wie die Schritte 312 bis 314. Ebenso sind die Schritte 334 und 335 der Fig. 25B dieselben wie die Schritte 316 und 315 der Fig. 25A. Beim Schritt 336 wird der aktuelle Wert der y-Koordinate mit dem Wert der y-Koordinate der Linie unmittelbar unter der Be­ reichsteilungslinie CUT-Y 1 verglichen. Dies bedeutet, daß geprüft wird, ob das Verfolgen nach unten die Bereichstei­ lungslinie CUT-Y 1 passiert hat. Wenn beide Werte nicht die­ selben sind, kehrt das Verfahren auf den Schritt 331 zurück. Wenn dagegen die beiden Werte dieselben sind, d. h. das Verfolgen die Bereichsteilungslinie CUT-Y 1 schneidet, wird bestimmt, daß die Endtype EN TYPE beim Schritt 331 1 ist. Dann werden beim Schritt 338 die Starttype ST TYPE, die End­ type EN TYPE und die durch den Zeiger COPOINT angezeigte Position gespeichert. Anschließend wird die Starttype ST TYPE = 3 beim Schritt 339 gesetzt.
Der Algorithmus der Fig. 25C betrifft den Fall, bei welchem der zu verarbeitende Richtungscode in dem Bereich unter der Bereichsteilungslinie CUT-Y 2 existiert, bzw. Schritte 341 bis 343 sind dieselben wie die Schritte 312 bis 314. Ebenso sind die Schritte 344 und 345 der Fig. 25C dieselben wie die Schritte 344 und 345 der Fig. 25C dieselben wie die Schritte 316 und 315 der Fig. 25A. Beim Schritt 346 wird der laufende Wert der y-Koordinate, welche die zu verarbeitenden Rich­ tungscodes betrifft, mit dem Wert der y-Koordinate der Linie verglichen, welche unmittelbar über der Bereichsteilungs­ linie CUT-Y 2 positioniert ist. Der Schritt 346 bedeutet, das geprüft wird, ob das Verfolgen der Richtungscodes nach oben die Bereichsteilungslinie CUT-Y 2 passiert hat oder nicht. Wenn das Ergebnis beim Schritt 346 nein ist, kehrt das Ver­ fahren auf den Schritt 341 zurück. Wenn dagegen das Ergeb­ nis beim Schritt 346 ja ist, wird bestimmt, daß die End­ type EN TYPE = 4 ist. Das heißt, das Verfolgen schneidet oben die Bereichsteilungslinie CUT-Y 2. Dann werden beim Schritt 348 die Starttype ST TYPE, die Endtype EN TYPE und die Position in dem Richtungscode-Speicherbereich 43, wel­ che durch den Zeiger COPOINT angezeigt ist, gespeichert. Dann wird beim Schritt 349 die Starttype ST TYPE = 2 ge­ setzt, und das Verfahren geht auf die Folge in Fig. 25A über.
Ausführungsform 2 der Schritte 1004 und 1005 der Fig. 2
Bei der Ausführungsform 2 wird der Startpunkt verwendet, der bei dem Algorithmus erhalten worden ist, welcher durch die Ausführungsform 2 des Schrittes 1003 festgelegt worden ist. In dieser Hinsicht ist die Ausführungsform 2 der Schritte 1004 und 1005 verschieden von der Ausführungsform 1.
Fig. 26A bis 26C sind Flußdiagramme der Ausführungsform 2 und entsprechen den Flußdiagrammen der Fig. 25A bis 25C. In dem Algorithmus der Fig. 25A muß der Wert der y-Koordinate eingestellt werden, wenn die y-Koordinate mit einem Wert 1 oder 3 erhalten wird, wie bei den Schritten 314 bis 316 festgelegt ist. Dagegen entsprechen die Schritte 314 bis 316 der Fig. 25A dem Schritt 354. Der Algorithmus der Fig. 26A speichert die y-Koordinate mit Hilfe von Y(POINT) selbst, und es ist daher nicht notwendig, den Wert der y-Koordinate durch Feststellen der Richtungscode # 1 und # 3 zu berechnen.
Die anderen Schritte der Fig. 26A sind dieselben wie die entsprechenden Schritte der Fig. 25A.
Das Obige gilt auch für den Algorithmus der Fig. 26B und 26C. Der Schritt 373 der Fig. 26B entspricht den Schritten 333 bis 335 der Fig. 25B, und der Schritt 383 der Fig. 26C entspricht dem Schritt 343 bis 345 der Fig. 25C. Die anderen Schritte der Fig. 26B und 26C sind dieselben wie die ent­ sprechenden Schritte der Fig. 25B bzw. 25C.
Ausführungsform 3 der Schritte 1005 und 1005 der Fig. 2
Bei der Ausführungsform 3 werden Richtungscodes auf den Richtungsteilungslinien CUT-Y 1 und CUT-Y 2 verfolgt, und es werden die Anzahl der Richtungscodes # 1 und # 3 gezählt. Die topologischen Merkmalsmengen des Zeichens werden mit Hilfe des gezählten Werts dargestellt.
In Fig. 22 werden der Richtungscode # 1 bei (4,3) und der Richtungscode # 3 bei (12,3) durch Abtasten der Bilddaten auf der Bereichsteilungslinie CUT-Y 1 gefunden. Daher wird ein berechneter Wert von 2 bezüglich der Bereichsteilungslinie CUT-Y 1 erhalten. In ähnlicher Weise werden der Richtungs­ code # 1 bei (4,20) und der Richtungscode # 3 bei (13,20) durch Abtasten der Bilddaten auf der Bereichsteilungslinie CUT-Y 2 gefunden. Daher wird ein gezählter Wert 2 bezüglich der Bereichsteilungslinie CUT-Y 2 erhalten. Die auf diese Weise erhaltenen, gezählten Werte stellen eine Merkmalsmenge des Zeichens dar. Beispielsweise kann die Merkmalsmenge des Zeichens als 2/2 beschrieben werden. Die Beschreibung der topologischen Merkmalsmengen der Ausführungsform 3 ist ver­ schieden von den Beschreibungen anderer Ausführungsformen. Jedoch ist das Merkmal, welches durch die Ausführungsform 3 dargestellt ist, ähnlich demjenigen, das durch andere Aus­ führungsformen dargestellt ist.
Ausführungsform 4 der Schritte 1004 und 1005 der Fig. 2
Die Ausführungsform 3 entspricht einer Verbesserung der in Fig. 25A bis 25C dargestellten Ausführungsform 1. Die Aus­ führungsform 3 tastet die Richtungscodes auf den Bereichs­ teilungslinien CUT-Y 1 und CUT-Y 2 ab und zählt die Anzahl der Richtungscodes # 2 und # 4. Der gezählte Wert wird mit einem vorherbestimmten Schwellenwert verglichen. Wenn der gezählte Wert kleiner als der Schwellenwert ist, wird ein diesbezügliches Segment des Zeichens als Rauschen betrach­ tet, und die Merkmalsmenge des diesbezüglichen Segments wird nicht zum Beschreiben der Merkmalsmengen des Zeichens verwendet.
Fig. 27A bis 27C sind Flußdiagramme eines Algorithmus der Ausführungsform 4 der Schritte 1004 und 1005. Die Fig. 27A bis 27B haben Bezug zu den Fig. 25A bis 25C.
In Fig. 27a sind Schritte 394, 399, 400, 404 und 405 Schritte, welche zu dem Flußdiagramm der Fig. 25A addiert werden. Der Algorithmus von Fig. 27A verwendet einen Zähler COUNT zum Zählen der Anzahl der Richtungscodes # 2 und # 4, welche die horizontalen Verschiebungsrichtungen anzeigen. Wenn beim, Schritt 394 der Richtungscode der Position in dem durch den Zeiger POINT angezeigten Richtungscode-Speicherbereich 53 # 2 oder # 4 ist, wird der Zähler COUNT um 1 inkrementiert. Wenn beim Schritt 398 herausgefunden wird, daß der Verfolgungs­ punkt die Bereichsteilungslinie CUT-Y 1 in Aufwärtsrichtung passiert hat, wird auf den Schritt 399 übergegangen, bei welchem geprüft wird, ob die laufende Starttype ST TYPE ist oder nicht. Wenn ST TYPE = 3 ist, bedeutet dies, daß der Verfolgungspunkt die Bereichsteilungslinie CUT-Y 1 nach unten passiert und die Bereichsteilungslinie CUT-Y 1 nach oben passiert. Das heißt, das zu verarbeitende Zeichen ent­ hält ein Segment 70, wie in Fig. 28A dargestellt ist. In diesem Fall wird der gezählte Wert in dem Zähler COUNT beim Schritt 400 geprüft. In der vorliegenden Ausführungsform 4 wird ein Schwellenwert, welcher gleich 4 ist, vorherbestimmt. Das heißt, der gezählte Wert wird mit einem Wert 4 vergli­ chen. Wenn der gezählte Wert über 4 hinausgeht, wird beim Schritt 401 fortgefahren, welcher dem in Fig. 25A darge­ stellten Schritt 318 entspricht. Wenn der gezählte Wert gleich oder kleiner als 4 ist, wird bei dem Schritt 411 der Fig. 27B fortgefahren. Jedoch wird die Merkmalsmenge des Segmentes 70 nicht so verwendet, um die Merkmalsmengen des zu identifizierenden Zeichens zu beschreiben. Wenn beim Schritt 397 herausgefunden wird, daß der Verfolgungspunkt nach unten die untere Bereichsteilungslinie CUT-Y 2 passiert hat, wird beim Schritt 404 fortgefahren. Beim Schritt 404 ist die aktuelle Starttype ST TYPE = 2. Wenn beim Schritt ST TYPE = 2 ist, bedeutet dies, daß der Verfolgungspunkt nach oben die untere Bereichsteilungslinie CUT-Y 2 passiert und dann dieselbe Linie nach unten passiert. Das heißt, das Zeichen enthält ein Segment 71, wie in Fig. 28B darge­ stellt ist. Dann geht das Verfahren auf den Schritt 405 über, bei welchem geprüft wird, ob der gezählte Wert kleiner als der Schwellenwert 4 ist oder nicht. Wenn der gezählte Wert gleich oder größer als 4 ist, wird ein Schritt 406 durch­ geführt, welcher identisch dem Schritt 322 der Fig. 25A ist. Wenn andererseits der gezählte Wert kleiner als 4 ist, geht das Verfahren beim Schritt 421 der Fig. 27C weiter. Daher wird die Merkmalsmenge des Segmentes 71 nicht verwendet. Das Flußdiagramm der Fig. 27B ist abgesehen von dem Vorhanden­ sein des Schrittes 411, der in dem Flußdiagramm der Fig. 27B vorgesehen ist, dasselbe wie das Flußdiagramm der Fig. 25B. Beim Schritt 411 wird der Zähler COUNTER rückgesetzt. Das Flußdiagramm der Fig. 27C ist abgesehen von dem Schritt 421, der in Fig. 27C vorgesehen ist, dasselbe wie das Fluß­ diagramm der Fig. 25C. Beim Schritt 421 wird der Zähler COUNTER rückgesetzt.
Ausführungsform 5 der Schritte 1004 und 1005 der Fig. 2
Bei der Ausführungsform 5 wird die Anzahl aller Richtungs­ codes gezählt, die zu einem Segment Bezug haben. Wenn die Gesamtanzahl der Richtungscodes kleiner als ein vorherbe­ stimmter Schwellenwert ist, wird das Segment für Rauschen gehalten. In diesem Fall wird die Zähloperation der Gesamt­ anzahl nur für die in Fig. 28A und 28B dargestellten Seg­ mente 70 und 71 durchgeführt. Wenn das Segment 70 oder 71 Richtungscodes mit einem Gesamtwert hat, der kleiner als der Schwellenwert ist, wird festgelegt, daß das Segment Rauschen ist.
In den Ausführungsformen 1 bis 5 werden die Richtungscodes # 1 bis # 4 verwendet. Jedoch ist der Algorithmus jeder der Ausführungsformen 1 bis 5 auch bei anderen Codes als den Richtungscodes anwendbar. Die Ausführungsformen 1 bis 5 be­ schreiben das Merkmal der Zeichen durch die topologischen Merkmalsmengen. Die folgenden Ausführungsformen 6 bis 9 be­ nutzen Histogramme der Richtungscodes # 1 bis # 4.
Ausführungsform 6 der Schritte 1004 und 1005
Bei der Ausführungsform 6 wird das Konturbild in n-Segmente unterteilt, wobei eine der Bereichsteilungslinien als ein Startpunkt für das Teilen verwendet wird, und es wird ein Histogramm der Richtungscodes für jede der n-Segmente des Konturbildes erzeugt. Ein Beispiel der Ausführungsform 6 ist in Fig. 29 dargestellt. Ein dargestelltes Konturbild ist bezüglich der oberen Bereichsteilungslinien CUT-Y 1 gleich­ mäßig in 5 Segmente unterteilt. Dann wird das Histogramm der Richtungscodes # 1 bis # 4 für jedes der geteilten Segmente erzeugt.
Ausführungsform 7 der Schritte 1004 und 1005
Bei der Ausführungsform 7 wird das Konturbild durch die Be­ reichsteilungslinie CUT-Y 1 und CUT-Y 2 in Segmente unterteilt. Dann wird jedes der erhaltenen Segmente gleichmäßig in n- Teile aufgeteilt. Danach wird ein Histogramm für jeden der aufgeteilten Teile erzeugt. Ein Beispiel der Ausführungsform 7 ist in Fig. 30 dargestellt.
Ausführungsform 8 der Schritte 1004 und 1005 der Fig. 2
Bei der Ausführungsform 8 wird das Konturbild durch die Bereichsteilungslinien CUT-Y 1 und CUT-Y 2 in Segmente auf­ geteilt. Dann wird jedes der Segmente gleichmäßig in Teile unterteilt. In diesem Fall hängt die Teilungsanzahl für jedes der Segmente von den topologischen Merkmalsmengen ab. Ein Beispiel der Ausführungsform 8 ist in Fig. 31 darge­ stellt. Type 1 und 4 der topologischen Merkmalsmengen in dem vorstehend beschriebenen Beschreibungsformat [2] zeigen Seg­ mente an, in welchen ein Hub des Zeichens verhältnismäßig stabil ist. Andererseits zeigen die Type 2 und 5 Segmente an, in welchen der Hub verhältnismäßig empfindlich bezüg­ lich Rauschen u. ä. und folglich instabil ist. Daher werden die stabilen Segmente in mehr Teile als die unstabilen Seg­ mente unterteilt. Das heißt, die stabilen Segmente werden in n-Teile und die unstabilen Segmente werden in n′-Teile unterteilt (n′ < n). Die Ausführungsform hat eine Funktion, um irgendwelche Fehler zu absorbieren, welche in ein Histo­ gramm eingebracht werden können.
Ausführungsform 9 der Schritte 1004 und 1005 der Fig. 2
Bei der Ausführungsform 9 wird das Konturbild durch die Bereichsteilungslinien CUT-Y 1 und CUT-Y 2 in Segmente auf­ geteilt. Jedes der Segmente ist in Teile gleichmäßig aufge­ teilt. In diesem Fall hängt die Teilungsanzahl für jedes der Segmente von der Anzahl Richtungscodes ab, die in dem Bezugssegment enthalten sind. Ein Beispiel der Ausführungs­ form 9 ist in Fig. 32 dargestellt. In Fig. 32 ist angenommen, daß das Segment über der oberen Bereichsteilungslinie CUT-Y 1 10 Richtungscodes aufweist, daß die Segmente zwischen den Bereichsteilungslinien CUT-Y 1 und CUT-Y 2 55 und 62 Rich­ tungscodes aufweisen, und das Segment unter der unteren Be­ reichsteilungslinie CUT-Y 2 11 Richtungscodes aufweist. In der Ausführungsform 9 ist angenommen, daß, wenn die Anzahl der Richtungscodes gleich oder größer als 15 ist, das Seg­ ment in n-Teile gleichmäßig aufgeteilt ist und daß, wenn die Anzahl der Richtungscodes kleiner als 15 ist, das Seg­ ment in n′-Teile gleichmäßig aufgeteilt ist (n′ < n). Ein Segment mit einer Anzahl der Richtungscodes ist verhältnis­ mäßig stabil, und ein Segment ohne viele Richtungscodes ist empfindlich, um durch Rauschen beeinflußt zu werden und ist daher instabil. Aus diesem Grund wird jedes Segment in Ab­ hängigkeit von der Anzahl der darin enthaltenen Richtungs­ codes unterteilt. Dies Verfahren hat auch eine Funktion, um einen Fehler zu absorbieren, der von dem vorhandenen Rauschen herrührt.
Nunmehr werden weitere Ausführungsformen 10 bis 14 der Schritte 1004 bis 1005 der Fig. 2 beschrieben. Die Aus­ führungsformen 10 bis 14 können mit den Ausführungsformen 1 bis 9 kombiniert werden. Die Ausführungsformen 10 bis 14 führen zu einem Beschleunigen der Identifizierungsverar­ beitung durch Extrahieren von Merkmalsmengen, welche kaum durch den Schriftstil oder die Schriftgröße beeinflußt wer­ den, und es kann eine Form (Kategorie) der Zeichen unter Be­ zugnahme auf das extrahierte Merkmal klassifiziert werden. Vorzugsweise werden die Verfahren der Ausführungsformen 10 bis 14 vor den Verfahren der Ausführungsformen 1 bis 9 durchgeführt.
Ausführungsform 10 der Schritte 1004 und 1005
Die Ausführungsform 10 wird anhand der Fig. 33A und 33B be­ schrieben. Die Ausführungsform 10 bezieht sich auf ein Seg­ ment, welches sich von der oberen Bereichsteilungslinie CUT-Y 1 zu der unteren Bereichsteilungslinie CUT-Y 2 erstreckt (was nachstehend als ein L-Segment bzeichnet wird), sowie auf ein Segment, welches sich von der unteren Bereichstei­ lungslinie CUT-Y 2 zu der oberen Bereichsteilungslinie CUT-Y 1 erstreckt (was nachstehend als ein R-Segment bezeichnet wird). Dann wird die Anzahl der Richtungscodes, die in jedem der L- und R-Segmente erhalten sind, mit Hilfe des Histogramms gezählt, das in dem Histogramm-Speicherbereich 48 in dem ROM-Speicher 40 gespeichert ist. Dann wird herausgefunden, welches Segment länger ist. Das zu verarbeitende Zeichen wird dann in eine der vorherbestimmten Kategorien klassifi­ ziert. Beispielsweise ist bei einem Zeichen "J" das L-Seg­ ment länger als das R-Segment, wie in Fig. 33A dargestellt ist. Bei dem Zeichen "E" ist das R-Segment länger als das L-Segment, wie in Fig. 33B dargestellt ist. Daher können die Zeichen "J" und "E" unterschieden werden, da sie zu verschie­ denen Kategorien gehören.
Ausführungsform 11 der Schritte 1004 und 1005 der Fig. 2
Bei der Ausführungsform 11 wird ein Verhältnis zwischen der Anzahl Richtungscodes der L- und R-Segmente berechnet, und ein zu verarbeitendes Zeichen wird in Abhängigkeit von einem Wert des erhaltenen Verhältnisses in eine Kategorie klassifi­ ziert. Das Verhältnis kann auf zweierlei Weise dargestellt werden, durch eine, welche ein Verhältnis (L/R) der Anzahl der Richtungscodes des L-Segments zu der Anzahl der Rich­ tungscodes des R-Segments ist, und das andere, welches ein Verhältnis (R/L) der Anzahl der Richtungscodes des R-Seg­ ments zu der Anzahl der Richtungscodes des L-Segments ist.
Ausführungsform 12 der Schritte 1004 und 1005 der Fig. 2
Die Ausführungsform 12 wird anhand der Fig. 34A und 34B be­ schrieben. Die Ausführungsform 12 bezieht sich auf Seg­ mente zwischen den oberen und unteren Bereichsteilungslinien CUT-Y 1 und CUT-Y 2. Dann wird ein Verhältnis der Anzahl der Richtungscodes des L-Segments zu einem Bezugswert berechnet. Als ein Bezugswert wird 1/n, (wobei n eine ganze Zahl größer als 1 ist) einer Höhe H des Zeichens gewählt. Wenn beispiels­ weise n = 2 ist, wird das Verhältnis L/H/2 berechnet. Das zu verarbeitende Zeichen wird in Abhängigkeit von einem Wert des Verhältnisses L/H/2 in eine diesbezügliche Kategorie klassifiziert, ebenso wird ein Verhältnis der Anzahl der Richtungscodes des R-Segments zu dem Bezugswert H/n berech­ net. Wenn beispielsweise n = 2 ist, dann wird das Verhält­ nis R/H/2 berechnet. Das zu verarbeitende Zeichen wird dann in Abhängigkeit von einem Wert des Verhältnisses R/H/2 in eine diesbezügliche Kategorie klassifiziert.
Ausführungsform 13 der Schritte 1004 und 1005 der Fig. 2
Die Ausführungsform 13 wird anhand der Fig. 35A und 35B beschrieben. Die Ausführungsform 13 bezieht sich auf Seg­ mente zwischen den oberen und unteren Bereichsteilungslinien CUT-Y 1 und CUT-Y 2. Dann wird ein Verhältnis der Anzahl der Richtungscodes, die in dem L-Element enthalten sind, zu ei­ nem Bezugswert berechnet. Als ein Bezugswert der Ausführungs­ form 13 wird 1/n, (wobei n eine ganze Zahl größer 1 ist), eines Abstandes h zwischen den oberen und unteren Bereichs­ teilungslinien CUT-Y 1 und CUT-Y 2 als Beispiel gewählt. Wenn beispielsweise n = 2 ist, wird das Verhältnis L/h/2 berech­ net. Das zu verarbeitende Zeichen wird dann in Abhängigkeit von einem Wert des Verhältnisses L/h/2 in eine diesbezüg­ liche Kategorie klassifiziert. Ebenso wird ein Verhältnis der Anzahl der Richtungscodes des R-Segments zu dem Bezugs­ wert h/n berechnet. Wenn beispielsweise n = 2 ist, wird das Verhältnis R/h/2 berechnet. Das zu verarbeitende Zei­ chen wird dann in Abhängigkeit von einem Wert des Verhält­ nisses R/h/2 in eine diesbezügliche Kategorie klassifiziert.
Ausführungsform 14 der Schritte 1004 und 1005 der Fig. 2
Die Ausführungsform 14 wird anhand der Fig. 36A bis 36B beschrieben. Die Ausführungsform 14 bezieht sich auf Seg­ mente zwischen den oberen und unteren Bereichsteilungsli­ nien CUT-Y 1 und CUT-Y 2. Dann wird die Anzahl der Richtungs­ codes, die in jedem der Segmente enthalten sind, berechnet. Danach wird ein Verhältnis der Anzahl der Richtungscodes jedes Segments zu der berechneten Anzahl berechnet. Dieses Verhältnis, das für jedes Segment erhalten worden ist, zeigt ein Gewicht der topologischen Merkmalsmenge des Segments bezüglich aller topologischer Merkmalsmengen des zu verar­ beitenden Zeichens an. Beispielsweise hat ein in Fig. 36A dargestelltes Zeichen "I" eine Anzahl der Richtungscodes in den Segmenten der topologischen Merkmalsgrößen (1) bis (4). In dem dargestellten Beispiel nimmt die topologische Merkmalsgröße (1) 40% des Ganzen ein. Ein in Fig. 36B dar­ gestelltes Symbol "-" hat eine Anzahl der Richtungscodes in den Segmenten der topologischen Merkmalsmengen (2) und (5). In dem dargestellten Beispiel nimmt die topologische Merkmalsmenge (1) nur 10% des Ganzen ein.
Die Erfindung ist nicht auf die vorstehend beschriebenen Ausführungsformen beschränkt, sondern es können auch ver­ schiedene Variationen und Modifikationen vorgenommen werden. Die vorstehende Beschreibung richtet sich hautsächlich auf die Fälle, bei welchen Projektionen, die in der hori­ zontalen Richtung extrahiert worden sind, verwendet werden. Jedoch enthält die Erfindung auch Fälle, in welchen die in der vertikalen Richtung extrahierten Projektionen ver­ wendet werden.

Claims (21)

1. Verfahren zum Extrahieren von Merkmalsmengen eines Zei­ chens, bei welchem ein Startpunkt festgelegt wird, von wel­ chem aus ein Verfolgen einer Kontur eines Bildes eines zu identifizierenden Zeichens startet, indem ein rechteckiger Bildbereich mit dem Zeichenbild rasterabgetastet wird (Schritt 1001), und bei welchen Merkmalsmengen gefühlt wer­ den, welche Merkmale eines Konturteils des Zeichens anzei­ gen, indem eines von weißen und schwarzen Bildelementen des Konturteils von dem Startpunkt aus verfolgt wird, wobei die Merkmalsmengen des Konturteils durch eine Gruppe von Codes mit verschiedenen Typen beschrieben werden (Schritt 1001), dadurch gekennzeichnet, daß eine Projektion jedes der verschiedenen Typen der Codes erzeugt wird, in­ dem die Merkmalsmengen in einer vorherbestimmten Projizier­ richtung projiziert werden, daß ein Paar Bereichsteilungs­ linien (CUT-Y 1, CUT-Y 2) erhalten werden, welche das Zei­ chenbild in einer vorherbestimmten Teilungsrichtung schneiden, so daß das Zeichenbild in entsprechende Segmente auf­ geteilt wird (Schritt 1002), daß eine Bezugsposition zum Extrahieren von Merkmalsmengen des Zeichens durch Finden von Positionen bestimmt wird, an welchen die Bereichsteilungs­ linien das Zeichenbild schneiden (Schritt 1003), und daß die Merkmalsmengen des Zeichens mit der Bezugsposition extra­ hiert werden, indem Merkmalsmengen der Segmente bezüg­ lich der Bereichsteilungslinien extrahiert werden (Schritte 1004 und 1005).
2. Verfahren nach Anspruch 1, dadurch gekennzeich­ net, daß die Codes aus vier verschiedenen Richtungscodes, einem aufwärts gerichteten Code, einem abwärts gerichteten Code, einem nach rechts und einem nach links gerichteten Code, zusammengesetzt sind und daß jeder der Richtungscodes die entsprechenden Verschiebungsrichtungen anzeigt, in wel­ chen das Verfolgen des Konturteils von einem aktuellen Spurverfolgungs-Bildelement zu einem nächsten Spurverfol­ gungs-Bildelement schiftet.
3. Verfahren nach Anspruch 2, dadurch gekenn­ zeichnet, daß der Schritt, Erzeugen der Projek­ tion, einen Schritt, Zählen einer Anzahl jeder der Typen der Richtungscodes in einer horizontalen Richtung, aufweist, die mit einer Richtung der Rasterabtastung identisch ist (Fig. 7), und daß der Schritt, Erhalten des Paars Bereichs­ teilungslinien, einen Schritt, Feststellen von Linienposi­ tionen, aufweist, an welchen die Anzahl des aufwärts gerich­ teten Codes identisch mit der Anzahl des abwärts gerichteten Codes identisch mit der Anzahl des abwärts gerichteten Codes wird, wobei von den oberen und unteren Enden des rechteckigen Bildbereichs gestartet wird (Schritte 111, 121, 113; 121 bis 123), und bestimmt wird, daß die festgestellten Linienpositionen die Bereichsteilungslinien sind (Schritte 114, 124), und daß der Schritt, Bestimmen der Bezugsposition einen Schritt, Bestimmen einer der Positionen, aufweist, an welchem die Bereichsteilungslinien in der horizontalen Richtung den Konturteil schneiden, welcher die Bezugsposi­ tion ist (Schritte 230 bis 245).
4. Verfahren nach Anspruch 2, dadurch gekenn­ zeichnet, daß der Schritt, Erzeugen der Projektion, einen Schritt, Zählen einer Anzahl der jeweils verschiedenen Richtungscodes in einer horizontalen Richtung, aufweist, die identisch mit einer Richtung der Raster-Abtastung ist (Fig. 7), und daß der Schritt, Erhalten des Paars Bereichs­ teilungslinien, die folgenden Schritte aufweist, Feststellen einer Linienposition, an welcher die Anzahl des nach rechts gerichteten Codes am kleinsten wird, wenn von dem oberen Ende des rechteckigen Bildbereichs gestartet wird (Schritte 171 bis 173) und Feststellen einer Linienposition, an welcher die Anzahl des nach links gerichteten Codes der kleinste wird, wenn von dem unteren Ende des rechteckigen Bildbereichs gestartet wird (Schritte 181 bis 183), und daß bestimmt wird, daß die festgestellten zwei Linienpositionen die Bereichsteilungslinien sind, die sich in der vertikalen Richtung erstrecken (Schritte 174, 184), und daß der Schritt, Bestimmen der Bezugsposition, einen Schritt, Bestimmen einer der Positionen, aufweist, an welchen die Bereichsteilungs­ linien in der horizontalen Richtung den Konturteil schneiden, welcher die Bezugsposition ist (Schritte 230 bis 245).
5. Verfahren nach Anspruch 2, dadurch gekenn­ zeichnet, daß der Schritt, Erzeugen der Projektion, einen Schritt aufweist, nämlich Zählen einer Anzahl der jeweiligen Typen der Richtungscodes in einer vertikalen Richtung, die senkrecht zu einer Richtung der Rasterab­ tastung ist, und daß der Schritt, Erhalten des Paars von Bereichsteilungslinien, einen Schritt, Feststellen von Linienpositionen aufweist, an welchen die Anzahl des nach rechts gerichteten Codes identisch mit der Anzahl des nach links gerichteten Codes ist, wobei von den rechten und lin­ ken Enden des rechteckigen Bildbereichs gestartet wird (Schritte 191 bis 193, 201 bis 203), und dann bestimmt wird, daß die festgestellten Linienpositonen die Bereichstei­ lungslinien sind (Schritte 194, 204), und daß der Schritt, Bestimmen der Bezugsposition, einen Schritt, Bestimmen einer der Positionen, aufweist, an welcher die Bereichsteilungs­ linien in der vertikalen Richtung den Konturteil schneiden, was dann die Bezugsposition ist (Schritte 230 und 245).
6. Verfahren nach Anspruch 2, dadurch gekenn­ zeichnet, daß der Schritt, Erzeugen der Projektion, einen Schritt aufweist, nämlich Zählen einer Anzahl der jeweiligen Typen der Richtungscodes in einer vertikalen Richtung, die senkrecht zu einer Richtung der Raster-Ab­ tastung ist, und daß der Schritt, Erhalten des Paars Bereichsteilungslinien, folgende Schritte aufweist, nämlich Feststellen einer Linienposition, an welcher die Anzahl des aufwärts gerichteten Codes am kleinsten wird, wobei von dem linken Ende des rechteckigen Bildbereichs gestartet wird (Schritte 211 bis 213), und Feststellen einer Linienposition, an welcher die Anzahl des abwärts gerichteten Codes die kleinste wird, wobei von dem rechten Ende des rechteckigen Bildbereichs ausgegangen wird (Schritte 221 und 223), und daß bestimmt wird, daß die festgestellten zwei Linienposi­ tionen die Bereichsteilungslinien sind, welche in der ver­ tikalen Richtung verlaufen (Schritte 214, 224), und daß der Schritt, Bestimmen der Bezugsposition, einen Schritt, Be­ stimmen einer der Positionen, aufweist, an welcher die Bereichsteilungslinien in der horizontalen Richtung den Konturteil schneiden, welcher dann die Bezugsposition ist (Schritte 230 und 245).
7. Verfahren nach Anspruch 2, dadurch gekenn­ zeichnet, daß der Schritt, Feststellen des Start­ punktes als den Startpunkt, eine Position eines weißen Bild­ elements festlegt, an welchem eine erste Änderung von einem weißen zu einem schwarzen Bildelement durch die Raster­ abtastung beobachtet wird, wobei von der Oberseite des recht­ eckigen Bildbereichs begonnen wird.
8. Verfahren nach Anspruch 2, gekennzeichnet durch ein Verfolgen des Konturbildes, wobei von einer Linie gestartet wird, welche unter einer Linie, welche den fest­ gestellten Startpunkt enthält, um eine vorherbestimmte An­ zahl Linien angeordnet ist, und durch ein Feststellen einer Position, an welcher eine erste Änderung von einem weißen zu einem schwarzen Bildelement beobachtet wird (Fig. 20A), wobei die Position des Startpunktes so korrigiert wird, daß sie die Position ist, an welcher die erste Änderung von den weißen zu den schwarzen Bildelementen durch die zweite Ab­ tastung beobachtet wird.
9. Verfahren nach Anspruch 2, dadurch gekenn­ zeichnet, daß der Schritt, Extrahieren der Merkmals­ mengen, folgende Schritte aufweist, Verfolgen der Richtungs­ codes, welche von der Bezugsposition starten (Schritt 244), Feststellen einer Lagebeziehung zwischen einer Koordinaten­ änderung eines Verfolgungspunktes für die Richtungscodes und der Bereichsteilungslinie (Schritte 301 bis 304), und Identifizieren der Form jedes der Segmente des Zeichens mit Hilfe der festgestellten Lagebeziehung (Schritte 306), so daß die Merkmalsmengen des zu identifizierenden Zeichens durch die Form jedes der Segmente dargestellt werden.
10. Verfahren nach Anspruch 9, dadurch gekenn­ zeichnet, daß die Koordinatenänderung des Spurver­ folgungspunktes eine Änderung in der Koordinate in der vertikalen Richtung ist, wenn die Bereichsteilungslinien in der horizontalen Richtung verlaufen, und daß die Koordi­ natenänderung des Spurverfolgungspunktes eine Koordinaten­ änderung in der horizontalen Richtung ist, wenn die Bereichs­ teilungslinien sich in der vertikalen Richtung erstrecken.
11. Verfahren nach Anspruch 9, dadurch gekenn­ zeichnet, daß die festgestellte Form jedes der Seg­ mente durch vorherbestimmte Codes beschrieben wird (Fig. 23[A] bis 23[F]).
12. Verfahren nach Anspruch 9, gekennzeichnet durch Zählen der Anzahl vorherbestimmter Typen der Rich­ tungscodes für jedes der Segmente, Vergleichen der gezählten Anzahl mit einem vorherbestimmten Schwellenwert, und Weg­ lassen der Merkmalsmenge eines Segmentes mit der Anzahl vorherbestimmter Richtungscodes, die kleiner als der Schwel­ lenwert ist, da es sich um Rauschen handelt (Fig. 28A und 28B).
13. Verfahren nach Anspruch 9, gekennzeichnet durch ein Zählen der Anzahl aller Richtungscodes für die jeweiligen Segmente, Vergleichen der gezählten Anzahl mit einem vorherbestimmten Schwellenwert und Weglassen der Merkmalsmenge eines Segmentes, das die Gesamtanzahl der Richtungscodes hat, die kleiner als der Schwellenwert ist, da es sich um Rauschen handelt (Fig. 28A und 28B).
14. Verfahren nach Anspruch 1, dadurch gekenn­ zeichnet, daß der Schritt, Extrahieren der Merkmals­ mengen, einen Schritt, Erzeugen eines Histogramms der Codes für jedes der Segmente aufweist, so daß die Merkmalsmengen des zu identifizierenden Zeichens durch das Histogramm für jedes Segment dargestellt werden (Fig. 29).
15. Verfahren nach Anspruch 1, dadurch gekenn­ zeichnet, daß der Schritt, Extrahieren der Merkmals­ mengen, die Schritte aufweist, nämlich Aufteilen jedes der Segmente in eine Anzahl Teile und Erzeugen eines Histogramms der Codes für jeden der aufgeteilten Teile, die in jedem Element enthalten sind, so daß die Merkmalsmengen des zu identifizierenden Zeichens durch das Histogramm für jedes Segment dargestellt werden (Fig. 30).
16. Verfahren nach Anspruch 15, dadurch gekenn­ zeichnet, daß jedes der Segmente gleichmäßig in die Teile unterteilt ist (Fig. 30).
17. Verfahren nach Anspruch 15, dadurch gekenn­ zeichnet, daß Segmente, die in einem Bereich zwischen dem Paar Bereichsteilungslinien angeordnet sind, in viel mehr Teile als Segmente aufgeteilt werden, die in anderen Berei­ chen positioniert sind (Fig. 31).
18. Verfahren nach Anspruch 1, dadurch gekenn­ zeichnet, daß der Schritt, Extrahieren der Merk­ malsmengen des Zeichens, ferner die Schritte aufweist, Zählen der Gesamtanzahl aller Codes für jedes der Segmente, Ver­ gleichen der gezählten Anzahl mit einem vorherbestimmten Schwellenwert, Aufteilen jedes der Segmente in eine Vielzahl Teile, wobei die Teilungsanzahl von einem Vergleichsergebnis abhängt, und Erzeugen eines Histogramms der Codes für jeden der aufgeteilten Teile, die in jedem Segment enthalten sind, so daß die Merkmalsmengen des zu identifizierenden Zeichens durch das Histogramm jedes Segments dargestellt werden (Fig. 32).
19. Verfahren nach Anspruch 1, dadurch gekenn­ zeichnet, daß der Schritt, Extrahieren der Merk­ malsmengen, die Schritte aufweist, Zählen der Gesamtanzahl der Codes von Segmenten, wobei zwei Enden jedes der Segmente mit dem Paar Bereichsteilungslinien gekoppelt sind, und Vergleichen der gezählten Gesamtzahl für jedes Element mit­ einander, so daß die Merkmalsmengen des zu identifizierenden Zeichens durch das Vergleichsergebnis dargestellt sind. (Fig. 33A, 33B).
20. Verfahren nach Anspruch 1, dadurch gekenn­ zeichnet, daß der Schritt, Extrahieren der Merk­ malsmengen, folgende Schritte aufweist, Zählen der Gesamt­ anzahl der Codes von Segmenten, von welchen zwei Enden jedes der Segmente mit dem paar Bereichsteilungslinien gekoppelt sind, und Vergleichen der gezählten Gesamtanzahl für jedes der Segmente mit einem Bezugswert, so daß die Merkmalsgrößen des zu identifizierenden Zeichens durch das Vergleichsergebnis dargestellt sind (Fig. 34A, 34B, 35A, 35B).
21. Verfahren nach Anspruch 1, dadurch gekenn­ zeichnet, daß der Schritt, Extrahieren der Merkmals­ größen des Zeichens, folgende Schritte aufweist, nämlich Zählen der Anzahl der Codes jedes der Segmente, Zählen der Gesamtanzahl der Codes, die in allen Segmenten enthalten sind, und Berechnen eines Verhältnisses der Anzahl der Codes jedes der Segmente bezüglich der Gesamtanzahl, welche in allen Segmenten enthalten ist (Fig. 36A und 36B).
DE3815869A 1987-05-08 1988-05-09 Verfahren zum extrahieren von merkmalsmengen eines zeichens Granted DE3815869A1 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP11176587 1987-05-08
JP11176687 1987-05-08
JP11176787 1987-05-08
JP13539687 1987-05-30
JP13910987 1987-06-03
JP63080949A JPS6478396A (en) 1987-05-08 1988-04-01 Method for extracting feature quantity of character

Publications (2)

Publication Number Publication Date
DE3815869A1 true DE3815869A1 (de) 1988-11-17
DE3815869C2 DE3815869C2 (de) 1992-01-23

Family

ID=27551502

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3815869A Granted DE3815869A1 (de) 1987-05-08 1988-05-09 Verfahren zum extrahieren von merkmalsmengen eines zeichens

Country Status (2)

Country Link
US (1) US5182777A (de)
DE (1) DE3815869A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0528317A (ja) * 1991-07-23 1993-02-05 Canon Inc 画像処理方法及び装置
US5666440A (en) * 1991-07-31 1997-09-09 Victor Company Of Japan, Ltd. Method and apparatus for extracting outline data from bi-level image data
PT604687E (pt) 1992-12-30 2000-09-29 Koninkl Kpn Nv Metodo para derivar caracteristicas de caracteres num sistema de reconhecimento de caracteres
JPH0749927A (ja) * 1993-08-09 1995-02-21 Nireco Corp パターン認識方法
JP2937729B2 (ja) * 1993-12-21 1999-08-23 株式会社バーズ情報科学研究所 パターン認識方法及び装置及び辞書作成方法
JPH07306943A (ja) * 1994-05-11 1995-11-21 Sony Corp 画像信号符号化方法
JPH0991380A (ja) * 1995-09-21 1997-04-04 Canon Inc 情報処理装置及び方法及び記憶媒体
JP3569138B2 (ja) * 1998-10-29 2004-09-22 富士通株式会社 単語認識装置および方法
US8682077B1 (en) 2000-11-28 2014-03-25 Hand Held Products, Inc. Method for omnidirectional processing of 2D images including recognizable characters
US6690821B2 (en) * 2000-12-28 2004-02-10 Xerox Corporation Determining the font of text in an image
US8181265B2 (en) * 2003-01-31 2012-05-15 Microsoft Corporation Secure machine counting
US7463770B2 (en) * 2003-07-21 2008-12-09 Lockheed Martin Corporation Methods and systems for detection of repeating patterns of features
US7587086B2 (en) * 2004-06-04 2009-09-08 Microsoft Corporation Identifying selected pixels in a digital image
US7416125B2 (en) * 2005-03-24 2008-08-26 Hand Held Products, Inc. Synthesis decoding and methods of use thereof
DE102007052622A1 (de) * 2007-11-05 2009-05-07 T-Mobile International Ag Verfahren zur Bildanalyse, insbesondere für ein Mobilfunkgerät
JP4720913B2 (ja) * 2009-02-19 2011-07-13 ソニー株式会社 学習装置、学習方法、識別装置、識別方法、及び、プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2505588A1 (de) * 1975-02-11 1976-08-19 Scanner Vorrichtung zum lesen von informationen in form von kontrastmarkierungen
DE3633743A1 (de) * 1985-10-03 1987-04-09 Ricoh Kk Zeichenerkennungssystem
GB2190778A (en) * 1986-05-19 1987-11-25 Ricoh Kk Character recognition with variable subdivision of a character region

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2505588A1 (de) * 1975-02-11 1976-08-19 Scanner Vorrichtung zum lesen von informationen in form von kontrastmarkierungen
DE3633743A1 (de) * 1985-10-03 1987-04-09 Ricoh Kk Zeichenerkennungssystem
GB2190778A (en) * 1986-05-19 1987-11-25 Ricoh Kk Character recognition with variable subdivision of a character region

Also Published As

Publication number Publication date
US5182777A (en) 1993-01-26
DE3815869C2 (de) 1992-01-23

Similar Documents

Publication Publication Date Title
DE3722444C2 (de) Verfahren und Vorrichtung zum Erzeugen von Entwurfsmusterdaten
DE3716787C2 (de)
DE3815869C2 (de)
DE69728127T2 (de) Vorrichtung und Verfahren zur Extraktion eines Objekts in einem Bild
DE3806223C2 (de) Verfahren zur Erzeugung von Zeichenmustern
DE2801536C2 (de) Zeichenformkodiervorrichtung
DE4311172A1 (de) Verfahren und Einrichtung zum Korrigieren der Schräge eines Vorlagenbildes sowie Vorlagensegmentierungssystem
DE3633743C2 (de)
DE69333694T2 (de) Verfahren und Anordnung zur Bildverarbeitung
DE69535098T2 (de) Verfahren und -vorrichtung zur Suche von Bildern in einer Datenbank
DE10036110B4 (de) Verfahren zur Bestimmung des Schrägwinkels eines zweidimensionalen Barcodes
DE60303202T2 (de) System und verfahren zum identifizieren und extrahieren von zeichenketten aus erfassten bilddaten
DE4216893C2 (de) Dateneingabeverfahren
DE60128512T2 (de) Verfahren und Gerät zum Bildvergleich und Mittel zum Speichern des Bildvergleichsprogramms
DE19547812A1 (de) Lesegerät für Schriftzeichenketten
DE3425449A1 (de) Verfahren und vorrichtung zur alphanumerischen handschriftenerkennung
DE2642027A1 (de) Verfahren zur automatischen umwandlung einer rohskizze in eine fertige zeichnung
DE2858688C2 (de)
DE19531392C1 (de) Verfahren zur Erzeugung einer Graphrepräsentation von Bildvorlagen
DE3923914C2 (de) Verfahren zum Extrahieren von Merkmalsgrößen eines Zeichens
EP0301384A2 (de) Schaltungsanordnung zur Aufbereitung von schrägstehenden, insbesondere handgeschriebenen Zeichen
DE3811396C2 (de)
DE19753858C2 (de) Verfahren zum Löschen von geraden Linien und prozessorlesbares Medium zur Durchführung des Verfahrens
DE3935558C2 (de) Datenkonvertierungsvorrichtung
DE2254913A1 (de) Verfahren zur erzeugung graphischer darstellungen aus parametrischen daten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06K 9/46

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee