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