[go: up one dir, main page]

DE69033079T2 - Aufbereitung von Text in einem Bild - Google Patents

Aufbereitung von Text in einem Bild

Info

Publication number
DE69033079T2
DE69033079T2 DE69033079T DE69033079T DE69033079T2 DE 69033079 T2 DE69033079 T2 DE 69033079T2 DE 69033079 T DE69033079 T DE 69033079T DE 69033079 T DE69033079 T DE 69033079T DE 69033079 T2 DE69033079 T2 DE 69033079T2
Authority
DE
Germany
Prior art keywords
matrix
character
image
text
data
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
DE69033079T
Other languages
English (en)
Other versions
DE69033079D1 (de
Inventor
Steven C. Palo Alto Ca 94301 Bagley
Gary E. Belmont Ca 94002 Kopec
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
Publication of DE69033079D1 publication Critical patent/DE69033079D1/de
Application granted granted Critical
Publication of DE69033079T2 publication Critical patent/DE69033079T2/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)
  • Processing Or Creating Images (AREA)
  • Document Processing Apparatus (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

    Hintergrund der Erfindung
  • Die vorliegende Erfindung wurde mit Unterstützung der US-Regierung unter der Vertragsnummer N00140-86-C-8996 gemacht und von der Defense Advanced Research Projects Agency (DARPA) gewährt. Die Regierung hat bestimmte Rechte in dieser Erfindung.
  • Die vorliegende Erfindung betrifft Techniken für die Bildverarbeitung. Insbesondere betrifft die Erfindung das Editieren eines Textbildes, das durch digitale Daten definiert wird. Zum Beispiel kann das Bild durch eine zweidimensionale Datenmatrix definiert werden.
  • Kim, S. E. Viewpoint: Toward a Comouter for Visual Thinkers, University Microfilms, Ann Arbor, beschreibt auf den Seiten 22-97, 115 und 123-131 Viewpoint, einen Text- und Grafikeditor. Die Seiten 22-23 beschreiben Pixel, wobei angegeben wird, daß jede Struktur in Viewpoint in der Form von Pixeln editiert werden kann. Die Seiten 24-25 beschreiben Viewpoint, wobei angegeben wird, daß die repräsentative Form von strukturierter Grafik in Viewpoint Text ist, der einen einzigen Font mit fester Breite verwendet und in einem festen Raster von quadratischen Zellen positioniert ist, um das Parsen der Zeichen zu erleichtern, wobei sowohl das Editieren von Text wie von Grafik auf Zellen operiert. Die Seiten 29-81 beschreiben eine Demonstration von Viewpoint mit Bezug auf Abbildungen: Seite 36 zeigt den Effekt des Auswählens einer Zelle, einschließlich einer großmaßstäbigen Wiedergabe in einem speziellen Rasterbereich; die Seiten 38-39 stellen das Kopieren dar; die Seiten 42-57 beschreiben das Schreiben, einschließlich des Zeilenumbruchs bei Antreffen eines Nichtzeichens, des Fonteditierens und des Überschreibens; die Seiten 58-59 beschreiben den Aufbau der Tastatur; die Seiten 70 bis 81 beschreiben die Ränder des Systems, einschließlich des Schreibens über einen Rand des Bildschirms hinaus und des Zeichnens über eine Schlüsselgrenze oder ein Schlüsselbild hinaus. Die Seiten 84-97 beschreiben den internen Betrieb von Viewpoint, wobei Seite 85 angibt, daß Text als eine Art Grafik behandelt wird. Seite 93 beschreibt, wie der Zeilenumbruch die Textstruktur durch das Parsen der Pixel feststellt, um Zeilenenden und Worttrennungen zu finden. Seite 115 beschreibt Texteditoren, wobei angegeben wird, daß ein anderer Editor den Text als eine rechteckige Matrix von Zeichenzellen speichert und Muster aus Zwischenräumen und Zeichen scannt, um Absätze und Spaltenwechsel zu lokalisieren. Die Seiten 123-125 enthalten ein Viewpoint-Handbuch, das in Punkt 9 erklärt, wie das Betätigen einer Taste den Inhalt der entsprechenden Tastenbildzelle in die aktuelle Zelle kopiert, wobei der Cursor um eine Zelle weiterbewegt wird.
  • Suenaga, Y. und Nagura, M. "A Facsimile Based Manuscript Layout and Editing System by Auxiliary Mark Recognition," 5th International Conference on Pattern Recognition Proceedings, December 1-4, 1980, Vol. 2 beschreibt auf den Seiten 856-858 einen Editor, dessen einzige Eingabeeinrichtung ein FAX-Sender ist und dessen einzige Ausgabeeinrichtung ein FAX-Empfänger ist. Fig. 1 zeigt Komponenten des Systems, einschließlich einer OCR-Einrichtung, und Fig. 2 zeigt den Verarbeitungsfluß, der ein Texteditier-Subsystem und ein Grafikeditier-Subsystem umfaßt. Das auf Seite 857 beschriebene Texteditier-Subsystem verwendet elf handgeschriebene Hilfsmarken, in Fig. 3 gezeigt, die auf einem zu dem zu editierenden Text separaten Papier eingegeben werden. In Antwort auf eine Hilfsmarke ordnet das Texteditier-Subsystem das binäre Bild des Textes neu, wie in Fig. 4(a) und 4(b) angegeben. Das Textformat wird aus dem Textbild geschätzt. Randverteilung (Profil) und horizontale Verknüpfung werden verwendet, um das Textbild in Übereinstimmung mit den rechteckigen Bereichen, die durch einzelne Zeichen in japanischen Texten, durch einzelne Wörter in alphanumerischen Texten oder durch als binäre Muster zu verarbeitende Grafiken eingenommen werden, in segmentierte Blöcke (SB) zu unterteilen. Eine Liste der segmentierten Blöcke (SBL) wird erstellt und verwendet, um Marken zu extrahieren und auf der Basis von topologischen und metrischen Merkmalen zu klassifizieren. Eine Marken-Parameter-Liste für Texte (MPL-T) wird erstellt. Eine Bildzuordnungsliste (PAL), d. h. eine aus den SB-Nummern und ihren Verknüpfungsadressen bestehende Liste, wird in Übereinstimmung mit MPL-T und SBL erstellt. Zeichenketten oder Muster werden in PAL virtuell gelöscht, bewegt, kopiert und kombiniert. Das Binärbild des Originaltextes wird in Übereinstimmung mit PAL neu geordnet, um die Endkopie zu erzeugen.
  • Vorhergehende Arbeit wird in Suenaga, Y. "A Facsimile Based Text Editor Using Handwritten Mark Recognition" in Proceedings of the Sixth International Joint Confrerence on Artificial Intelligence. Tokyo. August 20-23, 1979, Vol. 2, 1979 auf den Seiten 856 bis 858 beschrieben. Seite 856 gibt an, daß das Verfahren mit gewöhnlichen Texteditoren oder Textverarbeitungsprogrammen kombiniert werden kann. Seite 856 gibt auch an, daß Zeichen in Übereinstimmung mit geraden Zeilen positioniert werden müssen, und beschreibt die in Übereinstimmung mit den geraden Zeilen gezeichnete Positionsmarke, aus der das Format und die Blockgröße der Manuskripte geschätzt wird. Seite 857 beschreibt die Bildzuordnungsliste (PAL), die aus Blocknummern und Adressen besteht, um die Anordnung anzugeben.
  • Wong, K. Y., Casey, R. G. und Wahl, F. M. beschreiben in "Document Analysis System," 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 Benutzer dabei hilft, gedruckte Dokumente für die Verarbeitung durch einen Computer zu codieren. Ein auf den Seiten 648-649 beschriebener Bildmanipulationseditor (IEDIT) liest und speichert Bilder auf Platte, wobei er weiterhin Bildeditierfunktionen wie Kopieren, Bewegen, Löschen usw. vorsieht. Wie auf den Seiten 649-656 beschrieben, wird ein digitalisiertes gedrucktes Dokument segmentiert und in Text- und Bildbereiche klassifiziert. Text enthaltende Blöcke können mit einem Mustervergleichsprogramm analysiert werden, das ähnliche Symbole aus dem Dokument gruppiert und ein Prototypmuster erstellt, um jede Gruppe wiederzugeben. Während des Mustervergleichs wird die Position und der Vergleichsprototypenindex für jedes Textmuster aufgezeichnet, wobei die Position den Koordinaten der unteren linken Ecke der das Muster wiedergebenden Matrix entsprechen kann. Die Prototypmuster werden interaktiv oder durch eine automatische Erkennungslogik identifiziert.
  • GB 2 162 350 beschreibt ein Bildverarbeitungssystem, das verschiedenartige bereits geschriebene Information wie Dokumente, Bilder, Tabellen oder ähnliches verarbeiten kann und Editierfunktionen wie Löschen, Hinzufügen oder ähnliches für diese Information vorsehen kann. Nach dem Eingeben der Bildinformation erkennt der Prozessor Zeilen im Bild, erhält eine Basislinie jeder Zeichenzeile und extrahiert Zwischenräume zwischen den Zeichen und Zwischenräume zwischen den Wörtern. Das Bildverarbeitungssystem kann auch einen Absatz feststellen, einen Trennstrich erkennen und die Länge einer Zeile umwandeln, wobei die Bildinformation von einzelnen Wörtern verschoben wird. Weiterhin kann der Prozessor ein Editieren wie das Einfügen, Löschen oder ähnliches von Zeichen für Text durchführen, da die Zeichencodetabelle oder die Fonttabelle aus einer Probeseite mit den Fonts aller zu verwendeten Zeichen erhalten wird, die ähnlich wie die gewöhnlichen Bildseiten verarbeitet werden muß.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren zum Durchführen einer bezüglich der Geschwindigkeit effizienten Editieroperation auf Text, der in einem durch Pixel definierten Bild enthalten ist, vorzusehen.
  • Diese Aufgabe wird durch den Gegenstand von Anspruch 1 gelöst.
  • Bevorzugte Ausführungsformen sind Gegenstand der abhängigen Ansprüche.
  • Kurzbeschreibung der Zeichnungen
  • Fig. 1 ist ein Flußdiagramm, das Stufen zum Editieren von Text in einem Bild in Übereinstimmung mit der vorliegenden Erfindung zeigt.
  • Fig. 2 ist ein Blockdiagramm, das Komponenten eines Systems zeigt, das Text in einem Bild in Übereinstimmung mit der vorliegenden Erfindung editieren kann.
  • Fig. 3 ist ein Flußdiagramm, das Schritte in einer Operation zum Editieren von Text auf der Zeichenebene in Übereinstimmung mit der vorliegenden Erfindung zeigt.
  • Fig. 4 ist ein Flußdiagramm, das Schritte zum Erhalten einer zeichengroßen Matrix, die eine einzige zusammenhängende Komponente enthält, in Übereinstimmung mit der vorliegenden Erfindung zeigt.
  • Fig. 5 ist ein Flußdiagramm, das Schritte zum Erhalten einer zeichengroßen Matrix, die mehr als eine zusammenhängende Komponente enthält, zeigt.
  • Fig. 6 ist ein Flußdiagramm, das Schritte zum Erhalten von zeichengroßen Matrizen für zusammenhängende Komponenten mit potentiell überlappenden Begrenzungsboxen zeigt.
  • Fig. 7 ist ein Flußdiagramm, das Schritte zum Zuweisen einer zeichengroßen Matrix zu einer Tastaturtaste in Übereinstimmung mit der vorliegenden Erfindung zeigt.
  • Fig. 8 ist ein Flußdiagramm, das Schritte zum Suchen nach Matrizen zeigt, die mit einer zeichengroßen Matrix übereinstimmen, die einer Taste zugewiesenen ist.
  • Ausführliche Beschreibung A. Konzeptueller Rahmen
  • Der im folgenden dargestellte konzeptuelle Rahmen soll dabei hilfreich sein, den breiten Umfang der vorliegenden Umfangs zu verstehen, wobei die angegebenen Bedeutungen der im folgenden definierten Begriffe für die gesamte vorliegende Beschreibung sowie die Ansprüche gelten.
  • Unter "Zeichen" ist ein diskretes Element zu verstehen, das in einem Schriftsystem auftritt. Zeichen umfassen also in der englischen Sprache nicht nur alphabetische und numerische Elemente, sondern auch Interpunktionszeichen, diakritische Zeichen, mathematische und logische Symbole sowie andere Elemente, die beim Schreiben von englischen Texten verwendet werden. Allgemeiner können Zeichen zusätzlich zu den alphanumerischen Elementen, phonetische, ideographische oder piktographische Elemente umfassen. Ein "Zeichentyp" ist eine Kategorie, von der ein Zeichen eine Instanz sein kann, etwa der Buchstabe "a" oder die Zahl "3".
  • Ein "Wort" ist ein Satz aus einem oder mehreren Zeichen, der als semantische Einheit in einer Sprache behandelt wird. Ein "Text" ist eine Anordnung von einer oder mehreren Zeilen von Zeichen; die Zeichen eines Textes können Wörter bilden.
  • Ein "Bild" ist ein Muster aus Licht. Ein Bild kann Zeichen, Wörter, Text sowie andere Merkmale wie Grafiken enthalten.
  • Eine "Datenstruktur ist eine Kombination aus aufeinander bezogenen Datenelementen. Ein Datenelement ist in einer Datenstruktur "enthalten", wenn unter Verwendung der Position oder der Daten anderer Elemente in der Datenstruktur auf das Datenelement 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 eine "Matrix" ist eine Datenstruktur, die Datenelemente enthält, die in eine Matrix gemappt werden können. Eine "zweidimensionale Matrix" ist eine Datenmatrix, deren Datenelemente auf eine Matrix mit zwei Dimensionen gemappt werden können.
  • Eine Datenstruktur kann aus einer anderen Datenstruktur durch Operationen "erhalten" werden, die die Datenstruktur unter Verwendung von Daten in der anderen Datenstruktur erzeugen. Eine Matrix kann aus einer anderen Matrix durch Operationen erhalten werden, die zum Beispiel eine kleinere, mit einem Teil der anderen Matrix identische Matrix erzeugen, eine größere Matrix erzeugen, einen mit der anderen Matrix identischen Teil umfassen, die andere Matrix kopieren oder die Daten in der anderen Matrix oder in einer Kopie derselben modifizieren.
  • Eine "Dateneinheit" ist ein Datenelement, auf das als Einheit innerhalb einer Datenstruktur zugegriffen werden kann. Eine "Matrixdateneinheit" ist eine Dateneinheit, die ausreichend Daten enthält, um eine Matrix zu definieren; zum Beispiel kann eine Matrixdateneinheit die definierte Matrix selbst, eine komprimierte und codierte Form der definierten Matrix, einen Zeiger zu der definierten Matrix, einen Zeiger zu einem Teil einer anderen Matrix, aus der die definierte Matrix erhalten werden kann, oder mehrere Zeiger zu einem Satz von kleineren Matrizen umfassen, aus denen die definierte Matrix erhalten werden kann.
  • Daten "definieren" ein Bild, wenn die Daten ausreichend Information zum Erzeugen des Bildes enthalten. Zum Beispiel kann eine zweidimensionale Matrix ein ganzes Bild oder einen Teil eines Bildes definieren, wobei jedes Datenelement in der Matrix einen Wert aufweist, der die Farbe der entsprechenden Position im Bild angibt. Eine "zeichengroße Matrix" ist eine zweidimensionale Matrix, die nur ein Zeichen oder zeichengroßes Element definiert.
  • Jede Position in einem Bild kann als "Pixel" bezeichnet werden. In einer ein Bild definierenden Matrix, in der jedes Datenelement einen Wert aufweist, 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 der "Graustufenform" des Bildes oder ein Satz von Farbraumkoordinaten 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 Daten des ersten Bildes erzeugt wurde. Das zweite Bild kann mit dem ersten Bild identisch sein oder kann durch einen Verlust an Auflösung modifiziert werden, indem die das erste Bild definierenden Daten geändert werden oder indem andere Prozesse verwendet werden, die in einer modifizierten Version resultieren. Eine "Ansicht" eines Bildes ist eine Version des Bildes, die für den Benutzer angezeigt wird; eine Ansicht kann einige Details des Bildes auslassen oder in anderer Weise modifiziert sein.
  • Eine "Texteditieroperation" ist eine Operation, die annimmt, daß die Daten, auf denen sie operiert, Zeilen aus Elementen definieren, die wie Text behandelt werden können. Beispiele von Texteditieroperationen umfassen das Einfügen und Löschen von Elementen, das Ändern der Eigenschaft eines Elementes wie etwa seines Schriftschnitts, das Ändern der Ausrichtung oder der Abstände, das Positionieren des Cursors, die Blocksatzbildung, das Bewegen von Zeichen oder von einem Cursor zu einer folgenden Zeile, das Suchen nach einem Zeichen oder nach einer Sequenz von Zeichen usw.
  • Eine "Texteditieroperation auf der Zeichenebene" ist eine Texteditieroperation, die ein Zeichen oder ein zeichengroßes Element in dem zu editierenden Text betrifft. Beispiele für Texteditieroperationen auf der Zeichenebene umfassen das Einfügen, Löschen, Ändern oder Positionieren eines Zeichens, das Positionieren eines Cursors auf einem Zeichen, das Suchen nach einem Zeichen usw.
  • Eine "zusammenhängende Komponente" oder ein "Blob" ist ein Satz von Pixeln innerhalb einer ein Bild definierenden Datenmatrix, die alle miteinander über eine entsprechende Regel verbunden sind, so daß sie zueinander benachbart sind oder jeweils Nachbarn von anderen Mitgliedern des Satzes sind. Eine zusammenhängende Komponente einer Binärform kann einen zusammenhängenden Satz von Pixeln mit demselben Binärwert, etwa schwarz, umfassen. Ein "zusammenhängender Komponentensatz" oder "Komponentensatz" ist ein Satz von zusammenhängenden Komponenten, die als eine Einheit behandelt werden. Ein Zeichen kann deshalb ein Komponentensatz sein; zum Beispiel kann der Buchstabe "i" zwei zusammenhängende Komponenten umfassen, die in einem englischen Text als ein einziges Zeichen behandelt werden -- die zusammenhängenden Komponenten "bilden" das Zeichen. Eine "Begrenzungsbox" für ein Zeichen oder eine andere Komponente ist ein Rechteck, das gerade groß genug ist, um alle Pixel im Komponentensatz zu umfassen, und das durch Koordinaten angegeben werden kann.
  • Die zum Erzeugen einer modifizierten Version eines Text enthaltenden Bildes verwendeten Daten können Information zu einem Zeichen im Text enthalten. "Identitätsinformation" zu einem Zeichen ist Information, die Zeichentyp, Groß-/Kleinschreibung, Schriftschnitt, Punktgröße oder ähnliches identifiziert. Ein Zeichen zu "erkennen" bedeutet, Information zu dem Zeichen aus einer digitalen Form eines Bildes, das das Zeichen enthält, zu erhalten. "Rauminformation" zu einem Zeichen ist Information, die seine räumlichen Eigenschaften identifiziert, etwa seine Größe, Form, Position, Ausrichtung, Ausrichtung mit anderen Zeichen oder ähnliches. Obwohl die Rauminformation und die Identitätsinformation nicht vollständig voneinander unabhängig 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. Eine "Bildeingabeeinrichtung" ist eine Einrichtung, die ein Bild empfangen und ein Signal vorsehen kann, das eine Version des Bildes definiert. Ein "Scanner" ist eine Bildeingabeeinrichtung, die ein Bild mit Hilfe einer Scannoperation empfängt, etwa indem sie ein Dokument scannt. Eine "Benutzereingabeeinrichtung" ist eine Einrichtung wie eine Tastaturoder eine Maus, die auf der Basis der Aktionen eines Benutzers Signale vorsehen kann. Die Daten aus der Benutzereingabeeinrichtung können eine "Anforderung" einer Operation sein, wobei das System in diesem Fall in Antwort darauf die angeforderte Operation durchführen kann. Eine "Bildausgabeeinrichtung" ist eine Einrichtung, die ein Bild als Ausgabe vorsehen kann. Eine "Anzeige" ist eine Bildausgabeeinrichtung, die Information in visueller Form darstellt, etwa auf dem Bildschirm einer Kathodenstrahlröhre.
  • Ein Prozessor macht einen "Zugriff" auf eine Datenstruktur mit Hilfe einer Operation, die in der Datenstruktur enthaltene Daten abruft oder modifiziert, etwa durch das Lesen oder Schreiben der Daten an einer in der Datenstruktur enthaltenen Speicherstelle. Ein Prozessor kann durch eine Kombination von Verbindungen mit lokalen oder entfernten Speicher- oder Eingabe-/Ausgabeeinrichtungen "für den Zugriff auf eine Datenstruktur verbunden" sein, so daß der Prozessor auf die Datenstruktur zugreifen kann.
  • B. Allgemeine Merkmale
  • Allgemeine Merkmale der vorliegenden Erfindung können aus Fig. 1 bis 8 entnommen werden. Fig. 1 zeigt Stufen zum Texteditieren auf der Zeichenebene in Übereinstimmung mit der vorliegenden Erfindung. Fig. 2 zeigt Komponenten eines Systems, das ein derartiges Editieren durchführen kann. Fig. 3 zeigt Schritte zum Texteditieren auf der Zeichenebene, die durch den Prozessor des Systems in Fig. 2 durchgeführt werden. Fig. 4 stellt Schritte zum Erhalten einer zeichengroßen Matrix dar, die eine einzige zusammenhängende Komponente enthält. Fig. 5 stellt Schritte zum Erhalten einer zeichengroßen Matrix dar, die zwei zusammenhängende Komponenten enthält. Fig. 6 stellt Schritte zum Finden von zwei zeichengroßen Matrizen dar, deren zusammenhängende Komponenten potentiell überlappende Begrenzungsboxen aufweisen. Fig. 7 zeigt Schritte zum Zuweisen eines Zeichens zu einer Taste auf einer Tastatur. Fig. 8 zeigt Schritte zum Suchen nach Matrizen, die mit einer einer Taste zugewiesenen zeichengroßen Matrix übereinstimmen.
  • Fig. 1 zeigt zwei Spalten mit Kästen. Jeder Kasten in der linken Spalte gibt einen durch den Prozessor eines Systems durchgeführten Prozeß in einer Stufe des Editierens an, während jeder Kasten in der rechten Spalte ein Ereignis an der Benutzerschnittstelle angibt, indem entweder ein Teil eines Textes gezeigt wird, so wie dieser angezeigt würde, oder indem eine Benutzereingabeaktion gezeigt wird. Die Editieroperationen resultieren in einer Editierdatenstruktur, die eine modifizierte Version des Bildes definiert.
  • Der Prozeß in Kasten 10 ist die Anzeige einer Ansicht eines Bildes, das ein durch eine zweidimensionale Datenmatrix, etwa eine Binärmatrix, definiertes Bild sein kann. Der Kasten 12 zeigt eine Zeichensequenz "one", die in der Ansicht des Bildes erscheint, und einen Pfeil 14, der derart positioniert ist, daß er auf das Zeichen "o" zeigt. Die Position des Pfeils 14 kann durch eine entsprechende Benutzereingabeeinrichtung wie eine Maus gesteuert werden.
  • Der Prozeß in Kasten 16 empfängt vom Benutzer eine erste Anforderung für eine Texteditieroperation auf der Zeichenebene. In diesem Fall gibt die Anforderung eine Position auf einem Zeichen an, die eine Anforderung zum Positionieren eines aktuell aktiven Bereichs wie einen Cursor auf dem Zeichen sein kann. Diese Anforderung kann durch ein Klicken angegeben werden, wie in Kasten 18 angegeben. Zum Beispiel kann eine Maustaste, eine Tastaturtaste oder eine andere Taste betätigt werden, wenn der Pfeil 14 auf ein Zeichen zeigt. Anforderungen, die eine Position angeben, geben nicht immer Zeichen an -- in anderen Fällen können sie Operationen auf einer Zeichensequenz wie einem Wort, einer Zeile oder einer längeren Sequenz angeben, die in einer Zeile beginnt und in einer anderen endet; in diesen Fällen kann die angegebene Position der angegebenen Zeichensequenz vorangehen oder auf dieselbe folgen.
  • In Antwort auf eine in Kasten 16 empfangene Anforderung erhält der Prozeß in Kasten 20 eine kleinere Matrix von einer größeren Matrix wie etwa der Bildmatrix. Der Prozeß in Kasten 20 erhält also Rauminformation zu einem Teil des Bildes, der durch die kleinere Matrix definiert wird. Wenn der angegebene Teil ein Zeichen ist, wie hier dargestellt, erhält der Prozeß in Kasten 20 eine zeichengroße Matrix, wobei die Rauminformation die Größe, Form oder Position betreffen kann. Der Prozeß in Kasten 20 enthält in der Editierdatenstruktur eine die Matrix definierende Matrixdateneinheit sowie die Rauminformation und schließt die angeforderte Operation ab, indem er diese Matrixdateneinheit zu der aktuell aktiven Position für das weitere Texteditieren macht.
  • Der Prozeß in Kasten 20 sieht auch eine Rückmeldung für den Benutzer vor, wie in Kasten 22 gezeigt. Wie der Kasten 12 zeigt der Kasten 22 die Sequenz der Zeichen "one", wobei aber ein dunkleres Rechteck 24 das Zeichen "o" umgibt, um die aktuell aktive Position anzugeben, die in der Darstellung der linke Kante des Rechtecks 24 entspricht. Das Rechteck 24 kann auch durch eine invertierte oder blinkende Darstellung angegeben werden. Der Kasten 22 zeigt auch den Pfeil 26, der jetzt derart positioniert ist, daß er auf das Zeichen "n" zeigt.
  • Der Prozeß in Kasten 28 empfängt eine zweite Anforderung vom Benutzer für eine andere Texteditieroperation auf der Zeichenebene. Wie in Kasten 30 dargestellt, ist die angeforderte Operation eine Kopieroperation, wobei ein Klicken das Kopieren eines Zeichens zu der aktuell aktiven Position angibt, die in der Darstellung die dem Rechteck 24 unmittelbar vorausgehende Position ist.
  • In Antwort auf die in Kasten 28 empfangene Antwort erhält der Prozeß in Kasten 32 eine das zu kopierende Zeichen definierende zeichengroße Matrix sowie Rauminformation zu demselben. Dann fügt der Prozeß das Zeichen ein, wobei eine Matrixdateneinheit in die Editierdatenstruktur aufgenommen wird, die die zeichengroße Matrix definiert, die in der modifizierten Version des Bildes in Übereinstimmung mit der Rauminformation zu dem zu kopierenden Zeichen und zu dem in Kasten 20 erhaltenen Zeichen "o" positioniert ist. Es können auch zeichengroße Matrizen und Rauminformation zu anderen Zeichen erhalten werden, die direkt zu dem zu kopierenden Zeichen oder zu der Position benachbart sind, an der die Kopie eingefügt werden soll.
  • Das eingefügte Zeichen kann positioniert werden, indem entsprechende Positionsdaten in die Matrixdateneinheit aufgenommen werden. Auf der Basis der Rauminformation zu den Abständen zwischen den Zeichen kann das eingefügte Zeichen entlang der Zeichenzeile positioniert werden. Folgende Zeichen in der Zeile können dabei entlang der Zeile neu positioniert werden, um Platz für das eingefügte Zeichen zu schaffen. Auf der Basis der Information zu den Zeichenpositionen in der Querrichtung kann das eingefügte Zeichen auch quer zu der Zeichenzeile eingefügt werden.
  • Wenn die angeforderte Operation abgeschlossen ist, wird eine Ansicht der modifizierten Version des Bildes angezeigt, wie in Kasten 34 gezeigt, wobei ein dunkles Rechteck 36 das eingefügte Zeichen "n" umgibt, um die aktuell aktive Position anzugeben.
  • Das System 50 in Fig. 2 umfaßt einen Prozessor 52, der zum Empfangen von Signalen aus der Bildeingabeeinrichtung 54 und der Bildeingabeeinrichtung 56 verbunden ist. Die Bildeingabeeinrichtung 54 kann ein Scanner, ein Faxempfänger oder ein anderer Bildempfänger, eine Kamera oder eine andere entsprechende Einrichtung oder ein Teil eines lokalen oder entfernten Speichers sein, der ein Bild in digitaler Form speichert. Die Benutzerein gabeeinrichtung 56 kann zum Beispiel eine Tastatur mit einer Maus sein. Der Prozessor 52 kann auch mit einer Bildausgabeeinrichtung 58 wie einer Bildschirmanzeige, einem Drucker, einem Faxsender oder einem anderen Bildsender, oder mit einem Teil eines lokalen oder entfernten Speichers, der Bilder in digitaler Form speichern kann, verbunden sein.
  • Der Prozessor ist auch mit einem Zugriffsprogrammspeicher 60 und mit einem Datenspeicher 80 verbunden. Der Programmspeicher 60 umfaßt eine Bildeingaberoutine 62, eine Benutzereingaberoutine 64, Editiersubroutinen 66, Bildparsingsubroutinen 68 und Bildausgabesubroutinen 70. Der Datenspeicher 80 umfaßt eine Bildeingabedatenstruktur 82, eine geparste Bilddatenstruktur 84 und eine Bildausgabedatenstruktur 86.
  • Beim Ausführen der Bildeingaberoutine 62, lädt der Prozessor 52 Daten aus der Bildeingabeeinrichtung 54 in die Bildeingabedatenstruktur 82, die eine zweidimensionale Datenmatrix ist. In Antwort auf Signale aus der Benutzereingabeeinrichtung 56 führt der Prozessor 52 die Benutzereingaberoutine 64 durch, die auch Aufrufe zu Editiersubroutinen umfassen kann.
  • Die Editiersubroutinen 66 dagegen können Bildparsingsubroutinen 68 aufrufen, die kleinere Matrizen aus der Datenmatrix in der Bildeingabedatenstruktur 82 oder aus zuvor erhaltenen Matrizen erhalten. Wie gezeigt, umfaßt die geparste Bilddatenstruktur 84 eine oder mehrere untergeordnete Datenstrukturen, die als Zeilen bezeichnet werden; jede Zeilendatenstruktur umfaßt wiederum eine oder mehrere Matrixdateneinheiten, die jeweils entweder eine zeichengroße Matrix, die einen Satz von einer oder mehreren zusammenhängenden Komponenten umfaßt, oder eine nicht geparste Matrix umfassen, die durch Bildparsingsubroutinen 68 weiter zu zeichengroßen Matrizen geparst werden kann. Entsprechend kann die geparste Bilddatenstruktur 84 auch Matrixdateneinheiten umfassen, die nicht geparste Matrizen definieren, die durch Bildparsingsubroutinen 68 weiter geparst werden können, um Zeilendatenstrukturen zu erhalten. Die geparsten Bilddatenstruktur 84 kann also eine modifizierte Version des Bildes definieren, die durch die Bildeingabedatenstruktur 82 definiert wird.
  • Die Editiersubroutinen 66 können auch Bildausgabesubroutinen 70 aufrufen, die die Bildausgabedatenstruktur 86 erzeugen. Die Bildausgabedatenstruktur 86 kann verwendet werden, um eine Ansicht des durch die Bildeingabedatenstruktur 82 definierten Bildes vorzusehen oder um eine Ansicht der modifizierten Version des Bildes vorzusehen, das durch die geparste Bilddatenstruktur 84 definiert wird. In beiden Fällen wird die Ansicht für die Bildausgabeeinrichtung 58 vorgesehen.
  • Fig. 3 zeigt Schritte, die in einer Texteditieroperation auf der Zeichenebene vorgenommen werden können, d. h. Schritte, die durch einen Prozessor wie den Prozessor 52 im System 50 durchgeführt werden können. Eine Aufforderung für die Texteditieroperation wird in Kasten 100 empfangen. Im System 50 kann die Aufforderung durch den Prozessor 52 von der Benutzereingabeeinrichtung 56 empfangen werden.
  • In Antwort darauf führt der Schritt in Kasten 102 die angeforderte Operation durch. Im System 50 kann der Prozessor 52 eine Texteditieroperation auf der Zeichenebene durchführen, indem er die entsprechenden Editiersubroutinen 66 ausführt, wobei er während derselben auf die geparste Bilddatenstruktur 84 zugreifen und dieselbe modifizieren kann. Wenn eine Texteditieroperation ein Zeichen in einer nicht geparsten Matrix betrifft, kann es erforderlich sein, eine zeichengroße Matrix für das Zeichen aus der nicht geparsten Matrix zu erhalten. Die Matrixdateneinheit, die die zeichengroße Matrix definiert, sowie Zeilendatenstrukturen und Matrixdateneinheiten, die die anderen zeichengroßen Matrizen sowie andere Matrizen definieren, können innerhalb der geparsten Bilddatenstruktur 84 manipuliert werden, um die angeforderte Operation durchzuführen. Der Prozessor 52 erhält deshalb, wenn erforderlich, eine zeichengroße Matrix, indem er Bildparsingsubroutinen 68 durchführt, die das Finden eines Satzes von zusammenhängenden Komponenten umfassen können, die ein Zeichen oder ein anderes Element in einer nicht geparsten Matrix definieren.
  • Die Manipulation einer geparsten Bilddatenstruktur 84 durch den Prozessor 52 kann Matrizen betreffen, die ein oder mehrere Zeichen oder andere zeichengroße Sätze von zusammenhängenden Komponenten, ein oder mehrere Wörter, eine oder mehrere Textzeilen, eine Teilsequenz eines Texts, die in einer Zeile beginnt und in einer anderen endet, usw. definieren. Die Manipulation kann Operationen umfassen, die einer oder mehreren Einfügungen oder Löschungen entsprechen. Nach dieser Manipulation definiert die geparste Datenstruktur 84 die modifizierte oder editierte Version des Bildes. Wenn die angeforderte Operation abgeschlossen ist, kann der Prozessor 52 Bildausgabesubroutinen 70 ausführen, um eine Bildausgabedatenstruktur 86 zu erzeugen, die verwendet werden kann, um ein Ausgabebild durch die Bildausgabeeinrichtung 58 vorzusehen. Dieses Ausgabebild ist eine Ansicht der modifzierten oder editierten Version des Bildes, das durch die geparste Bilddatenstruktur 84 definiert wird.
  • Fig. 4 stellt Schritte zum Teilen einer nicht geparsten Matrix dar, um kleinere Matrizen zu erhalten. Diese Schritte können beim Durchführen des Schrittes von Kasten 102 in Fig. 3 vorgenommen werden. Der Bildteil 120 ist durch die geteilte nicht geparste Matrix definiert und umfaßt in der Darstellung Textzeilen mit jeweils mehreren Zeichen. Die in Fig. 4 dargestellten Schritte werden in Antwort auf eine Benutzeranforderung durchgeführt, die eine Position im Zeichen "a" in der ersten Zeile im Bildteil 120 angibt. Auf der Basis der angegebenen Position greift der Prozessor 52 auf die das Teilbild 120 definierende Matrix zu, indem er auf den in Kasten 122 gezeigten Teil der geparsten Bilddatenstruktur zugreift, um die kleinste Matrix zu finden, die die angegebene Position enthält. Die geparste Bilddatenstruktur enthält eine Matrixdateneinheit für die nicht geparste Matrix A, die das Teilbild 120 definiert. Diese Matrixdateneinheit enthält Daten, die Rauminformation zu der nicht geparsten Matrix A angeben, etwa bezüglich der Größe, Form und Position des Bildteils 120; diese die Rauminformation angebenden Daten werden verwendet, um zu bestimmen, daß die durch die Benutzeranforderung angegebene Position sich innerhalb des Bildteils 120 befindet. Diese Dateneinheit enthält weiterhin entweder eine zweidimensionale Matrix, die den Bildteil 120 definiert, oder einen Zeiger auf eine derartige Matrix.
  • Der erste Schritt zum Teilen der nicht geparsten Matrix A besteht darin, Daten aus der nicht geparsten Matrix A zu teilen, die die Textzeile mit der durch die Benutzeranforderung angegebenen Position definieren. Dies kann zum Beispiel bewerkstelligt werden, indem entlang der leeren horizontalen Zwischenräume, die der angegebenen Position am nächsten sind, geteilt wird. Der Bildteil 120 weist keinen leeren horizontalen Zwischenraum über der angegebenen Position auf, weist aber einen leeren horizontalen Zwischenraum zwischen den Zeilen unterhalb der angegebenen Position auf, weshalb die nicht geparste Matrix A in die Zeilenmatrix B, die den Bildteil 130 definiert, und die nicht geparste Matrix C, die den Bildteil 132 definiert, geteilt werden kann. Der Bildteil 130 wird schattiert dargestellt, um anzugeben, daß er die angegebene Position enthält. Da diese Matrizen ausreichend Daten enthalten, um den ganzen durch die nicht geparste Matrix A definierten Bildteil 120 zu definieren, können Matrixdateneinheiten, die diese Matrizen definieren, die Matrixdateneinheit für die nicht geparste Matrix A ersetzen, wie in dem in Kasten 134 gezeigten Teil der geparsten Bilddatenstruktur gezeigt.
  • Der nächste Schritt besteht darin, aus der aktuell kleinsten Matrix, die die angegebene Position enthält, die Zeilenmatrix B zu teilen, d. h. einen kleineren Teil, der die angegebene Position enthält. Dies kann bewerkstelligt werden, indem zum Beispiel entlang der vertikalen Zwischenräume, die der angegebenen Position am nächsten sind, geteilt wird. Auf diese Weise kann der Bildteil 130 entlang der vertikalen Zwischenräume zwischen den Zeichen in die Bildteile 142 und 144 geteilt werden, die jeweils durch die nicht geparsten Matrizen D und E definiert werden. Der Bildteil 142 ist schattiert gezeigt, um anzugeben, daß er die angegebene Position enthält. Die Dateneinheit, die die Zeilenmatrix B definiert, wird erweitert, um die Matrixdateneinheiten für jede dieser Matrizen aufzunehmen, wie in dem in Kasten 146 gezeigten Teil der geparsten Bilddatenstruktur gezeigt.
  • Schließlich wird die aktuell kleinste Matrix, die die angegebene Position enthält, d. h. die nicht geparste Matrix D, analysiert, um zusammenhängende Komponenten zu finden. Die nicht geparste Matrix D enthält nur eine zusammenhängende Komponente, das Zeichen "a". Diese zusammenhängende Komponente kann deshalb als ein Komponentensatz behandelt werden, d. h. als ein Satz von zusammenhängenden Komponenten, die wahrscheinlich ein Zeichen bilden und deshalb als Einheit behandelt werden. Dann wird eine zeichengroße Matrix erhalten, die den gesamten Komponentensatz enthält, d. h. in diesem Fall die zeichengroße Matrix F, die eine rechteckige Begrenzungsbox aufweist und den Bildteil 150 definiert, der schattiert gezeigt ist, um anzugeben, daß er die angegebene Position enthält. Die zeichengroße Matrix F ist zusammen mit der Rauminformation, die die Position des Bildteils 150 angibt, ausreichend, um die nicht geparste Matrix D zu definieren. Deshalb kann eine Matrixdateneinheit für die zeichengroße Matrix F die Matrixdateneinheit für die nicht geparste Matrix D in dem in Kasten 152 gezeigten Teil der geparsten Bilddatenstruktur ersetzen.
  • Fig. 4 stellt das Teilen einer nicht geparsten Matrix dar, um eine zeichengroße Matrix zu finden, die nur eine zusammenhängende Matrix enthält, die dem einzigen Komponentensatz in der nicht geparsten Matrix entspricht. Fig. 5 stellt einen Fall dar, in dem die nicht geparste Matrix nur zwei zusammenhängende Komponenten umfaßt, die einen Komponentensatz bilden, und Fig. 6 stellt einen Fall dar, in dem die nicht geparste Matrix zwei Komponentensätze umfaßt, deren Begrenzungsboxen überlappen könnten.
  • In Fig. 5 wurde auf eine nicht geparste Matrix zugegriffen, die den Bildteil 170 definiert, der eine Instanz des Zeichens "i" enthält. Auf die Matrix, d. h. die nicht geparste Matrix L mit einer Matrixdateneinheit in dem in Kasten 172 gezeigten Teil der geparsten Bilddatenstruktur kann auf der Basis einer Benutzeranforderung zugegriffen werden, die eine Position im Zeichen "i" angibt. Deshalb ist die nicht geparste Matrix L die aktuell kleinste Matrix, die die angegebene Position enthält.
  • Aus der Position der Dateneinheit der nicht geparsten Matrix L in dem in Kasten 172 gezeigten Teil der geparsten Bilddatenstruktur kann der Prozessor 52 bestimmen, daß der entsprechende folgende Schritt darin besteht, zusammenhängenden Komponenten sowie die Be grenzungsbox für jede zusammenhängende Komponente zu finden. Der Bildteil 180 umfaßt die Bildteile 182 und 184, die jeweils durch die Begrenzungsbox einer verbundenen Komponente definiert sind. Der Bildteil 182 enthält den Punkt des Zeichens "i", während der Bildteil 184 den Körper des Zeichens "i" enthält und schattiert ist, um anzugeben, daß er die angegebene Position enthält.
  • Nach dem Finden von mehr als einer zusammenhängenden Komponente in einer nicht geparsten Matrix, kann der Prozessor 52 Regeln anwenden, um zu bestimmen, ob die zusammenhängenden Komponenten als eine Einheit behandelt werden können; diese Regeln können auf der Wahrscheinlichkeit basieren, daß die zusammenhängenden Komponenten ein Zeichen bilden. Diese Regeln können Daten zu den Begrenzungsboxen der verbundenen Komponenten, etwa bezüglich deren Größe, Form oder Position, verwenden. Wenn die Begrenzungsboxdaten zum Beispiel die relativ kleine Größe des Bildteils 182 und die Nähe zu dem relativ großen Bildteil 184 angeben, kann eine Regel angeben, daß die zusammenhängenden Komponenten als eine Einheit behandelt werden können. Oder wenn die Begrenzungsboxdaten angeben, daß die Zentren der Begrenzungsboxen innerhalb von einer angegebenen Anzahl von Pixeln vertikal ausgerichtet sind, kann eine Regel angeben, daß die verbundenen Komponenten als eine Einheit behandelt werden und also einen Komponentensatz bilden.
  • Unter Anwendung einer dieser Regeln kann die nicht geparste Matrix L derart geteilt werden, daß der Bildteil 190 den die zeichengroße Matrix N definierenden Bildteil 192 umfaßt, der der Begrenzungsbox des Komponentensatzes entspricht. Da die Matrixdateneinheit für die zeichengroße Matrix N in dem in Kasten 194 gezeigten Teil der geparsten Bilddatenstruktur ausreichend Daten enthält, um den Bildteil 190 vorzusehen, ersetzt er die Dateneinheit für die nicht geparste Matrix L in dem in Kasten 172 gezeigten Teil der geparsten Bilddatenstruktur. Der Bildteil 192 ist schattiert, um anzugeben, daß er die angegebene Position enthält.
  • In Fig. 6 wurde auf eine nicht geparste Matrix zugegriffen, die den Bildteil 200 definiert, der zwei benachbarte Instanzen des Zeichens "/" enthält, wobei der untere Teil des zweiten Zeichens unterhalb des oberen Teils des ersten Zeichens angeordnet ist, so daß kein vertikaler leerer Zwischenraum zwischen den beiden Zeichen gegeben ist. Auf die Matrix, d. h. auf die nicht geparste Matrix S mit einer Matrixdateneinheit in dem in Kasten 202 gezeigten Teil der Bilddatenstruktur, kann auf der Basis einer Benutzeranforderung zugegriffen werden, die eine Position innerhalb der zweiten Instanz des Zeichens "/" angibt. Deshalb ist die nicht geparste Matrix S die aktuell kleinste Matrix, die die angegebene Position enthält.
  • Aus der Position der Dateneinheit der nicht geparsten Matrix S innerhalb des in Kasten 202 gezeigten Teils der geparsten Bilddatenstruktur kann der Prozessor 52 bestimmen, daß der entsprechende nächste Schritt darin besteht, zusammenhängende Komponenten sowie die Begrenzungsbox für jede Komponente zu finden. Der Bildteil 210 umfaßt die Bildteile 212 und 214, die jeweils durch die Begrenzungsbox einer zusammenhängenden Komponente definiert sind. Der Bildteil 212 enthält die erste Instanz des Zeichens "/", während der Bildteil 214 die zweite Instanz enthält und schattiert ist, um anzugeben, daß er die angegebene Position enthält.
  • Der Prozessor kann wiederum Regeln anwenden, um zu bestimmen, ob die zwei gefundenen zusammenhängenden Komponenten als Einheit behandelt werden können. Wenn die Begrenzungsboxdaten dabei angeben, daß die Zentren der Begrenzungsboxen durch mehr als einen Schwellwert voneinander getrennt sind, dann kann eine Regel angeben, daß die verbundenen Komponenten nicht als Einheit behandelt werden kann, die einen Komponentensatz bildet. Deshalb umfaßt der nach dem Anwenden der Regeln erhaltene Bildteil 220 nur den Bildteil 222, der die zusammenhängende Komponente enthält, deren Begrenzungsbox dem Bildteil 214 entspricht. Der Bildteil 222 enthält keinen Teil der zusammenhängenden Komponente, deren Begrenzungsbox dem Bildteil 212 entspricht. Der in Kasten 226 gezeigte Teil der geparsten Bilddatenstruktur enthält Matrixdateneinheiten für die zeichengroßen Matrizen U und V, wobei die zeichengroße Matrix V den Bildteil 222 definiert und wobei die zeichengroße Matrix U einen ähnlichen Bildteil definiert, der die zusammenhängende Komponente enthält, deren Begrenzungsbox dem Bildteil 212 entspricht. Die Matrixdateneinheiten für die zeichengroßen Matrizen U und V ersetzen die Dateneinheit für die nicht geparste Matrix S in dem in Kasten 226 gezeigten Teil der geparsten Bilddatenstruktur. Der Bildteil 222 ist schattiert gezeigt, um anzugeben, daß er die angegebene Position enthält.
  • Fig. 6 stellt ein spezielles Problem dar, das auftritt, wenn die Begrenzungsboxen von zusammenhängenden Komponenten überlappen können. Der Bildteil 222 kann kein tatsächlicher Teil des Bildteils 200 sein, weil er dann ein Ende der zusammenhängenden Komponente enthalten würde, deren Begrenzungsbox der Bildteil 212 ist. Deshalb kann die Matrixdateneinheit für die zeichengroße Matrix V kein Zeiger in die zweidimensionale Matrix sein, die den Bildteil 200 definiert. Dieses Problem kann gelöst werden, indem eine den Bildteil 222 definierende zweidimensionale Matrix in die Matrixdateneinheit für die zeichengroße Matrix V aufgenommen wird; diese zweidimensionale Matrix kann erhalten werden, indem mit der zusammenhängenden Komponenten begonnen wird, deren Begrenzungsbox der Bildteil 214 ist, und indem ein leerer rechteckiger Bereich um diesen herum erhalten wird.
  • Fig. 6 stellt ein anderes Problem dar, das bei Komponentensätzen auftritt, die potentiell überlappende Begrenzungsboxen aufweisen: wie soll das System antworten, wenn der Benutzer eine Position in dem überlappenden Bereich angibt? Dieses Problem kann gelöst werden, indem eine Position im überlappenden Bereich so behandelt wird, daß sie eine Position in dem zusammenhängenden Komponentensatz angibt, dessen Zentrum weiter links liegt.
  • Die Editiersubroutinen 66 können auch spezielle Operationen umfassen, die zeichengroße Matrizen betreffen. Fig. 7 und 8 zeigen Beispiele für spezielle Editieroperationen, die zeichengroße Matrizen betreffen. Fig. 7 zeigt Schritte zum Zuweisen einer Matrix zu einer Taste auf der Tastatur der Benutzereingabeeinrichtung 56. Fig. 8 zeigt Schritte zum Durchführen einer Suche nach einer Matrix, die mit einer der zuvor zu einer Taste zugewiesenen Matrizen übereinstimmt.
  • Den Schritten von Fig. 7 können Schritte wie die in den Kästen 10 und 16 von Fig. 1 oder andere Schritte wie die in den Kästen 28 und 32 vorangehen, wobei in jedem Fall eine aktive Matrix resultiert; in Fig. 1 ist die aktive Matrix in Kasten 22 durch den schattierten Bereich 24 und in Kasten 34 durch den schattierten Bereich 36 angegeben. Der Schritt in Kasten 240 sieht wie Kasten 20 von Fig. 1 eine Ansicht eines Bildes vor, d. h. einen Teil der in Kasten 242 mit dem schattierten Bereich 244 gezeigten Ansicht, um anzugeben, daß die zeichengroße Matrix, die das Zeichen "r" in der Zeichensequenz "ered" enthält, die aktuell aktive Matrix in der Ansicht ist.
  • In Kasten 250 sieht der Benutzer ein Signal vor, das eine Tastenzuweisungsoperation anfordert. Zum Beispiel kann der Benutzer zuvor das Eintreten in einen Lernmodus angefordert haben, in welchem aufeinanderfolgend eine Reihe von Matrizen zu Tasten zugewiesen werden können. Wenn der Benutzer im Lernmodus eine Taste auf der Tastatur drückt, wird die aktuell aktive Matrix der gedrückten Taste zugewiesen. Deshalb empfängt der Prozessor 52 in Kasten 252 die Anforderung für eine Tastenzuweisung und führt die entsprechenden Editiersubroutinen 66 aus, um die zeichengroße Matrix, die das Zeichen "r' enthält, zu der angegebenen Taste zuzuweisen, etwa zu dem "r" auf der Tastatur. Im Lernmodus kann der Prozessor 52 dann die aktuell aktive Matrix zu der nächsten Position im Text bewegen, so daß der Benutzer dann eine andere Taste drücken kann, um die nächste Matrix zuzuweisen; auf diese Weise kann der Benutzer eine Sequenz von Zeichen tippen, um die Matrizen des Textes zu Tasten auf der Tastatur zuzuweisen, wobei eine entsprechende Regel vorgesehen ist, um Matrizen zu kombinieren oder zu ersetzen, wenn dasselbe Zeichen mehr als einmal im Text auftritt, so daß mehr als eine Matrix derselben Taste zugewiesen wird. Der Prozessor 52 könnte auch entsprechende Bildausgabesubroutinen 70 durchführen, um eine Rückmeldung vorzusehen, die die Zuweisung der Taste angibt, etwa indem eine Ansicht einer Tastatur angezeigt wird, bei der jede zugewiesene Matrix in der Position der entsprechenden Taste angezeigt wird.
  • Anstatt Tastenzuweisungen manuell auf der Basis eines Textes zuzuweisen, sollte der Benutzer auch in der Lage sein, durch ein entsprechendes Signal anzufordern, daß ein gespeicherter Satz von Matrizen zu den Tasten zugewiesen wird, etwa Matrizen für die Zeichen eines bestimmten Fonts eines Schrifttyps, oder daß Matrizen auf der Basis der Ergebnisse der Zeichenerkennung zu den Tasten zugewiesen werden. Der Benutzer sollte auch alle frühreren Zuweisungen löschen können, nachdem er in den Lernmodus eintritt.
  • Wie auch immer die Zuweisung der Matrizen zu Tasten vorgenommen wird, wenn der Benutzer in Kasten 260 eine zugewiesene Taste im Schreibinodus betätigt, empfängt der Prozessor dies in Kasten 262 als Anforderung zum Schreiben eines Zeichens. Der Prozessor 52 führt dann entsprechende Subroutinen 66 aus, um die zeichengroße Matrix oder eine andere Matrix, die der angegebenen Taste zugewiesen ist, an der aktuell aktiven Position in das Bild einzufügen. Der Prozessor 52 führt dann entsprechende Bildausgabesubroutinen 70 durch, um in Kasten 264 eine Ansicht der modifizierten Version des Bildes anzuzeigen. Wie in Kasten 266 gezeigt, umfaßt diese Anzeige einen schattierten Bereich 268, der die eingefügte Matrix angibt -- in diesem Fall die zeichengroße Matrix, die das Zeichen "r" enthält.
  • Die geparste Bilddatenstruktur 84 kann auch nach einer zeichengroßen Matrix durchsucht werden, die mit einer zuvor zu einer Taste zugewiesenen Matrix übereinstimmt, wie in Fig. 8 dargestellt. Das erste Ereignis in Fig. 8 ist ein Signal von einer Benutzereingabeeinrichtung 56, das angibt, daß der Benutzer eine Suche zusammen mit einem Klicken der angegebenen Taste, die einer zeichengroßen Matrix zugewiesenen ist, angefordert hat, in diesem Fall der Taste, die der zeichengroßen Matrix zugewiesen ist, die das Zeichen "r" enthält. In Antwort darauf findet der Prozessor 52, der die Anforderung in Kasten 282 empfängt, in Kasten 284 eine übereinstimmende Matrix. Die übereinstimmende Matrix kann mit Standard- Schablonenvergleichs- und Faltungstechniken gefunden werden. Der Prozessor 52 sieht dann eine Ansicht des Bildes vor, in dem die übereinstimmende Matrix schattiert gezeigt ist, wie in Kästen 286 durch den schattierten Bereich 288 gezeigt.

Claims (3)

1. Verfahren zum Durchführen einer Editieroperation auf Text, der in einem pixelweise definierten Bild enthalten ist, wobei das Verfahren mit Hilfe eines Prozessors (52) ausgeführt wird, der zum Zugreifen auf eine Editierdatenstruktur ausgebildet ist, die eine erste zweidimensionale Datenmatrix enthält, die einen Bereich des Bildes (120) definiert, der ein erstes zu editierendes Zeichen enthält, wobei das Verfahren folgende Schritte umfaßt:
Empfangen einer durch einen Benutzer eingegebenen Anforderung für eine Texteditieroperation auf der Zeichenebene, wobei die Anforderung Information enthält, die auf die Position des ersten Zeichens bezogen ist und durch den Benutzer mit Hilfe einer Eingabeeinrichtung eingegeben wird,
Definieren der ersten zweidimensionalen Matrix in Antwort auf die Anforderung, so daß die zweidimensionale Matrix die durch den Benutzer eingegebene Position enthält, Parsen der definierten ersten zweidimensionalen Matrix durch Analysieren der Matrix zu Textzeilen,
Teilen der ersten zweidimensionalen Datenmatrix in eine zweite zweidimensionale Matrix, die keine Textzeilen außer der Textzeile mit der angegebenen Position enthält, sowie in eine nicht geparste Datenmatrix, die die restlichen Textzeilen enthält, Parsen der definierten zweiten zweidimensionalen Matrix durch Analysieren der Matrix auf Zwischenräume zwischen den Zeilen,
Teilen der geparsten zweiten zweidimensionalen Matrix in eine dritte zweidimensionale Matrix, die einen nicht mehr durch die vorstehenden Schritte unterteilbaren Bildbereich definiert und die angegebene Position enthält, sowie in eine weitere nicht geparste Matrix, Parsen der dritten zweidimensionalen Matrix durch Analysieren der Matrix auf zusammenhängende Komponenten und, wenn es auf der Basis dieser Analyse wahrscheinlich ist, daß die zusammenhängenden Komponenten ein Zeichen bilden, Erhalten einer Begren zungsbox, die eine zeichengroße Matrix definiert, welche nur das durch die Analyse gefundene Zeichen enthält,
Betrachen des gefundenen Zeichens als Wiedergabe des ersten zu editierenden Zeichens und
Durchführen der angeforderten Editieroperation auf der zeichengroßen Matrix.
2. Verfahren nach Anspruch 1, wobei die Bildausgabeeinrichtung eine Anzeige umfaßt, wobei die Bildausgabeeinrichtung (58) die Ansichten vorsieht, die durch den Prozessor auf der Anzeige vorgesehen werden, wobei der Prozessor weiterhin verbunden ist, um die Anforderung von einer Benutzereingabeeinrichtung (56) zu empfangen, wobei die Benutzereingabeeinrichtung eine Zeigersteuereinrichtung zum Vorsehen von Signalen umfaßt, die die Position eines Zeigers auf der Anzeige angeben.
3. Verfahren nach Anspruch 1, wobei der Schritt zum Parsen der dritten zweidimensionalen Matrix einen Teilschritt zum Finden eines Satzes aus wenigstens einer zusammenhängenden Komponente innerhalb der dritten zweidimensionalen Matrix umfaßt.
DE69033079T 1989-12-29 1990-10-31 Aufbereitung von Text in einem Bild Expired - Fee Related DE69033079T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US45902289A 1989-12-29 1989-12-29

Publications (2)

Publication Number Publication Date
DE69033079D1 DE69033079D1 (de) 1999-06-02
DE69033079T2 true DE69033079T2 (de) 1999-08-12

Family

ID=23823070

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69033079T Expired - Fee Related DE69033079T2 (de) 1989-12-29 1990-10-31 Aufbereitung von Text in einem Bild

Country Status (5)

Country Link
US (1) US5548700A (de)
EP (1) EP0434930B1 (de)
JP (1) JP2536966B2 (de)
CA (1) CA2027253C (de)
DE (1) DE69033079T2 (de)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IE910580A1 (en) * 1991-02-20 1992-08-26 Shobunsha Publications Inc Improved map production method
US6105121A (en) * 1991-02-28 2000-08-15 Siemens Aktiengesellschaft Data processing and data transmission system
JPH0773190A (ja) * 1993-04-29 1995-03-17 Matsushita Electric Ind Co Ltd ペンベースコンピューターシステム用絵文字ネーミング
US5734761A (en) 1994-06-30 1998-03-31 Xerox Corporation Editing scanned document images using simple interpretations
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
JP2776295B2 (ja) * 1994-10-27 1998-07-16 日本電気株式会社 画像インデックス生成方法及び画像インデックス生成装置
JPH0951422A (ja) * 1995-08-09 1997-02-18 Minolta Co Ltd 画像編集装置
US5930813A (en) * 1995-12-21 1999-07-27 Adobe Systems Incorporated Method and system for designating objects
US5960444A (en) * 1996-07-01 1999-09-28 Sun Microsystems, Inc. Software tool for indexing document made from plurality of smaller documents created using different versions of word processing software
US5956468A (en) * 1996-07-12 1999-09-21 Seiko Epson Corporation Document segmentation system
US5963956A (en) * 1997-02-27 1999-10-05 Telcontar System and method of optimizing database queries in two or more dimensions
US6166719A (en) * 1998-04-09 2000-12-26 Hewlett-Packard Company Consistently ordered adjustment of a digitally represented image
US7024623B2 (en) * 1998-06-17 2006-04-04 Microsoft Corporation Method and system for placing an insertion point in an electronic document
US6731309B1 (en) 1998-08-28 2004-05-04 Corel Corporation Real time preview
US6470096B2 (en) * 1998-11-13 2002-10-22 Xerox Corporation Method for locating user interface tags in a document processing system
US6426751B1 (en) * 1999-04-01 2002-07-30 Adobe Systems Incorporated Font feature file processing
US6539117B2 (en) * 1999-04-12 2003-03-25 Hewlett-Packard Company System and method for rendering image based data
US7305617B2 (en) * 2000-02-12 2007-12-04 Adobe Systems Incorporated Method for aligning text to baseline grids and to CJK character grids
WO2001059604A1 (en) * 2000-02-12 2001-08-16 Adobe Systems Incorporated Method for determining line leading in accordance with traditional japanese practices
US6993709B1 (en) 2000-02-12 2006-01-31 Adobe Systems Incorporated Smart corner move snapping
US7320104B2 (en) 2000-02-12 2008-01-15 Adobe Systems Incorporated Text grid creation tools
US7071941B2 (en) * 2000-02-12 2006-07-04 Adobe Systems Incorporated Method for calculating CJK emboxes in fonts
EP1162789A1 (de) * 2000-06-08 2001-12-12 Siemens Aktiengesellschaft Verfahren zur Verwaltung von Pfadinformationen und deren Änderungen in einem MPLS-Netzwerk
US7146347B1 (en) * 2000-08-03 2006-12-05 National Instruments Corporation System and method for automatically creating a prototype to perform a process
US6928611B2 (en) * 2000-09-25 2005-08-09 Adobe Systems Incorporated Setting text composition spacing amount
JP4101491B2 (ja) * 2000-09-25 2008-06-18 アドビ システムズ, インコーポレイテッド 合成フォント編集装置、合成フォント編集プログラム及びそれを記録した記録媒体
JP3795784B2 (ja) * 2000-09-25 2006-07-12 アドビ システムズ, インコーポレイテッド アイコン表示付き文字組空き量設定装置、文字組空き量設定プログラム及びそれを記録した記録媒体
US7296227B2 (en) 2001-02-12 2007-11-13 Adobe Systems Incorporated Determining line leading in accordance with traditional Japanese practices
FR2827409B1 (fr) * 2001-07-10 2004-10-15 France Telecom Procede de codage d'une image par ondelettes permettant une transmission adaptative de coefficients d'ondelettes, signal systeme et dispositifs correspondants
US7246321B2 (en) * 2001-07-13 2007-07-17 Anoto Ab Editing data
JP3695369B2 (ja) * 2001-08-07 2005-09-14 ソニー株式会社 情報配信システム及び情報配信方法、情報供給装置及び情報供給方法
US7167274B2 (en) * 2001-09-28 2007-01-23 Adobe Systems Incorporated Line leading from an arbitrary point
US20040205568A1 (en) 2002-03-01 2004-10-14 Breuel Thomas M. Method and system for document image layout deconstruction and redisplay system
US6903751B2 (en) * 2002-03-22 2005-06-07 Xerox Corporation System and method for editing electronic images
US7039862B2 (en) 2002-05-10 2006-05-02 Adobe Systems Incorporated Text spacing adjustment
US20040125107A1 (en) * 2002-12-26 2004-07-01 Mccully Nathaniel M. Coordinating grid tracking and mojikumi spacing of Japanese text
US7123261B2 (en) * 2002-12-26 2006-10-17 Adobe Systems Incorporated Coordinating grid tracking and mojikumi spacing of Japanese text
JP2005038263A (ja) * 2003-07-16 2005-02-10 Canon Inc 画像処理装置、画像処理方法、記録媒体及びプログラム
US20050050439A1 (en) * 2003-08-28 2005-03-03 Xerox Corporation Method to distribute a document to one or more recipients and document distributing apparatus arranged in accordance with the same method
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
US7606840B2 (en) 2004-06-15 2009-10-20 At&T Intellectual Property I, L.P. Version control in a distributed computing environment
US8559764B2 (en) * 2004-06-15 2013-10-15 At&T Intellectual Property I, L.P. Editing an image representation of a text
US7594171B2 (en) * 2004-10-01 2009-09-22 Adobe Systems Incorporated Rule-based text layout
JP4807999B2 (ja) * 2005-09-16 2011-11-02 株式会社リコー 画像表示装置、画像表示方法、画像形成装置、画像形成方法、および、それらの方法をコンピュータに実行させるプログラム
US8633930B2 (en) * 2007-03-26 2014-01-21 Apple Inc. Non-linear text flow
US7970213B1 (en) * 2007-05-21 2011-06-28 A9.Com, Inc. Method and system for improving the recognition of text in an image
US8229232B2 (en) * 2007-08-24 2012-07-24 CVISION Technologies, Inc. Computer vision-based methods for enhanced JBIG2 and generic bitonal compression
US8009928B1 (en) 2008-01-23 2011-08-30 A9.Com, Inc. Method and system for detecting and recognizing text in images
US8473467B2 (en) * 2009-01-02 2013-06-25 Apple Inc. Content profiling to dynamically configure content processing
US9734132B1 (en) * 2011-12-20 2017-08-15 Amazon Technologies, Inc. Alignment and reflow of displayed character images
KR102240279B1 (ko) * 2014-04-21 2021-04-14 삼성전자주식회사 컨텐트 처리 방법 및 그 전자 장치
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
CN111724455A (zh) * 2020-06-15 2020-09-29 维沃移动通信有限公司 图像处理方法及电子设备

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4408342A (en) * 1981-04-16 1983-10-04 Ncr Corporation Method for recognizing a machine encoded character
JPS5812064A (ja) * 1981-07-13 1983-01-24 Nec Corp 画像文字列編集装置
JPS5837779A (ja) * 1981-08-31 1983-03-05 Ricoh Co Ltd 文書処理装置
US4610025A (en) * 1984-06-22 1986-09-02 Champollion Incorporated Cryptographic analysis system
DE3523042A1 (de) * 1984-06-28 1986-01-02 Canon K.K., Tokio/Tokyo Bildverarbeitungssystem
JPH063608B2 (ja) * 1984-06-30 1994-01-12 株式会社東芝 文書画像編集装置
US4739477A (en) * 1984-08-30 1988-04-19 International Business Machines Corp. Implicit creation of a superblock data structure
DE3588084T2 (de) * 1984-11-14 1996-10-17 Canon Kk Bildverarbeitungssystem
JPS61272865A (ja) * 1985-05-28 1986-12-03 Sumitomo Electric Ind Ltd 文書入力編集方式
US5021973A (en) * 1986-01-16 1991-06-04 International Business Machines Corporation Method for assisting the operator of an interactive data processing system to enter data directly into a selected cell of a spreadsheet
US4974194A (en) * 1986-04-04 1990-11-27 International Business Machines Corporation Method for modifying intermingled text object and graphic object within an object set individually or correspondingly
EP0259957B1 (de) * 1986-07-15 1993-02-03 Brother Kogyo Kabushiki Kaisha Textverarbeitungsgerät
JPS63197266A (ja) * 1987-02-12 1988-08-16 Matsushita Electric Ind Co Ltd 文書イメ−ジ編集装置
JPH07104909B2 (ja) * 1987-03-04 1995-11-13 シャープ株式会社 文字認識方法
JPS63293682A (ja) * 1987-05-27 1988-11-30 Matsushita Electric Ind Co Ltd 文書イメ−ジ編集装置
US5022081A (en) * 1987-10-01 1991-06-04 Sharp Kabushiki Kaisha Information recognition system
EP0312235A3 (de) * 1987-10-13 1991-09-11 AT&T Corp. Graphischer Bildeditor
JPH01144171A (ja) * 1987-11-30 1989-06-06 Toshiba Corp 電子ファイリング装置
US4881130A (en) * 1987-12-07 1989-11-14 Ricoh Company, Ltd. Image editing system for an image recording apparatus with the capability of marking an edited image area in the form of a vector
JPH01183784A (ja) * 1988-01-19 1989-07-21 Toshiba Corp 文書画像処理装置
JPH01228066A (ja) * 1988-03-08 1989-09-12 Casio Comput Co Ltd イメージデータファイリング装置
US5224038A (en) * 1989-04-05 1993-06-29 Xerox Corporation Token editor architecture
US4914709A (en) * 1989-06-02 1990-04-03 Eastman Kodak Company Method for identifying unrecognizable characters in optical character recognition machines
US5167016A (en) * 1989-12-29 1992-11-24 Xerox Corporation Changing characters in an image

Also Published As

Publication number Publication date
JP2536966B2 (ja) 1996-09-25
EP0434930A3 (en) 1993-01-07
CA2027253C (en) 1997-12-16
DE69033079D1 (de) 1999-06-02
EP0434930B1 (de) 1999-04-28
US5548700A (en) 1996-08-20
EP0434930A2 (de) 1991-07-03
JPH06203138A (ja) 1994-07-22
CA2027253A1 (en) 1991-06-30

Similar Documents

Publication Publication Date Title
DE69033079T2 (de) Aufbereitung von Text in einem Bild
DE69033042T2 (de) Datenverarbeitung
DE69724755T2 (de) Auffinden von Titeln und Photos in abgetasteten Dokumentbildern
DE4311172C2 (de) Verfahren und Einrichtung zum Identifizieren eines Schrägenwinkels eines Vorlagenbildes
DE69517564T2 (de) Verfahren und Gerät zur Erzeugung einer hybriden Datenstruktur zur Anzeige eines Rasterbildes
DE69610243T2 (de) Verfahren zum Trainieren einer Erkennungsanlage mit Zeichenmustern
DE69226609T2 (de) Verfahren und Gerät zur Dokumentbildverarbeitung
DE3588084T2 (de) Bildverarbeitungssystem
DE69722971T2 (de) Automatisches sprachenerkennungssystem für die mehrsprachige optische zeichenerkennung
DE69432585T2 (de) Verfahren und Gerät zur Auswahl von Text und/oder Non-Text-Blöcken in einem gespeicherten Dokument
DE3926327C2 (de) Verfahren und System zum Erkennen von Zeichen auf einem Medium
DE60312572T2 (de) Verfahren und Gerät zum Konvertieren digitaler Bilder von Handzeichnungen zur weiteren Verwendung in einem strukturierten Text/Graphik Editor.
DE69519323T2 (de) System zur Seitensegmentierung und Zeichenerkennung
DE3689416T2 (de) Mustermerkmalextraktion.
DE69421117T2 (de) Gerät zur Bildinformationsverarbeitung und -wiedergabe
DE3586342T2 (de) Anlage fuer automatische auspassung und aufbereitung handgeschriebener textbilder.
DE3883578T2 (de) Verfahren und Gerät zur Erkennung von gedruckten Zeichen auf einem Beleg.
DE69619606T2 (de) Merkmalermittlungsanlage
DE69523970T2 (de) Dokumentspeicher- und Wiederauffindungssystem
DE69525401T2 (de) Verfahren und Gerät zur Identifikation von Wörtern, die in einem portablen elektronischen Dokument beschrieben sind
DE69132206T2 (de) Verfahren und Gerät zur Bildverarbeitung
DE69516751T2 (de) Bildvorverarbeitung für Zeichenerkennungsanlage
DE69232493T2 (de) Verfahren und Gerät zur Zeichenerkennung
DE69724557T2 (de) Dokumentenanalyse
DE3650554T2 (de) Speicherungs- und Wiederauffindungsverfahren für Bilddaten

Legal Events

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