JP2010108285A - 画像処理方法およびそのコンピュータプログラム - Google Patents

画像処理方法およびそのコンピュータプログラム Download PDF

Info

Publication number
JP2010108285A
JP2010108285A JP2008280183A JP2008280183A JP2010108285A JP 2010108285 A JP2010108285 A JP 2010108285A JP 2008280183 A JP2008280183 A JP 2008280183A JP 2008280183 A JP2008280183 A JP 2008280183A JP 2010108285 A JP2010108285 A JP 2010108285A
Authority
JP
Japan
Prior art keywords
color
coordinates
determination
pixels
rgb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008280183A
Other languages
English (en)
Inventor
Takahiro Inoue
貴裕 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shinko Electric Industries Co Ltd
Original Assignee
Shinko Electric Industries Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shinko Electric Industries Co Ltd filed Critical Shinko Electric Industries Co Ltd
Priority to JP2008280183A priority Critical patent/JP2010108285A/ja
Publication of JP2010108285A publication Critical patent/JP2010108285A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】入力されたカラー画像から特定の色を有する領域を的確に抽出する画像処理方法およびそのコンピュータプログラムを実現する。
【解決手段】画像処理方法は、カラー画像の各ピクセルについて、RGBの各明度を取得する明度取得ステップと、RGB表色系の色空間上に、取得した明度からヒストグラムを作成する作成ステップと、ある特定のピクセル数を示す色の色空間上の座標と判定対象である色の色空間上の座標との間の距離を算出する距離算出ステップと、判定対象である色を有するピクセル数を、距離を独立変数とする所定の単調増加関数における従属変数の値で除算する除算ステップと、得られた商と所定のしきい値との大小を判定する判定ステップと、得られた商が所定のしきい値よりも大きい場合、判定対象である色は上記特定のピクセル数を示す色のグループに属するものであると決定する決定ステップと、を備える。
【選択図】図1

Description

