説明

画像処理装置および画像処理方法

【課題】撮影環境からの外乱を受ける場合、および抽出対象領域とそれ以外の領域との間の色属性の差が相対的に小さい場合のいずれであっても、目的とする領域を正確に特定することが可能な画像処理装置および画像処理方法を提供する。
【解決手段】座標点G1は相対的に原点Oから離れた位置にある一方、座標点G2の各々は相対的に原点Oに近い位置にある。そのため、それぞれの座標軸において、抽出対象領域を定義するための上下限値をそれぞれ設定することで、しきい領域を設定することができる。すると、このしきい領域外に存在する座標点G2に対応する画素を、しきい領域内に存在する座標点G1に対応する画素から区別することができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、入力画像のうち所定条件を満たす領域を特定することが可能な画像処理装置および画像処理方法にするものである。
【背景技術】
【0002】
FA(Factory Automation)分野などにおいては、ワークなどの被測定物上の欠陥や汚れの有無を光学的に検査したり、その大きさなどを光学的に計測したり、被測定物上の文字や図形などを光学的に認識したりする装置として、いわゆる視覚センサが実用化されている。このような視覚センサは、被測定物を撮影することで得られる入力画像のうち、所定条件を満たす領域を特定して、その色属性や位置情報などを抽出する。なお、以下の説明では、入力画像のうち特定されるべき領域を「抽出対象領域」とも称す。
【0003】
このような視覚センサを実際の現場に適用した場合には、撮影環境からの外乱を受けたり、抽出対象領域を定義するための条件設定が難しい局面が生じたりする。
【0004】
たとえば、照明装置からの照度にムラがあったり、被測定物が曲面形状を有していたりすると、被測定物表面の輝度が均一とはならない場合がある。たとえば、入力画像上において、ゆるやかな陰影が映っているような場合などが考えられる。このような場合には、抽出対象領域を正確に特定できない(不検知)、および/または、抽出対象領域以外の領域を誤って特定してしまう(誤検知)、といった課題が生じ得る。
【0005】
このような課題に対する技術として、動的2値化処理と呼ばれる方法が知られている。たとえば、特開昭59−114687号公報(特許文献1)には、画像の濃淡データを部分画像に分割し、各部分画像の画像データの平均値から、補間式により各点におけるしきい値を決定して2値化を行なう画像データの2値化方法が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開昭59−114687号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特開昭59−114687号公報(特許文献1)に開示される画像データの2値化方法では、入力画像の濃淡値に基づいて処理が行われるので、抽出対象領域とそれ以外の領域(たとえば、背景領域)との間の濃淡差(明度差)が相対的に小さい場合に、不検知および/または誤検知の問題を生じ得る。典型的には、抽出対象領域とそれ以外の領域との間で、色相差はあるので人間の視覚上は識別できるにもかかわらず、両者の間の濃淡差がわずかであるため、両者を適切に区別できない場合などである。
【0008】
また、色属性の値が予め登録した値(抽出色)と一致または近似していることを条件に抽出対象領域を特定する方法も考えられるが、このような方法を用いた場合には、様々な外乱要因により入力画像における色属性(色相など)が変化した場合に、不検知および/または誤検知の問題を生じ得る。また、抽出対象領域とそれ以外の領域との間の色相の差がわずかであるような場合にも、判定処理が不安定化する。
【0009】
そこで、この発明は、これらの問題を解決するためになされたものであり、その目的は、撮影環境からの外乱を受ける場合、および抽出対象領域とそれ以外の領域との間の色属性の差が相対的に小さい場合のいずれであっても、目的とする領域を正確に特定することが可能な画像処理装置および画像処理方法を提供することである。
【課題を解決するための手段】
【0010】
この発明のある局面によれば、入力画像のうち所定条件を満たす領域を特定するための画像処理装置を提供する。本画像処理装置は、入力画像の各画素の色属性を定義する3つの色パラメータ値を取得する取得手段と、入力画像における色属性の空間的な変化を示す特徴画像を生成する生成手段とを備える。特徴画像は、複数次元の要素値を含み、複数次元の要素値の各々は、入力画像における3つの色パラメータ値のうち互いに異なる色パラメータ値の少なくとも1つを反映したものである。本画像処理装置は、さらに、複数次元の要素値の各々を対応する条件に基づいて評価し、各次元についての評価結果に基づいて対象の領域が所定条件を満たすか否かを評価する評価手段と、入力画像のうち、所定条件を満たす領域を特定するための情報を出力する出力手段とを備える。
【0011】
好ましくは、評価手段は、複数次元の要素値の各々を評価するための条件として、3つの色パラメータの各々についてのしきい値を用いる。
【0012】
好ましくは、生成手段は、3つの色パラメータ値のそれぞれ1つに基づいて、3つの次元の要素値を含む特徴画像を生成する。
【0013】
さらに好ましくは、生成手段は、色パラメータの別に隣接する複数の画素の有する色パラメータ値を平均化することで、3つの色パラメータにそれぞれ対応する3つの平均画像を生成する手段と、入力画像に含まれる各画素の有する色パラメータ値の各々と、対応する色パラメータについての平均画像に含まれる対応する画素の有する色パラメータ値との間で差分をとることで、特徴画像を生成する手段とを含む。
【0014】
好ましくは、3つの色パラメータは、L*a*b*表色系を構成する3つの要素である。
【0015】
好ましくは、本画像処理装置は、対話型のユーザインターフェイスを提供するユーザインターフェイス手段をさらに備える。ユーザインターフェイス手段は、選択範囲に含まれる特徴画像の画素についての複数次元の要素値を3つの色パラメータに対応する表色座標系上にグラフィカル表示する手段を含む。
【0016】
さらに好ましくは、ユーザインターフェイス手段は、評価手段による複数次元の要素値の各々を評価するための条件条件として、ユーザによる任意のしきい値の設定を受付ける手段をさらに含む。
【0017】
あるいはさらに好ましくは、出力手段は、入力画像をイメージ表示する手段をさらに含み、本画像処理装置は、イメージ表示される入力画像上で設定された領域に対応する画素を他の画素とは区別するための所定条件を決定する条件決定手段をさらに備える。
【0018】
さらに好ましくは、条件決定手段では、いずれの画素であっても所定条件を満たすような値が初期条件として設定されている。
【0019】
この発明の別の局面に従えば、入力画像のうち所定条件を満たす領域を特定する画像処理方法を提供する。本画像処理方法は、入力画像の各画素の色属性を定義する3つの色パラメータを取得するステップと、入力画像における色属性の空間的な変化を示す特徴画像を生成するステップとを備える。特徴画像は、複数次元の要素値を含み、複数次元の要素値の各々は、入力画像における3つの色パラメータのうち互いに異なる色パラメータの少なくとも1つを反映したものである。本画像処理方法は、さらに、複数次元の要素値の各々を対応する条件に基づいて評価し、各次元についての評価結果に基づいて対象の領域が所定条件を満たすか否かを評価するステップと、入力画像のうち、所定条件を満たす領域を特定するための情報を出力するステップとを備える。
【発明の効果】
【0020】
この発明によれば、撮影環境からの外乱を受ける場合、および抽出対象領域とそれ以外の領域との間の色属性の差が相対的に小さい場合のいずれであっても、目的とする領域を正確に特定することができる。
【図面の簡単な説明】
【0021】
【図1】この発明の実施の形態に従う画像処理装置を含む視覚センサシステムの全体構成を示す概略図である。
【図2】この発明の実施の形態に従う画像処理装置を実現するコンピュータの概略構成図である。
【図3】この発明の実施の形態において実行される画像処理の典型例を示す概念図である。
【図4】この発明の実施の形態に従う差分画像の技術的意味を説明するための図である。
【図5】この発明の実施の形態に従う差分画像の生成に用いられる平均画像を生成する手順を説明するための図である。
【図6】この発明の実施の形態に従う差分画像に対する評価処理を説明するための図である。
【図7】L*a*b*表色系を示す図である。
【図8】この発明の実施の形態に従う画像処理装置の制御構造を示すブロック図である。
【図9】図8に示す差分画像生成部のより詳細な制御構造を示すブロック図である。
【図10】この発明の実施の形態に従う抽出対象領域に係る条件設定例を説明するための図である。
【図11】この発明の実施の形態に従う画像処理装置のモニタに表示される「設定モード」における画面表示例を示す図である。
【図12】イメージ表示される画像の種類を説明するための図である。
【図13】図11において抽出対象色と背景色とを設定するための手順(その1)を説明するための図である。
【図14】図11において抽出対象色と背景色とを設定するための手順(その2)を説明するための図である。
【図15】この発明の実施の形態に従う画像処理装置においてしきい値を自動設定するための手順を説明するための図である。
【図16】図15に示すしきい値の自動設定機能を実現するためのアルゴリズムを説明するための図である。
【図17】図15に対応するしきい値の設定処理例を示す図である。
【図18】この発明の実施の形態に従う画像処理装置のモニタに表示される「設定モード」における画面表示例の別形態を示す図である。
【図19】この発明の実施の形態に従う画像処理装置のモニタに表示される「設定モード」における画面表示例のさらに別形態を示す図である。
【図20】この発明の実施の形態に従う画像処理装置において処理可能な特徴画像の別形態を説明するための図である。
【図21】この発明の実施の形態に従う画像処理装置における全体処理を示すフローチャート(その1)である。
【図22】この発明の実施の形態に従う画像処理装置における全体処理を示すフローチャート(その2)である。
【図23】図21に示す差分画像生成サブルーチンの処理内容を示すフローチャートである。
【図24】図21に示す評価処理サブルーチンの処理内容を示すフローチャート(その1)である。
【図25】図21に示す評価処理サブルーチンの処理内容を示すフローチャート(その2)である。
【図26】図21に示すしきい値自動設定サブルーチンの処理内容を示すフローチャートである。
【図27】この発明に関連する画像処理方法(その1)を説明するための図である。
【図28】この発明に関連する画像処理方法(その2)を説明するための図である。
【図29】この発明の実施の形態に従う画像処理方法およびそれに関連する画像処理方法を比較するためのテストチャートである。
【図30】この発明に関連する画像処理方法を用いて図29に示すテストチャートを処理した結果の一例を示す図である。
【図31】この発明の実施の形態に従う画像処理方法を用いて図29に示すテストチャートを処理した結果の一例を示す図である。
【発明を実施するための形態】
【0022】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0023】
<全体装置構成>
図1は、この発明の実施の形態に従う画像処理装置100を含む視覚センサシステムの全体構成を示す概略図である。図1を参照して、視覚センサシステムは、代表的に生産ラインなどに組込まれ、被測定物(以下「ワーク」とも称す。)上の欠陥や汚れの有無を光学的に検査したり、その大きさなどを光学的に計測したり、その表面上の文字や図形などを光学的に認識したりする。一例として、本実施の形態においては、ワーク2は、ベルトコンベヤなどの搬送機構6によって搬送され、搬送されたワーク2は、撮像装置8によって順次撮影される。撮像装置8による撮影によって得られた画像データ(以下「入力画像」あるいは「計測画像」とも称す。)は、画像処理装置100へ伝送される。なお、撮像装置8で撮影されるワーク2に対して光を照射する照明機構をさらに設けてもよい。
【0024】
典型的には、ワーク2が撮像装置8の撮影範囲に到達したことは、搬送機構6の両端に配置された光電センサ4によって検出される。具体的には、光電センサ4は、同一の光軸上に配置された受光部と投光部とを含み、投光部から放射される光がワーク2で遮蔽されることを受光部で検出することによって、ワーク2の到達を検出する。なお、搬送機構6の制御自体は、図示しないPLC(Programmable Logic Controller)などによって制御される。
【0025】
撮像装置8は、上述した光電センサ4によってワーク2の到着が検出されると、これに応じてワーク2を撮影する。あるいは、連続的に撮影を行っておき、ワーク2の到着の検出に応答して、必要な入力画像のみを画像処理装置100へ伝送するようにしてもよい。
【0026】
一例として、撮像装置8は、レンズなどの光学系に加えて、CCD(Coupled Charged Device)やCMOS(Complementary Metal Oxide Semiconductor)センサといった、複数の画素に区画された撮像素子を含んで構成される。
【0027】
本実施の形態に従う画像処理装置100は、典型的に、コンピュータがインストールされたプログラムを実行することで提供される。なお、代替的に、コンピュータがプログラムを実行することで提供される機能の一部もしくは全部を専用のハードウェア回路として具現化してもよい。
【0028】
図2は、この発明の実施の形態に従う画像処理装置100を実現するコンピュータの概略構成図である。図2を参照して、画像処理装置100を実現するコンピュータは、本体部101と、表示装置としてのモニタ102と、入力装置としての、タッチ検出部103、キーボード104およびマウス105とを含む。本体部101は、演算装置(プロセッサ)としてのCPU(Central Processing Unit)106と、記憶装置としてのメモリ107および固定ディスク108と、記録媒体からのデータ読出装置としてのフレキシブルディスク(FD:Flexible Disk)駆動装置111およびCD−ROM(Compact Disk Read Only Memory)駆動装置113とを含む。これらの各部は、バスを介して相互にデータ通信可能に接続されている。
【0029】
画像処理装置100(コンピュータ)で実行されるプログラムは、典型的には、フレキシブルディスク112もしくはCD−ROM114などに格納されて流通し、またはネットワーク接続された配信サーバ装置などからのダウンロードといった形態で流通する。フレキシブルディスク112およびCD−ROM114に格納されたプログラムは、それぞれFD駆動装置111およびCD−ROM駆動装置113から読出されて、固定ディスク108に一旦格納される。さらに、固定ディスク108からメモリ107上に展開されて、CPU106により実行される。
【0030】
CPU106は、プログラムされた命令(コード)を逐次実行することで、各種の演算を実施する。メモリ107は、CPU106でのプログラム実行に応じて、各種の情報についても一時的に格納する。固定ディスク108は、CPU106で実行されるプログラムの他に、取得した入力画像、入力画像に対する処理結果を示す画像、および各種設定値などを格納するための不揮発性の記憶装置である。
【0031】
タッチ検出部103は、モニタ102の表示面上でのタッチペン(スタイラスペン)操作に応じたユーザからの指令を受付ける。タッチ検出部103は、典型的には、モニタ102の表示面上および/または表示面周囲に配置され、ユーザによるタッチペンの操作を感圧素子または赤外線の送信/受信機構などによって検出する。キーボード104は、入力されるキーに応じたユーザからの指令を受付ける。マウス105は、クリックやスライドなどの動作に応じたユーザからの指令を受付ける。このように、タッチ検出部103、キーボード104およびマウス105で受付けられたユーザからの指令は、CPU106へ与えられる。
【0032】
さらに、本体部101は、外部装置との間で信号を遣り取りするためのインターフェイスとして、カメラインターフェイス部109と、制御情報インターフェイス部115と、センサインターフェイス部117とを含む。これらの各部についても、バスを介して相互にデータ通信可能に接続されている。
【0033】
カメラインターフェイス部109は、CPU106と撮像装置8とのデータ通信を仲介する。より具体的には、カメラインターフェイス部109は、画像バッファを含み、撮像装置8から伝送される入力画像のデータを一旦蓄積し、少なくとも1コマ分の入力画像のデータが蓄積されると、その蓄積されたデータをメモリ107または固定ディスク108へ転送する。また、カメラインターフェイス部109は、CPU106が発生した内部コマンドに従って、撮像装置8に対して撮像指令を与える。
【0034】
制御情報インターフェイス部115は、CPU106と生産ラインを制御するための図示しない制御装置(典型的には、PLC)との間のデータ通信を仲介する。制御情報インターフェイス部115は、外部の制御装置からライン情報などを受信し、その受信した情報をCPU106へ出力する。センサインターフェイス部117は、上述した光電センサ4(図1)などからのトリガ信号を受信して、CPU106へ出力する。
【0035】
また、画像処理装置100には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
【0036】
なお、図1および図2においては、画像処理装置100と撮像装置8とがデータ通信可能に接続されており、撮像装置8がワークを撮像することにより得られる入力画像が画像処理装置100に直接的に入力される構成について例示したが、両者を切離した形態を採用してもよい。すなわち、1または複数の撮像装置8を用いて複数の入力画像を予め取得しておき、これらの入力画像を通信ネットワークまたはポータブルメディアなどを用いて画像処理装置100に転送した上で、画像処理装置100により画像処理が順次実行されるようにしてもよい。
【0037】
<概要>
図3は、この発明の実施の形態において実行される画像処理の典型例を示す概念図である。
【0038】
図3(a)には、円筒状のワークを撮影して得られる入力画像に対して、図示の処理範囲について、その背景色以外の色を抽出するような処理を考える。すなわち、図3(a)には、入力画像のうち背景色以外の色をもつ領域を特定するための処理を示す。このとき、これらの処理を行なうための所定条件としては、「背景色以外の色をもつ」、もしくは「背景色をもたない」ということになる。
【0039】
図3(a)に示すような円筒状のワークにおいては、ワークの中央部から周辺部に向けて輝度が順次変化している。一般的には、このようなワーク表面に輝度変化(グラディエーション)が生じている場合であっても、この変化を含めて「背景色」として処理した上で、ワークの表面に生じている、楕円状や線状の色の異なる部分(典型的には、欠陥)を抽出対象領域として特定したいというニーズがある。
【0040】
また、図3(b)に示すような日付が印字されたラベルのようなワークにおいて、半透明な異物で一部が覆われているような場合であっても、その印字された日付を文字認識したいというニーズもある。
【0041】
上述のようなニーズに応えるため、本実施の形態においては、入力画像の各画素の色属性を定義する3つの色パラメータ値を用いて、入力画像における色属性の空間的な変化を示す特徴画像を生成する。この特徴画像は複数次元の要素値を含み、この複数次元の要素値の各々は、入力画像における3つの色パラメータ値のうち互いに異なる色パラメータ値の少なくとも1つを反映したものである。すなわち、本実施の形態における特徴画像は、入力画像における空間周波数情報を表す。そして、この特徴画像に含まれる複数次元の要素値の各々を対応する条件に基づいて評価し、各次元についての評価結果に基づいて、抽出対象領域が特定される。さらに、特定された抽出対象領域に係る情報として出力される。
【0042】
典型的に、本実施の形態に従う画像処理装置100では、上述のような特徴画像として、色パラメータの別に隣接する複数の画素の有する色パラメータ値を平均化することで、3つの色パラメータにそれぞれ対応する3つの平均画像を生成する。さらに、入力画像に含まれる各画素の有する色パラメータ値の各々と、対応する色パラメータについての平均画像に含まれる対応する画素の有する色パラメータ値との間で差分をとることで、3つの色パラメータに対応する3次元の要素をもつ差分画像を生成する。以下、本実施の形態に従う特徴画像、すなわち差分画像について詳述する。
【0043】
<差分画像およびそれを用いた評価処理>
図4は、この発明の実施の形態に従う差分画像の技術的意味を説明するための図である。図5は、この発明の実施の形態に従う差分画像の生成に用いられる平均画像を生成する手順を説明するための図である。図6は、この発明の実施の形態に従う差分画像に対する評価処理を説明するための図である。
【0044】
まず、本実施の形態に従う画像処理においては、入力画像の各画素の色属性を定義するための3つの色パラメータ値が取得される。すなわち、入力画像の各画素のもつ色情報を、任意の表色系(C1,C2,C3)における3次元の座標値として分解する。表色系としては、3つの独立したパラメータで定義できる表色系であればどのようなものであってもよいが、たとえば、L*a*b*表色系、HSV表色系、L*C*h表色系、RGB表色系などを用いることができる。なお、後述するより具体的な実施形態においては、L*a*b*表色系を用いる構成について例示する。
【0045】
たとえば、図3(a)に示す円筒状のワークが写った入力画像のある範囲に含まれる画素を表色系(C1,C2,C3)においてプロットすると、図4に示すようになる。この図4において、座標点G1は、背景色以外の色をもつ画素を示し、座標点G2は、背景色をもつ画素を示す。上述したように、照明環境からの外乱を受けることで、表色系における各画素の位置も変動し得る。
【0046】
そこで、本実施の形態においては、入力画像の各画素(注目画素)について、当該注目画素およびその周辺画素がそれぞれ有する色パラメータ値(C1,C2,C3の各値)を座標別にそれぞれ平均化することで得られる平均画像を生成し、この平均画像を基準とする偏差に基づいて、抽出対象領域を特定する。
【0047】
たとえば、図4に示す座標点G1に対応する画素を注目画素とし、当該画素の周辺に座標点G2に対応する画素が存在しているとすると、座標点G1に対応する画素についての平均値(すなわち、対象の入力画像から生成される平均画像における座標点G1に対応する色属性)は、座標点AVEに相当する値となる。図4に示す表色系について見れば、座標点G1および4つの座標点G2から算出される重心位置が座標点AVEに相当する。そして、この座標点AVEから座標点G2までのベクトル(ΔC1,ΔC2,ΔC3)が座標点G2に対応する画素についての差分値(すなわち、対象の入力画像から生成される差分画像における座標点G2に対応する画素の有する複数次元の要素値)に相当する。
【0048】
一般的に、ある注目画素が周辺画素とほぼ同様の色属性を有している場合には、当該注目画素に対応する差分値(図4に示すベクトル)が小さくなり、逆に、ある注目画素が周辺画素とは異なる色属性を有している場合には、当該注目画素に対応する差分値は大きくなる。そのため、この差分値に基づいて、それぞれの注目画素が目的とする色属性をもつ画素であるか否か、すなわち抽出対象領域として特定すべきか否かを判断することができる。
【0049】
図5を参照して、平均画像(各注目画素についての平均値)の算出手順について説明する。たとえば、入力画像上のある注目画素I(i,j)について考えると、当該注目画素の色属性と、その周辺(紙面横方向に±m画素および紙面縦方向に±n画素)に配置された画素の色属性との間の要素値毎の平均値が算出される。すなわち、注目画素I(i,j)についての平均値C1AVE(i,j),C2AVE(i,j),C3AVE(i,j)は、座標位置(i,j)における要素値をそれぞれC1(i,j),C2(i,j),C3(i,j)として、それぞれ以下に示す(1.1)〜(1.3)式に従って算出される。
【0050】
【数1】

