DE69032344T2 - Method of measuring inclination angles - Google Patents

Method of measuring inclination angles

Info

Publication number
DE69032344T2
DE69032344T2 DE69032344T DE69032344T DE69032344T2 DE 69032344 T2 DE69032344 T2 DE 69032344T2 DE 69032344 T DE69032344 T DE 69032344T DE 69032344 T DE69032344 T DE 69032344T DE 69032344 T2 DE69032344 T2 DE 69032344T2
Authority
DE
Germany
Prior art keywords
image
locations
transition
line
run
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69032344T
Other languages
German (de)
Other versions
DE69032344D1 (en
Inventor
A Lawrence Spitz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xerox Corp
Original Assignee
Xerox Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xerox Corp filed Critical Xerox Corp
Publication of DE69032344D1 publication Critical patent/DE69032344D1/en
Application granted granted Critical
Publication of DE69032344T2 publication Critical patent/DE69032344T2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • 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/146Aligning or centring of the image pick-up or image-field
    • G06V30/1475Inclination or skew detection or correction of characters or of image to be recognised
    • G06V30/1478Inclination or skew detection or correction of characters or of image to be recognised of characters or characters lines
    • 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)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Character Input (AREA)
  • Image Input (AREA)
  • Facsimile Scanning Arrangements (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Image Processing (AREA)

Description

Die vorliegende Erfindung betrifft allgemein ein Verfahren zum Feststellen eines Schrägwinkels in einem gescannten Bild und insbesondere ein Verfahren zum Feststellen des Schrägwinkels eines Bildes, das auf einer Zählung von bestimmten Eigenschaften des Bildes basiert, wobei das Bild in komprimierter Form repräsentiert werden kann.The present invention relates generally to a method for detecting a skew angle in a scanned image, and more particularly to a method for detecting the skew angle of an image based on a count of certain properties of the image, where the image can be represented in compressed form.

Das menschliche Auge kann sehr kleine Abweichungen in der Orthogonalität feststellen, insbesondere bei digitalen Bildern mit einfachen Strukturen, wo auflösungsbedingte Darstellungsfehler Diskontinuitäten verursachen, die diese Abweichungen verstärkt erscheinen lassen. Man weiß wenig über die menschliche Empfindlichkeit gegenüber der Schrägstellung von Text oder komplizierten Grafikbildern. Wenn jedoch Information in einem wohldefinierten Koordinatenrahmen präsentiert wird, wird eine Schrägstellung immer stark überschätzt. Das Vorhandensein einer Schrägstellung ist ästhetisch störend und weist auch pragmatische Effekte auf. Das Vorhandensein einer Schrägstellung kann zum Beispiel darin resultieren, daß nicht der gesamte Quelenbereich des Bildes erfaßt wird, da ein oder mehrere Ecken aufgrund der Schrägstellung außerhalb des Sichifeldes des Scanners liegen. Schräge Bilder können nicht so schnell oder so kompakt komprimiert werden wie korrekt im Koordinatensystem der Seite ausgerichtete Bilder. Schräge Felder sind schwieriger in einem Standard-Seitenlayout oder in Kompositionsoperationen wie Beschneiden und Einfügen zu verwenden.The human eye can detect very small deviations in orthogonality, especially in digital images with simple structures, where resolution-related display errors cause discontinuities that magnify these deviations. Little is known about human sensitivity to skew of text or complex graphic images. However, when information is presented in a well-defined coordinate frame, skew is always greatly overestimated. The presence of skew is aesthetically disturbing and also has pragmatic effects. For example, the presence of skew can result in not the entire source area of the image being captured because one or more corners are outside the scanner's field of view due to skew. Skew images cannot be compressed as quickly or as compactly as images correctly aligned in the page's coordinate system. Skew fields are more difficult to use in a standard page layout or in composition operations such as cropping and pasting.

Eine Schrägstellung kann auf verschiedene Weise entstehen, unter anderem durch Schwierigkeiten beim Papiereinzug während der Digitalisierung oder vor der Digitasierung beim Fotokopieren. In einer elektronisches Reprografie-Umgebung, wo eine Wiedergabe durch das digitale Scannen und Drucken vorgenommen wird, so daß Bitmaps resultieren, kann eine frühe und korrekte Feststellung eines Schrägwinkels den Bedarf an Ressourcen zum Korrigieren und Speichern des schrägen Bildes beträchtlich reduzieren.Skew can occur in a number of ways, including paper feeding difficulties during digitization or prior to digitization during photocopying. In an electronic reprographics environment, where reproduction is performed by digital scanning and printing, resulting in bitmaps, early and correct detection of skew can significantly reduce the need for resources to correct and store the skew image.

Die Bestimmung des Schrägwinkels ist herkömmlicherweise ein zweistufiges Verfahren. Zuerst wird das Merkmal bestimmt, auf dem die Ausrichtungsqualität basieren soll, und dann werden verschiedene Tests angewendet, um festzustellen, ob die vorgeschlagene Ausrichtung in Bezug auf eine vorbestimmte Vergleichsausrichtung oder einen anderen Standard gut ist. Der hier verwendete Begriff "Ausrichtung" bezeichnet die Orientierung der Komponenten eines Bildes.Determining skew angle is traditionally a two-step process. First, the feature on which the alignment quality is to be based is determined, and then various tests are applied to determine whether the proposed alignment is good relative to a predetermined comparison alignment or other standard. The term "alignment" as used here refers to the orientation of the components of an image.

Dabei wird die Bestimmung des Schrägwinkels auf Bilddaten in nicht komprimierter Form vorgenommen. Der Begriff "Bild" soll dabei ein Muster oder eine Anordnung von unterscheidbaren Bereichen bezeichnen, die eine Ähnlichkeit, eine Wiedergabe oder keines von beiden darstellen und typischerweise jedoch nicht ausschließlich auf einer gedruckten Seite gefunden werden können. Mit dem Begriff "Bilddaten" werden hier Daten bezeichnet, die typischerweise jedoch nicht ausschließlich ein digitales Format aufweisen, das durch ein entsprechendes System verwendet werden kann, um ein Bild zu reproduzieren. Unter Daten in einem "komprimierten" Format sind Daten zu verstehen, die aus Daten in einem "nicht komprimierten" Format in ihrer Größe, d.h. in der für das Speichern der Daten erforderlichen Bitgröße, reduziert wurden, wobei ein beliebiges Verfahren für das Komprimieren der Daten verwendet werden kann. Die Bestimmung eines Schrägwinkels aus nicht komprimierten Bilddaten ist bisher nicht vorgeschlagen worden. Es wurde aufgrund der allgemeinen Gedankens nicht in Betracht gezogen, daß das Bestimmen eines Schrägwinkels bei nicht komprimierten Bilddaten einen zusätzlichen, und möglicherweise unnötigen Schritt zum Umwandeln des Bildes in ein nicht komprimiertes Datenformat voraussetzen würde.The determination of the skew angle is carried out on image data in uncompressed form. The term "image" is intended to refer to a pattern or an arrangement of distinguishable areas that represent a similarity, a reproduction or neither and can typically but not exclusively be found on a printed page. The term "image data" here refers to data that typically but not exclusively has a digital format that can be used by an appropriate system to reproduce an image. Data in a "compressed" format is understood to mean data that has been reduced in size, i.e. in the bit size required to store the data, from data in an "uncompressed" format, whereby any method for compressing the data can be used. The determination of a skew angle from uncompressed image data has not yet been proposed. It was not considered, due to general thinking, that determining a skew angle in uncompressed image data would require an additional, and possibly unnecessary, step of converting the image into an uncompressed data format.

Eine Technik zum Feststellen des Schrägwinkels in nicht komprimierten Bildem ist in Henry S. Baird: "The Skew Angle of Printed Documents" in Proceedings of SPSE Symposium on Hybrid Imaging Systems, 1987, auf den Seiten 21 bis 24 beschrieben (diese Veröffentlichung wird im folgenden einfach als "Baird" angegeben). Baird muß dabei zu Beginn zwischen einer Marken oder verbundenen Komponenten unterscheiden, die Text wiedergeben und solchen die keinen Text wiedergeben. Unter "Text"-Marken oder verbundenen Komponenten sind hier Buchstaben, Zahlen, Satzzeichen und ähnliche Marken zu verstehen. Diese sind von "Nicht-Text"-Marken oder verbunden Komponenten zu unterscheiden, die keinen Text wiedergeben, sondern typischerweise Grafiken, Symbole oder illustrationsartige Teile eines Bildes sind. Wegen des für das Lokalisieren von Bezugspunkten verwendeten Verfahrens kann Bairds Technik nur bei Textbildern sinnvolle Ergebnisse erzielen. Die Klassifikation von Text wird durch Baird auf der Basis der maximalen Dimension einer Textmarke vorgenommen, die kleiner oder gleich dem "m" in einer vorbestimmten maximalen Fontgröße von z.B. 24 Punkten ist.A technique for determining the skew angle in uncompressed images is described in Henry S. Baird: "The Skew Angle of Printed Documents" in Proceedings of SPSE Symposium on Hybrid Imaging Systems, 1987, pages 21 to 24 (this publication is referred to simply as "Baird"). Baird must first distinguish between a mark or connected component that represents text and those that do not represent text. "Text" marks or connected components here are letters, numbers, Punctuation marks and similar marks. These are to be distinguished from "non-text" marks or connected components that do not represent text but are typically graphics, symbols or illustration-like parts of an image. Because of the method used to locate reference points, Baird's technique can only produce meaningful results for text images. The classification of text is made by Baird on the basis of the maximum dimension of a text mark that is less than or equal to "m" in a predetermined maximum font size of e.g. 24 points.

Der Ausrichtungsalgorithmus von Bairds Technik operiert auf der Basis der Ausrichtung von ausgewählten Merkmalen, die mit jeder Marke oder verbundenen Komponente verbunden sind. Der Begriff "Marke" soll dabei im folgenden verwendet werden, um eine verbundene Komponente zu bezeichnen. Eine "verbundene Komponente" wird für die vorliegende Beschreibung als eine Gruppe von farbigen Einheiten definiert, die typischerweise Bildelemente ("Pixel") gleicher Farbe sind und einander berühren. Ein gewöhnlich für diesen Zweck verwendetes Merkmal ist der "Bezugspunkt". Ein "Bezugspunkt" soll hier einen Punkt auf einer Marke oder einen mit einer Marke assoziierten Punkt bezeichnen, der durch einen vorbestimmten Satz von Regeln lokalisiert wird (gleiche Regeln für jede Marke) und der für bestimmte Zwecke als eine Repräsentation eines Merkmals der Marke verwendet werden kann. Baird verwendet zum Beispiel das Bodenzentrum einer Begrenzungsbox um jede Marke als Bezugspunkt. Bairds Bezugspunkte 10 sind in Fig. 1a der beigefügten Zeichnungen als Fadenkreuze auf den Bezugsboxen 12 um die Marken 14 gezeigt.The alignment algorithm of Baird's technique operates on the basis of the alignment of selected features associated with each mark or connected component. The term "mark" shall be used hereinafter to refer to a connected component. A "connected component" is defined for the purposes of this specification as a group of colored units, typically picture elements ("pixels") of the same color, touching each other. A feature commonly used for this purpose is the "reference point". A "reference point" shall be used here to refer to a point on a mark or a point associated with a mark that is located by a predetermined set of rules (same rules for each mark) and that can be used for certain purposes as a representation of a feature of the mark. For example, Baird uses the ground center of a bounding box around each mark as a reference point. Baird's reference points 10 are shown in Fig. 1a of the accompanying drawings as crosshairs on the reference boxes 12 around the marks 14.

In einer perfekt ausgerichteten horizontalen Zeile von englischem Text zum Beispiel liegt jeder Bezugspunkt auf derselben horizontalen Linie 16 an der Basis der Zeichen (diese Linie wird als Basislinie bezeichnet), wobei Zeichen mit einem Punkt, wie zum Beispiel das "i" in Fig. 1a, bestimmte Satzzeichen und Zeichen mit Unterlängen, d.h. mit Teilen des Zeichens, die unter die Basislinie reichen, wie zum Beispiel die Kleinbuchstaben "g" und "p" usw. eine Ausnahme darstellen. Da der Bezugspunkt jeder verbundenen Komponente zugewiesen wird, sind bei Zeichen mit Punkt wie "i" oder "j" und viele Satzzeichen (";?!:") mehrere Bezugspunkte pro Zeichen gegeben, wobei wenigstens einer dieser Punkte gegenüber der Basislinie wesentlich fehlausgerichtet ist. Zeichen mit Untenängen ergeben Bezugspunkte, die von der Basislinie enifemt sind, aber in der Nähe derselben liegen. Unterlängen sind für Bairds Verfahren statistisch zu selten, um ein Mittel für das Erkennen und Kompensieren des Effekts derselben auf die Bestimmung der tatsächlichen Basislinie zu bieten. Dabei ist zu beachten, daß jeweils genau ein Bezugszeichen pro verbundener Komponente im Bild gegeben ist.For example, in a perfectly aligned horizontal line of English text, each reference point lies on the same horizontal line 16 at the base of the characters (this line is called the baseline), with the exception of characters with a dot, such as the "i" in Fig. 1a, certain punctuation marks and characters with descenders, i.e. with parts of the character extending below the baseline, such as the lowercase letters "g" and "p", etc. Since the reference point is assigned to each connected component, dotted characters such as "i" or "j" and many punctuation marks (";?!:") have multiple reference points per characters are given, with at least one of these points being significantly misaligned with respect to the baseline. Characters with descenders give reference points that are distant from the baseline but close to it. Descenders are statistically too rare for Baird's method to provide a means of detecting and compensating for their effect on the determination of the true baseline. Note that there is exactly one reference character per connected component in the image.

Baird berechnet den Schrägwinkel, indem er die Anzahl der Bezugspunkte pro "Zeile" für verschiedene Rotationsausrichtungen berechnet. Unter "Zeile" ist hier zum Beispiel eine Vielzahl von imaginären Scanzeilen zu verstehen, die quer über das Dokument und senkrecht zu einem ausgewählten Merkmal, wie dem Rand oder dem Seitenrand ausgerichtet sind. Die Rotationsausrichtungen werden durch eine trigonometrische Transiation der Bezugspunkte berechnet.Baird calculates the skew angle by calculating the number of reference points per "line" for various rotational orientations. For example, "line" here means a multitude of imaginary scan lines aligned across the document and perpendicular to a selected feature, such as the margin or the page edge. The rotational orientations are calculated by a trigonometric translation of the reference points.

Mit Bezug auf Fig. 1b und 1c der Zeichnungen wird das Zählen der Anzahl von Bezugspunkten pro Zeile bewerkstelligt, indem die Lokationen der Bezugspunkte auf eine Akkumulatorzeile 18 projiziert werden, die senkrecht zu der Projektionsrichtung ausgerichtet ist, wie durch den Pfeil p angegeben. Die Akkumulatorzeile 18 ist in "Bins" 20 mit einer einheitlichen vorbestimmten Höhe H unterteilt, die zum Beispiel ein Drittel der Höhe eines 6-Punkt-Zeichens ausmacht. Die Höhe H kann bei Bedarf variiert werden und kann nur zwei Pixel groß sein. Wenn die Höhe H reduziert wird, erhöht sich jedoch die Berechnungszeit. Wenn sich H der Höhe der Zeichen annähert, verschlechtert sich die Leistung der Schrägwinkelbestimmung. Was sie Bins betrifft, ist genau ein Bin pro Zeile vorgesehen. Die Anzahl der Bezugspunkte für eine ausgewählte Zeile ist also gleich der Anzahl der Bezugspunkte, die in das dieser Zeile entsprechende Bin projiziert sind.Referring to Figures 1b and 1c of the drawings, counting the number of reference points per line is accomplished by projecting the locations of the reference points onto an accumulator line 18 oriented perpendicular to the projection direction as indicated by the arrow p. The accumulator line 18 is divided into "bins" 20 of a uniform predetermined height H, which is, for example, one third of the height of a 6-point character. The height H can be varied if necessary and can be as small as two pixels. However, as the height H is reduced, the computation time increases. As H approaches the height of the characters, the performance of the skew angle determination deteriorates. As for bins, exactly one bin per line is provided. The number of reference points for a selected line is thus equal to the number of reference points projected into the bin corresponding to that line.

Da dieses Verfahren in einer relativ kleinen Anzahl von Bezugspunkten resultiert (was von der Beschaffenheit des Bildes abhängt), wird die Ausrichtung effektiv gemacht, indem die Ausrichtung auf der Basis der Summe einer positiven Potenz von größer eins, z.B. zwei (Summe der Quadrate), der Zahlungen der Bezugspunkte vorgenommen wird, die in jeder der rotationsausgerichteten Bins erscheinen. Die Varianz der Verteilung wird maximiert, indem die Summe der Quadrate der Zählungen maximiert wird, so daß ein Index der "Potenz" der Ausrichtung resultiert, aus der der Schrägwinkel bestimmt wird. Fig. ib zeigt die Positionen der Bezugspunkte 10 und die relative Größe jedes Bins 20 auf einem Textbeispiel, bei der die Bins nicht mit dem schrägen Text ausgerichtet sind. Fig. 1c zeigt die Verteilung der Bezugspunkte desselben schrägen Bildes von Fig. 1b in ausgerichteten Bins.Since this method results in a relatively small number of reference points (depending on the nature of the image), the alignment is made effective by performing the alignment based on the sum of a positive power of greater than one, e.g. two (sum of squares), of the counts of the fiducials appearing in each of the rotationally aligned bins. The variance of the distribution is maximized by maximizing the sum of the squares of the counts, resulting in an index of the "power" of alignment from which the skew angle is determined. Fig. ib shows the positions of the fiducials 10 and the relative size of each bin 20 on a sample text where the bins are not aligned with the skew text. Fig. 1c shows the distribution of fiducials of the same skew image of Fig. 1b in aligned bins.

Die Berechnung der Potenz jeder einzelnen aus einer Vielzahl von Ausrichtungen erfordert, daß die Positionen jedes Bezugspunktes bekannt sind. Insbesondere werden die Koordinaten eines Bezugspunktes verwendet, um den Bezugspunkt mathematisch zu um einen Winkel und um eine Distanz von einem Ursprung zu einem neuen Satz von Koordinaten parallelzuverschieben. Dies wird für die ganze Sammlung von Bezugspunkten vorgenommen, wobei die Potenzen der Ausrichtungen vor und nach der Translation miteinander verglichen werden. Für jeden Vergleich wird der Winkel, der der Ausrichtung mit der größten Potenz entspricht, behalten. Nachdem alle Winkelausrichtungen innerhalb eines ausgewählten Bereichs auf diese Weise miteinander verglichen wurden, kann angenommen werden, daß der Winkel, der der Ausrichtung mit der größten Potenz entspricht der größte Schrägwinkel ist. Bei einer schwachen Ausrichtung oder bei mehrfachen Ausrichtungen muß diese Annahme jedoch auf andere Weise verifiziert werden.Calculating the power of each of a multitude of orientations requires that the positions of each datum point be known. In particular, the coordinates of a datum point are used to mathematically translate the datum point by an angle and a distance from an origin to a new set of coordinates. This is done for the entire collection of datum points, comparing the powers of the orientations before and after translation. For each comparison, the angle corresponding to the orientation with the largest power is retained. After all angular orientations within a selected range have been compared in this way, it can be assumed that the angle corresponding to the orientation with the largest power is the largest oblique angle. However, in the case of weak orientation or multiple orientations, this assumption must be verified in some other way.

Die vorliegende Erfindung gibt ein Verfahren zum Bestimmen eines Schrägwinkels an, das eine Anzahl von Problemen und Nachteilen beseitigt.The present invention provides a method for determining a skew angle that eliminates a number of problems and disadvantages.

Die veröffentlichte internationale Anmeldung WO89/05495 gibt einen Detektor für eine Schrägstellung für ein digitales Verarbeitungssystem an, wobei jede Zeile in einem Bild von Videodaten in kontinuierliche Läufe von weißen Pixeln organisiert ist, wobei die Läufe mit Längen unterhalb eines gegebenen Schweliwertes zu schwarzen Pixeln umgewandelt werden. Die Daten werden dann in Läufe von schwarzen Pixeln organisiert, wobei die Startposition des längsten schwarzen Pixels für jede horizontale Zeile notiert wird. Der Schrägwinkel wird aus der relativen Distanz zwischen den notierten schwarzen Startpositionen und den Startpositionen der darauffolgenden Zeilen berechnet.Published international application WO89/05495 discloses a skew detector for a digital processing system, wherein each line in a frame of video data is organized into continuous runs of white pixels, with runs having lengths below a given threshold being converted to black pixels. The data is then organized into runs of black pixels, with the starting position of the longest black pixel for each horizontal line. The skew angle is calculated from the relative distance between the noted black start positions and the start positions of the following lines.

Die vorliegende Erfindung gibt ein Verfahren nach Anspruch 1 zum Betreiben eines Prozessors, der für das Zugreifen auf eine ein Bild definierende Datenstruktur verbundenen ist, und Verfahren zum Bestimmen eines Schrägwinkels eines Bildes nach den Ansprüchen 4 und 8 an.The present invention provides a method according to claim 1 for operating a processor connected for accessing a data structure defining an image, and methods for determining a skew angle of an image according to claims 4 and 8.

Bei Bairds Verfahren zum Bestimmen eines Schrägwinkels ist das Problem gegeben, daß die Distanz zwischen dem Boden der Marke und dem Boden der Umgebungsbox zunehmen kann, wenn sich der Schrägwinkel vergrößert. Diese Differenz erhöht sich als eine Sinusfunktion des Schrägwinkels. Dies verursacht das Problem von Fehlern in der Zählung der Bezugspunkte, was wiederum die Bestimmung des Schrägwinkels mit einem Quadrat des Fehlers beeinflußt.The problem with Baird's method of determining a skew angle is that the distance between the bottom of the marker and the bottom of the surrounding box can increase as the skew angle increases. This difference increases as a sine function of the skew angle. This causes the problem of errors in the counting of the reference points, which in turn affects the determination of the skew angle by a square of the error.

Dieses Problem kann durch das Bestimmen des Schrägwinkels auf der Grundlage von auf der Marke selbst lokalisierten Bezugspunkten gelöst werden. Auf diese Weise trägt die Größe des Schrägwinkels nicht zu einer fehlerhaften Bestimmung des Winkels bei.This problem can be solved by determining the skew angle based on reference points located on the mark itself. In this way, the size of the skew angle does not contribute to an erroneous determination of the angle.

Es hat sich herausgestellt, daß die Zeilenenden einen nützlichen Merkmalssatz bilden, um darauf eine Bestimmung des Schrägwinkels zu basieren. Ein besonders nützlicher Merkmalssatz sind die an oder in der Nähe einer Basislinie lokalisierten Zeilenenden bei horizontal ausgerichteten Bildern oder eine vertikale Zeile bei spaltenweise ausgerichteten Bildern. Das Feststellen von Zeilenenden in generischen Bildern hat sich als eine schwierige Aufgabe herausgestellt. Es ist jedoch ein Verfahren gefunden worden, das einen anderen Aspekt der vorliegenden Erfindung darstellt, um eine Gruppe von Merkmalen festzustellen, die eine Gruppe von Endzeilen umfaßt. Der Merkmalssatz ist in seiner Größe beschränkt, so daß die Effektivität bei der Verwendung der Zeilenenden nicht herabgesetzt wird. Durch das Vergleichen einer Scanzeile mit einer darauffolgenden Scanzeile können Pixelfarbübergänge lokalisiert werden. Die richtige Wahl der Pixelfarbübergänge kann einen Satz von Merkmalen ergeben, darunter Zeilenenden, die sehr effektiv verwendet werden können, um einen Schrägwinkel zu bestimmen.It has been found that the line ends form a useful set of features on which to base a determination of the skew angle. A particularly useful set of features are the line ends located at or near a baseline in horizontally oriented images or a vertical line in column-oriented images. Detecting line ends in generic images has proven to be a difficult task. However, a method has been found which represents another aspect of the present invention for detecting a set of features comprising a group of end lines. The set of features is limited in size so that the effectiveness of using the line ends is not reduced. By comparing a scan line with a subsequent scan line, The correct choice of pixel color transitions can yield a set of features, including line endings, that can be used very effectively to determine a skew angle.

Ein anderes Problem bei Bairds Verfahren zur Bestimmung des Schrägwinkels besteht darin, daß rechenaufwendige Verfahren zur Lokation der Merkmale (Bezugspunkte) erforderlich sind. Bei Bairds Verfahren muß nicht nur die Marke definiert werden, sondern es muß auch eine Begrenzungsbox um die Marke herum erstellt werden, wobei angrenzende Box auch noch lokalisiert werden muß.Another problem with Baird's method for determining the skew angle is that it requires computationally intensive methods for locating the features (reference points). With Baird's method, not only the mark must be defined, but a bounding box must also be created around the mark, and the adjacent box must also be located.

Dieses Problem kann gelöst werden, indem die Bezugspunkte durch einen Vergleich des Scannens einer ersten Zeile mit dem Scannen einer darauffolgenden Zeile bestimmt werden. Die Lokation der Bezugspunkte entspricht der Lokation von ausgewählten auf einer ersten Scanzeile lokalisierten topographischen Merkmalen, die keine entsprechenden topographischen Merkmalen auf der darauffolgenden Zeile oder in der vorhergehenden Zeile aufweisen. Unter "topographischem Merkmal" soll in der vorliegenden Beschreibung das Merkmal einer Marke, eines Bildes oder eines Teils davon bezeichnen, das auf geometrischen Konfigurationseigenschaften, wie Form, Größe, Krümmung, Überlappung usw. beruht. Es ist von "nicht topographischen" Merkmalen zu unterscheiden, die Merkmale einer Marke, eines Bildes oder eines Teils eines Bildes sind, aber nicht auf der geometrischen Konfiguration beruhen, sondern auf einem anderen Attribut wie der Farbe, der Schattierung usw.This problem can be solved by determining the reference points by comparing the scanning of a first line with the scanning of a subsequent line. The location of the reference points corresponds to the location of selected topographical features located on a first scan line that do not have corresponding topographical features on the subsequent line or in the previous line. In the present description, "topographical feature" is intended to mean the feature of a mark, image or part thereof that is based on geometric configuration properties such as shape, size, curvature, overlap, etc. It is to be distinguished from "non-topographical" features that are features of a mark, image or part of an image but are not based on the geometric configuration but on another attribute such as color, shade, etc.

Es hat sich herausgestellt, daß Bairds Verfahren zur Schrägwinkelbestimmung nur bei Text sinnvolle Ergebnisse erzeugt. Dies ist eine Folge des für die Bestimmung der Lokation des Bezugspunktes verwendeten Verfahrens. Es wird eine Begrenzungsbox um die Marke herum erstellt, wobei das Bodenzentrum der Begrenzungsbox als Bezugspunkt verwendet wird. Diese Wahl wurde aufgrund der Annahme gemacht, daß die Positionen von Textmarken ausgerichtet sind, während die Positionen von Nicht-Text-Marken dies nicht notwendigerweise sind. Wenn Begrenzungsboxen um Nicht-Text-Marken herum erstellt werden, erscheinen die für die Marken erhaltenen Bezugspunkte als Rauschen, was von den relevanten Daten ablenkt, die für die Bestimmung des Schrägwinkels benötigt werden. Deshalb sieht ein Aspekt der vorliegenden Erfindung vor, daß die Bestimmung des Schrägwinkels bei Textbildern und Nicht-Textbildern sowie auch bei Kombinationen aus denselben vorgenommen werden kann. Da die Bestimmung des Schrägwinkels auf Bezugspunkten basiert, die auf den Marken selbst lokalisiert sind, brauchen keine Begrenzungsboxen erstellt werden. Die für Nicht-Text-Marken erhaltenen Bezugspunkte tragen in Übereinstimmung mit diesem Aspekt wesentlich zur Genauigkeit des Ergebnisses bei. Auf diese Weise können die Beschränkungen des Verfahrens von Baird, das sich nur auf Text bezieht, überwunden werden.It has been found that Baird's method of skew determination produces meaningful results only for text. This is a consequence of the method used to determine the location of the reference point. A bounding box is created around the mark, using the bottom center of the bounding box as the reference point. This choice was made based on the assumption that the positions of text marks are aligned, while the positions of non-text marks are not necessarily aligned. When bounding boxes are created around non-text marks, the marks as noise, which distracts from the relevant data needed for the skew angle determination. Therefore, one aspect of the present invention provides that the skew angle determination can be performed on text images and non-text images, as well as combinations thereof. Since the skew angle determination is based on reference points located on the marks themselves, no bounding boxes need to be created. The reference points obtained for non-text marks, in accordance with this aspect, contribute significantly to the accuracy of the result. In this way, the limitations of Baird's method, which only applies to text, can be overcome.

Das patenkomprimierungsformat CCITT-Gruppe 4 (im folgenden als "Gruppe 4" bezeichnet) ist dabei, der Standart für die Übertragung von Faksimilebildern, für die Zwischenübertragung von Bildern zwischen Workstations und Servern, für das Speicherformat auf optischen und magnetischen Medien sowie für andere Anwendungen zu werden. Dabei sind Softwareimplementierungen des Komprimierungsalgorithmus und Spezialanwendungs-VLSI-Hardwareimplementierungen verfügbar. Der 7971A-Prozessro von Advanced Micro Device zum Beispiel ist eine spezielle Schaltung für die Datenkomprimierung/-dekomprimierung in Übereinstimmung mit den CCITT-Format. Es ist deshalb ein weiterer Aspekt der vorliegenden Erfindung, ein Verfahren zum Bestimmen eines Schrägwinkels anzugeben, das Bilddaten verwendet, die in Übereinstimmung mit dem Gruppe 4-Standard komprimiert wurden.The CCITT Group 4 patent compression format (hereinafter referred to as "Group 4") is becoming the standard for the transmission of facsimile images, for the intermediary transfer of images between workstations and servers, for the storage format on optical and magnetic media, and for other applications. Software implementations of the compression algorithm and special-purpose VLSI hardware implementations are available. For example, the 7971A processor from Advanced Micro Device is a special circuit for data compression/decompression in accordance with the CCITT format. It is therefore another aspect of the present invention to provide a method for determining a skew angle using image data compressed in accordance with the Group 4 standard.

In Übereinstimmung mit diesem Aspekt der vorliegenden Erfindung werden sehr gute Ergebnisse erzielt, indem die Lokationen sogenannter "Laufcodes" verwendet werden, die durch die Gruppe 4-Komprimierung als Lokation der Bezugspunkte erzeugt werden, um darauf die Bestimmung des Schrägwinkels zu basieren. Es hat sich herausgestellt, daß es zwei Typen von Läufen gibt - Läufe weißer Pixel und Läufe schwarzer Pixel. Obwohl der CCITT-Gruppe 4-Komprimierungsstandard nicht zwischen diesen beiden unterscheidet, betreffen zwei weitere Aspekte der vorliegenden Erfindung erstens die Entdeckung, daß die Genauigkeit der Bestimmung des Schrägwinkels durch die Wahl der weiße Pixeläufe angebenden Laufcodes wesentlich verbessert wird, und zweitens die Implementierung eines Verfahrens zum Unterscheiden zwischen den zwei Typen von Laufcodes bezüglich der Bestimmung des Schrägwinkels.In accordance with this aspect of the present invention, very good results are achieved by using the locations of so-called "run codes" produced by Group 4 compression as the location of the reference points on which to base the determination of the skew angle. It has been found that there are two types of runs - white pixel runs and black pixel runs. Although the CCITT Group 4 compression standard does not distinguish between the two, two further aspects of the present invention concern, firstly, the discovery that the accuracy of the determination of the skew angle can be improved by the choice of the run codes indicating white pixel runs. is significantly improved, and secondly, the implementation of a method for distinguishing between the two types of running codes with regard to the determination of the skew angle.

Die vorliegende Erfindung wird im folgenden beispielhaft mit Bezug auf die beigefügten Zeichnungen beschrieben, wobei:The present invention will now be described by way of example with reference to the accompanying drawings, in which:

Fig. 1a die Lokation der Bezugspunkte auf einem nicht schrägen Bild in Übereinstimmung mit einem Verfahren aus dem Stand der Technik zeigt,Fig. 1a shows the location of the reference points on a non-oblique image in accordance with a prior art method,

Fig. 1b die Lokation der Bezugspunkte aus einem schrägen Bild in Übereinstimmung mit dem Verfahren aus dem Stand der Technik zusammen mit einem Diagramm der Verteilung der Bezugspunkte in nicht ausgerichteten Bins zeigt,Fig. 1b shows the location of the reference points from an oblique image in accordance with the prior art method together with a diagram of the distribution of the reference points in non-aligned bins,

Fig. 1c die Lokation der Bezugspunkte auf demselben in Fig. ib gezeigten schrägen Bild zusammen mit einem Diagramm der Verteilung der Bezugspunkte in ausgerichteten Bins zeigt,Fig. 1c shows the location of the reference points on the same oblique image shown in Fig. ib together with a diagram of the distribution of the reference points in aligned bins,

Fig. 2 einen Teil eines Computersystems zeigt, das in der Lage ist, in Übereinstimmung mit dem Verfahren zum Bestimmen des Schrägwinkels der vorliegenden Erfindung betrieben zu werden,Fig. 2 shows a portion of a computer system capable of operating in accordance with the method for determining the skew angle of the present invention,

Fig. 3a bis 3c die drei Codierungsmodi des CCITT-Gruppe 4-Komprimierungsstandards zeigen,Fig. 3a to 3c show the three coding modes of the CCITT Group 4 compression standard,

Fig. 4a und 4b die Lokation der Bezugspunkte auf der Basis von Laufcodes des CCITT-Gruppe 4-Komprimierungsstandards bei jeweils einem schrägen und einem nicht schrägen Text zeigen,Fig. 4a and 4b show the location of the reference points based on running codes of the CCITT Group 4 compression standard for a slanted and a non-slanted text, respectively,

Fig. 5a und 5b die Lokation der Bezugspunkte auf der Basis der weißen Laufcodes des CCITT-Gruppe 4-Komprimierungsstandards bei jeweils einem schrägen und einem nicht schrägen Text zeigen,Fig. 5a and 5b show the location of the reference points based on the white running codes of the CCITT Group 4 compression standard for a slanted and a non-slanted text, respectively,

Fig. 6 ein Flußdiagramm in Übereinstimmung mit einem Aspekt der vorliegenden Erfindung zeigt,Fig. 6 shows a flow chart in accordance with an aspect of the present invention,

Fig. 7 ein Flußdiagramm in Übereinstimmung mit einem anderen Aspekt der vorliegenden Erfindung zeigt,Fig. 7 shows a flow chart in accordance with another aspect of the present invention,

Fig. 8 einen Teil eines nicht schrägen Textes zeigt, der als ein Beispiel für einen Aspekt der vorliegenden Erfindung verwendet wird,Fig. 8 shows a portion of non-slanting text used as an example of an aspect of the present invention,

Fig. 9 die Lokation der weißen Laufcodes für den Beispieltext von Fig. 8 zeigt, der verwendet wird, um die Ausrichtung in Übereinstimmung mit der vorliegenden Erfindung zu bestimmen,Fig. 9 shows the location of the white scroll codes for the example text of Fig. 8, used to determine alignment in accordance with the present invention,

Fig. 10 ein Diagramm der Potenz der Ausrichtungen über einen Winkelbereich für den schrägen Beispieltext von Fig. 8 zeigt, undFig. 10 shows a diagram of the power of orientations over an angular range for the oblique example text of Fig. 8, and

Fig. 11 ein Diagramm der Potenz der Ausrichtungen für einen Text mit mehreren Schrägwinkeln zeigt.Fig. 11 shows a diagram of the power of alignments for a text with multiple skew angles.

Im folgenden wird das Verfahren zum Bestimmen des Schrägwinkels in Übereinstimmung mit der vorliegenden Erfindung beschrieben. Es ist insbesondere für die Bestimmung des Schrägwinkels in gescannten Bildern anwendbar. In der vorliegenden Beschreibung wird angenommen, daß die Bilddaten in einzelne Einheiten unterteilt sind, vorzugsweise in Zeilen des Bildes. Dies kann bewerkstelligt werden, indem zum Beispiel das Bild gescannt wird und ein Indikator für den Beginn und das Ende jeder Scanzeile oder Lauflänge eingefügt wird, was bekannt ist. Der Einfachheit halber werden diese Einheiten im folgenden als "Scanzeilen" bezeichnet.The following describes the method for determining skew angle in accordance with the present invention. It is particularly applicable to determining skew angle in scanned images. In the present description, it is assumed that the image data is divided into discrete units, preferably lines of the image. This can be accomplished, for example, by scanning the image and inserting an indicator for the start and end of each scan line or run length, which is known. For simplicity, these units are referred to hereinafter as "scan lines".

Immer häufiger werden gescannte Bilder in einem komprimierten Format gehandhabt. Faksimilegeräte zum Beispiel operieren praktisch vollständig auf gescannten Bildern in einem komprimierten Format. Aus diesem Grund wird die vorliegende Erfindung unter der Annahme beschrieben, daß die Buddaten in komprimierter Form vorliegen (was hier auch als komprimierte Datendomäne bezeichnet wird). Dem Fachmann ist jedoch klar, daß die vorliegende Erfindung ebensogut auf Buddaten in einem nicht komprimierten Format angewendet werden kann.Increasingly, scanned images are handled in a compressed format. Facsimile machines, for example, operate almost entirely on scanned images in a compressed format. For this reason, the present invention will be described assuming that the image data is in a compressed form (also referred to herein as a compressed data domain). However, it will be apparent to those skilled in the art that the present invention can equally well be applied to image data in an uncompressed format.

Fig. 2 stellt in Blockform eine Umgebung dar, in der die vorliegende Erfindung betrieben werden kann. Insbesondere zeigt Fig. 2 einen Teil eines Computersystems 50, das dafür eingerichtet ist, in Übereinstimmung mit der vorliegenden Erfindung betrieben zu werden. Das Computersystem 50 umfaßt einen Scanner 52 oder ist mit diesem verbunden, um Ausgabesignale aus diesem zu erhalten, wobei der Scanner in der Lage ist, ein Bild zu scannen und das Bild wiedergebende digitale Daten zu erzeugen. Diese digitalen Daten werden an den Prozessor 54 weitergeleitet. Der Prozessor steuert die Ein- und Ausgabeoperationen und Aufrufe an den Programmspeicher 56 und den Datenspeicher 58 über den Bus 60.Fig. 2 illustrates in block form an environment in which the present invention may operate. In particular, Fig. 2 shows a portion of a computer system 50 adapted to operate in accordance with the present invention. The computer system 50 includes or is coupled to receive output signals from a scanner 52, the scanner being capable of scanning an image and generating digital data representing the image. This digital data is passed to the processor 54. The Processor controls the input and output operations and calls to the program memory 56 and the data memory 58 via the bus 60.

Der Programmspeicher 56 kann unter anderem eine Routine 62 zum Steuern des Scannens eines Bildes durch einen Scanner 62, eine Routine zum Umwandeln der das Bild repräsentierenden Daten in ein komprimiertes Datenformat und eine Routine 66 zum Bestimmen des Schrägwinkels aus den komprimierten Daten umfassen. Der Programmspeicher 56 ist also mit einem Datenspeicher 58 verbunden, in dem unter anderen an der Speicherstelle 68 die durch den Scanner 52 unter der Steuerung der Scansteuer-Routine 62 erzeugte digitale Datenstruktur, an der Speicherstelle 70 die durch die Komprimierungsroutine 64 erzeugte komprimierte Wiedergabe des gescannten Bildes und an der Speicherstelle 72 die Datenstruktur mit ausgewählten Zeigedaten, wie zum Beispiel die durch die Schrägwinkelbestimmungs-Routine 66 erzeugte Bezugspunktlokation, gespeichert werden können. Um die für den Betrieb erforderliche Kommunikation zwischen dem Programmspeicher 56 und dem Datenspeicher 58 zu erleichtern, ist jeder der Speicher mit dem Bus 60 verbunden, so daß Ein- und Ausgabeoperationen vorgenommen werden können. Weiterhin ist zu beachten, daß die Speicher 56 und 58 der Einfachheit halber als separate Einrichtungen beschrieben werden, wobei sie aber tatsächlich Teile eines Speicherblocks des Computersystems sein können.The program memory 56 can include, among other things, a routine 62 for controlling the scanning of an image by a scanner 62, a routine for converting the data representing the image into a compressed data format, and a routine 66 for determining the skew angle from the compressed data. The program memory 56 is thus connected to a data memory 58 in which, among other things, the digital data structure generated by the scanner 52 under the control of the scan control routine 62 can be stored at the memory location 68, the compressed representation of the scanned image generated by the compression routine 64 at the memory location 70, and the data structure with selected pointing data, such as the reference point location generated by the skew angle determination routine 66, can be stored at the memory location 72. To facilitate the communication required for operation between the program memory 56 and the data memory 58, each of the memories is connected to the bus 60 so that input and output operations can be performed. It should also be noted that for simplicity, the memories 56 and 58 are described as separate devices, but they may actually be parts of a memory block of the computer system.

Unter der Steuerung des Prozessors greift eine Schrägwinkelfeststellungs- Routine auf verschiedene Teile des Datenspeichers 58 zu, um die für die Berechnung des Datenspeichers 58 erforderlichen Daten zu erhalten. Nach der Berechnung kann der Schrägwinkel bei 74 ausgegeben werden, wobei eine Einrichtung zum Anzeigen der Ergebnisse, wie eine CRT-Anzeige, ein Drucker oder ähnliches, oder eine Einrichtung zum Verwenden der Ergebnisse zum Ausführen weiterer Operationen, wie einer Modifikation der Buddaten zur Kompensation der Schrägstellung usw., vorgesehen sein kann.Under the control of the processor, a skew angle detection routine accesses various parts of the data store 58 to obtain the data required to calculate the data store 58. After calculation, the skew angle may be output at 74, and means may be provided for displaying the results, such as a CRT display, printer, or the like, or means for using the results to perform further operations, such as modifying the image data to compensate for the skew, etc.

Es wird von der Annahme ausgegangen, daß die Buddaten in Übereinstimmung mit dem Gruppe 4-Standard komprimiert wurden, wobei jedoch zu beachten ist, daß die vorliegende Erfindung mit entsprechenden Modifikationen auch bei Verwendung von anderen Komprimierungsschemata, wie zum Beispiel dem zweidimensionalen CCITT-Gruppe 3-Format, ähnliche Ergebnisse erzielt. Das Codierungsschema von Gruppe 4 beruht auf dem Vorhandensein und dem relativen Abstand zwischen Pixelfarbübergängen, die auf aufeinanderfolgenden Scanzeilen gefunden wurden. Die Gruppe 4-Codierung jeder Zeile wird wiederum zu einer "Codierzeile" und wird mit Bezug auf ihren Vorläufer, der "Bezugszeile" codiert. Die erste Zeile wird mit Bezug auf eine künstlich definierte vollständig weiße Zeile codiert. Für eine detailliertere Erläuterung des Gruppe 4-Komprimierungsstandards wird auf Hunter et al.: "International Digital Facsimile Coding Standards", Proceedings of the IEEE, Vol 68, Nr.7 vom Juli 1980 auf den Seiten 854-867 und auf Int'l. Telecommunication, CCITT (Int'l. Telegraph and Telephoe Consultative Committee) Red Book, Genf 1985 (ISBN 92-61-02291-X) verwiesen.It is assumed that the bud data has been compressed in accordance with the Group 4 standard, but is that the present invention, with appropriate modifications, achieves similar results using other compression schemes such as the two-dimensional CCITT Group 3 format. The Group 4 coding scheme is based on the presence and relative spacing between pixel color transitions found on successive scan lines. The Group 4 coding of each line in turn becomes a "coding line" and is encoded with reference to its predecessor, the "reference line". The first line is encoded with reference to an artificially defined all-white line. For a more detailed discussion of the Group 4 compression standard, see Hunter et al.: "International Digital Facsimile Coding Standards", Proceedings of the IEEE, Vol 68, No.7, July 1980, pages 854-867 and Int'l. Telecommunication, CCITT (Int'l. Telegraph and Telephoe Consultative Committee) Red Book, Geneva 1985 (ISBN 92-61-02291-X).

