(57)【特許請求の範囲】
【請求項１】
内フックから外フックまで渦巻状に伸びる渦巻きばねの形状を測定する形状測定装置であり、
渦巻きばねを撮影した撮影画像を入力する画像入力手段と、
前記撮影画像を極座標変換した極座標画像を作成する画像変換手段と、
前記極座標画像を用いて、前記撮影画像中の内フックが撮影されている内フック位置、及び／又は、外フックが撮影されている外フック位置を特定するフック位置特定手段と、
を備え、
前記フック位置特定手段は、前記極座標画像の各画素値を半径軸方向の位置毎に加算したｒ方向ヒストグラムを作成し、そのｒ方向ヒストグラムを用いて内フック位置及び／又は外フック位置を特定することを特徴とする形状測定装置。
【請求項２】
前記内フック位置及び／又は外フック位置を用いて、前記撮影画像中の内フックが撮影されている内フック領域、及び／又は、外フックが撮影されている外フック領域を特定するフック領域特定手段をさらに備えることを特徴とする請求項１に記載の形状測定装置。
【請求項３】
前記フック領域特定手段は、前記極座標画像の各画素値を半径軸方向の位置毎に加算したｒ方向ヒストグラムと、前記極座標画像の各画素値を角度軸方向の位置毎に加算したθ方向ヒストグラムを作成し、そのｒ方向ヒストグラムとθ方向ヒストグラムを用いて前記内フック領域及び／又は外フック領域を特定することを特徴とする請求項２に記載の形状測定装置。
【請求項４】
前記フック領域特定手段は、前記ｒ方向ヒストグラムを用いて外フック領域の半径方向の境界位置を特定し、前記θ方向ヒストグラムを用いて外フック領域の角度軸方向の境界位置を特定することを特徴とする請求項３に記載の形状測定装置。
【請求項５】
前記フック領域特定手段は、前記極座標画像の半径軸に平行なラインを順次抽出し、抽出したライン上の各画素値を半径軸方向の位置毎に加算していく累積ヒストグラムを作成し、その累積ヒストグラムを用いて前記内フック領域を特定することを特徴とする請求項３又は４に記載の形状測定装置。
【請求項６】
前記画像変換手段は、前記撮影画像に撮影された渦巻きばねの像の重心を算出し、その重心を中心として極座標変換を行うことを特徴とする請求項１から５のいずれか一項に記載の形状測定装置。
【請求項７】
前記極座標画像の半径軸に平行なラインを順次抽出し、抽出したライン上の各画素値を半径軸方向の位置毎に加算していく累積ヒストグラムを作成し、その累積ヒストグラムを用いて、渦巻きばねの巻き方向を判別する第１の巻き方向判別手段をさらに備えることを特徴とする請求項１から６のいずれか一項に記載の形状測定装置。
【請求項８】
前記撮影画像を内フックに沿った直線によって分割し、分割した二つの領域を比較することによって、渦巻きばねの巻き方向を判別する第２の巻き方向判別手段をさらに備えることを特徴とする請求項１から７のいずれか一項に記載の形状測定装置。
【請求項９】
内フックから外フックまで渦巻状に伸びる渦巻きばねの形状を測定する形状測定方法であり、コンピュータに下記の処理、即ち、
渦巻きばねを撮影した撮影画像を入力する画像入力処理と、
前記撮影画像を極座標変換した極座標画像を作成する画像変換処理と、
前記極座標画像を用いて、内フックが撮影されている内フック位置、及び／又は、前記撮影画像中の外フックが撮影されている外フック位置を、前記撮影画像中に特定するフック位置特定処理と、
を実行させ、
前記フック位置特定処理では、前記極座標画像の各画素値を半径軸方向の位置毎に加算したｒ方向ヒストグラムを作成し、そのｒ方向ヒストグラムを用いて内フック位置及び／又は外フック位置を特定することを特徴とする形状測定方法。
【請求項１０】
内フックから外フックまで渦巻状に伸びる渦巻きばねの形状を測定するためのプログラムであり、コンピュータに下記の処理、即ち、
渦巻きばねを撮影した撮影画像を入力する画像入力処理と、
前記撮影画像を極座標変換した極座標画像を作成する画像変換処理と、
前記極座標画像を用いて、内フックが撮影されている内フック位置、及び／又は、前記撮影画像中の外フックが撮影されている外フック位置を、前記撮影画像中に特定するフック位置特定処理と、
を実行させ、
前記フック位置特定処理では、前記極座標画像の各画素値を半径軸方向の位置毎に加算したｒ方向ヒストグラムを作成し、そのｒ方向ヒストグラムを用いて内フック位置及び／又は外フック位置を特定することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理を用いて物体の形状を測定する技術に関する。特に、画像処理を用いて渦巻きばねの形状を測定する技術に関する。ここでいう渦巻きばねとは、平面視したときに、内フックから外フックまで渦巻状に伸びるばねを意味する。
【背景技術】
【０００２】
特許文献１に、画像処理を用いて物体の形状を測定する技術が開示されている。この技術では、測定対象である物体を撮影した撮影画像から、予め登録された測定対象領域を抽出し、抽出した測定対象領域の画像を用いて物体の各部の寸法を測定する。測定対象領域を抽出する際には、基準となる物体を撮影した基準画像の測定対象領域を用い、パターンマッチングによる測定対象領域の補正を行なっている。
【０００３】
【特許文献１】特開平１１−３３４２４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術は、渦巻きばねの形状測定にも適用することができる。渦巻きばねの形状測定では、主に、内フックや外フックの位置や形状を測定する必要がある。そのことから、特許文献１の技術を用いる場合には、前記した測定対象領域を内フックや外フックの位置に合わせて登録しておく必要がある。
しかしながら、渦巻きばねの場合、必要とされるばね定数等の特性に応じて、その形状が様々に変化する。従って、特許文献１の技術を利用するためには、渦巻きばねの形状に応じて、測定対象領域を個々に設定しておく必要がある。さらに、渦巻きばねの場合、同一種類の渦巻きばねであっても、例えば外フックの位置等が比較的にばらつきやすく、その形状に個体差が生じやすい。そのことから、予め設定された測定対象領域では、内フックや外フックの像を抽出できない場合がある。
上記の問題を鑑み、本発明は、渦巻きばねの撮影画像から内フックや外フックの位置を正しく特定することができる技術を提供する。
【課題を解決するための手段】
【０００５】
本発明は、内フックから外フックまで渦巻状に伸びる渦巻きばねの形状を測定する形状測定装置に具現化されるこの形状測定装置は、渦巻きばねを撮影した撮影画像を入力する画像入力手段と、前記撮影画像を極座標変換した極座標画像を作成する画像変換手段と、前記極座標画像を用いて、内フックが撮影されている内フック位置、及び／又は、前記撮影画像中の外フックが撮影されている外フック位置を、前記撮影画像中に特定するフック位置特定手段を備えている。
【０００６】
この形状測定装置では、渦巻きばねの撮影画像に対して極座標変換を行い、極座標画像を作成する。極座標画像では、半径軸に沿って、内フックと素線の周回部分と外フックが、互いに分かれて存在する。そのことから、内フックや外フックの位置を、正確に特定することが可能となる。極座標画像上で特定された内フックや外フック位置は、直交座標への逆変換を行うことによって、撮影画像における内フックや外フック位置に変換することができる。
この形状測定装置によると、渦巻きばねの撮影画像から内フックや外フックの位置を正しく特定することができ、渦巻きばねの形状測定を正しく行うことができる。
【０００７】
上記した形状測定装置において、フック位置特定手段は、極座標画像の各画素値を半径軸方向の位置毎に加算したｒ方向ヒストグラムを作成し、そのｒ方向ヒストグラムを用いて内フック位置及び／又は外フック位置を特定することが好ましい。
上記のようなｒ方向ヒストグラムを用いると、内フック位置や外フック位置を正確かつ容易に特定することが可能となる。
【０００８】
本発明に係る形状測定装置は、前記した内フック位置及び／又は外フック位置を用いて、撮影画像中の内フックが撮影されている内フック領域、及び／又は、外フックが撮影されている外フック領域を特定するフック領域特定手段をさらに備えることが好ましい。
この装置によると、渦巻きばねの撮影画像から内フックや外フックの撮影領域を抽出し、内フックや外フックの形状、あるいは内フックや外フックを基準とする渦巻きばね全体の形状を正確に測定することができる。
【０００９】
前記したフック領域特定手段は、前記極座標画像の各画素値を半径軸方向の位置毎に加算したｒ方向ヒストグラムと、前記極座標画像の各画素値を角度軸方向の位置毎に加算したθ方向ヒストグラムを作成し、そのｒ方向ヒストグラムとθ方向ヒストグラムを用いて前記内フック領域及び／又は外フック領域を特定することが好ましい。
上記のようなｒ方向ヒストグラムとθ方向ヒストグラムを用いると、内フック領域や外フック領域を正確かつ容易に特定することができる。
【００１０】
前記したフック領域特定手段は、前記ｒ方向ヒストグラムを用いて外フック領域の半径方向の境界位置を特定し、前記θ方向ヒストグラムを用いて外フック領域の周方向の境界位置を特定することが好ましい。
この手法によると、特に外フック領域を正確かつ容易に特定することができる。
【００１１】
前記したフック領域特定手段は、前記極座標画像の内フック上を通る半径軸に平行なラインを順次抽出し、抽出したライン上の各画素値を半径軸方向の位置毎に加算していく累積ヒストグラムを作成し、その累積ヒストグラムを用いて前記内フック領域を特定することが好ましい。
上記のような累積ヒストグラムを用いると、例えば内フックが極座標変換の原点に重なる場合でも、内フック領域を正確に特定することができる。
【００１２】
前記した画像変換手段は、撮影画像に撮影された渦巻きばねの像の重心を算出し、その重心を中心として極座標変換を行うことが好ましい。
この手法によると、撮影画像に撮影された渦巻きばねの位置にかかわらず、内フックや外フックの位置を正しく特定することができる。
【００１３】
本発明の形状測定装置は、撮影画像に撮影された渦巻きばねの巻き方向を判別する第１の巻き方向判別手段を備えることが好ましい。第１の巻き方向判別手段は、前述した累積ヒストグラムを用いて、渦巻きばねの巻き方向を判別することが好ましい。
前述した累積ヒストグラムは、撮影画像に撮影された渦巻きばねの巻き方向に応じて、その形状が対称的に変化する。そのことから、累積ヒストグラムのこの特徴を利用すると、撮影画像に撮影された渦巻きばねの巻き方向を判別することができる。渦巻きばねの巻き方向を判別することにより、内フックや外フックの位置を誤って特定することが防止される。
【００１４】
本発明の形状測定装置は、撮影画像に撮影された渦巻きばねの巻き方向を判別する第２の巻き方向判別手段を備えることが好ましい。第２の巻き方向判別手段は、前記撮影画像を内フックに沿った直線によって分割し、分割した二つの領域を比較することによって、渦巻きばねの巻き方向を判別することが好ましい。
内フックの基端部では、渦巻きばねの素線がその巻き方向に応じて一方に湾曲していく。そのことから、撮影画像を内フックに沿った直線によって分割すると、一方の領域には内フックの基端部が存在し、他方の領域には内フックの基端部が存在しないことになる。そのことから、分割した二つの領域の画素値を比較することによって、撮影画像に撮影された渦巻きばねの巻き方向を判別することができる。渦巻きばねの巻き方向を判別することにより、内フックや外フックの位置を誤って特定することが防止される。
【００１５】
本発明は、渦巻きばねの形状を測定する形状測定方法にも具現化される。この形状測定方法は、コンピュータに、渦巻きばねを撮影した撮影画像を入力する画像入力処理と、前記撮影画像を極座標変換した極座標画像を作成する画像変換処理と、前記極座標画像を用いて、内フックが撮影されている内フック位置、及び／又は、前記撮影画像中の外フックが撮影されている外フック位置を、前記撮影画像中に特定するフック位置特定処理を実行させる。このフック位置特定処理では、前記極座標画像の各画素値を半径軸方向の位置毎に加算したｒ方向ヒストグラムを作成し、そのｒ方向ヒストグラムを用いて内フック位置及び／又は外フック位置を特定する。
この方法によっても、渦巻きばねの撮影画像から内フックや外フックの位置を正しく特定することができ、渦巻きばねの形状測定を正しく行うことができる。
【００１６】
本発明はさらに、渦巻きばねの形状を測定するためのプログラムにも具現化される。このプログラムは、コンピュータに、渦巻きばねを撮影した撮影画像を入力する画像入力処理と、前記撮影画像を極座標変換した極座標画像を作成する画像変換処理と、前記極座標画像を用いて、内フックが撮影されている内フック位置、及び／又は、前記撮影画像中の外フックが撮影されている外フック位置を、前記撮影画像中に特定するフック位置特定処理を実行させる。このフック位置特定処理では、前記極座標画像の各画素値を半径軸方向の位置毎に加算したｒ方向ヒストグラムを作成し、そのｒ方向ヒストグラムを用いて内フック位置及び／又は外フック位置を特定する。
このプログラムにより、コンピュータを用いて、渦巻きばねの撮影画像から内フックや外フックの位置を正しく特定することができ、渦巻きばねの形状測定を正しく行うことができる。
【発明の効果】
【００１７】
本発明によれば、渦巻きばねを撮影した画像から内フックや外フックが撮影された位置を正しく特定し、渦巻きばねの形状を正しく測定することが可能となる。
【発明を実施するための最良の形態】
【００１８】
本発明を実施するための好適な形態を列記する。
（形態１）  形状測定装置は、ｒ方向ヒストグラムを用いて、渦巻きばねを第１タイプと第２タイプに分類することができる。ここで、第１タイプとは、内フックが渦巻きばねの重心に重ならないものを意味し、第２タイプとは、内フックが渦巻きばねの重心に重なるものを意味する。
（形態２）  形状測定装置は、以下の手順（１）−（４）により、渦巻きばねの撮影画像から、内フック又は外フックの特徴点を抽出することができる。
（１）渦巻きばねの撮影画像中に特定した内フック領域又は外フック領域から、内フック又は外フックの像の輪郭線を抽出する。
（２）抽出した輪郭線を座標点群で表す輪郭線座標系列を作成し、その輪郭線座標系列から複数の部分輪郭線系列を抽出する。
（３）抽出した複数の部分輪郭線系列に対して類似度又は距離尺度を算出する。
（４）算出した類似度又は距離尺度を用いて、内フック又は外フックの輪郭線上に特徴点を特定する。
（形態３）  形状測定装置は、上記の形態２で算出した特徴点を用いて、内フック又は外フックの輪郭線座標系列から内側輪郭線系列と外側輪郭線系列を特定することができる。
（形態４）  形状測定装置は、上記の形態３で特定した内側輪郭線系列と外側輪郭線系列の少なくとも一部を、円近似することができる。
（形態５）  形状測定装置は、コンピュータを用いて構成されている。コンピュータは、そのハードウエアや記憶しているソフトウエア（プログラム）によって、各処理を実行する構成が実現されている。
（形態６）  形状測定装置は、渦巻きばねを撮影し、その画像データを作成するカメラを備えている。
（形態７）  形状測定装置は、撮影画像を二値化処理することができる。
【実施例】
【００１９】
本発明を具現化した実施例について図面を参照しながら説明する。図１は、本実施例の形状測定装置１０を示す。形状測定装置１０は、渦巻きばね３０の各部の寸法を計測する装置である。
図１に示すように、形状測定装置１０は、ステージ１２と、ステージ１２上に配置された照明器１４と、ステージ１２に固定されているＣＣＤカメラ１６と、ＣＣＤカメラ１６に通信線１８を介して接続されているコンピュータ２２と、コンピュータ２２に接続されているディスプレイ２０を備えている。
照明器１４は、面光源であり、その発光面上に渦巻きばね３０が載置される。ＣＣＤカメラ１６は、照明器１４上に配置されており、照明器１４上に載置された渦巻きばね３０を撮影する。即ち、渦巻きばね３０は照明器１４によって下方から照明され、照明器１４の透過光（渦巻きばね３０の影）がＣＣＤカメラ１６によって撮影される。なお、照明器１４は、本実施例のような透過照明に限定されず、渦巻きばね３０を上方から照明するものでもよい。この場合、渦巻きばね３０が全周方向から均等に照明されるように、複数の照明器やリング型の照明器を用いることが好ましい。
ＣＣＤカメラ１６が撮影した画像データは、通信線１８を介してコンピュータ２２に入力される。コンピュータ２２には、後述する形状測定処理を実行するためのプログラムが記憶されている。コンピュータ２２は、ＣＣＤカメラ１６が撮影した撮影画像の画像データを処理し、渦巻きばね３０の各部の寸法を算出する。コンピュータ２２は、算出した渦巻きばね３０の各部の寸法を、ディスプレイ２０に表示する。
【００２０】
図２は、形状測定装置１０による渦巻きばね３０の形状測定の流れを示すフローチャートである。図３は、図２のフローチャートに示すステップＳ１４のフック領域の特定処理の流れを示すフローチャートである。形状測定装置１０は、図２、図３に示す工程、処理を経て、渦巻きばね３０の各部の寸法値を測定する。図４は、形状測定装置１０が寸法を測定する箇所を示す。図４に示すように、形状測定装置１０は、（１）渦巻きばねの内径Ｄｉｎ、（２）フリー角度θｆ、（３）フック半径ＨＲ、（４）外フック長さＬｏｈ、（５）内フック長さＬｉｈ、（６）外フック曲率半径Ｒｏｈ、（７）内フック曲率半径Ｒｉｈ、（８）外フック角度θｍｔ、（９）内フック先端からの距離Ｄｔｉｐ、の９種の寸法を測定することができる。以下、図２、図３に示すフローチャートに沿って、形状測定装置１０による渦巻きばね３０の形状測定の流れを説明する。
【００２１】
先ず、図２のステップＳ１２において、ＣＣＤカメラ１６により、渦巻きばね３０の撮影を行う。図５、図６に、２種類の渦巻きばね３０の撮影画像１００を例示する。ここで、渦巻きばね３０を撮影する際には、上から見て右巻きとなるように渦巻きばね３０を配置する。また、内フック３２がおよそ上方を向くように配置する。ＣＣＤカメラ１６による撮影画像１００は、コンピュータ２２に入力される。
図５、図６に示す２種類の渦巻きばね３０は、共に、内フック３２から外フック３４まで、渦巻状に伸びている。ただし、これら２種類の渦巻きばね３０は、その内フック３２の形状に有意な違いを有する。即ち、図５に示す渦巻きばね３０は、その内フック３２が渦巻きばね３０の重心Ｇと重ならないが、図６に示す渦巻きばね３０は、その内フック３２が渦巻きばね３０の重心Ｇと重なっている。本明細書では、図５に示す渦巻きばね３０を第１タイプと称し、図６に示す渦巻きばね３０を第２タイプと称する。形状測定装置１０は、第１タイプと第２タイプの双方の渦巻きばね３０の形状測定を行うことができる。詳しくは後述するが、形状測定装置１０は、測定する渦巻きばね３０が第１タイプであるのか第２タイプであるのかを判別し、一部の処理についてタイプ毎に異なる処理を実行する。なお、特に区別した説明がない場合は、第１タイプと第２タイプで共通の処理が行われるものとする。
撮影画像１００は、画素（ｘ，ｙ）毎にグレイスケール値ＧＳ（ｘ，ｙ）を有するグレイスケール画像である。ここで、撮影画像１００に対し、ノイズを除去する各種の処理を必要に応じて行うとよい。
【００２２】
次に、図２のステップＳ１４では、ステップＳ１２で撮影された撮影画像１００から、内フック３２が撮影されている内フック領域と、外フック３４が撮影されている外フック領域の特定が行われる。この内外フックの特定処理について、図３に示すフローチャ−トに沿って説明する。なお、このステップＳ１４からＳ３８までの処理は、コンピュータ２２によって実行される。
先ず、図３のステップＳ１１２では、ステップＳ１２による撮影画像１００から、極座標画像を作成する。図７（ａ）に、第１タイプの渦巻きばね３０（図５参照）の極座標画像を示す。図８（ａ）に、第２タイプの渦巻きばね３０（図６参照）の極座標画像を示す。極座標画像の作成は、渦巻きばね３０の像の重心Ｇ（ｃｘ，ｃｙ）を仮の中心として求めた後、以下の変換式によって行うことができる。なお、Ｐｏｌａｒ（θ，Ｒ）は、極座標画像におけるグレイスケール値を示す。
【００２３】
【数１】
0005132403.tif 000002
【００２４】
次に、ステップＳ１１４では、ステップＳ１１２で作成した極座標画像を用い、ｒ方向ヒストグラムＨｒ（ｒ）を作成する。ｒ方向ヒストグラムＨｒ（ｒ）は、極座標画像のグレイスケール値Ｐｏｌａｒ（θ，Ｒ）をθ軸方向に加算して平均したものである。図７（ｂ）に、第１タイプの渦巻きばね３０（図５参照）のｒ方向ヒストグラムを示す。図８（ｂ）に、第２タイプの渦巻きばね３０（図６参照）のｒ方向ヒストグラムを示す。ｒ方向ヒストグラム値Ｈｒ（ｒ）は、下記の式によって算出される。なお、下記式のＴＨｅは、ノイズを除去するためのしきい値である。
【００２５】
【数２】
0005132403.tif 000003
【００２６】
次に、ステップＳ１１６では、内フック形状３２の識別が行われる。即ち、測定対象の渦巻きばね３０が、第１タイプであるのか第２タイプであるのかが判定される。この処理には、ステップＳ１１４で作成したｒ方向ヒストグラムが用いられる。図７（ｂ）、図８（ｂ）を比較して明らかなように、第１タイプの渦巻きばね３０では、内フック３２上に重心Ｇが位置しないので（図５参照）、ｒ方向ヒストグラムではθ軸（ｒ＝０）の近傍の値が小さくなる。一方、第２タイプの渦巻きばね３０では、内フック３２上に重心Ｇが位置するので（図６参照）、ｒ方向ヒストグラムではθ軸（ｒ＝０）の近傍は値が大きくなる。そのことから、このステップＳ１１６の処理では、０≦ｒ≦１５までのｒ方向ヒストグラム値Ｈｒ（ｒ）に注目する。そして、その範囲における最小のｒ方向ヒストグラム値Ｈｒ（ｒ）が所定の判定値以下のときに第１タイプと判定し、その範囲における最小のｒ方向ヒストグラム値Ｈｒ（ｒ）がその判定値を超えるときに第２タイプと判定する。
【００２７】
次に、ステップＳ１１８では、内フック３２及び外フック３４の位置（座標）を検出する。この処理では、ｒ方向ヒストグラムが利用される。この処理では、以下の（１）、（２）のように、渦巻きばね３０のタイプ毎に異なる処理が実行される。
（１）第１タイプの場合
（外フック位置）
図７（ａ）に示すように、渦巻きばね３０の極座標画像において、重心Ｇから最も遠い極座標（θｏｕｔ，Ｒｏｕｔ）を、外フック３４の極座標画像における位置として検出する。外フック３４の極座標（θｏｕｔ，Ｒｏｕｔ）は、以下のように特定される。先ず、注目座標ｒを最大値（極座標画像の右端）から順に減算していき、ｒ方向ヒストグラム値Ｈｒ（ｒ）が所定のしきい値ＴＨ（図示省略）を超えるときのｒ座標を、外フック３４のｒ座標Ｒｏｕｔとする。次いで、極座標画像においてｒ＝Ｒｏｕｔの１ラインに注目し、そのライン上でグレイスケール値Ｐｏｌａｒ（θ，Ｒｏｕｔ）が最小となるθ座標を、外フック３４のθ座標θｏｕｔとする。算出された外フック３４の極座標（θｏｕｔ，Ｒｏｕｔ）は、外フック３４の直交座標（ｘｏｕｔ，ｙｏｕｔ）に変換される。
【００２８】
（内フック位置）
図７（ａ）に示すように、渦巻きばね３０の極座標画像において、重心Ｇから最も近い極座標（θｉｎ，Ｒｉｎ）を、内フック３２の極座標画像における位置の位置として検出する。内フック３２の極座標（θｉｎ，Ｒｉｎ）は、以下のように特定される。先ず、注目座標ｒをｒ＝０（極座標画像の左端）から順に加算していき、ｒ方向ヒストグラム値Ｈｒ（ｒ）が所定のしきい値ＴＨｃを超えるときのｒ座標ｒｔｈｃを特定する。次に、注目座標ｒをｒ＝ｒｔｈｃから順に減算していき、ｒ方向ヒストグラム値Ｈｒ（ｒ）がゼロとなるｒ座標ｒｃ０を特定する。内フック３２のｒ座標Ｒｉｎは、ｒ方向ヒストグラム値Ｈｒ（ｒ）がゼロとなる１つ前のｒ座標として、Ｒｉｎ＝ｒｃ０＋１と特定される。次に、極座標画像においてｒ＝Ｒｉｎの１ラインに注目し、そのライン上でグレイスケール値Ｐｏｌａｒ（θ，Ｒｉｎ）が最小となるθ座標を、内フック３２のθ座標θｉｎとする。算出された内フック３２の極座標（θｉｎ，Ｒｉｎ）は、内フック３２の直交座標（ｘｉｎ，ｙｉｎ）に変換される。
【００２９】
（２）第２タイプの場合
（外フック位置）
図８（ａ）に示すように、渦巻きばね３０の極座標画像において、重心Ｇから最も遠い極座標（θｏｕｔ，Ｒｏｕｔ）を、外フック３４の極座標画像における位置として検出する。外フック３４の極座標（θｏｕｔ，Ｒｏｕｔ）及び直交座標（ｘｏｕｔ，ｙｏｕｔ）は、上記した第１タイプと同じように特定される。
（内フック位置）
図８（ａ）に示すように、渦巻きばね３０の極座標画像において、極座標画像のくびれた部分の極座標（θｉｎ，Ｒｉｎ）を、内フック３２の極座標画像における位置として検出する。先ず、注目座標ｒをｒ＝Ｒｏｕｔから順に減算していき、ｒ方向ヒストグラム値Ｈｒ（ｒ）が所定のしきい値ＴＨｄを超えるときのｒ座標を、渦巻きばね３０の仮の外径Ｒｄとして特定する。次いで、１５≦ｒ＜Ｒｄの範囲のｒ方向ヒストグラム値Ｈｒ（ｒ）に注目し、ｒ方向ヒストグラム値Ｈｒ（ｒ）の最小値ｈｍと、その最小値ｈｍを与えるｒ座標Ｒｍを、仮の内フックのｒ座標として特定する。図９に、ｒ座標Ｒｍの近傍におけるｒ方向ヒストグラムを拡大して示す。図９に示すように、次いで、仮の内フック座標Ｒｍを起点に、ｒ座標をｒ＝Ｒｍからｒ＝Ｒｍ＋Δまで順に加算していき、ｒ方向ヒストグラム値Ｈｒ（ｒ）がｈｍ＋δを超えるｒ座標ｒｂを特定する。また、ｒ座標をｒ＝Ｒｍからｒ＝Ｒｍ−Δまで順に減算していき、ｒ方向ヒストグラム値Ｈｒ（ｒ）がｈｍ＋δを超えるｒ座標ｒａを特定する。そして、ｒ座標ｒａとｒ座標ｒｂの中央値（ｒａ＋ｒｂ）／２を、内フック３２のｒ座標Ｒｉｎとする。内フック３２のθ座標θｉｎは、第１タイプと同様に、グレイスケール値Ｐｏｌａｒ（θ，Ｒｉｎ）が最小となるθ座標を、内フック３２のθ座標θｉｎとする。算出された内フック３２の極座標（θｉｎ，Ｒｉｎ）は、内フック３２の直交座標（ｘｉｎ，ｙｉｎ）に変換される。
【００３０】
次いで、図３のステップＳ１２０、Ｓ１２２では、図１０に示す外フック領域１０４の特定が行われる。外フック領域１０４とは、渦巻きばね３０の撮影画像１００のなかで、その外フック３４が撮影されている領域である。本実施例の形状測定装置１０は、以下に説明する処理によって、渦巻きばね３０の撮影画像１００から外フック領域１０４を特定する。なお、ステップＳ１２０、Ｓ１２２の処理は、渦巻きばね３０のタイプによらず共通である。
先ず、ステップＳ１２０において、図１０に示す外フック領域１０４の境界半径Ｒｃｕｔを特定する。この境界半径Ｒｃｕｔは、外フック領域１０４の半径方向内側の境界を決定するものである。境界半径Ｒｃｕｔは、以下のように特定される。図１１（ａ）（ｂ）に示すように、注目座標ｒを最大値（極座標画像の右端）から順に減算していき、ｒ方向ヒストグラム値Ｈｒ（ｒ）が所定のしきい値ＴＨｒ／２を超えるときのｒ座標を、外フック３４のｒ座標Ｒｃｕｔとする。
【００３１】
次いで、ステップＳ１２２では、図１０に示す外フック領域１０４の周方向の境界である境界上限角θｅと境界下限角θｓを特定する。これらの境界上限角θｅと境界下限角θｓは、外フック領域１０４の周方向の境界を決定するものである。境界上限角θｅと境界下限角θｓは、以下のように特定される。先ず、図１１（ａ）に示す極座標画像のｒ座標が境界半径Ｒｃｕｔよりも大きい範囲に対し、θ方向ヒストグラムＨｏ（θ）を作成する。図１２に、θ方向ヒストグラムＨｏ（θ）を示す。θ方向ヒストグラムＨｏ（θ）は、θ座標毎に、グレイスケール値Ｐｏｌａｒ（θ，ｒ）をｒ軸に沿って加算したものである。θ方向ヒストグラムＨｏ（θ）は、下記の式によって算出される。なお、下記式のＴＨｏは、ノイズを除去するためのしきい値である。
【００３２】
【数３】
0005132403.tif 000004
【００３３】
図１２に示すθ方向ヒストグラムＨｏ（θ）において、注目座標θを、ステップＳ１１８で特定した内フック３２のθ座標であるθｉｎからθｉｎ＋θ１（θ１：既定の角度値）まで増加させていき、θ方向ヒストグラムＨｏ（θ）がゼロとなるθ座標θｏｅを特定する（Ｈｏ（θｏｅ）＝０）。また、注目座標θを、θｉｎからθｉｎ−θ１まで減算させていき、θ方向ヒストグラムＨｏ（θ）がゼロとなるθ座標θｏｓを特定する（Ｈｏ（θｏｓ）＝０）。外フック領域１０４の境界上限角θｅと境界下限角θｓは、ここで特定したθ座標θｏｅとθｏｓに余裕幅θ２（θ２＜θ１）を与え、境界上限角θｅ＝θｏｅ＋θ２、境界下限角θｓ＝θｏｓ−θ２と定める。
以上により、外フック領域１０４を画定する境界半径Ｒｃｕｔ、境界上限角θｅ、及び境界下限角θｓが決定され、外フック領域１０４が特定される。これらの境界値Ｒｃｕｔ，θｅ，θｓにより、渦巻きばね３０の撮影画像１００から、図１３に示すような外フック３４のみを示す外フック画像１１４を得ることができる。
【００３４】
次に、図３のステップＳ１２４では、図１４に示す内フック領域１０２の特定が行われる。内フック領域１０２とは、渦巻きばね３０の撮影画像１００のなかで、その内フック３２が撮影されている領域である。本実施例の形状測定装置１０は、以下に説明する処理によって、渦巻きばね３０の撮影画像１００から内フック領域１０２を特定する。なお、ステップＳ１２４の処理は、渦巻きばね３０のタイプによって一部の処理が相違する。
【００３５】
（１）第１タイプの場合
図１５に示すように、内フック領域１０２は、極座標画像上で矩形の範囲となる。従って、図１５に示すｒ軸（半径軸）方向の境界線ｒ＝ｒｃとθ軸（角度軸）方向の境界線θ＝θｉｓ，θ＝θｉｅを決定することにより、図１４に示す扇形の内フック領域１０２を特定することができる。
境界線ｒ＝ｒｃ，θ＝θｉｓ，θ＝θｉｅの決定には、ステップＳ１１８で算出した内フック３２のθ座標θｉｎを基準に、角度範囲θｉｎ≦θ≦θｉｎ＋ｋ（ｋ＝０，１，２，・・・）のグレイスケール値Ｐｏｌａｒ（θ，ｒ）をｒ座標毎に累積した累積ヒストグラムＨｉｎ（ｒ，ｋ）を用いる。累積ヒストグラムＨｉｎ（ｒ，ｋ）は、下記式によって算出することができる。
【００３６】
【数４】
0005132403.tif 000005
【００３７】
図１６（ａ）（ｂ）に、累積ヒストグラムＨｉｎ（ｒ，ｋ）を例示する。図１６（ａ）は、ｋ＝０の累積ヒストグラムＨｉｎ（ｒ，０）を示す。Ｈｉｎ（ｒ，０）は、Ｐｏｌａｒ（θｉｎ，ｒ）に等しい。図１６（ｂ）は、累積ヒストグラムＨｉｎ（ｒ，ｋ）を示す。このように、累積ヒストグラムＨｉｎ（ｒ，ｋ）には、渦巻きばね３０の巻数に応じて複数の山が現われる。このうち、左端の山は内フック３２を示し、その隣の山は、内フック３２より１本外側の素線を示す。従って、内フック３２を示す山の右端点をａｋとし、１本外側の素線を示す山の左端点をｂｋとすると、内フック領域１０２の径方向の境界線ｒ＝ｒｃは、ａｋ＜ｒｃ＜ｂｋの範囲内に特定することができる。点ａｋと点ｂｋは、累積するライン数ｋが増加するほど、互いに間隔が狭くなる。そのことから、累積するライン数ｋを増加させるほど、境界線ｒ＝ｒｃを正確に特定することができる。ただし、ライン数ｋを増加させすぎると、ａｋ＝ｂｋ、あるいはａｋ＞ｂｋとなり、境界線ｒ＝ｒｃを特定することができなくなる。従って、ａｋ＜ｂｋとなる範囲で累積するライン数ｋを増加させていき、内フック領域１０２の径方向の境界線ｒ＝ｒｃを、ｒｃ＝（ａｋ＋ｂｋ）／２として特定する。
【００３８】
上記した累積ヒストグラムＨｉｎ（ｒ，ｋ）の作成、及び径方向の境界線ｒ＝ｒｃの特定は、内フック３２のθ座標θｉｎを基準に、θ座標の正方向及び負方向のそれぞれについて行う。即ち、ｋ＝０°，１°，２°，・・・，θ３（既定の角度値）までの範囲について、仮の境界線ｒ＝ｒｃ１＝（ａｋ＋ｂｋ）／２の探索を行い、そのときのθ座標θｉｎ＋θ３を内フック領域１０２の境界上限角θｉｅ＝θｉｎ＋Δｐとする（Δｐ＝ｋ）。また、ｋ＝０°，−１°，−２°，・・・，−θ３まで範囲についても、仮の境界線ｒ＝ｒｃ２＝（ａｋ＋ｂｋ）／２の探索を行い、そのときのθ座標θｉｎ＋ｋを内フック領域１０２の境界下限角θｉｓ＝θｉｎ−Δｍとする。そして、算出した２つの仮の境界線ｒ＝ｒｃ１，ｒｃ２のうち、大きい方を真の境界線ｒ＝ｒｃとして選択する。
以上により、第１タイプの渦巻きばねに対して、内フック領域１０２を画定する境界半径ｒｃ、境界上限角θｉｅ、及び境界下限角θｉｓが決定され、内フック領域１０２が特定される。これらの境界値ｒｃ，θｉｅ，θｉｓにより、渦巻きばね３０の撮影画像１００から、図１７に示すような内フック３２のみを示す内フック画像１１２を得ることができる。
【００３９】
ここで、上記で算出した仮の境界線ｒ＝ｒｃ１，ｒｃ２を用いて、渦巻きばね３０の巻き方向を判定することが可能となる。なお、渦巻きばね３０の巻き方向とは、渦巻きばね３０に特有のものではなく、渦巻きばね３０が照明器１４上に置かれた向きを意味するものである。本実施例の形状測定装置１０は、算出した二つの仮の境界線ｒ＝ｒｃ１，ｒｃ２を用い、ｒｃ１＞ｒｃ２であれば右巻きと判定し、ｒｃ１＜ｒｃ２であれば左巻きと判定する。形状測定装置１０は、渦巻きばね３０を撮影する際に、右巻きとなる向きに載置されることが前提となっている。そのことから、この段階で左巻きと判定された場合、その旨をディスプレイ２０に表示して作業者に報知する。なお、作業者に報知することなく、撮影画像１００を左右反転させた上で、ステップＳ１１２の処理からやり直してもよい。
【００４０】
（２）第２タイプの場合
次に、第２タイプの渦巻きばね３０に関して、内フック領域１０２を特定する処理について説明する。第２タイプの渦巻きばね３０では、内フック３２が重心Ｇ上に位置するため、内フック領域１０２が第１タイプのような扇形状とはならない。そのことから、第２タイプの渦巻きばね３０では、第１タイプと同じように境界半径ｒｃを求めた後、内フック３２のｒ座標Ｒｉｎ、渦巻きばねの重心Ｇ：（ｃｘ，ｃｙ）を用いて、下記式を満たす範囲を内フック領域１０２として特定する。
【００４１】
【数５】
0005132403.tif 000006
【００４２】
以上の処理により、図３に示すステップＳ１１２からステップＳ１２４までの処理が終了し、渦巻きばね３０の撮影画像１００から、内フック領域１０２及び外フック領域１０４の特定が完了する。即ち、図２に示すステップＳ１４のフック領域の特定が完了する。
【００４３】
次に、図２のステップＳ１６では、各種の寸法を算出する処理に先立ち、撮影画像１００に対する前処理が行われる。具体的には、撮影画像１００に対して二値化処理を行い、渦巻きばね３０の二値化画像を得る。また、内フック画像１１２（図１７参照）及び外フック画像１１４（図１３参照）に対して二値化処理を行い、二値化した内フック画像１１２及び外フック画像１１４を得る。以下の処理では、渦巻きばね３０のグレイスケール画像及び二値化画像と、内フックのグレイスケール画像及び二値化画像、外フックのグレイスケール画像及び二値化画像が用いられる。
【００４４】
次に、図２のステップＳ１８では、図１８（ａ）（ｂ）に示す基準線ｘ＝α・ｙ＋βの算出処理が行われる。この基準線は、内フックに沿ってその略中央を伸びる直線である。先ず、図１８（ａ）に示すように、内フックのグレイスケール画像に対してｘ方向のソベルフィルタを施し、横方向エッジを検出する。次いで、Ｈｏｕｇｈ変換による直線検出によって、内フック３２の両側に沿って伸びる２本の直線ｘ＝α１・ｙ＋β１，ｘ＝α２・ｙ＋β２を検出する。そして、これら２本の直線ｘ＝α１・ｙ＋β１，ｘ＝α２・ｙ＋β２の平均直線を、基準線ｘ＝α・ｙ＋βとして算出する。即ち、α＝（α１＋α２）／２，β＝（β１＋β２）／２である。基準線ｘ＝α・ｙ＋βを算出した後、図１８（ｂ）に示すように、内フックの先端Ｐｔｉｐ：（ｘｔｉｐ，ｙｔｉｐ）を得る。内フックの先端Ｐｔｉｐ：（ｘｔｉｐ，ｙｔｉｐ）は、内フックの二値化画像において、基準線ｘ＝α・ｙ＋βに沿ってｙ座標を下方に変化させ、最初に黒画素となる点である。
【００４５】
ここで、基準線ｘ＝α・ｙ＋βが特定されることにより、以下に説明する処理によって、渦巻きばね３０の巻き方向を判定することが可能となる。なお、渦巻きばね３０の巻き方向とは、渦巻きばね３０に特有のものではなく、渦巻きばね３０が照明器１４上に置かれた向きを意味するものである。
図１８（ｂ）では、渦巻きばね３０が右巻きとなっており、内フックが左方に連なっている。この場合、基準線ｘ＝α・ｙ＋βを境界とし、その左右の領域について画素値の合計値を比較すると、左側の領域のほうがその合計値が大きくなる。従って、基準線ｘ＝α・ｙ＋βを境界とし、左右の領域について画素値の合計値を比較すると、渦巻きばね３０の巻き方向を判別することができる。また、左右の領域で画素値の合計値を算出する際に、基準線ｘ＝α・ｙ＋βからの距離が遠い画素については、その画素値を増大させるように重み付けを行うと、左右の領域の間で画素値の合計に顕著な差異が生じることから、渦巻きばね３０の巻き方向をより正しく判別することが可能となる。
【００４６】
次に、図２のステップＳ２０では、内フック先端からの距離Ｄｔｉｐを算出する処理が実行される。図１９に示すように、内フック先端からの距離Ｄｔｉｐとは、内フックの先端Ｐｔｉｐから最内周の素線までの距離を意味する。この処理では、内フックの二値化画像を用い、内フックの先端Ｐｔｉｐから一つ上方の点を起点に、基準線ｘ＝α・ｙ＋β上を上方に辿りながら、最初に黒画素となる点を検出する。そして、検出された点の一つ前の点と、内フックの先端Ｐｔｉｐとの距離を、内フック先端からの距離Ｄｔｉｐとして算出する。
【００４７】
次に、図２のステップＳ２２では、内フック長さＬｉｈを算出する処理が実行される。この処理では、内フックの二値化画像、基準線ｘ＝α・ｙ＋β、内フック先端Ｐｔｉｐ：（ｘｔｉｐ，ｙｔｉｐ）が用いられる。図２０を参照しながら、ステップＳ２２の処理を以下に説明する。
先ず、内フック先端Ｐｔｉｐを通り、基準線ｘ＝α・ｙ＋βに直交する直線ｙ＝ａ・ｘ＋ｂを求める。さらに、その直線ｙ＝ａ・ｘ＋ｂを下方（ｙ軸正方向）にＮａ（Ｎａ：既定の整数）ポイント移動させた直線ｙ＝ａ・ｘ＋ｂ＋Ｎａを求める。次いで、その直線ｙ＝ａ・ｘ＋ｂ＋Ｎａを下方に１ポイントずつ移動させながら、直線上に黒画素が存在しなくなる直線ｙ＝ａ・ｘ＋ｂ＋Ｎａ＋ｎを特定する。次いで、その直線ｙ＝ａ・ｘ＋ｂ＋Ｎａ＋ｎの一つ前の直線ｙ＝ａ・ｘ＋ｂ＋Ｎａ＋ｎ−１を、内フック接線ｙ＝ａｓ・ｘ＋ｂｓとする。次いで、内フック接線ｙ＝ａｓ・ｘ＋ｂｓと基準線ｘ＝α・ｙ＋βとの交点（ｘｃｒ，ｙｃｒ）を求める。そして、その交点（ｘｃｒ，ｙｃｒ）と内フック先端Ｐｔｉｐとの距離を求め、その距離を内フック長さＬｉｈとする。
【００４８】
次に、図２のステップＳ２４では、中心位置を算出する処理が実行される。この処理では算出される中心位置は、渦巻きばねの中心を示す位置であり、以後の処理において基準として用いられるものである。この処理では、基準線ｘ＝α・ｙ＋β、内フック接線ｙ＝ａｓ・ｘ＋ｂｓ、内フック接線と基準線との交点（ｘｃｒ，ｙｃｒ）、内フック下端から中心までの距離ｄｉｓｔが用いられる。ここで、内フック下端から中心までの距離ｄｉｓｔは、作業者によって入力される値である。
中心位置の算出は、以下の手順で行われる。先ず、内フック接線ｙ＝ａｓ・ｘ＋ｂｓを上方に距離ｄｉｓｔだけ平行移動した直線ｙ＝ａｓ・ｘ＋ｂｓ−ｄｉｓｔを求める。次いで、直線ｙ＝ａｓ・ｘ＋ｂｓ−ｄｉｓｔと基準線ｘ＝α・ｙ＋βとの交点を求め、その交点を中心位置Ｐｃ：（ｃｘ，ｃｙ）とする。
【００４９】
次に、図２のステップＳ２６では、内径Ｄｉｎを算出する処理が実行される。この処理では、渦巻きばね３０の撮影画像１００、基準線ｘ＝α・ｙ＋β、中心位置Ｐｃ：（ｃｘ，ｃｙ）が用いられる。図２１を参照しながら、このステップＳ２６の処理を以下に説明する。
先ず、中心位置Ｐｃ：（ｃｘ，ｃｙ）を通り、基準線ｘ＝α・ｙ＋βに垂直な内径直線ｙ＝ａ・ｘ＋ｂｃを求める。次いで、内径直線ｙ＝ａ・ｘ＋ｂｃ上の画素の濃度を、中心位置Ｐｃ：（ｃｘ，ｃｙ）から順にｘ座標を減算しながら確認していき、白画素から黒画素へと変化する一つ手前の点ｐ１を検出する。同様に、内径直線ｙ＝ａ・ｘ＋ｂｃ上の画素の濃度を、中心位置Ｐｃ：（ｃｘ，ｃｙ）から順にｘ座標を加算しながら確認していき、白画素から黒画素へと変化する一つ手前の点ｐ２を検出する。そして、検出した点ｐ１と点ｐ２の距離を、渦巻きばね３０の内径Ｄｉｎとして算出する。
【００５０】
次に、図２のステップＳ２８では、内フックの曲率半径Ｒｉｎ及び外フックの曲率半径Ｒｏｈを算出する処理が実行される。この処理では、内フックの二値化画像、外フックの二値化画像、内フック領域の座標、外フック領域の座標が用いられる。なお、内フックの曲率半径Ｒｉｎと外フックの曲率半径Ｒｏｈは、同じ手順によって算出される。従って、ここでは外フックの曲率半径Ｒｏｈの算出手順についてのみ説明し、内フックの曲率半径Ｒｉｎの算出手順についての説明は省略する。また、渦巻きばね３０のタイプに応じた処理の変更もない。
先ず、外フックの二値化画像と外フック領域の座標を用い、外フックの二値化画像から外フック領域のみを切り出す。次いで、その外フック領域の切り出し画像から、外フックの重心Ｇｍを求める。次いで、外フック領域の切り出し画像に対して輪郭線追跡を行い、図２２に示すように輪郭座標系列Ｐｉ（ｉ＝０，１，・・・ｎ−１）を取得する。このとき、輪郭線のノイズを必要に応じて除去するとよい。次いで、重心Ｇｍと輪郭座標系列Ｐｉとの距離系列ｄｉを求める。図２３に、距離系列ｄｉを例示する。ここで、距離系列の始端ｄ０と終端ｄｎ−１は連続しており、ｄｎ＝ｄ０の関係にある。
距離系列ｄｉを求めた後、下記式で表される相関値ｒ（ｋ）をｋ＝０，１，２，・・・，ｎ−１についてそれぞれ求める。この相関値ｒ（ｋ）は、外フックの内側輪郭線と外側輪郭線の境界点ｐｂ，ｐｄを特定するために用いられる。
【００５１】
【数６】
0005132403.tif 000007
【００５２】
上記した相関値ｒ（ｋ）は、距離系列ｄｉが注目点（ｋ，ｄｋ）を境に対称形となるとき、最大値である１を出力するものである。図２２に示す外フックの輪郭線上の点ｐｂ及び点ｐｄは、外フックの内側輪郭線と外側輪郭線の境界に位置する点である。外フックの内側輪郭線と外側輪郭線は、比較的に近似した形状を有している。そのことから、それら境界に位置する点ｐｂ及び点ｐｄでは、上記した相関値ｒ（ｋ）が１に近い値を取ることになる。即ち、上記した相関値ｒ（ｋ）が極大となる輪郭線上の点を特定することで、外フックの内側輪郭線と外側輪郭線の境界位置を特定することができる。
なお、上記の数式６で示した相関値ｒ（ｋ）は、輪郭線同士の類似度又は距離（非類似度）を表す他の指標に置き換えることもできる。例えば、数式６の代わりに相関係数、ユークリッド距離、シティブロック距離などを用いて内側輪郭線と外側輪郭線の境界位置を特定してもよい。
【００５３】
図２４は、算出される相関値ｒ（ｋ）の一例を示す。図２４に示すように、相関値ｒ（ｋ）では、極大値となる点が４点存在する。これらの４点は、図２２に示す４点Ｐ１，Ｐ２，Ｐ３，Ｐ４に対応する。従って、相関値ｒ（ｋ）を算出することにより、内側輪郭線と外側輪郭線の境界点を含む４点を特定することができる。
次いで、特定した４点を輪郭線追跡の順に並べ、奇数順のペア（ここでは点Ｐ１と点Ｐ３）と偶数順のペア（ここでは点Ｐ２と点Ｐ４）のそれぞれについて、２点間の距離を算出する。そして、算出された距離が大きい方のペア（ここでは点Ｐ２と点Ｐ４）を、内側輪郭線と外側輪郭線の境界点として特定する。
次いで、境界点Ｐ１から鏡界点Ｐ３に到る第１の輪郭座標系列Ｐ１−Ｐ３と、境界点Ｐ２から境界点Ｐ４に到る第２の輪郭座標系列Ｐ２−Ｐ４のうち、どちらが内側輪郭線であるのかを判定する。そのために、第１の輪郭座標系列Ｐ１−Ｐ３と第２の輪郭座標系列Ｐ２−Ｐ４のそれぞれについて、輪郭座標系列と重心Ｇｍとの距離の最小値を求め、その最小距離が小さいほうの輪郭座標系列を内側輪郭線（ここではＰ２−Ｐ４）と判定する。それにより、図２５に示すように、内側輪郭線のみの輪郭線系列を得ることができる。
【００５４】
次いで、内側輪郭線のみの内側輪郭線系列を用い、内側輪郭線系列における角度最大点を特定する。角度最大点とは、内側輪郭線の向きが最も変化する点であり、外フックの屈曲部を示す点である。先ず、図２５に示すように、誤検出の防止を目的として内側輪郭線系列の両端Ｎｂポイント（Ｎｂ：既定の整数）を削除しておく。次いで、下記式で表される平均ベクトルｍ（ｋ）、平均ベクトルｐ（ｋ）を算出する。相関値ｒ（ｋ）をｋ＝０，１，２，・・・，ｎ−１についてそれぞれ求める。
【００５５】
【数７】
0005132403.tif 000008
【００５６】
上記した平均ベクトルｍ（ｋ）は、注目点（ｘｔｋ，ｙｔｋ）からそのＮｃポイント前（Ｎｃ：既定の整数）までの輪郭線系列が向いている方向を、大局的に示すものである。一方、平均ベクトルｐ（ｋ）は、注目点（ｘｔｋ，ｙｔｋ）からそのＮｃポイント後ろまでの輪郭線系列が向いている方向を、大局的に示すものである。これら２つの平均ベクトルｍ（ｋ），ｐ（ｋ）の方向が最も異なるとき、その注目点（ｘｔｋ，ｙｔｋ）を角度最大点として求めることができる。本実施例では、平均ベクトルｍ（ｋ），ｐ（ｋ）が成す角θｋについてその余弦ｃｏｓθｋを求め、１−ｃｏｓθｋが最大となる注目点（ｘｔｋ，ｙｔｋ）を角度最大点Ｐｍａｘとする（図２６参照）。図２７に示すように、角度最大点Ｐｍａｘを求めた後、その前後Ｎｄポイント分（Ｎｄ：既定の整数）を切り出し、外フックの屈曲部に相当する輪郭線座標系列を抽出する。
【００５７】
次に、上記で抽出した輪郭線系列（図２７参照）を用い、その輪郭線系列に角度最大点Ｐｍａｘで内接する円を、Ｈｏｕｇｈ変換によって算出する。それにより、図２８に示すように、外フックに内接する円の中心Ｐｃｏ：（ｘｃｏ，ｙｃｏ）とその半径Ｒｏｈ、即ち、外フック曲率半径Ｒｏｈを算出することができる。
【００５８】
次に、図２のステップＳ３０では、フリー角度θｆを算出する処理が実行される。この処理では、外フックの二値化画像、基準線ｘ＝α・ｙ＋β、中心位置（座標）Ｐｃ：（ｘｃ，ｙｃ）、外フック曲率半径Ｒｏｈの中心Ｐｃｏが用いられる。図２９を参照しながら、ステップＳ３０の処理を以下に説明する。
先ず、中心座標Ｐｃ：（ｘｃ，ｙｃ）と外フック曲率半径Ｒｏｈの中心Ｐｃｏとの距離Ｒｏｕｔを算出する。次いで、中心座標Ｐｃ：（ｘｃ，ｙｃ）を中心とし、半径を上記した距離Ｒｏｕｔとする円を作成する。次いで、作成した円と外フックの二値化画像が重なる座標群のなかで、外フック曲率半径Ｒｏｈの中心Ｐｃｏに最寄りの点を、外フックの内側接点Ｐｂｏ：（ｘｂ，ｙｂ）として求める。次いで、中心位置Ｐｃ：（ｘｃ，ｙｃ）と外フックの内側接点Ｐｂｏ：（ｘｂ，ｙｂ）を通る直線ｙ＝ａｆ・ｘ＋ｂｆを、フリー角度直線として求める。そして、フリー角度直線ｙ＝ａｆ・ｘ＋ｂｆと基準線ｘ＝α・ｙ＋βが成す角を、フリー角度θｆとして求める。
【００５９】
次に、図２のステップＳ３２では、フック半径ＨＲを算出する処理が実行される。この処理では、中心座標Ｐｃ：（ｘｃ，ｙｃ）、外フックの内側接点Ｐｂｏ：（ｘｂ，ｙｂ）が用いられる。図３０に示すように、この処理では、中心座標Ｐｃ：（ｘｃ，ｙｃ）と外フックの内側接点Ｐｂｏ：（ｘｂ，ｙｂ）との距離が、フック半径ＨＲとして算出される。
【００６０】
次に、図２のステップＳ３４では、外フック長さＬｏｈを算出する処理が実行される。この処理では、外フックの二値化画像と、中心位置（座標）Ｐｃ：（ｘｃ，ｙｃ）が用いられる。図３１、図３２を参照しながら、ステップＳ３４の処理について説明する。
先ず、外フックの二値化画像に対して輪郭線追跡を行い、図３１に示すような輪郭座標系列Ｐｉ（ｉ＝０，１，・・・ｎ−１）を取得する。このとき、輪郭線のノイズを必要に応じて除去するとよい。次いで、下記式で表される平均ベクトル角系列ｃｏｓθｋを、ｋ＝０，１，２，・・・，ｎ−１についてそれぞれ求める。この平均ベクトル角系列ｃｏｓθｋは、外フック先端の角部Ｑ１、Ｑ２を特定するために用いられる。
【００６１】
【数８】
0005132403.tif 000009
【００６２】
上記した平均ベクトル角系列ｃｏｓθｋは、注目点（ｘｋ，ｙｋ）の前後Ｎｅポイント分（Ｎｅ：既定の整数）の輪郭座標系列を用い、注目点（ｘｋ，ｙｋ）が外フックの角部Ｑ１〜Ｑ４に相当する場合に、ゼロに近い値を出力するものである。従って、平均ベクトル角系列ｃｏｓθを求め、それが極小値をとるときの４点を求めることにより、図３１に示す４箇所の外フックの角部Ｑ１〜Ｑ４を特定することができる。そして、特定した４箇所の角部Ｑ１〜Ｑ４のうち、中心位置Ｐｃから最も遠い２点を選択することにより、外フック先端の角部Ｑ１、Ｑ２を特定することができる。
【００６３】
次いで、外フック先端の角部Ｑ１、Ｑ２の間の輪郭座標系列を、直線に近似する処理を行う。直線近似は、例えば最小二乗法を用いることができるが、最小二乗法は局所的なノイズに影響を受けやすい。そのことから、本実施例では、下記式による直線式Ａ・ｙ＋Ｂ・ｘ＝１を得る。直線Ａ・ｙ＋Ｂ・ｘ＝１を、外フック先端直線という。
【００６４】
【数９】
0005132403.tif 000010
【００６５】
次いで、外フック先端直線Ａ・ｙ＋Ｂ・ｘ＝１を、外フックの外側輪郭線に接する位置まで平行移動させ、外フック長さＬｏｈを求める。ここで、外フック先端直線Ａ・ｙ＋Ｂ・ｘ＝１を平行移動させる方向は、下記式のように定められている。ここで、（ｘ（ｍ+ｌ）／２，ｙ（ｍ+ｌ）／２）は、外フック先端の角部Ｑ１、Ｑ２の中間点であり、外フック先端点である。
【００６６】
【数１０】
0005132403.tif 000011
【００６７】
上記の関係式により、例えば−ｘ方向に外フック先端直線Ａ・ｙ＋Ｂ・ｘ＝１を移動させる場合、例えばｋポイント移動させた時点で外フックの外側輪郭線に接するのであれば、その移動後の直線はＡ・ｙ＋Ｂ・ｘ＝１−Ｂ・ｋとなる。そして、フック線端点（ｘ（ｍ+ｌ）／２，ｙ（ｍ+ｌ）／２）と直線Ａ・ｙ＋Ｂ・ｘ＝１−Ｂ・ｋの間の距離が、外フック長さＬｏｈとして算出される。
【００６８】
次ぎに、図２のステップＳ３６では、外フック角度θｍｔを算出する処理が実行される。この処理では、外フックの二値化画像、フリー角直線ａｆ・ｘ＋ｂｆ、外フック先端の角部Ｑ１，Ｑ２、外フック曲率半径Ｒｏｈが用いられる。図３３、図３４を参照しながら、ステップＳ３６の処理について説明する。
先ず、外フックの二値化画像に対して輪郭線追跡を行い、先のステップＳ３４と同様に、輪郭座標系列を取得する（図３１参照）。次いで、図３３に示すように、外フック先端の角部Ｑ１，Ｑ２をそれぞれ始点とし、Ｎｆポイント分（Ｎｆ：既定の整数）の輪郭座標系列を取得する。一方の角部Ｑ１を始点とするものは、外側の輪郭線に沿う輪郭座標系列であり、他方の角部Ｑ１を始点とするものは、内側の輪郭線に沿う輪郭座標系列である。次いで、図３４に示すように、フリー角直線ｙ＝ａｆ・ｘ＋ｂｆを、外フック曲率半径Ｒｏｈの中心Ｐｃｏ：（ｘｃｏ，ｙｃｏ）まで平行移動させたシフト直線ｙ＝ａｆ・ｘ＋（ｙｃｏ＋ａｆ・ｘｃｏ）を得る。次いで、図３３に示すように、上記した２組のＮｆポイント分の輪郭座標系列の中間に位置する中間座標系列Ｐｍを求める。ここで、中間座標系列Ｐｍの算出は、上記したシフト直線との距離が１未満となる位置で打ち切る。次いで、中間座標系列Ｐｍを最小二乗法の一次式にあてはめ、図３４に示す近似直線ｙ＝Ａｍ・ｘ＋Ｂｍを得る。そして、フリー角直線ｙ＝ａｆ・ｘ＋ｂｆと近似直線ｙ＝Ａｍ・ｘ＋Ｂｍとが成す角を、外フック角度θｍｔとして算出する。
【００６９】
次に、図２のステップＳ３８では、これまでに計算した各部の寸法をディスプレイ２０に表示する。ディスプレイ２０には、（１）渦巻きばねの内径Ｄｉｎ、（２）フリー角度θｆ、（３）フック半径ＨＲ、（４）外フック長さＬｏｈ、（５）内フック長さＬｉｈ、（６）外フック曲率半径Ｒｏｈ、（７）内フック曲率半径Ｒｉｈ、（８）外フック角度θｍｔ、（９）内フック先端からの距離Ｄｔｉｐが表示される。以上により、形状測定装置１０による渦巻きばね３０の形状測定処理が終了する。
【００７０】
本実施例の形状測定装置１０は、特定の形状を有する渦巻きばね３０に限らず、様々な形状の渦巻きばね３０の形状を、同じように測定することができる。特に、形状測定装置１０は、渦巻きばね３０の形状にかかわらず、渦巻きばね３０の撮影画像１００から内フック３２と外フック３４を特定し、内フック３２や外フック３４を基準とする寸法測定を正確に行うことができる。
【００７１】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時の請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は、複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００７２】
【図１】形状測定装置の構成を示す図。
【図２】形状測定装置による形状測定の流れを示すフローチャート。
【図３】フック領域を特定する処理の流れを示すフローチャート。
【図４】形状測定装置が寸法を測定する箇所を示す図。
【図５】渦巻きばねの撮影画像を示す図（第１タイプ）。
【図６】渦巻きばねの撮影画像を示す図（第２タイプ）。
【図７】第１タイプの渦巻きばねについて、図７（ａ）は極座標画像を示し、図７（ｂ）はｒ方向ヒストグラムを示す。
【図８】第２タイプの渦巻きばねについて、図８（ａ）は極座標画像を示し、図８（ｂ）はｒ方向ヒストグラムを示す。
【図９】図８（ｂ）の一部を拡大して示す図。
【図１０】外フック領域を示す図。
【図１１】外フック領域の境界半径Ｒｃｕｔを説明する図。
【図１２】θ方向ヒストグラムを示す図。
【図１３】外フック画像を示す図。
【図１４】内フック領域を示す図。
【図１５】内フック領域を極座標画像に示す図。
【図１６】累積ヒストグラムを説明する図。
【図１７】内フック画像を示す図。
【図１８】基準線の算出処理を説明する図。
【図１９】内フック先端からの距離Ｄｔｉｐの算出処理を説明する図。
【図２０】内フック長さＬｉｈの算出処理を説明する図。
【図２１】内径Ｄｉｎの算出処理を説明する図。
【図２２】外フック画像の輪郭座標系列及び距離系列を説明する図。
【図２３】距離系列ｄｉの一例を示すグラフ。
【図２４】相関値ｒ（ｋ）の一例を示すグラフ。
【図２５】外フックの内側輪郭線の座標系列を示す図。
【図２６】角度最大点の算出に用いる平均ベクトルの成す角を示す図。
【図２７】外フックの屈曲部の輪郭線座標系列を示す図。
【図２８】外フックに内接する円とその半径（外フック曲率半径）Ｒｏｈを示す図。
【図２９】フリー角度θｆの算出処理を説明する図。
【図３０】フック半径ＨＲの算出処理を説明する図。
【図３１】外フック先端の角部Ｑ１、Ｑ２を特定する処理を説明する図。
【図３２】外フック長さＬｏｈの算出処理を説明する図。
【図３３】外フック先端の角部Ｑ１、Ｑ２を始点とする起点輪郭座標系列を示す図。
【図３４】外フック角度θｍｔの算出処理を説明する図。
【符号の説明】
【００７３】
１０：形状測定装置
１２：ステージ
１４：照明器
１６：ＣＣＤカメラ
１８：通信線
２０：ディスプレイ
２２：コンピュータ
３０：渦巻きばね
３２：渦巻きばねの内フック
３４：渦巻きばねの外フック
【図１】
0005132403.tif 000012
【図２】
0005132403.tif 000013
【図３】
0005132403.tif 000014
【図１６】
0005132403.tif 000015
【図２３】
0005132403.tif 000016
【図２４】
0005132403.tif 000017
【図２５】
0005132403.tif 000018
【図２６】
0005132403.tif 000019
【図４】
0005132403.tif 000020
【図５】
0005132403.tif 000021
【図６】
0005132403.tif 000022
【図７】
0005132403.tif 000023
【図８】
0005132403.tif 000024
【図９】
0005132403.tif 000025
【図１０】
0005132403.tif 000026
【図１１】
0005132403.tif 000027
【図１２】
0005132403.tif 000028
【図１３】
0005132403.tif 000029
【図１４】
0005132403.tif 000030
【図１５】
0005132403.tif 000031
【図１７】
0005132403.tif 000032
【図１８】
0005132403.tif 000033
【図１９】
0005132403.tif 000034
【図２０】
0005132403.tif 000035
【図２１】
0005132403.tif 000036
【図２２】
0005132403.tif 000037
【図２７】
0005132403.tif 000038
【図２８】
0005132403.tif 000039
【図２９】
0005132403.tif 000040
【図３０】
0005132403.tif 000041
【図３１】
0005132403.tif 000042
【図３２】
0005132403.tif 000043
【図３３】
0005132403.tif 000044
【図３４】
0005132403.tif 000045