(57)【特許請求の範囲】
【請求項１】
数値化された被解析画像に含まれる円および楕円を解析する画像解析装置において、
上記被解析画像から中心座標を算出する中心座標算出手段と、
上記中心座標に基づいて円の半径または楕円の長径および短径を算出する径算出手段とを有し、
上記径算出手段は、
（１）楕円の中心を点Ｏとし、その周上に角ＡＯＢが９０度になるように点Ａ，点Ｂをとれば、線分ＯＡ，線分ＯＢの長さの２乗の逆数の和は一定である
（２）楕円の周上に点Ａをとり、中心Ｏを通り点Ａにおける楕円の接線に平行な直線と楕円との交点を点Ｂ，点Ｃとすれば三角形ＡＢＣの面積は一定である
という性質を利用して円の半径または楕円の長径および短径を算出することを特徴とする画像解析装置。
【請求項２】
上記長径および短径の比の値を所定の閾値に比較して上記被解析画像が円であるか楕円であるかを判定する請求項１記載の画像解析装置。
【請求項３】
上記被解析画像が円と判定されたときに上記長径および短径の一方を上記円の半径と定める請求項２記載の画像解析装置。
【請求項４】
被解析画像が円と判定された場合に、算出された上記中心座標および半径を、上記被解析画像により適合するように補正する請求項３記載の画像解析装置。
【請求項５】
上記中心座標算出手段および径算出手段で算出された楕円の中心座標、長径および短径をパラメータに持ち、座標軸に平行な軸を有する楕円と、上記被対象画像のエッジ画像との交点を算出し、これら交点に基づいて上記被解析画像の傾きを算出する傾き算出手段をさらに設ける請求項１記載の画像解析装置。
【請求項６】
上記傾き算出手段は、上記交点および上記中心座標に基づいて上記被解析画像の傾きを算出する請求項５記載の画像解析装置。
【請求項７】
上記交点に基づいて新たな中心座標を算出する請求項５記載の画像解析装置。
【請求項８】
上記新たな中心座標に基づいて楕円の５つのパラメータを算出する操作を、規定回数だけ繰り返す請求項７記載の画像解析装置。
【請求項９】
上記新たな中心座標に基づいて楕円の５つのパラメータを算出する操作を、上記パラメータの変化量が既定値以下になるまで繰り返す請求項７記載の画像解析装置。
【請求項１０】
数値化された被解析画像に含まれる円および楕円を解析する画像解析方法において、
上記被解析画像から中心座標を算出する中心座標算出ステップと、
上記中心座標に基づいて円の半径または楕円の長径および短径を算出する径算出ステップとを有し、
上記径算出ステップは、
（１）楕円の中心を点Ｏとし、その周上に角ＡＯＢが９０度になるように点Ａ，点Ｂをとれば、線分ＯＡ，線分ＯＢの長さの２乗の逆数の和は一定である
（２）楕円の周上に点Ａをとり、中心Ｏを通り点Ａにおける楕円の接線に平行な直線と楕円との交点を点Ｂ，点Ｃとすれば三角形ＡＢＣの面積は一定である
という性質を利用して円の半径または楕円の長径および短径を算出することを特徴とする画像解析方法。
【請求項１１】
上記中心座標算出ステップは、エッジ画像の状態によって、その中心座標算出方法を変える請求項１０記載の画像解析方法。
【請求項１２】
上記中心座標算出方法には、一連の平行線と楕円被解析画像のエッジ画像との交点に基づく方法、上記エッジ画像の重心に基づく方法、および上記エッジ画像に非線型最小２乗法を適用する方法が含まれる請求項１１記載の画像解析方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタル画像から円の３つのパラメータまたは楕円の５つのパラメータを抽出する技術に関するものである。応用例の１つとして、人間の調音器官の微妙な動きを非接触計測する発話認識システム及び三次元形状計測装置などが考えられる。
【０００２】
【従来の技術】
与えられた画素群に最も適合する直線を求める手法として最小２乗法がある。この手法では、三元の連立一次方程式を解くことにより容易に未知の３つのパラメータを決定することができる。ところが、最小２乗法を円や楕円に適用することは容易でない。円の場合、決定すべきパラメータは中心座標と半径の計３つであるが、これを最小２乗法で求める場合、非線形連立方程式となり、解を求めるためにＧａｕｓｓ−Ｎｅｗｔｏｎ法などの最適化計算を行う必要があり複雑となる。また円以外の楕円になると、決定すべきパラメータは中心座標、長径、半径、傾きの５つとなりさらに複雑となる。
これを解決するために円の場合、画素群を特定点に対して反転させることにより、直線の最小２乗法に置き換える手法（信学論，Ｊ７５−ＤＩＩ，１３３８−１３４５，１９９２）などが提案された。しかしながら楕円の場合はこのように簡単にはいかない。楕円の場合、円よりもさらに余計に２つ未知のパラメータを決定せねばならないからである。楕円を効率よくかつ素早く切り出すためにはパラメータ次元数の削減が必要となる。
従来の楕円抽出技術は、おおむね中心座標を算出し、その後に長径、短径、及び傾きを算出する手法をとる。例えばＴｓｕｊｉらはエッジ画像から単純な勾配オペレータによって各エッジにおける傾きを計算し、その傾きが等しいエッジの中点が楕円の中心であるという性質を用いて楕円の中心を算出した（ＩＥＥＥ  Ｔｒａｎｓ．Ｃｏｍｐ．，２７，７７７−７８１，１９７８）。さらにＮａｉｒらはハフ変換を用いることにより高速化を行った（Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ｌｅｔ．，１７，７７７−７８４，１９９６）。Ｔｓｕｊｉらの手法では最終的には２パラメータの最小２乗法に落ち着くが、やはり最後に非線形な形が残る。またこれらの手法は画像にノイズが含まれていない場合威力を発揮するが、画像にノイズが存在し、中心座標の算出に失敗した場合には楕円を正しく抽出することができない。
【０００３】
他の中心算出手法としては特開平８−２１０８１１号公報がある。この手法においては、走査線を一定方向に移動させ、走査線と画像との交点の中点を算出し、それらの交点の距離を投票値とすることにより、最大の投票値を得るものを楕円の中心とした。
【０００４】
また特開平７−３１１８４７号公報では領域抽出枠を設けて、画像との接点の座標から中心座標を含めた楕円の５つのパラメータを求める手法を提案した。
【０００５】
しかしながらこれらの手法でも楕円に切れ目があったり、ノイズがあったりした場合には正しく抽出するのが困難である。特開昭５９−１２３９８１号公報では切れ目が画像の縦軸もしくは横軸に平行になるように画像を回転させ、切れ目に平行に走査線を動かし、画像を切り取る長さが最大である走査線の中点を中心とする手法を提案した。しかし切れ目が複数ある場合には適応できない。
【０００６】
【発明が解決しようとする課題】
本発明は、円または楕円の図形的性質を用いることにより、画像にノイズや切れ目が含まれていても、円または楕円のパラメータが算出可能な画像解析技術を提供することを目的としている。
【０００７】
【課題を解決するための手段】
まず、本発明の一側面を、図１を用いて説明する。本発明の画像解析装置は、図１で示すように、前処理部１１、仮中心算出部１２、長径・短径算出部１３、傾き算出部１４、および評価部１５を含んで構成される。図１において、前処理部１１は細線化等を行いエッジ画像を生成する。仮中心算出部１２は、ノイズに応じて種々の算出方法を選択して適用する。処理が、長径・短径算出部１３を初めて通過した時、抽出対象が円の場合は、半径、中心のＸ座標、Ｙ座標の計３つのパラメータを算出することができる。他方、抽出対象が楕円の場合は、長径、短径、中心のＸ座標、Ｙ座標の４つのパラメータが算出される。さらに楕円の場合は続く傾き算出部１４で傾きが算出され、それに続く評価部１５では仮中心算出部１２で決定した中心座標とは異なる中心座標値が新たに決定される。これはノイズを含む画像から円・楕円を抽出する過程において、中心座標の精度が他のパラメータ算出に大きな影響を与えるからであり、一度中心座標を決定しても、理想的な座標とは大きく隔たる可能性があるからである。この結果を、再び長径・短径算出部１３に返すことにより、新たに長径および短径の長さが算出可能である。これらのパラメータ算出を評価部１５が満たす条件を満足できるまで繰り返し行うことにより、精度よくパラメータを算出することが可能である。
【０００８】
以上の構成においては、エッジ画像がノイズを含んでいる場合でも、切れ目が生じている場合でも、その状態によって場合分けすることにより、中心を算出することができる。また楕円の図形的性質を用いることにより、二次方程式の形式で長径及び短径の長さを算出することができる。さらにここで算出された長径と短径の比の値によってエッジ画像を円とそれ以外の楕円に振り分けることができる。
【０００９】
楕円と判定した場合、その傾きを求めると同時に、その図形的特徴から新たにエッジ画像の中心を算出することができる。本発明によればエッジ画像の状態によることなく楕円の傾きが算出可能であり、新たに中心座標を算出することができる。よって仮中心算出部１２において求めた中心座標の精度がたとえ悪くても、これらの操作を繰り返すことにより、より精度のよいパラメータを後に算出することができる。
【００１０】
さらに、本発明について説明する。
【００１１】
本発明によれば、上述の目的を達成するために、数値化された被解析画像に含まれる円および楕円を解析する画像解析装置に、上記被解析画像から中心座標を算出する中心座標算出手段と、上記中心座標に基づいて円の半径または楕円の長径および短径を算出する径算出手段とを設け、上記径算出手段が、（１）楕円の中心を点Ｏとし、その周上に角ＡＯＢが９０度になるように点Ａ，点Ｂをとれば、線分ＯＡ，線分ＯＢの長さの２乗の逆数の和は一定であるという性質、および、（２）楕円の周上に点Ａをとり、中心Ｏを通り点Ａにおける楕円の接線に平行な直線と楕円との交点を点Ｂ，点Ｃとすれば三角形ＡＢＣの面積は一定であるという性質を利用して円の半径または楕円の長径および短径を算出するようにしている。
【００１２】
この構成においては、また楕円の図形的性質を用いることにより、二次方程式の形式で長径及び短径の長さを算出することができる。さらにここで算出された長径と短径の比の値によってエッジ画像を円とそれ以外の楕円に振り分けることができる。
【００１３】
この構成において、上記長径および短径の比の値を所定の閾値に比較して上記被解析画像が円であるか楕円であるかを判定するようにできる。たとえば、長径と短径の比の値が閾値以上である時、被解析画像を楕円と判定する。あるいは、長径と短径の比の値が閾値以下である時、被解析画像を円と判定する。
【００１４】
また、上記被解析画像が円と判定されたときに上記長径を上記円の半径として出力してもよい。また、上記短径を上記円の半径として出力してもよい。
【００１５】
また、被解析画像が円と判定された場合に、算出された上記中心座標および半径を、上記被解析画像により適合するように補正するようにしてもよい。たとえば、最小２乗法で補正する。
【００１６】
また、上記中心座標算出手段および径算出手段で算出された楕円の中心座標、長径および短径をパラメータに持ち、座標軸に平行な軸を有する楕円と、上記被対象画像のエッジ画像との交点を算出し、これら交点に基づいて上記被解析画像の傾きを算出する傾き算出手段をさらに設けるようにしてもよい。たとえば、算出した楕円の中心及び長径、短径をパラメータに持ち、座標軸に平行な軸を有する楕円と、もとのエッジ画像との交点を、反時計周りに順に点Ａ，点Ｂ，点Ｃ，点Ｄとした時、直線ＡＣまたは直線ＢＤの傾きの２倍をもとの被解析画像の傾きとする。
【００１７】
また、上記傾き算出手段は、上記交点および上記中心座標に基づいて上記被解析画像の傾きを算出するようにしてもよい。たとえば、楕円の傾きを求める際に楕円の中心Ｏと４つの交点Ａ，Ｂ，Ｃ，Ｄとを結ぶ直線の傾きの２倍を楕円の傾きとする。
【００１８】
また、上記交点に基づいて新たな中心座標を算出するようにしてもよい。たとえば、線分ＡＣまたは線分ＢＤの中点を新たな被解析画像の中心座標とする。あるいは、直線ＡＣと直線ＢＤの交点を新たな被解析画像の中心座標とする。あるいは、点Ｂまたは点Ｄから直線ＡＣに、点Ａまたは点Ｃから直線ＢＤに下した垂線の足を新たな被解析画像の中心座標とする。あるいは、点Ａ，点Ｏ，点Ｃに対する最小２乗直線と、点Ｂ，点Ｏ，点Ｄに対する最小２乗直線の交点を新たな被解析画像の中心座標とする。
【００１９】
また、上記新たな中心座標に基づいて楕円の５つのパラメータを算出する操作を、規定回数だけ繰り返すようにしてもよい。
【００２０】
また、上記新たな中心座標に基づいて楕円の５つのパラメータを算出する操作を、上記パラメータの変化量が既定値以下になるまで繰り返すようにしてもよい。
【００２１】
さらに、本発明は、方法の態様あるいはコンピュータソフトウェアの態様で実現することも可能である。
【００２２】
【発明の実施の態様】
以下、本発明の実施例について図２以降の図面を参照して説明する。この実施例においては、例えば、コンピュータシステムを用いて画像の本発明の画像解析を行なう。コンピュータシステム自体は周知であるので説明を行なわない。なお、この実施例に関連する説明においては、動作のステップをブロックにより示しているが、このブロックの１つ１つあるいは複数のブロックを一まとめにあるいは１つのステップを複数のハードウェア要素で構成し、ハードウェアの態様で実装してもよいことはもちろんである。
【００２３】
図２に本実施例のパラメータ抽出動作の概要を示す。本発明の中心部はこの部分である。図２において、被解析静止画像は前処理ステップＳ１で前処理された後、仮中心算出ステップＳ２、長径・短径算出ステップＳ３、傾き算出ステップＳ４、および評価ステップＳ５でそれぞれ処理される。前処理ステップＳ１は、画像を細線化したり、ノイズ除去等、誤認識を将来するファクタを除去ないし低減したりするものである。仮中心算出ステップＳ２は画像の質に応じて種々の態様で中心座標を算出するものである。長径・短径算出ステップＳ３は楕円の複数の性質を利用して長径および短径を算出する。傾き算出ステップＳ４は、算出した中心座標、長径、短径等から画像の傾きを算出する。評価ステップＳ５は得られたパラメータ（円で３つ、楕円で５つ）を評価し、評価が否定的であれば、中心座標を再設定して再度パラメータの算出を行なう。評価が肯定的になるまで同様のルーチンが繰り返される。
【００２４】
つぎに、上述のステップＳ１〜Ｓ５について詳細に説明する。前処理ステップＳ１の詳細を図３に示す。まず被解析画像甲はステップＳ１１において白黒画像かフルカラー画像かを判定される。白黒画像だった場合、ステップＳ１２においてそれが１ビット画像かどうかが判定される。ステップＳ１１またはＳ１２の判定でいずれかが「Ｎｏ」だった場合、ステップＳ１３において閾値処理を含むフィルタ処理によって２値化される。よって次ステップＳ１４に通される被解析画像甲は白黒２値化被解析画像乙となる。ステップＳ１４ではラプラシアンを含む局所型オペレータによってエッジ部が抽出される。さらにステップＳ１５では、ステップＳ１４で算出したエッジ強度に対してある適切な閾値を設定し、再び２値化被解析エッジ画像丙とする。エッジ画像の座標値はバッファ１（図示しない）に貯えられる。画像丙は仮中心算出ステップＳ２に送られる。
【００２５】
仮中心算出ステップＳ２の詳細を図４に示す。図４ではエッジ画像の状態によって中心座標算出方法を変えている。まず図５のようにエッジ画像に一定長以上の直線成分が含まれている場合、ステップＳ２０１にてこれを除去する。次に図６に示すように画像のＸ軸及びＹ軸に平行に走査線を移動させ、エッジ画像がこれらの走査線を切り取る場合のみ、つまりエッジ画像との交点のうち隣り合わないものが２組ある場合のみ、それらの中点を各々バッファ２，３（図示しない）に貯える（ステップＳ２０５，Ｓ２１３）。交点が１組以下だったり、３組以上ある場合には、中点を計算しない。例えば図７のようにエッジ画像がかすれており、交点が１組しかない場合や、図８のようにノイズがあり交点が３組以上存在する場合などである。走査線を両軸に対して平行に移動し、バッファ２，３に貯えられた中点の個数が共に閾値（本実施例では５）以上の場合、各々の中点を通る直線の式を最小２乗法により算出し（ステップＳ２０９，Ｓ２１７）、ステップＳ２１８にてこれら２直線の交点を求め、それを仮中心算出ステップＳ２の出力とする。一方バッファ２，３に溜まる中点のいずれかの個数が閾値未満だった場合、ステップＳ２１９に移る。ステップＳ２１９の処理の流れを図９に示す。この部分は前記のＴｓｕｊｉらによる手法と同様である。処理の内容自体は図９の記載から明らかであるので説明を省略する。ステップＳ２１９をもってしても、中心を求めることができない場合は、エッジ画素の重心をもって中心としたり、非線形最小２乗法などによって楕円の５つのパラメータを求めることにする。
【００２６】
図４の動作の詳細は以下のとおりである。
［ステップＳ２００］  エッジ画像に一定長以上の線分があるかどうかを判別する。このような線分はノイズである。このような線分がある場合にはステップＳ２０１に進む。なければ、ステップＳ２０２に進む。
［ステップＳ２０１］  線分をエッジ画像から除去する。
［ステップＳ２０２］  垂直な直線を引くためのインデックスｉを０に初期設定する。
［ステップＳ２０３］  直線Ｘ＝ｉをひく。
［ステップＳ２０４］  エッジ画像との間に隣り合わない交点の組が２個かどうかを判別する。そうであれば、有効なデータであるのでステップＳ２０５に進み、そうでなければ、ステップ２０６に進む。
［ステップＳ２０５］  交点の中点を算出してバッファ２に格納する。この後ステップＳ２０６に進む。
［ステップＳ２０６］  インデックスｉを１だけ増分する。
［ステップＳ２０７］  インデックスが所定値ｗより小さいかどうか判別する。
ｗは対象領域の水平方向の幅である。小さければ、ステップ２０３に戻り処理を繰り返す。小さくなければ、ステップＳ２０８に進む。
［ステップＳ２０８］  バッファ２内の中点の個数が閾値以上であれば中心算出の直線を求めるために、ステップＳ２０９へ進む。閾値未満であれば、正確な直線算出が困難なので、ステップ２１９（図９）へ進む。
［ステップＳ２０９］  最小２乗法により中点から中線を算出する。
［ステップＳ２１０］  水平な直線を引くためのインデックスｊを０に初期設定する。
［ステップＳ２１１］  直線Ｙ＝ｊをひく。
［ステップＳ２１２］  エッジ画像との間に隣り合わない交点の組が２個かどうかを判別する。そうであれば、有効なデータであるのでステップＳ２１３に進み、そうでなければ、ステップ２１４に進む。
［ステップＳ２１３］  交点の中点を算出してバッファ３に格納する。
［ステップＳ２１４］  インデックスｊを１だけ増分する。
［ステップＳ２１５］  インデックスが所定値ｈより小さいかどうか判別する。
ｈは対象領域の垂直方向の高さである。小さければ、ステップ２１１に戻り処理を繰り返す。小さくなければ、ステップＳ２１６に進む。
［ステップＳ２１６］  バッファ２内の中点の個数が閾値以上であれば中心算出の直線を求めるために、ステップＳ２１７へ進む。閾値未満であれば、正確な直線算出が困難なので、ステップ２１９（図９）へ進む。
［ステップＳ２１７］  最小２乗法により中点から中線を算出する。
［ステップＳ２１８］  ２本の中線の交点を求め出力する。
［ステップＳ２１９］  同じ傾きのエッジの中点から中心を求める（図９）。
【００２７】
以上のような処理を仮中心算出ステップＳ２にて行い、長径・短径算出ステップＳ３に進む。
【００２８】
ここでは、長径・短径算出ステップＳ３の詳細な手順を説明する前に、長径・短径算出のベースについてまず説明する。すなわち長径・短径算出ステップＳ３において楕円の図形的性質を用いて長径及び短径の長さを算出する方法を示す。
【００２９】
仮中心算出ステップＳ２の出力値を楕円画像の仮の中心Ｏの座標値とし、角ＡＯＢが９０度となるように楕円周上に点Ａ，点Ｂを定めると以下のような関係式を持つ。ただしａ，ｂは楕円の長径及び短径の長さである。
【００３０】
【数１】
0003593885.tif 000002
仮中心算出ステップＳ２の出力値をＯ（Ｘ，Ｙ）とし、値９０に対して十分に小さい値Φをパラメータとして設定し（本実施例ではΦ＝ｓｉｎ−１１／１０）、バッファ１に貯えられたエッジ画像座標値のうち角ＡＯＢが（９０−Φ）以上、（９０＋Φ）以下であるような座標の組（Ａ，Ｂ）をすべて決定する。これら決定した組に対して１／ＯＡ２＋１／ＯＢ２を計算し、その値の度数分布を求める。最も大きい度数を持つカテゴリをｐとすれば、これが１／ａ２＋１／ｂ２となっているはずである。次にａ，ｂに関するもう一つの関係式を用いる。楕円周上の任意の１点をＡとし、点Ａにおける楕円の接線の傾きと平行で楕円の中心Ｏを通る直線を引き、楕円周との交点を点Ｂ，点Ｃとすれば、
【００３１】
【数２】
0003593885.tif 000003
なる関係式を持つ。デジタル画像の場合、点Ｂ，点Ｃが存在しない場合があるが、バッファ１に貯えられた座標の中で楕円の中心Ｏに関して互いに反対位置にあり、上記直線との距離が最短である２組の座標を算出し、それらエッジから直線に下した垂線の足を点Ｂ，点Ｃと定める。再びすべてのエッジ座標Ａに対して三角形ＡＢＣの面積を求め、その値の度数分布を求める。最も大きい度数を持つカテゴリをｑとすれば、これがａｂとなっているはずである。以上の二つの図形的性質を示す図を図１３（ａ）（ｂ）に示す。この時ａ，ｂはｔに関する二次方程式
【００３２】
【数３】
0003593885.tif 000004
の２解となる。これを解いて、
【００３３】
【数４】
0003593885.tif 000005
を得る。
【００３４】
つぎに、長径・短径算出ステップＳ３の詳細を説明する。長径・短径算出ステップＳ３は、さらにステップＳ３１、Ｓ３２、Ｓ３３に分けることができる。ステップＳ３１は上述のｐ＝１／ａ２＋１／ｂ２を求めるものである。ステップＳ３２は、上述のｑ＝ａｂを求めるものである。ステップＳ３３は、ｐおよびｑから長径ａおよび短径ｂを求め、さらにエッジ画像が円か楕円かを判定するものである。ステップＳ３１、Ｓ３２およびＳ３３の処理の流れをそれぞれ図１０、図１１および図１２に示す。これらは並列に処理しても直列に処理してもよい。
【００３５】
図１０のステップ３１の処理は以下のとおりである。
［ステップＳ３１１］  インデックスｉ，ｊを１に初期設定する。
［ステップＳ３１２］  バッファ１のｉ個目の座標Ａｉを抽出する。
［ステップＳ３１３］  バッファ１のｊ個目の座標Ｂｊを抽出する。
［ステップＳ３１４］  角ＡｉＯＢｊが（９０−Φ）度以上、（９０＋Φ）度以下かどうかを判別する。そうであれば考慮対象であるのでステップＳ３１５に進み、そうでなければ考慮対象外であるのでステップＳ３１６に進む。
［ステップＳ３１５］  ヒストグラムに（ＯＡｉ）−２＋（ＯＢｊ）−２の値を蓄える。
［ステップＳ３１６］  インデックスｊを１だけ増分する。
［ステップＳ３１７］  バッファ１のｊ個目のデータが空かどうかを判別する。
空でなければステップＳ３１３に戻り処理を繰り返す。空であればステップＳ３１８に進む。
［ステップＳ３１８］  ｉ＝ｉ＋１、ｊ＝１に設定する。
［ステップＳ３１９］  バッファ１のｉ個目のデータが空かどうか判別する。空でなければ、ステップＳ３１２に戻り処理を繰り返す。空であればステップＳ３２０に進む。
［ステップＳ３２０］  最大度数のカテゴリをｐに代入する。
【００３６】
図１１のステップ３２の処理は以下のとおりである。
［ステップＳ３２１］  インデックスをｉ＝ｊ＝ｋ＝ｌ＝０に初期設定する
［ステップＳ３２２］  バッファ１のｉ個目の座標Ａｉを抽出する。
［ステップＳ３２３］  座標Ａｉにおけるエッジの傾きを計算する。
［ステップＳ３２４］  ＯＡｉを通る直線ｌ１：ｆ（ｘ，ｙ）＝０を算出する。
［ステップＳ３２５］  座標Ｏを通り、傾きＳの直線ｌ２：ｇ（ｘ，ｙ）＝０を算出する。
［ステップＳ３２６］  バッファ１のｊ個目の座標Ｂｊを抽出する。
［ステップＳ３２７］  直線ｌ２と座標Ｂｊの距離Ｌｊおよび座標Ｂｊから下ろした垂線の足Ｂ’ｊを算出する。
［ステップＳ３２８］  ｆ（Ｂ’ｊ）＞＝０かどうか判別する。そうであればステップＳ３２９に進む。そうでなければ、ステップＳ３３４へ進む。
［ステップＳ３２９］  ｋ＝０かどうかを判別する。そうであればステップＳ３３０へ進む。そうでなければ、ステップＳ３３２へ進む。
［ステップＳ３３０］  Ｌｂ＝Ｌｊ、Ｂ＝Ｂ’ｊとする。
［ステップＳ３３１］  ｋ＝１とする。
［ステップＳ３３２］  Ｌｂ＞Ｌｊを判別する。そうであればステップＳ３３３へ進む。そうでなければステップＳ３３４へ進む。
［ステップＳ３３３］  Ｌｂ＝Ｌｊ、Ｂ＝Ｂ’ｊとする。
［ステップＳ３３４］  ｌ＝０かどうかを判別する。そうであればステップＳ３３５へ進む。そうでなければステップＳ３３７へ進む。
［ステップＳ３３５］  Ｌｃ＝Ｌｊ、Ｃ＝Ｂ’ｊとする。
［ステップＳ３３６］  ｌ＝１とする。
［ステップＳ３３７］  Ｌｃ＞Ｌｊを判別する。そうであればステップＳ３３８へ進む。そうでなければステップＳ３３９へ進む。
［ステップＳ３３８］  Ｌｃ＝Ｌｊ、Ｃ＝Ｂ’ｊとする。
［ステップＳ３３９］  ｊ＝ｊ＋１とする。
［ステップＳ３４０］  バッファ１のｊ個目のデータが空かどうか判別する。空でなければステップＳ３２６に戻り処理を繰り返す。空であればステップＳ３４１へ進む。
［ステップＳ３４１］  三角形ＡｉＢＣの面積を求め、ヒストグラム２に蓄える。
［ステップＳ３４２］  ｊ＝１、ｉ＝ｉ＋１とする。
［ステップＳ３４３］  バッファ１のｉ個目のデータが空かどうか判別する。空でなければステップＳ３２２に戻り処理を繰り返す。空であればステップＳ３４４へ進む。
［ステップＳ３４４］  最大度数のカテゴリをｑに代入する。
【００３７】
以上の長径ａおよび短径ｂを求めるために必要なｐおよびｑが求まった。そして図１２のステップＳ３３で長径ａおよび短径ｂを求め、さらに円／楕円の判別を行なう。すなわち、ａとｂとの比の値が閾値（本実施例では１．０５）以下の場合、与えられたエッジ画像を中心がＯ（Ｘ，Ｙ），半径がａまたはｂの円と判定し、補正ステップに渡す。この補正ステップではステップＳ３３の出力値を初期値とする最小２乗法などで、より適合度の高いパラメータを算出する。もちろん初期値のまま出力してもよい。一方、ステップＳ３３においてエッジ画像を楕円と判定した場合、残りの１つのパラメータである傾きを決定するために傾き算出ステップＳ４に移行する。
【００３８】
なお、図１２のステップＳ３３の処理は以下のとおりである。
［ステップＳ３４５］  ｐ、ｑから長径ａおよび短径ｂを求める。
［ステップＳ３４６］  ａ／ｂ＜＝Ｔかどうかを判別する。そうであればステップＳ３４７へ進む。そうでなければステップＳ３４８へ進む。
［ステップＳ３４７］  エッジ画像を円と判断し所望の補正ステップへ進む。
［ステップＳ３４８］  エッジ画像を楕円と判断しステップＳ４へ進む。
【００３９】
つぎに、傾き算出ステップＳ４の処理について説明する。図１４は傾き算出ステップＳ４での処理の流れを示す。まず中心がＯ、長径がａで短径がｂのＸ軸Ｙ軸に平行な軸を持つ楕円Ｕを描く（ステップＳ４０１）。この楕円とエッジ画像との交点を図１５に示すように点Ａ，点Ｂ，点Ｃ，点Ｄとすれば、線分ＡＣと線分ＢＤは直交し、その交点は楕円の中心と一致する。エッジ画像上の点Ｐに対して、直線ＯＰと楕円Ｕの交点をＰ’とし、線分ＰＰ’の長さを持って楕円とエッジ画像上の画素との距離と定義する。今座標平面を以下の４つの領域に分ける（ステップＳ４０２）。それらを領域１（ｘ＞＝Ｘかつｙ＞Ｙ）、領域２（ｘ＜Ｘかつｙ＞＝Ｙ）、領域３（ｘ＜＝Ｘかつｙ＜Ｙ）、領域４（ｘ＞Ｘかつｙ＜＝Ｙ）とする。各領域内において楕円Ｕの外部にあって楕円Ｕとの距離が最小であるエッジ上の画素と、楕円Ｕの内部にあって楕円Ｕとの距離が最小であるエッジ上の画素とを選択し、それらを結ぶ線分と楕円Ｕとの交点を算出し、順に点Ａ，点Ｂ，点Ｃ，点Ｄとする（ステップＳ４０３）。この時点Ｏと４つの交点のうちいずれか（本実施例では点Ａ）を結ぶ直線の傾きをθとすれば、２θが求める楕円の傾きである（ステップＳ４０４）。こうしてこの時点で楕円の５つのパラメータがすべて算出できる。
【００４０】
線分ＡＣと線分ＢＤとの交点をとれば、これは理想的には楕円の中心座標と一致するはずであるが、実際には一致していない。そこで評価ステップＳ５が満足しないパラメータを傾き算出ステップＳ４が算出した場合、この新たに求めた中心を仮中心算出ステップＳ２の出力値とし、再び長径・短径算出ステップＳ３に戻す処理を行う。この操作を評価ステップＳ５が満足するまで繰り返す。評価ステップＳ５では線分ＡＣと線分ＢＤの角度が基準値内であるという条件にしてもよいし、線分ＡＣと線分ＢＤの交点と、直前に算出された楕円の中心座標との距離が基準値以内であるとしてもよいし、線分ＡＣと線分ＢＤの中点の距離が基準値以内であるとしてもよいし、線分ＡＣまたは線分ＢＤの中点が一方の線分の上にどの程度乗っているかを基準にしてもよい。また必要回数だけ評価ステップＳ５から長径・短径算出ステップＳ３に戻すループを回し、必要回数ループを回した後に得られるパラメータを評価ステップＳ５の出力としてもよい。ただしこのようなループを回すためにはエッジ画像と楕円Ｕとの間に最低でも対応する１組の交点（例えば点Ａと点Ｃ）が求まっている必要がある。この場合線分ＡＣの中点を新たな中心座標と置換することが可能である。対応する１組の交点が求まっていない場合は、求められた交点の一つと中心座標とを結んでできる直線の傾きをもってθとし、ループは回さない。また交点を１点も求めることができない場合は、本手法によっては傾きを算出することができず、最小２乗法などの手段により傾きを求める。ただし、本実施例で用いた画像では交点が１点も求めることができない程のノイズを持つものは存在しなかった。
【００４１】
【発明の効果】
本発明によれば、円を含む楕円の５つのパラメータを複雑な計算をすることなしに算出することが可能となる。またエッジ画像にノイズが含まれていたり、切れ目が生じている場合でもパラメータの算出が可能である。
【図面の簡単な説明】
【図１】本発明を説明するためのブロック図である。
【図２】本発明の実施例を全体的に示すフローチャートである。
【図３】図２のステップＳ１の詳細なアルゴリズムを示す図である。
【図４】図２におけるステップＳ２の詳細なアルゴリズムを示す図である。
【図５】図４におけるステップＳ２０１を説明する図である。
【図６】図４における中点算出手法を説明する図である。
【図７】図４においてエッジ画像と直線との交点が１点のみである具体例を示す図である。
【図８】図４においてエッジ画像と直線との交点が３点以上ある場合の具体例を示す図である。
【図９】図４におけるステップＳ２１９の詳細なアルゴリズムを示すフローチャートである。
【図１０】図２におけるステップＳ３の一部（ステップＳ３１）の詳細なアルゴリズムを示すフローチャートである。
【図１１】図２におけるステップＳ３の一部（ステップＳ３２）の詳細なアルゴリズムを示すフローチャートである。
【図１２】図２におけるステップＳ３の一部（ステップＳ３３）の詳細なアルゴリズムを示すフローチャートである。
【図１３】楕円の図形的性質を示す図である。
【図１４】図２におけるステップＳ４の詳細なアルゴリズムを示すフローチャートである。
【図１５】図１４における傾き算出手法を説明する図である。
【符号の説明】
１１    前処理部
１２    仮中心算出部
１３    長径・短径算出部
１４    傾き算出部
１５    評価部
Ｓ１    前処理ステップ
Ｓ２    仮中心算出ステップ
Ｓ３    長径・短径算出ステップ
Ｓ４    傾き算出ステップ
Ｓ５    評価ステップ
【図１】
0003593885.tif 000006
【図２】
0003593885.tif 000007
【図３】
0003593885.tif 000008
【図４】
0003593885.tif 000009
【図５】
0003593885.tif 000010
【図６】
0003593885.tif 000011
【図７】
0003593885.tif 000012
【図８】
0003593885.tif 000013
【図９】
0003593885.tif 000014
【図１０】
0003593885.tif 000015
【図１１】
0003593885.tif 000016
【図１２】
0003593885.tif 000017
【図１３】
0003593885.tif 000018
【図１４】
0003593885.tif 000019
【図１５】
0003593885.tif 000020