Das Codieren im Format Gruppe 4 weist drei Modi auf - einen vertikalen, einen horizontalen und einen Laufmodus. Diese Modelle werden im folgenden mit Bezug auf Fig. 3a, 3b und 3c beschrieben. Benachbarte Scanzeilen werden verglichen, um zu bestimmen, ob bei einem ersten Pixelfarbübergang auf einer Bezugszeile, etwa von Schwarz zu Weiß, ein entsprechender Pixelfarbübergang (d.h. von Schwarz zu Weiß) auf der Codierzeile existiert. Das Vorhandensein und der relative Abstand des Übergangs auf der Codierzeile zum Übergang auf der Bezugszeile wird verwendet, um den Modus zu bestimmen.Group 4 format encoding has three modes - vertical, horizontal and running. These models are described below with reference to Figures 3a, 3b and 3c. Adjacent scan lines are compared to determine whether, given a first pixel color transition on a reference line, such as from black to white, a corresponding pixel color transition (i.e. from black to white) exists on the encoding line. The presence and relative distance of the transition on the encoding line to the transition on the reference line is used to determine the mode.

Wie in Fig. 3a gezeigt, wird ein vertikaler Modus verwendet, wenn die Positionen der Schwarz-zu-Weiß- oder der Weiß-zu-Schwarz-Übergänge horizontal nahe beieinander liegen (( 3 Pixel) und deshalb mit einer kleinen Anzahl von Bit codiert werden können. Der Horizontale Modus wird verwendet, wenn die Übergangspositionen, wie in Fig. 3b gezeigt, weiter als drei Pixel voneinander beabstandet sind. Der Laufmodus wird verwendet, wenn ein Übergang auf der Bezugszeile, wie in Fig. 3c gezeigt, kein Gegenstück auf der Codierzeile aufweist. Die komprimierten Daten enthalten also unter anderem einen Moduscode zusammen mit einem Abstandswert, der einen auf der Bezugszeile gegenüber der Codierzeile gemessenen Abstand angibt.As shown in Fig. 3a, a vertical mode is used when the positions of the black-to-white or white-to-black transitions are horizontally close to each other (( 3 pixels) and can therefore be encoded with a small number of bits. The horizontal mode is used when the transition positions are spaced further than three pixels apart, as shown in Fig. 3b. The running mode is used when a transition on the reference line, as shown in Fig. 3c, has no counterpart on the encoding line. The compressed data thus contains, among other things, a mode code together with a Distance value that indicates a distance measured on the reference line relative to the coding line.

Wie in Fig. 4a und 4b gezeigt, lokalisiert die vorliegende Erfindung die Bezugspunkte 76 auf der Basis der Positionen von topographischen Merkmalen auf der Marke und verwendet nicht wie Baird Bezugspunkte, die auf der Begrenzungsbox um eine Marke lokalisiert sind. Diese topographischen Merkmale sind immer auf den Marken selbst lokalisiert. Insbesondere wird der Schrägwinkel aus den Lokationen der Laufcodes in der nach Gruppe 4 komprimierten Repräsentation des Bildes bestimmt. Die Positionen der Laufcode-Bezugspunkte 76 auf nicht schrägem und schrägem Text sind als "x"-Marken jeweils in Fig. 4a und 4b gezeigt.As shown in Figures 4a and 4b, the present invention locates the fiducial points 76 based on the positions of topographical features on the marker, rather than using fiducial points located on the bounding box around a marker like Baird. These topographical features are always located on the markers themselves. In particular, the skew angle is determined from the locations of the run codes in the Group 4 compressed representation of the image. The positions of the run code fiducial points 76 on non-skew and skew text are shown as "x" markers in Figures 4a and 4b, respectively.

Da alle Laufcodes relativ zu einem Punkt auf einer Marke definiert sind, sind alle Bezugspunkte unabhängig vom Schrägstellungsgrad an einem Punkt auf einer Marke lokalisiert. Da mehr als ein Laufcode in den komprimierten Daten eine Marke repräsentieren kann, kann weiterhin mehr als ein Bezugspunkt pro Marke vorhanden sein. Bei typischen Schriftarten werden zum Beispiel bei vielen Zeichen, darunter die Groß- und Kleinbuchstaben "A", "H", "K" usw., an zwei Stellen entlang der Basislinie und beim Groß- und Kleinbuchstaben "M" an drei Stellen entlang der Basislinie Läufe erzeugt.Because all run codes are defined relative to a point on a mark, all reference points are located at a point on a mark regardless of the degree of skew. Furthermore, because more than one run code can represent a mark in the compressed data, there can be more than one reference point per mark. For example, in typical fonts, many characters, including the upper and lower case letters "A", "H", "K", etc., have runs created at two locations along the baseline, and the upper and lower case letters "M" have runs created at three locations along the baseline.

Läufe können auch als Ergebnis von auflösungsbedingten Darstellungsfehlern, wie zum Beispiel an der Unterseite des Querbalkens des nicht schrägen ,,G" und am rechten Bein des nicht schrägen "K" in Fig. 4 erzeugt werden. Das Unterscheiden derartiger auflösungsbedingter Darstellungsfehler geht über den Umfang der vorliegenden Erfindung hinaus. Auflösungsbedingte Darstellungsfehler führen jedoch in bestimmten Umständen zu brauchbaren und sinnvollen Ergebnissen. Wenn zum Beispiel lange horizontale Strukturen digitalisiert werden, treten häufig auflösungsbedingte Darstellungsfehler auf. Da das Vorhandensein dieser auflösungsbedingten Darstelungsfehler die Erzeugung von Laufcodes zur Folge hat, die Übergänge von Schwarz zu Weiß wiedergeben, sehen lange horizontale Linien eine große Anzahl derartiger Laufcodes ohne Zweideutigkeit bezüglich der durch sie repräsentierten Ausrichtung vor. Das heißt, daß horizontal ausgerichtete Grafikstrukturen die Bestimmung des Schrägwinkels aufgrund ihrer Tendenz zur Erzeugung von auflösungsbedingten Darstellungsfehlern wesentlich verbessern. Es muß jedoch hinzugefügt werden, daß große, nicht horizontale Strukturen die Leistung der vorliegenden Erfindung nicht wesentlich herabsetzen, da sie im allgemeinen nicht mit Laufcodes erzeugenden auflösungsbedingten Darstellungsfehlern verbunden sind, weil die auflösungsbedingten Darstellungsfehler unter Verwendung des vertikalen Modus von Gruppe 4 codiert sind.Runs can also be generated as a result of resolution-related display errors, such as at the bottom of the crossbar of the non-slant "G" and the right leg of the non-slant "K" in Fig. 4. Distinguishing such resolution-related display errors is beyond the scope of the present invention. However, resolution-related display errors lead to useful and meaningful results in certain circumstances. For example, when digitizing long horizontal structures, resolution-related display errors often occur. Since the presence of these resolution-related display errors results in the generation of run codes that represent transitions from black to white, long horizontal lines provide a large number of such running codes without ambiguity as to the orientation they represent. That is, horizontally oriented graphic structures significantly improve the determination of skew angle due to their tendency to produce resolution-related display errors. It must be added, however, that large non-horizontal structures do not significantly degrade the performance of the present invention since they are generally not associated with resolution-related display errors that produce running codes because the resolution-related display errors are encoded using the vertical mode of Group 4.

Es gibt zwei Typen von Läufen - weiße Läufe, d.h. Läufe aus weißen Pixeln, und schwarze Läufe, d.h. Läufe aus schwarzen Pixeln. Da weiße Pixel die Böden der schwarzen Strukturen angeben, besteht eine Analogie zum Finden von Böden von verbundenen Komponenten in der Rohbitmap, etwa von Zeilenenden. Es ist tatsächlich garantiert, daß wenigstens ein weißer Lauf am Boden jeder verbundenen Komponente vorhanden ist. Es ist deshalb vorteilhaft, weiße Läufe als Bezugspunkte zu verwenden, obwohl dem Fachmann klar ist, daß auch schwarze Läufe verwendet werden können, um in geeigneten Umständen den Schrägwinkel in Übereinstimmung mit der vorliegenden Erfindung zu bestimmen. Die Positionen der weißen Laufcode-Bezugspunkte 78 bei schrägem und bei nicht schrägem Text sind jeweils durch die in Fig. 5a und Sb gezeigten Pfeile angegeben.There are two types of runs - white runs, i.e. runs of white pixels, and black runs, i.e. runs of black pixels. Since white pixels indicate the bottoms of the black structures, there is an analogy to finding bottoms of connected components in the raw bitmap, such as line ends. In fact, it is guaranteed that at least one white run will be present at the bottom of each connected component. It is therefore advantageous to use white runs as reference points, although it will be clear to those skilled in the art that black runs can also be used to determine the skew angle in accordance with the present invention in appropriate circumstances. The positions of the white run code reference points 78 in skew and non-skew text are indicated by the arrows shown in Figs. 5a and 5b, respectively.

Die Gruppe 4-Codierung der Läufe unterscheidet nicht zwischen weißen Läufen und schwarzen Läufen. Um zu wissen, welche Farbe der codierte Lauf hat, muß der Zustand aufrechterhalten werden. In Übereinstimmung mit der vorliegenden Erfindung wird der Zustand durch ein binäres Zustandsbit aufrechterhalten, das gesetzt wird, so daß es der künstlichen ganz weißen ersten Zeile entspricht. Jedes Ereignis, daß einen Laufcode erzeugt, verursacht, daß das Zustandsbit umgekehrt wird, um dadurch den Zustand (d.h. die Farbe) des Laufcodes zu verfolgen.The Group 4 encoding of runs does not distinguish between white runs and black runs. In order to know what color the encoded run is, the state must be maintained. In accordance with the present invention, the state is maintained by a binary state bit that is set to correspond to the artificial all-white first line. Each event that generates a run code causes the state bit to be inverted, thereby keeping track of the state (i.e., color) of the run code.

Bei einem Vergleich der Fig. 4a, b und 5a, b ist zu bemerken, daß in Fig. 5 weniger Bezugspunkte mit einem Abstand zu Basislinie des Textes erzeugt werden als in Fig. 4. Es ist zum Beispiel zu beachten, daß das "O" 80 in Fig. 4a und 4b zwei assozuerte Bezugspunkte aufweist, einen oberen Punkt 82 und einen unteren Punkt 84. Der untere Punkt 84 liegt auf der Basiszeile 86, während der obere Punkt dies nicht tut. Dasselbe "O" 80 in Fig. Sa und Sb weist nur einen einzigen assoziierten Bezugspunkt 88 auf, der auf der Basiszeile 90 lokalisiert ist. Damit wird grafisch angegeben, daß die weißen Läufe dabei hilfreich sind, Bezugspunkte zu liefern, auf denen Messungen des Schrägwinkels in Bezug auf die Ausrichtung basieren können. Durch die Verwendung der weißen Läufe wird jedoch ein gewisses "Rauschen" verursacht. Das heißt, es werden einige Bezugspunkte erzeugt, die nicht direkt auf der Bezugszeile liegen und die zu der Basiszeileninformation hinzugefügt sind. Ein "C" erzeugt zum Beispiel zwei weiße Läufe, einen am Boden der Marke und einen am Boden jedes Strichs, der die Obergrenze der Öffnung auf der rechten Seite des "C" bildet. In ähnlicher Weise kann der Boden des Zentrums von "M", der einen Laufcode erzeugt, in einigen Fonts nicht auf der Basiszeile liegen. Das Unterscheiden von derartigen Rauschsignalen übersteigt den Umfang der vorliegenden Erfindung. Das Auftreten von Rauschsignalen ist jedoch statistisch gesehen selten genug, so daß es die Genauigkeit des bestimmten Schrägwinkels nicht wesentlich beeinträchtigt oder die Berechnungszeit wesentlich verlängert.When comparing Fig. 4a, b and 5a, b, it is to be noted that in Fig. 5 fewer reference points are generated with a distance to the baseline of the text than in Fig. 4. For example, note that the "O" 80 in Figs. 4a and 4b has two associated reference points, an upper point 82 and a lower point 84. The lower point 84 lies on the base line 86, while the upper point does not. The same "O" 80 in Figs. 5a and 5b has only a single associated reference point 88 located on the base line 90. This graphically indicates that the white runs are helpful in providing reference points upon which skew angle measurements can be based with respect to orientation. However, the use of the white runs introduces some "noise." That is, some reference points are created that do not lie directly on the reference line and that are added to the base line information. For example, a "C" produces two white runs, one at the bottom of the mark and one at the bottom of each bar that forms the top of the opening to the right of the "C." Similarly, the bottom of the center of "M" that produces a run code may not be on the base line in some fonts. Distinguishing such noise signals is beyond the scope of the present invention. However, the occurrence of noise signals is statistically rare enough that it does not significantly affect the accuracy of the determined skew angle or significantly increase the calculation time.

Fig. 6 zeigt ein Blockdiagramm einer Implementierung einer Schrägwinkelfeststellungs-Routine 66, wie sie im Programmspeicher 56 von Fig. 2 lokalisiert sein könnte. Dabei wird für den Startpunkt der Routine 66 angenommen, daß das Bild gescannt wurde, die dem gescannten Bild entsprechenden digitalen Daten erzeugt wurden, und daß diese digitalen Daten in Übereinstimmung mit einem ausgewählten Datenkomprimierungsverfahren, wie einem Verfahren, das komprimierte Daten nach Gruppe 4 erzeugt, komprimiert wurden.Fig. 6 shows a block diagram of an implementation of a skew angle detection routine 66 as it might be located in program memory 56 of Fig. 2. The starting point of routine 66 assumes that the image has been scanned, digital data corresponding to the scanned image has been generated, and that this digital data has been compressed in accordance with a selected data compression method, such as a method that generates Group 4 compressed data.

Zu Beginn werden die weißen Laufcodes in der Datenstruktur der komprimierten Bilddaten, zum Beispiel der bei Speicherstelle 72 des Datenspeichers 58 gespeicherten Bilddaten, lokalisiert, wie durch den Kasten 92 von Fig. 6 angegeben. Sobald ein weißer Laufcode lokalisiert ist, muß seine Lokation in einem geeigneten Koordinatensystem bestimmt werden, wie in Kasten 94 angegeben. Rechteckige Koordinaten mit einer Abszisse x und einer Ordinate y bieten Koordinatenpaare, die für den vorliegenden Zweck geeignet sind, obwohl bei Bedarf andere Koordinatensysteme wie Polarkoordinaten verwendet werden können. Eine Matrix von Koordinatenpaaren kann dann bei Kasten 96 für das Berechnen der Ausrichtungen aufgebaut werden, wie weiter unten im Detail erläutert wird. Nach dem Speichern der Koordinatenpaare der Lokationen der weißen Laufcodes, wird bei 98 ein Test durchgeführt, um zu bestimmen, ob das Ende der gescannten Seite erreicht wurde. Wenn dem so ist, schreitet die Bestimmung des Schrägwinkels fort, wie weiter unten im Detail erläutert wird. Wenn nicht, wird eine Suche für den nächsten vorhandenen weißen Laufcode auf der Seite gemacht.Initially, the white run codes are located in the data structure of the compressed image data, for example the image data stored at location 72 of the data store 58, as indicated by box 92 of Fig. 6. Once a white run code is located, its location in an appropriate coordinate system must be determined as indicated in box 94. Rectangular Coordinates with an abscissa x and an ordinate y provide coordinate pairs suitable for the present purpose, although other coordinate systems such as polar coordinates may be used if required. A matrix of coordinate pairs can then be built up at box 96 for calculating the orientations, as explained in more detail below. After storing the coordinate pairs of the locations of the white run codes, a test is made at 98 to determine if the end of the page being scanned has been reached. If so, the determination of the skew angle proceeds, as explained in more detail below. If not, a search is made for the next existing white run code on the page.

Die vorstehenden vier Schritte 92 bis 98 werden gemeinsam als Koordinatenbestimmungs-Routine 100 bezeichnet, die eine Subroutine der Schrägwinkelbestimmungs-Routine 66 sein kann und im folgenden mit Bezug auf Fig. 7 beschrieben wird. Block 101 stellt eine Eingabe von Daten in einem nach Gruppe 4 komprimierten Format dar. Unter Verwendung der x-y-Koordinatenpaare müssen x uns y zuerst auf 0 initialisiert werden, um den Start einer Seite anzugeben. Dies ist in Schritt 102 gezeigt und wird beim Start jeder neuen gescannten Seite vorgenommen.The above four steps 92 through 98 are collectively referred to as the coordinate determination routine 100, which may be a subroutine of the skew angle determination routine 66 and is described below with reference to Figure 7. Block 101 represents an input of data in a group 4 compressed format. Using the x-y coordinate pairs, x and y must first be initialized to 0 to indicate the start of a page. This is shown in step 102 and is done at the start of each new page scanned.

Block 103 gibt die Feststellung eines Gruppe 4-Codes an. Wie zuvor erwähnt, gibt es drei Typen von Gruppe 4-Codes - horizontal, vertikal und Lauf. Das Feststellen der Gruppe 4-Codes kann durch eine Zeichenkettenerkennung oder ein beliebiges anderes der vielen Verfahren, die dem Fachmann der Codefeststellung bekannt sind, implementiert werden. Sobald ein Gruppe 4-Code festgestellt ist, muß sein Typ bestimmt werden. Das heißt, es muß bestimmt werden, welcher der drei Gruppe 4-Typen vorliegt, und wenn es sich um einen Laufcode handelt, ob es ein weißer Laufcode oder ein schwarzer Laufcode ist. Dieser Prozeß wird über eine Reihe von Tests vorgenommen, deren Ergebnisse bestimmen, wie die x-Koordinate bestimmt wird. Auf die x-Koordinate wird mit einem alten Wert von x Bezug genommen, der mit dem durch Schritt 103 im unmittelbar vorhergehenden Lauf durch die Koordinatenbestimmungs-Routine 100 lokalisierten Code assoziiert ist, und mit einem neuen Wert von x, der mit dem durch Schritt 103 in dem aktuellen Lauf durch die Koordinatenbestimmungs-Routine 103 lokalisierten Code assoziiert ist.Block 103 indicates the detection of a Group 4 code. As previously mentioned, there are three types of Group 4 codes - horizontal, vertical and run. The detection of Group 4 codes can be implemented by string detection or any other of the many methods known to those skilled in the art of code detection. Once a Group 4 code is detected, its type must be determined. That is, it must be determined which of the three Group 4 types is present and if it is a run code, whether it is a white run code or a black run code. This process is accomplished through a series of tests, the results of which determine how the x coordinate is determined. The x coordinate is referred to by an old value of x associated with the code located by step 103 in the immediately preceding run through the coordinate determination routine 100. and with a new value of x associated with the code located by step 103 in the current run through the coordinate determination routine 103.

Wenn ein Code lokalisiert ist, wird ein Test durchgeführt, um zu bestimmen, ob der Code ein horizontaler Code ist. Wenn es sich um einen horizontalen Code handelt, entspricht der neue Wert x dem alten Wert x plus dem mit dem horizontalen Code assoziierten Abstandswert. Das heißt, der horizontale Modus von Gruppe 4 enthält einen Code, der den Modus angibt, und einen Abstandswert, der die Anzahl der Pixel zwischen dem Bezugs-Pixelfarbübergang und dem aktuellen Pixefarbübergang angibt. Im Fall eines horizontalen Codes entspricht der Abstand der Anzahl von Pixeln zwischen einem Pixelfarbübergang auf der bestimmten Zeile und dem nächsten Pixelfarbübergang auf derselben Zeile. Dies ist bei 106 angegeben.When a code is located, a test is performed to determine if the code is a horizontal code. If it is a horizontal code, the new value x is equal to the old value x plus the distance value associated with the horizontal code. That is, the horizontal mode of group 4 contains a code indicating the mode and a distance value indicating the number of pixels between the reference pixel color transition and the current pixel color transition. In the case of a horizontal code, the distance is equal to the number of pixels between a pixel color transition on the particular line and the next pixel color transition on the same line. This is indicated at 106.

Es ist wichtig zu beachten, daß dieser neue Wert von x kein für die Bestimmung der Ausrichtung verwendeter Abszissenwert wird. Vielmehr handelt es sich um den laufenden Wert des Abstands von der ersten Pixelposition in einer Scanzeile. Nur die x-Werte, die sich auf die weißen Laufcodes beziehen, werden für die Bestimmung der Ausrichtung verwendet.It is important to note that this new value of x does not become an abscissa value used to determine alignment. Rather, it is the running value of the distance from the first pixel position in a scan line. Only the x values that refer to the white running codes are used to determine alignment.

Wenn ein horizontaler Code festgestellt wird, wird bei 122 ein binäres Pixelfarben-Zustandsbit inkrementiert, wobei das Verfahren dazu und der Zweck dessen weiter unten im Detail erläutert werden. Sobald der neue Wert von x berechnet ist, wird x bei 108 geprüft, um zu bestimmen, ob das Zeilenende erreicht worden ist. Dies kann einfach vorgenommen werden, indem x mit der in Pixeln bekannten Länge in einer Scanzeile verglichen wird. Wenn x diesen Wert erreicht, ist das Ende festgestellt. Wenn das Zeilenende nicht erreicht ist, fährt die Codefeststellung für diese Zeile bei 103 fort. Wenn das Zeilenende erreicht ist, wird x bei 110 auf gesetzt, damit es dem Beginn der nächsten Zeile entspricht, wobei y, das eine laufende Zählung der Zeilennummer angibt, um eins inkrementiert und bei 111 geprüft wird, um zu bestimmen ob das Seitenende erreicht wurde. Dies kann wie bei x vorgenommen werden, indem y mit der bekannten Anzahl der Zeilen pro Seite verglichen wird. Wenn y die Zeilenanzahl einer Seite erreicht, ist das Ende festgestellt. Wenn eine Seitenende erreicht ist, wird bei 126 die Potenz für verschiedene Ausrichtungen bestimmt, die einer Anzahl von Ausrichtungswinkeln entsprechen, wie weiter unten im Detail erläutert wird. Wenn das Seitenende nicht erreicht ist, kehrt die Codefeststellung zu 103 zurück.When a horizontal code is detected, a binary pixel color status bit is incremented at 122, the method and purpose of which is explained in detail below. Once the new value of x is calculated, x is checked at 108 to determine if the end of line has been reached. This can be done simply by comparing x to the known length in pixels in a scan line. If x reaches this value, the end is detected. If the end of line is not reached, code detection for that line continues at 103. When the end of line is reached, x is set to 110 to correspond to the start of the next line, with y, which gives a running count of the line number, incremented by one and checked at 111 to determine if the end of page has been reached. This can be done as with x by comparing y to the known number of lines per page. When y reaches the number of lines on a page, the end is detected. When an end of page is reached, the power of 126 is determined for various orientations corresponding to a number of orientation angles, as explained in more detail below. If the end of page is not reached, the code detection returns to 103.

Wenn bestimmt wird, daß der Code nicht horizontal ist, muß bei 112 ein Test vorgenommen werden, um zu bestimmen, ob es sich um einen vertikalen Code handelt. Es ist dabei erforderlich, jede Übergangsposition von der vorhergehenden Zeile für die Verwendung als Wert auf der Bezugszeile im vertikalen Modus zu speichern. Dies wird in einer Matrix des Typ {x1r, X2r, ... xnr} vorgenommen, wobei r einen Wert auf der Bezugszeile (der vorhergehenden Scanzeile) angibt und n der Gesamtanzahl der Codes auf der Bezugszeile entspricht. Es ist lediglich erforderlich, die x-Werte für die vorhergehende Zeile zu erhalten, weshalb neue x-Werte die zuvor bestimmten Werte überschreiben können. Dies ist bei 114 gezeigt.If it is determined that the code is not horizontal, a test must be made at 112 to determine if it is a vertical code. It is necessary to store each transition position from the previous line for use as a value on the reference line in vertical mode. This is done in a matrix of type {x1r, X2r, ... xnr}, where r indicates a value on the reference line (the previous scan line) and n is the total number of codes on the reference line. It is only necessary to obtain the x values for the previous line, so new x values can override the previously determined values. This is shown at 114.

Wenn ein vertikaler Code festgestellt wurde, wird bei 116 der Wert für x wie folgt berechnet. Der vertikale Modus wird von einem Abstand zwischen einem Pixelübergang bei Pixel b&sub1; auf der Bezugszeile und einem Pixelübergang bei Pixel a&sub1; auf der Bezugszeile codiert. Da für die Berechnung dieses Abstandes nur die x-Werte benötigt werden, kann der Abstand einfach als Ixbi - xail berechnet werden, wobei xbi und xai jeweils Werte für die Pixel b und a sind. Der neue x-Wert entspricht dem alten x-Wert plus diesem Abstand. Wiederum wird das binäre Pixelfarben- Zustandsbit bei 122 inkrementiert, wobei der neue x-Wert bei 108 geprüft wird, um zu bestimmen, ob das Zeilenende erreicht ist, und bei 111 geprüft, um zu bestimmen, ob das Seitenende erreicht ist, usw.If a vertical code is detected, the value for x is calculated at 116 as follows. The vertical mode is encoded by a distance between a pixel transition at pixel b1 on the reference line and a pixel transition at pixel a1 on the reference line. Since only the x values are needed to calculate this distance, the distance can be simply calculated as Ixbi - xail, where xbi and xai are values for pixels b and a, respectively. The new x value is equal to the old x value plus this distance. Again, the binary pixel color status bit is incremented at 122, the new x value is checked at 108 to determine if the end of line is reached, checked at 111 to determine if the end of page is reached, and so on.

Wenn der festgestellte Code beide Tests bei 104 und 112 nicht besteht, ist der Code notwendigerweise ein Laufcode. Wie bereits erwähnt, ist es wichtig, zwischen weißen und schwarzen Laufcodes zu unterscheiden. Die weißen Laufcodes werden für die Bestimmung der Ausrichtung verwendet, während die schwarzen Laufcodes nicht dazu verwendet werden. Obwohl Gruppe 4 nicht zwischen weißen und schwarzen Laufcodes unterscheidet, kann der Zustand bei 118 über das Verfolgen eines binären Pixelfarben-Zustandsbits bestimmt werden. Das Zustandsbit ist zu Beginn bei 102 auf 0 gesetzt worden. Es wurde willkürlich entschieden, daß 0 dem weißen Laufcodes entspricht. Jedesmal wenn ein Code festgestellt wird, wird das Zustandsbit geprüft. Wenn das Zustandsbit nicht gleich ist, d.h. der Laufcode kein weißer Laufcode ist, wird der neue Wert von x bei 120 gleich dem alten Wert von x gesetzt. Wenn der nächste angetroffene Code kein Laufcode ist, dann ist der nächste Code mit der Information assoziiert, die für das korrekte Berechnen des nächsten x benötigt wird. Wenn der nächste angetroffene Code ein Laufcode ist, wird der Prozeß wiederholt, bis ein Code angetroffen wird, der kein Laufcode ist. Das ist die Essenz eines Gruppe 4-Laufcodes. Weiterhin ist der neue Wert von x bei 120 gesetzt worden, und das Zustandsbit ist bei 122 für den nächsten angetroffenen Laufcode inkrementiert worden.If the detected code fails both tests at 104 and 112, the code is necessarily a running code. As mentioned above, it is important to distinguish between white and black running codes. The white running codes are used for determining the orientation, while the black run codes cannot be used to do this. Although Group 4 does not distinguish between white and black run codes, the state at 118 can be determined by tracking a binary pixel color state bit. The state bit is initially set to 0 at 102. It has been arbitrarily decided that 0 corresponds to the white run code. Each time a code is encountered, the state bit is checked. If the state bit is not equal, ie the run code is not a white run code, the new value of x at 120 is set equal to the old value of x. If the next code encountered is not a run code, then the next code is associated with the information needed to correctly calculate the next x. If the next code encountered is a run code, the process is repeated until a code is encountered that is not a run code. This is the essence of a Group 4 run code. Furthermore, the new value of x has been set to 120 and the status bit has been incremented to 122 for the next run code encountered.

Wenn das Zustandsbit gleich 0 bestimmt worden ist, wurde ein weißer Laufcode angetroffen. Die Lokation dieses weißen Laufes muß für das Berechnen der Potenz der Ausrichtung und für die weiter unten erläuterten Transformationsschritte zum Durchlaufen mehrerer Ausrichtungswinkel bewahrt werden. Dies kann an einer ausgewählten Punktdatenlokation 72 des Datenspeichers 58 von Fig. 2 vorgenommen werden. Das Speichern der Lokationen der weißen Laufcodes wird bei 124 vorgenommen. Als nächsten wird x gesetzt, das Zustandsbit inkrementiert und eine Prüfung bezüglich des Zeilen- und Seitenendes vorgenommen, wie oben erläutert wurde.If the status bit is determined to be equal to 0, a white run code has been encountered. The location of this white run must be preserved for computing the power of alignment and for the transformation steps discussed below to traverse multiple alignment angles. This can be done at a selected point data location 72 of the data store 58 of Figure 2. Storing the locations of the white run codes is done at 124. Next, x is set, the status bit is incremented, and a check is made for end of line and end of page as discussed above.

Wie weiterhin in Fig. 6 dargestellt, soll für die weitere Beschreibung angenommen werden, daß das Zeilen- und Seitenende erreicht ist. Wenn dies der Fall ist, muß die Potenz für eine Vielzahl von Ausrichtungen mit verschiedenen Ausrichtungswinkeln bestimmt werden. wie allgemein durch das Bezugszeichen 126 angegeben. Zu Beginn wird der Ausrichtungswinkel bei 128 auf 0 gesetzt. Diese Ausrichtung entspricht der Ausrichtung, mit der die Seite gescannt wurde. Für diesen Ausrichtungswinkel wird, wie oben beschrieben, die Potenz der Ausrichtung berechnet. In diesem Fall kann ein Aufruf an die Speicherstelle 72 des Datenspeichers 58 gemacht werden, wobei die Anzahl der darin gespeicherten x-Werte für jede Zeile bestimmt wird. Damit wird die Bin-Größe für jede Zeile wiedergegeben. Das Quadrat der Anzahl der x-Werte für jede Zeile wird bei 130 in einer Matrix akkumuliert und gibt die Potenz der Ausrichtung mit dem aktuellen Ausrichtungswinkel an. Die Matrix der Quadrate wird bei 132 zusammen mit dem aktuellen Ausrichtungswinkel gespeichert, wobei dies in einem Teil des Datenspeichers 58 vorgenommen werden kann.As further shown in Fig. 6, it will be assumed for the remainder of the description that the end of line and page has been reached. If this is the case, the power must be determined for a variety of orientations with different orientation angles, as generally indicated by reference numeral 126. Initially, the orientation angle is set to 0 at 128. This orientation corresponds to the orientation with which the page was scanned. For this orientation angle, the power of the orientation is calculated as described above. In this case, a call may be made to memory location 72 of data store 58 determining the number of x values stored therein for each row. This will reflect the bin size for each row. The square of the number of x values for each row is accumulated in a matrix at 130 and gives the power of the alignment with the current alignment angle. The matrix of squares is stored at 132 along with the current alignment angle, and this may be done in a portion of data store 58.

Als nächstes wird der Ausrichtungswinkel bei 134 um eine ausgewählte Größe inkrementiert, zum Beispiel um 1 Grad. Die Potenz der Ausrichtungen wird für Ausrichtungen innerhalb eines Bereichs von Ausrichtungswinkeln bestimmt. Die Wahl des Bereichs von Ausrichtungswinkeln hängt dabei von einer Anzahl von Faktoren ab, etwa von dem erwarteten Bereich von Ausrichtungswinkeln, der erwarteten Stärke der Ausrichtungen, der erwarteten Anzahl von Ausrichtungen usw. je größer der Bereich der Ausrichtungswinkel ist, desto länger ist die Berechnungszeit für eine bestimmte Inkrementierung des Winkels. Auf jeden Fall kann ein beispielhafter Bereich von Ausrichtungswinkeln zwischen -40 und +40 Grad liegen. Wenn der aktuelle Ausrichtungswinkel inkrementiert ist, muß also getestet werden, ob er außerhalb dieses Bereichs fällt. Dies wird bei 136 vorgenommen. Wenn der aktuelle Ausrichtungswinkel nicht außerhalb dieses ausgewählten Bereichs fällt, werden die Lokationen des weißen Laufcodes bei 138 parallelverschoben. Es bestehen mehrere Verfahren für das Parallelverschieben der Lokationen der Laufcodes, wobei deren Anwendbarkeit von dem verwendeten Koordinatensystem, dem verfügbaren Speicherplatz, der erforderlichen Rechengeschwindigkeit usw. abhängt. Ein Beispiel für einen effektiven Satz von Gleichungen für die Verwendung mit kartesischen Koordinaten ist nachstehend gegeben, wobei y in Übereinstimmung mit der vorstehenden Beschreibung nach unten hin zunimmt:Next, the alignment angle is incremented at 134 by a selected amount, for example 1 degree. The power of the alignments is determined for alignments within a range of alignment angles. The choice of the range of alignment angles depends on a number of factors, such as the expected range of alignment angles, the expected strength of the alignments, the expected number of alignments, etc. The larger the range of alignment angles, the longer the calculation time for a given increment of the angle. In any case, an example range of alignment angles can be between -40 and +40 degrees. So, when the current alignment angle is incremented, it must be tested whether it falls outside this range. This is done at 136. If the current alignment angle does not fall outside this selected range, the locations of the white running code are shifted parallel at 138. There are several methods for parallel-shifting the locations of the run codes, the applicability of which depends on the coordinate system used, the available memory, the required computational speed, etc. An example of an effective set of equations for use with Cartesian coordinates is given below, where y increases downwards in accordance with the description above:

xj = x cos α - sin αxj = x cos α - sin α

yj = x sin α + y cos αyj = x sin α + y cos α

Wenn der aktuelle Ausrichtungswinkel nicht außerhalb des ausgewählten Bereichs fällt, kann bei 140 eine maximale Potenz bestimmt werden, indem die Potenzen der verschiedenen zuvor gespeicherten Ausrichtungen verglichen werden. Diese maximale Potenz kann dann bei 142 in vielen verschiedenen Formaten ausgegeben werden, zum Beispiel als absoluter Winkel, als Spektrum von Winkeln zusammen mit deren Potenzen usw. Das Format der Ausgabe hängt von der beabsichtigten Verwendung der Ergebnisse ab, wie oben beschrieben. Im folgenden wird ein besonderes Beispiel gegeben, das der weiteren Darstellung der vorliegenden Erfindung dient.If the current orientation angle does not fall outside the selected range, a maximum power may be determined at 140 by comparing the powers of the various previously stored orientations. This maximum power may then be output at 142 in many different formats, for example as an absolute angle, a spectrum of angles together with their powers, etc. The format of the output will depend on the intended use of the results, as described above. A specific example is given below to further illustrate the present invention.

BeispielExample

In Fig. 8 ist ein Beispieltext gezeigt, der verwendet wird, um das Verfahren der vorliegenden Erfindung zu testen. Die Bin-Größe wurde mit zwei Pixel gewählt, was der minimal feststellbaren Schrägstellung in einem digitalen Bild entspricht (d.h. eine Differenz von einem Pixel in der vertikalen Position über die Breite des Bildes). Aus demselben Grund wurde die Inkrementgröße des Winkels beschränkt, so daß kein Versuch gemacht wird, die Schrägwinkel unterhalb dieses Schwelwertes aufzulösen. Die Ausrichtung wird über einen Bereich von +/-80 Grad gemessen.In Fig. 8, a sample text used to test the method of the present invention is shown. The bin size was chosen to be two pixels, which corresponds to the minimum detectable skew in a digital image (i.e., a one pixel difference in vertical position across the width of the image). For the same reason, the increment size of the angle was limited so that no attempt was made to resolve skew angles below this threshold. Alignment is measured over a range of +/-80 degrees.

Die Lokationen der weißen Laufcodes für diesen schrägen Beispieltext von Fig. 8 sind in Fig. 9 gezeigt. Diese weißen Laufcodes werden verwendet, um die verschiedenen Rotationsausrichtungen zu berechnen. Fig. 10 zeigt die Potenz als Funktion der Ausrichtungsbeziehung für die Weißlauf-Bezugspunkte von Fig. 8. Der Schrägwinkel kann grafisch aus dem Diagramm von Fig. 10 als der Winkel bestimmt werden, um den die relativ maximale Potenz von der horizontalen 0-Grad-Indikation abweicht.The locations of the white run codes for this example slanted text of Fig. 8 are shown in Fig. 9. These white run codes are used to calculate the various rotational orientations. Fig. 10 shows the power as a function of the orientation relationship for the white run reference points of Fig. 8. The slant angle can be determined graphically from the plot of Fig. 10 as the angle by which the relative maximum power deviates from the horizontal 0 degree indication.

Die drei gestrichelten Bögen in Fig. 10 sind zu beachten. Der innerste Bogen zeigt die zu erwartende Größe der Potenz, wenn die Bezugspunkte nicht ausgerichtet sind. Der nächste Bogen ist an der durchschnittlichen Größe der Potenz über einen Bereich von 80 Grad gezogen. Der äußerte Bogen ist an der höchsten Größe der Potenz gezogen. Diese Bögen zeigen die statistische Bedeutung der größten Potenz, wie sie durch den Algorithmus zur Berechnung der Potenz bestimmt wird.Note the three dashed arcs in Fig. 10. The innermost arc shows the expected size of the power if the reference points are not The next arc is drawn at the average magnitude of the power over a range of 80 degrees. The outermost arc is drawn at the highest magnitude of the power. These arcs show the statistical significance of the largest power as determined by the algorithm for calculating the power.

Wenn ein Baird-artiger Prozeß für die Bezugspunkte angewendet wird, die den Positionen der weißen Läufe in der komprimierten Repräsentation des Bildes nach Gruppe 4 entsprechen, resultiert ein effektives und korrektes Hilfsmittel zur Bestimmung des Schrägwinkels in dem zugrundeliegenden Bild.If a Baird-like process is applied to the reference points that correspond to the positions of the white runs in the compressed representation of the image according to Group 4, an effective and correct tool for determining the skew angle in the underlying image results.

TestenTesting

Das Testen des vorliegenden Systems auf CCITT-Testdaten zeigt, daß die vorliegende Erfindung in den meisten Fällen eine beträchtliche Verbesserung in der Leistung der Bestimmung des Schrägwinkels bietet. Ein Vergleich zwischen dem Verfahren von Baird und dem vorliegenden Verfahren bezüglich der Leistung bei der Bestimmung des Schrägwinkels ist unten in Tabelle 1 gezeigt. Es wurden jeweils beide Algorithmen für die Bestimmung des Schrägwinkels an den Rohbitmaps angewendet, um den durch den Algorithmus festgestellten Schrägstellungsgrad in dem angenommenerweise nicht schrägen Bild festzustellen. Dann wurden die Bitmaps digital um -3,0 und +5,0 Grad gedreht, wobei die Bestimmung des Schrägwinkels nochmals durchgeführt wurde. Tabelle 1 Testing of the present system on CCITT test data shows that the present invention provides a significant improvement in skew angle determination performance in most cases. A comparison of skew angle determination performance between Baird's method and the present method is shown below in Table 1. Both skew angle determination algorithms were applied to the raw bitmaps to determine the degree of skew detected by the algorithm in the presumably non-skew image. The bitmaps were then digitally rotated by -3.0 and +5.0 degrees and the skew angle determination was performed again. Table 1

Ein bemerkenswertes Ergebnis der vorstehenden Tests ist, daß der Schritt zum Klassifizieren der Marken als entweder Text oder Nicht-Text nicht mehr benötigt wird. Die vörliegende Erfindung bietet im höchsten Maße relevante und genaue Ergebnisse für Bilder wie cc2, die vorwiegend keinen Text aufweisen. Dieses Ergebnis ist bei großen Schrägwinkeln besonders wichtig, da die Bezugspunkte explizit an die Strukturen gebunden sind, deren Schrägwinkel bestimmt wird.A notable result of the above tests is that the step of classifying the marks as either text or non-text is no longer required. The present invention provides highly relevant and accurate results for images such as cc2, which predominantly do not contain text. This result is particularly important at large skew angles, since the reference points are explicitly tied to the structures whose skew angle is being determined.

Das Vorhandensein von Halbtönen mit nicht orthogonal ausgerichteten Rasterwinkeln kann die Leistung des Algorithmus der vorliegenden Erfindung nicht herabsetzen, da die Haibtonbereiche unter Verwendung des nicht komprimierten Modus nach Gruppe 4 codiert sein sollten und also nicht die Verwendung von Laufcodes einbeziehen. Die Auswirkung von vorliegendem Halbtonmaterial auf die vorliegende Technik wurde jedoch noch nicht getestet.The presence of halftones with non-orthogonally aligned screen angles cannot degrade the performance of the algorithm of the present invention since the halftone regions should be encoded using the uncompressed Group 4 mode and thus do not involve the use of running codes. However, the effect of the presence of halftone material on the present technique has not yet been tested.

Die Charakterisierungen der Form der Potenzeigenschaften können zu nützlichen Verallgemeinerungen bezüglich der Vorherrschaft eines einzelnen Schrägwinkels im Seitenbild führen. Wie aus Fig. 11 zu entnehmen ist, gibt das Vorhandensein von mehreren wohldefinierten Gipfeln mehrere wohirepräsentierte Ausrichtungen im Quellbild an. Das Verfahren zum Bestimmen derartiger Ausrichtungen unterscheidet sich nicht wesentlich von dem Verfahren zum Bestimmen des Schrägwinkels eines Bildes mit nur einer einzigen Ausrichtung.The characterizations of the shape of the power properties can lead to useful generalizations regarding the dominance of a single skew angle in the side image. As can be seen from Fig. 11, the presence of several well-defined peaks indicates several well-represented orientations in the source image. The procedure for determining such orientations is not significantly different from the procedure for determining the skew angle of an image with only a single orientation.

Die vorliegende Erfindung ist dafür ausgebildet, eine Verallgemeinerung bezüglich des vorherrschenden Schrägwinkels über ein ganzes Seitenbild vorzunehmen. Es können jedoch mehrere Schrägwinkel in einer Werbekopie oder als Ergebnis eines fehlerhaften Paste-up auftreten. In diesen Fällen nimmt die vorliegende Technik weiterhin eine Verallgemeinerung bezüglich des ganzen Bildes vor, wobei diese Verallgemeinerung bei der Charakterisierung des Bildes von Nutzen sein kann oder nicht. Wenn die relativen Schrägwinkel groß sind, wie das bei einer Werbekopie der Fall sein kann, ist die Zuweisung einer einzelnen Winkeleigenschaft zu dem Seitenbild sinnlos. Im Fall von Paste-up-Fehlern kann eine einzelne Bestimmung des Schrägwinkels jedoch adäquat sein, um das Bild zu repräsentieren. Außerdem kann es das einzige einfach verfügbare Hilfsmittel sein.The present invention is designed to generalize about the predominant skew angle across an entire page image. However, multiple skew angles may occur in an advertisement copy or as a result of a paste-up error. In these cases, the present technique still generalizes about the entire image, and this generalization may or may not be useful in characterizing the image. When the relative skew angles are large, as may be the case in an advertisement copy, assigning a single angle property to the page image is meaningless. However, in the case of paste-up errors, a single skew angle determination may be adequate to represent the image. Moreover, it may be the only readily available tool.

Die vorliegende Erfindung gibt also Verfahren zum Lokalisieren, Auswählen und Verwenden von Merkmalen an, insbesondere von topographischen Merkmalen eines Bildes, um einen Schrägwinkel zu bestimmen. Die vorliegende Erfindung erfordert beträchtlich weniger Rechenaufwand als die bekannten Verfahren. Die vorliegende Erfindung nützt auch auf vorteilhafte Weise die Verfügbarkeit von nicht teueren Datenkompressionspaketen und die einfache Integration dieser Pakete in einem einzigen System.The present invention thus provides methods for locating, selecting and using features, particularly topographical features, of an image to determine a skew angle. The present invention requires considerably less computational effort than the known methods. The present invention also takes advantage of the availability of inexpensive data compression packages and the ease of integrating these packages into a single system.

Claims (8)

1. Verfahren zum Betreiben eines Prozessors, der verbunden ist, um auf eine Datenstruktur zuzugreifen, die ein Bild definiert, wobei das Verfahren folgende Schritte umfaßt:1. A method of operating a processor connected to access a data structure defining an image, the method comprising the steps of: Zugreifen (100) auf die Datenstruktur, um Übergangslokationsdaten zu erhalten, die Lokationen von Pixelfarbübergängen im Bild definieren, undAccessing (100) the data structure to obtain transition location data that define locations of pixel color transitions in the image, and Bestimmen (126) eines Schrägwinkels des Bildes unter Verwendung der Übergangslokationsdaten,Determining (126) a skew angle of the image using the transition location data, dadurch gekennzeichnet, daß die Datenstruktur das Bild in einem komprimierten Format definiert, das Laufcodes enthält, wobei jeder Laufcode eine Lokation eines Übergangs von einer ersten oder zweiten Farbe zu der jeweils anderen Farbe in einer ersten Scanzeile im Bild angibt und wobei dieser Übergang in einer zweiten zur ersten Zeile benachbarten Bezugszeile keine Entsprechung aufweist, und dadurch gekennzeichnet, daß der Schritt zum Zugreifen auf die Datenstruktur die Verwendung des Laufcodes umfaßt, um Übergangslokationsdaten zu erhalten, die nur die durch die Laufcodes angegebenen Lokationen von Übergängen definieren.characterized in that the data structure defines the image in a compressed format that includes run codes, each run code specifying a location of a transition from a first or second color to the other color in a first scan line in the image, and that transition having no counterpart in a second reference line adjacent to the first line, and characterized in that the step of accessing the data structure comprises using the run code to obtain transition location data that defines only the locations of transitions specified by the run codes. 2. Verfahren nach Anspruch 1, wobei die erste Farbe Schwarz und die zweite Farbe Weiß ist.2. The method of claim 1, wherein the first color is black and the second color is white. 3. Verfahren nach Anspruch 1 oder 2, wobei die Datenstruktur das Bild in einem komprimierten Datenformat in Übereinstimmung mit den zweidimensionalen CITT- Faksimile-Empfehlungen definiert.3. The method of claim 1 or 2, wherein the data structure defines the image in a compressed data format in accordance with the CITT two-dimensional facsimile recommendations. 4. Verfahren zum Bestimmen des Schrägwinkels eines Bildes, wobei der Schrägwinkel als der Winkel bestimmt ist, der einer ausgewählten Ausrichtung aus einer Gruppe von Ausrichtungen entspricht, wobei jede Ausrichtung eine mit ihr assozuerte Potenz aufweist, auf der die Auswahl basiert, wobei die Potenz jeder Ausrichtung aus einer zeilenweisen Zählung von ausgewählten Merkmalen für diese Ausrichtung berechnet wird, wobei die Buddaten einem Typ angehören, der eine Angabe der Punkte der Pixelfarbübergänge enthält, wobei das Verfahren folgende Schritte umfaßt:4. A method for determining the skew angle of an image, the skew angle being determined as the angle corresponding to a selected orientation from a group of orientations, each orientation having a power associated with it on which the selection is based, the power of each orientation being calculated from a row-by-row count of selected features for that orientation, the image data being of a type that includes an indication of the points of pixel color transitions, the method comprising the steps of: Auswählen von Pixelfarb-Übergangspunkten auf einer Scanzeile als Merkmale, wobei ein topographisches Merkmal des Bildes an jedem ausgewählten Punkt lokalisiert wird, das kein entsprechendes topographisches Merkmal auf der benachbarten Bezugszeile aufweist,Selecting pixel color transition points on a scan line as features, locating a topographical feature of the image at each selected point that has no corresponding topographical feature on the adjacent reference line, Auswählen (134) einer Ausrichtung,Selecting (134) an orientation, Bestimmen (138, 92-96) der Lokationen der ausgewählten Punkte der Pixelfarbübergänge für die Ausrichtung, undDetermining (138, 92-96) the locations of the selected points of the pixel color transitions for alignment, and Berechnen (130) der Potenz der Ausrichtung aus den Lokationen der ausgewählten Pixelfarb-Übergangspunkte.Calculating (130) the power of the orientation from the locations of the selected pixel color transition points. 5. Verfahren nach Anspruch 4, das folgende Schritte umfaßt:5. A method according to claim 4, comprising the following steps: Auswählen (134) einer ersten Ausrichtung,Selecting (134) a first alignment, Bestimmen (138) der Lokationen der ausgewählten Pixelfarb-Übergangspunkte für die erste Ausrichtung,Determining (138) the locations of the selected pixel color transition points for the first alignment, Berechnen (130) der Potenz der ersten Ausrichtung aus den Lokationen der ausgewählten Pixelfarb-Übergangspunkte,Calculating (130) the power of the first alignment from the locations of the selected pixel color transition points, Auswählen (134) einer zweiten Ausrichtung,Selecting (134) a second orientation, Bestimmen (138) der Lokationen der ausgewählten Pixelfarb-Übergangspunkte für die zweite Ausrichtung,Determining (138) the locations of the selected pixel color transition points for the second alignment, Berechnen (130) der Potenz der zweiten Ausrichtung aus den Lokationen der ausgewählten Pixelfarb-Übergangspunkte, undCalculating (130) the power of the second alignment from the locations of the selected pixel color transition points, and Bestimmen des Schrägwinkels aus einem Vergleich der Potenzen der ersten und der zweiten Ausrichtung.Determine the skew angle by comparing the powers of the first and second alignment. 6. Verfahren nach Anspruch 5, wobei die Buddaten in einem komprimierten Format vorliegen, das Laufcodes enthält, wobei jeder Laufcode eine Lokation eines Übergangs von einer ersten oder zweiten Farbe zu der jeweils anderen Farbe in einer ersten Scanzeile im Bild angibt und wobei dieser Übergang in einer zweiten zur ersten Zeile benachbarten Bezugszeile keine Entsprechung aufweist, wobei das Verfahren weiterhin Schritte zum Bestimmen der Lokationen dieser Laufcodes und zum Verwenden der Lokationen dieser Laufcodes als Lokationen der ausgewählten Pixelfarb-Übergangspunkte umfaßt.6. The method of claim 5, wherein the image data is in a compressed format that includes run codes, each run code indicating a location of a transition from a first or second color to the other color in a first scan line in the image, and wherein said transition has no corresponding location in a second reference line adjacent to the first line, the method further comprising the steps of determining the locations of said run codes and using the locations of said run codes as locations of the selected pixel color transition points. 7. Verfahren nach Anspruch 6, das einen weiteren Schritt zum Verwenden der Laufcodes, die Lokationen von Übergängen von Schwarz zu Weiß angeben, umfaßt.7. A method according to claim 6, comprising a further step of using the run codes indicating locations of transitions from black to white. 8. Verfahren zum Bestimmen des Schrägwinkels oder der Schrägwinkel eines gescannten Bildes, wobei die Schrägstellung bestimmt wird, indem eine Zählung von ausgewählten topographischen Merkmalen des Bildes vorgenommen wird, die ausgewählten gewichteten Summen der ausgewählten topographischen Merkmale gebildet werden (130), so daß die topographischen Merkmale eine Vielzahl von Ausrichtungen bilden, und indem die Ausrichtung oder die Ausrichtungen als der Schrägwinkel oder die Schrägwinkel bestimmt werden (140), die eine oder mehrere der gewichteten Summen maximieren, wobei das Verfahren folgende Schritte umfaßt:8. A method for determining the skew angle or angles of a scanned image, the skew being determined by taking a count of selected topographical features of the image, forming the selected weighted sums of the selected topographical features (130) such that the topographical features form a plurality of orientations, and determining the orientation or orientations as the skew angle or angles (140) that maximize one or more of the weighted sums, the method comprising the steps of: Auswählen (92) einer Vielzahl von Lokationen im Bild, undSelecting (92) a plurality of locations in the image, and Verwenden der ausgewählten Punkte als topographische Merkmale, dadurch gekennzeichnet, daß der Schritt zum Auswählen (92) das Auswählen von zwei oder mehr Lokationen im Bild umfaßt, die durch Laufcodes angegeben werden, wobei jeder Laufcode eine Lokation eines Übergangs von einer ersten oder zweiten Farbe zur jeweils anderen Farbe in einer Scanzeile im Bild angibt und wobei dieser Übergang keine Entsprechung in einer zweiten, zur ersten Zeile benachbarten Bezugszeile aufweist.Using the selected points as topographical features, characterized in that the step of selecting (92) comprises selecting two or more locations in the image indicated by run codes, wherein each run code indicates a location of a transition from a first or second color to the other color in a scan line in the image, and wherein this transition has no correspondence in a second reference line adjacent to the first line.
DE69032344T 1989-12-21 1990-12-20 Method of measuring inclination angles Expired - Fee Related DE69032344T2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/454,339 US5245676A (en) 1989-12-21 1989-12-21 Determination of image skew angle from data including data in compressed form

Publications (2)

Publication Number Publication Date
DE69032344D1 DE69032344D1 (en) 1998-07-02
DE69032344T2 true DE69032344T2 (en) 1998-12-03

Family

ID=23804223

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69032344T Expired - Fee Related DE69032344T2 (en) 1989-12-21 1990-12-20 Method of measuring inclination angles

Country Status (4)

Country Link
US (1) US5245676A (en)
EP (1) EP0434415B1 (en)
JP (1) JP3390000B2 (en)
DE (1) DE69032344T2 (en)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5979768A (en) * 1988-01-14 1999-11-09 Intermec I.P. Corp. Enhanced bar code resolution through relative movement of sensor and object
US6688523B1 (en) 1988-08-31 2004-02-10 Intermec Ip Corp. System for reading optical indicia
US6889903B1 (en) 1988-08-31 2005-05-10 Intermec Ip Corp. Method and apparatus for optically reading information
US6681994B1 (en) 1988-08-31 2004-01-27 Intermec Ip Corp. Method and apparatus for optically reading information
US5245676A (en) * 1989-12-21 1993-09-14 Xerox Corporation Determination of image skew angle from data including data in compressed form
US6373997B1 (en) 1991-07-30 2002-04-16 Xerox Corporation Coarse and fine skew measurement
JP3238504B2 (en) * 1991-12-05 2001-12-17 ゼロックス・コーポレーション Document classification method
JP3233981B2 (en) * 1992-05-26 2001-12-04 オリンパス光学工業株式会社 Symbol information reader
JP3253356B2 (en) * 1992-07-06 2002-02-04 株式会社リコー Document image area identification method
GB2273383A (en) * 1992-12-10 1994-06-15 Ibm Character recognition
JP3050007B2 (en) * 1993-08-26 2000-06-05 ミノルタ株式会社 Image reading apparatus and image forming apparatus having the same
US5410417A (en) * 1994-02-10 1995-04-25 Motorola, Inc. Method and apparatus for correcting an angle of an optical image for improving the efficiency of facsimile encoding of the image
EP0677818B1 (en) * 1994-04-15 2000-05-10 Canon Kabushiki Kaisha Image pre-processor for character recognition system
US5638466A (en) * 1995-08-30 1997-06-10 Horizon Marketing Corporation Aka Wordwand Method and apparatus for deskewing images of symbols having a non-linear baseline
JP3006466B2 (en) * 1995-09-28 2000-02-07 日本電気株式会社 Character input device
US5867612A (en) * 1996-03-27 1999-02-02 Xerox Corporation Method and apparatus for the fast scaling of an image
US5901253A (en) * 1996-04-04 1999-05-04 Hewlett-Packard Company Image processing system with image cropping and skew correction
US6104834A (en) 1996-08-01 2000-08-15 Ricoh Company Limited Matching CCITT compressed document images
GB9711022D0 (en) 1997-05-28 1997-07-23 Rank Xerox Ltd Text/image selection from document images
JP3471578B2 (en) 1997-08-29 2003-12-02 シャープ株式会社 Line direction determining device, image tilt detecting device, and image tilt correcting device
KR100264331B1 (en) * 1998-05-26 2000-08-16 윤종용 Apparatus and a method for correction of the skewed document
US6549680B1 (en) * 1998-06-23 2003-04-15 Xerox Corporation Method and apparatus for deskewing and despeckling of images
US7305617B2 (en) * 2000-02-12 2007-12-04 Adobe Systems Incorporated Method for aligning text to baseline grids and to CJK character grids
JP2002358514A (en) * 2000-12-14 2002-12-13 Ricoh Co Ltd Device and method for correcting image distortion, program, storage medium, image reader and image forming apparatus
JP2003115039A (en) 2001-07-11 2003-04-18 Ricoh Co Ltd Document filing device, its method and program and storage medium
US7206104B2 (en) * 2002-02-12 2007-04-17 Chun-Hung Lee Method for automatically determining document position in a scanner window
US7499806B2 (en) * 2002-02-14 2009-03-03 Illumina, Inc. Image processing in microsphere arrays
US7305612B2 (en) * 2003-03-31 2007-12-04 Siemens Corporate Research, Inc. Systems and methods for automatic form segmentation for raster-based passive electronic documents
US6914700B2 (en) 2003-04-17 2005-07-05 Lexmark International, Inc. Method for reducing migrating residual error in error diffusion halftoning
TWI236838B (en) * 2004-04-22 2005-07-21 Avision Inc Image acquisition device and method capable of rotating document images
US7515772B2 (en) * 2004-08-21 2009-04-07 Xerox Corp Document registration and skew detection system
US20060039627A1 (en) * 2004-08-21 2006-02-23 Xerox Corporation Real-time processing of grayscale image data
US7391930B2 (en) * 2004-12-17 2008-06-24 Primax Electronics Ltd. Angle de-skew device and method thereof
US8023155B2 (en) * 2005-03-31 2011-09-20 Hubin Jiang Imaging system with quality audit capability
NO20052656D0 (en) * 2005-06-02 2005-06-02 Lumex As Geometric image transformation based on text line searching
US8116550B2 (en) * 2006-12-20 2012-02-14 Cytyc Corporation Method and system for locating and focusing on fiducial marks on specimen slides
US8160393B2 (en) * 2008-09-18 2012-04-17 Certifi Media Inc. Method for image skew detection
WO2011001439A2 (en) 2009-07-02 2011-01-06 Hewlett-Packard Development Company, L.P. Skew detection
KR101621848B1 (en) * 2009-12-14 2016-06-01 삼성전자주식회사 Image processing apparatus and method
JP6642833B2 (en) * 2016-10-28 2020-02-12 京セラドキュメントソリューションズ株式会社 Image processing device
EP3576954A4 (en) * 2017-01-31 2020-08-19 Hewlett-Packard Development Company, L.P. Direct memory access based hardware deskew
US11455762B2 (en) * 2017-12-14 2022-09-27 Adobe Inc. Text border tool and enhanced corner options for background shading

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3831146A (en) * 1973-03-19 1974-08-20 Ibm Optimum scan angle determining means
US4251799A (en) * 1979-03-30 1981-02-17 International Business Machines Corporation Optical character recognition using baseline information
EP0020897B1 (en) * 1979-06-26 1983-11-16 International Business Machines Corporation Device for determining the optimum scanning angle of printed matter
JPS5887652A (en) * 1981-11-19 1983-05-25 Ricoh Co Ltd Picture processor
JPS58134368A (en) * 1982-02-05 1983-08-10 Ricoh Co Ltd Document picture processor
US4558461A (en) * 1983-06-17 1985-12-10 Litton Systems, Inc. Text line bounding system
US4723297A (en) * 1984-09-27 1988-02-02 Siemens Aktiengesellschaft Method for automatic correction of character skew in the acquisition of a text original in the form of digital scan results
JPS62267610A (en) * 1986-05-16 1987-11-20 Fuji Electric Co Ltd Detecting system for rotational angle of object pattern
US4876730A (en) * 1987-02-25 1989-10-24 Lundy Electronics & Systems, Inc. Optical character reader with skew recognition
JPS63268081A (en) * 1987-04-17 1988-11-04 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション Method and apparatus for recognizing character of document
JPS6478381A (en) * 1987-09-21 1989-03-23 Toshiba Corp Picture processing method
JPS6482286A (en) * 1987-09-25 1989-03-28 Toshiba Corp Image inclination detector
WO1989005495A1 (en) * 1987-12-02 1989-06-15 Eastman Kodak Company Skew detector for digital image processing system
US4866784A (en) * 1987-12-02 1989-09-12 Eastman Kodak Company Skew detector for digital image processing system
US5001766A (en) * 1988-05-16 1991-03-19 At&T Bell Laboratories Apparatus and method for skew control of document images
US5187753A (en) * 1989-12-08 1993-02-16 Xerox Corporation Method and apparatus for identification and correction of document skew
US5245676A (en) * 1989-12-21 1993-09-14 Xerox Corporation Determination of image skew angle from data including data in compressed form

Also Published As

Publication number Publication date
US5245676A (en) 1993-09-14
EP0434415A3 (en) 1991-11-21
JP3390000B2 (en) 2003-03-24
DE69032344D1 (en) 1998-07-02
EP0434415B1 (en) 1998-05-27
JPH03201866A (en) 1991-09-03
EP0434415A2 (en) 1991-06-26

Similar Documents

Publication Publication Date Title
DE69032344T2 (en) Method of measuring inclination angles
DE4311172C2 (en) Method and device for identifying a skew angle of a document image
DE69230632T2 (en) Optical word recognition through word shape analysis
DE3881392T2 (en) System and method for automatic segmentation.
DE69432585T2 (en) Method and device for selecting text and / or non-text blocks in a stored document
DE69032421T2 (en) Method and device for document inclination determination
DE69226846T2 (en) Procedure for determining word boundaries in the text
DE69414530T2 (en) Image compression of documents with submission of the form
DE60222722T2 (en) Method and device for correcting perspective distortions in document images and for summing image lines
DE69225540T2 (en) Image processing devices
DE69421117T2 (en) Device for image information processing and reproduction
DE69511507T2 (en) Method and device for automatic image segmentation using standard comparison patterns
DE3883578T2 (en) Method and device for recognizing printed characters on a receipt.
DE69629888T2 (en) Image processing method and image recognition and pixel processing system
DE3689416T2 (en) Pattern feature extraction.
DE69621992T2 (en) SYSTEM AND METHOD FOR AUTOMATIC SIDE DETECTION AND DETECTION OF FORMS
DE69517564T2 (en) Method and device for generating a hybrid data structure for displaying a raster image
DE69713941T2 (en) Image processing system
DE69230633T2 (en) Procedure for determining word forms for the following comparison
DE69600461T2 (en) System and method for evaluating the illustration of a form
DE69026041T2 (en) Identification, marking and segmentation of the halftone or dotted areas of a binary image
DE69527487T2 (en) METHOD FOR LEAVING HANDWRITTEN INPUTS
DE69029594T2 (en) Determination of line segments and of predetermined patterns in an optically scanned document
DE69926205T2 (en) ARTIFICIAL REMOVAL TECHNOLOGY FOR SLOW CORRECTED IMAGES
DE60020038T2 (en) Method for processing a numerical image

Legal Events

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