本発明は、入力されたカラー画像から特定の色を有する領域を抽出する画像処理方法およびそのコンピュータプログラムに関する。
プリント基板を検査する検査装置においては、プリント基板をディジタルカメラで撮像して得られたカラー画像のデータを用いて、プリント基板の欠陥の有無を検査する。一般に、プリント基板上の配線パターン、レジストおよび各種部品などはそれ自身固有の色をそれぞれ有しているので、検査装置に入力されたカラー画像を画像処理により特定の色を有する領域ごとに分割して各領域を抽出することによって、プリント基板上の配線パターン、レジストおよび各種部品などが配置された各領域の位置および形状などに関する欠陥を検査する。より具体的には、予め設定された代表色とある地点(ピクセル)の色とを、色の三原色であるRGB(Red、Green、Blue)の各要素の明度に基づいて比較し、比較結果が所定の条件を満たすような場合には、当該地点は代表色で示される領域と同じ領域に属するものであると判定することによって、特定の色の分離抽出を実現する。
予め設定された代表色とある地点(ピクセル)の色との比較条件としては、例えばRGB表色系の色空間(以下、単に「RGB色空間」と称する。)において、代表色のベクトルとある画素の色のベクトルとのなす角および距離を計算し、それらを掛け合わせた値に応じて領域を分割する方法がある(例えば、特許文献1参照)。
また、カラー画像の各画素を色空間上の座標地に変換したヒストグラムの極大点およびその近傍の画素を初期クラスタとして抽出して領域分割する方法がある(例えば、特許文献2参照)。
特開2006−031584号公報 特開2004−005383号公報
特許文献1(すなわち特開2006−031584号公報)に記載された発明によれば、代表色をユーザがコンピュータを介して逐一指定しなければならず、手間がかかる。また、代表色を誤って指定してしまったり指定し忘れたりすると、領域分割が正常に行えない。さらに、検査対象物であるプリント基板像の撮影時における光源の位置、レンズやカメラの特性、プリント基板の状態などについては特に考慮しないでプリント基板のカラー画像を撮影するので、代表色を単純に指定しただけでは、所望の色の領域を正確に抽出することができない可能性がある。例えば、1本の配線の画像をカラー画像から抽出するために当該配線に対応する代表色であるとして色を指定したにもかかわらず、完全な配線ではなく分断された配線の画像が分離抽出されてしまうことがある。
また、特許文献2(すなわち特開2004−005383号公報)に記載された発明によれば、カラー画像に色のグラデーション変化が存在する場合、領域分割が正常に行えない可能性がある。
また、特許文献1および特許文献2に記載されたいずれの発明においても、例えば色と色の境界部分に滲みがあった場合、領域が必要以上に細分化されやすく、領域分割が正常に行えない。代表色と同じ色であるにもかかわらず、その色を有するピクセルの位置がどこにあるかによって、領域が不必要に分割されてしまう可能性がある。
従って本発明の目的は、上記問題に鑑み、入力されたカラー画像から特定の色を有する領域を的確に抽出する処理をコンピュータによる自動演算処理で実現する画像処理方法およびこの画像処理をコンピュータに実行させるためのコンピュータプログラムを提供することにある。
上記目的を実現するために、本発明においては、入力されたカラー画像から特定の色を有する領域をコンピュータ演算処理により抽出する画像処理方法は、コンピュータにより、カラー画像における各ピクセルについて、RGBの各要素の明度を取得する明度取得ステップと、コンピュータにより、RGBの各要素の明度を各座標値とするRGB表色系の色空間上に、取得した明度ごとのピクセル数を示すヒストグラムを作成するヒストグラム作成ステップと、コンピュータにより、ヒストグラムにおいてある特定のピクセル数を示す色のRGBの各要素の明度に対応する色空間上の座標と、判定対象である色のRGBの各要素の明度に対応する色空間上の座標と、の間の距離を算出する距離算出ステップと、コンピュータにより、判定対象である色のRGBの各要素の明度を有するピクセル数を、距離を独立変数とする所定の単調増加関数における従属変数の値で除算する除算ステップと、コンピュータにより、除算ステップで得られた商と、所定のしきい値と、の大小関係を判定する判定ステップと、コンピュータにより、除算ステップで得られた商が所定のしきい値よりも大きいと判定ステップにおいて判定された場合、判定対象である色は、ヒストグラムにおいて特定のピクセル数を示す色のグループに属するものであると決定する決定ステップと、を備える。
上記処理は、コンピュータ等の演算処理装置が実行することができるコンピュータプログラムの形式で実現できる。また、このコンピュータプログラムを記録媒体に格納するという事項も当業者には自明である。
すなわち、入力されたカラー画像から特定の色を有する領域を抽出する画像処理をコンピュータに実行させるためのコンピュータプログラムは、カラー画像における各ピクセルについて、RGBの各要素の明度を取得する明度取得ステップと、RGBの各要素の明度を各座標値とするRGB表色系の色空間上に、取得した明度ごとのピクセル数を示すヒストグラムを作成するヒストグラム作成ステップと、ヒストグラムにおいてある特定のピクセル数を示す色のRGBの各要素の明度に対応する色空間上の座標と、判定対象である色のRGBの各要素の明度に対応する色空間上の座標と、の間の距離を算出する距離算出ステップと、判定対象である色のRGBの各要素の明度を有するピクセル数を、距離を独立変数とする所定の単調増加関数における従属変数の値で除算する除算ステップと、除算ステップで得られた商と、所定のしきい値と、の大小関係を判定する判定ステップと、除算ステップで得られた商が所定のしきい値よりも大きいと判定ステップにおいて判定された場合、判定対象である色は、ヒストグラムにおいて特定のピクセル数を示す色のグループに属するものであると決定する決定ステップと、を備える。
本発明によれば、入力されたカラー画像から特定の色を有する領域をコンピュータによる演算処理により正確に抽出することができる。特に本発明によれば、カラー画像に色のグラデーション変化が存在したり、色と色の境界部分に滲みがあった場合であっても、適度な範囲で領域を分割することができる。また、代表色を逐一指定する手間を省くことができる。また、代表色の誤った指定や指定し忘れに起因する領域の誤分割もない。また例えば、被写体がプリント基板である場合における1本の配線についても、従来のように分断された領域として画像が分離抽出されることはない。
図1は、本発明の実施例による画像処理方法の動作フローを示すフローチャートである。本発明の実施例による画像処理方法は、コンピュータの演算処理によって実行される。ここでは、配線パターン、レジストおよび各種部品などが実装されたプリント基板を画像認識して色ごとに領域分割する場合について説明するが、本発明を適用可能な対象物(カラー画像の被写体)としては、プリント基板以外のその他の被写体であってもよい。
まず、ディジタルカメラで撮影されたプリント基板表面のカラー画像のデータが、本発明の実施例による画像処理についてのコンピュータプログラムがインストールされたコンピュータに、入力される。
ステップS101において、コンピュータは、入力されたカラー画像における各ピクセルについて、RGBの各要素の明度を取得する。取得されたデータは、コンピュータのハードディスク等の記憶装置に記憶される。
図2は、カラー画像からのRGBの各要素の明度の取得について説明する図である。この図以降、説明の都合上、プリント基板のカラー画像における色の違いを、ハッチングの種類の違いで表現することにする。一般に、RGBカラーモデルにおける色は、R(赤)、G(緑)およびB(青)の各要素がどれだけ含まれているかによって表現することができる。本実施例では、RGBの各要素の明度を、一例として0から255までの256個の数字で表現することにするが、このことは本発明を限定するものではなく、例えばこの数を減らすことによってコンピュータの演算処理量を低減してもよい。
カラー画像の全てのピクセルについて、例えば、カラー画像のXY2次元平面上の座標(x,y)におけるR(赤)要素の明度をr(x,y)、G(緑)要素の明度をg(x,y)、B(青)要素の明度をb(x,y)と定義する。例えば、図2において「×」印で示されるXY2次元平面上の座標(x,y)におけるRGBの各要素の明度を、(r(x,y),g(x,y),b(x,y))=(189,202,189)といったように記述する。これに従えば、座標(x,y)における、例えば黒、白、赤、緑、青、黄、シアンおよびマゼンタの各色は、次の表1に示すように表現することができる。
Figure 2010108285
次いで、ステップS102において、コンピュータは、RGBの各要素の明度を各座標値とするRGB表色系の色空間上に、取得した明度ごとのピクセル数を示すヒストグラムを作成する。すなわち、このヒストグラムは、RGBの各要素の明度の組の出現頻度を表す。図3は、RGBの各要素の明度を各座標値とするRGB表色系の色空間を例示する図である。ある色についてのRGBの各要素の明度を、RGB表色系の色空間上における各座標値として表現したとき、当該座標値は球の中心点を意味するものとする。また、図3においては、当該中心点に対応する明度の組み合わせを有するピクセルの数を、球の大きさで表している。すなわち、このヒストグラムでは、球の半径が大きいほど、その球に対応する色を有するピクセルの数が多いということを意味する。図3の例では、RGBの各要素の明度として(r(x,y),g(x,y),b(x,y))=(189,202,189)を有する色は、RGB表色系の色空間上において(189,202,189)を中心点に持つ球で表され、RGBの各要素の明度として(189,202,189)を有するピクセルの数が、球の大きさとして表れる。
次いで、ステップS103において、コンピュータは、ヒストグラムにおいてある特定のピクセル数を示す色のRGBの各要素の明度に対応する色空間上の座標と、判定対象である色のRGBの各要素の明度に対応する色空間上の座標と、の間の距離を算出する。すなわち、この「距離」とは、RGB表色系の色空間における仮想的な距離を意味するものであって、XYZ実空間上の物理的な距離を意味するものではない点に注目すべきである。上記「ある特定のピクセル数を示す色」とはいわゆる「代表色」を意味するものであり、したがって、「ヒストグラムにおける特定のピクセル数」とは、カラー画像から抽出される特定の色(すなわち代表色)のRGBの各要素の明度を有するピクセル数である。また、上記「判定対象である色」とは、当該代表色に含まれるか否かの判定の対象になっている色を意味するものであり、詳細については後述するが、この「判定対象である色」は、「特定のピクセル数を示す色のRGBの各要素の明度に対応する色空間上の座標」に隣接する「座標」に対応するRGBの各要素の明度を有する色である。したがって、ある特定のピクセル数を示す色のRGBの各要素の明度に対応する色空間上の座標と、判定対象である色のRGBの各要素の明度に対応する色空間上の座標と、の間の距離が小さい(短い)ほど、「判定対象である色はある特定のピクセル数を示す色(代表色)に似ている傾向が強くなる」ということを意味する。
ステップS103〜S109の各処理は、判定対象である色のRGBの各要素の明度に対応する色空間上の座標を、特定のピクセル数を示す色(代表色)のRGBの各要素の明度に対応する色空間上の座標に対して色空間の各座標軸方向に隣接する座標のいずれかに設定して、必要に応じて再帰的に、繰り返し実行される。
また、上述のステップS103においてRGB表色系の色空間上における距離の算出に用いた「特定のピクセル数」は、その初期設定値として、ヒストグラムにおいて最多のピクセル数を設定する。詳細については後述するが、当該特定のピクセル数に対して処理が終了すると(ステップS110において判定)、ステップS111において、特定のピクセル数を示す色(代表色)を変更(すなわち「特定のピクセル数」を変更)する。具体的には、特定のピクセル数を、ヒストグラムにおいて未だ特定のピクセル数を示す色のグループに属するものであるとは決定されていない色のピクセル数のうち最も多いピクセル数に設定し直す。そして、再びステップS103から処理が始まる。
ステップS104では、コンピュータは、判定対象である色のRGBの各要素の明度を有するピクセル数を、上記距離を独立変数とする所定の単調増加関数における従属変数の値で除算(割り算)する。上記距離が大きくなればなるほど、当該単調増加関数における従属変数の値が大きくなるので、ステップS104で得られる商は小さくなる。
続くステップS105では、コンピュータは、ステップS104で得られた商と、所定のしきい値と、の大小関係を判定する。RGB表色系の色空間において、判定対象である色のRGBの各要素の明度に対応する色空間上の座標(判定対称に係る座標)が、ある特定のピクセル数を示す色のRGBの各要素の明度に対応する色空間上の座標から離れた距離に位置するほどすなわち上記「距離」が大きく(長く)なるほど、「判定対象である色はある特定のピクセル数を示す色(代表色)に似ている傾向が弱くなる(換言すれば、判定対象である色は代表色に似ていない傾向が強くなる)」が、ステップS104で得られる商は小さくなるので、商としきい値との大小関係の比較は、ピクセル数としきい値との大小関係の単純な比較と比べて、代表色に似ていない色ほどしきい値より大きいとは判断されにくくなる。つまり、「似ていない色ほど、同じ領域の色とは判断されず、別の色の領域と判断される」といったことがより強調されることになる。したがって、カラー画像に色のグラデーション変化が存在したり、色と色の境界部分に滲みがある場合であっても、コンピュータは「似ていない色」を認識することができるので、色の領域を的確に割することができる。単調増加関数の例としては、1次関数、2次関数、あるいは指数関数などがあるが、本発明ではこれに限定されず、その他の単調増加関数であってもよい。また、上記所定のしきい値は、ユーザが任意に設定してよく、例えば、いくつかの値をしきい値に設定して本発明の画像処理方法を実行してどのような領域分割結果が得られるかをある程度試した後、実際に使用する所望のしきい値を決定してもよい。
ステップS104で得られた商が所定のしきい値よりも大きいとステップS105において判定された場合、ステップS106において、コンピュータは、判定対象である色は、ヒストグラムにおいて当該特定のピクセル数を示す色のグループに属するものであると決定する。
上述の通り、「判定対象である色」は、「特定のピクセル数を示す色(代表色)のRGBの各要素の明度に対応する色空間上の座標」に隣接する「座標」に対応するRGBの各要素の明度を有する色である。上述の各処理は、判定対象である色のRGBの各要素の明度に対応する色空間上の座標を、特定のピクセル数を示す色のRGBの各要素の明度に対応する色空間上の座標に対して色空間の各座標軸方向に隣接する座標のうちのいずれかに設定して実行されるものであるが、ステップS104で得られた商が所定のしきい値よりも大きいとステップS105において判定され、次いでステップS106において判定対象である色の属する領域が決定されると、ステップS107において、コンピュータは、判定に係る座標(判定対象である色のRGBの各要素の明度に対応する色空間上の座標)を別の座標に変更する。判定に係る座標を変更するとは、換言すれば判定対象である色を変更するということである。ステップS107において、コンピュータは、当該判定に係る座標に対して色空間の各座標軸方向にさらに隣接する座標のうちのいずれかを、「さらなる判定に係る座標」に新たに設定し、ステップS103へ戻る。つまり、本発明の実施例では、判定に係る座標(判定対象である色のRGBの各要素の明度に対応する色空間上の座標)についてステップS104で得られた商が、所定のしきい値よりも大きいとステップS105において判定される限り、当該判定に係る座標を、当該判定に係る座標に対して色空間の各座標軸方向にさらに隣接する座標をさらなる判定に係る座標に設定変更して、再びステップS103から始まる処理が繰り返し実行されることになる。
一方、判定に係る座標(判定対象である色のRGBの各要素の明度に対応する色空間上の座標)についてステップS104で得られた商が、所定のしきい値よりも小さいとステップS105において判定された場合は、ステップS108において、コンピュータは、判定に係る座標を変更する。すなわち、ステップS108において、コンピュータは、当該判定に係る座標に対して色空間の各座標軸方向にさらに隣接する座標のうちのいずれかを、「さらなる判定に係る座標」に新たに設定する。
ステップS109では、上記「さらなる判定に係る座標」の全てについて、ステップS103〜S108の処理が終了したかが判定される。上記「さらなる判定に係る座標」の全てについて処理が終了していない場合は、ステップS103へ戻る。つまり、ステップS109の処理の存在により、ステップS103〜S108の一連の処理は、上記「さらなる判定に係る座標」の全てについて、ステップS104で得られた商が所定のしきい値よりも小さいとステップS105で判定されるまで、判定に係る座標を変更して(ステップS108)、繰り返し実行されることになる。
ステップS109において上記「さらなる判定に係る座標」の全てについて処理が終了したと判定された場合は、ステップS110へ進む。ステップS110では、上記「さらなる判定に係る座標」の全てについて、ステップS104で得られた商が所定のしきい値よりも小さいとステップA105において判定されたか否かが、判定される。ステップS104で得られた商が所定のしきい値よりも小さいとステップS110において判定されない場合、ステップS111へ進む。
ステップS111では、特定のピクセル数を示す色(代表色)を変更(すなわち「特定のピクセル数」を変更)する。具体的には、上述のステップS103においてRGB表色系の色空間上における距離の算出に用いた特定のピクセル数を、ヒストグラムにおいて当該特定のピクセル数の次に多いピクセル数に設定し直す。つまり、上述のステップS103においてRGB表色系の色空間上における距離の算出に用いた「特定のピクセル数」は、その初期設定値として、ヒストグラムにおいて最多のピクセル数を設定していたが、これが終わると、未だ特定のピクセル数を示す色のグループに属するものであるとは決定されていない色のピクセル数のうち最も多いピクセル数を設定し、さらにそれが終わると未だ特定のピクセル数を示す色のグループに属するものであるとは決定されていない色のピクセル数のうち最も多いピクセル数を設定する、といったことを順次繰り返していく。
ステップS104で得られた商が所定のしきい値よりも小さいとステップS110において判定された場合、ステップS112へ進む。ステップS112では、ステップS106において属する色の領域(グループ)が決定された色を有するピクセルに関する、2次元平面上における座標を表現するビットマップデータを生成する。
続いて、上述した本発明の実施例による画像処理方法について、コンピュータプログラムレベルのパラメータおよび変数を用いて説明する。図4〜11は、本発明の実施例による画像処理方法の具体的処理を説明するフローチャートである。
図3を参照して既に説明したように、RGBの各要素の明度を各座標値とするRGB表色系の色空間上に表現されたヒストグラムは、RGBの各要素の明度の組の出現頻度を表す。RGB表色系の色空間上において球の大きさが大きいほど、その球の中心点の座標に対応する明度の色を有するピクセルの数が多いということを意味する。すなわち、球は、その色を有するピクセルがある程度まとまった個数存在するということを意味するものであり、代表色として設定され得る色である。本明細書では、この球を「色の領域」と単に称する。また、本明細書では、色の領域(グループ)が決定された順に、1番目の色の領域、2番目の色の領域、・・・、n番目の色の領域(ただし、nは正の整数)と呼ぶことにする。例えば、ヒストグラムにおいて最多のピクセル数を有する色は、「1番目の色の領域」である。nの上限値は、ユーザが任意に設定可能である。例えば、カラー画像を画像処理により4色の領域に分割したい場合(4色の領域を抽出したい場合)は、nを4に設定すればよい。この場合、色の領域(グループ)が決定された順に、1番目の色の領域、2番目の色の領域、3番目の色の領域、4番目の色の領域と称されることになる。また、「0番目の色領域」は、1〜4番目のいずれの色の領域にも属さないということを意味するものと定義する。
また、変数area(r,g,b)を、「n番目の色の領域に属する」という情報を特定するために定義する。すなわち、「area(r,g,b)=n」は、「RGB表色系の色空間上の座標(r,g,b)は、n番目の色の領域に属すると決定された」ことを意味し、「area(r,g,b)=0」は、「RGB表色系の色空間上の座標(r,g,b)は、未だどの領域にも属さない」ことを意味する。また、上記所定のしきい値を変数「limit」で表す。この「limit」は、ユーザが任意に設定してよく、例えば、いくつかの値を「limit」に設定して本発明の画像処理方法を実行してどのような領域分割結果が得られるかをある程度試した後、実際に使用する所望のしきい値を決定してもよい。例えば、「limit=150」といったように設定する。
また、RGB表色系の色空間上の座標(r,g,b)に対応するRGB明度の色を有するピクセルの数をcount(r,g,b)で表す。例えば、r=189、g=202、b=189の明度を有する色は、RGB表色系の色空間上の座標として(189,202,189)で表されるが、そのような色を有するピクセルが200個存在したとすると、「count(189,202,189)=200」となる。また、RGB表色系の色空間上の座標(r,g,b)に隣接する座標を(r’,g’,b’)で表す。
以下に説明する例では、カラー画像を画像処理により4色の領域に分割する場合について説明する。図4のステップS201において、コンピュータは、初期設定として、「n=1」および「limit=150」を設定する。なお、「limit=150」の設定は、ユーザがキーボードやマウスなどの入力装置を介してコンピュータに対して入力することにより、コンピュータに設定される。
次いで、ステップS202において、コンピュータは、同じく初期設定として、「area(r,g,b)=0」を設定する。このステップS202は、RGB表色系の色空間上の全ての座標(r,g,b)については画像処理実行前であるので未だどの色の領域に属するか決定されておらず、未だどの領域にも属していないことから、「area(r,g,b)=0」と設定するものである。
次いで、ステップS203において、コンピュータは、未だ特定のピクセル数を示す色のグループに属するものであるとは決定されていない色のピクセル数のうち最も大きいcount(r,g,b)についての座標(r,g,b)を取得する。例えば、1回目の処理ループでは、この段階では全ての座標(r,g,b)についてどの領域に属するか決定されていないので、最も多いピクセル数である1番多いピクセル数のcount(r,g,b)についての座標(r,g,b)を取得することになる。ステップS203により、図1のステップS103においてRGB表色系の色空間における仮想的な距離を算出するために用いられる上記カラー画像から抽出される代表色である上記「ある特定のピクセル数を示す色」が決定されることになる。
次いで、ステップS300において、コンピュータは、定義済処理である「CreateDomain(r,g,b,n,r,g,b)」のコンピュータプログラムを呼び出して実行する。定義済処理CreateDomain(r,g,b,n,r,g,b)については、図5および6を参照して後述する。
定義済処理CreateDomain(r,g,b,n,r,g,b)が完了すると、ステップS204において、コンピュータは、nを1つインクリメントする。
次いで、ステップS205において、コンピュータは、n=5であるか否かを判定する。n=5である場合は処理を終了し、n=5でない場合は、ステップS203に戻る。ステップS205においてn=5であるか否かを判定するのは、カラー画像を4色の領域に分割するために処理ループを抜けるか否かを判定するためである。例えばステップS205においてn=2であると判定された場合は、ステップS203に戻り、ステップS203において、コンピュータは、未だ特定のピクセル数を示す色のグループすなわち1番多いピクセル数のグループに属するものであるとは決定されてない色のピクセル数のうち最も大きいcount(r,g,b)についての座標(r,g,b)を取得することになる。以降、ステップS205においてn=5と判定されるまで、ステップS203、S300およびS204の処理を繰り返し実行する。ステップS205においてn=5と判定された時点で処理を終了すると、カラー画像が4色の領域に分割される。このように、本発明の実施例によれば、nを順次変更して代表色を決定していくので、代表色を逐一指定する手間を省くことができる。また、代表色の誤った指定や指定し忘れに起因する領域の誤分割もないという利点を有する。
続いて、ステップS300における定義済処理CreateDomain(r,g,b,n,r,g,b)について、図5および6を参照して説明する。図4のステップS203において取得された、未だ特定のピクセル数を示す色のグループに属するものであるとは決定されていない色のピクセル数のうち最も大きいcount(r,g,b)についての座標(r,g,b)は、図1のステップS103においてRGB表色系の色空間上における仮想的な距離を算出するために用いられる上記カラー画像から抽出される代表色である上記「ある特定のピクセル数を示す色」に対応するものであり、ここでは、座標(cr,cg,cb)として定義する。すなわち、定義済処理CreateDomain(r,g,b,n,cr,cg,cb)は、判定対象である色のRGBの各要素の明度に対応する色空間上の座標を(r,g,b)、n番目の色の領域(すなわち代表色)のRGBの各要素の明度に対応する色空間上の座標を(cr,cg,cb)としたときにおいて、当該判定対象である色がn番目の色の領域に属するか否かを決定するために、コンピュータにより実行される処理である。
ここで、RGB表色系の色空間上の座標(r,g,b)と座標(r’,g’,b’)との間の距離をd(r’,g’,b’)で表す。すなわち、d(r’,g’,b’)は式1で表される。座標(r’,g’,b’)は、例えば座標(r,g,b)に隣接する座標である。
Figure 2010108285
まず、図5のステップS301において、コンピュータは、n番目の色の領域(すなわち代表色)のRGBの各要素の明度に対応する色空間上の座標(cr,cg,cb)と判定対象である色のRGBの各要素の明度に対応する色空間上の座標(r,g,b)との間の距離d(r,g,b)を算出する。
Figure 2010108285
次いで、ステップS302において、コンピュータは、ステップS301で算出したd(r,g,b)が0(ゼロ)であるか否かを判定する。d(r,g,b)が、0(ゼロ)であると判定された場合はステップS304へ進み、0(ゼロ)ではない判定された場合はステップS303へ進む。
ステップS303において、コンピュータは、count(r,g,b)をd(r,g,b)で除算(割り算)して得られた商が、limitより大きいか否かを判定する。ここで、d(r,g,b)は、図1のステップS104を参照して説明したように、当該距離を独立変数とする1次の単調増加関数の従属変数の値である。この代替例として、当該距離を独立変数とした2次関数や指数関数などの単調増加関数の従属変数でcount(r,g,b)を除算(割り算)するようにしてもよい。
ステップS303においてcount(r,g,b)をd(r,g,b)で除算(割り算)して得られた商が、limitより小さいと判定された場合は、定義済処理CreateDomain(r,g,b,n,cr,cg,cb)の処理を抜け、当該定義済処理CreateDomain(r,g,b,n,cr,cg,cb)を呼び出した処理へ戻る。
一方、ステップS303においてcount(r,g,b)をd(r,g,b)で除算(割り算)して得られた商が、limitより大きいと判定された場合は、ステップS304へ進む。
ステップS304では、コンピュータは、「area(r,g,b)=n」という情報を、コンピュータ内の記憶装置に記憶する。上述のように、「area(r,g,b)=n」は、「RGB表色系の色空間上の座標(r,g,b)は、n番目の色の領域に属する」ことを意味するものである。ステップS304が実行されるのは、ステップS302においてd(r,g,b)が0(ゼロ)ではない判定される場合、および、ステップS303においてcount(r,g,b)をd(r,g,b)で除算(割り算)して得られた商がlimitより大きいと判定される場合、の2通りである。
このうち、ステップS302においてd(r,g,b)が0(ゼロ)であると判定される場合は、n番目の色の領域(すなわち代表色)のRGBの各要素の明度に対応する色空間上の座標(cr,cg,cb)と判定対象である色のRGBの各要素の明度に対応する色空間上の座標(r,g,b)とが同一である場合であり、すなわち、代表色と判定対象である色とは全く同じ色である場合である。したがって、判定対象である色は、代表色の領域に属するものであると当然に決定することができる。なお、判定対象に係る座標(r,g,b)は、必ずしも座標(cr,cg,cb)に隣接するとは限らない。
一方、ステップS303においてcount(r,g,b)をd(r,g,b)で除算(割り算)して得られた商がlimitより大きいと判定される場合は、判定対象である色は、代表色とは完全には一致しないが、しきい値を満たすゆえ代表色とは比較的近い色であるといえる。したがって、当該判定対象である色は、代表色の領域に属するものであると決定する。これにより、カラー画像に色のグラデーション変化が存在したり、色と色の境界部分に滲みがあった場合であっても、領域を的確に分割することができる。
図5のステップS304に次いで、図6のステップS305では、コンピュータは、area(r,g,b−1)が0(ゼロ)であるか否かを判定する。図12は、図6〜11に示される処理が実行されることにより実行される、判定対象に係る座標の変更を説明する図である。図6のステップS305におけるarea(r,g,b−1)が0(ゼロ)であるか否かの判定は、それまでの判定対象であった色空間上の座標(r,g,b)から色空間上のB軸座標のマイナス方向に1だけ移動した位置(図12では矢印「1」の方向)にある座標(r,g,b−1)を、さらなる判定に係る座標に設定して、実行される。すなわち、ステップS305の処理は、色空間上のB軸座標のマイナス方向に1だけ移動した位置にある座標(r,g,b−1)を、さらなる判定に係る座標に設定して、当該判定に係る座標(r,g,b−1)が、現在計算中のn番目の色の領域に属するか否かを判定するために実行されるものである。
ステップS305においてarea(r,g,b−1)が、0(ゼロ)であると判定された場合はステップS306へ進み、0(ゼロ)ではない判定された場合は図7のステップS307へ進む。
ステップS305においてarea(r,g,b−1)が0(ゼロ)であると判定される場合は、新たに判定対象に設定した座標(r,g,b−1)が未だどの領域にも属していないことを意味する。既に説明したように、図4のステップS202における初期設定としてRGB表色系の色空間上の全ての座標(r,g,b)について画像処理実行前は未だどの領域にも属していないことから「area(r,g,b)=0」と設定されており、したがって、ステップS305を実行する時点で、新たに判定対象に設定した座標(r,g,b−1)が未だどの領域にも属していない可能性がある。この場合は、ステップS306において、コンピュータは、新たに判定対象に設定した座標(r,g,b−1)について、定義済処理CreateDomain(r,g,b−1,n,cr,cg,cb)を実行する。本発明は、定義済処理CreateDomain(r,g,b−1,n,cr,cg,cb)の中には、判定対象に係る座標を、当該判定対象に設定した座標(r,g,b−1)から当該座標(r,g,b−1)に隣接する座標に設定した上で再度、定義済処理CreateDomainを実行する処理が含まれているので、「再帰呼び出し(recursive call)」構造を有している。
定義済処理CreateDomain(r,g,b−1,n,cr,cg,cb)については、図5を参照して説明した定義済処理CreateDomain(r,g,b,n,cr,cg,cb)において「b」を「b−1」に置き換えて実行すればよい。ここで、定義済処理CreateDomain(r,g,b−1,n,cr,cg,cb)を実行したときにおいて、図5のステップS303の処理においてcount(r,g,b−1)をd(r,g,b−1)で除算(割り算)して得られた商が、limitより小さいと判定された場合には、定義済処理CreateDomain(r,g,b−1,n,cr,cg,cb)の処理を抜けて、判定対象に係る座標を、「当該新たに判定対象に設定した座標(r,g,b−1)」から、新たに判定対象に設定する前の、すなわち「以前の判定対称にかかる座標(r,g,b)」に設定を戻した上で、図7のステップS307へ進む。一方、図5のステップS303の処理においてcount(r,g,b−1)をd(r,g,b−1)で除算(割り算)して得られた商が、limitより大きいと判定された場合には、図5のステップS304において、コンピュータは、「area(r,g,b−1)=n」という情報を、コンピュータ内の記憶装置に記憶する。「area(r,g,b−1)=n」は、「RGB表色系の色空間上の座標(r,g,b−1)は、n番目の色の領域に属する」ことを意味するものである。
一方、ステップS305においてarea(r,g,b−1)が0(ゼロ)ではないと判定される場合は、新たに判定対象に設定した座標(r,g,b−1)は、1〜n−1番目(ただし、nは2以上の整数)いずれかの色の領域に含まれていることを意味する。この場合、判定対象に係る座標を、「当該新たに判定対象に設定した座標(r,g,b−1)」から、新たに判定対象に設定する前の、すなわち「以前の判定対象にかかる座標(r,g,b)」に設定を戻した上で、図7のステップS307へ進む。
図7のステップS307において、コンピュータは、area(r,g,b+1)が0(ゼロ)であるか否かを判定する。図7のステップS307におけるarea(r,g,b+1)が0(ゼロ)であるか否かの判定は、座標(r,g,b)から色空間上のB軸座標のプラス方向に1だけ移動した位置(図12では矢印「2」の方向)にある座標(r,g,b+1)を、さらなる判定に係る座標に設定して、実行される。すなわち、ステップS307の処理は、色空間上のB軸座標のプラス方向に1だけ移動した位置にある座標(r,g,b+1)を、さらなる判定に係る座標に設定して、当該判定に係る座標(r,g,b+1)が、現在計算中のn番目の色の領域に属するか否かを判定するために実行されるものである。
ステップS307においてarea(r,g,b+1)が、0(ゼロ)であると判定された場合はステップS308へ進み、0(ゼロ)ではない判定された場合は図8のステップS309へ進む。
ステップS307においてarea(r,g,b+1)が0(ゼロ)であると判定される場合は、新たに判定対象に設定した座標(r,g,b+1)が未だどの領域にも属していないことを意味する。この場合は、ステップS308において、コンピュータは、新たに判定対象に設定した座標(r,g,b+1)について、定義済処理CreateDomain(r,g,b+1,n,cr,cg,cb)を実行する。定義済処理CreateDomain(r,g,b+1,n,cr,cg,cb)については、図5を参照して説明した定義済処理CreateDomain(r,g,b,n,cr,cg,cb)において「b」を「b+1」に置き換えて実行すればよい。ここで、定義済処理CreateDomain(r,g,b+1,n,cr,cg,cb)を実行したときにおいて、図5のステップS303の処理においてcount(r,g,b+1)をd(r,g,b+1)で除算(割り算)して得られた商が、limitより小さいと判定された場合には、定義済処理CreateDomain(r,g,b+1,n,cr,cg,cb)の処理を抜けて、判定対象に係る座標を、「当該新たに判定対象に設定した座標(r,g,b+1)」から、新たに判定対象に設定する前の、すなわち「以前の判定対象にかかる座標(r,g,b)」に設定を戻した上で、図8のステップS309へ進む。一方、図5のステップS303の処理においてcount(r,g,b+1)をd(r,g,b+1)で除算(割り算)して得られた商が、limitより大きいと判定された場合には、図5のステップS304において、コンピュータは、「area(r,g,b+1)=n」という情報を、コンピュータ内の記憶装置に記憶する。「area(r,g,b+1)=n」は、「RGB表色系の色空間上の座標(r,g,b+1)は、n番目の色の領域に属する」ことを意味するものである。
一方、ステップS307においてarea(r,g,b+1)が0(ゼロ)ではないと判定される場合は、新たに判定対象に設定した座標(r,g,b+1)は、1〜n−1番目(ただし、nは2以上の整数)いずれかの色の領域に含まれていることを意味する。この場合、判定対象に係る座標を、「当該新たに判定対象に設定した座標(r,g,b+1)」から、新たに判定対象に設定する前の、すなわち「以前の判定対象にかかる座標(r,g,b)」に設定を戻した上で、図8のステップS309へ進む。
図8のステップS309において、コンピュータは、area(r−1,g,b)が0(ゼロ)であるか否かを判定する。ステップS309におけるarea(r−1,g,b)が0(ゼロ)であるか否かの判定は、座標(r,g,b)から色空間上のR軸座標のマイナス方向に1だけ移動した位置(図12では矢印「3」の方向)にある座標(r−1,g,b)を、さらなる判定に係る座標に設定して、実行される。すなわち、ステップS309の処理は、色空間上のr軸座標のマイナス方向に1だけ移動した位置にある座標(r−1,g,b)を、さらなる判定に係る座標に設定して、当該判定に係る座標(r−1,g,b)が、現在計算中のn番目の色の領域に属するか否かを判定するために実行されるものである。
ステップS309においてarea(r−1,g,b)が、0(ゼロ)であると判定された場合はステップS310へ進み、0(ゼロ)ではない判定された場合は図9のステップS311へ進む。
ステップS309においてarea(r−1,g,b)が0(ゼロ)であると判定される場合は、新たに判定対象に設定した座標(r−1,g,b)が未だどの領域にも属していないことを意味する。この場合は、ステップS310において、コンピュータは、新たに判定対象に設定した座標(r−1,g,b)について、定義済処理CreateDomain(r−1,g,b,n,cr,cg,cb)を実行する。定義済処理CreateDomain(r−1,g,b,n,cr,cg,cb)については、図5を参照して説明した定義済処理CreateDomain(r,g,b,n,cr,cg,cb)において「r」を「r−1」に置き換えて実行すればよい。ここで、定義済処理CreateDomain(r−1,g,b,n,cr,cg,cb)を実行したときにおいて、図5のステップS303の処理においてcount(r−1,g,b)をd(r−1,g,b)で除算(割り算)して得られた商が、limitより小さいと判定された場合には、定義済処理CreateDomain(r−1,g,b,n,cr,cg,cb)の処理を抜けて、判定対象に係る座標を、「当該新たに判定対象に設定した座標(r−1,g,b)」から、新たに判定対象に設定する前の、すなわち「以前の判定対称にかかる座標(r,g,b)」に設定を戻した上で、図9のステップS311へ進む。一方、図5のステップS303の処理においてcount(r−1,g,b)をd(r−1,g,b)で除算(割り算)して得られた商が、limitより大きいと判定された場合には、図5のステップS304において、コンピュータは、「area(r−1,g,b)=n」という情報を、コンピュータ内の記憶装置に記憶する。「area(r−1,g,b)=n」は、「RGB表色系の色空間上の座標(r−1,g,b)は、n番目の色の領域に属する」ことを意味するものである。
一方、ステップS309においてarea(r−1,g,b)が0(ゼロ)ではないと判定される場合は、新たに判定対象に設定した座標(r−1,g,b)は、1〜n−1番目(ただし、nは2以上の整数)いずれかの色の領域に含まれていることを意味する。この場合、判定対象に係る座標を、「当該新たに判定対象に設定した座標(r−1,g,b)」から、新たに判定対象に設定する前の、すなわち「以前の判定対称にかかる座標(r,g,b)」に設定を戻した上で、図9のステップS311へ進む。
図9のステップS311において、コンピュータは、area(r+1,g,b)が0(ゼロ)であるか否かを判定する。ステップS311におけるarea(r+1,g,b)が0(ゼロ)であるか否かの判定は、座標(r,g,b)から色空間上のR軸座標のプラス方向に1だけ移動した位置(図12では矢印「4」の方向)にある座標(r+1,g,b)を、さらなる判定に係る座標に設定して、実行される。すなわち、ステップS311の処理は、色空間上のr軸座標のプラス方向に1だけ移動した位置にある座標(r+1,g,b)を、さらなる判定に係る座標に設定して、当該判定に係る座標(r+1,g,b)が、現在計算中のn番目の色の領域に属するか否かを判定するために実行されるものである。
ステップS311においてarea(r+1,g,b)が、0(ゼロ)であると判定された場合はステップS312へ進み、0(ゼロ)ではない判定された場合は図10のステップS313へ進む。
ステップS311においてarea(r+1,g,b)が0(ゼロ)であると判定される場合は、新たに判定対象に設定した座標(r+1,g,b)が未だどの領域にも属していないことを意味する。この場合は、ステップS312において、コンピュータは、新たに判定対象に設定した座標(r+1,g,b)について、定義済処理CreateDomain(r+1,g,b,n,cr,cg,cb)を実行する。定義済処理CreateDomain(r+1,g,b,n,cr,cg,cb)については、図5を参照して説明した定義済処理CreateDomain(r,g,b,n,cr,cg,cb)において「r」を「r+1」に置き換えて実行すればよい。ここで、定義済処理CreateDomain(r+1,g,b,n,cr,cg,cb)を実行したときにおいて、図5のステップS303の処理においてcount(r+1,g,b)をd(r+1,g,b)で除算(割り算)して得られた商が、limitより小さいと判定された場合には、定義済処理CreateDomain(r+1,g,b,n,cr,cg,cb)の処理を抜けて、判定対象に係る座標を、「当該新たに判定対象に設定した座標(r+1,g,b)」から、新たに判定対象に設定する前の、すなわち「以前の判定対象にかかる座標(r,g,b)」に設定を戻した上で、図10のステップS313へ進む。一方、図5のステップS303の処理においてcount(r+1,g,b)をd(r+1,g,b)で除算(割り算)して得られた商が、limitより大きいと判定された場合には、図5のステップS304において、コンピュータは、「area(r+1,g,b)=n」という情報を、コンピュータ内の記憶装置に記憶する。「area(r+1,g,b)=n」は、「RGB表色系の色空間上の座標(r+1,g,b)は、n番目の色の領域に属する」ことを意味するものである。
一方、ステップS311においてarea(r+1,g,b)が0(ゼロ)ではないと判定される場合は、新たに判定対象に設定した座標(r+1,g,b)は、1〜n−1番目(ただし、nは2以上の整数)いずれかの色の領域に含まれていることを意味する。この場合、判定対象に係る座標を、「当該新たに判定対象に設定した座標(r+1,g,b)」から、新たに判定対象に設定する前の、すなわち「以前の判定対象にかかる座標(r,g,b)」に設定を戻した上で、図10のステップS313へ進む。
図10のステップS313において、コンピュータは、area(r,g−1,b)が0(ゼロ)であるか否かを判定する。ステップS313におけるarea(r,g−1,b)が0(ゼロ)であるか否かの判定は、座標(r,g,b)から色空間上のG軸座標のマイナス方向に1だけ移動した位置(図12では矢印「5」の方向)にある座標(r,g−1,b)を、さらなる判定に係る座標に設定して、実行される。すなわち、ステップS313の処理は、色空間上のg軸座標のマイナス方向に1だけ移動した位置にある座標(r,g−1,b)を、さらなる判定に係る座標に設定して、当該判定に係る座標(r,g−1,b)が、現在計算中のn番目の色の領域に属するか否かを判定するために実行されるものである。
ステップS313においてarea(r,g−1,b)が、0(ゼロ)であると判定された場合はステップS314へ進み、0(ゼロ)ではない判定された場合は図11のステップS315へ進む。
ステップS313においてarea(r,g−1,b)が0(ゼロ)であると判定される場合は、新たに判定対象に設定した座標(r,g−1,b)が未だどの領域にも属していないことを意味する。この場合は、ステップS314において、コンピュータは、新たに判定対象に設定した座標(r,g−1,b)について、定義済処理CreateDomain(r,g−1,b,n,cr,cg,cb)を実行する。定義済処理CreateDomain(r,g−1,b,n,cr,cg,cb)については、図5を参照して説明した定義済処理CreateDomain(r,g−1,b,n,cr,cg,cb)において「g」を「g−1」に置き換えて実行すればよい。ここで、定義済処理CreateDomain(r,g−1,b,n,cr,cg,cb)を実行したときにおいて、図5のステップS303の処理においてcount(r,g−1,b)をd(r,g−1,b)で除算(割り算)して得られた商が、limitより小さいと判定された場合には、定義済処理CreateDomain(r,g−1,b,n,cr,cg,cb)の処理を抜けて、判定対象に係る座標を、「当該新たに判定対象に設定した座標(r,g−1,b)」から、新たに判定対象に設定する前の、すなわち「以前の判定対象にかかる座標(r,g,b)」に設定を戻した上で、図11のステップS315へ進む。一方、図5のステップS303の処理においてcount(r,g−1,b)をd(r,g−1,b)で除算(割り算)して得られた商が、limitより大きいと判定された場合には、図5のステップS304において、コンピュータは、「area(r,g−1,b)=n」という情報を、コンピュータ内の記憶装置に記憶する。「area(r,g−1,b)=n」は、「RGB表色系の色空間上の座標(r,g−1,b)は、n番目の色の領域に属する」ことを意味するものである。
一方、ステップS313においてarea(r,g−1,b)が0(ゼロ)ではないと判定される場合は、新たに判定対象に設定した座標(r,g−1,b)は、1〜n−1番目(ただし、nは2以上の整数)いずれかの色の領域に含まれていることを意味する。この場合、判定対象に係る座標を、「当該新たに判定対象に設定した座標(r,g−1,b)」から、新たに判定対象に設定する前の、すなわち「以前の判定対象にかかる座標(r,g,b)」に設定を戻した上で、図11のステップS315へ進む。
図11のステップS315において、コンピュータは、area(r,g+1,b)が0(ゼロ)であるか否かを判定する。ステップS315におけるarea(r,g+1,b)が0(ゼロ)であるか否かの判定は、座標(r,g,b)から色空間上のG軸座標のプラス方向に1だけ移動した位置(図12では矢印「6」の方向)にある座標(r,g+1,b)を、さらなる判定に係る座標に設定して、実行される。すなわち、ステップS315の処理は、色空間上のG軸座標のプラス方向に1だけ移動した位置にある座標(r,g+1,b)を、さらなる判定に係る座標に設定して、当該判定に係る座標(r,g+1,b)が、現在計算中のn番目の色の領域に属するか否かを判定するために実行されるものである。
ステップS315においてarea(r,g+1,b)が、0(ゼロ)であると判定された場合はステップS316へ進み、0(ゼロ)ではない判定された場合は、判定対象に係る座標を、「当該新たに判定対象に設定した座標(r,g+1,b)」から、新たに判定対象に設定する前の、すなわち「以前の判定対象にかかる座標(r,g,b)」に設定を戻した上で、図11のEXITへ進む。
ステップS315においてarea(r,g+1,b)が0(ゼロ)であると判定される場合は、新たに判定対象に設定した座標(r,g+1,b)が未だどの領域にも属していないことを意味する。この場合は、ステップS316において、コンピュータは、新たに判定対象に設定した座標(r,g+1,b)について、定義済処理CreateDomain(r,g+1,b,n,cr,cg,cb)を実行する。定義済処理CreateDomain(r,g+1,b,n,cr,cg,cb)については、図5を参照して説明した定義済処理CreateDomain(r,g+1,b,n,cr,cg,cb)において「g」を「g+1」に置き換えて実行すればよい。ここで、定義済処理CreateDomain(r,g+1,b,n,cr,cg,cb)を実行したときにおいて、図5のステップS303の処理においてcount(r,g+1,b)をd(r,g+1,b)で除算(割り算)して得られた商が、limitより小さいと判定された場合には、定義済処理CreateDomain(r,g+1,b,n,cr,cg,cb)の処理を抜けて、判定対象に係る座標を、「当該新たに判定対象に設定した座標(r,g+1,b)」から、新たに判定対象に設定する前の、すなわち「以前の判定対称にかかる座標(r,g,b)」に設定を戻した上で、図11のEXITへ進む。一方、図5のステップS303の処理においてcount(r,g+1,b)をd(r,g+1,b)で除算(割り算)して得られた商が、limitより大きいと判定された場合には、図5のステップS304において、コンピュータは、「area(r,g+1,b)=n」という情報を、コンピュータ内の記憶装置に記憶する。「area(r,g+1,b)=n」は、「RGB表色系の色空間上の座標(r,g+1,b)は、n番目の色の領域に属する」ことを意味するものである。
一方、ステップS315においてarea(r,g+1,b)が0(ゼロ)ではないと判定される場合は、新たに判定対象に設定した座標(r,g+1,b)は、1〜n−1番目(ただし、nは2以上の整数)いずれかの色の領域に含まれていることを意味する。この場合、判定対象に係る座標を、「当該新たに判定対象に設定した座標(r,g+1,b)」から、新たに判定対象に設定する前の、すなわち「以前の判定対象にかかる座標(r,g,b)」に設定を戻した上で、図11のEXITへ進む。
図6〜11を参照して説明したステップS305〜S315の処理を経ることによって、判定対象に係る座標は、座標(r,g,b)を起点にして、図12の矢印「1」、「2」、「3」、「4」、「5」および「6」に示す順に、隣接する座標に変更して設定されていくことになる。なお、この判定対象に係る座標の変更は、ここに示した順序に限定されず、それ以外の順序であってもよい。
図13は、本発明の実施例による画像処理方法を適応した場合における、判定対象に係る座標の移動を例示する図である。count(r,g,b)をd(r,g,b)で除算(割り算)して得られた商が、limitより大きいと判定された場合には、「RGB表色系の色空間上の座標(r,g,b)は、n番目の色の領域に属する」と決定されることになるが、上述のような再帰呼び出し(recursive call)構造を有するコンピュータプログラムを実行することにより、上記判定がなされるような色空間上における座標を順次見つけ出していき、代表色の領域に属する色の領域を画定することができる。
判定に係る座標(判定対象である色のRGBの各要素の明度に対応する色空間上の座標)についてステップS104で得られた商が、所定のしきい値よりも大きいとステップS105において判定される限り、当該判定に係る座標を変更して、当該判定に係る座標に対して色空間の各座標軸方向にさらに隣接する座標をさらなる判定に係る座標に設定して、再びステップS103から始まる処理が繰り返し実行されることになる。一方、判定に係る座標(判定対象である色のRGBの各要素の明度に対応する色空間上の座標)についてステップS104で得られた商が、所定のしきい値よりも小さいとステップS105において判定された場合は、ステップS108において、コンピュータは、判定に係る座標(判定対象である色のRGBの各要素の明度に対応する色空間上の座標)を変更する。すなわち、ステップS108において、コンピュータは、当該判定に係る座標(判定対象である色のRGBの各要素の明度に対応する色空間上の座標)に対して色空間の各座標軸方向にさらに隣接する座標のいずれかを、「さらなる判定に係る座標」に新たに設定する。図13は、あくまでも例示的なものであるが、判定対象に係る座標は、色空間上において、図中の矢印に付された番号の順に移動していくことを例示している。
図4〜11のフローチャートに示される画像処理方法によって生成された1番目〜n番目の色の領域は、2次元平面上における座標を表すビットマップデータの形式に変換される。生成されたビットマップデータは、コンピュータのディスプレイに表示するために用いられてもよく、あるいはその他のデータ処理にも用いられてもよい。図14は、本発明の実施例による画像処理方法の適用結果を例示する図である。ここで、「カラー画像のXY2次元平面上において座標(x,y)に位置するピクセルが、n番目の色の領域に含まれること」を、「p(x,y)=n」で表記す。また、「カラー画像のXY2次元平面上において座標(x,y)に位置するピクセルが、1番目〜n番目の色の領域のいずれの領域にも含まれないこと」を、「p(x,y)=0」で表す。既に説明したパラメータ表現とあわせれば、「p(x,y)=area(r(x,y),g(x,y),b(x,y)」と表現できる。
図2に例示したプリント基板のカラー画像に対して、本発明の実施例による画像処理方法を適用すると、図14に示すように色の領域が分割される。すなわち、その色を呈するピクセルの数が多い順に、1番目の色の領域(p(x,y)=1)、2番目の色の領域(p(x,y)=2)、3番目の色の領域(p(x,y)=3)、4番目の色の領域(p(x,y)=4)、いずれの色の領域にも含まれない領域(p(x,y)=0)、にそれぞれ分割される。これにより、カラー画像から、レジスト、配線パターンなど各要素ごとに画像が分離抽出できる。
このように本発明の実施例によれば、カラー画像に色のグラデーション変化が存在したり、色と色の境界部分に滲みがあった場合であっても、似たような色がまとまっている領域を見つけていくので、領域を的確に分割することができる。プリント基板像の撮影時における光源の位置、レンズやカメラの特性、プリント基板の状態などにより、入力されたカラー画像に色の滲みやぼけが発生しても、領域分割を的確に行うことができる。
上述した本実施例による画像処理装置は、コンピュータを用いて実現される。図15は、記録媒体に格納されたプログラムにより動作する本発明の実施例による画像処理装置の構成を示すブロック図である。
本発明による画像処理をコンピュータに実行させるコンピュータプログラムは、図15に示すように、記憶媒体(フレキシブルディスク、CD−ROM等の外部記憶媒体)110に格納されており、例えば、次に説明するような構成によるコンピュータにインストールされて画像処理装置として動作する。
CPU111は、画像処理装置全体を制御する。このCPU111に、バス112を介してROM113、RAM114、HD(ハードディスク装置)115、マウスやキーボード等の入力装置116、外部記憶媒体ドライブ装置117およびLCD、CRT、プラズマディスプレイ、有機EL等の表示装置118が接続されている。CPU111の制御プログラムはROM113に格納されている。
本発明による画像処理を実行するコンピュータプログラム(画像処理プログラム)は、記憶媒体110からHD115にインストール(記憶)される。また、RAM114には、画像処理をCPU111が実行する際の作業領域や、画像処理を実行するコンピュータプログラムの一部が記憶される領域が確保されている。また、HD115には、入力データ、最終データ、さらにOS(オペレーティングシステム)等が予め記憶される。
まず、コンピュータの電源を投入すると、CPU111がROM110から制御プログラムを読み出し、さらにHD115からOSを読み込み、OSを起動させる。これによりコンピュータは画像処理プログラムを記憶媒体110からインストール可能な状態となる。
次に、記憶媒体110を外部記憶媒体ドライブ装置117に装着し、入力装置116から制御コマンドをCPU111に入力し、記憶媒体110に格納された画像処理プログラムを読み取ってHD115等に記憶する。つまり画像処理プログラムがコンピュータにインストールされる。
その後は、画像処理プログラムを起動させると、コンピュータは画像処理装置として動作する。オペレータは、表示装置118に表示される対話形式による作業内容と手順に従って、入力装置116を操作することで、上述した画像処理を実行することができる。処理の結果得られた「分離抽出された色の領域に関するデータ」は、例えば、HD115に記憶しておいて後日利用できるようにしたり、あるいは、処理結果を表示装置118に視覚的に表示するのに用いてもよい。
なお、図15のコンピュータでは、記憶媒体110に記憶されたコンピュータプログラムをHD115にインストールするようにしたが、これに限らず、LAN等の情報伝送媒体を介して、コンピュータにインストールされてもよいし、コンピュータに内蔵のHD115に予めインストールされておいてもよい。
本発明は、カラー画像から特定の色を分離抽出する画像処理方法として利用することができる。例えば、プリント基板をディジタルカメラで撮像して得られたカラー画像のデータを用いて、プリント基板の欠陥の有無を検査する検査装置に適用することができる。
また、本発明は、プリント基板を撮影したカラー画像以外のカラー画像に対しても適用することができる。例えば、スチルカメラ、ビデオカメラ、スキャナ、TV電話、プリンタなど、カラー画像から特定の色を呈する画像を分離抽出するような技術に対しても適用することができる。
本発明によれば、入力されたカラー画像から特定の色を有する領域をコンピュータによる演算処理により正確に抽出することができる。特に本発明によれば、カラー画像に色のグラデーション変化が存在したり、色と色の境界部分に滲みがあった場合であっても、適度な範囲で領域を分割することができる。また、代表色を逐一指定する手間を省くことができる。また、代表色の誤った指定や指定し忘れに起因する領域の誤分割もない。
本発明の実施例による画像処理方法の動作フローを示すフローチャートである。 カラー画像からのRGBの各要素の明度の取得について説明する図である。 RGBの各要素の明度を各座標値とするRGB表色系の色空間を例示する図である。 本発明の実施例による画像処理方法の具体的処理を説明するフローチャート(その1)である。 本発明の実施例による画像処理方法の具体的処理を説明するフローチャート(その2)である。 本発明の実施例による画像処理方法の具体的処理を説明するフローチャート(その3)である。 本発明の実施例による画像処理方法の具体的処理を説明するフローチャート(その4)である。 本発明の実施例による画像処理方法の具体的処理を説明するフローチャート(その5)である。 本発明の実施例による画像処理方法の具体的処理を説明するフローチャート(その6)である。 本発明の実施例による画像処理方法の具体的処理を説明するフローチャート(その7)である。 本発明の実施例による画像処理方法の具体的処理を説明するフローチャート(その8)である。 図6〜11に示される処理が実行されることにより実行される、判定対象に係る座標の変更を説明する図である。 本発明の実施例による画像処理方法を適応した場合における、判定対象に係る座標の移動を例示する図である。 本発明の実施例による画像処理方法の適用結果を例示する図である。 記録媒体に格納されたプログラムにより動作する本発明の実施例による画像処理装置の構成を示すブロック図である。
符号の説明
110 記録媒体
111 CPU
112 バス
113 ROM
114 RAM
115 ハードディスク装置
116 入力装置
117 外部記憶媒体ドライブ装置
118 表示装置

Claims (20)

  1. 入力されたカラー画像から特定の色を有する領域をコンピュータ演算処理により抽出する画像処理方法であって、
    コンピュータにより、前記カラー画像における各ピクセルについて、RGBの各要素の明度を取得する明度取得ステップと、
    コンピュータにより、RGBの各要素の明度を各座標値とするRGB表色系の色空間上に、取得した前記明度ごとのピクセル数を示すヒストグラムを作成するヒストグラム作成ステップと、
    コンピュータにより、前記ヒストグラムにおいてある特定のピクセル数を示す色のRGBの各要素の明度に対応する前記色空間上の座標と、判定対象である色のRGBの各要素の明度に対応する前記色空間上の座標と、の間の距離を算出する距離算出ステップと、
    コンピュータにより、前記判定対象である色のRGBの各要素の明度を有するピクセル数を、前記距離を独立変数とする所定の単調増加関数における従属変数の値で除算する除算ステップと、
    コンピュータにより、前記除算ステップで得られた商と、所定のしきい値と、の大小関係を判定する判定ステップと、
    コンピュータにより、前記除算ステップで得られた商が前記所定のしきい値よりも大きいと前記判定ステップにおいて判定された場合、前記判定対象である色は、前記ヒストグラムにおいて前記特定のピクセル数を示す色のグループに属するものであると決定する決定ステップと、
    を備えることを特徴とする画像処理方法。
  2. 前記判定対象である色のRGBの各要素の明度に対応する前記色空間上の座標を、前記特定のピクセル数を示す色のRGBの各要素の明度に対応する前記色空間上の座標に対して前記色空間の各座標軸方向に隣接する座標のいずれかに設定して、前記距離算出ステップ、前記除算ステップ、前記判定ステップおよび前記決定ステップの一連の処理が実行される請求項1に記載の画像処理方法。
  3. 判定に係る前記隣接する座標について前記除算ステップで得られた商が、前記所定のしきい値よりも大きいと前記判定ステップにおいて判定される限り、当該判定に係る隣接する座標に対して前記色空間の各座標軸方向にさらに隣接する座標のいずれかをさらなる判定に係る座標に設定して、前記距離算出ステップ、前記除算ステップ、前記判定ステップおよび前記決定ステップの一連の処理が繰り返し実行される請求項2に記載の画像処理方法。
  4. 判定に係る前記隣接する座標について前記除算ステップで得られた商が、前記所定のしきい値よりも小さいと前記判定ステップにおいて判定された場合は、当該判定に係る隣接する座標とは別の前記隣接する座標のいずれかをさらなる判定に係る座標に設定して、前記距離算出ステップ、前記除算ステップ、前記判定ステップおよび前記決定ステップの一連の処理が実行される請求項2または3に記載の画像処理方法。
  5. 前記距離算出ステップ、前記除算ステップ、前記判定ステップおよび前記決定ステップの一連の処理は、前記さらなる判定に係る座標の全てについて、前記除算ステップで得られた商が前記所定のしきい値よりも小さいと前記判定ステップにおいて判定されるまで、実行される請求項4に記載の画像処理方法。
  6. 前記さらなる判定に係る座標の全てについて、前記除算ステップで得られた商が前記所定のしきい値よりも小さいと前記判定ステップにおいて判定された場合、前記特定のピクセル数を、前記ヒストグラムにおいて未だ特定のピクセル数を示す色のグループに属するものであるとは決定されていない色のピクセル数のうち最も多いピクセル数に設定し直して、前記距離算出ステップ、前記除算ステップ、前記判定ステップおよび前記決定ステップの一連の処理を実行する請求項5に記載の画像処理方法。
  7. 前記特定のピクセル数の初期設定値として、前記ヒストグラムにおいて最多のピクセル数を設定して、前記距離算出ステップ、前記除算ステップ、前記判定ステップおよび前記決定ステップの一連の処理を実行する請求項6に記載の画像処理方法。
  8. 前記ヒストグラムにおける前記特定のピクセル数は、前記カラー画像から抽出される前記特定の色のRGBの各要素の明度を有するピクセル数である請求項1に記載の画像処理方法。
  9. コンピュータにより、前記決定ステップにおいて属する色のグループが決定された前記判定対象である色を有するピクセルについての、2次元平面上における座標を表すビットマップデータを生成する生成ステップをさらに備える請求項1〜8のいずれか一項に記載の画像処理方法。
  10. 前記判定対象である色は、前記特定のピクセル数を示す色のRGBの各要素の明度に対応する前記色空間上の座標に隣接する座標に対応するRGBの各要素の明度を有する色である請求項1に記載の画像処理方法。
  11. 入力されたカラー画像から特定の色を有する領域を抽出する画像処理をコンピュータに実行させるためのコンピュータプログラムであって、
    前記カラー画像における各ピクセルについて、RGBの各要素の明度を取得する明度取得ステップと、
    RGBの各要素の明度を各座標値とするRGB表色系の色空間上に、取得した前記明度ごとのピクセル数を示すヒストグラムを作成するヒストグラム作成ステップと、
    前記ヒストグラムにおいてある特定のピクセル数を示す色のRGBの各要素の明度に対応する前記色空間上の座標と、判定対象である色のRGBの各要素の明度に対応する前記色空間上の座標と、の間の距離を算出する距離算出ステップと、
    前記判定対象である色のRGBの各要素の明度を有するピクセル数を、前記距離を独立変数とする所定の単調増加関数における従属変数の値で除算する除算ステップと、
    前記除算ステップで得られた商と、所定のしきい値と、の大小関係を判定する判定ステップと、
    前記除算ステップで得られた商が前記所定のしきい値よりも大きいと前記判定ステップにおいて判定された場合、前記判定対象である色は、前記ヒストグラムにおいて前記特定のピクセル数を示す色のグループに属するものであると決定する決定ステップと、
    を備えることを特徴とする画像処理をコンピュータに実行させるためのコンピュータプログラム。
  12. 前記判定対象である色のRGBの各要素の明度に対応する前記色空間上の座標を、前記特定のピクセル数を示す色のRGBの各要素の明度に対応する前記色空間上の座標に対して前記色空間の各座標軸方向に隣接する座標のいずれかに設定して、前記距離算出ステップ、前記除算ステップ、前記判定ステップおよび前記決定ステップの一連の処理が実行される請求項11に記載の画像処理をコンピュータに実行させるためのコンピュータプログラム。
  13. 判定に係る前記隣接する座標について前記除算ステップで得られた商が、前記所定のしきい値よりも大きいと前記判定ステップにおいて判定される限り、当該判定に係る隣接する座標に対して前記色空間の各座標軸方向にさらに隣接する座標のいずれかをさらなる判定に係る座標に設定して、前記距離算出ステップ、前記除算ステップ、前記判定ステップおよび前記決定ステップの一連の処理が繰り返し実行される請求項12に記載の画像処理をコンピュータに実行させるためのコンピュータプログラム。
  14. 判定に係る前記隣接する座標について前記除算ステップで得られた商が、前記所定のしきい値よりも小さいと前記判定ステップにおいて判定された場合は、当該判定に係る隣接する座標とは別の前記隣接する座標のいずれかをさらなる判定に係る座標に設定して、前記距離算出ステップ、前記除算ステップ、前記判定ステップおよび前記決定ステップの一連の処理が実行される請求項12または13に記載の画像処理をコンピュータに実行させるためのコンピュータプログラム。
  15. 前記距離算出ステップ、前記除算ステップ、前記判定ステップおよび前記決定ステップの一連の処理は、前記さらなる判定に係る座標の全てについて、前記除算ステップで得られた商が前記所定のしきい値よりも小さいと前記判定ステップにおいて判定されるまで、実行される請求項14に記載の画像処理をコンピュータに実行させるためのコンピュータプログラム。
  16. 前記さらなる判定に係る座標の全てについて、前記除算ステップで得られた商が前記所定のしきい値よりも小さいと前記判定ステップにおいて判定された場合、前記特定のピクセル数を、前記ヒストグラムにおいて未だ特定のピクセル数を示す色のグループに属するものであるとは決定されていない色のピクセル数のうち最も多いピクセル数に設定し直して、前記距離算出ステップ、前記除算ステップ、前記判定ステップおよび前記決定ステップの一連の処理を実行する請求項15に記載の画像処理をコンピュータに実行させるためのコンピュータプログラム。
  17. 前記特定のピクセル数の初期設定値として、前記ヒストグラムにおいて最多のピクセル数を設定して、前記距離算出ステップ、前記除算ステップ、前記判定ステップおよび前記決定ステップの一連の処理を実行する請求項16に記載の画像処理をコンピュータに実行させるためのコンピュータプログラム。
  18. 前記ヒストグラムにおける前記特定のピクセル数は、前記カラー画像から抽出される前記特定の色のRGBの各要素の明度を有するピクセル数である請求項11に記載の画像処理をコンピュータに実行させるためのコンピュータプログラム。
  19. 前記決定ステップにおいて属する色のグループが決定された前記判定対象である色を有するピクセルについての、2次元平面上における座標を表すビットマップデータを生成する生成ステップをさらに備える請求項11〜18のいずれか一項に記載の画像処理をコンピュータに実行させるためのコンピュータプログラム。
  20. 前記判定対象である色は、前記特定のピクセル数を示す色のRGBの各要素の明度に対応する前記色空間上の座標に隣接する座標に対応するRGBの各要素の明度を有する色である請求項11に記載の画像処理をコンピュータに実行させるためのコンピュータプログラム。
JP2008280183A 2008-10-30 2008-10-30 画像処理方法およびそのコンピュータプログラム Pending JP2010108285A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008280183A JP2010108285A (ja) 2008-10-30 2008-10-30 画像処理方法およびそのコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008280183A JP2010108285A (ja) 2008-10-30 2008-10-30 画像処理方法およびそのコンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2010108285A true JP2010108285A (ja) 2010-05-13

Family

ID=42297668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008280183A Pending JP2010108285A (ja) 2008-10-30 2008-10-30 画像処理方法およびそのコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP2010108285A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012149944A (ja) * 2011-01-18 2012-08-09 Mitsubishi Materials Corp 錆の判別方法
CN104504703A (zh) * 2014-12-20 2015-04-08 河南机电高等专科学校 一种基于片式元器件smt焊点彩色图像分割方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012149944A (ja) * 2011-01-18 2012-08-09 Mitsubishi Materials Corp 錆の判別方法
CN104504703A (zh) * 2014-12-20 2015-04-08 河南机电高等专科学校 一种基于片式元器件smt焊点彩色图像分割方法

Similar Documents

Publication Publication Date Title
JP4677323B2 (ja) 画像処理装置及び画像処理方法
US9846826B2 (en) Image processing to generate a tone curve for processing an image by associating a model parameter of the image with another model parameter of a reference image
JP2013197918A5 (ja)
JP2008015706A (ja) 画像処理装置
JP5811416B2 (ja) 画像処理装置、画像処理方法及びプログラム
US20200193635A1 (en) Image positioning system and image positioning method based on upsampling
WO2022124380A1 (en) Method, system, and non-transitory computer-readable storage medium storing set of computer-readable instructions
JP2019117558A (ja) カラー情報推定モデル生成装置、画像カラー化装置およびそれらのプログラム
JP2019220887A (ja) 画像処理装置、画像処理方法およびプログラム
JP2010108285A (ja) 画像処理方法およびそのコンピュータプログラム
US20170223319A1 (en) Projector and projection apparatus and image processing program product
JP2003058880A (ja) クロスフィルタ処理方法、クロスフィルタ処理装置、クロスフィルタ処理プログラム、及びこれを記録するコンピュータ読み取り可能な記録媒体
JP2010028429A (ja) 画像処理装置、画像処理方法およびプログラム
JP2014192859A (ja) 色補正方法、プログラム及び装置
WO2019239462A1 (ja) 学習装置、画像生成装置、学習方法、画像生成方法及びプログラム
JP2019205104A (ja) 情報処理装置、情報処理方法及びプログラム
CN112927321B (zh) 基于神经网络的图像智能设计方法、装置、设备及存储介质
JP2019205103A (ja) 画像処理装置、画像処理方法及びプログラム
US20210004631A1 (en) Illumination color prediction method, image processing method, apparatus and storage medium
JP5884605B2 (ja) 画像処理装置およびプログラム
JP2007300202A (ja) 画像処理装置、画像処理装置の制御方法およびプログラム
JP2008305081A (ja) 画像処理プログラム、および画像処理装置
RU2628172C1 (ru) Способ и система определения протяженных контуров на цифровых изображениях
JP4362408B2 (ja) 画像補正装置、画像補正プログラム、および画像補正方法
CN112053277A (zh) 一种图像换肤的方法、装置、设备及存储介质