JPH07104954B2 - 円弧抽出装置 - Google Patents
円弧抽出装置Info
- Publication number
- JPH07104954B2 JPH07104954B2 JP62044112A JP4411287A JPH07104954B2 JP H07104954 B2 JPH07104954 B2 JP H07104954B2 JP 62044112 A JP62044112 A JP 62044112A JP 4411287 A JP4411287 A JP 4411287A JP H07104954 B2 JPH07104954 B2 JP H07104954B2
- Authority
- JP
- Japan
- Prior art keywords
- arc
- candidate
- polygonal
- line
- polygonal 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.)
- Expired - Lifetime
Links
Landscapes
- Image Analysis (AREA)
Description
【発明の詳細な説明】 〔概要〕 この発明は、図形を細線化・折線近似して生成した折線
中から円弧候補を抽出する円弧抽出装置において、細線
化・折線近似された図形の折線のうち円弧に該当する部
分を抽出する際に、1つの円弧として抽出されても実際
は複数の円弧部分を含んでしまう問題や、あるいは実際
は1つの円弧に係わらず複数の円弧に分割されて抽出さ
れてしまう問題を解決するため、1つの円弧候補を構成
する各折線ベクトルの仮半径および仮中心点に基づいて
円弧候補を分割処理すると共に、複数の円弧候補に対す
る夫々の仮半径、仮中心点および端点間の距離に基づい
て円弧候補の結合処理を行うことにより、原図形パター
ンにより厳密で有効な望ましい円弧候補の抽出を行うよ
うにしている。
中から円弧候補を抽出する円弧抽出装置において、細線
化・折線近似された図形の折線のうち円弧に該当する部
分を抽出する際に、1つの円弧として抽出されても実際
は複数の円弧部分を含んでしまう問題や、あるいは実際
は1つの円弧に係わらず複数の円弧に分割されて抽出さ
れてしまう問題を解決するため、1つの円弧候補を構成
する各折線ベクトルの仮半径および仮中心点に基づいて
円弧候補を分割処理すると共に、複数の円弧候補に対す
る夫々の仮半径、仮中心点および端点間の距離に基づい
て円弧候補の結合処理を行うことにより、原図形パター
ンにより厳密で有効な望ましい円弧候補の抽出を行うよ
うにしている。
〔産業上の利用分野〕 本発明は、細線化・折線近似された折線から抽出された
円弧候補に対して更に有効な円弧候補を生成するために
円弧の分割処理および/あるいは結合処理を行うよう構
成した円弧抽出装置に関するものである。
円弧候補に対して更に有効な円弧候補を生成するために
円弧の分割処理および/あるいは結合処理を行うよう構
成した円弧抽出装置に関するものである。
一般に図形読取装置などにおいて、図形を認識させる場
合、細線化などによって得られた図形を構成する線分を
折線近似し、この線分を特徴づけることにより図形認識
を行うようになる。そのためには、図形を構成している
全ての線分に対して特徴点を求め、予め設定した所定値
と比較することによって認識を行う必要がある。
合、細線化などによって得られた図形を構成する線分を
折線近似し、この線分を特徴づけることにより図形認識
を行うようになる。そのためには、図形を構成している
全ての線分に対して特徴点を求め、予め設定した所定値
と比較することによって認識を行う必要がある。
この際、図形を構成している線分の種類が直線か円弧か
円かが予め分かっていれば、認識時に必要な特徴点を減
らしたり、あるいは認識の処理対象を限定したりして処
理速度を向上させることが可能となる。
円かが予め分かっていれば、認識時に必要な特徴点を減
らしたり、あるいは認識の処理対象を限定したりして処
理速度を向上させることが可能となる。
この種の円弧抽出方式として、図形データを既知の方法
で細線化・折線近似して折線データを生成し、この折線
データから円弧部分を構成する折線列を円弧候補として
抽出することが考えられる。しかし、この方式によって
円として抽出された場合でも、本当の円の場合や楕円の
場合が考えられる。また、異なった半径の複数の円弧が
分割し得ず、1つの円弧として抽出されている場合もあ
る。逆に、本当は、1つの円や円弧であるはずの円弧候
補がいくつかの円弧に分割されている場合もある。この
ように、本来の抽出したい円弧候補と異なって非所望の
円弧候補が抽出されてしまうという問題点があった。こ
のため、抽出されている円・円弧候補をもう1度、更に
厳しい条件で分割したり、更に緩い条件で結合したりし
て原図形パターンにより一致した所望の円弧候補を抽出
することが望まれている。
で細線化・折線近似して折線データを生成し、この折線
データから円弧部分を構成する折線列を円弧候補として
抽出することが考えられる。しかし、この方式によって
円として抽出された場合でも、本当の円の場合や楕円の
場合が考えられる。また、異なった半径の複数の円弧が
分割し得ず、1つの円弧として抽出されている場合もあ
る。逆に、本当は、1つの円や円弧であるはずの円弧候
補がいくつかの円弧に分割されている場合もある。この
ように、本来の抽出したい円弧候補と異なって非所望の
円弧候補が抽出されてしまうという問題点があった。こ
のため、抽出されている円・円弧候補をもう1度、更に
厳しい条件で分割したり、更に緩い条件で結合したりし
て原図形パターンにより一致した所望の円弧候補を抽出
することが望まれている。
本発明は、前記問題点を解決するために、折線から抽出
された円弧に対応する円弧候補の折線の仮半径および仮
中心点に基づいて円弧候補を複数に分割する円弧分割処
理部1と、折線から抽出された円弧に対応する複数の円
弧候補について夫々算出した仮半径および仮中心点と、
端点情報とに基づいて1つの円弧あるいは円に結合する
円弧結合処理部2とを設け、円弧候補に対して必要に応
じて分割および/あるいは結合を行って円弧部分を抽出
するようにしている。
された円弧に対応する円弧候補の折線の仮半径および仮
中心点に基づいて円弧候補を複数に分割する円弧分割処
理部1と、折線から抽出された円弧に対応する複数の円
弧候補について夫々算出した仮半径および仮中心点と、
端点情報とに基づいて1つの円弧あるいは円に結合する
円弧結合処理部2とを設け、円弧候補に対して必要に応
じて分割および/あるいは結合を行って円弧部分を抽出
するようにしている。
第1図は本発明の原理構成図を示す。図中円弧分割処理
部1は、折線から抽出された円弧に対応する円弧候補の
折線の仮半径および仮中心点に基づいて円弧候補を分割
するものである。
部1は、折線から抽出された円弧に対応する円弧候補の
折線の仮半径および仮中心点に基づいて円弧候補を分割
するものである。
円弧結合処理部2は、折線から抽出された円弧に対応す
る複数の円弧候補について夫々算出した仮半径および仮
中心点と、端点情報とに基づいて1つの円弧あるいは円
に結合するものである。
る複数の円弧候補について夫々算出した仮半径および仮
中心点と、端点情報とに基づいて1つの円弧あるいは円
に結合するものである。
折線列の円弧データは、細線化・折線近似された折線か
ら円弧候補として粗く抽出された折線列のデータであ
る。
ら円弧候補として粗く抽出された折線列のデータであ
る。
次に、動作を説明する。
第1図において、細線化・折線近似されて生成された折
線のうち、円弧候補として抽出された折線列の円弧デー
タを円弧分割処理部1に入力すると、この円弧分割処理
部1は、円弧候補を構成する折線ベクトルに対して求め
た仮半径、仮中心点に基づいて、円弧候補を複数の円弧
候補に分割処理を行う。また、円弧候補として抽出され
た折線列の円弧データを円弧結合処理部2に入力する
と、この円弧結合処理部2は、複数の円弧候補を構成す
る折線列に対して求めた仮半径、仮中心点と、端点とに
基づいて、複数の円弧候補を1つの円弧候補に結合処理
を行う。これら分割処理と結合処理とは、相互に独立に
行うことが可能である。
線のうち、円弧候補として抽出された折線列の円弧デー
タを円弧分割処理部1に入力すると、この円弧分割処理
部1は、円弧候補を構成する折線ベクトルに対して求め
た仮半径、仮中心点に基づいて、円弧候補を複数の円弧
候補に分割処理を行う。また、円弧候補として抽出され
た折線列の円弧データを円弧結合処理部2に入力する
と、この円弧結合処理部2は、複数の円弧候補を構成す
る折線列に対して求めた仮半径、仮中心点と、端点とに
基づいて、複数の円弧候補を1つの円弧候補に結合処理
を行う。これら分割処理と結合処理とは、相互に独立に
行うことが可能である。
以上のように、細線化・折線近似されて生成された折線
のうち、粗く円弧として抽出された折線の円弧候補に対
して更に厳密な円弧分割処理および/あるいは円弧結合
処理を施すことにより、原図形パターンにより一致した
所望の円弧候補を抽出することが可能となる。
のうち、粗く円弧として抽出された折線の円弧候補に対
して更に厳密な円弧分割処理および/あるいは円弧結合
処理を施すことにより、原図形パターンにより一致した
所望の円弧候補を抽出することが可能となる。
次に、第1図ないし第7図を用いて本発明の1実施例の
構成および動作を詳細に説明する。
構成および動作を詳細に説明する。
第2図を用いて本発明の動作の概略をまず説明する。図
中ないしは第1図円弧分割処理部1によって実行さ
れる処理を示し、図中ないしは円弧結合処理部2に
よって実行される処理を示す。
中ないしは第1図円弧分割処理部1によって実行さ
れる処理を示し、図中ないしは円弧結合処理部2に
よって実行される処理を示す。
第2図図中は、円弧候補を抽出する状態を示す。これ
は、例えば第8図ないし第12図を用いて後述するよう
に、図形を細線化・折線近似して折線を生成し、この生
成した折線からの円弧を構成する折線列を抽出したもの
である。この抽出した円弧候補は、第11図円弧候補ベク
トルテーブルに登録する。
は、例えば第8図ないし第12図を用いて後述するよう
に、図形を細線化・折線近似して折線を生成し、この生
成した折線からの円弧を構成する折線列を抽出したもの
である。この抽出した円弧候補は、第11図円弧候補ベク
トルテーブルに登録する。
図中は、仮半径・仮中心点を求める状態を示す。これ
は、第3図を用いて詳述するように、円弧候補を構成す
る折線列に対して仮半径および仮中心点を算出すること
を意味している。
は、第3図を用いて詳述するように、円弧候補を構成す
る折線列に対して仮半径および仮中心点を算出すること
を意味している。
図中は、円と楕円の分割を行う状態を示す。これは、
閉ループとなる円弧候補(円あるいは楕円)に対して図
中で求めた仮半径および仮中心点に基づいて分割処理
例えば楕円を円部分と直線部分とに分割することを意味
している。
閉ループとなる円弧候補(円あるいは楕円)に対して図
中で求めた仮半径および仮中心点に基づいて分割処理
例えば楕円を円部分と直線部分とに分割することを意味
している。
図中は、円弧の分割を行う状態を示す。これは、図中
で求めた円弧候補を構成する各折線ベクトルの仮半径
および仮中心点に基づいて、1つの円弧を2つの円弧に
分割することを意味している。
で求めた円弧候補を構成する各折線ベクトルの仮半径
および仮中心点に基づいて、1つの円弧を2つの円弧に
分割することを意味している。
図中は、図中および図中で分割された円弧候補を
円弧候補ベクトルテーブルに登録する状態を示す(第11
図を用いて後述する)。
円弧候補ベクトルテーブルに登録する状態を示す(第11
図を用いて後述する)。
図中は、仮半径、仮中心点のずれと、端点間の距離と
による結合を行う状態を示す。これは、複数の円弧候補
に対して夫々求めた仮半径および仮中心点と、これら両
者の端点の距離差とに基づいて、1つの円弧候補に結合
することを意味している。
による結合を行う状態を示す。これは、複数の円弧候補
に対して夫々求めた仮半径および仮中心点と、これら両
者の端点の距離差とに基づいて、1つの円弧候補に結合
することを意味している。
図中は、円弧候補を円弧候補ベクトルテーブルに登録
する状態を示す。
する状態を示す。
以上によって、粗く抽出された円弧候補に対して更に厳
密な条件のもとで分割処理および結合処理を施して、原
図形パターンにより一致する所望の円弧候補を抽出する
ことが可能となる。
密な条件のもとで分割処理および結合処理を施して、原
図形パターンにより一致する所望の円弧候補を抽出する
ことが可能となる。
以下本実施例の構成および動作を順次詳細に説明する。
第3図は円弧分割部1の動作説明フローチャートを示
す。
す。
第3図において、図中は、抽出された円弧候補情報を
格納した第11図円弧候補テーブルおよび円弧候補ベクト
ルテーブルから所望のデータを読み出す状態を示す。こ
の際、円弧候補テーブル中のループフラグ欄にフラグが
立ててある場合(閉ループであって円あるいは楕円であ
る場合)、円候補として図中以下の処理を実行する。
一方、ループフラグが立ててない場合(円弧である場
合)、図中以下の処理を実行する。
格納した第11図円弧候補テーブルおよび円弧候補ベクト
ルテーブルから所望のデータを読み出す状態を示す。こ
の際、円弧候補テーブル中のループフラグ欄にフラグが
立ててある場合(閉ループであって円あるいは楕円であ
る場合)、円候補として図中以下の処理を実行する。
一方、ループフラグが立ててない場合(円弧である場
合)、図中以下の処理を実行する。
図中は、ないしの処理から構成されている。
図中のは、候補中の座標(X、Y)の重心を求め、
これを仮中心点とする状態を示す。これは、第11図円弧
候補ベクトルテーブルに格納されている円弧候補である
折線Vi(iは0ないしnのうち円弧候補として抽出され
たもの)の例えば各始点Piの座標(Xpi,Ypi)を第9図
ベクトルテーブルから夫々読み出し、この読み出した全
てのX座標およびY座標について夫々の総和を求め、こ
の総和を求めた折線の総数nで割算して重心の座標
(XG,YG)を算出し、これを仮中心点APの座標とするこ
とを意味している。
これを仮中心点とする状態を示す。これは、第11図円弧
候補ベクトルテーブルに格納されている円弧候補である
折線Vi(iは0ないしnのうち円弧候補として抽出され
たもの)の例えば各始点Piの座標(Xpi,Ypi)を第9図
ベクトルテーブルから夫々読み出し、この読み出した全
てのX座標およびY座標について夫々の総和を求め、こ
の総和を求めた折線の総数nで割算して重心の座標
(XG,YG)を算出し、これを仮中心点APの座標とするこ
とを意味している。
図中のは、仮中心点と各点との距離の平均値を仮半
径とする状態を示す。これは、図中ので算出した仮
中心点APの座標(XG、YG)と、各折線Viの始点Piの座標
(Xpi、Ypi)との距離差の平均値ARを下式を用いて算出
し、これを仮半径ARとすることを意味している。
径とする状態を示す。これは、図中ので算出した仮
中心点APの座標(XG、YG)と、各折線Viの始点Piの座標
(Xpi、Ypi)との距離差の平均値ARを下式を用いて算出
し、これを仮半径ARとすることを意味している。
各点と仮中心点との距離Riは Ri={(Xpi-XG)2+(Ypi-YG)2}1/2 ・・・(1) 仮半径ARは 図中のは、仮半径AR、各点の距離Riとの差を算出
し、この差に基づいて円と円弧との判断に利用する状態
を示す。例えば両者の差が、k以上となる点がj個以上
あった場合、その円候補は、円でないと判断し、この円
弧候補を分割の対象とする。両者が上記の条件を満たさ
ない場合、円候補としてそのまま残す。具体的に言え
ば、第4図(イ)に示すように楕円であれば、Y軸付近
の点では当該各点Piと仮中心点APとの間の距離Riと、仮
半径ARとの差が−方向に大きくなり(平均値よりも小さ
くなり)、他方X軸付近の点では両者の差が+方向に大
きくなり、ここでk=10、およびj=5と設定し、条件
に当てはまる点が5個以上となった場合、この円弧候補
は分割処理を行う必要があるので、この場合は、図中
以下の円弧分割処理を実行する。また、第4図(ロ)に
示すような円であれば、仮半径ARと、各点Piと仮中心点
APとの距離Riとの差にバラツキがないので、このまま円
として分割処理は行う必要がない。
し、この差に基づいて円と円弧との判断に利用する状態
を示す。例えば両者の差が、k以上となる点がj個以上
あった場合、その円候補は、円でないと判断し、この円
弧候補を分割の対象とする。両者が上記の条件を満たさ
ない場合、円候補としてそのまま残す。具体的に言え
ば、第4図(イ)に示すように楕円であれば、Y軸付近
の点では当該各点Piと仮中心点APとの間の距離Riと、仮
半径ARとの差が−方向に大きくなり(平均値よりも小さ
くなり)、他方X軸付近の点では両者の差が+方向に大
きくなり、ここでk=10、およびj=5と設定し、条件
に当てはまる点が5個以上となった場合、この円弧候補
は分割処理を行う必要があるので、この場合は、図中
以下の円弧分割処理を実行する。また、第4図(ロ)に
示すような円であれば、仮半径ARと、各点Piと仮中心点
APとの距離Riとの差にバラツキがないので、このまま円
として分割処理は行う必要がない。
図中は、仮半径ARおよび仮中心点APをこの円弧候補の
半径および中心点として抽出する状態を示す。
半径および中心点として抽出する状態を示す。
図中は、図中で抽出した半径および中心点を第11図
円弧候補テーブルに登録すると共に、この抽出した円弧
候補を構成する折線Viを円弧候補ベクトルテーブルに登
録する状態を示す。
円弧候補テーブルに登録すると共に、この抽出した円弧
候補を構成する折線Viを円弧候補ベクトルテーブルに登
録する状態を示す。
図中は、円弧候補の仮半径および仮中心点を求め、仮
半径の大きくくい違うところで円弧を分割する状態を示
す。これは、開ループの場合(円弧候補の場合)に対す
る分割処理を行うものである。以下説明する。第1に、
円弧候補を構成する折線Viの仮半径Riを第5図(イ)に
示すように定義し、下式を用いて算出する。
半径の大きくくい違うところで円弧を分割する状態を示
す。これは、開ループの場合(円弧候補の場合)に対す
る分割処理を行うものである。以下説明する。第1に、
円弧候補を構成する折線Viの仮半径Riを第5図(イ)に
示すように定義し、下式を用いて算出する。
Ri=L/θ1 ・・・(3) ここで、Lは第5図(イ)に示すように折線Viの長さを
表し、θ1はこの折線Vi(折線ベクトル)の延長線と、
これに接続されている隣接する折線Vi+1との間の角度を
表す。APiは仮中心点を表す。この仮半径Riを全ての折
線Viについて算出する。第2に、第1で算出した接線Vi
の仮半径Riについて順次隣接するものに対して比較し、
その差がp以上の値を持つ時にその円弧候補の折線Viと
折線Vi+1との間で分割する。例えば第5図(ロ)に示す
ように円弧候補を構成する折線の一部として折線V1と折
線V2とがあり、p=15と設定する。この時、折線V1の仮
半径R1と折線V2の仮半径R2との長さの差が15以上違った
場合、この円弧候補の折線V1と折線V2との間を2つの円
弧候補にするための分割点とし、この分割点で円弧候補
を分割して図中で分割処理を実行する。
表し、θ1はこの折線Vi(折線ベクトル)の延長線と、
これに接続されている隣接する折線Vi+1との間の角度を
表す。APiは仮中心点を表す。この仮半径Riを全ての折
線Viについて算出する。第2に、第1で算出した接線Vi
の仮半径Riについて順次隣接するものに対して比較し、
その差がp以上の値を持つ時にその円弧候補の折線Viと
折線Vi+1との間で分割する。例えば第5図(ロ)に示す
ように円弧候補を構成する折線の一部として折線V1と折
線V2とがあり、p=15と設定する。この時、折線V1の仮
半径R1と折線V2の仮半径R2との長さの差が15以上違った
場合、この円弧候補の折線V1と折線V2との間を2つの円
弧候補にするための分割点とし、この分割点で円弧候補
を分割して図中で分割処理を実行する。
図中のは、円弧候補の始点と終点とを結だ線分の垂
直2等分線と、各折線ベクトルの垂線2等分線との交点
を求め、この交点の中から最適値を求め、これを中心点
とする状態を示す。これは、図中で分割した新しい円
弧候補となる折線Vi群に対して、その中心点を求めるこ
とを意味している。
直2等分線と、各折線ベクトルの垂線2等分線との交点
を求め、この交点の中から最適値を求め、これを中心点
とする状態を示す。これは、図中で分割した新しい円
弧候補となる折線Vi群に対して、その中心点を求めるこ
とを意味している。
図中のは、各点と中心点より、半径を求める状態を
示す。これは、図中ので求めた中心点と、各折線Vi
の始点との間の距離差を夫々求め、例えばこの平均値を
半径として算出することを意味している。そして、図中
で、図中で分割して新たに生成した円弧候補に属す
る折線Vi、および図中で算出した中心点の座標、半径
などのデータは、円弧候補毎に、第11図円弧候補テーブ
ルおよび円弧候補ベクトルテーブルを作成してこれに夫
々登録する。
示す。これは、図中ので求めた中心点と、各折線Vi
の始点との間の距離差を夫々求め、例えばこの平均値を
半径として算出することを意味している。そして、図中
で、図中で分割して新たに生成した円弧候補に属す
る折線Vi、および図中で算出した中心点の座標、半径
などのデータは、円弧候補毎に、第11図円弧候補テーブ
ルおよび円弧候補ベクトルテーブルを作成してこれに夫
々登録する。
以上の手順によって、円あるいは円弧を構成する円弧候
補が複数の円弧候補に分割される。
補が複数の円弧候補に分割される。
次に、第6図を用いて結合処理を説明する。
第6図において、図中は、円弧候補テーブルに登録さ
れている円弧候補のみを対象とする状態を示す。これ
は、第11図円弧候補テーブルおよび円弧候補ベクトルテ
ーブルに登録されている円弧候補のみを検索して以下の
結合処理を実行することを意味している。
れている円弧候補のみを対象とする状態を示す。これ
は、第11図円弧候補テーブルおよび円弧候補ベクトルテ
ーブルに登録されている円弧候補のみを検索して以下の
結合処理を実行することを意味している。
図中は、図中で第11図テーブルから検索して読み出
した任意の円弧候補と、中心点座標(X、Y)および半
径Rの夫々の値が、所定の最小値(XMIN、YMIN、RMIN)よ
りも大きくかつ所定の最大値(XMAX、YMAX、RMAX)よりも
小さくなる任意の円候補を見つける状態を示す。
した任意の円弧候補と、中心点座標(X、Y)および半
径Rの夫々の値が、所定の最小値(XMIN、YMIN、RMIN)よ
りも大きくかつ所定の最大値(XMAX、YMAX、RMAX)よりも
小さくなる任意の円候補を見つける状態を示す。
図中は、この任意の2つの円弧候補の端点の距離をみ
る状態を示す。これは、2つの円弧候補の端点の座標
を、第11図円弧候補ベクトルテーブルに登録されている
先頭および末尾の折線Viに対応する始点座標および末尾
座標を第9図ベクトルテーブルから読み出し、両者の端
点の最短距離を求めることを意味している。両者の端点
の距離が、所定値Lよりも小さい場合には、図中で結
合処理を実行する。両者の端点の距離が、所定値Lより
も大きい場合には、図中で2つの円弧候補をつなが
ず、次の候補を探すために図中以下を繰り返し実行す
る。
る状態を示す。これは、2つの円弧候補の端点の座標
を、第11図円弧候補ベクトルテーブルに登録されている
先頭および末尾の折線Viに対応する始点座標および末尾
座標を第9図ベクトルテーブルから読み出し、両者の端
点の最短距離を求めることを意味している。両者の端点
の距離が、所定値Lよりも小さい場合には、図中で結
合処理を実行する。両者の端点の距離が、所定値Lより
も大きい場合には、図中で2つの円弧候補をつなが
ず、次の候補を探すために図中以下を繰り返し実行す
る。
図中は、1つの円弧にまとめる状態を示す。これは、
図中およびで2つの円弧候補に対して全ての条件が
満足されたので、これら2つの円弧候補に含まれる全て
の折線Viに対して、中心点、半径および端点を再計算す
ることを意味している。例えば第7図に示すようなPお
よびQを用いて示す2つの円弧候補を考え、折線Viの内
角θ1のみを利用して粗く円弧候補を抽出した処理で
は、点Aで円弧Pと円弧Qとに分割されてしまう。この
時、円弧Pの中心点PPと円弧Qの中心点QQの距離が所定
値s以下であって、かつ円弧Pの半径PRと円弧Qの半径
QRの長さの差が所定値t以下であれば、円弧Pおよび円
弧Qの端点どうしが点Aで接しているので、1つの円弧
として結合しても良いと判定する。
図中およびで2つの円弧候補に対して全ての条件が
満足されたので、これら2つの円弧候補に含まれる全て
の折線Viに対して、中心点、半径および端点を再計算す
ることを意味している。例えば第7図に示すようなPお
よびQを用いて示す2つの円弧候補を考え、折線Viの内
角θ1のみを利用して粗く円弧候補を抽出した処理で
は、点Aで円弧Pと円弧Qとに分割されてしまう。この
時、円弧Pの中心点PPと円弧Qの中心点QQの距離が所定
値s以下であって、かつ円弧Pの半径PRと円弧Qの半径
QRの長さの差が所定値t以下であれば、円弧Pおよび円
弧Qの端点どうしが点Aで接しているので、1つの円弧
として結合しても良いと判定する。
図中は、図中で2つの円弧を1つの円弧にまとめた
各種情報を、第11図円弧候補テーブルおよび円弧候補ベ
クトルテーブルに登録する状態を示す。
各種情報を、第11図円弧候補テーブルおよび円弧候補ベ
クトルテーブルに登録する状態を示す。
図中は、新しく抽出された円弧候補も含め、結合処理
の対象となる円弧があるか否かを判別する状態を示す。
YESの場合には、図中以下を繰り返し実行する。NOの
場合には、終了する。
の対象となる円弧があるか否かを判別する状態を示す。
YESの場合には、図中以下を繰り返し実行する。NOの
場合には、終了する。
以上のように、任意の2つの円弧候補に対して更に厳密
な条件を適用して条件を満足するものに対しては、2つ
の円弧候補を1つの円弧候補にまとめて新たに中心点の
座標、半径などを算出し、第11図テーブルに登録するこ
とにより、有効な円弧候補を抽出することが可能とな
る。
な条件を適用して条件を満足するものに対しては、2つ
の円弧候補を1つの円弧候補にまとめて新たに中心点の
座標、半径などを算出し、第11図テーブルに登録するこ
とにより、有効な円弧候補を抽出することが可能とな
る。
次に、第8図ないし第12図を用いて、図形パターンを細
線化・折線近似した折線列に対して、粗い条件を適用し
て円弧候補を抽出する手順を説明する。
線化・折線近似した折線列に対して、粗い条件を適用し
て円弧候補を抽出する手順を説明する。
第8図は円弧候補を抽出する概念説明図を示す。図中細
線化・折線近似処理部3は、入力された図形パターンに
対して細線化を行い、更にこの細線化された線図形に対
して折線近似を行って折線データを生成するものであ
る。
線化・折線近似処理部3は、入力された図形パターンに
対して細線化を行い、更にこの細線化された線図形に対
して折線近似を行って折線データを生成するものであ
る。
分類処理部4は、折線の長さに基づいて、折線を直線候
補折線、円弧候補折線、および歪候補折線に分類するも
のである。
補折線、円弧候補折線、および歪候補折線に分類するも
のである。
円弧抽出処理部5は、分類処理部4によって分類された
円弧候補折線中から円弧を構成する円弧候補折線を抽出
するものである。
円弧候補折線中から円弧を構成する円弧候補折線を抽出
するものである。
円弧算出処理部6は、円弧抽出処理部5によって抽出さ
れた円弧を構成する円弧候補折線群を結ぶ円弧の半径お
よび中心点座標を算出するものである。
れた円弧を構成する円弧候補折線群を結ぶ円弧の半径お
よび中心点座標を算出するものである。
円弧分割処理部1は、既述したように、1つの円弧候補
を複数の円弧候補に分割処理するものである。
を複数の円弧候補に分割処理するものである。
円弧結合処理部2は、既述したように、複数の円弧候補
を1つの円弧候補に結合するものである。
を1つの円弧候補に結合するものである。
第8図において、図形パターンを細線化・折線近似処理
部3に入力すると、既知の技術に基づいて、図形パター
ンが細線化され、更にこの細線化された線図形に対して
例えば屈曲点が現れるまで線図形中の点列を線分で結ぶ
などの折線近似処理が行われ、折線データが出力され
る。この折線データが入力された分類処理部4は、この
入力された折線の長さによって、折線を直線候補折線、
円弧候補折線、および歪候補折線に分類し、この分類し
た分類データを出力する。円弧抽出処理部5は、この分
類データ中の円弧候補折線について追跡を行い、ある円
弧候補折線に対して所定の角度範囲以内に接続されてい
る他の隣接する円弧候補折線を順次抽出して1つにまと
める。この1つにまとめられた円弧候補折線群の通知を
受けた円弧算出処理部6は、これら円弧候補折線群に対
する円弧の半径および中心点座標を円弧データとして算
出し、第11図テーブルに登録する。
部3に入力すると、既知の技術に基づいて、図形パター
ンが細線化され、更にこの細線化された線図形に対して
例えば屈曲点が現れるまで線図形中の点列を線分で結ぶ
などの折線近似処理が行われ、折線データが出力され
る。この折線データが入力された分類処理部4は、この
入力された折線の長さによって、折線を直線候補折線、
円弧候補折線、および歪候補折線に分類し、この分類し
た分類データを出力する。円弧抽出処理部5は、この分
類データ中の円弧候補折線について追跡を行い、ある円
弧候補折線に対して所定の角度範囲以内に接続されてい
る他の隣接する円弧候補折線を順次抽出して1つにまと
める。この1つにまとめられた円弧候補折線群の通知を
受けた円弧算出処理部6は、これら円弧候補折線群に対
する円弧の半径および中心点座標を円弧データとして算
出し、第11図テーブルに登録する。
以上によって、図形パターンを細線化、折線近似を行っ
た折線の円弧候補折線を追跡し、ある円弧候補折線に隣
接する他の円弧候補折線が所定の角度範囲内に接続され
ている一連のものを1つにまとめ、このまとめた円弧候
補折線群に対する円弧の半径および中心点座標を求めて
折線中から円弧部分を粗く抽出して第11図テーブルに登
録することができる。以下円弧部分を粗く抽出する動作
について説明する。
た折線の円弧候補折線を追跡し、ある円弧候補折線に隣
接する他の円弧候補折線が所定の角度範囲内に接続され
ている一連のものを1つにまとめ、このまとめた円弧候
補折線群に対する円弧の半径および中心点座標を求めて
折線中から円弧部分を粗く抽出して第11図テーブルに登
録することができる。以下円弧部分を粗く抽出する動作
について説明する。
第9図はベクトルテーブルを示す。これは、第8図細線
化・折線近似処理部1によって生成された折線データを
格納するものである。図中(a)を用いて示す始点側の
X座標、Y座標、および端点情報には、夫々該当する折
線Viの始点側の座標および分岐などの端点情報を格納す
る。図中(b)を用いて示す終点側のX座標、Y座標、
および端点情報には、夫々該当する折線Viの終点側の座
標および分岐などの端点情報を格納する。図中(c)を
用いて示す属性には、直線候補折線、円弧候補折線、お
よび歪候補折線に対応する情報を格納する。
化・折線近似処理部1によって生成された折線データを
格納するものである。図中(a)を用いて示す始点側の
X座標、Y座標、および端点情報には、夫々該当する折
線Viの始点側の座標および分岐などの端点情報を格納す
る。図中(b)を用いて示す終点側のX座標、Y座標、
および端点情報には、夫々該当する折線Viの終点側の座
標および分岐などの端点情報を格納する。図中(c)を
用いて示す属性には、直線候補折線、円弧候補折線、お
よび歪候補折線に対応する情報を格納する。
第10図フローチャートを用いて第8図の動作を説明す
る。
る。
第10図において、処理は、すべての折線データを生成
する状態を示す。これは、細線化・折線近似処理部3が
全ての折線Vi(i=1ないしn)に対して折線データを
生成して第9図ベクトルテーブルに格納することを意味
している。
する状態を示す。これは、細線化・折線近似処理部3が
全ての折線Vi(i=1ないしn)に対して折線データを
生成して第9図ベクトルテーブルに格納することを意味
している。
処理は、長さによる分類を行う状態を示す。これは、
分類処理部4が、第9図ベクトルテーブルから読み出し
たすべての折線データの長さLに対して、所定値LMAXお
よびLMINと比較し、LMAXよりも長い場合は当該折線Viを
直線候補折線と分類して第9図ベクトルテーブル中の属
性欄に“1"を格納し、LMINよりも短い場合は当該折線Vi
を歪候補折線と分類して属性欄に“3"を格納し、いずれ
でもない場合は当該折線Viを円弧候補折線と分類して属
性欄に“2"を格納することを意味している。尚、折線デ
ータの長さLは、第9図ベクトルテーブルの始点側座標
と終点側座標とに基づいて算出すればよい。
分類処理部4が、第9図ベクトルテーブルから読み出し
たすべての折線データの長さLに対して、所定値LMAXお
よびLMINと比較し、LMAXよりも長い場合は当該折線Viを
直線候補折線と分類して第9図ベクトルテーブル中の属
性欄に“1"を格納し、LMINよりも短い場合は当該折線Vi
を歪候補折線と分類して属性欄に“3"を格納し、いずれ
でもない場合は当該折線Viを円弧候補折線と分類して属
性欄に“2"を格納することを意味している。尚、折線デ
ータの長さLは、第9図ベクトルテーブルの始点側座標
と終点側座標とに基づいて算出すればよい。
処理は、円弧候補を抽出する状態を示す。これは、以
下処理ないしによって実行される。
下処理ないしによって実行される。
処理は、分岐点をはさまない円弧候補ベクトル2本を
円弧候補として抽出する状態を示す。これは、第9図ベ
クトルテーブル中の属性が円弧候補折線を意味する“2"
が格納されている隣接する2つの折線Viを検索し、その
座標などを読み出すことを意味している。
円弧候補として抽出する状態を示す。これは、第9図ベ
クトルテーブル中の属性が円弧候補折線を意味する“2"
が格納されている隣接する2つの折線Viを検索し、その
座標などを読み出すことを意味している。
処理は、2本の折線Viのベクトルの内角θを利用して
円弧候補ベクトルを追跡する状態を示す。この時、歪候
補ベクトルに接していたら、そこで追跡を終了する。こ
れは、第12図(イ)に示すように、図中で読み出した
隣接する2本の折線Vi例えば折線V1およびV2のベクトル
の内角θが、所定範囲内例えば90°よりも大きくかつ18
0°よりも小さい範囲に存在するか否かを判別し、存在
する場合には、これを円弧候補として抽出することを意
味している(これは、処理で第11図円弧候補ベクトル
テーブルに登録例えばV1、V2・・・として登録する)。
以下同様に、次の円弧候補ベクトルについて順次抽出す
る。また、追跡途中で、分岐点にぶつかった場合には、
第12図(ロ)に示すように、すべての折線Viに対して内
角θを調べ、最適な折線Viを選び、追跡を続ける。更
に、この円弧候補ベクトルを追跡する途中で、歪候補ベ
クトルが現れた場合には、この歪候補折線をを飛び越し
て上記処理を継続する。この場合には、歪候補折線をは
さんだ2つの分岐点をまとめて1つの分岐点と考え、上
記普通の分岐点と同様に処理する。例えば第12図(ハ)
に示すように、折線V1から追跡が行われた場合、折線
V2、折線V3、折線V4について折線V1との内角θを見て、
条件に合う折線V2の方向に進むようにする。この方向に
対して一連の追跡を終了したら、次に、反対方向につい
ても同様に追跡を行う。
円弧候補ベクトルを追跡する状態を示す。この時、歪候
補ベクトルに接していたら、そこで追跡を終了する。こ
れは、第12図(イ)に示すように、図中で読み出した
隣接する2本の折線Vi例えば折線V1およびV2のベクトル
の内角θが、所定範囲内例えば90°よりも大きくかつ18
0°よりも小さい範囲に存在するか否かを判別し、存在
する場合には、これを円弧候補として抽出することを意
味している(これは、処理で第11図円弧候補ベクトル
テーブルに登録例えばV1、V2・・・として登録する)。
以下同様に、次の円弧候補ベクトルについて順次抽出す
る。また、追跡途中で、分岐点にぶつかった場合には、
第12図(ロ)に示すように、すべての折線Viに対して内
角θを調べ、最適な折線Viを選び、追跡を続ける。更
に、この円弧候補ベクトルを追跡する途中で、歪候補ベ
クトルが現れた場合には、この歪候補折線をを飛び越し
て上記処理を継続する。この場合には、歪候補折線をは
さんだ2つの分岐点をまとめて1つの分岐点と考え、上
記普通の分岐点と同様に処理する。例えば第12図(ハ)
に示すように、折線V1から追跡が行われた場合、折線
V2、折線V3、折線V4について折線V1との内角θを見て、
条件に合う折線V2の方向に進むようにする。この方向に
対して一連の追跡を終了したら、次に、反対方向につい
ても同様に追跡を行う。
処理は、直線候補ベクトルに接したら、そこで追跡を
終了する状態を示す。これは、図中の処理中に、第9
図ベクトルテーブルの属性欄から直線候補折線を意味す
る“1"が読み出された場合、ここで追跡を終了すること
を意味している。
終了する状態を示す。これは、図中の処理中に、第9
図ベクトルテーブルの属性欄から直線候補折線を意味す
る“1"が読み出された場合、ここで追跡を終了すること
を意味している。
処理は、閉ループとして抽出された時には、フラグを
立てる状態を示す。これは、第11図円弧候補テーブル中
のループフラグの欄にフラグを立てておくことを意味し
ている。
立てる状態を示す。これは、第11図円弧候補テーブル中
のループフラグの欄にフラグを立てておくことを意味し
ている。
処理は、円弧候補ベクトル列をテーブルに格納すると
共に、歪候補ベクトル情報や内角情報も保存する状態を
示す。これは、処理ないしによって追跡した結果を
第11図テーブルに登録することを意味している。第11図
円弧候補テーブル中には、処理ないしによって追跡
して条件を満足したベクトルの数、条件を満足した折線
Viを登録する弧候補ベクトルテーブルをポイントするベ
クトル別ポインタ、条件を満足した一連の円弧候補折線
の始点および終点の座標(X、Y)、閉ループを表すル
ープフラグ、それから追跡によって得られた一連の折線
に対して算出された円弧の半径およびこの円弧の中心点
座標(X、Y)が格納される。
共に、歪候補ベクトル情報や内角情報も保存する状態を
示す。これは、処理ないしによって追跡した結果を
第11図テーブルに登録することを意味している。第11図
円弧候補テーブル中には、処理ないしによって追跡
して条件を満足したベクトルの数、条件を満足した折線
Viを登録する弧候補ベクトルテーブルをポイントするベ
クトル別ポインタ、条件を満足した一連の円弧候補折線
の始点および終点の座標(X、Y)、閉ループを表すル
ープフラグ、それから追跡によって得られた一連の折線
に対して算出された円弧の半径およびこの円弧の中心点
座標(X、Y)が格納される。
以上のように、第9図ベクトルテーブルに折線データを
格納し、この折線データに基づいて、円弧候補折線、歪
候補折線、および直線候補折線に分類し、この分類した
円弧候補折線のうち隣接するものについて内角θに基づ
いて円弧候補となるものを抽出し、この抽出した円弧候
補を第11図テーブルに登録する。
格納し、この折線データに基づいて、円弧候補折線、歪
候補折線、および直線候補折線に分類し、この分類した
円弧候補折線のうち隣接するものについて内角θに基づ
いて円弧候補となるものを抽出し、この抽出した円弧候
補を第11図テーブルに登録する。
以上説明したように、本発明によれば、1つの円弧候補
を構成する各折線ベクトルの仮半径および仮中心点に基
づいて円弧候補を分割処理すると共に、複数の円弧候補
に対する夫々の仮半径、仮中心点および端点間の距離に
基づいて円弧候補の結合処理を行う構成を採用している
ため、粗く抽出された折線の円弧候補に対して更に厳密
な条件を適用して原図形パターンにより忠実な円弧部分
を抽出することができる。また、円弧分割処理および円
弧結合処理をそれぞれ独立に別個に取り扱うため、原図
形の種類や図形の処理の用途などに適応させた最適な円
弧部分を抽出することができる。
を構成する各折線ベクトルの仮半径および仮中心点に基
づいて円弧候補を分割処理すると共に、複数の円弧候補
に対する夫々の仮半径、仮中心点および端点間の距離に
基づいて円弧候補の結合処理を行う構成を採用している
ため、粗く抽出された折線の円弧候補に対して更に厳密
な条件を適用して原図形パターンにより忠実な円弧部分
を抽出することができる。また、円弧分割処理および円
弧結合処理をそれぞれ独立に別個に取り扱うため、原図
形の種類や図形の処理の用途などに適応させた最適な円
弧部分を抽出することができる。
第1図は本発明の原理構成図、第2図は本発明の動作説
明フローチャート、第3図は円弧分割処理部の動作説明
フローチャート、第4図および第5図は円弧分割処理の
動作説明図、第6図は円弧結合処理部の動作説明フロー
チャート、第7図は円弧結合処理の動作説明図、第8図
は円弧抽出処理の原理構成図、第9図はベクトルテーブ
ル、第10図は円弧抽出処理の動作説明フローチャート、
第11図はテーブル例、第12図は円弧抽出処理の動作説明
図を示す。 図中、1は円弧分割処理部、2は円弧結合処理部を表
す。
明フローチャート、第3図は円弧分割処理部の動作説明
フローチャート、第4図および第5図は円弧分割処理の
動作説明図、第6図は円弧結合処理部の動作説明フロー
チャート、第7図は円弧結合処理の動作説明図、第8図
は円弧抽出処理の原理構成図、第9図はベクトルテーブ
ル、第10図は円弧抽出処理の動作説明フローチャート、
第11図はテーブル例、第12図は円弧抽出処理の動作説明
図を示す。 図中、1は円弧分割処理部、2は円弧結合処理部を表
す。
Claims (1)
- 【請求項1】図形を細線化・折線近似して生成した複数
の折線から所定の条件に基づいて抽出された折線列を円
弧候補として登録するテーブルと、 上記テーブルに登録された円弧候補の折線の仮半径Riを
順次求めて比較し、その差が所定値以上となった点で、
円弧候補を分割する円弧分割処理部(1)と、 上記テーブルに登録された円弧候補の中の任意の2つの
円弧候補について夫々算出した仮半径の差および仮中心
点の差が夫々所定値よりも小さく、かつ両者の端点の距
離が所定値以下の場合に、1つの円弧あるいは円に結合
する円弧結合処理部(2)とを備え、 円弧候補に対して上記分割または結合を行って円弧部分
を抽出するようにしたことを特徴とする円弧抽出装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62044112A JPH07104954B2 (ja) | 1987-02-28 | 1987-02-28 | 円弧抽出装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62044112A JPH07104954B2 (ja) | 1987-02-28 | 1987-02-28 | 円弧抽出装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS63213088A JPS63213088A (ja) | 1988-09-05 |
| JPH07104954B2 true JPH07104954B2 (ja) | 1995-11-13 |
Family
ID=12682526
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62044112A Expired - Lifetime JPH07104954B2 (ja) | 1987-02-28 | 1987-02-28 | 円弧抽出装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07104954B2 (ja) |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5841634B2 (ja) * | 1980-02-25 | 1983-09-13 | 日産自動車株式会社 | 内燃機関の点火栓 |
| US4412151A (en) * | 1980-09-02 | 1983-10-25 | Charles W. Taggart | Piezoelectric crystal spark plug |
-
1987
- 1987-02-28 JP JP62044112A patent/JPH07104954B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPS63213088A (ja) | 1988-09-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR900008555B1 (ko) | 수서도형의 온라인 인식방법 및 장치 | |
| US7068843B2 (en) | Method for extracting and matching gesture features of image | |
| CN107169411A (zh) | 一种基于关键帧和边界约束dtw的实时动态手势识别方法 | |
| CN110378195B (zh) | 基于直方图缓存法的多目标跟踪方法 | |
| CN104820983A (zh) | 一种图像匹配方法 | |
| CN113902034A (zh) | 一种矢量道路数据变化信息识别与提取方法和装置 | |
| CN111553410B (zh) | 基于关键点局部曲面特征直方图和空间关系的点云识别方法 | |
| US7295707B2 (en) | Method for aligning gesture features of image | |
| JPH07104954B2 (ja) | 円弧抽出装置 | |
| CN111104922B (zh) | 一种基于有序抽样的特征匹配算法 | |
| JPS6310472B2 (ja) | ||
| CN112949542A (zh) | 一种基于凸包检测的手腕分割线的确立方法 | |
| CN113435256B (zh) | 一种基于几何一致性约束的三维目标识别方法及系统 | |
| JPS63213087A (ja) | 円弧抽出方式 | |
| JPS62248080A (ja) | 閉図形識別装置 | |
| JPS62154078A (ja) | オンライン手書文字認識における特徴点の抽出方式 | |
| JP2885476B2 (ja) | 画像処理方法および装置 | |
| JP2507413B2 (ja) | パタ−ンデ−タ圧縮方法 | |
| JPH0357509B2 (ja) | ||
| JPH01263883A (ja) | 線図形ベクトル化装置 | |
| JPS63301382A (ja) | 文字成分分離方法 | |
| KR20250101789A (ko) | 포인트 클라우드 심층 신경망를 처리하는 가속기 및 그 동작 방법 | |
| JP2658153B2 (ja) | 文字識別方式 | |
| JPH1097620A (ja) | 円又は円弧の近似方法 | |
| JP2790724B2 (ja) | 曖昧さを持つ検索方法 |