"計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された3次元形状を有する前記物体の画像とを表示する表示部と、前記計測対象物を撮像したカメラの姿勢と、前記物体を撮像した仮想的なカメラの姿勢とが近づくように、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整する第1の調整部と、前記計測対象物を撮像したカメラの光学系と撮像素子との少なくとも一方の特性と、前記物体を撮像した仮想的なカメラの光学系と撮像素子との少なくとも一方の特性とが近づくように、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整する第2の調整部と、前記第1の調整部および前記第2の調整部による調整が行われた後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、を備えたことを特徴とする画像処理装置。前記第2の調整部は、前記物体の画像が投影される平面と、前記物体を撮像した仮想的なカメラの視点及び視線方向との幾何学的な関係を示すパラメータで構成されるスクリーンポーズに基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整することを特徴とする請求項1に記載の画像処理装置。前記スクリーンポーズは、前記物体の画像が投影される平面と、前記物体を撮像した仮想的なカメラの視点との距離を示すパラメータを含むことを特徴とする請求項2に記載の画像処理装置。前記スクリーンポーズは、前記物体の画像が投影される平面と、前記物体を撮像した仮想的なカメラの視線方向との傾きを示すパラメータを含むことを特徴とする請求項2または請求項3に記載の画像処理装置。前記第2の調整部はさらに、前記計測対象物を撮像したカメラの光学系の歪み特性を示すデータに基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方を補正することを特徴とする請求項1~請求項4のいずれか一項に記載の画像処理装置。前記第2の調整部は、前記第1の調整部による調整が行われた後、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整することを特徴とする請求項1~請求項5のいずれか一項に記載の画像処理装置。前記第2の調整部は、前記第1の調整部による調整が行われた後の前記計測対象物の画像と前記物体の画像の特徴に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整するか否かを判定することを特徴とする請求項6に記載の画像処理装置。前記第1の調整部は、前記計測対象物の画像上の第1の点を基準とする第1の図形と、前記物体の画像上の第2の点を基準とする第2の図形との幾何学計算を行った結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整することを特徴とする請求項1~請求項7のいずれか一項に記載の画像処理装置。前記第2の調整部は、前記計測対象物の画像上の第1の点を基準とする第1の図形と、前記物体の画像上の第2の点を基準とする第2の図形との幾何学計算を行った結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整することを特徴とする請求項1~請求項8のいずれか一項に記載の画像処理装置。計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された3次元形状を有する前記物体の画像とを表示部が表示するステップと、前記計測対象物を撮像したカメラの姿勢と、前記物体を撮像した仮想的なカメラの姿勢とが近づくように、第1の調整部が前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整するステップと、前記計測対象物を撮像したカメラの光学系と撮像素子との少なくとも一方の特性と、前記物体を撮像した仮想的なカメラの光学系と撮像素子との少なくとも一方の特性とが近づくように、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を第2の調整部が調整するステップと、前記第1の調整部および前記第2の調整部による調整が行われた後、計測部が、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出するステップと、を備えたことを特徴とする画像処理方法。計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された3次元形状を有する前記物体の画像とを表示する表示部と、前記計測対象物を撮像したカメラの姿勢と、前記物体を撮像した仮想的なカメラの姿勢とが近づくように、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整する第1の調整部と、前記計測対象物を撮像したカメラの光学系と撮像素子との少なくとも一方の特性と、前記物体を撮像した仮想的なカメラの光学系と撮像素子との少なくとも一方の特性とが近づくように、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整する第2の調整部と、前記第1の調整部および前記第2の調整部による調整が行われた後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、としてコンピュータを機能させるためのプログラム。カメラキャリブレーション校正の分野において、カメラの性能や状態を表すカメラパラメータには、外部パラメータと内部パラメータとがある。外部パラメータとは、撮影時におけるカメラの姿勢を表すパラメータである。内部パラメータとは、光学系の焦点距離や光学系の歪み、光学系の光軸と撮像素子の撮像面との傾きといった、カメラの内部的な数値の総称である。現実のカメラの内部パラメータは、カメラを製造する際の設計値によって決まるが、必ずしも設計通りにカメラを製造できるわけではない。そのため、製造されたカメラ1台ごとに、それぞれ異なる内部パラメータをもつことになる。特許文献2では、被写体の2次元画像と3Dオブジェクトの投影図との間でマッチングが行われ、2次元画像との類似度が最も高い投影図が選択される。これは、3Dオブジェクトを撮影する仮想的なカメラに設定された複数の外部パラメータのうち、被写体を撮像したカメラの外部パラメータに最も近い外部パラメータで撮影された3Dオブジェクトの投影図が選択されることに相当する。しかし、被写体を撮像したカメラの内部パラメータと、3Dオブジェクトを撮像した仮想的なカメラの内部パラメータとの違いは考慮されていないため、マッチングの精度、ひいては計測の精度が十分であるとは限らない。本発明は、上述した課題に鑑みてなされたものであって、計測精度を向上させることができる画像処理装置、画像処理方法、およびプログラムを提供することを目的とする。本発明は、上記の課題を解決するためになされたもので、計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された3次元形状を有する前記物体の画像とを表示する表示部と、前記計測対象物を撮像したカメラの姿勢と、前記物体を撮像した仮想的なカメラの姿勢とが近づくように、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整する第1の調整部と、前記計測対象物を撮像したカメラの光学系と撮像素子との少なくとも一方の特性と、前記物体を撮像した仮想的なカメラの光学系と撮像素子との少なくとも一方の特性とが近づくように、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整する第2の調整部と、前記第1の調整部および前記第2の調整部による調整が行われた後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、を備えたことを特徴とする画像処理装置である。また、本発明の画像処理装置において、前記第2の調整部は、前記物体の画像が投影される平面と、前記物体を撮像した仮想的なカメラの視点及び視線方向との幾何学的な関係を示すパラメータで構成されるスクリーンポーズに基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整することを特徴とする。また、本発明の画像処理装置において、前記スクリーンポーズは、前記物体の画像が投影される平面と、前記物体を撮像した仮想的なカメラの視点との距離を示すパラメータを含むことを特徴とする。また、本発明の画像処理装置において、前記スクリーンポーズは、前記物体の画像が投影される平面と、前記物体を撮像した仮想的なカメラの視線方向との傾きを示すパラメータを含むことを特徴とする。また、本発明の画像処理装置において、前記第2の調整部はさらに、前記計測対象物を撮像したカメラの光学系の歪み特性を示すデータに基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方を補正することを特徴とする。また、本発明の画像処理装置において、前記第2の調整部は、前記第1の調整部による調整が行われた後、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整することを特徴とする。また、本発明の画像処理装置において、前記第2の調整部は、前記第1の調整部による調整が行われた後の前記計測対象物の画像と前記物体の画像の特徴に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整するか否かを判定することを特徴とする。また、本発明の画像処理装置において、前記第1の調整部は、前記計測対象物の画像上の第1の点を基準とする第1の図形と、前記物体の画像上の第2の点を基準とする第2の図形との幾何学計算を行った結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整することを特徴とする。また、本発明の画像処理装置において、前記第2の調整部は、前記計測対象物の画像上の第1の点を基準とする第1の図形と、前記物体の画像上の第2の点を基準とする第2の図形との幾何学計算を行った結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整することを特徴とする。また、本発明は、計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された3次元形状を有する前記物体の画像とを表示部が表示するステップと、前記計測対象物を撮像したカメラの姿勢と、前記物体を撮像した仮想的なカメラの姿勢とが近づくように、第1の調整部が前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整するステップと、前記計測対象物を撮像したカメラの光学系と撮像素子との少なくとも一方の特性と、前記物体を撮像した仮想的なカメラの光学系と撮像素子との少なくとも一方の特性とが近づくように、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を第2の調整部が調整するステップと、前記第1の調整部および前記第2の調整部による調整が行われた後、計測部が、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出するステップと、を備えたことを特徴とする画像処理方法である。また、本発明は、計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された3次元形状を有する前記物体の画像とを表示する表示部と、前記計測対象物を撮像したカメラの姿勢と、前記物体を撮像した仮想的なカメラの姿勢とが近づくように、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整する第1の調整部と、前記計測対象物を撮像したカメラの光学系と撮像素子との少なくとも一方の特性と、前記物体を撮像した仮想的なカメラの光学系と撮像素子との少なくとも一方の特性とが近づくように、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢を調整する第2の調整部と、前記第1の調整部および前記第2の調整部による調整が行われた後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、としてコンピュータを機能させるためのプログラムである。本発明によれば、計測対象物を撮像したカメラの光学系と撮像素子との少なくとも一方の特性と、物体を撮像した仮想的なカメラの光学系と撮像素子との少なくとも一方の特性とが近づくように、計測対象物の画像と物体の画像との少なくとも一方の姿勢を調整する。これによって、計測精度を向上させることができる。以下、図面を参照し、本発明の実施形態を説明する。図1は、本実施形態によるブレード検査システムの構成を示している。ジェットエンジン1内には、検査対象物である複数のタービンブレード10もしくはコンプレッサーブレードが所定の間隔で周期的に配置されている。また、ジェットエンジン1には、タービンブレード10を回転方向Aに所定の速度で回転させるターニングツール2が接続されている。本実施形態では、タービンブレード10の画像を取り込んでいる間は常にタービンブレード10を回転させた状態にしている。本実施形態では、タービンブレード10の画像を取得するため、内視鏡装置3本発明の画像処理装置に対応が用いられる。ジェットエンジン1の内部には、内視鏡装置3の内視鏡挿入部20が挿入されており、この内視鏡挿入部20により、回転しているタービンブレード10の映像が取り込まれる。また、内視鏡装置3には、タービンブレード10の3次元計測を行うための3D計測ソフトが記憶されている。図2は内視鏡装置3の構成を示している。内視鏡装置3は、内視鏡挿入部20、内視鏡装置本体21、モニタ22、およびリモコンリモートコントローラ23から構成されている。内視鏡挿入部20の先端には、撮像光学系30aおよび撮像素子30bが内蔵されている。また、内視鏡装置本体21には、画像信号処理装置CCU31、光源32、湾曲制御ユニット33、および制御用コンピュータ34が内蔵されている。内視鏡挿入部20において、撮像光学系30aは被写体被検体からの光を集光し、撮像素子30bの撮像面上に被写体像を結像する。撮像素子30bは、被写体像を光電変換して撮像信号を生成する。撮像素子30bから出力された撮像信号は画像信号処理装置31に入力される。内視鏡装置本体21において、画像信号処理装置31は、撮像素子30bからの撮像信号をNTSC信号等の映像信号に変換して制御用コンピュータ34に供給し、さらに必要に応じてアナログビデオ出力として、外部に出力する。光源32は、光ファイバ等を通じて内視鏡挿入部20の先端に接続されており、光を外部に照射することができる。湾曲制御ユニット33は内視鏡挿入部20の先端と接続されており、先端を上下左右に湾曲させることができる。光源32および湾曲制御ユニット33の制御は、制御用コンピュータ34によって行われる。制御用コンピュータ34は、RAM34a、ROM34b、CPU34c、外部インターフェースとしてネットワークI/F34d、RS232CI/F34e、カードI/F34fから構成されている。RAM34aは、ソフトウェア動作に必要な画像情報等のデータを一時記憶するために使用される。ROM34bには、内視鏡装置3を制御するための一連のソフトウェアプログラムが記憶されており、後述する3D計測ソフトもROM34b内に記憶される。CPU34cは、ROM34bに記憶されているソフトウェアの命令コードに従って、RAM34aに記憶されたデータを用いて各種制御のための演算等を実行する。ネットワークI/F34dは、外部PCとLANケーブルによって接続するためのインターフェースであり、外部PCに対して、画像信号処理装置31から出力された映像情報を展開することができる。RS232CI/F34eは、リモコン23と接続するためのインターフェースであり、このリモコン23をユーザが操作することによって、内視鏡装置3の各種動作を制御することができる。カードI/F34fは、記録媒体である各種メモリカード50を自由に着脱できるようになっている。メモリカード50を装着することにより、CPU34cの制御によって、メモリカード50に記憶されている画像情報等のデータを取り込み、あるいは画像情報等のデータをメモリカード50に記録することができる。本実施形態によるブレード検査システムの構成の変形例として、図3に示す構成を用いてもよい。本変形例では、内視鏡装置3にビデオ端子ケーブル4およびビデオキャプチャカード5が接続されており、これによって、内視鏡装置3が取り込んだ映像をPC6本発明の画像処理装置に対応にも取り込ませることが可能となっている。PC6は、図3ではノート型PCとして描かれているが、デスクトップ型のPC等でもよい。PC6には、タービンブレード10の3次元計測を行うための3D計測ソフトが記憶されている。さらに、図3では、PC6への映像の取り込みにビデオ端子ケーブル4およびビデオキャプチャカード5を用いているが、図4に示すようにLANケーブル7を用いてもよい。内視鏡装置3は、取り込まれた映像をLANネットワーク上に展開することのできるネットワークI/F34dを備えている。そして、LANケーブル7を通じて、PC6に映像を取りませることができる。図5はPC6の構成を示している。PC6はPC本体24およびモニタ25から構成されている。PC本体24には、制御用コンピュータ35が内蔵されている。制御用コンピュータ35は、RAM35a、HDDハードディスクドライブ35b、CPU35c、外部インターフェースとして、ネットワークI/F35d、USBI/F35eから構成されている。制御用コンピュータ35はモニタ25に接続されており、映像情報およびソフトウェアの画面等がモニタ25に表示される。RAM35aは、ソフトウェア動作に必要な画像情報等のデータを一時記憶するために使用される。HDD35bには、内視鏡装置を制御するために一連のソフトウェアが記憶されており、3D計測ソフトもHDD35b内に記憶される。また、本実施形態では、タービンブレード10の画像を保存する保存用フォルダはHDD35b内に設定される。CPU35cは、HDD35bに記憶されているソフトウェアの命令コードに従って、RAM35aに記憶されたデータを用いて各種制御のための演算等を実行する。ネットワークI/F35dは、内視鏡装置3とPC6をLANケーブル7によって接続するためのインターフェースであり、内視鏡装置3からLAN出力された映像情報をPC6に入力することができる。USBI/F35eは、内視鏡装置3とPC6をビデオキャプチャカード5によって接続するためのインターフェースであり、内視鏡装置3からアナログビデオ出力された映像情報をPC6に入力することができる。図3および図4に示すブレード検査システムでは、図1に示すブレード検査システムと同様の効果を得ることができる。特に、内視鏡装置の性能がPCよりも劣っており、内視鏡装置の動作速度等が十分でない場合等に、図3および図4に示すブレード検査システムは有効である。次に、3D計測ソフトの画面を説明する。図6は、3D計測ソフトのメインウィンドウを示している。図6に示すメインウィンドウ600は、ユーザが3D計測ソフトを起動した際にモニタ22に表示される。CPU34cは、3D計測ソフトに従って、メインウィンドウ600内の各種CUIの操作に基づく処理を行う。メインウィンドウ600の表示は、CPU34cによる制御に従って行われる。CPU34cは、メインウィンドウ600を表示するためのグラフィック画像信号表示信号を生成し、モニタ22へ出力する。また、内視鏡装置3に取り込まれた映像以下、計測画像と記載をメインウィンドウ600上に重畳表示する場合には、CPU34cは、画像信号処理装置31から取り込んだ画像データをグラフィック画像信号に重畳する処理を行い、処理後の信号表示信号をモニタ22へ出力する。また、メインウィンドウ600上のGUIの表示状態を更新する場合、CPU34cは、更新後のメインウィンドウ600に対応したグラフィック画像信号を生成し、上記と同様の処理を行う。メインウィンドウ600以外のウィンドウの表示に係る処理も上記と同様である。以下、メインウィンドウ600等を表示更新も含むするためにCPU34cがグラフィック画像信号を生成する処理のことを、メインウィンドウ600等を表示するための処理と記載する。ユーザは、GUIグラフィカルユーザインタフェース機能を利用して、リモコン23を介してメインウィンドウ600を操作し、メインウィンドウ600に重畳表示されるカーソルCを移動させ、クリック等の指示を入力することにより、メインウィンドウ600の各種GUIの操作を行うことができる。以下、各種GUIの機能を説明する。メインウィンドウ600の右上部には、ファイル選択ボックス610が配置されている。また、メインウィンドウ600の左上部には計測画像ボックス611が配置されている。ファイル選択ボックス610は、計測画像ボックス611に表示される計測画像の選択、および計測画像ボックス611に表示される3Dオブジェクトに対応したCADデータの選択を行うためのボックスである。CADデータは、CADを利用して予め算出されたタービンブレード10の3次元形状を表すデータである。CADデータの形式には、STLStandardTriangulatedLanguage形式等を用いる。3Dオブジェクトは、CADデータの内容をもとに構築されたCG物体である。ファイル選択ボックス610内のGUIおよび操作の詳細については、記載しない。計測画像ボックス611は、計測対象物であるタービンブレード10を撮像して得られた計測画像IMGを表示し、計測画像IMG上に3DオブジェクトOBを重畳表示するためのボックスである。後述するように、ユーザは計測画像ボックス611の操作を行うことにより、カメラポーズの変更、参照点の指定、計測点の指定等を行う。メインウィンドウ600の左下部には、表示設定ボックス620が配置されている。表示設定ボックス620内には、計測画像ボックス611に表示された3DオブジェクトOBの表示設定に関するGUIが配置されている。表示設定ボックス620内の各GUIの機能は以下の通りである。透過率バー621は、3Dオブジェクトの表示透過率を設定するためのバーである。透過率バー621は水平方向横方向に移動スライド可能になっており、ユーザが透過率バー621を移動させることで、3Dオブジェクトの表示透過率が変化する。例えば、透過率が大きく設定された場合、3DオブジェクトOBは透明に近い透過率で表示され、透過率が小さく設定された場合、3DオブジェクトOBは透過されずに表示される。後述するように、計測画像ボックス611において、ユーザが計測画像IMGに参照点を指定する際には、3DオブジェクトOBの透過率を大きく設定することで、計測画像IMGを見やすくすると良い。また、ユーザが3DオブジェクトOBに参照点を指定する際には、3DオブジェクトOBの透過率を小さく設定することで、3DオブジェクトOBを見やすくすると良い。表示方法ラジオボタン622は、3DオブジェクトOBの表示方法を設定するためのラジオボタンである。表示方法ラジオボタン622には、シェーディングとワイヤーフレームの2つの設定項目がある。シェーディングが選択された場合、3DオブジェクトOBは、ワイヤーフレームおよび表面が塗りつぶされた状態で表示され、ワイヤーフレームが選択された場合、図6のように、3DオブジェクトOBはワイヤーフレームのみの状態で表示される。表示方法ラジオボタン623は、3DオブジェクトOBの表示色を設定するためのラジオボタンである。表示方法ラジオボタン623には、水色と黄色の2つの設定項目がある。表示方法ラジオボタン623の設定によって、3DオブジェクトOBの表示色を切り替えることができる。移動方向ラジオボタン624は、カメラポーズの移動方向を設定するためのラジオボタンである。カメラポーズは、外部パラメータに相当するパラメータであり、3DオブジェクトOBの姿勢ポーズ、すなわち3DオブジェクトOBをどの方向、どの位置から見ているかを示すパラメータである。言い換えると、カメラポーズは、3DオブジェクトOBを撮像した仮想的なカメラ以下、仮想カメラと記載の姿勢を示すパラメータである。移動方向ラジオボタン624には、パンチルトとロールズームの2つの設定項目がある。パンチルトが選択された場合、計測画像ボックス611において、ユーザがカーソルCを上下左右に移動させることで、カメラポーズをパンチルト方向に回転させることができる。また、ロールズームが選択された場合、同様の操作で、カメラポーズをロールズーム方向に回転させることができる。計測画像ボックス611の下側には、現在位置ボックス630が配置されている。現在位置ボックス630は、カーソル位置における3DオブジェクトOBの表面座標をリアルタイムで表示するためのボックスである。3DオブジェクトOBの表面座標は空間座標系の座標としてmm単位で示される。計測画像ボックス611において、ユーザがカーソルCを移動させることで、現在位置ボックス630の値もリアルタイムに変更される。例えば、カーソルCが3DオブジェクトOB上に位置する場合、3DオブジェクトOBの表面座標が算出され、現在位置ボックス630に表示される。カーソルCが3DオブジェクトOB上に位置しない場合は、現在位置ボックス630にnullと表示される。3DオブジェクトOBの表面座標の算出方法については、図26~図29を用いて後述する。現在位置ボックス630の下側には、カメラポーズボックス640が配置されている。カメラポーズボックス640は、カメラポーズをリアルタイムで表示するためのボックスである。ユーザがカメラポーズを変更することで、カメラポーズボックス640の値がアルタイムに変更される。カメラポーズは、空間座標系の座標としてmm単位で示される。カメラポーズボックス640の右側には、シフト位置ボックス650が配置されている。シフト位置ボックス650は、計測画像ボックス611における3DオブジェクトOBのシフト位置を表示するためのボックスである。3DオブジェクトOBのシフト位置は、平面座標系の座標としてpixel単位で示される。3DオブジェクトOBは計測画像ボックス611の中央部に表示されており、カメラポーズが変更されても表示位置は変化しない。しかし、計測画像IMGに写った被検体は、必ずしも画像の中央部に位置しているわけではない。そのため、計測画像IMGと3Dオブジェクト3Dとをマッチングさせる処理である3Dマッチング処理の実行後、3DオブジェクトOBは計測画像ボックス611の中央部ではなく、計測画像に写った被検体の上に位置しているべきである。上記のシフト位置は、計測画像ボックス611の中央部からの3DオブジェクトOBの相対位置を示している。以下、平面座標系におけるシフト位置の移動方向をシフト方向と記載する。ユーザが手動で任意にシフト位置を変更することはできない。シフト位置は、3Dマッチング処理の実行後に、CPU34cが算出するものである。ファイル選択ボックス610の下側には、マッチング計測ボックス660が配置されている。マッチング計測ボックス660内には、3Dマッチング処理および計測に関するGUIが配置されている。マッチング計測ボックス660内の各GUIの機能は以下の通りである。カメラポーズボタン661aは、カメラポーズを変更するためのボタンである。カメラポーズボタン661aが押下された後、計測画像ボックス611aにおいて、ユーザがカーソルCを上下左右に移動させることで、カメラポーズが変更可能となる。また、カメラポーズボタン661aの右側には、リセットボタン661bが配置されており、リセットボタン661bが押下されると、カメラポーズが初期値に設定される。参照点計測ボタン662aは、計測画像IMGの参照点計測を指定するためのボタンである。参照点計測とは、CPU34cが3Dマッチング処理を実行する際の基準となる計測画像IMG上の点のことである。参照点計測ボタン662aが押下された後、計測画像ボックス611において、ユーザがカーソルCを移動させて、指定したい位置でクリック等を行うことで、計測画像IMGに写った被検体に対して参照点計測を指定することができる。参照点計測は、平面座標系の座標としてpixel単位で示される。また、参照点計測ボタン662aが押下されると、3DオブジェクトOBの表示透過率が自動的に大きく設定され、計測画像IMGが見やすい状態となる。また、参照点計測ボタン662aの右側には、クリアボタン662bが配置されており、クリアボタン662bが押下されると、既に指定された参照点計測が全てクリアされ、指定前の状態となる。参照点3Dボタン663aは、3DオブジェクトOBの参照点3Dを指定するためのボタンである。参照点3Dとは、参照点計測と同様に、CPU34cが3Dマッチング処理を実行する際の基準となる3Dオブジェクト上の点である。参照点3Dボタン663aが押下された後、計測画像ボックス611において、ユーザがカーソルCを移動させて、参照点3Dを指定したい位置でクリック等の操作を行うことで、3DオブジェクトOBに対して参照点3Dを指定することができる。参照点3Dは、空間座標系の座標としてmm単位で示される。また、参照点3Dボタン663aが押下された後、3DオブジェクトOBの表示透過率が自動的に小さく設定され、3DオブジェクトOBが見やすい状態となる。また、参照点3Dボタン663aの右側には、クリアボタン663bが配置されており、クリアボタン663bが押下されると、既に指定された参照点3Dが全てクリアされ、指定前の状態となる。3Dマッチングボタン664は、3Dマッチング処理を実行するためのボタンである。3Dマッチングボタン664が押下された後、ユーザが指定した2組の参照点参照点計測と参照点3Dに基づいて、CPU34cは3Dマッチング処理を実行する。このとき、CPU34cは、2組の参照点の位置がそれぞれ一致するように、3Dマッチング処理を行うことになる。3Dマッチング処理の結果、計測画像IMG内の被検体と3DオブジェクトOBとがほぼ一致するように表示され、計測画像IMG内の被検体と3DオブジェクトOBが計測に適した状態となる。計測ボタン665aは、計測点を指定するためのボタンである。計測点とは、計測を行う際の基準となる点である。計測ボタン665aが押下された後、計測画像ボックス611において、ユーザがカーソルCを移動させて、計測点を指定したい位置でクリック等の操作を行うことで、3DオブジェクトOBに対して計測点を指定することができる。CPU34cは、指定された計測点に基づいて、計測処理を実行する。また、計測ボタン665aの右側には、クリアボタン665bが配置されており、クリアボタン665bが押下されると、既に指定された計測点が全てクリアされ、指定前の状態となる。マッチング計測ボックス660の下側には、計測結果ボックス670が配置されている。計測結果ボックス670は、計測結果を表示するためのボックスである。計測画像ボックス611においてユーザが計測点を指定すると、指定された計測点に基づいて計測処理が実行され、計測結果ボックス670に計測結果が表示される。メインウィンドウ600の右下部には、終了ボタン680が配置されている。終了ボタン680は、3D計測ソフトを終了するためのボタンである。終了ボタン680が押下されると、全てのソフト動作が終了し、メインウィンドウ600が閉じる非表示となる。次に、図7を用いて、3Dオブジェクトとカメラポーズとの関係について説明する。図7に示すように、実空間に対応する仮想的な空間上に3DオブジェクトOB1および視点700がある。3DオブジェクトOB1の位置は固定されているが、視点700の位置はユーザによって自由に変更される。3DオブジェクトOB1の重心位置には視線中心701があり、視点700から視線方向702に伸びる直線は、常にこの視線中心701を向いている。視線中心701の位置は固定されている。視点700は、3DオブジェクトOB1を撮像する仮想カメラの位置に相当し、視線方向702は仮想カメラの撮像方向光軸方向に相当する。3DオブジェクトOB1と視点700との間には、矩形状の仮想的な平面であるスクリーン平面703がある。スクリーン平面703は計測画像ボックス611に相当するものである。スクリーン平面703の縦方向および横方向のサイズは固定値である。3DオブジェクトOB1をスクリーン平面703に投影した投影像が、計測画像ボックス611に表示される3DオブジェクトOBである。スクリーン平面703は、視線方向702と常に垂直であり、視点700から視線方向702に伸びる直線は、常にスクリーン平面703の中心704を通る。視点700からスクリーン平面703の中心704までの距離706は固定値であるが、視点700から視線中心701までの距離は、ユーザによって自由に変更される。スクリーン平面703の向いている方向は、上方向ベクトル705によって示される。この上方向ベクトル705は、スクリーン平面703と平行であり、スクリーン平面703の上方向がどの方向かを表す単位ベクトルである。図7に示した項目のうち、カメラポーズを構成するパラメータは、視点位置、視線中心位置、上方向ベクトルの3つである。以下では、図8~図10を用いて、カメラポーズを変更したときの3Dオブジェクトとカメラポーズとの関係について説明する。図8aは、カメラポーズをパンチルト方向に変更した場合の3Dオブジェクトとカメラポーズとの関係を示している。パン方向とは、視点800から視線中心801までの距離を固定したまま、視点800を上方向ベクトル802と垂直に移動させた場合の方向パン方向803である。チルト方向とは、視点800から視線中心801までの距離を固定したまま、視点800を上方向ベクトル802と平行に移動させた場合の方向チルト方向804である。図8aのように、カメラポーズをパンチルト方向に変更すると、図8bのように、スクリーン平面805に投影される3DオブジェクトOBは、上下左右の各方向に回転することがわかる。図9aは、カメラポーズをロール方向に変更した場合の3Dオブジェクトとカメラポーズとの関係を示している。ロール方向とは、視点900の位置を固定したまま、視点900から視点中心901に向かう視点方向902の軸を中心に、スクリーン平面903を回転させた場合の方向ロール方向904である。図9aのように、カメラポーズをロール方向に変更すると、図9bのように、スクリーン平面903に投影される3DオブジェクトOBは、スクリーン平面903の中心を軸として回転することがわかる。図10aは、カメラポーズをズーム方向に変更した場合の3Dオブジェクトとカメラポーズとの関係を示している。ズーム方向とは、上方向ベクトル1000を固定したまま、視点1001を視線方向1002と平行に移動させた場合の方向ズーム方向1003である。図10aのように、カメラポーズをズーム方向に変更すると、図10bのように、スクリーン平面1004に投影される3DオブジェクトOBは、拡大縮小することがわかる。上記の説明の通り、カメラポーズが変更されると、スクリーン平面の位置方向が変化する。それに伴い、スクリーン平面に投影される3Dオブジェクトの表示も変化し、その結果、計測画像ボックス611に表示される3Dオブジェクトの表示も変化することになる。CPU34cは、ユーザによってリモコン23を介して入力されるカメラポーズの変更指示を検出し、その変更指示に応じて、3Dオブジェクトを計測画像ボックス611に表示するための処理を行う。次に、3D計測ソフトの動作の流れを説明する。以下では、撮影時におけるカメラの姿勢を表すパラメータである外部パラメータのみの調整を行う動作図11~図42を説明した後、外部パラメータと、カメラの光学系の光学特性や撮像素子の構造特性を表すパラメータである内部パラメータとの両方の調整を行う動作図43~図66を説明する。また、以下では、メインウィンドウ600における全てのGUIに関する動作ではなく、一部のGUIに関する動作のみ説明するものとする。具体的には、計測画像ボックス611、カメラポーズボタン661a、参照点計測ボタン662a、参照点3Dボタン663a、3Dマッチングボタン664、計測ボタン665a、計測結果ボックス670、終了ボタン680に関する動作は説明するが、その他のGUIに関する動作の説明は行わない。図11は3D計測ソフトの動作の流れを示している。ステップSAでは、CPU34cが3D計測ソフトを起動する。具体的には、ユーザがリモコン23を介して入力した起動指示に基づいて、CPU34cは、ROM34bに格納されている3D計測ソフトをRAM34aに読み込み、3D計測ソフトに従った動作を開始する。ステップSBでは、CPU34cが、メインウィンドウ600を表示するための処理を行う。ステップSCでは、CPU34cが初期化処理を行う。初期化処理とは、メインウィンドウ600内の各種GUIの初期状態を設定したり、RAM34aに記録された各種データの初期値を設定したりする処理である。初期化処理の詳細については、後述する。ステップSDでは、CPU34cがカメラポーズ設定処理を行う。カメラポーズ設定処理とは、ユーザが入力した、カメラポーズを変更する指示に基づいて、計測画像ボックス611の計測画像内の被検体と3Dオブジェクトとを大まかにマッチングさせる処理である。カメラポーズ設定処理の詳細については、後述する。ステップSEでは、CPU34cが参照点計測指定処理を行う。参照点計測指定処理とは、ユーザが入力した、計測画像ボックス611の計測画像に写った被検体上の位置を指定する指示に基づいて、参照点を指定設定する処理である。参照点計測指定処理の詳細については、後述する。ステップSFでは、CPU34cが参照点3D指定処理を行う。参照点3D指定処理とは、ユーザが入力した、計測画像ボックス611の3Dオブジェクト上の位置を指定する指示に基づいて、参照点を指定設定する処理である。参照点3D指定処理の詳細については、後述する。ステップSGでは、CPU34cが3Dマッチング処理を行う。3Dマッチング処理とは、ユーザが指定した2組の参照点参照点計測参照点3Dに基づいて、計測画像ボックス611に表示された計測画像と3Dオブジェクトとをマッチングさせる処理である。3Dマッチング処理の詳細については、後述する。ステップSHでは、CPU34cが計測処理を行う。計測処理とは、ユーザが入力した、計測画像ボックス611の3Dオブジェクト上の位置を指定する指示に基づいて、計測点を指定設定し、指定した計測点に基づいて、被検体のサイズを算出する処理である。計測処理の詳細については、後述する。ステップSIでは、CPU34cが、ユーザによって終了ボタン680が押下されたかどうかを確認する。ユーザが終了ボタン680を押下した場合、処理はステップSJに移行する。また、ユーザが終了ボタン680を押下しなかった場合、処理はステップSDに移行する。ステップSJでは、CPU34cがメインウィンドウ600を非表示とし、3D計測ソフトの動作を終了する。次に、図12を用いて、ステップSCの初期化処理の動作の流れを説明する。ステップSC1では、CPU34cが、メモリカード50に記録された所定の計測画像ファイルおよびCADデータをRAM34aに読み込む。ステップSC2では、CPU34cが、読み込まれたCADデータに基づいて、カメラポーズ初期値を算出する。カメラポーズのうち、視点位置については、図13のように、CPU34cは空間座標系の原点の座標x,y,z=0,0,0を初期値視点1300とする。カメラポーズのうち、視線中心位置については、図13のように、CPU34cは、CADデータにおける全ての空間座標の重心位置を算出し、その座標を初期値視点中心1301とする。この視線中心位置は、CADデータごとに固有の値であり、この後、カメラポーズが変更されても、この値が変化することはない。カメラポーズのうち、上方向ベクトルについては、図13のように、CPU34cは、視点1300と視線中心1301を結ぶ直線と直交する単位ベクトルのうち、スクリーン平面の縦辺に平行な単位ベクトルを初期値上方向ベクトル1302とする。ステップSC3では、CPU34cが、ステップSC2で算出したカメラポーズ初期値をカレントカメラポーズとしてRAM34aに記録する。カレントカメラポーズとは、現在設定されているカメラポーズのことであり、3Dオブジェクトは、このカレントカメラポーズに基づいて表示されることになる。ステップSC4では、CPU34cが、図14のように計測画像ボックス611に計測画像IMGを表示し、さらにその上に3DオブジェクトOBを所定の透過率で重畳表示するための処理を実行する。このとき、3DオブジェクトOBは、算出されたカメラポーズ初期値に基づいて、スクリーン平面に投影された平面図として表示される。ステップSC4の処理が終了すると、初期化処理が終了する。次に、図15を用いて、ステップSDのカメラポーズ設定処理の流れを説明する。ステップSD1では、CPU34cが、カメラポーズボタン661aが既に押下された状態ステップSD3の処理が既に行われた状態であるかどうかを確認する。カメラポーズボタン661aが押下された状態である場合、処理はステップSD4に移行し、カメラポーズボタン661aが押下された状態でない場合、処理はステップSD2に移行する。ステップSD2では、CPU34cが、カメラポーズボタン661aがユーザによって押下されたかどうかを確認する。カメラポーズボタン661aが押下された場合、処理はステップSD3に移行し、カメラポーズボタン661aが押下されていない場合、カメラポーズ設定処理が終了する。ステップSD3では、CPU34cが、図16aのようにカメラポーズボタン661aを強調表示するための処理を行う。カメラポーズボタン661aを強調表示するのは、現在、カメラポーズが変更可能であることをユーザに通知するためである。ステップSD4では、CPU34cが、図16bのように、計測画像ボックス611において、ユーザがリモコン23を操作してカーソルCによりクリック等を行いながらカーソルCを上下左右に移動させる操作ドラッグ操作を検出し、カーソルCの操作を検出した結果に基づいてカメラポーズを変更する。このとき、ユーザは、計測画像に写った被検体DUTと3DオブジェクトOBとが大まかにマッチングするように、カメラポーズを変更する。カメラポーズは、前述したパンチルトロールズームの方向に変更可能である。また、このとき、CPU34cは、リモコン23を介して入力されるカーソルCの操作指示を検出し、その操作指示に基づいて、変更後のカメラポーズを算出する。ステップSD5では、CPU34cが変更後のカメラポーズをカレントカメラポーズとしてRAM34aに上書き記録する。ステップSD6では、CPU34cが、カレントカメラポーズに基づいて、3Dオブジェクトを再表示するための処理を行う。これによって、図16cのように、カメラポーズが変更された3DオブジェクトOBが計測画像ボックス611に表示される。ステップSD6の処理が終了すると、カメラポーズ設定処理が終了する。次に、図17を用いて、ステップSEの参照点計測指定処理の流れを説明する。ステップSE1では、CPU34cが、参照点計測ボタン662aが既に押下された状態ステップSE3,SE4の処理が既に行われた状態であるかどうかを確認する。参照点計測ボタン662aが押下された状態である場合、処理はステップSE5に移行し、参照点計測ボタン662aが押下された状態でない場合、処理はステップSE2に移行する。ステップSE2では、CPU34cが、参照点計測ボタン662aがユーザによって押下されたかどうかを確認する。参照点計測ボタン662aが押下された場合、処理はステップSE3に移行し、押下されていない場合、参照点計測指定処理が終了する。ステップSE3では、CPU34cが、図18aのように、参照点計測ボタン662aを強調表示するための処理を行う。参照点計測ボタン662aを強調表示するのは、現在、計測画像に対して参照点が指定可能であることをユーザに通知するためである。ステップSE4では、CPU34cが、図18bのように、3DオブジェクトOBの透過率を変更し、変更後の透過率で3DオブジェクトOBを再表示するための処理を行う。ここで設定される透過率は大きな値であり、3DオブジェクトOBは透明に近い状態となり、計測画像が見やすい状態となる。なお、特に図示していないが、既に指定した参照点3Dが存在する場合は、3DオブジェクトOBが一旦非表示となる。これも、計測画像を見やすい状態とするためである。ステップSE5では、CPU34cが、計測画像ボックス611において、計測画像に写った被検体DUTに対して参照点計測を指定するためにユーザがリモコン23を操作してカーソルCによりクリック等を行う操作を検出し、カーソルCの操作を検出した結果に基づいて、指定された参照点の座標を算出する。このとき算出される参照点計測の座標は、計測画像における平面座標pixel単位である。ステップSE6では、CPU34cが、指定された参照点計測の座標をRAM34aに記録する。ステップSE7では、CPU34cが、指定された参照点計測を計測画像上に重畳表示するための処理を行う。これによって、図18cのように、参照点計測R1,R2,R3が計測画像上に重畳表示される。ステップSE7の処理が終了すると、参照点計測指定処理が終了する。次に、図19を用いて、ステップSFの参照点3D指定処理の流れを説明する。ステップSF1では、CPU34cが、参照点3Dボタン663aが既に押下された状態ステップSF3,SF4が既に行われた状態であるかどうかを確認する。参照点3Dボタン663aが押下された状態である場合、処理はステップSF5に移行し、参照点3Dボタン663aが押下されていない状態でない場合、処理はステップSF2に移行する。ステップSF2では、CPU34cが、参照点3Dボタン663aがユーザによって押下されたかどうかを確認する。参照点3Dボタン663aが押下された場合、処理はステップSF3に移行し、参照点3Dボタン663aが押下されていない場合、参照点3D指定処理が終了する。ステップSF3では、CPU34cが、図20aのように、参照点3Dボタン663aを強調表示するための処理を行う。参照点3Dボタン663aを強調表示するのは、現在、3Dオブジェクトに対して参照点が指定可能であることをユーザに通知するためである。ステップSF4では、CPU34cが、図20bのように、3DオブジェクトOBの透過率を変更し、変更後の透過率で3DオブジェクトOBを再表示するための処理を行う。ここで設定される透過率は小さな値であり、3DオブジェクトOBが見やすい状態となる。このとき、特に図示していないが、既に指定した参照点計測が存在する場合は、計測画像が一旦非表示となる。これも、3DオブジェクトOBを見やすい状態とするためである。ステップSF5では、CPU34cが、計測画像ボックス611において、計測画像に写った被検体DUTに対して参照点3Dを指定するためにユーザがリモコン23を操作してカーソルCによりクリック等を行う操作を検出し、カーソルCの操作を検出した結果に基づいて、指定された参照点の座標を算出する。このとき算出される参照点3Dの座標は、3Dオブジェクト表面における空間座標mm単位であり、CPU34cは、まず指定された参照点の平面座標pixel単位を算出し、続いて、算出した平面座標から空間座標mm単位を算出する。ユーザが指定する参照点3Dと、既に指定された参照点計測とが、それぞれ対応付けられていなくてはならない。本実施形態では、CPU34cは、ユーザが参照点計測を指定した順番と、参照点3Dを指定した順番とに基づいて、参照点3Dと参照点計測とを対応付けるものとする。より具体的には、CPU34cは、参照点計測のうち最初に指定された点と参照点3Dのうち最初に指定された点とを対応付け、参照点計測のうち2番目に指定された点と参照点3Dのうち2番目に指定された点とを対応付け、、参照点計測のうちn番目に指定された点と参照点3Dのうちn番目に指定された点とを対応付ける。上記の方法は一例であり、これに限るわけではない。図18cに示すように、被検体DUTの左上の参照点計測R1、右上の参照点計測R2、右下の参照点計測R3が指定されている。参照点計測の指定が終了した後、ユーザは、被検体DUT上の参照点計測に対応する3DオブジェクトOB上の参照点3Dを、参照点計測を指定したときと同じ順番で指定する。図20cに示すように、被検体DUT上の参照点計測R1,R2,R3に対応する3Dオブジェクト上の位置に参照点計測R1’,R2’,R3’が指定されている。ステップSF6では、CPU34cが、指定された参照点3Dの座標をRAM34aに記録する。ステップSF7では、CPU34cが、指定された参照点3Dを3Dオブジェクト上に重畳表示するための処理を行う。これによって、図20cのように、参照点3DR1’,R2’,R3’が3DオブジェクトOB上に重畳表示される。ステップSF7の処理が終了すると、参照点3D指定処理が終了する。なお、CPU34cが、指定された参照点3Dの座標をCADデータに記録してもよいし、CADデータと紐付けされた関連付けられた別のファイルに記録してもよい。これによって、再度ステップSC1にて同じCADデータを読み出した場合、ステップSF1~ステップSF5の処理を省略することができる。また、参照点3Dは必ずしもステップSFにおいて指定されるべきものではなく、予め内視鏡装置3またはPC6等によって、CADデータに記録されていてもよいし、CADデータと紐付けされた関連付けられた別のファイルに記録されていてもよい。次に、図21を用いて、ステップSGの3Dマッチング処理の流れを説明する。ステップSG1では、CPU34cが、3Dマッチングボタン664がユーザによって押下されたかどうかを確認する。3Dマッチングボタン664が押下された場合、処理はステップSG2に移行し、3Dマッチングボタン664が押下されていない場合、3Dマッチング処理が終了する。ステップSG2では、CPU34cが、全ての参照点が既に指定済みであるどうかを確認する。具体的には、CPU34cは、参照点計測および参照点3Dが、それぞれ3点ずつ、既に指定済みであるかどうかを確認する。全ての参照点が指定済みの場合、処理はステップSG3に移行し、参照点が指定済みでない場合、3Dマッチング処理が終了する。ステップSG3では、CPU34cが、RAM34aに記録された全ての参照点の座標を読み込む。ステップSG4では、CPU34cが、指定された参照点の座標に基づいて、パンチルト方向のマッチング処理を行う。パンチルト方向のマッチング処理の詳細については、後述する。ステップSG5では、CPU34cが、指定された参照点の座標に基づいて、ロール方向のマッチング処理を行う。ロール方向のマッチング処理の詳細については、後述する。ステップSG6では、CPU34cが、指定された参照点の座標に基づいて、ズーム方向のマッチング処理を行う。ズーム方向のマッチング処理の詳細については、後述する。ステップSG7では、CPU34cが、指定された参照点の座標に基づいて、シフト方向のマッチング処理を行う。シフト方向のマッチング処理の詳細については、後述する。ステップSG8では、CPU34cが、計測画像ボックス611において、3Dオブジェクトを再表示するための処理を行う。このとき、3Dオブジェクトは、ステップSG4~SG7において最終的に算出されたカメラポーズおよびシフト位置に基づいて、姿勢および位置が調整されて表示される。図22は、マッチング処理後の計測画像に写った被検体と3Dオブジェクトを示している。図22のように、計測画像に写った被検体と3Dオブジェクトとが、ほぼ一致していること、すなわち、両者がうまくマッチングしていることがわかる。ステップSG8の処理が終了すると、3Dマッチング処理が終了する。上記の3Dマッチング処理を行うによって、被検体を撮像したカメラ内視鏡装置3の姿勢に近づくように、3Dオブジェクトを撮像した仮想カメラの姿勢を調整することができ、被検体と3Dオブジェクトをマッチングさせることができる。次に、図23を用いて、ステップSHの計測処理の流れを説明する。ステップSH1では、CPU34cが、計測ボタン664が既に押下された状態ステップSH3が既に行われた状態であるかどうかを確認する。計測ボタン664が押下された状態である場合、処理はステップSH4に移行し、計測ボタン664が押下された状態でない場合、処理はステップSH2に移行する。ステップSH2では、CPU34cが、計測ボタン664がユーザによって押下されたかどうかを確認する。計測ボタン664が押下された場合、処理はステップSH3に移行し、計測ボタン664が押下されていない場合、計測処理が終了する。ステップSH3では、CPU34cが、図24aのように、計測ボタン664を強調表示するための処理を行う。計測ボタン664を強調表示するのは、現在、3Dオブジェクトに対して計測点が指定可能であることをユーザに通知するためである。ステップSH4では、CPU34cが、計測画像ボックス611において、3Dオブジェクトに対して計測点を指定するためにユーザがリモコン23を操作してカーソルCによりクリック等を行う操作を検出し、カーソルCの操作を検出した結果に基づいて、指定された計測点の座標を算出する。CPU34cは、算出した計測点の座標をRAM34aに記録する。このとき記録される計測点の座標は、3Dオブジェクト表面における空間座標mm単位である。ステップSH5では、CPU34cが、指定された計測点の座標に基づいて、計測結果を算出し、算出した計測結果をRAM34aに記録する。本実施形態では、2つの計測点の空間距離2点間距離を計測するものとする。ステップSH5で算出される計測結果は、既に指定された2つの計測点の空間距離である。指定された計測点が1点のみである場合、計測結果は算出されず、処理がステップSH6に移行する。ステップSH6では、CPU34cが、図24b,cのように、指定された計測点を3Dオブジェクト上に重畳表示するための処理を行う。図24bは1点目の計測点P1が指定されたときの計測画像ボックス611であり、図24cは2点目の計測点P2が指定されたときの計測画像ボックス611である。さらに、CPU34cは、図25のように、算出した計測結果を計測結果ボックス670に表示するための処理を行う。指定された計測点が1点のみである場合、計測結果は表示されず、ステップSH6の処理が終了する。ステップSH6の処理が終了すると、計測処理が終了する。上記の説明では、2点間距離を計測する場合を例としているが、3点以上の計測点が指定される面積等の計測を行う場合も同様である。次に、図26~図29を用いて、指定された計測点の、3Dオブジェクト表面における空間座標3次元座標の算出方法について説明する。図26は、3次元空間における3Dオブジェクトの一部と視点Eとの関係を示している。3Dオブジェクトは、複数の三角形の空間平面から構成されている。視点Eから3Dオブジェクトの重心点Gへ向かう方向を視線方向とする。視点Eと3Dオブジェクトとの間には、視線方向と垂直に交わるスクリーン平面SCが設定されている。ユーザが計測画像ボックス611における3Dオブジェクト上の計測点を指定すると、CPU34cは、図27のように、スクリーン平面SC上に計測点Sを設定する。計測点Sと視点Eとを通る空間直線を直線Lとする。そして、CPU34cは、3Dオブジェクトを構成する複数の三角形の中から、直線Lと交差する全ての三角形を検索する。直線と空間三角形とが交差するかどうかを判定する方法として、例えばTomasMollerの交差判定法を用いることが可能である。この例では、図28のように、三角形T1,T2が、直線Lと交差する三角形であると判定される。そして、図29のように、CPU34cは、直線Lと三角形T1,T2との交点を算出し、算出したそれぞれの交点を交点F1,F2とする。ここでは、3Dオブジェクト表面における空間座標を算出したいので、CPU34cは、交点F1,F2のうち、より視点Eに近い方を選択する。この場合、CPU34cは、交点F1の空間座標を、3Dオブジェクト表面における空間座標として算出する。上記では、直線Lと交差すると判定された三角形を2つのみとしたが、3Dオブジェクトの形状や視線方向によっては、より多くの三角形が交差すると判定される場合もある。その場合も、直線Lと三角形との交点をそれぞれ求め、求めた交点の中で、最も視点Eに近い交点を選択することになる。上記のようにして、計測点の空間座標を算出することができる。ステップSF5における参照点3Dの空間座標も上記と同様にして算出することができる。次に、図30を用いて、ステップSG4のパンチルト方向のマッチング処理の流れを説明する。パンチルト方向のマッチング処理の目的は、参照点計測によって構成される3角形と、参照点3Dをスクリーン平面に降ろした投影点によって構成される3角形とが最も相似に近くなるカメラポーズを見つける、ということである。これらの3角形が相似に近い場合、計測画像に写った被検体が撮像されたときの視線のパンチルト方向と、3Dオブジェクトを観察する視線のパンチルト方向とが、ほぼ一致しているということができる。以下、図31aのように、参照点3DR1’~R3’をスクリーン平面3100に降ろした投影点Rp1’~Rp3’を投影点3Dと記載する。さらに、図31bのように、参照点計測R1~R3によって構成される3角形3102を参照図形計測と記載し、図31aのように、投影点3DRp1’~Rp3’によって構成される3角形3101を参照図形3Dと記載する。ステップSG401では、CPU34cが頂点角計測を算出し、算出した頂点角計測をRAM34aに記録する。頂点角計測とは、図32aのように、参照図形計測3200の3つの頂点R1~R3の角度A1~A3である。ステップSG402では、CPU34cが、カメラポーズをパンチルト方向にそれぞれ-31deg回転させる。ステップSG403~SG407において繰り返し処理が行われるが、これは、図32bのように、カメラポーズをパンチルト方向に回転させながら、頂点角3Dを順次算出するためである。頂点角3Dとは、図32bのように、参照図形3D3201の3つの投影点3DRp1’~Rp3’の角度A1’~A3’である。前述したように、参照点計測と参照点3Dは、各参照点が指定された順番によって対応付けられており、角度A1~A3と角度A1’~A3も、この順番によって対応付けられている。図32では、角度A1と角度A1’が対応付けられ、角度A2と角度A2’が対応付けられ、角度A3と角度A3’が対応付けられている。ステップSG403では、CPU34cが、カメラポーズをパン方向に1deg回転させる。そして、ステップSG403~SG407では、カメラポーズのパン方向の回転角度が30degとなるまでCPU34cが繰り返し処理を行う。CPU34cは、カメラポーズをパン方向に-30degから30degとなるまで1degずつ回転させるので、結果としてステップSG403~SG407の一連の処理を61回繰り返すことになる。ステップSG404では、CPU34cが、カメラポーズをチルト方向に1deg回転させる。そして、ステップSG404~SG407では、カメラポーズのチルト方向の回転角度が30degとなるまでCPU34cが繰り返し処理を行う。CPU34cは、カメラポーズをチルト方向に-30degから30degとなるまで1degずつ回転させるので、結果としてステップSG404~SG407の処理を61回繰り返すことになる。なお、ステップSG403~SG407の繰り返し処理において、カメラポーズを-30degから30degとなるまで回転させているが、カメラポーズを回転させる範囲は必ずしもこの範囲である必要はない。ステップSDのカメラポーズ設定処理において、ユーザがカメラポーズを変更する際、計測画像に写った被検体と3Dオブジェクトとをどの程度までマッチングさせるかによって、ステップSG403~SG407の繰り返し処理において、カメラポーズを回転させるのに必要な範囲が変わることになる。範囲が広い場合、ユーザは大まかなマッチングさえ行えば良いが、その代わり、3Dマッチングの処理時間が長くなる。範囲が狭い場合、3Dマッチングの処理時間が短くて済むが、その代わり、ユーザはある程度詳細にマッチングを行う必要がある。ステップSG405では、CPU34cが、現在のパンチルト方向の回転角度をRAM34aに記録する。図33は、RAM34aに記録される回転角度を示している。ステップSG405では、CPU34cは、回転角度をRAM34aに上書き記録するのではなく、カメラポーズをパンチルト方向に回転するたびに、図33aのように、RAM34aに用意されたデータリストに現在のパンチルト方向の回転角度を1行ずつ追加記録していく。このデータリストには、後述するように、パンチルト方向の回転角度と関連付けて、頂点角3D等の様々なデータを記録することができる。ステップSG406では、CPU34cが投影点3Dを算出し、算出した投影点3DをRAM34aに記録する。ステップSG407では、CPU34cが頂点角3Dを算出し、算出した頂点角3DをRAM34aに記録する。このとき、CPU34cは、図33bのように、頂点角3Dをパンチルト方向の回転角度と関連付けて、データリストに1行ずつ追加記録していく。ステップSG403~SG407の繰り返し処理が終了すると、処理はステップSG408に移行する。この時点でのデータリストは、図33cのようになり、61×61行分のデータで構成されている。ステップSG408では、CPU34cがカメラポーズをパンチルト方向にそれぞれ-30deg回転させる。ステップSG403~SG407の繰り返し処理が終了した時点で、パンチルト方向の回転角度はそれぞれ30degであるので、ここでは、-30deg回転させることによって、カメラポーズを元の状態に戻すことになる。ステップSG409では、CPU34cが、頂点角計測と頂点角3Dとの差を算出する。具体的には、CPU34cは、1式~3式のように、頂点角計測A1~A3と頂点角3DA1’~A3’との差の絶対値D1~D3を算出する。D1=|A1-A1’|1D2=|A2-A2’|2D3=|A3-A3’|3さらに、CPU34cは、図34aのように、頂点角の差をパンチルト方向の回転角度と関連付けて、データリストに追加記録する。ステップSG410では、CPU34cが差D1~D3の平均値を算出する。さらに、CPU34cは、図34bのように、平均値をパンチルト方向の回転角度と関連付けて、データリストに追加記録する。ステップSG411では、CPU34cが平均値の最小値をデータリストから検索する。図35は、データリストにおいて、0.5が最小値として検索された様子を示している。ステップSG412では、CPU34cが、平均値が最小となる場合のパンチルト方向の回転角度をデータリストから読み込む。具体的には、CPU34cは、図35のように、データリストから、最小の平均値に関連付けられたパンチルト方向の回転角度を読み込む。ステップSG413では、CPU34cが、カメラポーズをパンチルト方向に、ステップSG412で読み込まれた回転角度だけ回転させる。このカメラポーズで3Dオブジェクトを表示した場合、図32c,dのように、回転後の頂点角計測と頂点角3Dとが、良く一致しており、参照図形計測と参照図形3Dとが相似に近いことがわかる。ステップSG414では、CPU34cが、このときのカメラポーズをカレントカメラポーズとしてRAM34aに上書き記録する。ここでは、カレントカメラポーズに基づく3Dオブジェクトの再表示は行わない。ステップSG414の処理が終了すると、パンチルト方向のマッチング処理が終了する。次に、図36を用いて、ステップSG5のロール方向のマッチング処理の流れを説明する。ロール方向のマッチング処理の目的は、参照図形計測と参照図形3Dの回転方向のアングルが最も一致するカメラポーズを見つける、ということである。それぞれの参照図形の回転方向のアングルが近い場合、計測画像に写った被検体を観察する視線のロール方向の回転角度と、3Dオブジェクトを観察する視線のロール方向の回転角度とが、ほぼ一致しているということができる。ステップSG501では、CPU34cが相対角計測を算出し、算出した相対角計測をRAM34aに記録する。相対角計測とは、図37aのように、計測画像において上下方向に伸びる直線3700と、参照図形計測の3つの辺との間の角度Ar1~Ar3である。このときの相対角計測は、直線3700から辺への右回り方向の角度である。ステップSG502では、CPU34cが投影点3Dを算出し、算出した投影点3DをRAM34aに記録する。ステップSG503では、CPU34cが相対角3Dを算出し、算出した相対角3DをRAM34aに記録する。相対角3Dとは、図37bのように、スクリーン平面において上下方向に伸びる直線3701と参照図形3Dの3つの辺との間の角度Ar1’~Ar3’である。スクリーン平面は、計測画像が表示される計測画像ボックス611に相当するため、直線3700と直線3701の方向は一致する。また、このときの相対角3Dは、直線3701から辺への右回り方向の角度である。ステップSG504では、CPU34cが相対角計測と相対角3Dとの差を算出する。具体的には、CPU34cは、4式~6式のように、相対角計測Ar1~Ar3と相対角3DAr1’~Ar3’とのそれぞれの差Dr1~Dr3を算出する。Dr1=Ar1-Ar1’4Dr2=Ar2-Ar2’5Dr3=Ar3-Ar3’6ステップSG505では、CPU34cが差Dr1~Dr3の平均値を算出し、算出した平均値をRAM34aに記録する。ステップSG506では、CPU34cがカメラポーズをロール方向に、ステップSG505で算出した平均値だけ回転させる。このカメラポーズで3Dオブジェクトを表示した場合、図37c,dのように、回転後の相対角計測と相対角3Dとが良く一致していることがわかる。ステップSG507では、CPU34cが、このときのカメラポーズをカレントカメラポーズとしてRAM34aに上書き記録する。ここでは、カレントカメラポーズに基づく3Dオブジェクトの再表示は行わない。ステップSG507の処理が終了すると、ロール方向のマッチング処理が終了する。次に、図38を用いて、ステップSG6のズーム方向のマッチング処理の流れを説明する。ズーム方向のマッチング処理の目的は、参照図形計測と参照図形3Dのサイズが最も一致するカメラポーズを見つける、ということである。それぞれの参照図形のサイズが近い場合、計測画像に写った被検体を観察する視線のズーム方向の位置と、3Dオブジェクトを観察する視線のズーム方向の位置とが、ほぼ一致しているということができる。ステップSG601では、CPU34cが辺長計測を算出し、算出した辺長計測をRAM34aに記録する。辺長計測とは、図39aのように、参照点計測R1~R3によって構成される3角形の3つの辺の長さL1~L3である。ステップSG602では、CPU34cが投影点3Dを算出し、算出した投影点3DをRAM34aに記録する。ステップSG603では、CPU34cが辺長13Dを算出し、算出した辺長13DをRAM34aに記録する。辺長13Dとは、図39bのように、参照図形3Dの3つの辺の長さL1’~L3’である。ステップSG604では、CPU34cが、このときのカメラポーズをカメラポーズ1としてRAM34aに上書き記録する。ステップSG605では、CPU34cが、図39bのように、カメラポーズをズーム方向に所定値だけ移動させる。ステップSG606では、CPU34cが投影点3Dを算出し、算出した投影点3DをRAM34aに記録する。ステップSG607では、CPU34cが辺長23Dを算出し、算出した辺長23DをRAM34aに記録する。辺長23Dとは、図39bのように、カメラポーズをズーム方向に所定値だけ移動させた後の、参照図形3Dの3つの辺の長さLz1’~Lz3’である。ステップSG608では、CPU34cが、このときのカメラポーズをカメラポーズ2としてRAM34aに上書き記録する。ステップSG609では、CPU34cがズーム量を算出し、算出したズーム量をRAM34aに記録する。ズーム量は、辺長3Dと辺長計測とが一致するようなカメラポーズのズーム方向の移動量であり、辺長1,23Dと、カメラポーズ1,2との関係から算出される。辺は3つであるので、ズーム量も3つ算出される。図40は、辺長3Dとカメラポーズのズーム方向位置との関係を示している。図40のグラフ4000が示すように、両者は線形的な比例関係にある。グラフ4000を用いることで、辺長3Dと辺長計測とを一致させる場合にカメラポーズをズーム方向に移動させる際の移動量を算出することができる。ステップSG610では、CPU34cが3つのズーム量の平均値を算出し、算出した平均値をRAM34aに記録する。ステップSG611では、CPU34cが、カメラポーズをズーム方向に、ステップSG611で算出した平均値だけ移動させる。このカメラポーズで3Dオブジェクトを表示した場合、図39c,dのように、移動後の辺長計測と辺長3Dとが、良く一致していることがわかる。ステップSG612では、CPU34cが、このときのカメラポーズをカレントカメラポーズとしてRAM34aに上書き記録する。ここでは、カレントカメラポーズに基づく3Dオブジェクトの再表示は行わない。ステップSG612の処理が終了すると、ズーム方向のマッチング処理が終了する。次に、図41を用いて、ステップSG7のシフト方向のマッチング処理の流れを説明する。シフト方向のマッチング処理の目的は、計測画像ボックス611における、計測画像に写った被検体と3Dオブジェクトとが一致するように、シフト方向に3Dオブジェクトを移動させる、ということである。本処理は、3Dオブジェクトのシフト位置を決定するものであるため、カメラポーズの算出は行わない。ステップSG701では、CPU34cが重心点計測を算出し、算出した重心点計測をRAM34aに記録する。重心点計測とは、図42aのように、参照点計測R1~R3によって構成される3角形の重心点Gである。ステップSG702では、CPU34cが投影点3Dを算出し、算出した投影点3DをRAM34aに記録する。ステップSG703では、CPU34cが重心点3Dを算出し、算出した重心点3DをRAM34aに記録する。重心点3Dとは、図42aのように、投影点3DRp1’~Rp3’によって構成される3角形の重心点G’である。ステップSG704では、CPU34cがシフト量を算出し、算出したシフト量をRAM34aに記録する。シフト量とは、重心点計測の、重心点3Dとの相対位置平面座標系、pixel単位である。ステップSG705では、CPU34cが、3Dオブジェクトをシフト方向に、ステップSG704で算出したシフト量だけ移動させる。このカメラポーズで3Dオブジェクトを表示した場合、図42bのように、重心点計測と重心点3Dとが、良く一致していることがわかる。ステップSG705の処理が終了すると、シフト方向のマッチング処理が終了する。従来例では、2次元画像と3Dオブジェクトの投影図2Dモデルとを用いて、画像から検出されるエッジをベースとした画像処理によるマッチング処理を行っていたため、3Dオブジェクトの再表示や、膨大なデータ量をもつ画像データの統計計算に、多くの処理時間がかかっていた。しかし、本実施形態では、3Dマッチング処理を実行する際、ユーザが指定する平易な形状の参照図形に基づく簡単な幾何学計算のみを実行すれば良く、処理時間を大幅に短縮することができる。さらに、3Dオブジェクトの再表示は、3Dマッチング処理終了後の1度のみで良い。前述したように、現実のカメラの内部パラメータカメラの光学系の光学特性や撮像素子の構造特性を表すパラメータは、カメラを製造する際の設計値によって決まるが、必ずしも設計通りにカメラを製造できるわけではない。そのため、製造されたカメラ1台ごとに、それぞれ異なる内部パラメータをもつことになる。仮想カメラの内部パラメータに設計値を設定しても、そのとき使用している現実のカメラが設計値通りに製造されているとは限らない。よって、3Dマッチング処理を行う際には、3Dオブジェクトを撮像した仮想カメラの内部パラメータも調整する必要がある。図22に示したように、3Dマッチング処理後の、計測画像における被検体と3Dオブジェクトはほぼ一致している。しかし、図43のように被検体と3Dオブジェクトを拡大して詳細に見てみると、両者がうまくマッチングできていない箇所があることがわかる。原因としては、仮想カメラの内部パラメータを調整していないことが、理由の1つと考えられる。3Dマッチングの精度が低いと、その後に行われる計測処理の精度にも影響を及ぼすことになる。以上の理由から、3Dマッチング処理の精度を向上させるためには、この内部パラメータも考慮し、調整する必要がある。以下では、仮想カメラの外部パラメータの調整を行った後、仮想カメラの内部調整を行う動作を説明する。仮想カメラの内部パラメータを調整することにより、3Dマッチング処理の精度が向上し、ひいては、計測処理の精度も向上する。図11に示した3D計測ソフトの動作のうち、ステップSCの初期化処理とステップSGの3Gマッチング処理が以下のように変更される。図44は、ステップSCの初期化処理の動作を示している。ステップSC1では、CPU34cが、メモリカード50に記録された所定の計測画像ファイルおよびCADデータをRAM34aに読み込む。ステップSC2では、CPU34cが、読み込まれたCADデータに基づいて、カメラポーズ初期値を算出する。カメラポーズのうち、視点位置については、図13のように、CPU34cは空間座標系の原点の座標x,y,z=0,0,0を初期値視点1300とする。カメラポーズのうち、視線中心位置については、図13のように、CPU34cは、CADデータにおける全ての空間座標の重心位置を算出し、その座標を初期値視点中心1301とする。この視線中心位置は、CADデータごとに固有の値であり、この後、カメラポーズが変更されても、この値が変化することはない。カメラポーズのうち、上方向ベクトルについては、図13のように、CPU34cは、視点1300と視線中心1301を結ぶ直線と直交する単位ベクトルのうち、スクリーン平面の縦辺に平行な単位ベクトルを初期値上方向ベクトル1302とする。ステップSC3では、CPU34cが、ステップSC2で算出したカメラポーズ初期値をカレントカメラポーズとしてRAM34aに記録する。カレントカメラポーズとは、現在設定されているカメラポーズのことであり、3Dオブジェクトは、このカレントカメラポーズに基づいて表示されることになる。ステップSC5では、CPU34cが、メモリカード50に記録されたカメラパラメータをRAM34aに読み込む。ここで読み込まれるカメラパラメータは、現在使用されている現実のカメラに対応したカメラパラメータである。カメラパラメータの内容は、以下の通りである。A撮像光学系によって画像に生じる歪みを補正するための歪み補正データB撮像光学系の焦点距離C撮像光学系と撮像素子主平面と撮像面との傾きである撮像面傾きこれらのカメラパラメータは、3D計測ソフトが起動する前にメモリカード50に記録される。Aの歪み補正データに関しては、例えば特開平10-248806号公報に記載された歪み補正テーブルの算出方法を用いて歪み補正データを算出すれば良い。BCの焦点距離および撮像面傾きに関しては、カメラを製造する際の設計値をそのまま焦点距離および撮像面傾きに用いれば良い。CPU34aは、ステップSC5でメモリカード50から読み込んだカメラパラメータのうち、BCの焦点距離および撮像面傾きを、カレントスクリーンポーズとして、RAM34aに記録するステップSC6。スクリーンポーズとは、内部パラメータに相当するパラメータであり、3Dオブジェクトの像が投影されるスクリーン平面が、仮想カメラの位置である視点および仮想カメラの撮像方向である視線方向に対して、どのような位置関係にあるかを示すパラメータである。カレントスクリーンポーズとは、現在設定されているスクリーンポーズのことである。3Dオブジェクトは、カレントカメラポーズおよびカレントスクリーンポーズに基づいて表示される。図45を用いて、スクリーンポーズについて説明する。実空間に対応する仮想的な空間上に3DオブジェクトOB1および視点4500がある。3DオブジェクトOB1の重心位置には視線中心4501があり、視点4500から視線方向4502に伸びる直線は、常にこの視線中心4501を向いている。視点4500は、3DオブジェクトOB1を撮像する仮想カメラの位置に相当し、視線方向4502は仮想カメラの撮像方向光軸方向に相当する。3DオブジェクトOB1と視点4500との間には、矩形状の仮想的な平面であるスクリーン平面4503がある。3DオブジェクトOB1をスクリーン平面4503に投影した投影像が、計測画像ボックス611に表示される3DオブジェクトOBである。視点4500から視線方向4502に伸びる直線は、スクリーン平面4503の中心であるスクリーン平面中心4504を常に通る。スクリーンポーズを構成するパラメータは、スクリーン距離とスクリーン傾きの2つである。スクリーン距離とは、視点4500からスクリーン平面中心4504までの距離のことであり、スクリーン傾きとは、視線方向4502とスクリーン平面4503との傾きのことである。以下では、撮像光学系および撮像素子とスクリーンポーズとの関係を説明する。図46は、内視鏡挿入部20の先端に内蔵された撮像光学系30aおよび撮像素子30bの位置関係を示している。内視鏡挿入部20の先端20a側から順に、撮像光学系30aおよび撮像素子30bが並んで設置されている。撮像光学系30aの光軸4600は光学中心4601レンズ中心を通り、さらに撮像中心4602撮像素子中心を通る。理想的な状態すなわち設計値では、撮像光学系30aの主平面と撮像素子30bの撮像面は、互いに平行であり、撮像光学系30aの中心光学中心4601と、撮像素子30bの中心撮像中心4602との間隔が撮像光学系30aの焦点距離となるはずである。しかし、実際には、撮像光学系30aおよび撮像素子30bを必ずしも設計値通りに設置できるわけではなく、製造誤差が発生する。例えば、図47のように、撮像素子30bが光軸4600の方向にずれて設置されたり、図48、図49のように、撮像素子30bが光軸4600に対して傾いて設置されたりする場合がある。これらを、仮想的な空間上において表現するために用いるのがスクリーンポーズである。撮像光学系30aと撮像素子30bとの間隔がスクリーン距離に対応し、撮像光学系30aと撮像素子30bとの傾きがスクリーン傾きに対応する。また、光軸4600は視線方向に対応し、撮像中心4602はスクリーン平面中心に対応する。ステップSC6でRAM34aに記録されるカレントスクリーンポーズでは、スクリーン距離は使用中の撮像光学系30aの焦点距離であり、スクリーン傾きは、使用中の撮像光学系30aおよび撮像素子30bに対応した撮像面傾き例えば90°である。ステップSC7では、CPU34cが、歪み補正データを用いて、計測画像を補正する。図50aは、歪み補正を行う前の計測画像である。被検体DUTが歪んでいることがわかる。このような計測画像を用いて3Dマッチング処理を行っても、図50bのように、被検体DUTと3DオブジェクトOBとをうまくマッチングさせることができない。しかし、図51のように、計測画像5100に歪み補正を行った後の計測画像5110では、被検体DUTの歪みは除去される。歪み補正を行った計測画像5110を用いて3Dマッチング処理を行うことにより、被検体と3Dオブジェクトとをマッチングさせることが可能となる。本実施形態では、計測画像に対して歪み補正を行っているが、計測画像に含まれる歪みと同一の歪みを有するように、歪み補正データを用いて3Dオブジェクトの歪み補正歪みをかける補正を行ってもよい。ステップSC4では、CPU34cが、図14のように計測画像ボックス611に計測画像IMGを表示し、さらにその上に3DオブジェクトOBを所定の透過率で重畳表示するための処理を実行する。このとき、3DオブジェクトOBは、算出されたカメラポーズ初期値およびスクリーンポーズ初期値に基づいて、スクリーン平面に投影された平面図として表示される。ステップSC4の処理が終了すると、初期化処理が終了する。次に、図52を用いて、ステップSGの3Dマッチング処理の流れを説明する。ステップSG1では、CPU34cが、3Dマッチングボタン664がユーザによって押下されたかどうかを確認する。3Dマッチングボタン664が押下された場合、処理はステップSG2に移行し、3Dマッチングボタン664が押下されていない場合、3Dマッチング処理が終了する。ステップSG2では、CPU34cが、全ての参照点が既に指定済みであるどうかを確認する。具体的には、CPU34cは、参照点計測および参照点3Dが、それぞれ3点ずつ、既に指定済みであるかどうかを確認する。全ての参照点が指定済みの場合、処理はステップSG3に移行し、参照点が指定済みでない場合、3Dマッチング処理が終了する。ステップSG3では、CPU34cが、RAM34aに記録された全ての参照点の座標を読み込む。ステップSG4では、CPU34cが、指定された参照点の座標に基づいて、パンチルト方向のマッチング処理を行う。パンチルト方向のマッチング処理の詳細については、図30に示した通りである。ステップSG5では、CPU34cが、指定された参照点の座標に基づいて、ロール方向のマッチング処理を行う。ロール方向のマッチング処理の詳細については、図36に示した通りである。ステップSG6では、CPU34cが、指定された参照点の座標に基づいて、ズーム方向のマッチング処理を行う。ズーム方向のマッチング処理の詳細については、図38に示した通りである。ステップSG7では、CPU34cが、指定された参照点の座標に基づいて、シフト方向のマッチング処理を行う。シフト方向のマッチング処理の詳細については、図41に示した通りである。ステップSG8では、CPU34cが、計測画像ボックス611において、3Dオブジェクトを再表示するための処理を行う。このとき、3Dオブジェクトは、ステップSG4~SG7において最終的に算出されたカメラポーズおよびシフト位置に基づいて、姿勢および位置が調整されて表示される。ステップSG9では、CPU34cがファインマッチング判別処理を行う。上記のステップSG4~SG6で行われる処理が、カメラポーズに基づいた3Dマッチング処理であったのに対し、ファインマッチングとは、スクリーンポーズに基づいた、より詳細な3Dマッチング処理を指す。ファインマッチング判別処理とは、ファインマッチングをどのように行うかを判別する処理である。ファインマッチング判別処理の詳細については、後述する。ステップSG10では、CPU34cが、RAM34aに記録されている判別値が0よりも大きいかどうかを確認する。判別値とは、ステップSG9のファインマッチング判別処理の結果であり、0~3の値をとる。判別値の詳細については、後述する。判別値が0よりも大きい場合、処理はステップSG11に移行し、判別値が0の場合、3Dマッチング処理が終了する。ステップSG11では、CPU34cが、ファインマッチングを行うかどうかをユーザに確認させる確認メッセージ図示せずを表示するための処理を行う。確認メッセージを表示するためのウィンドウにはYesおよびNoボタンが配置されている。ユーザは、ステップSG8において計測画像ボックス611に表示された被検体と3Dオブジェクトとの一致の度合いマッチング状態を目視し、ファインマッチングを行うかどうかを決定する。マッチング状態に問題があれば、ユーザはYesボタンを押下すれば良いし、マッチング状態に問題なければ、ユーザはNoボタンを押下すれば良い。ステップSG12では、CPU34cが、確認メッセージを表示したウィンドウにおいて、Yesボタンがユーザにより押下されたかどうかを確認する。Yesボタンが押下された場合、処理はステップSG13に移行し、Yesボタンが押下されていない場合、3Dマッチング処理が終了する。ステップSG13では、CPU34cがファインマッチング処理を実行する。ファインマッチング処理の詳細については、後述する。ステップSG14では、CPU34cが、計測画像ボックス611において、3Dオブジェクトを再表示するための処理を行う。このとき、3Dオブジェクトは、ステップSG4~SG7において最終的に算出されたカメラポーズおよびシフト位置と、ステップSG13において最終的に算出されたスクリーンポーズとに基づいて表示される。ステップSG8で表示された被検体と3Dオブジェクトとのマッチング状態が良好でない場合でも、ステップSG14では被検体と3Dオブジェクトとがほぼ一致した画像を表示することができる。ステップSG14の処理が終了すると、3Dマッチング処理が終了する。次に、図53を用いて、ステップSG9のファインマッチング判別処理の流れを説明する。ステップSG901では、CPU34cが投影点3Dを算出し、算出した投影点3DをRAM34aに記録する。ステップSG902では、CPU34cが頂点角3Dを算出し、算出した頂点角3DをRAM34aに記録する。ステップSG903では、CPU34cが辺長3Dを算出し、算出した辺長3DをRAM34aに記録する。ステップSG904では、CPU34cが、頂点角計測と頂点角3Dとの差を算出し、算出した差をRAM34aに記録する。頂点角計測の値には、図30のステップSG401で算出された値が用いられる。頂点角計測と頂点角3Dはそれぞれ3組あるので、CPU34cは、3組の頂点角計測と頂点角3Dの差を算出し、算出した3組の差の平均値をRAM34aに記録する。ステップSG905では、CPU34cが、辺長計測と辺長3Dとの差を算出し、算出した差をRAM34aに記録する。辺長計測の値には、図38のステップSG601で算出された値が用いられる。辺長計測と辺長3Dはそれぞれ3組あるので、CPU34cは、3組の辺長計測と辺長3Dの差を算出し、算出した3組の差の平均値をRAM34aに記録する。ステップSG906では、CPU34cが、RAM34aに記録された頂点角の差および辺長の差が所定値より大きいかどうかを確認する。頂点角辺長の差が両方とも所定値より小さい場合、処理はステップSG907に移行し、CPU34cは、判別値を0として、RAM34aに上書き記録する。頂点角の差のみが所定値より大きい場合、処理はステップSG908に移行し、CPU34cは、判別値を1として、RAM34aに上書き記録する。辺長の差のみ、所定値より大きい場合、処理はステップSG909に移行し、CPU34cは、判別値を2として、RAM34aに上書き記録する。頂点角辺長の差が両方とも所定値より大きい場合、処理はステップSG910に移行し、CPU34cは、判別値を3として、RAM34aに上書き記録する。ステップSG907~SG910の処理が終了すると、ファインマッチング判別処理が終了する。次に、図54を用いて、ステップSG13のファインマッチング処理の流れを説明する。ステップSG1301では、CPU34cが、RAM34aに記録された判別値を確認する。判別値が1の場合、処理はステップSG1302に移行し、CPU34cがパンチルト方向Spマッチング処理を行う。判別値が2の場合、処理はステップSG1303に移行し、CPU34cがズーム方向Spマッチング処理を行う。判別値が3の場合、処理はステップSG1304に移行し、CPU34cがパンチルト方向Spマッチング処理を行い、さらにステップSG1305では、CPU34cがズーム方向Spマッチング処理を行う。パンチルト方向Spマッチング処理およびズーム方向Spマッチング処理の詳細については、後述する。なお、カメラポーズに関するパンチルト方向等の各方向と、スクリーンポーズに関するパンチルト方向等の各方向とを区別するため、スクリーンポーズに関する各方向については、各方向を表す文字列にSpを付与している。ここで、判別値とファインマッチング処理との関連性について、説明する。判別値が0の場合、頂点角および辺長の差が小さいので、2つの参照図形はほぼ一致していると考えられる。そのため、ファインマッチング処理は行われない。判別値が1の場合、辺長の差は小さいが、頂点角の差が大きいので、2つの参照図形のサイズはほぼ一致しているが、角度に関してより詳細なマッチング処理を行う必要があると判断できる。そのため、角度に関する影響がより大きなパンチルト方向Spのマッチング処理を行うこととする。判別値が2の場合、頂点角の差は小さいが、辺長の差が大きいので、2つの参照図形の角度はほぼ一致しているが、サイズに関してより詳細なマッチング処理を行う必要があると判断できる。そのため、サイズに関する影響がより大きなズーム方向Spのマッチング処理を行うこととする。判別値が2の場合、頂点角および辺長の差が大きいので、2つの参照図形の角度およびサイズの両方に関してより詳細なマッチングを行う必要があると判断できる。そのため、パンチルト方向Spおよびズーム方向Spのマッチング処理を両方行うこととする。ステップSG1302~SG1305の処理が終了すると、ファインマッチング処理が終了する。上記のファインマッチング処理を行うによって、被検体を撮像したカメラ内視鏡装置3の光学系の光学特性や撮像素子の構造特性に近づくように、3Dオブジェクトを撮像した仮想カメラの光学系の光学特性や撮像素子の構造特性を調整することができ、被検体と3Dオブジェクトをより高精度にマッチングさせることができる。次に、図55を用いて、ステップSG1302,SG1304のパンチルト方向Spマッチング処理の流れを説明する。ステップSG1302,SG1304のパンチルト方向Spマッチング処理の流れは、ステップSG4のパンチルト方向マッチング処理の流れとほぼ同じである。異なる点は、回転の対象がカメラポーズではなくスクリーンポーズである点と、回転角度の範囲および回転角度のステップである。図56は、スクリーンポーズをパン方向Spに回転させる様子を示している。視点5600と視線中心5601を結ぶ直線と直交する単位ベクトルのうち、初期位置のスクリーン平面の縦辺に平行な単位ベクトルである上方向ベクトル5602が予め求められている。この上方向ベクトル5602に平行でスクリーン平面中心5603を通る回転軸5604を中心にスクリーン平面5605を回転させると、スクリーン平面5603はパン方向Sp5606に回転する。つまり、スクリーンポーズをパン方向Spに回転させることは、撮像中心を中心にスクリーン平面を左右方向に回転させること、すなわち、スクリーン傾きを左右方向に回転させて調整することと同義である。図57は、スクリーンポーズをチルト方向Spに回転させる様子を示している。視点5700と視線中心5701を結ぶ直線と直交する単位ベクトルのうち、初期位置のスクリーン平面の横辺に平行な単位ベクトルである右方向ベクトル5702が予め求められている。この右方向ベクトル5702に平行でスクリーン平面中心5703を通る回転軸5704を中心にスクリーン平面5705を回転させると、スクリーン平面5703はチルト方向Sp5706に回転する。つまり、スクリーンポーズをチルト方向Spに回転させることは、撮像中心を中心にスクリーン平面を上下方向に回転させること、すなわち、スクリーン傾きを上下方向に回転させて調整することと同義である。ステップSG1311では、CPU34cが、スクリーンポーズをパンチルト方向Spにそれぞれ-3.1deg回転させる。ステップSG1312では、CPU34cが、スクリーンポーズをパン方向Spに0.1deg回転させる。そして、ステップSG1312~SG1316では、カメラポーズのパン方向Spの回転角度が3degとなるまでCPU34cが繰り返し処理を行う。ステップSG1313では、CPU34cが、スクリーンポーズをチルト方向Spに0.1deg回転させる。そして、ステップSG1313~SG1316では、スクリーンポーズのチルト方向Spの回転角度が3degとなるまでCPU34cが繰り返し処理を行う。なお、ステップSG1312~SG1316の繰り返し処理において、スクリーンポーズを-3degから3degとなるまで回転させているが、スクリーンポーズを回転させる範囲は必ずしもこの範囲である必要はない。ステップSG1314では、CPU34cが、現在のパンチルト方向Spの回転角度をRAM34aに記録する。ここでは、CPU34cは、回転角度をRAM34aに上書き記録するのではなく、スクリーンポーズをパンチルト方向Spに回転するたびに、前述したデータリスト図33に現在のパンチルト方向Spの回転角度を1行ずつ追加記録していく。このデータリストには、パンチルト方向Spの回転角度と関連付けて、頂点角3D等の様々なデータを記録することができる。ステップSG1315では、CPU34cが投影点3Dを算出し、算出した投影点3DをRAM34aに記録する。ステップSG1316では、CPU34cが頂点角3Dを算出し、算出した頂点角3DをRAM34aに記録する。このとき、CPU34cは、頂点角3Dをパンチルト方向Spの回転角度と関連付けて、データリストに1行ずつ追加記録していく。ステップSG1312~SG1316の繰り返し処理が終了すると、処理はステップSG1317に移行する。ステップSG1317では、CPU34cがスクリーンポーズをパンチルト方向にそれぞれ-3.0deg回転させる。ステップSG1312~SG1316の繰り返し処理が終了した時点で、パンチルト方向Spの回転角度はそれぞれ3.0degであるので、ここでは、-3.0deg回転させることによって、スクリーンポーズを元の状態に戻すことになる。ステップSG1318では、CPU34cが、3組の頂点角計測と頂点角3Dとの差を算出する。さらに、CPU34cは、3組の頂点角の差をパンチルト方向Spの回転角度と関連付けて、データリストに追加記録する。ステップSG1319では、CPU34cが3組の頂点角の差の平均値を算出する。さらに、CPU34cは、平均値をパンチルト方向Spの回転角度と関連付けて、データリストに追加記録する。ステップSG1320では、CPU34cが平均値の最小値をデータリストから検索する。ステップSG1321では、CPU34cが、平均値が最小となる場合のパンチルト方向Spの回転角度をデータリストから読み込む。ステップSG1322では、CPU34cが、スクリーンポーズをパンチルト方向Spに、ステップSG1321で読み込まれた回転角度だけ回転させる。ステップSG1323では、CPU34cが、このときのスクリーンポーズを、カレントスクリーンポーズとして、RAM34aに上書き記録する。ここでは、カレントスクリーンポーズに基づく3Dオブジェクトの再表示は行わない。ステップSG1323の処理が終了すると、パンチルト方向Spマッチング処理が終了する。次に、図58を用いて、ステップSG1303,SG1305のズーム方向Spマッチング処理の流れを説明する。ステップSG1303,SG1305のズーム方向Spマッチング処理の流れは、ステップSG6のズーム方向マッチング処理の流れとほぼ同じである。異なる点は、移動の対象がカメラポーズではなくスクリーンポーズである点である。図59は、スクリーンポーズをズーム方向Spに移動させる様子を示している。視点5900から視線中心5901に向かう視線方向5902に平行にスクリーン平面5903を移動させると、スクリーン平面5903はズーム方向Sp5904に移動する。つまり、スクリーンポーズをズーム方向Spに移動させることは、スクリーン平面を光軸と平行に前後に移動させること、すなわち、スクリーン距離を調整することと同義である。ステップSG1331では、CPU34cが辺長計測を算出し、算出した辺長計測をRAM34aに記録する。ステップSG1332では、CPU34cが投影点3Dを算出し、算出した投影点3DをRAM34aに記録する。ステップSG1333では、CPU34cが辺長13Dを算出し、算出した辺長13DをRAM34aに記録する。ステップSG1334では、CPU34cが、このときのスクリーンポーズをスクリーンポーズ1としてRAM34aに上書き記録する。ステップSG1335では、CPU34cが、スクリーンポーズをズーム方向Spに所定値だけ移動させる。ステップSG1336では、CPU34cが投影点3Dを算出し、算出した投影点3DをRAM34aに記録する。ステップSG1337では、CPU34cが辺長23Dを算出し、算出した辺長23DをRAM34aに記録する。ステップSG1338では、CPU34cが、このときのスクリーンポーズをスクリーンポーズ2としてRAM34aに上書き記録する。ステップSG1339では、CPU34cがズーム量を算出し、算出したズーム量をRAM34aに記録する。ズーム量は、辺長3Dと辺長計測とが一致するようなスクリーンポーズのズーム方向Spの移動量であり、辺長1,23Dと、スクリーンポーズ1,2との関係から算出される。辺は3つであるので、ズーム量も3つ算出される。図40に示したように、辺長3Dとカメラポーズのズーム方向位置は線形的な比例関係にある。同様に、辺長3Dとスクリーンポーズのズーム方向Spの位置は線形的な比例関係にある。したがって、辺長3Dと辺長計測とを一致させる場合にスクリーンポーズをズーム方向Spに移動させる際の移動量を算出することができる。ステップSG1340では、CPU34cが3つのズーム量の平均値を算出し、算出した平均値をRAM34aに記録する。ステップSG1341では、CPU34cが、スクリーンポーズをズーム方向Spに、ステップSG1340で算出した平均値だけ移動させる。ステップSG1342では、CPU34cが、このときのスクリーンポーズをカレントスクリーンポーズとしてRAM34aに上書き記録する。ここでは、カレントスクリーンポーズに基づく3Dオブジェクトの再表示は行わない。ステップSG1342の処理が終了すると、ズーム方向Spマッチング処理が終了する。本実施形態では、CPU34cがファインマッチング処理を実行する際、スクリーンポーズをパンチルト方向Sp、ズーム方向Spにのみ調整していたが、さらに以下のような調整を行っても良い。図60は、3Dマッチング処理において、スクリーンポーズをシフト方向Spに調整した場合の視線方向とスクリーン平面との関係を示している。シフト方向Spとは、スクリーン平面6000と視点6001との距離が一定のままでスクリーン平面6000が視線方向6002と垂直に移動するときの移動方向のことである。図60のように、上方向ベクトル6003に平行な上下方向6004と、右方向ベクトル6005に平行な左右方向6006がシフト方向Spである。現実のカメラでは、図61のように、撮像素子30bの中心撮像中心が光軸6100を通らず、光軸6100と垂直方向にずれて設置された場合のズレ方向6101がシフト方向Spに相当する。図62は、3Dマッチング処理において、スクリーンポーズをロール方向Spに調整した場合の視線方向とスクリーン平面との関係を示している。ロール方向Spとは、スクリーン平面6200と視点6201との距離が一定のままでスクリーン平面6200が、視線方向6202を中心に回転するときの回転方向のことである。図62のように、視線方向6202を中心とする回転方向6203がロール方向Spである。現実のカメラでは、図63のように、撮像素子30bが光軸6300を中心に回転方向6301にずれて設置された場合のズレ方向がロール方向Spに相当する。図64は、3Dマッチング処理において、スクリーンポーズをサイズ方向Spに調整した場合の視線方向とスクリーン平面との関係を示している。サイズ方向Spとは、スクリーン平面6400の位置が固定されたままでスクリーン平面6400の縦横のサイズが変化するときの変化方向のことである。図64のように、スクリーン平面6400のサイズが変化する方向6401がサイズ方向Spである。現実のカメラでは、図65のように、撮像素子30bの撮像面の縦横のサイズが設計値と異なる場合に、スクリーンポーズをサイズ方向Spに調整する必要がある。また、図示していていないが、撮像素子30bを構成する画素の縦横のサイズが設計値と異なる場合にも、スクリーンポーズをサイズ方向Spに調整する必要がある。撮像素子30bの縦横のサイズが設計値と異なると、図66のように、撮影した画像に写った被検体DUTの縦横比が歪んでしまう可能性がある。以上のように、CPU34cがファインマッチング処理を実行する際、パンチルト方向Sp、ズーム方向Spに加え、これらの方向にスクリーンポーズを調整することにより、設計値に対する撮像素子のズレをより詳細に表現することができる。その結果、3Dマッチング処理の精度がさらに向上することが期待できる。しかし、用いるスクリーンポーズの調整値を増やしすぎると、3Dマッチング処理に多くの時間がかかってしまうので、ユーザが処理時間を許容できる限りにおいて、用いる調整値の数や、その調整値を変化させる範囲を変更すると良い。なお、本実施形態では、ユーザが計測画像および3Dオブジェクト上の参照点を指定し、その参照点に対応する参照図形に基づいて、CPU34cが3Dマッチング処理を実行していたが、以下のように、計測画像および3Dオブジェクトの画像情報に基づいて、3Dマッチング処理を実行しても良い。例えば、CPU34cは、3Dマッチング処理を実行する前にカメラポーズおよびスクリーンポーズを様々な状態に調整しながら、スクリーン平面に対する3Dオブジェクトの投影図2次元画像を複数作成し、その投影図をまとめてモデルデータとして、RAM34aに記録しておく。そして、CPU34cは、3Dマッチング処理を実行する際、計測画像と、RAM34aに記録されたモデルデータとの相関値を順次算出し、その相関値が最も高かった場合のカメラポーズおよびスクリーンポーズに基づいて、3Dオブジェクトを計測画像上に重畳表示させる。これにより、ユーザが参照点を指定しなくても、CPU34cは3Dマッチング処理を実行することが可能となる。本実施形態では、計測に係る一連の処理の手順および内容を規定したソフトウェアプログラムである3D計測ソフトに従ってCPU34cが上記の処理を行うことによって計測が行われる。図67は、CPU34cに必要な機能構成を示している。図67では、本実施形態の計測に関係する機能構成のみが示されており、他の機能構成については省略されている。CPU34cの機能構成には、撮像制御部340、指定部341、マッチング処理部342、表示制御部343、および計測部344が含まれる。撮像制御部340は、光源32および湾曲制御ユニット33の制御や撮像素子30bの制御を行う。指定部341は、リモコン23を介してユーザによって入力される指示に基づいて、計測画像上や3Dオブジェクトの画像上の指定された位置に対応する参照点計測、参照点3D、計測点を指定設定する。マッチング処理部342は、指定部341によって指定された参照点計測および参照点3Dに基づいて、参照図形計測および参照図形3Dを算出し、参照図形計測と参照図形3Dとの幾何学計算により、マッチングに必要なカメラポーズおよびスクリーンポーズの変更量を算出する。表示制御部343は、モニタ22に表示される画像の内容や表示状態等を制御する。特に、表示制御部343は、マッチング処理部342によって算出されたカメラポーズおよびスクリーンポーズの変更量に基づいて3Dオブジェクトの姿勢を調整することによって、計測画像と3Dオブジェクトを互いにマッチングさせた状態で表示させる。上記の説明では3Dオブジェクトのみの姿勢を調整しているが、これに限らず、計測画像のみの姿勢を調整したり、計測画像および3Dオブジェクトの姿勢を調整したりしてもよい。計測部344は、指定部341によって指定された計測点に基づいて、計測処理を行う。図46に示す機能構成の一部または全部を、計測に必要な機能を実現するためのアナログ回路やデジタル回路を配置して構成した特定のハードウェアに置き換えることも可能である。上述したように、本実施形態によれば、カメラの外部パラメータであるカメラポーズを調整することで、計測画像を撮像した現実のカメラの姿勢と、3Dオブジェクトを撮像した仮想的なカメラの姿勢とを近づけることができ、計測画像と3Dオブジェクトをマッチングさせることができる。さらに、カメラの内部パラメータであるスクリーンポーズを調整することで、計測画像を撮像したカメラの光学系または撮像素子の特性と、3Dオブジェクトを撮像した仮想的なカメラの光学系または撮像素子の特性とを近づけることができ、計測画像と3Dオブジェクトをより高精度にマッチングさせることができる。このため、計測精度を向上させることができる。また、参照図形計測と参照図形3Dとの幾何学計算を行い、幾何学計算の結果に基づいて、計測画像と3Dオブジェクトとの少なくとも一方の姿勢を調整することによって、マッチングに必要な処理時間を低減することができる。また、参照点計測と参照点3Dのそれぞれの点の指定された順番に基づいて参照点計測と参照点3Dとを対応付けることによって、簡易な方法で両者の対応付けが可能となり、マッチングに必要な処理時間を低減することができる。また、計測画像上の参照図形計測と、3Dオブジェクト上の参照点計測によって構成される3角形をスクリーン平面に投影した参照図形3Dとの幾何学計算によるマッチングを行うことによって、マッチングの精度を維持しつつ、マッチングに必要な処理時間を低減することができる。また、ユーザが参照点計測を指定する際に3Dオブジェクトの透過率が大きく設定されることによって、ユーザが計測画像を見やすくすることができ、かつ、ユーザが参照点計測を指定しやすくすることができる。また、3Dマッチング処理において、カメラの外部パラメータまたは内部パラメータの調整中は処理負荷の高い3Dオブジェクトの再表示を行わず、外部パラメータまたは内部パラメータの調整の終了時に3Dオブジェクトの再表示を行うことによって、3Dマッチング処理に必要な処理時間を低減することができる。以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。"