JPH05242235A - 画像処理装置 - Google Patents

画像処理装置

Info

Publication number
JPH05242235A
JPH05242235A JP4076370A JP7637092A JPH05242235A JP H05242235 A JPH05242235 A JP H05242235A JP 4076370 A JP4076370 A JP 4076370A JP 7637092 A JP7637092 A JP 7637092A JP H05242235 A JPH05242235 A JP H05242235A
Authority
JP
Japan
Prior art keywords
coordinate
image
pixel
segment
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.)
Pending
Application number
JP4076370A
Other languages
English (en)
Inventor
Hiroaki Usumoto
宏昭 臼本
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.)
Dainippon Screen Manufacturing Co Ltd
Original Assignee
Dainippon Screen Manufacturing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dainippon Screen Manufacturing Co Ltd filed Critical Dainippon Screen Manufacturing Co Ltd
Priority to JP4076370A priority Critical patent/JPH05242235A/ja
Publication of JPH05242235A publication Critical patent/JPH05242235A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

(57)【要約】 【目的】 不要な座標変換を行なうことなく画像に回転
を伴う座標変換を施すことのできる画像処理装置を提供
する。 【構成】 セグメント抽出部は、画像の輪郭を構成する
複数のセグメント(S1〜S5)の端点(V1〜V5)
の座標を座標変換し、各セグメントについて、その両端
点の座標変換後の座標値を含むセグメントデータを生成
する。交点座標算出部は、各副走査座標(Xc)におい
て、走査線(SL)と各セグメントとの交点座標を算出
する。画素列抽出部は、各副走査座標において、座標変
換後のデスティネーション画像(Id)内の画素列のみ
を抽出する。そして、画像データ変換部は、抽出された
画素列の各画素について、座標変換前のソース画像デー
タを読出し、読出されたソース画像データに基づいてデ
スティネーション画像データを生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、画像処理装置に関
し、特に、画像に対して回転を伴う座標変換を行なう画
像処理装置に関する。
【0002】
【従来の技術】パンフレットやチラシなどの印刷物を作
成する際には、写真や文字などの複数の画像部品を1つ
の画面内に配列(レイアウト)することが多い。画像部
品によっては画面内において少し回転させることがあ
る。
【0003】近年のコンピュータ技術の発展によって、
このような画像部品のレイアウトをコンピュータ(画像
処理装置)で行なうことが可能となっている。画像処理
装置でレイアウトを行なう場合には、まず各画像部品の
画像を表わすデータ(以下、「画像部品データ」と呼
ぶ)を準備し、画像部品データをデータ処理することに
よって画面内における各画像部品のレイアウトを設定す
る。
【0004】レイアウトを行なう場合に、画像部品の回
転を伴う座標変換(アフィン変換)を行なう場合があ
る。図1は、アフィン変換によって画像部品を回転させ
る場合の例を示す説明図である。図1において、回転前
の画像部品の領域をソース画像領域Rs(矩形ABCD
の領域)と呼び、回転後の画像部品に外接する矩形領域
をデスティネーション画像領域Rdと呼ぶ。ソース画像
領域Rs内には、写真画像などの多値画像が含まれてい
る。
【0005】デスティネーション画像領域Rdを表わす
画像データを生成する場合に、次のような手順に従う。
まず、デスティネーション画像領域Rd内の各画素Ps
の座標値(X,Y)をアフィン逆変換して、ソース画像
領域Rs内における座標(xx,yy)を求める。そし
て、ソース画像領域Rs内の座標(xx,yy)におけ
る画素Psの画像データを、デスティネーション画像領
域Rdの画素Pdの画像データとする。従来は、デステ
ィネーション画像領域Rd内のすべての画素についてア
フィン逆変換を行なって、ソース画像領域Rs内の対応
する画素の画像データを読出し、これをデスティネーシ
ョン画像領域Rsの画像データとして採用していた。
【0006】
【発明が解決しようとする課題】しかしながら、上述し
た従来の方法では、デスティネーション画像領域Rdの
中で、ソース画像領域Rsとは対応しない領域(図中に
斜線を付した領域)についても、その中の各画素の座標
をアフィン逆変換し、ソース画像領域Rsに対応する画
素が無いことを調べた後に、下地を表わす画像データを
割り当てていた。従来は、このような不要な領域につい
ての逆座標変換が処理時間を増大させていた、という問
題があった。
【0007】この発明は、従来技術における上述の課題
を解決するためになされたものであり、不要な座標変換
を行なうことなく画像に回転を伴う座標変換を施すこと
のできる画像処理装置を提供することを目的とする。
【0008】
【課題を解決するための手段】この発明による画像処理
装置は、画像に対して回転を伴う座標変換を行なう画像
処理装置であって、(a)座標変換前の第1の画像を表
す第1の画像データを記憶する第1のメモリと、(b)
座標変換後の第2の画像を表す第2の画像データを記憶
するための第2のメモリと、(c)前記第1の画像の輪
郭を構成する複数の線分の端点の座標を座標変換するこ
とによって、前記複数の線分の端点の座標変換後の座標
を求めるとともに、各線分について、各線分の両端点の
座標変換後の座標を含むセグメントデータを生成するセ
グメント抽出手段と、(d)前記セグメントデータに基
づき、座標変換後の画像空間において各走査線と前記各
線分との交点座標を求める交点座標抽出手段と、(e)
前記交点座標に基づき、前記座標変換後の画像空間の各
走査線において、前記第2の画像内に存在する画素を含
む画素列を抽出するとともに、前記画素列の各画素の座
標を実質的に表す画素列データを生成する画素列抽出手
段と、(f)前記画素列データに基づいて前記画素列の
各画素の座標を逆座標変換するとともに、逆座標変換で
得られた座標における前記第1の画像データに基づき、
前記画素列の各画素について前記第2の画像データを生
成する画像データ変換手段と、を備える。
【0009】
【作用】セグメント抽出手段が座標変換後の輪郭の線分
を表すセグメントデータを生成するので、このセグメン
トデータに基づいて、交点座標算出手段が座標変換後の
画像空間における走査線と各線分との交点座標を求める
ことができる。さらに、この交点座標に基づいて、画素
列抽出手段が座標変換後の画像(第2の画像)内に含ま
れる画素列を抽出することが可能となる。このように、
画素列抽出手段が座標変換後の画像に含まれる画素列の
みを抽出することができるので、画像データ変換手段
は、抽出された画素列の画素についてのみ座標変換後の
第2の画像データを生成することができる。
【0010】
【実施例】
A.装置の構成と処理手順 図2は、この発明の実施例としての画像処理装置を示す
ブロック図である。この画像処理装置は、ホストプロセ
ッサ20と、ソースメモリ22と、デスティネーション
メモリ24と、画像ディスク(磁気ディスク)26とを
備えている。これらの要素はコントロールバス40と、
画像バス42とにそれぞれ接続されており、画像データ
は画像バス42を介して各要素間で転送される。また、
コントロールバス40にはさらに、キーボード28と、
マウス30と、CRT32とが接続されている。
【0011】座標変換前の画像部品を表すソース画像デ
ータは画像ディスク26に格納されている。座標変換後
の画像部品を表すデスティネーション画像データも画像
ディスク26に格納される。ソースメモリ22は、処理
対象となるソース画像データを記憶するRAMであり、
デスティネーションメモリ24は、座標変換処理によっ
て得られたデスティネーション画像データを記憶するR
AMである。ホストプロセッサ20は、セグメント抽出
部50と、交点座標算出部52と、画素列抽出部54
と、画像データ変換部56とを有している。これらの各
部50、52、54、56の機能は、ホストプロセッサ
20によって実行されるソフトウエアプログラムによっ
て実現されている。
【0012】図3は、上述の画像処理装置による画像デ
ータの座標変換の手順を示すフローチャートである。ス
テップT1では、オペレータがアフィン変換の対象とな
る画像部品(以下、「ソース画像」と呼ぶ)と座標変換
のパラメータとを指定する。この際、オペレータはキー
ボード28やマウス30を用いて所望のソース画像を選
択し、CRT32にその画像を表示する。そして、キー
ボード28を用いて座標変換のパラメータ(回転角、平
行移動距離、倍率等)を指定する。図4(a)は、指定
されたソース画像Isを示す図である。このソース画像
Isは、5つの頂点V1〜V5を連結して構成される多
角形であり、その内部に写真画像などの多値画像を含ん
でいる。なお、ソース画像としては、画像部品全体を用
いてもよく、また、オペレータがマウス30を用いて画
像部品の一部を切り抜き、切り抜かれた画像部分をソー
ス画像として指定してもよい。
【0013】ステップT2では、セグメント抽出部50
がソース画像Isの各頂点V1〜V5のアフィン変換後
の座標を求めるとともに、変換後の座標値に基づいてデ
スティネーション領域のサイズ(幅)を決定する。図4
(b)は、デスティネーション画像Idと、その外接矩
形であるデスティネーション領域Rdとを示している。
デスティネーション画像Idは、ソース画像Isがθ度
だけ回転した画像である。デスティネーション領域Rd
の主走査方向の幅Wyは、アフィン変換後(回転後)の
5つの頂点V1〜V5の主走査座標の中から最大値Y3
と最小値Y1を選び、それらの差分(Y3−Y1)を求
めることによって得られる。副走査方向の幅Wxも同様
である。なお、デスティネーション側の座標系(X,
Y)は、デスティネーション領域Rdの左上の頂点Oが
座標原点となるように設定される。
【0014】ステップT3では、デスティネーション座
標系(X,Y)における5つの頂点V1〜V5のそれぞ
れの座標値(X1,Y1)〜(X5,Y5)がセグメン
ト抽出部50によって決定される。図5は、デスティネ
ーション領域Rdを拡大して示す図であり、各頂点V1
〜V5はそれぞれ斜線を付した画素位置に存在する。セ
グメント抽出部50は、デスティネーション画像Idの
輪郭を構成する5つの線分(以下、「セグメント」と呼
ぶ)S1〜S5について、それぞれの始点座標と終点座
標とを含むセグメントデータを生成する。例えば、第1
のセグメントS1については、始点座標(X1,Y1)
と終点座標(X2,Y2)とでセグメントデータを構成
する。
【0015】ステップT4では、処理対象とする副走査
座標Xcを0に設定する。以下のステップT5〜ステッ
プT9では、デスティネーション領域Rd内の副走に含
まれるの画素列を抽出し、抽出された画素列の各画素に
ついて、ソース画像Isの画像データを読出す処理を行
なっている。
【0016】ステップT5では、処理対象の副走査座標
Xcにおける走査線SLと、各セグメントS1〜S5と
の交点の座標が交点座標算出部52によって求められ
る。図6は、ステップT5の詳細手順を示すフローチャ
ートである。まず、ステップT21では、5つのセグメ
ントの中からセグメントが1つ(例えばS1が)選択さ
れる。
【0017】ステップT22では、選択されたセグメン
トと、副走査座標Xcにおける走査線SLが交差するか
否かが判断される。例えば、図5の例では、セグメント
S1,S4,S5が走査線SLと交差する。各セグメン
トと走査線SLとが交差するか否かは、走査線SLの副
走査座標Xcが、セグメントの始点の副走査座標Xsと
終点の副走査座標Xeとの間にあるか否かによって判断
される。すなわち、Xs≦Xc≦XeまたはXe≦Xc
≦Xsであれば、そのセグメントは走査線SLと交差す
ると判断される。交差するときには次のステップT23
が実行され、交差しないときにはステップT24に移行
する。
【0018】ステップT23では、セグメントと走査線
SLとの交点の座標値が計算される。例えば、図5の走
査線SLと第1のセグメントS1の交点Q1の座標(X
c,Yc1)が求められる。なお、ステップT23の処
理の詳細についてはさらに後述する。ステップT24で
は、走査線SLとの交点座標を求める処理がすべてのセ
グメントS1〜S5について終了したか否かが判定さ
れ、終了していなければステップT25において次のセ
グメントが選択されてステップT22以降の処理が繰り
返される。
【0019】すべてのセグメントについて、ステップT
22,T23の処理が終了すると、ステップT26にお
いて交点の主走査座標値が小さい順にソートされる。図
5の例では、セグメントS1,S3,S4,S5におけ
る交点Q1,Q3,Q4,Q5の主走査座標Yc1,Y
c3,Yc4,Yc5が小さい順にソートされる。ソー
トの結果、副走査座標Xcにおける交点の主走査座標
は、Yc1,Yc5,Yc4,Yc3の順に並べられ
る。このようにソートを行なうのは、後述する手順にお
いてデスティネーション画像Id内に含まれる画素列の
みを抽出できるようにするためである。
【0020】図6の処理が終了すると、画素列抽出部5
4によって図3のステップT6が実行される。ステップ
T6では、処理対象となっている走査線SL上の画素で
あってデスティネーション画像Id内に含まれる画素列
が抽出される。図5の例における「走査線SL上の画素
であってデスティネーション画像Id内に含まれる画素
列」と は、図7に示すように、交点Q1とQ5を両端
とする第1の画素列と、交点Q4とQ3を両端とする第
2の画素列である。この実施例において、「画素列の各
画素の座標を実質的に示す画素列データ」は、画素列の
始点の座標値と、その画素列に含まれる画素数とによっ
て構成される。例えば第1の画素列については、始点Q
1の座標値(Xc,Yc1)と画素数(Yc5−Yc1
+1)とで画素列内の全画素の座標が実質的に示され
る。なお、以下では1つの画素列に含まれる画素数を
「ラン幅」と呼ぶ。
【0021】ステップT7では、ステップT6で抽出さ
れた各画素列の画素列データ(始点座標とラン幅)に基
づいて、画像データ変換部56が各画素列に含まれる各
画素に対応するソース画像データをソースメモリ22か
ら読出し、読出したソース画像データに基づいてデステ
ィネーション画像データを生成する。図8は、ステップ
T7の詳細手順を示すフローチャートである。
【0022】ステップT31では、画像データ変換部5
6が画素列抽出部54から各画素列の始点座標とラン幅
とを受け取る。そして、ステップT32では、画素列の
最初の画素が選択される。ステップT33では、選択さ
れた画素の座標が画像データ変換部56によってアフィ
ン逆変換され、ソース画像Isの座標系(xx,yy)
における座標値が求められる。
【0023】ステップT34では、ソースメモリ22か
ら読出してくるソース画像データに対して補間処理を行
なうか否かが判定される。ここで、補間処理とは、ステ
ップT33で逆変換して求められた画素位置におけるソ
ース画像データを、その周囲の画素のソース画像データ
とともに重み付け平均する処理をいう。補間処理を行な
うか否かと、補間処理のパラメータとは、座標変換処理
に先立って予めオペレータにより指定されている。
【0024】補間処理を行なわないときには、ステップ
T35において、ソース画像データがソースメモリ22
から読みだされ、そのままデスティネーション画像デー
タとして採用される。一方、補間処理を行なう場合に
は、ステップT36においてソース画像データがソース
メモリ22から読みだされるとともに、所定の補間処理
が行なわれて、デスティネーション画像データが求めら
れる。
【0025】ステップT37では、ステップT35また
はT36において求められたデスティネーション画像デ
ータがデスティネーションメモリ24に書き込まれる。
ステップT38では、ステップT31で受け取った画素
列データで指定されるすべての画素について、ステップ
T33〜T37の処理が終了したか否かが判断される。
終了していなければステップT39において次の画素が
選択されて、上述のステップT33〜T38の処理が繰
り返される。
【0026】こうしてステップT7の処理が終了する
と、図3のステップT8においてデスティネーション領
域Rdのすべての副走査座標範囲0〜X2に対してステ
ップT5〜T7の処理が終了したが否かが判断される。
終了していなければ、ステップT9において処理対象の
副走査座標Xcが1つインクリメントされ、ステップT
5〜T8の処理が繰り返される。
【0027】以上のように、まずデスティネーション座
標系においてデスティネーション画像Id内に存在する
画素列を抽出し(ステップT5、T6)、デスティネー
ション画像Id内の画素についてのみソース画像データ
を読出してくる(ステップT7)ようにすれば、デステ
ィネーション領域Rd内の不要な領域について逆変換を
行なわないので、座標変換処理の全体を高速に行なうこ
とができるという利点がある。
【0028】B.走査線とセグメントの交点座標を求め
る詳細手順 図6のステップT23において、走査線SLと各セグメ
ントとの交点座標を求める際には、まず、各セグメント
の傾きmによってセグメントを次の4つのグループに分
類する。 グループG1: 1<m<∞ グループG2: 0<m≦1 グループG3:−1≦m<0 グループG4:−∞<m<−1 図9は、これらのグループ分けを示す説明図である。図
9では、理解しやすいようにY軸を上向きにとっている
が、図4のようにY軸を上向きに取った場合にも以下の
説明は実質的に同じである。
【0029】傾きmがゼロのときには、そのセグメント
と走査線SLとの交点座標は(Xc,Ys)であり、改
めて交点座標を求める必要はない。ここで、Xcは走査
線SLの副走査座標であり、Ysはセグメントの始点Q
sの主走査座標である。傾きmが無限大のときには、そ
のセグメントは走査線と交差しないので、このときにも
交点座標を求める必要はない。従って、傾きmが上述の
4つの場合にのみ、以下のようにして走査線SLとセグ
メントとの交点座標を求めればよい。
【0030】一般に、始点Qs(Xs,Ys)と終点Q
e(Xe,Ye)とを結ぶ直線(すなわち、セグメン
ト)は次式で表される。 Y−Ys=m(X−Xs) …(1) m=ΔY/ΔX =(Ye−Ys)/(Xe−Xs) …(2) この実施例では、セグメントと走査線SLとの交点の座
標を求める際に、次の条件Cn設定する。 条件Cn:交点はセグメントから1/2画素の距離の範
囲内に入ること。
【0031】B−1.グループG1の処理 グループG1に対しては、上記(1)式に条件Cnを考
慮して次の不等式を考える。 Y−Ys≦m{(X−Xs)+0.5} …(3) この不等式を満足する座標値(X,Y)が、条件Cnを
満足する交点座標(X,Y)となる。(3)式は次のよ
うに書き換えられる。 0≦F1(X,Y) …(3a) F1(X,Y)=2ΔY(X−Xs)−2ΔX(Y−Ys)+ΔY …(4) ここで、△X=Xe−Xsであり、△Y=Ye−Ysで
ある。
【0032】セグメントSの始点Qs(Xs,Ys)に
おける関数F1の値F1(Xs,Ys)は、次式に示す
ように(Ye−Ys)に等しい。 F1(Xs,Ys)=△Y=Ye−Ys …(4a) 関数F1に関しては、さらにつぎの2つの漸化式が成立
する。 F1(X+1,Y)=F1(X,Y)+2△Y …(5a) F1(X,Y+1)=F1(X,Y)−2△X …(5b) すなわち、X座標を1つ増加させた時に関数F1の値は
2△Yだけ増加し、Y座標を1つ増加させた時に関数F
1の値は2△Xだけ減少する。
【0033】交点座標を求める際には、上記の2つの漸
化式が用いられる。図10は、グループG1のセグメン
トと、副走査座標Xcにおける走査線SLとの交点座標
を求める手順を示すフローチャートであり、図6のステ
ップT23の詳細な手順に相当する。また、図11はそ
の手順をグラフ上で示す説明図である。
【0034】ステップT51では、F1(Xc,Yp+
1)の値が計算される。ここで、Xcは処理対象の副走
査座標の値であり、Ypは1つ前の副走査座標(Xc−
1)における交点の主走査座標値である。図11の例で
は、処理対象の副走査座標Xcが始点Qsの次の座標
(=Xs+1)であり、Xc=Xs+1,Yp=Ysで
ある。従って、ステップT51で計算されるF1(X
c,Yp+1)の値は、画素P11(Xs+1,Ys+
1)に対する関数値F1(Xs+1,Ys+1)であ
る。始点Qsに対する関数値F1(Xs,Ys)は式
(4a)に示すように(Ye−Ys)に等しく、F1
(Xs+1,Ys+1)の値は上記の漸化式(5a),
(5b)を用いて加算と減算を1回ずつ行なうことによ
って算出される。
【0035】なお、交点座標算出部52は、関数F1の
値を算出するために、図12に示すセグメント情報テー
ブルSIを利用する。セグメント情報テーブルSIは、
そのセグメントの始点座標(Xs,Ys)と終点座標
(Xe,Ye)と、グループ(G1〜G4のいずれか1
つを示す)と、処理中の画素座標(Xc,Yp)と、X
座標を1つ更新した時の関数F1の増分2△Yと、Y座
標を1つ更新した時の関数F1の増分(−2△X)とを
含んでいる。Y座標更新時の増分をマイナスで表わして
おけば、上記(5b)式も、この増分(−2△X)を加
算する演算と見ることができる。
【0036】ステップT52では、関数値F1(Xc,
Yp+1)が0以上であるか否かが調べられる。すなわ
ち、上記の(3a)式が満足されるか否かが判断され
る。図11には、関数F1(X,Y)で表わされる直線
が破線で描かれている。(3a)式が満足される範囲
は、斜線を付して示すように、関数F1の破線以下の領
域である。言い換えれば、画素P11の位置座標(図1
1の例では画素P11の中心座標)が破線よりも下側の
領域に存在する場合には、(3a)式が満足される。
【0037】関数F1(Xc,Yp+1)が0以上の場
合、すなわち、(3a)式が満足される場合には、ステ
ップT53においてセグメント情報テーブルSI内のY
座標値Ypの値が1つインクリメントされ、ステップT
51,T52が繰り返される。図11の例では、画素P
11の上側に隣接する画素P12(Xs+1,Ys+
2)について関数F1の値が計算され、0以上か否かが
判断される。こうして、(3a)式が満足されている間
はステップT51〜T53の処理が繰り返され、副走査
座標Xcの走査線に沿って、主走査座標Ypが1つずつ
増加していく。この際、関数F1の値は、式(5b)に
従って単に−2△Xを加算するだけで求めることができ
るので、その演算は高速に行なわれる。
【0038】ステップT52において(3a)式が満足
されなくなると、ステップT54が実行され、セグメン
ト情報テーブルSI内の処理中の座標(Xc,Yp)の
値が交点座標として採用される。図11の例では、画素
P12の座標(Xs+1,Ys+2)が交点座標として
採用される。
【0039】B−2.グループG2の処理 グループG2に対しては、上記(1)式に条件Cnを考
慮した次の不等式を採用する。 (Y−Ys)+0.5≧m(X−Xs) …(6) (6)式は次のように書き換えられる。 0≦F2(X,Y) …(6a) F2(X,Y)=2ΔY(X−Xs)−2ΔX(Y−Ys)−ΔX …(7)
【0040】セグメントSの始点Qs(Xs,Ys)に
おける関数値F2(Xs,Ys)は、次式に示すように
−(Xe−Xs)に等しい。 F2(Xs,Ys)=−△X=−(Xe−Xs) …(7a) 関数F2に関しては、つぎの2つの漸化式が成立する。 F2(X+1,Y)=F2(X,Y)+2△Y …(8a) F2(X,Y+1)=F2(X,Y)−2△X …(8b) これらの漸化式は、グループG1に対する漸化式(5
a),(5b)と同じである。
【0041】図13は、グループG2のセグメントにつ
いて交点座標を求める手順を示すフローチャートであ
る。図14はその手順をグラフ上で示す説明図である。
ステップT61では、F2(Xc,Yp)の値が計算さ
れる。ここで、Xcは処理対象の副走査座標の値であ
り、Ypは1つ前の副走査座標(Xc−1)における交
点の主走査座標値である。ステップT61で最初に計算
される関数値F2(Xc,Yp)は、図14の画素P2
1(Xs+1,Ys)に対する関数値F2(Xs+1,
Ys)である。関数値F2(Xs+1,Ys)は上記の
漸化式(8a)を用いて加算を行なうことによって算出
される。
【0042】ステップT62では、関数値F2(Xc,
Yp)が0以下であるか否かが調べられる。図14にお
いて、(6a)式が満足される範囲は、斜線を付して示
すように、関数F2で表わされる破線以上の領域であ
る。関数値F2(Xc,Yp)が0以下の場合、すなわ
ち、(6a)式が満足される場合には、ステップT64
においてセグメント情報テーブルSI内の処理中の座標
(Xc,Yp)の値が交点座標として採用される。図1
4の例では、画素P21の座標(Xs+1,Ys)が交
点座標として採用される。一方、関数値F2(Xc,Y
p)が0よりも大きな場合には、ステップT63におい
て、セグメント情報テーブルSI内の処理中の主走査座
標Ypが1つインクリメントされ、その後、ステップT
63において、座標(Xc,Yp)の値が交点座標とし
て採用される。
【0043】グループG2の場合には、ステップT61
〜T64を一度実行するだけで交点座標が決定される
が、これは、次のような理由による。図14において、
副走査座標(Xc+1)における交点座標を求めること
を考える。この時、交点となり得るのは、以下に示すよ
うに、座標Xcにおける交点画素P21と同じ主走査座
標Ysを有する画素P22か、またはその1つ上の画素
P23のいずれかである。画素P21と画素P22とを
結んだ直線の傾きは0であり、画素P21と画素P23
とを結んだ直線の傾きは1である。上述したように、グ
ループG2のセグメントの傾きmは0と1の間にあるの
で、交点画素P21の次の交点となるのは、2つの画素
P22,P23のいずれか一方である。仮に、画素P2
2よりも下側の画素が交点になるとすれば、セグメント
の傾きが負となる。また、仮に画素P23よりも上側の
(すなわち主走査座標が大きな)画素が交点になるとす
れば、セグメントの傾きが1よりも大きくなる。このよ
うに、グループG2においては、2つの画素P22,P
23のいずれ一方が次の交点となるので、ステップT6
1〜T64を一度実行するだけで交点座標を求めること
ができる。
【0044】B−3.グループG3の処理 グループG3に対しては、上記(1)式に条件Cnを考
慮した次の不等式を採用する。 (Y−Ys)−0.5≦m(X−Xs) …(9) (9)式は次のように書き換えられる。 0≦F3(X,Y) …(9a) F3(X,Y)=2ΔY(X−Xs)−2ΔX(Y−Ys)+ΔX …(10)
【0045】セグメントSの始点Qs(Xs,Ys)に
おける関数値F3(Xs,Ys)は、次式に示すように
(Xe−Xs)に等しい。 F3(Xs,Ys)=△X=(Xe−Xs) …(10a) 関数F3に関しては、つぎの2つの漸化式が成立する。 F3(X+1,Y)=F3(X,Y)+2△Y …(11a) F3(X,Y−1)=F3(X,Y)+2△X …(11b)
【0046】図15は、グループG3のセグメントにつ
いて交点座標を求める手順を示すフローチャートであ
る。図16はその手順をグラフ上で示す説明図である。
図15のステップT71〜T74は、図13のステップ
T61〜T64と類似している。ステップT71ではス
テップT61と同様に、座標(Xc,Yp)における関
数値を計算する。ステップT72では、関数値F3(X
c,Yp)が0以上であるか否かが判断される。この値
が0未満の時にはステップT73において主走査座標Y
pの値が1だけ減算される。ステップT74では、ステ
ップT64と同じく、セグメント情報テーブルSI内の
処理中の座標値(Xc,Yp)を交点座標として採用す
る。このように、グループG3の処理は、グループG2
の処理とほぼ同様である。これは、図9を参照すれば解
るように、グループG2とG3とが、X軸に対して対象
な領域に相当するからである。
【0047】B−4.グループG4の処理 グループG4は、グループG1と対象な領域に相当する
から、グループG1と同様な処理によって交点座標が求
められる。グループG4に対しては、上記(1)式に条
件Cnを考慮した次の不等式を採用する。 Y−Ys≧m{(X−Xs)+0.5} …(12) (12)式は次のように書き換えられる。 F4(X,Y)≦0 …(12a) F4(X,Y)=2ΔY(X−Xs)−2ΔX(Y−Ys)+ΔY …(13)
【0048】セグメントSの始点Qs(Xs,Ys)に
おける関数値F4(Xs,Ys)は、次式に示すように
(Ye−Ys)に等しい。 F4(Xs,Ys)=△Y=(Ye−Ys) …(13a) 関数F4に関しては、つぎの2つの漸化式が成立する。 F4(X+1,Y)=F4(X,Y)+2△Y …(14a) F4(X,Y−1)=F4(X,Y)+2△X …(14b)
【0049】図17は、グループG4のセグメントにつ
いて交点座標を求める手順を示すフローチャートであ
る。また、図18は、その手順をグラフ上で示す説明図
である。図17のステップT81〜T84は、図10の
ステップT51〜T54と類似している。ステップT8
1では、座標(Xc,Yp−1)における関数値を計算
する。ステップT82では、関数値F4(Xc,Yp−
1)が0以下であるか否かが判断される。この値が0以
下の時にはステップT83において主走査座標Ypの値
が1だけ減算され、ステップT81,T82が繰り返さ
れる。そして、ステップT82において関数値F4(X
c,Yp−1)が0よりも大きくなると、ステップT8
4において、セグメント情報テーブルSI内の処理中の
座標値(Xc,Yp)が交点座標として採用される。
【0050】以上のように、走査線SLと各セグメント
との交点座標は、セグメントの傾きmに応じて定義され
る関数F1〜F4に基づいて、単純な加算または減算を
行なうことによって求められる。従って、加算器を含む
比較的単純なハードウエアによって交点座標算出部52
を構成することも可能である。
【0051】C.変形例 なお、この発明は上記実施例に限られるものではなく、
その要旨を逸脱しない範囲において種々の態様において
実施することが可能であり、例えば次のような変形も可
能である。
【0052】(1)上記実施例では、各副走査座標値ご
とに、交点座標の演算(ステップT5)と、画素列の抽
出(ステップT6)と、アフィン逆変換による画像デー
タの読出し(ステップT7)とが実行される。従って、
これらの処理を実行する交点座標算出部52と、画素列
抽出部54と、画像データ変換部56とをそれぞれ別々
の演算装置として構成し、いわゆるパイプライン処理を
行なうようにすれば、全体の処理を高速化することが可
能である。パイプライン処理を行なう際に、セグメント
の抽出処理(ステップT3)を実行するセグメント抽出
部50も別個の演算装置として構成するようにすれば、
さらに高速化することができる。
【0053】(2)上記実施例では、走査線とセグメン
トの交点座標を求める際に、交点がセグメントから1/
2画素の距離の範囲内に入るという条件Cnを設定して
いた。しかし、一般には、交点をセグメントから1/2
画素以上の所定の距離の範囲内に入るという条件で交点
座標を求めてもよい。ただし、1/2画素の距離の範囲
内で交点を求めるようにすれば、1本のセグメントの1
つの副走査座標において交点となりうる画素が1つに限
定されるので、交点座標を正確に求めることができると
いう利点がある。
【0054】(3)上記実施例では、セグメントの傾き
mに応じてセグメントを4つのグループに分類し、各グ
ループごとに異なる手順で交点座標を求めていた。しか
し、グループ分けせずに、常に同じ手順で交点座標を求
めることも可能である。このためには、例えば次の式を
採用する。 −0.5≦FF(X,Y)≦0.5 …(15) FF(X,Y)=ΔY(X−Xs)−ΔX(Y−Ys) …(16) なお、セグメントの直線は、FF(X,Y)=0で表わ
される。この関数FFに対する漸化式は、次のようにな
る。 FF(X+1,Y)=FF(X,Y)+△Y …(17a) FF(X−1,Y)=FF(X,Y)−△Y …(17b) FF(X,Y+1)=FF(X,Y)−△X …(17c) FF(X,Y−1)=FF(X,Y)+△X …(17d)
【0055】これらの漸化式を利用し、上記の不等式
(15)を満足するような座標(X,Y)を調べること
によって、交点座標を求めることができる。この際、セ
グメントの傾きmが正の時には、1つ前の交点座標(X
c−1,Yp)と同じ主走査座標Ypを有する座標値
(Xc,Yp)が不等式(15)を満足するか否かを調
べ、満足していなければ、主走査座標値Ypを1つずつ
増加させながら不等式(15)が満足されているか否か
を調べればよい。また、セグメントの傾きmが負の時に
も同様に、主走査座標値Ypを1つずつ減少させながら
不等式(15)が満足されているか否かを調べればよ
い。
【0056】(4)上記実施例では、ソース画像領域が
多角形であるとしてが、一般に、ソース画像は、その輪
郭が複数の線分によって構成されるものであればよい。
【0057】(5)上記実施例では、各画素列の始点座
標とラン幅とによって画素列データを構成したが、一般
に画素列データは、画素列の各画素の座標を実質的に表
すデータであればよい。例えば、画素列データを画素列
内の各座標値をすべて含むデータとしてもよい。ただ
し、上記実施例のように、画素列の始点座標とラン幅と
で画素列データを構成するようにすれば、画素列データ
を求めるのが容易であり、また、画素列データのデータ
量が少ないので、全体の処理速度を向上させることがで
きるという利点がある。
【0058】
【発明の効果】以上説明したように、本発明の画像処理
装置によれば、セグメント抽出手段が座標変換後の輪郭
の線分を表すセグメントデータを生成するので、このセ
グメントデータに基づいて、交点座標算出手段が座標変
換後の画像空間における走査線と各線分との交点座標を
求めることができる。さらに、この交点座標に基づい
て、画素列抽出手段が座標変換後の画像(第2の画像)
内に含まれる画素列を抽出することが可能となる。この
ように、画素列抽出手段が座標変換後の画像に含まれる
画素列のみを抽出することができるので、画像データ変
換手段は、抽出された画素列の画素についてのみ座標変
換後の第2の画像データを生成することができ、従っ
て、不要な座標変換を行なうことなく画像に回転を伴う
座標変換を施すことができるという効果がある。
【図面の簡単な説明】
【図1】アフィン変換によって画像部品を回転させた場
合の例を示す説明図。
【図2】この発明の実施例としての画像処理装置を示す
ブロック図。
【図3】実施例における画像データのアフィン変換の手
順を示すフローチャート。
【図4】ソース画像Isを示す図。
【図5】デスティネーション領域Rdを拡大して示す
図。
【図6】走査線とセグメントの交点座標を求める概略手
順を示すフローチャート。
【図7】走査線上の画素であってデスティネーション画
像内にある画素列を示す説明図。
【図8】アフィン逆変換によって画像データを取り込む
手順を示すフローチャート。
【図9】セグメントのグループ分けを示す説明図。
【図10】グループG1のセグメントの交点座標を求め
る手順を示すフローチャート。
【図11】グループG1の交点座標を求める手順を示す
説明図。
【図12】セグメント情報テーブルSIの内容を示す説
明図。
【図13】グループG2のセグメントについて交点座標
を求める手順を示すフローチャート。
【図14】グループG2の交点座標を求める手順を示す
説明図。
【図15】グループG3のセグメントについて交点座標
を求める手順を示すフローチャート。
【図16】グループG3の交点座標を求める手順を示す
説明図。
【図17】グループG4のセグメントについて交点座標
を求める手順を示すフローチャート。
【図18】グループG4の交点座標を求める手順を示す
説明図。
【符号の説明】
20 ホストプロセッサ 22 ソースメモリ 24 デスティネーションメモリ 26 画像ディスク 28 キーボード 30 マウス 32 CRT 40 コントロールバス 42 画像バス 50 セグメント抽出部 52 画素列算出部 54 アフィン変換部 F1〜F4 関数 Id デスティネーション画像 Is ソース画像 Qe 終点 Qs 始点 Rd デスティネーション領域 S セグメント SI セグメント情報テーブル SL 走査線 V1〜V5 頂点

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 画像に対して回転を伴う座標変換を行な
    う画像処理装置であって、 (a)座標変換前の第1の画像を表す第1の画像データ
    を記憶する第1のメモリと、 (b)座標変換後の第2の画像を表す第2の画像データ
    を記憶するための第2のメモリと、 (c)前記第1の画像の輪郭を構成する複数の線分の端
    点の座標を座標変換することによって、前記複数の線分
    の端点の座標変換後の座標を求めるとともに、各線分に
    ついて、各線分の両端点の座標変換後の座標を含むセグ
    メントデータを生成するセグメント抽出手段と、 (d)前記セグメントデータに基づき、座標変換後の画
    像空間において各走査線と前記各線分との交点座標を求
    める交点座標抽出手段と、 (e)前記交点座標に基づき、前記座標変換後の画像空
    間の各走査線において、前記第2の画像内に存在する画
    素を含む画素列を抽出するとともに、前記画素列の各画
    素の座標を実質的に表す画素列データを生成する画素列
    抽出手段と、 (f)前記画素列データに基づいて前記画素列の各画素
    の座標を逆座標変換するとともに、逆座標変換で得られ
    た座標における前記第1の画像データに基づき、前記画
    素列の各画素について前記第2の画像データを生成する
    画像データ変換手段と、を備えることを特徴とする画像
    処理装置。
JP4076370A 1992-02-27 1992-02-27 画像処理装置 Pending JPH05242235A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4076370A JPH05242235A (ja) 1992-02-27 1992-02-27 画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4076370A JPH05242235A (ja) 1992-02-27 1992-02-27 画像処理装置

Publications (1)

Publication Number Publication Date
JPH05242235A true JPH05242235A (ja) 1993-09-21

Family

ID=13603464

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4076370A Pending JPH05242235A (ja) 1992-02-27 1992-02-27 画像処理装置

Country Status (1)

Country Link
JP (1) JPH05242235A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186786A (ja) * 2010-03-09 2011-09-22 Fujitsu Ltd 図形描画装置および方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186786A (ja) * 2010-03-09 2011-09-22 Fujitsu Ltd 図形描画装置および方法

Similar Documents

Publication Publication Date Title
US7634143B2 (en) Image processing apparatus and method, recording medium, and program
CN106952338B (zh) 基于深度学习的三维重建的方法、系统及可读存储介质
US6421063B1 (en) Pixel zoom system and method for a computer graphics system
JP2008512767A (ja) 一般的な2次元空間変換の表現システム及び方法
WO2014167750A1 (ja) 電子ビーム描画装置、電子ビーム描画方法、および記録媒体
JP2006065407A (ja) 画像処理装置及びその方法、プログラム
US10403040B2 (en) Vector graphics rendering techniques
US7956861B2 (en) Method for checkerboard-based vector to raster conversion
JP2006235839A (ja) 画像処理装置および画像処理方法
US20070002067A1 (en) Magnification of indirection textures
US20120038785A1 (en) Method for producing high resolution image
JPH05242235A (ja) 画像処理装置
US11074670B2 (en) Image processing apparatus, control method thereof, recording medium, and information processing system
JPH0756673B2 (ja) 分割空間フイルタによる画像処理方法
JPH05207266A (ja) 画像編集処理装置
JP3495159B2 (ja) 画像部品の隣接関係判定方法
JPH09106453A (ja) 画像の変形方法
KR102434428B1 (ko) 합성 영상 생성 방법, 합성 영상 생성 장치 및 상기 방법을 실행시키기 위하여 기록매체에 저장된 컴퓨터 프로그램
JP4863306B2 (ja) ベクターイメージ描画装置、ベクターイメージ描画方法およびプログラム
JP3517982B2 (ja) 図形描画装置
JP2854588B2 (ja) ラスタベクタ変換方法及び線図形入力装置
US20130114888A1 (en) Image processing apparatus, computer program product, and image processing method
US20080218520A1 (en) Acceleration of Triangle Scan Conversion Through Minor Direction Detection
JPH06131452A (ja) 画像データの位置歪み補正方法
WO2004097745A1 (en) Method and system for filling in a parallelogram