DE3815869A1 - Verfahren zum extrahieren von merkmalsmengen eines zeichens - Google Patents
Verfahren zum extrahieren von merkmalsmengen eines zeichensInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/18—Extraction of features or characteristics of the image
- G06V30/182—Extraction of features or characteristics of the image by coding the contour of the pattern
- G06V30/1823—Extraction of features or characteristics of the image by coding the contour of the pattern using vector-coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character 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.
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 P ← P + ∆ 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
(3-2), (4-4), (2-3), (1-1)
Beschreibungsformat [2]
(1), (2), (4), (5)
(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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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)
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)
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 |
-
1988
- 1988-05-09 DE DE3815869A patent/DE3815869A1/de active Granted
-
1991
- 1991-04-26 US US07/690,333 patent/US5182777A/en not_active Expired - Fee Related
Patent Citations (3)
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 |