【0051】
なお、以下の説明では、(2m+1)画素×(2n+1)画素の範囲を「フィルタサイズ」とも称す。なお、図5には、5画素×5画素のフィルタサイズを設定した場合を例示するが、このフィルタサイズは、複数の画素を含む任意のサイズを採用することができる。
【0052】
さらに、算出された平均値C1AVE(i,j),C2AVE(i,j),C3AVE(i,j)を用いて、注目画素I(i,j)についての差分値ΔC1(i,j),ΔC2(i,j),ΔC3(i,j)は、それぞれ以下に示す(2.1)〜(2.3)式に従って算出される。
【0053】
【数2】

【0054】
上述のような手順に従って、図4に示す座標点G1およびG2にそれぞれ対応する複数の画素について算出した差分値を、差分値に含まれる3つの要素をそれぞれの座標軸に割当てた3次元の座標系(ΔC1,ΔC2,ΔC3)上にプロットすると、図6のように表される。
【0055】
図6に示す座標系において、座標点G1は相対的に原点Oから離れた位置にある一方、座標点G2の各々は相対的に原点Oに近い位置にある。そのため、それぞれの座標軸において、抽出対象領域を定義するための上下限値をそれぞれ設定することで、図6に示すようなしきい領域を設定することができる。すると、このしきい領域外に存在する座標点G2に対応する画素を、しきい領域内に存在する座標点G1に対応する画素から区別することができる。
【0056】
なお、図6においては、3つの座標軸のいずれにおいても上下限値(しきい値)を設定した場合を示すが、後述するように、3つの座標軸のうち、少なくとも1つの座標軸についての上下限値(しきい値)を設定すればよい。
【0057】
上述のように、本実施の形態においては、入力画像から空間周波数情報を含む差分画像を生成し、この差分画像に基づいて、目的とする抽出対象領域が特定される。このような差分画像を用いることで、背景色が外乱要因などで変動した場合であっても、安定した処理を実現できる。
【0058】
なお、以下の説明では、1つの次元についての差分値を画素位置に対応付けてマッピングしたデータを「差分画像」と称することもあるし、すべての次元についての差分値を画素位置に対応付けてマッピングしたデータを「差分画像」と称することもある。
【0059】
<L*a*b*表色系>
本実施の形態に従う画像処理装置100では、図7に示すようなL*a*b*表色系にて画像処理が行われる。L*a*b*表色系は、JIS規格JIS−Z8729として採用されており、明度をL*座標で表し、色相および彩度を示す色度をa*座標およびb*座標で表す。より具体的には、a*座標の+方向は赤方向に対応し、a*座標の−方向は緑方向に対応し、b*座標の+方向は黄方向に対応し、b*座標の−方向は青方向に対応する。
【0060】
図7に示すように、L*a*b*表色系では、各座標を互いに同じレンジ、たとえば各次元の要素が取り得る値を−100〜100として定義することができるので、座標毎の取り扱いが容易になるというメリットがある。以下では、L*座標,a*座標,b*座標は、いずれも−100〜100の範囲を有効範囲として定義する場合について例示する。
【0061】
<制御構造>
次に、本実施の形態に従う画像処理装置100のより具体的な構成について例示する。
【0062】
図8は、この発明の実施の形態に従う画像処理装置100の制御構造を示すブロック図である。図9は、図8に示す差分画像生成部のより詳細な制御構造を示すブロック図である。
【0063】
図8を参照して、画像処理装置100は、その制御構造として、画像バッファ150と、色分解部152と、差分画像生成部154,156,158と、評価部160と、出力部170と、UI(ユーザインターフェイス)部172と、条件設定/変更部174とを含む。これらのうち、画像バッファ150は、メモリ107または固定ディスク108(いずれも図2)の特定の領域によって提供される。典型的には、出力部170およびUI部172は、モニタ102、タッチ検出部103、キーボード104、マウス105(いずれも、図2)といったハードウェアと、CPU106による各種ドライバソフトおよび/またはOS(Operating System)などの実行との協働によって提供される。残りの部分は、CPU106が固定ディスク108などに予め格納されたプログラムをメモリ107に読出して実行することにより提供される。なお、図8に示す制御構造の一部もしくは全部を専用ハードウェアおよび/または配線回路によって実現してもよい。
【0064】
画像バッファ150は、撮像装置8(図1および図2)の撮像などによって取得された入力画像を一時的に格納する。この画像バッファ150は、色分解部152、出力部170およびUI部172によってアクセス可能に構成される。
【0065】
色分解部152は、画像バッファ150に一時的に格納されている入力画像の各画素の色属性を定義する3つの色パラメータ値(L*値,a*値,b*値)を取得する。撮像装置8によって生成される入力画像は、典型的には、各画素の色属性がR輝度値,G輝度値,B輝度値の3つの色パラメータによって定義されており、色分解部152は、各画素についてのR,G,B輝度値をL*値,a*値,b*値に分解する。なお、このようなR輝度値,G輝度値,B輝度値からL*値,a*値,b*値への分解処理は、ルックアップテーブルなどを用いることでより高速に行なうことができる。そして、色分解部152によって取得されたL*値は、差分画像生成部154へ入力され、色分解部152によって取得されたa*値は差分画像生成部156へ入力され、色分解部152によって取得されたb*値は差分画像生成部158へ入力される。
【0066】
差分画像生成部154,156,158は、上述の図5に示すような手順に従って、対応する要素値(L*値,a*値,b*値)の各々についての差分画像を生成する。そして、差分画像生成部154,156,158は、それぞれ生成した要素値別の差分画像を評価部160へ出力する。
【0067】
より具体的には、図9を参照して、差分画像生成部154は、入力値バッファ182と、平均化部184と、平均値バッファ186と、差分算出部188と、差分値バッファ190とを含む。
【0068】
入力値バッファ182は、色分解部152から出力される色パラメータ値(この例では、L*値)を画素位置と対応付けて順次格納する。入力値バッファ182は、平均化部184および差分算出部188によってアクセス可能に構成される。
【0069】
平均化部184は、注目画素として、入力値バッファ182に格納された各画素に対応する色パラメータ値(この例では、L*値)を順次選択するとともに、各選択された注目画素についての色パラメータ値、および当該注目画素の周辺画素についての色パラメータ値を読み出して、対応する平均値(この例では、平均値L*AVE)を算出する。なお、この平均値の算出は、上述した(1.1)〜(1.3)式に従って行われる。平均化部184は、各画素について算出した平均値を平均値バッファ186へ順次出力する。
【0070】
平均値バッファ186は、平均化部184から順次出力される平均値を画素位置と対応付けて順次格納する。平均値バッファ186は、差分算出部188によってアクセス可能に構成される。
【0071】
差分算出部188は、入力画像に含まれる各画素について、入力値バッファ182に格納されている色パラメータ値(この例では、L*値)と、平均値バッファ186に格納されている平均値(この例では、平均値L*AVE)とを読み出して、対応する差分値(この例では、差分値ΔL*)を算出する。なお、この差分値の算出は、上述した(2.1)〜(2.3)式に従って行われる。差分算出部188は、各画素について算出した差分値を差分値バッファ190へ順次出力する。
【0072】
差分値バッファ190は、差分算出部188から出力される差分値(この例では、差分値ΔL*)を画素位置と対応付けて順次格納する。差分値バッファ190は、評価部160(図8)によってアクセス可能に構成される。
【0073】
差分画像生成部156および158の構成についても、処理対象の色パラメータ値がそれぞれa*値およびb*値となる点を除いて、その他の点は差分画像生成部154と同様であるので、詳細な説明は繰返さない。
【0074】
再度図8を参照して、評価部160は、差分画像生成部154,156,158によってそれぞれ算出される差分画像に含まれる要素値(差分値ΔL*,差分値Δa*,差分値Δb*)の各々を対応する条件に基づいて評価する。そして、評価部160は、各次元についての評価結果に基づいて対象の領域(画素)が所定条件を満たすか否かを評価する。さらに、評価部160は、所定条件を満たす領域であるか否かを示す評価結果を出力部170へ与える。
【0075】
より具体的には、評価部160は、判定部164,166,168と、評価結合部162とを含む。判定部164,166,168は、それぞれ差分画像生成部154,156,158と関連付けられている。
【0076】
すなわち、判定部164は、差分画像生成部154から出力される差分値ΔL*に対して、条件設定/変更部174から与えられるΔL*上下限値と比較し、対象の差分値ΔL*がこのΔL*上下限値の範囲内であるか否かを示す情報を評価結合部162へ出力する。同様に、判定部166は、差分画像生成部156から出力される差分値Δa*に対して、条件設定/変更部174から与えられるΔa*上下限値と比較し、対象の差分値Δa*がこのΔa*上下限値の範囲内であるか否かを示す情報を評価結合部162へ出力する。同様に、判定部168は、差分画像生成部158から出力される差分値Δb*に対して、条件設定/変更部174から与えられるΔb*上下限値と比較し、対象の差分値Δb*がこのΔb*上下限値の範囲内であるか否かを示す情報を評価結合部162へ出力する。
【0077】
なお、後述するように、抽出対象とすべき領域の色属性に応じて、判定部164,166,168のうち一部のみが有効化される場合がある。すなわち、差分値ΔL*,Δa*,Δb*のうち特定の要素のみが評価対象とされる場合もある。この場合には、評価対象とはされない要素に対応する判定部では、入力されるすべての差分値に対して、与えられた条件を満たすことを示す情報が出力される。
【0078】
評価結合部162は、判定部164,166,168からそれぞれ出力される判定結果を結合して、対応する画素が与えられた所定条件を満たすか否か、すなわち、対象の画素が抽出対象領域に相当するか否かを判断する。より具体的には、評価結合部162は、判定部164,166,168からの判定結果のすべてが対応する条件を満足することを示す場合に限って、対象の画素が抽出対象領域であると判断する。言い換えれば、評価結合部162は、判定部164,166,168からの判定結果の論理積を算出し、それが真(true)であれば、抽出対象領域であると判断する。
【0079】
より具体的には、判定部164,166,168の各々は、入力画像の画素位置に対応付けて、「1」(対応する条件を満足する場合)または「0」(対応する条件を満足しない場合)を2次元マッピングしたデータを判定結果として出力する。そのため、評価結合部162が各画素について、論理積を算出することで、すべての要素において「1」である画素のみを抽出対象領域として判断する。また、この評価結合部162による評価結果を入力画像の画素位置に対応付けて2次元マッピングすることで、2値画像が生成される。
【0080】
出力部170は、入力画像のうち、所定条件を満たす領域を特定するための情報を出力する。より具体的には、上述の処理によって特定された抽出対象領域とそれ以外の領域とを区別した2値画像をイメージ表示(後述する「2値画像」の表示)したり、入力画像のうち特定された抽出対象領域に対応する領域のみをイメージ表示(後述する「抽出画像」の表示)したりする。
【0081】
また、出力部170は、特定された抽出対象領域の画素の位置情報(座標値)、当該画素の数、当該画素によって形作られる外形、当該画素の色属性および/またはその代表値などの情報を、図示しない上位装置などへ出力するようにしてもよい。
【0082】
UI部172は、対話型のユーザインターフェイスを提供する。このUI部172は、後述するように、イメージ表示される各種画像上で選択された範囲に含まれる画素についての情報(差分値)をL*a*b*表色系に対応する色座標系上にグラフィカル表示する。さらに、UI部172は、このL*a*b*表色系に対応する色座標系上で、抽出対象領域とすべき条件として、ユーザによる任意のしきい値(各要素についての上下限値)の設定を受付ける。なお、UI部172については、OSの一部として組込まれるGUI(Graphical User Interface)プログラムによって提供されてもよい。
【0083】
条件設定/変更部174は、ユーザ操作に応じて、および/または、先に算出された差分画像に応じて、抽出対象領域を特定するための所定条件を設定および/または変更する。より具体的には、条件設定/変更部174は、判定部164,166,168に対してそれぞれΔL*上下限値,Δa*上下限値,Δb*上下限値を与える。さらに、条件設定/変更部174は、判定部164,166,168に対して設定すべきそれぞれの上下限値を自動的に決定するための自動設定ロジック174aを含む。自動設定ロジック174aは、後述するように、モニタ102上などにイメージ表示される入力画像に対してユーザが任意の領域(後述する選択範囲320)を設定すると、当該領域に対応する画素を他の画素とは区別するための条件(ΔL*上下限値,Δa*上下限値,Δb*上下限値)を自動的に決定する。この自動設定ロジック174aの詳細については後述する。
【0084】
<抽出対象領域に係る条件設定>
図10は、この発明の実施の形態に従う抽出対象領域に係る条件設定例を説明するための図である。図10(a)は、差分値ΔL*のみに基づいて目的とする抽出対象領域を特定する場合の例を示し、図10(b)は、差分値Δa*およびΔb*に基づいて目的とする抽出対象領域を特定する場合の例を示し、図10(c)は、差分値ΔL*,Δa*,Δb*のすべてに基づいて目的とする抽出対象領域を特定する場合の例を示す。
【0085】
図10(a)に示す条件設定は、抽出対象とする色とそれ以外の背景色との間で、明度L*について有意な差が存在すると見込まれる場合などに適用される。すなわち、ΔL*座標軸上にΔL*上下限値(ΔL*についてのしきい値)のみを設定し、ΔL*上限値より大きい範囲およびΔL*下限値より小さい範囲を抽出空間として設定する。この場合には、その有するΔL*値がΔL*上限値より大きい、もしくはΔL*下限値より小さい場合に、対象の画素を目的の画素であると評価する。
【0086】
また、図10(b)に示す条件設定は、抽出対象とする色とそれ以外の背景色との間で、色度(色相および/または彩度)について有意な差が存在すると見込まれる場合などに適用される。すなわち、Δa*座標軸上にΔa*上下限値(Δa*についてのしきい値)を設定するとともに、Δb*座標軸上にΔb*上下限値(Δb*についてのしきい値)を設定する。この場合には、その有するΔa*値がΔa*上限値より大きい、もしくはΔa*下限値より小さい場合であって、かつ、その有するΔb*値がΔb*上限値より大きい、もしくはΔb*下限値より小さい場合に、対象の画素を目的の画素であると評価する。
【0087】
さらに、図10(c)に示す条件設定は、抽出対象とする色とそれ以外の背景色とが、色相、彩度、明度のうち1つまたは2つについて互いに近接した値をもっている場合などに有効である。図10(c)に示す条件設定では、ΔL*座標軸上にΔL*上下限値、Δa*座標軸上にΔa*上下限値、およびΔb*座標軸上にΔb*上下限値をそれぞれ設定する。この例では、その有するΔL*値がΔL*上限値より大きい、もしくはΔL*下限値より小さい場合、かつ、その有するΔa*値がΔa*上限値より大きい、もしくはΔa*下限値より小さい場合、かつ、その有するΔb*値がΔb*上限値より大きい、もしくはΔb*下限値より小さい場合に限って、対象の画素を目的の画素であると評価する。
【0088】
<ユーザインターフェイス>
図11は、この発明の実施の形態に従う画像処理装置のモニタに表示される「設定モード」における画面表示例を示す図である。図12は、イメージ表示される画像の種類を説明するための図である。
【0089】
本実施の形態に従う画像処理(領域特定処理)の実行が開始されると、図11に示すようなユーザインターフェイス画面300が表示される。このユーザインターフェイス画面300においては、ユーザは対話式に各種操作を行なうことができる。
【0090】
ユーザインターフェイス画面300は、画像表示エリア310と、表色座標系エリア330と、平均画像のフィルタサイズを設定するためのスライドバー332と、チェックボックス352,354,356,358と、画像表示エリア310にイメージ表示する画像を選択するためのコンボボックス364とを含む。
【0091】
画像表示エリア310には、コンボボックス364において選択されている画像がイメージ表示される。具体的には、図12(a)に示すような、撮像装置8の撮像によって得られた計測画像(入力画像)、図12(b)に示すような、入力画像のうち特定された抽出対象領域に対応する領域(文字「A」)のみを有効化した抽出画像、および、図12(c)に示すような、特定された抽出対象領域(文字「A」)とそれ以外の領域とを視認可能に表した2値画像のいずれかが表示される。なお、コンボボックス364では、ユーザ選択に応じて、いわゆるプルダウンメニュー366が表示され、このプルダウンメニュー366においては、「計測画像」「入力画像」「2値画像」が選択可能に一覧表示される。
【0092】
また、図12に示す例では、その表面に、異なる色で文字「A」および文字「B」が印字されているワークを撮像装置8で撮影して得られる入力画像の例を示す。なお、対象のワークの表面には、空間的な輝度変化(グラディエーション)が生じているものとする。そして、本実施の形態に従う領域特定処理として、文字「A」のみを抽出したものとする。この場合においては、図12(a)に示す計測画像は、撮像装置8により撮像されたままの画像に相当する。また、図12(b)に示す抽出画像は、文字「A」に相当する領域のみが計測画像(入力画像)における対応する色で着色されているとともに、その他の領域については色情報を持たない状態(黒ベタもしくは白ベタなど)で表示される。さらに、図12(c)に示す2値画像は、文字「A」に相当する領域のみが「白色」で表示されるとともに、その他の領域が「黒色」で表示される。すなわち、文字「A」の領域に含まれる画素が「白画素」(0〜255階調であれば「255」)に設定され、それ以外の領域に含まれる画素が「黒画素」(0〜255階調であれば「0」)に設定されている。
【0093】
再度図11を参照して、さらに、画像表示エリア310に対して、画面上でのタッチペンTPを用いたドラッグ操作、またはキーボード104/マウス105を用いた領域選択操作などに応じて、選択範囲320を設定することができる。この選択範囲320を用いた処理については後述する。
【0094】
スライドバー332は、ユーザ操作に応じてスライド可能に表示され、そのスライド位置に応じて、平均画像を生成する際に用いられるフィルタサイズ(図5に示す注目画素および周辺画素を含む大きさ)が変更される。なお、図11には、フィルタサイズを3画素〜255画素の範囲で変更可能な例が示されているが、その可変幅は任意の範囲および段数に設定することができる。なお、フィルタサイズを大きくするほど、空間周波数に対するローパスフィルタとしての遮断周波数が低くなるので、検出感度は低下するが、背景色における輝度の不均一性といった外乱の影響を受け難くなる。
【0095】
表色座標系エリア330は、入力画像における抽出対象領域を特定するための所定条件の設定/表示を提供する。より具体的には、表色座標系エリア330は、Δa*座標軸およびΔb*座標軸におけるしきい値を設定/表示するための円状の色度図334と、ΔL*座標軸におけるしきい値を設定/表示するための棒状の明度図344とを含む。
【0096】
色度図334は、紙面縦方向にΔa*座標軸が定義され、紙面横方向にΔb*座標軸が定義される。そして、色度図334のΔa*座標軸に対応付けて、Δa*下限値を設定するためのスライドバー336a、およびΔa*上限値を設定するためのスライドバー336bが、ユーザ操作に応じてスライド可能に表示される。同様に、色度図334のΔb*座標軸に対応付けて、Δb*下限値を設定するためのスライドバー338a、およびΔa*上限値を設定するためのスライドバー338bが、ユーザ操作に応じてスライド可能に表示される。
【0097】
また、色度図334上には、現在設定されているΔa*上下限値およびΔb*上下限値によって定義される抽出対象領域を示す表示枠340および342が表示される。すなわち、表示枠340は、色度図334上における抽出対象領域の下限境界を示し、表示枠342は、色度図334上における抽出対象領域の上限境界を示す。
【0098】
一方、明度図344は、紙面縦方向にΔL*座標軸が定義される。そして、明度図344のΔL*座標軸に対応付けて、ΔL*下限値を設定するためのスライドバー346a、およびΔL*上限値を設定するためのスライドバー346bが、ユーザ操作に応じてスライド可能に表示される。また、明度図344上には、現在設定されているΔL*上下限値によって定義される抽出対象領域を示す表示枠348および350が表示される。すなわち、表示枠348は、明度図344上における抽出対象領域の下側範囲を示し、表示枠350は、色度図334上における抽出対象領域の上側範囲を示す。
【0099】
さらに、色度図334および明度図344の上には、画像表示エリア310において設定されている選択範囲320に含まれる差分画像の画素についての要素値(差分値ΔL*,差分値Δa*,差分値Δb*)がドット表示される(符号370)。すなわち、選択範囲320に含まれる差分画像の画素についての情報が、3つの色パラメータに対応するL*a*b*表色座標系上にグラフィカル表示される。このように、色度図334および明度図344において差分画像の要素値がドット表示されることで、ユーザは、しきい値を容易に設定することができる。
【0100】
次に、チェックボックス352,354,356は、それぞれ、差分値ΔL*,差分値Δa*,差分値Δb*についての判定条件についての有効化/無効化の選択を受付ける。すなわち、チェックボックス352には、「ΔL*2値画像使用フラグ」の名称が付されており、このチェックボックス352がユーザによるタッチペンの操作などによって選択(チェック)されると、現在設定されているΔL*上下限値に基づく評価が有効化される。同様に、チェックボックス354には、「Δa*2値画像使用フラグ」の名称が付されており、このチェックボックス354がユーザによるタッチペンの操作などによって選択(チェック)されると、現在設定されているΔa*上下限値に基づく評価が有効化される。同様に、チェックボックス356には、「Δb*2値画像使用フラグ」の名称が付されており、このチェックボックス356がユーザによるタッチペンの操作などによって選択(チェック)されると、現在設定されているΔb*上下限値に基づく評価が有効化される。
【0101】
また、チェックボックス358は、後述するように、目的とする色属性をもつ画素を抽出するための条件(しきい値)についての自動設定の有効化/無効化の選択を受付ける。すなわち、チェックボックス358には、「しきい値自動設定」の名称が付されており、このチェックボックス358がユーザによるタッチペンの操作などによって選択(チェック)されると、画像表示エリア310にイメージ表示される入力画像上で設定された領域(選択範囲320)に対応する画素を他の画素とは区別するための条件を決定するための処理が有効化される。
【0102】
さらに、ユーザインターフェイス画面300には、「OK」ボタン360と、「CANCEL」ボタン362とが選択可能に表示されている。ユーザにより「OK」ボタン360が選択されると、設定中のしきい値などが固定ディスク108などに保存された上で、図示しない別の画面などが表示される。一方、ユーザにより「CANCEL」ボタン362が選択されると、設定中のしきい値などが破棄されて図示しない別の画面などが表示される。
【0103】
<ユーザ操作例>
次に、図13および図14を参照して、図11に示すユーザインターフェイス画面300におけるユーザ操作例について説明する。
【0104】
図13は、図11において抽出対象色と背景色とを設定するための手順(その1)を説明するための図である。図14は、図11において抽出対象色と背景色とを設定するための手順(その2)を説明するための図である。
【0105】
図12(a)に示すように、異なる色で文字「A」および文字「B」が印字されているワークを撮像装置8で撮影して得られる計測画像(入力画像)のうち、文字「A」の相当する領域を抽出するための条件を設定する場合を考える。まず、図13に示すように、ユーザは、画像表示エリア310に入力画像を表示した状態で、タッチペンTPで画面上をドラッグして選択範囲320を設定、またはキーボード104/マウス105を用いて選択範囲320を設定する。このとき、ユーザは、抽出対象領域とそれ以外の領域(背景領域)とを含むように選択範囲320を設定することが好ましい。
【0106】
すると、表色座標系エリア330に含まれる色度図334および明度図344上には、当該選択範囲320に含まれる差分画像の各画素の情報(差分値ΔL*,差分値Δa*,差分値Δb*)に対応する位置にドット(符号370)がマッピングされる。たとえば、色度図334上にマッピングされたドットは、抽出対象領域に含まれる画素の有する色属性に相当するグループと、抽出対象領域以外の領域に含まれる画素の有する色属性に相当するグループとに偏在していることがわかる。したがって、この2つのグループを区別できるように、ユーザはスライドバー336a,336b,338a,338bを操作して、しきい値(Δa*上下限値およびΔb*上下限値)を設定する。同様に、明度図344上にマッピングされたドットは、抽出対象領域に含まれる画素の有する色属性に相当するグループと、抽出対象領域以外の領域に含まれる画素の有する色属性に相当するグループとに偏在していることがわかる。したがって、この2つのグループを区別できるように、ユーザはスライドバー346a,346bを操作して、しきい値(ΔL*上下限値)を設定する。
【0107】
図14に示すように、本実施の形態に従う画像処理装置100においては、表色座標系にマッピングされるドットを見ながらユーザはしきい値を設定することができる。そのため、経験および知識の少ないユーザであっても、容易かつ短時間に抽出対象領域を規定する条件を設定することができる。
【0108】
<しきい値自動設定>
上述のようなユーザによるしきい値の手動設定に加えて、本実施の形態に従う画像処理装置100においては、しきい値を自動設定することも可能である。以下、このしきい値の自動設定機能について、図15〜図17を参照して説明する。
【0109】
図15は、この発明の実施の形態に従う画像処理装置100においてしきい値を自動設定するための手順を説明するための図である。図16は、図15に示すしきい値の自動設定機能を実現するためのアルゴリズムを説明するための図である。図17は、図15に対応するしきい値の設定処理例を示す図である。
【0110】
図11に示すユーザインターフェイス画面300において、チェックボックス358に予めチェックを入れておき、続いて、図13に示すように入力画像に対して選択範囲320を設定する。すると、図15に示すように、表色座標系エリア330においては、抽出対象領域に対応する画素を他の画素とは区別するための条件に応じて、スライドバー336a,336b,338a,338b,346a,346bの各々の位置が自動調整される。
【0111】
上述のようなしきい値の自動設定処理は、統計解析分野における公知の手法を用いることができる。
【0112】
典型的な第1の方法としては、図16(a)に示すように、各次元の要素値群について、その最小値および最大値を抽出し、抽出した最小値および最大値の中間値にしきい値を設定する方法である。典型的には、最小値と最大値との間の中央値がしきい値として設定される。なお、本実施の形態においては、このしきい値は、各次元(座標軸)における下限値(ΔL*下限値、Δa*下限値、Δb*下限値)に相当する。
【0113】
典型的な第2の方法としては、「モード法」と称される方法を用いることができる。たとえば、図13に示すような選択範囲320が設定されると、当該選択範囲320に含まれる画素についての各次元の要素値群についてみれば、抽出対象領域に含まれる画素の要素値のモードと、それ以外の領域(背景領域)に含まれる画素の要素値のモードとを含むようになる。すなわち、図16(b)に示すように、各次元における要素値のヒストグラムとしては、抽出対象領域とそれ以外の領域とにそれぞれ対応した第1モードおよび第2モードという2つの「山」が現れる(いわゆる「双峰性」がある状態)。このような場合、2つの「山」の間に存在する「谷」の位置をしきい値として設定することができる。
【0114】
図15に示すような、選択範囲320に含まれる差分画像の各画素の情報(差分値ΔL*,差分値Δa*,差分値Δb*)の分布状態が得られた場合には、各次元の要素値について、図17に示すような処理が実行される。
【0115】
すなわち、図17(a)は、差分値Δa*についてのヒストグラムを示しており、このヒストグラム上での最大値をΔa*maxとする。また、このヒストグラムの最小値(絶対値)は「0」であるので、差分値Δa*についてのしきい値(Δa*上下限値)は、−Δa*max/2およびΔa*max/2として決定することができる。
【0116】
同様に、図17(b)は、差分値Δb*についてのヒストグラムを示しており、このヒストグラム上での最大値をΔb*maxとする。また、このヒストグラムの最小値(絶対値)は「0」であるので、差分値Δb*についてのしきい値(Δb*上下限値)は、−Δb*max/2およびΔb*max/2として決定することができる。
【0117】
同様に、図17(c)は、差分値ΔL*についてのヒストグラムを示しており、このヒストグラム上での最大値をΔL*maxとする。また、このヒストグラムの最小値(絶対値)は「0」であるので、差分値ΔL*についてのしきい値(ΔL*上下限値)は、−ΔL*max/2およびΔL*max/2として決定することができる。
【0118】
なお、しきい値自動設定処理の実行開始時には、いずれの画素であっても所定条件を満たすような値が初期値として設定される。すなわち、ΔL*上下限値,Δa*上下限値,Δb*上下限値は、いずれも「0」に設定されている。そして、各次元において、これらの上下限値を増加方向に変化させる。
【0119】
上述の実施例においては、各次元における上限値と下限値とが同じ絶対値をもつ場合について例示したが、各次元における上限値および下限値を互いに独立して設定できるようにしてもよい。
【0120】
<ユーザインターフェイスの別形態その1>
上述のユーザインターフェイス画面においては、抽出対象領域を特定するための条件(しきい値)を表色座標系上でグラフィカルに設定できる形態について例示したが、より簡素化してユーザインターフェイスを提供してもよい。
【0121】
図18は、この発明の実施の形態に従う画像処理装置のモニタに表示される「設定モード」における画面表示例の別形態を示す図である。図18に示すユーザインターフェイス画面300Aは、図11に示すユーザインターフェイス画面300において、表色座標系エリア330に代えて、ΔL*上下限値を設定するためのスライドバー372a,372b、Δa*上下限値を設定するためのスライドバー374a,374b、Δb*上下限値を設定するためのスライドバー376a,376bを配置したものである。
【0122】
スライドバー372aおよび372bは、図11に示すスライドバー346aおよび346bにより提供される機能と同等の機能を提供する。すなわち、ユーザは、スライドバー346aおよび346bを操作して、ΔL*上下限値を任意に設定することができる。
【0123】
同様に、スライドバー374aおよび374bは、図11に示すスライドバー336aおよび336bにより提供される機能と同等の機能を提供する。すなわち、ユーザは、スライドバー374aおよび374bを操作して、Δa*上下限値を任意に設定することができる。
【0124】
同様に、スライドバー376aおよび376bは、図11に示すスライドバー338aおよび338bにより提供される機能と同等の機能を提供する。すなわち、ユーザは、スライドバー376aおよび376bを操作して、Δb*上下限値を任意に設定することができる。
【0125】
その他の部分については、図11と同様であるので、詳細な説明は繰返さない。
<ユーザインターフェイスの別形態その2>
上述したように、L*a*b*表色系においては、各画素の色相および彩度を反映した色度をa*座標およびb*座標の2次元で表す。この色度は、各画素の「色」の度合いを示すものであり、一方、明度L*は、各画素の「明るさ」の度合いを示すものである。そこで、抽出対象領域とそれ以外の領域とを区別するための条件として、「色」および「明るさ」のみを設定することで、ユーザ操作をより簡素化できる。すなわち、a*座標およびb*座標の2次元の値を共通の1次元の値として扱うことで、設定操作をより簡単化できる。そこで、図19を参照して、このような設定操作が可能なユーザインターフェイス画面について説明する。
【0126】
図19は、この発明の実施の形態に従う画像処理装置のモニタに表示される「設定モード」における画面表示例のさらに別形態を示す図である。図19に示すユーザインターフェイス画面300Bは、図18に示すユーザインターフェイス画面300Aにおいて、Δa*上下限値を設定するためのスライドバー374a,374bおよびΔb*上下限値を設定するためのスライドバー376a,376bに代えて、Δa*上下限値およびΔb*上下限値を一括して設定するためのスライドバー377a,377bを配置したものである。また、図18に示すユーザインターフェイス画面300Aのチェックボックス354および356に代えて、チェックボックス357が配置されている。
【0127】
スライドバー377aおよび377bは、図18に示すスライドバー374aおよび374b、ならびにスライドバー376aおよび376bにより提供される機能を統合した機能を提供する。すなわち、ユーザがスライドバー377aおよび377bを操作することで、Δa*上下限値およびΔb*上下限値を任意に設定することができる。このとき、Δa*上限値とΔb*上限値、および、Δa*下限値とΔb*下限値とは、いずれも同じ値に設定される。すなわち、図10に示すL*a*b*表色系において、a*座標軸およびb*座標軸に対してそれぞれ45°をなす方向に沿ってしきい領域が設定されることになる。
【0128】
また、チェックボックス357は、差分値Δa*および差分値Δb*についての判定条件についての有効化/無効化の選択を受付ける。すなわち、チェックボックス357には、「Δa*およびΔb*2値画像使用フラグ」の名称が付されており、このチェックボックス357がユーザによるタッチペンの操作などによって選択(チェック)されると、現在設定されているΔa*上下限値およびΔb*上下限値に基づく評価が有効化される。
【0129】
その他の部分については、図11と同様であるので、詳細な説明は繰返さない。
<特徴画像の別形態>
上述の説明では、入力画像における色属性の空間的な変化を示す特徴画像として、入力画像の色パラメータ値(L*値,a*値,b*値)の各次元に対応した3次元の値(差分値ΔL*,差分値Δa*,差分値Δb*)を有する差分画像を用いる例について例示した。しかしながら、特徴画像としては、2次元の要素値を有する差分画像を用いてもよい。たとえば、上述の図19に示すユーザインターフェイス画面300Bと同様に、入力画像の「色」および「明るさ」についての空間的な変化を反映した、各画素が2次元の要素値をもつ特徴画像(差分画像)を用いてもよい。
【0130】
図20は、この発明の実施の形態に従う画像処理装置100において処理可能な特徴画像の別形態を説明するための図である。図20に示すように、上述したような2次元の要素値を有する差分画像は、「色」についての差分値として、√(Δa*+Δb*)を第1軸とし、「明るさ」についての差分値として、ΔL*を第2軸とした2次元空間上に定義できる。そして、抽出対象領域を特定するための条件(しきい値)は、それぞれの軸上に設定されることになる。
【0131】
上述したような2次元の要素値を有する差分画像に代えて、3つの独立したパラメータで定義できる任意の表色系を構成する任意の2つの要素値を1次元の値として生成した特徴画像を用いることもできる。
【0132】
このように、本実施の形態に従う画像処理装置100において処理される特徴画像は、それに含まれる複数次元の要素値の各々が、入力画像における3つの色パラメータ値のうち互いに異なる色パラメータ値の少なくとも1つを反映したものであれば、任意の構成を採用することができる。
【0133】
<処理手順>
図21および図22は、この発明の実施の形態に従う画像処理装置100における全体処理を示すフローチャートである。図23は、図21に示す差分画像生成サブルーチンの処理内容を示すフローチャートである。図24および図25は、図21に示す評価処理サブルーチンの処理内容を示すフローチャートである。図26は、図21に示すしきい値自動設定サブルーチンの処理内容を示すフローチャートである。
【0134】
なお、図21〜図26に示すフローチャートは、CPU106が固定ディスク108などに予め格納されたプログラムをメモリ107に読出して実行することにより実現される。
【0135】
(全体処理)
図21および図22を参照して、CPU106は、まず、撮像開始指令を受けたか否かを判断する(ステップS100)。典型的には、CPU106は、光電センサ4(図1)からのトリガ信号を受信した否かを判断する。撮像開始指令を受けていない場合(ステップS100においてNOの場合)には、ステップS100の処理が繰返される。
【0136】
撮像開始指令を受けた場合(ステップS100においてYESの場合)には、撮像装置8に対して撮像指令を与える(ステップS102)。続いて、CPU106は、撮像装置8の撮像により取得された入力画像をメモリ107または固定ディスク108(図8の画像バッファ150)に格納する(ステップS104)。
【0137】
続いて、CPU106は、取得された入力画像に含まれる各画素の色属性を定義する3つの色パラメータ値(L*値,a*値,b*値)を取得する(ステップS106)。すなわち、CPU106は、メモリ107または固定ディスク108に格納されている入力画像の各画素についてのR,G,B輝度値を、それぞれL*値,a*値,b*値に分解する。言い換えれば、入力画像から、L*空間画像、a*空間画像、b*空間画像の3つの画像を生成する。
【0138】
続いて、CPU106は、ステップS106において取得したL*空間についての差分画像を生成する(ステップS108)。すなわち、CPU106は、L*空間画像を入力として、図23に示す差分画像生成サブルーチンを実行する。同様に、CPU106は、ステップS106において取得したa*空間についての差分画像を生成し(ステップS110)、さらに、ステップS106において取得したb*空間についての差分画像を生成する(ステップS112)。
【0139】
続いて、CPU106は、ステップS108,S110,S112においてそれぞれ取得されたL*空間,a*空間,b*空間についての3つの差分画像を、現在設定されているΔL*上下限値,Δa*上下限値,Δb*上下限値に基づいてそれぞれ評価する(ステップS114)。すなわち、CPU106は、図24および図25に示す評価サブルーチンを実行する。
【0140】
続いて、CPU106は、現在設定されている表示画像の種類を判別する(ステップS116)。すなわち、CPU106は、ユーザインターフェイス画面300のコンボボックス364(図11)において、「計測画像」「抽出画像」「2値画像」のうち、いずれが選択されているかを取得する。
【0141】
表示画像として計測画像が設定されている場合(ステップS116において「計測画像」)には、CPU106は、メモリ107または固定ディスク108に格納されている入力画像をそのままイメージ表示する(ステップS118)。そして、処理はステップS124へ進む。
【0142】
一方、表示画像として抽出画像が設定されている場合(ステップS116において「抽出画像」)には、CPU106は、ステップS114において実行された評価サブルーチンの結果に基づいて、メモリ107または固定ディスク108に格納されている入力画像のうち特定された抽出対象領域に対応する領域のみを有効にイメージ表示する(ステップS120)。そして、処理はステップS124へ進む。
【0143】
一方、表示画像として抽出画像が設定されている場合(ステップS116において「2値画像」)には、CPU106は、ステップS114において実行された評価サブルーチンの結果に基づいて、特定された抽出対象領域とそれ以外の領域とを区別した2値画像をイメージ表示する(ステップS122)。そして、処理はステップS124へ進む。
【0144】
以上の手順によって、撮像装置8の撮像により取得された入力画像に対する領域特定処理が完了する。これに続く各ステップは、ユーザインターフェイス画面に対するユーザ操作に応答して実行される。
【0145】
ステップS124において、CPU106は、ユーザ操作によって選択範囲320が設定されたか否かを判断する。ユーザ操作によって選択範囲320が設定された場合(ステップS124においてYESの場合)には、CPU106は、しきい値自動設定が有効化されているか否かを判断する(ステップS126)。すなわち、CPU106は、ユーザインターフェイス画面300のチェックボックス358(図11)がチェックされているか否かを判断する。
【0146】
しきい値自動設定が有効化されている場合(ステップS126においてYESの場合)には、CPU106は、図26に示すしきい値自動設定サブルーチンを実行する(ステップS128)。これにより、CPU106は、抽出対象領域を特定するための条件を決定する。そして、処理はステップS124へ戻る。
【0147】
一方、しきい値自動設定が有効化されていない場合(ステップS126においてNOの場合)には、CPU106は、ステップS108,S110,S112においてそれぞれ取得されたL*空間,a*空間,b*空間についての3つの差分画像から、ステップS124において設定された選択範囲320に含まれる画素についての情報(差分値ΔL*,差分値Δa*,差分値Δb*)を抽出する(ステップS130)。さらに、CPU106は、ステップS130において抽出した画素の情報(差分値ΔL*,差分値Δa*,差分値Δb*)を色度図334および明度図344上にマッピング表示する(ステップS132)。そして、処理はステップS124へ戻る。
【0148】
これに対して、ユーザ操作によって選択範囲320が設定されていない場合(ステップS124においてNOの場合)には、CPU106は、平均画像フィルタサイズが変更されたか否かを判断する(ステップS134)。すなわち、CPU106は、ユーザインターフェイス画面300のスライドバー332(図11)に対するユーザ操作がなされたか否かを判断する。そして、平均画像フィルタサイズが変更された場合(ステップS134においてYESの場合)には、CPU106は、ステップS108以下の処理を再度実行する。
【0149】
一方、平均画像フィルタサイズが変更されていない場合(ステップS134においてNOの場合)には、CPU106は、ΔL*上下限値が変更されたか否かを判断する(ステップS136)。すなわち、CPU106は、ユーザインターフェイス画面300のスライドバー346aまたは346b(図11)に対するユーザ操作がなされたか否かを判断する。そして、ΔL*上下限値が変更された場合(ステップS136においてYESの場合)には、CPU106は、変更後のΔL*上下限値を取得し(ステップS138)、続いてステップS114以下の処理を再度実行する。
【0150】
一方、ΔL*上下限値が変更されていない場合(ステップS136においてNOの場合)には、CPU106は、Δa*上下限値が変更されたか否かを判断する(ステップS140)。すなわち、CPU106は、ユーザインターフェイス画面300のスライドバー336aまたは336b(図11)に対するユーザ操作がなされたか否かを判断する。そして、Δa*上下限値が変更された場合(ステップS140においてYESの場合)には、CPU106は、変更後のΔa*上下限値を取得し(ステップS142)、続いてステップS114以下の処理を再度実行する。
【0151】
一方、Δa*上下限値が変更されていない場合(ステップS140においてNOの場合)には、CPU106は、Δb*上下限値が変更されたか否かを判断する(ステップS144)。すなわち、CPU106は、ユーザインターフェイス画面300のスライドバー338aまたは338b(図11)に対するユーザ操作がなされたか否かを判断する。そして、Δb*上下限値が変更された場合(ステップS144においてYESの場合)には、CPU106は、変更後のΔb*上下限値を取得し(ステップS146)、続いてステップS114以下の処理を再度実行する。
【0152】
一方、Δb*上下限値が変更されていない場合(ステップS144においてNOの場合)には、CPU106は、表示画像の種類が変更されたか否かを判断する(ステップS148)。すなわち、CPU106は、ユーザインターフェイス画面300のコンボボックス364(図11)に対するユーザ操作がなされたか否かを判断する。そして、表示画像の種類が変更された場合(ステップS148においてYESの場合)には、CPU106は、ステップS116以下の処理を再度実行する。
【0153】
一方、表示画像の種類が変更されていない場合(ステップS148においてNOの場合)には、CPU106は、ユーザインターフェイス画面300の「OK」ボタン360(図11)が選択されたか否かを判断する(ステップS150)。「OK」ボタン360が選択された場合(ステップS150においてYESの場合)には、CPU106は、現在の設定データを固定ディスク108などに保存した上で処理を終了する(ステップS152)。
【0154】
一方、「OK」ボタン360が選択されていない場合(ステップS150においてNOの場合)には、CPU106は、ユーザインターフェイス画面300の「キャンセル」ボタン362(図11)が選択されたか否かを判断する(ステップS154)。「キャンセル」ボタン360が選択された場合(ステップS154においてYESの場合)には、CPU106は、現在の設定データを破棄した上で処理を終了する(ステップS156)。
【0155】
「キャンセル」ボタン360が選択されていない場合(ステップS154においてNOの場合)には、CPU106は、新たな撮像開始指令を受けたか否かを判断する(ステップS158)。新たな撮像開始指令を受けた場合(ステップS158においてYESの場合)には、CPU106は、ステップS102以下の処理を再度実行する。これに対して、新たな撮像開始指令を受けていない場合(ステップS158においてNOの場合)には、CPU106は、ステップS124以下の処理を再度実行する。
【0156】
(差分画像生成サブルーチン)
次に、差分画像生成サブルーチンの処理内容について説明する。図23を参照して、差分画像生成サブルーチンがコールされると、CPU106は、指定された空間画像(すなわち、L*空間画像、a*空間画像、b*空間画像のいずれか)に含まれる画素群のうち、1番目の画素を注目画素に設定する(ステップS200)。続いて、CPU106は、現在の注目画素の周囲に存在する周辺画素を設定する(ステップS202)。さらに、CPU106は、現在の注目画素が有する要素値(ΔL*値,Δa*値,Δb*値のいずれか)と、その周辺画素の各々が有する要素値との平均値を算出する(ステップS204)。さらに、CPU106は、算出した平均値を現在の注目画素の位置と対応付けて、メモリ107または固定ディスク108(図9の平均値バッファ186)に格納する(ステップS206)。
【0157】
続いて、CPU106は、現在の注目画素が有する要素値から、ステップS204において算出された対応する平均値を減じて、当該注目画素についての差分値(差分値ΔL*,差分値Δa*,差分値Δb*のいずれか)を算出する(ステップS208)。そして、CPU106は、算出した差分値を現在の注目画素の位置と対応付けて、メモリ107または固定ディスク108(図9の差分値バッファ190)に格納する(ステップS210)。
【0158】
その後、CPU106は、対象の差分画像に含まれるすべての画素についての差分値の算出が完了したか否かを判断する(ステップS212)。対象の差分画像に含まれるすべての画素についての平均値の算出は完了していない場合(ステップS212においてNOの場合)には、CPU106は、差分画像に含まれる画素群のうち、未だ平均値の算出が完了していない残余の画素のうち1つを注目画素に設定する(ステップS214)。そして、ステップS202以下の処理が再度実行される。
【0159】
対象の差分画像に含まれるすべての画素についての平均値の算出が完了している場合(ステップS212においてYESの場合)には、CPU106は、各画素と対応付けて蓄積した差分値をまとめて、指定された空間についての差分画像として出力する(ステップS216)。そして、処理はリターンする。
【0160】
(評価サブルーチン)
次に、評価サブルーチンの処理内容について説明する。図24および図25を参照して、評価サブルーチンがコールされると、CPU106は、ΔL*上下限値に基づく評価が有効化されているか否かを判断する(ステップS300)。すなわち、CPU106は、ユーザインターフェイス画面300のチェックボックス352(図11)がチェックされているか否かを判断する。
【0161】
ΔL*上下限値に基づく評価が有効化されている場合(ステップS300においてYESの場合)には、CPU106は、L*空間についての差分画像に含まれる画素群のうち、1番目の画素を対象画素に設定する(ステップS302)。続いて、CPU106は、現在の対象画素の有する差分値ΔL*が現在のΔL*上限値以上であるか、または当該差分値ΔL*が現在のΔL*下限値以下であるかを判断する(ステップS304)。
【0162】
現在の対象画素の有する差分値ΔL*が現在のΔL*上限値以上であるか、または当該差分値ΔL*が現在のΔL*下限値以下である場合(ステップS304においてYESの場合)には、CPU106は、現在の対象画素が対応の条件を満たすと判断する。そして、CPU106は、現在の対象画素の位置と対応付けて「1」(真)を出力する(ステップS306)。
【0163】
一方、現在の対象画素の有する差分値ΔL*が現在のΔL*上限値未満であり、かつ当該差分値ΔL*が現在のΔL*下限値より大きい場合(ステップS304においてNOの場合)には、CPU106は、現在の対象画素が対応の条件を満たしていないと判断する。そして、CPU106は、現在の対象画素の位置と対応付けて「0」(偽)を出力する(ステップS308)。
【0164】
さらに、CPU106は、L*空間についての差分画像に含まれるすべての画素についての判定が完了したか否かを判断する(ステップS310)。L*空間についての差分画像に含まれるすべての画素についての判定が完了していない場合(ステップS310においてNOの場合)には、CPU106は、L*空間についての差分画像に含まれる画素群のうち、未だ平均値の算出が完了していない残余の画素のうち1つを対象画素に設定する(ステップS312)。そして、ステップS304以下の処理が再度実行される。
【0165】
L*空間についての差分画像に含まれるすべての画素についての判定が完了している場合(ステップS310においてYESの場合)には、処理はステップS320へ進む。
【0166】
これに対して、ΔL*上下限値に基づく評価が有効化されていない場合(ステップS300においてNOの場合)には、CPU106は、L*空間についての差分画像に含まれるすべての画素について「1」(真)を出力する(ステップS314)。そして、処理はステップS320へ進む。
【0167】
ステップS320において、CPU106は、Δa*上下限値に基づく評価が有効化されているか否かを判断する。すなわち、CPU106は、ユーザインターフェイス画面300のチェックボックス354(図11)がチェックされているか否かを判断する。
【0168】
Δa*上下限値に基づく評価が有効化されている場合(ステップS320においてYESの場合)には、CPU106は、a*空間についての差分画像に含まれる画素群のうち、1番目の画素を対象画素に設定する(ステップS322)。続いて、CPU106は、現在の対象画素の有する差分値Δa*が現在のΔa*上限値以上であるか、または当該差分値Δa*が現在のΔa*下限値以下であるかを判断する(ステップS324)。
【0169】
現在の対象画素の有する差分値Δa*が現在のΔa*上限値以上であるか、または当該差分値Δa*が現在のΔa*下限値以下である場合(ステップS324においてYESの場合)には、CPU106は、現在の対象画素が対応の条件を満たすと判断する。そして、CPU106は、現在の対象画素の位置と対応付けて「1」(真)を出力する(ステップS326)。
【0170】
一方、現在の対象画素の有する差分値Δa*が現在のΔa*上限値未満であり、かつ当該差分値Δa*が現在のΔa*下限値より大きい場合(ステップS324においてNOの場合)には、CPU106は、現在の対象画素が対応の条件を満たしていないと判断する。そして、CPU106は、現在の対象画素の位置と対応付けて「0」(偽)を出力する(ステップS328)。
【0171】
さらに、CPU106は、a*空間についての差分画像に含まれるすべての画素についての判定が完了したか否かを判断する(ステップS330)。a*空間についての差分画像に含まれるすべての画素についての判定が完了していない場合(ステップS330においてNOの場合)には、CPU106は、a*空間についての差分画像に含まれる画素群のうち、未だ平均値の算出が完了していない残余の画素のうち1つを対象画素に設定する(ステップS332)。そして、ステップS324以下の処理が再度実行される。
【0172】
a*空間についての差分画像に含まれるすべての画素についての判定が完了している場合(ステップS330においてYESの場合)には、処理はステップS340へ進む。
【0173】
これに対して、Δa*上下限値に基づく評価が有効化されていない場合(ステップS320においてNOの場合)には、CPU106は、a*空間についての差分画像に含まれるすべての画素について「1」(真)を出力する(ステップS334)。そして、処理はステップS340へ進む。
【0174】
ステップS340において、CPU106は、Δb*上下限値に基づく評価が有効化されているか否かを判断する。すなわち、CPU106は、ユーザインターフェイス画面300のチェックボックス356(図11)がチェックされているか否かを判断する。
【0175】
Δb*上下限値に基づく評価が有効化されている場合(ステップS340においてYESの場合)には、CPU106は、b*空間についての差分画像に含まれる画素群のうち、1番目の画素を対象画素に設定する(ステップS342)。続いて、CPU106は、現在の対象画素の有する差分値Δb*が現在のΔb*上限値以上であるか、または当該差分値Δb*が現在のΔb*下限値以下であるかを判断する(ステップS344)。
【0176】
現在の対象画素の有する差分値Δb*が現在のΔb*上限値以上であるか、または当該差分値Δb*が現在のΔb*下限値以下である場合(ステップS344においてYESの場合)には、CPU106は、現在の対象画素が対応の条件を満たすと判断する。そして、CPU106は、現在の対象画素の位置と対応付けて「1」(真)を出力する(ステップS346)。
【0177】
一方、現在の対象画素の有する差分値Δb*が現在のΔb*上限値未満であり、かつ当該差分値Δb*が現在のΔb*下限値より大きい場合(ステップS344においてNOの場合)には、CPU106は、現在の対象画素が対応の条件を満たしていないと判断する。そして、CPU106は、現在の対象画素の位置と対応付けて「0」(偽)を出力する(ステップS348)。
【0178】
さらに、CPU106は、b*空間についての差分画像に含まれるすべての画素についての判定が完了したか否かを判断する(ステップS350)。b*空間についての差分画像に含まれるすべての画素についての判定が完了していない場合(ステップS350においてNOの場合)には、CPU106は、b*空間についての差分画像に含まれる画素群のうち、未だ平均値の算出が完了していない残余の画素のうち1つを対象画素に設定する(ステップS352)。そして、ステップS344以下の処理が再度実行される。
【0179】
b*空間についての差分画像に含まれるすべての画素についての判定が完了している場合(ステップS350においてYESの場合)には、処理はステップS360へ進む。
【0180】
これに対して、Δb*上下限値に基づく評価が有効化されていない場合(ステップS340においてNOの場合)には、CPU106は、b*空間についての差分画像に含まれるすべての画素について「1」(真)を出力する(ステップS354)。そして、処理はステップS360へ進む。
【0181】
ステップS360において、CPU106は、それぞれの空間についての判定結果に含まれる画素群のうち、1番目の画素を対象画素に設定する。続いて、CPU106は、現在の対象画素についてのL*空間についての判定結果、a*空間についての判定結果、およびb*空間についての判定結果がすべて「1」(真)であるか否かを判断する(ステップS362)。
【0182】
すべての空間についての判定結果が「1」(真)である場合には、現在の対象画素の評価結果として「1」(真)を出力する(ステップS364)。すなわち、CPU106は、対象画素が抽出対象領域であると評価する。そして、処理はステップS370へ進む。
【0183】
一方、いずれかの空間についての判定結果が「1」(真)ではない場合には、現在の対象画素の評価結果として「0」(偽)を出力する(ステップS366)。そして、処理はステップS370へ進む。
【0184】
ステップS370において、判定結果に含まれるすべての画素についての評価処理が完了したか否かを判断する。判定結果に含まれるすべての画素についての評価処理が完了していない場合(ステップS370においてNOの場合)には、CPU106は、判定結果に含まれる画素群のうち、未だ平均値の算出が完了していない残余の画素のうち1つを対象画素に設定する(ステップS372)。そして、ステップS362以下の処理が再度実行される。
【0185】
これに対して、判定結果に含まれるすべての画素についての評価処理が完了している場合(ステップS370においてYESの場合)には、処理はリターンする。
【0186】
(自動設定サブルーチン)
次に、自動設定サブルーチンの処理内容について説明する。図26を参照して、自動設定サブルーチンがコールされると、CPU106は、取得されているL*空間の差分画像のうち選択範囲320に含まれる各画素についての差分値ΔL*を抽出する(ステップS400)。続いて、CPU106は、抽出した差分値ΔL*のヒストグラムを生成する(ステップS402)。さらに、CPU106は、抽出した差分値ΔL*のヒストグラムに基づいて、差分値ΔL*についてのしきい値(ΔL*上下限値)を決定する(ステップS404)。そして、処理はステップS410へ進む。
【0187】
ステップS410において、CPU106は、取得されているa*空間の差分画像のうち選択範囲320に含まれる各画素についての差分値Δa*を抽出する。続いて、CPU106は、抽出した差分値Δa*のヒストグラムを生成する(ステップS412)。さらに、CPU106は、抽出した差分値Δa*のヒストグラムに基づいて、差分値Δa*についてのしきい値(Δa*上下限値)を決定する(ステップS414)。そして、処理はステップS420へ進む。
【0188】
ステップS420において、CPU106は、取得されているb*空間の差分画像のうち選択範囲320に含まれる各画素についての差分値Δb*を抽出する。続いて、CPU106は、抽出した差分値Δb*のヒストグラムを生成する(ステップS422)。さらに、CPU106は、抽出した差分値Δb*のヒストグラムに基づいて、差分値Δb*についてのしきい値(Δb*上下限値)を決定する(ステップS424)。そして、処理はステップS430へ進む。
【0189】
ステップS430において、CPU106は、ΔL*上下限値、Δa*上下限値、Δb*上下限値を先行の処理によって決定した値に更新する。そして、処理はリターンする。
【0190】
<比較例>
以下、本実施の形態に従う画像処理方法を他の関連する画像処理方法と比較した例を示す。図27は、この発明に関連する画像処理方法(その1)を説明するための図である。図28は、この発明に関連する画像処理方法(その2)を説明するための図である。図29は、この発明の実施の形態に従う画像処理方法およびそれに関連する画像処理方法を比較するためのテストチャートである。図30は、この発明に関連する画像処理方法を用いて図29に示すテストチャートを処理した結果の一例を示す図である。図31は、この発明の実施の形態に従う画像処理方法を用いて図29に示すテストチャートを処理した結果の一例を示す図である。
【0191】
図27を参照して、この発明に関連する画像処理方法(以下「第1関連技術」とも称す。)として、予め登録した条件に基づいて抽出対象領域を特定する処理を考える。すなわち、図27に示すように、ある入力画像に含まれる各画素の色属性をHSV表色系(H:色相、S:彩度、V:明度)に分解した上で、各座標系について予め登録したしきい値(上下限値)を用いて、抽出対象を特定する。
【0192】
また、図28を参照して、この発明に関連する画像処理方法(以下「第2関連技術」とも称す。)として、上述の特開昭59−114687号公報(特許文献1)に示すような、動的2値化処理を用いて出力対象領域を特定する処理を考える。すなわち、入力画像の各画素を1次元の濃淡値(図28に示す元画像の濃度)をもつ濃淡画像SMPとして表わすとともに、隣接する画素の間で濃淡値の平均値(図28に示す平均画像の濃度)を算出する。そして、濃淡値と平均値との差分が所定のしきい値を超えた場合に、抽出対象として特定する。
【0193】
図29を参照して、テストチャートとしては、それぞれの背景上に特定の色をもつ文字「A」を描いた9通りのケースを示す。すなわち、紙面縦方向には、(ケース1)背景と文字との間で明度はほぼ一致しているが、色相が異なっている場合、(ケース2)背景と文字との間で色相はほぼ一致しているが、明度が異なっている場合、(ケース3)背景と文字との間で色相および明度のいずれもが異なっている場合、を考える。また、各ケースについて、紙面横方向には、(i)背景色が均一の場合、(ii)背景色にばらつきがある場合、(iii)背景色に陰影が写っている場合、を考える。なお、文字「A」は、代表的な「赤色」とした。
【0194】
図30(a)は、上述の第1関連技術を用いて、文字「A」についての抽出対象領域の特定処理を行なった結果を示す。図30(a)に示すように、(ii)背景色にばらつきがある場合には、文字および背景の組み合わせにかかわらず、抽出対象領域を正確に特定できていない(不検知)。また、(ケース2)背景と文字との間で色相はほぼ一致しているが、明度が異なっている場合であって、かつ、(iii)背景色に陰影が写っている場合には、抽出対象領域以外の領域を誤って特定している(誤検知)。
【0195】
すなわち、上述の第1関連技術では、外乱要因により抽出対象領域の色相が変化する場合には、適切な特定を行なうことができない。また、背景と抽出対象領域とが同じ色相をもつ場合には、適切な特定を行なうことができない。
【0196】
図30(b)は、上述の第2関連技術を用いて、文字「A」についての抽出対象領域の特定処理を行なった結果を示す。なお、図30(b)には、入力画像をHSV表色系に分解した上で、色相(H)を用いて濃淡画像化した場合を示す。図30(b)に示すように、多くの場合に比較的良好の結果が得られているが、(ケース2)背景と文字との間で色相はほぼ一致しているが、明度が異なっている場合であって、かつ、(iii)背景色に陰影が写っている場合には、抽出対象領域以外の領域を誤って特定している(誤検知)。
【0197】
図30(c)は、上述の第2関連技術を用いて、文字「A」についての抽出対象領域の特定処理を行なった結果を示す。なお、図30(c)には、R輝度値,G輝度値,B輝度値で定義された入力画像から得られる明度(各輝度値の合計値)に基づいて濃淡画像化した場合を示す。図30(c)に示すように、(ケース1)背景と文字との間で明度はほぼ一致しているが、色相が異なっている場合には、抽出対象領域を正確に特定できていない(不検知)。同時に、抽出対象領域以外の領域を誤って特定している(誤検知)。
【0198】
図30(d)は、上述の第2関連技術を用いて、文字「A」についての抽出対象領域の特定処理を行なった結果を示す。なお、図30(d)には、R輝度値,G輝度値,B輝度値で定義された入力画像のうちG輝度値で定義した明度に基づいて濃淡画像化した場合を示す。図30(d)に示すように、(ケース1)背景と文字との間で明度はほぼ一致しているが、色相が異なっている場合であって、かつ(ii)背景色にばらつきがある場合には、抽出対象領域を正確に特定できていない(不検知)。
【0199】
このように、上述の第2関連技術では、抽出対象領域と背景との間に有意な差がない情報に基づいて濃淡画像化の処理がなされる場合には、適切な特定を行なうことができない。
【0200】
以上のように、いずれの関連技術についても、すべての場合について、抽出対象領域を適切に特定することはできない。
【0201】
これに対して、図31は、上述したこの発明の実施の形態に従う方法を用いた結果を示す。この図31に示す結果から、本実施の形態に従う方法によれば、すべての場合に抽出対象領域を安定的に特定できることがわかる。
【0202】
<本実施形態の作用効果>
本実施の形態によれば、入力画像の各画素の色属性を定義する3つの色パラメータの別に、色パラメータの各々についての空間的な変化を示す3次元の要素値をもつ特徴画像が生成される。すなわち、複数の画素の有する色属性の間で平均化処理を行って得られる平均画像を基準として、各画素の変化量(偏差量)を反映した差分画像が生成される。この差分画像は、入力画像に対して空間的な低域通過フィルタをかけた、すなわち空間的な高周波成分を低減した画像に相当するので、入力画像に対する局所的な外乱による誤差要因を排除することができる。そのため、安定した判定処理を実現できる。
【0203】
さらに、本実施の形態によれば、特徴画像を構成する要素について、次元毎に条件を満たすか否かを判断する。そのため、抽出対象領域と背景領域との間で色相(もしくは、色度)および/または濃度(もしくは、明度)に差がない場合などであっても、正確に目的とする抽出対象領域を特定することができる。
【0204】
これらの処理によって、本実施の形態によれば、撮影環境からの外乱を受ける場合、および抽出対象領域とそれ以外の領域との間の色属性の差が相対的に小さい場合のいずれであっても、目的とする領域を正確に特定することができる。
【0205】
<その他の実施の形態>
本発明に係るプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【0206】
また、本発明に係るプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明に係るプログラムに含まれ得る。
【0207】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記録媒体とを含む。
【0208】
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
【0209】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0210】
2 ワーク、4 光電センサ、6 搬送機構、8 撮像装置、100 画像処理装置、101 本体部、102 モニタ、103 タッチ検出部、104 キーボード、106 CPU、105 マウス、107 メモリ、108 固定ディスク、109 カメラインターフェイス部、111 フレキシブルディスク(FD)駆動装置、112 フレキシブルディスク、113 CD−ROM駆動装置、114 CD−ROM、115 制御情報インターフェイス部、117 センサインターフェイス部、150 画像バッファ、152 色分解部、154 差分画像生成部、154,156,158 差分画像生成部、160 評価部、162 評価結合部、164,166,168 判定部、170 出力部、172 UI(ユーザインターフェイス)部、174 変更部、174a 自動設定ロジック、182 入力値バッファ、184 平均化部、186 平均値バッファ、188 差分算出部、190 差分値バッファ、300,300A,300B ユーザインターフェイス画面、TP タッチペン。

