以下、図面を参照し、本発明の実施形態を説明する。
(第1の実施形態)
まず、本発明の第1の実施形態を説明する。図1は、本実施形態によるブレード検査システムの構成を示している。ジェットエンジン1内には、検査対象物である複数のタービンブレード10(もしくはコンプレッサーブレード)が所定の間隔で周期的に配置されている。また、ジェットエンジン1には、タービンブレード10を回転方向Aに所定の速度で回転させるターニングツール2が接続されている。本実施形態では、タービンブレード10の画像を取り込んでいる間は常にタービンブレード10を回転させた状態にしている。
本実施形態では、タービンブレード10の画像を取得するため、内視鏡装置3(本発明の画像処理装置に対応)が用いられる。ジェットエンジン1の内部には、内視鏡装置3の内視鏡挿入部20が挿入されており、この内視鏡挿入部20により、回転しているタービンブレード10の映像が取り込まれる。また、内視鏡装置3には、タービンブレード10を所望の角度で撮像した画像を記録するためのブレード記録ソフトが記憶されている。
図2は内視鏡装置3の構成を示している。内視鏡装置3は、内視鏡挿入部20、内視鏡装置本体21、モニタ22、およびリモコン(リモートコントローラ)23から構成されている。内視鏡挿入部20の先端には、撮像光学系30aおよび撮像素子30bが内蔵されている。また、内視鏡装置本体21には、画像信号処理装置(CCU)31、光源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、RS232C I/F34e、カード I/F34fから構成されている。RAM34aは、ソフトウェア動作に必要な画像情報等のデータを一時記憶するために使用される。ROM34bには、内視鏡装置3を制御するための一連のソフトウェアが記憶されており、後述するブレード記録ソフトもROM34b内に記憶される。CPU34cは、ROM34bに記憶されているソフトウェアの命令コードに従って、RAM34aに記憶されたデータを用いて各種制御のための演算等を実行する。
ネットワークI/F34dは、外部PCとLANケーブルによって接続するためのインターフェースであり、外部PCに対して、画像信号処理装置31から出力された映像情報を展開することができる。RS232C I/F34eは、リモコン23と接続するためのインターフェースであり、このリモコン23をユーザが操作することによって、内視鏡装置3の各種動作を制御することができる。カード I/F34fは、記録媒体である各種メモリカード50を自由に着脱できるようになっている。メモリカード50を装着することにより、CPU34cの制御によって、メモリカード50に記憶されている画像情報等のデータを取り込み、あるいは画像情報等のデータをメモリカード50に記録することができる。
本実施形態によるブレード検査システムの構成の変形例として、図3に示す構成を用いてもよい。本変形例では、内視鏡装置3にビデオ端子ケーブル4およびビデオキャプチャカード5が接続されており、これによって、内視鏡装置3が取り込んだ映像をPC6(本発明の画像処理装置に対応)にも取り込ませることが可能となっている。PC6は、図3ではノート型PCとして描かれているが、デスクトップ型のPC等でもよい。PC6には、タービンブレード10を所望の角度で撮像した画像を記録するためのブレード記録ソフトが記憶されている。
さらに、図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、USB I/F35eから構成されている。制御用コンピュータ35はモニタ25に接続されており、映像情報およびソフトウェアの画面等がモニタ25に表示される。
RAM35aは、ソフトウェア動作に必要な画像情報等のデータを一時記憶するために使用される。HDD35bには、内視鏡装置を制御するために一連のソフトウェアが記憶されており、ブレード記録ソフトもHDD35b内に記憶される。また、本実施形態では、タービンブレード10の画像を保存する保存用フォルダはHDD35b内に設定される。CPU35cは、HDD35bに記憶されているソフトウェアの命令コードに従って、RAM35aに記憶されたデータを用いて各種制御のための演算等を実行する。
ネットワークI/F35dは、内視鏡装置3とPC6をLANケーブル7によって接続するためのインターフェースであり、内視鏡装置3からLAN出力された映像情報をPC6に入力することができる。USB I/F35eは、内視鏡装置3とPC6をビデオキャプチャカード5によって接続するためのインターフェースであり、内視鏡装置3からアナログビデオ出力された映像情報をPC6に入力することができる。
図3および図4に示すブレード検査システムでは、図1に示すブレード検査システムと同様の効果を得ることができる。特に、内視鏡装置の性能がPCよりも劣っており、内視鏡装置の動作速度等が十分でない場合等に、図3および図4に示すブレード検査システムは有効である。
次に、ブレード記録ソフトの画面を説明する。図6は、ブレード記録ソフトのメインウィンドウを示している。図6に示すメインウィンドウ600は、ユーザがブレード記録ソフトを起動した際に表示される。
メインウィンドウ600の表示は、CPU34cによる制御に従って行われる。CPU34cは、メインウィンドウ600を表示するためのグラフィック画像信号(表示信号)を生成し、モニタ22へ出力する。また、内視鏡装置3に取り込まれた映像(以下、内視鏡映像と記載)をメインウィンドウ600上に重畳表示する場合には、CPU34cは、画像信号処理装置31から取り込んだ画像データをグラフィック画像信号に重畳する処理を行い、処理後の信号(表示信号)をモニタ22へ出力する。
また、メインウィンドウ600上のGUIの表示状態を更新する場合、CPU34cは、更新後のメインウィンドウ600に対応したグラフィック画像信号を生成し、上記と同様の処理を行う。メインウィンドウ600以外のウィンドウの表示に係る処理も上記と同様である。以下、メインウィンドウ600等を表示(更新も含む)するためにCPU34cがグラフィック画像信号を生成する処理のことを、メインウィンドウ600等を表示するための処理と記載する。
ユーザは、GUI(グラフィカルユーザインタフェース)機能を利用して、リモコン23を介してメインウィンドウ600を操作することにより、内視鏡映像の閲覧および画像ファイルの保存を行うことができる。以下、各種GUIの機能を説明する。
メインウィンドウ600の上部には、[プレビュー画像]ボックス601、[テンプレート画像]ボックス602、[レコード画像]ボックス603が配置されている。
[プレビュー画像]ボックス601は、内視鏡映像(第1の画像)を表示するためのボックスである。ターニングツール2によってタービンブレード10が回転している状態のとき、後述する[プレビュー開始]ボタン610が押下されると、内視鏡映像(タービンブレード10が回転している映像)がリアルタイムに表示される。このように、[プレビュー画像]ボックス601により、ユーザは内視鏡映像を閲覧することができる。以下、[プレビュー画像]ボックス601に内視鏡映像が表示されることを、プレビューと記載する。
[テンプレート画像]ボックス602は、テンプレート画像(第2の画像)を表示するためのボックスである。後述する[テンプレート登録]ボタン612が押下されると、内視鏡映像を構成する各フレームの画像のうち、そのタイミングで取りこまれた1フレーム分の画像が、[テンプレート画像]ボックス602にテンプレート画像として表示される。テンプレート画像とは、後述するレコード画像を表示する際に基準となる画像のことである。
[レコード画像]ボックス603は、後述するレコード画像(第3の画像)を表示するためのボックスである。後述する[レコード開始]ボタン613が押下された後、内視鏡映像を構成する各フレームの画像のうち、テンプレート画像との相関の高い画像(以下、レコード画像と記載)が順次表示される。[レコード画像]ボックス603に表示されたレコード画像は、画像ファイルとしてメモリカード50内の保存フォルダに順次保存される。
ここで保存される画像ファイルを、以下、レコード画像ファイルと記載する。また、レコード画像ファイルをメモリカード50内の保存フォルダに順次保存することを、以下、レコードと記載する。保存フォルダの詳細は、後述する。
[プレビュー開始]ボタン610は、[プレビュー画像]ボックス601への内視鏡映像の表示を開始するためのボタンである。[プレビュー停止]ボタン611は、[プレビュー画像]ボックス601への内視鏡映像の表示を停止するためのボタンである。
[テンプレート登録]ボタン612は、所望の画像をテンプレート画像として登録するためのボタンである。[テンプレート登録]ボタン612が押下されると、内視鏡映像を構成する各フレームの画像のうち、そのタイミングで取りこまれた1フレーム分の画像が、[テンプレート画像]ボックス602にテンプレート画像として表示される。さらに、その1フレーム分の画像が、テンプレート画像としてRAM34aに記録される。
[レコード開始]ボタン613は、レコードを開始するためのボタンである。[レコード開始]ボタン613が押下されると、後述する[レコード数]ボックス620の値が0にリセットされる。そして、内視鏡映像とテンプレート画像との比較が毎フレームで行われ、内視鏡映像を構成する各フレームの画像のうち、テンプレート画像との相関の高い1フレーム分のレコード画像が[レコード画像]ボックス603に順次表示される。さらに、表示されたレコード画像は、画像ファイルとしてメモリカード50内の保存フォルダに順次保存される。
より具体的には、内視鏡映像内のタービンブレード10の位置や角度が、テンプレート画像内のタービンブレード10の位置や角度と同じになったとき(簡略化して言い換えると、内視鏡映像内のタービンブレード10と、テンプレート画像内のタービンブレード10との見え方が同じになったとき)の1フレーム分の画像が表示および保存されることになる。
[レコード停止]ボタン614は、レコードを停止するためのボタンである。[画像閲覧]ボタン615は、メモリカード50内の保存フォルダに保存された画像ファイルを閲覧するためのボタンである。[画像閲覧]ボタン615が押下されると、後述する[画像閲覧]ウィンドウが表示される。[画像閲覧]ウィンドウが表示されている間は、メインウィンドウ600は、ユーザによる操作が無効の状態となる。
[レコード数]ボックス620には、レコード画像ファイルの現在の保存枚数(以下、レコード数と記載)を表示するためのボックスである。但し、テンプレート画像の画像ファイルはカウントされない。また、前述したように、[レコード開始]ボタン613が押下されると、[レコード数]ボックス620の値が0にリセットされる。
[最大レコード]数ボックス621には、レコード画像ファイルの最大枚数(以下、最大レコード数と記載)を表示するためのボックスである。レコード中に、レコード数が最大レコード数と同じ値になった場合、レコードが自動的に終了する。[最大レコード]数ボックス621には、任意の最大レコード数を入力することが可能である。例えば、[最大レコード]数ボックス621にタービンブレード10の1周分のブレード枚数を入力しておくことにより、タービンブレード10の画像ファイルを必要な枚数だけ保存することができる。
[終了]ボタン630は、ブレード記録ソフトを終了するためのボタンである。[終了]ボタン630が押下されると、メインウィンドウ600が非表示となり、ブレード記録ソフトの動作が終了する。
図7は、ブレード記録ソフトの[画像閲覧]ウィンドウを示している。図7に示す[画像閲覧]ウィンドウ700は、前述したように、メインウィンドウ600の[画像閲覧]ボタン615が押下された際に、表示される。
ユーザは、GUI機能を利用して、リモコン23を介して[画像閲覧]ウィンドウ700を操作することにより、レコード画像ファイルの閲覧を行うことができる。以下、各種GUIの機能を説明する。
[閲覧画像]ボックス701は、レコード画像ファイルを表示するためのボックスである。後述する[<< 前]ボタン710または[次 >>]ボタン711が押下される、もしくは[日時選択]ボックス724の選択が変更されると、[閲覧画像]ボックス701に表示されるレコード画像ファイルが切り替わる。[閲覧画像]ボックス701により、ユーザはレコード画像ファイルを閲覧することができる。以下、[閲覧画像]ボックス701に表示されているレコード画像を閲覧画像と記載し、その画像ファイルを閲覧画像ファイルと記載する。
[<< 前]ボタン710は、閲覧画像を切り替えるためのボタンである。[<< 前]ボタン710が押下されると、後述する画像ファイルリストの中で、[閲覧画像]ボックス701に表示されている画像ファイルの画像ファイルNo(画像ファイルナンバー)より1つ小さな画像ファイルNoをもつ画像ファイルが表示される。それに伴い、後述する[画像ファイル名]ボックス720に表示されている画像ファイル名も切り替わる。
[次 >>]ボタン711も、閲覧画像を切り替えるためのボタンである。[次 >>]ボタン711が押下されると、後述する画像ファイルリストの中で、[閲覧画像]ボックス701に表示されている画像ファイルの画像ファイルNoより1つ大きな画像ファイルNoをもつ画像ファイルが表示される。それに伴い、後述する[画像ファイル名]ボックス720に表示されている画像ファイル名も切り替わる。
[画像ファイル名]ボックス720は、閲覧画像ファイルのファイル名を表示するためのボックスである。[<< 前]ボタン710または[次 >>]ボタン711が押下される、もしくは[日時選択]ボックス724の選択が変更されると、[画像ファイル名]ボックス720の画像ファイル名の表示が切り替わる。
[画像ファイル数]ボックス721は、後述する画像ファイルリストの中の画像ファイル数を表示するためのボックスである。[日時選択]ボックス724の選択が変更されると、[画像ファイル数]ボックス721の画像ファイル数の表示が切り替わる。
[保存日時]ボックス722は、閲覧画像ファイルの保存日時を表示するためのボックスである。[<< 前]ボタン710または[次 >>]ボタン711が押下される、もしくは[日時選択]ボックス724の選択が変更されると、[保存日時]ボックス722の画像ファイルの保存日時の表示が切り替わる。
[日時選択]ボックス724は、閲覧画像を切り替えるためのボックスである。後述する保存フォルダリストのレコード開始日時が[日時選択]ボックス724にリスト形式で表示される。[日時選択]ボックス724のレコード開始日時の選択が変更されると、選択されたレコード開始日時をもつ保存フォルダに保存されたレコード画像ファイルが[閲覧画像]ボックス701に表示される。それに伴い、[画像ファイル名]ボックス720の画像ファイル名、および[画像ファイル数]ボックス721の画像ファイル数の表示も切り替わる。
[閉じる]ボタン730は、画像の閲覧を終了するためのボタンである。[閉じる]ボタン730が押下されると、[画像閲覧]ウィンドウ701が非表示となり、メインウィンドウ600が操作される状態に戻る。
次に、図8〜図10を用いて、メモリカード50内のディレクトリ構造を説明する。図8に示すように、メモリカード50の直下のディレクトリは複数の保存フォルダ800から構成されている。保存フォルダ800は、レコード画像ファイルが保存されるフォルダである。レコード開始日時が保存フォルダ800のフォルダ名となる。例えば、レコード開始日時が「2007/12/26 21:32:21」の場合、フォルダ名は「20071226_213221」となる。
各保存フォルダの直下のディレクトリは複数のレコード画像ファイル810から構成されている。レコード画像ファイル名は、レコード画像ファイルが保存された順にそれぞれ「001.jpg」、「002.jpg」、「003.jpg」・・・となる。但し、テンプレート画像ファイルのファイル名は「Temp.jpg」となる。
また、後述する画像閲覧処理の際には、保存フォルダリストおよび画像ファイルリストが作成される。
保存フォルダリストとは、保存フォルダの一覧表である。図9に示すように、保存フォルダリストは、保存フォルダNo(保存フォルダナンバー)、レコード開始日時、およびフォルダ名から構成されている。保存フォルダNoには、保存フォルダが作成された順に、1、2、3・・・の番号が割り当てられる。
画像ファイルリストとは、各保存フォルダに保存されたレコード画像ファイルの一覧表である。図10に示すように、画像ファイルリストは、画像ファイルNo、ファイル保存日時、およびファイル名から構成されている。画像ファイルNoには、ファイルが保存された順に、1、2、3・・・の番号が割り当てられる。但し、テンプレート画像のみ、最後の画像ファイルNoが割り当てられる。
次に、図11を用いて、ブレード記録ソフトの動作の流れを説明する。ステップSAでは、ユーザがブレード記録ソフトを起動する。このとき、リモコン23に入力されたブレード記録ソフトの起動指示に基づいて、CPU34cは、ROM34bに格納されているブレード記録ソフトをRAM34aに読み込み、ブレード記録ソフトに従った動作を開始する。ステップSBでは、CPU34cが、メインウィンドウを表示するための処理を行う。
ステップSCでは、CPU34cが初期化処理を行う。初期化処理とは、メインウィンドウ内の各種GUIの初期状態を設定したり、RAM34aに記録された各種データの初期値を設定したりする処理のことである。初期化処理の詳細は、後述する。ステップSDでは、CPU34cがプレビュー処理を行う。プレビュー処理とは、プレビューの開始および停止を行う処理のことである。プレビュー処理の詳細は、後述する。
ステップSEでは、CPU34cがテンプレート登録処理を行う。テンプレート登録処理とは、[テンプレート画像]ボックスにテンプレート画像を表示し、さらにテンプレート画像をRAM34aに記録する処理のことである。テンプレート登録処理の詳細は、後述する。ステップSFでは、CPU34cがレコード処理を行う。レコード処理とは、レコードの開始および停止を行う処理のことである。レコード処理の詳細は、後述する。
ステップSGでは、CPU34cが画像閲覧処理を行う。画像閲覧処理とは、ユーザがレコード画像ファイルを閲覧するために行う処理のことである。画像閲覧処理の詳細は、後述する。ステップSHでは、ユーザによる[終了]ボタンの押下の有無に応じて処理が分岐する。ユーザが[終了]ボタンを押下した場合、処理はステップSIに移行する。また、ユーザが[終了]ボタンを押下しなかった場合、処理はステップSDに移行する。ステップSIでは、CPU34cがメインウィンドウを非表示とし、ブレード記録ソフトの動作を終了する。
次に、図12を用いて、初期化処理(ステップSC)の流れを説明する。ステップSC1では、CPU34cが、[プレビュー停止]ボタン、[テンプレート登録]ボタン、[レコード開始]ボタン、[レコード停止]ボタンの全てを、ユーザによる操作が無効の状態とする。以下、ボタン等のGUIが、ユーザによる操作無効の状態(例えば、グレー状態)であることを、単に無効と記載し、ユーザによる操作有効の状態であることを、単に有効と記載する。
ステップSC2では、CPU34cが、レコード数Rを0、最大レコード数RmをRiとして、RAM34aに記録する。Riは最大レコード数Rmの初期値であり、Riとして所定の値がRAM34aに記録されている。ステップSC3では、CPU34cが、[レコード数]ボックスにレコード数R(=0)を表示するための処理を行う。ステップSC4では、CPU34cが、[最大レコード数]ボックスに最大レコード数Rmを表示するための処理を行う。
ステップSC5では、CPU34cが、プレビューフラグ、レコードフラグ、保存フラグを、全てOFFとして、RAM34aに記録する。プレビューフラグとは、現在の状態がプレビュー状態かどうかを示すフラグである。レコードフラグとは、現在の状態がレコード中かどうかを示すフラグである。保存フラグとは、レコード中に、後述するバッファ画像をレコード画像ファイルとして保存するかどうかを示すフラグである。以下、ブレード記録ソフトの動作中に使用される全てのフラグはONもしくはOFFの値を取る。ステップSC5の処理が終了すると、処理はステップSDに移行する。
次に、図13を用いて、ステップSDのプレビュー処理の流れを説明する。ステップSD1では、CPU34cが、 [プレビュー開始]ボタンがユーザにより押下されたかどうかを確認する。[プレビュー開始]ボタンが押下された場合、処理はステップSD2に移行し、[プレビュー開始]ボタンが押下されていない場合、処理はステップSD4に移行する。
ステップSD2では、CPU34cが、[プレビュー開始]ボタンを無効、[プレビュー停止]ボタンを有効、[テンプレート登録]ボタンを有効とする。ステップSD3では、CPU34cが、プレビューフラグをONとして、RAM34aに記録する。
ステップSD4では、CPU34cが、RAM34aに記録されたプレビューフラグがONかどうかを確認する。プレビューフラグがONの場合、処理はステップSD5に移行し、OFFの場合、処理はステップSD8に移行する。
ステップSD5では、CPU34cが、画像信号処理装置31から1フレーム分の画像(画像信号)をフレーム画像として取り込む。なお、ステップSD5よりも前の時点で、撮像素子30bは1フレーム分の撮像信号を生成し、画像信号処理装置31はその撮像信号を映像信号に変換し、1フレーム分の画像を生成している。
ステップSD6では、CPU34cが、ステップSD5で取り込んだフレーム画像をRAM34aに記録する。RAM34aに記録されたフレーム画像は、CPU34cがフレーム画像を取り込む度に上書きされる。ステップSD7では、CPU34cが、ステップSD5で取り込んだフレーム画像を[プレビュー画像]ボックスに表示するための処理を行う。
ステップSD8では、CPU34cが、[プレビュー停止]ボタンがユーザにより押下されたかどうかを確認する。[プレビュー停止]ボタンが押下された場合、処理はステップSD9に移行し、[プレビュー停止]ボタンが押下されていない場合、処理はステップSEに移行する。
ステップSD9では、CPU34cが、[プレビュー開始]ボタンを有効、[プレビュー停止]ボタンを無効、[テンプレート登録]ボタンを無効とする。ステップSD10では、CPU34cが、プレビューフラグをOFFとして、RAM34aに記録する。ステップSD10の処理が終了すると、処理はステップSEに移行する。
次に、図14を用いて、ステップSEのテンプレート登録処理の流れを説明する。ステップSE1では、CPU34cが、 [テンプレート登録]ボタンがユーザにより押下されたかどうかを確認する。[テンプレート登録]ボタンが押下された場合、処理はステップSE2に移行し、[テンプレート登録]ボタンが押下されていない場合、処理はステップSFに移行する。
ステップSE2では、CPU34cが、RAM34aに記録されたフレーム画像を、テンプレート画像として、RAM34aに記録する。RAM34aに記録されたテンプレート画像は、[テンプレート登録]ボタンが押下される度に上書きされる。ステップSE3では、CPU34cが、RAM34aに記録されたフレーム画像を[テンプレート画像]ボックスに表示するための処理を行う。具体的には、CPU34cは、RAM34aに記録されたフレーム画像をグラフィック画像信号に重畳する処理を行い、処理後の信号(表示信号)をモニタ22へ出力する。
上記より、ステップSE2〜SE3の処理は、[テンプレート登録]ボタンが押下されたタイミングで取りこまれたフレーム画像を、テンプレート画像として登録する処理であることがわかる。ステップSE4では、CPU34cが[レコード開始]ボタンを有効とする。ステップSE4の処理が終了すると、処理はステップSFに移行する。
次に、図15を用いて、ステップSFのレコード処理の流れを説明する。ステップSF1では、CPU34cが、[レコード開始]ボタンがユーザにより押下されたかどうかを確認する。[レコード開始]ボタンが押下された場合、処理はステップSF2に移行し、[レコード開始]ボタンが押下されていない場合、処理はステップSF9に移行する。
ステップSF2では、CPU34cが、[プレビュー停止]ボタンを無効、[テンプレート登録]ボタンを無効、[レコード開始]ボタンを無効、[レコード停止]ボタンを有効、[画像閲覧]ボタンを無効、[最大レコード数]ボックスを無効とする。ステップSF3では、CPU34cが、レコード数R、相関値C、最大相関値Cm、相関値バッファCb、相関値ステータスScを全て0として(R=0、C=0、Cm=0、Cb=0、Sc=0)、RAM34aに記録する。相関値C、最大相関値Cm、相関値バッファCb、相関値ステータスCdの詳細は、後述する。
ステップSF4では、CPU34cが、[レコード数]ボックスにレコード数R(=0)を表示するための処理を行う。ステップSF5では、CPU34cが、[最大レコード数]ボックスに入力されている最大レコード数Rmを取得し、RAM34aに記録する。ステップSF6では、CPU34cがメモリカード50内に保存フォルダを作成する。このとき、[レコード開始]ボタンがユーザにより押下された日時が、そのまま保存フォルダのフォルダ名となる。
ステップSF7では、CPU34cが、図14のステップSE2でRAM34aに記録されたテンプレート画像を画像ファイルとして(以下、テンプレート画像ファイルと記載)、メモリカード50内の保存フォルダに保存する。このとき、テンプレート画像ファイル名は、「Temp.jpg」となる。ステップSF8では、CPU34cが、レコードフラグをONとして、RAM34aに記録する。
ステップSF9では、CPU34cが、RAM34aに記録されたレコードフラグがONかどうかを確認する。レコードフラグがONの場合、処理はステップSF10に移行し、レコードフラグがOFFの場合、処理はステップSF18に移行する。
ステップSF10では、CPU34cが、テンプレート画像とフレーム画像との相関値を算出し、相関値に基づいて、レコード画像を保存するタイミングを決定する相関処理を実行する。相関処理の詳細は、後述する。ステップSF11では、CPU34cが、RAM34aに記録された保存フラグがONかどうかを確認する。保存フラグがONの場合、処理はステップSF12に移行し、保存フラグがOFFの場合、処理はステップSF18に移行する。
ステップSF12では、CPU34cが、ステップSF10の相関処理中にRAM34aに記録されたレコード画像を[レコード画像]ボックスに表示するための処理を行う。ステップSF13では、CPU34cが、レコード数Rを1つインクリメント(R+1をRに代入)して、RAM34aに記録する。ステップSF14では、CPU34cが、[レコード画像]ボックスにレコード数Rを表示するための処理を行う。
ステップSF15では、CPU34cが、ステップSF10の相関処理中にRAM34aに記録されたレコード画像を、画像ファイルとして、保存フォルダに保存する。ステップSF16では、CPU34cが、保存フラグをOFFとして、RAM34aに記録する。ステップSF17では、CPU34cが、レコード数Rが最大レコード数Rm以上(R≧Rm)であるかどうかを確認する。レコード数Rが最大レコード数Rm以上の場合、処理はステップSF19に移行し、最大レコード数Rm未満の場合、処理はステップSF18に移行する。
ステップSF18では、CPU34cが、[レコード停止]ボタンがユーザにより押下されたかどうかを確認する。[レコード停止]ボタンが押下された場合、処理はステップSF19に移行し、[レコード停止]ボタンが押下されていない場合、処理はステップSGに移行する。
ステップSF19では、CPU34cが、[プレビュー停止]ボタンを有効、[テンプレート登録]ボタンを有効、[レコード開始]ボタンを有効、[レコード停止]ボタンを無効、[画像閲覧]ボタンを有効、[最大レコード数]ボックスを有効とする。ステップSF20では、CPU34cが、レコードフラグをOFFとして、RAM34aに記録する。ステップSF20の処理が終了すると、処理はステップSGに移行する。
次に、図16を用いて、ステップSF10の相関処理の流れを説明する。図16に示す相関処理と実際の相関値の変化との対応関係については、図17を用いて後述する。ステップSF100では、CPU34cが、RAM34aに記録されているテンプレート画像およびフレーム画像の各画素の輝度値(明度値)を取得する。ここで、例えばRGBの各成分の輝度で表された画素の輝度値は、以下の(1)式を用いて算出される。
Y=0.299×R+0.587 ×G+0.114×B ・・・(1)
ステップSF101では、CPU34cが、RAM34aに記録されているテンプレート画像とフレーム画像との相関値Cを算出する。以下、相関値Cの詳細を説明する。ある2枚の画像の画素位置(x,y)の輝度値をそれぞれf1(x,y)、f2(x,y)とすると、2枚の画像の平均輝度値はそれぞれ(2)式、(3)式で表される。但し、X,Yはそれぞれx,y方向の画素数であり、Sizeは全画素数(Size=X×Y)である。
さらに、2枚の画像の標準偏差はそれぞれ(4)式、(5)式で表される。
さらに、2枚の画像の共分散は(6)式で表される。
そして、2枚の画像の相関値Cは(7)式で表される。この相関値Cは、2枚の画像が類似しているかどうかを表す尺度となる。一般的に、類似していれば相関値は1に近い値となり、類似していなければ0に近づく傾向にある。
画像サイズを間引いた上で相関値を求める場合は、上記の各式において、x,yに関する総和を計算する際にx,yの増加ステップ数を変更し、さらに全画素数Sizeを変更すればよい。例えば、画像サイズを1/4に間引いた上で相関値を求める場合、x,yの増加ステップ数を4とし、全画素数SizeをSize=(X×Y)/(4×4)とすればよい。相関処理の速度を向上させたい場合は、間引き処理を用いると、計算量が少なくて済むので有効である。
ステップSF102では、CPU34cが、相関値ステータスScが0(Sc=0)であるかどうかを確認する。相関値ステータスScは、相関値Cのステータスのことである。相関値ステータスScは0〜2の値をとる。相関値ステータスScが0の場合は初期状態であり、1の場合はCPU34cがレコード画像として保存すべきフレーム画像をみつけるまでの状態であり、2の場合はCPU34cがレコード画像として保存すべきフレーム画像をみつけた状態である。相関値ステータスScが0の場合、処理はステップSF103に移行し、相関値ステータスScが0でない場合、処理はステップSF105に移行する。
ステップSF103では、CPU34cが、相関値Cが相関値閾値Ctより大きく(C>Ct)、かつ相関値バッファCbが相関値閾値Ct以下(Cb≦Ct)であるかどうかを確認する。相関値閾値Ctとは、相関値Cの閾値であり、相関値閾値Ctとして所定の値がRAM34aに記録されている。相関値Cが相関値閾値Ctと比べてどのような値をとるかによって、相関値ステータスScが変化する。相関値閾値Ctにどのような値が設定されるかについては、後述する。相関値バッファCbは、CPU34cが1つ前に算出した相関値Cを保持しておくためにRAM34aに設けられたバッファ内の値である。ステップSF103でC>CtかつCb≦Ctの場合、処理はステップSF104に移行し、C≦CtまたはCb>Ctの場合、処理はステップSF105に移行する。
ステップSF104では、CPU34cが、相関値ステータスScを1(Sc=1)として、RAM34aに記録する。ステップSF105では、CPU34cが、相関値ステータスScが1(Sc=1)であるかどうかを確認する。相関値ステータスScが1の場合、処理はステップSF106に移行し、相関値ステータスScが1でない場合、処理はステップSF110に移行する。
ステップSF106では、CPU34cが、相関値Cが最大相関値Cmより大きいかどうか(C>Cm)を確認する。最大相関値Cmとは、相関値Cの最大値を保持しておくためのバッファの値である。C>Cmの場合、処理はステップSF107に移行し、C≦Cmの場合、処理はステップSF108に移行する。
ステップSF107では、CPU34cが、最大相関値Cmを相関値C(Cm=C)として、RAM34aに記録する。ステップSF109では、CPU34cが、フレーム画像をバッファ画像としてRAM34aに記録する。RAM34aに記録されたバッファ画像は、ステップSF109の処理が実行される度に上書きされる。バッファ画像とは、CPU34cが、フレーム画像がレコード画像(テンプレート画像と相関の高い画像)であると確認できるまでフレーム画像を一時的に保持しておくためにRAM34aに設けられたバッファ内の画像のことである。
ステップSF108では、CPU34cが、相関値ステータスScを2(Sc=2)として、RAM34aに記録する。ステップSF110では、CPU34cが、相関値ステータスScが2(Sc=2)であるかどうかを確認する。相関値ステータスScが2の場合、処理はステップSF111に移行し、相関値ステータスScが2でない場合、処理はステップSF116に移行する。
ステップSF111では、CPU34cが、相関値Cが相関値閾値Ctより小さく(C<Ct)かつ相関値バッファCbが相関値閾値Ct以上(Cb≧Ct)であるかどうかを確認する。C<CtかつCb≧Ctの場合、処理はステップSF112に移行し、C≧CtまたはCb<Ctの場合、処理はステップSF116に移行する。
ステップSF112では、CPU34cが、相関値ステータスScを0(Sc=0)として、RAM34aに記録する。ステップSF113では、CPU34cが、最大相関値Cmを0(Cm=0)として、RAM34aに記録する。ステップSF114では、CPU34cが、バッファ画像をレコード画像としてRAM34aに記録する。RAM34aに記録されたレコード画像は、ステップSF114の処理が実行される度に上書きされる。ステップSF115では、CPU34cが、保存フラグをONとして、RAM34aに記録する。
ステップSF116では、CPU34cが、相関値バッファCbを相関値C(Cb=C)として、RAM34aに記録する。ステップSF116の処理が終了すると、処理はステップSF11に移行する。
図17は、相関値Cの経時変化を示すグラフである。以下、図17を参照しながら、レコード処理および相関処理の詳細を説明する。
図17に示すグラフの横軸は時間であり、縦軸はステップSF101でCPU34cが算出する相関値Cである。相関値Cには、周期的に極大値と極小値が現われている。相関値Cが極大値を示す領域は、テンプレート画像とブレード画像との相関値を示している。また、相関値Cが極小値を示す領域は、テンプレート画像とブレードの背景(ジェットエンジンの内壁等)の画像との相関値を示している。相関値閾値Ctは、両者のほぼ中間の値になるように設定され、RAM34aに記録されている。
まず、ユーザが[レコード開始]ボタンを押下したタイミング(t=0)から、相関値Cが相関値閾値Ctより大きくなるタイミング(t=t1)までの間、相関値ステータスScは0(Sc=0)である。続いて、t=t1から、相関値Cが極大値を示すタイミング(t=t2)までの間、相関値ステータスScは1(Sc=1)である。この間、最大相関値Cmは相関値Cに順次更新され(Cm=C:ステップSF107)、かつフレーム画像はバッファ画像としてRAM34aに順次記録される(ステップSF109)。
続いて、t=t2から、相関値Cが相関値閾値Ctより小さくなるタイミング(t=t3)までの間、相関値ステータスScは2(Sc=2)である。この間、最大相関値Cmは更新されず一定のままであり、かつフレーム画像がバッファ画像としてRAM34aに記録されることはない。
続いて、t=t3において、相関値ステータスScは再度0(Sc=0)となり(ステップSF112)、バッファ画像はレコード画像としてRAM34aに記録される(ステップSF114)。このときのバッファ画像は、t=t2において、相関値Cが極大を示すタイミングでのフレーム画像である。これ以降、ユーザが[レコード停止]ボタンを押下するまで、相関値Cが極大を示すタイミング(t=t4,t5,t6,・・・)におけるフレーム画像がレコード画像として順次保存される。
次に、図18を用いて、ステップSGの画像閲覧処理の流れを説明する。ステップSG1では、CPU34cが、[画像閲覧]ボタンがユーザにより押下されたかどうかを確認する。[画像閲覧]ボタンが押下された場合、処理はステップSG2に移行し、[画像閲覧]ボタンが押下されていない場合、処理はステップSHに移行する。
ステップSG2では、CPU34cが、[画像閲覧]ウィンドウを表示するための処理を行う。前述したように、[画像閲覧]ウィンドウが表示されている間、メインウィンドウはユーザによる操作が無効の状態となる。ステップSG3では、CPU34cが初期化処理を行う。初期化処理とは、[画像閲覧]ウィンドウ内の各種GUIの初期状態を設定したり、RAM34aに記録された各種データの初期値を設定したりする処理のことである。初期化処理の詳細は、後述する。
ステップSG4では、CPU34cが日時選択処理行う。日時選択処理とは、ユーザが[日時選択]ボックスのレコード開始日時の選択を変更したことをCPU34cが検出し、[閲覧画像]ボックスに表示される画像を変更する処理のことである。日時選択処理の詳細は、後述する。
ステップSG5では、CPU34cが画像選択処理を行う。画像選択処理とは、ユーザが[<< 前]ボタン、[次 >>]ボタンを押下することをCPU34cが検出し、[閲覧画像]ボックスに表示される画像を変更する処理のことである。画像選択処理の詳細は、後述する。
ステップSG6では、CPU34cが、[閉じる]ボタンがユーザにより押下されたかどうかを確認する。[閉じる]ボタンが押下された場合、処理はステップSG7に移行し、[閉じる]ボタンが押下されていない場合、処理はステップSG4に移行する。ステップSG7では、CPU34cが、[画像閲覧]ウィンドウを非表示とする処理を行う。ステップSG7の処理が終了すると、処理はステップSHに移行する。
次に、図19を用いて、ステップSG3の初期化処理の流れを説明する。ステップSG300では、CPU34cが保存フォルダリストを作成する。ステップSG301では、CPU34cが、作成された保存フォルダリストをRAM34aに記録する。RAM34aに記録された保存フォルダリストは、保存フォルダリストが作成される度に、上書きされる。
ステップSG302では、CPU34cが、保存フォルダリストにおいて、保存フォルダNoが1の保存フォルダ内の画像ファイルリストを作成する。ステップSG303では、CPU34cが、作成された画像ファイルリストをRAM34aに記録する。RAM34aに記録された画像フォルダリストは、画像フォルダリストが作成される度に上書きされる。
ステップSG304では、CPU34cが、保存フォルダリストにおいて、全てのレコード開始日時を[日時選択]ボックスにリスト表示するための処理を行う。ステップSG305では、CPU34cが、[日時選択]ボックスにリスト形式で表示されたレコード開始日時のうち、保存フォルダリストにおいて、保存フォルダNoが1のレコード開始日時を強調表示するための処理を行う。
ステップSG306では、CPU34cが、画像ファイルリストにおいて、画像ファイルNoが1の画像ファイルを[閲覧画像]ボックスに表示するための処理を行う。ステップSG307では、CPU34cが、画像ファイルリストにおいて、画像ファイルNoが1の画像ファイル名を[画像ファイル名]ボックスに表示するための処理を行う。
ステップSG308では、CPU34cが、保存フォルダリストにおいて、保存フォルダNoが1の保存フォルダ内の画像ファイル数を[画像ファイル数]ボックスに表示するための処理を行う。ステップSG309では、CPU34cが、画像ファイルリストにおいて、画像ファイルNoが1の画像ファイルの保存日時を[保存日時]ボックスに表示するための処理を行う。ステップSG309の処理が終了すると、処理はステップSG4に移行する。
次に、図20を用いて、ステップSG4の日時選択処理の流れを説明する。ステップSG400では、CPU34cが、[日時選択]ボックスにおけるレコード開始日時の選択がユーザにより変更されたかどうかを確認する。レコード開始日時の選択が変更された場合、処理はステップSG401に移行し、レコード開始日時の選択が変更されていない場合、処理はステップSG5に移行する。
ステップSG401では、CPU34cが、[日時選択]ボックスにおいてユーザが選択したレコード開始日時をもつ保存フォルダの保存フォルダNoを保存フォルダリストから取得する。このとき取得したフォルダナンバーをFとする。ステップSG402では、CPU34cが、保存フォルダリストにおいて、保存フォルダNoがFの保存フォルダ内の画像ファイルリストを作成する。ステップSG403では、CPU34cが、ステップSG402で作成された画像ファイルリストをRAM34aに記録する。RAM34aに記録された画像ファイルリストは、画像ファイルリストが作成される度に上書きされる。
ステップSG404では、CPU34cが、画像ファイルリストにおいて、画像ファイルNoが1の画像ファイルを[閲覧画像]ボックスに表示するための処理を行う。ステップSG405では、CPU34cが、画像ファイルリストにおいて、画像ファイルNoが1の画像ファイル名を[画像ファイル名]ボックスに表示するための処理を行う。
ステップSG406では、CPU34cが、保存フォルダリストにおいて、フォルダNoが1の保存フォルダ内の画像ファイル数を[画像ファイル数]ボックスに表示するための処理を行う。ステップSG407では、CPU34cが、画像ファイルリストにおいて、画像ファイルNoが1の画像ファイルの保存日時を[保存日時]ボックスに表示するための処理を行う。ステップSG407の処理が終了すると、処理はステップSG5に移行する。
次に、図21を用いて、ステップSG5の画像選択処理の流れを説明する。ステップSG500では、CPU34cが、[<< 前]ボタンがユーザにより押下されたかどうかを確認する。[<< 前]ボタンが押下された場合、処理はステップSG501に移行し、[<< 前]ボタンが押下されていない場合、処理はステップSG504に移行する。
ステップSG501では、CPU34cが、画像ファイルリストにおいて、現在の[閲覧画像]ボックスに表示されている画像ファイルの画像ファイルNoより、1つ前の画像ファイルNoをもつ画像ファイルを[閲覧画像]ボックスに表示するための処理を行う。ステップSG502では、CPU34cが、画像ファイルリストにおいて、上記1つ前の画像ファイルNoをもつ画像ファイルの画像ファイル名を[画像ファイル名]ボックスに表示するための処理を行う。
ステップSG503では、CPU34cが、画像ファイルリストにおいて、上記1つ前の画像ファイルNoをもつ画像ファイルの保存日時を[保存日時]ボックスに表示するための処理を行う。ステップSG504では、CPU34cが、[次 >>]ボタンがユーザにより押下されたかどうかを確認する。[次 >>]ボタンが押下された場合、処理はステップSG505に移行し、[次 >>]ボタンが押下されていない場合、処理はステップSG6に移行する。
ステップSG505では、CPU34cが、画像ファイルリストにおいて、現在の[閲覧画像]ボックスに表示されている画像ファイルの画像ファイルNoより、1つ後の画像ファイルNoをもつ画像ファイルを[閲覧画像]ボックスに表示するための処理を行う。ステップSG506では、CPU34cが、画像ファイルリストにおいて、上記1つ後の画像ファイルNoをもつ画像ファイルの画像ファイル名を[画像ファイル名]ボックスに表示するための処理を行う。
ステップSG507では、CPU34cが、画像ファイルリストにおいて、上記1つ後の画像ファイルNoをもつ画像ファイルの保存日時を[保存日時]ボックスに表示するための処理を行う。ステップSG507の処理が終了すると、処理はステップSG6に移行する。
本実施形態の変形例として、ジェットエンジン1の個体を識別する手段を設けると共にジェットエンジン1毎のタービンブレード10の最大枚数を内視鏡装置3に記憶させておき、識別されたジェットエンジン1に対応した最大枚数をブレード記録ソフトの動作時に用いてもよい。ジェットエンジン1の個体を識別する手段としては、例えばバーコードやICタグ等をジェットエンジン1に取り付け、バーコードリーダやICタグリーダ等の読み取り器を内視鏡装置3に接続し、読み取り器でバーコードやICタグ等からジェットエンジン1の識別情報を読み取るようにすればよい。
本実施形態によれば、以下の効果を得ることができる。本実施形態では、タービンブレードを撮像した複数のフレーム画像の中から、テンプレート画像との画像比較の結果である相関値に基づいて、一部のフレーム画像を選択することによって、フレーム画像内のタービンブレードの位置や角度がテンプレート画像内のタービンブレードの位置や角度と同じになったときのフレーム画像を取得することができる。そのため、タービンブレードの回転と撮像のタイミングを合わせるための特別な制御を必要とせず、簡易な方法でタービンブレードの画像を取得することができる。
本実施形態で示した手法により取得したタービンブレードの画像を用いて、タービンブレードの検査を行うことが可能となる。特に、図6のレコード画像ボックス603にレコード画像を表示することによって、タービンブレードの検査をリアルタイムで行うことができる。また、このレコード画像を画像ファイルとして記録媒体に保存することによって、検査を行うことが可能な時間や場所を拡張することができる。さらに、タービンブレードの画像を保存する場合に、内視鏡映像をそのまま動画ファイルとして保存すると、ファイルサイズが大きくなってしまうが、本実施形態のように、内視鏡映像のうち、一部のフレーム画像を静止画像ファイルとして保存することによって、記録媒体の記録容量が圧迫されることを防ぎながら、検査に必要なタービンブレードの画像を保存することができる。
また、テンプレート画像を基準にして、フレーム画像内のタービンブレードの位置や角度がテンプレート画像内のタービンブレードの位置や角度と同じになったときのフレーム画像を取得することによって、ユーザにとってタービンブレードの検査を行うのに適した状態で撮像したフレーム画像を取得することができ、検査を効率的に行うことができる。また、フレーム画像の中から選択したテンプレート画像を使用することによって、図17に示した相関値の経時変化がはっきりとするので、所望の状態で撮像したフレーム画像を取得する精度を向上することができる。さらに、フレーム画像の中から選択したテンプレート画像を表示することによって、取得するフレーム画像内のタービンブレードの状態がユーザにとって適した状態となっているか否かをユーザに確認させることができる。
(第2の実施形態)
次に、本発明の第2の実施形態を説明する。第1の実施形態では、フレード記録ソフトの[画像閲覧]ウィンドウにはレコード画像ファイルの閲覧機能のみが搭載されていたが、本実施形態における[画像閲覧]ウィンドウには、レコード画像ファイルの閲覧機能だけでなく、ブレードの欠陥抽出機能およびステレオ計測機能が搭載されている。
図22は、本実施形態における[画像閲覧]ウィンドウを示している。図22に示す[画像閲覧]ウィンドウ2200において、第1の実施形態における[画像閲覧]ウィンドウ700(図7)と異なるのは、[画像閲覧]ウィンドウ2200の右側に[欠陥検査]グループボックス2201が配置されている点である。[欠陥検査]グループボックス2201内には、欠陥抽出およびステレオ計測を行うための各種GUIが配置されている。以下では、閲覧画像2202が、同一被写体に関する2つの被写体像を結像可能なステレオ光学アダプタを通して撮像された左右一対の画像である場合を中心として説明する。ステレオ光学アダプタは内視鏡挿入部20の先端に装着される。以下、左側に表示される画像を左画像、右側に表示される画像を右画像と記載する。
以下、[欠陥抽出]グループボックス2201内の各種GUIの機能を説明する。[欠陥抽出]チェックボックス2210は、閲覧画像2202に対して、欠陥抽出処理を行うためのチェックボックスである。ユーザが[欠陥抽出]チェックボックス2210にチェックを入れると、図23のように、閲覧画像2202上に欠陥輪郭線2230が重畳表示される。欠陥抽出処理の詳細は、後述する。
[輝度閾値]バー2211は、後述する欠陥抽出処理の検査パラメータの1つである輝度閾値を設定するためのバーである。輝度閾値は、欠陥抽出処理において、閲覧画像2202を2値化する際に使用される。[面積閾値]バー2212は、後述する欠陥抽出処理の検査パラメータの1つである面積閾値を設定するためのバーである。面積閾値は、欠陥抽出処理において、閲覧画像内の小さなブロブ(Blob、粒子)を除去する際に使用される。[輝度選択]ラジオボタン2213は、後述する欠陥抽出処理の検査パラメータの1つである輝度値の種類を設定するためのラジオボタンである。輝度値は、欠陥抽出処理において、画像をグレースケール画像に変換する際に使用される。
[ステレオ計測]チェックボックス2220は、閲覧画像2202に対して、後述するステレオ計測を行うためのチェックボックスである。[欠陥抽出]チェックボックス2210にチェックが入った状態で、ユーザが[ステレオ計測]チェックボックス2220にチェックを入れると、図24のように、閲覧画像2202に計測領域線2240が重畳表示され、欠陥抽出処理によって抽出された欠陥に対して、ステレオ計測が可能な状態となる。
計測領域線2240は、閲覧画像2202内においてステレオ計測を行うことが可能な領域の境界線であり、左右一対の矩形線で表示される。そして、図25のように、閲覧画像2202の左画像上に重畳表示された欠陥の輪郭線2230に、ユーザがカーソル2250を移動させ、左クリック等で欠陥の輪郭線2230を指定すると、図26のように、欠陥輪郭線2230が欠陥矩形線2260で囲まれ、左画像上に計測点2270が表示されると共に、右画像上にマッチング点2271が表示される。欠陥矩形線、計測点、マッチング点の詳細は、後述する。さらに、後述する[計測結果]ボックス2222に、指定された欠陥に対するステレオ計測の結果が表示される。
図22の[環境データ]ボタン2221は、環境データを選択するためのボタンである。環境データは、ステレオ計測を行う際に使用するデータであり、ステレオ光学アダプタの光学的歪みを補正するためのデータ等が含まれる。環境データは、特開2001−275934号公報に記載されているものと同様である。
[環境データ]ボタン2221が押下されると、図示しないファイル選択ダイアログが開く。そして、このファイル選択ダイアログにおいて、ユーザが環境データを選択する。このとき選択される環境データは、画像を撮像する際に使用したステレオ光学アダプタに対応したデータである。そして、[ステレオ計測]チェックボックス2220が無効状態から有効状態へ切り替わり、[ステレオ計測]チェックボックス2220にチェックを入れることが可能となる。
なお、[ステレオ計測]チェックボックスおよび[環境データ]ボタンは、閲覧画像がステレオ計測用の画像(左右1対の画像)でなかった場合、常に無効となり、ステレオ計測を行うことはできない状態となる。
[計測結果]ボックス2222は、計測結果を表示するためのボックスである。計測結果には、距離、幅1,2、周囲長、面積の5つがある。計測結果の詳細は、後述する。
次に、図27を用いて、本実施形態における画像閲覧処理の流れを説明する。図27に示すステップSG3aの初期化処理、ステップSG4aの日時選択処理、ステップSG5aの画像選択処理の内容は、第1の実施形態における画像閲覧処理の流れ(図18)と異なる。また、図27に示すステップSG5aとステップSG6との間に、ステップSG8の欠陥抽出処理、ステップSG9のステレオ計測前処理、ステップSG10の欠陥指定処理が追加されていることも、第1の実施形態における画像閲覧処理の流れ(図18)と異なる。以下、第1の実施形態における画像閲覧処理の流れ(図18)と異なる点のみ、説明する。
ステップSG3aでは、CPU34cが初期化処理を行う。初期化処理の詳細は、後述する。ステップSG4aでは、CPU34cが日時選択処理を行う。日時選択処理の詳細は、後述する。ステップSG5aでは、CPU34cが画像選択処理を行う。画像選択処理の詳細は、後述する。
ステップSG8では、CPU34cが欠陥抽出処理を行う。欠陥抽出処理とは、設定された検査パラメータに基づいて、閲覧画像上の欠陥を抽出する処理を行い、抽出した欠陥を閲覧画像に重畳表示する処理のことである。欠陥抽出処理の詳細は、後述する。
ステップSG9では、CPU34cがステレオ計測前処理を行う。ステレオ計測前処理とは、選択された環境データに基づいて、閲覧画像の補正を行い、閲覧画像をステレオ計測が可能な状態とする処理のことである。ステレオ計測前処理の詳細は、後述する。
ステップSG10では、CPU34cが欠陥指定処理を行う。欠陥指定処理とは、CPU34cが、閲覧画像に重畳表示された欠陥をユーザが指定したことを検出し、[計測結果]ボックスに欠陥サイズの計測結果を表示する処理のことである。欠陥指定処理の詳細は、後述する。
次に、図28を用いて、ステップSG3aの初期化処理の流れを説明する。図28に示すステップSG309の後にステップSG310およびステップSG311が追加されている点が、第1の実施形態における初期化処理の流れ(図19)と異なる。以下、第1の実施形態における初期化処理の流れ(図19)と異なる点のみ、説明する。
ステップSG310では、CPU34cが[ステレオ計測]チェックボックスを無効とする。ステップSG311では、CPU34cが、欠陥抽出フラグをOFF、ステレオ計測フラグをOFFとして、RAM34aに記録する。欠陥抽出フラグとは、欠陥抽出処理を行うかどうかを示すフラグである。ステレオ計測フラグとは、ステレオ計測前処理を行うかどうかを示すフラグである。
次に、図29を用いて、ステップSG4aの日時選択処理の流れを説明する。図29に示すステップSG407の後にステップSG408が追加されている点が、第1の実施形態における日時選択処理の流れ(図20)と異なる。以下、第1の実施形態における日時選択処理の流れ(図20)と異なる点のみ、説明する。
ステップSG408では、CPU34cが、欠陥抽出フラグ、ステレオ計測フラグをそれぞれONとして、RAM34aに記録する。ステップSG408において、欠陥抽出フラグ、ステレオ計測フラグをそれぞれONとするのは、ステップSG400において、[日時選択]ボックスのレコード開始日時の選択が変更されると、閲覧画像が変更されることにより、欠陥抽出処理およびステレオ計測前処理を改めて行う必要があるからである。なお、ステップSG404において、画像ファイルが[閲覧画像]ボックスに表示されるとき、既に重畳表示された計測領域線等は全て非表示となる。
次に、図30を用いて、ステップSG5の画像選択処理の流れを説明する。図30に示すステップSG503の後にステップSG508が追加され、ステップSG507の後にステップSG509が追加されている点が、第1の実施形態における画像選択処理の流れ(図21)と異なる。以下、第1の実施形態における画像選択処理の流れ(図21)と異なる点のみ、説明する。
ステップSG508では、CPU34cが、欠陥抽出フラグ、ステレオ計測フラグをそれぞれONとして、RAM34aに記録する。ステップSG509では、CPU34cが、欠陥抽出フラグ、ステレオ計測フラグをそれぞれONとして、RAM34aに記録する。ステップSG508,SG509において、欠陥抽出フラグ、ステレオ計測フラグをそれぞれONとするのは、ステップSG500,SG504において、[<< 前]ボタン、[次 >>]ボタンが押下されると、閲覧画像が変更されることにより、欠陥抽出処理およびステレオ計測前処理を改めて行う必要があるからである。なお、ステップSG501,SG505において、画像ファイルが[閲覧画像]ボックスに表示されるとき、既に重畳表示された計測領域線等は全て非表示となる。
次に、図31および図32を用いて、ステップSG8の欠陥抽出処理の流れを説明する。ステップSG800では、CPU34cが、[欠陥抽出]チェックボックスにチェックがあるかどうかを確認する。[欠陥抽出]チェックボックスにチェックがある場合、処理はステップSG801に移行し、[欠陥抽出]チェックボックスにチェックがない場合、処理はステップSG802に移行する。
ステップSG801では、CPU34cが、[輝度閾値]バーから輝度閾値Yt、[面積閾値]バーから面積閾値At、[輝度選択]ラジオボタンから輝度選択Sをそれぞれ取得し、RAM34aに記録する。ステップSG802では、CPU34cが、 [欠陥抽出]チェックボックスにチェックを入れる指示がユーザからあったかどうかを確認する。[欠陥抽出]チェックボックスにチェックを入れる指示があった場合、処理はステップSG803に移行し、[欠陥抽出]チェックボックスにチェックを入れる指示がない場合、処理はステップSG9に移行する。
ステップSG803では、ステップSG801と同様、CPU34cが、[輝度閾値]バーから輝度閾値Yt、[面積閾値]バーから面積閾値At、[輝度選択]ラジオボタンから輝度選択Sをそれぞれ取得し、RAM34aに記録する。また、CPU34cは、[欠陥抽出]チェックボックスにチェックを入れる処理を行う。
ステップSG804では、CPU34cが、ステップSG803で取得した輝度閾値Yt、面積閾値At、輝度選択Sを、それぞれ前回の輝度閾値Ytl、前回の面積閾値Atl、前回の輝度選択Slとし、RAM34aに記録する。前回の輝度閾値Ytl、前回の面積閾値Atl、前回の輝度選択Slとは、前回欠陥抽出処理が行われた際に使用された、輝度閾値Yt、面積閾値At、輝度選択Sを、それぞれ一時的に記録したものである。ステップSG805では、CPU34cが、欠陥抽出フラグをONとして、RAM34aに記録する。
ステップSG806では、CPU34cが、輝度閾値Yt、面積閾値At、輝度選択Sが、それぞれ前回の輝度閾値Ytl、前回の面積閾値Atl、前回の輝度選択Slと、全て等しいかどうかを確認する。ステップSG806の処理は、前回欠陥抽出処理が行われた際に使用された検査パラメータがユーザによって変更されたかどうかを確認する処理である。全ての検査パラメータが前回と同一の場合、処理はステップSG808に移行し、1つ以上の検査パラメータが前回と異なる場合、処理はステップSG807に移行する。ステップSG807では、CPU34cが、欠陥抽出フラグをONとして、RAM34aに記録する。
ステップSG808では、CPU34cが、欠陥抽出フラグがONかどうかを確認する。欠陥抽出フラグがONの場合、処理はステップSG809に移行し、欠陥抽出フラグがOFFの場合、処理はステップSG821に移行する。
以下、ステップSG809〜SG818では、適宜図33も用いて説明する。ステップSG809では、CPU34cが、保存フォルダに保存されたテンプレート画像ファイルおよび閲覧画像ファイルの画像データを取得し、RAM34aに記録する。この画像データとは、画像の各画素のRGB輝度値を指す。
ステップSG810では、CPU34cが、ステップSG801またはステップSG803でRAM34aに記録された輝度選択Sに基づいて、取得された2枚の画像データを、グレースケール画像に変換する。輝度選択Sが「Gray」であったとき、グレースケール画像の各画素の輝度値Yは、画像データの各画素のRGB輝度値から、以下の(8)式で算出される。
Y=0.299×R+0.587 ×G+0.114×B ・・・(8)
また、輝度選択Sが「R」、「G」、「B」のいずれかであったとき、画像データの各画素のR、G、Bそれぞれの輝度値が、そのままグレースケール画像の各画素の輝度値Yとなる。
ステップSG811では、CPU34cが、ステップSG810で作成された2枚のグレースケール画像の差分をとった画像(以下、差分画像と記載)を作成する。図33には、テンプレート画像のグレースケール画像3300と閲覧画像のグレースケール画像3301との間で差分を取ることにより、差分画像3310が作成される様子が示されている。
ステップSG812では、CPU34cが、RAM34aに記録された輝度閾値Ytに基づいて差分画像を2値化し、2値画像を作成する。図33には、差分画像3310を2値化することにより、2値画像3320が作成される様子が示されている。
ステップSG813では、CPU34cが、作成された2値画像に対して、膨張・収縮処理を行い、小さなノイズを除去する。ステップSG814では、CPU34cが、ステップSG813でノイズを除去した2値画像に対してラベリング処理を行い、ブロブ(粒子)を抽出する。ステップSG815では、CPU34cが、RAM34aに記録された面積閾値Atより小さな面積をもつブロブを、ステップSG814でノイズを除去した画像から除去する。図33には、2値画像3320から小さなブロブが除去された様子が示されている。
ステップSG816では、CPU34cが、ステップSG814で小さなブロブが除去された2値画像から、残ったブロブの輪郭線を欠陥輪郭線として抽出する。図33には、ブロブの輪郭線3330が抽出された様子が示されている。ステップSG817では、CPU34cが、ステップSG816で抽出された欠陥輪郭線の座標をRAM34aに記録する。
ステップSG818では、CPU34cが、RAM34aに記録された欠陥輪郭線の座標に基づいて、閲覧画像に欠陥輪郭線を重畳表示する処理を行う。図33には、閲覧画像3340に欠陥輪郭線3330が重畳表示された様子が示されている。ステップSG819では、CPU34cが、ステップSG801またはステップSG803でRAM34aに記録された輝度閾値Yt、面積閾値At、輝度選択Sを、それぞれ前回の輝度閾値Ytl、前回の面積閾値Atl、前回の輝度選択Slとし、RAM34aに記録する。
ステップSG820では、CPU34cが、欠陥抽出フラグをOFFとして、RAM34aに記録する。ステップSG821では、CPU34cが、[欠陥抽出]チェックボックスからチェックを外す指示がユーザからあったかどうかを確認する。[欠陥抽出]チェックボックスからチェックを外す指示があった場合、処理はステップSG822に移行し、[欠陥抽出]チェックボックスからチェックを外す指示がない場合、処理はステップSG9に移行する。
ステップSG822では、CPU34cが、ステップSG817でRAM34aに記録された欠陥輪郭線の座標に基づいて、閲覧画像に表示された欠陥輪郭線を非表示とする処理を行う。また、CPU34cは、[欠陥抽出]チェックボックスからチェックを外す処理を行う。ステップSG822の処理が終了すると、処理はステップSG9に移行する。
次に、図34を用いて、ステップSG9のステレオ計測前処理の流れを説明する。ステップSG900では、CPU34cが、[環境データ]ボタンがユーザにより押下されたかどうかを確認する。[環境データ]ボタンが押下された場合、処理はステップSG901に移行し、[環境データ]ボタンが押下されていない場合、処理はステップSG905に移行する。
ステップSG901では、CPU34cが、図示しない[ファイルを開く]ダイアログを表示するための処理を行う。ステップSG902では、CPU34cが、[ファイルを開く]ダイアログにおいてユーザにより環境データが選択されたかどうかを確認する。環境データが選択された場合、処理はステップSG903に移行し、環境データが選択されていない場合、処理はステップSG905に移行する。
ステップSG903では、CPU34cが、選択された環境データをRAM34aに記録する。RAM34aに記録された環境データは、環境データが選択される度に上書きされる。ステップSG904では、CPU34cが[ステレオ計測]チェックボックスを有効にする。ステップSG905では、CPU34cが、[ステレオ計測]チェックボックスにチェックがあるかどうかを確認する。[ステレオ計測]チェックボックスにチェックがある場合、処理はステップSG908に移行し、[ステレオ計測]チェックボックスにチェックがない場合、処理はステップSG906に移行する。
ステップSG906では、CPU34cが、[ステレオ計測]チェックボックスにチェックを入れる指示がユーザからあったかどうかを確認する。[ステレオ計測]チェックボックスにチェックを入れる指示があった場合、処理はステップSG907に移行し、[ステレオ計測]チェックボックスにチェックを入れる指示がない場合、処理はステップSG10に移行する。
ステップSG907では、CPU34cが、ステレオ計測フラグをONとして、RAM34aに記録する。また、CPU34cは、[ステレオ計測]チェックボックスにチェックを入れる処理を行う。ステップSG908では、CPU34cが、ステレオ計測フラグがONかどうかを確認する。ステレオ計測フラグがONの場合、処理はステップSG909に移行し、ステレオ計測フラグがOFFの場合、処理はステップSG10に移行する。
ステップSG909では、CPU34cが、RAM34aに記録されている計測領域線の座標に基づいて、閲覧画像に計測領域線を重畳表示する処理を行う。計測領域線の座標は、環境データの一部として、RAM34aに記録されている。
ステップSG910では、CPU34cが、保存フォルダに保存された閲覧画像ファイルの画像データを取得し、RAM34aに記録する。ステップSG911では、CPU34cが、ステップSG910で取得された画像データを補正する。ステップSG911で行われる補正処理は、特開平10−248806号公報に記載されているものと同様である。
ステップSG912では、CPU34cが、ステップSG911で補正された画像データを、補正画像データとしてRAM34aに記録する。RAM34aに記録された補正画像データは、補正画像データが作成される度に上書きされる。ステップSG913では、CPU34cが、ステレオ計測フラグをOFFとして、RAM34aに記録する。
ステップSG914では、CPU34cが、[ステレオ計測]チェックボックスからチェックを外す指示がユーザからあったかどうかを確認する。[ステレオ計測]チェックボックスからチェックを外す指示があった場合、処理はステップSG915に移行し、[ステレオ計測]チェックボックスからチェックを外す指示がない場合、処理はステップSG10に移行する。ステップSG915では、CPU34cが、RAM34aに記録されている計測領域線の座標に基づいて、閲覧画像に表示された計測領域線を非表示とする処理を行なう。また、CPU34cは、[ステレオ計測]チェックボックスからチェックを外す処理を行う。ステップSG915の処理が終了すると、処理はステップSG10に移行する。
次に、図35を用いて、ステップSG10の欠陥指定処理の流れを説明する。ステップSG1000では、CPU34cが、[ステレオ計測]チェックボックスにチェックがあるかどうかを確認する。[ステレオ計測]チェックボックスにチェックがある場合、処理はステップSG1001に移行し、[ステレオ計測]チェックボックスにチェックがない場合、処理はステップSG6に移行する。
ステップSG1001では、CPU34cが、閲覧画像の左側計測領域内に表示された欠陥輪郭線がユーザにより指定されたかどうかを確認する。欠陥輪郭線がユーザにより指定された場合、処理はステップSG1002に移行し、欠陥輪郭線がユーザにより指定されていない場合、処理はステップSG6に移行する。
ステップSG1002では、CPU34cが、既に閲覧画像に重畳表示された欠陥矩形線、計測点、マッチング点を非表示とする処理を行う。ステップSG1003では、CPU34cが、閲覧画像に欠陥矩形線を重畳表示する処理を行う。欠陥矩形線とは、ユーザにより指定された欠損領域線の周囲に表示される矩形線であり、現在ユーザにより指定されている欠陥輪郭線であることを示す。
以下、ステップSG1004〜SG1009では、適宜図36も用いて説明する。ステップSG1004では、CPU34cが、RAM34aに記録された、現在ユーザにより指定されている欠陥輪郭線の座標に基づいて、計測点座標を算出する。計測点とは、欠陥のサイズを計測する際に用いる点である。図36(a),(b)のように、計測点3610は欠陥輪郭線3600上において等間隔に位置している。
ステップSG1005では、CPU34cが、閲覧画像の画像データに基づいて、左側計測領域内の計測点座標に対応した、右側計測領域内のマッチング点座標を算出する。より具体的には、CPU34cが、計測点座標に基づいてパターンマッチング処理を実行し、左右2画像の対応点であるマッチング点の座標を算出する。このパターンマッチング処理の方法は、特開2004−49638号公報に記載されたものと同様である。
ステップSG1006では、CPU34cが、ステップSG1004〜SG1005で算出された計測点座標およびマッチング点座標に基づいて、各計測点の空間点座標(現実の空間上の3次元座標)を算出する。空間点座標の計算方法は、特開2004−49638号公報に記載されているものと同様である。
ステップSG1007では、CPU34cが、ステップSG1006で算出された空間点座標に基づいて、計測結果を算出する。計測結果は、欠陥の距離、幅1,2、周囲長、面積の5種類を含む。
距離とは、全ての空間点の奥行き方向の座標の平均値である。幅1とは、図36(c),(d)のように、全ての計測点座標から求めた等価楕円3620と、その長軸3621との交点から最近傍にある計測点同士の空間距離である。幅2とは、図36(c),(d)のように、等価楕円3620とその短軸3622との交点から最近傍にある計測点同士の空間距離である。なお、等価楕円とは、複数の座標から近似できる楕円である。周囲長とは、図36(e)のように、全ての隣り合う計測点の空間点距離3630の合計である。面積とは、図36(f)のように、全ての隣り合う計測点によって囲まれた領域3640の空間面積である。
ステップSG1008では、CPU34cが、閲覧画像の左側計測領域内に計測点を重畳表示すると共に右側計測領域内にマッチング点を重畳表示する処理を行う。ステップSG1009では、CPU34cが、ステップSG1007で算出された計測結果を[計測結果]ボックスに表示する処理を行う。ステップSG1009の処理が終了すると、処理はステップSG6に移行する。
本実施形態では、ステレオ光学アダプタを使用して撮像した閲覧画像を用いているが、欠陥抽出処理に関しては、ステレオ光学アダプタ以外の光学アダプタを使用して撮像した閲覧画像を用いることも可能である。図37に示す[画像閲覧]ウィンドウ3700では、光学アダプタにより結像された1つの被写体像を撮像した閲覧画像3701が表示されている。ユーザが[欠陥抽出]チェックボックス3710にチェックを入れると、図38のように、閲覧画像3701上に欠陥輪郭線3720が重畳表示される。
また、本実施形態では、図23のように、閲覧画像2202において、欠陥抽出処理によって抽出された欠陥に対応する位置に欠陥輪郭線2230が表示されるが、欠陥の位置を明示できるものであれば、表示するのは線でなくてもよい。例えば、欠陥に対応する位置に矢印等の図形を表示したり、「欠陥」等の文字を表示したりしてもよい。
本実施形態によれば、閲覧画像とテンプレート画像との差分を抽出することによって、欠陥の種類によらずブレードの欠陥を抽出することができる。さらに、抽出された欠陥上に欠陥輪郭線等を重畳表示することによって、ユーザが欠陥の位置を認識しやすくなる。
また、抽出された欠陥に対して計測を実行することによって、欠陥のサイズを知ることができる。さらに、閲覧画像上に表示された欠陥のうち、ユーザが欠陥輪郭線を指定することによって指定した欠陥に対して計測を実行することによって、ユーザが希望する欠陥のサイズを知ることができる。さらに、ステレオ光学アダプタを使用して撮像した閲覧画像を用いて欠陥抽出処理を行い、抽出された欠陥に基づいてステレオ計測を実行することによって、欠陥の3次元サイズを知ることができる。
(第3の実施形態)
次に、本発明の第3の実施形態を説明する。本実施形態におけるフレード記録ソフトの[画像閲覧]ウィンドウでは、第2の実施形態における欠陥抽出機能およびステレオ計測機能に加えて、ブレード領域抽出機能が搭載されている。
以下、図39を用いて、本実施形態における、ブレード記録ソフトの動作の流れを説明する。図39に示すステップSCの初期化処理、ステップSEのテンプレート登録処理、ステップSFのレコード処理の内容は、第1の実施形態におけるブレード記録ソフトの動作の流れ(図11)と異なる。また、図39に示すステップSDとステップSEの間にステップSEの参照画像登録処理が追加されていることも、第1の実施形態におけるブレード記録ソフトの動作の流れ(図11)と異なる。以下、第1の実施形態におけるブレード記録ソフトの動作の流れ(図11)と異なる点のみ、説明する。
ステップSCでは、CPU34cが初期化処理を行う。初期化処理の詳細は、後述する。
ステップSJでは、CPU34cが参照画像登録処理を行う。参照画像(第4の画像)とは、テンプレート画像より1フレーム後のフレーム画像のことである。後述するように、参照画像はブレード領域を抽出する際に使用される。参照画像登録処理の詳細は、後述する。
ステップSEでは、CPU34cがテンプレート登録処理を行う。テンプレート登録処理の詳細は、後述する。
ステップSFでは、CPU34cがレコード処理を行う。レコード処理の詳細は、後述する。
次に、図40を用いて、ステップSCの初期化処理の流れを説明する。図40に示すステップSC5aの内容が、第1の実施形態におけるブレード記録ソフトの動作の流れ(図12)と異なる。また、図40に示すステップSC4とステップSC5aとの間にステップSC6が追加されていることも、第1の実施形態におけるブレード記録ソフトの動作の流れ(図12)と異なる。以下、ステップSC6,SC5aの内容を説明する。
ステップSC6では、CPU34cが、相関値Cを相関値閾値Ctとして(C=Ct)、RAM34aに記録すると共に、最大相関値Cmを相関値閾値Ctとして(Cm=Ct)、RAM34aに記録する。ステップSC5aでは、CPU34cが、プレビューフラグ、レコードフラグ、保存フラグ、参照画像フラグを全てOFFとして、RAM34aに記録する。参照画像フラグとは、参照画像を画像ファイルとして保存するかどうかを示すフラグである。この参照画像ファイルは、テンプレート画像ファイルと同様に、メモリカード50内の保存フォルダに保存される。参照画像のファイル名は、「Ref.jpg」となる。ステップSC5aの処理が終了すると、処理はステップSDに移行する。
次に、図41を用いて、ステップSJの参照画像登録処理の流れを説明する。ステップSJ1では、CPU34cが、参照画像フラグがONかどうかを確認する。参照画像フラグがONの場合、処理はステップSJ2に移行し、参照画像フラグがOFFの場合、処理はステップSEに移行する。
ステップSJ2では、CPU34cが、RAM34aに記録されたフレーム画像を参照画像として、RAM34aに記録する。ステップSJ3では、CPU34cが[レコード開始]ボタンを有効とする。ステップSJ4では、CPU34cが参照画像フラグをOFFとして、RAM34aに記録する。ステップSJ4の処理が終了すると、処理はステップSEに移行する。
次に、図42を用いて、ステップSEのテンプレート登録処理の流れを説明する。図14に示したステップSE4がステップSE5に変更されていることが、第1の実施形態におけるブレード記録ソフトの動作の流れ(図14)と異なる。以下、ステップSE5の内容を説明する。
ステップSE5では、CPU34cが参照画像フラグをONとして、RAM34aに記録する。ステップSE5の処理が終了すると、処理はステップSFに移行する。あるフレームのフレーム画像がテンプレート画像としてRAM34aに記録された後、ステップSE5で参照画像フラグがONになるため、図41のステップSJ2で次のフレームのフレーム画像が参照画像としてRAM34aに記録される。
次に、図43を用いて、ステップSFのレコード処理の流れを説明する。図43に示すステップSF3a,SF7aの内容が、第1の実施形態におけるブレード記録ソフトの動作の流れ(図15)と異なる。また、図43のステップSF19とステップSF20との間にステップSF21が追加されていることも、第1の実施形態におけるブレード記録ソフトの動作の流れ(図15)と異なる。以下、ステップSF3a,SF7a,SF22の内容を説明する。
ステップSF3aでは、CPU34cが、レコード数Rを0として(R=0)、RAM34aに記録する。ステップSF7aでは、CPU34cが、RAM34aに記録されたテンプレート画像および参照画像をそれぞれ画像ファイルとして、メモリカード50内の保存フォルダに保存する。ステップSF21では、CPU34cが、相関値Cを相関値閾値Ctとして(C=Ct)、RAM34aに記録すると共に、最大相関値Cmを相関値閾値Ctとして(Cm=Ct)、RAM34aに記録する。
図44は、本実施形態における[画像閲覧]ウィンドウを示している。第2の実施形態における[画像閲覧]ウィンドウ(図22)と異なるのは、[欠陥検査]グループボックス4400内に、[ブレード領域抽出]チェックボックス4410が配置されている点である。以下では、閲覧画像4402がステレオ計測用の画像(左右一対の画像)でない場合を中心として説明する。
[ブレード領域抽出]チェックボックス4410は、閲覧画像4402に対して、ブレード領域抽出処理を行うためのチェックボックスである。ユーザが[ブレード領域抽出]チェックボックス4410にチェックを入れると、図45のように、閲覧画像4402上にブレード領域4420が重畳表示される。このとき、ユーザがブレード領域4420と他の領域を区別しやすいように、ブレード領域4420を示すグラフィック画像が閲覧画像4402に重畳表示される。
さらに、[ブレード領域抽出]チェックボックス4410にチェックが入った状態で、[欠陥抽出]チェックボックス4430にチェックが入ると、図46のように、欠陥抽出処理によって抽出された欠陥のうち、ブレード領域4420内に位置する欠陥についてのみ、閲覧画像4402上に欠陥輪郭線4440が重畳表示され、それ以外の欠陥輪郭線は非表示となる。ブレード領域抽出処理の詳細は、後述する。
次に、図47を用いて、本実施形態における画像閲覧処理の流れを説明する。ステップSG3bの初期化処理、ステップSG4bの日時選択処理、ステップSG5bの画像選択処理、ステップSG8bの欠陥抽出処理の内容が、第2の実施形態における画像閲覧処理の流れ(図27)と異なる。また、図47に示すステップSG5bとステップSG8bとの間に、ステップSG11のブレード領域抽出処理が追加されていることも、第2の実施形態における画像閲覧処理の流れ(図27)と異なる。以下、第2の実施形態における画像閲覧処理の流れ(図27)と異なる点のみ、説明する。
ステップSG3bでは、CPU34cが初期化処理を行う。初期化処理の詳細は、後述する。ステップSG4bでは、CPU34cが日時選択処理を行う。日時選択処理の詳細は、後述する。ステップSG5bでは、CPU34cが画像選択処理を行う。画像選択処理の詳細は、後述する。
ステップSG11では、CPU34cがブレード領域抽出処理を行う。ブレード領域抽出処理とは、閲覧画像に対して欠陥抽出処理と同様の処理を行ってブレード領域を抽出し、抽出したブレード領域を閲覧画像に重畳表示する処理のことである。さらに、ブレード領域抽出処理は、閲覧画像に重畳表示されている欠陥のうち、ブレード領域内に位置する欠陥のみを表示し、それ以外の欠陥を非表示とする処理も含む。ブレード領域抽出処理の詳細は、後述する。
ステップSG8bでは、CPU34cが欠陥抽出処理を行う。欠陥抽出処理の詳細は、後述する。
次に、図48を用いて、ステップSG3bの初期化処理の流れを説明する。図48に示すステップSG311bの内容が、第2の実施形態におけるブレード記録ソフトの動作の流れ(図28)と異なる。以下、ステップSG311bの内容を説明する。
ステップSG311bでは、CPU34cが、ブレード領域抽出フラグをOFF、欠陥抽出フラグをOFF、ステレオ計測フラグをOFFとして、RAM34aに記録する。ブレード領域抽出フラグとは、ブレード領域抽出を行うかどうかを示すフラグである。ステップSG311bの処理が終了すると、処理はステップSG4bに移行する。
次に、図49を用いて、ステップSG4bの日時選択処理の流れを説明する。図49に示すステップSG408bの内容が、第2の実施形態におけるブレード記録ソフトの動作の流れ(図29)と異なる。以下、ステップSG408bの内容を説明する。
ステップSG408bでは、CPU34cが、ブレード領域抽出フラグ、欠陥抽出フラグ、ステレオ計測フラグをそれぞれONとして、RAM34aに記録する。ステップSG408bの処理が終了すると、処理はステップSG5bに移行する。ステップSG408bにおいて、ブレード領域抽出フラグ、欠陥抽出フラグ、ステレオ計測フラグをそれぞれONとするのは、ステップSG400において、[日時選択]ボックスのレコード開始日時の選択が変更されると、閲覧画像が変更されることにより、ブレード領域抽出処理、欠陥抽出処理、およびステレオ計測処理を改めて行う必要があるからである。
次に、図50を用いて、ステップSG5bの画像選択処理の流れを説明する。図50に示すステップSG508b,SG509bの内容が、第2の実施形態におけるブレード記録ソフトの動作の流れ(図30)と異なる。以下、ステップSG508b,SG509bの内容を説明する。
ステップSG508bでは、CPU34cが、ブレード領域抽出フラグ、欠陥抽出フラグ、ステレオ計測フラグをそれぞれONとして、RAM34aに記録する。ステップSG509bでは、CPU34cが、ブレード領域抽出フラグ、欠陥抽出フラグ、ステレオ計測フラグをそれぞれONとして、RAM34aに記録する。ステップSG509bの処理が終了すると、処理はステップSG11に移行する。
ステップSG508b,SG509bにおいて、ブレード領域抽出フラグ、欠陥抽出フラグ、ステレオ計測フラグをそれぞれONとするのは、ステップSG500,SG504において、[<< 前]ボタン、[次 >>]ボタンがそれぞれ押下されると、閲覧画像が変更されることにより、ブレード領域抽出処理、欠陥抽出処理、およびステレオ計測処理を改めて行う必要があるからである。
次に、図51および図52を用いて、ステップSG11のブレード領域抽出処理の流れを説明する。ステップSG1100では、CPU34cが、[ブレード領域抽出]チェックボックスにチェックがあるかどうかを確認する。[ブレード領域抽出]チェックボックスにチェックがある場合、処理はステップSG1103に移行し、[ブレード領域抽出]チェックボックスにチェックがない場合、処理はステップSG1101に移行する。
ステップSG1101では、CPU34cが、[ブレード領域抽出]チェックボックスにチェックを入れる指示がユーザからあったかどうかを確認する。[ブレード領域抽出]チェックボックスにチェックを入れる指示があった場合、処理はステップSG1102に移行し、[ブレード領域抽出]チェックボックスにチェックを入れる指示がなかった場合、処理はステップSG8bに移行する。
ステップSG1102では、CPU34cがブレード領域抽出フラグをONとして、RAM34aに記録する。また、CPU34cは、[ブレード領域抽出]チェックボックスにチェックを入れる処理を行う。
ステップSG1103では、CPU34cが、ブレード領域抽出フラグがONかどうかを確認する。ブレード領域抽出フラグがONの場合、処理はステップSG1104に移行し、ブレード領域抽出フラグがOFFの場合、処理はステップSG8bに移行する。
以下、ステップSG1104〜SG1116では、適宜図53および図54も用いて説明する。ステップSG1104では、CPU34cが、保存フォルダに保存されたテンプレート画像ファイルおよび参照画像ファイルの画像データを取得し、RAM34aに記録する。この画像データとは、画像の各画素のRGB輝度値を指す。
ステップSG1105では、CPU34cが、ステップSG1104で取得された2枚の画像データをグレースケール画像に変換する。グレースケール画像の各画素の輝度値Yは、画像データの各画素のRGB輝度値から、以下の(9)式で算出される。
Y=0.299×R+0.587 ×G+0.114×B ・・・(9)
ステップSG1106では、CPU34cが、ステップSG1105で作成された2枚のグレースケール画像の差分をとった画像(以下、差分画像と記載)を作成する。図53には、テンプレート画像のグレースケール画像5300と参照画像のグレースケール画像5301との間で差分を取ることにより、差分画像5310が作成される様子が示されている。テンプレート画像とグレースケール画像が1フレームずれていることにより、図53に示すように、ブレード領域の境界部で差分が抽出される。
ステップSG1107では、CPU34cが、所定の閾値に基づいて差分画像を2値化し、2値画像を作成する。図53には、差分画像5310を2値化することにより、2値画像5320が作成される様子が示されている。
ステップSG1108では、CPU34cが、作成された2値画像に対して、膨張・収縮処理を行い、小さなノイズを除去する。ステップSG1109では、CPU34cが、ステップSG1108でノイズを除去した2値画像に対してラベリング処理を行い、ブロブ(粒子)を抽出する。ステップSG1110では、CPU34cが、所定の面積より小さな面積をもつブロブを、ステップSG1108でノイズを除去した画像から除去する。図53には、2値画像5320から小さなブロブが除去された様子が示されている。
ステップSG1111では、CPU34cが、ステップSG1110で小さなブロブが除去された2値画像に対してハフ変換を行い、直線を抽出する。このとき、抽出された直線をブレード境界線とする。図54には、ブレード境界線5400が抽出される様子が示されている。
ステップSG1112では、CPU34cが、ブレード境界線により分割される複数の領域を抽出する。図54には、ブレード境界線5400により分割される複数の領域A〜Iが抽出された様子が示されている。領域A〜Iは、それぞれ隣り合う領域の順に並んでいる。
ステップSG1113では、CPU34cが、テンプレート画像における、ステップSG1112で抽出された各領域の平均輝度を算出する。図55には、領域A〜Iの平均輝度のグラフが示されている。本グラフより、平均輝度の高い領域と低い領域とが交互に現れていることがわかる。これは、図54の閲覧画像5410のように、輝度の高いブレード領域と、輝度の低い背景領域とが交互に並んでいるからである。この関係を利用して、ブレード領域のみを抽出することができる。
ステップSG1114では、CPU34cが、ステップSG1113で算出された各領域の平均輝度に基づいて、ブレード領域を抽出する。例えば、CPU34cは、互いに隣接する2つの領域の輝度を比較し、輝度の高いほうの領域をブレード領域とし、輝度の低いほうの領域を背景領域とする。CPU34cは、隣接する2つの領域をずらしながら、ブレード領域か背景領域かの判定を行う。
ステップSG1115では、CPU34cが、ステップSG1114で抽出されたブレード領域の座標をRAM34aに記録する。ブレード領域の座標は、例えばブレード領域を構成する点のうち代表点の座標である。このとき、RAM34aに記録されたブレード領域の座標は、ブレード領域が抽出される度に上書きされる。図54には、閲覧画像5420からブレード領域5430が抽出された様子が示されている。
ステップSG1116では、CPU34cが、RAM34aに記録されたブレード領域の座標に基づいて、閲覧画像にブレード領域を重畳表示する処理を行う。図54には、閲覧画像5440にブレード領域5450が重畳表示された様子が示されている。
ステップSG1117では、CPU34cがブレード領域抽出フラグをOFFとして、RAM34aに記録する。ステップSG1118では、CPU34cが、[ブレード領域抽出]チェックボックスからチェックを外す指示がユーザからあったかどうかを確認する。[ブレード領域抽出]チェックボックスからチェックを外す指示があった場合、処理はステップSG1119に移行し、[ブレード領域抽出]チェックボックスからチェックを外す指示がなかった場合、処理はステップSG8bに移行する。
ステップSG1119では、CPU34cが、ステップSG1115でRAM34aに記録されたブレード領域の座標に基づいて、閲覧画像に表示されたブレード領域を非表示とする処理を行う。また、CPU34cは、[ブレード領域抽出]チェックボックスからチェックを外す処理を行う。ステップSG1119の処理が終了すると、処理はステップSG8bに移行する。
次に、図56および図57を用いて、ステップSG8bの欠陥抽出処理の流れを説明する。図57に示すステップSG815,SG816の間にステップSG823,SG824が追加されている点が、第2の実施形態における欠陥抽出処理の流れ(図31および図32)と異なる。以下、ステップSG823,SG824の内容を説明する。
ステップSG823では、CPU34cが、[ブレード領域抽出]チェックボックスにチェックがあるかどうかを確認する。[ブレード領域抽出]チェックボックスにチェックがある場合、処理はステップSG824に移行し、[ブレード領域抽出]チェックボックスにチェックがない場合、処理はステップSG816に移行する。
ステップSG824では、CPU34cが、ステップSG1115でRAM34aに記録されたブレード領域の座標に基づいて、ブレード領域の外に位置するブロブを除去する。このため、ステップSG824に続いて行われるステップSG816では、ブレード領域内の欠陥輪郭線が抽出される。
本実施形態では、ステレオ光学アダプタ以外の光学アダプタを使用して撮像した閲覧画像を用いているが、ステレオ光学アダプタを使用して撮像した閲覧画像を用いることも可能である。ステレオ光学アダプタを使用して撮像した閲覧画像を用いることにより、ステップSG10の欠陥指定処理で、ブレード領域の欠陥に対する計測を行うことができる。
また、本実施形態では、図45のように、閲覧画像4402において、ブレード領域抽出処理によって抽出されたブレード領域が表示されるが、ブレード領域の位置を明示できれば、ブレード領域の表示態様は問わない。例えば、ブレード領域に対応する位置に矢印等の図形を表示したり、「ブレード」等の文字を表示したりしてもよい。
本実施形態によれば、ユーザがレコード画像ファイルを閲覧する際に、ブレード領域の抽出を行うことができ、さらにそのブレード領域内における欠陥のみを抽出することができる。
(第4の実施形態)
次に、本発明の第4の実施形態を説明する。第2の実施形態では、フレード記録ソフトの[画像閲覧]ウィンドウにレコード画像ファイルの閲覧機能が搭載されていたが、本実施形態における[画像閲覧]ウィンドウには、レコード画像ファイルの閲覧機能だけでなく、テンプレート画像ファイルとレコード画像ファイルを目視によって比較することによる検査を行うことができる目視検査機能が搭載されている。
図58は、本実施形態における[画像閲覧]ウィンドウを示している。第2の実施形態における[画像閲覧]ウィンドウと異なるのは、[画像閲覧]ウィンドウ内の右側に[テンプレート画像]ボックス5800が配置されている点である。
[テンプレート画像]ボックス5800は、テンプレート画像ファイルを表示するためのボックスである。CPU34cは、テンプレート画像ファイルとレコード画像ファイルのそれぞれの画像データを[画像閲覧]ウィンドウのグラフィック画像信号に重畳する処理を行い、処理後の信号(表示信号)をモニタ22へ出力する。これによって、モニタ22に表示される[画像閲覧]ウィンドウにおいて、[テンプレート画像]ボックス5800にテンプレート画像ファイルが表示され、[閲覧画像]ボックス5801にレコード画像ファイルが表示される。
本実施形態では、ユーザがリモコン23を介して[テンプレート画像]ボックス5800を操作することにより、図59のように、[テンプレート画像]ボックス5800を左右方向に移動させることができる。そして、 [テンプレート画像]ボックス5800と[閲覧画像]ボックス5801とが重なった領域では、それぞれのボックス内の画像が半透明に重なり合って表示される。さらに、図60のように、ユーザは、[テンプレート画像]ボックス5800を左に移動させ、半透明に重なり合って表示された領域を観察することで、テンプレート画像ファイルとレコード画像ファイルのそれぞれの画像を目視で比較し、検査を行うことができる。ユーザは、リモコン23を操作することにより、[テンプレート画像]ボックス5800と[閲覧画像]ボックス5801との重なり量を適宜調節することができ、[テンプレート画像]ボックス5800と[閲覧画像]ボックス5801を所望の状態にして、欠陥の有無を確認するなどの検査を行うことができる。
図59および図60に示した表示を行うため、CPU34cは以下の制御を行う。具体的には、CPU34cは、リモコン23を介して入力される[テンプレート画像]ボックス5800の操作指示を検出し、その操作指示に基づいて、[閲覧画像]ボックス5801と[テンプレート画像]ボックス5800との重なり量を算出する。続いて、CPU34cは、テンプレート画像ファイルとレコード画像ファイルのそれぞれの画像データを合成する。この合成の際に、[テンプレート画像]ボックス5800と[閲覧画像]ボックス5801の両者が重なり合う領域では、CPU34cは、テンプレート画像ファイルおよびレコード画像ファイルのRGBの各成分の輝度値の平均を算出し、その領域の輝度値とする。
続いて、CPU34cは、テンプレート画像ファイルとレコード画像ファイルのそれぞれの画像データを合成したデータを[画像閲覧]ウィンドウのグラフィック画像信号に重畳する処理を行い、処理後の信号をモニタ22へ出力する。これによって、テンプレート画像ファイルとレコード画像ファイルのそれぞれの画像が半透明に重なり合った画像を表示することができる。本実施形態では、具体的な処理の流れを示さなかったが、例えば、ステップSG5の画像選択処理の中でテンプレート画像ファイルとレコード画像ファイルを表示すると共に、ユーザからの操作指示に基づいて[テンプレート画像]ボックスを移動すればよい。
なお、本実施形態のように閲覧画像およびテンプレート画像を表示する状態(第1の状態)と、第2の実施形態および第3の実施形態のように欠陥輪郭線が重畳された閲覧画像を表示する状態(第2の状態)とを切り替えることができるようにしてもよい。以下、この表示状態の切り替えの一例を説明する。
欠陥輪郭線が重畳された閲覧画像が表示された第2の状態では、ユーザは欠陥抽出処理の結果を確認することができる。しかし、閲覧画像に映っているブレードの状態によっては、閲覧画像だけからでは、欠陥輪郭線が重畳された領域に本当に欠陥があるのかどうかを判断することができない場合が考えられる。そのような場合、ユーザはリモコン23を介して表示の切替指示を入力する。CPU34cはこの切替指示を検出すると、閲覧画像およびテンプレート画像を表示する第1の状態へ表示状態を切り替える制御を行う。ユーザは、第1の状態における閲覧画像およびテンプレート画像を見ながら、欠陥の有無を確認する。このように、ユーザは、第2の状態から第1の状態へ表示状態を切り替え、閲覧画像とテンプレートの画像を目視で比較することによって、欠陥抽出処理の結果を詳細に確認することができる。
上記の第1の状態において、閲覧画像上に欠陥輪郭線を重畳してもよい。例えば、図80に示すように、閲覧画像8000とテンプレート画像8001が表示されているときに、閲覧画像8000上に欠陥輪郭線8010が表示される。このとき、CPU34cは、ステップSG817でRAM34aに記録された欠陥輪郭線の座標を読み出し、その座標に基づいて、閲覧画像8000に欠陥輪郭線を表示するための処理を行う。
ユーザは、リモコン23を介して[テンプレート画像]ボックスを操作することにより、図81のように、テンプレート画像8001を左右方向に移動させる。前述したように、閲覧画像8000とテンプレート画像8001とが重なった領域では、それぞれの画像が半透明に重なり合って表示される。ユーザは、閲覧画像8000において欠陥輪郭線8010が示す欠陥の領域と、テンプレート画像8001においてその欠陥の領域に対応する領域とが重なるように閲覧画像8000とテンプレート画像8001の重なり量を調整し、欠陥の有無を確認しやすくする(図82)。
また、テンプレート画像8001において、閲覧画像8000上の欠陥輪郭線8010に対応する位置に、閲覧画像8000上の欠陥領域に対応する領域であることを示す情報を重畳表示してもよい。例えば、CPU34cは、ステップSG817でRAM34aに記録された欠陥輪郭線の座標を読み出し、その座標に基づいて、テンプレート画像8001に領域線を表示するための処理を行う。これによって、閲覧画像8000上の欠陥領域に対応するテンプレート画像8001上の領域が分かりやすくなる。
また、ユーザが、リモコン23を介して、閲覧画像8000上の欠陥輪郭線8010とテンプレート画像8001上の領域線との一方の表示形態を変更する指示を行った場合に、その表示形態の変更と連動して他方の表示形態を変更してもよい。例えば、一方の線の太さを変更する指示が行われた場合に、両方の線の太さを同じ太さに変更してもよい。
上述したように、本実施形態によれば、テンプレート画像ファイルとレコード画像ファイルの両方を同時に表示することによって、ユーザは、テンプレート画像ファイルとレコード画像ファイルとを目視によって比較することによる検査を行うことができる。また、テンプレート画像ファイルとレコード画像ファイルとを重ねて表示することによって、両者の比較が容易になる。さらに、テンプレート画像ファイルとレコード画像ファイルとが重なる領域ではそれぞれの画像を半透明にすることによって、ユーザが両方の画像を目視により比較し易くなる。
(第5の実施形態)
次に、本発明の第5の実施形態を説明する。第2の実施形態では、フレード記録ソフトの[画像閲覧]ウィンドウに欠陥抽出機能およびステレオ計測機能が搭載されていたが、本実施形態における[画像閲覧]ウィンドウには、ブレードの表面に対してステレオ計測を行い、ブレードの表面形状を計測する表面形状計測機能が搭載されている。
図61は、本実施形態における[画像閲覧]ウィンドウを示している。第2の実施形態における[画像閲覧]ウィンドウと異なるのは、[画像閲覧]ウィンドウの右側に[表面形状計測]グループボックス6100が配置されている点である。[表面形状計測]グループボックス6100内に、抽出したブレードの表面に対してステレオ計測を行うための各種GUIが配置されている。
以下、[表面形状計測]グループボックス6100内の各種GUIについて説明する。[ブレード領域抽出]チェックボックス6101は、閲覧画像に対してブレード領域抽出処理を行うためのチェックボックスであり、第3の実施形態における[画像閲覧]ウィンドウの[ブレード領域抽出]チェックボックスと同じものである。ユーザが[ブレード領域抽出]チェックボックス6101にチェックを入れると、図62のように、ブレード領域6210が閲覧画像6200に重畳表示される。図62のようなステレオ計測画像の場合、閲覧画像の左側計測領域内のみ、ブレード領域抽出処理が行われる。
[環境データ]ボタン6102は、環境データを選択するためのボタンであり、第2の実施形態における[画像閲覧]ウィンドウの[環境データ]ボタンと同じものである。[環境データ]ボタン6102によって環境データが選択されると、[表面形状計測]チェックボックス6103が無効状態から有効状態へ切り替わり、[表面形状計測]チェックボックス6103にチェックを入れることが可能となる。
[表面形状計測]チェックボックス6103は、閲覧画像に対して表面形状計測処理を行うためのものである。表面形状計測処理の詳細は、後述する。[ブレード領域抽出]チェックボックス6101にチェックが入った状態で、ユーザが[表面形状計測]チェックボックス6103にチェックを入れると、図63のように、閲覧画像6200に計測領域線6300が重畳表示される。
そして、図64のように、閲覧画像6200の左画像上に重畳表示されたブレード領域に、ユーザがカーソル6400を移動させ、左クリック等でブレード領域を指定すると、図65のように、ブレード領域が強調表示されると共に、ブレード領域内に計測点および格子線が表示される。さらに、閲覧画像6200の右画像上には、計測点に対応するマッチング点が表示される。さらに、 [表面形状]ボックス6104にブレードの表面形状が表示される。
[表面形状]ボックス6104は、ブレード表面に対するステレオ計測の結果に基づき、ブレードの表面形状を立体的に表示するためのものである。ユーザは、[表面形状]ボックス6104に表示されたブレードの表面形状に対して、カーソル操作によって、拡大・縮小・回転・視点変更を行うことが可能である。この詳細は後述する。
次に、図66を用いて、本実施形態における画像閲覧処理の流れを説明する。図66に示すステップSG3cの初期化処理、ステップSG4cの日時選択処理、ステップSG5cの画像選択処理の内容が、第2の実施形態における画像閲覧処理の流れ(図27)と異なる。また、図66に示すステップSG5cとステップSG6との間に、ステップSG11のブレード領域抽出処理、ステップSG12の表面形状計測前処理、ステップSG13の表面形状計測処理が追加されていることも、第2の実施形態における画像閲覧処理の流れ(図27)と異なる。以下、第2の実施形態における画像閲覧処理の流れ(図27)と異なる点のみ、説明する。
ステップSG3cでは、CPU34cが初期化処理を行う。初期化処理の詳細は、後述する。
ステップSG4cでは、CPU34cが日時選択処理を行う。日時選択処理の詳細は、後述する。
ステップSG5cでは、CPU34cが画像選択処理を行う。画像選択処理の詳細は、後述する。
ステップSG11では、CPU34cがブレード領域抽出処理を行う。本実施形態におけるブレード領域抽出処理は、第3の実施形態におけるブレード領域抽出処理と同様である。
ステップSG12では、CPU34cが表面形状計測前処理を行う。表面形状計測前処理の詳細は、後述する。
ステップSG13では、CPU34cが表面形状計測処理を行う。表面形状計測処理とは、CPU34cが、閲覧画像に重畳表示されたブレード領域をユーザが指定したことを検出し、 [表面形状]ボックスにブレードの表面形状を表示する処理のことである。表面形状計測処理の詳細は、後述する。
次に、図67を用いて、ステップSG3cの初期化処理の流れを説明する。図67に示すステップSG310cおよびステップSG311cの内容が、第2の実施形態における初期化処理の流れ(図28)と異なる。以下、第2の実施形態における初期化処理の流れ(図28)と異なる点のみ、説明する。
ステップSG310cでは、CPU34cが[表面形状計測]チェックボックスを無効とする。ステップSG311cでは、CPU34cが、ブレード領域抽出フラグ、表面形状計測フラグをそれぞれOFFとして、RAM34aに記録する。ブレード領域抽出フラグとは、第3の実施形態で説明したように、ブレード領域抽出を行うかどうかを示すフラグである。表面形状計測フラグとは、表面形状計測前処理を行うかどうかを示すフラグである。ステップSG311cの処理が終了すると、処理はステップSG4cに移行する。
次に、図68を用いて、ステップSG4cの日時選択処理の流れを説明する。図68に示すステップSG408cの内容が、第2の実施形態における日時選択処理の流れ(図29)と異なる。以下、第2の実施形態における日時選択処理の流れ(図29)と異なる点のみ、説明する。
ステップSG408cでは、CPU34cが、ブレード領域抽出フラグ、表面形状計測フラグをそれぞれONとして、RAM34aに記録する。ステップSG408cの処理が終了すると、処理はステップSG5cに移行する。ステップSG408cにおいて、ブレード領域抽出フラグ、表面形状計測フラグをそれぞれONとするのは、ステップSG400において、[日時選択]ボックスのレコード開始日時の選択が変更されると、閲覧画像が変更されることにより、ブレード領域抽出処理および表面形状計測処理を改めて行う必要があるからである。
次に、図69を用いて、ステップSG5cの画像選択処理の流れを説明する。図69に示すステップSG508cおよびステップSG509cの内容が、第2の実施形態における画像選択処理の流れ(図30)と異なる。以下、第2の実施形態における画像選択処理の流れ(図30)と異なる点のみ、説明する。
ステップSG508cでは、CPU34cが、ブレード領域抽出フラグ、表面形状計測フラグをそれぞれONとして、RAM34aに記録する。ステップSG509cでは、CPU34cが、ブレード領域抽出フラグ、表面形状計測フラグをそれぞれONとして、RAM34aに記録する。ステップSG509cの処理が終了すると、処理はステップSG11に移行する。
ステップSG508c,SG509cにおいて、ブレード領域抽出フラグ、表面形状計測フラグをそれぞれONとするのは、ステップSG500,SG504において、[<< 前]ボタン、[次 >>]ボタンがそれぞれ押下されると、閲覧画像が変更されることにより、ブレード領域抽出処理、表面形状計測処理を改めて行う必要があるからである。
次に、図70を用いて、ステップSG12の表面形状計測前処理の流れを説明する。ステップSG1200では、CPU34cが、[環境データ]ボタンがユーザにより押下されたかどうかを確認する。[環境データ]ボタンが押下された場合、処理はステップSG1201に移行し、[環境データ]ボタンが押下されていない場合、処理はステップSG1205に移行する。
ステップSG1201では、CPU34cが、図示しない[ファイルを開く]ダイアログを表示するための処理を行う。ステップSG1202では、CPU34cが、[ファイルを開く]ダイアログにおいてユーザにより環境データが選択されたかどうかを確認する。環境データが選択された場合、処理はステップSG1203に移行し、環境データが選択されていない場合、処理はステップSG1205に移行する。
ステップSG1203では、CPU34cが、選択された環境データをRAM34aに記録する。RAM34aに記録された環境データは、環境データが選択される度に上書きされる。ステップSG1204では、CPU34cが[表面形状計測]チェックボックスを有効にする。ステップSG1205では、CPU34cが、[表面形状計測]チェックボックスにチェックがあるかどうかを確認する。[表面形状計測]チェックボックスにチェックがある場合、処理はステップSG1208に移行し、[表面形状計測]チェックボックスにチェックがない場合、処理はステップSG1206に移行する。
ステップSG1206では、CPU34cが、[表面形状計測]チェックボックスにチェックを入れる指示がユーザからあったかどうかを確認する。[表面形状計測]チェックボックスにチェックを入れる指示があった場合、処理はステップSG1207に移行し、[表面形状計測]チェックボックスにチェックを入れる指示がない場合、処理はステップSG13に移行する。
ステップSG1207では、CPU34cが、表面形状計測フラグをONとして、RAM34aに記録する。また、CPU34cは、[表面形状計測]チェックボックスにチェックを入れる処理を行う。ステップSG1208では、CPU34cが、表面形状計測フラグがONかどうかを確認する。表面形状計測フラグがONの場合、処理はステップSG1209に移行し、表面形状計測フラグがOFFの場合、処理はステップSG13に移行する。
ステップSG1209では、CPU34cが、RAM34aに記録されている計測領域線の座標に基づいて、閲覧画像に計測領域線を重畳表示するための処理を行う。計測領域線の座標は、環境データの一部として、RAM34aに記録されている。
ステップSG1210では、CPU34cが、保存フォルダに保存された閲覧画像ファイルの画像データを取得し、RAM34aに記録する。ステップSG1211では、CPU34cが、ステップSG1210で取得された画像データを補正する。ステップSG1211で行われる補正処理は、特開平10−248806号公報に記載されているものと同様である。
ステップSG1212では、CPU34cが、ステップSG1211で補正された画像データを、補正画像データとしてRAM34aに記録する。RAM34aに記録された補正画像データは、補正画像データが作成される度に上書きされる。ステップSG1213では、CPU34cが、表面形状計測フラグをOFFとして、RAM34aに記録する。
ステップSG1214では、CPU34cが、[表面形状計測]チェックボックスからチェックを外す指示がユーザからあったかどうかを確認する。[表面形状計測]チェックボックスからチェックを外す指示があった場合、処理はステップSG1215に移行し、[表面形状計測]チェックボックスからチェックを外す指示がない場合、処理はステップSG13に移行する。ステップSG1215では、CPU34cが、RAM34aに記録されている計測領域線の座標に基づいて、閲覧画像に表示された計測領域線を非表示とする処理を行う。また、CPU34cは、[表面計測]チェックボックスからチェックを外す処理を行う。ステップSG1215の処理が終了すると、処理はステップSG13に移行する。
次に、図71を用いて、ステップSG13の表面形状計測処理の流れを説明する。ステップSG1300では、CPU34cが、閲覧画像の左側計測領域内に表示されたブレード領域がユーザにより指定されたかどうかを確認する。ブレード領域がユーザにより指定された場合、処理はステップSG1301に移行し、ブレード領域がユーザにより指定されていない場合、処理はステップSG6に移行する。
ステップSG1301では、CPU34cが、閲覧画像に既に表示されたブレード領域、計測点、格子線、マッチング点を非表示とする処理を行う。ステップSG1302では、CPU34cが、[表面形状]ボックスに既に表示されたブレードの表面形状を非表示とする処理を行う。ステップSG1303では、CPU34cが、閲覧画像にブレード領域を強調して重畳表示するための処理を行う。ブレード領域を強調表示するのは、現在ユーザにより指定されているブレード領域であることを示すためである。
ステップSG1304では、CPU34cが、RAM34aに記録された、現在ユーザにより指定されているブレード領域の座標に基づいて、計測点座標を算出する。計測点とは、ブレードの表面形状を計測する際に用いる点であり、ブレード領域内において所定の間隔で設定された格子線の交点として算出される(図65参照)。この計測点は、格子線とブレード領域のエッジとの交点も含む。
ステップSG1305では、CPU34cが、閲覧画像の画像データに基づいて、左側計測領域内の計測点座標に対応した、右側計測領域内のマッチング点座標を算出する。より具体的には、CPU34cが、計測点座標に基づいてパターンマッチング処理を実行し、左右2画像の対応点であるマッチング点の座標を算出する。このパターンマッチング処理の方法は、特開2004−49638号公報に記載されたものと同様である。
ステップSG1306では、CPU34cが、ステップSG1304〜SG1305で算出された計測点座標およびマッチング点座標に基づいて、各計測点の空間点座標(現実の空間上の3次元座標)を算出する。空間点座標の計算方法は、特開2004−49638号公報に記載されているものと同様である。
ステップSG1307では、CPU34cが、閲覧画像の左側計測領域内に計測点、格子線を重畳表示すると共に右側計測領域内にマッチング点を重畳表示する処理を行う。このとき、計測点、格子線、マッチング点は強調表示される。
ステップSG1308では、[表面形状]ボックスにブレードの表面形状を立体的に表示するため、CPU34cが、ステップSG1306で算出された空間点座標に基づいて、、ワイヤーフレームを含むグラフィック画像信号を生成し、モニタ22へ出力する。このとき、[表面形状]ボックスに表示されるブレードの各空間点がそれぞれ曲線で結ばれ、ワイヤーフレームで表示される。ワイヤーフレームとは、3次元座標を有する複数の点を一定の順序で結んでいくことで立体物を描画するものである。
ユーザは、[表面形状]ボックスに表示された表面形状に対して、カーソル操作によって、拡大・縮小・回転・視点変更を行うことが可能である。図72(a)に示す表面形状7200が表示された状態で、カーソル操作によってユーザが縮小を指示すると、図72(b)のように、表面形状7200を縮小した表面形状7210が表示される。また、図72(a)に示す表面形状7200が表示された状態で、カーソル操作によってユーザが拡大を指示すると、図72(c)のように、表面形状7200を拡大した表面形状7220が表示される。
また、図72(a)に示す表面形状7200が表示された状態で、カーソル操作によってユーザが回転を指示すると、図72(d)のように、表面形状7200を回転した表面形状7230が表示される。また、図72(a)に示す表面形状7200が表示された状態で、カーソル操作によってユーザが視点変更を指示すると、図72(e)のように、表面形状7200を別方向から見た表面形状7240が表示される。
上記のような表面形状の表示を行うため、CPU34cは、リモコン23を介して入力される表面形状の操作指示を検出し、その操作指示に基づいて、表面形状の表示形態を変更する処理を行う。すなわち、CPU34cは、操作指示が拡大・縮小・回転・視点変更のいずれであるのかを識別し、表面形状に対して、拡大・縮小・回転・視点変更のいずれかを行う。
次に、本実施形態の変形例を説明する。上記の説明では、閲覧画像上のブレードに対してのみ、表面形状を計測することができたが、以下の変形例では、閲覧画像だけでなく、テンプレート画像上のブレードに対しても、表面形状を計測することができる。さらに、以下の変形例では、閲覧画像上およびテンプレート画像上のブレードの2つの表面形状を、並べて表示することができる。
図73は、本実施形態における[画像閲覧]ウィンドウを示している。図61〜図65に示した[画像閲覧]ウィンドウと異なるのは、[表面形状]ボックスが2つ配置されている点である。[表面形状]ボックス7300は閲覧画像上のブレードの表面形状を表示するものであり、[表面形状]ボックス7301はテンプレート画像上のブレードの表面形状を表示するものである。
ユーザは、[表面形状]ボックス7300,7301に表示された表面形状に対して、カーソル操作によって、拡大・縮小・回転・視点変更を行うことが可能である。このとき、左右に並んだ2つの表面形状のうち、ユーザがカーソル操作によって1つの表面形状を選択し、拡大・縮小・回転・視点変更を行うと、もう1つの表面形状に対しても同様に拡大・縮小・回転・視点変更が行われる。
図74(a)に示す表面形状7400,7401が表示された状態で、カーソル操作によってユーザが縮小を指示すると、図74(b)のように、表面形状7400,7401をそれぞれ縮小した表面形状7410,7411が表示される。また、図74(a)に示す表面形状7400,7401が表示された状態で、カーソル操作によってユーザが拡大を指示すると、図74(c)のように、表面形状7400,7401をそれぞれ拡大した表面形状7420,7421が表示される。
また、図74(a)に示す表面形状7400,7401が表示された状態で、カーソル操作によってユーザが回転を指示すると、図75(a)のように、表面形状7400,7401を回転した表面形状7430,7431が表示される。また、図72(a)に示す表面形状7200,7201が表示された状態で、カーソル操作によってユーザが視点変更を指示すると、図75(b)のように、表面形状7300,7301を別方向から見た表面形状7440,7441が表示される。
上記のような表面形状の表示を行うため、CPU34cは、リモコン23を介して入力される表面形状の操作指示を検出し、その操作指示に基づいて、2つの表面形状の表示形態を変更する処理を行う。すなわち、CPU34cは、操作指示が拡大・縮小・回転・視点変更のいずれであるのかを識別し、2つの表面形状に対して、拡大・縮小・回転・視点変更のいずれかを同様に行う。
このように、閲覧画像上のブレードだけでなくテンプレート画像上のブレードの表面形状を表示することによって、ユーザは2つの表面形状の比較・検討を容易に、かつ確実に行うことができる。例えば、図76(a)は、閲覧画像上のブレード表面に陥没部がある場合の[表面形状]ボックスを示している。ユーザがカーソル操作によって、拡大を行うと、図76(b)のように、2つの表面形状が拡大表示される。これによって、ユーザは、閲覧画像上のブレード(陥没部あり)と、テンプレート画像上のブレード(陥没部なし)とを容易に比較することができる。
次に、図77を用いて、本変形例における画像閲覧処理の流れを説明する。図77に示すステップSG12cの表面形状計測前処理、ステップSG13cの表面形状計測処理の内容が、図66に示した画像閲覧処理の流れと異なる。以下、図66に示した画像閲覧処理の流れと異なる点のみ、説明する。
ステップSG12cでは、CPU34cが表面形状計測前処理を行う。表面形状計測前処理の詳細は、後述する。
ステップSG13cでは、CPU34cが表面形状計測処理を行う。表面形状計測処理の詳細は、後述する。
次に、図78を用いて、ステップSG12cの表面形状計測前処理の流れを説明する。図78に示すステップSG1210c〜SG1212cの内容が、図70に示した表面形状計測前処理の流れと異なる。以下、図70に示した表面形状計測前処理の流れと異なる点のみ、説明する。
ステップSG1210cでは、CPU34cが、保存フォルダに保存された閲覧画像ファイルおよびテンプレート画像ファイルの画像データを取得し、RAM34aに記録する。ステップSG1211cでは、CPU34cが、ステップSG1210cで取得された2つの画像データを補正する。ステップSG1212cでは、CPU34cが、ステップSG1211cで補正された2つの画像データを、補正画像データとしてRAM34aに記録する。RAM34aに記録された2つの補正画像データは、補正画像データが作成される度に上書きされる。
次に、図79を用いて、ステップSG13cの表面形状計測処理の流れを説明する。図79に示すステップSG1302c,SG1304c〜SG1306c,SG1308cの内容が、図71に示した表面形状計測処理の流れと異なる。以下、図71に示した表面形状計測処理の流れと異なる点のみ、説明する。
ステップSG1302cでは、CPU34cが、[表面形状]ボックスに既に表示されたブレードの表面形状を非表示とする処理を行う。このブレードの表面形状とは、閲覧画像上のブレードの表面形状とテンプレート画像上のブレードの表面形状との両方である。
ステップSG1304cでは、CPU34cが、RAM34aに記録された、現在ユーザにより閲覧画像上で指定されているブレード領域の座標に基づいて、計測点座標を算出する。このとき、閲覧画像上のブレード領域とテンプレート画像上のブレード領域との両方に対して、計測点座標が算出される。第3の実施形態で説明したように、ブレード領域は元々テンプレート画像と参照画像との差分から求められるので、現在ユーザにより閲覧画像上で指定されているブレード領域の座標はテンプレート画像についても共通である。したがって、ステップSG1304cで算出された計測点座標は、閲覧画像とテンプレート画像とに共通である。
ステップSG1305cでは、CPU34cが、閲覧画像およびテンプレート画像それぞれの画像データに基づいて、左側計測領域内の計測点座標に対応した、右側計測領域内のマッチング点座標を算出する。ステップSG1306cでは、CPU34cが、閲覧画像およびテンプレート画像それぞれにおいて算出された計測点座標およびマッチング点座標に基づいて、各計測点の空間点座標(現実の空間上の3次元座標)を算出する。
ステップSG1308cでは、CPU34cが、ステップSG1306cで算出された空間点座標に基づいて、[表面形状]ボックスにブレードの表面形状(閲覧画像、テンプレート画像)を立体的に表示するため、ワイヤーフレームを含むグラフィック画像信号を生成し、モニタ22へ出力する。
なお、欠陥抽出処理が既に行われ、欠陥輪郭線の座標が求められている場合に、閲覧画像上のブレードの表面形状に、欠陥の位置を示す情報を重畳表示してもよい。例えば、図83に示すように、閲覧画像上のブレードの表面形状8300上に、欠陥の位置に対応した領域線8310が表示される。これによって、ユーザが閲覧画像上のブレードの表面形状とテンプレート画像上のブレードの表面形状とを目視で比較する際に、欠陥抽出処理によって抽出された欠陥の位置に注目しやすくなり、欠陥の有無を容易に確認することができる。
上述したように、本実施形態によれば、ユーザがレコード画像ファイルを閲覧する際に、ブレードの3次元的な表面形状を計測することができる。また、表面形状を表示することによって、ユーザがブレードの欠陥の有無や欠陥の立体形状を容易に確認することができる。さらに、背景を含まないブレード領域の表面形状を計測・表示することによって、ユーザがブレードの表面形状を確実に確認することができる。さらに、ユーザが指定したブレード領域の表面形状を計測・表示することによって、ユーザが希望するブレードの表面形状を確認することができる。
また、本実施形態によれば、ユーザがレコード画像ファイルを閲覧する際に、閲覧画像上およびテンプレート画像上のブレードの3次元的な表面形状を計測することができる。さらに、それらの表面形状を並べて表示することによって、ユーザが2つの表面形状を比較・検討しながら、ブレードの欠陥の有無や欠陥の立体形状を容易に確認することができる。さらに、閲覧画像上の表面形状とテンプレート画像上の表面形状との両方に共通する指示によって、閲覧画像上の表面形状とテンプレート画像上の表面形状に対して同様に拡大・縮小・回転・視点変更を行うことによって、両方の表面形状を比較し易くなると共に、ユーザの操作負担を減らすことができる。
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。