DE69723220T2 - Gerät und Verfahren zur Extrahierung von Tabellengeraden innerhalb normaler Dokumentbilder - Google Patents

Gerät und Verfahren zur Extrahierung von Tabellengeraden innerhalb normaler Dokumentbilder Download PDF

Info

Publication number
DE69723220T2
DE69723220T2 DE69723220T DE69723220T DE69723220T2 DE 69723220 T2 DE69723220 T2 DE 69723220T2 DE 69723220 T DE69723220 T DE 69723220T DE 69723220 T DE69723220 T DE 69723220T DE 69723220 T2 DE69723220 T2 DE 69723220T2
Authority
DE
Germany
Prior art keywords
straight line
patterns
pattern
segment
extracting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69723220T
Other languages
English (en)
Other versions
DE69723220D1 (de
Inventor
Yutaka Nakahara-ku Katsuyama
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of DE69723220D1 publication Critical patent/DE69723220D1/de
Publication of DE69723220T2 publication Critical patent/DE69723220T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/155Removing patterns interfering with the pattern to be recognised, such as ruled lines or underlines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

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

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf ein Linien mit Teilung extrahierendes Gerät zum Extrahieren eines Abschnitts einer Linie mit Teilung aus einem beliebigen Dokumentbild, das durch einen photoelektrischen Wandler etc. gelesen wird, und ein Verfahren dafür.
  • Beschreibung der verwandten Technik
  • In den letzten Jahren hat der Bedarf an einem elektronischen Dateiorganisationssystem zugenommen, welches ein Papierdokument in eine elektronische Form umwandelt und es auf einer optischen Platte oder Bildplatte etc. speichert, um die Effizienz von innerhalb eines Unternehmens durchgeführten Operationen zu verbessern. Bei einem herkömmlichen elektronischen Dateiorganisationssystem wird ein Papierdokument durch einen photoelektrischen Wandler wie z. B. einen Bildscanner etc. in ein Bild umgewandelt, und das Bild wird mit einem angebrachten Suchschlüsselwort auf einer optischen Platte oder einer Festplatte gespeichert. Da das Schlüsselwort von einer Tastatur aus eingegeben werden muss, ist jedoch die Eingabeoperation lästig.
  • Als eine frühere Anmeldung durch den vorliegenden Anmelder, um diese lästige Operation zu überwinden, kann auf "Title Extracting Apparatus for Extracting Title from Document Image and Method Thereof, U.S. Patentanmeldung 08/694,503, die japanische Patentanmeldung H7-341983" verwiesen werden. Bei diesem Verfahren wird ein in einem Bild enthaltener Dokumenttitel automatisch extrahiert und als ein Schlüsselwort registriert. Zusätzlich kann eine Verwaltungsinformation wie z. B. ein Titel, Ziel bzw. Bestimmung, sendende Quelle etc. aus verschiedenen Dokumentbildern automatisch extrahiert werden, die ein Tabellenformatdokument enthalten. Zum Beispiel ist nachgewiesen, dass ein Titel außerhalb einer Tabelle mit einer Genauigkeit von ungefähr 90% extrahiert werden kann.
  • Ein Titel innerhalb einer Tabelle kann jedoch nur mit einer Genauigkeit von 55% extrahiert werden, was unzureichend ist, um in praktischen Gebrauch gebracht zu werden. Um ein Schlüsselwort wie z. B. einen Titel aus einem Inneren einer Tabelle mit hoher Genauigkeit zu extrahieren, müssen die Tabelle strukturierende Linien mit Teilung genau extrahiert werden. Die Technik zum Extrahieren einer Linie mit Teilung wurde hauptsächlich für ein Arbeitsblatt entwickelt, in welchem Zeichen etc. regelmäßig aufgereiht sind.
  • Als die herkömmlichen Techniken zum Extrahieren einer Linie mit Teilung kann auf "Image Extracting Method" (offengelegtes japanisches Patent H6-309498) und "Image Extracting Apparatus" (offengelegtes japanisches Patent H7-28937) verwiesen werden. Mit diesen Techniken kann ein Rahmen oder Frame in einem Arbeitsblatt extrahiert oder entfernt werden, ohne eine Eingabe einer Information wie z. B. einer Frame-Position etc. zu erfordern. Ein Arbeitsblatt, welches verarbeitet werden kann, ist ein Blatt, das aus Frames mit einem Zeichen, Block-Frames (horizontale einzeilige Frames oder Frames mit freiem Format) besteht, oder ein Blatt mit einer Struktur, in der die Gestalt eines Frame rechtwinklig ist und horizontale Frame-Linien regelmäßig angeordnet sind.
  • Als die Techniken zum Extrahieren einer Linie mit Teilung gemäß früheren Anmeldungen in Japan durch den vorliegenden Anmelder kann zusätzlich verwiesen werden auf "Frame Extracting Apparatus and Rectangle Extracting Apparatus" (japanische Patentanmeldung H7-203259), "Pattern Area Extracting Apparatus and Pattern Extracting Apparatus" (japanische Patentanmeldung H7-282171) und "Pattern Extracting Apparatus and Pattern Area Extracting Method" (japanische Patentanmeldung H8-107568).
  • Mit diesen Techniken kann ein Frame extrahiert/entfernt werden, selbst wenn der äußere Umfang von Frames rechtwinklig, wie in 1A gezeigt ist, oder nicht rechtwinklig ist, wie in 1B gezeigt ist. Das Frame einer Tabelle, die durch ein Rechteck strukturiert ist, welches von einem Frame umgeben ist, und in kleinere Abschnitte aufgeteilt ist, kann überdies extrahiert und entfernt werden wie der in 1B gezeigte schattierte Abschnitt. Im folgenden wird das Konzept dieses Prozesses geliefert.
    • (1) Verdünnen: Mit einem Maskenprozeß werden horizontale und vertikale Segmente dünner gemacht, und die Differenz zwischen der Dicke eines Zeichens und derjenigen eines Frame wird eliminiert.
    • (2) Segmentextraktion: Eine verhältnismäßig lange gerade Linie wird mit dem Adjazenzprojektionsverfahren gemäß dem "Image Extracting Method" (offengelegtes japanisches Patent H6-309498) extrahiert. Das Adjazenzprojektionsverfahren ist ein Verfahren zum Erkennen des Ergebnisses eines Addierens des Projektionswertes von Pixel, die in Reihen oder Spalten um eine spezifische Reihe oder Spalte enthalten sind, zu dem Projektionswert von Pixel in der spezifischen Reihe oder Spalte als den Endprojektionswert der spezifischen Reihe oder Spalte. Mit diesem Verfahren kann eine Pixelverteilung um eine bestimmte Reihe oder Spalte global identifiziert werden.
    • (3) Extraktion einer geraden Linie: Extrahierte Segmente werden sequentiell gesucht, und es wird untersucht, ob es einen leeren Raum einer vorbestimmten Länge zwischen Segmenten gibt oder nicht. Falls es keinen solchen leeren Raum gibt, werden die Segmente sequentiell verknüpft, so daß eine lange gerade Linie extrahiert wird.
    • (4) Integration einer geraden Linie: Extrahierte gerade Linien werden wieder integriert. Gerade Linien, die aufgrund einer Unschärfe in zwei oder mehr Abschnitte getrennt sind, werden in eine gerade Linie integriert.
    • (5) Verlängerung einer geraden Linie: Eine gerade Linie, die aufgrund einer Unschärfe verkürzt ist, wird verlängert und auf ihre Ursprungslänge wiederhergestellt, nur wenn ein Arbeitsblatt sich als regulär erweist.
  • Die oben beschriebenen Techniken weisen jedoch die folgenden Probleme auf.
  • Gemäß den in den früheren Anmeldungen offenbarten Techniken kann, ob die Gestalt eines Frame eines Arbeitsblatts regulär oder irregulär ist, es verarbeitet werden, solange es ein Tabellen-Frame ist, das aus rechtwinkligen Bereichen besteht. Ob eine Linie mit Teilung, auf die abgezielt werden soll, eine durchgezogene oder gestrichelte Linie ist, kann sie ungeachtet der Existenz einer Unschärfe verarbeitet werden. Überdies wird eine gerade Linie, die aufgrund einer extremen Unschärfe verkürzt ist, nur verlängert, wenn eine Tabelle sich als regulär erweist.
  • Ein normales Eingabebild enthält manchmal Zeichen eines dicken Schrifttyps oder einen schattierten Abschnitt in einer Tabelle, wie in 1C gezeigt ist. In einem solchen Fall wird eine Linie mit Teilung aus einer verunstalteten Zeichenkette fälschlicherweise extrahiert, in der Zeichen einander berühren, und Linien mit Teilung, die fälschlicherweise extrahiert werden, können manchmal mit korrekten Linien mit Teilung integriert werden.
  • Außerdem kann eine Linie mit Teilung, welche eine Gruppe schwarzer Pixel wie z. B. einen schattierten Abschnitt berührt, oder eine Linie mit Teilung, die ein Zeichen berührt, nicht extrahiert werden. Um diese Probleme zu überwinden, ist es wünschenswert, daß ein Tabellendokument wie z. B. ein Arbeitsblatt, dessen Struktur mit Linien mit Teilung vorher bekannt ist, ein Prozeßziel sein sollte.
  • Da jedoch vorher nicht bekannt ist, welchen Typ einer Tabelle ein von einer elektronischen Dateiorganisation verarbeitetes normales Dokument enthält, ist die Wahrscheinlichkeit hoch, daß verschiedene Bilder, die ein verunstaltetes Zeichen etc. enthalten, eingegeben werden. Demgemäß wird eine Linie mit Teilung gemäß den Techniken der früheren Anmeldungen, wie sie vorliegen, nicht notwendigerweise und korrekt extrahiert.
  • Saitoh et al.: "Document Image Segmentation and Layout Analysis"; IEICE Transcations on Information and Systems, Bd. E77-D, Nr. 7, 1. Juli 1994, Seiten 778–784, offenbart ein System zur Segmentierung eines Dokumentenbildes und Ordnen von Textbereichen, das imstande ist, schräge Bilder und nicht rechtwinklige Spalten zu verarbeiten. Komponenten (Verläufe eines verbundenen Textes) werden extrahiert, und innerhalb jeder Komponente werden horizontale und vertikale Linien mit Teilung extrahiert. Es sind jedoch keine Details des Prozesses zur Extraktion von Linien mit Teilung offenbart.
  • JP-A-5 233 873 offenbart ein Linien mit Teilung extrahierendes Gerät und ein Linien mit Teilung extrahierendes Verfahren gemäß dem Oberbegriff der jeweiligen unabhängigen Ansprüche.
  • Zusammenfassung der Erfindung
  • Eine Aufgabe der vorliegenden Erfindung ist, ein Linien mit Teilung extrahierendes Gerät und ein Verfahren dafür zu schaffen, welche erlauben, daß ein Abschnitt einer Linie mit Teilung aus einem normalen Dokumentenbild extrahiert wird, dessen Struktur mit Linien mit Teilung nicht vorhergesagt werden kann.
  • Gemäß einem ersten Gesichtspunkt der vorliegenden Erfindung wird ein Linien mit Teilung extrahierendes Gerät geschaffen, welches aufweist: ein Schätzmittel zum Schätzen einer Größe eines in einem Eingabebild enthaltenen Standardmusters; und ein gerade Linien extrahierendes Mittel zum Festlegen eines Schwellenwertes auf der Basis einer Information der Größe des Standardmusters und Extrahieren einer Information eines oder mehrerer gerader Linienmuster aus dem Eingabebild unter Verwendung des Schwellenwertes, dadurch gekennzeichnet, daß:
    das gerade Linien extrahierende Mittel die geraden Linienmuster extrahiert, indem unter Verwendung einer vorbestimmten Maske eine schräge Komponente aus dem Eingabebild ausgeschlossen wird, um ein Segmentmuster zu detektieren, indem ein oder mehr Segmentmuster in ein gerades Linienmuster integriert werden und ein unnötiges gerades Linienmuster gelöscht wird, um eine Linie mit Teilung unter den extrahierten ein oder mehr geraden Linienmustern zu extrahieren, von denen jedes einem oder mehreren integrierten Segmentmustern entspricht.
  • Ein Linien mit Teilung extrahierendes Gerät, das die vorliegende Erfindung verkörpert, umfaßt eine Schätzeinheit, eine Speichereinheit, eine Segmente extrahierende Einheit, eine Berechnungseinheit, eine gerade Linien extrahierende Einheit, eine Graphen erzeugende Einheit, eine gerade Linien verarbeitende Einheit, eine gerade Linien integrierende Einheit und eine gerade Linien löschende Einheit.
  • Die Schätzeinheit schätzt die Größe eines in einem Eingabebild enthaltenen Standardmusters; und die gerade Linien extrahierende Einheit legt basierend auf der Information über die Größe des Standardmusters einen Schwellenwert fest und extrahiert die Information eines oder mehrerer gerader Linienmuster aus dem Eingabebild unter Verwendung des Schwellenwertes.
  • Die Berechnungseinheit erhält einen repräsentativen Wert der Größen des einen oder der mehreren geraden Linienmuster, und die gerade Linien verarbeitende Einheit legt basierend auf dem repräsentativen Wert einen Schwellenwert fest und verarbeitet unter Verwendung des Schwellenwertes die Information des einen oder der mehreren geraden Linienmuster.
  • Alternativ dazu erhält die Berechnungseinheit einen repräsentativen Wert der Größen eines oder mehrerer Segmentmuster, die das eine gerade Linienmuster oder mehr strukturieren.
  • Die Segmente extrahierende Einheit extrahiert die Information eines oder mehrerer Segmentmuster aus einem Eingabebild; die Speichereinheit klassifiziert die Information eines oder mehrerer Segmentmuster in die Information eines großen Segmentmusters und die Information eines kleinen Segmentmusters und speichert sie; und die gerade Linien extrahierende Einheit untersucht einen Verknüpfungszustand des einen oder mehrerer Segmentmuster und extrahiert, wenn ein großes Segmentmuster mit kleinen Segmentmustern verknüpft ist, ein gerades Linienmuster, das aus den kleinen Segmentmustern besteht, ungeachtet der Größe des großen Segmentmusters.
  • Die gerade Linien integrierende Einheit integriert zwei gerade Linienmuster, die in dem einen oder den mehreren geraden Linienmustern enthalten sind, in eines, falls sie nahezu überlappen.
  • Danach extrahiert die gerade Linien extrahierende Einheit die Information eines oder mehrerer gerader Linienmuster aus einem Eingabebild, und die gerade Linien löschende Einheit bestimmt, ob eines der geraden Linienmuster zu löschen ist oder nicht, unter Verwendung der Information über die Gestalt eines Musters unter dem einen oder den mehreren geraden Linienmustern und/oder der Information über eine Distanz zwischen zwei geraden Linienmustern, die in einem oder mehreren geraden Linienmustern enthalten sind.
  • Zusätzlich bestimmt die gerade Linien löschende Einheit, ob irgendeines eines horizontalen geraden Linienmusters und eines vertikalen geraden Linienmusters zu löschen ist oder nicht, die in dem einen oder den mehreren geraden Linienmustern enthalten sind, basierend auf einer Verknüpfungsbeziehung zwischen diesen Mustern.
  • Die gerade Linien löschende Einheit löscht überdies ein kürzeres Muster von zwei geraden Linienmustern, welche nahezu überlappen und in dem einen oder den mehreren extrahierten geraden Linienmustern enthalten sind.
  • Die gerade Linien integrierende Einheit erkennt ein integriertes gerades Linienmuster als einen Kandidaten für eine Linie mit Teilung, wenn die Größe des geraden Linienmusters, das durch Integrieren von zwei geraden Linienmustern erzeugt wurde, die teilweise überlappen und in dem einen oder den mehreren extrahierten geraden Linienmustern enthalten sind, ungefähr ein vorbestimmter Wert wird.
  • Die gerade Linien löschende Einheit löscht ferner ein gerades Linienmuster, das aus Segmentmustern besteht, die größer als ein Schwellenwert sind, unter dem einen oder den mehreren extrahierten geraden Linienmustern.
  • Die Graphen erzeugende Einheit erhält eine Anzahl Pixel, die in einem Segmentmuster einer Standardgröße unter einem oder mehreren Segmentmustern enthalten sind, die das gerade Linienmuster strukturieren, und erzeugt einen Graphen, der die Anzahl Pixel um das extrahierte gerade Linienmuster repräsentiert, und die gerade Linien löschende Einheit bestimmt auf der Basis der Gestalt des Graphen, ob das gerade Linienmuster zu löschen ist oder nicht.
  • Gemäß zweiten und dritten Gesichtspunkten der vorliegenden Erfindung werden ein computerlesbares Speichermedium und ein Verfahren zur Extraktion von Linien mit Teilung wie in den entsprechenden unabhängigen Ansprüchen definiert geschaffen.
  • Kurze Beschreibung der Zeichnungen
  • 1A zeigt ein einfaches Tabellen-Frame;
  • 1B zeigt ein kompliziertes Tabellen-Frame;
  • 1C zeigt ein Tabellen-Frame, aus dem eine Linie mit Teilung schwierig zu extrahieren ist;
  • 2A ist ein Blockdiagramm, das das Prinzip eines Linien mit Teilung extrahierenden Geräts gemäß der vorliegenden Erfindung zeigt;
  • 2B ist ein Funktionsblockdiagramm, das das Linien mit Teilung extrahierende Gerät zeigt;
  • 3 ist ein Blockdiagramm, das die Konfiguration einer Informationsverarbeitungsvorrichtung zeigt;
  • 4 zeigt die Struktur von Daten;
  • 5 ist ein schematisches Diagramm, das einen Markier- oder Etikettierprozeß zeigt;
  • 6 zeigt ein Histogramm von Höhen;
  • 7 zeigt ein Histogramm, um den häufigsten Wert einer Höhe zu erhalten;
  • 8 zeigt eine Tabelle von Rechteckhöhen;
  • 9 zeigt ein Histogramm, das den Inhalten der Tabelle von Rechteckhöhen entspricht;
  • 10 ist ein schematisches Diagramm, das einen Maskenprozeß zeigt;
  • 11 ist ein schematisches Diagramm, das ein Segmentdetektionsprozeß zeigt;
  • 12 ist ein schematisches Diagramm, das einen ersten Segmentintegrationsprozeß zeigt;
  • 13 ist ein schematisches Diagramm, das einen zweiten Segmentintegrationsprozeß zeigt;
  • 14 ist ein schematisches Diagramm, das einen Suchprozeß für gerade Linien zeigt;
  • 15 ist ein schematisches Diagramm, das einen Prozeß zum Integrieren gerader Linien zeigt, welche vollständig überlappen;
  • 16 ist ein schematisches Diagramm, das einen ersten Prozeß zur Löschung gerader Linien zeigt;
  • 17 ist ein schematisches Diagramm, das einen zweiten Prozeß zur Löschung gerader Linien zeigt;
  • 18 ist ein schematisches Diagramm, das eine gerade Linie zeigt, die nicht gelöscht werden darf;
  • 19 ist ein schematisches Diagramm, das einen dritten Prozeß zur Löschung gerader Linien zeigt;
  • 20 zeigt einen Prozeß zum Integrieren gerader Linien, die teilweise überlappen;
  • 21 ist ein schematisches Diagramm, das das Innere gerader Linien zeigt, die teilweise überlappen;
  • 22 ist ein schematisches Diagramm, das einen vierten Prozeß zur Löschung gerader Linien zeigt;
  • 23 ist ein schematisches Diagramm, das zeigt, wie der Wert einer Distanz zwischen zwei geraden Linien zu erhalten ist;
  • 24 ist ein schematisches Diagramm, das einen fünften Prozeß zur Löschung gerader Linien zeigt;
  • 25 ist ein schematisches Diagramm, das ein Bild zeigt, nachdem der Prozeß zum Integrieren horizontaler Segmente durchgeführt ist;
  • 26 ist ein schematisches Diagramm, das ein Bild zeigt, bevor ein Prozeß zum Integrieren gerader Linien, die vollständig überlappen, durchgeführt wird;
  • 27 ist ein schematisches Diagramm, das ein Bild zeigt, nachdem der Prozeß zum Integrieren gerader Linien, die vollständig überlappen, durchgeführt ist;
  • 28 ist ein schematisches Diagramm, das ein Bild zeigt, nachdem der Löschungsprozeß basierend auf der Gestalt und Position einer geraden Linie und einer Verknüpfungsbeziehung zwischen vertikalen und horizontalen geraden Linien durchgeführt ist;
  • 29 zeigt ein Bild, bevor der Prozeß zum Integrieren gerader Linien, welche teilweise überlappen, durchgeführt wird;
  • 30 zeigt ein Bild, nachdem der Prozeß zum Integrieren gerader Linien, welche teilweise überlappen, durchgeführt ist;
  • 31 zeigt ein Bild, bevor ein Prozeß zum Löschen einer geraden Linie, welche nahezu vollständig überlappt, durchgeführt wird;
  • 32 zeigt ein Bild, nachdem der Prozeß zum Löschen einer geraden Linie, die nahezu vollständig überlappt, durchgeführt ist;
  • 33 zeigt ein Bild, bevor der Prozeß zum Löschen einer aus nur großen Segmenten bestehenden geraden Linie durchgeführt wird;
  • 34 zeigt ein Bild, nachdem der Prozeß zum Löschen einer aus nur großen Segmenten bestehenden geraden Linien durchgeführt ist;
  • 35 zeigt ein Bild, bevor ein Prozeß zum Prüfen/Löschen einer geraden Linie unter Verwendung einer Segmentverschiebung durchgeführt wird;
  • 36 zeigt ein Bild, nachdem der Prozeß zum Prüfen/Löschen einer geraden Linie unter Verwendung der Segmentverschiebung durchgeführt ist;
  • 37 ist ein Flußdiagramm 1, das den Prozeß zum Integrieren von Segmenten zeigt;
  • 38 ist ein Flußdiagramm 2, das den Prozeß zum Integrieren von Segmenten zeigt;
  • 39 ist ein Flußdiagramm 3, das den Prozeß zum Integrieren von Segmenten zeigt;
  • 40 ist ein Flußdiagramm 4, das den Prozeß zum Integrieren von Segmenten zeigt;
  • 41 ist ein Flußdiagramm 5, das den Prozeß zum Integrieren von Segmenten zeigt;
  • 42 ist ein Flußdiagramm 1, das den Prozeß zum Prüfen/Löschen einer geraden Linie zeigt;
  • 43 ist ein Flußdiagramm 2, das den Prozeß zum Prüfen/Löschen einer geraden Linie zeigt;
  • 44 ist ein Flußdiagramm 3, das den Prozeß zum Prüfen/Löschen einer geraden Linie zeigt;
  • 45 ist ein Flußdiagramm 4, das den Prozeß zum Prüfen/Löschen einer geraden Linie zeigt;
  • 46 ist ein Flußdiagramm 5, das den Prozeß zum Prüfen/Löschen einer geraden Linie zeigt; und
  • 47 ist ein Flußdiagramm 6, das den Prozeß zum Prüfen/Löschen einer geraden Linie zeigt.
  • Beschreibung der bevorzugten Ausführungsform
  • Im folgenden werden die Einzelheiten der bevorzugten Ausführungsform gemäß der vorliegenden Erfindung unter Bezugnahme auf die Zeichnungen erläutert.
  • 2A ist ein Blockdiagramm, das das Prinzip eines Linien mit Teilung extrahierenden Geräts gemäß der vorliegenden Erfindung darstellt. Das Linien mit Teilung extrahierende Gerät, das in 2A dargestellt ist, schließt die erste, zweite, dritte, vierte, fünfte, sechste Ausführungsform ein und umfaßt eine Schätreinheit 1, eine Speichereinheit 2, eine Segmente extrahierende Einheit 3, eine Berechnungseinheit 4, eine gerade Linien extrahierende Einheit 5, eine Graphen erzeugende Einheit 6, eine gerade Linien verarbeitende Einheit 7, eine gerade Linien integrierende Einheit 8 und eine gerade Linien löschende Einheit 9.
  • Gemäß der ersten Ausführungsform schätzt die Schätreinheit 1 die Größe eines in einem Eingabebild enthaltenen Standardmusters. Die gerade Linien extrahierende Einheit 5 legt einen Schwellenwert basierend auf der Information über die Größe des Standardmusters fest und extrahiert die Information eines oder mehrerer gerader Linienmuster aus dem Eingabebild unter Verwendung des Schwellenwertes.
  • Das Standardmuster entspricht einem Muster eines Zeichens oder dergleichen einer Standardgröße, welche in einem Eingabebild am häufigsten erscheint. Ein ein Zeichen repräsentierender Pixelverkettungsbereich wird als Standardmuster verwendet. Zum Beispiel wird die Höhe oder die Breite eines um diesen Bereich umschriebenen Rechtecks als die Größeninformation genutzt.
  • Ein gerades Linienmuster entspricht einem horizontal oder vertikal langen Muster, das durch einen Maskenprozeß unter Verwendung einer horizontal oder vertikal langen Maske und einen Segmentintegrationsprozeß aus einem Eingabebild extrahiert wurde. Die Information eines geraden Linienmusters enthält zum Beispiel Koordinatenwerte eines Rechtecks, welches mehrere Segmentmuster umschreibt, die das gerade Linienmuster strukturieren. Das Segmentmuster entspricht einem Pixelbereich in einer Segmentgestalt, die durch den Maskenprozeß aus einem Bild extrahiert wird.
  • Die gerade Linien extrahierende Einheit 5 bestimmt jeden von Schwellenwerten basierend auf der Größe des Standardmusters und klassifiziert gerade Linienmuster in einem Bild basierend auf den Schwellenwerten. Bei diesem Prozeß wird ein gerades Linienmuster, das sich von einem schattierten Abschnitt oder einem Zeichen ableitet, welches ein anderes Zeichen etc. berührt, aus Kandidaten für Linien mit Teilung ausgeschlossen, und ein korrekter Kandidat für eine Linie mit Teilung kann extrahiert werden.
  • Gemäß der zweiten Ausführungsform extrahiert die gerade Linien extrahierende Einheit 5 die Information eines oder mehrerer gerader Linienmuster aus einem Eingabebild; erhält die Berechnungseinheit 4 den repräsentativen Wert der Größen des einen oder mehrerer gerader Linienmuster. Die gerade Linien verarbeitende Einheit 7 legt basierend auf dem repräsentativen Wert einen Schwellenwert fest und verarbeitet die Information des einen oder mehrerer gerader Linienmuster unter Verwendung des Schwellenwertes.
  • Die Berechnungseinheit 4 erhält die repräsentative Größe gerader Linienmuster zum Beispiel basierend auf einem Histogramm von Höhen oder Breiten mehrerer gerader Linienmuster. Die gerade Linien verarbeitende Einheit 7 führt solche Operationen durch wie Festlegen eines Schwellenwertes nahe dem repräsentativen Wert und Ausschließen eines geraden Linienmusters, dessen Größe größer als der Schwellenwert ist etc., dadurch einen korrekten Kandidaten für eine Linie mit Teilung extrahierend.
  • Gemäß der dritten Ausführungsform extrahiert die gerade Linien extrahierende Einheit 5 die Information eines oder mehrerer gerader Linienmuster aus einem Eingabebild. Die Berechnungseinheit 4 erhält den repräsentativen Wert der Größen eines oder mehrerer Segmentmuster, die ein oder mehrere gerade Linienmuster strukturieren. Die gerade Linien verarbeitende Einheit 7 legt basierend auf dem repräsentativen Wert einen Schwellenwert fest und verarbeitet die Information des einen oder der mehreren geraden Linienmuster unter Verwendung des Schwellenwertes.
  • Ein Segmentmuster entspricht einem Pixelbereich in einer Segmentgestalt, welche durch den Maskenprozeß wie oben beschrieben aus einem Bild extrahiert wird. Die Berechnungseinheit 4 erhält die repräsentative Größe von Segmentmustern zum Beispiel basierend auf einem Histogramm der Höhen oder Breiten mehrerer Segmentmuster. Die gerade Linien verarbeitende Einheit 7 kann einen korrekten Kandidaten für eine Linie mit Teilung extrahieren durch Durchführen der Operationen wie zum Beispiel Ausschließen eines geraden Linienmusters, das nur aus Segmentmustern besteht, deren Größen größer als der Schwellenwert sind, basierend auf dem repräsentativen Wert.
  • Gemäß der vierten Ausführungsform extrahiert die Segmente extrahierende Einheit 3 die Information eines oder mehrerer Segmentmuster aus einem Eingabebild. Die Speichereinheit 2 klassifiziert die Information eines oder mehrerer Segmentmuster in die Information eines großen Segmentmusters und die Information eines kleinen Segmentmusters und speichert sie. Die gerade Linien extrahierende Einheit 5 untersucht einen Verknüpfungszustand des einen oder mehrerer Segmentmuster und extrahiert, wenn ein großes Segmentmuster mit kleinen Segmentmustern verknüpft ist, ein aus den kleinen Segmentmustern bestehendes gerades Linienmuster ungeachtet der Größe des großen Segmentmusters.
  • Die Information eines Segmentmusters schließt zum Beispiel die Koordinatenwerte eines Rechtecks ein, das ein Segmentmuster umschreibt etc.
  • Die Speichereinheit 2 bringt zum Beispiel eine bestimmte Attributinformation an der Information eines Segmentmusters an, dessen Größe größer als ein geeigneter Schwellenwert ist, nimmt eine Unterscheidung zwischen der Information des großen Segmentmusters und der Information eines kleinen Segmentmusters vor und speichert die Ergebnisse. Die gerade Linien extrahierende Einheit 5 ignoriert ein großes Segmentmuster und verknüpft geeigneterweise kleine Segmentmuster auf beiden Seiten des großen Segmentmusters, wenn sie zum Beispiel mehrere Segmentmuster integriert, welche überlappen, und extrahiert ein Rechteck, welches die Muster umschreibt, als ein gerades Linienmuster.
  • Mit diesem Prozeß kann aus einem Bild, das eine Linie mit Teilung enthält, welche einen großen Pixelbereich wie zum Beispiel einen schattierten Abschnitt, ein Zeichen etc. berührt, ein Muster gerader Linien oder gerades Linienmuster, das durch die Größe dieses Bereichs nicht beeinflußt wird, als ein korrekter Kandidat für eine Linie mit Teilung extrahiert werden.
  • Gemäß der fünften Ausführungsform extrahiert die gerade Linien extrahierende Einheit 5 aus einem Eingabebild die Information eines oder mehrerer gerader Linienmuster. Die gerade Linien löschende Einheit 9 löscht ein gerades Linienmuster, das aus Segmentmustern besteht, deren Größen größer als ein Schwellenwert sind, unter dem einen oder den mehreren geraden Linienmustern.
  • Die gerade Linien löschende Einheit 9 schließt zum Beispiel ein gerades Linienmuster, das aus nur Segmentmustern besteht, deren Dicken viel größer als die repräsentative Dicke von Segmentmustern sind, aus Kandidaten für eine Linie mit Teilung aus. Bei diesem Prozeß wird aus Kandidaten für Linien mit Teilung ein gerades Linienmuster ausgeschlossen, das aus einer verunstalteten Zeichenkette etc. abgeleitet wird, dadurch einen korrekten Kandidaten für eine Linie mit Teilung extrahierend.
  • Gemäß der sechsten Ausführungsform extrahiert die gerade Linien extrahierende Einheit 5 die Information eines geraden Linienmusters aus einem Eingabebild. Die Graphen erzeugende Einheit 6 erhält die Anzahl Pixel, die in ei nem Segmentmuster einer Standardgröße unter einem oder mehreren Segmentmustern enthalten sind, die das gerade Linienmuster strukturieren, und erzeugt einen Graphen, der die Anzahl Pixel in der Umgebung des geraden Linienmusters repräsentiert. Die gerade Linien löschende Einheit 9 bestimmt basierend auf der Gestalt des Graphen, ob das gerade Linienmuster zu löschen ist oder nicht.
  • Die Graphen erzeugende Einheit 6 erzeugt z. B. einen Satz Segmentmuster einer Standardgröße, indem ein großes Segmentmuster aus einem Satz Segmentmuster ausgeschlossen wird, die ein gerades Linienmuster strukturieren. Die Graphen erzeugende Einheit 6 verschiebt ihn dann zu dem Bereich um das gerade Linienmuster und erzeugt einen Graphen, der die Beziehung zwischen dem Verschiebungsbetrag und der Anzahl Pixel repräsentiert. Falls die Gestalt des Graphen glatt und der Maximalwert unklar ist, löscht überdies die gerade Linien löschende Einheit 9 das gerade Linienmuster aus den Kandidaten für Linien mit Teilung.
  • Für ein aus dem Inneren eines schattierten Abschnitts oder einer verunstalteten Zeichenkette extrahiertes gerades Linienmuster existieren oft Pixel überall um das gerade Linienmuster. In solch einem Fall wird die Gestalt des Graphen glatt, und das gerade Linienmuster wird aus Kandidaten für Linien mit Teilung ausgeschlossen. Als Folge kann ein korrekter Kandidat für eine Linie mit Teilung extrahiert werden.
  • Die in 2A gezeigte Speichereinheit 2 entspricht zum Beispiel einem in 3 gezeigten Speicher 32, der später beschrieben werden soll. Die Schätzeinheit 1, die Segmente extrahierende Einheit 3, die Berechnungseinheit 4, die gerade Linien extrahierende Einheit 5, die Graphen erzeugende Einheit 6, die gerade Linien verarbeitende Einheit 7, die gerade Linien integrierende Einheit 8 und die gerade Linien löschende Einheit 9 entsprechen einer CPU (zentrale Verarbeitungseinheit) 31 und dem Speicher 32.
  • Gegenwärtig wurde ein Formen lernendes System eines Dokuments im Tabellenformat entwickelt, um ein Schlüsselwort wie z. B. einen Titel aus einer Tabelle etc. mit hoher Genauigkeit automatisch zu extrahieren. Bei diesem System wird ein eine Tabelle enthaltendes Dokument vorher registriert, und danach wird aus dem registrierten Dokument ein korrektes Schlüsselwort mit ho her Genauigkeit extrahiert. Die vorliegende Erfindung kann verwendet werden, um eine Linie mit Teilung aus einem Dokumentenbild korrekt zu extrahieren, wenn die Form eines Dokuments im Tabellenformat gelernt ist.
  • Die vorliegende Erfindung, welche die Technik zum Extrahieren einer Linie mit Teilung in einem Arbeitsblatt gemäß der herkömmlichen Technik oder den herkömmlichen Techniken in früheren Anmeldungen verbessert, trifft eine Unterscheidung zwischen einer aus einer ursprünglichen Linie mit Teilung extrahierten geraden Linie und einer geraden Linie, die aus einer Zeichenkette fälschlicherweise extrahiert wurde, indem die Information kleiner Segmente vollständig ausgenutzt wird, die eine Linie mit Teilung strukturieren. Als Folge kann eine Linie mit Teilung korrekt extrahiert werden, selbst wenn ein Zeichen eine Linie mit Teilung berührt.
  • Selbst wenn es ein Segment gibt, das aus einem verunstalteten Abschnitt einer Tabelle extrahiert wurde, werden überdies Kandidaten für Linien mit Teilung erhalten, indem nur auf Segmente abgezielt wird, die aus einer ursprünglichen Linie mit Teilung extrahiert wurden. Eine korrekte Linie mit Teilung wird dann basierend auf der Gestalt und Positionsbeziehung einer Linie mit Teilung und dem Verteilungszustand schwarzer Pixel in einem Segment der Linie mit Teilung extrahiert.
  • Die folgende Ausführungsform zielt auf ein Dokument, in welchem verschiedene Zeichen wie z. B. ein ein Frame berührendes Zeichen oder ein Zeichen über ein Frame hinaus existieren, wenn es ein oder mehrere Frames wie z. B. ein Frame gibt, dessen Größe, Position oder Neigung unbekannt ist. Es soll nun der Fall betrachten, in welchem ein Frame aus solch einem Dokumentenbild extrahiert wird.
  • 2B ist ein Funktionsblockdiagramm, das ein Linien mit Teilung extrahierendes Gerät gemäß dieser Ausführungsform zeigt. In dieser Figur ist ein Eingabemuster 11, auf das abgezielt werden soll, ein Binärbild, in welchem eine extreme Neigung oder eine Rotation korrigiert werden. Die schattierten Prozeßblöcke geben die Prozesse an, die von denjenigen gemäß den früheren Anmeldungen überwiegend verschieden sind, einschließlich der Anmeldung "Pattern Extracting Apparatus and Pattern Region Extracting Method" (japanische Patentanmeldung H8-107568), etc.
  • Nachdem eine Reduzierungsverarbeitungseinheit 12 ein Bild reduziert und eine Verkettungsmuster extrahierende Einheit 13 ein Verkettungsmuster extrahiert, berechnet das Linien mit Teilung extrahierende Gerät den häufigsten Wert einer Höhe von Rechtecken (Prozeß P1), und eine Maskenverarbeitungseinheit 14 führt Verdünnungsoperationen durch.
  • Danach führt eine horizontale gerade Linien extrahierende Einheit 15 eine horizontale Adjazenzprojektion (Prozeß P2), eine horizontale Segmentdetektion (Prozeß P3), eine horizontale Segmentintegration (Prozeß P4) und eine Suche nach einer horizontalen geraden Linie (Prozeß P5) durch. Als nächstes führt das Linien mit Teilung extrahierende Gerät eine Detektion einer horizontalen gepunkteten Linie durch (Schritt P6). Nachdem eine vertikale gerade Linien extrahierende Einheit 16 eine vertikale Adjazenzprojektion (Prozeß P7), eine vertikale Segmentdetektion (Prozeß P8), eine vertikale Segmentintegration (Prozeß P9) und eine Suche nach einer vertikalen geraden Linie (Prozeß P10) durchführt, führt das Linien mit Teilung extrahierende Gerät eine Detektion einer vertikalen gepunkteten Linie (Prozeß P11) durch.
  • Als nächstes berechnet das Linien mit Teilung extrahierende Gerät den häufigsten Wert einer Höhe horizontaler gerader Linien (Prozeß P12), berechnet den häufigsten Wert einer Breite vertikaler gerader Linien (Prozeß P13), berechnet den häufigsten Wert einer Höhe horizontaler Segmente (Prozeß P14) und berechnet den häufigsten Wert einer Breite vertikaler Segmente (Prozeß P15). Das Gerät integriert dann gerade Linien, welche vollständig überlappen (Prozeß P16), und löscht eine unnötige gerade Linie basierend auf der Gestalt eines geradlinigen Rechtecks und der Distanz zum nächsten geradlinigen Rechteck (Prozeß P17). Als nächstes löscht das Gerät eine unnötige gerade Linie basierend auf der Verknüpfungsbeziehung zwischen vertikalen und horizontalen geraden Linien (Prozeß P18) und integriert gerade Linien, welche teilweise überlappen (Prozeß P19).
  • Das gerade Linien extrahierende Gerät schließt eine gerade Linie aus, die nahezu vollständig mit anderen überlappt (Prozeß P20) und löscht eine gerade Linie, die aus nur Segmenten besteht, deren Größen größer als ein vorbestimmter Schwellenwert sind (Prozeß P21). Das Gerät bringt eine Markierung an einem Segment an, dessen Größe größer als der Schwellenwert ist (Prozeß P22), prüft eine gerade Linie, während ein Segment, auf das abgezielt werden soll, verschoben wird und löscht eine unnötige gerade Linie (Prozeß P23) und gibt die verbleibenden geraden Linien aus (Prozeß P24).
  • Das gerade Linien extrahierende Gerät gemäß dieser Ausführungsform wird durch zum Beispiel eine Informationsverarbeitungsvorrichtung (Computer) implementiert, die in 3 dargestellt ist. Die in 3 dargestellte Informationsverarbeitungsvorrichtung umfaßt eine CPU 31, einen Speicher 32, eine Eingabevorrichtung 33, eine Ausgabevorrichtung 34, eine externe Speichervorrichtung 35, eine Medienantriebsvorrichtung 36, eine Netzwerkverbindungsvorrichtung 37 und einen photoelektrischen Wandler 38, die alle über einen Bus 39 miteinander verbunden sind.
  • Die CPU 31 führt ein im Speicher 32 gespeichertes Programm aus und führt jeden der in 28 gezeigten Prozesse durch. Als der Speicher 32 werden zum Beispiel ein ROM (Nurlesespeicher), RAM (Direktzugriffsspeicher) etc. verwendet.
  • Die Eingabevorrichtung 32 entspricht zum Beispiel einer Tastatur, einer Zeigervorrichtung etc. und wird verwendet, um eine Anforderung oder Anweisung von einem Nutzer einzugeben. Die Ausgabevorrichtung 34 entspricht einer Anzeigevorrichtung, einem Drucker etc. und wird verwendet, um das Ergebnis eines Prozesses etc. auszugeben.
  • Die externe Speichervorrichtung 35 ist zum Beispiel eine Magnetplattenvorrichtung, eine Bildplattenvorrichtung oder eine magnetooptische Plattenvorrichtung etc. und kann ein Programm und Daten speichern. Sie wird als eine Datenbank eines elektronischen Dateiorganisationssystems genutzt, welches zum Speichern von Bildern, Schlüsselworten etc. bestimmt ist.
  • Die Medienantriebsvorrichtung 36 treibt ein tragbares Speichermedium 40 an und kann auf dessen gespeicherte Inhalte zugreifen. Als das tragbare Speichermedium kann ein beliebiges computerlesbares Speichermedium wie z. B. eine Speicherkarte, eine Diskette, ein CD-ROM (Compaktdisk-Nurlesespeicher), eine optische Platte oder Bildplatte, eine magnetooptische Platte etc. verwendet werden. Das tragbare Speichermedium 40 speichert zusätzlich zu Daten das Programm zum Durchführen der in 2B dargestellten Prozesse.
  • Die Netzwerkverbindungsvorrichtung 37 ist mit einem beliebigen Datenübertragungsnetzwerk wie z. B. einem LAN (Lokalbereichsnetz) etc. verbunden und führt eine Datenumwandlung etc. durch, die eine Datenübertragung oder Kommunikation begleitet. Das Linien mit Teilung extrahierende Gerät kann erforderliche Daten oder ein Programm von einer externen Datenbank etc. über die Netzwerkverbindungsvorrichtung 37 empfangen. Der photoelektrische Wandler 38 ist zum Beispiel ein Bildscanner und dazu bestimmt, ein zu verarbeitendes normales Dokumentenbild einzugeben.
  • Im Speicher 32 werden für die Prozesse erforderliche Daten zum Beispiel wie die in 4 gezeigte Struktur verwaltet. In dieser Figur besteht eine Information 41 eines Eingabebildes aus der Anzahl Tabellen (Tabellenformat-Frames), die in einem Bild enthalten sind, und einer Information 42 jeder Tabelle.
  • Die Information 42 jeder Tabelle besteht aus den Koordinatenwerten eines umschriebenen Rechtecks einer Tabelle, der Anzahl Zellen, die in der Tabelle enthalten sind, einer Information 43 jeder Zelle, der Anzahl horizontaler gerader Linien, die in der Tabelle enthalten sind, einer Information 44 jeder horizontalen geraden Linie, der Anzahl vertikaler gerader Linien, die in der Tabelle enthalten sind, und einer Information 44 jeder vertikalen geraden Linie. Eine Zelle gibt hier einen durch Linien mit Teilung umgebenen Bereich an.
  • Die Information 43 jeder Zelle enthält Koordinatenwerte einer Zelle, und die Information 44 jeder geraden Linie besteht aus den Koordinatenwerten eines eine gerade Linie repräsentierenden Rechtecks, der Attributinformation der geraden Linie, der Anzahl kleiner Segmente, die in der geraden Linie enthalten sind, einer Information 45 jedes kleinen Segments und einer Seriennummer der geraden Linie in dem gesamten Bild. Die Information 45 jedes kleinen Segments enthält die Attributinformation eines kleinen Segments und die Koordinatenwerte eines Rechtecks, das das kleine Segment repräsentiert. Die Attributinformation einer geraden Linie und ein kleines Segment werden verwendet, um eine Unterscheidung zum Beispiel zwischen einer durchgezogenen Linie und einer gepunkteten oder gestrichelten Linie und zwischen einem Wildcard- oder Stellvertreter-Segment, dessen Höhe oder Breite einen vorbestimmten Wert übersteigt, und einem anderen Segment zu treffen.
  • Als nächstes wird die Erläuterung jedes der in 2B gezeigten Prozesse geliefert, indem auf 5 bis 24 verwiesen wird.
  • Falls die Auflösung eines Bildes des Eingabemusters 11 eine vorbestimmte Auflösung oder größer ist und die Größe des Bildes verhältnismäßig groß ist, führt die Reduzierungsprozeßeinheit 12 einen Prozeß zum Reduzieren eiens Bildes durch, um die Effizienz des Prozesses zu verbessern. Das eingegebene Ursprungsbild wird unverändert gespeichert.
  • Die Verkettungsmuster extrahierende Einheit 13 extrahiert einen Verkettungsbereich schwarzer Pixel, in welchem Pixel in 8 Richtungen verkettet sind, als ein partielles Muster mit einem Etikettierprozeß, um jedes Muster stabil abzutasten, ohne von der relativen Beziehung zwischen den Positionen abhängig zu sein, an denen mehrere Tabellen angeordnet sind. Die Verkettungsmuster extrahierende Einheit 13 extrahiert dann ein Tabellenmuster, das in einem Bild enthalten ist, indem das partielle Muster untersucht wird.
  • Da die Größe des mit dem Etikettierprozeß erhaltenen partiellen Musters später benötigt wird, berechnet die Verkettungsmuster extrahierende Einheit 13 die Koordinatenwerte der Vertices des umschriebenen Rechtecks, welches das partielle Muster approximiert, während der Etikettierprozeß durchgeführt wird. Die Verkettungsmuster extrahierende Einheit 13 extrahiert dann ein Muster, dessen Größe vorbestimmt oder größer ist, unter extrahierten partiellen Mustern als einen Kandidaten einer Tabelle.
  • Wenn ein großes Verkettungsmuster extrahiert wird, wird zur gleichen Zeit auch ein Muster innerhalb des großen Verkettungsmusters extrahiert, dessen Größe vorbestimmt oder größer ist, und diese großen und kleinen Muster werden als die Muster mit dem gleichen Etikett gehandhabt. Falls ein Muster, welches ursprünglich eine Tabelle repräsentiert, aufgrund einer Unschärfe in zwei oder mehr Muster getrennt ist, können die separaten Muster als Muster verarbeitet werden, die zu einem identischen Etiket gehören. Nun werden wir die zulässige Länge einer Unschärfe basierend auf der Größe eines Musters berechnen, auf das abgezielt werden soll.
  • 5 veranschaulicht den oben beschriebenen Etikettierprozeß. In einem Bild auf der linken Seite von 5 extrahiert zuerst die Verkettungsmuster extrahierende Einheit 13 ein Muster 51 mit dem größten umschriebenen Rechteck und bringt ein Etikett an ihm an. Da die Breite eines horizontalen Linienmusters 56 zwischen Mustern 52 und 57 ein vorbestimmter Wert oder mehr ist, erkennt die Verkettungsmuster extrahierende Einheit 13 das horizontale Linienmuster 56 als einen Abschnitt des großen Musters 51 und handhabt im folgenden Prozeß diese Muster als die Muster mit dem gleichen Etikett, wie auf der rechten Seite von 5 gezeigt ist. Demgemäß wird das Muster 56 mit dem gleichen Etikett wie dem des Musters 51 angebracht.
  • Als nächstes erhält das Linien mit Teilung extrahierende Gerät das Histogramm, das die Häufigkeitsverteilung von Höhen von Rechtecken repräsentiert, die durch die Verkettungsmuster extrahierende Einheit 13 extrahiert wurden, unter Verwendung des Verfahrens gemäß der früheren Anmeldung 08/694,503 im Prozeß P1. Das Gerät erhält dann den häufigsten Wert "most_freq_height" und schätzt ihn als die Standardgröße von Zeichen, die in einem Dokument enthalten sind. Der erhaltene häufigste Wert wird verwendet, um in den folgenden Prozessen verschiedene Arten von Schwellenwerten festrulegen. Der Prozeß zum Berechnen des häufigsten Wertes wird wie folgt durchgeführt.
  • Zunächst wird aus einem Satz umschriebener Rechtecke, die aus dem Etikettierprozeß resultieren, in 6 dargestelltes Histogramm von Rechteckhöhen erzeugt. In 6 gibt die horizontale Achse die Höhe jedes umschriebenen Rechtecks an, während die vertikale Achse die Anzahl Rechtecke mit dieser Höhe (Häufigkeitswert) angibt. Die Höhe eines umschriebenen Rechtecks wird hier durch Verwenden der Höhe eines Pixels als die Höheneinheit erhalten.
  • Als nächstes wird die Korrespondenz zwischen dem Häufigkeitswert und der maximalen Höhe unter den Rechteckhöhen mit diesem Häufigkeitswert erhalten und als eine Tabelle von Rechteckhöhen im Speicher 32 gespeichert. Die Inhalte der Tabelle werden, beginnend vom Häufigkeitswert "0", sequentiell untersucht. Falls der Betrag einer Änderung einer Höhe innerhalb "1" liegt, folgen einander sich ändernde Häufigkeitswerte, und die Gesamtzahl der Änderungen der Häufigkeitswerte ist gleich einem vorbestimmten Wert oder größer, und die größte Höhe unter denjenigen mit den sich ändernden Häufigkeitswerten wird als der häufigste Wert "most_freq_height" einer Höhe definiert.
  • 7 zeigt ein Histogramm, das die Inhalte der Tabelle von Rechteckhöhen entsprechend dem in 6 gezeigten Histogramm repräsentiert. Aus 7 ist bekannt, daß die Höhe, bei der der Häufigkeitswert sich schnell ändert, der höchste Häufigkeitswert ist. Falls der häufigste Wert so erhalten wird, wird der Einfluß von Rauschen, das kleiner als ein Zeichen ist, eliminiert, und die Höhe der Standardgröße von Zeichen, die in einem Dokument enthalten sind, kann erhalten werden.
  • 8 veranschaulicht beispielhaft eine einfache Tabelle von Rechteckhöhen. In dieser Figur sind vier Häufigkeitswerte und eine maximale Höhe unter den Höhen der Rechtecke mit diesen Häufigkeitswerten in Paaren gespeichert. Falls die Inhalte der Tabelle in ein Histogramm eingegeben werden, wird es wie in 9 gezeigt vorliegen.
  • Betrachtet man das in 9 gezeigte Histogramm sequentiell vom niedrigsten Häufigkeitswert zum höchsten, mit anderen Worten von der höchsten Höhe zur niedrigsten, ist bekannt, daß sich die Häufigkeitswerte an den jeweiligen Positionen der Höhen 10, 9 und 8 um 5,5 und 7 ändern. Die Differenz zwischen diesen aufeinanderfolgenden Höhen sind 1, und die Gesamtzahl der Änderungen der Häufigkeitswerte ist 17. Nimmt man an, daß der Schwellenwert von Änderungen von Häufigkeitswerten 9 ist, ist die Gesamtzahl der Änderungen der Häufigkeitswerte an den jeweiligen Positionen der Höhen 10, 9 und 8 mehr als der Schwellenwert. Daher wird die Höhe, bei der zuerst "10" erscheint, als die "most_freq_height" erkannt.
  • Als nächstes erkennt die Maskenverarbeitungseinheit 14 ein Verkettungsmuster, das durch die Verkettungsmuster extrahierende Einheit 13 extrahiert wurde, dessen Größe eine vorbestimmte Größe oder größer ist, und ein Verkettungsmuster (mit dem gleichen Etikett wie dem des vorherigen), das im erstgenannten Muster enthalften ist, dessen Größe eine vorbestimmte Größe oder größer ist, als Kandidaten einer Tabelle. Die Maskenverarbeitungseinheit 14 führt dann den Maskenprozeß mit dem Verfahren gemäß der früheren Anmeldung "Frame Extracting Apparatus and Rectangle Extracting Apparatus" (japanische Patentanmeldung H7-203259) durch.
  • Dieser Maskenprozeß wird durchgeführt, um die Extraktion einer nur in einer Tabelle enthaltenen langen geraden Linie zu erleichtern, indem eine extrem schräge Komponente aus einem Bild ausgeschlossen wird. Konkret scannt der Maskenprozeß 14 das gesamte Bild unter Verwendung von zwei Arten von Mas kenrechtecken wie zum Beispiel horizontal und vertikal langen Rechtecken, deren Größen vorbestimmt sind, und berechnet das Verhältnis von schwarzen Pixel innerhalb einer Maske. Falls das Verhältnis gleich einem Schwellenwert oder größer ist, wird der gesamte Bereich in der Maske mit schwarzen Pixel gefüllt und als ein Muster zurückgelassen. Falls das Verhältnis kleiner als der vorbestimmte Wert ist, wird das Muster in der Maske gelöscht. Auf diese Weise wird die Extraktion vertikaler und horizontaler Komponenten durchgeführt.
  • Falls das oben beschriebene Verhältnis einen vorbestimmten Schwellenwert aufgrund der Aufeinanderfolge oder Abfolge mehrerer Reihen oder Spalten erreicht, wird ein großer rechteckiger Bereich erzeugt, indem die sukzessiven Muster kombiniert werden, und seine Mittellinie wird als das Ergebnis des Prozesses erkannt. Bei diesem Prozeß wird ein dickes Muster dünner gemacht. Um eine Lücke zwischen Segmentmustern zu eliminieren, die sich aus dem Prozeß ergibt, werden ferner Bereiche, auf die Masken angewendet werden, so festgelegt, daß sie einander überlappen. Das ursprüngliche Bild vor dem Maskenprozeß wird separat von dem Bild nach dem Maskenprozeß gespeichert.
  • 10 zeigt das Ergebnis des Maskenprozesses, der für die beiden Muster 51 und 56 durchgeführt wird, die auf der rechten Seite von 5 gezeigt sind. In diesem Fall wird das Bild vor dem Prozeß, welches auf der linken Seite von 10 dargestellt ist, in eines umgewandelt, das auf der rechten Seite von 10 dargestellt ist. Nur die vertikalen und horizontalen Komponenten der Muster 51 und 56 werden in dem Bild nach der Umwandlung extrahiert, und das gesamte Muster wird dünner gemacht. Außerdem erweisen sich die Muster 51 und 56 als Folge eines Addierens eines Teils der Muster im Maskenprozeß als verkettet.
  • Die horizontale Linien extrahierende Einheit 15 berechnet dann den Projektionswert des durch Ausführen des Maskenprozesses für den vertikalen Prozeß erzeugten Bildes, welches in 10 dargestellt ist, unter Verwendung des herkömmlichen Adjazenzprojektionsverfahrens. Ein horizontales Segment einer vorbestimmten Länge oder ein Teil der horizontalen geraden Länge wird unter Verwendung von Rechtecken approximiert und im Prozeß P3 wie in 11 gezeigt detektiert. Diese Prozesse nutzen das Bild, für das der Maskenprozeß durchgeführt wird, während der folgende Prozeß das Ursprungsbild nutzt.
  • Die horizontale gerade Linien extrahierende Einheit 15 untersucht den Verknüpfungszustand von Segmenten im Prozeß P4 und extrahiert eine gerade Linie, die aus mehreren Segmenten besteht, als einen Kandidaten für eine Linie mit Teilung. Bei diesem Prozeß wird eine lange gerade Linie detektiert, indem die benachbarten rechtwinkligen Segmente unter den detektierten rechtwinkligen Segmenten integriert werden, und die horizontale gerade Linien extrahierende Einheit 15 approximiert die detektierte gerade Linie unter Verwendung ihres umschriebenen Rechtecks, wie in 12 gezeigt ist.
  • Falls ein Segment, dessen Dicke eine vorbestimmte Dicke oder größer ist (ein Wildcard- oder Stellvertreter-Segment) 61 (siehe 13) ein Stück nach der Zeit der Integration von Segmenten gefunden wird, wird es ignoriert, und nur auf die dünnen Segmente, die das dicke Segment ausschließen, wird abgezielt, und diese werden integriert. Ob ein Segment ein Stellvertreter-Segment ist oder nicht, wird in Abhängigkeit von der in der in 4 gezeigten Segmentinformation 45 beschrieben. Falls ein solch großes Segment existiert, wird die das große Segment enthaltende gerade Linie nicht ausgegeben. Der Integrationsprozeß, der das große Segment für eine gerade Linie nicht beeinflußt, wird durchgeführt.
  • Selbst wenn es ein Muster wie zum Beispiel ein Zeichen oder eine Graphik etc. gibt, das einen schattierten Abschnitt oder eine Linie mit Teilung berührt, kann auf diese Weise nur eine Linie mit Teilung extrahiert werden, indem das Zeichen oder die Graphik etc. ausgeschlossen wird. Die Einzelheiten eines solchen Integrationsprozesses sollen später beschrieben werden. Die Information einer geraden Linie, die als Ergebnis des Integrationsprozesses extrahiert wird, enthält die Information jedes von Segmenten, die die gerade Linie strukturieren, wie in 4 gezeigt ist.
  • Die horizontale gerade Linien extrahierende Einheit 15 sucht dann, wie in 14 gezeigt ist, nach dem Muster (Pixel) der geraden Linie, um das rechte und linke Ende der horizontalen geraden Linie genau zu detektieren, die unter Verwendung der Rechtecke im Prozeß P5 approximiert wird. Falls ein Abschnitt ohne Pixel (leerer Raum) in einer fortschreitenden Richtung während der Suche gefunden wird, wird die Suche in der fortschreitenden Richtung fortgesetzt basierend auf der Annahme, daß Pixel bis zu einer vorbestimmten Anzahl existie ren. Falls ein leerer Raum über die vorbestimmte Anzahl hinaus existiert, wird die Suche an diesem Punkt beendet. Der folgende Prozeß nutzt dann den durch eine Suche detektierten Punkt als das Ende einer geraden Linie.
  • Als nächstes extrahiert das Linien mit Teilung extrahierende Gerät eine horizontale gepunktete Linie unter Verwendung des Verfahrens gemäß der früheren Anmeldung "Frame Extracting Apparatus and Rectangle Extracting Apparatus" (japanische Patentanmeldung H7-203259). Bei diesem Prozeß werden partielle Muster einer vorbestimmten Größe, welche regelmäßig angeordnet sind, gesucht, und die Position einer gepunkteten Linie wird dargestellt, indem sie durch ein Rechteck umschrieben werden.
  • Im folgenden Prozeß wird ein die Position einer gepunkteten Linie repräsentierendes Rechteck in ähnlicher Weise wie für ein Rechteck gehandhabt, das die Position einer detektierten geraden Line repräsentiert. Man beachte, daß ein Attribut einer gepunkteten Linie an die Attributinformation einer geraden Linie entsprechend einer gepunkteten Linie angebracht wird, während ein Attribut einer durchgezogenen Linie an die Attributinformation einer geraden Linie entsprechend einer durchgezogenen Linie angebracht wird. Das heißt, die Unterscheidung zwischen diesen Linien wird getroffen.
  • Die Prozesse P7, P8, P9, P10, die von der vertikale gerade Linien extrahierenden Einheit 16 durchgeführt werden, und der Prozeß P11 zur Detektion vertikaler gepunkteter Linien sind ähnlich denjenigen in den oben beschriebenen Fällen einer horizontalen geraden Linie und einer horizontalen gepunkteten Linie.
  • Das Linien mit Teilung extrahierende Gerät berechnet dann im Prozeß P12 den repräsentativen Wert der Höhen horizontaler gerader Linien. Bei diesem Prozeß wird das Histogramm der Höhen extrahierter horizontaler gerader Linien erzeugt, und die Höhe mit der höchsten Häufigkeit wird als der häufigste Wert "mfheight" einer Höhe horizontaler gerader Linien erkannt und als der repräsentative Wert der Höhen horizontaler gerader Linien verwendet. Ähnlich wird im Prozeß P13 der repräsentative Wert (Wert der höchsten Häufigkeit) "mfwidth" der Breite vertikaler gerader Linien berechnet.
  • Diese repräsentativen Werte werden verwendet, um im folgenden Prozeß jeden Schwellenwert festzulegen. Überdies können geeignete Werte, die von den Werten der höchsten Häufigkeit verschieden sind, als die repräsentativen Werte der Höhen horizontaler gerader Linien und der Breiten vertikaler gerader Linien verwendet werden.
  • Als nächstes berechnet das Linien mit Teilung extrahierende Gerät den repräsentativen Wert der Höhen horizontaler Segmente im Prozeß P14. Bei diesem Prozeß wird das Histogramm der Höhen aller horizontaler Segmente, die alle in einem Bild enthaltenen geraden Linien strukturieren, erzeugt, und die Höhe mit der höchsten Häufigkeit wird als der häufigste Wert "mfheight_small" einer Höhe der horizontalen Segmente erkannt und als der repräsentative Wert der Höhen der horizontalen Segmente verwendet. Im Prozeß P15 wird ähnlich der häufigste Wert "mfwidth_small" der Breite aller vertikalen Segmente berechnet, die all die vertikalen geraden Linien strukturieren.
  • Diese repräsentativen Werte werden auch verwendet, um jeden Schwellenwert im folgenden Prozeß festzulegen. Überdies können andere geeignete Werte als die Werte höchster Häufigkeit als die repräsentativen Werte der Höhen horizontaler Segmente und Breiten vertikaler Segmente genutzt werden.
  • Als nächstes integriert das Linien mit Teilung extrahierende Gerät gerade Linien, welche vollständig überlappen, im Prozeß P16. Bei diesem Prozeß werden sie zu einer integriert, falls eine gerade Linie nahezu komplett mit einer anderen überlappt. In dem Fall der in 15 gezeigten zwei geraden Linien 62 und 63 werden sie unter der Annahme, dass die Höhe H1 des Abschnitts, in welchem keine Überlappung existiert, innerhalb einer vorbestimmten erlaubten Anzahl Pixel INTEGDOT liegt, erkannt, daß sie vollständig überlappen, und in ein geradliniges Rechteck 64 integriert. Der Wert von INTEGDOT ist z. B. auf 2 festgelegt.
  • Das Linien mit Teilung extrahierende Gerät löscht dann im Prozeß P17 eine unnötige gerade Linie auf der Basis der Gestalt eines geradlinigen Rechtecks oder der Distanz zwischen benachbarten geraden Linien. Für den Prozeß einer horizontalen geraden Linie werden der Schwellenwert der Höhe "th_hei" und der Schwellenwert der Länge (Breite) "th_len" jeweils auf Basis der folgenden Gleichungen berechnet.
  • th_hei = most_freq_height*2/3 ... (1)
    th_len = most_freq_height*5 ... (2)
  • Eine entsprechende horizontale Linie wird dann in den folgenden Fällen gelöscht.
    • (a) Falls das Verhältnis der Höhe zur Breite eines horizontalen geradlinigen Rechtecks gleich einem Schwellenwert FTH(=0,11) oder größer ist.
    • (b) Falls das Verhältnis der Höhe zur Breite des horizontalen geradlinigen Rechtecks gleich einem Schwellenwert FTH2(=0,04) oder größer ist und die Höhe des horizontalen Linienrechtecks gleich dem Schwellenwert der Höhe des geradlinigen Rechtecks "th_hei" oder höher ist.
    • (c) Falls die Breite des horizontalen geradlinigen Rechtecks kleiner als ein Schwellenwert der Länge "th_len" ist.
    • (d) Falls die Breite einer horizontalen geraden Linie, welche niedriger als die Position der aktuellen horizontalen geraden Linie und der aktuellen Linie am nächsten ist, kleiner als der Schwellenwert der Länge "th_len" ist.
  • Zum Beispiel wird in 16 eine gerade Linie 67 gelöscht, weil sie dem oben beschriebenen Fall (a) entspricht; wird eine gerade Linie 68 gelöscht, weil sie dem Fall (b) entspricht; und wird eine gerade Linie 69 gelöscht, weil sie dem Fall (c) entspricht. Unter der Annahme, daß eine gerade Linie 65 die aktuelle horizontale gerade Linie ist, wird dann eine gerade Linie 66 gelöscht, weil sie dem Fall (d) entspricht.
  • Falls die Distanz zwischen zwei benachbarten geraden Linien kleiner als der aus "most freq_height" erhaltene Schwellenwert ist, wird ferner eine der beiden Linien (z. B. eine kürzere) gelöscht. Die gleiche Operation kann auf den Prozeß für eine vertikale gerade Linie angewendet werden.
  • Das Linien mit Teilung extrahierende Gerät löscht dann etwaige unnötige gerade Linien basierend auf der Verknüpfungsbeziehung zwischen vertikalen und horizontalen geraden Linien im Prozeß P18. Bei dem Prozeß für eine horizontale gerade Linie wird, falls das Ende eines horizontalen geradlinigen Rechtecks, auf das abgezielt werden soll, kein vertikales geradliniges Rechteck berührt, das horizontale geradlinige Rechteck gelöscht. Als Folge wird eine isolierte gerade Linie gelöscht, welche kein Frame einer Tabelle strukturiert, wie z. B. eine aus einer verunstalteten und verketteten Zeichenkette extrahierte.
  • Da beide Enden 74 und 75 einer horizontal geraden Linie 70 vertikale gerade Linien 71 und 72 beispielsweise in 17 berühren, wird die horizontale gerade Linie 70 nicht gelöscht. Da eine horizontale gerade Linie 73 keine vertikale gerade Linie berührt, wird sie zwischenzeitlich gelöscht. Der gleiche Prozeß wird auf den Prozeß für eine vertikale gerade Linie angewendet. Bei solch einem Löschprozeß kann jedoch eine gerade Linie, welche normalerweise übriggelassen werden soll, aufgrund des Einflusses eines Zeichenmusters in einem Bild etc. manchmal gelöscht werden. Zum Beispiel berühren die Enden 77 und 78 der vertikalen geraden Linie 76 keine horizontalen geraden Linien in dem in 18 gezeigten Bild. Daher wird die vertikale gerade Linie 76 gelöscht, obgleich sie das Frame der Tabelle strukturiert.
  • Demgemäß wird bestimmt, daß das Ziel des Löschungsprozesses auf zwei gerade Linien begrenzt ist, welche einander nahe sind, um eine notwendige Linie ungelöscht zurückzulassen. In diesem Fall wird ein horizontales geradliniges Rechteck "j" erhalten, welches niedriger als ein aktuelles horizontales geradliniges Rechteck "i" ist und dessen Distanz zum Rechteck "i" geringer als der häufigste Wert "most freq_height" einer Höhe von Rechtecken ist.
  • Falls die Enden eines der horizontalen geradlinigen Rechtecke "i" und "j" keine vertikalen geradlinigen Rechtecke berühren und die Enden der vertikalen geradlinigen Rechtecke das horizontale geradlinige Rechteck nicht berühren, wird das horizontale geradlinige Rechteck gelöscht. Dieser Prozeß wird auch auf den Prozeß für eine vertikale gerade Linie angewendet. Mit solch einem Löschprozeß wird die in 18 gezeigte vertikale gerade Linie 76 kein Prozeßziel und bleibt ungelöscht.
  • Da auf benachbarte horizontale gerade Linien 79 und 80 abgezielt wird und ihre Enden eine vertikale gerade Linie 82 in 19 berühren, werden sie überdies nicht gelöscht. Als nächstes wird auf eine der horizontalen geraden Linie 80 benachbarte horizontale gerade Linie 81 abgezielt. Da diese Linie 81 keine vertikale gerade Linie berührt, wird sie gelöscht. Das Ende einer vertikalen geraden Linie 84 unter benachbarten vertikalen geraden Linien 83 und 84 berührt die horizontale gerade Linie 79. Demgemäß wird sie nicht gelöscht. Unterdessen wird die vertikale gerade Linie 83 gelöscht, weil sie keine horizontale gerade Linie berührt.
  • Als nächstes integriert im Prozeß P19 das Linien mit Teilung extrahierende Gerät gerade Linien, welche teilweise überlappen. Bei diesem Prozeß werden horizontale gerade Linien in absteigender Reihenfolge der Länge horizontaler gerader Linien angeordnet. Dann wird auf eine gerade Linie "i" in der absteigenden Reihenfolge der Länge abgezielt, und eine oder mehrere gerade Linien, welche teilweise mit der geraden Linie "i" überlappen, werden erhalten.
  • Falls die geraden Linien, welche teilweise überlappen, und die gerade Linie "i" in ein geradliniges Rechteck integriert werden und dessen Höhe gleich dem Schwellenwert (mfheight + THDOT) oder niedriger ist, wird die Integration durchgeführt. Der Wert von THDOT wird auf zum Beispiel 2 festgelegt. Falls das Ergebnis der Integration gerader Linien der häufigste Wert "mfheight" einer Höhe oder ähnlich wird, werden sie auf diese Weise in eine integriert. Der gleiche Prozeß wird auf den Prozeß für eine vertikale gerade Linie angewendet.
  • In 20 überlappen gerade Linien 85 und 86 teilweise miteinander, und die geraden Linien 86 und 87 überlappen teilweise miteinander. Falls die geraden Linien 85 und 86 unter ihnen integriert werden, übersteigt die Höhe des integrierten Rechtecks den Schwellenwert. Demgemäß werden nur die geraden Linien 86 und 87 integriert und unter Verwendung des umschriebenen Rechtecks approximiert. Der gleiche Prozeß wird auf den Prozeß für eine vertikale gerade Linie angewendet.
  • Der Grund, warum solch ein Prozeß zum Integrieren gerader Linien durchgeführt wird, ist, daß alle aus einem geradlinigen Muster extrahierten Segmentrechtecke manchmal nur mit dem Prozeß P4 und P9 nicht integriert werden können. Beispielsweise sind Segmentrechtecke (schattierte Abschnitte), die in zwei horizontalen geraden Linien 89 und 90 enthalten sind, welche wie in 21 gezeigt überlappen, getrennt. Demgemäß werden die geraden Linien 89 und 90 nicht dem Prozeß P4 integriert. Der Prozeß P19 ermöglicht ihnen, in solch einem Fall integriert zu werden.
  • Als nächstes löscht das Linien mit Teilung extrahierende Gerät im Prozeß P20 eine kürzere Linie von zwei geraden Linien, welche nahezu vollständig überlappen. Mit diesem Prozeß werden horizontale geradlinige Rechtecke in absteigender Reihenfolge der Länge einer horizontalen geraden Linie sortiert. Als nächstes werden horizontale geradlinige Rechtecke "i" in absteigender Rei henfolge nacheinander extrahiert, und es wird auf ein horizontales geradliniges Rechteck "j" abgezielt, welches teilweise mit dem horizontalen geradlinigen Rechteck "i" teilweise überlappt. Zu dieser Zeit wird erkannt, daß die Positionsbeziehung zwischen den geraden Linien "i" und "j", welche mit Verweis auf 22 dargestellt ist, das Prozeßziel sind. Unter der Annahme, daß eine gerade Linie 91 als die gerade Linie "i" erkannt wird, entsprechen gerade Linien 92 und 93 der geraden Linie "j", wie in 22 dargestellt ist.
  • Der Abschnitt, in welchem die geraden Linien "i" und "j" horizontal überlappen, wird dann erhalten. Falls das Verhältnis "len3/len2" der Länge des überlappenden Abschnitts "len3" zur Breite der geraden Linie "j" "len2" größer als ein Schwellenwert OVERRATE ist, wird der folgende Prozeß durchgeführt, indem die gerade Linie "j" als ein Löschungskandidat erkannt wird. Man beachte, daß jedoch der Wert von OVERRATE kleiner als "1" sein muß.
  • Zunächst wird die vertikale Distanz zwischen den geraden Linien "i" und "j" erhalten. Die Differenz zwischen den Koordinatenwerten der geraden Linien "i" und "j" kann als die Distanz zu dieser Zeit definiert werden. Die Distanz zwischen kleinen Segmentrechtecken in den geraden Linien wird jedoch als die Distanz zwischen den geraden Linien in Anbetracht des Falles definiert, in welchem die geraden Linien geneigt sind. Die Erläuterung zu solch einem Verfahren, um den Distanzwert zu erhalten, wird durch Verweis auf 23 geliefert.
  • Unter der Annahme, daß die x-Achse die horizontale Richtung angibt und die y-Achse die vertikale Achse angibt, überlappen die geraden Linien "i" und "j" in der Sektion mit der Länge "len3" von einem Punkt "x = xminkukan" bis zu einem Punkt "x = xmaxkukan", und diese Linien enthalten jeweils mehrere Segmente, wie in 23 gezeigt ist.
  • Das Linien mit Teilung extrahierende Gerät extrahiert zuerst ein Segment, welches nicht als ein Stellvertreter-Segment mit dem Segmentintegrationsprozeß P4 bestimmt wird und zuerst im überlappenden Abschnitt enthalten ist, aus einem Satz von Segmenten, die in der geraden Linie "i" enthalten sind, und erkennt das extrahierte Segment als ein Standardsegment. Hier ist ein Segment 94 das Standardsegment. Die Werte der x-Koordinate (xmin1, xmax1) des Standardsegments 94 werden dann erhalten.
  • Als nächstes extrahiert das Gerät alle Segmente, deren x-Koordinatenwerte innerhalb eines Bereichs von "xmin1" bis "xmax1" liegen, aus dem Satz der Segmente in der geraden Linie "j". Es erhält den Durchschnittswert der y-Achsendistanz zwischen dem extrahierten Segment und dem Standardsegment 94 in der geraden Linie "i" und erkennt den erhaltenen Wert als den Distanzwert zwischen den geraden Linien "i" und "j".
  • Da das entsprechende Segment in der geraden Linie "j" in diesem Fall nur das Segment 95 ist, wird die Distanz zwischen diesem Segment und dem Standardsegment 94"d" selbst der Distanzwert zwischen den geraden Linien "i" und "j". Mit solch einem Berechnungsverfahren kann eine genaue Distanz zwischen geraden Linien erhalten werden, selbst wenn die geraden Linien geneigt sind.
  • Das Linien mit Teilung extrahierende Gerät bestimmt, ob die gerade Linie "j" zu löschen ist oder nicht, basierend auf der so erhaltenen Distanz zwischen den geraden Linien "i" und "j". Falls die gerade Linie "j" höher als die gerade Linie "i" ist, wie die in 22 gezeigte gerade Linie 92, wird die gerade Linie "j" gelöscht, wenn der Wert der Distanz zwischen den geraden Linien "i" und "j" gleich dem Schwellenwert OVERDOT oder kleiner ist. Der Wert von OVERDOT wird z. B. auf "1" gesetzt. Falls die gerade Linie "j" niedriger als die gerade Linie "i" ist, wie die gerade Linie 93, wird die gerade Linie "j" gelöscht, wenn die Distanz zwischen ihnen kleiner als der Schwellenwert "most freq_height" ist.
  • Wie oben beschrieben wurde, wird eine unnötige horizontale gerade Linie ausgeschlossen, indem die kürzere von zwei horizontalen geraden Linien gelöscht wird, welche nahezu vollständig überlappen. Der gleiche Prozeß wird auch auf den Prozeß für eine vertikale gerade Linie angewendet.
  • Das Linien mit Teilung extrahierende Gerät löscht dann in dem Prozeß P21 eine gerade Linie, die aus Segmenten besteht, die größer als ein vorbestimmter Schwellenwert sind. Bei diesem Prozeß wird, falls die Höhen aller Segmente, die in einer horizontalen geraden Linie enthalten sind, höher als der Schwellenwert (mfheight_small*2–1) sind, die gerade Linie als eine gerade Linie erkannt, die fälschlicherweise aus einer Zeichenkette extrahiert ist, und gelöscht. Der gleiche Prozeß wird auch auf den Prozeß für eine vertikale gerade Linie angewendet.
  • Falls ein Segmentrechteck, das ein geradliniges Rechteck strukturiert, größer als ein Schwellenwert ist, markiert das Linien mit Teilung extrahierende Ge rät die Information über das Segmentrechteck und erhält die Gesamtzahl schwarzer Pixel, die in nicht markierten Segmentrechtecken enthalten sind, in den Prozessen P22 und P23. Das Gerät verschiebt den Satz der nicht markierten Segmentrechtecke in der Richtung, die zu der Richtung der Länge des geradlinigen Rechtecks senkrecht ist, und erzeugt einen Graphen, der die Beziehung zwischen dem Verschiebungsbetrag und der Gesamtzahl schwarzer Pixel repräsentiert. Falls die Gestalt des Graphen glatt ist, wird das geradlinige Rechteck aus Kandidaten für Linien mit Teilung ausgeschlossen.
  • Das Linien mit Teilung extrahierende Gerät führt zuerst einen Vorprozeß für den Prozeß P23 im Prozeß P22 aus. Bei diesem Prozeß legt, falls die Höhe eines Segments, das in der horizontalen geraden Linie enthalten ist, höher als der Schwellenwert "mfheight small" ist, das Gerät die Attributinformation dieses Segments auf ein Stellvertreter-Segment fest, so daß das Segment im Prozeß P23 nicht verwendet wird. Der gleiche Prozeß wird auch auf den Prozeß für eine vertikale gerade Linie angewendet.
  • Als nächstes führt das Gerät einen Prozeß zum Prüfen/Löschen einer geraden Linie unter Verwendung einer Segmentverschiebung durch. Bei diesem Prozeß wird die Gesamtzahl schwarzer Pixel, die in mehreren horizontalen Segmentrechtecken enthalten sind, die ein horizontales geradliniges Rechteck strukturieren, erhalten und wird als die Gesamtzahl schwarzer Pixel an der Position erkannt, die den Verschiebungsbetrag "0" angibt (Mittenposition). Das Gerät erhält dann die Gesamtzahl schwarzer Pixel an jeder Position, indem die Segmentrechtecke in der zu einer Richtung der Länge des horizontalen geradlinigen Rechtecks senkrechten vertikalen Richtung um den Betrag der Höhe des horizontalen geradlinigen Rechtecks auf und ab verschoben werden, und erzeugt einen Graphen, der die Gesamtzahl schwarzer Pixel entsprechend dem Verschiebungsbetrag repräsentiert.
  • Falls ein Verhältnis der Gesamtzahl schwarzer Pixel an den Positionen in den Aufwärts- bzw. Abwärtsrichtungen zu einer Standardzahl, wenn der Maximalwert der Gesamtzahl schwarzer Pixel um die Mittenposition als die Standardzahl definiert ist, kleiner als ein vorbestimmter Wert ist, erkennt das Gerät dieses geradlinige Rechteck als eine Linie mit Teilung und gibt sie aus. In anderen Fällen ist das geradlinige Rechteck eine gerade Linie, die fälschlicherweise aus einer Zeichenkette etc. extrahiert ist. Sie wird nicht als eine Linie mit Teilung erkannt und gelöscht. Der gleiche Prozeß wird auf einen Prozeß für eine vertikale gerade Linie angewendet.
  • Der in 24 gezeigte Graph wird zum Beispiel für das in 1C gezeigte Bild erzeugt. In 24 repräsentieren Graphen 96 und 97 jeweils die Verteilungen schwarzer Pixel um die entsprechenden horizontalen geraden Linien. Unter der Annahme, daß die Höhe der horizontalen geraden Linie "height" ist, wird jedes der Segmente in der horizontalen geraden Linie um ein Pixel in der "y"-Richtung in der Sektion "+/–height" verschoben, und die Gesamtzahl schwarzer Pixel, die in den Segmenten bei jeder Verschiebungsposition enthalten sind, ist aufgetragen.
  • In dem Graphen 96 existiert der Maximalwert "Peak" der Gesamtzahl schwarzer Pixel an der Position des Verschiebungsbetrages "0". Die Verteilung der Gesamtzahl schwarzer Pixel ist niedriger als der Wert, der erhalten wird, indem "Peak" mit "THSHIFT" in den oberen und unteren Abschnitten des Graphen multipliziert wird. Der Wert von 'THSHIFT" ist auf z. B. 0,44 festgelegt.
  • Eine solche Verteilung gibt an, daß schwarze Pixel an der Position des Verschiebungsbetrages "0" verkettet sind, und die dieser Position entsprechende horizontale Linie wird als eine Linie mit Teilung erkannt.
  • Unterdessen ist in dem Graphen 97 die Verteilung der Gesamtzahl schwarzer Pixel in der Sektion "+/–height" glatt, und die Werte der Positionen, die höher und niedriger als die Position des Verschiebungsbetrages "0" sind, sind nicht niedriger als der Wert, der erhalten wird, indem "Peak" mit THSHIFT multipliziert wird. Eine solche Verteilung repräsentiert, daß schwarze Pixel in den Abschnitten gestreut sind, welche höher und niedriger als die Position des Verschiebungsbetrages "0" sind, und die diesem Abschnitt entsprechende horizontale gerade Linie wird nicht als eine Linie mit Teilung erkannt und gelöscht.
  • Ein solcher Prozeß zum Prüfen/Löschen einer geraden Linie löscht eine gerade Linie, die aus einem schattierten Abschnitt oder einer verunstalteten Zeichenkette extrahiert wurde, die in der Tabelle enthalten ist, und nur eine ursprüngliche Linie mit Teilung wird als das Ergebnis des Prozesses ausgegeben. Die Einzelheiten des Prozesses zum Prüfen/Löschen einer geraden Linie werden später beschrieben.
  • Im folgenden werden Erläuterungen über die spezifischen Beispiele der oben beschriebenen Prozesse geliefert, indem auf 25 bis 36 verwiesen wird.
  • 25 zeigt die Bilddaten, nachdem die horizontalen Segmente in dem Prozeß P4 integriert sind. 26 zeigt einen Teil des in 25 dargestellten Bildes. Der in 26 gezeigte Zustand entspricht den Bilddaten, bevor die geraden Linien, welche komplett überlappen, in dem Prozeß P16 integriert werden, während 27 die Bilddaten zeigt, nachdem sie integriert sind.
  • Es ist bekannt, daß das geradlinige Rechteck 101 mit dem Etikett 66 und das geradlinige Rechteck 106 mit dem Etikett 3, welche in 26 dargestellt sind, in eines in 27 integriert werden. Ähnlich werden die geradlinigen Dreiecke 102, 103, 104 und 105 mit den Etiketten 67, 68, 69 und 70 mit den geradlinigen Rechtecken 107, 108, 109 bzw. 110 mit den Etiketten 4, 5, 6 und 7 integriert.
  • 28 zeigt die Bilddaten, die erzeugt werden, indem die Prozesse P17 und P18 für das in 27 dargestellte Bild durchgeführt werden und basierend auf der Gestalt, Position und Verknüpfungsbeziehung der geraden Linie eine gerade Linie gelöscht wird. Aus 28 ist bekannt, daß die geradlinigen Rechtecke 111, 112 und 113 mit den Etiketten 35, 37 und 38, welche in 27 dargestellt sind, gelöscht werden.
  • 29 zeigt die Bilddaten, bevor die geraden Linien, welche teilweise überlappen, in dem Prozeß P19 integriert werden, während 30 die Bilddaten zeigt, nachdem sie integriert sind. Aus 30 ist bekannt, daß das geradlinige Rechteck 121 mit dem Etikett 25 und das geradlinige Rechteck 124 mit dem Etikett 20, welche in 29 dargestellt sind, in eines integriert werden. Ähnlich werden die geradlinigen Rechtecke 122 und 123 mit den Etiketten 26 und 27 mit den geradlinigen Rechtecken 125 bzw. 126 mit den Etiketten 21 und 22 integriert.
  • 31 zeigt die Bilddaten, bevor die geraden Linien, welche nahezu vollständig überlappen, in dem Prozeß P20 gelöscht werden, während 32 die Bilddaten zeigt, nachdem sie gelöscht sind. Aus 32 ist bekannt, daß das in 31 gezeigte geradlinige Rechteck 131 gelöscht ist.
  • Außerdem zeigt 33 die Bilddaten, bevor die aus den großen Segmenten bestehende gerade Linie in dem Prozeß P21 gelöscht wird, während 34 die Bilddaten zeigt, nachdem sie gelöscht ist. Aus 34 ist bekannt, daß das in 33 dargestellte geradlinige Rechteck 141 gelöscht ist.
  • Überdies zeigt 35 die Bilddaten, bevor unter Verwendung einer Segmentverschiebung in dem Prozeß P23 eine gerade Linie geprüft/gelöscht wird, während 36 die Bilddaten zeigt, nachdem sie geprüft/gelöscht ist. Aus 36 ist bekannt, daß die geradlinigen Rechtecke 151, 152 und 153, die in 35 dargestellt sind, gelöscht sind.
  • Als nächstes werden die Einzelheiten des Prozesses zum Integrieren von Segmenten erläutert, indem auf 37 bis 41 verwiesen wird. 37, 38, 39, 40 und 41 sind Flussdiagramme, die den Prozeß P4 zum Integrieren horizontaler Segmente zeigen, der in 2B dargestellt ist.
  • Bei diesem Prozeß handhabt die horizontale gerade Linien extrahierende Einheit 15 eine große Gruppeschwarzer Pixel als ein Wild-Card- oder Stellvertreter-Rechteck und zielt auf horizontal lange Segmentrechtecke, die in acht Richtungen vor und nach dem Stellvertreter-Rechteck verkettet sind. Die horizontale gerade Linien extrahierende Einheit 15 integriert dann Segmentrechtecke in einer Verkettungsbeziehung in acht Richtungen durch das Stellvertreter-Rechteck in ein horizontal langes Rechteck als eine horizontale gerade Linie.
  • Ist der Prozeß einmal gestartet, berechnet die horizontale gerade Linien extrahierende Einheit 15 zuerst jeden Schwellenwert in den folgenden Gleichungen unter Verwendung des häufigsten Wertes "mfheight_small" der Höhen horizontaler Segmente und legt die Anzahl gerader Linien auf "0" fest (Schritt S1 von 37).
  • th_height =
    mfheight_small + TH_HEIGHTDOT (3)
    standard_h = mfheight_small + 1 (4)
  • Hier wird der Wert von TH_HEIGHTDOT auf zum Beispiel "2" gesetzt. Als nächstes wird eine der Höhen der Segmentrechtecke, die wechselweise verkettet werden sollen, untersucht (Schritt S2). Falls sie größer als der Schwellen wert "th height" ist, wird es als ein Stellvertreter-Rechteck markiert (Schritt S3). Zu dieser Zeit wird das Wild-Card-Attribut angebracht, indem eine Identifizierungsvariable "use" der Attributinformation des Segmentrechtecks auf "9" gesetzt wird.
  • Für die anderen Segmentrechtecke wird "use" als ein Standardrechteck auf "0" gesetzt (Schritt S4). Dann wird bestimmt, ob alle Segmentrechtecke, die verkettet werden sollen, verarbeitet sind oder nicht (Schritt S5). Falls ein Segmentrechteck übrig, um verarbeitet zu werden, wird der Prozeß in und nach dem Schritt S2 wiederholt.
  • Nachdem alle Segmentrechtecke verarbeitet sind, wird eines von ihnen als ein aktuelles Rechteck "i" extrahiert. Die äußerste linke Koordinate des aktuellen Rechtecks "i" wird "xlf" zugewiesen; die äußerte rechte Koordinate des aktuellen Dreiecks "i" wird "xr" zugewiesen; die oberste Koordinate des aktuellen Rechtecks "i" wird "yup" zugewiesen; die unterste Koordinate des aktuellen Rechtecks "i" wird "ybl" zugewiesen; "line_start" wird auf "yup" gesetzt; und "line_end" wird auf "ybl" gesetzt (Schritt S6). Dann wird bestimmt, ob "use" des aktuellen Rechtecks "i" entweder "0" oder "9" ist (Schritt S7).
  • Falls das "use" des aktuellen Rechtecks "i" entweder "0" oder "9" ist, wird "startxlf" auf "xlf" gesetzt; wird "startxr" auf "xr" gesetzt; wird "startyup" auf "yup" gesetzt; und "startybl" wird auf "ybl" gesetzt (Schritt S8). Als nächstes wird bestimmt, ob "use" "0" ist oder nicht (Schritt S9 von 38). Falls "use" 0 ist, wird "standard_st" auf "yup" gesetzt; wird "standard_en" auf "ybl" gesetzt; wird "b_use" auf "0" gesetzt; wird "use" auf "1" gesetzt; und "height" wird auf "ybl–yup+1" gesetzt (Schritt S10).
  • "b_use=0" gibt an, dass das aktuelle Rechteck "i" kein Stellvertreter-Rechteck, sondern ein Standardrechteck ist. "use=1" gibt an, daß das aktuelle Rechteck "i" verwendet wurde. Falls in Schritt S9 "use" nicht "0" ist, wird "standard st" auf "0" gesetzt; wird "standard en" auf "0" gesetzt; wird "b_use" auf "9" gesetzt; und "height2" wird auf "ybl–yup+1" gesetzt (Schritt S11). "b_use=9" gibt an, daß das aktuelle Rechteck "i" nicht als ein Standardrechteck festgelegt ist, da es ein Stellvertreter-Rechteck ist.
  • Als nächstes wird ein anderes Segmentrechteck als ein aktuelles Rechteck "k" extrahiert. Die äußerste linke Koordinate des aktuellen Rechtecks "k" wird dann "rxlf" zugewiesen; die äußerste rechte Koordinate des aktuellen Rechtecks "k" wird "rxr" zugewiesen; die oberste Koordinate des aktuellen Rechtecks "k" wird "ryup" zugewiesen, und die unterste Koordinate des aktuellen Rechtecks "k" wird "rybl" zugewiesen (Schritt S12).
  • Es wird bestimmt, ob das aktuelle Rechteck "i" als ein Standardrechteck festlegt ist oder nicht, d. h. ob "b_use" auf "0" gesetzt ist oder nicht (Schritt S13). Falls "b_use" "0" ist, wird bestimmt, ob "use" des aktuellen Rechtecks "k" "9" ist oder nicht (Schritt S14). "use = 9" gibt an, daß das aktuelle Rechteck "i" ein Standardrechteck und das aktuelle Rechteck "k" ein Stellvertreter-Rechteck ist.
  • Falls "use" "9" ist, wird bestimmt, ob "xr+1≥rxlf" "xr<rxr", "ybl+1≥ ryup" und "yup–1≤rybl" erfüllt sind oder nicht (Schritt S15). Falls diese Bedingungen erfüllt sind, bedeutet es, daß das aktuelle Rechteck "k" auf der rechten Seite des aktuellen Rechtecks "i" liegt und sie beide einen überlappenden Abschnitt mit einem oder mehr Pixel horizontal und vertikal besitzen. Daher wird "xr" auf "rxr" gesetzt, und der rechte Rand des aktuellen Rechtecks "i" wird zu dem aktuellen Rechtecks "k" ausgedehnt oder verlängert (Schritt S16).
  • Falls "use" nicht "9" in Schritt S14 ist, wird dann bestimmt, ob "use" "0" ist oder nicht (Schritt S17 von 39). Falls "use" "0" ist, bedeutet es, daß das aktuelle Rechteck "i" ein Standardrechteck ist und das aktuelle Rechteck "k" kein Stellvertreter-Rechteck ist. Als nächstes wird bestimmt, ob xr+1≥rxlf, xr<rxr, ybl+1≥ryup und yup–1≤rybl erfüllt sind oder nicht und ob die Höhe des aktuellen Rechtecks "k" gleich "standard_h+/–4" oder kleiner ist oder nicht (Schritt S18).
  • Falls diese Bedingungen erfüllt sind, wird "xr" auf "rxr" gesetzt; "yup auf "ryup" gesetzt; "ybl" auf "rybl" gesetzt; "use" auf " 2" gesetzt und "hei" auf "nbl–ryup+1" gesetzt (Schritt S19). Dies bedeutet, daß der rechte Rand des aktuellen Rechtecks "i" zu dem rechten Rand des aktuellen Rechtecks "K" verlängert wird und die oberste und unterste Koordinate durch diejenigen des aktuellen Rechtecks "k" ersetzt werden. "use = 2" gibt an, daß das aktuelle Rechteck "k" verwendet wurde.
  • Als nächstes wird bestimmt, ob "hei > height" erfüllt ist oder nicht (Schritt S20). Falls "JA" gilt, wird "height" auf "hei" gesetzt (Schritt S21). Es wird dann bestimmt, ob "ryup < line_start" erfüllt ist oder nicht (Schritt S22). Falls "JA" gilt, wird "line_start" auf "ryup" gesetzt (Schritt S23). Es wird bestimmt, ob "rybl > line_end" erfüllt ist oder nicht (Schritt S24). Falls "JA gilt, wird "line end" auf "rybl" gesetzt (Schritt S25).
  • Nachdem diese Operationen durchgeführt sind, wird bestimmt, ob "b use" "9" ist oder nicht (Schritt S26 von 40). Falls das Ergebnis der Bestimmung in Schritten S13 und S15 von 38 und in Schritten S18, S20, S22 und S24 von 39 "NEIN" ist, wird der Prozeß in und nach dem Schritt S26 sofort durchgeführt.
  • Falls "b_use" "9" ist, wird bestimmt, ob "use" des aktuellen Rechtecks "k" "9" ist oder nicht (Schritt S27). Falls "JA" gilt, gibt es an, daß die beiden aktuellen Rechtecke "i" und "k" Stellvertreter-Rechtecke sind. Es wird dann bestimmt, ob "xr+1≥rxlf", "xr≤rxr", "ybl+1≥ryup" und "yup–1≤rybl" erfüllt sind oder nicht (Schritt S28).
  • Falls diese Bedingungen erfüllt sind, liegt das aktuelle Rechteck "k" auf der rechten Seite des aktuellen Rechtecks "i", und sie beide besitzen einen überlappenden Abschnitt mit einem oder mehr Pixel horizontal und vertikal. Demgemäß wird "xr" auf "rxr" gesetzt, und der rechte Rand des aktuellen Rechtecks "i" wird zu dem des aktuellen Rechtecks "k" verlängert (Schritt S29).
  • Falls "use" in Schritt S27 nicht "9" ist, wird bestimmt, ob "use" gleich "0" ist oder nicht (Schritt S30). Falls "JA" gilt, gibt es an, daß das aktuelle Rechteck "i" ein Stellvertreter-Rechteck ist und das aktuelle Rechteck "k" kein Stellvertreter-Rechteck ist. Dann wird bestimmt, ob "xr+1≥rxlf', "xr<rxr", "line_end≥ryup" und "line_start<rybl" erfüllt sind oder nicht (Schritt S31).
  • Falls diese Bedingungen erfüllt sind, wird "xr" auf "rxr" gesetzt; "yup" auf "ryup" gesetzt; "ybl" auf "rybl" gesetzt; "use" auf "2" gesetzt; "line_start auf "ryup" gesetzt; "line end" auf "rybl" gesetzt; "hei" auf "rybl–ryup+1" gesetzt; "standard_st" auf "ryup" gesetzt und "standard_en" auf "rybl" gesetzt (Schritt S32).
  • Dies bedeutet, daß der rechte Rand des aktuellen Rechtecks "i" zu dem des aktuellen Rechtecks "K" verlängert wird und die oberste und unterste Koordinate durch diejenigen des aktuellen Rechtecks "k" ersetzt werden. Überdies gibt "use=2" an, daß das aktuelle Rechteck "k" verwendet wurde. Dann wird bestimmt, ob "hei > height" erfüllt ist oder nicht (Schritt S33). Falls "JA" gilt, wird "height" auf "hei" gesetzt (Schritt S34).
  • Als nächstes wird bestimmt, ob alle Segmentrechtecke, die verkettet werden sollen, als das aktuelle Rechteck "k" extrahiert sind oder nicht (Schritt S35 von 41). Falls das Ergebnis der Bestimmung in Schritten S26, S28, S30, S31 und S33 von 40 "NEIN" ist, wird der Prozeß in und nach dem Schritt S13 von 38 wiederholt.
  • Falls der Prozeß für alle Segmentrechtecke abgeschlossen ist, wird bestimmt, ob "b_use" auf "9" gesetzt ist oder nicht (Schritt S36). Falls "NEIN" gilt, werden "xlf', "xr", "line start" und "line end" als die äußerste linke, äußerste rechte, oberste bzw. unterste Koordinate eines extrahierten geradlinigen Rechtecks gespeichert und die Anzahl gerader Linien wird um 1 inkrementiert (Schritt S37).
  • Falls in Schritt S36 "b use" "9" ist, gibt es an, daß das aktuelle Rechteck "i" und alle seine verketteten Rechtecke Wild-Cards oder Stellvertreter sind. In diesem Fall werden sie nicht als gerade Linien gespeichert.
  • Als nächstes wird bestimmt, ob alle Segmentrechtecke als das aktuelle Rechteck "i" extrahiert sind oder nicht (Schritt S38). Falls irgendein Segmentrechteck übrig ist, um extrahiert zu werden, wird der Prozeß in und nach dem Schritt S6 von 37 wiederholt. Falls "use" des aktuellen Rechtecks "i" weder 0 noch 9 ist, gibt es an, daß das extrahierte Segmentrechteck vorher verwendet wurde. Daher wird der Prozeß in Schritt S38 sofort durchgeführt, um das nächste Segmentrechteck zu extrahieren. Nachdem alle Segmentrechtecke extrahiert sind, wird der Prozeß beendet.
  • Wie oben beschrieben wurde, wird ein Stellvertreter übersprungen, und horizontale Segmentrechtecke auf ihren beiden Seiten werden integriert, wodurch eine horizontale gerade Linie extrahiert wird, die nur Standardsegmente enthält. Der Prozeß zum Integrieren vertikaler Segmente, der in 2B gezeigt ist, wird gemäß einem ähnlichen Ablauf durchgeführt.
  • Als nächstes wird die Erläuterung der Einzelheiten des Ablaufs des Prozesses zum Prüfen/Löschen einer geraden Linie unter Verwendung einer Segmentverschiebung geliefert, indem auf 42 bis 47 verwiesen wird. 42, 43, 44, 45, 46 und 47 sind Flußdiagramme, die den Prozeß zum Prüfen/Löschen einer horizontalen geraden Linie in dem Prozeß P23 darstellen, der in 2B gezeigt ist. Bei diesem Prozeß bestimmt das Linien mit Teilung extrahierende Gerät, ob eine gerade Linie eine korrekte Linie mit Teilung ist oder nicht, basierend auf der Verteilung schwarzer Pixel um jede horizontale gerade Linie, läßt nur eine korrekte Linie mit Teilung zurück und löscht die anderen Linien.
  • Ist der Prozeß einmal gestartet, weist das Linien mit Teilung extrahierende Gerät den Wert "0" sowohl einer Variable "cnt", die die Anzahl verarbeiteter horizontaler gerader Linien angibt, als auch einer Variable "newcount" zu, die die Anzahl horizontaler gerader Linien angibt, welche als korrekte Linien mit Teilung bestimmt wurden (Schritt S41 von 42). Man beachte, daß daher die Zähloperationen für "cnt" und "newcount" von "0" aus beginnen.
  • Als nächstes wird bestimmt, ob das Attribut einer "cnt"-ten horizontalen geraden Linie eine gepunktete Linie repräsentiert oder nicht (Schritt S42). Falls es das Attribut einer gepunkteten Linie ist, wird die gesamte Information einer geraden Linie der horizontalen geraden Linie kopiert als die Information einer "newcount"-ten Linie mit Teilung, und die Variablen "cnt" und "newcount" werden jeweils um 1 inkrementiert (Schritt S43). In Schritt S42 wird die Bestimmung der nächsten horizontalen geraden Linie vorgenommen.
  • Falls das Attribut der "cnt"-ten geraden Linie nicht das Attribut einer gepunkteten Linie ist, wird erkannt, daß sie einer durchgezogenen Linie entspricht, und die Höhe des horizontalen geradlinigen Rechtecks wird als "height" definiert (Schritt S44). Als nächstes wird bestimmt, ob "height" gleich " 2" oder geringer ist oder nicht (Schritt S45). Falls der Wert von "height" größer als "2" ist, wird er nicht geändert. Falls er gleich "2" oder geringer ist, wird er in "3" geändert (Schritt S46).
  • Dann wird "pos" auf "height" gesetzt; wird "maxsum" auf "0" gesetzt; wird "top_bound" auf "0" festgelegt; wird "bottom_bound" auf "0" gesetzt; wird "shift" auf "–1*height" gesetzt; wird "sum" auf "0" gesetzt und wird "j" auf "0" gesetzt (Schritt S47). Die Variable "pos" wird verwendet, um die Position in der Aufwärts- oder Abwärtsrichtung in einem Bild zu spezifizieren. Die Variable "maxsum" gibt den maximalen Wert in einem Graphen an, der die Gesamtzahl schwarzer Pixel repräsentiert.
  • Überdies wird die Variable top_bound als ein Flag verwendet, das angibt, ob eine Sektion eines Graphen das obere Ende eines Bildes erreicht hat oder nicht, während die Variable bottom_bound als ein Flag verwendet wird, das angibt, ob die Sektion des Graphen das untere Ende des Bildes erreicht hat oder nicht. Der Wert der Variable "shift" gibt den Verschiebungsbetrag in der Aufwärts- oder Abwärtsrichtung von Segmentrechtecken an, die in einer horizontalen geraden Linie enthalten sind. Die Variable "sum" gibt die Gesamtzahl schwarzer Pixel an, die in den Segmentrechtecken enthalten sind.
  • Als nächstes wird bestimmt, ob das Attribut eines "j"-ten kleinen Segments (Segmentrechtecks), das in der "cnt"-ten horizontalen geraden Linie enthalten ist, ein Stellvertreter ist oder nicht (Schritt S48 von 43). Falls "JA" gilt, wird der Wert von "j" um 1 inkrementiert (Schritt S49), und das nächste kleine Segment wird in Schritt S48 geprüft.
  • Falls das Attribut des "j"-ten kleinen Segments kein Stellvertreter ist, wird erkannt, daß es einem normalen Segmentrechteck entspricht, wird die äußerste linke Koordinate des j-ten kleinen Segments "xmin" zugewiesen; wird die äußerste rechte Koordinate des "j"-ten kleinen Segments "xmax" zugewiesen; wird "die oberste Kooordinate des "j"-ten kleinen Segments + shift" "ymin" zugewiesen; und "die unterste Koordinate des "j"-ten kleinen Segments + shift" wird "ymax" zugewiesen (Schritt S50). Man beachte, daß, falls durch die Position von "ymin" oder "ymax", die so bestimmt wurden, nicht in den Koordinaten eines Bildes enthalten ist, der Wert der y-Koordinate, die dem oberen oder unteren Ende des Bildes am nächsten liegt, als "ymin" oder "ymax" erkannt wird.
  • Die Anzahl schwarzer Pixel in einem rechteckigen Bereich, der durch jeden der Werte der Variablen "xmin", "xmax", "ymin" und "ymax" aufgeteilt ist, wird dann berechnet und als "black_dot" definiert. Danach wird "sum+black_dot" "sum" zugewiesen.
  • Als nächstes wird bestimmt, ob "ymin" dem oberen Ende des Bildes entspricht oder nicht (Schritt S51). Falls "JA" gilt, wird "top_bound" auf "1" gesetzt (Schritt S52). Außerdem wird bestimmt, ob "ymax" dem unteren Ende des Bildes entspricht oder nicht (Schritt S53). Falls "JA" gilt, wird "bottom_bound" auf "1" gesetzt (Schritt S54).
  • Danach wird bestimmt, ob der Wert der Variable "j" dem letzten kleinen Segment in der "cnt"-ten horizontalen geraden Linie entspricht oder nicht (Schritt S55). Falls das Ergebnis der Bestimmung "NEIN" ist, wird der Wert von "j" um 1 inkrementiert (Schritt S56), und der Prozeß in und nach dem Schritt S48 wird wiederholt. Falls "JA" gilt, wird "histo[pos+shift]" auf "sum" gesetzt (Schritt S57 von 44).
  • Hier gibt "histo[p]" den Wert (Gesamtzahl schwarzer Pixel) des Graphen an, der dem Wert eines Positionsparameters "p" in der y-Richtung entspricht. Unter der Annahme, daß "pos" auf "height" gesetzt ist und "shift" auf "-height" gesetzt ist, wird "histo[pos+shift]" "histo[0]" sein, was den Wert des Graphen angibt, der der Position des Parameterwertes "0" entspricht.
  • Als nächstes wird ein Vergleich zwischen "sum" und "maxsum" durchgeführt (Schritt S58). Falls "sum" größer als "maxsum" ist, wird "maxsum" auf "sum" gesetzt (Schritt S59).
  • Der Vergleich zwischen "shift" und "height" wird dann vorgenommen (Schritt S60). Falls "shift" gleich "height" oder kleiner ist, wird "shift" auf "shift+1" gesetzt, werden "sum" und "j" auf den Anfangswert "0" zurückgesetzt (Schritt S61), und der Prozeß in und nach dem Schritt S48 wird wiederholt. Auf diese Weise wird der Wert in einem Graphen berechnet, der der Position entspricht, an der der Verschiebungsbetrag um 1 Pixel geändert wird.
  • Falls der Wert von "shift" den von "height" übersteigt, wird der Vergleich zwischen "histo[pos–1]" und "histo[pos]" vorgenommen (Schritt S62). "histo[pos]" gibt hier den Wert des Graphen an, der der Position des Verschiebungsbetrages "0" entspricht. Falls "histo[pos–1]" größer als "histo[pos]" ist, wird der Vergleich zwischen "histo[pos–1] und "histo[pos+1] vorgenommen (Schritt S63).
  • Falls "histo[pos–1]" größer ist als "histo[pos+1]", wird "maxpos" auf "pos– 1" gesetzt und "maxsum" wird auf "histo[pos–1]" gesetzt (Schritt S64). Falls "histo[pos–1]" kleiner oder gleich "histo[pos+1]" ist, wird "maxpos" auf "pos+1" gesetzt und "maxsum" wird auf "histo[pos+1]" gesetzt (Schritt S65).
  • Falls "histo[pos–1]" in Schritt S62 kleiner oder gleich "histo[pos]" ist, wird der Vergleich zwischen "histo[pos]" und "histo[pos+1] vorgenommen (Schritt S66).
  • Falls "histo[pos]" größer oder gleich "histo[pos+1]" ist, wird "maxpos" auf "pos" gesetzt, und "maxsum" wird auf "histo[pos]" gesetzt (Schritt S67). Falls "histo[pos]" kleiner ist als "histo[pos+1]", wird "maxpos" auf "pos+1" gesetzt, und "maxsum" wird auf "histo[pos+1]" gesetzt (Schritt S68).
  • Bei solch einem Prozeß wird der maximale Wert unter "histo[pos–1]", "histo[pos]" und "histo[pos+1]" "maxsum" zugewiesen, und der entsprechende Parameterwert wird "maxpos" zugewiesen. Dementsprechend gibt "maxsum" den maximalen Wert des Graphen nahe der Position des Verschiebungsbetrages "0" an. Er entspricht "Peak", dargestellt in 24.
  • Als nächstes wird unter Verwendung des oben erhaltenen Wertes von "maxsum(=histo[maxpos])" gemäß der folgenden Gleichung ein Schwellenwert "th" berechnet (Schritt S69 von 45):
  • th = maxsum*THSHIFT (5)
  • Der Parameter 'THSHIF" gibt hier das Verhältnis des Schwellenwertes "th" zum maximalen Wert "maxsum" an. Er wird auf einen geeigneten Wert zwischen 0 und 1,0 festgelegt.
  • Dann wird "lineokflag1" auf "0" gesetzt; wird "lineokflag2" auf "0" gesetzt; wird "minval" auf "Oxffff' gesetzt; und wird "shift" auf "–1*height" gesetzt. Die Variablen "lineokflag1" und "lineokflag2" werden als die Flags verwendet, die das Ergebnis einer Prüfung in beiden Abschnitten repräsentieren, welche höher und niedriger als die Position entsprechend dem maximalen Wert sind. Die Variable "minval" gibt den minimalen Wert eines Graphen an.
  • Als nächstes wird der Vergleich zwischen "histo[pos+shift]" und "th" vorgenommen (Schritt S70). Falls histo[pos+shift]" kleiner als "th" ist, wird erkannt, daß die Anzahl schwarzer Pixel in dem Abschnitt abnimmt, der höher als die Position entsprechend dem maximalen Wert ist, und "lineokflag1" wird auf "1" gesetzt (Schritt S71). Demgemäß gibt "lineokflag=1" an, daß das Ergebnis der Prüfung im oberen Abschnitt "OK" ist.
  • Dann wird der Vergleich zwischen "histo[pos+shift]" und "minval" vorgenommen (Schritt S72). Falls "histo[pos+shift]" kleiner als "minval" ist, wird "minval" auf "histo[pos+shift]" gesetzt (Schritt 73).
  • Der Vergleich zwischen (pos+shift) und "maxpos" wird vorgenommen (Schritt S74). Falls "(pos+shift)" gleich "maxpos" oder kleiner ist, wird "shift" auf "shift+1" gesetzt (Schritt S75), und der Prozeß in und nach dem Schritt S70 wird wiederholt. Bei diesem Prozeß wird der Wert des Graphen an der Position, wo der Verschiebungsbetrag um ein Pixel geändert wird, wieder untersucht.
  • Falls "(pos+shift)" größer als "maxpos" ist, wird der Vergleich zwischen "histo[pos+shift)" und "th" vorgenommen (Schritt S76 von 46). Falls "histo[pos+shift]" gleich "th" oder größer ist, wird der Vergleich zwischen "histo[pos+shift]" und "minval" vorgenommen (Schritt S77). Falls "histo[pos+shift]" kleiner als "minval" ist, wird "minval" auf "histo[pos+shift]" gesetzt (Schritt S78).
  • Als nächstes wird der Vergleich zwischen "shift" und "height" vorgenommen (Schritt S79). Falls "shift" gleich "height" oder kleiner ist, wird "shift" auf "shift+1" gesetzt (Schritt S80), und der Prozeß in und nach dem Schritt S76 wird wiederholt. Bei diesem Prozeß wird der Wert des Graphen an der Position, wo der Verschiebungsbetrag um ein Pixel geändert wird, wieder untersucht.
  • Falls "histo[pos+shift]" in Schritt S76 kleiner als "th" ist, wird erkannt, daß die Anzahl schwarzer Pixel in dem Abschnitt, der niedriger als die Position entsprechend dem maximalen Wert ist, abnimmt, und "lineokflag2" wird auf "1" gesetzt (Schritt S81). Demgemäß gibt "lineokflag2=1" an, daß das Ergebnis der Prüfung im unteren Abschnitt "OK" ist.
  • Die Werte von "lineokflag1" und "top_bound" werden dann untersucht (Schritt S82 von 47). Falls der Wert von "lineokflag1" "0" ist und zur gleichen Zeit der Wert von "top bound" "1" ist, wird erkannt, daß die "cnt"-te horizontale gerade Linie, auf die abgezielt werden soll, einer horizontalen Linie mit Teilung nahe dem oberen Ende des Bildes entspricht, und "lineokflag1" wird auf "1" gesetzt (Schritt S83).
  • Die Werte von "lineokflag2" und "bottom bound" werden als nächstes untersucht (Schritt S84). Falls die Werte von "lineokflag2" und "bottom bound" "0" bzw. "1" sind, wird erkannt, daß die "cnt"-te horizontale gerade Linie einer horizontalen Linie mit Teilung nahe dem unteren Ende des Bildes entspricht, und "lineokflag2" wird auf "1" gesetzt (Schritt S85).
  • Die Endwerte von "lineokflag1" und "lineokflag2" werden dann untersucht (Schritt S86). Falls die Werte von sowohl "lineokflag1" als auch "lineokflag2" "1" sind, wird bestimmt, daß die "cnt"-te horizontale gerade Linie eine korrekte Linie mit Teilung ist. Die Information der geraden Linie wird als die Information der "newcount"-ten Linie mit Teilung kopiert, und "newcount" wird um "1" inkrementiert (Schritt S87).
  • Falls "lineokflag1" oder "lineokflag2" "0" ist, wird überdies bestimmt, daß die "cnt"-te horizontale gerade Linie keine korrekte Linie mit Teilung ist, und ihre Information einer geraden Linie wird nicht als die Information einer Linie mit Teilung gespeichert.
  • Als nächstes wird bestimmt, ob "cnt" der letzten horizontalen geraden Linie im Bild entspricht oder nicht (Schritt S88). Falls irgendeine horizontale gerade Linie übrig ist, wird "cnt" um "1" inkrementiert (Schritt S89), und der Prozeß in und nach S42 wird dann für die nächste horizontale gerade Linie wiederholt. Wenn "cnt" den Wert erreicht, der der letzten horizontalen geraden Linie entspricht, wird der Prozeß beendet.
  • Bei solch einem Prozeß wird der Grad einer Ähnlichkeit einer Linie mit Teilung basierend auf dem Vergleich zwischen der Anzahl schwarzer Pixel, die in einer geraden Linie enthalten sind, und der Anzahl schwarzer Pixel um die Linie geprüft, wodurch eine gerade Linie effizient gelöscht wird, welche fälschlicherweise aus einem schattierten Abschnitt oder einer verunstalteten Zeichenkette extrahiert ist. Ein ähnlicher Prüf/Löschprozeß wird für eine vertikale gerade Linie durchgeführt.
  • Wie oben beschrieben wurde, kann gemäß dieser Erfindung eine Linie mit Teilung korrekt extrahiert werden, selbst wenn Bild vage oder klar ist, selbst wenn ein Bild einer Tabelle durchgezogene und gepunktete Linien enthält oder selbst wenn eine Linie mit Teilung einen schattierten Abschnitt oder ein Zeichen berührt.
  • Die Linien mit Teilung extrahierende Technik gemäß der vorliegenden Erfindung wird nicht nur auf ein elektronisches Dateiorganisationssystem angewendet, sondern auch auf eine Technik zum Extrahieren einer ein Symbol oder ein Zeichen in einem weiten Sinne enthaltenden Graphik aus einem Muster, in welchem die Graphik eine gerade Linie überdeckt. Diese Technik kann zum Bei spiel für ein Gerät zur Erkennung handgeschriebener Zeichen, ein Gerät zur Erkennung gedruckter Zeichen, eine Extraktion eines Musters wie z. B. eines Zeichens, Symbols etc. zur Zeichnungserkennung und einer Trennung zwischen einer Linie mit Teilung und einem berührenden Abschnitt wie z. B. einem Objekt, einer Graphik, einem Zeichen etc. verwendet werden.
  • Außerdem ist die Gestalt eines Bereichs, der eine gerade Linie oder ein Segment repräsentiert, nicht notwendigerweise ein Rechteck. Der Bereich mit einer beliebigen Gestalt, der durch eine gerade Linie oder eine gekrümmte Linie umgeben ist, kann verwendet werden. In diesem Fall kann der Prozeß, der demjenigen von 2B ähnlich ist, durchgeführt werden, falls die Position, Höhe und die Breite einer geraden Linie oder eines Segments und die Distanz zwischen geraden Linien oder Segmenten etc. geeignet definiert sind.
  • Gemäß der vorliegenden Erfindung kann ein Abschnitt einer Linie mit Teilung aus einem normalen Dokumentenbild korrekt extrahiert werden, dessen Struktur von Linien mit Teilung vorher nicht vorhergesagt werden kann.
  • Selbst wenn ein schattierter Abschnitt in einer Tabelle enthalten ist, wird es zum Beispiel möglich, aus ihrem Bild eine Linie mit Teilung korrekt zu extrahieren. Selbst wenn ein Zeichen eine Linie mit Teilung berührt und die Information der Struktur einer Tabelle vorher nicht bekannt ist, kann außerdem eine Linie mit Teilung korrekt extrahiert werden. Selbst wenn ein Zeichen ein wenig verunstaltet gedruckt ist oder selbst wenn Zeichen mit hoher Dichte gedruckt sind, wird ferner die Wahrscheinlichkeit, daß aus einer Zeichenkette fälschlicherweise eine Linie mit Teilung extrahiert wird, niedriger.

Claims (29)

  1. Linien mit Teilung extrahierendes Gerät, aufweisend: Schätzmittel (1) zum Schätzen einer Größe eines in einem Eingabebild enthaltenen Standardmusters; und gerade Linien extrahierendes Mittel (5) zum Festlegen eines Schwellenwerts auf der Basis einer Information der Größe des Standardmusters und Extrahieren einer Information eines oder mehrerer gerader Linienmuster aus dem Eingabebild unter Verwendung des Schwellenwertes; dadurch gekennzeichnet, dass: das gerade Linien extrahierende Mittel (5) die geraden Linienmuster extrahiert, indem unter Verwendung einer vorbestimmten Maske eine schräge Komponente aus dem Eingabebild ausgeschlossen wird, um ein Segmentmuster zu detektieren, indem eines oder mehrere Segmentmuster in ein gerades Linienmuster integriert werden und ein unnötiges gerades Linienmuster gelöscht wird, um eine Linie mit Teilung unter dem extrahierten einen oder den extrahierten mehreren geraden Linienmustern zu extrahieren, von denen jedes einem oder mehreren integrierten Segmentmustern entspricht.
  2. Linien mit Teilung extrahierendes Gerät nach Anspruch 1, worin das Schätzmittel eine Größe eines im Eingabebild enthaltenen Zeichenmusters als die Größe des Standardmusters schätzt.
  3. Linien mit Teilung extrahierendes Gerät nach Anspruch 1, worin das Schätzmittel die Größe des Standardmusters auf der Basis eines Histogramms von Größen von Pixelverkettungsbereichen schätzt, die im Eingabebild enthalten sind.
  4. Linien mit Teilung extrahierendes Gerät nach Anspruch 1, 2 oder 3, worin das gerade Linien extrahierende Mittel enthält: ein gerade Linien löschendes Mittel (9) zum Bestimmen, ob eines des einen oder der mehreren geraden Linienmuster zu löschen ist oder nicht, indem der Schwellenwert und eine Information über eine Gestalt eines unter einem oder mehreren geraden Linienmustern und/oder eine Information über eine Distanz zwischen zwei geraden Linienmustern verwendet wird, die in einem oder mehreren geraden Linienmustern enthalten sind.
  5. Linien mit Teilung extrahierendes Gerät nach Anspruch 1, 2 oder 3, worin das gerade Linien extrahierende Mittel enthält: ein gerade Linien löschendes Mittel (9) zum Bestimmen, ob irgendeines eines horizontalen geraden Linienmusters und eines vertikalen geraden Linienmusters zu löschen ist, die in dem einen oder den mehreren geraden Linienmustern enthalten sind, basierend auf einer Verknüpfungsbeziehung zwischen dem horizontalen geraden Linienmuster und dem vertikalen geraden Linienmuster und dem Schwellenwert.
  6. Linien mit Teilung extrahierendes Gerät nach Anspruch 1, 2 oder 3, worin das gerade Linien extrahierende Mittel enthält: ein gerade Linien löschendes Mittel (9) zum Bestimmen, ob ein kürzeres Muster von zwei geraden Linienmustern zu löschen ist oder nicht, die in dem einen oder den mehreren geraden Linienmustern enthalten sind und fast überlappen, unter Verwendung des Schwellenwertes.
  7. Linien mit Teilung extrahierendes Gerät nach einem der vorhergehenden Ansprüche, ferner aufweisend: ein Berechnungsmittel (4) zum Erhalten eines repräsentativen Wertes von Größen des einen oder der mehreren geraden Linienmuster, die durch das gerade Linien extrahierende Mittel (5) extrahiert wurden; und gerade Linien verarbeitendes Mittel (7) zum Festlegen eines Schwellenwertes basierend auf dem repräsentativen Wert und Verarbeiten der Information des einen oder der mehreren geraden Linienmuster unter Verwendung des Schwellenwertes.
  8. Linien mit Teilung extrahierendes Gerät nach Anspruch 7, worin das Berechnungsmittel den repräsentativen Wert gemäß einem Histogramm von Höhen horizontaler gerader Linienmuster, die in dem einen oder den mehreren geraden Linienmustern enthalten sind, oder einem Histogramm von Breiten vertikaler gerader Linienmuster erhält, die in dem einen oder den mehreren geraden Linienmustern enthalten sind.
  9. Linien mit Teilung extrahierendes Gerät nach Anspruch 7 oder 8, worin das gerade Linien verarbeitende Mittel ferner ein gerade Linien integrierendes Mittel aufweist, um ein gerades Linienmuster nach einer Integration als einen Kandidaten für eine Linie mit Teilung zu erkennen, falls eine Größe des geraden Linienmusters, das durch Integrieren zweier gerader Linienmuster, die unter dem einen oder den mehreren geraden Linienmustern teilweise überlappen, erzeugt wurde, annähernd der repräsentative Wert ist.
  10. Linien mit Teilung extrahierendes Gerät nach einem der Ansprüche 1 bis 6, ferner aufweisend: Berechnungsmittel (4) zum Erhalten eines repräsentativen Wertes von Größen eines oder mehrerer Segmentmuster, die ein oder mehrere gerade Linienmuster strukturieren, die durch das gerade Linien extrahierende Mittel extrahiert wurden; und gerade Linien verarbeitendes Mittel (7) zum Festlegen eines Schwellenwertes basierend auf dem repräsentativen Wert und Verarbeiten der Information des einen oder der mehreren geraden Linienmuster unter Verwendung des Schwellenwertes.
  11. Linien mit Teilung extrahierendes Gerät nach Anspruch 10, worin das Berechnungsmittel den repräsentativen Wert gemäß einem Histogramm von Höhen horizontaler Segmentmuster, die in dem einen oder den mehreren Segmentmustern enthalten sind, oder einem Histogramm von Breiten vertikaler Segmentmuster erhält, die in dem einen oder den mehreren geraden Linienmustern enthalten sind.
  12. Linien mit Teilung extrahierendes Gerät nach Anspruch 10 oder 11, worin das gerade Linien verarbeitende Mittel ferner aufweist: ein gerade Linien löschendes Mittel (9) zum Löschen eines geraden Linienmusters, das aus Segmentmustern besteht, die größer als der Schwellenwert sind, unter dem einen oder den mehreren geraden Linienmustern.
  13. Linien mit Teilung extrahierendes Gerät nach einem der vorhergehenden Ansprüche, ferner aufweisend: Segmente extrahierendes Mittel (3) zum Extrahieren einer Information eines oder mehrerer Segmentmuster aus einem Eingabebild; Speichermittel (2) zum Klassifizieren der Information mehrerer Segmentmuster in eine Information eines großen Segmentmusters und eine Information eines kleinen Segmentmusters; worin das gerade Linien extrahierende Mittel (5) einen Verknüpfungszustand der mehreren Segmentmuster untersucht, und, wenn ein großes Segmentmuster mit einem kleinen Segmentmuster verknüpft ist, ein gerades Linienmuster, das aus den kleinen Segmentmustern besteht, ungeachtet einer Größe des großen Segmentmusters extrahiert.
  14. Linien mit Teilung extrahierendes Gerät nach Anspruch 1, 2 oder 3, worin das gerade Linien extrahierende Mittel (5) ferner aufweist: ein gerade Linien löschendes Mittel (9) zum Löschen eines geraden Linienmusters, das aus Segmentmustern besteht, die größer als ein Schwellenwert sind, unter dem einen oder den mehreren geraden Linienmustern.
  15. Linien mit Teilung extrahierendes Gerät nach Anspruch 1, 2 oder 3, worin das gerade Linien extrahierende Mittel (5) ferner aufweist: ein Graphen erzeugendes Mittel (6) zum Erhalten der Zahl von Pixel, die in einem Segmentmuster einer Standardgröße unter einem oder mehreren Segmentmustern enthalten sind, die das gerade Linienmuster strukturieren, das durch das gerade Linien extrahierende Mittel extrahiert wurde, und Erzeugen eines Graphen, der die Zahl von Pixel um das gerade Linienmuster repräsentiert; und ein gerade Linien löschendes Mittel (9) zum Bestimmen, ob das gerade Linienmuster zu löschen ist oder nicht, auf der Basis einer Gestalt des Graphen.
  16. Linien mit Teilung extrahierendes Gerät nach Anspruch 15, ferner aufweisend: ein Speichermittel (2) zum Anbringen einer Marke an eine Information eines großen Segmentmusters unter dem einen oder den mehreren Segmentmustern und Speichern einer Information des einen oder der mehreren Segmentmuster, worin das Graphen erzeugende Mittel ein Segmentmuster, an das die Marke nicht angebracht ist, unter dem einen oder den mehreren Segmentmustern als das Segmentmuster der Standardgröße erkennt.
  17. Linien mit Teilung extrahierendes Gerät nach Anspruch 15 oder 16, worin: das Graphen erzeugende Mittel das Segmentmuster der Standardgröße in einer Richtung senkrecht zu einer Richtung einer Länge des geraden Linienmusters verschiebt und den Graphen erzeugt, der eine Beziehung zwischen einem Verschiebungsbetrag und der Zahl von Pixel repräsentiert; und das gerade Linien löschende Mittel das gerade Linienmuster löscht, falls die Gestalt des Graphen glatt ist.
  18. Computerlesbares Speichermedium (32, 35, 40), wenn es von einem Computer genutzt wird, um den Computer anzuweisen, die Funktionen auszuführen: Schätzen einer Größe eines Standardmusters, das in einem Eingabebild enthalten ist; Festlegen eines Schwellenwertes auf der Basis einer Information der Größe des Standardmusters; und Extrahieren einer Information eines oder mehrerer gerader Linienmuster aus dem Eingabebild unter Verwendung des Schwellenwertes, worin: die Extrahierfunktion die geraden Linienmuster extrahiert, indem unter Verwendung einer vorbestimmten Maske eine schräge Komponente aus dem Eingabebild ausgeschlossen wird, um ein Segmentmuster zu detektieren, indem ein oder mehrere Segmentmuster in ein gerades Linienmuster integriert werden und ein unnötiges gerades Linienmuster gelöscht wird, um eine Linie mit Teilung unter dem extrahierten einen oder den extrahierten mehreren geraden Linienmustern zu extrahieren, von denen jedes einem oder mehreren integrierten Segmentmustern entspricht.
  19. Computerlesbares Speichermedium (32, 35, 40) nach Anspruch 18, ferner betreibbar, um den Computer anzuweisen, die Funktionen auszuführen: Erhalten eines repräsentativen Wertes von Größen des einen oder der mehreren extrahierten geraden Linienmuster; Festlegen eines Schwellenwertes auf der Basis des repräsentativen Wertes; und Verarbeiten der Information des einen oder der mehreren geraden Linienmuster unter Verwendung des Schwellenwertes.
  20. Computerlesbares Speichermedium (32, 35, 40) nach Anspruch 18, ferner betreibbar, um den Computer anzuweisen, die Funktionen auszuführen: Erhalten eines repräsentativen Wertes von Größen eines oder mehrerer Segmentmuster, die das eine oder die mehreren extrahierten geraden Linienmuster strukturieren; Festlegen eines Schwellenwertes auf der Basis des repräsentativen Wertes; und Verarbeiten der Information des einen oder der mehreren geraden Linienmuster unter Verwendung des Schwellenwertes.
  21. Computerlesbares Speichermedium (32, 35, 40) nach Anspruch 18, ferner betreibbar, um den Computer anzuweisen, die Funktionen auszuführen: Klassifizieren der Information mehrerer extrahierter Segmentmuster in eine Information eines großen Segmentmusters und eine Information eines kleinen Segmentmusters; und Untersuchen eines Verknüpfungszustandes der mehreren Segmentmuster, und, wenn ein großes Segmentmuster mit kleinen Segmentmustern verknüpft ist, Extrahieren eines geraden Linienmusters, das aus den kleinen Segmentmustern besteht, ungeachtet einer Größe des großen Segmentmusters.
  22. Computerlesbares Speichermedium (32, 35, 40) nach Anspruch 18, ferner betreibbar, um einen Computer anzuweisen, die Funktionen auszuführen: Löschen eines geraden Linienmusters, das aus großen Segmentmustern besteht, die größer als ein Schwellenwert sind, unter dem einen oder den mehreren extrahierten geraden Linienmustern.
  23. Computerlesbares Speichermedium (32, 35, 40) nach Anspruch 18, ferner betreibbar, um den Computer anzuweisen, die Funktionen auszuführen: Erhalten der Zahl von Pixel, die in einem Segmentmuster einer Standardgröße unter einem oder mehreren Segmentmustern enthalten sind, die das extrahierte gerade Linienmuster strukturieren, und Erzeugen eines Graphen, der die Zahl von Pixel um das gerade Linienmuster repräsentiert; und Bestimmen, ob das gerade Linienmuster zu löschen ist oder nicht, auf der Basis der Gestalt des Graphen.
  24. Linien mit Teilung extrahierendes Verfahren, aufweisend die Schritte: Schätzen einer Größe eines Standardmusters, das in einem Eingabebild enthalten ist; Festlegen eines Schwellenwertes auf der Basis einer Information der Größe des Standardmusters; und Extrahieren einer Information eines oder mehrerer gerader Linienmuster aus dem Eingabebild unter Verwendung des Schwellenwertes; dadurch gekennzeichnet, dass: der Extrahierschritt die geraden Linienmuster extrahiert, indem unter Verwendung einer vorbestimmten Maske eine schräge Komponente aus dem Eingabebild ausgeschlossen wird, um ein Segmentmuster zu detektieren, indem ein oder mehrere Segmentmuster in ein gerades Linienmuster integriert werden und ein unnötiges gerades Linienmuster, um eine Linie mit Teilung zu extrahieren, unter dem einen oder den mehreren geraden Linienmustern gelöscht wird, von denen jedes einem oder mehreren integrierten Segmentmustern entspricht.
  25. Linien mit Teilung extrahierendes Verfahren nach Anspruch 24, ferner aufweisend die Schritte: Erhalten eines repräsentativen Wertes von Größen des einen oder der mehreren extrahierten geraden Linienmuster; Festlegen eines Schwellenwertes auf der Basis des repräsentativen Wertes; und Verarbeiten der Information des einen oder der mehreren geraden Linienmuster unter Verwendung des Schwellenwertes.
  26. Linien mit Teilung extrahierendes Verfahren nach Anspruch 24, ferner aufweisend die Schritte: Erhalten eines repräsentativen Wertes von Größen eines oder mehrerer Segmentmuster, die das eine oder mehrere extrahierte gerade Linienmuster strukturieren; Festlegen eines Schwellenwertes auf der Basis des repräsentativen Wertes; und Verarbeiten der Information des einen oder der mehreren geraden Linienmuster unter Verwendung des Schwellenwertes.
  27. Linien mit Teilung extrahierendes Verfahren nach Anspruch 24, ferner aufweisend die Schritte: Klassifizieren der Information mehrerer extrahierter Segmentmuster in eine Information eines großen Segmentmusters und eine Information eines kleinen Segmentmusters; und Untersuchen eines Verknüpfungszustands der mehreren Segmentmuster, und, wenn ein großes Segmentmuster mit kleinen Segmentmustern verknüpft ist, Extrahieren eines geraden Linienmusters, das aus den kleinen Segmentmustern besteht, ungeachtet einer Größe des großen Segmentmusters.
  28. Linien mit Teilung extrahierendes Verfahren nach Anspruch 24, ferner aufweisend den Schritt: Löschen eines geraden Linienmusters, das aus Segmentmustern besteht, die größer als ein Schwellenwert sind, unter dem einen oder den mehreren extrahierten geraden Linienmustern.
  29. Linien mit Teilung extrahierendes Verfahren nach Anspruch 24, ferner aufweisend die Schritte: Erhalten der Zahl von Pixel, die in einem Segmentmuster einer Standardgröße unter einem oder mehreren Segmentmustern enthalten sind, die das extrahierte gerade Linienmuster strukturieren, und Erzeugen eines Graphen, der die Zahl von Pixel um das gerade Linienmuster repräsentiert; und Bestimmen, ob das extrahierte gerade Linienmuster zu löschen ist oder nicht, basierend auf einer Gestalt des Graphen.
DE69723220T 1996-12-20 1997-08-13 Gerät und Verfahren zur Extrahierung von Tabellengeraden innerhalb normaler Dokumentbilder Expired - Lifetime DE69723220T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP34218596 1996-12-20
JP34218596 1996-12-20

Publications (2)

Publication Number Publication Date
DE69723220D1 DE69723220D1 (de) 2003-08-07
DE69723220T2 true DE69723220T2 (de) 2004-02-05

Family

ID=18351778

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69723220T Expired - Lifetime DE69723220T2 (de) 1996-12-20 1997-08-13 Gerät und Verfahren zur Extrahierung von Tabellengeraden innerhalb normaler Dokumentbilder

Country Status (3)

Country Link
US (6) US6226402B1 (de)
EP (1) EP0854434B1 (de)
DE (1) DE69723220T2 (de)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7099507B2 (en) * 1998-11-05 2006-08-29 Ricoh Company, Ltd Method and system for extracting title from document image
JP4159720B2 (ja) * 2000-03-15 2008-10-01 株式会社リコー 表認識方法と表認識装置と文字認識装置及び表認識プログラムを記録した記憶媒体
JP3842006B2 (ja) * 2000-03-30 2006-11-08 グローリー工業株式会社 帳票類判別装置、帳票類判別方法、およびこれらの方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP3995185B2 (ja) * 2000-07-28 2007-10-24 株式会社リコー 枠認識装置及び記録媒体
DE10157958B4 (de) * 2000-11-29 2012-11-15 Omron Corp. Bildverarbeitungsverfahren und-vorrichtung
US20020169735A1 (en) * 2001-03-07 2002-11-14 David Kil Automatic mapping from data to preprocessing algorithms
JP3925112B2 (ja) * 2001-06-20 2007-06-06 富士ゼロックス株式会社 画像処理装置
KR100449805B1 (ko) * 2001-12-26 2004-09-22 한국전자통신연구원 붙은 필기체 숫자열의 분할인식방법
US7010331B2 (en) * 2002-05-20 2006-03-07 Kyocera Wireless Corp. Wireless communication device with latch
US7251059B2 (en) * 2002-10-16 2007-07-31 Xerox Corporation System for distinguishing line patterns from halftone screens in image data
JP4538214B2 (ja) * 2002-11-22 2010-09-08 オセ−テクノロジーズ・ベー・ヴエー グラフによる画像分割
US7581169B2 (en) 2005-01-14 2009-08-25 Nicholas James Thomson Method and apparatus for form automatic layout
US8428358B2 (en) * 2005-05-31 2013-04-23 Microsoft Corporation Radical-base classification of East Asian handwriting
US7557963B2 (en) * 2005-08-12 2009-07-07 Seiko Epson Corporation Label aided copy enhancement
US7729546B2 (en) * 2005-12-23 2010-06-01 Lexmark International, Inc. Document segmentation for mixed raster content representation
US20070168382A1 (en) * 2006-01-03 2007-07-19 Michael Tillberg Document analysis system for integration of paper records into a searchable electronic database
JP4329764B2 (ja) * 2006-01-17 2009-09-09 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置および罫線抽出プログラム
JP4424309B2 (ja) * 2006-01-23 2010-03-03 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、文字判定プログラム、および文字判定方法
JP2007336516A (ja) * 2006-05-17 2007-12-27 Konica Minolta Business Technologies Inc 画像処理プログラム、画像処理装置、および画像処理方法
JP4861845B2 (ja) * 2007-02-05 2012-01-25 富士通株式会社 テロップ文字抽出プログラム、記録媒体、方法及び装置
US7873215B2 (en) * 2007-06-27 2011-01-18 Seiko Epson Corporation Precise identification of text pixels from scanned document images
US8108764B2 (en) * 2007-10-03 2012-01-31 Esker, Inc. Document recognition using static and variable strings to create a document signature
JP5208540B2 (ja) * 2008-02-27 2013-06-12 株式会社Pfu 画像ファイル振分方法、画像ファイル振分装置、および、プログラム
JP4491488B2 (ja) * 2008-03-03 2010-06-30 シャープ株式会社 画像処理装置、画像読取装置、画像データ出力処理装置、および画像処理方法
US8438472B2 (en) 2009-01-02 2013-05-07 Apple Inc. Efficient data structures for parsing and analyzing a document
JP5262778B2 (ja) * 2009-02-05 2013-08-14 富士ゼロックス株式会社 画像処理装置及び画像処理プログラム
EP2416282A4 (de) * 2009-03-31 2016-09-28 Fujitsu Frontech Ltd Zeichenerkennungseinrichtung und zeichenerkennungsverfahren
US8181634B2 (en) * 2010-05-17 2012-05-22 GM Global Technology Operations LLC Engine including positive crankcase ventilation
US20120092374A1 (en) * 2010-10-19 2012-04-19 Apple Inc. Systems, methods, and computer-readable media for placing a representation of the captured signature in a document
JP5640645B2 (ja) * 2010-10-26 2014-12-17 富士ゼロックス株式会社 画像処理装置及び画像処理プログラム
JP5650564B2 (ja) * 2011-03-01 2015-01-07 株式会社ユビキタスエンターテインメント スプレッドシート制御プログラム、スプレッドシート制御装置及びスプレッドシートの制御方法
US8509525B1 (en) * 2011-04-06 2013-08-13 Google Inc. Clustering of forms from large-scale scanned-document collection
JP5194160B1 (ja) * 2011-10-19 2013-05-08 東芝テック株式会社 情報処理装置、情報処理方法及びプログラム
JP5854774B2 (ja) * 2011-11-11 2016-02-09 株式会社Pfu 画像処理装置、直線検出方法及びコンピュータプログラム
US20150046862A1 (en) * 2013-08-11 2015-02-12 Silicon Graphics International Corp. Modifying binning operations
US11144184B2 (en) 2014-01-23 2021-10-12 Mineset, Inc. Selection thresholds in a visualization interface
JP6272061B2 (ja) * 2014-01-31 2018-01-31 キヤノン株式会社 画像形成装置、その制御方法、及びプログラム
JP6373664B2 (ja) * 2014-07-09 2018-08-15 株式会社東芝 電子機器、方法及びプログラム
JP6564136B2 (ja) * 2016-05-31 2019-08-21 株式会社Pfu 画像処理装置、画像処理方法、および、プログラム
US10740123B2 (en) * 2017-01-26 2020-08-11 Nice Ltd. Method and system for accessing table content in a digital image of the table
US10540167B2 (en) 2017-01-26 2020-01-21 Nice Ltd. Image based method and system for building object model and application states comparison and graphic-based interoperability with an application
US11995428B2 (en) 2017-01-26 2024-05-28 Nice Inc. Method and system for providing image-based interoperability with an application
JP6903966B2 (ja) * 2017-03-16 2021-07-14 富士フイルムビジネスイノベーション株式会社 情報処理装置、情報処理システム及びプログラム
US11790110B2 (en) 2021-02-09 2023-10-17 Nice Ltd. System and method for preventing sensitive information from being recorded

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07107694B2 (ja) 1984-08-31 1995-11-15 株式会社日立製作所 文書処理装置
JPH02138674A (ja) 1988-08-24 1990-05-28 Hitachi Ltd 文書処理方法及び装置
US5101448A (en) * 1988-08-24 1992-03-31 Hitachi, Ltd. Method and apparatus for processing a document by utilizing an image
US5129012A (en) 1989-03-25 1992-07-07 Sony Corporation Detecting line segments and predetermined patterns in an optically scanned document
JP2940936B2 (ja) * 1989-06-06 1999-08-25 株式会社リコー 表領域識別方法
KR950006410B1 (ko) * 1989-10-20 1995-06-15 가부시기갸이샤 히다찌세이사꾸쇼 서식문서의 화상표시/처리방법 및 장치
US5191612A (en) * 1990-03-13 1993-03-02 Fujitsu Limited Character recognition system
US5307422A (en) * 1991-06-25 1994-04-26 Industrial Technology Research Institute Method and system for identifying lines of text in a document
JP3278471B2 (ja) * 1991-11-29 2002-04-30 株式会社リコー 領域分割方法
US5335290A (en) * 1992-04-06 1994-08-02 Ricoh Corporation Segmentation of text, picture and lines of a document image
US5625719A (en) * 1992-10-19 1997-04-29 Fast; Bruce B. OCR image preprocessing method for image enhancement of scanned documents
JP2951814B2 (ja) * 1993-02-25 1999-09-20 富士通株式会社 画像抽出方式
JPH075740A (ja) 1993-06-18 1995-01-10 Konica Corp カラー画像形成装置
JP3042945B2 (ja) * 1993-07-07 2000-05-22 富士通株式会社 画像抽出装置
JPH0877294A (ja) 1994-09-06 1996-03-22 Toshiba Corp 文書画像処理装置
US5898795A (en) * 1995-12-08 1999-04-27 Ricoh Company, Ltd. Character recognition method using a method for deleting ruled lines

Also Published As

Publication number Publication date
US20010002215A1 (en) 2001-05-31
US20010016069A1 (en) 2001-08-23
US20010031085A1 (en) 2001-10-18
US6917706B2 (en) 2005-07-12
US6975762B2 (en) 2005-12-13
US6928188B2 (en) 2005-08-09
US6226402B1 (en) 2001-05-01
EP0854434A1 (de) 1998-07-22
EP0854434B1 (de) 2003-07-02
US6754385B2 (en) 2004-06-22
DE69723220D1 (de) 2003-08-07
US20010041006A1 (en) 2001-11-15
US7039235B1 (en) 2006-05-02

Similar Documents

Publication Publication Date Title
DE69723220T2 (de) Gerät und Verfahren zur Extrahierung von Tabellengeraden innerhalb normaler Dokumentbilder
DE3926327C2 (de) Verfahren und System zum Erkennen von Zeichen auf einem Medium
DE69724755T2 (de) Auffinden von Titeln und Photos in abgetasteten Dokumentbildern
DE4311172C2 (de) Verfahren und Einrichtung zum Identifizieren eines Schrägenwinkels eines Vorlagenbildes
DE3650554T2 (de) Speicherungs- und Wiederauffindungsverfahren für Bilddaten
DE69432585T2 (de) Verfahren und Gerät zur Auswahl von Text und/oder Non-Text-Blöcken in einem gespeicherten Dokument
DE60129872T2 (de) Verfahren zur Extrahierung von Titeln aus numerischen Bildern
DE69333694T2 (de) Verfahren und Anordnung zur Bildverarbeitung
DE60303202T2 (de) System und verfahren zum identifizieren und extrahieren von zeichenketten aus erfassten bilddaten
DE69724557T2 (de) Dokumentenanalyse
DE3716787C2 (de)
JP2802036B2 (ja) 文書処理のためのイメージ・セグメント化およびイメージ要素分類の方法
DE69637073T2 (de) Prozessor und verarbeitungsverfahren für dokumente
DE60308944T2 (de) Layoutanalyse eines handschriftlichen Dokuments für Freiform-Eingabe mit digitaler Tinte
DE19814075B4 (de) Verfahren zum Abtasten und Erkennen mehrerer Fotografien und zum Beseitigen von Randfehlern
DE102009036474B4 (de) Bilddaten-Kompressionsverfahren, Mustermodell-Positionierungsverfahren bei Bildverarbeitung, Bildverarbeitungsvorrichtung, Bildverarbeitungsprogramm und computerlesbares Aufzeichnungsmedium
DE10317917B4 (de) System und Verfahren zum Umgrenzen und Klassifizieren von Regionen innerhalb einer graphischen Abbildung
DE19953608B4 (de) Vorrichtung und Verfahren zum Erkennen eines Fonts eines Textes in einem Dokumentenverarbeitungssystem
DE3722444A1 (de) Verfahren und vorrichtung zum erzeugen von entwurfsmusterdaten
DE60020038T2 (de) Verfahren zum Verarbeiten eines numerischen Bildes
DE19705757A1 (de) Verfahren und Gerät für das Design eines hoch-zuverlässigen Mustererkennungs-Systems
DE4119091C2 (de) Verfahren zum Erkennen von Zeichen, insbesondere Schriftzeichen und Einrichtung zur Durchführung des Verfahrens
Prusty et al. Indiscapes: Instance segmentation networks for layout parsing of historical indic manuscripts
DE69813416T2 (de) Vorrichtungen zur Linienrichtungsbestimmung, Bildschrägeerfassung und Bildschrägekorrektur.
DE60024535T2 (de) Verfahren zur Zeichentrennung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: SEEGER SEEGER LINDNER PARTNERSCHAFT PATENTANWAELTE