【特許請求の範囲】
【請求項1】
入力画像のうち所定条件を満たす領域を特定するための画像処理装置であって、
前記入力画像の各画素の色属性を定義する3つの色パラメータ値を取得する取得手段と、
前記入力画像における色属性の空間的な変化を示す特徴画像を生成する生成手段とを備え、前記特徴画像は、複数次元の要素値を含み、前記複数次元の要素値の各々は、前記入力画像における前記3つの色パラメータ値のうち互いに異なる色パラメータ値の少なくとも1つを反映したものであり、
前記複数次元の要素値の各々を対応する条件に基づいて評価し、各次元についての評価結果に基づいて対象の領域が前記所定条件を満たすか否かを評価する評価手段と、
前記入力画像のうち、前記所定条件を満たす領域を特定するための情報を出力する出力手段とを備える、画像処理装置。
【請求項2】
前記評価手段は、前記複数次元の要素値の各々を評価するための条件として、前記3つの色パラメータの各々についてのしきい値を用いる、請求項1に記載の画像処理装置。
【請求項3】
前記生成手段は、前記3つの色パラメータ値のそれぞれ1つに基づいて、3つの次元の要素値を含む前記特徴画像を生成する、請求項1または2に記載の画像処理装置。
【請求項4】
前記生成手段は、
色パラメータの別に隣接する複数の画素の有する色パラメータ値を平均化することで、前記3つの色パラメータにそれぞれ対応する3つの平均画像を生成する手段と、
前記入力画像に含まれる各画素の有する色パラメータ値の各々と、対応する色パラメータについての前記平均画像に含まれる対応する画素の有する色パラメータ値との間で差分をとることで、前記特徴画像を生成する手段とを含む、請求項3に記載の画像処理装置。
【請求項5】
前記3つの色パラメータは、L*a*b*表色系を構成する3つの要素である、請求項1〜4のいずれか1項に記載の画像処理装置。
【請求項6】
対話型のユーザインターフェイスを提供するユーザインターフェイス手段をさらに備え、
前記ユーザインターフェイス手段は、選択範囲に含まれる前記特徴画像の画素についての前記複数次元の要素値を前記3つの色パラメータに対応する表色座標系上にグラフィカル表示する手段を含む、請求項1〜5のいずれか1項に記載の画像処理装置。
【請求項7】
前記ユーザインターフェイス手段は、前記評価手段による前記複数次元の要素値の各々を評価するための条件条件として、ユーザによる任意のしきい値の設定を受付ける手段をさらに含む、請求項6に記載の画像処理装置。
【請求項8】
前記出力手段は、前記入力画像をイメージ表示する手段をさらに含み、
前記画像処理装置は、イメージ表示される前記入力画像上で設定された領域に対応する画素を他の画素とは区別するための前記所定条件を決定する条件決定手段をさらに備える、請求項6または7に記載の画像処理装置。
【請求項9】
前記条件決定手段では、いずれの画素であっても前記所定条件を満たすような値が初期条件として設定されている、請求項8に記載の画像処理装置。
【請求項10】
入力画像のうち所定条件を満たす領域を特定する画像処理方法であって、
前記入力画像の各画素の色属性を定義する3つの色パラメータを取得するステップと、
前記入力画像における色属性の空間的な変化を示す特徴画像を生成するステップとを備え、前記特徴画像は、複数次元の要素値を含み、前記複数次元の要素値の各々は、前記入力画像における前記3つの色パラメータのうち互いに異なる色パラメータの少なくとも1つを反映したものであり、
前記複数次元の要素値の各々を対応する条件に基づいて評価し、各次元についての評価結果に基づいて対象の領域が前記所定条件を満たすか否かを評価するステップと、
前記入力画像のうち、前記所定条件を満たす領域を特定するための情報を出力するステップとを備える、画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図16】
image rotate

【図17】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図3】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図18】
image rotate

【図19】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate


【公開番号】特開2011−28364(P2011−28364A)
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願番号】特願2009−171004(P2009−171004)
【出願日】平成21年7月22日(2009.7.22)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】