(57)【要約】【課題】ダイナミックレンジを拡大した合成画像データを用いてより精度の高い画像処理を行なうことのできる画像処理装置および画像処理方法を提供する。【解決手段】撮像部を用いて異なる露光条件で複数回撮像を行なうことにより、第１の階調範囲で規定される画素情報を有する複数の入力画像データを取得するステップと、複数の入力画像データを合成することで、第１の階調範囲より広い第２の階調範囲で規定される画素情報を有する合成画像データを生成するステップと、合成画像データを対象として、撮像された対象物に関する検出または計測を容易化するための画像処理を行なうことにより、第２の階調範囲で規定される画素情報を有する処理画像データを生成するステップと、処理画像データを第２の階調範囲より狭い第３の階調範囲で規定される画素情報を有する出力画像データに変換するステップとを含む、画像処理方法が開示される。【選択図】図４
2010239610.tif 000002
【特許請求の範囲】
【請求項１】
露光条件を変更可能な撮像部に接続された画像処理装置であって、
前記撮像部を用いて異なる露光条件で複数回撮像を行なうことにより、複数の入力画像データを取得する取得手段を備え、前記入力画像データは、前記撮像部の検出感度に応じた第１の階調範囲で規定される画素情報を有し、
前記複数の入力画像データを合成することで合成画像データを生成する合成手段を備え、前記合成画像データは、前記第１の階調範囲より広い第２の階調範囲で規定される画素情報を有し、
前記合成画像データを対象として、撮像された対象物に関する検出または計測を容易化するための画像処理を行なうことにより、前記第２の階調範囲で規定される画素情報を有する処理画像データを生成する処理手段と、
前記処理画像データを前記第２の階調範囲より狭い第３の階調範囲で規定される画素情報を有する出力画像データに変換する変換手段とを備える、画像処理装置。
【請求項２】
前記処理手段は、前記合成画像データについての画像データ比較を行なうことで、前記処理画像データを生成する、請求項１に記載の画像処理装置。
【請求項３】
前記処理手段は、前記合成画像データについての予め登録されたモデル画像データに対する画像差分を算出することで、前記処理画像データを生成する、請求項２に記載の画像処理装置。
【請求項４】
前記処理手段は、
前記合成画像データに対して第１の平滑化処理を行なうことで第１の平滑化画像データを生成する手段と、
前記合成画像データに対して前記第１の平滑化処理とは異なる第２の平滑化処理を行なうことで第２の平滑化画像データを生成する手段と、
前記第１の平滑化画像データと前記第２の平滑化画像データとの間で画像差分を算出することで前記処理画像データを生成する手段とを含む、請求項２に記載の画像処理装置。
【請求項５】
前記処理手段は、前記合成画像データに含まれる画素情報についての特徴量を反映した前記処理画像データを生成する、請求項１に記載の画像処理装置。
【請求項６】
前記処理手段は、前記合成画像データに含まれる各画素および当該画素に隣接する画素が有する画素情報から、当該画素に対応する前記処理画像データの各画素が有する画素情報を算出する、請求項５に記載の画像処理装置。
【請求項７】
前記画像処理装置は、さらに表示部に接続されており、
前記第３の階調範囲は、前記表示部における表示可能階調に適合されている、請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項８】
前記第３の階調範囲は、前記出力画像データの出力先デバイスに適合されている、請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項９】
前記変換手段は、前記処理画像データが有する画素情報のうち、その値が所定範囲内であるものを前記第３の階調範囲における有効な値に割当てる、請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項１０】
前記画像処理装置は、さらに、ユーザ指令を受付ける入力部と接続されており、
前記変換手段は、前記入力部を介して下限値および上限値が設定されると、その画素情報の値が前記下限値と一致する画素に対して前記第３の階調範囲の下限値の階調値を割当て、その画素情報の値が前記上限値と一致する画素に対して前記第３の階調範囲の上限値の階調値を割当てる、請求項９に記載の画像処理装置。
【請求項１１】
前記処理手段は、前記合成画像データの一部である画像データから前記処理画像データを生成する、請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項１２】
前記出力画像データを用いて、前記撮像された対象物に関する検出処理または計測処理を実行する検出計測手段をさらに備える、請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項１３】
露光条件を変更可能な撮像部に接続された処理装置における画像処理方法であって、
前記撮像部を用いて異なる露光条件で複数回撮像を行なうことにより、複数の入力画像データを取得するステップを備え、前記入力画像データは、前記撮像部の検出感度に応じた第１の階調範囲で規定される画素情報を有し、
前記複数の入力画像データを合成することで合成画像データを生成するステップを備え、前記合成画像データは、前記第１の階調範囲より広い第２の階調範囲で規定される画素情報を有し、
前記合成画像データを対象として、撮像された対象物に関する検出または計測を容易化するための画像処理を行なうことにより、前記第２の階調範囲で規定される画素情報を有する処理画像データを生成するステップと、
前記処理画像データを前記第２の階調範囲より狭い第３の階調範囲で規定される画素情報を有する出力画像データに変換するステップとを備える、画像処理方法。
【請求項１４】
前記生成するステップは、前記合成画像データについての画像データ比較を行なうことで、前記処理画像データを生成するステップを含む、請求項１３に記載の画像処理方法。
【請求項１５】
前記生成するステップは、前記合成画像データに含まれる画素情報についての特徴量を反映した前記処理画像データを生成するステップを含む、請求項１３に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、異なる露光条件で複数回撮像して取得される複数の画像を合成して、ダイナミックレンジを拡大する画像処理装置および画像処理方法に関するものである。
【背景技術】
【０００２】
ＦＡ（Factory Automation）分野などにおいては、製造過程の半製品や出荷前の製品などに生じる欠陥を光学的に検出したり、その大きさを光学的に計測したりする装置として、いわゆる視覚センサが実用化されている。
【０００３】
このような視覚センサを用いて検出や計測を行なう場合には、対象物を適切に撮像する必要がある。一般的に、ＣＣＤ（Coupled Charged Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）画像センサなどの撮像素子のダイナミックレンジ（光を検出可能な階調範囲）は有限である。そのため、撮像時の露光時間が相対的に長くなると、全面的もしくは部分的に白飛び（ハレーション）を生じてしまい、対象物の輝度および色情報を正確に取得できない。逆に、撮像時の露光時間が相対的に短くなると、全面的もしくは部分的に黒つぶれを生じてしまい、有効な輝度を取得できない。さらに、局所的に反射率が異なる部分をもつ対象物や曲率の大きな部分をもつ対象物では、照明などの影響を受けて、局所的な白飛びや黒つぶれが発生し得る。
【０００４】
このように、同一の対象物から放射される光強度（単位時間当たりに入射する光エネルギー）の最小値と最大値との差が、撮像素子のダイナミックレンジの範囲を超える場合には、対象物の全体を適切に撮像することができないという問題があった。
【０００５】
そこで、同一の対象物を異なる露光条件で複数回撮像し、これによって取得される複数の画像を合成することで、ダイナミックレンジを拡大させる技術が知られている。このような処理は、ハイダイナミック合成処理やスーパーラチチュード処理（Super Latitude process）とも称される。たとえば特開２００２−３３４３２６号公報（特許文献１）には、ダイナミックレンジ拡大を少ない計算処理負荷によって実現する視覚センサが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−３３４３２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、出力先の後続処理やデバイスのダイナミックレンジが制限されている場合には、上述のような画像合成処理によりダイナミックレンジを拡大した画像データを内部的に生成しても、出力時には、出力先のダイナミックレンジに適合させなければならない。すなわち、各画素がより多くの情報量を有する合成画像データに対して、その情報量を削減した上で出力せざるを得なかった。そのため、このような情報量を削減して出力された合成画像データに対してさらなる画像処理（たとえば、欠陥検出処理など）を行なおうとすると、ダイナミックレンジを拡大した合成画像データが有する情報量を有効に利用できないという課題があった。
【０００８】
そこで、この発明は、これらの問題を解決するためになされたものであり、その目的は、ダイナミックレンジを拡大した合成画像データを用いてより精度の高い画像処理を行なうことのできる画像処理装置および画像処理方法を提供することである。
【課題を解決するための手段】
【０００９】
この発明のある局面に従えば、露光条件を変更可能な撮像部に接続された画像処理装置を提供する。画像処理装置は、取得手段と、合成手段と、処理手段と、変換手段とを含む。取得手段は、撮像部を用いて異なる露光条件で複数回撮像を行なうことにより、複数の入力画像データを取得する。入力画像データは、撮像部の検出感度に応じた第１の階調範囲で規定される画素情報を有する。合成手段は、複数の入力画像データを合成することで合成画像データを生成する。合成画像データは、第１の階調範囲より広い第２の階調範囲で規定される画素情報を有する。処理手段は、合成画像データを対象として、撮像された対象物に関する検出または計測を容易化するための画像処理を行なうことにより、第２の階調範囲で規定される画素情報を有する処理画像データを生成する。変換手段は、処理画像データを第２の階調範囲より狭い第３の階調範囲で規定される画素情報を有する出力画像データに変換する。
【００１０】
好ましくは、処理手段は、合成画像データについての画像データ比較を行なうことで、処理画像データを生成する。
【００１１】
さらに好ましくは、処理手段は、合成画像データについての予め登録されたモデル画像データに対する画像差分を算出することで、処理画像データを生成する。
【００１２】
あるいは、さらに好ましくは、処理手段は、合成画像データに対して第１の平滑化処理を行なうことで第１の平滑化画像データを生成する手段と、合成画像データに対して第１の平滑化処理とは異なる第２の平滑化処理を行なうことで第２の平滑化画像データを生成する手段と、第１の平滑化画像データと第２の平滑化画像データとの間で画像差分を算出することで処理画像データを生成する手段とを含む。
【００１３】
好ましくは、処理手段は、合成画像データに含まれる画素情報についての特徴量を反映した処理画像データを生成する。
【００１４】
さらに好ましくは、処理手段は、合成画像データに含まれる各画素および当該画素に隣接する画素が有する画素情報から、当該画素に対応する処理画像データの各画素が有する画素情報を算出する。
【００１５】
好ましくは、画像処理装置は、さらに表示部に接続されており、第３の階調範囲は、表示部における表示可能階調に適合されている。
【００１６】
好ましくは、第３の階調範囲は、出力画像データの出力先デバイスに適合されている。
好ましくは、変換手段は、処理画像データが有する画素情報のうち、その値が所定範囲内であるものを第３の階調範囲における有効な値に割当てる。
【００１７】
さらに好ましくは、画像処理装置は、さらに、ユーザ指令を受付ける入力部と接続されており、変換手段は、入力部を介して下限値および上限値が設定されると、その画素情報の値が下限値と一致する画素に対して第３の階調範囲の下限値の階調値を割当て、その画素情報の値が上限値と一致する画素に対して第３の階調範囲の上限値の階調値を割当てる。
【００１８】
好ましくは、処理手段は、合成画像データの一部である画像データから処理画像データを生成する。
【００１９】
好ましくは、画像処理装置は、出力画像データを用いて、撮像された対象物に関する検出処理または計測処理を実行する検出計測手段をさらに含む。
【００２０】
この発明の別の局面に従えば、露光条件を変更可能な撮像部に接続された処理装置における画像処理方法を提供する。画像処理方法は、撮像部を用いて異なる露光条件で複数回撮像を行なうことにより、複数の入力画像データを取得するステップを含む。入力画像データは、撮像部の検出感度に応じた第１の階調範囲で規定される画素情報を有する。画像処理方法は、複数の入力画像データを合成することで合成画像データを生成するステップを含む。合成画像データは、第１の階調範囲より広い第２の階調範囲で規定される画素情報を有する。画像処理方法は、合成画像データを対象として、撮像された対象物に関する検出または計測を容易化するための画像処理を行なうことにより、第２の階調範囲で規定される画素情報を有する処理画像データを生成するステップと、処理画像データを第２の階調範囲より狭い第３の階調範囲で規定される画素情報を有する出力画像データに変換するステップとを含む。
【００２１】
好ましくは、処理ステップは、合成画像データについての画像データ比較を行なうことで、処理画像データを生成するステップを含む。
【００２２】
好ましくは、処理ステップは、合成画像データに含まれる画素情報についての特徴量を反映した処理画像データを生成するステップを含む。
【発明の効果】
【００２３】
この発明によれば、ダイナミックレンジを拡大した合成画像データを用いてより精度の高い画像処理を行なうことができる。
【図面の簡単な説明】
【００２４】
【図１】この発明の実施の形態に従う画像処理装置を含む視覚センサシステムの全体構成を示す概略図である。
【図２】この発明の実施の形態に従うコンピュータのハードウェア構成を示す概略構成図である。
【図３】ワークとして腕時計の裏面を撮像した場合の入力画像データを示す図である。
【図４】この発明の実施の形態に従う画像処理装置における処理概要を説明するための概念図である。
【図５】この発明の実施の形態に従う画像処理装置における処理概要を説明するための概念図である。
【図６】この発明の実施の形態に従う画像処理装置の全体制御構造を示す機能ブロック図である。
【図７】撮像部８に設定される露光時間と撮像に適した「明るさ」範囲との関係の一例を示す図である。
【図８】重み関数および応答関数の特性の一例を示す図である。
【図９】この発明の実施の形態に従う画像処理装置のモニタに表示される「設定モード」における画面表示例を示す図である。
【図１０】この発明の実施の形態に従う画像処理装置のモニタに表示される「設定モード」における画面表示例を示す図である。
【図１１】この発明の実施の形態に従う後処理部の制御構造を示す機能ブロック図である。
【図１２】図１１に示すマッピング部によるマッピング処理を説明するための図である。
【図１３】この発明の実施の形態に従う画像処理装置のモニタに表示される差分抽出処理の選択時における画面表示例を示す図である。
【図１４】この発明の実施の形態に従う画像処理装置のモニタに表示される差分抽出処理の選択時における画面表示例を示す図である。
【図１５】この発明の実施の形態に従う差分抽出処理に用いられる合成画像データの一例を示す図である。
【図１６】図１５（ａ）に示す画像を対象にした場合における画面表示例を示す図である。
【図１７】図１５（ｂ）に示す画像を対象にした場合における画面表示例を示す図である。
【図１８】図１７に示す画面において明度上下限範囲を変更した場合における画面表示例を示す図である。
【図１９】この発明の実施の形態に従う差分抽出処理における位置補正処理において用いられる合成画像データの一例を示す図である。
【図２０】図１９（ｂ）に示す画像を対象にした場合における画面表示例を示す図である。
【図２１】この発明の実施の形態に従う差分抽出処理における補正モデルの登録時における画面表示例を示す図である。
【図２２】この発明の実施の形態に従う後処理部の制御構造を示す機能ブロック図である。
【図２３】この発明の実施の形態に従う画像処理装置のモニタに表示されるエッジ抽出処理の選択時における画面表示例を示す図である。
【図２４】図１５（ａ）に示すようなコネクタを撮像して得られた合成画像データに対してエッジ抽出処理を実行した結果（その１）を示す図である。
【図２５】図１５（ａ）に示すようなコネクタを撮像して得られた合成画像データに対してエッジ抽出処理を実行した結果（その２）を示す図である。
【図２６】この発明の実施の形態に従うバンドパスフィルタ処理の各ステージにおける画像データの一例を示す図である。
【図２７】この発明の実施の形態に従う画像処理装置のモニタに表示されるバンドパスフィルタ処理の選択時における画面表示例を示す図である。
【図２８】この発明の実施に形態に従う画像処理装置における全体処理手順を示すフローチャートである。
【図２９】この発明の実施に形態に従う画像処理装置におけるマッピング処理の手順を示すフローチャートである。
【図３０】この発明の実施に形態に従う画像処理装置における差分抽出処理の手順を示すフローチャートである。
【図３１】この発明の実施に形態に従う画像処理装置におけるエッジ抽出処理の手順を示すフローチャートである。
【図３２】この発明の実施に形態に従う画像処理装置におけるバンドパスフィルタ処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２５】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２６】
［Ａ．概要］
この発明の実施の形態に従う画像処理装置は、異なる露光条件で対象物（以下「ワーク」とも称す。）を複数回撮像することで複数の画像データ（以下「入力画像データ」とも称す。）を取得し、これらの取得した入力画像データがそれぞれ有する画素情報（色情報および輝度）を反映した合成画像データを生成する。このような画像合成処理によって、撮像部が固有に有しているダイナミックレンジ（検出感度に応じた階調範囲）に比較して、より広いダイナミックレンジをもつ画像データ（以下「合成画像データ」とも称す。）を生成する。
【００２７】
特に、本実施の形態によれば、より広いダイナミックレンジをもつ合成画像データを対象として直接的に各種の画像処理装置（後処理）を行なうとともに、その後処理によって得られた画像データ（以下「後処理後画像データ」とも称す。）を、出力先の階調範囲に適合したダイナミックレンジをもつ画像データ（以下「出力画像データ」とも称す。）に変換する。この後処理は、典型的には、撮像されたワークに関する検出または計測を容易化するための画像処理である。この後処理では、合成画像データが有するダイナミックレンジを維持したまま処理が行なわれる。そのため、後処理後画像データの生成時には、合成画像データの有する画素情報は失われない。なお、以下の説明では、後処理後画像データの生成処理と、後処理後画像データから出力画像データへの変換処理とを、「後処理」と総称する場合もある。
【００２８】
これにより、ダイナミックレンジを拡大した合成画像データを用いてより精度の高い画像処理を行なうことができるとともに、出力先の能力に応じた表示や処理などを行なうことができる。
【００２９】
以下、本実施の形態に従う画像処理装置の構成および合成画像データを生成するための画像合成処理について説明した後に、本実施の形態に従う画像処理装置で実施される各種の後処理について説明する。
【００３０】
［Ｂ．全体装置構成］
図１は、この発明の実施の形態に従う画像処理装置を含む視覚センサシステム１の全体構成を示す概略図である。
【００３１】
図１を参照して、視覚センサシステム１は、代表的に生産ラインなどに組込まれ、ワーク２における欠陥などを光学的に検出したり、その大きさなどを光学的に計測したりする。一例として、ワーク２は、ベルトコンベヤなどの搬送ライン６によって搬送される。なお、搬送開始や停止および搬送速度の変更といった搬送ライン６に対する制御は、図示しないＰＬＣ（Programmable Logic Controller）などによって行なうようにしてもよい。
【００３２】
搬送ライン６に対して所定の相対位置に配置された撮像部８は、ワーク２がその視野内に到達すると、複数回の撮像を開始する。このようなワーク２の到達は、搬送ライン６に設けたセンサによって検出される。典型的には、図１に示すように、搬送ライン６の両サイドに光電センサを配置し、その光電センサからの検出信号（以下「トリガ信号」とも称す。）に応答して、撮像部８による撮像が開始される。より具体的には、光電センサは、同一の光軸上に配置された受光部４ａと投光部４ｂとからなり、投光部４ｂから放射される光がワーク２で遮蔽されることを受光部４ａが検出することによって、トリガ信号が出力される。なお、画像合成処理が中止されている期間中には、撮像部８は、所定の周期で繰り返し撮像を行なうようにしてよい。
【００３３】
撮像部８による複数回の撮像によって取得された複数の入力画像データは、本実施の形態に従う画像処理装置を典型的に具現化する処理装置である、コンピュータ１００へ伝送される。本実施の形態においては、主として、カラーの入力画像データを扱う処理について説明するが、モノクロの入力画像データについても同様に適用可能である。
【００３４】
一例として、撮像部８は、レンズなどの光学系に加えて、ＣＣＤ（Coupled Charged Device）やＣＩＳ（Complementary Metal Oxide Semiconductor Image Sensor）センサといった、複数の画素に区画された撮像素子を含んで構成される。各画素に対応する撮像素子は、入射する光に対して１つまたは複数の分光感度を有している。
【００３５】
より具体的には、撮像部８の撮像素子は、典型的には、各画素について、光の三原色に基づく「赤色」「緑色」「青色」のそれぞれに分光感度を有している。そして、撮像部８の撮像素子は、入射する光についての「赤色」「緑色」「青色」の３色の検出値（Ｒ輝度、Ｇ輝度、Ｂ輝度）を出力する。ここで、たとえば、Ｒ輝度は、撮像素子に入射する光のうち、赤色の分光感度に含まれる波長成分に相当する光強度（ある露光時間内に入射した光エネルギー）の大きさを示す濃淡値に相当する。Ｇ輝度およびＢ輝度についても、それぞれ対応の分光感度に含まれる波長成分に相当する光強度の大きさを示す濃淡値に相当する。典型的に、本実施の形態においては、Ｒ輝度、Ｇ輝度、Ｂ輝度は、いずれも８ビット（０〜２５５階調）の範囲で規定されるものとする。すなわち、撮像部８は、その検出感度に応じた２５６の階調範囲で規定される画素情報をもつ入力画像データを出力する。もちろん、撮像部８から出力される入力画像データが有する画素情報は、より多くの情報量、たとえば、１０ビットもしくは１２ビットであってもよい。
【００３６】
さらに、撮像部が有する分光感度は３つ（３バンド）に限定されることなく、より多くの色に分光感度をもつようにしてもよい。このようなマルチバンドの撮像部を用いることで、より撮像可能な色域を拡大させることができる。あるいは、光の三原色の補色である「シアン」「マゼンダ」「黄色」の３色の検出値（Ｃ輝度、Ｍ輝度、Ｙ輝度）を画素情報として含んでいてもよい。また、単板式のＣＣＤなどを用いる場合には、各画素が「赤色」「緑色」「青色」のうちいずれか１色だけについて受光感度を有している場合がある。このような場合には、図示しない補間部によって、「赤色」「緑色」「青色」の各々についての画素情報をもつ入力画像データを生成してもよい。
【００３７】
また、撮像部８は、撮像時の露光条件を変更可能である。この露光条件とは、１回の撮像において撮像素子に入射する光エネルギーを調整するための値であり、代表的に、機械的または電子的なシャッター速度、光学系のしぼり量、および撮像対象物へ照射する照明強度などによって調整される。本実施の形態では、露光条件の代表例として、撮像対象物への照明強度は一定であるとして、「露光時間」を調整する構成について例示するが、露光時間に限られず、しぼり量や照明強度などを調整するようにしてもよい。
【００３８】
一方、コンピュータ１００は、ＦＤ（Flexible Disk）駆動装置１１１およびＣＤ−ＲＯＭ（Compact Disk-Read Only Memory)駆動装置１１３を搭載するコンピュータ本体１０１と、出力部としてのモニタ１０２と、入力部としてのキーボード１０３およびマウス１０４とを含む。そして、コンピュータ本体１０１は、予め格納されたプログラムを実行することで、本実施の形態に従う画像処理装置を実現する。
【００３９】
［Ｃ．ハードウェア構成］
図２は、この発明の実施の形態に従うコンピュータ１００のハードウェア構成を示す概略構成図である。
【００４０】
図２を参照して、コンピュータ本体１０１は、図１に示すＦＤ駆動装置１１１およびＣＤ−ＲＯＭ駆動装置１１３に加えて、相互にバスで接続された、ＣＰＵ（Central Processing Unit）１０５と、メモリ１０６と、固定ディスク１０７と、カメラインターフェイス部１０９と、ＰＬＣインターフェイス部１１５と、センサインターフェイス部１１７とを含む。
【００４１】
ＦＤ駆動装置１１１にはＦＤ１１２が装着可能であり、ＣＤ−ＲＯＭ駆動装置１１３にはＣＤ−ＲＯＭ１１４が装着可能である。上述したように、本実施の形態に従う画像処理は、典型的には、ＣＰＵ１０５がメモリ１０６などのコンピュータハードウェアを用いて、プログラムを実行することで実現される。一般的に、このようなプログラムは、ＦＤ１１２やＣＤ−ＲＯＭ１１４などの記憶媒体に格納されて、またはネットワークなどを介して流通する。そして、このようなプログラムは、ＦＤ駆動装置１１１やＣＤ−ＲＯＭ駆動装置１１３などにより記憶媒体から読取られて、記録装置である固定ディスク１０７に一旦格納される。さらに、固定ディスク１０７からメモリ１０６に読出されて、ＣＰＵ１０５により実行される。
【００４２】
ＣＰＵ１０５は、プログラムされた命令を逐次実行することで、各種の演算を実施する演算処理部である。メモリ１０６は、ＣＰＵ１０５でのプログラム実行に応じて、各種の情報を一時的に格納する。
【００４３】
カメラインターフェイス部１０９は、コンピュータ本体１０１と撮像部８との間のデータ通信を仲介する。より具体的には、カメラインターフェイス部１０９は、画像バッファ１０９ａと露光時間設定部１０９ｂとを含む。画像バッファ１０９ａは、撮像部８で撮像され逐次伝送される入力画像データを一旦蓄積し、１回の撮像分の入力画像データが蓄積されると、その蓄積されたデータをメモリ１０６または固定ディスク１０７へ転送する。露光時間設定部１０９ｂは、ＣＰＵ１０５からの内部コマンドに従って、それぞれの撮像開始前に撮像部８にコマンドを送信し、撮像部８における露光時間を設定する。
【００４４】
ＰＬＣインターフェイス部１１５は、コンピュータ本体１０１と図示しないＰＬＣとの間のデータ通信を仲介するための装置である。また、センサインターフェイス部１１７は、上述した光電センサなどからのトリガ信号を受信して、ＣＰＵ１０５へ伝達する。
【００４５】
固定ディスク１０７は、ＣＰＵ１０５が実行するプログラムや入力画像データなどを格納する不揮発性の記憶装置である。
【００４６】
コンピュータ本体１０１に接続されるモニタ１０２は、ＣＰＵ１０５が出力する情報を表示するための表示部であって、一例としてＬＣＤ（Liquid Crystal Display）やＣＲＴ（Cathode Ray Tube）などから構成される。
【００４７】
マウス１０４は、クリックやスライドなどの動作に応じたユーザからの指令を受付ける。キーボード１０３は、入力されるキーに応じたユーザからの指令を受付ける。なお、入力装置としては、キーボード１０３およびマウス１０４に限られることなく、タッチデバイスや押ボタンなどを用いることもできる。
【００４８】
［Ｄ．動作モード］
本実施の形態に従う視覚センサシステム１は、ワーク２を複数回撮像することで合成画像データを生成するとともに、必要に応じて当該合成画像データに対して検出や計測を実行する「稼動モード」と、ワーク２についての画像合成処理に係る設定を行なうための「設定モード」とを選択することが可能である。ユーザは、「設定モード」において、生成された合成画像データをモニタ１０２上で参照しながら、画像合成処理に係る設定を調整することができる。
【００４９】
［Ｅ．画像合成処理］
次に、合成画像データを生成するための画像合成処理について説明する。本実施の形態に従う画像合成処理は、主として、撮像部８における固有のダイナミックレンジより広いダイナミックレンジを有する画像データを合成するためのものである。
【００５０】
図３は、ワークとして腕時計の裏面を撮像した場合の入力画像データを示す図である。
図３（ａ）は、露光時間が相対的に長い条件下で１回の撮像により取得された入力画像データを示し、図３（ｂ）は、露光時間が相対的に短い条件下で１回の撮像により取得された入力画像データを示す。なお、図３（ａ）および図３（ｂ）において、入射する光強度は同じ条件であるとする。図３に示すワークは、金属製の時計本体部と皮革製のバンド部とを含む。両者の反射率は大きく異なるので、各部から放射される光強度（単位時間当たりに放射される光エネルギー）にも大きな差がある。
【００５１】
そのため、露光時間が長くなると、相対的に反射率の高い時計本体部は白飛びを生じてしまい、有効な画素情報を取得することができない。すなわち、図３（ａ）に示すように、時計本体部に記された文字が識別できなくなっていることがわかる。これに対して、露光時間が短くなると、相対的に反射率の低いバンド部から十分に光エネルギーを受光することができず、こちらについても有効な画素情報を取得することができない。すなわち、図３（ｂ）に示すように、バンド部は黒つぶれを生じており、ステッチなどの欠陥が識別できなくなっていることがわかる。
【００５２】
そこで、本実施の形態に従う画像処理装置は、同一のワーク２を異なる露光条件（露光時間）で複数回撮像し、取得された複数の入力画像データから合成画像データを生成する。入力画像データは、撮像部８に入射する光強度の分布を示す画素情報（各色の輝度を示す階調値）を含んでおり、本実施の形態に従う画像処理装置は、各画素に対応するそれぞれの入力画像データに含まれる光強度を示す値（各色の輝度を示す階調値）と、対応する入力画像データの撮像時における露光条件（露光時間）とに基づいて、合成画像データの各画素の色情報（以下「合成色情報」とも称す。）および輝度（以下「合成輝度」とも称す。）を算出する。そして、合成色情報及び合成輝度に基づいて、合成画像データが生成される。
【００５３】
すなわち、合成輝度は、撮像部８の撮像素子に入射する光強度に応じた輝度値に相当し、有効ダイナミックレンジ内で一定以上の輝度分解能を有する。なお、有効ダイナミックレンジとは、合成輝度の最小値と最大値との差、あるいはこれらの間の範囲を意味する。
【００５４】
概略すると、この合成輝度の算出処理では、各画素について、入力画像データのそれぞれにおける光強度を示す値（輝度）が露光時間で規格化される。そして、その規格化された光強度の大きさが適切な範囲にあるものが優先的に採用される。言い換えれば、合成画像データにおける各画素の合成輝度は、複数の入力画像データの対応する画素がそれぞれもつ情報のうち、ワーク２から放射される光強度（単位時間当たりに入射する光エネルギー）に適した露光時間で撮像された画素がもつ情報を主成分として算出される。このような処理によって、適切な露光時間で撮像された輝度をもつ画素の集合として、合成画像データを生成できる。図３（ｃ）は、本実施の形態に従う画像合成処理によって生成された合成画像データの一例を示す図である。図３（ｃ）に示すように、上述の画像合成処理を行なうことで、図３（ａ）のような白飛びや図３（ｂ）に示すような黒つぶれを含まない合成画像データを生成できる。
【００５５】
［Ｆ．処理概要］
図４および図５は、この発明の実施の形態に従う画像処理装置における処理概要を説明するための概念図である。図４は、後続処理として検出／計測処理が実行される場合の例を示し、図５は、後続処理としてモニタなどへの表示処理が実行される場合の例を示す。
【００５６】
図４および図５を参照して、本実施の形態に従う画像処理装置は、撮像部８に対して、異なる露光条件で複数回撮像を行なうことで、複数の入力画像データを取得する。入力画像データの各々は、撮像部８の検出感度に応じた階調範囲（ダイナミックレンジ）で規定される画素情報を有する。
【００５７】
そして、これらの複数の入力画像データに対して、画像合成処理を行なうことで、ダイナミックレンジが拡大された合成画像データが生成される。すなわち、合成画像データは、各入力画像データが有する画素情報の階調範囲より広い階調範囲（ダイナミックレンジ）で規定される画素情報を有する。
【００５８】
さらに、この合成画像データを対象として、撮像されたワークに関する検出または計測を容易化するための後処理を行なうことにより、後処理後画像データが生成される。この後処理後画像データは、合成画像データが有する画素情報の階調範囲と同じ階調範囲（ダイナミックレンジ）で規定される画素情報を有する。
【００５９】
さらに、一般的には、生成された後処理後画像データのうち、すべての画素情報ではなく、ユーザが指定した所定範囲に存在する画素情報のみを有効に含む出力画像データが生成される。このとき、出力先の後続処理やデバイスの階調範囲（ダイナミックレンジ）が制限されていれば、出力画像データのダイナミックレンジも出力先に適合するように制限される。すなわち、後処理後画像データの有する情報量を削減した上で、出力画像データが生成されることになる。言い換えれば、後処理画像データを合成画像データの階調範囲（ダイナミックレンジ）より狭い階調範囲で規定される画素情報を有する出力画像データに変換される。
【００６０】
たとえば、図４に示すように、出力画像データを検出処理または計測処理などの後続処理へ出力する場合には、出力画像データの各画素が有する画素情報は、当該検出／計測処理における処理可能階調に適合される。そして、この出力画像データに対して、検出処理や計測処理が実行される。
【００６１】
また、図５に示すように、出力画像データをモニタ１０２などの表示装置に出力する場合には、出力画像データの各画素が有する画素情報は、当該表示装置における表示可能階調に適合される。
【００６２】
より具体的には、本実施の形態においては、入力画像データおよび出力画像データがいずれも各色８ビット（２５６階調）の情報量を有し、合成画像データが各色３２ビット（４．２９×１０９階調）の情報量を有するものとする。
【００６３】
このように、情報量を削減した後の出力画像データに対して各種の後処理を行なう場合には、合成画像処理によって得られた明るさの情報量を十分に活用することができない。
【００６４】
そこで、本実施の形態に従う画像処理装置は、各種の後処理を行なうことが必要なアプリケーションにおいて、出力画像データではなくより多くの情報量を有する合成画像データに対して当該後処理を適用し、その処理結果を出力画像データとして出力する。
【００６５】
このような処理手順を採用することで、画像合成処理によって得られたより多くの情報量をそのまま活用することができるとともに、出力先の能力に応じた表示や処理などを行なうことができる。
【００６６】
なお、出力先デバイスには、上述するようなモニタ１０２に加えて、他の画像処理装置、プリンタ装置、プロッタ装置、情報発信装置などが含まれる。
【００６７】
［Ｇ．処理内容］
本実施の形態に従う画像処理装置は、主として以下の処理を実行する。
【００６８】
（１）ワークを異なる露光時間で複数回撮像する処理（撮像処理）
（２）撮像された入力画像データの輝度から合成輝度を算出する処理（輝度合成処理）
（３）撮像された入力画像データの色情報から合成色情報を算出する処理（色合成処理）
（４）合成色情報と合成輝度とから合成画像データを生成する処理（画像合成処理）
（５）合成画像データに各種の画像処理を実行した上で、その結果を出力画像データとして出力する処理（後処理）
（６）（必要に応じて）出力画像データを用いて、前記撮像されたワークに関する検出処理または計測処理を実行する処理（検出／計測処理）
以下、まず（１）〜（４）の処理の概略について説明した後、典型的な（５）後処理の例として、合成画像データに基づいて画像データ比較を行なうことで画像データを生成する処理、および合成画像データに含まれる画素情報についての特徴量を反映した画像データを生成する処理について説明する。
【００６９】
［Ｈ．全体制御構造］
図６は、この発明の実施の形態に従う画像処理装置の全体制御構造を示す機能ブロック図である。
【００７０】
図６を参照して、画像処理装置は、上述の（１）撮像処理を実現するための制御構造として、撮像制御部２００と、選択部２０２と、画像バッファ２０４ａ〜２０４ｈとを含み、上述の（２）輝度合成処理を実現するための制御構造として、画像情報抽出部２０６ａ〜２０６ｈと、輝度合成部２１０と、ヒストグラム生成部２１４とを含み、上述の（３）色合成処理を実現するための制御構造として、画像情報抽出部２０６ａ〜２０６ｈと、色合成部２０８を含み、上述の（４）画像合成処理を実現するための制御構造として、画像合成部２１２を含み、上述の（５）後処理を実現するための制御構造として、後処理部２３０Ａ（あるいは、後処理部２３０Ｂまたは２３０Ｃ）を含み、上述の（６）検出／計測処理を実現するための制御構造として検出／計測部２４０を含む。
【００７１】
以下、本実施の形態に従う画像処理装置における各処理の内容を各機能ブロックの動作とともに説明する。
【００７２】
（１）撮像処理
図６を参照して、撮像制御部２００は、撮像部８を用いて同一のワーク２を異なる露光条件（露光時間）で複数回撮像を行なうことにより複数の入力画像データを取得する。これらの入力画像データは、それぞれの撮像タイミングにおける撮像部８の視野の内容を示すものとなる。撮像制御部２００は、ユーザ設定に応じて、どのように露光条件に設定すべきかについて決定する。より具体的には、本実施の形態に従う撮像部８は、一例として、シャッター速度を任意に設定可能な電子シャッターを有しており、これにより露光時間を任意に変更可能である。その変更可能な露光時間は、一例として「１／１２５秒」，「１／２５０秒」，「１／５００秒」，「１／１０００秒」，「１／２０００秒」，「１／４０００秒」，「１／８０００秒」，「１／１６０００秒」の８通りを標準として含む。この変更可能な露光時間群は、「１／１２５秒」を基準（最も遅い値）として、２のべき乗で順次早くなるように設定されている。
【００７３】
撮像制御部２００は、予め定められる設定値（撮像回数および各撮像における露光時間など）に従って、各撮像前に撮像部８への露光時間の設定と、撮像部８を用いて当該設定された露光時間でワーク２の撮像とを繰返し実行する。さらに、撮像制御部２００は、各撮像に同期して、選択部２０２に選択指令を与え、撮像部８がワーク２を逐次撮像することで生成される入力画像データを画像バッファ２０４ａ〜２０４ｈに逐次的に格納する。
【００７４】
選択部２０２は、撮像部８と、画像バッファ２０４ａ〜２０４ｈとの間に配置され、撮像制御部２００からの選択指令に応じて、画像バッファ２０４ａ〜２０４ｈのいずれか１つと撮像部８とを電気的に接続する。このような動作によって、これにより、撮像部８がワーク２を撮像することで生成される入力画像データは、画像バッファ２０４ａ〜２０４ｈに逐次的に記憶される。なお、以下では、画像バッファ２０４ａ〜２０４ｈを総称して「画像バッファ２０４」とも記す。
【００７５】
画像バッファ２０４は、撮像部８の露光時間に対応付けて配置されており、対応する特定の露光時間において撮像された入力画像データを記憶する。たとえば、画像バッファ２０４ａは、露光時間が「１／１２５秒」の条件で撮像された入力画像データをもっぱら記憶し、画像バッファ２０４ｂは、露光時間が「１／２５０秒」の条件で撮像された入力画像データをもっぱら記憶するといった具合である。
【００７６】
なお、後述するように、合成画像データを生成する際には、撮像部８に設定可能なすべての露光時間でワーク２を撮像する必要はない。すなわち、ワーク２が放射する光強度に応じて、適切な「明るさ」範囲を含むように、複数の露光時間が設定される。
【００７７】
（２）輝度合成処理
画像情報抽出部２０６ａ〜２０６ｈは、それぞれ画像バッファ２０４ａ〜２０４ｈに対応付けられており、対応の画像バッファ２０４に記憶されている入力画像データから、色情報および輝度をそれぞれ抽出する。代表的に、入力画像データは、各画素に入射する光エネルギーに応じた値である３色の輝度（Ｒ輝度、Ｇ輝度、Ｂ輝度）を含むものとする。入力画像データの色情報は、これらの３色の輝度を規格化した上で、各輝度の相対関係（相対比）を表わしたものである。また、入力画像データの輝度は、各画素に入射する光エネルギーを総合的に表わしたものであり、３色の輝度の平均値（あるいは、総和）に相当する。
【００７８】
そして、画像情報抽出部２０６ａ〜２０６ｈは、抽出した色情報を色合成部２０８へ出力するとともに、抽出した輝度を色合成部２０８および輝度合成部２１０へ出力する。
【００７９】
輝度合成部２１０は、撮像部８による一連の複数回の撮像（１枚の合成画像データを生成するのに必要なすべての撮像）が完了した後、それぞれの入力画像データの輝度を対応する露光時間によってそれぞれ規格化した上で、各画素の合成輝度として算出する。上述したように、撮像部８における露光時間を変更することで、撮像に適した光強度の範囲が変動する。すなわち、露光時間が相対的に短ければ、光強度のより大きな範囲の撮像に適し、露光時間が相対的に長ければ、光強度のより小さな範囲の撮像に適する。
【００８０】
そこで、本明細書においては、ワークから放射される光強度の大きさに応じた「明るさ」という指標を用いる。なお、「明るさ」は、撮像部８の性能に依存する相対的な値であり、同じ「明るさ」であっても、撮像素子の感度や光学系の開放値などが異なれば、実際の光強度（もしくは、光エネルギー）は異なったものとなる。
【００８１】
一般的に、撮像部８（撮像素子）に入射する光エネルギーの大きさは、露光時間に比例すると考えられる。そのため、本明細書における「明るさ」としては、代表的に、撮像部８で検出された輝度を露光時間で割り、その値について対数をとったものを採用する。したがって、本明細書における「明るさ」は、単位露光時間あたりの光エネルギー（すなわち、光強度）の大きさを示す指標である。このような「明るさ」を用いることで、撮像部８に設定可能な各露光時間に対応させて、撮像部８による撮像に適した「明るさ」範囲を予め規定することができる。
【００８２】
より具体的には、本実施の形態に従う撮像部８に設定可能な８つの露光時間は、２のべき乗で順次短くなるようになっているので、各露光時間と「明るさ」との対応関係を図７のように定めることができる。
【００８３】
図７は、撮像部８に設定される露光時間と撮像に適した「明るさ」範囲との関係の一例を示す図である。図７を参照して、露光時間が「１／１２５秒」である場合に撮像に適した「明るさ」範囲を「１０〜３０」に設定すると、露光時間を１／２倍した「１／２５０秒」である場合には、撮像に適した「明るさ」範囲を「１０」だけ加算した「２０〜４０」に設定できる。このように逐次設定することで、露光時間を「１／１２５秒」〜「１／１６０００秒」の範囲に対応付けて、「１０〜１００」の「明るさ」範囲をカバーするように設定できる。
【００８４】
また、複数の露光時間がカバーするように、それぞれの「明るさ」範囲を設定することが好ましい。図７に示す例においては、「明るさ」範囲が１０〜９０のいずれの位置においても、少なくとも２つの露光時間によってカバーするように設定されている。すなわち、たとえばその「明るさ」範囲に「６０」を含む露光時間は、「１／１０００秒」，「１／２０００秒」，「１／４０００秒」の３つである。このような設定を行なうことで、異なる露光時間で複数回の撮像が行なわれるように設定される。
【００８５】
この図７に示す露光時間と「明るさ」範囲との関係は、撮像部８で撮像可能な「明るさ」範囲のうち、ユーザによって必要な「明るさ」範囲が設定されると、当該設定に対応する複数の露光時間の各々での撮像が行なわれるようになる。すなわち、撮像部８に設定可能なすべての露光時間において撮像が行なわれるのではなく、特定の露光時間における撮像のみを行なうことで、１枚の合成画像データの生成に要する処理時間を短縮することもできる。
【００８６】
より具体的には、ユーザによって、たとえば「明るさ」範囲が「３０〜５０」に設定された場合には、その範囲内に含まれる「１／２５０秒」，「１／５００秒」，「１／１０００秒」の露光時間で１処理あたり３回の撮像が行なわれる。
【００８７】
再度、図６を参照して、輝度合成部２１０は、ワーク２に対する一連の撮像によって取得された複数の入力画像データを用いて、合成画像データの各画素の輝度である合成輝度を算出する。より具体的には、輝度合成部２１０は、合成画像データの各画素（座標位置ｉ）に対応するＰ個の入力画像データにおけるそれぞれの画素の輝度を露光時間で規格化することで、各画素の合成輝度Ｅｉを算出する。輝度合成部２１０による合成輝度Ｅｉの算出式は（１）式のようになる。
【００８８】
【数１】
2010239610.tif 000003
【００８９】
（１）式において、「ｌｎ（ｇ（Ｚｉ，ｊ）−ｌｎΔｔｊ）」の項が、各入力画像データにおける輝度を露光時間で規格化した上で、「明るさ」として評価した値に相当する。これは、たとえば同じ輝度「１２８」であっても、露光時間が相対的に短ければ、その実際の「明るさ」はより大きな値として評価すべきであり、露光時間が相対的に長ければ、その実際の「明るさ」はより小さな値として評価すべきであるという技術思想に基づくものである。すなわち、上記の項は、ｌｎ｛ｇ（Ｚｉ，ｊ）／Δｔｊ｝と変形できるように、対応の入力画像データの撮像時の露光時間に応じた係数１／Δｔｊを乗じることで露光時間による規格化（＝ｇ（Ｚｉ，ｊ）／Δｔｊ）を行ない、この規格化した値を用いて合成輝度Ｅｉが算出される。
【００９０】
代表的に、合成輝度Ｅｉは、図７に示す各露光時間と「明るさ」範囲との関係に従って、０〜１００の範囲の値として算出される。なお、理解を容易にするために、０〜１００の範囲で表しているが、合成して得られる画像データの「明るさ」の階調範囲は、１回の撮像で取得される画像データがもつ階調範囲よりも広くなることから、データとしては、小数点以下の桁も有する値である（たとえば、３２ビットのデータを用いて小数点以下４桁ないし５桁までの値として取扱う）。
【００９１】
上式においては、さらに、重み関数ｗ（Ｚ）と撮像部８の撮像素子の応答関数ｇ（Ｚ）を導入している。図８を参照して、これらの関数について説明する。
【００９２】
図８は、重み関数および応答関数の特性の一例を示す図である。図８（ａ）は、重み関数ｗ（Ｚ）の特性を示し、図８（ｂ）は、応答関数ｇ（Ｚ）の特性を示す。
【００９３】
図８（ａ）を参照して、重み関数ｗ（Ｚ）は、撮像部８から出力される輝度の値に応じて、その信頼度を反映するための関数である。すなわち、ある露光時間において、撮像部８から出力される輝度のうち、その下限値（０）または上限値（２５５）に近い値は、その中間値（１２８）に近い値に比較して信頼度が低いと考えられる。換言すれば、仮に撮像部８がある露光時間において最も適した「明るさ」をもつ対象物を撮像すると、その輝度はほぼ中間値になると考えられる。
【００９４】
そこで、このような特性を考慮して、重み関数ｗ（Ｚ）としては、輝度の変動範囲における中間値の近傍に比較して、下限値または上限値の近傍の値がより小さくなるような関数を用いることが好ましい。一例として、本実施の形態では、輝度の変動範囲の中間値が最大値（１２８）となるとともに、下限値および上限値でそれぞれゼロとなるような三角形状の重み関数を採用する。このような重み関数を採用することで、露光時間毎の入力画像データのうち、その輝度が所定範囲内にあるものを優先的に採用して合成輝度が算出される。
【００９５】
また、図８（ｂ）を採用して、応答関数ｇ（Ｚ）は、撮像部８から出力される輝度分布と実際に撮像部８に入力する光エネルギー分布との間の非線形性を補償するための関数である。たとえば、ＣＣＤなどの撮像素子では、入力する光エネルギーあるいは光強度と出力される電圧信号との関係は非線形となる。このような非線形特性はガンマ特性などとも称される。応答関数ｇ（Ｚ）は、このようなガンマ特性を補償して、撮像部８から出力される輝度を、実際に撮像部８に入力する光エネルギーに比例するように補正するものである。なお、図８（ｂ）には、簡単化のため、撮像部８から出力される輝度が入力する光エネルギーと比例関係にある場合の応答関数ｇ（Ｚ）を示す。
【００９６】
なお、上式中の定数項の「Ｃ」は、各露光時間と「明るさ」範囲との関係を図７のように定めた場合に生じるオフセットを補償するための項であり、各露光時間と「明るさ」範囲との関係に応じて適宜設定することができる。
【００９７】
また、上式中では、ネイピア数「ｅ」を底にした自然対数を用いているが、必ずしも「ｅ」に限定されるものではなく、「２」を底にした対数や「１０」を底にした常用対数などを用いてもよい。
【００９８】
再度、図６を参照して、輝度合成部２１０は、算出した合成輝度Ｅｉをヒストグラム生成部２１４へ出力する。ヒストグラム生成部２１４は、合成輝度Ｅｉについてのヒストグラムを生成する。すなわち、ヒストグラム生成部２１４は、合成輝度Ｅｉの分布をモニタ１０２に表示させるための分布データを生成する。より具体的には、輝度合成部２１０は、各画素の合成輝度Ｅｉを所定幅の階級に区分した上で各階級の頻度を算出する。これは、ユーザが、輝度合成部２１０によって算出される合成輝度Ｅｉのうち相対的に比率の高い範囲を参照しながら、「明るさ」上限値および「明るさ」下限値を初期設定することを支援する。
【００９９】
また、ヒストグラム生成部２１４は、ユーザ設定に応じて、ヒストグラムの生成処理を中断または再開可能に構成されてもよい。
【０１００】
（３）色合成処理
色合成部２０８は、複数の入力画像データの色情報から合成色情報を算出する。後述するように、合成画像データは、色合成部２０８で算出される各画素の合成色情報に、輝度合成部２１０によって算出される対応する画素の合成輝度Ｅｉを乗じて得られる。そのため、色合成部２０８から出力される合成色情報は、各画素の濃度の情報をもたない、「赤色」、「緑色」、「青色」の相対的な比を示す値となる。
【０１０１】
また、色合成部２０８は、上述の輝度合成部２１０と同様に、各座標位置に対応する複数の入力画像データにおけるそれぞれの画素の色情報に基づいて、合成画像データの各画素の合成色情報を算出する。より具体的には、色合成部２０８は、各入力画像データの色情報と、その信頼度に応じた重みとを乗算した値を累積加算することで、合成色情報を算出する。
【０１０２】
ここで、ｊ番目の入力画像データの座標位置ｉ（０≦ｉ≦画素数ｎ）における色情報を（ｒｉ，ｊ，ｇｉ，ｊ，ｂｉ，ｊ）とする。但し、色合成部２０８は、画像情報抽出部２０６ａ〜２０６ｈから出力される色情報を、ｒｉ，ｊ＋ｇｉ，ｊ＋ｂｉ，ｊ＝１が成立するように予め規格化する。また、ｊ番目の入力画像データの座標位置ｉにおける輝度をＺｉ，ｊとする。この規格化された色情報および輝度を用いると、合成色情報（ｒｉ，ｇｉ，ｂｉ）の算出式は（２．１）〜（２．３）式のようになる。
【０１０３】
【数２】
2010239610.tif 000004
【０１０４】
ここで、重み関数ｗ（Ｚ）は、図８（ａ）と同様の特性を有する。すなわち重み関数ｗ（Ｚ）は、撮像部８から出力される輝度の値に応じて、その信頼度を反映するための関数である。この重み関数ｗ（Ｚ）の技術的な意味については、上述したので詳細な説明は繰返さない。
【０１０５】
そして、色合成部２０８は、算出した合成色情報を画像合成部２１２へ出力する。
（４）画像合成処理
画像合成部２１２は、輝度合成部２１０によって算出された合成輝度Ｅｉを、対応する合成色情報（ｒｉ，ｇｉ，ｂｉ）に順次乗じることによって、座標位置ｉの画素の画像情報を順次算出し、これによって合成画像データを生成する。
【０１０６】
すなわち、合成画像データの座標位置ｉの座標における絶対的な色情報（Ｒｉ，Ｇｉ，Ｂｉ）は、以下のように表わすことができる。
【０１０７】
（Ｒｉ，Ｇｉ，Ｂｉ）＝Ｅｉ×（ｒｉ，ｇｉ，ｂｉ）
以上のような手順に従って、合成画像データが最終的に生成される。
【０１０８】
（５）後処理
後処理部２３０Ａ，２３０Ｂ，２３０Ｃは、画像合成部２１２から出力される合成画像データを対象として、撮像されたワーク２に関する検出または計測を容易化するための後処理を行なうことにより後処理後画像データを生成し、さらに、後処理後画像データのダイナミックレンジを低減することで出力画像データを生成する。この後処理の内容については、後述の［Ｊ］項にて詳述する。
【０１０９】
（６）計測／検出処理
検出／計測部２４０は、後処理部２３０Ａ，２３０Ｂ，２３０Ｃから出力される出力画像データを用いて、撮像されたワーク２に関する検出処理または計測処理を実行する。なお、検出処理および計測処理としては、公知の画像処理技術を用いることができる。すなわち、たとえば、撮像されたワークに対して、予め登録されたモデルに基づくパターンサーチや欠陥検出といった処理、ならびに、撮像されたワークの大きさ・傾き・位置などを計測する処理などが用いられる。
【０１１０】
検出／計測部２４０は、検出処理または計測処理によって得られた結果（結果画像データや検出／計測値）を出力する。
【０１１１】
（その他）
撮像制御部２００は、撮像開始から１枚の合成画像データの生成までに要する見込みの処理時間（合成時間）を算出する。より具体的には、撮像制御部２００は、撮像部８による撮像回数、各撮像における露光時間、画像合成処理の処理量などを考慮して合成時間を推定する。ユーザは、この合成時間を参照して、実際の生産ラインに適用可能な設定であるか否かを判断する。
【０１１２】
［Ｉ．ユーザインターフェイス例］
本実施の形態に従う画像合成処理についての理解を容易にするために、図９および図１０を参照して、モニタ１０２（図１）に表示される画像合成処理に係るユーザインターフェイスの一例について説明する。
【０１１３】
図９および図１０は、この発明の実施の形態に従う画像処理装置のモニタ１０２に表示される「設定モード」における画面表示例を示す図である。なお、ＣＰＵ１０５および図示しないグラフィックボードなどが協働することで、図９および図１０に示すようなユーザインターフェイスを提供する。このような画面表示は、ＯＳ（Operating System）の一部として組込まれるＧＵＩ（Graphical User Interface）プログラムによって実現され、またＧＵＩは、ユーザがキーボード１０３やマウス１０４により操作される画面上のカーソルを用いて、さまざまなユーザ設定を行なうための環境も提供する。
【０１１４】
「設定モード」では各種設定を行なうことが可能であり、図９および図１０に示すように、一例として、「カメラ設定」「ＨＤＲ設定」「ＨＤＲ設定２」「明度追従設定」「画像調整設定」「ホワイトバランス」「キャリブレーション」といった計７個のタブが選択可能な画面が表示される。以下の説明では、本実施の形態に従う画像合成処理に係る主な設定を行なうための「ＨＤＲ設定」タブ４１０および「ＨＤＲ設定２」タブ４１１がそれぞれ選択された場合のユーザインターフェイスについて説明する。なお、その他の初期設定（撮像部８などの配置や初期設定）は完了しているものとする。すなわち、撮像部８の撮像によって、基準ワークの像を含む複数の入力画像データが取得されているものとする。
【０１１５】
図９には、「ＨＤＲ設定」タブ４１０が選択された場合に表示される設定画面４００の一例を示す。この図９に示す設定画面４００は、露光条件を含む画像合成処理に係る設定（以下「合成処理設定」とも称す。）を受付ける。
【０１１６】
設定画面４００は、モード設定エリア４１６と、撮像設定エリア４２０と、撮像設定表示エリア４１８と、画像表示エリア４１２と、表示制御アイコン群４１３と、全体表示エリア４１４とを含む。
【０１１７】
モード設定エリア４１６には、ダイナミックレンジを拡大するための画像合成処理を示す「ＨＤＲモード」と、さらにコントラストを高めた画像合成処理を示す「ハイコントラストモード」がラジオボタン形式で選択可能に表示される。
【０１１８】
撮像設定エリア４２０には、生成されている合成画像データの「明るさ」についてのヒストグラム４２２が表示されるとともに、ユーザ設定された「明るさ」上限値および下限値を示すインジケータ４２６および４２４がそれぞれ表示される。なお、ヒストグラム４２２は、ヒストグラム生成部２１４（図６）によって適宜生成される。
【０１１９】
また、撮像設定エリア４２０には、「明るさ」下限値を設定するためのスライドバー４３４、および「明るさ」上限値を設定するためのスライドバー４３６が変更可能に表示される。このスライドバー４３４および４３６に対するユーザ操作に従って、「明るさ」上下限範囲が適宜変更される。さらに、撮像設定エリア４２０には、「明るさ」下限値および上限値の直接的な数値入力を受付ける数値入力ボックス４３０も表示される。
【０１２０】
このスライドバー４３４もしくは４３６、または数値入力ボックス４３０に対するユーザ操作によって設定される「明るさ」上下限範囲（「明るさ」上限値および「明るさ」下限値）に応じて、撮像条件を含む合成処理設定、および図４に示す合成画像データのうち出力画像データとすべき範囲（表示レンジ）が設定される。すなわち、ユーザは、表示されるヒストグラム４２２を参照しながら、所望の「明るさ」上下限範囲を設定する。初期値の「明るさ」上下限範囲としては、ヒストグラム４２２のほぼ全体をカバーできるような範囲が好ましい。
【０１２１】
撮像設定表示エリア４１８には、このように決定された合成処理設定値の内容が表示される。具体的な一例として、撮像設定表示エリア４１８には、１回の画像合成に要する入力画像の枚数（撮像枚数）および１回の画像合成に要する時間（合成時間）などが表示される。
【０１２２】
画像表示エリア４１２には、上述のように決定された合成処理設定値に従って、撮像および画像合成処理されることで生成される合成画像データに基づく画像表示がなされる。この画像表示エリア４１２には、稼動モードにおいて検出や計測に用いられる合成画像データに相当する画像が表示される。そのため、ユーザ等は、この画像表示エリア４１２に表示される画像を参照して、「明るさ」上下限範囲などを調整する。また、表示制御アイコン群４１３に対するユーザ操作に応じて、画像表示エリア４１２における画像の表示サイズが変更可能となっている。
【０１２３】
全体表示エリア４１４には、画像表示エリア４１２に表示されている画像と同じ画像が縮小表示される。但し、全体表示エリア４１４には、画像表示エリア４１２での表示サイズとは独立して、表示対象の画像が常に全体表示される。すなわち、画像表示エリア４１２には、画像表示エリア４１２に表示中の画像が画像全体のうちいずれの領域にあるのかを示す。これにより、ユーザは、合成画像の全体を把握しながら、注目すべき部分（領域）を拡大して観察することもできる。
【０１２４】
なお、後述する合成画像データに対する後処理の実行を希望しないユーザは、図９に示す設定画面４００において必要な設定を完了させることができる。
【０１２５】
図１０には、「ＨＤＲ設定２」タブ４１１が選択された場合に表示される設定画面４０１の一例を示す。この図１０に示す設定画面４０１は、合成画像データに対する後処理に係る設定（以下「後処理設定」とも称す。）を受付ける。
【０１２６】
設定画面４０１は、合成設定エリア４４０と、表示設定エリア４１９と、撮像設定表示エリア４１８と、画像表示エリア４１２と、表示制御アイコン群４１３と、全体表示エリア４１４とを含む。
【０１２７】
合成設定エリア４４０には、本実施の形態に従う各種の後処理を選択するためのプルダウンボックスが表示される。このプルダウンボックスには、典型例として、「なし」、「差分抽出」、「エッジ抽出」、「バンドパスフィルタ」、「色抽出」の合計５つの項目が選択可能に表示される。このうち、「なし」の項目が選択されると、本実施の形態に従う後処理は無効化される。一方、他の４つの項目のいずれかが選択されると、選択された項目の後処理が合成画像データに対して実行される。なお、他の後処理としては、ハイパスフィルタやローパスフィルタなどを採用することもできる。
【０１２８】
表示設定エリア４１９には、画像表示エリア４１２および全体表示エリア４１４に表示すべき画像を選択するためのプルダウンメニュー（図示しない）が表示される。このプルダウンメニューには、「ＨＤＲ画像」、「モデル画像」、「差分画像」、「１枚目入力画像」、「２枚目入力画像」、・・・、「ｎ枚目入力画像」といった項目が選択可能に表示される。
【０１２９】
「ＨＤＲ画像」が選択されると、画像合成処理によって得られた合成画像データに基づく画像表示がなされる。
【０１３０】
「モデル画像」および「差分画像」は、合成設定エリア４４０において「差分抽出」が選択された場合に限って選択可能である。そして、「モデル画像」が選択されると、「差分抽出」処理に係る予め登録されたモデル画像が表示される。また、「差分画像」が選択されると、「差分抽出」処理によって得られた差分画像データに基づく画像表示がなされる。
【０１３１】
「１枚目入力画像」、「２枚目入力画像」、・・・、「ｎ枚目入力画像」は、画像合成処理に用いられる撮像部８によって取得された複数の入力画像データの「１番目」、「２番目」、・・・、「ｎ番目」に基づく画像表示がなされる。
【０１３２】
なお、設定画面４０１に含まれる、撮像設定表示エリア４１８と、画像表示エリア４１２と、表示制御アイコン群４１３と、全体表示エリア４１４とについては、設定画面４００と同様であるので、詳細な説明は繰返さない。
【０１３３】
［Ｊ．後処理］
以下、後処理の典型例として、差分抽出処理、エッジ抽出処理、バンドパスフィルタ処理、色抽出処理について説明する。
【０１３４】
（ｊ１．差分抽出処理）
＜１．構成＞
以下、図１０に示す設定画面４０１の合成設定エリア４４０において「差分抽出」が選択された場合に実行される後処理として、差分抽出処理について説明する。この差分抽出処理は、予め登録されたモデル画像データと画像合成処理により生成された合成画像データとの色差分を抽出する処理である。すなわち、生成された合成画像データと予め登録されたモデル画像データとを比較することで、合成画像データについてのモデル画像データに対する画像差分を算出する処理である。
【０１３５】
このような差分抽出処理は、同一の製品が連続的に製造されている生産ラインなどにおいて、欠陥などが発生したワークを検出する場合などに用いられる。
【０１３６】
図１１は、この発明の実施の形態に従う後処理部２３０Ａ（図６）の制御構造を示す機能ブロック図である。図１１を参照して、後処理部２３０Ａは、セレクタ２３０１と、前処理部２３０２と、差分抽出部２３０３と、モデル抽出部２３０４と、モデル格納部２３０５と、サーチ部２３０６と、マッピング部２３０７と、ヒストグラム生成部２３０８とを含む。
【０１３７】
セレクタ２３０１は、画像合成部２１２（図６）から出力される合成画像データを入力し、その合成画像データを、ユーザ設定に応じて、前処理部２３０２およびサーチ部２３０６、もしくはモデル抽出部２３０４へ選択的に出力する。すなわち、通常の差分抽出処理においては、セレクタ２３０１は、入力された合成画像データを前処理部２３０２およびサーチ部２３０６へ出力するが、モデル画像データに登録時（後述する）には、入力された合成画像データをモデル抽出部２３０４へ出力する。
【０１３８】
モデル抽出部２３０４は、合成画像データに対して、ユーザが設定する（その操作については後述する）モデル領域に含まれる部分画像データを抽出して、モデル画像データとしてモデル格納部２３０５へ出力する。モデル格納部２３０５は、モデル抽出部２３０４から受けたモデル画像データを格納するとともに、必要に応じて、格納しているモデル画像データをサーチ部２３０６および／または差分抽出部２３０３へ出力する。
【０１３９】
前処理部２３０２およびサーチ部２３０６は、後述する位置修正処理を行なうための機能ブロックである。より具体的には、セレクタ２３０１から新たな合成画像データが出力されると、サーチ部２３０６はモデル格納部２３０５に格納されているモデル画像データとの間で最も類似度の高い部分をサーチし、そのサーチ結果を前処理部２３０２へ出力する。前処理部２３０２は、サーチ部２３０６からのサーチ結果に従って、合成画像データの位置および／またはサイズを修正するための画像変換を行なった上で、変換後の合成画像データを差分抽出部２３０３へ出力する。なお、前処理部２３０２およびサーチ部２３０６による位置修正処理は、ユーザ設定に応じて無効化される場合もある。
【０１４０】
差分抽出部２３０３は、前処理部２３０２から入力された（変換後の）合成画像データと、モデル格納部２３０５から入力されたモデル画像データとの間で差分を抽出することで、差分画像データ（後処理後画像データ）を生成する。より具体的には、差分抽出部２３０３は、合成画像データの座標位置ｉにおける色情報（Ｒｉ，Ｇｉ，Ｂｉ）と、モデル画像データの対応する座標位置ｉにおける色情報（Ｒ（ｍ）ｉ，Ｇ（ｍ）ｉ，Ｂ（ｍ）ｉ）との色差ベクトルを算出し、さらにこの色差ベクトルの絶対値を、差分画像データの座標位置ｉにおける明度Ｖｉとして算出する。このようにして、差分抽出部２３０３は、すべての画素について算出した明度Ｖｉを含む差分画像データを出力する。なお、差分抽出部２３０３は、入力される合成画像データのもつ階調範囲（各色３２ビット）と同等の階調範囲をもつ明度Ｖｉを出力する。
【０１４１】
マッピング部２３０７は、差分抽出部２３０３で算出された差分値（すなわち、明度Ｖｉ）をより狭い所定の階調範囲に制限して、出力画像データとして出力する。具体的には、マッピング部２３０７は、各画素の明度Ｖｉを対応する座標位置ｉにおける階調値Ｙｉ（たとえば、０〜２５５階調値）に割当てることで、合成画像データの濃淡値（明度）を決定する。一般的に、各画素の明度Ｖｉの階調範囲は、階調値Ｙｉの階調範囲より広い。すなわち、マッピング部２３０７は、所定の階調範囲の値をもつ明度Ｖｉをより狭い階調範囲の階調値Ｙｉに変換する。
【０１４２】
図１２は、図１１に示すマッピング部２３０７によるマッピング処理を説明するための図である。図１２を参照して、差分画像データの各画素が有するの明度Ｖｉをその比例関係を保ったまま、０〜２５５の範囲の階調値へ変換する場合の処理について例示する。後述するように、ユーザによってマッピングの範囲（明度上限値Ｖｍａｘと明度下限値Ｖｍｉｎ）が設定された場合には、マッピング部２３０７は、以下のような変換式に従って階調値Ｙｉへの割当てを行なう。
【０１４３】
（ｉ）Ｖｉ＜Ｖｍｉｎ：Ｙｉ＝０
（ｉｉ）Ｖｍｉｎ≦Ｖｉ≦Ｖｍａｘ：Ｙｉ＝２５５×（Ｖｉ−Ｖｍｉｎ）／（Ｖｍａｘ−Ｖｍｉｎ）
（ｉｉｉ）Ｖｍａｘ＜Ｖｉ：Ｙｉ＝２５５
このように、マッピング部２３０７において、明度Ｖｉから階調値Ｙｉへの変換に用いられる対応関係は、明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎを変更することで、適宜更新されることになる。
【０１４４】
なお、説明を簡素化するために、図１２には線形のマッピング処理を行なう場合について例示するが、人間の視感度などに応じて、非線形のマッピング処理を採用してもよい。その一例として、以下のような変換式を用いてもよい。
【０１４５】
（ｉｉ’）Ｖｍｉｎ≦Ｖｉ≦Ｖｍａｘ：Ｙｉ＝２５５×ｌｏｇ｛（Ｖｉ−Ｖｍｉｎ）｝／ｌｏｇ｛（Ｖｍａｘ−Ｖｍｉｎ）｝
このような非線形の変換式を採用することで、明度の高すぎる画素を相対的に低い階調値に変換するとともに、明度の低すぎる画素を相対的に高い階調値に変換するので、白飛びや黒つぶれを少なくすることができる。
【０１４６】
上述の変換式に示されるように、明度上限値Ｖｍａｘより大きな明度Ｖｉをもつ画素は、すべて最大の階調値（たとえば、２５５）に制限（保持）されるので、その明度についての情報は失われる。同様に、明度下限値Ｖｍｉｎより小さな明度Ｖｉをもつ画素についても、すべて最小の階調値（たとえば、０）に制限（保持）されるので、その明度についての情報は失われる。したがって、その明度Ｖｉの値が明度下限値Ｖｍｉｎから明度上限値Ｖｍａｘの範囲にある画素のみが出力画像データ上で有効な階調値をもつ画素となる。すなわち、マッピング部２３０７は、差分画像データが有する明度Ｖｉのうち、その値が所定範囲内であるものを階調範囲における有効な値に割当てる。言い換えれば、マッピング部２３０７は、ユーザによって明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎが設定されると、その明度Ｖｉの値が明度下限値Ｖｍｉｎと一致する画素に対して階調値Ｙｉにおける下限値（０）を割当て、その明度Ｖｉの値が明度上限値Ｖｍａｘと一致する画素に対して階調値Ｙｉにおける上限値（２５５）を割当てる。
【０１４７】
図１１に戻って、ヒストグラム生成部２３０８は、差分画像データに含まれる画素の明度Ｖｉについてのヒストグラムを生成する。すなわち、ヒストグラム生成部２３０８は、差分画像データに含まれる画素の明度Ｖｉの分布をモニタ１０２に表示させるための分布データを生成する。より具体的には、ヒストグラム生成部２３０８は、各画素の明度Ｖｉを所定幅の階級に区分した上で各階級の頻度を算出する。このヒストグラム生成部２３０８により生成されるヒストグラムを参照することで、ユーザは、どの範囲の明度をもつ画素を出力画像データとして出力すべきかを容易に設定することができる。
【０１４８】
撮像部８により撮像される入力画像データに基づいて生成された合成画像データの色情報と、予め登録されたモデル画像データの色情報とが完全に一致することはまれであると想定される。そのため、このような色情報の誤差と思われる部分については、明度下限値Ｖｍｉｎの値を適切に設定してマスクすることが好ましい。一方、どのような欠陥が発生し得るのか予めわからない場合も多いと想定される。すなわち、明度上限値Ｖｍａｘをどの程度の値に設定すべきかを差分画像を見ただけでは分からない場合もあると考えられる。
【０１４９】
そこで、本実施の形態に従う画像処理装置においては、差分画像データに含まれる画素の明度の分布状態をユーザに提供することで、明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎをより容易に適切な範囲に設定できるようにする。
【０１５０】
＜２．ユーザインターフェイス例＞
上述した差分抽出処理についての理解を容易にするために、図１３および図１４を参照して、モニタ１０２（図１）に表示される差分抽出処理に係るユーザインターフェイスの一例について説明する。
【０１５１】
図１３および図１４は、この発明の実施の形態に従う画像処理装置のモニタ１０２に表示される差分抽出処理の選択時における画面表示例を示す図である。
【０１５２】
図１３には、図１０に示す合成設定エリア４４０において、フィルタ処理プルダウンボックス４４１で「差分抽出」の項目が選択された場合に表示される設定画面４０２の一例を示す。この図１３に示す設定画面４０２は、合成設定エリア４４０Ａと、表示設定エリア４１９と、撮像設定表示エリア４１８と、画像表示エリア４１２と、表示制御アイコン群４１３と、全体表示エリア４１４とを含む。なお、表示設定エリア４１９と、撮像設定表示エリア４１８と、画像表示エリア４１２と、表示制御アイコン群４１３と、全体表示エリア４１４とについては、上述の図１０に示す設定画面４０１と同様であるので、詳細な説明は繰返さない。
【０１５３】
合成設定エリア４４０Ａは、図１０に示す合成設定エリア４４０に、差分モデル登録ボタン４４２と、位置修正画像プルダウンボックス４４４と、修正モデル登録ボタン４４５と、位置修正チェックボックス４４７と、ヒストグラム表示エリア４５０とを加えたものに相当する。
【０１５４】
差分モデル登録ボタン４４２は、差分抽出処理に用いるモデル画像データを登録するための指令を受付ける。なお、モデル画像データが未だ登録されていない場合には、差分モデル登録ボタン４４２に隣接して、「差分モデルが登録されていません」というメッセージ４４３が表示される。この差分モデル登録ボタン４４２が選択されると、図１４に示すモデル画像データを登録するための領域設定画面４０３に遷移する。
【０１５５】
図１４を参照して、領域設定画面４０３には、モデル画像データとして抽出すべき領域の形状を選択するアイコン群４８０が表示される。ユーザが、これらのアイコン群４８０のいずれかを選択すると、選択された形状の領域４８２が画像表示エリア４１２に表示されている合成画像に重ねて表示される。なお、モデル画像データとして抽出すべき領域４８２の形状は、基本的に、長方形のみとなるようにしてもよい。
【０１５６】
ユーザは、モデル画像データとして登録すべき基準ワークを撮像して合成画像データを生成するとともに、この合成画像データに基づいて画像表示エリア４１２に表示される画像を参照しながら、領域４８２を適切な大きさおよび位置に設定する。具体的には、ユーザは、画像表示エリア４１２に表示される領域４８２に対して、マウス操作（たとえば、クリックおよびドラッグなど）することで、その大きさおよび位置をインタラクティブに変更可能である。
【０１５７】
この領域設定画面４０３において、モデル画像データとして抽出すべき領域４８２の大きさおよび位置をユーザが設定した後、「ＯＫ」ボタンを選択することで、モデル抽出部２３０４（図１１）がこのユーザが設定した領域４８２に含まれる部分画像データを抽出し、モデル格納部２３０５（図１１）に格納する。そして、図１３に示す設定画面４０２に復帰する。
【０１５８】
再度図１３を参照して、位置修正チェックボックス４４７、位置修正画像プルダウンボックス４４４、および修正モデル登録ボタン４４５は、後述する位置修正処理に用いられる設定を受付ける。詳細については後述する。
【０１５９】
ヒストグラム表示エリア４５０には、差分抽出処理によって得られた差分画像データの明度についてのヒストグラム（図示しない）が表示される。すなわち、ヒストグラム生成部２３０８（図１１）が生成するヒストグラムは、ヒストグラム表示エリア４５０内に表示される。
【０１６０】
ヒストグラム表示エリア４５０内には、ユーザ設定された明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎを示すインジケータ４５４および４５６がそれぞれ表示される。さらに、ヒストグラム表示エリア４５０に関連付けて、明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎの直接的な数値入力を受付ける数値入力ボックス４６０と、明度下限値Ｖｍｉｎを設定するためのスライドバー４６４と、明度上限値Ｖｍａｘを設定するためのスライドバー４６６とが表示される。
【０１６１】
スライドバー４６４もしくは４６６、または数値入力ボックス４６０に対するユーザ操作によって設定される明度上下限範囲（明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎ）に応じて、差分抽出処理によって得られる差分画像データに対して、マッピング処理がなされる。すなわち、スライドバー４６４もしくは４６６、または数値入力ボックス４６０を介して設定された明度上下限範囲（明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎ）は、マッピング部２３０７（図１１）へ与えられる。
【０１６２】
＜３．差分抽出処理の処理例＞
次に、図１５〜図１８を参照して、本実施の形態に従う差分抽出処理について説明する。図１５は、この発明の実施の形態に従う差分抽出処理に用いられる合成画像データの一例を示す図である。図１６は、図１５（ａ）に示す画像を対象にした場合における画面表示例を示す図である。図１７は、図１５（ｂ）に示す画像を対象にした場合における画面表示例を示す図である。図１８は、図１７に示す画面において明度上下限範囲を変更した場合における画面表示例を示す図である。
【０１６３】
以下の説明では、基準ワークとして、図１５（ａ）に示すようなコネクタを撮像して得られた合成画像データをモデル画像データとして登録したものとする。そして、登録されたモデル画像データと同様の合成画像データが得られた場合の処理と、図１５（ｂ）に示すような、コネクタの表面の一部に欠陥が生じたワークを撮像して合成画像データを得た場合の処理とを対比して説明する。
【０１６４】
図１３に示す設定画面４０２において、差分モデル登録ボタン４４２が選択されてモデル画像データが登録されると、メッセージ４４３（図１３）の表示が消えて、差分抽出処理が実行される。なお、このとき、表示設定エリア４１９において「差分画像」の項目が自動的に選択されるようにしてもよい。
【０１６５】
表示設定エリア４１９において「差分画像」の項目が選択されることで、画像表示エリア４１２には、差分抽出処理によって得られた差分画像データに基づく画像表示がなされる。
【０１６６】
まず、基準ワークとほぼ同様の外観を有する、欠陥が存在しないワークを撮像した場合には、図１５（ａ）とほぼ同様の合成画像データが得られる。この場合には、各画素における色差ベクトルが相対的に小さいので、差分画像データに含まれる明度成分は相対的に小さくなる。すなわち、図１６のヒストグラム表示エリア４５０に示すように、明度の値が相対的に小さい領域に多くの画素が集中して分布することになる。このような明度の値の相対的に小さい成分は、ほとんど有効な情報を持たない。
【０１６７】
そこで、明度上下限範囲（明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎ）をこれらの明度の値が相対的に小さい領域と重複しないように設定すると、画像表示エリア４１２には、階調値が全面にわたってほぼ「０」の画像（すなわち、真っ黒な画像）が表示される。
【０１６８】
次に、欠陥が存在するワークを撮像した場合には、図１５（ｂ）に示すような合成画像データが得られる。この場合には、欠陥部分に含まれる各画素についての色差ベクトルが相対的に大きくなるので、差分画像データに含まれる明度成分は相対的に小さくなる。すなわち、図１７のヒストグラム表示エリア４５０に示すように、他の画素に比較して、明度の値が相対的に大きな成分４５８が現れる。このような成分４５８が欠陥部分に相当する情報を持つことになる。そこで、このような成分４５８をまたぐように明度上下限範囲（明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎ）を設定することで、欠陥部分に相当する部分が可視化される。すなわち、画像表示エリア４１２には、モデル画像データとの間の差分情報が浮かび上がる。なお、画像表示エリア４１２に表示される欠陥部分の階調値は、明度上下限範囲（明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎ）と成分４５８との相対的な関係によって定まる。すなわち、ヒストグラム４５２上において、明度上限値Ｖｍａｘが成分４５８に近接して設定されると、欠陥部分は相対的に明るく表示され、一方、明度下限値Ｖｍｉｎが成分４５８に近接して設定されると、欠陥部分は相対的に暗く表示される。
【０１６９】
別の使用形態として、欠陥部分と正常部分とを区別するだけであれば、明度の値が相対的に小さい領域に集中して分布している誤差成分と成分４５８との間に、明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎのいずれをも設定してもよい。
【０１７０】
図１８を参照して、この場合には、その明度の値が明度下限値Ｖｍｉｎより小さい画素はすべて階調値が「０」として表示され、その明度の値が明度上限値Ｖｍａｘより大きい画素はすべて階調値が「２５５」として表示される。その結果、画像表示エリア４１２においては、欠陥部分に相当する領域が「白色」で表示されるとともに、その他の領域が「黒色」で表示されることになる。
【０１７１】
＜４．位置補正処理の処理例＞
次に、図１９〜図２１を参照して、差分抽出処理において実行される位置補正処理について説明する。図１９は、この発明の実施の形態に従う差分抽出処理における位置補正処理において用いられる合成画像データの一例を示す図である。図２０は、図１９（ｂ）に示す画像を対象にした場合における画面表示例を示す図である。図２１は、この発明の実施の形態に従う差分抽出処理における補正モデルの登録時における画面表示例を示す図である。以下の説明では、基準ワークとして、図１９（ａ）に示すようなコネクタを撮像して得られた合成画像データをモデル画像データとする。
【０１７２】
ワークがベルトコンベヤなどの搬送ラインによって搬送される場合には、何らかの外乱を受けて、その向きがモデル画像データを登録した時点の基準ワークの向きとは異なった向き、もしくは異なった撮像位置となることがある。たとえば、ワークが撮像時に図１９（ｂ）に示すようにその向きが本来の向きからずれてしまった場合を考える。このような場合には、ワークから取得された画像データに基づいて生成される合成画像データに含まれる各画素は、モデル画像データの対応する画素とは異なったものとなる。
【０１７３】
すなわち、図２０に示すように、モデル画像データの登録に用いられた基準ワークの位置と対象のワークとの間の位置ずれ分が、そのまま差分画像データとして抽出される。そのため、正しい検査を行なうためには、対象のワークについての位置ずれを予め登録されたモデル画像データに一致するように、位置修正を行なう必要がある。
【０１７４】
そこで、本実施の形態に従う画像処理装置においては、上述したようにサーチ処理を用いて、ワークを撮像して得られる入力画像データに対して位置修正を行なう。すなわち、サーチを行なうためのモデル画像データ（以下「位置修正モデル画像データ」とも称す。）を登録しておき、入力画像データもしくは生成後の合成画像データとこの登録された位置修正モデル画像データとの間の相関値が最も高くなる位置を探し出し、その対応関係に基づいて、入力画像データもしくは合成画像データに対して画像変換（向き変更および／またはサイズ変更）が行なわれる。なお、上述の差分抽出処理に用いられるモデル画像データと、この位置修正処理に用いられる位置修正モデル画像データとを同じものとすることもできるが、サーチ精度を高めるためには、ワークの特徴部分に重点をおいて１つまたは複数の位置修正モデル画像データを登録することが好ましい。そこで、本実施の形態に従う画像処理装置においては、差分抽出処理に用いられるモデル画像データとは独立して、位置修正モデル画像データを登録可能になっている。
【０１７５】
なお、位置修正処理には、サーチ処理を用いる方法に代えて、エッジなどの輪郭情報を用いる方法や、ラベルの重心面積を用いる方法などを採用することができる。
【０１７６】
図２０を参照して、上述のような位置修正処理は、合成設定エリア４４０Ａの設定画面４０７において、ユーザが位置修正チェックボックス４４７を選択（チェック）することで有効化される。位置修正チェックボックス４４７の選択後、ユーザは、位置修正画像プルダウンボックス４４４を用いて、位置修正モデル画像データの抽出対象の画像データを選択する。この位置修正画像プルダウンボックス４４４では、位置抽出処理に用いるためのモデル画像データが抽出された合成画像データがデフォルトとして選択される。さらに、位置修正画像プルダウンボックス４４４では、異なる露光条件下（たとえば、「明るさ」範囲が異なる場合や、画像合成に用いた枚数が異なる場合など）で生成された合成画像データを任意に選択可能である。さらに、位置修正画像プルダウンボックス４４４では、合成画像データを生成するために用いた複数の入力画像データのうち、いずれか１枚の入力画像データを選択することもできる。このように、位置修正モデル画像データを任意の画像データから抽出することができるので、サーチ処理に要する時間を短縮したり、サーチ処理により適した位置修正モデル画像データを設定したりすることができる。
【０１７７】
また、修正モデル登録ボタン４４５は、位置修正処理に用いる位置修正モデル画像データを登録するための指令を受付ける。なお、位置修正モデル画像データが未だ登録されていない場合には、修正モデル登録ボタン４４５に隣接して、「位置修正モデルが登録されていません」というメッセージ４４６が表示される。修正モデル登録ボタン４４５が選択されると、図２１に示すモデル画像データを登録するための領域設定画面４０８に遷移する。
【０１７８】
図２１を参照して、領域設定画面４０８は、図１４に示す領域設定画面４０３と同様の操作インターフェイスを有しており、位置修正モデル画像データとして抽出すべき領域の形状を選択するアイコン群４８０が表示される。また、画像表示エリア４１２には、位置修正画像プルダウンボックス４４４（図２０）において選択した画像が表示される。
【０１７９】
ユーザは、画像表示エリア４１２に表示される画像を参照しながら、位置修正モデル画像データとすべき範囲に対応付けて、領域４８４を適切な大きさおよび位置に設定する。この領域設定画面４０８において、位置修正モデル画像データとして抽出すべき領域４８４の大きさおよび位置をユーザが設定した後、「ＯＫ」ボタンを選択することで、モデル抽出部２３０４（図１１）がこのユーザが設定した領域４８２に含まれる部分画像データを位置修正モデル画像データとして抽出し、モデル格納部２３０５に格納する。そして、図２０に示す設定画面４０７に復帰する。
【０１８０】
上述のように、位置修正モデル画像データが登録されると、サーチ部２３０６（図１１）が合成画像データのうち登録された位置修正モデル画像データとの間で最も類似度の高い部分をサーチする。そして、そのサーチ結果に基づいて、前処理部２３０２（図１１）が入力された合成画像データに対して画像変換を行なうことで、その位置および／またはサイズを修正する。そして、この修正後の合成画像データに対して、差分抽出部２３０３（図１１）が差分抽出処理を実行する。
【０１８１】
このように位置修正処理を行なうことで、図１９（ｂ）に示すような合成画像データに対しても、図１７または図１８に示すような差分画像データを得ることができる。
【０１８２】
（ｊ２．エッジ抽出処理）
＜１．構成＞
以下、図１０に示す設定画面４０１の合成設定エリア４４０において「エッジ抽出」が選択された場合に実行される後処理として、空間フィルタ処理の典型例であるエッジ抽出処理について説明する。なお、エッジ抽出処理以外の空間フィルタ処理についても同様の構成および処理手順を適用可能である。この空間フィルタ処理は、より具体的には、処理対象の画像データ（合成画像データ）に含まれる各画素および当該画素に隣接する画素が有する画素情報に基づいて、当該画素についての特徴量を算出する処理である。すなわち、合成画像データに含まれる各画素および当該画素に隣接する画素が有する画素情報から、当該画素に対応する後処理後画像データの各画素が有する画素情報が算出される。
【０１８３】
このエッジ抽出処理では、２次元的に配置された画像データに対して、その階調値などの変化量（以下「エッジ強度」とも称す。）が抽出される。なお、処理対象の画像データの各画素に対応付けて算出されたエッジ強度を配置した２次元データを「エッジ画像データ」とも称す。このようなエッジ抽出処理は、ワーク上に生じる欠陥などの検出や、ワークに対する位置合わせなどに用いられる。
【０１８４】
図２２は、この発明の実施の形態に従う後処理部２３０Ｂ（図６）の制御構造を示す機能ブロック図である。図２２を参照して、後処理部２３０Ｂは、エッジ抽出部２３１１と、マッピング部２３１２と、ヒストグラム生成部２３１３とを含む。
【０１８５】
エッジ抽出部２３１１は、画像合成部２１２（図６）から出力される合成画像データに対してエッジ抽出処理を実行する。このエッジ抽出処理を実現するアルゴリズムとしては、種々の方法が提案および実用化されている。典型的には、ラプラシアンフィルタなどが用いられる。エッジ抽出部２３１１は、算出した各画素についてのエッジ強度の情報を含むエッジ画像データ（後処理後画像データ）をマッピング部２３１２およびヒストグラム生成部２３１３へ出力する。すなわち、エッジ抽出部２３１１は、入力される合成画像データの座標位置ｉに対応して、エッジ強度ＥＤｉを順次算出する。なお、エッジ抽出部２３１１は、入力される合成画像データのもつ階調範囲（各色３２ビット）と同等の階調範囲をもつエッジ強度ＥＤｉを出力する。
【０１８６】
マッピング部２３１２は、エッジ画像データの各画素のエッジ強度ＥＤｉを対応する座標位置ｉにおける階調値Ｙｉ（たとえば、０〜２５５階調値）に割当てることで、合成画像データの濃淡値（明度）を決定する。一般的に、各画素のエッジ強度ＥＤｉの階調範囲は、階調値Ｙｉの階調範囲より広い。なお、マッピング部２３１２におけるマッピング処理については、上述した図１２と同様である。
【０１８７】
すなわち、ユーザによってマッピングの範囲（エッジ強度上限値ＥＤｍａｘとエッジ強度下限値ＥＤｍｉｎ）が設定された場合には、マッピング部２３１２は、以下のような変換式に従って階調値Ｙｉへの割当てを行なう。
【０１８８】
（ｉ）Ｙｉ＜ＥＤｍｉｎ：Ｙｉ＝０
（ｉｉ）ＥＤｍｉｎ≦Ｙｉ≦ＥＤｍａｘ：Ｙｉ＝２５５×（ＥＤｉ−ＥＤｍｉｎ）／（ＥＤｍａｘ−ＥＤｍｉｎ）
（ｉｉｉ）ＥＤｍａｘ＜Ｙｉ：Ｙｉ＝２５５
このように、マッピング部２３１２において、エッジ強度ＥＤｉから階調値Ｙｉへの変換に用いられる対応関係は、エッジ強度上限値ＥＤｍａｘおよびエッジ強度下限値ＥＤｍｉｎを変更することで、適宜更新されることになる。
【０１８９】
上述の変換式に示されるように、エッジ強度上限値ＥＤｍａｘより大きなエッジ強度ＥＤｉをもつ画素は、すべて最大の階調値（たとえば、２５５）に制限（保持）されるので、そのエッジ強度についての情報は失われる。同様に、エッジ強度下限値ＥＤｍｉｎより小さなエッジ強度ＥＤｉをもつ画素についても、すべて最小の階調値（たとえば、０）に制限（保持）されるので、そのエッジ強度についての情報は失われる。したがって、そのエッジ強度ＥＤｉの値がエッジ強度下限値ＥＤｍｉｎからエッジ強度上限値ＥＤｍａｘの範囲にある画素のみが出力画像データ上で有効な階調値をもつ画素となる。すなわち、マッピング部２３１２は、エッジ画像データが有するエッジ強度ＥＤｉのうち、その値が所定範囲内であるものを階調範囲における有効な値に割当てる。言い換えれば、マッピング部２３１２は、ユーザによってエッジ強度上限値ＥＤｍａｘおよびエッジ強度下限値ＥＤｍｉｎが設定されると、そのエッジ強度ＥＤｉの値がエッジ強度下限値ＥＤｍｉｎと一致する画素に対して階調値Ｙｉにおける下限値（０）を割当て、そのエッジ強度ＥＤｉの値がエッジ強度上限値ＥＤｍａｘと一致する画素に対して階調値Ｙｉにおける上限値（２５５）を割当てる。
【０１９０】
図２２に戻って、ヒストグラム生成部２３１３は、エッジ画像データに含まれる画素のエッジ強度ＥＤｉについてのヒストグラムを生成する。すなわち、ヒストグラム生成部２３１３は、エッジ画像データに含まれる画素のエッジ強度ＥＤｉの分布をモニタ１０２に表示させるための分布データを生成する。より具体的には、ヒストグラム生成部２３１３は、各画素のエッジ強度ＥＤｉを所定幅の階級に区分した上で各階級の頻度を算出する。このヒストグラム生成部２３１３により生成されるヒストグラムを参照することで、ユーザは、どの範囲のエッジ強度をもつ画素を出力画像データとして出力すべきかを容易に設定することができる。
【０１９１】
これは、撮像部８により撮像される入力画像データに基づいて生成された合成画像データから抽出されたエッジ画像データのエッジ強度の程度を予め予測することは困難である。そこで、本実施の形態に従う画像処理装置においては、エッジ画像データに含まれる画素のエッジ強度の分布状態をユーザに提供することで、対象となるワーク毎にエッジ強度範囲（エッジ強度下限値ＥＤｍｉｎおよびエッジ強度上限値ＥＤｍａｘ）を適切な範囲に設定できるようにする。
【０１９２】
＜２．ユーザインターフェイス例＞
上述したエッジ抽出処理についての理解を容易にするために、図２３を参照して、モニタ１０２（図１）に表示されるエッジ抽出処理に係るユーザインターフェイスの一例について説明する。
【０１９３】
図２３は、この発明の実施の形態に従う画像処理装置のモニタ１０２に表示されるエッジ抽出処理の選択時における画面表示例を示す図である。
【０１９４】
図２３には、図１０に示す合成設定エリア４４０において、フィルタ処理プルダウンボックス４４１で「エッジ抽出」の項目が選択された場合に表示される設定画面５０１の一例を示す。フィルタ処理プルダウンボックス４４１において「エッジ抽出」の項目が選択されることで、エッジ抽出部２３１１（図２２）が合成画像データに対してエッジ抽出処理を実行する。
【０１９５】
図２３に示す設定画面５０１は、合成設定エリア４４０Ｂと、表示設定エリア４１９と、撮像設定表示エリア４１８と、画像表示エリア４１２と、表示制御アイコン群４１３と、全体表示エリア４１４とを含む。なお、表示設定エリア４１９と、撮像設定表示エリア４１８と、画像表示エリア４１２と、表示制御アイコン群４１３と、全体表示エリア４１４とについては、上述の図１０に示す設定画面４０１と同様であるので、詳細な説明は繰返さない。
【０１９６】
合成設定エリア４４０Ｂは、図１０に示す合成設定エリア４４０に、ヒストグラム表示エリア５２０を加えたものに相当する。ヒストグラム表示エリア５２０には、エッジ抽出処理によって得られたエッジ画像データのエッジ強度についてのヒストグラムが表示される。すなわち、ヒストグラム生成部２３１３（図２２）が生成するヒストグラム５２２は、ヒストグラム表示エリア５２０内に表示される。
【０１９７】
ヒストグラム表示エリア５２０内には、ユーザ設定されたエッジ強度上限値ＥＤｍａｘおよびエッジ強度下限値ＥＤｍｉｎを示すインジケータ５２４および５２６がそれぞれ表示される。さらに、ヒストグラム表示エリア５２０に関連付けて、エッジ強度上限値ＥＤｍａｘおよびエッジ強度下限値ＥＤｍｉｎの直接的な数値入力を受付ける数値入力ボックス５３０と、エッジ強度下限値ＥＤｍｉｎを設定するためのスライドバー５３４と、エッジ強度上限値ＥＤｍａｘを設定するためのスライドバー５３６とが表示される。
【０１９８】
スライドバー５３４もしくは５３６、または数値入力ボックス５３０に対するユーザ操作によって設定されるエッジ強度上下限範囲（エッジ強度上限値ＥＤｍａｘおよびエッジ強度下限値ＥＤｍｉｎ）に応じて、エッジ抽出処理によって得られるエッジ画像データに対して、マッピング処理がなされる。すなわち、スライドバー５３４もしくは５３６、または数値入力ボックス５３０を介して設定されたエッジ強度上下限範囲（エッジ強度上限値ＥＤｍａｘおよびエッジ強度下限値ＥＤｍｉｎ）は、マッピング部２３１２（図２２）へ与えられる。
【０１９９】
＜３．エッジ抽出処理の処理例＞
図２３および図２４においては、上述の図１５（ａ）に示すようなコネクタを撮像して得られた合成画像データに対してエッジ抽出処理を実行した結果を示す。
【０２００】
図２３には、ヒストグラム表示エリア５２０において、エッジ強度上下限範囲（エッジ強度上限値ＥＤｍａｘおよびエッジ強度下限値ＥＤｍｉｎ）をヒストグラム５２２の主成分に対して、相対的にエッジ強度が高い範囲に設定している場合を示す。図２４には、ヒストグラム表示エリア５２０において、エッジ強度上下限範囲（エッジ強度上限値ＥＤｍａｘおよびエッジ強度下限値ＥＤｍｉｎ）をヒストグラム５２２の主成分をまたぐように設定している場合を示す。
【０２０１】
図２３に示す例においては、エッジ画像データに含まれる大部分の画素がもつエッジ強度の値がエッジ強度下限値ＥＤｍｉｎより小さいので、画像表示エリア４１２には、全体的に暗めのエッジ画像が表示される。一方、図２４に示す例においては、エッジ画像データに含まれる大部分の画素がもつエッジ強度の値がエッジ強度上下限範囲に収まるので、画像表示エリア４１２には、図２２に比較して、より全体的に明るめのエッジ画像が表示される。但し、この場合には、ワークの中心部分には、白飛び（一種のハレーション）が生じている。
【０２０２】
このように、エッジ強度上下限範囲を変更することで、画像表示エリア４１２に表示されるエッジ画像が随時変化するので、ワークの目的とする部分に応じて、適切な明度をもって画像表示を行なうことができる。
【０２０３】
（ｊ３．バンドパスフィルタ処理）
＜１．構成＞
以下、図１０に示す設定画面４０１の合成設定エリア４４０において「バンドパスフィルタ」が選択された場合に実行される後処理として、画像に含まれる特定の周波数成分のみを抽出するバンドパスフィルタ処理について説明する。
【０２０４】
このバンドパスフィルタ処理を用いることで、特定領域の周波数成分を抽出することができ、これにより、特定のエッジを抽出したり、画像のシェーディングをカットしたりすることができる。
【０２０５】
このようなバンドパスフィルタ処理は、典型的には、１つの入力画像データに対して、異なる２つのウィンドウサイズで平滑化（フィルタリング）処理した画像データ同士の差分を算出することで実現することができる。代替の方法として、画像データに対してフーリエ変換を行なうことで、同様のバンドパスフィルタ処理を実現することもできる。
【０２０６】
以下の説明においては、１つの合成画像データを異なる２つのウィンドウサイズで平滑化処理する構成について例示する。すなわち、以下に説明するバンドパスフィルタ処理においては、合成画像データに対して第１の平滑化処理を行なうことで第１の平滑化画像データを生成するとともに、第１の平滑化処理とは異なる第２の平滑化処理を行なうことで第２の平滑化画像データを生成し、さらに両者の間で画像差分を算出することで出力画像データデータを生成する。
【０２０７】
図２５は、この発明の実施の形態に従う後処理部２３０Ｃ（図６）の制御構造を示す機能ブロック図である。図２５を参照して、後処理部２３０Ｃは、画像バッファ２３２１と、第１平滑化部２３２２と、第２平滑化部２３２３と、差分抽出部２３２４と、マッピング部２３２５と、ヒストグラム生成部２３２６とを含む。
【０２０８】
画像バッファ２３２１は、画像合成部２１２（図６）から出力される合成画像データを一時的に格納する。この画像バッファ２３２１に格納された合成画像データは、第１平滑化部２３２２および第２平滑化部２３２３の両方からアクセス可能となっている。
【０２０９】
第１平滑化部２３２２および第２平滑化部２３２３は、いずれも、画像バッファ２３２１に格納されている合成画像データに対してそれぞれ設定されたウィンドウサイズで平滑化処理を行なう。この平滑化処理とは、合成画像データに対して設定されたウィンドウサイズで複数のウィンドウを設定し、各ウィンドウに含まれる画素の間で平均化処理を行なうものである。このウィンドウサイズは、言い換えれば、対応するウィンドウに含まれる画素の範囲を意味する。たとえば、ウィンドウサイズが３×３であれば、各ウィンドウには、９個の画素が含まれることになる。そして、第１平滑化部２３２２および第２平滑化部２３２３がそれぞれ出力した平滑化後の画像データは、差分抽出部２３２４へ出力される。
【０２１０】
すなわち、第１平滑化部２３２２および第２平滑化部２３２３からそれぞれ出力される画像データは、対応するウィンドウサイズに相当する周波数フィルタを通過した画像データに相当する。言い換えれば、第１平滑化部２３２２は、遮断周波数ｆ１のローパスフィルタとして機能し、第２平滑化部２３２３は、遮断周波数ｆ２のローパスフィルタとして機能する。
【０２１１】
差分抽出部２３２４は、第１平滑化部２３２２から入力された第１画像データと、第２平滑化部２３２３から入力された第２画像データとの間で差分を抽出することで、差分画像データ（後処理後画像データ）を生成する。より具体的には、差分抽出部２３２４は、第１画像データの座標位置ｉにおける色情報（Ｒ（１）ｉ，Ｇ（１）ｉ，Ｂ（１）ｉ）と、第２画像データの対応する座標位置ｉにおける色情報（Ｒ（２）ｉ，Ｇ（２）ｉ，Ｂ（２）ｉ）との各色成分における差を算出する。このようにして、差分抽出部２３２４は、すべての画素について各画素についての色差ベクトルを算出する。さらに、差分抽出部２３２４は、算出した色差ベクトルの絶対値を対応する座標位置ｉにおける明度Ｖｉとして算出する。このようにして、差分抽出部２３２４は、すべての画素について算出した明度Ｖｉを含む差分画像データを出力する。なお、差分抽出部２３２４は、入力される合成画像データのもつ階調範囲（各色３２ビット）と同等の階調範囲をもつ明度Ｖｉを出力する。
【０２１２】
このように、第１画像データと第２画像データとの差分を算出することで、出力される差分画像データは、合成画像データを遮断周波数ｆ１と遮断周波数ｆ２との間の帯域フィルタに通過させた画像に相当する。なお、第２平滑化部２３２３において平滑化処理を行なわないようにすると、差分抽出部２３２４から出力される差分画像データは、合成画像データを遮断周波数ｆ１のハイパスフィルタに通過させた画像に相当するようになる。
【０２１３】
図２６は、この発明の実施の形態に従うバンドパスフィルタ処理の各ステージにおける画像データの一例を示す図である。たとえば、図２６（ａ）に示すような合成画像データが画像バッファ２３２１に入力されたとする。図２６（ｂ）には、図２６（ａ）に示すような合成画像データに対して、あるウィンドウサイズが設定されたバンドパスフィルタ処理の出力結果である出力画像データの一例を示す。このような出力画像データの生成過程において、より小さなウィンドウサイズを設定された第１平滑化部２３２２からは、図２６（ａ）に示すような合成画像データに対して平滑化処理が実行され、図２６（ｃ）に示すような平滑化後の画像データが出力される。一方、より大きなウィンドウサイズを設定された第２平滑化部２３２３からは、図２６（ａ）に示すような合成画像データに対して平滑化処理が実行され、図２６（ｃ）に示すような平滑化後の画像データが出力される。この図２６（ｃ）に示す画像データと図２６（ｄ）に示す画像データとの間で差分がとられることで、図２６（ｂ）に示すような出力画像データが生成される。
【０２１４】
マッピング部２３２５は、差分画像データの各画素の明度Ｖｉを対応する座標位置ｉにおける階調値Ｙｉ（たとえば、０〜２５５階調値）に割当てることで、合成画像データの濃淡値（明度）を決定する。一般的に、各画素の明度Ｖｉの階調範囲は、階調値Ｙｉの階調範囲より広い。なお、マッピング部２３２５におけるマッピング処理については、上述した図１２と同様である。
【０２１５】
すなわち、ユーザによってマッピングの範囲（明度上限値Ｖｍａｘと明度下限値Ｖｍｉｎ）が設定された場合には、マッピング部２３２５は、以下のような変換式に従って階調値Ｙｉへの割当てを行なう。
【０２１６】
（ｉ）Ｙｉ＜Ｖｍｉｎ：Ｙｉ＝０
（ｉｉ）Ｖｍｉｎ≦Ｙｉ≦Ｖｍａｘ：Ｙｉ＝２５５×（Ｖｉ−Ｖｍｉｎ）／（Ｖｍａｘ−Ｖｍｉｎ）
（ｉｉｉ）Ｖｍａｘ＜Ｙｉ：Ｙｉ＝２５５
このように、マッピング部２３２５において、明度Ｖｉから階調値Ｙｉへの変換に用いられる対応関係は、明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎを変更することで、適宜更新されることになる。
【０２１７】
図２５に戻って、ヒストグラム生成部２３２６は、差分画像データに含まれる画素の明度Ｖｉについてのヒストグラムを生成する。すなわち、ヒストグラム生成部２３２６は、差分画像データに含まれる画素の明度Ｖｉの分布をモニタ１０２に表示させるための分布データを生成する。より具体的には、ヒストグラム生成部２３２６は、各画素の明度Ｖｉを所定幅の階級に区分した上で各階級の頻度を算出する。このヒストグラム生成部２３２６により生成されるヒストグラムを参照することで、ユーザは、どの範囲の明度をもつ画素を出力画像データとして出力すべきかを容易に設定することができる。
【０２１８】
＜２．ユーザインターフェイス例＞
上述したバンドパスフィルタ抽出処理についての理解を容易にするために、図２７を参照して、モニタ１０２（図１）に表示されるバンドパスフィルタ処理に係るユーザインターフェイスの一例について説明する。
【０２１９】
図２７は、この発明の実施の形態に従う画像処理装置のモニタ１０２に表示されるバンドパスフィルタ処理の選択時における画面表示例を示す図である。
【０２２０】
図２７には、図１０に示す合成設定エリア４４０において、フィルタ処理プルダウンボックス４４１で「バンドパスフィルタ」の項目が選択された場合に表示される設定画面６０１の一例を示す。フィルタ処理プルダウンボックス４４１において「バンドパスフィルタ」の項目が選択されることで、合成画像データに対して上述したようなバンドパスフィルタ処理が開始される。
【０２２１】
図２７に示す設定画面６０１は、合成設定エリア４４０Ｃと、表示設定エリア４１９と、撮像設定表示エリア４１８と、画像表示エリア４１２と、表示制御アイコン群４１３と、全体表示エリア４１４とを含む。なお、表示設定エリア４１９と、撮像設定表示エリア４１８と、画像表示エリア４１２と、表示制御アイコン群４１３と、全体表示エリア４１４とについては、上述の図１０に示す設定画面４０１と同様であるので、詳細な説明は繰返さない。
【０２２２】
合成設定エリア４４０Ｃは、図１０に示す合成設定エリア４４０に、ウィンドウサイズ設定ボックス６３１および６３２と、ヒストグラム表示エリア６２０を加えたものに相当する。
【０２２３】
ウィンドウサイズ設定ボックス６３１および６３２は、それぞれ第１平滑化部２３２２および第２平滑化部２３２３（いずれも図２５）における平滑化処理に用いられるウィンドウサイズの数値入力を受付ける。すなわち、ウィンドウサイズ設定ボックス６３１に対して入力される数値Ｓ１は、第１平滑化部２３２２に与えられる。そして、第１平滑化部２３２２は、Ｓ１×Ｓ１のウィンドウサイズで平滑化処理を実行する。同様に、ウィンドウサイズ設定ボックス６３２に対して入力される数値Ｓ２は、第２平滑化部２３２３に与えられる。そして、第２平滑化部２３２３は、Ｓ２×Ｓ２のウィンドウサイズで平滑化処理を実行する。
【０２２４】
ヒストグラム表示エリア６２０には、バンドパスフィルタ処理によって得られた差分画像データの明度についてのヒストグラムが表示される。すなわち、ヒストグラム生成部２３２６（図２５）が生成するヒストグラム６２２は、ヒストグラム表示エリア６２０内に表示される。
【０２２５】
ヒストグラム表示エリア６２０内には、ユーザ設定された明度下限値Ｖｍｉｎおよび明度上限値Ｖｍａｘを示すインジケータ６２４および６２６がそれぞれ表示される。さらに、ヒストグラム表示エリア６２０に関連付けて、明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎの直接的な数値入力を受付ける数値入力ボックス６３０と、明度下限値Ｖｍｉｎを設定するためのスライドバー６３４と、明度上限値Ｖｍａｘを設定するためのスライドバー６３６とが表示される。
【０２２６】
スライドバー６３４もしくは６３６、または数値入力ボックス６３０に対するユーザ操作によって設定される明度上下限範囲（明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎ）に応じて、バンドパスフィルタ処理によって得られる差分画像データに対して、マッピング処理がなされる。すなわち、スライドバー６３４もしくは６３６、または数値入力ボックス６３０を介して設定された明度上下限範囲（明度上限値Ｖｍａｘおよび明度下限値Ｖｍｉｎ）は、マッピング部２３２５（図２５）へ与えられる。
【０２２７】
（ｊ４．色抽出処理）
図１０に示す設定画面４０１の合成設定エリア４４０において「色抽出」が選択された場合に実行される後処理として、画像に含まれる特定の色成分を有する画素（領域）を抽出する色抽出処理について説明する。
【０２２８】
この色抽出処理は、一種の色フィルタ処理に相当し、入力された合成画像データにおいて、ユーザが指定した色と一致もしくは当該色に近接する色情報を有する画素の位置を特定する。このような色抽出処理を用いることで、指定された色をもつ画素についての面積測定処理やラベリング処理などを行なうことができる。
【０２２９】
なお、ユーザが指定する色情報としては、「赤色」「緑色」「青色」の濃淡値を用いるＲＧＢ表色系に加えて、ＨＳＢ（Hue Saturation Brightness）表色系を用いてもよい。合成画像データに対してこのような色抽出処理を行なうことで、モニタ１０２では表現できないわずかな色の違いであっても、区別して色抽出を行なうことができる。
【０２３０】
［Ｋ．処理手順］
図２８は、この発明の実施に形態に従う画像処理装置における全体処理手順を示すフローチャートである。図２９は、この発明の実施に形態に従う画像処理装置におけるマッピング処理の手順を示すフローチャートである。図３０は、この発明の実施に形態に従う画像処理装置における差分抽出処理の手順を示すフローチャートである。図３１は、この発明の実施に形態に従う画像処理装置におけるエッジ抽出処理の手順を示すフローチャートである。図３２は、この発明の実施に形態に従う画像処理装置におけるバンドパスフィルタ処理の手順を示すフローチャートである。図２８〜図３２に示すフローチャートにおける各ステップは、典型的には、ＣＰＵ１０５が固定ディスク１０７などに予め格納されたプログラムをメモリ１０６に読出して実行することにより実現される。なお、画像合成処理に係る撮像回数および各撮像における露光時間などは予め設定されているものとする。
【０２３１】
また、入力画像データは、ｎ個の画素から構成され、その座標位置を変数ｉ（１≦ｉ≦ｎ）として表わすものとする。
【０２３２】
（ｋ１．全体処理）
図２８を参照して、まず、ＣＰＵ１０５は、撮像部８に指令を与えて、予め設定された露光時間群のうちいずれか１つの露光時間でワーク２を撮像させる（ステップＳ２）とともに、撮像部８から送られてくる入力画像データをメモリ１０６などに一時的に格納する（ステップＳ４）。続いて、ＣＰＵ１０５は、予め設定された露光時間群のすべてについての撮像が完了したか否かを判断する（ステップＳ６）。予め設定された露光時間群の一部についての撮像が未了である場合（ステップＳ６においてＮＯの場合）には、ＣＰＵ１０５は、予め設定された露光時間群のうち撮像が未了であるいずれかの露光時間をセットし（ステップＳ８）、ステップＳ２以下の処理を繰返す。
【０２３３】
これに対して、予め設定された露光時間群のすべてについての撮像が完了している場合（ステップＳ６においてＹＥＳの場合）には、ＣＰＵ１０５は、変数ｉを初期化（ｉ←１）し（ステップＳ１０）、メモリ１０６など一時的に格納されている複数の入力画像データについて、座標位置ｉに対応する画素が有する色情報および輝度をそれぞれ読出す（ステップＳ１２）。続いて、ＣＰＵ１０５は、読出された複数の入力画像データの座標位置ｉに対応する画素がそれぞれ有する輝度に基づいて、座標位置ｉの合成輝度Ｅｉを算出する（ステップＳ１４）。同時並行的に、ＣＰＵ１０５は、読出された複数の入力画像データの座標位置ｉに対応する画素がそれぞれ有する輝度および色情報に基づいて、座標位置ｉの合成色情報（ｒｉ，ｇｉ，ｂｉ）を算出する（ステップＳ１６）。
【０２３４】
そして、ＣＰＵ１０５は、ステップＳ１４において算出した座標位置ｉの合成輝度Ｅｉと、ステップＳ１６において算出した座標位置ｉの合成色情報（ｒｉ，ｇｉ，ｂｉ）とを乗じることで、座標位置ｉの絶対的な色情報（Ｒｉ，Ｇｉ，Ｂｉ）を算出する（ステップＳ１８）。
【０２３５】
続いて、ＣＰＵ１０５は、現在の座標位置ｉが入力画像データに含まれる最終位置（ｎ番目）であるか否かを判断する（ステップＳ２０）。現在の座標位置ｉが入力画像データに含まれる最終位置ではない場合（ステップＳ２０においてＮＯの場合）には、ＣＰＵ１０５は、現在の座標位置ｉに「１」を加算（ｉ←ｉ＋１）して（ステップＳ２２）、ステップＳ１２以下の処理を繰返す。
【０２３６】
現在の座標位置ｉが入力画像データに含まれる最終位置である場合（ステップＳ２０においてＹＥＳの場合）には、ＣＰＵ１０５は、後処理として、差分抽出処理が選択されているか否かを判断する（ステップＳ２４）。差分抽出処理が選択されている場合（ステップＳ２４においてＹＥＳの場合）には、ＣＰＵ１０５は、図３０に示す差分抽出処理を実行する（ステップＳ２６）。その後、処理は終了する。
【０２３７】
これに対して、差分抽出処理が選択されていない場合（ステップＳ２４においてＮＯの場合）には、ＣＰＵ１０５は、後処理として、エッジ抽出処理が選択されているか否かを判断する（ステップＳ２８）。エッジ抽出処理が選択されている場合（ステップＳ２８においてＹＥＳの場合）には、図３１に示すエッジ抽出処理を実行する（ステップＳ３０）。その後、処理は終了する。
【０２３８】
これに対して、エッジ抽出処理が選択されていない場合（ステップＳ２８においてＮＯの場合）には、ＣＰＵ１０５は、後処理として、バンドパスフィルタ処理が選択されているか否かを判断する（ステップＳ３２）。バンドパスフィルタ処理が選択されている場合（ステップＳ３２においてＹＥＳの場合）には、ＣＰＵ１０５は、図３２に示すバンドパスフィルタ処理を実行する（ステップＳ３４）。その後、処理は終了する。
【０２３９】
これに対して、バンドパスフィルタ処理が選択されていない場合（ステップＳ３２においてＮＯの場合）には、ＣＰＵ１０５は、後処理として、色抽出処理が選択されているか否かを判断する（ステップＳ３６）。色抽出処理が選択されている場合（ステップＳ３６においてＹＥＳの場合）には、ＣＰＵ１０５は、ユーザ操作に従って色抽出処理を実行し、その結果を後続処理へ出力、および／または、モニタ１０２に表示する（ステップＳ３８）。その後、処理は終了する。
【０２４０】
これに対して、色抽出処理が選択されていない場合（ステップＳ３６においてＮＯの場合）には、ＣＰＵ１０５は、図２９に示すマッピング処理を実行する（ステップＳ４０）。すなわち、ＣＰＵ１０５は、より多くの階調値をもつ合成画像データを所定の階調範囲の出力画像データに変換する。そして、ＣＰＵ１０５は、この生成した出力画像データをモニタ１０２に表示する（ステップＳ４２）。その後、処理は終了する。
【０２４１】
（ｋ２．マッピング処理）
次に、図２９を参照して、マッピング処理について例示する。なお、図２９に示すマッピング処理は、図２８に示すステップＳ４０に加えて、図３０に示す差分抽出処理、図３１に示すエッジ抽出処理、図３２に示すバンドパスフィルタ処理においてそれぞれ利用されるサブルーチンである。したがって、マッピング対象の物理値（合成輝度Ｅｉ，明度Ｖｉ，エッジ強度ＥＤｉなど）を処理対象値Ｘｉとして表わし、マッピング範囲を定める上限値および下限値をそれぞれＭＡＸおよびＭＩＮとして表わす。
【０２４２】
図２９を参照して、まず、ＣＰＵ１０５は、変数ｉを初期化（ｉ←１）する（ステップＳ１００）。続いて、ＣＰＵ１０５は、処理対象値Ｘｉを読出し（ステップＳ１０２）、さらに、ユーザ設定される上限値ＭＡＸおよび下限値ＭＩＮを読出す（ステップＳ１０４）。
【０２４３】
そして、ＣＰＵ１０５は、Ｙｉ＝２５５×（Ｘｉ−ＭＩＮ）／（ＭＡＸ−ＭＩＮ）の演算式に従って階調値Ｙｉを算出する（ステップＳ１０６）。続いて、ＣＰＵ１０５は、算出した階調値Ｙｉ＜について、階調値Ｙｉ＜０が成立するか否かを判断する（ステップＳ１０８）。階調値Ｙｉ＜０が成立する場合（ステップＳ１０８においてＹＥＳの場合）には、ＣＰＵ１０５は、階調値Ｙｉに「０」をセット（Ｙｉ←０）する（ステップＳ１１０）。
【０２４４】
これに対して、階調値Ｙｉ＜０が成立しない場合（ステップＳ１０８においてＮＯの場合）には、ＣＰＵ１０５は、階調値Ｙｉ＞２５５が成立するか否かを判断する（ステップＳ１１２）。階調値Ｙｉ＞２５５が成立する場合（ステップＳ１１２においてＹＥＳの場合）には、ＣＰＵ１０５は、階調値Ｙｉに「２５５」をセット（Ｙｉ←２５５）する（ステップＳ１１４）。
【０２４５】
階調値Ｙｉ＞２５５が成立しない場合（ステップＳ１１２においてＮＯの場合）、またはステップＳ１１０もしくはステップＳ１１４の実行後、ＣＰＵ１０５は、算出した階調値Ｙｉの値をマッピング処理の結果として出力する（ステップＳ１１６）。さらに、ＣＰＵ１０５は、現在の座標位置ｉが処理対象値Ｘｉの最終値であるか否かを判断する（ステップＳ１１８）。現在の座標位置ｉが処理対象値Ｘｉの最終値ではない場合（ステップＳ１１８においてＮＯの場合）には、ＣＰＵ１０５は、現在の座標位置ｉに「１」を加算（ｉ←ｉ＋１）して（ステップＳ１２０）、ステップＳ１０２以下の処理を繰返す。
【０２４６】
これに対して、現在の座標位置ｉが処理対象値Ｘｉの最終値である場合（ステップＳ１１８においてＹＥＳの場合）には、ＣＰＵ１０５は、現在の処理終了し、元の処理に戻る。
【０２４７】
（ｋ３．差分抽出処理）
次に、図３０を参照して、差分抽出処理について説明する。なお、モデル画像データは予め登録されているものとする。また、後述する位置修正処理が有効化されている場合には、位置修正モデル画像データも予め登録されているものとする。
【０２４８】
図３０を参照して、ＣＰＵ１０５は、まず、位置修正処理が有効化されているか否かを判断する（ステップＳ２００）。すなわち、ＣＰＵ１０５は、図１０に示す位置修正チェックボックス４４７がチェックされているか否かを判断する。位置修正処理が有効化されていない場合（ステップＳ２００においてＮＯの場合）には、処理はステップＳ２１０へ進む。
【０２４９】
これに対して、位置修正処理が有効化されている場合（ステップＳ２００においてＹＥＳの場合）には、ＣＰＵ１０５は、位置修正モデル画像データを読出す（ステップＳ２０２）。続いて、ＣＰＵ１０５は、読出した位置修正モデル画像に基づいて、合成画像データに対してサーチ処理を実行する（ステップＳ２０４）。そして、ＣＰＵ１０５は、サーチ処理が成功したか否かを判断する（ステップＳ２０６）。サーチ処理が失敗した場合（ステップＳ２０６においてＮＯの場合）には、ＣＰＵ１０５は、サーチ処理が失敗した旨の通知を行なった上で、処理を終了する。
【０２５０】
これに対して、サーチ処理が成功した場合（ステップＳ２０６においてＹＥＳの場合）には、ＣＰＵ１０５は、合成画像データに対して、サーチ処理の結果に基づく画像変換を行なう（ステップＳ２０８）。より具体的には、ＣＰＵ１０５は、合成画像データとモデル画像データとが対応して配置されるように、合成画像データの向きおよび／またはサイズを変更する。そして、処理はステップＳ２１０へ進む。
【０２５１】
ステップＳ２１０において、ＣＰＵ１０５は、変数ｉを初期化（ｉ←１）する。続いて、ＣＰＵ１０５は、合成画像データ（もしくは、画像変換後の合成画像データ）の座標位置ｉにおける色情報（Ｒｉ，Ｇｉ，Ｂｉ）を読出す（ステップＳ２１２）とともに、モデル画像データの座標位置ｉにおける色情報（Ｒ（ｍ）ｉ，Ｇ（ｍ）ｉ，Ｂ（ｍ）ｉ）を読出す（ステップＳ２１４）。さらに、ＣＰＵ１０５は、読出した色情報（Ｒｉ，Ｇｉ，Ｂｉ）と色情報（Ｒ（ｍ）ｉ，Ｇ（ｍ）ｉ，Ｂ（ｍ）ｉ）との差分の色情報（Ｒｉ−Ｒ（ｍ）ｉ，Ｇｉ−Ｇ（ｍ）ｉ，Ｂｉ−Ｂ（ｍ）ｉ）を算出する（ステップＳ２１６）。
【０２５２】
そして、ＣＰＵ１０５は、算出した差分の色情報の明度Ｖｉを算出する（ステップＳ２１８）。具体的には、Ｖｉ＝√｛（Ｒｉ−Ｒ（ｍ）ｉ）２＋（Ｇｉ−Ｇ（ｍ）ｉ）２＋（Ｂｉ−Ｂ（ｍ）ｉ）２｝の計算式に従って、明度Ｖｉが算出される。続いて、ＣＰＵ１０５は、算出した明度Ｖｉに対してマッピング処理を実行する（ステップＳ２２０）。すなわち、ＣＰＵ１０５は、算出した明度Ｖｉに対して図２９に示すマッピング処理を実行する。
【０２５３】
その後、ＣＰＵ１０５は、マッピング処理により得られる階調値Ｙｉを出力画像データの座標位置ｉにおける成分値として出力する（ステップＳ２２２）。さらに、ＣＰＵ１０５は、現在の座標位置ｉが合成画像データに含まれる最終位置であるか否かを判断する（ステップＳ２２４）。現在の座標位置ｉが合成画像データに含まれる最終位置ではない場合（ステップＳ２２４においてＮＯの場合）には、ＣＰＵ１０５は、現在の座標位置ｉに「１」を加算（ｉ←ｉ＋１）して（ステップＳ２２６）、ステップＳ２１４以下の処理を繰返す。
【０２５４】
これに対して、現在の座標位置ｉが第１画像データおよび第２画像データに含まれる最終位置である場合（ステップＳ２２４においてＹＥＳの場合）には、ＣＰＵ１０５は、生成された出力画像データを後続処理へ出力、および／または、モニタ１０２に表示する（ステップＳ２２８）。その後、処理は終了する。
【０２５５】
（ｋ４．エッジ抽出処理）
次に、図３１を参照して、エッジ抽出処理について説明する。図３１に示すエッジ抽出処理においては、ラプラシアンフィルタを用いる場合の処理について例示する。なお、説明の便宜上、合成画像データの座標位置を２次元の座標（ｋ，ｌ）（但し、１≦ｋ≦ＸＸ；１≦ｌ≦ＹＹ；ｋ×ｌ＝ｎ）として表わすものとする。
【０２５６】
図３１を参照して、ＣＰＵ１０５は、変数ｋおよび変数ｌを初期化（ｋ←１，ｌ←１，）する（ステップＳ３００）。
【０２５７】
続いて、ステップＳ３０２〜Ｓ３３４において、座標位置（ｋ，ｌ）の画素についての空間フィルタ処理が実行される。
【０２５８】
すなわち、ＣＰＵ１０５は、変数ＳＵＭを初期化（ＳＵＭ←０）し（ステップＳ３０２）、変数ａおよび変数ｂを初期化（ａ←−１，ｂ←−１，）する（ステップＳ３０４）する。続いて、ＣＰＵ１０５は、合成画像データの座標位置（ｋ＋ａ，ｌ＋ｂ）における色情報（Ｒｋ＋ａ，ｌ＋ｂ，Ｇｋ＋ａ，ｌ＋ｂ，Ｂｋ＋ａ，ｌ＋ｂ）を読出す（ステップＳ３０６）とともに、その色情報の明度Ｖｉを算出する（ステップＳ３０８）。具体的には、Ｖｉ＝√（Ｒｋ＋ａ，ｌ＋ｂ２＋Ｇｋ＋ａ，ｌ＋ｂ２＋Ｂｋ＋ａ，ｌ＋ｂ２）の計算式に従って、明度Ｖｋ＋ａ，ｌ＋ｂが算出される。
【０２５９】
さらに、ＣＰＵ１０５は、ステップＳ３０８において算出した明度Ｖｋ＋ａ，ｌ＋ｂに重み係数Ｗ（ａ，ｂ）を乗じた値を変数ＳＵＭに加算する（ＳＵＭ←ＳＵＭ＋Ｖｋ＋ａ，ｌ＋ｂ×Ｗ（ａ，ｂ））（ステップＳ３１０）。なお、重み係数Ｗ（ａ，ｂ）は、以下のような値をとる。
【０２６０】
Ｗ（−１，−１）＝−１，Ｗ（０，−１）＝−１，Ｗ（１，−１）＝−１
Ｗ（−１，０）＝−１，Ｗ（０，０）＝８，Ｗ（１，０）＝−１，
Ｗ（−１，１）＝−１，Ｗ（０，１）＝−１，Ｗ（１，１）＝−１，
その後、ＣＰＵ１０５は、現在の変数ａに「１」を加算（ａ←ａ＋１）して（ステップＳ３１２）、変数ａ≦１が成立するか否かを判断する（ステップＳ３１４）。変数ａ≦１が成立する場合（ステップＳ３１４においてＹＥＳの場合）には、ステップＳ３０６以下の処理が繰返される。
【０２６１】
これに対して、変数ａ≦１が成立しない場合（ステップＳ３１４においてＮＯの場合）には、ＣＰＵ１０５は、現在の変数ｂに「１」を加算（ｂ←ｂ＋１）して（ステップＳ３１６）、変数ｂ≦１が成立するか否かを判断する（ステップＳ３１８）。変数ｂ≦１が成立する場合（ステップＳ３１８においてＹＥＳの場合）には、ＣＰＵ１０５は、変数ｂを初期化（ｂ←−１）し（ステップＳ３２０）、ステップＳ３０６以下の処理を繰返す。
【０２６２】
これに対して、変数ｂ≦１が成立しない場合（ステップＳ３１８においてＮＯの場合）には、ＣＰＵ１０５は、現在の変数ＳＵＭの値をエッジ強度ＥＤｋ，ｌとして出力する（ステップＳ３２２）。続いて、ＣＰＵ１０５は、算出したエッジ強度ＥＤｋ，ｌに対してマッピング処理を実行する（ステップＳ３２４）。すなわち、ＣＰＵ１０５は、算出したエッジ強度ＥＤｋ，ｌに対して図２９に示すマッピング処理を実行する。そして、ＣＰＵ１０５は、マッピング処理により得られる階調値Ｙｉを出力画像データの座標位置（ｋ，ｌ）における成分値として出力する（ステップＳ３２６）。
【０２６３】
ＣＰＵ１０５は、現在の変数ｋに「１」を加算（ｋ←ｋ＋１）して（ステップＳ３２８）、変数ｋ≦ＸＸが成立するか否かを判断する（ステップＳ３３０）。変数ｋ≦ＸＸが成立する場合（ステップＳ３３０においてＹＥＳの場合）には、ステップＳ３０２以下の処理が繰返される。
【０２６４】
これに対して、変数ｋ≦ＸＸが成立しない場合（ステップＳ３３０においてＮＯの場合）には、現在の変数ｌに「１」を加算（ｌ←ｌ＋１）して（ステップＳ３３２）、変数ｌ≦ＹＹが成立するか否かを判断する（ステップＳ３３４）。変数ｌ≦ＹＹが成立する場合（ステップＳ３３４においてＹＥＳの場合）には、変数ｋを初期化（ｋ←−１）し（ステップＳ３３６）、ステップＳ３０２以下の処理を繰返す。
【０２６５】
これに対して、変数ｌ≦ＹＹが成立しない場合（ステップＳ３３４においてＮＯの場合）には、生成された出力画像データを後続処理へ出力、および／または、モニタ１０２に表示する（ステップＳ３３８）。その後、処理は終了する。
【０２６６】
（ｋ５．バンドパスフィルタ処理）
次に、図３２を参照して、バンドパスフィルタ処理について説明する。図３２を参照して、ＣＰＵ１０５は、ユーザ設定されるウィンドウサイズＳ２およびＳ２を読出す（ステップＳ４００）。続いて、ＣＰＵ１０５は、合成画像データに対して、Ｓ１×Ｓ１のウィンドウサイズで平滑化処理を実行して、第１画像データを生成する（ステップＳ４０２）。同時並行的に、ＣＰＵ１０５は、合成画像データに対して、Ｓ２×Ｓ２のウィンドウサイズで平滑化処理を実行して、第２画像データを生成する（ステップＳ４０４）。
【０２６７】
その後、ＣＰＵ１０５は、変数ｉを初期化（ｉ←１）する（ステップＳ４０６）。続いて、ＣＰＵ１０５は、第１画像データの座標位置ｉにおける色情報（Ｒ（１）ｉ，Ｇ（１）ｉ，Ｂ（１）ｉ）を読出す（ステップＳ４０８）とともに、第２画像データの座標位置ｉにおける色情報（Ｒ（２）ｉ，Ｇ（２）ｉ，Ｂ（２）ｉ）を読出す（ステップＳ４１０）。さらに、ＣＰＵ１０５は、読出した色情報（Ｒ（１）ｉ，Ｇ（１）ｉ，Ｂ（１）ｉ）と色情報（Ｒ（２）ｉ，Ｇ（２）ｉ，Ｂ（２）ｉ）との差分の色情報（Ｒ（１）ｉ−Ｒ（２）ｉ，Ｇ（１）ｉ−Ｇ（２）ｉ，Ｂ（１）ｉ−Ｂ（２）ｉ）を算出する（ステップＳ４１２）。
【０２６８】
そして、ＣＰＵ１０５は、算出した差分の色情報の明度Ｖｉを算出する（ステップＳ４１４）。具体的には、Ｖｉ＝√｛（Ｒ（１）ｉ−Ｒ（２）ｉ）２＋（Ｇ（１）ｉ−Ｇ（２）ｉ）２＋（Ｂ（１）ｉ−Ｂ（２）ｉ）２｝の計算式に従って、明度Ｖｉが算出される。続いて、ＣＰＵ１０５は、算出した明度Ｖｉに対してマッピング処理を実行する（ステップＳ４１６）。すなわち、ＣＰＵ１０５は、算出した明度Ｖｉに対して図２９に示すマッピング処理を実行する。
【０２６９】
その後、ＣＰＵ１０５は、マッピング処理により得られる階調値Ｙｉを出力画像データの座標位置ｉにおける成分値として出力する（ステップＳ４１８）。さらに、ＣＰＵ１０５は、現在の座標位置ｉが第１画像データおよび第２画像データに含まれる最終位置であるか否かを判断する（ステップＳ４２０）。現在の座標位置ｉが第１画像データおよび第２画像データに含まれる最終位置ではない場合（ステップＳ４２０においてＮＯの場合）には、ＣＰＵ１０５は、現在の座標位置ｉに「１」を加算（ｉ←ｉ＋１）して（ステップＳ４２２）、ステップＳ４０８以下の処理を繰返す。
【０２７０】
これに対して、現在の座標位置ｉが第１画像データおよび第２画像データに含まれる最終位置である場合（ステップＳ４２０においてＹＥＳの場合）には、ＣＰＵ１０５は、生成された出力画像データを後続処理へ出力、および／または、モニタ１０２に表示する（ステップＳ４２４）。その後、処理は終了する。
【０２７１】
［Ｌ．変形例１］
上述の実施の形態においては、マッピング処理において、ユーザがマッピング範囲を定める上限値および下限値を設定する構成について例示したが、生成されたヒストグラムに基づいて、マッピング範囲を自動的に設定してもよい。より具体的には、ヒストグラムに現れる主成分を特定するとともに、その分散度合いを算出し、それに応じた位置および幅をマッピング範囲に設定する。
【０２７２】
［Ｍ．変形例２］
上述の実施の形態においては、合成画像データの全体に対して、各種の後処理を適用する構成について例示したが、合成画像データの一部の部分画像データについてのみ上述のような後処理を実行してもよい。この場合には、図１４に示すようなユーザインターフェイス上で、ユーザが合成画像データのうち処理対象の領域を設定することになる。なお、このように部分画像データに対して、各種の後処理が実行される場合には、出力画像データのサイズも指定された部分画像データに大きさに応じたものとなる。
【０２７３】
［Ｎ．その他の実施の形態］
本発明に係るプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【０２７４】
また、本発明に係るプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明に係るプログラムに含まれ得る。
【０２７５】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
【０２７６】
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
【０２７７】
［Ｏ．本実施の形態に従う作用効果］
この発明の実施の形態によれば、撮像部が撮像することで取得される入力画像データ（たとえば、各色８ビット階調）を合成して、より広い階調範囲の画素情報をもつ合成画像データ（たとえば、各色３２ビット階調）を生成した上で、この合成画像データの有する情報量を低減することなく、各種の後処理を実行する。そのため、差分抽出処理、エッジ抽出処理、バンドパスフィルタ処理、色抽出処理といった画像処理をより高い精度で行なうことができる。
【０２７８】
さらに、この発明の実施の形態によれば、上述のような画像処理の結果得られた画像を、出力先の後続処理および／またはデバイスに応じた階調範囲に適合して出力する。そのため、出力先の後続処理またはデバイスに対して特別な性能が必要となることはない。そのため、既存の検出処理または計測処理を行なう画像処理モジュールや、各種装置との間で高い親和性をもつことができる。
【０２７９】
すなわち、処理可能階調が制約されるような検出／計測モジュール（典型的には、レガシーなソフトウェア）が組み込まれている、ダイナミックレンジを拡大した合成画像データによる精度の高い画像処理を実現できる。
【０２８０】
また、この発明の実施の形態によれば、より多くの情報を有する合成画像データを扱うにもかかわらず、検出処理または計測処理での演算処理量（処理時間）が増大することを回避できる。
【０２８１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２８２】
１  視覚センサシステム、２  ワーク、４ａ  受光部、４ｂ  投光部、６  搬送ライン、８  撮像部、１００  コンピュータ、１０１  コンピュータ本体、１０２  モニタ、１０３  キーボード、１０４  マウス、１０５  ＣＰＵ、１０６  メモリ、１０７  固定ディスク、１０９  カメラインターフェイス部、１０９ａ  画像バッファ、１０９ｂ  露光時間設定部、１１１  ＦＤ駆動装置、１１３  ＣＤ−ＲＯＭ駆動装置、１１５  ＰＬＣインターフェイス部、１１７  センサインターフェイス部、２００  撮像制御部、２０２  選択部、２０４，２０４ａ〜２０４ｈ  画像バッファ、２０６ａ〜２０６ｈ  画像情報抽出部、２０８  色合成部、２１０  輝度合成部、２１２  画像合成部、２１４  ヒストグラム生成部、２３０Ａ，２３０Ｂ，２３０Ｃ  後処理部、２３０１  セレクタ、２３０２  前処理部、２３０３  差分抽出部、２３０４  モデル抽出部、２３０５  モデル格納部、２３０６  サーチ部、２３０７，２３１２，２３２５  マッピング部、２３０８，２３１３，２３２６  ヒストグラム生成部、２３１１  エッジ抽出部、２３２１  画像バッファ、２３２２  第１平滑化部、２３２３  第２平滑化部、２３２４  差分抽出部。
【図１】
2010239610.tif 000005
【図２】
2010239610.tif 000006
【図４】
2010239610.tif 000007
【図５】
2010239610.tif 000008
【図６】
2010239610.tif 000009
【図７】
2010239610.tif 000010
【図８】
2010239610.tif 000011
【図１１】
2010239610.tif 000012
【図１２】
2010239610.tif 000013
【図２２】
2010239610.tif 000014
【図２５】
2010239610.tif 000015
【図２８】
2010239610.tif 000016
【図２９】
2010239610.tif 000017
【図３０】
2010239610.tif 000018
【図３１】
2010239610.tif 000019
【図３２】
2010239610.tif 000020
【図３】
2010239610.tif 000021
【図９】
2010239610.tif 000022
【図１０】
2010239610.tif 000023
【図１３】
2010239610.tif 000024
【図１４】
2010239610.tif 000025
【図１５】
2010239610.tif 000026
【図１６】
2010239610.tif 000027
【図１７】
2010239610.tif 000028
【図１８】
2010239610.tif 000029
【図１９】
2010239610.tif 000030
【図２０】
2010239610.tif 000031
【図２１】
2010239610.tif 000032
【図２３】
2010239610.tif 000033
【図２４】
2010239610.tif 000034
【図２６】
2010239610.tif 000035
【図２７】
2010239610.tif 000036