DE69033042T2 - Datenverarbeitung - Google Patents

Datenverarbeitung

Info

Publication number
DE69033042T2
DE69033042T2 DE69033042T DE69033042T DE69033042T2 DE 69033042 T2 DE69033042 T2 DE 69033042T2 DE 69033042 T DE69033042 T DE 69033042T DE 69033042 T DE69033042 T DE 69033042T DE 69033042 T2 DE69033042 T2 DE 69033042T2
Authority
DE
Germany
Prior art keywords
character
text
data
image data
word
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69033042T
Other languages
English (en)
Other versions
DE69033042D1 (de
Inventor
Steven C. Bagley
Daniel Davies
Wayland R. Hicks
Kaplan Ronald M. Kaplan Ronald M.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xerox Corp
Original Assignee
Xerox Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xerox Corp filed Critical Xerox Corp
Application granted granted Critical
Publication of DE69033042D1 publication Critical patent/DE69033042D1/de
Publication of DE69033042T2 publication Critical patent/DE69033042T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Character Discrimination (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)
  • Processing Or Creating Images (AREA)
  • Character Input (AREA)

Description

  • Die vorliegende Erfindung betrifft Techniken zum Operieren auf einem Bild, das Text enthält. Insbesondere betrifft die Erfindung das Einfügen, Löschen oder andersartige Verändern von Zeichen in einem Bild, das durch eine zweidimensionale Datenmatrix definiert wird. Zum Beispiel könnten die Zeichen eines Wortes geändert werden, um die Rechtschreibung zu korrigieren.
  • Wong, K.Y., Casey, R.G. und Wahl, F.M. beschreiben in "Document Analysis System" in IBM Journal of Research and Development, Vol. 26, No. 6, November 1982 auf den Seiten 647-656 ein in Fig. 1 gezeigtes System, das einem Bediener dabei hilft, gedruckte Dokumente für die Computerverarbeitung zu codieren. Ein auf den Seiten 648-649 beschriebener Bildmanipulations-Editor (IEDIT) liest und speichert Bilder auf Platte und sieht Funktionen zum Editieren von Bildern vor, wie das Kopieren, Bewegen, Löschen usw. Wie auf den Seiten 649-656 beschrieben, wird ein digitalisiertes, gedrucktes Dokument segmentiert und dann in Text- und Bildbereiche klassifiziert. Text enthaltende Blöcke können mit einem Mustervergleichs- Programm analysiert werden, das ähnliche Symbole aus dem Dokument gruppiert und ein Prototyp-Muster erstellt, das jede der Gruppen repräsentiert. Während des Mustervergleichs wird die Position und der übereinstimmende Prototyp-Index für jedes Textmuster aufgezeichnet. Die Position kann durch die Koordinaten der unteren linken Ecke der das Muster wiedergebenden Matrix angegeben werden. Die Prototyp-Muster werden interaktiv oder durch eine automatische Erkennungslogik identifiziert. Das Einschließen eines Wörterbuch-Prüftechnik ist geplant, um bei der Korrektur von bei der Erkennung aufgetretenen Fehlern behilflich zu sein.
  • Casey, R.G. und Wong, K.Y. beschreiben in "Text Recognition Using Adaptive Software" in Globecom' 85, Vol. 1, IEEE, 1985 auf den Seiten 353-357 Techniken zum Eingeben von optisch gescanntem gedrucktem Text in einen Computer, indem zuerst ein oder mehrere Beispiele oder "Prototypen" für jedes Symbol auf der Seite extrahiert werden. Die Prototypen werden post-analysiert, um verbundene Zeichen festzustellen und zu trennen, wobei sie dann während einer interaktiven Phase einem Bediener präsentiert werden, der Identitätscodes eingibt. In der interaktiven Phase modifiziert der Bediener den resultierenden Text, falls dies erforderlich ist. Auf Seite 354 wird beschrieben, wie die Zeichen segmentiert werden. Die ab Seite 355 beschriebene Benutzer-Interaktion umfaßt das Anzeigen von nicht gelösten Prototypen für den Bediener, damit dieser die Identitäten eingibt, das kontextuelle Anzeigen von Prototypen für den Bediener, damit dieser die ID der Prototypen verändert, das Hervorheben von Wörtern, die nicht in einem Wörterbuch vorhanden sind, sowie das Anbieten einer Liste von alternativen Schreibungen, um Identfikationsfehler festzustellen und falsche Übereinstimmungen zu korrigieren.
  • Suenaga, Y. und Nagura, M. beschreiben in "A Facsimile Based Manuscript Layout and Editing System by Auxiliary Mark Recognition" in 5th International Conference on Pattern Recognition Proceedings, December 1-4, 1980, Vol. 2 auf den Seiten 856-858 einen Editor, dessen einziges Eingabegerät ein FAX-Sender ist und dessen einzigen Ausgabegerät ein FAX-Empfänger ist. Fig. 1 zeigt Komponenten des Systems einschließlich von OCR und Fig. 2 zeigt den Verarbeitungsfluß, der ein Text-Editier-Teilsystem und ein Grafik-Editier-Teilsystem umfaßt. Das Text- Editier-Teilsystem ordnet das binäre Bild des Textes neu, wie in Fig. 4(a) und 4(b) dargestellt. Die marginale Verteilung (das Profil) und die horizontale Verbundenheit werden verwendet, um das Textbild in segmentierte Blöcke (SBs) zu unterteilen, die den rechteckigen Bereichen entsprechen, die von einzelnen Zeichen in japanischen Texten, von einzelnen Wörtern in alphanumerischen Texten oder von als binäre Muster zu verarbeitenden Grafiken eingenommen werden. Eine Liste der segmentierten Blöcke (SBL) wird erstellt und verwendet, um Marken auf der Basis von topologischen und metrischen Merkmalen zu extrahieren und zu klassifizieren. Eine Marken-Parameterliste für Texte (MPL-T) wird erstellt. Eine Bild-Zuordnungsliste (PAL), die sich aus den SB-Nummern und deren Verknüpfungsadressen zusammensetzt, wird in Übereinstimmung mit der MPL-T und der SBL erzeugt. Die Zeichenketten oder -muster werden virtuell in PAL gelöscht, bewegt, kopiert und kombiniert. Das binäre Bild des Originaltextes wird in Übereinstimmung mit der PAL neu geordnet, um die Endkopie zu erstellen.
  • Brickman, N.F. und Rosenbaum, W. S. beschreiben in "Word Autocorrelation Redundancy Match (WARM) Technology" in IBM Journal of Research and Development, Vol. 26, No. 6, November 1982 auf den Seiten 681-686 eine Faksimile-Technologie, die ein Bild eines Textdokuments mit Hilfe eines komplexen Symbol-Vergleichs sowohl auf der Wortebene wie dann auf der Zeichenebene komprimiert, wie mit Bezug auf Fig. 1 gezeigt und beschrieben. Die in Fig. 1 gezeigte Verarbeitungsreihenfolge wird leicht abgeändert, wenn die Schriftart nicht a priori bekannt ist, wobei in diesem Fall zuerst auf der Zeichenebene operiert wird, um die Schriftart des Dokuments zu erhalten.
  • Holt, M.J.J. und Costas, S.X. beschreiben in "Compression of Document Image Data by Symbol Matching" in Capellini, V. und Marconi, R. (Eds.) Advances in Image Processing and Pattern Recognition, Elsevier Science Publishers, 1986 auf den Seiten 184-190 Techniken zum Komprimieren von maschinengeschriebenen und gedruckten Dokumenten unter Verwendung eines Mustervergleichs-Algorithmus.
  • GB-A-2 162 350 gibt ein Bildverarbeitungssystem an, welches umfaßt: eine Einrichtung zum Lesen und Eingeben von Bildinformation, eine Einrichtung zum Eingeben von Zeicheninformation, eine Erkennungseinheit zum Erkennen der durch die Lese-/Eingabeeinrichtung eingegebenen Zeicheninformation und einen Bildprozessor zum Durchführen des Editierens von Zeichen auf der Basis der Ausgabe der Erkennungseinheit.
  • Die durch die beigefügten Ansprüche definierte vorliegende Erfindung sieht Techniken zum Ändern von Zeichen in einem Text vor, der in einem Bild erscheint. Das Bild kann zum Beispiel durch eine zweidimensionale Datenmatrix definiert sein. Eine derartige Matrix kann von einem Bildeingabegerät wie einem Scanner oder einer Kamera, aus einem gespeicherten Datei oder aus einer anderen Quelle erhalten werden. Eine ein Zeichen definierende Matrix kann aus demselben Text erhalten werden, wobei die Zeichenmatrix dann für das Vornehmen der Änderung verwendet werden kann.
  • Ein Aspekt der vorliegenden Erfindung beruht auf der Beobachtung eines fundamentalen Problems bei der Änderung von Zeichen in Text in einem Bild. Bei einem Änderungsergebnis, das darin besteht, daß der Text ein neues Zeichen enthält, das vor der Änderung nicht im Text vorgesehen war, ist die veränderte Version des Bildes nicht zufriedenstellend, wenn das neue Zeichen nicht den anderen Vertretern desselben Zeichentyps im Text entspricht. Wenn das neue Zeichen zum Beispiel einen unterschiedlichen Schriftschnitt oder eine andere Punktgröße wie die anderen Vertreter desselben Zeichentyps im Text aufweist, wird das Aussehen des Textes beeinträchtigt.
  • Dieser Aspekt beruht weiterhin auf der Entdeckung, daß das zuvor genannte Problem oft gelöst werden kann, indem ein bestehendes Zeichen gefunden wird, das bereits im Text erscheint und demselben Zeichentyp wie das neue Zeichen entspricht. Daten, etwa eine zweidimensionale Matrix, die das bestehende Zeichen im wesentlichen in derselben Weise definieren wie die Daten, die das Bild definieren, in dem das Zeichen auftritt, können automatisch erhalten werden. Das Bild, in dem das bestehende Zeichen auftritt, kann dasselbe sein wie das gerade modifizierte Bild oder ein anderes Bild, das einen anderen Teil desselben Textes enthält, etwa eine andere Seite. Eine modifizierte Version des gerade modifizierten Bildes kann dann erzeugt werden, wobei das neue Zeichen im wesentlichen in derselben Weise definiert ist, in der das bestehende Zeichen zuvor definiert wurde.
  • Diese Lösung kann implementiert werden, indem eine Zeichenerkennung auf einer zweidimensionalen Matrix durchgeführt wird, die ein Bild definiert, das einen Teil des Textes enthält. Die Erkennungsergebnisse können Raumdaten, die die Positionen von korrekt geschriebenen Wörtern in der Matrix angeben, und Identitätsdaten enthalten, die die Zeichentypen der enthaltenen Zeichen angeben. Unter Verwendung von Raumdaten, die die Position eines korrekt geschriebenen, das bestehende Zeichen enthaltenden Wortes angeben, kann eine intermediäre zweidimensionale Matrix erhalten werden, die das Wort enthält. Die zweidimensionale Matrix, die das Zeichen definiert, kann dann automatisch aus dieser intermediären Matrix erhalten werden.
  • Andere eng damit verbundene Aspekte der vorliegenden Erfindung beruhen auf der Beobachtung, daß ein bestehendes Zeichen auch dann, wenn es in einem korrekt buchstabierten Wort auftritt, nicht zufriedenstellend sein kann. Zum Beispiel können eines oder mehrere Zeichen des Wortes schlecht gebildet sein. Weiterhin kann ein Text mehr als eine Schriftart oder Punktgröße umfassen, so daß einige der korrekt buchstabierten Wörter ungeeignet sind, weil sie die falsche Schriftart oder Punktgröße aufweisen. Diese Probleme können auf verschiedene Weise reduziert werden.
  • In Übereinstimmung mit einem Aspekt der vorliegenden Erfindung wird das durch schlecht gebildete Zeichen verursachte Problem durch das Testen eines Wortes vor der Verwendung seiner Zeichen reduziert. Die Matrix des Wortes kann analysiert werden, um die verbundenen Komponenten darin zu finden, wobei die verbundenen Komponenten in Sätze gruppiert werden können, von denen jeder in Übereinstimmung mit entsprechenden Kriterien wahrscheinlich ein Zeichen ist. Wenn die Anzahl der Komponentensätze nicht gleich der Anzahl der Zeichen in einem Wort ist, ist es wahrscheinlich, daß eines oder mehrere der Zeichen schlecht gebildet sind, wobei entweder ein Zeichen in Teile zerbrochen ist oder zwei Zeichen miteinander verbunden sind. Deshalb wird das Wort nicht verwendet, wenn es nicht so viele Komponentensätze wie Zeichen aufweist.
  • In Übereinstimmung mit einem anderen Aspekt der vorliegenden Erfindung wird das durch schlecht gebildete Zeichen und mehrere Schrifttypen oder Punktgrößen verursachte Problem reduziert, indem ein wahrscheinlich passendes Zeichen aus einem Satz von Zeichen desselben erkannten Zeichentyps ausgewählt wird. Wenn diese erhalten werden, können die zweidimensionalen Matrizen für die Zeichen jedes Zeichentyps verglichen werden. Bei beinahe identischen Zeichen kann das erste gefundene behalten werden. Bei deutlich unterschiedlichen Zeichen können beide behalten werden, wobei eines für ein bestimmtes neues Zeichen ausgewählt werden kann. Die Auswahl sollte durch einen Benutzer gemacht werden. Es können auch Kontextdaten für jedes gefundene Zeichen gespeichert werden, die seine Position, Schriftart, Punktgröße oder ähnliches angeben. Diese Kontextdaten können dann verwendet werden, um die zweidimensionale Matrix für eine besondere Einfügung auszuwählen.
  • Andere Aspekte der Erfindung beruhen auf der Beobachtung, daß einige Operationen auf Text mehr als nur das einfache Hinzufügen eines neuen Zeichens erfordern. Um zum Beispiel eine Rechtschreibkorrektur auf Text in Bildform durchzuführen, ist es häufig erforderlich, eine Anzahl von Zeichen in einem Wort zu ersetzen oder neu zu ordnen, wobei diese Operation sowohl Löschungen wie Einfügungen umfassen kann. Jede separat durchgeführte Löschung und Einfügung - - erfordert jedoch das erneute Positionieren der anderen Zeichen, was die Gesamtoperation komplex und anfällig für Fehler macht. Außerdem kann die Rechtschreibkorrektur oder eine andere Operation zum Hinzufügen eines neuen Zeichens zu einem bestehenden Wort oder das Löschen eines Zeichens aus einem bestehenden Wort zusätzliche Korrekturen erfordern, da andere Zeichen des Wortes schlecht gebildet sind.
  • Ein Aspekt der Erfindung beruht auf der Entdeckung einer Technik, mit der komplexe Operationen wie eine Rechtschreibkorrektur und das Hinzufügen oder Löschen eines Zeichens in einem bestehenden Wort in einem Text in Bildform durchgeführt werden können. Anstatt derartige Operationen für jedes Zeichen separat durchzuführen, kann das ganze Wort gelöscht und durch ein neues Wort ersetzt werden, dessen zweidimensionale Matrix aus den Daten erzeugt wird, die den Text in Bildform definieren. Raumdaten, die die Zeichenabstände in dem ersetzten Wort angeben, können bei der Positionierung der Zeichen in der Matrix des neuen Wortes in einer Richtung entlang der Zeile verwendet werden. Raumdaten, die die Position der Matrix jedes Zeichens relativ zu einer Grundlinie angeben, können bei der Positionierung der Zeichen in der Richtung quer zu der Zeile verwendet werden.
  • Ein damit verbundener Aspekt beruht auf der Beobachtung, daß es oft erforderlich ist, andere Wörter in einer Zeile neu zu positionieren, in der ein Wort ersetzt wird. Die Neupositionierung kann vorgenommen werden, indem eine zweidimensionale Matrix für die Zeile erhalten wird, in der die Abstände zwischen den Wörter so angepaßt sind, daß die Wörter, einschließlich des ersetzten Wortes, passend beabstandet sind. Die Wortersetzung kann dann vorgenommen werden, indem eine modifizierte Version des Bildes erzeugt wird, in der die Zeile wie in dessen Matrix definiert ist.
  • In Übereinstimmung mit einem Aspekt der vorliegenden Erfindung ist ein Verfahren zum Ändern von Zeichen in einem Text in einem Bild angegeben, wobei das Verfahren folgende Schritte umfaßt: Speichern von ersten Text-Bilddaten im Speicher, wobei die ersten Text-Bilddaten eine erste Version eines Textes in Bildform definieren, wobei die erste Version des Textes ein erstes Zeichen enthält, das ein Vertreter eines ersten Zeichentyps ist, Betreiben einer Verarbeitungseinrichtung, die für den Zugriff auf den Speicher verbunden ist, um zweite Text-Bilddaten unter Verwendung der ersten Text-Bilddaten zu erzeugen, wobei die zweiten Text- Bilddaten eine zweite Version des Textes in Bildform mit einem zweiten Zeichen definieren, das ein Vertreter des ersten Zeichentyps ist, dadurch gekennzeichnet, daß die Verarbeitungseinrichtung beim Erzeugen der zweiten Text-Bilddaten auf den ersten Text-Bilddaten operiert, um das erste Zeichen in der ersten Version des Textes zu finden und um erste Zeichendaten zu erhalten, die das erste Zeichen im wesentlichen in derselben Weise definieren, in der es durch die ersten Text- Bilddaten definiert wird, und die ersten Text-Bilddaten und die ersten Zeichendaten verwendet, um die zweiten Text-Bilddaten mit dem zweiten Zeichen zu erzeugen, das durch die zweiten Text-Bilddaten im wesentlichen in derselben Weise definiert wird, in der das erste Zeichen durch die ersten Zeichendaten definiert wird.
  • In Übereinstimmung mit einem anderen Aspekt der Erfindung ist ein Datenverarbeitungssystem angegeben, welches umfaßt: eine Verarbeitungseinrichtung, einen Speicher, der für den Zugriff durch die Verarbeitungseinrichtung verbunden ist, wobei der Speicher eine erste Datenstruktur speichert, die erste Text-Bilddaten enthält, die eine erste Version eines Textes in Bildform definieren, wobei der Text ein erstes Zeichen enthält, das ein Vertreter eines ersten Zeichentyps ist, wobei die Verarbeitungseinrichtung operiert, um zweite Text-Bilddaten unter Verwendung der ersten Text-Bilddaten zu erzeugen, wobei die zweiten Text-Bilddaten eine zweite Version des Textes in Bildform mit einem zweiten Zeichen definieren, das ein Vertreter des ersten Zeichentyps ist, dadurch gekennzeichnet, daß die Verarbeitungseinrichtung beim Erzeugen der zweiten Text-Bilddaten auf den ersten Text- Bilddaten operiert, um das erste Zeichen in der ersten Version des Textes zu finden und um erste Zeichendaten zu erhalten, die das erste Zeichen in im wesentlichen derselben Weise definieren, in der es durch die ersten Text-Bilddaten definiert wird, und weiterhin die ersten Text-Bilddaten und die ersten Zeichendaten verwendet, um die zweiten Text-Bilddaten mit dem zweiten Zeichen zu erzeugen, das durch die zweiten Text-Bilddaten im wesentlichen in derselben Weise definiert wird, in der das erste Zeichen durch die ersten Zeichendaten definiert wird.
  • Die vorliegende Erfindung wird im folgenden beispielhaft mit Bezug auf die beigefügten Zeichnungen beschrieben, wobei
  • Fig. 1 ein Flußdiagramm ist, das Phasen einer Rechtschreibkorrektur-Operation durch das Ersetzen eines Wortes durch ein neues aus neuen Zeichen gebildetes Wort in Übereinstimmung mit der vorliegenden Erfindung zeigt,
  • Fig. 2 ein Flußdiagramm ist, das allgemeine Schritte zum Vorsehen eines neuen Zeichens in Übereinstimmung mit der vorliegenden Erfindung zeigt,
  • Fig. 3 ein Flußdiagramm ist, das ausführlicher zeigt, wie die ein Zeichen definierenden Daten in Fig. 2 erhalten werden können,
  • Fig. 4 ein Flußdiagramm ist, das ausführlicher zeigt, wie die einen modifizierten Text mit einem neuen Zeichen definierenden Daten in Fig. 2 erzeugt werden können,
  • Fig. 5 ein Blockdiagramm ist, das Komponenten eines Systems zur Rechtschreibkorrektur durch das Ersetzen eines Wortes durch ein neues aus neuen Zeichen gebildetes Wort in Übereinstimmung mit der vorliegenden Erfindung zeigt,
  • Fig. 6 ein Blockdiagramm ist, das Komponenten eines Systems in Übereinstimmung mit Fig. 5 zeigt, wobei der Prozessor drei Teilprozessoren umfaßt,
  • Fig. 7A eine Ansicht eines Bildes zeigt, das Text enthält,
  • Fig. 7B eine Ansicht einer modifizierten Version des Textes von Fig. 7A zeigt, in der falsch geschriebene Wörter durch korrekt geschriebene Wörter in Übereinstimmung mit der vorliegenden Erfindung ersetzt werden,
  • Fig. 8 ein Flußdiagramm ist, das Schritte zum Erzeugen einer Wortlisten- Datenstruktur für die Verwendung bei der Rechtschreibkorrektur in Übereinstimmung mit der vorliegenden Erfindung zeigt,
  • Fig. 9 ein Flußdiagramm ist, das Schritte für die Rechtschreibkorrektur in Übereinstimmung mit der vorliegenden Erfindung zeigt,
  • Fig. 10 ein Flußdiagramm ist, das Schritte zum Setzen eines Wortes in Fig. 9 ist, und
  • Fig. 11 ein Flußdiagramm ist, das Schritte zum Ersetzen eines Wortes in Fig. 9 ist.
  • A. Konzeptueller Rahmen
  • Der folgende konzeptuelle Rahmen ist für ein Verständnis des allgemeinen Umfangs der vorliegenden Erfindung hilfreich, wobei die angegebenen Bedeutungen der im folgenden definierten Begriffe in der ganzen Anmeldung und in den Ansprüchen gelten.
  • Unter "Zeichen" soll ein diskretes Element verstanden werden, das in einem Schreibsystem auftritt. Zeichen umfassen in der englischen Sprache also nicht nur alphabetische und numerische Elemente, sondern auch Satzzeichen, diakritische Zeichen, mathematische und logische Symbole sowie andere beim Schreiben in der englischen Sprache verwendete Elemente. Insbesondere können Zeichen zusätzlich zu den alphanumerischen Elementen auch phonetische, ideographische oder piktographische Elemente umfassen. Ein "Zeichentyp" ist eine Kategorie, von der ein Zeichen ein Vertreter sein kann, etwa der Buchstabe "a" oder die Zahl "3".
  • Ein "Wort" ist ein Satz aus einem oder mehreren Zeichen, das als eine semantische Einheit in einer Sprache behandelt wird. Ein "Text" ist eine Anordnung von einer oder mehreren Zeilen aus Zeichen, wobei die Zeichen eines Textes Wörter bilden können.
  • Ein "Bild" ist ein Lichtmuster. Ein Bild kann Zeichen, Wörter und Text, sowie andere Elemente wie Grafiken enthalten. Ein Text kann in einem Satz von einem oder mehreren Bildern enthalten sein, etwa in den Bildern für die Seiten eines Dokuments.
  • Eine "Datenstruktur" ist eine beliebige Kombination von aufeinander bezogenen Datenelementen. Ein Datenelement ist in einer Datenstruktur "enthalten", wenn auf dieses unter Verwendung der Datenlokationen anderer Elemente in der Datenstruktur zugegriffen werden kann; das enthaltene Datenelement kann eine andere Datenstruktur sein. Umgekehrt kann ein Datenelement aus einer Datenstruktur "entfernt" werden, indem es nicht zugreifbar gemacht wird, etwa indem es gelöscht wird. Eine "Datenmatrix" oder "Matrix" ist eine Datenstruktur, die Datenelemente enthält, die in die Matrix gemappt werden können. Eine "zweidimensionale Matrix" ist eine Datenmatrix, deren Datenelemente in eine Matrix mit zwei Dimensionen gemappt werden können.
  • Daten oder eine Datenstruktur können durch beliebige Operationen "erhalten" oder "erzeugt" werden, die in den Daten oder der Datenstruktur resultieren. Daten oder eine Datenstrukturen können durch beliebige Operationen "aus" anderen Daten "erhalten" oder "erzeugt" werden, die die Daten oder die Datenstruktur erhalten oder erzeugen, indem sie die anderen Daten oder die Daten in der anderen Datenstruktur verwenden. Eine Matrix kann zum Beispiel durch Operationen aus einer anderen Matrix erzeugt werden, indem eine kleinere Matrix erzeugt wird, die einem Teil der anderen Matrix entspricht, indem eine größere Matrix erzeugt wird, die einen der anderen Matrix entsprechenden Teil umfaßt, indem die andere Matrix kopiert wird oder indem die Daten in der anderen Matrix oder in einer Kopie derselben modifiziert werden.
  • Daten "definieren" eine Matrix, wenn diese ausreichende Daten umfassen, um die Matrix zu erhalten oder zu erzeugen. Die eine Matrix definierenden Daten können zum Beispiel die definierte Matrix selbst, eine komprimierte oder codierte Form der definierten Matrix, einen Zeiger auf die definierte Matrix, einen Zeiger auf einen Teil einer anderen Matrix, aus der die definierte Matrix erhalten werden kann, oder Zeiger zu einem Satz von kleineren Matrizen, aus denen die definierte Matrix erhalten werden kann, umfassen.
  • Daten "definieren" ein Bild, wenn die Daten ausreichende Information enthalten, um das Bild zu erzeugen. Zum Beispiel kann eines zweidimensionale Matrix ein ganzes Bild oder einen Teil eines Bildes definieren, wobei jedes Datenelement in der Matrix einen Wert vorsieht, der die Farbe einer entsprechenden Position im Bild angibt. Wenn eine zweidimensionale Matrix oder andere Daten ein Bild definieren, das ein Zeichen enthält, definieren die Matrix oder die anderen Daten auch dieses Zeichen. Eine "Matrix mit der Größe eines Zeichens" ist eine zweidimensionale Matrix, die nur ein Zeichen oder ein Element mit der Größe eines Zeichens definiert.
  • Daten definieren einen Text "in Bildform", wenn die Daten einen Satz von einem oder mehreren Bildern definieren, die zusammen den Text enthalten. Der Text kann zum Beispiel auf einer Reihe von Seiten eines Dokuments erscheinen und kann in Bildform durch Daten definiert werden, die ein Bild jeder Seite des Dokuments definieren.
  • Jede Position in einem Bild kann als "Pixel" bezeichnet werden. In einer ein Bild definierenden Matrix, in der jedes Datenelement einen Wert vorsieht, kann jeder die Farbe einer Position angebende Wert als "Pixelwert" bezeichnet werden. Jeder Pixelwert ist ein Bit in der "Binärform" des Bildes, ein Graustufenwert in einer "Graustufenform" des Bildes oder ein Satz von Farbraum-Koordinaten in einer "Farbkoordinatenform" des Bildes, wobei die Binärform, die Graustufenform und die Farbkoordinatenform jeweils eine das Bild definierende zweidimensionale Matrix sind.
  • Eine "Version" eines ersten Bildes ist ein zweites Bild, das unter Verwendung der das erste Bild definierenden Daten erzeugt wird. Das zweite Bild kann mit dem ersten Bild identisch sein oder durch einen Verlust an Auflösung, durch das Ändern der das erste Bild definierenden Daten oder durch andere Prozesse modifiziert sein, die in einer modifizierten Version resultieren. Eine "Ansicht" eines Bildes ist eine Version des Bildes, die für einen Benutzer angezeigt wird; eine Ansicht kann einige Details des Bildes auslassen oder in anderer Weise modifiziert sein.
  • Eine "verbundene Komponente" oder ein "Blob" ist ein Satz von Pixelwerten in einer ein Bild definierenden Datenmatrix, die alle miteinander durch eine entsprechende Regel verbunden werden, etwa wenn sie zueinander Nachbarn sind oder beide Nachbarn von anderen Mitgliedern des Satzes sind. Eine verbundene Komponente einer Binärform eines Bildes kann einen verbundenen Satz von Pixelwerten enthalten, die denselben binären Wert aufweisen, etwa schwarz. Ein "verbundener Komponentensatz" oder ein "Komponentensatz" ist ein Satz von verbundenen Komponenten, die als eine Einheit behandelt werden. Ein Zeichen kann deshalb ein Komponentensatz sein; zum Beispiel umfaßt der Buchstabe "i" zwei verbundene Komponenten, die in einem englischen Text als ein einzelnes Zeichen behandelt werden, d. h. die verbundenen Komponenten "bilden" das Zeichen. Ein "Begrenzungskasten" für ein Zeichen oder einen anderen Komponentensatz ist ein Rechteck, das ausreichend groß ist, um alle Pixelwerte im Komponentensatz zu umfassen, und durch Koordinaten angegeben werden kann.
  • Die zum Erzeugen einer modifizierten Version eines Text enthaltenden Bildes verwendeten Daten können Information über ein Zeichen im Text enthalten. Die "Identitätsinformation" zu einem Zeichen ist Information, die dessen Zeichentyp, Groß-/Kleinschreibung, Schriftschnitt, Punktgröße oder ähnliches angibt. Ein Zeichen zu "erkennen" bedeutet, Identitätsinformation zu einem Zeichen aus einer zweidimensionalen Matrix zu erhalten, die ein das Zeichen enthaltendes Bild definiert. Die "Rauminformation" zu einem Zeichen ist die Information, die dessen räumliche Eigenschaften, wie seine Größe, Form, Position, Orientierung, Ausrichtung mit anderen Zeichen oder ähnliches angibt. Obwohl die Rauminformation und die Identitätsinformation nicht vollständig unabhängig voneinander sind, kann die Rauminformation zu einem Zeichen aus einer ein Bild definierenden zweidimensionalen Matrix erhalten werden, ohne daß das Zeichen erkannt wird.
  • Ein "Datenverarbeitungssystem" ist ein System, das Daten verarbeitet. Ein "Datenprozessor" oder "Prozessor" ist eine Komponente oder ein System, das Daten verarbeiten kann und eine oder mehrere zentrale Verarbeitungseinheiten oder andere Verarbeitungskomponenten umfassen kann. Ein "Bildeingabegerät" ist ein Gerät, das ein Bild empfangen und ein Signal bereitstellen kann, das eine Version des Bildes definiert. Ein "Scanner" ist ein Bildeingabegerät, das ein Bild mit Hilfe einer Scanoperation empfängt, etwa durch das Scannen eines Dokumentes. Ein "Benutzereingabegerät" ist ein Gerät wie eine Tastatur oder eine Maus, die auf der Basis der Aktionen eines Benutzers Signale bereitstellen kann. Die Daten aus dem Benutzereingabegerät können eine "Anforderung" für eine Operation sein, wobei das System in diesem Fall die angeforderte Operation in Antwort auf die Anforderung durchführen kann. Ein "Bildausgabegerät" ist ein Gerät, das ein Bild als Ausgabe vorsehen kann. Eine "Anzeige" ist ein Bildausgabegerät, das die Information in sichtbarer Form vorsieht, etwa auf dem Bildschirm einer Kathodenstrahlröhre.
  • Ein Prozessor "greift auf" eine Datenstruktur "zu", indem er eine beliebige Operation vornimmt, die die in der Datenstruktur enthaltenen Daten abruft oder modifiziert, etwa das Lesen oder Schreiben von Daten an einer in der Datenstruktur enthaltenden Speicherstelle. Ein Prozessor kann "für den Zugriff' auf eine Datenstruktur durch eine beliebige Kombination von Verbindungen mit lokalen oder entfernten Speicher- oder Eingabe-/Ausgabegeräten "verbunden" sein, die dem Prozessor den Zugriff auf die Datenstruktur erlauben.
  • Ein Prozessor führt eine Operation oder eine Funktion "automatisch" durch, wenn er die Operation oder Funktion unabhängig von der menschlichen Kontrolle durchführt.
  • B. Allgemeine Merkmale
  • Fig. 1-5 stellen allgemeine Merkmale der Erfindung dar. Fig. 1 stellt die Phasen einer Rechtschreibkorrektur-Operation dar, die das Ersetzen eines Wortes durch ein neues aus neuen Zeichen gebildetes Wort umfaßt. Fig. 2 zeigt die allgemeinen Schritte zum Vorsehen eines neuen Zeichens. Fig. 3 zeigt in ausführlicherer Weise Schritte zum Erhalten der ein neues Zeichen definierenden Daten. Fig. 4 zeigt in ausführlicherer Weise Schritte zum Einfügen eines neuen Zeichens in Daten, die eine modifizierte Version eines Textes in Bildform definieren. Fig. 5 zeigt Komponenten eines Systems, das eine Rechtschreibkorrektur durchführen kann, indem es ein Wort durch ein aus neuen Zeichen gebildetes Wort ersetzt.
  • Block 10 in Fig. 1 zeigt einen Bildbereich, der eine Textzeile mit den Wörtern "it's one wird world" enthält. Dieser Bildbereich kann gescannt werden, um eine zweidimensionale Datenmatrix zu erhalten, in der jedes Datenelement ein binärer Wert oder ein anderer digitaler Wert ist, der eine entsprechende Position im Bildbereich angibt. Mit Zeichenerkennungstechniken kann Information aus der zweidimensionalen Matrix erhalten werden, die Identitätsinformation, die die Identitäten der Zeichen im Bildbereich angibt, und Rauminformation wie die Position der Zeichen, Wörter und Zeilen des Textes im Bildbereich umfaßt. Weiterhin können Rechtschreibprüfungstechniken bestimmen, daß das mit "bird" buchstabierte Wort 12 ein falsch geschriebenes Wort ist.
  • Wenn bestimmt wird, daß das Wort 12 nicht korrekt ist, kann eine Anzahl von alternativen korrekten Schreibungen auf einem Bildausgabegerät wie einer Anzeige für den Benutzer präsentiert werden, wie in Block 20 gezeigt. Der Benutzer kann dann ein mit einem Benutzereingabegerät wie einer Maus ein Signal vorsehen, das angibt, daß das nicht korrekte Wort durch eine der Alternativen ersetzt werden soll. In Block 20 wählt der Benutzer das "weird" buchstabierte Wort 22 durch das Positionieren des Zeigers 24 auf demselben aus und sieht ein entsprechendes Signal wie etwa einen Maustastenklick vor.
  • Zu diesem Zeitpunkt beginnt das System mit mehreren automatischen Schritten, von denen jeder Daten erhält, die ein oder mehrere Zeichen des Wortes 22 aus der den Bildbereich definierenden zweidimensionalen Matrix definieren. In dem Schritt von Block 30 werden das Zeichen 32, ein "w", definierende Daten, das Zeichen 34, ein "r", definierende Daten und das Zeichen 36, ein "d", definierende Daten gefunden. In diesem Schritt können auch Raumdaten für jedes Zeichen erhalten werden, die dessen Größe und Position in Beziehung zu der Grundlinie 38 angeben. Entsprechend werden in dem Schritt von Block 40 das Zeichen 42, ein "e", definierende Daten gefunden und können Raumdaten erhalten werden, die dessen Größe und Position in Beziehung zu der Grundlinie 44 angegeben. Weiterhin werden in dem Schritt von Block 50 das Zeichen 52, ein "i", definierende Daten gefunden und können Raumdaten erhalten werden, die dessen Größe und Position in Beziehung zu der Grundlinie 54 angeben.
  • Das System verwendet dann die in den Blöcken 30, 40 und 50 erhaltenen Daten, um Daten zu erhalten, die das in Block 20 ausgewählte Wort definieren, wie in Block 60 gezeigt. Die das Wort 62 definierenden Daten umfassen Daten, die die Zeichen "w", "e", "i", "r" und "d" im wesentlichen in derselben Weise definieren, in der die Zeichen 32, 42, 52, 34 und 36 definiert sind. Die die Zeichen definierenden Daten können in einer zweidimensionalen Matrix für das Wort enthalten sein, so daß die Zeichen sowohl in Beziehung aufeinander wie entlang der Zeile und in Beziehung zu der Grundlinie 64 in der Richtung quer zu der Zeile passend positioniert sind.
  • Schließlich verwendet das System in dem in Block 70 gezeigten Schritt die das Wort 62 definierenden Daten und die originale zweidimensionale Matrix, um Daten zu erhalten, die eine modifizierte Version des Textes definieren, in dem das Wort 12 durch das Wort 72 ersetzt ist. Die Daten, die die modifizierte Version des Textes definieren, umfassen Daten, die das Wort 72 im wesentlichen in derselben Weise definieren, in der er es durch die das Wort 62 definierenden Daten definiert ist. Als Teil dieses Schrittes nimmt das System notwendige Anpassungen der Abstände 74 zwischen den Wörter vor. Die Wortabstände können auch angepaßt werden, um die Ausrichtung der Textzeile aufrechtzuerhalten.
  • Die Schritte in Fig. 2 zeigen allgemeiner, wie ein neues Zeichen in Übereinstimmung mit der vorliegenden Erfindung vorgesehen wird. Der allgemeine Schritt in Block 90 erhält automatisch Daten, die ein Zeichen in den Daten definieren, die eine erste Version eines Textes in Bildform definieren. Dieser Schritt kann vorgenommen werden, indem Daten gefunden werden, die das Zeichen in einer zweidimensionalen Matrix definieren, die einen den Text enthaltenden Bildbereich definieren, wie in den Blöcken 30, 40 und 50 von Fig. 1 gezeigt, und indem automatisch eine zweidimensionale Matrix, die das Zeichen definiert, oder eine derartige Matrix definierende Daten erhalten werden. Der allgemeine Schritt in Block 92 erzeugt Daten, die eine zweite Version des Textes in Bildform definieren, die derart modifiziert ist, daß sie ein neues Zeichen enthält. Der Schritt 92 verwendet die Daten, die das Zeichen definieren, so daß das neue Zeichen im wesentlichen in derselben Weise definiert ist, in der die in Block 90 gefundenen Daten das zuvor im Text vorhandene Zeichen definieren, wie in Block 70 von Fig. 1 gezeigt.
  • Fig. 3 stellt ausführlicher dar, wie der allgemeine Schritt in Block 90 automatisch durchgeführt werden kann. Der Schritt in Block 100 operiert auf Daten, die einen Text in Bildform definieren, um Identitätsdaten, die die Zeichentypen der Zeichen in jedem Wort des Textes angeben, und Wortraumdaten zu erhalten, die die Position jedes Wortes angeben. Der Schritt in Block 102 beginnt dann eine Iterationsschleife, die jedes Wort im Text behandelt. Diese Schleife kann fortfahren, bis sie ein oder mehrere benötigte Zeichen erhält oder bis alle Wörter behandelt sind. Die Wörter können auch in einer Reihenfolge behandelt werden, die die Effizienz steigert, indem etwa mit den Wörtern begonnen wird, die die größte Anzahl von benötigten Zeichen aufweisen, oder in dem mit den kürzesten Wörtern begonnen wird, die wenigstens eines der benötigten Zeichen aufweisen.
  • Der Schritt in Block 104 verwendet die Wortraumdaten, die die Position des nächsten Wortes angeben, und die den Text definierenden Daten, um eine zwei dimensionale Matrix zu erhalten, die das Wort definiert. Der Schritt in Block 106 analysiert dann die zweidimensionale Matrix des Wortes, um die darin enthaltenen verbundenen Komponenten zu finden. Die verbundenen Komponenten werden in Übereinstimmung mit einer entsprechenden Regel in Sätze gruppiert, wobei die Komponentensätze in Block 108 gezählt werden.
  • Der Test in Block 110 bestimmt, ob die Zählung der Komponentensätze von Block 108 gleich der Anzahl der Zeichen ist, die durch die in Block 100 erhaltenen Identitätsdaten angegeben werden. Wenn nicht, ist wenigstens eines der Zeichen wahrscheinlich schlecht gebildet, so daß die Zeichen nicht verwendet werden.
  • Wenn die Zählung gleich der Anzahl der Zeichen ist, findet der Schritt in Block 112 Daten, die jedes Zeichen im Wort definieren, indem eine entsprechende zweidimensionale Matrix erhalten wird, die jeden Komponentensatz aus der zweidimensionalen Matrix des Wortes enthält. In diesem Schritt werden auch Zeichenraumdaten erhalten, die die Position der zweidimensionalen Matrix jedes Zeichens in Beziehung zu der Grundlinie des Wortes angeben. Der Schritt in Block 114 verwendet die Identitätsdaten für das Wort, um den Zeichentyp der zweidimensionalen Matrix jedes Zeichens zu bestimmen, und aktualisiert die Matrizen für diese Zeichentypen. Zum Beispiel kann die neue Matrix zu den gespeicherten Matrizen hinzugefügt werden, wenn sie sich von allen diesen unterscheidet; es können aber auch ihre räumlichen Daten verwendet werden, um ein zusätzliches Auftreten einer zuvor angetroffenen Matrix anzugeben, die im wesentlichen mit der neuen Matrix identisch ist.
  • Wenn alle Wörter im Text auf diese Weise behandelt wurden, gibt der Schritt in Block 120 die gespeicherten Matrizen für die Zeichentypen aus. Dieser Schritt macht die Matrizen für die Verwendung in darauffolgenden Operationen verfügbar.
  • Fig. 4 stellt ausführlicher dar, wie der allgemeine Schritt in Block 92 von Fig. 2 durchgeführt werden kann, indem ein Wort im Text durch ein aus neues Zeichen gebildetes Wort ersetzt werden kann. Der Schritt 140 beginnt mit den Zeichentypen des neuen Wortes. Der Schritt 142 beginnt eine Iterationsschleife, die jeden der Typen behandelt, bis alle das Wort definierenden zweidimensionalen Matrizen erzeugt sind.
  • Für jeden Typ bestimmt der Test in Block 144, ob eine Zeichenmatrix für diesen Typ verfügbar ist, wie etwa die in Schritt 120 von Fig. 3 gespeicherten Matrizen. Wenn keine Zeichenmatrizen verfügbar sind, sieht der Schritt in Block 146 ein Fehlersignal vor, das angibt, daß keine Matrix für das Wort erzeugt werden konnte. Wenn aber Zeichenmatrizen verfügbar sind, wählt der Schritt in Block 148 eine Matrix aus, die ein Zeichen des Typs definiert, der für das neue Wort passend ist.
  • Wenn eine Matrix für jeden der Typen auf diese Weise ausgewählt wurde, erzeugt der Schritt in Block 150 eine zweidimensionale Matrix für das neue Wort unter Verwendung von ausgewählten Zeichenmatrizen. Der Schritt in Block 150 kann durchgeführt werden, indem in der Matrix des neuen Wortes Daten eingefügt werden, die jedes Zeichen im wesentlichen in derselben Weise definieren, in der es durch die ausgewählte Zeichenmatrix definiert wird. Die jedes Zeichen definierenden Daten können in der Matrix des neuen Wortes so positioniert werden, daß das Zeichen richtig in Beziehung zu den anderen Zeichen des Wortes und Beziehung zu der Grundlinie positioniert ist.
  • Wenn die zweidimensionale Matrix des neuen Wortes fertiggestellt ist, erzeugt der Schritt in Block 152 eine neue Matrix, die ein Bild definiert, das die ganze modifizierte Version des Textes oder einen Teil derselben enthält. Dieser Schritt kann das Auslassen von Daten eines ersetzten Wortes umfassen, das Einschließen von Daten, die das neue Wort im wesentlichen in derselben Weise definieren, in der es durch die zweidimensionale Matrix definiert wird, sowie das Positionieren der das neue Wort definierenden Daten sowie der andere Wörter definierenden Daten in derselben Zeile, um die Wortabstände in der Zeile anzupassen. Der Schritt in Block 154 gibt dann die neue zweidimensionale Matrix als Teil der Daten aus, die die modifizierte Version des Bildes definieren.
  • Fig. 5 zeigt Komponenten des Systems 200, die eine Rechtschreibkorrektur durchführen können, indem ein Wort durch ein wie oben beschrieben aus neuen Zeichen gebildetes neues Wort ersetzt wird. Das System 200 umfaßt einen Prozessor 202, der eine beliebige geeignete Architektur aufweisen kann. Der Prozessor 202 ist verbunden, um Signale aus einem Bildeingabegerät 204, das ein Scanner sein kann, und aus einem Benutzereingabegerät 206, das eine Tastatur mit einer Maus sein kann, zu empfangen. Der Prozessor 202 ist auch verbunden, um Signale für das Bildausgabegerät 208 vorzusehen, das eine Anzeige umfassen kann.
  • Der Prozessor 202 ist auch verbunden, um auf den Programmspeicher 210 und den Datenspeicher 230 zuzugreifen. Der Programmspeicher 210 speichert eine Anzahl von Routinen, die durch den Prozessor 202 bei der Durchführung der Rechtschreibkorrektur mit dem Einsetzen von Zeichen ausgeführt werden. Der Datenspeicher 230 speichert eine Anzahl von Datenstrukturen, die erzeugt werden oder während der Ausführung der Routinen im Programmspeicher 210 verwendet werden.
  • Beim Ausführen der Bildeingabe-Routine 212 erzeugt der Prozessor 202 Erste-Version-Daten 232 aus den von dem Bildeingabegerät 204 empfangenen Signalen. Die Erste-Version-Daten 232 umfassen Daten, die eine erste Version eines Textes in Bildform definieren. Der Prozessor 202 kann eine Zeichenerkennungs-Routine 214 durchführen, um eine Erkennungsergebnis-Datenstruktur 234 zu erhalten, die Identitätsdaten, die die Zeichentypen der Zeichen im Text angeben, und Raumdaten, die räumliche Information über die Zeichen oder Wörter bezüglich der Position, Form und Größe angeben, enthalten kann. Der Prozessor 202 kann die Rechtschreibkorrektur-Routine 216 unter Verwendung der Rechtschreibkorrektur- Datenstrukturen 236 durchführen, um falsch geschriebene Wörter in der Erkennungsergebnis-Datenstruktur 234 zu finden und um dem Benutzer alternative korrekte Wörter zur Auswahl zu präsentieren. Die Rechtschreibkorrektur-Datenstrukturen 236 können eine Wortliste oder eine andere Datenstruktur für die Prüfung der Rechtschreibung, Regeln oder andere Daten zum Erzeugen eines Satzes von alternativen korrigierten Wörtern sowie eine Bildausgabe-Datenstruktur umfassen, die beim Präsentieren von alternativen korrekten Wörtern für den Benutzer über das Bildausgabegerät 208 verwendet wird.
  • Wenn der Benutzer eines der korrekten Wörter mit Hilfe des Benutzereingabegerätes 206 auswählt, kann die Rechtschreibkorrektur-Routine 216 eine Wortmatrix- Subroutine 218 aufrufen, die wiederum die Zeichenmatrix-Subroutine 220 aufruft, um automatisch die Zeichenmatrizen 228 zu erhalten, die Matrizen für die Zeichen in dem ausgewählten korrekten Wort umfassen. Die Wortmatrix-Subroutine 218 erzeugt dann die Matrix 240 für das ausgewählte Wort. Die Rechtschreibkorrektur- Routine 216 kann dann die Ersetzungs-Subroutine 222 aufrufen, um die Zweite- Version-Daten 242 zu erzeugen, die eine zweite Version des Textes definieren, die Daten enthält, die das Wort so definieren, wie es durch die Matrix 240 des Wortes definiert wird.
  • C. Eine Implementierung
  • Die vorliegende Erfindung kann auf verschiedene Weise implementiert werden, wobei verschiedene Prozessoren verwendet werden können. Fig. 6 zeigt Komponenten einer Mehrprozessor-Implementierung, die in vorteilhafter Weise die für jeden Prozessor verfügbare Software nutzt. Fig. 7A zeigt ein Bild eines Textes und Fig. 7B zeigt ein Bild desselben Textes nach der Rechtschreibkorrektur mit der Implementierung von Fig. 6. Fig. 8 zeigt Schritte zum Erzeugen einer Datenstruktur zum Durchführen einer Rechtschreibkorrektur auf der Basis der Erkennungsergebnisse. Fig. 9 zeigt Schritte zum Durchführen einer Rechtschreibkorrektur unter Verwendung der in Fig. 8 erzeugten Datenstruktur. Fig. 10 zeigt Schritte zum Setzen eines Wortes in Fig. 9. Fig. 11 zeigt Schritte zum Ersetzen eines Wortes in Fig. 9.
  • Das System 250 umfaßt einen Scanner 260, der verbunden ist, um seine Ausgabe für Personalcomputer (PC) 262 vorzusehen. Der PC 262, der ein IBM PC oder ein kompatibler Prozessor sein kann, führt eine Bilddatei-Routine 264 durch, um eine Bilddatei 270 zu erzeugen, die eine Version des gescannten Bildes definiert, das zum Beispiel eine Textseite sein kann. Die Bilddatei 270 kann in einem geeigneten Format für die darauffolgende Verarbeitung vorgesehen werden.
  • Eine Sun-Workstation 272 greift auf die Bilddatei 270 beim Durchführen der optischen Zeichenerkennungs-(OCR)-Routine 274 zu und erzeugt eine Erkennungsergebnis-Datenstruktur 276. Die Erkennungsergebnisse 276 können Identitätsdaten, die die Zeichentypen in jedem Wort angeben, Wortraumdaten, die die Position jedes Wortes und die Position des Wortes in Beziehung zu einer Grundlinie angeben, sowie andere Daten umfassen, die in dem UA-Format von Kurzweil oder durch die Accutext-OCR-Software von Xerox Imaging Systems, Sunnyvale, California vorgesehen sind.
  • Eine Symbolics-Workstation 280 greift auf die Bilddatei 270 und die Erkennungsergebnisse 276 beim Durchführen der Rechtschreibkorrektur-Routine 282 zu, um die modifizierte Bilddaten 284 zu erzeugen. Fig. 7A und 7B zeigen die durch die Symbolics-Workstation 280 in der Implementierung von Fig. 6 erhaltenen Ergebnisse. Fig. 7A ist eine Ansicht eines Text enthaltenden Bildes, wobei die umkreisten Wörter 292, 294 und 296 falsch geschrieben sind. Fig. 7B ist eine Ansicht einer durch die Symbolics-Workstation erzeugten modifizierten Version des Bildes von Fig. 7A und zeigt, daß die Wörter 292, 294 und 296 durch neue Wörter mit korrekter Rechtschreibung ersetzt wurden, die aus neuen Zeichen gebildet sind, die durch an anderen Stellen im Bild gefundene Zeichenmatrizen definiert sind.
  • Die Effektivität des Systems 250 hängt natürlich von einer Anzahl von Faktoren ab. Die durch die OCR-Routine 274 erreichte Genauigkeit bestimmt, ob die korrigierten Wörter tatsächliche Rechtschreibfehler oder durch den Erkennungsprozeß eingeführte Rechtschreibfehler sind. Die Leistung der Rechtschreibkorrektur- Routine 282 bestimmt, ob die potentiell nicht korrekten Wörter tatsächlich nicht korrekt sind oder ob alle nicht korrekten Wörter festgestellt sind. Die Inhalte des gescannten Bildes bestimmen, ob alle für das Vorsehen eines bestimmten korrekten Wortes erforderlichen Zeichen verfügbar sind. Das Vorhandensein von einer oder mehreren Schriftarten auf einer Seite kann die Einfügung eines nicht passenden Zeichens zur Folge haben, wenn dem Benutzer keine Gelegenheit gegeben wird, die Einfügung zuvor zu bestätigen oder die beste aus einer Anzahl von verfügbaren Zeichenmatrizen für die Einfügung auszuwählen. Trotz dieser Begrenzungen zeigen Fig. 7A und 7B, daß das System 250 erfolgreich falsch geschriebene Wörter korrigieren kann, indem es diese durch aus neuen Zeichen gebildete neue Wörter ersetzt.
  • Fig. 8 zeigt die durch die Symbolics-Workstation 280 durchgeführten Schritte, um eine Datenstruktur zu erzeugen, auf der sie eine Rechtschreibkorrektur vornehmen kann. In dem Schritt in Block 300 werden die Erkennungsergebnisse 276 in einem Format wie dem Kurzweil UA-Format empfangen. In dem Schritt in Block 302 wird aus den Erkennungsergebnissen 276 eine anfängliche Wortlisten-Datenstruktur gebildet, die im wesentlichen alle Informationen zu jedem Wort enthält, das aus den Erkennungsergebnissen 276 erhalten werden kann, außer der Information bezüglich der korrekten Rechtschreibung. Die anfängliche Wortlisten-Datenstruktur umfaßt eine Dateneinheit für jedes Wort im Text.
  • Die Dateneinheit für jedes Wort in der Wortlisten-Datenstruktur kann entsprechende Felder für die Zeichenkette des Wortes, Raumdaten, die die Position und Form des Begrenzungskastens des Wortes und die Position und Neigung seiner Grundlinie angeben, ein Rechtschreibungs-Flag, das angibt, ob das Wort korrekt geschrieben ist, ein Letztes-Wort-Flag, das angibt, ob es das letzte Wort in einer Zeile ist, ein Weicher-Trennstrich-Flag, das angibt, ob es sich um den Beginn eines getrennten Wortes handelt, das sich in die nächste Zeile erstreckt, und Zeiger zu dem nächsten und dem vorhergehenden Wort umfassen. Alle diese Felder werden mit Ausnahme des Rechtschreibungs-Flags in dem Schritt in Block 302 gefüllt, wobei sie auf der Basis von direkten Berechnungen aus den Erkennungsergebnissen 276 gefüllt werden können. Das Rechtschreibungs-Flag jeder Dateneinheit kann einen von drei Werten annehmen: T gibt an, daß das Wort korrekt geschrieben ist; NIL gibt an, daß das Wort nicht korrekt geschrieben ist; und UNKNOWN gibt an, daß das Rechtschreibungs-Flag noch nicht gesetzt ist. Alle Rechtschreibungs-Flags werden in dem Schritt von Block 302 mit dem Wert UNKNOWN initialisiert.
  • Der Schritt in Block 310 beginnt eine Iterationsschleife, die jede der Wort- Dateneinheiten in der anfänglichen Wortliste von Block 302 behandelt. Diese Schleife beginnt mit einem Test in Block 312, der prüft, ob das Rechtschreibungs- Flag der Dateneinheit des nächsten Wortes den Wert UNKNOWN aufweist. Wenn nicht, ist es bereits gesetzt, so daß die Routine mit dem nächsten Wort fortschreitet, indem es den Test in Block 310 wiederholt. Wenn das Rechtschreibungs-Flag des Wortes den Wert UNKNOWN aufweist, verzweigt sich die Routine in Block 312 in Abhängigkeit von einem weichen Trennstrich des Wortes.
  • Wenn das Weicher-Trennstrich-Flag angibt, daß sich das Wort nicht auf die nächste Zeile erstreckt, ruft der Schritt in Block 316 eine Rechtschreibprüfungs- Routine auf, um die Rechtschreibung des Wortes zu prüfen. Die Rechtschreibprüfungs-Subroutine kann auf eine Wortliste zugreifen, um zu bestimmen, ob das Wort korrekt geschrieben ist. Der Schritt in Block 318 setzt dann das Rechtschreibungs-Flag auf T oder NIL in Abhängigkeit von dem durch die Rechtschreibprüfungs-Subroutine erhaltenen Ergebnis.
  • Wenn das Weicher-Trennstrich-Flag angibt, daß sich das Wort auf die nächste Zeile erstreckt, testet der Schritt in Block 320, ob ein Wort in der nächsten Zeile vorhanden ist, indem es den Nächstes-Wort-Zeiger des gerade behandelten Wortes verwendet. Das Raumdaten-Feld des nächsten Wortes kann verwendet werden, um zu bestimmen, ob das nächste Wort auf der zu dem gerade behandelten Wort nächsten Zeile positioniert ist. Wenn kein nächstes Wort vorhanden ist oder wenn das nächste Wort so positioniert ist, daß es sich nicht auf der nächsten Zeile befindet, setzt der Schritt in Block 322 das Rechtschreibungs-Flag des gerade behandelten Wortes auf NIL.
  • Wenn ein nächstens Wort in der nächsten Zeile positioniert ist, hängt der Schritt in Block 324 das nächste Wort zu dem gerade behandelten Wort an, um ein kombiniertes Wort zu bilden, wobei der Schritt in Block 326 die Rechtschreibprüfungs-Subroutine aufruft, um die Rechtschreibung des kombinierten Wortes zu prüfen. Der Schritt in Block 328 setzt dann die Rechtschreibungs-Flags des gerade gehandhabten Wortes und des nächsten Wortes auf der Basis des durch die Rechtschreibprüfungs-Subroutine erhaltenen Ergebnisses.
  • Wenn alle Wörter auf diese Weise behandelt wurden, gibt die Routine die fertiggestellte Wortlisten-Datenstruktur in Block 330 aus.
  • Fig. 9 zeigt die durch die Symbolics-Workstation 280 durchgeführten Schritte zur Rechtschreibkorrektur, die die fertiggestellte Wortlisten-Datenstruktur von Fig. 8 und die Bilddatei 270 verwenden. Die Schritte in Fig. 9 können in Antwort auf eine Benutzeranforderung für die Rechtschreibkorrektur durchgeführt werden.
  • Der Schritt in Block 350 beginnt eine Iterationsschleife, die die Dateneinheit jedes Wortes in der Wortlisten-Datenstruktur behandelt. Der Schritt in Block 352 verzweigt sich in Abhängigkeit von dem Rechtschreibungs-Flag des gerade behandelten Wortes. Wenn das Rechtschreibungs-Flag angibt, daß das Wort korrekt geschrieben ist, kehrt die Routine in dem Schritt von Block 350 zurück, um das nächste Wort zu behandeln.
  • Wenn ein Wort gefunden wird, dessen Rechtschreibungs-Flag angibt, daß es nicht korrekt geschrieben ist, ruft der Schritt in Block 354 eine Subroutine auf, um alternative Schreibungen wie die Funktion zwei:get-all-corrections in Symbolics Lisp. Diese Funktion sieht alternative Schreibungen einer Zeichenkette vor. Das nicht korrekte Wort und seine alternativen Schreibungen werden dann dem Benutzer auf der Anzeigeeinrichtung präsentiert. Der Schritt in Block 360 verzweigt sich dann in Abhängigkeit von der Anwort des Benutzers. Wenn der Benutzer keine Antwort vorsieht, wodurch angegeben wird, daß das Wort nicht verändert zu werden braucht, kehrt die Routine zu dem Schritt in Block 350 zurück, um das nächste Wort zu behandeln.
  • Wenn der Benutzer eine der alternativen Schreibungen auswählt oder eine andere Schreibung eintippt, um das nicht korrekte Wort zu ersetzen, bereitet der Schritt in Block 362 eine zweidimensionale Matrix für das durch den Benutzer angegebene Wort vor. Dieser Schritt kann als Analogie zum Setzen betrachtet werden, da er auf den Zeichenmatrizen basiert, die an anderer Stelle im Bild gefunden werden. Dann wird in dem Schritt in Block 364 das nicht korrekte Wort durch das neu gesetzte Wort ersetzt, um eine zweidimensionale Matrix zu erhalten, die eine modifizierte Version des Bildes definiert. Diese Matrix kann dann an Stelle der Bilddatei 270 gespeichert werden.
  • Wenn alle Wörter auf diese Weise behandelt wurden, endet die Routine. Zu diesem Zeitpunkt kann die Matrix in der Bilddatei 270 gedruckt, angezeigt oder gespeichert werden, je nach den Bedürfnissen des Benutzers.
  • Fig. 10 zeigt ausführlicher, wie ein Wort in Block 362 von Fig. 9 gesetzt wird. Die Routine von Fig. 10 wird mit den Zeichentypen des zu setzenden Wortes in Block 380 aufgerufen. Der Schritt in Block 382 beginnt eine Iterationsschleife, die jeden der Zeichentypen behandelt.
  • Der Schritt in Block 384 beginnt die Iterationsschleife, indem er testet, ob die vorhergehenden Operationen eine zweidimensionale Matrix und Koordinatendaten gespeichert haben, die in Fig. 10 als ein Modell für den zu behandelnden Zeichentyp bezeichnet werden. Wenn ja, speichert der Schritt in Block 386 das Modell für die darauffolgende Verwendung für das Setzen, wobei ein Modell für diesen Zeichentyp ausgewählt wird, wenn mehr als ein Modell gespeichert wurde. Wenn kein Modell gespeichert wurde, ruft der Schritt in Block 390 eine Subroutine auf, die derjenigen von Fig. 3 ähnlich ist, um ein Wort zu finden, das einen Vertreter des Zeichentyps enthält.
  • Die in Block 390 aufgerufene Subroutine kann damit beginnen, alle Wörter in der Wortlisten-Datenstruktur zu finden, die nicht zuvor behandelt wurden. Die nicht behandelten Wörter können danach, ob sie den gerade behandelten Zeichentyp enthalten, oder in anderer Weise sortiert werden, um die Operation zu optimieren, etwa indem die Wörter nach der Anzahl der in ihnen enthaltenen benötigten Zeichentypen sortiert werden. Dann kann jedes Wort wie in den Blöcken 104, 106, 108 und 110 in Fig. 3 behandelt werden, bis eines gefunden wird, bei dem die Anzahl der verbundenen Komponentensätze gleich der Anzahl der Zeichen ist. Wenn kein derartiges Wort gefunden wird, erhält der Schritt in Block 394 ein Modell für jedes seiner Zeichentypen, einschließlich des gerade behandelten Zeichentyps, indem eine zweidimensionale Matrix und Koordinatendaten für jedes Zeichen im Wort gespeichert werden. Die Koordinatendaten für die zweidimensionale Matrix für jedes Zeichen können erhalten werden, indem die Koordinaten des Begrenzungskastens jedes Wortes und die Grundliniendaten verwendet werden. Das Modell für den gerade behandelten Zeichentyp wird dann für das Setzen in Block 386 gespeichert.
  • Wenn ein Modell für jeden Zeichentyp gespeichert wurde, verwendet der Schritt in Block 396 die Modelle und Daten für jedes zu ersetzende Wort, um die zweidimensionale Matrix für das neue Wort zu erzeugen. Dies kann bewerkstelligt werden, indem zum Beispiel zuerst eine leere Matrix mit der richtigen Größe erstellt wird. Die Position der Matrix jedes Zeichens in der Matrix des Wortes kann dann berechnet werden, wobei die Zeichenmatrizen in die leere Matrix kopiert werden können, um die neue Wortmatrix zu erzeugen.
  • Die Breite der leeren Matrix kann auf der Basis der Breiten der Zeichenmatrizen und der Zeichenabstände bestimmt werden. Der Abstand zwischen den Zeichen kann aus dem zu ersetzenden Wort erhalten werden, indem ein enger Begrenzungskasten verwendet wird. Die Breite der Modelle für die Zeichen in dem zu ersetzenden Wort kann hinzugefügt werden, um die gesamte Zeichenbreite zu erhalten, wobei die Differenz zwischen der Breite des Begrenzungskastens und der gesamten Zeichenbreite durch die Anzahl der Zeichenabstände geteilt werden kann, um die Breite der Zeichenabstände für das neue Wort zu erhalten.
  • Die Höhe der leeren Matrix kann bestimmt werden, indem die maximale Höhe über der Grundlinie der Zeichenmatrizen verwendet wird, die ebenfalls verwendet wird, um die Höhe über der Grundlinie des Wortes und die maximale Gesamthöhe der Zeichenmatrizen zu bestimmen, wobei die Neigung des zu ersetzenden Wortes wie durch dessen Koordinatendaten angegeben angepaßt wird.
  • Wenn die Matrix des Wortes erzeugt ist, wird sie zusammen mit den Koordinatendaten des Wortes in Block 398 ausgegeben. Die Koordinatendaten für die neue Matrix können dessen Breite, Höhe, Höhe über der Grundlinie sowie die Position jedes Zeichens in der Matrix enthalten. Die neue Matrix und deren Koordinatendaten können dann in einer Ersetzungs-Operation verwendet werden.
  • Fig. 11 zeigt ausführlicher, wie ein Wort in Block 364 von Fig. 9 ersetzt wird. In dem Schritt in Block 400 wird ein Aufruf empfangen, der den Teil der Wortlisten- Datenstruktur enthält, der die Zeile mit dem zu ersetzenden Wort definiert. Dieser Teil der Datenstruktur kann dann auf der Basis der Ende-der-Zeile-Flags erhalten werden. Der Aufruf enthält auch Daten, die das zu ersetzende Wort, die Matrix des neuen Wortes und die Koordinatendaten angeben.
  • Unter Verwendung der Raumdaten aus der Wortlisten-Datenstruktur greift der Schritt in Block 402 auf die Bilddatei zu und kopiert die jedes Wort in der Zeile definierenden Daten in eine entsprechenden Schlitz in einer Wortkopie-Datenstruktur. Dann löscht dieser Schritt die jedes Wort in der Zeile definierenden Daten, was durch eine Bitblockverschiebungs-Operation vorgenommen werden kann, die Weiß in den Teil der Bilddatei innerhalb des Begrenzungskastens des Wortes lädt.
  • Der Schritt in Block 404 ersetzt dann das zu ersetzende Wort in der Wortkopie-Datenstruktur, wobei er die Matrix des neuen Wortes in den entsprechenden Schlitz gibt. Der Schritt in Block 406 paßt die Wortabstände an, um das neue Wort unterzubringen, wobei die überschüssige Breite in der Zeile bestimmt wird und gleichmäßig auf die Wortabstände verteilt wird, indem die Raumdaten der Wörter in der Zeile verändert werden. Dann geht der Schritt in Block 408 durch den Teil der Wortlisten-Datenstruktur und der Wortkopie-Datenstruktur, wobei er die Wortlisten- Datenstruktur für jedes Wort in der Zeile aktualisiert und die Matrix für jedes Wort in der Bilddatei einschließt, was durch eine Bitnlockverschiebungs-Operation für jedes Wort vorgenommen werden kann. Das Ergebnis ist eine Datenstruktur in der Bilddatei, die eine modifizierte Version des Bildes definiert, in der das neue Wort durch eine Ersetzung eingeschlossen ist.
  • Die oben beschriebene Implementierung kann auch einen vorläufigen Test umfassen, der testet, ob ein als falsch geschrieben identifiziertes Wort falsch erkannt wurde. Dies kann bewerkstelligt werden, indem Modelle für jedes Zeichen des Wortes wie erkannt erhalten werden und indem diese mit ihren ungefähren Positionen im Bild verglichen werden. Wenn wenigstens eines der Modelle nicht mit dem Bild übereinstimmt, weil sein Vergleichsergebnis unterhalb eines Schwellwertes liegt, gibt dies an, daß die Erkennungseinrichtung einen Fehler gemacht hat, wobei das Wort als korrekt im Bild geschrieben behandelt werden kann. Unter Vergleich ist hier eine Operation zu verstehen, in der eine binäre Maske in einer bestimmten Ausrichtung mit einem binären Bild gehalten wird und die Anzahl der schwarz/schwarz- und weiß/weiß-Entsprechungen summiert wird, um ein Ergebnis zu erhalten. Dies kann mit vielen möglichen Ausrichtungen wiederholt werden, wobei das beste Ergebnis verwendet werden kann.
  • Wenn ein Zeichen benötigt wird, für das kein Modell verfügbar ist, weil es vielleicht nicht im Bild vorhanden ist, kann es möglich sein, ein gespeichertes Buchstabenmodell zu verwenden, das vielleicht schlecht gebildet ist, um Unterscheidungsmerkmale seiner Schriftart zu beseitigen, oder in irgendeiner Weise ein Modell aus Stücken von anderen im Bild gefundenen Buchstaben zu synthetisieren.
  • Die vorliegende Erfindung könnte in einem Kopiergerät implementiert werden, um Rechtschreibkorrektur-Fähigkeiten vorzusehen. Anstatt alternative Rechtschreibkorrekturen auf einer elektronischen Anzeige zu präsentieren, könnten diese auf Papier gedruckt werden; der Benutzer kann dann eine auswählen, indem er diese oder die anderen Alternativen entsprechend markiert und das Papier zurück in das Gerät führt, damit erkannt werden kann, welche Auswahl getroffen wurde. Der Benutzer könnte die nicht ausgewählten Alternativen durchstreichen oder die ausgewählte Alternative umkreisen bzw. hervorheben. Mit dieser Technik sind keine zusätzlichen Benutzerschnittstellen wie eine Kathodenstrahlröhre, Tastatur und Maus erforderlich.
  • Das in der Rechtschreibprüfung verwendeten Wortliste kann für den Benutzer des Kopiergerätes spezialisiert sein, wobei ein Lernmodus vorgesehen sein kann, in dem der Benutzer eine spezialisierte Wortliste erstellen kann. Adaptive Techniken für die Rechtschreibkorrektur sind in US-A-4,797,855 beschrieben.
  • Ein Satz von permanent gespeicherten Schriftarten kann in Verbindung mit der vorliegenden Erfindung verwendet werden, so daß Zeichen aus den permanent gespeicherten Fonts in einem Bild eingefügt werden können, wenn dies passend ist. Zum Beispiel können alle Zeichen in einem Bild durch die Zeichen einer der gespeicherten Schriftarten ersetzt werden.
  • D. Verschiedenes
  • Die vorliegende Erfindung kann implementiert werden, indem ein Zeichen aus der zweidimensionalen Matrix, die eine erste Version eines Textes in Bildform definiert, in eine Matrix kopiert wird, die eine zweite Version des Textes definiert, so daß es nicht erforderlich ist, eine zweidimensionale Matrix für jedes Zeichen zu speichern.
  • Bevor alternative Rechtschreibungen eines falsch geschriebenen Wortes präsentiert werden, könnte ein System in Übereinstimmung mit der vorliegenden Erfindung zuerst prüfen, ob jede Alternative aus den verfügbaren Zeichenmodellen erzeugt werden kann. Eine Alternative, die nicht erzeugt werden kann, braucht dem Benutzer nicht präsentiert zu werden.
  • Die vorliegende Erfindung kann mit einer Zeichenerkennungs-Software verwendet werden, die die Position jedes Zeichens angebende Daten vorsieht. Die Zeichenpositionsdaten können dann verwendet werden, um eine Ersetzung der Zeichen zu erlauben. Dies kann jedoch problematisch sein, da Zeichen mit über lappenden Begrenzungskästen oder schlecht ausgebildete Zeichen vorhanden sein können.
  • Anstatt die in der Bilddatei gespeicherte Matrix zu modifizieren, kann die vorliegende Erfindung implementiert werden, um eine Datenstruktur mit Zeigern in die Bilddatei zu erzeugen. Diese Datenstruktur würde dann eine modifizierte Version des Textes definieren.
  • Die vorliegende Erfindung kann bei einem Text angewendet werden, der sich über mehrere Seiten erstreckt, etwa bei einem Text eines Dokumentes. Insbesondere kann ein Zeichen auf einer Seite gefunden und dafür verwendet werden, ein neues Zeichen auf einer anderen Seite hinzuzufügen.
  • Die vorliegende Erfindung wurde in Bezug auf das Ersetzen eines Wortes in einem Text oder auf das Ersetzen einer Textzeile durch eine Zeile derselben Länge beschrieben. Die vorliegende Erfindung kann aber auch implementiert werden, um eine Anzahl von Zeilen bis zum Ende eines Absatzes oder zum Ende einer Seite zu ersetzen oder um alle Zeilen auf einer Seite zu ersetzen, wenn eine Änderung im Text dies erfordern sollte. Die vorliegende Erfindung kann auch implementiert werden, um bei Bedarf ein Wort silbenzutrennen.
  • Die vorliegende Erfindung wurde mit Bezug auf englischen Text beschrieben, wobei sie jedoch für Text in vielen anderen Sprachen implementiert werden kann.

Claims (11)

1. Verfahren zum Ändern von Zeichen in einem Text in einem Bild, wobei das Verfahren folgende Schritte umfaßt:
Speichern von ersten Text-Bilddaten (232; 270) in einem Speicher (230), wobei die ersten Text-Bilddaten (232; 270) eine erste Version eines Textes in Bildform definieren, wobei die erste Version des Textes ein erstes Zeichen (32, 34, 36, 42, 52) enthält, das ein Vertreter eines ersten Zeichentyps ist, und
Betreiben einer Verarbeitungseinrichtung (202; 262, 272, 280), die für den Zugriff auf den Speicher (230) verbunden ist, um zweite Text-Bilddaten (242; 284) unter Verwendung der ersten Text-Bilddaten (232; 270) zu erzeugen, wobei die zweiten Text-Bilddaten (232; 270) eine zweite Version des Textes in Bildform mit einem zweiten Zeichen definieren, das ein Vertreter des ersten Zeichentyps ist,
dadurch gekennzeichnet, daß die Verarbeitungseinrichtung (202; 262, 272, 280) beim Erzeugen der zweiten Text-Bilddaten (242; 284)
auf den ersten Text-Bilddaten (232; 270) operiert, um das erste Zeichen (32, 34, 36, 42, 52) in der ersten Version des Textes zu finden und um erste Zeichendaten (238) zu erhalten, die das erste Zeichen (32, 34, 36, 42, 52) in im wesentlichen derselben Weise definieren, in der es durch die ersten Text-Bilddaten (232; 270) definiert wird, und
die ersten Text-Bilddaten (232; 270) und die ersten Zeichendaten (238) verwendet, um die zweiten Text-Bilddaten (242; 284) mit dem zweiten Zeichen zu erzeugen, das durch die zweiten Text-Bilddaten (242; 284) im wesentlichen in derselben Weise definiert wird, in der das erste Zeichen (32, 34, 36, 42, 52) durch die ersten Zeichendaten (238) definiert wird.
2. Verfahren nach Anspruch 1, wobei die ersten Zeichendaten (238) eine zweidimensionale Matrix sind, die das erste Zeichen (32, 42, 36, 42, 52) im wesentlichen in derselben Weise definieren, in der es durch die ersten Text- Bilddaten (238) definiert ist.
3. Verfahren nach Anspruch 1 oder 2, wobei die Verarbeitungseinrichtung (202; 262, 272, 280) beim Operieren auf den ersten Text-Bilddaten (232; 270) Routinen (214, 216; 174, 282) in einem Programmspeicher (210) durchführt, um das erste Zeichen (32, 34, 36, 42, 52) zu finden und um die ersten Zeichendaten (238) zu erhalten.
4. Verfahren nach Anspruch 3, wobei die Verarbeitungseinrichtung (202; 262, 272, 280) beim Durchführen der Routinen (214, 216; 274, 282):
Zeichenerkennungs-Ergebnisdaten (234; 276), die die Zeichentypen der Zeichen angeben, und Raumdaten in den ersten Text-Bilddaten (232; 270) erhält,
ein nicht korrektes Wort (12) findet, und
alternative korrekte Wörter präsentiert.
5. Verfahren nach Anspruch 4, wobei die Verarbeitungseinrichtung (202; 262, 272, 280) beim Erzeugen der zweiten Text-Bilddaten (242; 284)
ein Benutzersignal für die Auswahl eines alternativen korrekten Wortes (22, 62, 72) empfängt, das für den Benutzer auf einem Bildausgabegerät (208) präsentiert wird, und
in Antwort auf das Benutzersignal weitere Routinen (218, 220) im Programmspeicher (210) durchführt, wobei die weiteren Routinen das Erhalten von Matrizen für die Zeichen (32, 34, 36, 42, 52) in dem ausgewählten korrekten Wort, das Erzeugen einer Matrix für das ausgewählte korrekte Wort und das Erzeugen der zweiten Text-Bilddaten (242; 284) umfassen.
6. Verfahren nach Anspruch 5, wobei die Verarbeitungseinrichtung (202; 262, 272, 280) beim Erzeugen der zweiten Text-Bilddaten (242; 284) die ersten Text- Bilddaten (232; 270) modifiziert, um die zweiten Text-Bilddaten (242; 284) zu erzeugen.
7. Verfahren nach Anspruch 2, wobei die Verarbeitungseinrichtung (202; 262, 272, 280) beim Operieren auf den ersten Text-Bilddaten (232; 270) eine erste zweidimensionale Zeichenmatrix erhält, die das erste Zeichen (32, 34, 36, 42, 52) im wesentlichen in derselben Weise definiert, in der es durch die ersten Text-Bilddaten (232; 270) definiert ist.
8. Verfahren nach Anspruch 7, wobei die Verarbeitungseinrichtung (202; 262, 272, 280) beim Operieren auf den ersten Text-Bilddaten (232; 270)
ein nicht korrektes Wort (12) im Text identifiziert,
ein alternatives korrektes Wort (22, 62, 72) auf einem Bildausgabegerät (208) präsentiert,
ein Benutzersignal für die Auswahl des korrekten Wortes (22, 62, 72) empfängt, und
in Antwort auf das Benutzersignal die zweiten Text-Bilddaten (242; 284) mit darin dem korrekten Wort (22, 62, 72) erzeugt, wobei das korrekte Wort (22, 62, 72) das zweite Zeichen enthält, wobei alle Zeichen in dem korrekten Wort (22, 62, 72) im wesentlichen in derselben Weise definiert sind, in der die Zeichen derselben Typen durch die ersten Text-Bilddaten (232; 270) definiert sind.
9. Verfahren nach Anspruch 7, wobei die erste Version des Textes ein korrekt geschriebenes Wort enthält, das das erste Zeichen (32, 34, 36, 42, 52) enthält, wobei die Verarbeitungseinrichtung (202; 262, 272, 280) beim Erhalten der ersten zweidimensionalen Zeichenmatrix
eine intermediäre zweidimensionale Datenmatrix erhält, die das korrekt geschriebene Wort im wesentlichen in derselben Weise definiert, in der es durch die ersten Text-Bilddaten (232; 270) definiert ist, und
die erste zweidimensionale Zeichenmatrix aus der intermediären zweidimensionalen Matrix erhält.
10. Verfahren nach Anspruch 9, wobei die Verarbeitungseinrichtung (202; 262, 272, 280) beim Erhalten der ersten zweidimensionalen Zeichenmatrix aus der intermediären zweidimensionalen Matrix
verbundene Komponenten in der zweidimensionalen Matrix findet,
die verbundenen Komponenten in eine Anzahl von Sätzen gruppiert, und
bestimmt, ob die Anzahl der Sätze gleich der Anzahl der Zeichen in dem korrekt geschriebenen Wort ist.
11. Datenverarbeitungssystem (200; 250) mit
einer Verarbeitungseinrichtung (202; 262, 272, 280) und
einem Speicher (230), der für den Zugriff durch die Verarbeitungseinrichtung (202; 262, 272, 280) verbunden ist, wobei der Speicher (230) eine erste Datenstruktur (232; 270) speichert, die erste Text-Bilddaten enthält, die eine erste Version eines Textes in Bildform definieren, wobei der Text ein erstes Zeichen (32, 34, 36, 42, 52) enthält, das ein Vertreter eines ersten Zeichentyps ist,
wobei die Verarbeitungseinrichtung (202; 262, 272, 280) operiert, um zweite Text-Bilddaten (242; 284) unter Verwendung der ersten Text-Bilddaten (232; 270) zu erzeugen, wobei die zweiten Text-Bilddaten (242; 284) eine zweite Version des Textes in Bildform mit einem zweiten Zeichen definieren, das ein Vertreter des ersten Zeichentyps ist,
dadurch gekennzeichnet, daß die Verarbeitungseinrichtung (202; 262, 272, 280) beim Erzeugen der zweiten Text-Bilddaten (242; 284)
auf den ersten Text-Bilddaten (232; 270) operiert, um das erste Zeichen (32, 34, 36, 42, 52) in der ersten Version des Textes zu finden und um erste Zeichendaten (238) zu erhalten, die das erste Zeichen (32, 34, 36, 42, 52) im wesentlichen in derselben Weise definieren, in der es durch die ersten Text- Bilddaten (232; 270) definiert ist, und
die ersten Text-Bilddaten (232; 270) und die ersten Zeichendaten (238) verwendet, um die zweiten Text-Bilddaten (242; 284) mit dem zweiten Zeichen zu erzeugen, das durch die zweiten Text-Bilddaten (242; 284) im wesentlichen in derselben Weise definiert wird, in der das erste Zeichen (32, 34, 36, 42, 52) durch die ersten Zeichendaten (238) definiert ist.
DE69033042T 1989-12-29 1990-12-21 Datenverarbeitung Expired - Fee Related DE69033042T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/459,026 US5167016A (en) 1989-12-29 1989-12-29 Changing characters in an image

Publications (2)

Publication Number Publication Date
DE69033042D1 DE69033042D1 (de) 1999-05-12
DE69033042T2 true DE69033042T2 (de) 1999-10-07

Family

ID=23823089

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69033042T Expired - Fee Related DE69033042T2 (de) 1989-12-29 1990-12-21 Datenverarbeitung

Country Status (5)

Country Link
US (1) US5167016A (de)
EP (1) EP0439951B1 (de)
JP (1) JPH076214A (de)
CA (1) CA2029585C (de)
DE (1) DE69033042T2 (de)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2027253C (en) * 1989-12-29 1997-12-16 Steven C. Bagley Editing text in an image
JP2836194B2 (ja) * 1990-05-30 1998-12-14 株式会社日立製作所 データ処理方法および装置
JPH05151254A (ja) * 1991-11-27 1993-06-18 Hitachi Ltd 文書処理方法およびシステム
US5465167A (en) * 1992-03-20 1995-11-07 Xerox Corporation Using an image from a form in automatic creation of a form or sheet
JP2637679B2 (ja) * 1992-08-21 1997-08-06 ゼロックス コーポレイション ワードイメージの再配置によりテキストの特性を自動的に変更する方法
US5724596A (en) * 1992-08-25 1998-03-03 Lathrop; Stephen P. Algorithmic character-space adjustment computed from character-sequence-based constants and font size
JP2971688B2 (ja) * 1992-12-11 1999-11-08 シャープ株式会社 複写機
US5848184A (en) * 1993-03-15 1998-12-08 Unisys Corporation Document page analyzer and method
US5513304A (en) * 1993-04-19 1996-04-30 Xerox Corporation Method and apparatus for enhanced automatic determination of text line dependent parameters
JPH0773190A (ja) * 1993-04-29 1995-03-17 Matsushita Electric Ind Co Ltd ペンベースコンピューターシステム用絵文字ネーミング
JPH06348800A (ja) 1993-06-02 1994-12-22 Canon Inc 画像処理方法及び装置
JPH0793335A (ja) * 1993-06-07 1995-04-07 Internatl Business Mach Corp <Ibm> テキストの言語機能を提供する方法
US5424945A (en) * 1993-08-31 1995-06-13 Xerox Corporation System for evaluating a psychological effect of a document
US5583978A (en) * 1994-05-27 1996-12-10 Bitstream Inc. Apparatuses and methods for creating and using portable fonted texts with embedded automatically-created font descriptions
US5781714A (en) * 1994-05-27 1998-07-14 Bitstream Inc. Apparatus and methods for creating and using portable fonts
US5734761A (en) 1994-06-30 1998-03-31 Xerox Corporation Editing scanned document images using simple interpretations
US5530794A (en) * 1994-08-29 1996-06-25 Microsoft Corporation Method and system for handling text that includes paragraph delimiters of differing formats
US5537628A (en) * 1994-08-29 1996-07-16 Microsoft Corporation Method for handling different code pages in text
CA2154952A1 (en) * 1994-09-12 1996-03-13 Robert M. Ayers Method and apparatus for identifying words described in a page description language file
DE69525401T2 (de) * 1994-09-12 2002-11-21 Adobe Systems, Inc. Verfahren und Gerät zur Identifikation von Wörtern, die in einem portablen elektronischen Dokument beschrieben sind
US5528732A (en) * 1994-10-17 1996-06-18 Xerox Corporation Reprographic device for making copies with multi-spaced lines
US5642473A (en) * 1994-10-17 1997-06-24 Xerox Corporation Paper saving reprographic device
US5903281A (en) * 1996-03-07 1999-05-11 Powertv, Inc. List controlled video operations
JP3061765B2 (ja) 1996-05-23 2000-07-10 ゼロックス コーポレイション コンピュータベースの文書処理方法
US7297856B2 (en) * 1996-07-10 2007-11-20 Sitrick David H System and methodology for coordinating musical communication and display
US5803629A (en) * 1997-03-14 1998-09-08 Paul H. Neville Method and apparatus for automatic, shape-based character spacing
US6219453B1 (en) * 1997-08-11 2001-04-17 At&T Corp. Method and apparatus for performing an automatic correction of misrecognized words produced by an optical character recognition technique by using a Hidden Markov Model based algorithm
US6154579A (en) * 1997-08-11 2000-11-28 At&T Corp. Confusion matrix based method and system for correcting misrecognized words appearing in documents generated by an optical character recognition technique
US6141661A (en) * 1997-10-17 2000-10-31 At&T Corp Method and apparatus for performing a grammar-pruning operation
US6205428B1 (en) 1997-11-20 2001-03-20 At&T Corp. Confusion set-base method and apparatus for pruning a predetermined arrangement of indexed identifiers
US6223158B1 (en) 1998-02-04 2001-04-24 At&T Corporation Statistical option generator for alpha-numeric pre-database speech recognition correction
US6205261B1 (en) 1998-02-05 2001-03-20 At&T Corp. Confusion set based method and system for correcting misrecognized words appearing in documents generated by an optical character recognition technique
US7168039B2 (en) * 1998-06-02 2007-01-23 International Business Machines Corporation Method and system for reducing the horizontal space required for displaying a column containing text data
US6400805B1 (en) 1998-06-15 2002-06-04 At&T Corp. Statistical database correction of alphanumeric identifiers for speech recognition and touch-tone recognition
US7937260B1 (en) * 1998-06-15 2011-05-03 At&T Intellectual Property Ii, L.P. Concise dynamic grammars using N-best selection
JP4232260B2 (ja) * 1999-03-03 2009-03-04 ソニー株式会社 フォント制御方法及び装置
US7064757B1 (en) 1999-05-07 2006-06-20 Apple Computer, Inc. Automatic synthesis of font tables for character layout
JP3954246B2 (ja) * 1999-08-11 2007-08-08 独立行政法人科学技術振興機構 文書処理方法、文書処理プログラムを記録した記録媒体及び文書処理装置
US6421666B1 (en) 1999-11-08 2002-07-16 Oracle Corporation Mechanism for sharing ancillary data between a family of related functions
US7246321B2 (en) * 2001-07-13 2007-07-17 Anoto Ab Editing data
US7594172B2 (en) * 2001-10-10 2009-09-22 Fish Robert D Data storage using spreadsheet and metatags
DE10156945A1 (de) * 2001-11-20 2003-05-28 Philips Corp Intellectual Pty Verfahren zum Betrieb eines Sprach-Dialogsystems
JP2004348591A (ja) * 2003-05-23 2004-12-09 Canon Inc 文書検索方法及び装置
US7466875B1 (en) * 2004-03-01 2008-12-16 Amazon Technologies, Inc. Method and system for determining the legibility of text in an image
US7606840B2 (en) * 2004-06-15 2009-10-20 At&T Intellectual Property I, L.P. Version control in a distributed computing environment
US7475341B2 (en) * 2004-06-15 2009-01-06 At&T Intellectual Property I, L.P. Converting the format of a portion of an electronic document
US8559764B2 (en) * 2004-06-15 2013-10-15 At&T Intellectual Property I, L.P. Editing an image representation of a text
JP4744317B2 (ja) * 2006-02-16 2011-08-10 富士通株式会社 単語検索装置、単語検索方法、及びコンピュータプログラム
JP2007249863A (ja) * 2006-03-17 2007-09-27 Ricoh Co Ltd 画像処理装置、ユーザインターフェース画面カスタマイズ方法、ユーザインターフェース画面カスタマイズプログラム
US8908998B2 (en) * 2007-12-07 2014-12-09 Educational Testing Service Method for automated quality control
US20090172714A1 (en) * 2007-12-28 2009-07-02 Harel Gruia Method and apparatus for collecting metadata during session recording
US8360258B2 (en) 2010-11-15 2013-01-29 Pacific Market International, Llc Beverage container closure
US10421587B2 (en) 2010-11-15 2019-09-24 Pacific Market International, Llc Beverage container closure
US8978923B2 (en) 2011-12-05 2015-03-17 Pacific Market International, Llc Beverage container closure with venting
US9741142B2 (en) * 2014-05-19 2017-08-22 Adobe Systems Incorporated Method and apparatus for enabling text editing in a scanned document while maintaining fidelity of the appearance of the text
US9282838B2 (en) 2014-07-01 2016-03-15 Pacific Market International, Llc Lockable beverage container closure
CN110633457B (zh) * 2018-06-22 2023-05-26 广州金山移动科技有限公司 一种内容替换方法、装置、电子设备及可读存储介质
CN110414519B (zh) * 2019-06-27 2023-11-14 众安信息技术服务有限公司 一种图片文字的识别方法及其识别装置、存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3259883A (en) * 1961-09-18 1966-07-05 Control Data Corp Reading system with dictionary look-up
US3611291A (en) * 1969-10-30 1971-10-05 Scan Data Corp Character recognition system for reading a document edited with handwritten symbols
US3709525A (en) * 1969-11-10 1973-01-09 Scan Data Corp Character recognition
US3676856A (en) * 1970-08-11 1972-07-11 Ron Manly Automatic editing system and method
US3763471A (en) * 1970-08-11 1973-10-02 R Manly Method of editing an erroneous section of a message
US3714636A (en) * 1972-05-01 1973-01-30 R Manly Automatic editing method with page formatting
JPS5729745B2 (de) * 1974-09-25 1982-06-24
US3969698A (en) * 1974-10-08 1976-07-13 International Business Machines Corporation Cluster storage apparatus for post processing error correction of a character recognition machine
JPS5837779A (ja) * 1981-08-31 1983-03-05 Ricoh Co Ltd 文書処理装置
US4531231A (en) * 1983-01-19 1985-07-23 Communication Intelligence Corporation Method for distinguishing between complex character sets
US4654875A (en) * 1983-05-23 1987-03-31 The Research Foundation Of State University Of New York System to achieve automatic recognition of linguistic strings
DE3523042A1 (de) * 1984-06-28 1986-01-02 Canon K.K., Tokio/Tokyo Bildverarbeitungssystem
JPS6180478A (ja) * 1984-09-27 1986-04-24 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション デ−タ入力・表示システム
US4815029A (en) * 1985-09-23 1989-03-21 International Business Machines Corp. In-line dynamic editor for mixed object documents
US4797855A (en) * 1987-01-06 1989-01-10 Smith Corona Corporation Word processor having spelling corrector adaptive to operator error experience
JPS63182793A (ja) * 1987-01-26 1988-07-28 Sharp Corp 文字切り出し方式
JPH0664631B2 (ja) * 1987-09-09 1994-08-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 文字認識装置
US5022081A (en) * 1987-10-01 1991-06-04 Sharp Kabushiki Kaisha Information recognition system
US4974260A (en) * 1989-06-02 1990-11-27 Eastman Kodak Company Apparatus for identifying and correcting unrecognizable characters in optical character recognition machines
US4914709A (en) * 1989-06-02 1990-04-03 Eastman Kodak Company Method for identifying unrecognizable characters in optical character recognition machines

Also Published As

Publication number Publication date
EP0439951A3 (en) 1993-02-03
US5167016A (en) 1992-11-24
EP0439951A2 (de) 1991-08-07
JPH076214A (ja) 1995-01-10
CA2029585C (en) 1995-02-14
EP0439951B1 (de) 1999-04-07
DE69033042D1 (de) 1999-05-12

Similar Documents

Publication Publication Date Title
DE69033042T2 (de) Datenverarbeitung
DE69033079T2 (de) Aufbereitung von Text in einem Bild
DE69610243T2 (de) Verfahren zum Trainieren einer Erkennungsanlage mit Zeichenmustern
DE3926327C2 (de) Verfahren und System zum Erkennen von Zeichen auf einem Medium
DE69730930T2 (de) Verfahren und Gerät zur Zeichenerkennung
DE69724755T2 (de) Auffinden von Titeln und Photos in abgetasteten Dokumentbildern
DE69616153T2 (de) Verfahren und System zur automatischen Korrektur von Transkriptionen
DE69525401T2 (de) Verfahren und Gerät zur Identifikation von Wörtern, die in einem portablen elektronischen Dokument beschrieben sind
DE69429853T2 (de) Verfahren zur Analyse ein Bild definierender Daten
DE3650554T2 (de) Speicherungs- und Wiederauffindungsverfahren für Bilddaten
DE69226609T2 (de) Verfahren und Gerät zur Dokumentbildverarbeitung
DE69610478T2 (de) Zeichenerkennungssystembestimmung von abgetasteten und &#34;echtzeit&#34;-handgeschriebenen zeichen
DE69519323T2 (de) System zur Seitensegmentierung und Zeichenerkennung
DE69132206T2 (de) Verfahren und Gerät zur Bildverarbeitung
DE69030310T2 (de) Beschränkungsabhängig gesteuerte on-line Erkennung von handgeschriebenen Zeichen und Symbolen
DE69226611T2 (de) Verfahren und Gerät zur Verarbeitung eines Dokumentbildes
DE69523970T2 (de) Dokumentspeicher- und Wiederauffindungssystem
DE69722971T2 (de) Automatisches sprachenerkennungssystem für die mehrsprachige optische zeichenerkennung
DE69516751T2 (de) Bildvorverarbeitung für Zeichenerkennungsanlage
DE60120810T2 (de) Verfahren zur Dokumenterkennung und -indexierung
DE69423254T2 (de) Verfahren und Gerät zur automatischen Spracherkennung von Dokumenten
EP1665132B1 (de) Verfahren und system zum erfassen von daten aus mehreren maschinell lesbaren dokumenten
DE69123083T2 (de) Dokumentverarbeitung
DE3523042C2 (de)
DE602005002473T2 (de) Verfahren zum Erkennen von semantischen Einheiten in einem elektronischen Dokument

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee