JPS6055483A - 図面清書処理方式 - Google Patents
図面清書処理方式Info
- Publication number
- JPS6055483A JPS6055483A JP58162922A JP16292283A JPS6055483A JP S6055483 A JPS6055483 A JP S6055483A JP 58162922 A JP58162922 A JP 58162922A JP 16292283 A JP16292283 A JP 16292283A JP S6055483 A JPS6055483 A JP S6055483A
- Authority
- JP
- Japan
- Prior art keywords
- strokes
- stroke
- line
- straight line
- broken line
- 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
Links
Landscapes
- Image Processing (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔技術分野〕
本発明は画像処理に関し、詳しくは手書き図面等の清書
処理の方式に関する。
処理の方式に関する。
代表的な従来の図面清書処理方式とその欠点につい℃、
以下に簡単に説明する。
以下に簡単に説明する。
方式0):清書すべき図面をボード上に置き、線の上を
スタイラスでなぞることにより、ダイアモンドや矩形等
のサブフィギュア単位で図形のドツトパターンを入力し
、入カサプフィギュアを予め用意されている原サブフィ
ギュアとパターンマツチングを行って入力サブフィギュ
アを同定し出力する。
スタイラスでなぞることにより、ダイアモンドや矩形等
のサブフィギュア単位で図形のドツトパターンを入力し
、入カサプフィギュアを予め用意されている原サブフィ
ギュアとパターンマツチングを行って入力サブフィギュ
アを同定し出力する。
この方式は、清書できる図形が予め用意しである原サブ
フィギュアに限定されるため処理可能な図面が限られ、
また多様な図面に対応すべく原サブフィギュアの種類を
増やすにしても、類似の図形に誤って清書する危険があ
ることから、その種類も自ずと制限されるという欠点が
ある。また。
フィギュアに限定されるため処理可能な図面が限られ、
また多様な図面に対応すべく原サブフィギュアの種類を
増やすにしても、類似の図形に誤って清書する危険があ
ることから、その種類も自ずと制限されるという欠点が
ある。また。
ドツト毎のパターンマツチングを実行するので。
大型計算機を用いる必要がある。さらに、サブフィギュ
ア単位のドツトバター/入力を図面から直接的にオフラ
インにて行うことは極めて困難であり、現状では上述の
ように人手に頼ったオンライン入力とせざるを得ないと
いう欠点もある。
ア単位のドツトバター/入力を図面から直接的にオフラ
インにて行うことは極めて困難であり、現状では上述の
ように人手に頼ったオンライン入力とせざるを得ないと
いう欠点もある。
方式(2)二図面から読み取ったドツトパターンな一定
の窓でスキャンし、パターン部において線分の追跡を行
い1図形を直線と円弧に分け、円弧はハフ変換に基づき
半径と中心座標を一計算する。この変換よりxo−yo
−r、 TABLIC(xoは中心のX座標、y は中
心のy座標、rは半径)上でピークをとり、各パラメー
タを得、それが適当な値であれば円弧とする。直線と直
線、円弧と直線、円弧と円弧の近いものの対応を調べ、
より高次のセグメントを類推することにより、サブフィ
ギュアを同定し、これに基づいて清書図面を出力する。
の窓でスキャンし、パターン部において線分の追跡を行
い1図形を直線と円弧に分け、円弧はハフ変換に基づき
半径と中心座標を一計算する。この変換よりxo−yo
−r、 TABLIC(xoは中心のX座標、y は中
心のy座標、rは半径)上でピークをとり、各パラメー
タを得、それが適当な値であれば円弧とする。直線と直
線、円弧と直線、円弧と円弧の近いものの対応を調べ、
より高次のセグメントを類推することにより、サブフィ
ギュアを同定し、これに基づいて清書図面を出力する。
この方式は1円弧は追跡できないためにハフ変換を利用
しているが、手書きの円弧は誤差が大きいため、正確な
半径と中心を得られない場合が多く、また破線を清書で
きないという欠点がある。
しているが、手書きの円弧は誤差が大きいため、正確な
半径と中心を得られない場合が多く、また破線を清書で
きないという欠点がある。
方式(3):ボード上に置いた図面の線をスタイラスで
なぞり、線のドツトパターンを入力し、1%線を直線ス
トローク近似する。同一のセグメント直線や円弧等)は
連続的になぞられるので、セグメントの分離は入力段階
で為されている。入力された各ストロークとその次のス
トロークとの角度θ(第1図参照)をめる。この角度θ
をストローク順にグラフ化すると、直線、・円弧、折れ
線のそれぞれで顕著な違いが認められる。第2図はその
説明図である。このような角度θの特性から、連続した
線をセグメントに分は分類して出方する。
なぞり、線のドツトパターンを入力し、1%線を直線ス
トローク近似する。同一のセグメント直線や円弧等)は
連続的になぞられるので、セグメントの分離は入力段階
で為されている。入力された各ストロークとその次のス
トロークとの角度θ(第1図参照)をめる。この角度θ
をストローク順にグラフ化すると、直線、・円弧、折れ
線のそれぞれで顕著な違いが認められる。第2図はその
説明図である。このような角度θの特性から、連続した
線をセグメントに分は分類して出方する。
コノ方式ハ、ストロークを用いるためアルゴリズムが簡
単で、処理時間も短くなるが、ストローク間の角度(差
角)θを用いるため不連続線を清書できないという欠点
がある。
単で、処理時間も短くなるが、ストローク間の角度(差
角)θを用いるため不連続線を清書できないという欠点
がある。
本発明の目的は、破線の清書、従来方式(2)よりも正
確な円弧の清書が可能で、また入力のオフライン化も比
較的容易な図面清書処理方式を提供することにある。
確な円弧の清書が可能で、また入力のオフライン化も比
較的容易な図面清書処理方式を提供することにある。
本発明の一実施例による図面清書処理の概略を第6図に
示す。図示の各処理ブロックについて。
示す。図示の各処理ブロックについて。
順に説明する。
く入力〉
51.1
図形のみの図面上の線を直線ストローク近似した各スト
ロークのパラメータ(始点と終点のX。
ロークのパラメータ(始点と終点のX。
y座標)を入力する。このパラメータは配列5TDAT
A(n、’t、j)に格納される。なお、図面がたとえ
ば1/8W程度のドツトパターンの場合、ストローク精
度も1/811Iとする。
A(n、’t、j)に格納される。なお、図面がたとえ
ば1/8W程度のドツトパターンの場合、ストローク精
度も1/811Iとする。
く前処理〉
S2.1
配列5TDATA (n 、 1t j )内のパラメ
ータから、入力された各ストロークの中心座標と長さを
計算する。中心座標は配列agNrxy (n + j
)に格納し、長さは配列8TIING (n) K格
納する。
ータから、入力された各ストロークの中心座標と長さを
計算する。中心座標は配列agNrxy (n + j
)に格納し、長さは配列8TIING (n) K格
納する。
〈連結関係〉
S5.1
ストロークのパターンを2次元配列PLANE 上に描
く。単に、ストロークの始、終点の連結関係を得るだけ
ならば、入力されたストロークの中から、端点のx、y
座標の同じものをめればよいが、ストロークの途中に他
のストロークが連結している場合や、ストロークが交差
している場合等がある。このようなこと、および後述の
接続関係補正処理の便を考憇し、実際にストロークを2
次元配列に描く。
く。単に、ストロークの始、終点の連結関係を得るだけ
ならば、入力されたストロークの中から、端点のx、y
座標の同じものをめればよいが、ストロークの途中に他
のストロークが連結している場合や、ストロークが交差
している場合等がある。このようなこと、および後述の
接続関係補正処理の便を考憇し、実際にストロークを2
次元配列に描く。
入力ストロークの精度は1 / 8 msであるが1図
形を描く場合は、1/1簡のデータに量子化する(以降
の連結e接続関係の処理には1 / 1 wzデータを
、数値計算には1/8鵡のデータをそれぞれ用いる)。
形を描く場合は、1/1簡のデータに量子化する(以降
の連結e接続関係の処理には1 / 1 wzデータを
、数値計算には1/8鵡のデータをそれぞれ用いる)。
このような量子化を行うのは、1/8簡のままでは配列
PLANEが非常に太き(なってしまい、しかも図面の
大部分は空白部で不経済であり、さらに、連結関係を得
るには1 / 1 m程度の精度でほとんど支障がない
からである。
PLANEが非常に太き(なってしまい、しかも図面の
大部分は空白部で不経済であり、さらに、連結関係を得
るには1 / 1 m程度の精度でほとんど支障がない
からである。
ストロークはその始、終点が分かっているから。
直線の男根より簡単に描くことかできる。ただし。
PLANEに描(ストロークのドツトは4隣接とする。
これは、交差するストロークの抜けを防ぐためである。
実際に交差しているストロークが、8隣接ではPLAN
E上で交差していない様に現れる場合でも、4隣接なら
ば正しく交差して現れる。
E上で交差していない様に現れる場合でも、4隣接なら
ば正しく交差して現れる。
S3.2
PLANE上にストロークを描(時、各点に4桁の情報
を与える。この情報の下6桁しまストロークの番号N、
残りの1桁はストローク上の描〜て〜Aる点の位置情報
Hである。このHは点がストロークの始点ならば1.終
点ならば2.途中の点ならば6である。この情報は以後
の連結関係等を得る時に用いられる。
を与える。この情報の下6桁しまストロークの番号N、
残りの1桁はストローク上の描〜て〜Aる点の位置情報
Hである。このHは点がストロークの始点ならば1.終
点ならば2.途中の点ならば6である。この情報は以後
の連結関係等を得る時に用いられる。
85.6
PLANICは対として2次元のりストPLI、l5T
(pntpl)を持っており、ストロークが交差または
連結した場合、このPLLl5Tにストロークの情報N
、Hを記憶させる。PLLl5TOpn&!重なった順
番、 pi は重なった点の情報N、[(である。
(pntpl)を持っており、ストロークが交差または
連結した場合、このPLLl5Tにストロークの情報N
、Hを記憶させる。PLLl5TOpn&!重なった順
番、 pi は重なった点の情報N、[(である。
ストロークの交差、連結はストロークを描(時に、PL
ANEQ値を調べることにより分力)る。間口ち、PL
ANEは初期値が0(空白の意)であり、値が0ならば
新たに描く点であるから 6.2の処理を行う。値が0
以外ならば、既にストローク力(描かれた点であり、そ
の点でストロークが交差または連結しているので上記の
ようなpiJL I s Tへの情報の記憶を行う。そ
の際、PLANEのその交差または連結点には負の値を
記憶させるが、これは次に説明する0 2本のストロークが交差した場合におけるPLANEと
PLLl5Tの内容を第4図に示し、説明する。
ANEQ値を調べることにより分力)る。間口ち、PL
ANEは初期値が0(空白の意)であり、値が0ならば
新たに描く点であるから 6.2の処理を行う。値が0
以外ならば、既にストローク力(描かれた点であり、そ
の点でストロークが交差または連結しているので上記の
ようなpiJL I s Tへの情報の記憶を行う。そ
の際、PLANEのその交差または連結点には負の値を
記憶させるが、これは次に説明する0 2本のストロークが交差した場合におけるPLANEと
PLLl5Tの内容を第4図に示し、説明する。
ストロークAが初めに描かれ、次にストロークBが描か
れるものとする。ストロークBを描(時に、PLANE
の交差点にはH=3 、N=Aの情報(以下、3−Aと
表記する)が記憶されているから、その点が交差点また
は連結点であることがわかるので1次のような処理を行
う。まず、 PLLl8Tの現在のポイン) (pn)
に1を加え、新しいポイントaをめる。PLANEの交
差点または連結点に、−〇(交差情報)を記憶させる。
れるものとする。ストロークBを描(時に、PLANE
の交差点にはH=3 、N=Aの情報(以下、3−Aと
表記する)が記憶されているから、その点が交差点また
は連結点であることがわかるので1次のような処理を行
う。まず、 PLLl8Tの現在のポイン) (pn)
に1を加え、新しいポイントaをめる。PLANEの交
差点または連結点に、−〇(交差情報)を記憶させる。
即ち、 PLANKの各点の記憶情報が正ならば、その
点は1本のストローク上の点であり、0ならば空白、負
ならば交差点または連結点である。
点は1本のストローク上の点であり、0ならば空白、負
ならば交差点または連結点である。
また1図示のように、PLLl5Tのポイントaのpl
に交差または連結する各ストロークのその点の情報3
−A、3−Bと交差またし言連結するストローク本数2
を記憶させる。
に交差または連結する各ストロークのその点の情報3
−A、3−Bと交差またし言連結するストローク本数2
を記憶させる。
なお、第5図のように、3本のストロークA。
B、O,が同一点で交差した場合、PLLll3Tの記
憶内容は同図に示すようになる。
憶内容は同図に示すようになる。
以上の処理を入力された全ストロークにつ(\て実行す
る。
る。
85.4
以上の処理により、PL、LISTの各列に連結するス
トロークの情報N、Hが得られるix、これよりリスト
8TLISTへ情報を移動する。これしま、ストローク
のどの位置に、どのストロークのどの位置が連結してい
るかを調べるために必要となる。
トロークの情報N、Hが得られるix、これよりリスト
8TLISTへ情報を移動する。これしま、ストローク
のどの位置に、どのストロークのどの位置が連結してい
るかを調べるために必要となる。
連結し−〔いるストロークで必要な情報&よ、ストロー
クの始、終点に他のストロークが連結して〜・るか否か
であるから、PLLl5Tより、H、d五1または2の
ストロークをめ、その5TLISTへ(ltlのストロ
ーク情報を与える。
クの始、終点に他のストロークが連結して〜・るか否か
であるから、PLLl5Tより、H、d五1または2の
ストロークをめ、その5TLISTへ(ltlのストロ
ーク情報を与える。
5TLISTは、各ストローク毎に5つの記憶場所#1
〜#5を有し、#1には始点の接続情報。
〜#5を有し、#1には始点の接続情報。
#2には終点の接続情報、#3には途中点の交差情報、
#4には始点の連続情報、#5Vcは終点の連結情報を
記憶する。
#4には始点の連続情報、#5Vcは終点の連結情報を
記憶する。
たとえば、PTI、LISTのボイ/)(10列の内容
が第6図に示す如(であれば(H4は1または2)。
が第6図に示す如(であれば(H4は1または2)。
5TLISTの内容は同図のようになる。
なお、ここではストロークの直接的な連結のみを対象と
しており、後述の補正による連結(以後、これを接続と
称し、直接的な連結E区別する)は対象外である。
しており、後述の補正による連結(以後、これを接続と
称し、直接的な連結E区別する)は対象外である。
53.5
連結するストロークの情報として、C08INとDIR
ECTをめる。この情報はストロークの直線性や回転性
を調べるのに有効である。
ECTをめる。この情報はストロークの直線性や回転性
を調べるのに有効である。
cosrNは第7図に示すように、連結するストローク
A、Bの成す角θの金弦aosθであるロストローフA
の始点座標を(xal yal)、終点座標(xb2
yb2)−ストロ−Aの終点とストロクBの始点とが連
結するとした場合、0Of9INはGO8IN = (
x、−x2+y、ay2) / ((x、2+y、)(
X22+Y2’) )% °°曲(1)でめられる。
A、Bの成す角θの金弦aosθであるロストローフA
の始点座標を(xal yal)、終点座標(xb2
yb2)−ストロ−Aの終点とストロクBの始点とが連
結するとした場合、0Of9INはGO8IN = (
x、−x2+y、ay2) / ((x、2+y、)(
X22+Y2’) )% °°曲(1)でめられる。
ここで、
x1=X1−x&2゜
Yl = yai M*2 。
X2=xb2 ”bl。
Yl :”b2 ”bl 。
である。
この0O8INは、後述の直線抽出1円弧抽出において
同一属性の判定に用いる。
同一属性の判定に用いる。
DIRECTは連結ストロークの回転方向を示し。
第8図のようにストロークA、Bが連結した場合。
ストロークAを正方向に906回転したストロークA/
とストロークBの内積で得られる。即ちDIRECT
= Bin (x1ax2+ Y、@Y2) −・・・
+21ここで X = −(yal −y&2) Yl =x11 −xa2 x2:Xbl−Xbl Yl:ybl−ybl である。従って、DIRECTが正ならば負方向回転、
0ならば一直線(回転せず〕、負ならば正方向回転であ
る。
とストロークBの内積で得られる。即ちDIRECT
= Bin (x1ax2+ Y、@Y2) −・・・
+21ここで X = −(yal −y&2) Yl =x11 −xa2 x2:Xbl−Xbl Yl:ybl−ybl である。従って、DIRECTが正ならば負方向回転、
0ならば一直線(回転せず〕、負ならば正方向回転であ
る。
〈破線要素抽出〉
54.1
破線要素とは、破線を構成する短縮分を意味する。この
破線要素は、それぞれ1本のストロークに近似されてい
るものとする。ここで破線要素を抽出するのは、接続関
係補正によって破線が直線(実線の)に誤清書されるこ
とを防ぎ、また、破線要素のように短いストロークの接
続関係補正のエラー(たとえば、同一ストロークの始点
と終点を接続するような工、ラー)を防ぐためである。
破線要素は、それぞれ1本のストロークに近似されてい
るものとする。ここで破線要素を抽出するのは、接続関
係補正によって破線が直線(実線の)に誤清書されるこ
とを防ぎ、また、破線要素のように短いストロークの接
続関係補正のエラー(たとえば、同一ストロークの始点
と終点を接続するような工、ラー)を防ぐためである。
54.2
次の3条件を満足するストロークを破線要素として抽出
する。条件(4−1):1ストロークで近似される。
する。条件(4−1):1ストロークで近似される。
条件(4−2):ストローク長が一定値以下である。
条件(4−3):始点および終点が他のストロークと連
結しない。
結しない。
上記の条件(4−2)のストローク長の閾値は、本実施
例では5msとしている。この判定には上記の19TL
IENGの内容を用いる。条件(4−3)&言。
例では5msとしている。この判定には上記の19TL
IENGの内容を用いる。条件(4−3)&言。
上記の8TLISTで始、終点の連結情報が0であるこ
とを意味する。
とを意味する。
なお、ここで抽出されたストロークは、破線抽出以外の
処理は行わない。また、後述の破線抽出では、ここで抽
出された破線要素と、直線抽出。
処理は行わない。また、後述の破線抽出では、ここで抽
出された破線要素と、直線抽出。
円弧抽出で残るストロークを用いる。
く接続関係補正〉
85.1
本来、図形としてつながっているはずのストロークを接
続するための補正を行う。補正の内容は次の3タイプで
あり、その順番で順に実行される。
続するための補正を行う。補正の内容は次の3タイプで
あり、その順番で順に実行される。
■2端点の接続
■交差点への縮退
■交差点への延長
本実施例では、補正の限界なx、y方向とも5儲とし、
それ以上熱れているものは接続しない。
それ以上熱れているものは接続しない。
なお、補正は他のストロークに連結していない端点(孤
立点と称す)のみについて行い、補正を一度行った端点
は以降の処理は行わない。
立点と称す)のみについて行い、補正を一度行った端点
は以降の処理は行わない。
55.2
上記■の処理を説明する。ここでは、swmxs鵬の範
囲内圧ある2以上の孤立端点な接続する。
囲内圧ある2以上の孤立端点な接続する。
この処理を行うのは、直線または円弧を描いている途中
で一度筆を上げた場合のよう釦、直線または円弧が途中
で不連続になり1分離したストロークの孤立端点を延長
しても接続できないことがあるからである。たとえば、
第9図のストロークA。
で一度筆を上げた場合のよう釦、直線または円弧が途中
で不連続になり1分離したストロークの孤立端点を延長
しても接続できないことがあるからである。たとえば、
第9図のストロークA。
Bは、孤立端点を破線のように延長しても接続できない
。
。
この処理で、すべてのストロークについて対応をめるの
は時間が掛かり過ぎるので、次のような方法を採用する
。
は時間が掛かり過ぎるので、次のような方法を採用する
。
PLANICと同じ大きさの2次元配列PI、N2を用
意する。このPLNZ上において、各孤立端点な中心に
4X4Cすなわち1図面上では4mx4m)の領域に色
を塗る。その場所の色は別のりストPLL5T 2によ
るもので、各色に孤立端点の情報が入っている。
意する。このPLNZ上において、各孤立端点な中心に
4X4Cすなわち1図面上では4mx4m)の領域に色
を塗る。その場所の色は別のりストPLL5T 2によ
るもので、各色に孤立端点の情報が入っている。
第10図はストロークAの始点が孤立端点として存在す
る場合における、PbI2とPLI、8T2の内容を例
示している。ここで、PbI2上にお〜1て既に色が塗
られた領域に、別の端点の色の領域が重なった場合、そ
の2端点け5whX5m内にあると言える。従って、後
者の端点の領域に1ヨ、新たな色ではなく同じ色を塗り
、その端点の情報なPLL5T 2へ付は加えれば、そ
れ等2端点り接続の情報を得られる。
る場合における、PbI2とPLI、8T2の内容を例
示している。ここで、PbI2上にお〜1て既に色が塗
られた領域に、別の端点の色の領域が重なった場合、そ
の2端点け5whX5m内にあると言える。従って、後
者の端点の領域に1ヨ、新たな色ではなく同じ色を塗り
、その端点の情報なPLL5T 2へ付は加えれば、そ
れ等2端点り接続の情報を得られる。
第11図はストロークA、Bの端点の領域力;重なった
場合を示している。
場合を示している。
なお、この場合、既に塗っである色についてkよ。
4X4領域全体をスキャンする必要はなく、領域の4つ
のコーナのみ調べれば足りる。
のコーナのみ調べれば足りる。
以上の処理を全ストロークの孤立端点につ〜・て行い、
PLL5T 2の各色のうち、中の端点情報カニ2つ以
上の色の情報のみ8TLI13Tへ移す。
PLL5T 2の各色のうち、中の端点情報カニ2つ以
上の色の情報のみ8TLI13Tへ移す。
なお、この情報は、8TLIST上の上記連結情報とは
別の場所に入れる。これは、後述の直線抽出時における
ハフ変換等で別の取扱いを行うからである。
別の場所に入れる。これは、後述の直線抽出時における
ハフ変換等で別の取扱いを行うからである。
第12図は、PLLl9T 2と情報を移した後の5T
LISTの内容を例示する。この例からも明らかなよう
に、リスト数がnの場合、n個の端点へ(n−1)個の
情報を書き込むことになる。
LISTの内容を例示する。この例からも明らかなよう
に、リスト数がnの場合、n個の端点へ(n−1)個の
情報を書き込むことになる。
さて、この処理を両端の孤立した短いストロークについ
て行うと、同一ストロークの両端を接続してしまう恐れ
がある。また、隣りのストロークの孤立端点と接続し、
その結果、破線が連続線に化ける恐れがある。実は、こ
のようなエラーを回避するために、予め破線要素を抽出
除去したのである。
て行うと、同一ストロークの両端を接続してしまう恐れ
がある。また、隣りのストロークの孤立端点と接続し、
その結果、破線が連続線に化ける恐れがある。実は、こ
のようなエラーを回避するために、予め破線要素を抽出
除去したのである。
55.5
上記■の処理を説明する。この処理は、第16図の上側
に示す様なストロークの端点な交差点まで縮退させ、同
図し下側の様にストロークを補正するものである。
に示す様なストロークの端点な交差点まで縮退させ、同
図し下側の様にストロークを補正するものである。
ここでは、孤立端点の5 we X 3ms内に、その
孤立端点のストロークの交差点がある力1調べ、あれば
その孤立端点な交差点まで縮退させる。端点より3鵡X
3111の領域とは、端点な中心にした7mX7111
の領域を意味している。
孤立端点のストロークの交差点がある力1調べ、あれば
その孤立端点な交差点まで縮退させる。端点より3鵡X
3111の領域とは、端点な中心にした7mX7111
の領域を意味している。
具体的には、PLAIiE上において、上記7mx7m
sの領域をスキャンし、自ストロークが含まれる交差点
を検出するが、領域を一端から一様にスキャンするとエ
ラーが大きくなるので、端点な中心として中心から外へ
同心円状にスキャンする。
sの領域をスキャンし、自ストロークが含まれる交差点
を検出するが、領域を一端から一様にスキャンするとエ
ラーが大きくなるので、端点な中心として中心から外へ
同心円状にスキャンする。
これを第14図によって説明する。同図(&)の端点A
は交点βに縮退すべぎであるが、7aX7m領域(破線
)の左上コーナより矢印のように一様にスキャンした場
合、交差点aに縮退さt’L−CL、マ5゜このような
不都合は、同図(blに示すように、端点Aから同心円
状にスキャンして場合、初めに交差点βを検出するから
起こらない0 この処理は■の処理後に残った孤立端点に対してのみ行
い、その結果によってPLLl13Tのリストの値を書
き替え、そのリストの番号を別のりストにマークしてお
(。すべての処理を終わった時点に、マークの付いてい
るPLLl8Tのリストの情報を5TLISTへ移す。
は交点βに縮退すべぎであるが、7aX7m領域(破線
)の左上コーナより矢印のように一様にスキャンした場
合、交差点aに縮退さt’L−CL、マ5゜このような
不都合は、同図(blに示すように、端点Aから同心円
状にスキャンして場合、初めに交差点βを検出するから
起こらない0 この処理は■の処理後に残った孤立端点に対してのみ行
い、その結果によってPLLl13Tのリストの値を書
き替え、そのリストの番号を別のりストにマークしてお
(。すべての処理を終わった時点に、マークの付いてい
るPLLl8Tのリストの情報を5TLISTへ移す。
この処理は■の処理で行ったPLL8T 2からの情報
の移動と同様である。
の移動と同様である。
なお、端点の縮退の前に、端点接続を行った理由を第1
5図によって説明する。
5図によって説明する。
同IQ (11に示すストロークATBICに対し、端
点接続補正に先立って端点縮退補正を施した場合。
点接続補正に先立って端点縮退補正を施した場合。
ストロークAの端点&が交差点すに縮退させられる結果
、その後に端点接続補正を施しても、同図(O)に示す
ように、ストロークGがストロ゛−りA。
、その後に端点接続補正を施しても、同図(O)に示す
ように、ストロークGがストロ゛−りA。
Bと分離してしまう。先に端点接続補正を施した場合、
ストロークA、Cの端点a、cが接続されるから、同図
(0)に示すようにストロークA、B。
ストロークA、Cの端点a、cが接続されるから、同図
(0)に示すようにストロークA、B。
Cがすべて接続される。一般に、同図(alのストロー
クは同図(blのように接続するのが自然であり。
クは同図(blのように接続するのが自然であり。
このような2端点の接続を優先するために、端点接続補
正を端点縮退補正に先行させたわけである。
正を端点縮退補正に先行させたわけである。
55.4
上記■の処理を説明する。この処理は、第16図(at
K示すようなストロークA、Bを同図(blに示すよ
うに′接続するため虻行う。
K示すようなストロークA、Bを同図(blに示すよ
うに′接続するため虻行う。
まず、■と■の処理後に残っている孤立端点について、
そのストロークの延長線上に他のストロークがあるか調
べる。具体的には、■の処理の場合と同様に7X7の窓
を用いるが、優先順位はかなり複雑である。たとえば、
ストロークが第17図のような場合、そのストロークの
端点な中心とした反対側を最優先のものとし、その反対
側を一定の割りで拡張した部分を次の順位とし、逆にス
トローク側を拡張した部分はスキャンを行わず。
そのストロークの延長線上に他のストロークがあるか調
べる。具体的には、■の処理の場合と同様に7X7の窓
を用いるが、優先順位はかなり複雑である。たとえば、
ストロークが第17図のような場合、そのストロークの
端点な中心とした反対側を最優先のものとし、その反対
側を一定の割りで拡張した部分を次の順位とし、逆にス
トローク側を拡張した部分はスキャンを行わず。
残りを最下位の順位とする(第17図(bl参照)。
このような優先順位にしたがって、各部分を中心より外
側へ同心円状にスキャンし、PLANIC上であてはま
る位置の値を調べ、他のストロークがあれば、そこでス
キャンを終え、その情報を8TLISTへ移す。
側へ同心円状にスキャンし、PLANIC上であてはま
る位置の値を調べ、他のストロークがあれば、そこでス
キャンを終え、その情報を8TLISTへ移す。
なお、00部分のスキャンの場合、他のストロークの途
中点への接続は一般に起こらないから。
中点への接続は一般に起こらないから。
ストロークの交点または重なり点へのみ接続する。
〈直線抽出〉
S6.1
直線の抽出に際し、ハフ変換を行う、ので、まずハフ変
換について説明する。
換について説明する。
直線は勾配とy切片の2つのパラメータによって記述で
きるが、これ以外に、第18図に示すように、原点0(
0,0)より直線りに引いた垂線HのX軸に対する角θ
と長さρによって、直線りを記述することもできる。こ
の変換をハフ変換という。ハフ変換の%微01つに、直
線りと垂線Hの交点(Xよ、y工)はすべてθ、ρの2
パラメータにより一意に定まるというものがあり、この
特徴を用い以下の処理にてパラメータθとρをめること
ができる。
きるが、これ以外に、第18図に示すように、原点0(
0,0)より直線りに引いた垂線HのX軸に対する角θ
と長さρによって、直線りを記述することもできる。こ
の変換をハフ変換という。ハフ変換の%微01つに、直
線りと垂線Hの交点(Xよ、y工)はすべてθ、ρの2
パラメータにより一意に定まるというものがあり、この
特徴を用い以下の処理にてパラメータθとρをめること
ができる。
即ち、θ、ρと(Xよ、yl)の間にはρ=X100B
θ+y1ginθ の関係がある。
θ+y1ginθ の関係がある。
また1通常、直線は始点と終点を用いて表すことが多い
。始点(Xl 1 yl ) s終点Cx2.y2)と
θ。
。始点(Xl 1 yl ) s終点Cx2.y2)と
θ。
ρとの間には
ρ=x、oosθ+y、 ginθ
ρ=x20011θ+y2sin 19θ=tan″″
’ ((x2− xl)/(yl −y2 ) ) ・
―・(3)の関係がある。
’ ((x2− xl)/(yl −y2 ) ) ・
―・(3)の関係がある。
以上の関係式によって、ノくラメータθ、ρの値を容易
に計算できる。
に計算できる。
ハフ変換によって得られたθ、ρの値は、2次元配列T
ABLEへ展開する。同一直線に含まれる変換値はTA
BLEの同一場所に現れる(第19図参照) 56.2 ハフ変換は具体的には以下のように行う。
ABLEへ展開する。同一直線に含まれる変換値はTA
BLEの同一場所に現れる(第19図参照) 56.2 ハフ変換は具体的には以下のように行う。
第20図に2いて、ストロークN1の両端につX11で
、(連結関係〉で得られた連結情報によりイ也のストロ
ークの端点と連結しているもの番よな〜1力議調べる。
、(連結関係〉で得られた連結情報によりイ也のストロ
ークの端点と連結しているもの番よな〜1力議調べる。
そして、ストロークN1とそれに連結して(するストロ
ークN2との成す角αが閾値αI以下ならば他の連結ス
トロークの探索を開始する力〕、α〉α′ならば両スト
ロークのノ1フ変換を行う。
ークN2との成す角αが閾値αI以下ならば他の連結ス
トロークの探索を開始する力〕、α〉α′ならば両スト
ロークのノ1フ変換を行う。
ハフ変換はストロークそのものに対してでヲ家なく、第
21図に示すように、ストロークN、 、N2の中点(
xoll yCl) % (”o21 y02 )を結
ぶ直線L n 1 n 2について行う。これは、スト
ローク自体よりも値のバラツキが半分になり精度の面で
有利であり、また直線L n 、n 2が両ストローク
に近似した元の線忙より近い可能性があるからである。
21図に示すように、ストロークN、 、N2の中点(
xoll yCl) % (”o21 y02 )を結
ぶ直線L n 1 n 2について行う。これは、スト
ローク自体よりも値のバラツキが半分になり精度の面で
有利であり、また直線L n 、n 2が両ストローク
に近似した元の線忙より近い可能性があるからである。
なお、このような他のストロークとのハフ変換をしなか
ったストロークは、それ単独にノ1フ変換を行う。
ったストロークは、それ単独にノ1フ変換を行う。
以上のように、接続処理したストロークのハフ変換を行
わないのは、そのようなストロークは誤差が大き過ぎる
ためである。
わないのは、そのようなストロークは誤差が大き過ぎる
ためである。
56.6
以上のようにしてめられたθ、ρを量子化してTABI
4に値を入れる。この場合、連結した2トロークの長さ
の相を入れる。TABLICの既に値が入っているリス
トに新たに入れるストロークがあれば、その長さを加え
ると重複することになるので、その加算は行わない。
4に値を入れる。この場合、連結した2トロークの長さ
の相を入れる。TABLICの既に値が入っているリス
トに新たに入れるストロークがあれば、その長さを加え
ると重複することになるので、その加算は行わない。
量子化間隔は、θを15@おき、ρを2謳おきに行う。
このように選んだのは、θは30@、45’、60°等
を表すことができればよく、それほどの精度は不要であ
るからである。またρについては。
を表すことができればよく、それほどの精度は不要であ
るからである。またρについては。
1−とするとTABLIC上でのピラツキが大きく。
3〜5msとすると近い位置にある別の平行した2直線
について値が同一になってしまうため、量子化間隔を上
記のように1鵬に選んでいる。
について値が同一になってしまうため、量子化間隔を上
記のように1鵬に選んでいる。
なお、θは−90”<#≦90@、ρは−R≦ρ≦Rの
範囲をとる。直線の勾配aとy切片すが−ωくaく■、
−ωくρくωの範囲をとり、適当な量子化ができないの
に対し、θとρは一定の範囲に決定でき、また等間隔の
量子化を行うことができるという利点がある。また、2
パラメータのため、TABLHを作成した時点で他の操
作なしに、同一直線としての領域の孤立化ができること
も利点である。
範囲をとる。直線の勾配aとy切片すが−ωくaく■、
−ωくρくωの範囲をとり、適当な量子化ができないの
に対し、θとρは一定の範囲に決定でき、また等間隔の
量子化を行うことができるという利点がある。また、2
パラメータのため、TABLHを作成した時点で他の操
作なしに、同一直線としての領域の孤立化ができること
も利点である。
s6.4
以上のよう忙ハフ変換は有利な点があるが、その反面、
直線が原点から遠いと角度による誤差もそれだけ大きく
なるという弱点がある。即ち、第22図において、Lt
が真の直線L1gがストロークから得た直線とし1図示
のような角度の誤差があったとする。同図(alのよう
に原点Oから遠い場合と、同図価)のよう忙近い場合で
は、距離の誤差1ρt1−ρt1 +と1ρt2−ρ、
21は前者の方が大きくなる。従って、TABLE上で
同図(blの場合ならば同一または隣り合うρ値となっ
ても、同図(ム)の場合には離れてしまうことが起こる
。勿論、この誤差そのものがかなり小さいから、ρの量
子化間隔を2sIB程度にすれば、はとんど影響は出な
いが。
直線が原点から遠いと角度による誤差もそれだけ大きく
なるという弱点がある。即ち、第22図において、Lt
が真の直線L1gがストロークから得た直線とし1図示
のような角度の誤差があったとする。同図(alのよう
に原点Oから遠い場合と、同図価)のよう忙近い場合で
は、距離の誤差1ρt1−ρt1 +と1ρt2−ρ、
21は前者の方が大きくなる。従って、TABLE上で
同図(blの場合ならば同一または隣り合うρ値となっ
ても、同図(ム)の場合には離れてしまうことが起こる
。勿論、この誤差そのものがかなり小さいから、ρの量
子化間隔を2sIB程度にすれば、はとんど影響は出な
いが。
それでも可能な限り小さくするのが望ましい。
そこで、次に述べるようなハフ変換の領域の分割を行う
。
。
56.5
第25図に示すように、PLANKの内容忙ついてe
xH)’方向の周辺分布Hx、 l(yをめる。この周
辺分布の0の部分で領域の分割を行う。ただし。
xH)’方向の周辺分布Hx、 l(yをめる。この周
辺分布の0の部分で領域の分割を行う。ただし。
手書き図形ゆえのエラーによる抜けがあり得るので、分
布値0が一定距離以上連続する部分で分割する。
布値0が一定距離以上連続する部分で分割する。
ハフ変換は1分割した各ブロック毎に値を決め。
それをブロックの中心とする。こうすれば、ρ後は最大
でもブロックの対角長の半分となる。以下の処理は、各
ブロック毎に個別に行い、ブロック分けと同時に、その
領域のストロークを選出し。
でもブロックの対角長の半分となる。以下の処理は、各
ブロック毎に個別に行い、ブロック分けと同時に、その
領域のストロークを選出し。
リストに蓄えておく。これを基に56.2に説明したT
ABLEへの展開を行うことになる。
ABLEへの展開を行うことになる。
56.6
以下の処理は、TABLE展開されたストローク長の和
のデータを基に、同一直線に含まれるストロークを抽出
するものである。
のデータを基に、同一直線に含まれるストロークを抽出
するものである。
同一直線に含まれるストロークのハフ変換は。
“ゆらぎ”と量子化誤差を考慮すると、少な(とも8近
傍に存在する可能性がある。そこで55.2の2端点接
続と同様に、TABI、にと同じ大きさの2次元配列T
ABLE 2にハフ変換の値のある位置を中心に2×2
の領域に色を塗り1色が塗られている領域の色塗りは元
の色を用いることによって。
傍に存在する可能性がある。そこで55.2の2端点接
続と同様に、TABI、にと同じ大きさの2次元配列T
ABLE 2にハフ変換の値のある位置を中心に2×2
の領域に色を塗り1色が塗られている領域の色塗りは元
の色を用いることによって。
8近傍の連結を行う。なお、θが90゛以上の所に色を
塗る場合は、その性質上、θが−751で距離をマイナ
スにした場所となる。θ、ρとも0を中心に、90°と
一75@は隣り合っているわけである。
塗る場合は、その性質上、θが−751で距離をマイナ
スにした場所となる。θ、ρとも0を中心に、90°と
一75@は隣り合っているわけである。
同一色の領域は、同一の直線に含まれるストローク集団
の可能性が高いと考えてよいので、同色領域より抽出し
たストロークで直線を再合成してみる。ただし、次の条
件の場合は、直線の再合成は行わず、別の処理を行う。
の可能性が高いと考えてよいので、同色領域より抽出し
たストロークで直線を再合成してみる。ただし、次の条
件の場合は、直線の再合成は行わず、別の処理を行う。
条件(6−1):θにおいてハフ変換した領域が3区間
以上ある。
以上ある。
条件<6−2):ρにおいてハフ変換した領域が5区間
以上ある。
以上ある。
上記条件(6−1)を満たすのは、第24図に示すよう
な円弧の中心を原点した図形や、原点を中心とした放射
状の図形等である。この場合は。
な円弧の中心を原点した図形や、原点を中心とした放射
状の図形等である。この場合は。
96.9に述べる処理に進む。
条件(6−2)な満たすのは、第25図に示すような非
常に施米間隔の平行線群(ハツチング等)の場合である
。この場合、以下に述べる直線抽出忙適合しないので、
処理はここで終了する。
常に施米間隔の平行線群(ハツチング等)の場合である
。この場合、以下に述べる直線抽出忙適合しないので、
処理はここで終了する。
上記の何れの条件にも該幽しない場合(通常、殆どこの
場合である)1次の56.7以降の処理を行う。
場合である)1次の56.7以降の処理を行う。
56.7
領域内のストロークが単一の直線を構成する場合は、別
に問題はないが、平行に並ぶ2本以上の直線の集まりの
場合(これは、二重線の場合が大部分であろう)も考慮
しなければならない。また。
に問題はないが、平行に並ぶ2本以上の直線の集まりの
場合(これは、二重線の場合が大部分であろう)も考慮
しなければならない。また。
そのようなストロークも連結関係と接続関係があり得、
さらにノ・フ変換誤差によりストロークが抜けてしまっ
ている場合もあり得る。このような抜けたストロ−クン
無視すると、たとえば1本の直線が折れ線になってしま
う場合もある。
さらにノ・フ変換誤差によりストロークが抜けてしまっ
ている場合もあり得る。このような抜けたストロ−クン
無視すると、たとえば1本の直線が折れ線になってしま
う場合もある。
以上のような様々のケースを考慮し、また処理効率を上
げられるように、以下のストロークの並べ換えを行う。
げられるように、以下のストロークの並べ換えを行う。
ストロークを座標の小さい順に並べ換える。この時、X
座標とym標のどちらを用いるかは、ノ〜フ変換のθに
よって決める。θが一75@〜−601または451へ
90″ならば0座標、θが一451〜60@ならばy座
標を用いる。つまり、変化率の大きい方の座標を用いる
わけであるgここでは、X座標を用いると仮定して説明
を進める。
座標とym標のどちらを用いるかは、ノ〜フ変換のθに
よって決める。θが一75@〜−601または451へ
90″ならば0座標、θが一451〜60@ならばy座
標を用いる。つまり、変化率の大きい方の座標を用いる
わけであるgここでは、X座標を用いると仮定して説明
を進める。
X座標の小さい順に並べ換えたストロークについて、そ
の順に以下の処理を行う。
の順に以下の処理を行う。
まず1番目のストロークAの値を、1本目の直線用の1
次元配列pLN5−1(初期値は0)のそのX座標に対
応する位置に入れる(第26図(at参照)。2番目以
降のストローク値の書き込みでは、それ以前に書き込ま
れているストロークとの対応関係を調べる。・ たとえば、ストロークBの小座標端(X座標の小さい方
の端点〕の座標位置におけるPLN!lの値が0の場合
、ストロークBとストロークAの接続関係を調べる。接
続関係にあれば、第26図(fitに示すように、スト
ロークAの大座標端(X座標の大きい方の端点)より、
ストロークBの値を入れる。ストロークの抜けがあり、
ストロークAとBがTABLE上の領域内にはないスト
ロークCと両者とも連結または接続している場合は、第
26図(01に示すように、ストロークBの値を書き込
む。
次元配列pLN5−1(初期値は0)のそのX座標に対
応する位置に入れる(第26図(at参照)。2番目以
降のストローク値の書き込みでは、それ以前に書き込ま
れているストロークとの対応関係を調べる。・ たとえば、ストロークBの小座標端(X座標の小さい方
の端点〕の座標位置におけるPLN!lの値が0の場合
、ストロークBとストロークAの接続関係を調べる。接
続関係にあれば、第26図(fitに示すように、スト
ロークAの大座標端(X座標の大きい方の端点)より、
ストロークBの値を入れる。ストロークの抜けがあり、
ストロークAとBがTABLE上の領域内にはないスト
ロークCと両者とも連結または接続している場合は、第
26図(01に示すように、ストロークBの値を書き込
む。
このような処理を行うのは、第27図(alに示すよう
なストロークA、B、Oのうち、ストロークA。
なストロークA、B、Oのうち、ストロークA。
Bが同一直線にあるとみなされ、ストロークCだけが別
とみなされるような不条理を避けるためである。ただし
、同図(blに示すストロークO,Dの場合のように、
2本(または3本以上)のストロークが抜けた場合は、
−直線とみなす必要はないので、このような処理は行わ
ない。以上の何れの関係もなければ、第26図(alに
示すよ5&C,ストロークBの値を、そのX座標に対応
する位置に書き込む。
とみなされるような不条理を避けるためである。ただし
、同図(blに示すストロークO,Dの場合のように、
2本(または3本以上)のストロークが抜けた場合は、
−直線とみなす必要はないので、このような処理は行わ
ない。以上の何れの関係もなければ、第26図(alに
示すよ5&C,ストロークBの値を、そのX座標に対応
する位置に書き込む。
ストロークBの小座標端に対応するPLN3−1の位置
の値が0でない場合も、ストロークAとの関係を調べる
。ストロークA、Bが連結または接続していれば、第2
6図(61に示すように、ストロークBの小座標端から
大座標端に対応する領域に値を入れる。連結または接続
関係がなければ、各ストロークは平行した別の直線に属
する場合である。この場合、ストロークBの値は別の配
列PLN5−2に書き込む(第26図(fl参照)。実
は、ここで用いる配列はPI、N!l−1、PLN3−
2.PLN3−3の3本があり、3本までの平行した直
線のストロークの分類を可能としている。
の値が0でない場合も、ストロークAとの関係を調べる
。ストロークA、Bが連結または接続していれば、第2
6図(61に示すように、ストロークBの小座標端から
大座標端に対応する領域に値を入れる。連結または接続
関係がなければ、各ストロークは平行した別の直線に属
する場合である。この場合、ストロークBの値は別の配
列PLN5−2に書き込む(第26図(fl参照)。実
は、ここで用いる配列はPI、N!l−1、PLN3−
2.PLN3−3の3本があり、3本までの平行した直
線のストロークの分類を可能としている。
この制限を越えるようなストロークを予めリジェクトす
るために、前述のようにρの区間を制限したのである。
るために、前述のようにρの区間を制限したのである。
以上のようにしてPI、N3−1へ3−3に得られたも
のが、最終的に直線として抽出されるものの原直線であ
る。
のが、最終的に直線として抽出されるものの原直線であ
る。
86.8
PLN3−1へ5−3(PLN3と略記する)を、第2
8図に示すように、先頭からスキャンすることにより、
1本の直線に含まれるストロークのリストを取り出す。
8図に示すように、先頭からスキャンすることにより、
1本の直線に含まれるストロークのリストを取り出す。
途中、空白がな(連続して値があるストローク群は同一
直線である。このよ5iCして、n番目の直線候補のス
トロークのリストが得られるが、これが真に直線の条件
を満たしているか調べる必要がある。何故ならば1円弧
の一部も直線候補となり得るからである。
直線である。このよ5iCして、n番目の直線候補のス
トロークのリストが得られるが、これが真に直線の条件
を満たしているか調べる必要がある。何故ならば1円弧
の一部も直線候補となり得るからである。
この判定は以下のようにして行われる。
まず、直線候補の全長L& と、それに含まれるストロ
ークの平均長LIIlを出す。La>Lat(Latは
閾値)で、かつLm > Lm t (Lmtは閾値)
であれば、直線と判定する。この条件を満足しない場合
1円弧の一部の可能性が高い。
ークの平均長LIIlを出す。La>Lat(Latは
閾値)で、かつLm > Lm t (Lmtは閾値)
であれば、直線と判定する。この条件を満足しない場合
1円弧の一部の可能性が高い。
直線と判定された直線候補をn番目の直線として、リス
) LNLISTにストロークの情報を入れる。この時
、直線の始、終点にあたるストロークについては、その
端点のどちらが始、終点であるかも同リストに書き込む
。
) LNLISTにストロークの情報を入れる。この時
、直線の始、終点にあたるストロークについては、その
端点のどちらが始、終点であるかも同リストに書き込む
。
以上の処理を全ての領域について行い、直線のリストを
得る。なお、直線として抽出されたストロークにはマー
クを付け、後述の円弧、破線の抽出処理の対象から除外
する。
得る。なお、直線として抽出されたストロークにはマー
クを付け、後述の円弧、破線の抽出処理の対象から除外
する。
56.9
86.4に述べた処理から除外された領域(θの区間が
大きい)については、以下のような処理を行う。
大きい)については、以下のような処理を行う。
その領域に含まれるストロークをリストに蓄えておき、
ブロック内の他の領域がすべて終わった後、新たにハフ
変換を行ってTABLHを得る。この場合のハフ変換の
原点としては、その領域内のストロークの最小のx r
ym標で決まる点を用いる。このようにして得た新た
なTABLEで、S6.8に述べたと同様の処理を行い
、ストロークより直線のリストを得る。
ブロック内の他の領域がすべて終わった後、新たにハフ
変換を行ってTABLHを得る。この場合のハフ変換の
原点としては、その領域内のストロークの最小のx r
ym標で決まる点を用いる。このようにして得た新た
なTABLEで、S6.8に述べたと同様の処理を行い
、ストロークより直線のリストを得る。
56.10
直線を一意に表現するために必要な4つのパラメータ、
つまり始点と終点のx+1座標をめる。
つまり始点と終点のx+1座標をめる。
谷直線のリストには、直線に含まれるストロークのデー
タが入っているので、そのデータより近似直線の方程式
を得られる。しかし、この方程式からは、直線の勾配と
y切片しか得られず、上記のパラメータは得られない。
タが入っているので、そのデータより近似直線の方程式
を得られる。しかし、この方程式からは、直線の勾配と
y切片しか得られず、上記のパラメータは得られない。
そこで、近似した直線ににいて%Xの変化量とyの変化
量を調べる(勾配が一45°べ45°の範囲内か否かを
調べる)。この変化量の大きい方のデータは正しいデー
タとみなせ、これはストロークのデータより得られるの
で、他方の座標を直線の方程式よりめる。このようにし
て得た始、M点の座標を、以降のセグメントの計算に用
いる。
量を調べる(勾配が一45°べ45°の範囲内か否かを
調べる)。この変化量の大きい方のデータは正しいデー
タとみなせ、これはストロークのデータより得られるの
で、他方の座標を直線の方程式よりめる。このようにし
て得た始、M点の座標を、以降のセグメントの計算に用
いる。
く円弧抽出〉
97.1
直線の抽出に用いられたストローク以外のストロークに
ついて、以下の処理を行なうことにより。
ついて、以下の処理を行なうことにより。
円弧要素を抽出する。
この場合、直線の場合のようなハフ変換によるTABL
E作成は行なわない。ハフ変換というのは本来、実空間
よりパラメータ空間へ移す変換であるため、別に直線で
ある必要はなく、円弧の場合は中心(xot yg)、
半径rの3つのパラメータへと移される。直線の場合は
パラメータが2つであったため、2次元TABLI!で
すむが1円弧の場合はパラメータが5つであるため、3
次元TABLEを用いなければならず、莫大なメモリ領
域が必要になる。さらに直線の場合、ストロークが近似
した直線付近にほぼ集まるくらいの精度の図であると予
想されるが1円弧の場合、描き方によっては近似円弧に
ほとんどのらない場合も多いと考えられる。本実施例は
、細円のみについて行なったが。
E作成は行なわない。ハフ変換というのは本来、実空間
よりパラメータ空間へ移す変換であるため、別に直線で
ある必要はなく、円弧の場合は中心(xot yg)、
半径rの3つのパラメータへと移される。直線の場合は
パラメータが2つであったため、2次元TABLI!で
すむが1円弧の場合はパラメータが5つであるため、3
次元TABLEを用いなければならず、莫大なメモリ領
域が必要になる。さらに直線の場合、ストロークが近似
した直線付近にほぼ集まるくらいの精度の図であると予
想されるが1円弧の場合、描き方によっては近似円弧に
ほとんどのらない場合も多いと考えられる。本実施例は
、細円のみについて行なったが。
楕円を用いてより近似させようとすると、さらにパラメ
ータが増えてしまう。また、直線の場合。
ータが増えてしまう。また、直線の場合。
ストローク1本でもハフ変換は可能であったが、円弧で
は連結する2本のストローク(接続の場合は誤差が大き
すぎる)が必要である。このようなことから1円弧抽出
でのハフ変換使用はためられれる。実際、ハフ変換を行
ない値をめてみたところ、TABI、E上のバラツキが
大きすぎ、同一円弧のストローク抽出は不可能であった
。
は連結する2本のストローク(接続の場合は誤差が大き
すぎる)が必要である。このようなことから1円弧抽出
でのハフ変換使用はためられれる。実際、ハフ変換を行
ない値をめてみたところ、TABI、E上のバラツキが
大きすぎ、同一円弧のストローク抽出は不可能であった
。
このようなことから1円弧抽出にはハフ変換を行わずス
トロークの相対関係を用いて円弧の要素を抽出する。こ
こで円弧のjJ!素とは、円弧を構成する連結したスト
ローク群のことである。
トロークの相対関係を用いて円弧の要素を抽出する。こ
こで円弧のjJ!素とは、円弧を構成する連結したスト
ローク群のことである。
まず、あるストロークAがある場合、その始点について
連結するストロークの有無を調べる。ここで、ストロー
クBが連結しているとする。この両者について、83.
5でめられている00BINとDIRICOTの値を取
り出す。円弧であればGO8INは一定の閾値CtO8
IN、以下であると考えられる(つまり、急激な変化は
しない)。ここでは、008IN=ooa 15Q°と
する。
連結するストロークの有無を調べる。ここで、ストロー
クBが連結しているとする。この両者について、83.
5でめられている00BINとDIRICOTの値を取
り出す。円弧であればGO8INは一定の閾値CtO8
IN、以下であると考えられる(つまり、急激な変化は
しない)。ここでは、008IN=ooa 15Q°と
する。
cosxn<cosxN、H□8の場合、DIRECT
について進行方向に右回り、左回りのいずれであるかを
調べる。仮に右回りとして説明を進める。
について進行方向に右回り、左回りのいずれであるかを
調べる。仮に右回りとして説明を進める。
この場合、A−Bは、右回りの円弧要素であるといえる
。
。
次にストロークBの反対側の端点について、同様の処理
を行なう。ここでストロークCが連結しており、その連
結点にてcosxu<aosxs、であり、さらに右回
りである場合、A−B−0は同一の円弧要素であると考
え、ストロークCの反対側の端点について同様の処理を
進め1行((第29図tar参照)。
を行なう。ここでストロークCが連結しており、その連
結点にてcosxu<aosxs、であり、さらに右回
りである場合、A−B−0は同一の円弧要素であると考
え、ストロークCの反対側の端点について同様の処理を
進め1行((第29図tar参照)。
逆にそれが、左回りであるときは、もはや同一の円弧要
素ではないため、ストロークBまででストロークの追跡
を終了する(第29図(b)参照)。
素ではないため、ストロークBまででストロークの追跡
を終了する(第29図(b)参照)。
また、連結するストロークがなかったり、0OBXN)
008IN の場合も追跡を終了する(第29図(0)
参照)。
008IN の場合も追跡を終了する(第29図(0)
参照)。
ストロ−・りAの始点側の追跡が移わると、同様に終点
側の追跡を行なう。この場合、方向性はすでに決まって
いるため1反対の方向性、すなわち左回りの連結するス
トロークを捜す。その様なストロークDがあれば続けて
追跡を行ない、その様なストロークがな(なれば追跡を
終了する。
側の追跡を行なう。この場合、方向性はすでに決まって
いるため1反対の方向性、すなわち左回りの連結するス
トロークを捜す。その様なストロークDがあれば続けて
追跡を行ない、その様なストロークがな(なれば追跡を
終了する。
以上のようにして、連結するストロークによる円弧要素
を全てみつける。
を全てみつける。
なお、ストロークを追跡していって、始発ストロークに
戻った場合は、そこで追跡を終える。これは、円の場合
である。
戻った場合は、そこで追跡を終える。これは、円の場合
である。
また、始発ストロークAに関し方向性が2通りある場合
も追跡が可能である(第30−参照)。
も追跡が可能である(第30−参照)。
ただし、第31図に示すように同一方向性の連結ストロ
ークが2本以上ある場合は追跡不可能であり1円弧の判
断ができない。
ークが2本以上ある場合は追跡不可能であり1円弧の判
断ができない。
57.2
以上のようにして抽出した円弧要素の接続を行なう。こ
の接続は、方向性の異なる円弧の接続と、連結していな
い円弧の補正による接続がある。
の接続は、方向性の異なる円弧の接続と、連結していな
い円弧の補正による接続がある。
まず、各円弧要素の姑、終端において、他の円弧の始、
終端に接続するものがあるか、又は、始。
終端に接続するものがあるか、又は、始。
終ストロークと他の始、終ストロークが同一のものがあ
るかを調べる。補正接続による場合は、さら忙、その2
ストロ一ク間の差角θをめ1円弧とみなしうる角での曲
がりにあるのかを調べてから、接続するかどうかを決定
する(第62図参照)。
るかを調べる。補正接続による場合は、さら忙、その2
ストロ一ク間の差角θをめ1円弧とみなしうる角での曲
がりにあるのかを調べてから、接続するかどうかを決定
する(第62図参照)。
これを全ての円弧要素について行ない、接続関係より円
弧9素の並べ換えを行なう(第63図参照)。
弧9素の並べ換えを行なう(第63図参照)。
このようにして得られた円弧要素列が、全て方向性が同
じであれば、それは円弧であるといえる。
じであれば、それは円弧であるといえる。
また1つでも異なるものがあれば、これは円弧とみなせ
ず、自由曲線と分類される。自由曲線はパラメータを得
られないため、そのストロークのリストだけをもち、円
弧についてのみ次の87.3に述べる処理を進める。
ず、自由曲線と分類される。自由曲線はパラメータを得
られないため、そのストロークのリストだけをもち、円
弧についてのみ次の87.3に述べる処理を進める。
57.3
円の場合、パラメータとして、中心(xg、y、)入手
後rをめる。円弧の場合は、さらに始、終角まず、円の
場合について説明すると、円の方程式 %式%) ) 結ぶ円のパラメータを得るには X11:xl−x2X21−x1+x2X12=x1−
x3x22=X1+x5Y11 ==y1”2 Y21
”””1 +y2Y12=3’l ’5 Y22=V
1+Ysである。
後rをめる。円弧の場合は、さらに始、終角まず、円の
場合について説明すると、円の方程式 %式%) ) 結ぶ円のパラメータを得るには X11:xl−x2X21−x1+x2X12=x1−
x3x22=X1+x5Y11 ==y1”2 Y21
”””1 +y2Y12=3’l ’5 Y22=V
1+Ysである。
この3点としては、連結する2ストロークの3をめるわ
けである。ここで、接続関係を用いないのは、誤差が大
きすぎ、全く異なるパラメータ値となる可能性があるか
らである。
けである。ここで、接続関係を用いないのは、誤差が大
きすぎ、全く異なるパラメータ値となる可能性があるか
らである。
円弧に含まれる全てのストロークに関し上記の計算を行
ない、 Xg、’)’Os rの平均xMo、yM0.
rMを出し、これを最終的にこの円弧のパラメータ5x
QtVo+rとする。
ない、 Xg、’)’Os rの平均xMo、yM0.
rMを出し、これを最終的にこの円弧のパラメータ5x
QtVo+rとする。
上述のように、弧の場合は始、終角が必要となるので1
次に円弧が円であるか弧であるかを、ストロークの連結
、接続関係を用いて判定する。
次に円弧が円であるか弧であるかを、ストロークの連結
、接続関係を用いて判定する。
弧と判別されたものについて始、終角をめるのであるが
1円弧を描く時の角の回転方向により同じ始、終角でも
異なる弧となるため、ここではストロークの差角θが増
加方向のみであるものを弧とする(第65図参照)。
1円弧を描く時の角の回転方向により同じ始、終角でも
異なる弧となるため、ここではストロークの差角θが増
加方向のみであるものを弧とする(第65図参照)。
さて、弧の両端のうち、どちらが飴色、終角にあたるか
を円弧のストロークの方向性で調べる。
を円弧のストロークの方向性で調べる。
即ち、始端のストロークから次のストロークへの方向性
が左回りなら飴色、右回りなら終角である(第36図参
照)。
が左回りなら飴色、右回りなら終角である(第36図参
照)。
具体的な処理は以下の通りである(第37図参照)。円
弧のリストを飴色から終角へと並べ換え。
弧のリストを飴色から終角へと並べ換え。
始、終角なストロークの端点のデータから得る。
飴色θ、について考えると、これは原点”01 ’10
)からCx、+y1)への角であるため め、(x、−xo)が負の場合はθ、二〇、十πとする
。
)からCx、+y1)への角であるため め、(x、−xo)が負の場合はθ、二〇、十πとする
。
同様に終角θ2は
でめる。
これでθ、と02が得られたわけであるが、場合によっ
てはθ、〉020時が出て(る。ところが、θは必ず増
加方向にあり、それに合わせた始、終角であるため、そ
のよ5なθ2の値は不適当である。
てはθ、〉020時が出て(る。ところが、θは必ず増
加方向にあり、それに合わせた始、終角であるため、そ
のよ5なθ2の値は不適当である。
これは角度が2πごEに巡回しているためになった結果
で、その場合はθ2=02+2πとして補正する。
で、その場合はθ2=02+2πとして補正する。
これで円の場合のパラメータ(xg+YoLr*弧の場
合のパラメータ(x(、syg)、r、θ1.θ2が得
られた。
合のパラメータ(x(、syg)、r、θ1.θ2が得
られた。
く破線抽出シ
58.1
上記のく破線要素抽出〉の処理において、まず第1回目
の破線要素抽出を行なった。この時の条件(4−2)
、 (4−2ンは、接続関係補正のエラーを防ぐために
も必要なことであった。この処理で破線要素の大部分は
得られているのであるが。
の破線要素抽出を行なった。この時の条件(4−2)
、 (4−2ンは、接続関係補正のエラーを防ぐために
も必要なことであった。この処理で破線要素の大部分は
得られているのであるが。
それ以外に、選にもれてそれ以後の直線1円弧の抽出に
用いられ、結局は残ったストロークがある。
用いられ、結局は残ったストロークがある。
それらのストロークのうちから破線要素とみなせるもの
を取り出し、以下の破線抽出の処理に用いる。
を取り出し、以下の破線抽出の処理に用いる。
その条件とは1条件(4−2) 、 (4−3)をわず
かにゆるくしたもので 条件(8−1):長さが一足値以下 条件(8−2):片方の端が弧立 である。条件(8−1)は、破線要素である以上。
かにゆるくしたもので 条件(8−1):長さが一足値以下 条件(8−2):片方の端が弧立 である。条件(8−1)は、破線要素である以上。
必ず一定値以下の長さのストロークであろうと予想され
るためである。条件(8−2)は、破線要素であるにも
かかわらず、何らかの作画の状態により端が他のストロ
ークと連結してしまった場合があるからである(第58
図参照)。この様な場合も、当然、破線要素とみなす必
要があるため、ここで要素の選出を行なうのである。
るためである。条件(8−2)は、破線要素であるにも
かかわらず、何らかの作画の状態により端が他のストロ
ークと連結してしまった場合があるからである(第58
図参照)。この様な場合も、当然、破線要素とみなす必
要があるため、ここで要素の選出を行なうのである。
なお1両端が他のストロークに連結しているものは、要
素としては考えない。
素としては考えない。
ここで選出したストロークと、前回のく破線要素抽出〉
で選出したストロークを用いて、以下の破線抽出を行う
。
で選出したストロークを用いて、以下の破線抽出を行う
。
58.2
破線の抽出にあたっても、ハフ変換を用いる。
ハフ変換は直線なθとρというパラメータで示すため、
連結していない切れた線分であろうと、その直線上にの
っている限り同じバラメーク値を導き出せる。これは破
線に関して、非常に便利な性質といえる。
連結していない切れた線分であろうと、その直線上にの
っている限り同じバラメーク値を導き出せる。これは破
線に関して、非常に便利な性質といえる。
破線要素はほぼ、それらの破線の線上忙のっていると考
えられるので、2ストロークの中点を結んだ直線のハフ
変換を行なう(第59図参照)。
えられるので、2ストロークの中点を結んだ直線のハフ
変換を行なう(第59図参照)。
これは、直線の場合と同様に、個々のストロークでは誤
差が太き過ぎる・ので、2ストロークで平均化を行って
誤差を減らすことを意図している。破線の場合には、4
!r要素を描く時に各人の癖等のため要素自体に破線と
は異なる角がついていたりすると・同一の破線に属する
要素なるものが得られないからである。
差が太き過ぎる・ので、2ストロークで平均化を行って
誤差を減らすことを意図している。破線の場合には、4
!r要素を描く時に各人の癖等のため要素自体に破線と
は異なる角がついていたりすると・同一の破線に属する
要素なるものが得られないからである。
さて、このハフ変換を行なう2ストロークであるが、直
線の場合は連結したストロークと限定されていたが、今
回は全て離れているものとして考えなければならいので
、一応全ストロークの総あたりを行なう必要がある。た
だし、ハフ変換に時間のかかるarctan の計算が
あるため、できるだけベアのストロークの数を限定した
い。
線の場合は連結したストロークと限定されていたが、今
回は全て離れているものとして考えなければならいので
、一応全ストロークの総あたりを行なう必要がある。た
だし、ハフ変換に時間のかかるarctan の計算が
あるため、できるだけベアのストロークの数を限定した
い。
そこで、ストローク中点間の距離が一定値内でのストロ
ークのベアの4について、変換を行なう。
ークのベアの4について、変換を行なう。
この変換を行なうベアは、同一破線の隣り合うストロー
クのみについて行なえば充分である。これは、遠い距離
のものは、別の破線忙属している可能性が強いからであ
る。また、遠い距離同志の要素のハフ変換のθは、はぼ
近い値に出てしまいエラーが起こりやすいがらである。
クのみについて行なえば充分である。これは、遠い距離
のものは、別の破線忙属している可能性が強いからであ
る。また、遠い距離同志の要素のハフ変換のθは、はぼ
近い値に出てしまいエラーが起こりやすいがらである。
この距離による制限に因り、変換を行なうベアの数は大
幅に減る。理論的忙は、ストローク数をnとすると、総
当たりの場合 n(n−1) N、 = ・・・(7) でほぼn2に比例して大きくなる。距離による制限を用
いると(距離計算自身は上記の数だけ行なう必要がある
が、距離計算自身の計算時間は短く、ハフ変換のa r
e tan に多くの時間をとられると考えられるため
、一応、距離計算の時間そのものは無視しておく) 2 ・・・(8) ですむであろう(これは、計算されるのが隣り合うスト
ローク0ペアがほとんどであるとの仮定に基づいている
)。
幅に減る。理論的忙は、ストローク数をnとすると、総
当たりの場合 n(n−1) N、 = ・・・(7) でほぼn2に比例して大きくなる。距離による制限を用
いると(距離計算自身は上記の数だけ行なう必要がある
が、距離計算自身の計算時間は短く、ハフ変換のa r
e tan に多くの時間をとられると考えられるため
、一応、距離計算の時間そのものは無視しておく) 2 ・・・(8) ですむであろう(これは、計算されるのが隣り合うスト
ローク0ペアがほとんどであるとの仮定に基づいている
)。
さて、ハフ変換を行なった結果として、まだストローク
・ベアのうちには適切でないものが含まれている。これ
は、直線の場合の2ストロ一ク間の角に対応するもので
ある。そこで、ハフ変換してめた直線と、ストロークと
の角θ1.θ2が一定値内のベアのみ有効とする(第4
0図参照)。
・ベアのうちには適切でないものが含まれている。これ
は、直線の場合の2ストロ一ク間の角に対応するもので
ある。そこで、ハフ変換してめた直線と、ストロークと
の角θ1.θ2が一定値内のベアのみ有効とする(第4
0図参照)。
このような条件を設定するのは、例えば交差する2本の
破線において、近い距離となった別の破線に含まれる2
要素が同一の破線とみなされ、変換後の処理に用いられ
るのを防ぐためである。
破線において、近い距離となった別の破線に含まれる2
要素が同一の破線とみなされ、変換後の処理に用いられ
るのを防ぐためである。
以上の2条件(距離と角)によって適当であると認めら
れたストローク0ペアについて、θ−pTABLIE上
に値を入れる。ただし、今回は直線の場合の長さの総和
ではなく、ベア数の総和を用いる。
れたストローク0ペアについて、θ−pTABLIE上
に値を入れる。ただし、今回は直線の場合の長さの総和
ではなく、ベア数の総和を用いる。
なお、量子化間隔なθは151.ρは51mとした。
直線の場合より、ρが大きいのはバラツキがそれだけ大
きいためである。また、原点としては、破線要素の座標
の最大・最小の中点を用いた。
きいためである。また、原点としては、破線要素の座標
の最大・最小の中点を用いた。
88.6
TABLE):IC展開されたストローク−ベア数より
、同一の破線に含まれるストロークを抽出する。
、同一の破線に含まれるストロークを抽出する。
その方法は、直線の場合とほとんど同じであるが。
長さの代わりにベア数を用いる点が異なっている。
まずTABLE上において、ベア数が2以上のものにつ
いて2×2領域に色を塗るという処理を行なう。ベア数
が1の場合、はとんどがエラーである場合が多く、また
TABLE上でのバラツキが大きく、1以上の場所につ
いて色を塗ると、別の破線を同一とみなすというエラー
が起こりゃすいため、この様な制限を設けた。この様に
しても必要なスト日−りの抜けがほとんどない。これは
、ハフ変換をベアで行なっているので、情報の冗長が大
きく、ダブっているストロークが多いためである。
いて2×2領域に色を塗るという処理を行なう。ベア数
が1の場合、はとんどがエラーである場合が多く、また
TABLE上でのバラツキが大きく、1以上の場所につ
いて色を塗ると、別の破線を同一とみなすというエラー
が起こりゃすいため、この様な制限を設けた。この様に
しても必要なスト日−りの抜けがほとんどない。これは
、ハフ変換をベアで行なっているので、情報の冗長が大
きく、ダブっているストロークが多いためである。
つぎに直線と同様の方法で、各破線候補のストロークの
リストを得たあとPLANE 3への書き込みを行なう
。これも直線の場合とほとんど同じであるが、PLAN
E3は1本しかもっていない。それは、破線が近い距@
に2本身上平行にあっても。
リストを得たあとPLANE 3への書き込みを行なう
。これも直線の場合とほとんど同じであるが、PLAN
E3は1本しかもっていない。それは、破線が近い距@
に2本身上平行にあっても。
それらに含まれるストロークがどちらに含まれるかを知
るのは非常に困難であるため、一応、その様な場合はな
いとしているのである。
るのは非常に困難であるため、一応、その様な場合はな
いとしているのである。
PLANK 3に、ストロークの小座標端の小さい方か
ら順に値を入れていくが、その前に、不適当なストロー
クの除去を行なう。交差する破線の場合に入りやすい誤
差のストロークを取り除くために、まず3ストロークが
重なっているものを除く(第41図参照)。エラーはあ
っても1つであろうと考えられるので、中央のストロー
クBを除去する。
ら順に値を入れていくが、その前に、不適当なストロー
クの除去を行なう。交差する破線の場合に入りやすい誤
差のストロークを取り除くために、まず3ストロークが
重なっているものを除く(第41図参照)。エラーはあ
っても1つであろうと考えられるので、中央のストロー
クBを除去する。
次にPLANIC3上に書き込むのであるが、1破線で
は起こらないはずの2ストロークの重なりが起こる場合
がある。その例を第42図に示すが、この場合、A−B
−DとA−0−Dの2つのストロークの列を考え、その
角01.θ2をめ、θ1.θ2のうち180°(つまり
直線〕に近い方のストロークを用いるという処理を行な
う。
は起こらないはずの2ストロークの重なりが起こる場合
がある。その例を第42図に示すが、この場合、A−B
−DとA−0−Dの2つのストロークの列を考え、その
角01.θ2をめ、θ1.θ2のうち180°(つまり
直線〕に近い方のストロークを用いるという処理を行な
う。
この結果、第45図に示す如<、PLANE 3には、
必ず離れて存在するストローク列が現われるようになる
。ここで、各ストロークの間隔が一定値以内のものは、
同一破線にあるものとして、その間をうめてい<(第4
3図の率印)。これにより、1本(或いはそれ以上)の
ストローク群が得られる。そして、PL、ANE3をス
キャンして、連なるストローク列を得、これを破線のス
トローク・リストとする。ただし、このストローク数が
3以下の場合、破線とはしない。
必ず離れて存在するストローク列が現われるようになる
。ここで、各ストロークの間隔が一定値以内のものは、
同一破線にあるものとして、その間をうめてい<(第4
3図の率印)。これにより、1本(或いはそれ以上)の
ストローク群が得られる。そして、PL、ANE3をス
キャンして、連なるストローク列を得、これを破線のス
トローク・リストとする。ただし、このストローク数が
3以下の場合、破線とはしない。
以上の様な直線の場合に比べ粗い方法が許されるのは、
図形全体に占める破線の量は微々たるものであると予想
され、また破線によって図形を描くようなことはないだ
ろうと考えられるからである。
図形全体に占める破線の量は微々たるものであると予想
され、また破線によって図形を描くようなことはないだ
ろうと考えられるからである。
s8.4
破線のパラメータとしては、直線の場合と同様な始、終
点(Xl *Y1) t CX2*V2)のほかに、各
破線要素の長さ11と、破線要素間の空白部の長さ12
をめる(第44図)。
点(Xl *Y1) t CX2*V2)のほかに、各
破線要素の長さ11と、破線要素間の空白部の長さ12
をめる(第44図)。
l、は破線のリストが各破線ごとにあるので、この中の
ストローク長の平均を出すことによりめる。
ストローク長の平均を出すことによりめる。
/2 は破線全体の長さから、ストローク長の和を引い
たものの平均から得られる。
たものの平均から得られる。
く直線抽出(2)〉
59.1
ここまでに直線、円弧、破線のいずれKも用(られなか
りたストロークの中に直線とみなす必要があるものが残
っている可能性がある。それは、両端が、他のストロー
クに、連結しているストロークであり、清書する際に連
結関係より必要とされる。
りたストロークの中に直線とみなす必要があるものが残
っている可能性がある。それは、両端が、他のストロー
クに、連結しているストロークであり、清書する際に連
結関係より必要とされる。
第44図のストロークAなどはその典型的なものである
。このストロークAを無視すると、直線1と直線2の連
結関係が表わせない。従って、この様なストロークも抽
出する必要なのである。
。このストロークAを無視すると、直線1と直線2の連
結関係が表わせない。従って、この様なストロークも抽
出する必要なのである。
ただし、片方の端のみが他のストロークに連結している
もの、さらには両端とも孤立のものは。
もの、さらには両端とも孤立のものは。
性質上無くてもそれはどの影響は出ないと考えられ、こ
れらはエラーとし除去する。
れらはエラーとし除去する。
く清書〉
510.1
ここまでの処理により、直線、円弧、破線をそれぞれ、
パラメータで得た。このうち、接続関係に用いるものは
、直線と弧である。パラメータを得たといっても、これ
らは近似したものの値を得たに過ぎず、各セグメント間
の連結、接続関係は全(考慮されていない。実際の清書
となると、それが重要なわけであり、それらを用いた新
たなパラメータをめる必要がある。
パラメータで得た。このうち、接続関係に用いるものは
、直線と弧である。パラメータを得たといっても、これ
らは近似したものの値を得たに過ぎず、各セグメント間
の連結、接続関係は全(考慮されていない。実際の清書
となると、それが重要なわけであり、それらを用いた新
たなパラメータをめる必要がある。
810.2
弧の場合、パラメータとして飴色座標、終角座標が与え
られていないので、その値を次式にてめる。
られていないので、その値を次式にてめる。
x = xo+ rcoss e
’j = Vg + rsinθ ・・・(9)つぎに
、弧の接続関係を、5TLISTからの情報を用いて得
る。各セグメントの始、終点のストロークの連結・接続
関係を用いることにより、セグメント間の接続のリスト
を作る(第46図参照)。
、弧の接続関係を、5TLISTからの情報を用いて得
る。各セグメントの始、終点のストロークの連結・接続
関係を用いることにより、セグメント間の接続のリスト
を作る(第46図参照)。
!3TLI8TのN、−H,Ic対応する接続、連結両
情報から新たにリストを得る。このリストに含まれる各
ストロークの端点は必ずつながるため、それらが含まれ
るセグメントも同様につながるのである。これによりリ
ストを得、そのうち接続するセグメントが全て端点であ
るものを得る。なお、途中点の接続処理は810.4で
説明する。
情報から新たにリストを得る。このリストに含まれる各
ストロークの端点は必ずつながるため、それらが含まれ
るセグメントも同様につながるのである。これによりリ
ストを得、そのうち接続するセグメントが全て端点であ
るものを得る。なお、途中点の接続処理は810.4で
説明する。
それらの共通の座標を出すため、それらの全ての座標の
x、yの平均を出し、その座標をつながるセグメントの
連結点とする。各セグメントの対応するパラメータをこ
の新たな値にするのであるが、この場合の座標の記憶形
式は′アドレス方式′なるものとする。これは、各パラ
メータ情報部に座標データそのものではなく、その座標
の値を入れたアドレスを記憶させておくのである(第4
7図参照)。この方法を用いると、あるセグメントの値
を変えたとしてADRIC8S自体の値を書き換えるた
め、連結する全てのセグメントの対応する座標の値がか
わったことになる。
x、yの平均を出し、その座標をつながるセグメントの
連結点とする。各セグメントの対応するパラメータをこ
の新たな値にするのであるが、この場合の座標の記憶形
式は′アドレス方式′なるものとする。これは、各パラ
メータ情報部に座標データそのものではなく、その座標
の値を入れたアドレスを記憶させておくのである(第4
7図参照)。この方法を用いると、あるセグメントの値
を変えたとしてADRIC8S自体の値を書き換えるた
め、連結する全てのセグメントの対応する座標の値がか
わったことになる。
このような方法をとるのは、次に述べるパラメータ変換
を行なう際に、再び連結するセグメントを調べ直すとい
う、無駄を省くためである。
を行なう際に、再び連結するセグメントを調べ直すとい
う、無駄を省くためである。
5jO,5
近似して連結した図形を示すだけでは、清書したと見え
ない場合が多い。一般に、人は図形を見る場合に水平、
垂直線に注目する。したがって、清書の効果をあげるた
めには、水平線、垂直線が多(なるように清書するとよ
い。
ない場合が多い。一般に、人は図形を見る場合に水平、
垂直線に注目する。したがって、清書の効果をあげるた
めには、水平線、垂直線が多(なるように清書するとよ
い。
そこで、まず直線の傾きの量子化を行なう。今回は水平
、垂直線についてのみ行うが、これは水平、垂直から一
定角内の傾きであればそれらに量子化しようというもの
であり、その角は156とした。このように決めたのは
、それ以上だと、斜めの線であるはずのものを誤って量
子化する可能性があり、それ以下だと量子化するはずの
ものまでそのまま残してしまうということが起こるから
である。
、垂直線についてのみ行うが、これは水平、垂直から一
定角内の傾きであればそれらに量子化しようというもの
であり、その角は156とした。このように決めたのは
、それ以上だと、斜めの線であるはずのものを誤って量
子化する可能性があり、それ以下だと量子化するはずの
ものまでそのまま残してしまうということが起こるから
である。
さて実際の処理であるが810.2で連結する座標を全
てアドレス方式で記憶させたが、それに用いなかったも
のも全てアドレスで座標を与える様にする。第48図の
ように、中点を中心に回転させて量子化するが、この量
子化により変化させる座標は、水平の場合はy座標のみ
、垂直の場合はX座標のみとする。量子化後の新しい座
標もアドレスで記憶させるのであるが、この場合、当然
同じ値となったX又はy座標は同じアドレスに記憶させ
る必要がある。そこで、変換した値を新しいアドレスに
記憶させ、古いアドレスにはその新しいアドレスの位置
を記憶させておく。その場合、座標値と区別するため負
の値としてお((座標値は全て正である)。その例を第
49図に示す。
てアドレス方式で記憶させたが、それに用いなかったも
のも全てアドレスで座標を与える様にする。第48図の
ように、中点を中心に回転させて量子化するが、この量
子化により変化させる座標は、水平の場合はy座標のみ
、垂直の場合はX座標のみとする。量子化後の新しい座
標もアドレスで記憶させるのであるが、この場合、当然
同じ値となったX又はy座標は同じアドレスに記憶させ
る必要がある。そこで、変換した値を新しいアドレスに
記憶させ、古いアドレスにはその新しいアドレスの位置
を記憶させておく。その場合、座標値と区別するため負
の値としてお((座標値は全て正である)。その例を第
49図に示す。
このようにすれば、関係した等しい値の座標は、全て、
同じアドレスに記憶していることになり。
同じアドレスに記憶していることになり。
以降の処理が簡単になり、また処理時間も短かくてすむ
。
。
510.4
ここでは、接続のりストにあるセグメントの途中のもの
を処理する。なお、弧の場合は、始、終点以外に接続す
るものは今回は除去し、全て直線のみとする。これは計
算や処理の複雑化を避けるためである。
を処理する。なお、弧の場合は、始、終点以外に接続す
るものは今回は除去し、全て直線のみとする。これは計
算や処理の複雑化を避けるためである。
直線の場合、途中の点に接続するものは交゛点をめる必
要がある。例えば、第50図に示す直線A (y =
ax+b)と直線B(y=ox+a)の交点の座標(×
013’O)は −a y w axo+b ”−11Q で得られる。そして、直線Bの端点である方の座標のア
ドレスを、この新しい座標にする。
要がある。例えば、第50図に示す直線A (y =
ax+b)と直線B(y=ox+a)の交点の座標(×
013’O)は −a y w axo+b ”−11Q で得られる。そして、直線Bの端点である方の座標のア
ドレスを、この新しい座標にする。
ただし、この様に連結できない場合として、以下のもの
がある。
がある。
■ 2直線が平行であった場合
■ 交点が端点より遠く離れて得られた場合:これは、
はぼ平行にある2直線において、交点が得られても連結
するには無理があるためである。
はぼ平行にある2直線において、交点が得られても連結
するには無理があるためである。
この様な場合が生ずるのは、前述の接続補正において7
×7領域を調べるため、本来接続してはいけないものを
接続する可能性があるという情報をもっているためであ
る。その様な不適当な場合がここで除かれるわけである
。
×7領域を調べるため、本来接続してはいけないものを
接続する可能性があるという情報をもっているためであ
る。その様な不適当な場合がここで除かれるわけである
。
連結するものが複数個ある場合も、一度交点(xo、y
o)がめると、端点がその座標に一定距離内にあるもの
に限り連結処理を行なう。つまり、第51図(a)に示
す直線A、B、Oを同図(blのように接続する。
o)がめると、端点がその座標に一定距離内にあるもの
に限り連結処理を行なう。つまり、第51図(a)に示
す直線A、B、Oを同図(blのように接続する。
filo、5
ここでは、誤ってパラメータ変換をしてしまった場合の
うち、平行して近い2本の直線を1本に、又は片方の端
点を連結してしまった場合の補正を行なう。さらに1円
弧の新しいパラメータ、破線の角度の量子化を行なう。
うち、平行して近い2本の直線を1本に、又は片方の端
点を連結してしまった場合の補正を行なう。さらに1円
弧の新しいパラメータ、破線の角度の量子化を行なう。
まず、2本の直線が1本になった場合圧ついて説明する
。この場合、始、終点が同じ2本の直線のうちの一方の
直線を強制的に11111平行移動させる。つまり、第
52図(八)に示す重った直線A、Bを同図(blのよ
うに分離させる。ここで、X変化量、y変化量の変化の
少ない方の座標を1鵡大きくした値を新たな座標とする
。
。この場合、始、終点が同じ2本の直線のうちの一方の
直線を強制的に11111平行移動させる。つまり、第
52図(八)に示す重った直線A、Bを同図(blのよ
うに分離させる。ここで、X変化量、y変化量の変化の
少ない方の座標を1鵡大きくした値を新たな座標とする
。
次に、第55図の直線A、Bのようlc2本の直線が始
、終点のうちの一方で連結してしまっている場合は、そ
の角をめ、その角が一定値(6@)より小さければ、2
直線を平行と判断し、第55図(blに示すように分離
させ、連結していない方の距離dを連結している方の座
標に加えて新たなる座標とする。この場合、連結してい
ない端点の位置が多少熱れていても、距離dに及ぼす影
響は小さいと考え無視した。というのは、この様な補正
は、二重線の場合が、はとんどであるため、始。
、終点のうちの一方で連結してしまっている場合は、そ
の角をめ、その角が一定値(6@)より小さければ、2
直線を平行と判断し、第55図(blに示すように分離
させ、連結していない方の距離dを連結している方の座
標に加えて新たなる座標とする。この場合、連結してい
ない端点の位置が多少熱れていても、距離dに及ぼす影
響は小さいと考え無視した。というのは、この様な補正
は、二重線の場合が、はとんどであるため、始。
終点ともかなり近い位置にあると予想されるためである
。
。
なお、第54図の直線A、Bのように、全く重なるKも
かかわらず、始、終点が異なる2直線は補正を行わない
が、これは二重平行線がほとんどないため、入力として
制限をしてもさほど問題はないと考えたからである。
かかわらず、始、終点が異なる2直線は補正を行わない
が、これは二重平行線がほとんどないため、入力として
制限をしてもさほど問題はないと考えたからである。
次に、納たな始、終点座標とした弧のパラメータ変換を
行なう。弧の場合、実際のパラメータは、半径、中心点
、始、終角であるため、lまたにめ直す必要がある。こ
の場合、始、終点座標と半径を用いて、他のパラメータ
を得る。なお、弧の変換は中心点の移動と、始、終角の
回転によりほぼ近い値が得られるものとして、半径は変
化しないと考えた。
行なう。弧の場合、実際のパラメータは、半径、中心点
、始、終角であるため、lまたにめ直す必要がある。こ
の場合、始、終点座標と半径を用いて、他のパラメータ
を得る。なお、弧の変換は中心点の移動と、始、終角の
回転によりほぼ近い値が得られるものとして、半径は変
化しないと考えた。
パラメータの変換式は以下の通りである×1 二Xg
+ roomθ1 y1=yo十r81nθI X2 = xo+rcogθ2 y24Yo+ rainθ2 ・・・aυここで×1+
ylt X2.Y2t rは入力パラメータ%x01
yo、θ1.θ2 は出力バラメークである。
+ roomθ1 y1=yo十r81nθI X2 = xo+rcogθ2 y24Yo+ rainθ2 ・・・aυここで×1+
ylt X2.Y2t rは入力パラメータ%x01
yo、θ1.θ2 は出力バラメークである。
4元方程式を解くと
y1″″y2
2
AA= 1 + A2
BB=2(−X +A (B−yl))oa = x、
+ CB−yl) ry =Axo十B ・・・aS でX。ty(、が得られる。
+ CB−yl) ry =Axo十B ・・・aS でX。ty(、が得られる。
ここでX。ty、)とも根は2つであるため(2点を通
る半径rの円は2つまる)、初めのX。、y。
る半径rの円は2つまる)、初めのX。、y。
の値に近い方を用いる。
次にこのX。、yoを用いてθ1.θ2をめる。
また破線についても、直線と同様に角度の量子化を行な
う。アルゴリズムは、直線の場合と全く同じである。な
お、破線に・ついては、補正は行わない。
う。アルゴリズムは、直線の場合と全く同じである。な
お、破線に・ついては、補正は行わない。
第55図に入力図形の一例を示す。この図を清書した図
を第56図に示す。両図を比較すれば、清書の効果は明
らかであろう。
を第56図に示す。両図を比較すれば、清書の効果は明
らかであろう。
本発明の図面清適処理方式は以上詳述した如くであるか
ら、破線や円弧を含め、はぼ任意の図面に対し従来以上
の品質の渭酋図面を得ることができ、またドツト処理で
ないので比較的小型の計算機によつそ処理を実行可能で
あり、さらに、サブフィギュア単位の入力の場合に比べ
、入力のオフライン化が容易である等の効果を得られる
。
ら、破線や円弧を含め、はぼ任意の図面に対し従来以上
の品質の渭酋図面を得ることができ、またドツト処理で
ないので比較的小型の計算機によつそ処理を実行可能で
あり、さらに、サブフィギュア単位の入力の場合に比べ
、入力のオフライン化が容易である等の効果を得られる
。
第1図および第2図は従来方式の説明図、第6図は本発
明の一実施例による図面清書処理の概略を示す流れ図、
第4図ないし第7図はく連結関係〉の処理を説明するた
めの図、第8図ないし第17図はく接続関係補正〉の処
理を説明するための図、第18図ないし第28図はく直
線抽出(1)〉の処理の図、第29図ないし第37図は
く円弧抽出〉の処理を説明するための図、第68図ない
し第44図はく破線抽出〉の処理を説明するための図、
第45図はく直線抽出(2)〉の処理を説明するための
図、第46図ないし第54図はく清書〉の処理を説明す
るための図、第55図および第56図はそれぞれ入力図
面およびその7#書図面を示す図である。 第1図 第2図 *3図 *11図 第12図 第13図 炒 り 第14図 (α)(b) 第15図 第16図 (θ、) (1,) 第17図 (α)(1)) 第18図 一4F、9− 第19図 第20図 第21図 第22図 (,2−) <b) 第23図 第が図 第25図 第26図(α) 第26図(b) 第26図(c) 第26図(d、) 第26図(e) 第26図(+) 第27図 (α)(トン 第29図 <o−)’ <y) (C) 第32図 e゛〜、 第33図 第M図 第35図 e誠tl θ禰か 第36図 第37因 第38図 /′l 箪39図 策42図 第43図 口]五」工■=[ロ ロロ PLA ME 3第M図
第45図 LNLT5T ’j:If ACLrS7 E正==二
二丁]第47図 第48図 第49図 □□−−−−] to−) ()) 八−(k・す/′ A/ 第52図 第53図 (lス、) (bン 一 第M図
明の一実施例による図面清書処理の概略を示す流れ図、
第4図ないし第7図はく連結関係〉の処理を説明するた
めの図、第8図ないし第17図はく接続関係補正〉の処
理を説明するための図、第18図ないし第28図はく直
線抽出(1)〉の処理の図、第29図ないし第37図は
く円弧抽出〉の処理を説明するための図、第68図ない
し第44図はく破線抽出〉の処理を説明するための図、
第45図はく直線抽出(2)〉の処理を説明するための
図、第46図ないし第54図はく清書〉の処理を説明す
るための図、第55図および第56図はそれぞれ入力図
面およびその7#書図面を示す図である。 第1図 第2図 *3図 *11図 第12図 第13図 炒 り 第14図 (α)(b) 第15図 第16図 (θ、) (1,) 第17図 (α)(1)) 第18図 一4F、9− 第19図 第20図 第21図 第22図 (,2−) <b) 第23図 第が図 第25図 第26図(α) 第26図(b) 第26図(c) 第26図(d、) 第26図(e) 第26図(+) 第27図 (α)(トン 第29図 <o−)’ <y) (C) 第32図 e゛〜、 第33図 第M図 第35図 e誠tl θ禰か 第36図 第37因 第38図 /′l 箪39図 策42図 第43図 口]五」工■=[ロ ロロ PLA ME 3第M図
第45図 LNLT5T ’j:If ACLrS7 E正==二
二丁]第47図 第48図 第49図 □□−−−−] to−) ()) 八−(k・す/′ A/ 第52図 第53図 (lス、) (bン 一 第M図
Claims (1)
- 図面の線のストロークを入力する段階、入力ストローク
の長さをめる段階、入力ストロークの連結関係をめる段
階、入力ストロークの接続関係を補正する段階、入力ス
トロークから破線要素を抽出する段階、入力ストローク
から直線を抽出する段階、入力ストロークから円弧を抽
出する段階、上記破線要素から破線を抽出する段階、抽
出された直線、破線および円弧を用いて清書図面を作成
する段階とを有する図面清書処理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58162922A JPS6055483A (ja) | 1983-09-05 | 1983-09-05 | 図面清書処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58162922A JPS6055483A (ja) | 1983-09-05 | 1983-09-05 | 図面清書処理方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS6055483A true JPS6055483A (ja) | 1985-03-30 |
Family
ID=15763782
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58162922A Pending JPS6055483A (ja) | 1983-09-05 | 1983-09-05 | 図面清書処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6055483A (ja) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6246375A (ja) * | 1985-08-24 | 1987-02-28 | Fujitsu Ltd | 線図形折線パタ−ンの自動整形方式 |
| JPS6366679A (ja) * | 1986-09-09 | 1988-03-25 | Hitachi Ltd | イメ−ジデ−タ処理装置 |
| JPS63103384A (ja) * | 1986-10-20 | 1988-05-09 | Fujitsu Ltd | 線図形自動整形方式 |
| JPS63244029A (ja) * | 1987-03-31 | 1988-10-11 | Fuji Photo Film Co Ltd | 放射線照射野認識方法 |
| JPH06176108A (ja) * | 1992-12-09 | 1994-06-24 | Honda Motor Co Ltd | 立体モデルの作成方法 |
| JPH08255259A (ja) * | 1994-08-12 | 1996-10-01 | Dassault Syst Of America | コンピュータ化された作図方法 |
| US5616905A (en) * | 1994-02-24 | 1997-04-01 | Kabushiki Kaisha Tec | Two-dimensional code recognition method |
-
1983
- 1983-09-05 JP JP58162922A patent/JPS6055483A/ja active Pending
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6246375A (ja) * | 1985-08-24 | 1987-02-28 | Fujitsu Ltd | 線図形折線パタ−ンの自動整形方式 |
| JPS6366679A (ja) * | 1986-09-09 | 1988-03-25 | Hitachi Ltd | イメ−ジデ−タ処理装置 |
| JPS63103384A (ja) * | 1986-10-20 | 1988-05-09 | Fujitsu Ltd | 線図形自動整形方式 |
| JPS63244029A (ja) * | 1987-03-31 | 1988-10-11 | Fuji Photo Film Co Ltd | 放射線照射野認識方法 |
| JPH06176108A (ja) * | 1992-12-09 | 1994-06-24 | Honda Motor Co Ltd | 立体モデルの作成方法 |
| US5616905A (en) * | 1994-02-24 | 1997-04-01 | Kabushiki Kaisha Tec | Two-dimensional code recognition method |
| JPH08255259A (ja) * | 1994-08-12 | 1996-10-01 | Dassault Syst Of America | コンピュータ化された作図方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110047109B (zh) | 一种基于自识别标记的相机标定板及其识别检测方法 | |
| US6859555B1 (en) | Fast dominant circle detection through horizontal and vertical scanning | |
| CN104008359B (zh) | 一种用于qr码识别的精确网格采样方法 | |
| CN115063802B (zh) | 一种基于PSENet的圆形印章识别方法、设备及介质 | |
| CN108573511B (zh) | 点状分布合作编码标志及其识别定位方法 | |
| JPH08305796A (ja) | パターン抽出装置、パターン再認識用テーブル作成装置及びパターン認識装置 | |
| CN102236789A (zh) | 对表格图像进行校正的方法以及装置 | |
| CN109858325A (zh) | 一种表格检测方法和装置 | |
| CN113592923A (zh) | 一种基于深度局部特征匹配的批图像配准方法 | |
| CN111145124A (zh) | 一种图像倾斜的校正方法及装置 | |
| Fan et al. | Automated steel bar counting and center localization with convolutional neural networks | |
| CN1256696C (zh) | 利用限制性随机霍夫变换进行椭圆检测的图像处理方法 | |
| CN109766850B (zh) | 基于特征融合的指纹图像匹配方法 | |
| CN116452809B (zh) | 一种基于语义分割的线条物体提取方法 | |
| CN107123138B (zh) | 基于vanilla-R点对剔除策略的点云配准方法 | |
| CN110826551B (zh) | 一种机动车vin码拓印模图像的智能甄别方法 | |
| CN118015079A (zh) | 光伏组件的定位方法、装置、设备及存储介质 | |
| CN114043111B (zh) | 基于线激光扫描的相贯线结构自动装配方法及系统 | |
| CN121281071A (zh) | 一种基于目标检测的水书文字识别方法及系统 | |
| CN120031791B (zh) | 一种两阶段的刀具表面缺陷检测方法及系统 | |
| CN120913236A (zh) | 钢筋工程图纸的智能识别方法、系统、存储介质及设备 | |
| CN120708238A (zh) | 一种基于图像识别的电子印章文字识别方法 | |
| CN101894154B (zh) | 一种图像文档关键图案的提取方法 | |
| CN109784331B (zh) | 基于标志点的棒材端面标记方案及字符图像矫正方法 | |
| CN115471849B (zh) | 一种手写汉字图像评估方法及系统 |