GB2203613A - Image processing apparatus - Google Patents

Image processing apparatus Download PDF

Info

Publication number
GB2203613A
GB2203613A GB08807783A GB8807783A GB2203613A GB 2203613 A GB2203613 A GB 2203613A GB 08807783 A GB08807783 A GB 08807783A GB 8807783 A GB8807783 A GB 8807783A GB 2203613 A GB2203613 A GB 2203613A
Authority
GB
United Kingdom
Prior art keywords
curve
point
contour
points
coordinates
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB08807783A
Other versions
GB8807783D0 (en
GB2203613B (en
Inventor
Ken Onodera
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.)
Canon Inc
Original Assignee
Canon Inc
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
Priority claimed from JP62083008A external-priority patent/JPH081553B2/en
Priority claimed from JP62083007A external-priority patent/JPS63249193A/en
Application filed by Canon Inc filed Critical Canon Inc
Publication of GB8807783D0 publication Critical patent/GB8807783D0/en
Publication of GB2203613A publication Critical patent/GB2203613A/en
Application granted granted Critical
Publication of GB2203613B publication Critical patent/GB2203613B/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/20Contour coding, e.g. using detection of edges
    • 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/18Extraction of features or characteristics of the image
    • G06V30/182Extraction of features or characteristics of the image by coding the contour of the pattern
    • G06V30/1823Extraction of features or characteristics of the image by coding the contour of the pattern using vector-coding
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

IMAGE PROCESSING APPARATUS
BACKGROUND OF THE INVENTION
Field of the Invention
The present invention relates to a compressing system of image data including characters and the like and, more particularly, to an image processing apparatus in which a contour of a character or the like is approximated by a set of functional curves or straight lines and the image data is compressed by the contour decision information.
Related Background Art
It is well known that an amount of dot data which is obtained by dividing image data of a character or the like into dots is extremely large. Therefore, in order to compress such a large quantity of data and then store or transmit the compressed data, various kinds of data compressing methods have been proposed.
The shape of character or the like is detected as a contour and the contour decision information is stored, thereby compressing the data amount. For example, there are known: a straight line approximating method dis closed in Japanese Patent Laid-open Nos. 149522/1979 and 79154/1980; an n-degree curve approximating method disclosed in Japanese Patent Laid-open Nos. 39963/1982, 134745/1983, and 7597611985; and the like.
2 I However, according to the former straight line approximating method, smoothness of the contour is not assured. On the other hand, according to the latter n-degree curve approximating method, although smoothness of a curve is ensured, it is complicated to convert the functional equations to the curve, so that it takes a long time to generate the curve.
Therefore, this method has a drawback such that it cannot be practically used in a high speed display device such as CRT or laser beam printer in terms of the processing speed. To solve this drawback, there is known a method using a Bezier cubic curve which can generate a curve at a high speed. However, according to this method, since a method of approximating to a curve is not established yet, there is a problem such that the approximation is difficult.
SUMMARY OF THE INVENTION
The present invention is made in consideration of the foregoing conventional methods and it is an object of the invention to provide an image processing apparatus in which a contour of image data of a character or the like is approximated and coded by a curve which can be generated at a high speed, thereby compressing the image data.
BRIEF DESCRIPTION OF THE DRAWINGS
3 1 Fig. 1 is a functional block diagram of an embodiment of the invention; Fig. 2 is a diagram showing contour data of an input character "71<"; Fig. 3 is a diagram showing the case where the contour data of Fig. 2 is divided into straight line portions and curve portions; Fig. 4 is an enlarged diagram of a part of Fig. 3; Figs - 5 to 7 are diagrams showing methods of obtaining slopes on a curve, respectively; Fig. 8 is a diagram for explaining the case where a part of the curve of Fig. 4 is enlarged and approximated by a Bezier curve; Fig. 9(A) is a diagram showing an example of a format of contour information; Fig. 9(B) is a diagram showing an example of contour information-of a curve in Fig. 8; Fig. 10 is a diagram showing a format of block data; Fig. 11 is a functional block diagram of Another embodiment; Fig. 12 is a diagram showing an example in which the curve portion is approximated by vectors; Figs. 13 to 17 are diagrams showing methods of obtaining slopes on a curve, respectively; Fig. 18 is a diagram showing a method of 4 I approximating a curve by a Bezier curve; Fig. 19 is a diagram for explaining an expanding process of a curve; Fig. 20(A) is a diagram showing an example of a format of contour information; Fig. 20(B) is a diagram showing an example of contour information of the curve of Fig. 12; Fig. 21 is a diagram showing a format of block data; and Fig. 22 is a diagram for explaining the case where a curve is encoded by approximating it by a Bezier curve.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
A preferred embodiment of the present invention will be described in detail hereinbelow with reference to the drawings.
[Description of a functional block diagram (Fig. 1)]
Fig. 1 is a block diagram showing a functional arrangement of an embodiment.
In the diagram, reference numeral 10 dentoes an image data input section to input image data which is dissolved into dots in a matrix form of [x, y].
For example, the image data input section 10 consists of an image scanner. A contour extraction section 11 extracts the contour of the image data of a character or the like which is input from the image data input I section 10 and is dissolved into dots. The contour of the character or the like which is extracted by the contour extraction section 11 is displayed by a display such as a CRT display or the like. In a straight line/curve portion discrimination section (hereinafer, simply referred to as an S/C discrimination section) 12, the operator dissolves the contour into the straight line portions and curve portions by designating points on the contour displayed on the display 20 by using a digitizer 21, mouse, light pen, or the like.
The contour portion discriminated as a straight line is converted into alinear equation such as (y = ax + b) indicative of a straight line by a function determination section 13.
On the other hand, the initial point and terminative point of the contour portion discriminated as a curve are designated by the operator in an initial point/terminative point designation section (hereinafter, simply referred to as an I/T designation section) 14.
The initial point and terminative point are designated in a manner similar to the above. Namely, the operator designates points on the contour line displayed on the display 20 by using a light pen, digitizer, or the like.
Next, a predetermined number of contour points to divide the curve portion designated by the initial point and terminative point are obtained. The slope of the contour (curve portion) defined by both edge points (initial 6 1 point and terminative point) is obtained from the average value of the slopes among the contour points and both edge points (initial point and terminative point).
In a point designation section 15, the operator designates one proper point between the initial and terminative points and selects by using the digitizer 21, light pen, or the like in a manner similar to the above.
A Bezier cubic curve calculation section 16 obtains the curve by the Bezier cubic curve on the basis of the initial point and terminative point and the points on the contour designated by the operator and displays the calculated curve by the display 20. The operator looks at the curve displayed on the display 20 and again designates proper points by a correction section 17 if correction is necessary. The sections from the contour extraction section 11 to the correction section 17 are constituted by a microprocessor.
If there is no need to correct in the correction section 17, the coordinates of four points used to obtain the curve by the Bzier curve are encoded by a coder 18. The initial point and terminative point of the straight line portion are encoded and stored as compression codes into a memory 19.
A decoder 22 decodes the compression codes encoded by the coder 18 and converts into the coordinates 7 1 and straight line equations. On the basis of the coordinates data, the curve portions of the contour are obtained by the Bezier curve and the straight line portions of the contour are synthesized, thereby obtaining the contour of the original.character or the like.
The data processes in the respective sections will be described in detail hereinbelow.
[Extraction of features of image data (Figs. 2 to 4H The image data input section 10 inputs image data by the raster scan by using a scanner or the like and dissolved into dots in a matrix form of [x, y].
The resultant binary dot pattern data becomes the original image data to be processed.
is The contour,extraction section 11 extracts the dot position, as a contour point, corresponding to the change position from "0" to "V' or from "V' to "0" in the x or y direction of the binary dot pattern data. Fig. 2 shows the contour data of the resultant character (,which is read "eV' and means "long tmime",).
The operator discriminates the straight line portions and curve portions of the contour data as shown in, e.g., Fig. 2 which is displayed on the display 20, thereby designating the initial points and terminative points of the straight line portions by using the digitizer 21 or the like.
1 Fig. 3 is a diagram showing the contour data discriminated in this manner. Each solid line portion is the portion discriminated as the straight line portion by the operator. Each broken line portion is the portion discriminated as the curve portion. Black dot portions at both ends of each straight line portion denote the initial point and terminative point designated. The straight line portions shown by the solid lines are converted into the linear equations by the function determination section 13.
Fig. 4 is an enlarged diagram of a portion 30 in Fig. 3.
Reference numeral 31 denotes a straight line portion discriminated as a straight line, and 32 and 33 indicate an initial point and a termination point of the straight line portion 31, respectively. In the I/T designation section 14, when a dividing point 40 is input, a curve 41 whose initial point is set to the point 32 and whose terminative point is set to the point 40 and a curve 42 whose initial point is set to the point 40 and whose terminative point is set to the point 33 are determined.
[Calculation of the slopes on a curve (Figs. 5 to 8)l The slopes at the respective points on the curves designated as curve portions are subsequently calculated.
That is, a predetermined number of points before 9 1 and after the points on the curve are extracted. The slopes of the line segments which are defined by con necting the points and the points before and after these points are respectively calculated, thereby calculating the slope of the curve at a predetermined point.
Fig. 5 is a diagram showing the case of obtaining a slope t 0 at a point P 0 when the point P 0 is the initial point of a curve 50.
It is assumed that the points extracted on a contour to obtain a slope are set to Q 1 and Q 2 and the slope of the line segment P 0Q1 is set to m 0 and the slope of the line segment P 0Q2 is set to m 1 The slope m 0 of the line segment P 0Q1 is calculated by the following equation when it is assumed that the coordinates of the point P 0 are -(x l, Yl) and the coordinates of the point Q 1 are (x 2' Y2) Y2 yl m 0 X 2 X 1 Similarly, assuming that the coordinates of the point Q2 are (x 3' Y3) Y3 yl m 1 X 3 X 1 When the slopes m 0 and m 1 of the respective line segments are obtained, the slope t 0 at the initial point P 0 can be calculated by the following equation.
1 1 1 -1 tan m m 0 + tan- 1) ( to = tan 2 The terminative point can be also similarly derived.
Fig. 6 is a diagram showing the case of obtaining the slope t 1 of the curve at the connecting point P 1 (e.g., the point 40 in Fig. 4) of curves 61 and 62.
Points Q_ 1 aid Q 1 on the contours of the curves of the 61 and 62 are obtained. Then, the slope m_ 1 line segment Q_ 1 P 1 and the slope m 1 of the line segment P 1Q1 are also calculated. Thus, the slope t 1 can be obtained by the following equation.
tan- 1 M- + tan- 1 m 1 1 is t 1 = tan ( Fig. 7 is a diagram showing the case of obtaining a slope t 2 at an initial point P 2 of a curve 72 connected with a straight line 71. At this time, the slope t 2 is equal to the slope mo of the straight line 71 and t 2 = m 0 Fig. 8 is an enlarged diagram of the curve 41 in Fig. 4. In Fig. 8, the same portions as those shown in Fig. 4 are designated by the same reference numerals and symbols.
In Fig. 8, a point 80 is a point designated by the operator. The coordinates of the point 80 assume 1 (X YU). It is assumed that the coordinates of the U,, initial point 32 of the curve 41 are (x o' Yo), the slope of the curve at the initial point 32 is too, the coordinates at the terminative point 40 are (x 3' Y3); and the slope of the curve at the terminative point is t 3 When the dividing value of the point 80 is set to 0.5, other two points 81 (x l, Y1) and 82 (x 2 Y2) which define the Bezier curve are calculated by the following equations.
X = {y - t X - 1 yo +.1 (3t + t) X +.1 t X 4 8 0 3 0 2 3 3 3 u U 1 / 3 y 3 -g (to - t3) yl = t 0 (X 1 - X 0 + YO X = {YU - toxu - 1 yo + 10t + t)X + 't X 2 4 8 3 0 0 2 0 0 Y31/ '18(tO - t3) Y2 = t 3 (X 2 - X 3) + Y3 Now, assuming that p 0 (X olyo), P 1 (X llyl), P 2 (X 21Y2), P 3 (X VY3)r the curve is expressed by p (t) = p 0 U-t) 3 + 3P 1 (1-t) 2 t + 3P 2 U-t)t 2 +P 3 t 3 where, 0: t;S 1.
12 1 The B6zier curve calculated in this manner is displayed on the display 20 as a broken curve 83 in Fig.
8.
The operator compares the calculated curve 83 with the original curve 41. If they are different, the point 80 is moved on the curve 41 and the calculation and display of the Bezier curve are repeated. The foregoing operations are repetitively executed until the curve 83 coincides with the curve 41.
[Description of the coding process (Figs. 9 and 10)l
Fig. 9(A) is a diagram showing an example of a format of the coded contour information.
In this example, as mentioned above, the coordinates of the initial point in each sample interval of the straight line portions and curve portions obtained, the coordinates of a special point on the approximated curve, and the coordinates of the terminative point are encoded. Further, the resultant code data are stored as a set of block data edited on each block unit basis.
Thus, the compression data which corresponds to the contour of the image data of an arbitrary character or the like with high fidelity can be derived.
A block header 90 denotes an area to store the number of samples in one block. A segment header 91 includes a flag to distinguish a straight line or a B6zier curve and a flAg indicative of the initial and terminative points of a line segment or curve.
13 1 Segment information 92 stores the coded data of the x and y coordinates values of the initial and terminative points and of each special point.
Fig. 9(B) shows the case where the curve 41 in Fig. 8 is coded and recorded.
The curve 41 is a part of the portion shown at in the character "&" in Fig. 3. The number of samples in the portion 30 is set into the block header 90. The flag indicative of the initial point 32 of the curve 41 is set into a segment header 100. That is, a curve flag F 93 and an initial point flag F 94 are set to ON. The coded data of the coordinates (xO, yo) of the initial point 32 are stored into segment information 101. The coordinates of the special points 81 and 82 on the curve 41 are stored into segment informations 103 and 105, respectively. In corresponding segment headers 102 and 104, only the curve flags are set to ON. Since the terminative point 40 of the curve 41 is also-the initial point of the next curve 42, the curve flag and initial point flag in a segment header 106 are set to ON. The coded data of the coordinates (X 3' Y3) are stored into segment information 107.
Each of the coded block data based on the foregoing format is stored on each block unit basis as shown in Fig. 10.
The case regarding the compression of character contour data has been described above. The case of 14 1 decoding the compressed contour data into the original contour data will now be explained hereinbelow.
For the compression data stored as shown in Fig. 10, the segment header and segment information are read every block data. A straight line in which the straight line flag in the segment header is set to ON is reproduced by connecting the compound initial and terminative points by a straight line. On the other hand, a curve in which the curve flag in the segment header is set to ON is obtained by the following equaiton PM = p 0 (1-t) 3 + 3P 1 t(l-t) 2 + 3P 2 t 2 (1-t) + p 3 t 3 (where, 0! t 5 1) by using the foregoing Bezier curve on the basis of the coordinates of four special points decoded. In this case, a curve can be expressed by sufficiently finely dissolving "t" between "0" and "V' and by drawing straight lines in the respective intervals.
The reconstructed contour data is developed by the dot pattern in the memory of the image data and supplied to an output device such as laser beam printer, CRT, or the like, so that a desired character or image is reconstructed.
In the embodiment, to correct an arbitrary point which is input, a method whereby this point is moved on an original curve has been used. However, the correction can be also performed by fixing an arbitrary 1 point which is input and by changing a resolving coefficient u.in a range from "0" to I'll'.
As explained above, according to the embodiment, there is an advantage such that the coding process of a contour line by a Bezier curve, which has conventionally been considered to be difficult, can be accurately performed at a high speed by designating initial and terminative points and the other points on the contour line.
As described above, according to the invention, there are advantages such that the contour of the image data can be easily coded and reproduced (decoded) at a high speed.
[Another embodiment] Another preferred embodiment of the invention will now be described in detail hereinbelow with refer ence to the drawings.
[Description of the functional block diagram (Fig. 11)l
Fig. 11 is a block diagram showing a functional arrangement of this embodiment.
In the diagram, reference numeral 101 denotes an image data input section to input image data which is dissolved Into dots in a matrix form of [x, Y].
The image data input section 101 consists of, e.g., an image scanner. A contour extracting section 110 extracts the contour of the image data of a character or the like which was input from the image data input 16 1 section 101 and dissolved into the dots. In a straight line approximation section 120, the contour of a character or the like extracted by the contour extraction section is approximated by straight lines by use of vectors such that deviation amounts from the contour are an allowable difference or less.
The approximation contour is divided into straight line portions and curve portions on the basis of the lengths of the,vectors by a discrimination section 130. For the contour section discriminated as a curve, the slope of the contour (curve portion) at both edge points (initial point and terminative point) of the contour portion is calculated by a slope calculation section 140 on the basis of the average value of the slopes of the line segments connecting both edge points (initial point and terminative point) of the curve portion with a predetermined number of contour points which are set before and after both edge points and on the basis of the slope of a curve or straight line which is connected.
A Bezier cubic curve approximation section sets a special dividing point PM on the Bezier cubic curve between the initial and terminative points on the contour line discriminated as a curve portion, thereby obtaining the Bezier cubic curve. An error calculation section 160 calculates a deviation difference between the contour point and the approximated Bezier 17 1 cubic curve. The dividing point PM on the approximated portion of the B6zier cubic curve is moved on the contour so as to minimize this deviation difference.
When the Bezier cubic curve such as to minimize the difference is determined by the error calculation section 160, the dividing point P(u) is determined as a sample point by a sample point determination section 170.
In an expansion section 180, a terminative point (P 3) of the curve approximated by the curve approximation section 150 is checked. If the terminative point (P 3) is continuously connected to the next adjacent unknown curve, the process is advanced to the initial point of this unknown curve and the curve approximating processes from the slope calculation section 140 to the sample point determination section 170 are again executed. In a sample point re-determination section 190, a point such that the deviation difference between the approximated curve and the contour points of the original curve falls within a predetermined value and at the same time, the longest Bezier curve is obtained is determined to be the terminative point (P 3). The dividing point (sample point) at this time is also again decided. The sections from the contour extraction section 110 to the sample point re-determination section 190 are constituted by a microprocessor or the like.
When the deviation difference exceeds the 18 predetermined range, the sample point is returned to the preceding sample point. When the terminative point of the curve portion is connected to the curve portion or straight line portion which has already been known, the expanding operation by the expansion section 180 is finished.
A coder 200 encodes the coordinates values of the points P 0 to P 3 to define the Bezier curve obtained as mentioned above. The coded compression data is stored into a memory 210.
By performing the foregoing processes for all of the contour portions, the compression codes obtained by dividing the contour data into the straight line portions and curve portions and then encoding them are formed in the memory 210.
In the decoder, the compression codes encoded by the coder 200 are decoded and converted into the coordinates and straight line equations. On the basis of the coordinates data, the curve portions of the contour are obtained by the Bezier curve and the straight line portions of the contour are synthesized, thereby deriving the contour of the original character or the like.
The data processes in the respective sections will now be explained in detail hereinbelow.
[Extraction of features of the image data] The image data input section 10-1 inputs image 19 1 data by the raster scan by using an image scanner or the like and dissolves the image data into dots in a matrix form of [x, y]. The resultant binary dot pattern data becomes the original image data to be processed.
The contour extraction section 110 extracts the dot position, as a contour point, corresponding to the change position from "0" to "V' or from "1" to "0" in the x or y direction of the binary dot pattern data.
[Description of the straight line approximation section and discrimination section (Fig. 12)l In an arbitrary interval on a contour, the straight line approximation is performed by a plurality of vectors which are set to values as long as possible within a range in which the deviation amount from the original contour is-a predetermined allowable difference or less.
Fig. 12 shows an example in the case where a contour 24 shown by a broken line was approximated into a straight line by a set of two-dimensional vectors 25 in an arbitrary interval (P 0' Pn-1) on the contour.
The contour shape of a character which is used in this embodiment generally has straight line portions and curve portions. To discriminate them, the straight line portion and curve portion are recognized on the basis of the lengths of vectors derived by the foregoing straight line approximation. That is, assuming that both ends of a certain approximation straight line 1 are P t (xty Yt) and P t+l (X t+11 Yt+l), the length ú of this vector is calculated as follows.
- Yt+l) 2 ú = (X - X t+l) 2 + (y t t The line in which the length ú is a predetermined value or less is recognized as a curve portion.
[Description of the slope calculation section (Figs.
13 to 17)] To approximate the curve portion derived by the discrimination section 130 by a Bezier cubic curve, the slopes at both edge points (initial point and terminative point) of the curve portion are necessary.
Fig. 13 is a diagram showing the case where the curve 311 is continuously smoothly connected to the straight line 301. At this time, the slope m of the straight line 301 becomes the slope t 0 at the initial point (P 0) of the curve 311. That is, t 0 = M.
In Fig. 14, when a curve 331 which is smoothly (linearly) connected to a curve 321 which has already been approximated by a Bezier curve starts, a slope t 3' at a terminative point P 3 ' of the curve 321 becomes the slope t 0 at the initial point (P 0) of the curve 331. Namely, t 0 = t 3 In this case, predetermined contour points (P1f P 2) are set on a curve 34 after the edge point (P 0). The average slope is calculated from the slopes 1 t 1 and t 2 of line segments 35 and 36 connecting the 21 1 edge point (P 0) and the contour points (P,. P 2). The case of two contour points of Fig. 15 will now be explained as an example.
tan- 1 t + tan- 1 t 2 1 t 0 = tan ( 2 Fig. 16 is a diagram showing the case where the edge point (P 0) is set as an intermediate point between unknown curves 37 and 38 and the initial point or terminative point of the curve 38 is set.
In the case of Fig. 16, a predetermined number of contour points (P_,, P_ 2' Pill P 2) are set on the unknown curves 37 and 38 before and after the initial point (P 0), and the slope t 0 at the initial point is obtained from the average value of the slopes of line segments 39 to 42 connecting the initial point (P 0) and each contour point. Therefore, in Fig. 16, the slope t 0 at the edge Point P 0 is expressed by -1 +tan- 1 t +tan- 1 t +tan- 1 t t-2 2 1 1 20) t 0 = (tan 4 Fig. 17 is a diagram showing the case of obtaining the slope t 0 at the terminative point when the terminative point (P 0) of a curve portion 43 is not smoothly connected to any line.
In this case, predetermined contour points ) are set on the curve 43 before the terminative (P-141 P- 2 - 22 1 point P 0 and the slope t 0 at the edge point P 0 is obtained from the average value of the slopes t_ 1 and t_ 2 of the line segments 44 and 45 connecting the edge point P 0 and the contour points P_ 1 and P 2 Therefore, -1 + ta n- 1 t tan t 1 2) t 0 = tan 2 [Description of the B6zier cubic curve approximation portion (Fig. 18)l Fig. 18 is a diagram showing a curve 181 which is obtained by approximating a contour line 180-1 discriminated as a curve. Both edge portions of the contour line 1801 are set to P 0 (X 01 YO) and P 3 (X 3' Y3) and the slopes of the curves at these edge points are set to t 0 and t 3 Next, the contour point adjacent to the point P 0 on the contour line 180-1 between P 0 and ) and u = 0.5. In this case, is set to P (X P Y 3 U U U the other two points P 1 (xlf Y1) and P 2 (X 21 Y2) which define the Bezier curve are calculated by the following equations, respectively.
X = {y - t X -.1 yo + -1(3t. + t)X + it X 8 0 3 0 2 3 3 U 3 u 4 1} 4 ( t t 2 Y3 8 0 3 Yl = t 0 (X 1 - X 0) + YO 23 X {y t X 1 yo + -1(3t + t)x +.1 t x 2 0 4 8 3 0 0 2 0 0 U U (t t y 3 3 8 0 Y2 = t 3 (X 2 - X 3) + Y3 This Bezier curve becomes p (t) = p 0 U-t) 3 + 3P 1 (1 - t) 2 t + 3P 2 (1 - t)t 2 + p 3 t 3 (where, 0 5- t:- 1) [Description of the error calculation section and sample point determination section) The deviation between the Bezier curve derived as explained above and the original contour (curve portion) is obtained.
This deviation is obtained by the following method. In the foregoing Bezier curve, t is set to an enough small value within a range from 0 to 1. The minimum value of the distances between each point on the B6zier curve which is obtained in correspondence to the value of each t and the contour points is set to the deviation between the Bezier curve and each contour point. These processes are executed with respect to all of the contour points including the edge point between P 0 and P 3 The maximum value of the deviations obtained is set to the difference from the original 24 contour.
is moved on the contour The dividing point P U line between P 0 to P 3 so as to minimize this difference.
The Bezier curve approximation and the calculation of the difference are repeated. The points P 0 to P 3 when the difference is the minimum are set to the
temporary sample points. This is because when an unknown curve is subsequently connected, there is a possibility such that the sample point changes as will be explained hereinlater.
[Description of the expansion section (Fig. 19)l
Fig. 19 is a diagram showing the expanding process of a curve portion (that is, the process to connect the curve portion which has already been derived with"an unknown curve portion) when an unknown curve portion is connected adjacently to the contour line derived.
A curve 182 shown by a broken line is a curve portion which has already been obtained and its terminative point is set to P 3 A curve portion 183 is an unknown curve portion. The point P 3 is moved to a terminative point P 3 ' of the curve portion 183, thereby obtaining a BUier curve 184 by the Bezier cubic curve approximation section 150. When the difference between the Bezier curve 184 and the curve 183 obtained in this manner falls within a predetermined difference range, the expanding operation is further continued, thereby 1 expanding the curve portion, namely, connecting with the next curve interval.
When the difference exceeds the predetermined difference range, the expanding process is finished and the sample point is returned to the preceding sample point. On the other hand, when the curve portion or straight line portion which has already been known subsequently continues, the expanding process is also finished.
In the sample point re-determination section 190, four points (P 0 to P 3) on the B6zier curve which is obtained as mentioned above are newly determined as sample points.
[Description of the coder (Figs. 20 and 21)l
The coordinates of the sample points of the straight line portions and curve portions derived as explained above are encoded. Further, the coded data is stored as a set of block data edited on each block unit basis. Thus, the compression data according to the contour of an arbitrary character can be obtained with high fidelity.
Fig. 20(A) is a diagram showing an example of a format of coded contour information.
The coordinates of the initial point in each sample interval of the resultant straight line portions and curve portions, the coordinates of special points of approximation curves, and the coordinates of the 26 1 terminative points are encoded. Further, the coded data is stored as a set of block data edited on each block unit basis. Thus, the compression data according to the contour of the image data of an arbitrary character or the like can be derived with high fidelity.
Thd block header 90 denotes the area to store the number of sample points in one block. The segment header 91 includes the flag to distinguish a straight line or Bezier curve and the flag to indicate the initial point and terminative point of a line segment or curve.
The coded data of the values of the x and y coordinates of the initial point, terminative point, and each special point are stored in the segment information 92.
Fig. 20B is a diagram showing the case where a curve 120-1 in Fig.'22 was encoded and recorded.
The number of samples of the curve 120-1 is set into the block header 90. The flag of the initial point P 0 of the curve 120-1 is set into the segment header 100. That is, the curve flag 93 and the initial point flag 94 are set to ON. The coded data of the coordinates (x Y0) of the initial point P 0 are stored 0, in the segment information 101. The coordinates of the special points P 1 and P 2 on the curve 120-1 are stored into the segment information 103 and 105, respectively. In the corresponding segment headers 102 and 104, only the curve flag is set to ON. On the other hand, since the terminative point P 3 of the curve 120-1 27 is also the initial point of a next curve 121, the curve flag and initial point flag in the segment header 106 are set to ON. The coded data of the coordinates (X 3' Y3) are stored into the segment informat. ion 107.
Each of the coded block data based on the foregoing format is stored on each block unit basis as shown in Fig. 21.
The example regarding the character contour data compression has been described above. An explanation will now be made with respect to the case where the contour data compressed as mentioned above is decoded into the original contour data.
The segment header and segment information of the compression data stored as shown in Fig. 21 are read every block data. A straight line in which the straight line flag of the segment header is set to ON is reproduced by connecting the compound initial point and terminative point-by a straight line. On the other hand, a curve in which the curve flag of the segment header is set to ON is derived by the equation PM = p 0 (1-t) 3 + 3P 1 t(l-t) 2 + 3P 2 t 2 U-t) + p 3 t 3 (where, 0:5 t:S 1) on the basis of the decoded coordinates of four special points by using the foregoing Bezier curve. At this time, the curve can be expressed by sufficiently finely 28 1 dissolving t in a range from "0" to "1" and by connecting each interval by straight lines.
The reconstructed contour data is developed by a dot pattern of the image data in the memory. A desired character or image is reconstructed by supplying the dot pattern to an output apparatus such as laser beam printer, CRT, or the like.
Although the method whereby a point is moved on an original curvethas been used to correct an arbitrary input point in the embodiment, the correction can be also performed by fixing an arbitrary input point and changing the dissolving coefficient u in a range from "0" to "1". On the other hand, although the example of the contour of a character has been described in the embodiment, the invention can be also applied to diagram data.
As described above, according to the embodiment, there is an advantage such that the coding process of a contour line by a B6zier curve, which has conventionally been considered to be difficult, can be accurately performed at a high speed by designating the initial point, terminative point, and the other points on the contour line.
As described above, according to the invention, since the contour of the image data can be approximated into a curve.at a high speed, there is an advantage such that the contour or diagram image of the image data 1 of a character or the like can be easily encoded.
- n.

Claims (9)

1 WHAT IS CLAIMED IS:
1. An image processing apparatus comprising:
designating means for designating a curve portion of diagram information; means for obtaining slopes and coordinates of said curve portion at both edge points of each interval which is obtained by dividing said curve portion designated by said designating means or of said curve portion; means for determining a dividing point in said interval or on the curve portion; means for obtaining the coordinates of said dividing point; approximating means for approximating the curve portion on the basis of the slopes of the curve portion and on the basis of the coordinates of said both edge points and the coordinates of the dividing point; and means for encoding the codes corresponding to the coordinates of a plurality of special points on the approximated curve into the coded codes of said curve or said interval.
2. An apparatus according to claim 1, wherein said diagram information is contour information of the input image data.
3. An apparatus according to claim 1, wherein 31 1 said approximating means performs a curve approximationby a B6zier cubic curve and stores as contour data of four special points of said Bezier cubic curve.
4. An image processing apparatus comprising:
discriminating means for discriminating a straight line portion and a curve portion of diagram information; means for obtaining slopes and coordinates of a curve at both edge points of each interval obtained by dividing said curve portion; means for approximating said interval by an approximating equation onthe basis of the slopes and the coordinates of said both edge points and of a dividing point to divide said intervals, for determining said dividing point such that a difference between the curve in said interval and the approximated curve is a predetermined value or less, for expanding said approximation of said interval to the whole curve portion, and for approximating the whole curve portion; means for encoding the codes corresponding to the coordinate values of each point on the approximated curve into the coded codes of the curve portion; and means for encoding an initial point and a terminative point of said straight line portion.
5. An apparatus according to claim 4, wherein 32 1 said diagram information is contour information of the input image data.
6. An apparatus according to claim 4, wherein said discriminating means approximates the diagram information by a straight line such that a difference from a straight line is a predetermined value or less and discriminates as a curve when a length of said straight line is a predetermined length or less.
7. An apparatus according to claim 4, wherein said approximating means obtains the dividing point in the interval of said curve portion, performs the curve approximation by the Bezier cubic curve, and determines said dividing point in a manner such that the deviation between the curve approximated by said Bezier cubic curve and the original curve is a predetermined value or less.
8. An image processing apparatus, comprising:
means for receiving pixel data defining a curve; means for selecting a pair of points on the curve; means for approximating the coordinates of the selected pair of points and the slopes of the curve at the selected points; 33 means for selecting a further point on the curve intermediate said pair of points; means for approximating the coordinates of the selected further point; means for determining from the approximated coordinates and slopes parameters of a cubic curve approximating the curve defined by the received data; and means for encoding the parameters.
9. An image processing apparatus substantially as described with reference to the drawings.
Publibhed 1988 at The Patent Office, state House, 66171 High Holborn, London WClR 4TP. Further copies mav be obtained from The Patent Office, Sales Branch, St Mar7 Cray, Orpington, Kent BRS 3RD. Printed by Multiplex techniques ltd, St Mary Cray, Kent. Con. 1/87.
GB8807783A 1987-04-06 1988-03-31 Image processing apparatus Expired - Lifetime GB2203613B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP62083008A JPH081553B2 (en) 1987-04-06 1987-04-06 Image data compression method
JP62083007A JPS63249193A (en) 1987-04-06 1987-04-06 Image data compression system

Publications (3)

Publication Number Publication Date
GB8807783D0 GB8807783D0 (en) 1988-05-05
GB2203613A true GB2203613A (en) 1988-10-19
GB2203613B GB2203613B (en) 1992-01-02

Family

ID=26424071

Family Applications (1)

Application Number Title Priority Date Filing Date
GB8807783A Expired - Lifetime GB2203613B (en) 1987-04-06 1988-03-31 Image processing apparatus

Country Status (4)

Country Link
DE (1) DE3811396A1 (en)
FR (1) FR2613508B1 (en)
GB (1) GB2203613B (en)
IT (1) IT1219909B (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2229337A (en) * 1989-02-22 1990-09-19 Ricoh Kk Image coding method
EP0393678A1 (en) * 1989-04-20 1990-10-24 Kabushiki Kaisha Toshiba Method and system for determining connection states of straight short vectors representing figure in curve fitting
EP0395944A1 (en) * 1989-04-20 1990-11-07 Kabushiki Kaisha Toshiba Method and system for determining segment types in figure represented by straight short vectors
EP0421566A2 (en) * 1989-10-04 1991-04-10 Stanley Electric Co., Ltd. System for generating approximate curves and system for memorizing curves
EP0447176A2 (en) * 1990-03-14 1991-09-18 Canon Kabushiki Kaisha Method and apparatus for processing characters
FR2662041A1 (en) * 1990-05-11 1991-11-15 Metzger Gerard Image transmission method and device
EP0479496A2 (en) * 1990-09-28 1992-04-08 Xerox Corporation High speed graphic image generation using multiple steppers
EP0481463A2 (en) * 1990-10-17 1992-04-22 Seikosha Co., Ltd. Curvilinear approximate method
US5233671A (en) * 1989-02-22 1993-08-03 Ricoh Company Ltd. Image coding method for coding characters using a modified Bezier curve
US5430834A (en) * 1990-10-17 1995-07-04 Seikosha Co., Ltd. Method and apparatus for storing and reproducing a curve
US5594852A (en) * 1994-08-17 1997-01-14 Laser Products, Inc. Method for operating a curve forming device
GB2321359A (en) * 1997-01-21 1998-07-22 Daewoo Electronics Co Ltd Polygonal approximation in video contour encoding system
US5978512A (en) * 1997-01-21 1999-11-02 Daewoo Electronics Co., Ltd Polygonal approximation method and apparatus for use in a contour encoding system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0604685A1 (en) * 1992-12-28 1994-07-06 Océ-Nederland B.V. Method of modifying the fatness of characters

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2147474A (en) * 1983-10-03 1985-05-09 Shaken Kk Method of processing character or pictorial image data

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4674058A (en) * 1981-12-07 1987-06-16 Dicomed Corporation Method and apparatus for flexigon representation of a two dimensional figure
DE3429110A1 (en) * 1984-08-03 1986-02-13 H. Berthold Ag, 1000 Berlin METHOD FOR CODING AND DECODING CHARACTERS
US4674059A (en) * 1984-09-10 1987-06-16 Allied Corporation Method and apparatus for generating a set of signals representing a curve

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2147474A (en) * 1983-10-03 1985-05-09 Shaken Kk Method of processing character or pictorial image data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WO A1 83/02179 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2229337A (en) * 1989-02-22 1990-09-19 Ricoh Kk Image coding method
GB2229337B (en) * 1989-02-22 1994-01-05 Ricoh Kk Image coding method
US5091976A (en) * 1989-02-22 1992-02-25 Ricoh Company, Ltd. Image coding method for extracting, segmenting, and coding image contours
US5233671A (en) * 1989-02-22 1993-08-03 Ricoh Company Ltd. Image coding method for coding characters using a modified Bezier curve
EP0393678A1 (en) * 1989-04-20 1990-10-24 Kabushiki Kaisha Toshiba Method and system for determining connection states of straight short vectors representing figure in curve fitting
EP0395944A1 (en) * 1989-04-20 1990-11-07 Kabushiki Kaisha Toshiba Method and system for determining segment types in figure represented by straight short vectors
US5231697A (en) * 1989-04-20 1993-07-27 Kabushiki Kaisha Toshiba Method and system for determining connection states of straight short vectors representing figure in curve fitting
US5222207A (en) * 1989-04-20 1993-06-22 Kabushiki Kaisha Toshiba Method and system for determining segment types in figure represented by straight short vectors
EP0421566A2 (en) * 1989-10-04 1991-04-10 Stanley Electric Co., Ltd. System for generating approximate curves and system for memorizing curves
EP0421566B1 (en) * 1989-10-04 1996-12-27 Stanley Electric Co., Ltd. System for generating approximate curves and system for memorizing curves
EP0447176A3 (en) * 1990-03-14 1993-01-07 Canon Kabushiki Kaisha Method and apparatus for processing character
EP0447176A2 (en) * 1990-03-14 1991-09-18 Canon Kabushiki Kaisha Method and apparatus for processing characters
US5740275A (en) * 1990-03-14 1998-04-14 Canon Kabushiki Kaisha Method and apparatus for processing characters using pattern data conversion
FR2662041A1 (en) * 1990-05-11 1991-11-15 Metzger Gerard Image transmission method and device
EP0479496A3 (en) * 1990-09-28 1993-03-31 Xerox Corporation High speed graphic image generation using multiple steppers
EP0479496A2 (en) * 1990-09-28 1992-04-08 Xerox Corporation High speed graphic image generation using multiple steppers
EP0481463A3 (en) * 1990-10-17 1992-12-23 Seikosha Co., Ltd. Curvilinear approximate method
EP0481463A2 (en) * 1990-10-17 1992-04-22 Seikosha Co., Ltd. Curvilinear approximate method
US5430834A (en) * 1990-10-17 1995-07-04 Seikosha Co., Ltd. Method and apparatus for storing and reproducing a curve
US5581679A (en) * 1990-10-17 1996-12-03 Seiko Precision Inc. Method for representing an approximation of a curvilinear curve and constructing a curve from the approximation
US5594852A (en) * 1994-08-17 1997-01-14 Laser Products, Inc. Method for operating a curve forming device
GB2321359A (en) * 1997-01-21 1998-07-22 Daewoo Electronics Co Ltd Polygonal approximation in video contour encoding system
US5978512A (en) * 1997-01-21 1999-11-02 Daewoo Electronics Co., Ltd Polygonal approximation method and apparatus for use in a contour encoding system

Also Published As

Publication number Publication date
IT8847822A0 (en) 1988-04-06
GB8807783D0 (en) 1988-05-05
GB2203613B (en) 1992-01-02
FR2613508A1 (en) 1988-10-07
IT1219909B (en) 1990-05-24
FR2613508B1 (en) 1996-02-09
DE3811396C2 (en) 1991-11-07
DE3811396A1 (en) 1988-10-27

Similar Documents

Publication Publication Date Title
GB2203613A (en) Image processing apparatus
US5644654A (en) Image processing apparatus capable of efficient coding of complex shape information
US4772947A (en) Method and apparatus for transmitting compression video data and decoding the same for reconstructing an image from the received data
US5136659A (en) Intelligent coding system for picture signal
US5091976A (en) Image coding method for extracting, segmenting, and coding image contours
US4912559A (en) Image processing method
US5233671A (en) Image coding method for coding characters using a modified Bezier curve
US5901254A (en) Apparatus and method for image reduction
US5621819A (en) Multidimensional multi-valued color image compression and decompression method
CA1292320C (en) Pattern processing
EP0309655B1 (en) Image processing apparatus and method
EP0605210A2 (en) Image processing method and apparatus and facsimile
EP0858226B1 (en) Method and apparatus for encoding a contour of an object by using a vertex inserting technique
US5091977A (en) Image data compression method using a run prediction technique
KR100239307B1 (en) Contour image encoder
JPS623573A (en) Method and apparatus for processing image data for data compression
US4623936A (en) Error processing technique for modified read code
JPH081553B2 (en) Image data compression method
US4926266A (en) Method of decoding in run representation
US6064774A (en) Image processing method and system and computer program product therefor
US6301300B1 (en) Method and apparatus for efficiently coding and decoding sparse images
US6141458A (en) Method and apparatus for increasing the speed of a full code book search in a quartizer encoder
JP2882285B2 (en) Color image compression / expansion method
JP2513654B2 (en) Image coding device
GB2334846A (en) Encoding a binary shape signal using context based techniques

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee