JPH0322187A - Picture processor - Google Patents
Picture processorInfo
- Publication number
- JPH0322187A JPH0322187A JP1158031A JP15803189A JPH0322187A JP H0322187 A JPH0322187 A JP H0322187A JP 1158031 A JP1158031 A JP 1158031A JP 15803189 A JP15803189 A JP 15803189A JP H0322187 A JPH0322187 A JP H0322187A
- Authority
- JP
- Japan
- Prior art keywords
- outline
- drawing point
- point
- positional relationship
- change
- 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
Links
- 239000013598 vector Substances 0.000 claims description 38
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000000034 method Methods 0.000 claims description 10
- 238000010422 painting Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000004382 potting Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 235000010582 Pisum sativum Nutrition 0.000 description 1
- 240000004713 Pisum sativum Species 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
Landscapes
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
Description
【発明の詳細な説明】
〈産業上の利用分野〉
この発明は、図形の輪郭をアウトラインベクトルで表わ
し、このアウトラインベクトルからアウトラインを作成
して、このアウトラインの内部を塗りつぶすようにした
画像処理装置に関する。DETAILED DESCRIPTION OF THE INVENTION <Industrial Application Field> The present invention relates to an image processing device that represents the outline of a figure by an outline vector, creates an outline from this outline vector, and fills in the inside of this outline. .
く従来の技術〉
図形の任意領域を塗りつぶす方法としては従来からシー
ドフィルやスキャンフィルか知られており、シードフィ
ルは多くの画像処理プロセッサーに採用されているが、
スキャンフィルと比べて処理速度が遅いという欠点があ
る。Conventional technology Seed fill and scan fill have been known as methods for filling in arbitrary areas of figures, and seed fill is used in many image processing processors.
The disadvantage is that the processing speed is slower than scan fill.
スキャンフィルは第5図に示すように、塗りつぶしたい
図形の輪郭をアウトラインベクトルで示し、このアウト
ラインベクトルの向きを、その左側を塗りつぶすと図形
が塗りつぶされるように設定する。例えば、第6図(a
)に示す元データから第6図(b)に示すアウトライン
ベクトルを作成する。そして、このアウトラインベクト
ルから第7図(a)に示すようなアウトラインを作成し
、X方向へスキャニングして、水平走査線と、このアウ
トラインとの奇数回目の交差で塗りつぶしを開始し、偶
数回目の交差で塗りつぶしを中止して、第7図(b)に
示すような図形を得るようになっている。As shown in FIG. 5, scan fill indicates the contour of a figure to be filled in using an outline vector, and sets the direction of this outline vector so that when the left side of the figure is filled in, the figure is filled in. For example, in Figure 6 (a
The outline vector shown in FIG. 6(b) is created from the original data shown in ). Then, create an outline as shown in Figure 7(a) from this outline vector, scan in the X direction, start filling at the odd-numbered intersection of the horizontal scanning line and this outline, and start filling at the even-numbered intersections of the horizontal scanning line and this outline. Filling is stopped at the intersection to obtain a figure as shown in FIG. 7(b).
このようなスキャンフィルにより図形を塗りつぶすよう
にした画像処理装置としては、従来、特公昭53−41
017号公報に示すようなものがある。この画像処理装
置はアウトラインベクトルから周知のプレーゼンハムの
アルゴリズムに従ってアウトラインを作成し、例えば第
8図(a)、第9図(a)および第10図(a)に示す
ようなアウトラインを得るようにしている。As an image processing device that fills in figures with such a scan fill, conventionally,
There is one as shown in Publication No. 017. This image processing device creates an outline from the outline vector according to the well-known Presenham's algorithm, and obtains outlines such as those shown in FIGS. 8(a), 9(a), and 10(a), for example. There is.
そして、X方向へスキャニングして、水平走査線とこれ
らのアウトラインとの奇数回目の交差の際に塗りつぶし
を開始し、交差した画素も含めて塗りつぶし、偶数回目
の交差の際に塗りつぶしを中止し、交差した画素まで塗
りつぶすようにしている。Then, scanning in the X direction, starting filling at odd-numbered intersections between the horizontal scan line and these outlines, filling in including the crossed pixels, and stopping filling at even-numbered intersections, I am trying to fill in even the intersecting pixels.
〈発明が解決しようとする課題〉
ところで、上記従来の画像処理装置では、アウトライン
を作成する場合、第8図(a)における頂部や第9図(
a)における中央部のようにアウトラインベクトルが同
一画素上に重なった場合には、その画素の位置がアウト
ラインとなる。このため、水平走査線がこのアウトライ
ンと交差すると、その画素を含めてその右側の画素をす
べて塗りつぶすことになり、第a図(b)や第9図(b
)に示すような塗りつぶしの誤りが生じる。また、第l
O図(a)のようにスキャン方向と平行なアウトライン
が作成された場合、そのアウトラインが、走査線が交差
する最初の画素から数えて奇数番目の画素で終っている
場合には、その奇数番目の画素の右側の画素も塗りつぶ
されるため第10図(b)に示すような塗りつぶしの誤
りが生じる。<Problems to be Solved by the Invention> By the way, in the conventional image processing apparatus described above, when creating an outline, the top part in FIG. 8(a) or the top part in FIG. 9(
When the outline vectors overlap on the same pixel as in the center in a), the position of that pixel becomes the outline. Therefore, when a horizontal scanning line intersects this outline, all pixels to the right of it, including that pixel, are filled in, such as in Figure a (b) and Figure 9 (b
) will result in a filling error as shown in (). Also, the lth
When an outline parallel to the scanning direction is created as shown in Figure O (a), if the outline ends at an odd-numbered pixel counting from the first pixel where the scanning line intersects, then the odd-numbered pixel Since the pixel to the right of the pixel 1 is also filled in, a filling error as shown in FIG. 10(b) occurs.
このような誤りを発生しないようにするため、従来は、
例えば、第7図(a)に示すように、頂部のアウトライ
ンからX軸方向に1ドットずれた画素の位置をもアウト
ラインとするような処理をしていた。また、スキャン方
向と平行なアウトラインにあっては長さが偶数ドットと
なるようにするか始点と終点だけをプロットする処理を
していた。In order to prevent such errors from occurring, conventionally,
For example, as shown in FIG. 7(a), a process was performed in which the position of a pixel shifted by one dot in the X-axis direction from the top outline was also set as an outline. Furthermore, for outlines parallel to the scanning direction, the length is made to be an even number of dots, or only the start and end points are plotted.
しかしながら、このようにした場合には、この処理を行
うホストの処理速度が遅くなりホストの負荷も大きくな
る。また、ベクトルフォントに上記処理を施して得られ
たアウトラインをマスクROMなどのメモリに入れてお
き、そのアウトラインを縮小したり回転した場合、例え
ば、第11図(a)に示すアウトラインを第2図(b)
に示すように縮小した場合に、上述したような塗りつぶ
しの誤りが発生することがある。また、例えば第12図
(a)に示すアウトラインに上記処理を施すと第12図
(b)のようなアウトラインとなるが、これを塗りつぶ
すと第12図(c)のようになり、第l2図(a)で示
す図形から形状の異なる図形ができてしまう。However, in this case, the processing speed of the host that performs this processing becomes slow and the load on the host increases. Furthermore, if the outline obtained by applying the above processing to the vector font is stored in a memory such as a mask ROM, and the outline is reduced or rotated, for example, the outline shown in FIG. (b)
When the image is reduced as shown in , the filling error described above may occur. For example, if the outline shown in FIG. 12(a) is subjected to the above processing, it will become an outline as shown in FIG. 12(b), but if it is filled in, it will become as shown in FIG. A figure with a different shape is created from the figure shown in (a).
このように塗りつぶしを行なった場合に誤りが発生した
り、形状が異なったりするアウトラインとしては第13
図に示すものが典型的な例としてあげられる。第l3図
(a) , (b)に示すアウトラインは第8図(a)
や第IO図(a)に示したアウトラインと同種のアウト
ラインであり、第13図(c)は同一画素を2つの境界
が共有する場合、第13図(d)は第13図(c)の極
限として2つの境界が全く一致する場合を示している。The 13th outline is one where errors occur or the shape is different when filling in in this way.
The one shown in the figure is a typical example. The outline shown in Figure 13(a) and (b) is as shown in Figure 8(a).
Figure 13(c) is the same type of outline as the outline shown in Figure 13(c), and Figure 13(d) is the same type of outline as that shown in Figure 13(c). As a limit, the case where the two boundaries completely coincide is shown.
そして、丸印で囲ったアウトラインが誤りの原因となる
アウトラインを示している。The outline surrounded by a circle indicates the outline that causes the error.
このように、上記従来の画像処理装置では、アウトライ
ン作成時に第13図に示すようなアウトラインを作成す
るため、このアウトラインに、図形塗りつぶしの際に誤
りを発生しないようにするための処理を施す必要が生じ
、処理速度が遅くなるという問題があった。また、上記
処理を施すために、塗りつぶしたあとの図形の形状が元
の図形の形状と大きく異なってしまい、ドットフォント
よりも変倍、回転が容易でフォントが美しいベクトルフ
ォントの特徴を十分生かすことができないという問題が
あった。In this way, the conventional image processing device described above creates an outline as shown in FIG. 13 when creating an outline, so it is necessary to perform processing on this outline to prevent errors from occurring when filling in a figure. This causes a problem in that the processing speed becomes slow. In addition, due to the above process, the shape of the figure after being filled in is significantly different from the shape of the original figure, so it is necessary to take full advantage of the characteristics of vector fonts, which are easier to scale and rotate than dot fonts, and have beautiful fonts. The problem was that it was not possible.
そこで、この発明の目的は、図形の塗りつぶしの誤りや
図形の変形か生じることのない画像処理装置を提供する
ことにある。SUMMARY OF THE INVENTION Therefore, an object of the present invention is to provide an image processing apparatus that does not cause errors in filling in figures or deformation of figures.
〈課題を解決するための手段〉
上記目的を達成するため、この発明は、図形の輪郭をア
ウトラインベクトルで表わし、かつ上記アウトラインベ
クトルの向きを、そのアウトラインベクトルの左側を塗
りつぶすと上記図形が塗りつぶされるように設定し、上
記アウトラインベクトルからアウトラインを作成し、X
袖方向へスキャニングして、上記アウトラインと水平走
査線との奇数回目の交差で塗りつぶしを開始し、偶数回
目の交差で塗りつぶしを中止するようにした画像処理装
置において、上記アウトラインベクトルからアウトライ
ンを作成する場合に、プレーゼンハムのアルゴリズムに
従って描画点を算出する描画点算出手段と、上記描画点
算出手段が算出した各描画点について、その描画点とそ
の一つ前の描画点との位置関係と、その描画点とその一
つ後の描画点との位置関係を算出する位置関係算出手段
と、上記描画点の位置がその一つ前の描画点の位置に対
してY軸方向に変化した場合にその変化の状態を格納し
、その一つ後の描画点の位置がその描画点の位置に対し
てY軸方向に変化した場合に、上記格納した変化の状態
を新しい変化の状態で置換する一方、その一つ後の描画
点の位置がその描画点の位置に対して変化しなかった場
合に、上記格納した変化の状態を格納したままとする変
化状態記憶手段と、上記各描画点について、上記位置関
係算出手段が算出した位置関係が、その描画点の位置が
その一つ前の描画点の位置に対してY軸方向に変化せず
、かつ、その描画点の位置に対してその一つ後の描画点
の位置がY軸方向に変化しない水平往復関係にある場合
には、上記変化状態記憶手段に格納されている変化状態
に基づいて、その描画点にプロットするか、あるいは、
その描画点からX軸方向に1ドットシフトした位置にプ
ロットする一方、上記位置関係算出手段が算出した位置
関係が、上記水平往復関係にない場合には、その位置関
係に基づいて、その描画点にプロットするか、その描画
点からX軸方向に!ドットシフトした位置にプロットす
るか、その両方の点にプロットするか、あるいは、その
描画点にプロットしないようにしてアウトラインを作成
するアウトライン作成手段と、上記アウトライン作成手
段が作成したアウトラインと水平走査線との奇数回目の
交差の際に塗りつぶしを開始し、交差した画素も含めて
塗りつぶし、偶数回目の交差の際に塗りつぶしを中止し
て、偶数回目に交差した画素の直前の画素までを塗りつ
ぶす描画手段とを備えたことを特徴としている。<Means for Solving the Problems> In order to achieve the above object, the present invention represents the outline of a figure by an outline vector, and the direction of the outline vector is such that when the left side of the outline vector is filled in, the figure is filled in. Create an outline from the above outline vector, and
An outline is created from the outline vector in an image processing device that scans in the sleeve direction, starts filling at the odd-numbered intersection of the outline and the horizontal scanning line, and stops filling at the even-numbered intersection. In this case, a drawing point calculation means that calculates drawing points according to Presenham's algorithm, and for each drawing point calculated by the drawing point calculation means, the positional relationship between that drawing point and the previous drawing point, and the drawing point. a positional relationship calculation means for calculating the positional relationship between a point and a drawing point immediately after it; and a positional relationship calculating means that calculates a positional relationship between a point and a drawing point immediately after it, and a change in the position of the drawing point when the position of the drawing point changes in the Y-axis direction with respect to the position of the drawing point immediately before it. When the position of the next drawing point changes in the Y-axis direction with respect to the position of that drawing point, the stored change state is replaced with the new change state, and the change state storage means for storing the stored change state when the position of the next drawing point does not change with respect to the position of the drawing point; The positional relationship calculated by the relationship calculation means is such that the position of the drawing point does not change in the Y-axis direction with respect to the position of the previous drawing point, and the position of the drawing point after that drawing point does not change in the Y-axis direction If the position of the drawing point is in a horizontal reciprocating relationship that does not change in the Y-axis direction, plotting is performed at that drawing point based on the change state stored in the change state storage means, or
While plotting is performed at a position shifted by one dot in the X-axis direction from the drawing point, if the positional relationship calculated by the positional relationship calculating means does not correspond to the horizontal reciprocating relationship, the drawing point is plotted based on the positional relationship. Or plot in the X-axis direction from that drawing point! An outline creation means that creates an outline by plotting at a dot-shifted position, plotting at both points, or not plotting at that drawing point, and an outline and horizontal scanning line created by the above outline creation means. A drawing method that starts filling at the odd-numbered intersection, fills in including the crossed pixels, stops filling at the even-numbered intersection, and fills up to the pixel immediately before the even-numbered pixel. It is characterized by having the following.
く作用〉
例えば、第3図(A)に示すアウトラインベクトルから
、描画点算出手段がプレーゼンハムのアルゴリズムに従
って同図右に示す描画点を算出する。For example, from the outline vector shown in FIG. 3(A), the drawing point calculation means calculates the drawing point shown on the right side of the figure in accordance with Presenham's algorithm.
そして、位置関係算出手段が上記描画点算出手段が算出
した各描画点について、その描画点とその一つ前の描画
点との位置関係と、その描画点とその一つ後の描画点と
の位置関係を算出する。例えば、第3図(C)に示す点
イについて言えば、その一つ前の点アからはX方向にマ
イナスの変化があり、Y方向変化がない。また、その次
の点ウは点イからはX方向にマイナスの変化があり、Y
方向にプラスの変化がある。従って、その位置関係は0
−十となる。次にアウトライン作成手段が上記位置関係
と第4図のテーブルとから上記描画点イをそのままプロ
ットする。一方、変化状態記憶手段は、点ウが点イに対
してプラスY方向に変化したのでフラグFFDYに(+
)を格納する。この値は第3図(K)でマイナスY方向
の変化があるまで保持され、(K)のところで(=)に
更新される。For each drawing point calculated by the drawing point calculation means, the positional relationship calculating means calculates the positional relationship between that drawing point and the previous drawing point, and the positional relationship between that drawing point and the drawing point immediately after it. Calculate the positional relationship. For example, regarding point A shown in FIG. 3(C), there is a negative change in the X direction from the previous point A, and there is no change in the Y direction. Also, the next point C has a negative change in the X direction from point A, and Y
There is a positive change in direction. Therefore, the positional relationship is 0
-Becomes ten. Next, the outline creating means plots the drawing point A as it is based on the positional relationship and the table shown in FIG. On the other hand, since point C has changed in the plus Y direction with respect to point A, the change state storage means sets the flag FFDY to (+
) is stored. This value is held until there is a change in the minus Y direction in FIG. 3 (K), and is updated to (=) at (K).
このフラグFFDYに格納された値は、例えば、第3図
(J)の点コのように、その前後の点ケおよびサとの位
置関係が十〇−0の水平往復関係にある場合に参照され
る。すなわち、アウトライン作成手段が、フラグFFD
Yの値と第4図のテーブルとから、点コからX方向に1
ドットシフトした位置にプロットする。以下、第3図(
Q)まで進んで、第3図(R)に示すアウトラインを作
成する。The value stored in this flag FFDY is referenced when, for example, the positional relationship with the points before and after it is in a horizontal reciprocating relationship of 10-0, as in the case of point C in Fig. 3 (J). be done. That is, the outline creation means uses the flag FFD.
From the value of Y and the table in Figure 4, move 1 in the X direction from point C.
Plot at the dot-shifted position. Below, Figure 3 (
Proceed to step Q) and create the outline shown in Figure 3 (R).
次に、描画手段が、上記アウトライン作成手段が作成し
たアウトラインと水平走査線との奇数回目の交差の際に
塗りつぶしを開始し、交差した画素も含めて塗りつぶし
、偶数回目の交差の際に塗りつぶしを中止して、偶数回
目に交差した画素の直前の画素までを塗りつぶす。Next, the drawing means starts filling at the odd-numbered intersection of the horizontal scanning line with the outline created by the outline creation means, fills in including the crossed pixels, and starts filling at the even-numbered intersection. Abort and fill up to the pixel immediately before the even-numbered pixel that intersects.
従って、図形の塗りつぶしに誤りが生じることがなく、
塗りつぶした図形が元の図形から変形したりすることが
ない。Therefore, there will be no errors in filling the shape.
The filled shape will not be deformed from the original shape.
〈実施例〉 以下、この発明を図示の実施例により詳細に説明する。<Example> Hereinafter, the present invention will be explained in detail with reference to illustrated embodiments.
第1図は本実施例の画像処理装置におけるアウトライン
ベクトルからアウトラインを作成する場合の処理内容を
示すフローチャートである。FIG. 1 is a flowchart showing the processing details when an outline is created from outline vectors in the image processing apparatus of this embodiment.
第l図において、ステップS1の“レジスタ入力”では
、アウトライン描画開始アドレスの設定や、回転角.傾
斜角および変倍率などの設定を行う。そして、ステップ
S2に進んで実行コマンドである”^CT RMW−V
EC”ビットをオンし、ベクトル描画を開始する。In FIG. 1, "register input" in step S1 includes setting of outline drawing start address, rotation angle, etc. Configure settings such as tilt angle and magnification. Then, proceed to step S2 and execute the execution command "^CT RMW-V"
EC" bit is turned on to start vector drawing.
まず、ステップS3でベクトルデータを入力する。この
ベクトルデータは差分データと識別子からなっていて、
ステップS4,S5で識別子の解析,判定を行い、コマ
ンド終了を示す識別子が来るまで以下の動作を繰り返す
。First, vector data is input in step S3. This vector data consists of differential data and an identifier.
The identifier is analyzed and determined in steps S4 and S5, and the following operations are repeated until an identifier indicating the end of the command is received.
まず、ステップS6で、原点とオフセット値に差分デー
タを足しこむ座標計算処理を行う。これは回転・傾斜・
変倍処理を行う前の処理で、ベクトルデータは整数なの
で誤差の累積は行われない。First, in step S6, coordinate calculation processing is performed to add difference data to the origin and offset value. This is rotating, tilting,
Since the vector data is an integer in the process before the scaling process is performed, errors are not accumulated.
次に、ステップS7で回転・傾斜・変倍に係る人カデー
タのコンバートを行う。これは、ベクトル(始点・終点
)単位で行う。ステップS8の“PRE DDA”と
は、プレーゼンハムのアルゴリズムの前処理といわれる
部分である。ここでは、メジャー軸、マイナー軸などの
諸計算を行う。次のステップS9はDDA処理であり、
ステップSlOでの“特殊処理によるプロット”を行う
前のカレントポインタを更新する。ステップSIOでは
、通常のプレーゼンハムのアルゴリズムでプロットせず
に、そのプロットする点に後述するように特殊処理を加
えて求めた点にプロットし、上記プロットした点のアド
レスや後述するデータを出力してメモリに書き込む。こ
れを1ベクトルについて行うと、ステップS3に戻り新
しいベクトルを読みに行く。Next, in step S7, the human image data related to rotation, tilt, and magnification are converted. This is done in units of vectors (starting point and ending point). "PRE DDA" in step S8 is a part called preprocessing of Presenham's algorithm. Here, various calculations such as major axis and minor axis are performed. The next step S9 is DDA processing,
The current pointer before "plotting by special processing" in step SIO is updated. In step SIO, instead of plotting using the normal Presenham algorithm, the points to be plotted are plotted at points obtained by applying special processing as described later, and the addresses of the plotted points and data described later are output. write to memory. When this is done for one vector, the process returns to step S3 to read a new vector.
以上の動作をアウトラインベクトルの終了まで操り返し
、コマンド終了を示す識別子が入力されると処理を終了
する。The above operation is repeated until the end of the outline vector, and when an identifier indicating the end of the command is input, the process ends.
上記ステップS!Oの“特殊処理によるプロット”の処
理内容を第2図に示し、その処理の1例を第3図に、上
記処理に用いられるテーブルを第4図に示す。以下、第
3図の例に基づいて上記処理を説明する。Step S above! FIG. 2 shows the processing contents of O's "plotting by special processing", an example of the processing is shown in FIG. 3, and a table used in the above processing is shown in FIG. The above processing will be explained below based on the example shown in FIG.
第3図は、(A)に示す三角形のアウトラインベクトル
からアウトラインを求める場合の例を示したものである
。このアウトラインベクトルから通常のプレーゼンハム
のアルゴリズムに基づいて描画点を求めると、その右に
示すようになる。この描画点に以下の特殊処理を施して
アウトラインを求める。第2図において、ファーストプ
ロットフラグ(FFp)は最初1″にセットされていて
、最初の点をプロットしないようになっている。FIG. 3 shows an example of obtaining an outline from the outline vector of the triangle shown in (A). If the drawing points are determined from this outline vector using the usual Presenham algorithm, the drawing points will be as shown to the right. The following special processing is applied to these drawing points to obtain an outline. In FIG. 2, the first plot flag (FFp) is initially set to 1'' so that the first point is not plotted.
まず、第3図の(B)でカレントポインタの始点を点ア
として、始点アに対する次の点イの位置関係を求める。First, in FIG. 3B, the starting point of the current pointer is set as point A, and the positional relationship of the next point A with respect to the starting point A is determined.
右方向をX軸の十方向、下方向をy軸の十方向とすると
、点イは点アに対してX方向は減少し、y方向は変化し
ていない。この関係を、描画点に対するその一つ後の描
画点の位置関係を表すフラグであるADXフラグとAD
Yフラグにセットする。すなわち、ADxフラグをマイ
ナスに、ADYフラグをゼロにセットする。また、この
関係を初期値を表すフラグであるSADXフラグとSA
DYフラグにストアする。すなわち、SADXフラグに
マイナスを、SADYフラグにゼロをストアする。この
値は終点をプロットする時に使う。Assuming that the right direction is the tenth direction of the X-axis and the downward direction is the tenth direction of the y-axis, point A decreases in the X direction with respect to point A, and remains unchanged in the y direction. This relationship is expressed by the ADX flag, which is a flag representing the positional relationship of the next drawing point to the drawing point,
Set the Y flag. That is, the ADx flag is set to negative and the ADY flag is set to zero. Also, this relationship is expressed by the SADX flag, which is a flag representing the initial value, and the SA
Store in DY flag. That is, a negative value is stored in the SADX flag and zero is stored in the SADY flag. This value is used when plotting the end point.
次に、カレントポインタを(−1.0)だけ動かしてカ
レントポイントCP(CPLCPY)を(C)に示すよ
うに点イに移す。そして、上記ADXフラグとADYフ
ラグの値を、描画点のその一つ前の点に対する位置関係
を表すフラグであるFDXフラグとFDYフラグにコピ
ーする。そして、点イの次の点ウの点イに対する位置関
係を上記ADXフラグとADYフラグにセットする。す
なわち、FDXは(−)、FDYは(0)、ADXは(
一)、ADYは(+)となる。そして、第4図のテーブ
ルを参照し、一〇−十の場合はカレントポインタをその
ままプロットすることになっているので、点イは点イの
位置でプロットする。一方、ADYがゼロでない値をと
ったことにより、FFDYフラグにその値をコピーして
おく。このFFDYフラグは描画点の位置がその一つ前
の描画点の位置に対してy方向に変化した場合にその変
化の状態(+または−)を格納しておくものである。A
DYがゼロの場合は更新されず、ADYがゼロ以外の値
になったときはその値に更新される。Next, move the current pointer by (-1.0) to move the current point CP (CPLCPY) to point A as shown in (C). Then, the values of the ADX flag and ADY flag are copied to the FDX flag and FDY flag, which are flags representing the positional relationship of the drawing point to the point immediately before it. Then, the positional relationship of point C next to point A with respect to point A is set in the ADX flag and ADY flag. In other words, FDX is (-), FDY is (0), and ADX is (
1), ADY becomes (+). Then, referring to the table in FIG. 4, in the case of 10-10, since the current pointer is to be plotted as is, point A is plotted at the position of point A. On the other hand, since ADY takes a value other than zero, that value is copied to the FFDY flag. This FFDY flag stores the state of change (+ or -) when the position of a drawing point changes in the y direction with respect to the position of the previous drawing point. A
When DY is zero, it is not updated, and when ADY becomes a value other than zero, it is updated to that value.
次に、(D)で、(C)におけるADXとADYの値を
FDXとFDYにコピーし、点工の点ウに対する位置関
係(− . 0 )をADX,ADYにセットする。そ
うすると、フラグは−+−0となり、第4図のテーブル
では,−+−0はプロットしないことになっているので
、点ウはプロットしない。また、ADYがゼロ、すなわ
ち点工の点ウに対するy方向の傾きはゼロなので、FF
DYは更新せずプラスのままとする。Next, in (D), the values of ADX and ADY in (C) are copied to FDX and FDY, and the positional relationship (-.0) with respect to point C of the potting work is set in ADX, ADY. Then, the flag becomes -+-0, and since -+-0 is not plotted in the table of FIG. 4, point C is not plotted. In addition, since ADY is zero, that is, the slope of the y direction with respect to point C of the potting work is zero, so FF
DY is not updated and remains positive.
次に、(E)l.:進み、(D)l:おけるADXとA
DYの値をFDXとFDYにコピーし、点オの点工に対
する位置関係(−.+)をADX%ADYにセットする
。そうすると、フラグは一〇一十となり、第4図のテー
ブルを参照して、カレントポインタをそのままプロット
する。Next, (E)l. : Advance, (D) l: ADX and A
Copy the value of DY to FDX and FDY, and set the positional relationship (-.+) of point O to the construction work to ADX%ADY. Then, the flag becomes 1010, and the table of FIG. 4 is referred to, and the current pointer is plotted as is.
以下、同様にして、(F)に示す点オはそのままプロッ
トし、(G),(H),(r)にそれぞれ示す点力.キ
.ケはプロットしない。また、(J)に示す点コについ
てはフラグは十〇一〇となり、かつFFDYの値は十で
あるので、第4図のテーブルから、カレントポインタを
X方向に1ドットシフトしてプロットする。また、次の
点サはプロヅトせず、点シはX方向に1ドブトシフトし
てプロットする。Similarly, the point O shown in (F) is plotted as is, and the points O shown in (G), (H), and (r) are plotted as they are. tree. ke does not plot. Further, for point C shown in (J), the flag is 1010 and the value of FFDY is 10, so the current pointer is shifted by one dot in the X direction from the table of FIG. 4 and plotted. Further, the next point S is not produced, and the point C is shifted by one dot in the X direction and plotted.
(M).(0)にそれぞれ示す点ス,セはプロットせず
、(P)に示す点ソはX方向に1ドットシフトしてプロ
ットする。(Q)に示す終点夕は始点アと同じ点であり
、(P)におけるADX,ADYの値をFDX , F
D Y L::7ピーし、(A)にお1,1てSAD
X,SADYにストアしておいた値をADX,ADYに
コピーする。そうすると、フラグは−O−0となり、点
夕はプロットしない。(M). Points S and C shown in (0) are not plotted, and point S shown in (P) is shifted by one dot in the X direction and plotted. The ending point E shown in (Q) is the same point as the starting point A, and the values of ADX and ADY in (P) are FDX and F
D Y L:: 7 peas, 1,1 to (A) and SAD
Copy the values stored in X and SADY to ADX and ADY. Then, the flag becomes -O-0, and the taiyu is not plotted.
このようにして得られたアウトラインは(R)に示すよ
うになる。そして、このアウトラインと水平走査線との
奇数回目の交差の際に塗りつぶしを開始し、交差した画
素も含めて塗りつぶし、偶数回目の交差の際に塗りつぶ
しを中止して、偶数回目に交差した画素の直前の画素ま
でを塗りつぶす。The outline thus obtained is shown in (R). Then, at the odd-numbered intersection of this outline and the horizontal scanning line, filling begins, including the crossed pixels, and at the even-numbered intersection, stopping filling, and filling in the even-numbered pixels. Fills up to the previous pixel.
そうすると、(S)に示す画像が得られる。この画像は
(A)のアウトラインの内部をプロットしたものと同じ
である。Then, the image shown in (S) is obtained. This image is the same as the one plotting the inside of the outline in (A).
第4図の(3)の場合は、上記第3図の例では出てこな
いが、頂点処理の場合であり、カレントポイントとカレ
ントポイントをX方向に1ドットシフトした点の両方を
プロットして、塗りつぶしの誤りが生じないようにして
いる。また、第4図の(1),(2)の場合においてF
FDYフラグを用いて判定するのは、水平方向の往復ベ
クトルについて特殊処理を行う場合に、その前のベクト
ルにy方向の変化がなかった場合に、往復ベクトルの折
り返し点(例えば、第3図の(J)に示す点コ)が塗り
つぶしを行う時の奇点になるか偶点になるかわからない
ため、FFDYにより奇点か偶点かを判定し、塗りつぶ
しの誤りが生じないようにしている。Case (3) in Figure 4 does not appear in the example in Figure 3 above, but it is a case of vertex processing, and both the current point and a point shifted by one dot in the X direction are plotted. , to avoid filling errors. Also, in the cases (1) and (2) of Fig. 4, F
The FDY flag is used to determine the turning point of the reciprocating vector (for example, in Fig. Since it is not known whether the point shown in (J) will be an odd point or an even point when filling in, FFDY is used to determine whether it is an odd point or an even point to prevent filling errors.
また、第2図のフラグFFPは輪郭の最初の点のプロッ
トを避けるためのものである。本アルゴリズムでは前の
点との位置情報を必要とするので、最初の点はプロット
できない。このため、最初の点と次の点との位置関係を
レジスタ(図示せず)に入れておく。アウトラインでは
輪郭の最初の点と最後の点は同じになる(アウトライン
は必ず閉じているので)。よって、最後の点をプロット
する時に、最後の点と最後の点の一つ前の点との位置関
係と、前にストアしてあった最初の点とその次の点との
位置関係から、前記の方法でプロットを行う。Further, the flag FFP in FIG. 2 is used to avoid plotting the first point of the contour. This algorithm requires position information with respect to the previous point, so the first point cannot be plotted. Therefore, the positional relationship between the first point and the next point is stored in a register (not shown). In an outline, the first and last points of the contour are the same (because the outline is always closed). Therefore, when plotting the last point, based on the positional relationship between the last point and the point immediately before the last point, and the positional relationship between the previously stored first point and the next point, Plot as described above.
また、位置関係の算出はプレーゼンハムの7/L,ゴリ
ズムに従って描画点を算出するときに行うようにするこ
とができる。つまり、一本のベクトルを描画する際に、
プレーゼンハムのアルゴリズムでは前処理として、X方
向、Y方向を求めるフラグ(仮にFsκ、Fsyとおく
)にラッチされる。そして、誤差評価関数eが0より大
きいときに、メジャー軸、マイナー軸共にインクリメン
ト(またはデクリメント)され、誤差評価関数eh<
0以下のときはメジャー軸のみインクリメント(または
デクリメント)される。よって、誤差評価関散eが0以
下ならADXl.:Fsxを入れ、ADYにOをセット
する。また、誤差評価関数eが0より大きければ、AD
XにFSXを入れ、ADYにFsyを入れる。このよう
に、位置関係の算出は通常のプレーゼンハムのアルゴリ
ズムの応用でできるので、余分に時間がかかることはほ
とんどない。また、特殊処理もテーブルで対処すればロ
スタイムはほとんどない。このように、塗り潰しの誤り
の生じないアウトラインの作成を通常のプレーゼンハム
のアルゴリズムを用いて行う場合とあまり変わらない速
度で実行できる。Further, the positional relationship can be calculated when the drawing points are calculated according to Presenham's 7/L algorithm. In other words, when drawing a single vector,
In Presenham's algorithm, flags (temporarily set as Fsκ and Fsy) for determining the X direction and Y direction are latched as preprocessing. Then, when the error evaluation function e is larger than 0, both the major axis and the minor axis are incremented (or decremented), and the error evaluation function eh<
When it is less than 0, only the major axis is incremented (or decremented). Therefore, if the error evaluation coefficient e is less than 0, ADXl. : Insert Fsx and set O to ADY. Also, if the error evaluation function e is larger than 0, then AD
Put FSX in X and Fsy in ADY. In this way, the positional relationship can be calculated by applying the normal Presenham algorithm, so it hardly takes any extra time. Also, if special processing is handled at the table, there is almost no loss time. In this way, it is possible to create an outline without filling errors at a speed that is not much different from that of using the normal Presenham algorithm.
〈発明の効果〉
以上より明らかなように、この発明の画像処理装置によ
れば、従来例では塗りつぶしの誤りが生じたアウトライ
ンベクトルに対しても塗りつぶしの誤りの生じないアウ
トラインを作成することができ、塗りつぶしたあとの図
形が元の図形から変形しない。また、アウトラインベク
トルの変倍、回転などの処理をしてからアウトラインを
作成しても塗りつぶしの誤りの生じないアウトラインを
作成できる。<Effects of the Invention> As is clear from the above, according to the image processing device of the present invention, an outline without a filling error can be created even for an outline vector where a filling error occurred in the conventional example. , the shape after filling is not transformed from the original shape. Further, even if the outline is created after scaling and rotating the outline vector, it is possible to create an outline that does not cause filling errors.
第1図はこの発明の一実施例の画像処理装置におけるア
ウトラインベクトルからアウトラインを作成する処理内
容を示すフローチャート、第2図は上記フローチャート
における“特殊処理によるプロット”部の詳細を示すフ
ローチャート、第3図は上記実施例におけるアウトライ
ン作成の一例を示す図、第4図は上記実施例におけるア
ウトライン作成に用いられるテーブルを示す図、第5図
はアウトラインベクトルを説明する図、第6.7図はス
キャンフィルによる図形の塗りつぶしを説明する図、第
8.9,I Q図は従来の画像処理装置によって作威さ
れたアウトラインと塗りつぶしの誤りが生じた図形を示
す図、第11図は上記従来例における縮小されたアウト
ラインが塗りつぶしの誤りを生じるアウトラインとなる
場合を示す図、第12図は上記従来例における図形の変
形を説明する図、第l3図は上記従来例における塗りつ
ぶしの誤りが生じるアウトラインの典型例を示す図であ
る。
特 許 出 願 人 シャープ株式会社代 理 人
弁理士 青山 葆 ほかl名第2図
纂3図(1)
第3図(3)
000100 1 00000
010000000100
100000000001
00011 1000000
011111111000
111111111110
第3図《2》
ADYO
第5図
第6図
第7図
(a)
第8図
第9図
!10図
第11図
(a)
(b)
(a)
第12図
(b)
(C)
(a)
■■■
11
11
1 図邪 1
■■の■の■■
(b)
■
0
1因1
1 形 1
号 + 1 1
第13図
(C)
1114111
1 阻邪 1
1 11111
11穴Φ
H+ 1111
(d)
■■■
■ ■
■穴■
■ ■
■■■FIG. 1 is a flowchart showing the process of creating an outline from an outline vector in an image processing apparatus according to an embodiment of the present invention, FIG. 2 is a flowchart showing details of the "plotting by special processing" part in the above flowchart, and FIG. The figure shows an example of creating an outline in the above embodiment, Fig. 4 shows a table used for creating an outline in the above embodiment, Fig. 5 shows an outline vector, and Figs. 6 and 7 show scanning. Figure 8.9 and IQ diagram are diagrams illustrating the filling of figures by fill, Figure 8.9 and IQ diagram are diagrams showing outlines created by the conventional image processing device and figures in which errors in filling have occurred, and Figure 11 is the figure in the conventional example described above. A diagram showing a case where a reduced outline becomes an outline that causes a filling error. FIG. 12 is a diagram illustrating the deformation of a figure in the above conventional example. FIG. 13 is a typical outline that causes a filling error in the above conventional example. It is a figure which shows an example. Patent applicant: Sharp Corporation Agent
Patent Attorney Aoyama Aoyama et al. Figure 2 Collection Figure 3 (1) Figure 3 (3) 000100 1 00000 010000000100 100000000001 00011 1000000 011111111000 111111111110 Figure 3《2 》ADYO Figure 5 Figure 6 Figure 7 (a) Figure 8 Figure 9! Figure 10 Figure 11 (a) (b) (a) Figure 12 (b) (C) (a) ■■■ 11 11 1 Illustration evil 1 ■■■■■■■ (b) ■ 0 1 factor 1 1 Shape No. 1 + 1 1 Fig. 13 (C) 1114111 1 Inhibition 1 1 11111 11 holes Φ H + 1111 (d) ■■■ ■ ■ ■hole■ ■ ■ ■■■
Claims (1)
つ上記アウトラインベクトルの向きを、そのアウトライ
ンベクトルの左側を塗りつぶすと上記図形が塗りつぶさ
れるように設定し、上記アウトラインベクトルからアウ
トラインを作成し、X軸方向へスキャニングして、上記
アウトラインと水平走査線との奇数回目の交差で塗りつ
ぶしを開始し、偶数回目の交差で塗りつぶしを中止する
ようにした画像処理装置において、 上記アウトラインベクトルからアウトラインを作成する
場合に、プレーゼンハムのアルゴリズムに従って描画点
を算出する描画点算出手段と、上記描画点算出手段が算
出した各描画点について、その描画点とその一つ前の描
画点との位置関係と、その描画点とその一つ後の描画点
との位置関係を算出する位置関係算出手段と、 上記描画点の位置がその一つ前の描画点の位置に対して
Y軸方向に変化した場合にその変化の状態を格納し、そ
の一つ後の描画点の位置がその描画点の位置に対してY
軸方向に変化した場合に、上記格納した変化の状態を新
しい変化の状態で置換する一方、その一つ後の描画点の
位置がその描画点の位置に対して変化しなかった場合に
、上記格納した変化の状態を格納したままとする変化状
態記憶手段と、 上記各描画点について、上記位置関係算出手段が算出し
た位置関係が、その描画点の位置がその一つ前の描画点
の位置に対してY軸方向に変化せず、かつ、その描画点
の位置に対してその一つ後の描画点の位置がY軸方向に
変化しない水平往復関係にある場合には、上記変化状態
記憶手段に格納されている変化状態に基づいて、その描
画点にプロットするか、あるいは、その描画点からX軸
方向に1ドットシフトした位置にプロットする一方、上
記位置関係算出手段が算出した位置関係が、上記水平往
復関係にない場合には、その位置関係に基づいて、その
描画点にプロットするか、その描画点からX軸方向に1
ドットシフトした位置にプロットするか、その両方の点
にプロットするか、あるいは、その描画点にプロットし
ないようにしてアウトラインを作成するアウトライン作
成手段と、 上記アウトライン作成手段が作成したアウトラインと水
平走査線との奇数回目の交差の際に塗りつぶしを開始し
、交差した画素も含めて塗りつぶし、偶数回目の交差の
際に塗りつぶしを中止して、偶数回目に交差した画素の
直前の画素までを塗りつぶす描画手段とを備えたことを
特徴とする画像処理装置。(1) Represent the contour of the figure with an outline vector, and set the direction of the outline vector so that the figure will be filled in when the left side of the outline vector is filled in, create an outline from the outline vector, and When creating an outline from the outline vector in an image processing device that starts filling at the odd-numbered intersection of the outline and the horizontal scanning line and stops filling at the even-numbered intersection, , a drawing point calculation means that calculates drawing points according to Presenham's algorithm; and for each drawing point calculated by the drawing point calculation means, the positional relationship between the drawing point and the previous drawing point, and the drawing point. a positional relationship calculation means for calculating a positional relationship with the next drawing point; and a state of the change when the position of the drawing point changes in the Y-axis direction with respect to the position of the previous drawing point. is stored, and the position of the next drawing point is Y relative to the position of that drawing point.
When there is a change in the axial direction, the stored change state is replaced with a new change state, while if the position of the next drawing point does not change with respect to the position of that drawing point, the above A change state storage means for storing the stored change state; and a positional relationship calculated by the positional relationship calculation means for each of the drawing points, such that the position of the drawing point is the position of the previous drawing point. If there is a horizontal reciprocating relationship in which the position of the drawing point does not change in the Y-axis direction, and the position of the next drawing point does not change in the Y-axis direction with respect to the position of that drawing point, the above change state memory Based on the change state stored in the means, plotting is performed at the drawing point or at a position shifted by one dot in the X-axis direction from the drawing point, while the positional relationship calculated by the positional relationship calculating means is is not in the above-mentioned horizontal reciprocating relationship, it is plotted at that drawing point based on the positional relationship, or it is plotted at one point in the X-axis direction from that drawing point.
An outline creation means that creates an outline by plotting at a dot-shifted position, plotting at both points, or not plotting at that drawing point, and an outline and horizontal scanning line created by the above outline creation means. A drawing method that starts filling at the odd-numbered intersection, fills in including the crossed pixels, stops filling at the even-numbered intersection, and fills up to the pixel immediately before the even-numbered pixel. An image processing device comprising:
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1158031A JP2613653B2 (en) | 1989-06-20 | 1989-06-20 | Image processing device |
US07/524,428 US5073960A (en) | 1989-05-18 | 1990-05-17 | Image processing method using improved Bresenham algorithm in creating an outline of a figure to be painted and apparatus adopting the method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1158031A JP2613653B2 (en) | 1989-06-20 | 1989-06-20 | Image processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0322187A true JPH0322187A (en) | 1991-01-30 |
JP2613653B2 JP2613653B2 (en) | 1997-05-28 |
Family
ID=15662763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1158031A Expired - Fee Related JP2613653B2 (en) | 1989-05-18 | 1989-06-20 | Image processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2613653B2 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01196677A (en) * | 1988-01-30 | 1989-08-08 | Toshiba Corp | Pattern data preparing system |
-
1989
- 1989-06-20 JP JP1158031A patent/JP2613653B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01196677A (en) * | 1988-01-30 | 1989-08-08 | Toshiba Corp | Pattern data preparing system |
Also Published As
Publication number | Publication date |
---|---|
JP2613653B2 (en) | 1997-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR970003327B1 (en) | Pattern data generating system | |
US6292192B1 (en) | System and method for the direct rendering of curve bounded objects | |
JPH0251786A (en) | Scan converting system | |
WO2001009841A1 (en) | Tree-description of transformable graphical regions | |
JP3359634B2 (en) | Graphics output system with in-bounds update | |
JP2634851B2 (en) | Image processing device | |
JP3547250B2 (en) | Drawing method | |
JP4240543B2 (en) | Display device | |
JPH0322187A (en) | Picture processor | |
JP2870397B2 (en) | How to fill the drawing | |
JPS63305478A (en) | Pattern information restoring device | |
JPH0350686A (en) | Graphic processing system | |
JP2634906B2 (en) | Image processing method | |
JP3139805B2 (en) | Image processing method and apparatus | |
JP3243293B2 (en) | Contour correction method | |
JP2551322B2 (en) | Image reproduction method and apparatus | |
JPH0371377A (en) | Image processing method | |
JP2002208028A (en) | Geometry clipping device for polygon | |
JPH0520466A (en) | Method and device for processing picture | |
JP2782904B2 (en) | Polygon fill method | |
JPH1021415A (en) | Graphic processor and graphic processing method | |
JPH0520468A (en) | Method and device for processing picture | |
JP2641790B2 (en) | Vector raster converter | |
JP3338484B2 (en) | Outline font transformation device | |
JP2000298729A (en) | Two-dimensional image generation device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080227 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090227 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |