(57)【特許請求の範囲】
【請求項１】
計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された３次元形状を有する前記物体の画像とを表示する表示部と、
入力装置を介して入力される指示に基づいて、前記計測対象物の画像上の第１の点と前記物体の画像上の第２の点とを指定する指定部と、
前記第１の点を基準とする第１の図形と、前記第２の点を基準とする第２の図形との幾何学計算を行う計算部と、
前記幾何学計算の結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整する調整部と、
前記姿勢または前記位置が調整された後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、
を備えたことを特徴とする画像処理装置。
【請求項２】
計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された３次元形状を有する前記物体の画像とを表示する表示部と、
入力装置を介して入力される指示に基づいて、前記計測対象物の画像上の第１の点を指定する指定部と、
前記第１の点を基準とする第１の図形と、前記物体の画像と関連付けて記録されている第２の点を基準とする第２の図形との幾何学計算を行う計算部と、
前記幾何学計算の結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整する調整部と、
前記姿勢または前記位置が調整された後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、
を備えたことを特徴とする画像処理装置。
【請求項３】
前記第１の点および前記第２の点は、入力装置を介して入力される指示に基づいて指定された３点以上の点を含むことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記計算部は、前記第１の点の指定された順番と、前記第２の点の指定された順番とに基づいて、前記第１の点と前記第２の点とを対応付けて前記幾何学計算を行うことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記計算部は、前記第１の点を基準とする平面上の第１の図形と、前記第２の点に対応する前記物体の空間上の点を基準とする空間上の第２の図形との幾何学計算を行うことを特徴とする請求項１〜請求項４のいずれか一項に記載の画像処理装置。
【請求項６】
前記計算部は、前記平面上の第１の図形と、前記空間上の第２の図形を前記平面に投影した第３の図形との幾何学計算を行うことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記指定部はさらに、前記第１の点を指定する場合に、前記物体の画像の透過率を、前記第２の点を指定する場合の前記物体の画像の透過率よりも大きな透過率に設定することを特徴とする請求項１〜請求項６のいずれか一項に記載の画像処理装置。
【請求項８】
前記表示部は、前記計測対象物の画像と前記物体の画像とを表示した後、前記幾何学計算が終了するまで、前記計測対象物の画像と前記物体の画像の姿勢および位置を維持し、前記幾何学計算が終了した後、前記姿勢または前記位置が調整された前記計測対象物の画像と前記物体の画像を再表示することを特徴とする請求項１〜請求項７のいずれか一項に記載の画像処理装置。
【請求項９】
計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された３次元形状を有する前記物体の画像とを表示部が表示するステップと、
入力装置を介して入力される指示に基づいて、指定部が前記計測対象物の画像上の第１の点と前記物体の画像上の第２の点とを指定するステップと、
前記第１の点を基準とする第１の図形と、前記第２の点を基準とする第２の図形との幾何学計算を計算部が行うステップと、
前記幾何学計算の結果に基づいて、調整部が前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整するステップと、
前記姿勢または前記位置が調整された後、計測部が、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出するステップと、
を備えたことを特徴とする画像処理方法。
【請求項１０】
前記第１の点および前記第２の点は、入力装置を介して入力される指示に基づいて指定された３点以上の点を含み、
前記計算部は、前記第１の点の指定された順番と、前記第２の点の指定された順番とに基づいて、前記第１の点と前記第２の点とを対応付けて前記幾何学計算を行う
ことを特徴とする請求項９に記載の画像処理方法。
【請求項１１】
計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された３次元形状を有する前記物体の画像とを表示する表示部と、
入力装置を介して入力される指示に基づいて、前記計測対象物の画像上の第１の点と前記物体の画像上の第２の点とを指定する指定部と、
前記第１の点を基準とする第１の図形と、前記第２の点を基準とする第２の図形との幾何学計算を行う計算部と、
前記幾何学計算の結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整する調整部と、
前記姿勢または前記位置が調整された後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計測対象物の画像を処理して計測対象物のサイズを計測する画像処理装置、画像処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、内視鏡等の観察用治具を使用して、ジェットエンジン内のブレード等の計測が行われている。特許文献１には、ブレード等の計測に適した技術が記載されている。この特許文献１に記載された技術では、被写体を撮像した被写体画像と、コンピュータグラフィックス（ＣＧ）により生成したＣＧ画像とをモニタに表示し、ＣＧ画像における物体の状態と被写体画像における被写体の状態とが一致するように、ユーザの指示に基づいてＣＧ画像を変更し、計測を行いたい部分に対してＣＧ画像上で計測を行うことが可能である。
【０００３】
しかし、特許文献１に記載された技術では、被写体の見え方が異なる複数の被写体画像を切り替えながら各被写体画像に対して計測を行う場合、被写体画像を切り替えるたびに、ＣＧ画像における物体の状態を被写体画像における被写体の状態に一致させる操作が必要となる。このため、ジェットエンジン内に周期的に配置された複数のブレードの計測を行う場合、上記の操作が頻繁に発生し、手間がかかるという問題がある。
【０００４】
これに対して、特許文献２には、被写体を撮像して得られた２次元画像と、ＣＡＤ（Computer Aided Design）を利用して得られたデータに基づく３Ｄオブジェクトとを自動的にマッチング（パターンマッチング）させることで、上記の手間の問題を解決した技術が記載されている。特許文献２に記載された技術では、まず、３Ｄオブジェクトを仮想的な複数の視点から観察した場合に、それぞれの視点において観察される３Ｄオブジェクトの投影図を生成し、複数の投影図をまとめて２Ｄモデルとして保存しておく。そして、２次元画像と、生成した２Ｄモデルとの間でマッチングを行い、２Ｄモデルとの類似度が 最も高い投影図を検索し、その投影図が生成されたときの視点の位置をもとに、２次元画像に写っている被写体と、２次元画像を撮像したカメラとの相対位置を算出する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平３−１０２２０２号公報
【特許文献２】米国特許出願公開第２００９／００９６７９０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献２に記載された技術では、２次元画像と３Ｄオブジェクトの投影図（２Ｄモデル）とを用いて、画像から検出されるエッジをベースとした画像処理によるマッチングを行うことで、類似度を算出していた。この方法によると、エッジをベースとした画像処理を行うため、マッチングに必要な処理時間が長かった。また、大量の投影図のそれぞれに対して画像処理を行うことになるので、マッチングに必要な処理時間が膨大となっていた。
【０００７】
本発明は、上述した課題に鑑みてなされたものであって、処理時間を低減することができる画像処理装置、画像処理方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するためになされたもので、計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された３次元形状を有する前記物体の画像とを表示する表示部と、入力装置を介して入力される指示に基づいて、前記計測対象物の画像上の第１の点と前記物体の画像上の第２の点とを指定する指定部と、前記第１の点を基準とする第１の図形と、前記第２の点を基準とする第２の図形との幾何学計算を行う計算部と、前記幾何学計算の結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整する調整部と、前記姿勢または前記位置が調整された後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、を備えたことを特徴とする画像処理装置である。
【０００９】
また、本発明は、計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された３次元形状を有する前記物体の画像とを表示する表示部と、入力装置を介して入力される指示に基づいて、前記計測対象物の画像上の第１の点を指定する指定部と、前記第１の点を基準とする第１の図形と、前記物体の画像と関連付けて記録されている第２の点を基準とする第２の図形との幾何学計算を行う計算部と、前記幾何学計算の結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整する調整部と、前記姿勢または前記位置が調整された後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、を備えたことを特徴とする画像処理装置である。
【００１０】
また、本発明の画像処理装置において、前記第１の点および前記第２の点は、入力装置を介して入力される指示に基づいて指定された３点以上の点を含むことを特徴とする。
【００１１】
また、本発明の画像処理装置において、前記計算部は、前記第１の点の指定された順番と、前記第２の点の指定された順番とに基づいて、前記第１の点と前記第２の点とを対応付けて前記幾何学計算を行うことを特徴とする。
【００１２】
また、本発明の画像処理装置において、前記計算部は、前記第１の点を基準とする平面上の第１の図形と、前記第２の点に対応する前記物体の空間上の点を基準とする空間上の第２の図形との幾何学計算を行うことを特徴とする。
【００１３】
また、本発明の画像処理装置において、前記計算部は、前記平面上の第１の図形と、前記空間上の第２の図形を前記平面に投影した第３の図形との幾何学計算を行うことを特徴とする。
【００１４】
また、本発明の画像処理装置において、前記指定部はさらに、前記第１の点を指定する場合に、前記物体の画像の透過率を、前記第２の点を指定する場合の前記物体の画像の透過率よりも大きな透過率に設定することを特徴とする。
【００１５】
また、本発明の画像処理装置において、前記表示部は、前記計測対象物の画像と前記物体の画像とを表示した後、前記幾何学計算が終了するまで、前記計測対象物の画像と前記物体の画像の姿勢および位置を維持し、前記幾何学計算が終了した後、前記姿勢または前記位置が調整された前記計測対象物の画像と前記物体の画像を再表示することを特徴とする。
【００１６】
また、本発明は、計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された３次元形状を有する前記物体の画像とを表示部が表示するステップと、入力装置を介して入力される指示に基づいて、指定部が前記計測対象物の画像上の第１の点と前記物体の画像上の第２の点とを指定するステップと、前記第１の点を基準とする第１の図形と、前記第２の点を基準とする第２の図形との幾何学計算を計算部が行うステップと、前記幾何学計算の結果に基づいて、調整部が前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整するステップと、前記姿勢または前記位置が調整された後、計測部が、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出するステップと、を備えたことを特徴とする画像処理方法である。
【００１７】
また、本発明の画像処理方法において、前記第１の点および前記第２の点は、入力装置を介して入力される指示に基づいて指定された３点以上の点を含み、前記計算部は、前記第１の点の指定された順番と、前記第２の点の指定された順番とに基づいて、前記第１の点と前記第２の点とを対応付けて前記幾何学計算を行うことを特徴とする。
【００１８】
また、本発明は、計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された３次元形状を有する前記物体の画像とを表示する表示部と、入力装置を介して入力される指示に基づいて、前記計測対象物の画像上の第１の点と前記物体の画像上の第２の点とを指定する指定部と、前記第１の点を基準とする第１の図形と、前記第２の点を基準とする第２の図形との幾何学計算を行う計算部と、前記幾何学計算の結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整する調整部と、前記姿勢または前記位置が調整された後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【００１９】
本発明によれば、第１の図形と第２の図形との幾何学計算を行い、幾何学計算の結果に基づいて、計測対象物の画像と物体の画像との少なくとも一方の姿勢または位置を調整することによって、処理時間を低減することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施形態によるブレード検査システムの構成を示すブロック図である。
【図２】本発明の一実施形態によるブレード検査システムが備える内視鏡装置の構成を示すブロック図である。
【図３】本発明の一実施形態によるブレード検査システム（変形例）の構成を示すブロック図である。
【図４】本発明の一実施形態によるブレード検査システム（変形例）の構成を示すブロック図である。
【図５】本発明の一実施形態によるブレード検査システム（変形例）が備えるＰＣの構成を示すブロック図である。
【図６】本発明の一実施形態における３Ｄ計測ソフトの画面を示す参考図である。
【図７】本発明の一実施形態における３Ｄオブジェクトとカメラポーズの関係を示す参考図である。
【図８】本発明の一実施形態における３Ｄオブジェクトとカメラポーズの関係を示す参考図である。
【図９】本発明の一実施形態における３Ｄオブジェクトとカメラポーズの関係を示す参考図である。
【図１０】本発明の一実施形態における３Ｄオブジェクトとカメラポーズの関係を示す参考図である。
【図１１】本発明の一実施形態における３Ｄ計測ソフトによる動作の手順を示すフローチャートである。
【図１２】本発明の一実施形態における３Ｄ計測ソフトによる動作の手順を示すフローチャートである。
【図１３】本発明の一実施形態におけるカメラポーズの初期値を説明するための参考図である。
【図１４】本発明の一実施形態におけるカメラポーズの初期値を説明するための参考図である。
【図１５】本発明の一実施形態における３Ｄ計測ソフトによる動作の手順を示すフローチャートである。
【図１６】本発明の一実施形態におけるカメラポーズ設定処理の内容を説明するための参考図である。
【図１７】本発明の一実施形態における３Ｄ計測ソフトによる動作の手順を示すフローチャートである。
【図１８】本発明の一実施形態における参照点（計測）指定処理の内容を説明するための参考図である。
【図１９】本発明の一実施形態における３Ｄ計測ソフトによる動作の手順を示すフローチャートである。
【図２０】本発明の一実施形態における参照点（３Ｄ）指定処理の内容を説明するための参考図である。
【図２１】本発明の一実施形態における３Ｄ計測ソフトによる動作の手順を示すフローチャートである。
【図２２】本発明の一実施形態におけるマッチング処理の内容を説明するための参考図である。
【図２３】本発明の一実施形態における３Ｄ計測ソフトによる動作の手順を示すフローチャートである。
【図２４】本発明の一実施形態における計測処理の内容を説明するための参考図である。
【図２５】本発明の一実施形態における計測処理の内容を説明するための参考図である。
【図２６】本発明の一実施形態における空間座標の算出方法を説明するための参考図である。
【図２７】本発明の一実施形態における空間座標の算出方法を説明するための参考図である。
【図２８】本発明の一実施形態における空間座標の算出方法を説明するための参考図である。
【図２９】本発明の一実施形態における空間座標の算出方法を説明するための参考図である。
【図３０】本発明の一実施形態における３Ｄ計測ソフトによる動作の手順を示すフローチャートである。
【図３１】本発明の一実施形態における参照点と参照図形を示す参考図である。
【図３２】本発明の一実施形態におけるパン・チルト方向のマッチング処理の内容を説明するための参考図である。
【図３３】本発明の一実施形態におけるデータリストを示す参考図である。
【図３４】本発明の一実施形態におけるデータリストを示す参考図である。
【図３５】本発明の一実施形態におけるデータリストを示す参考図である。
【図３６】本発明の一実施形態における３Ｄ計測ソフトによる動作の手順を示すフローチャートである。
【図３７】本発明の一実施形態におけるロール方向のマッチング処理の内容を説明するための参考図である。
【図３８】本発明の一実施形態における３Ｄ計測ソフトによる動作の手順を示すフローチャートである。
【図３９】本発明の一実施形態におけるズーム方向のマッチング処理の内容を説明するための参考図である。
【図４０】本発明の一実施形態における辺長（３Ｄ）とカメラポーズのズーム方向位置との関係を示すグラフである。
【図４１】本発明の一実施形態における３Ｄ計測ソフトによる動作の手順を示すフローチャートである。
【図４２】本発明の一実施形態におけるシフト方向のマッチング処理の内容を説明するための参考図である。
【図４３】本発明の一実施形態の変形例を説明するための参考図である。
【図４４】本発明の一実施形態の変形例を説明するための参考図である。
【図４５】本発明の一実施形態の変形例を説明するための参考図である。
【図４６】本発明の一実施形態によるブレード検査システムが備える制御用コンピュータのＣＰＵの機能構成を示すブロック図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照し、本発明の実施形態を説明する。図１は、本実施形態によるブレード検査システムの構成を示している。ジェットエンジン１内には、検査対象物である複数のタービンブレード１０（もしくはコンプレッサーブレード）が所定の間隔で周期的に配置されている。また、ジェットエンジン１には、タービンブレード１０を回転方向Ａに所定の速度で回転させるターニングツール２が接続されている。本実施形態では、タービンブレード１０の画像を取り込んでいる間は常にタービンブレード１０を回転させた状態にしている。
【００２２】
本実施形態では、タービンブレード１０の画像を取得するため、内視鏡装置３（本発明の画像処理装置に対応）が用いられる。ジェットエンジン１の内部には、内視鏡装置３の内視鏡挿入部２０が挿入されており、この内視鏡挿入部２０により、回転しているタービンブレード１０の映像が取り込まれる。また、内視鏡装置３には、タービンブレード１０の３次元計測を行うための３Ｄ計測ソフトが記憶されている。
【００２３】
図２は内視鏡装置３の構成を示している。内視鏡装置３は、内視鏡挿入部２０、内視鏡装置本体２１、モニタ２２、およびリモコン（リモートコントローラ）２３から構成されている。内視鏡挿入部２０の先端には、撮像光学系３０ａおよび撮像素子３０ｂが内蔵されている。また、内視鏡装置本体２１には、画像信号処理装置（ＣＣＵ）３１、光源３２、湾曲制御ユニット３３、および制御用コンピュータ３４が内蔵されている。
【００２４】
内視鏡挿入部２０において、撮像光学系３０ａは被写体（被検体）からの光を集光し、撮像素子３０ｂの撮像面上に被写体像を結像する。撮像素子３０ｂは、被写体像を光電変換して撮像信号を生成する。撮像素子３０ｂから出力された撮像信号は画像信号処理装置３１に入力される。
【００２５】
内視鏡装置本体２１において、画像信号処理装置３１は、撮像素子３０ｂからの撮像信号をＮＴＳＣ信号等の映像信号に変換して制御用コンピュータ３４に供給し、さらに必要に応じてアナログビデオ出力として、外部に出力する。
【００２６】
光源３２は、光ファイバ等を通じて内視鏡挿入部２０の先端に接続されており、光を外部に照射することができる。湾曲制御ユニット３３は内視鏡挿入部２０の先端と接続されており、先端を上下左右に湾曲させることができる。光源３２および湾曲制御ユニット３３の制御は、制御用コンピュータ３４によって行われる。
【００２７】
制御用コンピュータ３４は、ＲＡＭ３４ａ、ＲＯＭ３４ｂ、ＣＰＵ３４ｃ、外部インターフェースとしてネットワークＩ／Ｆ３４ｄ、ＲＳ２３２Ｃ Ｉ／Ｆ３４ｅ、カード Ｉ／Ｆ３４ｆから構成されている。ＲＡＭ３４ａは、ソフトウェア動作に必要な画像情報等のデータを一時記憶するために使用される。ＲＯＭ３４ｂには、内視鏡装置３を制御するための一連のソフトウェア（プログラム）が記憶されており、後述する３Ｄ計測ソフトもＲＯＭ３４ｂ内に記憶される。ＣＰＵ３４ｃは、ＲＯＭ３４ｂに記憶されているソフトウェアの命令コードに従って、ＲＡＭ３４ａに記憶されたデータを用いて各種制御のための演算等を実行する。
【００２８】
ネットワークＩ／Ｆ３４ｄは、外部ＰＣとＬＡＮケーブルによって接続するためのインターフェースであり、外部ＰＣに対して、画像信号処理装置３１から出力された映像情報を展開することができる。ＲＳ２３２Ｃ Ｉ／Ｆ３４ｅは、リモコン２３と接続するためのインターフェースであり、このリモコン２３をユーザが操作することによって、内視鏡装置３の各種動作を制御することができる。カード Ｉ／Ｆ３４ｆは、記録媒体である各種メモリカード５０を自由に着脱できるようになっている。メモリカード５０を装着することにより、ＣＰＵ３４ｃの制御によって、メモリカード５０に記憶されている画像情報等のデータを取り込み、あるいは画像情報等のデータをメモリカード５０に記録することができる。
【００２９】
本実施形態によるブレード検査システムの構成の変形例として、図３に示す構成を用いてもよい。本変形例では、内視鏡装置３にビデオ端子ケーブル４およびビデオキャプチャカード５が接続されており、これによって、内視鏡装置３が取り込んだ映像をＰＣ６（本発明の画像処理装置に対応）にも取り込ませることが可能となっている。ＰＣ６は、図３ではノート型ＰＣとして描かれているが、デスクトップ型のＰＣ等でもよい。ＰＣ６には、タービンブレード１０の３次元計測を行うための３Ｄ計測ソフトが記憶されている。
【００３０】
さらに、図３では、ＰＣ６への映像の取り込みにビデオ端子ケーブル４およびビデオキャプチャカード５を用いているが、図４に示すようにＬＡＮケーブル７を用いてもよい。内視鏡装置３は、取り込まれた映像をＬＡＮネットワーク上に展開することのできるネットワークＩ／Ｆ３４ｄを備えている。そして、ＬＡＮケーブル７を通じて、ＰＣ６に映像を取りませることができる。
【００３１】
図５はＰＣ６の構成を示している。ＰＣ６はＰＣ本体２４およびモニタ２５から構成されている。ＰＣ本体２４には、制御用コンピュータ３５が内蔵されている。制御用コンピュータ３５は、ＲＡＭ３５ａ、ＨＤＤ（ハードディスクドライブ）３５ｂ、ＣＰＵ３５ｃ、外部インターフェースとして、ネットワークＩ／Ｆ３５ｄ、ＵＳＢ Ｉ／Ｆ３５ｅから構成されている。制御用コンピュータ３５はモニタ２５に接続されており、映像情報およびソフトウェアの画面等がモニタ２５に表示される。
【００３２】
ＲＡＭ３５ａは、ソフトウェア動作に必要な画像情報等のデータを一時記憶するために使用される。ＨＤＤ３５ｂには、内視鏡装置を制御するために一連のソフトウェアが記憶されており、３Ｄ計測ソフトもＨＤＤ３５ｂ内に記憶される。また、本実施形態では、タービンブレード１０の画像を保存する保存用フォルダはＨＤＤ３５ｂ内に設定される。ＣＰＵ３５ｃは、ＨＤＤ３５ｂに記憶されているソフトウェアの命令コードに従って、ＲＡＭ３５ａに記憶されたデータを用いて各種制御のための演算等を実行する。
【００３３】
ネットワークＩ／Ｆ３５ｄは、内視鏡装置３とＰＣ６をＬＡＮケーブル７によって接続するためのインターフェースであり、内視鏡装置３からＬＡＮ出力された映像情報をＰＣ６に入力することができる。ＵＳＢ Ｉ／Ｆ３５ｅは、内視鏡装置３とＰＣ６をビデオキャプチャカード５によって接続するためのインターフェースであり、内視鏡装置３からアナログビデオ出力された映像情報をＰＣ６に入力することができる。
【００３４】
図３および図４に示すブレード検査システムでは、図１に示すブレード検査システムと同様の効果を得ることができる。特に、内視鏡装置の性能がＰＣよりも劣っており、内視鏡装置の動作速度等が十分でない場合等に、図３および図４に示すブレード検査システムは有効である。
【００３５】
次に、３Ｄ計測ソフトの画面を説明する。図６は、３Ｄ計測ソフトのメインウィンドウを示している。図６に示すメインウィンドウ６００は、ユーザが３Ｄ計測ソフトを起動した際にモニタ２２に表示される。ＣＰＵ３４ｃは、３Ｄ計測ソフトに従って、メインウィンドウ６００内の各種ＣＵＩの操作に基づく処理を行う。
【００３６】
メインウィンドウ６００の表示は、ＣＰＵ３４ｃによる制御に従って行われる。ＣＰＵ３４ｃは、メインウィンドウ６００を表示するためのグラフィック画像信号（表示信号）を生成し、モニタ２２へ出力する。また、内視鏡装置３に取り込まれた映像（以下、計測画像と記載）をメインウィンドウ６００上に重畳表示する場合には、ＣＰＵ３４ｃは、画像信号処理装置３１から取り込んだ画像データをグラフィック画像信号に重畳する処理を行い、処理後の信号（表示信号）をモニタ２２へ出力する。
【００３７】
また、メインウィンドウ６００上のＧＵＩの表示状態を更新する場合、ＣＰＵ３４ｃは、更新後のメインウィンドウ６００に対応したグラフィック画像信号を生成し、上記と同様の処理を行う。メインウィンドウ６００以外のウィンドウの表示に係る処理も上記と同様である。以下、メインウィンドウ６００等を表示（更新も含む）するためにＣＰＵ３４ｃがグラフィック画像信号を生成する処理のことを、メインウィンドウ６００等を表示するための処理と記載する。
【００３８】
ユーザは、ＧＵＩ（グラフィカルユーザインタフェース）機能を利用して、リモコン２３を介してメインウィンドウ６００を操作し、メインウィンドウ６００に重畳表示されるカーソルＣを移動させ、クリック等の指示を入力することにより、メインウィンドウ６００の各種ＧＵＩの操作を行うことができる。以下、各種ＧＵＩの機能を説明する。
【００３９】
メインウィンドウ６００の右上部には、[ファイル選択]ボックス６１０が配置されている。また、メインウィンドウ６００の左上部には[計測画像]ボックス６１１が配置されている。[ファイル選択]ボックス６１０は、[計測画像]ボックス６１１に表示される計測画像の選択、および[計測画像]ボックス６１１に表示される３Ｄオブジェクトに対応したＣＡＤデータの選択を行うためのボックスである。
【００４０】
ＣＡＤデータは、ＣＡＤを利用して予め算出されたタービンブレード１０の３次元形状を表すデータである。ＣＡＤデータの形式には、ＳＴＬ（Standard Triangulated Language）形式等を用いる。３Ｄオブジェクトは、ＣＡＤデータの内容をもとに構築されたＣＧ物体である。[ファイル選択]ボックス６１０内のＧＵＩおよび操作の詳細については、記載しない。
【００４１】
[計測画像]ボックス６１１は、計測対象物であるタービンブレード１０を撮像して得られた計測画像ＩＭＧを表示し、計測画像ＩＭＧ上に３ＤオブジェクトＯＢを重畳表示するためのボックスである。後述するように、ユーザは[計測画像]ボックス６１１の操作を行うことにより、カメラポーズの変更、参照点の指定、計測点の指定等を行う。
【００４２】
メインウィンドウ６００の左下部には、[表示設定]ボックス６２０が配置されている。[表示設定]ボックス６２０内には、[計測画像]ボックス６１１に表示された３ＤオブジェクトＯＢの表示設定に関するＧＵＩが配置されている。[表示設定]ボックス６２０内の各ＧＵＩの機能は以下の通りである。
【００４３】
[透過率]バー６２１は、３Ｄオブジェクトの表示透過率を設定するためのバーである。[透過率]バー６２１は水平方向（横方向）に移動（スライド）可能になっており、ユーザが[透過率]バー６２１を移動させることで、３Ｄオブジェクトの表示透過率が変化する。
【００４４】
例えば、透過率が大きく設定された場合、３ＤオブジェクトＯＢは透明に近い透過率で表示され、透過率が小さく設定された場合、３ＤオブジェクトＯＢは透過されずに表示される。後述するように、[計測画像]ボックス６１１において、ユーザが計測画像ＩＭＧに参照点を指定する際には、３ＤオブジェクトＯＢの透過率を大きく設定することで、計測画像ＩＭＧを見やすくすると良い。また、ユーザが３ＤオブジェクトＯＢに参照点を指定する際には、３ＤオブジェクトＯＢの透過率を小さく設定することで、３ＤオブジェクトＯＢを見やすくすると良い。
【００４５】
[表示方法]ラジオボタン６２２は、３ＤオブジェクトＯＢの表示方法を設定するためのラジオボタンである。[表示方法]ラジオボタン６２２には、「シェーディング」と「ワイヤーフレーム」の２つの設定項目がある。「シェーディング」が選択された場合、３ＤオブジェクトＯＢは、ワイヤーフレームおよび表面が塗りつぶされた状態で表示され、「ワイヤーフレーム」が選択された場合、図６のように、３ＤオブジェクトＯＢはワイヤーフレームのみの状態で表示される。
【００４６】
[表示方法]ラジオボタン６２３は、３ＤオブジェクトＯＢの表示色を設定するためのラジオボタンである。[表示方法]ラジオボタン６２３には、「水色」と「黄色」の２つの設定項目がある。[表示方法]ラジオボタン６２３の設定によって、３ＤオブジェクトＯＢの表示色を切り替えることができる。
【００４７】
[移動方向]ラジオボタン６２４は、カメラポーズの移動方向を設定するためのラジオボタンである。カメラポーズは、３ＤオブジェクトＯＢの姿勢（ポーズ）、すなわち３ＤオブジェクトＯＢをどの方向、どの位置から見ているかを示すパラメータである。[移動方向]ラジオボタン６２４には、「パン/チルト」と「ロール/ズーム」の２つの設定項目がある。「パン/チルト」が選択された場合、[計測画像]ボックス６１１において、ユーザがカーソルＣを上下左右に移動させることで、カメラポーズをパン・チルト方向に回転させることができる。また、「ロール/ズーム」が選択された場合、同様の操作で、カメラポーズをロール・ズーム方向に回転させることができる。
【００４８】
[計測画像]ボックス６１１の下側には、[現在位置]ボックス６３０が配置されている。[現在位置]ボックス６３０は、カーソル位置における３ＤオブジェクトＯＢの表面座標をリアルタイムで表示するためのボックスである。３ＤオブジェクトＯＢの表面座標は空間座標系の座標としてｍｍ単位で示される。[計測画像]ボックス６１１において、ユーザがカーソルＣを移動させることで、[現在位置]ボックス６３０の値もリアルタイムに変更される。例えば、カーソルＣが３ＤオブジェクトＯＢ上に位置する場合、３ＤオブジェクトＯＢの表面座標が算出され、[現在位置]ボックス６３０に表示される。カーソルＣが３ＤオブジェクトＯＢ上に位置しない場合は、[現在位置]ボックス６３０に「ｎｕｌｌ」と表示される。３ＤオブジェクトＯＢの表面座標の算出方法については、図２６〜図２９を用いて後述する。
【００４９】
[現在位置]ボックス６３０の下側には、[カメラポーズ]ボックス６４０が配置されている。[カメラポーズ]ボックス６４０は、カメラポーズをリアルタイムで表示するためのボックスである。ユーザがカメラポーズを変更することで、[カメラポーズ]ボックス６４０の値がアルタイムに変更される。カメラポーズは、空間座標系の座標としてｍｍ単位で示される。
【００５０】
[カメラポーズ]ボックス６４０の右側には、[シフト位置]ボックス６５０が配置されている。[シフト位置]ボックス６５０は、[計測画像]ボックス６１１における３ＤオブジェクトＯＢのシフト位置を表示するためのボックスである。３ＤオブジェクトＯＢのシフト位置は、平面座標系の座標としてｐｉｘｅｌ単位で示される。
【００５１】
３ＤオブジェクトＯＢは[計測画像]ボックス６１１の中央部に表示されており、カメラポーズが変更されても表示位置は変化しない。しかし、計測画像ＩＭＧに写った被検体は、必ずしも画像の中央部に位置しているわけではない。そのため、計測画像ＩＭＧと３Ｄオブジェクト３Ｄとをマッチングさせる処理である３Ｄマッチング処理の実行後、３ＤオブジェクトＯＢは[計測画像]ボックス６１１の中央部ではなく、計測画像に写った被検体の上に位置しているべきである。
【００５２】
上記のシフト位置は、[計測画像]ボックス６１１の中央部からの３ＤオブジェクトＯＢの相対位置を示している。以下、平面座標系におけるシフト位置の移動方向をシフト方向と記載する。ユーザが手動で任意にシフト位置を変更することはできない。シフト位置は、３Ｄマッチング処理の実行後に、ＣＰＵ３４ｃが算出するものである。
【００５３】
[ファイル選択]ボックス６１０の下側には、[マッチング/計測]ボックス６６０が配置されている。[マッチング/計測]ボックス６６０内には、３Ｄマッチング処理および計測に関するＧＵＩが配置されている。[マッチング/計測]ボックス６６０内の各ＧＵＩの機能は以下の通りである。
【００５４】
[カメラポーズ]ボタン６６１ａは、カメラポーズを変更するためのボタンである。[カメラポーズ]ボタン６６１ａが押下された後、[計測画像]ボックス６１１ａにおいて、ユーザがカーソルＣを上下左右に移動させることで、カメラポーズが変更可能となる。また、[カメラポーズ]ボタン６６１ａの右側には、[リセット]ボタン６６１ｂが配置されており、[リセット]ボタン６６１ｂが押下されると、カメラポーズが初期値に設定される。
【００５５】
[参照点（計測）]ボタン６６２ａは、計測画像ＩＭＧの参照点（計測）を指定するためのボタンである。参照点（計測）とは、ＣＰＵ３４ｃが３Ｄマッチング処理を実行する際の基準となる計測画像ＩＭＧ上の点のことである。[参照点（計測）]ボタン６６２ａが押下された後、[計測画像]ボックス６１１において、ユーザがカーソルＣを移動させて、指定したい位置でクリック等を行うことで、計測画像ＩＭＧに写った被検体に対して参照点（計測）を指定することができる。参照点（計測）は、平面座標系の座標としてｐｉｘｅｌ単位で示される。また、[参照点（計測）]ボタン６６２ａが押下されると、３ＤオブジェクトＯＢの表示透過率が自動的に大きく設定され、計測画像ＩＭＧが見やすい状態となる。また、[参照点（計測）]ボタン６６２ａの右側には、[クリア]ボタン６６２ｂが配置されており、[クリア]ボタン６６２ｂが押下されると、既に指定された参照点（計測）が全てクリアされ、指定前の状態となる。
【００５６】
[参照点（３Ｄ）]ボタン６６３ａは、３ＤオブジェクトＯＢの参照点（３Ｄ）を指定するためのボタンである。参照点（３Ｄ）とは、参照点（計測）と同様に、ＣＰＵ３４ｃが３Ｄマッチング処理を実行する際の基準となる３Ｄオブジェクト上の点である。[参照点（３Ｄ）]ボタン６６３ａが押下された後、[計測画像]ボックス６１１において、ユーザがカーソルＣを移動させて、参照点（３Ｄ）を指定したい位置でクリック等の操作を行うことで、３ＤオブジェクトＯＢに対して参照点（３Ｄ）を指定することができる。参照点（３Ｄ）は、空間座標系の座標としてｍｍ単位で示される。また、[参照点（３Ｄ）]ボタン６６３ａが押下された後、３ＤオブジェクトＯＢの表示透過率が自動的に小さく設定され、３ＤオブジェクトＯＢが見やすい状態となる。また、[参照点（３Ｄ）]ボタン６６３ａの右側には、[クリア]ボタン６６３ｂが配置されており、[クリア]ボタン６６３ｂが押下されると、既に指定された参照点（３Ｄ）が全てクリアされ、指定前の状態となる。
【００５７】
[３Ｄマッチング]ボタン６６４は、３Ｄマッチング処理を実行するためのボタンである。[３Ｄマッチング]ボタン６６４が押下された後、ユーザが指定した２組の参照点（参照点（計測）と参照点（３Ｄ））に基づいて、ＣＰＵ３４ｃは３Ｄマッチング処理を実行する。このとき、ＣＰＵ３４ｃは、２組の参照点の位置がそれぞれ一致するように、３Ｄマッチング処理を行うことになる。３Ｄマッチング処理の結果、計測画像ＩＭＧ内の被検体と３ＤオブジェクトＯＢとがほぼ一致するように表示され、計測画像ＩＭＧ内の被検体と３ＤオブジェクトＯＢが計測に適した状態となる。
【００５８】
[計測]ボタン６６５ａは、計測点を指定するためのボタンである。計測点とは、計測を行う際の基準となる点である。[計測]ボタン６６５ａが押下された後、[計測画像]ボックス６１１において、ユーザがカーソルＣを移動させて、計測点を指定したい位置でクリック等の操作を行うことで、３ＤオブジェクトＯＢに対して計測点を指定することができる。ＣＰＵ３４ｃは、指定された計測点に基づいて、計測処理を実行する。また、[計測]ボタン６６５ａの右側には、[クリア]ボタン６６５ｂが配置されており、[クリア]ボタン６６５ｂが押下されると、既に指定された計測点が全てクリアされ、指定前の状態となる。
【００５９】
[マッチング/計測]ボックス６６０の下側には、[計測結果]ボックス６７０が配置されている。[計測結果]ボックス６７０は、計測結果を表示するためのボックスである。[計測画像]ボックス６１１においてユーザが計測点を指定すると、指定された計測点に基づいて計測処理が実行され、[計測結果]ボックス６７０に計測結果が表示される。
【００６０】
メインウィンドウ６００の右下部には、[終了]ボタン６８０が配置されている。[終了]ボタン６８０は、３Ｄ計測ソフトを終了するためのボタンである。[終了]ボタン６８０が押下されると、全てのソフト動作が終了し、メインウィンドウ６００が閉じる（非表示となる）。
【００６１】
次に、図７を用いて、３Ｄオブジェクトとカメラポーズとの関係について説明する。図７に示すように、実空間に対応する仮想的な空間上に３ＤオブジェクトＯＢ１および視点７００がある。３ＤオブジェクトＯＢ１の位置は固定されているが、視点７００の位置はユーザによって自由に変更される。３ＤオブジェクトＯＢ１の重心位置には視線中心７０１があり、視点７００から視線方向７０２に伸びる直線は、常にこの視線中心７０１を向いている。視線中心７０１の位置は固定されている。
【００６２】
３ＤオブジェクトＯＢ１と視点７００との間には、矩形状のスクリーン平面７０３がある。スクリーン平面７０３は[計測画像]ボックス６１１に相当するものである。スクリーン平面７０３の縦方向および横方向のサイズは固定値である。３ＤオブジェクトＯＢ１をスクリーン平面７０３に投影した投影像が、[計測画像]ボックス６１１に表示される３ＤオブジェクトＯＢである。
【００６３】
スクリーン平面７０３は、視線方向７０２と常に垂直であり、視点７００から視線方向７０２に伸びる直線は、常にスクリーン平面７０３の中心７０４を通る。視点７００からスクリーン平面７０３の中心７０４までの距離７０６は固定値であるが、視点７００から視線中心７０１までの距離は、ユーザによって自由に変更される。
【００６４】
スクリーン平面７０３の向いている方向は、上方向ベクトル７０５によって示される。この上方向ベクトル７０５は、スクリーン平面７０３と平行であり、スクリーン平面７０３の上方向がどの方向かを表す単位ベクトルである。
【００６５】
図７に示した項目のうち、カメラポーズを構成するパラメータは、視点位置、視線中心位置、上方向ベクトルの３つである。以下では、図８〜図１０を用いて、カメラポーズを変更したときの３Ｄオブジェクトとカメラポーズとの関係について説明する。
【００６６】
図８（ａ）は、カメラポーズをパン・チルト方向に変更した場合の３Ｄオブジェクトとカメラポーズとの関係を示している。パン方向とは、視点８００から視線中心８０１までの距離を固定したまま、視点８００を上方向ベクトル８０２と垂直に移動させた場合の方向（パン方向８０３）である。チルト方向とは、視点８００から視線中心８０１までの距離を固定したまま、視点８００を上方向ベクトル８０２と平行に移動させた場合の方向（チルト方向８０４）である。図８（ａ）のように、カメラポーズをパン・チルト方向に変更すると、図８（ｂ）のように、スクリーン平面８０５に投影される３ＤオブジェクトＯＢは、上下左右の各方向に回転することがわかる。
【００６７】
図９（ａ）は、カメラポーズをロール方向に変更した場合の３Ｄオブジェクトとカメラポーズとの関係を示している。ロール方向とは、視点９００の位置を固定したまま、視点９００から視点中心９０１に向かう視点方向９０２の軸を中心に、スクリーン平面９０３を回転させた場合の方向（ロール方向９０４）である。図９（ａ）のように、カメラポーズをロール方向に変更すると、図９（ｂ）のように、スクリーン平面９０３に投影される３ＤオブジェクトＯＢは、スクリーン平面９０３の中心を軸として回転することがわかる。
【００６８】
図１０（ａ）は、カメラポーズをズーム方向に変更した場合の３Ｄオブジェクトとカメラポーズとの関係を示している。ズーム方向とは、上方向ベクトル１０００を固定したまま、視点１００１を視線方向１００２と平行に移動させた場合の方向（ズーム方向１００３）である。図１０（ａ）のように、カメラポーズをズーム方向に変更すると、図１０（ｂ）のように、スクリーン平面１００４に投影される３ＤオブジェクトＯＢは、拡大・縮小することがわかる。
【００６９】
上記の説明の通り、カメラポーズが変更されると、スクリーン平面の位置・方向が変化する。それに伴い、スクリーン平面に投影される３Ｄオブジェクトの表示も変化し、その結果、[計測画像]ボックス６１１に表示される３Ｄオブジェクトの表示も変化することになる。ＣＰＵ３４ｃは、ユーザによってリモコン２３を介して入力されるカメラポーズの変更指示を検出し、その変更指示に応じて、３Ｄオブジェクトを[計測画像]ボックス６１１に表示するための処理を行う。
【００７０】
次に、図１１を用いて、３Ｄ計測ソフトの動作の流れを説明する。以下では、メインウィンドウ６００における全てのＧＵＩに関する動作ではなく、一部のＧＵＩに関する動作のみ説明するものとする。具体的には、[計測画像]ボックス６１１、[カメラポーズ]ボタン６６１ａ、[参照点（計測）]ボタン６６２ａ、[参照点（３Ｄ）]ボタン６６３ａ、[３Ｄマッチング]ボタン６６４、[計測]ボタン６６５ａ、[計測結果]ボックス６７０、[終了]ボタン６８０に関する動作は説明するが、その他のＧＵＩに関する動作の説明は行わない。
【００７１】
ステップＳＡでは、ＣＰＵ３４ｃが３Ｄ計測ソフトを起動する。具体的には、ユーザがリモコン２３を介して入力した起動指示に基づいて、ＣＰＵ３４ｃは、ＲＯＭ３４ｂに格納されている３Ｄ計測ソフトをＲＡＭ３４ａに読み込み、３Ｄ計測ソフトに従った動作を開始する。ステップＳＢでは、ＣＰＵ３４ｃが、メインウィンドウ６００を表示するための処理を行う。
【００７２】
ステップＳＣでは、ＣＰＵ３４ｃが初期化処理を行う。初期化処理とは、メインウィンドウ６００内の各種ＧＵＩの初期状態を設定したり、ＲＡＭ３４ａに記録された各種データの初期値を設定したりする処理である。初期化処理の詳細については、後述する。
【００７３】
ステップＳＤでは、ＣＰＵ３４ｃがカメラポーズ設定処理を行う。カメラポーズ設定処理とは、ユーザが入力した、カメラポーズを変更する指示に基づいて、[計測画像]ボックス６１１の計測画像内の被検体と３Ｄオブジェクトとを大まかにマッチングさせる処理である。カメラポーズ設定処理の詳細については、後述する。
【００７４】
ステップＳＥでは、ＣＰＵ３４ｃが参照点（計測）指定処理を行う。参照点（計測）指定処理とは、ユーザが入力した、[計測画像]ボックス６１１の計測画像に写った被検体上の位置を指定する指示に基づいて、参照点を指定（設定）する処理である。参照点（計測）指定処理の詳細については、後述する。
【００７５】
ステップＳＦでは、ＣＰＵ３４ｃが参照点（３Ｄ）指定処理を行う。参照点（３Ｄ）指定処理とは、ユーザが入力した、[計測画像]ボックス６１１の３Ｄオブジェクト上の位置を指定する指示に基づいて、参照点を指定（設定）する処理である。参照点（３Ｄ）指定処理の詳細については、後述する。
【００７６】
ステップＳＧでは、ＣＰＵ３４ｃが３Ｄマッチング処理を行う。３Ｄマッチング処理とは、ユーザが指定した２組の参照点（参照点（計測）・参照点（３Ｄ））に基づいて、[計測画像]ボックス６１１に表示された計測画像と３Ｄオブジェクトとをマッチングさせる処理である。３Ｄマッチング処理の詳細については、後述する。
【００７７】
ステップＳＨでは、ＣＰＵ３４ｃが計測処理を行う。計測処理とは、ユーザが入力した、[計測画像]ボックス６１１の３Ｄオブジェクト上の位置を指定する指示に基づいて、計測点を指定（設定）し、指定した計測点に基づいて、被検体のサイズを算出する処理である。計測処理の詳細については、後述する。
【００７８】
ステップＳＩでは、ＣＰＵ３４ｃが、ユーザによって[終了]ボタン６８０が押下されたかどうかを確認する。ユーザが[終了]ボタン６８０を押下した場合、処理はステップＳＪに移行する。また、ユーザが[終了]ボタン６８０を押下しなかった場合、処理はステップＳＤに移行する。ステップＳＪでは、ＣＰＵ３４ｃがメインウィンドウ６００を非表示とし、３Ｄ計測ソフトの動作を終了する。
【００７９】
次に、図１２を用いて、ステップＳＣの初期化処理の動作の流れを説明する。ステップＳＣ１では、ＣＰＵ３４ｃが、メモリカード５０に記録された所定の計測画像ファイルおよびＣＡＤデータをＲＡＭ３４ａに読み込む。ステップＳＣ２では、ＣＰＵ３４ｃが、読み込まれたＣＡＤデータに基づいて、カメラポーズ（初期値）を算出する。
【００８０】
カメラポーズのうち、視点位置については、図１３のように、ＣＰＵ３４ｃは空間座標系の原点の座標（ｘ，ｙ，ｚ）＝（０，０，０）を初期値（視点１３００）とする。カメラポーズのうち、視線中心位置については、図１３のように、ＣＰＵ３４ｃは、ＣＡＤデータにおける全ての空間座標の重心位置を算出し、その座標を初期値（視点中心１３０１）とする。この視線中心位置は、ＣＡＤデータごとに固有の値であり、この後、カメラポーズが変更されても、この値が変化することはない。カメラポーズのうち、上方向ベクトルについては、図１３のように、ＣＰＵ３４ｃは、視点１３００と視線中心１３０１を結ぶ直線と直交する単位ベクトルのうち、Ｚ方向成分の最も大きいものを初期値（上方向ベクトル１３０２）とする。ここでは、Ｚ方向成分の最も大きい単位ベクトルを上方向ベクトルの初期値としているが、Ｚ方向成分の最も大きい単位ベクトルに限るわけではない。
【００８１】
ステップＳＣ３では、ＣＰＵ３４ｃが、ステップＳＣ２で算出したカメラポーズ（初期値）をカレントカメラポーズとしてＲＡＭ３４ａに記録する。カレントカメラポーズとは、現在設定されているカメラポーズのことであり、３Ｄオブジェクトは、このカレントカメラポーズに基づいて表示されることになる。
【００８２】
ステップＳＣ４では、ＣＰＵ３４ｃが、図１４のように[計測画像]ボックス６１１に計測画像ＩＭＧを表示し、さらにその上に３ＤオブジェクトＯＢを所定の透過率で重畳表示するための処理を実行する。このとき、３ＤオブジェクトＯＢは、算出されたカメラポーズ（初期値）に基づいて、スクリーン平面に投影された平面図として表示される。ステップＳＣ４の処理が終了すると、初期化処理が終了する。
【００８３】
次に、図１５を用いて、ステップＳＤのカメラポーズ設定処理の流れを説明する。ステップＳＤ１では、ＣＰＵ３４ｃが、[カメラポーズ]ボタン６６１ａが既に押下された状態（ステップＳＤ３の処理が既に行われた状態）であるかどうかを確認する。[カメラポーズ]ボタン６６１ａが押下された状態である場合、処理はステップＳＤ４に移行し、[カメラポーズ]ボタン６６１ａが押下された状態でない場合、処理はステップＳＤ２に移行する。
【００８４】
ステップＳＤ２では、ＣＰＵ３４ｃが、[カメラポーズ]ボタン６６１ａがユーザによって押下されたかどうかを確認する。[カメラポーズ]ボタン６６１ａが押下された場合、処理はステップＳＤ３に移行し、[カメラポーズ]ボタン６６１ａが押下されていない場合、カメラポーズ設定処理が終了する。
【００８５】
ステップＳＤ３では、ＣＰＵ３４ｃが、図１６（ａ）のように[カメラポーズ]ボタン６６１ａを強調表示するための処理を行う。[カメラポーズ]ボタン６６１ａを強調表示するのは、現在、カメラポーズが変更可能であることをユーザに通知するためである。
【００８６】
ステップＳＤ４では、ＣＰＵ３４ｃが、図１６（ｂ）のように、[計測画像]ボックス６１１において、ユーザがリモコン２３を操作してカーソルＣによりクリック等を行いながらカーソルＣを上下左右に移動させる操作（ドラッグ操作）を検出し、カーソルＣの操作を検出した結果に基づいてカメラポーズを変更する。このとき、ユーザは、計測画像に写った被検体ＤＵＴと３ＤオブジェクトＯＢとが大まかにマッチングするように、カメラポーズを変更する。カメラポーズは、前述したパン・チルト・ロール・ズームの方向に変更可能である。また、このとき、ＣＰＵ３４ｃは、リモコン２３を介して入力されるカーソルＣの操作指示を検出し、その操作指示に基づいて、変更後のカメラポーズを算出する。
【００８７】
ステップＳＤ５では、ＣＰＵ３４ｃが変更後のカメラポーズをカレントカメラポーズとしてＲＡＭ３４ａに上書き記録する。ステップＳＤ６では、ＣＰＵ３４ｃが、カレントカメラポーズに基づいて、３Ｄオブジェクトを再表示するための処理を行う。これによって、図１６（ｃ）のように、カメラポーズが変更された３ＤオブジェクトＯＢが[計測画像]ボックス６１１に表示される。ステップＳＤ６の処理が終了すると、カメラポーズ設定処理が終了する。
【００８８】
次に、図１７を用いて、ステップＳＥの参照点（計測）指定処理の流れを説明する。ステップＳＥ１では、ＣＰＵ３４ｃが、[参照点（計測）]ボタン６６２ａが既に押下された状態（ステップＳＥ３，ＳＥ４の処理が既に行われた状態）であるかどうかを確認する。[参照点（計測）]ボタン６６２ａが押下された状態である場合、処理はステップＳＥ５に移行し、[参照点（計測）]ボタン６６２ａが押下された状態でない場合、処理はステップＳＥ２に移行する。
【００８９】
ステップＳＥ２では、ＣＰＵ３４ｃが、[参照点（計測）]ボタン６６２ａがユーザによって押下されたかどうかを確認する。[参照点（計測）]ボタン６６２ａが押下された場合、処理はステップＳＥ３に移行し、押下されていない場合、参照点（計測）指定処理が終了する。
【００９０】
ステップＳＥ３では、ＣＰＵ３４ｃが、図１８（ａ）のように、[参照点（計測）]ボタン６６２ａを強調表示するための処理を行う。[参照点（計測）]ボタン６６２ａを強調表示するのは、現在、計測画像に対して参照点が指定可能であることをユーザに通知するためである。
【００９１】
ステップＳＥ４では、ＣＰＵ３４ｃが、図１８（ｂ）のように、３ＤオブジェクトＯＢの透過率を変更し、変更後の透過率で３ＤオブジェクトＯＢを再表示するための処理を行う。ここで設定される透過率は大きな値であり、３ＤオブジェクトＯＢは透明に近い状態となり、計測画像が見やすい状態となる。なお、特に図示していないが、既に指定した参照点（３Ｄ）が存在する場合は、３ＤオブジェクトＯＢが一旦非表示となる。これも、計測画像を見やすい状態とするためである。
【００９２】
ステップＳＥ５では、ＣＰＵ３４ｃが、[計測画像]ボックス６１１において、計測画像に写った被検体ＤＵＴに対して参照点（計測）を指定するためにユーザがリモコン２３を操作してカーソルＣによりクリック等を行う操作を検出し、カーソルＣの操作を検出した結果に基づいて、指定された参照点の座標を算出する。このとき算出される参照点（計測）の座標は、計測画像における平面座標（ｐｉｘｅｌ単位）である。
【００９３】
ステップＳＥ６では、ＣＰＵ３４ｃが、指定された参照点（計測）の座標をＲＡＭ３４ａに記録する。ステップＳＥ７では、ＣＰＵ３４ｃが、指定された参照点（計測）を計測画像上に重畳表示するための処理を行う。これによって、図１８（ｃ）のように、参照点（計測）Ｒ１，Ｒ２，Ｒ３が計測画像上に重畳表示される。ステップＳＥ７の処理が終了すると、参照点（計測）指定処理が終了する。
【００９４】
次に、図１９を用いて、ステップＳＦの参照点（３Ｄ）指定処理の流れを説明する。ステップＳＦ１では、ＣＰＵ３４ｃが、[参照点（３Ｄ）]ボタン６６３ａが既に押下された状態（ステップＳＦ３，ＳＦ４が既に行われた状態）であるかどうかを確認する。[参照点（３Ｄ）]ボタン６６３ａが押下された状態である場合、処理はステップＳＦ５に移行し、[参照点（３Ｄ）]ボタン６６３ａが押下されていない状態でない場合、処理はステップＳＦ２に移行する。
【００９５】
ステップＳＦ２では、ＣＰＵ３４ｃが、[参照点（３Ｄ）]ボタン６６３ａがユーザによって押下されたかどうかを確認する。[参照点（３Ｄ）]ボタン６６３ａが押下された場合、処理はステップＳＦ３に移行し、[参照点（３Ｄ）]ボタン６６３ａが押下されていない場合、参照点（３Ｄ）指定処理が終了する。
【００９６】
ステップＳＦ３では、ＣＰＵ３４ｃが、図２０（ａ）のように、[参照点（３Ｄ）]ボタン６６３ａを強調表示するための処理を行う。[参照点（３Ｄ）]ボタン６６３ａを強調表示するのは、現在、３Ｄオブジェクトに対して参照点が指定可能であることをユーザに通知するためである。
【００９７】
ステップＳＦ４では、ＣＰＵ３４ｃが、図２０（ｂ）のように、３ＤオブジェクトＯＢの透過率を変更し、変更後の透過率で３ＤオブジェクトＯＢを再表示するための処理を行う。ここで設定される透過率は小さな値であり、３ＤオブジェクトＯＢが見やすい状態となる。このとき、特に図示していないが、既に指定した参照点（計測）が存在する場合は、計測画像が一旦非表示となる。これも、３ＤオブジェクトＯＢを見やすい状態とするためである。
【００９８】
ステップＳＦ５では、ＣＰＵ３４ｃが、[計測画像]ボックス６１１において、計測画像に写った被検体ＤＵＴに対して参照点（３Ｄ）を指定するためにユーザがリモコン２３を操作してカーソルＣによりクリック等を行う操作を検出し、カーソルＣの操作を検出した結果に基づいて、指定された参照点の座標を算出する。このとき算出される参照点（３Ｄ）の座標は、３Ｄオブジェクト表面における空間座標（ｍｍ単位）であり、ＣＰＵ３４ｃは、まず指定された参照点の平面座標（ｐｉｘｅｌ単位）を算出し、続いて、算出した平面座標から空間座標（ｍｍ単位）を算出する。
【００９９】
ユーザが指定する参照点（３Ｄ）と、既に指定された参照点（計測）とが、それぞれ対応付けられていなくてはならない。本実施形態では、ＣＰＵ３４ｃは、ユーザが参照点（計測）を指定した順番と、参照点（３Ｄ）を指定した順番とに基づいて、参照点（３Ｄ）と参照点（計測）とを対応付けるものとする。より具体的には、ＣＰＵ３４ｃは、参照点（計測）のうち最初に指定された点と参照点（３Ｄ）のうち最初に指定された点とを対応付け、参照点（計測）のうち２番目に指定された点と参照点（３Ｄ）のうち２番目に指定された点とを対応付け、・・・、参照点（計測）のうちｎ番目に指定された点と参照点（３Ｄ）のうちｎ番目に指定された点とを対応付ける。上記の方法は一例であり、これに限るわけではない。
【０１００】
図１８（ｃ）に示すように、被検体ＤＵＴの左上の参照点（計測）Ｒ１、右上の参照点（計測）Ｒ２、右下の参照点（計測）Ｒ３が指定されている。参照点（計測）の指定が終了した後、ユーザは、被検体ＤＵＴ上の参照点（計測）に対応する３ＤオブジェクトＯＢ上の参照点（３Ｄ）を、参照点（計測）を指定したときと同じ順番で指定する。図２０（ｃ）に示すように、被検体ＤＵＴ上の参照点（計測）Ｒ１，Ｒ２，Ｒ３に対応する３Ｄオブジェクト上の位置に参照点（計測）Ｒ１’，Ｒ２’，Ｒ３’が指定されている。
【０１０１】
ステップＳＦ６では、ＣＰＵ３４ｃが、指定された参照点（３Ｄ）の座標をＲＡＭ３４ａに記録する。ステップＳＦ７では、ＣＰＵ３４ｃが、指定された参照点（３Ｄ）を３Ｄオブジェクト上に重畳表示するための処理を行う。これによって、図２０（ｃ）のように、参照点（３Ｄ）Ｒ１’，Ｒ２’，Ｒ３’が３ＤオブジェクトＯＢ上に重畳表示される。ステップＳＦ７の処理が終了すると、参照点（３Ｄ）指定処理が終了する。
【０１０２】
なお、ＣＰＵ３４ｃが、指定された参照点（３Ｄ）の座標をＣＡＤデータに記録してもよいし、ＣＡＤデータと紐付けされた（関連付けられた）別のファイルに記録してもよい。これによって、再度ステップＳＣ１にて同じＣＡＤデータを読み出した場合、ステップＳＦ１〜ステップＳＦ５の処理を省略することができる。また、参照点（３Ｄ）は必ずしもステップＳＦにおいて指定されるべきものではなく、予め内視鏡装置３またはＰＣ６等によって、ＣＡＤデータに記録されていてもよいし、ＣＡＤデータと紐付けされた（関連付けられた）別のファイルに記録されていてもよい。
【０１０３】
次に、図２１を用いて、ステップＳＧの３Ｄマッチング処理の流れを説明する。ステップＳＧ１では、ＣＰＵ３４ｃが、[３Ｄマッチング]ボタン６６４がユーザによって押下されたかどうかを確認する。[３Ｄマッチング]ボタン６６４が押下された場合、処理はステップＳＧ２に移行し、[３Ｄマッチング]ボタン６６４が押下されていない場合、３Ｄマッチング処理が終了する。
【０１０４】
ステップＳＧ２では、ＣＰＵ３４ｃが、全ての参照点が既に指定済みであるどうかを確認する。具体的には、ＣＰＵ３４ｃは、参照点（計測）および参照点（３Ｄ）が、それぞれ３点ずつ、既に指定済みであるかどうかを確認する。全ての参照点が指定済みの場合、処理はステップＳＧ３に移行し、参照点が指定済みでない場合、３Ｄマッチング処理が終了する。ステップＳＧ３では、ＣＰＵ３４ｃが、ＲＡＭ３４ａに記録された全ての参照点の座標を読み込む。
【０１０５】
ステップＳＧ４では、ＣＰＵ３４ｃが、指定された参照点の座標に基づいて、パン・チルト方向のマッチング処理を行う。パン・チルト方向のマッチング処理の詳細については、後述する。ステップＳＧ５では、ＣＰＵ３４ｃが、指定された参照点の座標に基づいて、ロール方向のマッチング処理を行う。ロール方向のマッチング処理の詳細については、後述する。
【０１０６】
ステップＳＧ６では、ＣＰＵ３４ｃが、指定された参照点の座標に基づいて、ズーム方向のマッチング処理を行う。ズーム方向のマッチング処理の詳細については、後述する。ステップＳＧ７では、ＣＰＵ３４ｃが、指定された参照点の座標に基づいて、シフト方向のマッチング処理を行う。シフト方向のマッチング処理の詳細については、後述する。
【０１０７】
ステップＳＧ８では、ＣＰＵ３４ｃが、[計測画像]ボックス６１１において、３Ｄオブジェクトを再表示するための処理を行う。このとき、３Ｄオブジェクトは、ステップＳＧ４〜ＳＧ７において最終的に算出されたカメラポーズおよびシフト位置に基づいて、姿勢および位置が調整されて表示される。図２２は、マッチング処理後の計測画像に写った被検体と３Ｄオブジェクトを示している。図２２のように、計測画像に写った被検体と３Ｄオブジェクトとが、ほぼ一致していること、すなわち、両者がうまくマッチングしていることがわかる。ステップＳＧ８の処理が終了すると、３Ｄマッチング処理が終了する。
【０１０８】
次に、図２３を用いて、ステップＳＨの計測処理の流れを説明する。ステップＳＨ１では、ＣＰＵ３４ｃが、[計測]ボタン６６４が既に押下された状態（ステップＳＨ３が既に行われた状態）であるかどうかを確認する。[計測]ボタン６６４が押下された状態である場合、処理はステップＳＨ４に移行し、[計測]ボタン６６４が押下された状態でない場合、処理はステップＳＨ２に移行する。
【０１０９】
ステップＳＨ２では、ＣＰＵ３４ｃが、[計測]ボタン６６４がユーザによって押下されたかどうかを確認する。[計測]ボタン６６４が押下された場合、処理はステップＳＨ３に移行し、[計測]ボタン６６４が押下されていない場合、計測処理が終了する。
【０１１０】
ステップＳＨ３では、ＣＰＵ３４ｃが、図２４（ａ）のように、[計測]ボタン６６４を強調表示するための処理を行う。[計測]ボタン６６４を強調表示するのは、現在、３Ｄオブジェクトに対して計測点が指定可能であることをユーザに通知するためである。
【０１１１】
ステップＳＨ４では、ＣＰＵ３４ｃが、[計測画像]ボックス６１１において、３Ｄオブジェクトに対して計測点を指定するためにユーザがリモコン２３を操作してカーソルＣによりクリック等を行う操作を検出し、カーソルＣの操作を検出した結果に基づいて、指定された計測点の座標を算出する。ＣＰＵ３４ｃは、算出した計測点の座標をＲＡＭ３４ａに記録する。このとき記録される計測点の座標は、３Ｄオブジェクト表面における空間座標（ｍｍ単位）である。
【０１１２】
ステップＳＨ５では、ＣＰＵ３４ｃが、指定された計測点の座標に基づいて、計測結果を算出し、算出した計測結果をＲＡＭ３４ａに記録する。本実施形態では、２つの計測点の空間距離（２点間距離）を計測するものとする。ステップＳＨ５で算出される計測結果は、既に指定された２つの計測点の空間距離である。指定された計測点が１点のみである場合、計測結果は算出されず、処理がステップＳＨ６に移行する。
【０１１３】
ステップＳＨ６では、ＣＰＵ３４ｃが、図２４（ｂ），（ｃ）のように、指定された計測点を３Ｄオブジェクト上に重畳表示するための処理を行う。図２４（ｂ）は１点目の計測点Ｐ１が指定されたときの[計測画像]ボックス６１１であり、図２４（ｃ）は２点目の計測点Ｐ２が指定されたときの[計測画像]ボックス６１１である。さらに、ＣＰＵ３４ｃは、図２５のように、算出した計測結果を[計測結果]ボックス６７０に表示するための処理を行う。指定された計測点が１点のみである場合、計測結果は表示されず、ステップＳＨ６の処理が終了する。
【０１１４】
ステップＳＨ６の処理が終了すると、計測処理が終了する。上記の説明では、２点間距離を計測する場合を例としているが、３点以上の計測点が指定される面積等の計測を行う場合も同様である。
【０１１５】
次に、図２６〜図２９を用いて、指定された計測点の、３Ｄオブジェクト表面における空間座標（３次元座標）の算出方法について説明する。図２６は、３次元空間における３Ｄオブジェクトの一部と視点Ｅとの関係を示している。
【０１１６】
３Ｄオブジェクトは、複数の三角形の空間平面から構成されている。視点Ｅから３Ｄオブジェクトの重心点Ｇへ向かう方向を視線方向とする。視点Ｅと３Ｄオブジェクトとの間には、視線方向と垂直に交わるスクリーン平面ＳＣが設定されている。
【０１１７】
ユーザが[計測画像]ボックス６１１における３Ｄオブジェクト上の計測点を指定すると、ＣＰＵ３４ｃは、図２７のように、スクリーン平面ＳＣ上に計測点Ｓを設定する。計測点Ｓと視点Ｅとを通る空間直線を直線Ｌとする。そして、ＣＰＵ３４ｃは、３Ｄオブジェクトを構成する複数の三角形の中から、直線Ｌと交差する全ての三角形を検索する。直線と空間三角形とが交差するかどうかを判定する方法として、例えばTomas Mollerの交差判定法を用いることが可能である。この例では、図２８のように、三角形Ｔ１，Ｔ２が、直線Ｌと交差する三角形であると判定される。
【０１１８】
そして、図２９のように、ＣＰＵ３４ｃは、直線Ｌと三角形Ｔ１，Ｔ２との交点を算出し、算出したそれぞれの交点を交点Ｆ１，Ｆ２とする。ここでは、３Ｄオブジェクト表面における空間座標を算出したいので、ＣＰＵ３４ｃは、交点Ｆ１，Ｆ２のうち、より視点Ｅに近い方を選択する。この場合、ＣＰＵ３４ｃは、交点Ｆ１の空間座標を、３Ｄオブジェクト表面における空間座標として算出する。上記では、直線Ｌと交差すると判定された三角形を２つのみとしたが、３Ｄオブジェクトの形状や視線方向によっては、より多くの三角形が交差すると判定される場合もある。その場合も、直線Ｌと三角形との交点をそれぞれ求め、求めた交点の中で、最も視点Ｅに近い交点を選択することになる。
【０１１９】
上記のようにして、計測点の空間座標を算出することができる。ステップＳＦ５における参照点（３Ｄ）の空間座標も上記と同様にして算出することができる。
【０１２０】
次に、図３０を用いて、ステップＳＧ４のパン・チルト方向のマッチング処理の流れを説明する。パン・チルト方向のマッチング処理の目的は、参照点（計測）によって構成される３角形と、参照点（３Ｄ）をスクリーン平面に降ろした投影点によって構成される３角形とが最も相似に近くなるカメラポーズを見つける、ということである。これらの３角形が相似に近い場合、計測画像に写った被検体が撮像されたときの視線のパン・チルト方向と、３Ｄオブジェクトを観察する視線のパン・チルト方向とが、ほぼ一致しているということができる。
【０１２１】
以下、図３１（ａ）のように、参照点（３Ｄ）Ｒ１’〜Ｒ３’をスクリーン平面３１００に降ろした投影点Ｒｐ１’〜Ｒｐ３’を投影点（３Ｄ）と記載する。さらに、図３１（ｂ）のように、参照点（計測）Ｒ１〜Ｒ３によって構成される３角形３１０２を参照図形（計測）と記載し、図３１（ａ）のように、投影点（３Ｄ）Ｒｐ１’〜Ｒｐ３’によって構成される３角形３１０１を参照図形（３Ｄ）と記載する。
【０１２２】
ステップＳＧ４０１では、ＣＰＵ３４ｃが頂点角（計測）を算出し、算出した頂点角（計測）をＲＡＭ３４ａに記録する。頂点角（計測）とは、図３２（ａ）のように、参照図形（計測）３２００の３つの頂点Ｒ１〜Ｒ３の角度Ａ１〜Ａ３である。
【０１２３】
ステップＳＧ４０２では、ＣＰＵ３４ｃが、カメラポーズをパン・チルト方向にそれぞれ−３１ｄｅｇ回転させる。ステップＳＧ４０３〜ＳＧ４０７において繰り返し処理が行われるが、これは、図３２（ｂ）のように、カメラポーズをパン・チルト方向に回転させながら、頂点角（３Ｄ）を順次算出するためである。頂点角（３Ｄ）とは、図３２（ｂ）のように、参照図形（３Ｄ）３２０１の３つの投影点（３Ｄ）Ｒｐ１’〜Ｒｐ３’の角度Ａ１’〜Ａ３’である。
【０１２４】
前述したように、参照点（計測）と参照点（３Ｄ）は、各参照点が指定された順番によって対応付けられており、角度Ａ１〜Ａ３と角度Ａ１’〜Ａ３も、この順番によって対応付けられている。図３２では、角度Ａ１と角度Ａ１’が対応付けられ、角度Ａ２と角度Ａ２’が対応付けられ、角度Ａ３と角度Ａ３’が対応付けられている。
【０１２５】
ステップＳＧ４０３では、ＣＰＵ３４ｃが、カメラポーズをパン方向に＋１ｄｅｇ回転させる。そして、ステップＳＧ４０３〜ＳＧ４０７では、カメラポーズのパン方向の回転角度が＋３０ｄｅｇとなるまでＣＰＵ３４ｃが繰り返し処理を行う。ＣＰＵ３４ｃは、カメラポーズをパン方向に−３０ｄｅｇから＋３０ｄｅｇとなるまで＋１ｄｅｇずつ回転させるので、結果としてステップＳＧ４０３〜ＳＧ４０７の一連の処理を６１回繰り返すことになる。
【０１２６】
ステップＳＧ４０４では、ＣＰＵ３４ｃが、カメラポーズをチルト方向に＋１ｄｅｇ回転させる。そして、ステップＳＧ４０４〜ＳＧ４０７では、カメラポーズのチルト方向の回転角度が＋３０ｄｅｇとなるまでＣＰＵ３４ｃが繰り返し処理を行う。ＣＰＵ３４ｃは、カメラポーズをチルト方向に−３０ｄｅｇから＋３０ｄｅｇとなるまで＋１ｄｅｇずつ回転させるので、結果としてステップＳＧ４０４〜ＳＧ４０７の処理を６１回繰り返すことになる。なお、ステップＳＧ４０３〜ＳＧ４０７の繰り返し処理において、カメラポーズを−３０ｄｅｇから＋３０ｄｅｇとなるまで回転させているが、カメラポーズを回転させる範囲は必ずしもこの範囲である必要はない。
【０１２７】
ステップＳＤのカメラポーズ設定処理において、ユーザがカメラポーズを変更する際、計測画像に写った被検体と３Ｄオブジェクトとをどの程度までマッチングさせるかによって、ステップＳＧ４０３〜ＳＧ４０７の繰り返し処理において、カメラポーズを回転させるのに必要な範囲が変わることになる。範囲が広い場合、ユーザは大まかなマッチングさえ行えば良いが、その代わり、３Ｄマッチングの処理時間が長くなる。範囲が狭い場合、３Ｄマッチングの処理時間が短くて済むが、その代わり、ユーザはある程度詳細にマッチングを行う必要がある。
【０１２８】
ステップＳＧ４０５では、ＣＰＵ３４ｃが、現在のパン・チルト方向の回転角度をＲＡＭ３４ａに記録する。図３３は、ＲＡＭ３４ａに記録される回転角度を示している。ステップＳＧ４０５では、ＣＰＵ３４ｃは、回転角度をＲＡＭ３４ａに上書き記録するのではなく、カメラポーズをパン・チルト方向に回転するたびに、図３３（ａ）のように、ＲＡＭ３４ａに用意されたデータリストに現在のパン・チルト方向の回転角度を１行ずつ追加記録していく。このデータリストには、後述するように、パン・チルト方向の回転角度と関連付けて、頂点角（３Ｄ）等の様々なデータを記録することができる。
【０１２９】
ステップＳＧ４０６では、ＣＰＵ３４ｃが投影点（３Ｄ）を算出し、算出した投影点（３Ｄ）をＲＡＭ３４ａに記録する。ステップＳＧ４０７では、ＣＰＵ３４ｃが頂点角（３Ｄ）を算出し、算出した頂点角（３Ｄ）をＲＡＭ３４ａに記録する。このとき、ＣＰＵ３４ｃは、図３３（ｂ）のように、頂点角（３Ｄ）をパン・チルト方向の回転角度と関連付けて、データリストに１行ずつ追加記録していく。
【０１３０】
ステップＳＧ４０３〜ＳＧ４０７の繰り返し処理が終了すると、処理はステップＳＧ４０８に移行する。この時点でのデータリストは、図３３（ｃ）のようになり、６１×６１行分のデータで構成されている。ステップＳＧ４０８では、ＣＰＵ３４ｃがカメラポーズをパン・チルト方向にそれぞれ−３０ｄｅｇ回転させる。ステップＳＧ４０３〜ＳＧ４０７の繰り返し処理が終了した時点で、パン・チルト方向の回転角度はそれぞれ＋３０ｄｅｇであるので、ここでは、−３０ｄｅｇ回転させることによって、カメラポーズを元の状態に戻すことになる。
【０１３１】
ステップＳＧ４０９では、ＣＰＵ３４ｃが、頂点角（計測）と頂点角（３Ｄ）との差を算出する。具体的には、ＣＰＵ３４ｃは、（１）式〜（３）式のように、頂点角（計測）Ａ１〜Ａ３と頂点角（３Ｄ）Ａ１’〜Ａ３’との差の絶対値Ｄ１〜Ｄ３を算出する。
Ｄ１＝｜Ａ１−Ａ１’｜  ・・・（１）
Ｄ２＝｜Ａ２−Ａ２’｜  ・・・（２）
Ｄ３＝｜Ａ３−Ａ３’｜  ・・・（３）
さらに、ＣＰＵ３４ｃは、図３４（ａ）のように、頂点角の差をパン・チルト方向の回転角度と関連付けて、データリストに追加記録する。
【０１３２】
ステップＳＧ４１０では、ＣＰＵ３４ｃが差Ｄ１〜Ｄ３の平均値を算出する。さらに、ＣＰＵ３４ｃは、図３４（ｂ）のように、平均値をパン・チルト方向の回転角度と関連付けて、データリストに追加記録する。
【０１３３】
ステップＳＧ４１１では、ＣＰＵ３４ｃが平均値の最小値をデータリストから検索する。図３５は、データリストにおいて、０．５が最小値として検索された様子を示している。
【０１３４】
ステップＳＧ４１２では、ＣＰＵ３４ｃが、平均値が最小となる場合のパン・チルト方向の回転角度をデータリストから読み込む。具体的には、ＣＰＵ３４ｃは、図３５のように、データリストから、最小の平均値に関連付けられたパン・チルト方向の回転角度を読み込む。
【０１３５】
ステップＳＧ４１３では、ＣＰＵ３４ｃが、カメラポーズをパン・チルト方向に、ステップＳＧ４１２で読み込まれた回転角度だけ回転させる。このカメラポーズで３Ｄオブジェクトを表示した場合、図３２（ｃ），（ｄ）のように、回転後の頂点角（計測）と頂点角（３Ｄ）とが、良く一致しており、参照図形（計測）と参照図形（３Ｄ）とが相似に近いことがわかる。
【０１３６】
ステップＳＧ４１４では、ＣＰＵ３４ｃが、このときのカメラポーズをカレントカメラポーズとしてＲＡＭ３４ａに上書き記録する。ここでは、カレントカメラポーズに基づく３Ｄオブジェクトの再表示は行わない。ステップＳＧ４１４の処理が終了すると、パン・チルト方向のマッチング処理が終了する。
【０１３７】
次に、図３６を用いて、ステップＳＧ５のロール方向のマッチング処理の流れを説明する。ロール方向のマッチング処理の目的は、参照図形（計測）と参照図形（３Ｄ）の回転方向のアングルが最も一致するカメラポーズを見つける、ということである。それぞれの参照図形の回転方向のアングルが近い場合、計測画像に写った被検体を観察する視線のロール方向の回転角度と、３Ｄオブジェクトを観察する視線のロール方向の回転角度とが、ほぼ一致しているということができる。
【０１３８】
ステップＳＧ５０１では、ＣＰＵ３４ｃが相対角（計測）を算出し、算出した相対角（計測）をＲＡＭ３４ａに記録する。相対角（計測）とは、図３７（ａ）のように、計測画像において上下方向に伸びる直線３７００と、参照図形（計測）の３つの辺との間の角度Ａｒ１〜Ａｒ３である。このときの相対角（計測）は、直線３７００から辺への右回り方向の角度である。
【０１３９】
ステップＳＧ５０２では、ＣＰＵ３４ｃが投影点（３Ｄ）を算出し、算出した投影点（３Ｄ）をＲＡＭ３４ａに記録する。ステップＳＧ５０３では、ＣＰＵ３４ｃが相対角（３Ｄ）を算出し、算出した相対角（３Ｄ）をＲＡＭ３４ａに記録する。相対角（３Ｄ）とは、図３７（ｂ）のように、スクリーン平面において上下方向に伸びる直線３７０１と参照図形（３Ｄ）の３つの辺との間の角度Ａｒ１’〜Ａｒ３’である。スクリーン平面は、計測画像が表示される[計測画像]ボックス６１１に相当するため、直線３７００と直線３７０１の方向は一致する。また、このときの相対角（３Ｄ）は、直線３７０１から辺への右回り方向の角度である。
【０１４０】
ステップＳＧ５０４では、ＣＰＵ３４ｃが相対角（計測）と相対角（３Ｄ）との差を算出する。具体的には、ＣＰＵ３４ｃは、（４）式〜（６）式のように、相対角（計測）Ａｒ１〜Ａｒ３と相対角（３Ｄ）Ａｒ１’〜Ａｒ３’とのそれぞれの差Ｄｒ１〜Ｄｒ３を算出する。
Ｄｒ１＝Ａｒ１−Ａｒ１’  ・・・（４）
Ｄｒ２＝Ａｒ２−Ａｒ２’  ・・・（５）
Ｄｒ３＝Ａｒ３−Ａｒ３’  ・・・（６）
【０１４１】
ステップＳＧ５０５では、ＣＰＵ３４ｃが差Ｄｒ１〜Ｄｒ３の平均値を算出し、算出した平均値をＲＡＭ３４ａに記録する。ステップＳＧ５０６では、ＣＰＵ３４ｃがカメラポーズをロール方向に、ステップＳＧ５０５で算出した平均値だけ回転させる。このカメラポーズで３Ｄオブジェクトを表示した場合、図３７（ｃ），（ｄ）のように、回転後の相対角（計測）と相対角（３Ｄ）とが良く一致していることがわかる。
【０１４２】
ステップＳＧ５０７では、ＣＰＵ３４ｃが、このときのカメラポーズをカレントカメラポーズとしてＲＡＭ３４ａに上書き記録する。ここでは、カレントカメラポーズに基づく３Ｄオブジェクトの再表示は行わない。ステップＳＧ５０７の処理が終了すると、ロール方向のマッチング処理が終了する。
【０１４３】
次に、図３８を用いて、ステップＳＧ６のズーム方向のマッチング処理の流れを説明する。ズーム方向のマッチング処理の目的は、参照図形（計測）と参照図形（３Ｄ）のサイズが最も一致するカメラポーズを見つける、ということである。それぞれの参照図形のサイズが近い場合、計測画像に写った被検体を観察する視線のズーム方向の位置と、３Ｄオブジェクトを観察する視線のズーム方向の位置とが、ほぼ一致しているということができる。
【０１４４】
ステップＳＧ６０１では、ＣＰＵ３４ｃが辺長（計測）を算出し、算出した辺長（計測）をＲＡＭ３４ａに記録する。辺長（計測）とは、図３９（ａ）のように、参照点（計測）Ｒ１〜Ｒ３によって構成される３角形の３つの辺の長さＬ１〜Ｌ３である。
【０１４５】
ステップＳＧ６０２では、ＣＰＵ３４ｃが投影点（３Ｄ）を算出し、算出した投影点（３Ｄ）をＲＡＭ３４ａに記録する。ステップＳＧ６０３では、ＣＰＵ３４ｃが辺長１（３Ｄ）を算出し、算出した辺長１（３Ｄ）をＲＡＭ３４ａに記録する。辺長１（３Ｄ）とは、図３９（ｂ）のように、参照図形（３Ｄ）の３つの辺の長さＬ１’〜Ｌ３’である。
【０１４６】
ステップＳＧ６０４では、ＣＰＵ３４ｃが、このときのカメラポーズをカメラポーズ１としてＲＡＭ３４ａに上書き記録する。ステップＳＧ６０５では、ＣＰＵ３４ｃが、図３９（ｂ）のように、カメラポーズをズーム方向に所定値だけ移動させる。
【０１４７】
ステップＳＧ６０６では、ＣＰＵ３４ｃが投影点（３Ｄ）を算出し、算出した投影点（３Ｄ）をＲＡＭ３４ａに記録する。ステップＳＧ６０７では、ＣＰＵ３４ｃが辺長２（３Ｄ）を算出し、算出した辺長２（３Ｄ）をＲＡＭ３４ａに記録する。辺長２（３Ｄ）とは、図３９（ｂ）のように、カメラポーズをズーム方向に所定値だけ移動させた後の、参照図形（３Ｄ）の３つの辺の長さＬｚ１’〜Ｌｚ３’である。ステップＳＧ６０８では、ＣＰＵ３４ｃが、このときのカメラポーズをカメラポーズ２としてＲＡＭ３４ａに上書き記録する。
【０１４８】
ステップＳＧ６０９では、ＣＰＵ３４ｃがズーム量を算出し、算出したズーム量をＲＡＭ３４ａに記録する。ズーム量は、辺長（３Ｄ）と辺長（計測）とが一致するようなカメラポーズのズーム方向の移動量であり、辺長１，２（３Ｄ）と、カメラポーズ１，２との関係から算出される。辺は３つであるので、ズーム量も３つ算出される。
【０１４９】
図４０は、辺長（３Ｄ）とカメラポーズのズーム方向位置との関係を示している。図４０のグラフ４０００が示すように、両者は線形的な比例関係にある。グラフ４０００を用いることで、辺長（３Ｄ）と辺長（計測）とを一致させる場合にカメラポーズをズーム方向に移動させる際の移動量を算出することができる。
【０１５０】
ステップＳＧ６１０では、ＣＰＵ３４ｃが３つのズーム量の平均値を算出し、算出した平均値をＲＡＭ３４ａに記録する。ステップＳＧ６１１では、ＣＰＵ３４ｃが、カメラポーズをズーム方向に、ステップＳＧ６１１で算出した平均値だけ移動させる。このカメラポーズで３Ｄオブジェクトを表示した場合、図３９（ｃ），（ｄ）のように、移動後の辺長（計測）と辺長（３Ｄ）とが、良く一致していることがわかる。
【０１５１】
ステップＳＧ６１２では、ＣＰＵ３４ｃが、このときのカメラポーズをカレントカメラポーズとしてＲＡＭ３４ａに上書き記録する。ここでは、カレントカメラポーズに基づく３Ｄオブジェクトの再表示は行わない。ステップＳＧ６１２の処理が終了すると、ズーム方向のマッチング処理が終了する。
【０１５２】
次に、図４１を用いて、ステップＳＧ７のシフト方向のマッチング処理の流れを説明する。シフト方向のマッチング処理の目的は、[計測画像]ボックス６１１における、計測画像に写った被検体と３Ｄオブジェクトとが一致するように、シフト方向に３Ｄオブジェクトを移動させる、ということである。本処理は、３Ｄオブジェクトのシフト位置を決定するものであるため、カメラポーズの算出は行わない。
【０１５３】
ステップＳＧ７０１では、ＣＰＵ３４ｃが重心点（計測）を算出し、算出した重心点（計測）をＲＡＭ３４ａに記録する。重心点（計測）とは、図４２（ａ）のように、参照点（計測）Ｒ１〜Ｒ３によって構成される３角形の重心点Ｇである。
【０１５４】
ステップＳＧ７０２では、ＣＰＵ３４ｃが投影点（３Ｄ）を算出し、算出した投影点（３Ｄ）をＲＡＭ３４ａに記録する。ステップＳＧ７０３では、ＣＰＵ３４ｃが重心点（３Ｄ）を算出し、算出した重心点（３Ｄ）をＲＡＭ３４ａに記録する。重心点（３Ｄ）とは、図４２（ａ）のように、投影点（３Ｄ）Ｒｐ１’〜Ｒｐ３’によって構成される３角形の重心点Ｇ’である。
【０１５５】
ステップＳＧ７０４では、ＣＰＵ３４ｃがシフト量を算出し、算出したシフト量をＲＡＭ３４ａに記録する。シフト量とは、重心点（計測）の、重心点（３Ｄ）との相対位置（平面座標系、ｐｉｘｅｌ単位）である。ステップＳＧ７０５では、ＣＰＵ３４ｃが、３Ｄオブジェクトをシフト方向に、ステップＳＧ７０４で算出したシフト量だけ移動させる。このカメラポーズで３Ｄオブジェクトを表示した場合、図４２（ｂ）のように、重心点（計測）と重心点（３Ｄ）とが、良く一致していることがわかる。ステップＳＧ７０５の処理が終了すると、シフト方向のマッチング処理が終了する。
【０１５６】
従来例では、２次元画像と３Ｄオブジェクトの投影図（２Ｄモデル）の画像データに基づくマッチング処理を行っていたため、３Ｄオブジェクトの再表示や、膨大なデータ量をもつ画像データの統計計算に、多くの処理時間がかかっていた。しかし、本実施形態では、３Ｄマッチング処理を実行する際、ユーザが指定する平易な形状の参照図形に基づく簡単な幾何学計算のみを実行すれば良く、処理時間を大幅に短縮することができる。さらに、３Ｄオブジェクトの再表示は、３Ｄマッチング処理終了後の１度のみで良い。
【０１５７】
次に、本実施形態の変形例を説明する。上記の説明では、ＣＰＵ３４ｃは、３点の参照点に基づいて、３Ｄマッチング処理を実行しているが、本変形例では、ＣＰＵ３４ｃは、４点の参照点に基づいて、３Ｄマッチング処理を実行する。ステップＳＧ４のパン・チルト方向のマッチング処理において、ＣＰＵ３４ｃは、参照図形（計測）と参照図形（３Ｄ）とが最も相似に近くなるカメラポーズのパン・チルト方向の回転角度を算出するが、１対の参照図形（３角形）だけが相似に近くなる回転角度を算出しても、マッチング精度は必ずしも高いわけではなく、明らかに誤った回転角度を算出してしまうことがあった。また、ステップＳＧ５〜ＳＧ７の各マッチング処理においても、同様に誤った回転角度・移動量を算出してしまうことがあった。
【０１５８】
上記に鑑み、本変形例では、３Ｄマッチング処理のマッチング精度を向上させることを目的とする。本変形例では、ステップＳＥの参照点（計測）の指定処理において、図４３（ａ）のように、ユーザは４点の参照点（計測）Ｒ１〜Ｒ４を指定し、ステップＳＦの参照点（３Ｄ）の指定処理において、図４３（ｂ）のように、ユーザは４点の参照点（３Ｄ）Ｒ１’〜Ｒ４’を指定する。また、本変形例では、ステップＳＧの３Ｄマッチング処理において、ＣＰＵ３４ｃは、４点の参照点に基づいて参照図形を算出する。
【０１５９】
図４４は、ステップＳＧで算出された参照図形（計測）を示している。４点の参照点（計測）Ｒ１〜Ｒ４のうちの３点で構成される４つの３角形４４００，４４０１，４４０２，４４０３が参照図形（計測）となる。また、図４５は、ステップＳＧで算出された参照図形（３Ｄ）を示している。４点の参照点（３Ｄ）Ｒｐ１’〜Ｒｐ４’のうちの３点で構成される４つの３角形４５００，４５０１，４５０２，４５０３が参照図形（３Ｄ）となる。
【０１６０】
本変形例では、ステップＳＧの３Ｄマッチング処理において、ＣＰＵ３４ｃは、これら４つの３角形に基づいて、３Ｄマッチング処理を実行する。例えば、ステップＳＧ４のパン・チルト方向のマッチング処理において、ＣＰＵ３４ｃは、カメラポーズのパン・チルト方向の回転角度を算出するが、この際、４つの３角形のそれぞれに基づいて算出した回転角度の平均値を最終的な回転角度として用いる。ステップＳＧ５〜ＳＧ７の各マッチング処理においても、ＣＰＵ３４ｃは、４つの３角形のそれぞれに基づいて算出した回転角度・移動量の平均値を最終的な回転角度・移動量として用いる。
【０１６１】
本変形例では、ユーザが４点の参照点を指定することで、ＣＰＵ３４ｃは、参照点によって構成される４つの参照図形に基づいて、３Ｄマッチング処理を行う。そのため、ＣＰＵ３４ｃは、３Ｄマッチング処理を実行する際に多くのパラメータを用いることができ、その結果、マッチング精度を向上させることができる。
【０１６２】
本実施形態では、計測に係る一連の処理の手順および内容を規定したソフトウェア（プログラム）である３Ｄ計測ソフトに従ってＣＰＵ３４ｃが上記の処理を行うことによって計測が行われる。図４６は、ＣＰＵ３４ｃに必要な機能構成を示している。図４６では、本実施形態の計測に関係する機能構成のみが示されており、他の機能構成については省略されている。ＣＰＵ３４ｃの機能構成には、撮像制御部３４０、指定部３４１、マッチング処理部３４２、表示制御部３４３、および計測部３４４が含まれる。
【０１６３】
撮像制御部３４０は、光源３２および湾曲制御ユニット３３の制御や撮像素子３０ｂの制御を行う。指定部３４１は、リモコン２３を介してユーザによって入力される指示に基づいて、計測画像上や３Ｄオブジェクトの画像上の指定された位置に対応する参照点（計測）、参照点（３Ｄ）、計測点を指定（設定）する。マッチング処理部３４２は、指定部３４１によって指定された参照点（計測）および参照点（３Ｄ）に基づいて、参照図形（計測）および参照図形（３Ｄ）を算出し、参照図形（計測）と参照図形（３Ｄ）との幾何学計算により、マッチングに必要なカメラポーズの変更量を算出する。
【０１６４】
表示制御部３４３は、モニタ２２に表示される画像の内容や表示状態等を制御する。特に、表示制御部３４３は、マッチング処理部３４２によって算出されたカメラポーズの変更量に基づいて３Ｄオブジェクトの姿勢および位置を調整することによって、計測画像と３Ｄオブジェクトを互いにマッチングさせた状態で表示させる。上記の説明では３Ｄオブジェクトのみの姿勢および位置を調整しているが、これに限らず、計測画像のみの姿勢および位置を調整したり、計測画像および３Ｄオブジェクトの姿勢および位置を調整したりしてもよい。計測部３４４は、指定部３４１によって指定された計測点に基づいて、計測処理を行う。図４６に示す機能構成の一部または全部を、計測に必要な機能を実現するためのアナログ回路やデジタル回路を配置して構成した特定のハードウェアに置き換えることも可能である。
【０１６５】
上述したように、本実施形態によれば、参照図形（計測）と参照図形（３Ｄ）との幾何学計算を行い、幾何学計算の結果に基づいて、計測画像と３Ｄオブジェクトとの少なくとも一方の姿勢または位置を調整することによって、マッチングに必要な処理時間を低減することができる。
【０１６６】
また、参照点（計測）と参照点（３Ｄ）のそれぞれの点の指定された順番に基づいて参照点（計測）と参照点（３Ｄ）とを対応付けることによって、簡易な方法で両者の対応付けが可能となり、マッチングに必要な処理時間を低減することができる。
【０１６７】
また、計測画像上の参照図形（計測）と、３Ｄオブジェクト上の参照点（計測）によって構成される３角形をスクリーン平面に投影した参照図形（３Ｄ）との幾何学計算によるマッチングを行うことによって、マッチングの精度を維持しつつ、マッチングに必要な処理時間を低減することができる。
【０１６８】
また、ユーザが参照点（計測）を指定する際に３Ｄオブジェクトの透過率が大きく設定されることによって、ユーザが計測画像を見やすくすることができ、かつ、ユーザが参照点（計測）を指定しやすくすることができる。
【０１６９】
また、３Ｄマッチング処理中は処理負荷の高い３Ｄオブジェクトの再表示を行わず、３Ｄマッチング処理の終了時に３Ｄオブジェクトの再表示を行うことによって、マッチングに必要な処理時間を低減することができる。
【０１７０】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【０１７１】
１・・・ジェットエンジン、２・・・ターニングツール、３・・・内視鏡装置、４・・・ビデオ端子ケーブル、５・・・ビデオキャプチャカード、６・・・ＰＣ、７・・・ＬＡＮケーブル、１０・・・タービンブレード、２０・・・内視鏡挿入部、２１・・・内視鏡装置本体、２２，２５・・・モニタ（表示部）、２３・・・リモコン（入力装置）、２４・・・ＰＣ本体、３０ａ・・・撮像光学系、３０ｂ・・・撮像素子、３１・・・画像信号処理装置、３２・・・光源、３３・・・湾曲制御ユニット、３４，３５・・・制御用コンピュータ、３４ａ，３５ａ・・・ＲＡＭ、３４ｂ・・・ＲＯＭ、３４ｃ，３５ｃ・・・ＣＰＵ（指定部、計算部、調整部、計測部）、３４ｄ，３５ｄ・・・ネットワークＩ／Ｆ、３４ｅ・・・ＲＳ２３２Ｃ・・・Ｉ／Ｆ、３４ｆ・・・カードＩ／Ｆ、３５ｂ・・・ＨＤＤ、３５ｅ・・・ＵＳＢ・・・Ｉ／Ｆ、３４０・・・撮像制御部、３４１・・・指定部、３４２・・・マッチング処理部、３４３・・・表示制御部、３４４・・・計測部
【図１】
0005791976.tif 000002
【図２】
0005791976.tif 000003
【図３】
0005791976.tif 000004
【図４】
0005791976.tif 000005
【図５】
0005791976.tif 000006
【図６】
0005791976.tif 000007
【図７】
0005791976.tif 000008
【図８】
0005791976.tif 000009
【図９】
0005791976.tif 000010
【図１０】
0005791976.tif 000011
【図１１】
0005791976.tif 000012
【図１２】
0005791976.tif 000013
【図１３】
0005791976.tif 000014
【図１４】
0005791976.tif 000015
【図１５】
0005791976.tif 000016
【図１６】
0005791976.tif 000017
【図１７】
0005791976.tif 000018
【図１８】
0005791976.tif 000019
【図１９】
0005791976.tif 000020
【図２０】
0005791976.tif 000021
【図２１】
0005791976.tif 000022
【図２２】
0005791976.tif 000023
【図２３】
0005791976.tif 000024
【図２４】
0005791976.tif 000025
【図２５】
0005791976.tif 000026
【図２６】
0005791976.tif 000027
【図２７】
0005791976.tif 000028
【図２８】
0005791976.tif 000029
【図２９】
0005791976.tif 000030
【図３０】
0005791976.tif 000031
【図３１】
0005791976.tif 000032
【図３２】
0005791976.tif 000033
【図３３】
0005791976.tif 000034
【図３４】
0005791976.tif 000035
【図３５】
0005791976.tif 000036
【図３６】
0005791976.tif 000037
【図３７】
0005791976.tif 000038
【図３８】
0005791976.tif 000039
【図３９】
0005791976.tif 000040
【図４０】
0005791976.tif 000041
【図４１】
0005791976.tif 000042
【図４２】
0005791976.tif 000043
【図４３】
0005791976.tif 000044
【図４４】
0005791976.tif 000045
【図４５】
0005791976.tif 000046
【図４６】
0005791976.tif 000047