(57)【特許請求の範囲】
【請求項１】
画像を取得する取得部と、
前記画像に含まれる画素のうち隣接する画素間で画素値が類似する画素同士をグルーピングして領域に分けるグルーピング部と、
グルーピングされた領域の輪郭を形成する輪郭画素ごとに当該輪郭画素が領域の輪郭上にある他の輪郭画素と連接する連接角度を算出する算出部と、
前記領域を形成する輪郭線を前記輪郭画素の連接角度の変化が所定の閾値以内である区間で分割することによって前記輪郭線から部分輪郭線を抽出する抽出部と、
前記グルーピング部が分けた領域から前記部分輪郭線の垂線同士の交点が最も多い領域を検出する検出部と
を有することを特徴とする画像処理装置。
【請求項２】
前記検出部は、
前記領域別に前記部分輪郭線の垂線同士の交点数を保持し、
前記部分輪郭線の組合せごとに、前記領域別に保持された交点数のうち、当該組合せに含まれる一方の部分輪郭線の両端の輪郭画素を結ぶ線分の垂線と、他方の部分輪郭線の両端の輪郭画素を結ぶ線分の垂線との交点が存在する領域の交点数を更新し、
前記グルーピング部が分けた領域から前記交点数が最も多い領域を検出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記検出部は、前記交点から前記部分輪郭線までの距離が前記交点から部分輪郭線の両端の輪郭画素を結ぶ線分までの距離よりも大きい場合に、当該交点が存在する領域の交点数を更新することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記抽出部は、
部分輪郭線の始点の候補となる輪郭画素の連接角度を保持し、
前記領域の輪郭線上にある輪郭画素を探索し、
探索された輪郭画素の連接角度と、前記部分輪郭線の始点の候補として保持された輪郭画素の連接角度との差分が所定の分割閾値を超えるか否かを判定し、
前記差分が前記分割閾値を超える場合に、前記部分輪郭線の始点の候補として保持された輪郭画素から当該分割閾値を超えた輪郭画素の直前に探索された輪郭画素までの区間を前記部分輪郭線として抽出し、
部分輪郭線の始点の候補として保持される輪郭画素の連接角度に、当該分割閾値を超えた輪郭画素の連接角度を上書きすることを特徴とする請求項１、２または３に記載の画像処理装置。
【請求項５】
前記算出部は、前記輪郭画素ごとに当該輪郭画素の周辺画素との輝度勾配を算出し、算出した輝度勾配が表す方向と直角な方向を前記輪郭画素の連接方向として算出することを特徴とする請求項１〜４のいずれか一つに記載の画像処理装置。
【請求項６】
コンピュータに、
画像を取得し、
前記画像に含まれる画素のうち隣接する画素間で画素値が類似する画素同士をグルーピングして領域に分け、
グルーピングされた領域の輪郭を形成する輪郭画素ごとに当該輪郭画素が領域の輪郭上にある他の輪郭画素と連接する連接角度を算出し、
前記領域を形成する輪郭線を前記輪郭画素の連接角度の変化が所定の閾値以内である区間で分割することによって前記輪郭線から部分輪郭線を抽出し、
グルーピングして分けた領域から前記部分輪郭線の垂線同士の交点が最も多い領域を検出する
処理を実行させることを特徴とする画像処理プログラム。
【請求項７】
コンピュータが、
画像を取得し、
前記画像に含まれる画素のうち隣接する画素間で画素値が類似する画素同士をグルーピングして領域に分け、
グルーピングされた領域の輪郭を形成する輪郭画素ごとに当該輪郭画素が領域の輪郭上にある他の輪郭画素と連接する連接角度を算出し、
前記領域を形成する輪郭線を前記輪郭画素の連接角度の変化が所定の閾値以内である区間で分割することによって前記輪郭線から部分輪郭線を抽出し、
グルーピングして分けた領域から前記部分輪郭線の垂線同士の交点が最も多い領域を検出する
処理を実行することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理プログラム及び画像処理方法に関する。
【背景技術】
【０００２】
肌の診断やデザイン等を目的として、色を計測する技術が知られている。かかる色の計測を行う場合には、光電色度計や分光光度計などの専用の測色計を用いることもできるが、専用の測色計は高価な機器であるので、エンドユーザが手軽に使用するのは困難である。
【０００３】
このため、携帯端末に搭載されたカメラやデジタルカメラが専用の測色計の代わりに使用される場合がある。このように、カメラを用いて撮影を行う場合には、色の計測対象とする対象物の計測部位が日光や照明等の光源による影響を受けるので、計測部位が持つ色と撮影された画像に写る計測部位の色との間に明暗差が生じる。
【０００４】
このことから、中央に計測部位である肌を露出させるための貫通孔を肌の計測領域とし、その周りを複数の色の標示領域が取り囲むように配列されたカラーパッチを用いて、カメラによって撮影された画像に写る計測部位の色を補正する手法が考えられる。かかる手法では、カラーパッチが計測部位の近傍に貼付された状態で撮影を行うことによって計測部位と同様に光源の影響を受けたカラーパッチが画像に写り込むことを利用する。すなわち、上記の手法では、予め保存しておいたカラーパッチの色と画像に写ったカラーパッチの色との変化量をもとに、画像に写る計測部位の色を計測部位が本来有する色へ補正するための補正量を算出する。
【０００５】
上記の補正において変化量を得る前段階には、画像に写ったカラーパッチの標示領域の並び順を取り出すために、画像内に写るカラーパッチの貫通孔、すなわち計測領域を先だって検出するのが合理的である。
【０００６】
このとき、画像に含まれるカラーパッチ以外の背景となる領域のエッジが少ない場合には、エッジが集まっている部分を包含する範囲をカラーパッチが写った範囲とみなし、その範囲の中心にある領域を計測領域として検出することも考えられる。ところが、カラーパッチ以外の背景となる領域にエッジが少ないとは限らず、また、カラーパッチの周りには、ロゴや装飾などの模様などがデザインされている場合もある。このような場合には、模様がデザインされている箇所にもエッジが集中するので、エッジの集まり具合から計測領域を検出するのは困難である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−１８６９１６号公報
【特許文献２】特開平０７−１３９９１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、画像から特定の形状を持つ領域を抽出するのに有用なハフ変換を上記の計測領域の検出に用いることも考えられる。
【０００９】
しかしながら、上記の計測領域の検出にハフ変換を用いる場合には、演算処理量が増大するという問題がある。例えば、画像から楕円状の計測領域を検出する場合には、画像上の２次元座標と、楕円の長辺および短辺との４つのパラメータを用いて変換することになる。このように、変換で扱うパラメータ数が多くなるのに伴って演算処理量も増大してしまう。特に、携帯端末の場合には、携帯端末のハードウェア性能の限界が据え置き機に比べて低いことも相まって携帯端末にとって処理負荷が過大となる結果、既存機能の動作に支障をきたすおそれもある。
【００１０】
開示の技術は、上記に鑑みてなされたものであって、計測領域の検出時に実行される演算処理量を低減できる画像処理装置、画像処理プログラム及び画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示する画像処理装置は、画像を取得する取得部を有する。さらに、前記画像処理装置は、前記画像に含まれる画素のうち隣接する画素間で画素値が類似する画素同士をグルーピングして分けるグルーピング部を有する。さらに、前記画像処理装置は、グルーピングされた領域の輪郭を形成する輪郭画素ごとに当該輪郭画素が領域の輪郭上にある他の輪郭画素と連接する連接角度を算出する算出部を有する。さらに、前記画像処理装置は、前記領域を形成する輪郭線を前記輪郭画素の連接角度の変化が所定の閾値以内である区間で分割することによって前記輪郭線から部分輪郭線を抽出する抽出部を有する。さらに、前記画像処理装置は、グルーピングして分けた領域から前記部分輪郭線の垂線同士の交点が最も多い領域を検出する検出部を有する。
【発明の効果】
【００１２】
本願の開示する画像処理装置の一つの態様によれば、計測領域の検出時に実行される演算処理量を低減できるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係るカラーパッチの上面図である。
【図２】図２は、実施例１に係る画像処理装置の機能的構成を示すブロック図である。
【図３】図３は、カラーパッチが写る画像の一例を示す図である。
【図４】図４は、グルーピング結果の一例を示す図である。
【図５】図５は、Ｘ方向フィルタの一例を示す図である。
【図６】図６は、Ｙ方向フィルタの一例を示す図である。
【図７】図７は、輝度勾配の角度を示す図である。
【図８】図８は、連接角度データの構成例を示す図である。
【図９】図９は、部分輪郭線の抽出例を示す図である。
【図１０】図１０は、部分輪郭線の抽出結果のイメージ例を示す図である。
【図１１】図１１は、部分輪郭線データの構成例を示す図である。
【図１２】図１２は、部分輪郭線の垂線同士の交点の一例を示す図である。
【図１３】図１３は、交点の投票結果のイメージ例を示す図である。
【図１４】図１４は、交点の投票結果の一例を示す図である。
【図１５】図１５は、マッピングの一例を示す図である。
【図１６】図１６は、マッピング出力の一例を示す図である。
【図１７】図１７は、実施例１に係る画像処理装置の全体処理の手順を示すフローチャートである。
【図１８】図１８は、実施例１に係る連接角度の算出処理の手順を示すフローチャートである。
【図１９】図１９は、実施例１に係る部分輪郭線の抽出処理の手順を示すフローチャートである。
【図２０】図２０は、実施例１に係る計測領域の検出処理の手順を示すフローチャート（１）である。
【図２１】図２１は、実施例１に係る計測領域の検出処理の手順を示すフローチャート（２）である。
【図２２】図２２は、応用例を説明するための図である。
【図２３】図２３は、実施例１及び実施例２に係る画像処理プログラムを実行するコンピュータの一例について説明するための図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する画像処理装置、画像処理プログラム及び画像処理方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１５】
［カラーパッチ１の構造］
まず、本実施例に係るカラーパッチの構造について説明する。図１は、実施例１に係るカラーパッチ１の上面図である。図１の例では、色の標示領域が形成された表示面を上とし、色を計測する対象物に接する表示面の裏面を下としてカラーパッチ１の表示面を上から見た場合の上面図を示す。なお、以下では、肌の診断サービスを提供するために、人の肌の色をカラーパッチ１を用いて計測する場合を想定する。
【００１６】
図１に示すように、カラーパッチ１は、色を計測する対象者に貼付または載置された上で計測部位とともに撮像されることによって、撮影が行われた画像に計測部位と同様に光源の影響を受けたカラーパッチ１を写り込ませるためのものである。
【００１７】
ここで、本実施例に係るカラーパッチ１は、カラーパッチ１の表示面及び裏面を貫通する貫通孔３が形成される。このように、カラーパッチ１の中央部に貫通孔３を形成するのは、色を計測する対象者にカラーパッチ１が貼付された場合に、貫通孔３から計測部位である対象者の肌を計測領域として露出させるためである。そして、貫通孔３から対象者の肌が露出すると、カラーパッチ１の表示面に形成された標示領域Ｃ１〜Ｃ１６は、対象者の肌を取り囲むように配置されることになる。
【００１８】
このため、本実施例に係るカラーパッチ１では、互いに貫通孔３を中心に円環状に配置された各々の標示領域を、漏れなく計測部位に近接させることが可能になる。それゆえ、本実施例に係るカラーパッチ１は、色の標示をマトリクス状に二次元配列された従来のカラーパッチよりも、計測部位に近接する部分を大きくすることができる。
【００１９】
さらに、本実施例に係るカラーパッチ１では、同一色の標示領域Ｃ１、Ｃ６、Ｃ９及びＣ１４が貫通孔３を挟んで表示面の両側に夫々形成される。さらに、同一の標示領域Ｃ２、Ｃ５、Ｃ１０及びＣ１３についても貫通孔３を挟んで表示面の両側に夫々形成される。また、同一の標示領域Ｃ３、Ｃ８、Ｃ１１及びＣ１６についても貫通孔３を挟んで表示面の両側に夫々形成される。さらに、同一の標示領域Ｃ４、Ｃ７、Ｃ１２及びＣ１５についても貫通孔３を挟んで表示面の両側に夫々形成される。
【００２０】
図１に示す標示領域Ｃ１、Ｃ６、Ｃ９及びＣ１４と、標示領域Ｃ２、Ｃ５、Ｃ１０及びＣ１３と、標示領域Ｃ３、Ｃ８、Ｃ１１及びＣ１６と、標示領域Ｃ４、Ｃ７、Ｃ１２及びＣ１５とは、各々が同一色の標示がなされた表示面上の領域である。このうち、標示領域Ｃ１と標示領域Ｃ９は、互いに向かい合わせのペアで配置される。さらに、標示領域Ｃ６と標示領域Ｃ１４も、互いに向かい合わせのペアで配置される。また、標示領域Ｃ２、Ｃ５、Ｃ１０及びＣ１３、標示領域Ｃ３、Ｃ８、Ｃ１１及びＣ１６及び標示領域Ｃ４、Ｃ７、Ｃ１２及びＣ１５についても、標示領域Ｃ１、Ｃ６、Ｃ９及びＣ１４と比べて、色の種類が異なるものの、互いの位置関係は同様である。
【００２１】
このように、同一色の標示領域を互いに向かわせの状態で配置するのは、カラーパッチ１の標示領域が本来有する色と、計測部位とともに画像に写るカラーパッチ１の標示領域の色との変化量を用いて画像に写る対象者の肌の色を後述の画像処理装置１０に補正させる場合に正確な変化量を算出させるためである。
【００２２】
すなわち、一箇所の標示領域における変化量を観測しただけでは、補正によって対象者の肌の色を再現するには不十分な場合がある。なぜなら、対象者の肌が光源によって受ける影響は、必ずしも計測領域全体にわたって一様ではないからである。このことから、本実施例に係るカラーパッチ１では、一様でない変化を変化量へ反映させるために、計測領域を象る輪郭の両端に近接するペアの位置もしくはそれに準ずるペアの位置に同一色の標示領域をペアで配置することとした。これによって、同一色の標示領域のうちペアとされた標示領域は、互いに計測領域を象る輪郭の両端に近接する位置もしくはそれに準ずる位置において光源による影響を受けることとなる。それゆえ、同一色の標示領域のうちペアとされた標示領域に挟み込まれた部分の色の変化量を正確に算出させることができる。さらに、本実施例に係るカラーパッチ１では、４種類の色、加えて、同一色につき２組にわたるペアの標示領域を画像に写り込ませることができる。よって、計測領域全体にわたって光源による影響が反映された変化量を後述の画像処理装置１０に算出させることができる。
【００２３】
さらに、同一色の標示領域をペアにして配置する場合には、貫通孔３の中心を基準に点対称に配置されるのが好ましい。例えば、図１に示すように、標示領域Ｃ１と標示領域Ｃ９のペア、さらには、標示領域Ｃ６と標示領域Ｃ１４のペアのごとく、互いに同じ大きさ、かつ同じ形状の標示領域を正対して配置する。さらに、標示領域Ｃ２、Ｃ５、Ｃ１０及びＣ１３と、標示領域Ｃ３、Ｃ８、Ｃ１１及びＣ１６と、標示領域Ｃ４、Ｃ７、Ｃ１２及びＣ１５とについても、Ｃ１、Ｃ６、Ｃ９及びＣ１４と同様に、２組のペアが点対称に配置される。これによって、計測領域に近接する標示領域の変化量を計測領域の対角線上で算出させるとともに、同じ大きさ及び同じ形状の標示領域が光源によって受けた影響を等分に反映した変化量を算出させることが可能となる。
【００２４】
このように、本実施例に係るカラーパッチ１では、互いに貫通孔３を中心に円環状に配置された各々の標示領域を、漏れなく計測部位に近接させることが可能になる。さらに、本実施例に係るカラーパッチ１が計測部位とともに撮影された場合には、当該撮影された画像から同一色の標示領域のうちペアとされた標示領域に挟み込まれた部分の色の変化量を正確に算出させることができる。それゆえ、カラーパッチ１に配置された標示領域の色の変化量を用いて画像に写った計測部位の色を補正させる場合に、計測部位が本来有する色もしくはそれに近い色を再現する確率を高めることができる。したがって、本実施例に係るカラーパッチ１によれば、色の計測精度を向上させることができる。
【００２５】
また、本実施例に係るカラーパッチ１には、白色の標示領域Ｗ１〜Ｗ４が所定の間隔、例えば９０度間隔で配置される。このため、計測領域に近接する４つの白色の標示領域Ｗ１〜Ｗ４が画像に写った際の画素値を用いてホワイトバランスを補正させることができる。
【００２６】
さらに、本実施例に係るカラーパッチ１は、表示面の外周および表示面の内周を形成する貫通孔３の形状を円形に形成することによってカラーパッチ１の外形を円環状に形成する。これによって、後述のカメラ１１によって計測部位とともに撮影される計測領域を円形にするとともに、カラーパッチ１の外形を円環状にすることができる。このため、カラーパッチ１の表示面が正面から撮影されずに正面以外の多角的な向きから撮影されたとしても、撮影された画像には、対象者の肌における計測領域やカラーパッチ１の表示面の変形を楕円形に抑えることができる。よって、撮影された画像から計測領域や表示面を検出させやすくできる。また、本実施例に係るカラーパッチ１では、カラーパッチ１の外周または内周を円形または楕円形に形成するので、カラーパッチ１と計測部位を撮影する時にカメラのファインダ画面にガイドを表示する場合に、カラーパッチ１がカメラのレンズに収まる向きに依らず、ガイドの向きを定常的に表示させることができるので、デザイン性とユーザビリティを向上させることもできる。
【００２７】
加えて、本実施例に係るカラーパッチ１では、表示面を外周側の円環と内周側の円環の二層に分けて、標示領域Ｃ１、Ｃ６、Ｃ９及びＣ１４と、標示領域Ｃ２、Ｃ５、Ｃ１０及びＣ１３と、標示領域Ｃ３、Ｃ８、Ｃ１１及びＣ１６と、標示領域Ｃ４、Ｃ７、Ｃ１２及びＣ１５とを配置する。このため、外周側の円環と内周側の円環に分けずに標示領域を配置する場合に比べて、より多くの標示領域を効率的に配置することができる。
【００２８】
なお、図１に示した標示領域Ｃ１、Ｃ６、Ｃ９及びＣ１４と、標示領域Ｃ２、Ｃ５、Ｃ１０及びＣ１３と、標示領域Ｃ３、Ｃ８、Ｃ１１及びＣ１６と、標示領域Ｃ４、Ｃ７、Ｃ１２及びＣ１５とに標示させる色には、任意の色を採用することができる。好ましくは、肌色に類する色を採用するのがよい。例えば、４色の標示領域を配置する場合には、ＲＧＢ（Red-Green-Blue  color  model）空間上で一般に人の肌色が分布すると想定される領域の外縁を囲む位置に分布する色、例えば肌色よりも赤みがかった色や黄みがかった色などを採用することができる。なお、カラーパッチ１の表示面上で表示される標示領域の色は、印刷によって着色されたものあってもよいし、その他の方法によって着色されたものであってもよい。
【００２９】
また、図１の例では、カラーパッチ１が色の計測に関係のある標示領域だけを有する場合を例示したが、カラーパッチ１の表示面またはカラーパッチ１の外周の外側にロゴ、装飾やコードなどが図案化されることとしてもかまわない。
【００３０】
なお、カラーパッチ１の貫通孔３の形状を円や楕円に代えて、多角形や矩形などの他の形状としても良い。
【００３１】
［画像処理装置の構成］
続いて、本実施例に係る画像処理装置の機能的構成について説明する。図２は、実施例１に係る画像処理装置の機能的構成を示すブロック図である。図２に示す画像処理装置１０は、カメラ１１等によって撮影された画像の中からカラーパッチ１の貫通孔３によって形成された計測領域を検出する画像処理を実行するものである。
【００３２】
かかる画像処理装置１０の一態様としては、デジタルカメラが接続されたパーソナルコンピュータやカメラ機能を搭載するスマートフォン等の携帯端末に上記の画像処理サービスを提供する画像処理プログラムをインストールさせることにより実装できる。他の一態様としては、上記の画像処理プログラムを実行するＷｅｂサーバとして実装することとしてもよいし、また、画像処理サービスをアウトソーシングにより提供するクラウドとして実装することもできる。
【００３３】
図２に示すように、画像処理装置１０は、カメラ１１と、記憶部１３と、制御部１５とを有する。なお、画像処理装置１０は、図２に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイス、音声出力デバイスや外部の装置と通信を行うための通信インタフェースなどの機能部を有することとしてもかまわない。
【００３４】
カメラ１１は、ＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）などを用いた撮像装置である。かかるカメラ１１の実装例としては、デジタルカメラを接続することとしてもよいし、携帯端末のように、カメラが予め搭載されている場合にはそのカメラを使用することができる。なお、ここでは、画像処理装置１０がカメラ１１を有する場合を例示したが、ネットワーク経由または記憶デバイス経由で画像を取得できる場合には、必ずしもカメラ１１を有する必要はない。
【００３５】
記憶部１３は、制御部１５で実行されるＯＳ（Operating  System）や画像処理プログラムなどの各種プログラムを記憶する記憶デバイスである。記憶部１３の一態様としては、フラッシュメモリなどの半導体メモリ素子、ハードディスク、光ディスクなどの記憶装置が挙げられる。また、記憶部１３は、上記の種類の記憶装置に限定されるものではなく、ＲＡＭ（Random  Access  Memory)、ＲＯＭ（Read  Only  Memory)であってもよい。記憶部１３は、制御部１５で実行されるプログラムに用いられるデータの一例として、後述する連接角度データ１３ａ、部分輪郭線データ１３ｂや投票データ１３ｃなどを記憶する。
【００３６】
制御部１５は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部１５は、図２に示すように、取得部１５ａと、グルーピング部１５ｂと、算出部１５ｃと、抽出部１５ｄと、検出部１５ｅと、対応付け部１５ｆと、出力部１５ｇとを有する。
【００３７】
取得部１５ａは、画像を取得する処理部である。一態様としては、取得部１５ａは、カメラ１１によって撮影される画像を取得する。他の一様としては、取得部１５ａは、インターネットやＬＡＮ（Local  Area  Network）などのネットワークを介して画像を取得することもできる。更なる一態様としては、取得部１５ａは、メモリやハードディスクのみならず、メモリカードやＵＳＢ（Universal  Serial  Bus）メモリなどの補助記憶装置から画像を取得することもできる。
【００３８】
グルーピング部１５ｂは、画像に含まれる画素のうち隣接する画素間で画素値が類似する画素同士をグルーピングする処理部である。一態様としては、グルーピング部１５ｂは、取得部１５ａによって取得された画像に含まれる画素のうち輝度が所定の閾値、例えば１００以上である画素を対象に、隣接する画素間でＲ成分、Ｇ成分及びＢ成分が類似する画素同士をグルーピングする。このように、閾値以上の画素に絞ってグルーピングするのは、カラーパッチ１の標示領域および計測領域に露出すると想定される肌に対応する画素以外の画素をグルーピングの対象から除外することによって処理の精度および効率を向上させるためである。その後、グルーピング部１５ｂは、グルーピングの結果として得られた領域に当該領域を識別する領域番号を付与する。
【００３９】
ここで、図３及び図４を用いて、グルーピングの具体例について説明する。図３は、カラーパッチ１が写る画像の一例を示す図である。図４は、グルーピング結果の一例を示す図である。図３に示す画像にグルーピングが実行された場合には、図４に示す領域番号１〜２３の２３個の領域が抽出される。図３に示すように、対象者の肌にカラーパッチ１が貼付された上で画像が撮像される場合には、図４に示すように、色の計測に有用な領域と色の計測には無関係な領域とが混在した状態でグルーピング結果が得られる。図４の例で言えば、貫通孔３から露出する肌の計測領域やカラーパッチ１の標示領域などの色の計測に有用な領域が領域番号２〜２３（領域番号１２を除く）として抽出される。これとともに、カラーパッチ１とは無関係な背景等の領域が領域番号１や領域番号１２として抽出される。
【００４０】
算出部１５ｃは、領域の輪郭を形成する画素ごとに当該画素が領域の輪郭上にある他の画素と連接する連接角度を算出する処理部である。以下では、領域の輪郭を形成する線のことを「輪郭線」と記載するとともに、領域の輪郭を形成する画素、言い換えれば輪郭線を形成する画素のことを「輪郭点」と記載し、当該輪郭点に採番される番号のことを「輪郭点番号」と記載する場合がある。
【００４１】
一態様としては、算出部１５ｃは、グルーピング部１５ｂによってグルーピングされた領域に含まれる各輪郭点に輪郭点番号を採番する。このとき、算出部１５ｃは、任意の輪郭点を起点とし、起点から各輪郭点が連接する順に輪郭点番号を採番できる。例えば、画像を含む平面において画像の幅方向をＸ軸とし、画像の高さ方向をＹ軸としたとき、輪郭点のうちＸまたはＹの最小値を持つ輪郭点を起点とすることもできるし、任意の点、例えば原点から最短距離にある輪郭点を起点として輪郭点番号を採番できる。その上で、算出部１５ｃは、輪郭点を１つ選択し、選択した輪郭点および輪郭点を中心とする周辺画素にＸ方向フィルタ及びＹ方向フィルタを適用する。
【００４２】
図５は、Ｘ方向フィルタの一例を示す図である。図６は、Ｙ方向フィルタの一例を示す図である。図５に示すように、Ｘ方向フィルタは、３×３の要素が配列されたフィルタであり、中央の要素を含む列にはゼロ、左側の列には負の値、右側の列には正の値がフィルタ係数として設定されている。また、図６に示すように、Ｙ方向フィルタは、３×３の要素が配列されたフィルタであり、中央の要素を含む行にはゼロ、上側の行には負の値、下側の行には正の値がフィルタ係数として設定されている。なお、図５及び図６の例では、３×３の要素が配列されたフィルタを例示したが、任意の数、例えば９×９や１６×１６などの要素が配列されたフィルタを用いることができる。
【００４３】
図５に示すＸ方向フィルタを適用する場合には、注目画素である輪郭点の輝度値にＸ方向フィルタのうち中央の要素のフィルタ係数「0」が掛け算される。これとともに、輪郭点の周辺画素の輝度値にＸ方向フィルタに含まれる中央の要素以外の他の要素のフィルタ係数が掛け算される。例えば、輪郭点の上、右上、右、右下、下、左下、左、左上の各画素の輝度値に、Ｘ方向フィルタの一行二列目、一行三列目、二行三列目、三行三列目、三行二列目、三行一列目、二行一列目、一行一列目のフィルタ係数「0」、「1」、「2」、「1」、「0」、「-1」、「-2」、「-1」がそれぞれ掛け算される。その後、算出部１５ｃは、輪郭点およびその周辺画素にフィルタ係数が掛け算された各々の値の和を計算することによって注目画素である輪郭点と周辺画素との間における輝度勾配のＸ成分を算出する。
【００４４】
また、図６に示すＹ方向フィルタを適用する場合には、注目画素である輪郭点の輝度値にＹ方向フィルタのうち中央の要素のフィルタ係数「0」が掛け算される。これとともに、輪郭点の周辺画素の輝度値にＹ方向フィルタに含まれる中央の要素以外の他の要素のフィルタ係数が掛け算される。例えば、輪郭点の上、右上、右、右下、下、左下、左、左上の各画素の輝度値に、Ｙ方向フィルタの一行二列目、一行三列目、二行三列目、三行三列目、三行二列目、三行一列目、二行一列目、一行一列目のフィルタ係数「-2」、「-1」、「0」、「1」、「2」、「1」、「0」、「-1」がそれぞれ掛け算される。その後、算出部１５ｃは、輪郭点およびその周辺画素にフィルタ係数が掛け算された各々の値の和を計算することによって注目画素である輪郭点と周辺画素との間における輝度勾配のＹ成分を算出する。
【００４５】
これら輝度勾配のＸ成分及びＹ成分の算出後、算出部１５ｃは、輝度勾配のＸ成分及びＹ成分を用いて、輪郭点の連接角度を算出する。図７は、輝度勾配の角度を示す図である。例えば、図７に示すように、算出部１５ｃは、逆正接の関数「atan(Ｘ成分/Ｙ成分)*180/3.14」に輝度勾配のＸ成分及びＹ成分の値を代入する計算、いわゆる逆正接を取ることによって輝度勾配の角度を算出する。ここでは、角度が画像の上方向を０度とし、そこから時計回りを正として表される場合を想定して以下の説明を行う。
【００４６】
かかる輝度勾配の角度の直角方向が輪郭線の連接方向であることから、輝度勾配のＸ成分が正の値である場合には輝度勾配の角度に９０度を加算する一方で、輝度勾配のＸ成分が負の値である場合には輝度勾配の角度に２７０度を加算する。これによって、輪郭点の連接角度が算出される。このとき、輝度勾配のＸ成分がゼロである場合には、輝度勾配の角度が発散する。よって、この場合には、逆正接を取らずに、輝度勾配のＹ成分がゼロよりも大きい場合には輪郭点の連接角度を１８０度とする一方で、輝度勾配のＹ成分がゼロ以下である場合には輪郭点の連接角度を０度とする。
【００４７】
なお、ここでは、輝度勾配の角度を輪郭点の連接角度へ換算する場合を例示したが、必ずしも換算を行う必要はなく、後段の処理において角度の変化として差が用いられるので、輝度勾配の角度を輪郭点の連接角度として用いることもできる。また、ここでは、逆正接を取る際に連接角度の単位を変換する例を説明したが、必ずしもラジアンからディグリーへ変換する必要はない。
【００４８】
その後、算出部１５ｃは、上述のようにして各領域に含まれる輪郭点ごとに連接角度を算出した上で各領域に含まれる輪郭点と連接角度とが対応付けられた連接角度データ１３ａを記憶部１３へ登録する。図８は、連接角度データ１３ａの構成例を示す図である。図８に示す連接角度データ１３ａの例では、領域番号ごとに当該領域番号を持つ領域に含まれる輪郭点の輪郭点番号が対応付けられている。さらに、連接角度データ１３ａは、輪郭点番号ごとに当該輪郭点番号を持つ輪郭点が画像上で位置する座標（Ｘ，Ｙ）および連接角度が対応付けられている。例えば、領域番号１の例で言えば、輪郭点番号１から輪郭点番号Ｎまでの座標および連接角度が領域番号１に対応付けられている。
【００４９】
なお、上記の図８の例では、領域番号、輪郭点番号、座標および連接角度が対応付けられたデータを採用する場合を例示したが、連接角度データのスキームはこれに限定されない。例えば、開示の装置は、領域番号と輪郭点番号の対応付け、輪郭点番号と座標の対応付け、さらには、輪郭点番号と連接角度の対応付けを別のデータとして管理することもできる。
【００５０】
図２の説明に戻り、抽出部１５ｄは、領域を形成する輪郭線が分割された部分輪郭線を抽出する処理部である。一態様としては、抽出部１５ｄは、連接角度の変化が所定の閾値を超える輪郭点で輪郭線を分割する。換言すれば、抽出部１５ｄは、領域を形成する輪郭線を連接角度が大きく変化せずに輪郭点が連接する区間で分離する。
【００５１】
これを説明すると、抽出部１５ｄは、記憶部１３に記憶された連接角度データ１３ａを参照する。そして、抽出部１５ｄは、連接角度データ１３ａに含まれる領域番号を１つ選択する。続いて、抽出部１５ｄは、領域番号に対応付けられた輪郭点番号のうち１つを選択し、選択した輪郭点番号および連接角度を図示しない内部メモリに登録する。これによって、部分輪郭線の始点の候補となる輪郭点の連接角度が以降の処理で探索が実行される輪郭点の連接角度と比較するために一時記憶されることになる。
【００５２】
その上で、抽出部１５ｄは、領域の輪郭線上にある輪郭点番号を探索し、当該輪郭点番号を持つ輪郭点の連接角度と、内部メモリに部分輪郭線の始点の候補として一時記憶された輪郭点の連接角度との差分が所定の分割閾値を超えるか否かを判定する。ここで、上記の分割閾値には、カラーパッチ１の標示領域の輪郭のうち貫通孔３の同心円の円弧と貫通孔３へ向かう方向の線分との接続部分で判定の分岐が可能な程度の値を設定するのが好ましい。なお、カラーパッチ１の外周や内周の形状が楕円や多角形である場合には、その形状に応じて分割閾値を適宜変更することができる。
【００５３】
このとき、連接角度の差分が分割閾値を超える場合には、領域の輪郭を形成する輪郭線のうち始点の候補となる輪郭点から探索中の輪郭点までの区間で輪郭線の連接方向が大きく変化したと判別することができる。この場合には、抽出部１５ｄは、探索中の輪郭点よりも以前に探索した輪郭点、例えば直前の輪郭点の分割フラグを有効化するとともに、当該探索中の輪郭点を部分輪郭線の始点の候補として輪郭点番号および連接角度を内部メモリに上書き登録する。例えば、抽出部１５ｄは、内部メモリ上で輪郭線を分割する分割点とする分割フラグを「0」に初期化した上で領域に含まれる輪郭点ごとに配列しておき、分割閾値を超えた輪郭点の分割フラグを「1」へ更新する。これによって、領域の輪郭線を分割される結果、部分輪郭線を抽出することができる。
【００５４】
一方、連接角度の差分が分割閾値以下である場合には、領域の輪郭を形成する輪郭線のうち始点の候補となる輪郭点から探索中の輪郭点までの区間で輪郭線の連接方向が大きくは変化していないと判別することができる。この場合には、抽出部１５ｄは、未探索の輪郭点のうち今回に探索を行った輪郭点と連接する輪郭点の輪郭点番号を探索の対象とし、未探索の輪郭点がなくなるまで、上記の分割判定を繰り返し実行する。そして、抽出部１５ｄは、未探索の輪郭点がなくなると、上記の分割判定を行っていない領域を探索の対象とし、未探索の領域がなくなるまで、上記の分割判定を繰り返し実行する。
【００５５】
その後、抽出部１５ｄは、全ての領域について上記の分割判定が終了すると、分割フラグが有効化された輪郭点とその次に探索された輪郭点との間で輪郭線を分割する。すなわち、抽出部１５ｄは、領域の輪郭線を形成する全輪郭点の輪郭点番号の集合のうち、部分輪郭線の始点の候補となる輪郭点番号から分割フラグが有効化された輪郭点番号までの部分集合を部分輪郭線の輪郭点番号の集合として分離する。その上で、抽出部１５ｄは、部分輪郭線を形成する輪郭点の輪郭点番号、座標および連接角度の集合を部分輪郭線データ１３ｂとして記憶部１３へ登録する。
【００５６】
図９は、部分輪郭線の抽出例を示す図である。図９の例では、輪郭点Ｓを始点とし、輪郭点Ｅを終点として領域の輪郭を形成する輪郭線２００を探索する場合を想定する。図９に示すように、輪郭点Ｓから探索が開始されると、探索が輪郭点Ａに至るまでは貫通孔３の同心円の円弧が探索されることになる。よって、輪郭点Ｓと探索中の輪郭点との間における連接角度の差は微差に留まる。このため、探索が輪郭点Ａに至るまでは、上記の分割判定において分割閾値を超えることはなく、分割フラグは有効化されない。その後、探索が輪郭点Ａに至ると、貫通孔３の同心円の円弧の探索が終了して貫通孔３へ向かう方向の線分の探索が開始される段階に至る。すると、輪郭点Ｓと輪郭点Ａとの間における連接角度の差が直角に至るほどまで逸脱する。このため、輪郭点Ａを探索した段階で上記の分割判定において分割閾値を超え、輪郭点Ａの直前に探索された輪郭点の分割フラグが有効化されるとともに、輪郭点Ａが新たな部分輪郭線の始点の候補とされる。かかる分割フラグよって、輪郭線２００が部分輪郭線２１０と未探索の輪郭線２２０とに分割されることになる。
【００５７】
その後、探索が輪郭点Ｂに至るまでは、貫通孔３へ向かう方向の線分が探索されることになる。よって、輪郭点Ａと探索中の輪郭点との間における連接角度の差は微差に留まる。このため、探索が輪郭点Ｂに至るまでは、上記の分割判定において分割閾値を超えることはなく、分割フラグは有効化されない。その後、探索が輪郭点Ｂに至ると、貫通孔３へ向かう方向の線分の探索が終了して貫通孔３の同心円の円弧の探索が開始される段階に至る。すると、輪郭点Ａと輪郭点Ｂとの間における連接角度の差が直角に至るほどまで逸脱する。このため、輪郭点Ｂを探索した段階で上記の分割判定において分割閾値を超え、輪郭点Ｂの直前に探索された輪郭点の分割フラグが有効化されるとともに、輪郭点Ｂが新たな部分輪郭線の始点の候補とされる。かかる分割フラグによって、輪郭線２００が部分輪郭線２３０と未探索の輪郭線２４０とにさらに分離されることになる。
【００５８】
そして、輪郭点Ｂから終点である輪郭点Ｅまでの区間は、貫通孔３の同心円の円弧が探索されるので、輪郭点Ａと探索中の輪郭点との間における連接角度の差は微差に留まる。よって、終点まで上記の分割判定において分割閾値を超えることはなく、分割フラグは有効化されない。よって、輪郭点Ｂを探索した時点では未探索であった輪郭線２４０がそのまま部分輪郭線として抽出されることになる。このようにして輪郭線２００から部分輪郭線２１０、部分輪郭線２３０及び部分輪郭線２４０が抽出される。
【００５９】
図１０は、部分輪郭線の抽出結果のイメージ例を示す図である。例えば、全ての領域の輪郭線について図９を用いて説明した分割判定および分割フラグの有効化が実行されると、図１０に示す部分輪郭線が抽出される。図１０に示すように、カラーパッチ１の標示領域の輪郭線のうち貫通孔３の同心円の円弧や貫通孔３へ向かう方向の線分が部分輪郭線として抽出される。この他にも、カラーパッチ１の貫通孔３の輪郭線、すなわち画像上で略円状の輪郭線が上記の分割閾値を超える前の輪郭点と上記の分割閾値を超えた後の輪郭点との間で順次分割される結果、貫通孔３の円弧が部分輪郭線として抽出される。
【００６０】
図１１は、部分輪郭線データ１３ｂの構成例を示す図である。図１１に示す部分輪郭線データ１３ｂの例では、領域番号ごとに当該領域番号を持つ領域に含まれる部分輪郭線の部分輪郭線番号が対応付けられている。さらに、部分輪郭線データ１３ｂは、部分輪郭線番号ごとに当該部分輪郭線番号を持つ部分輪郭線を形成する輪郭点の輪郭点番号、座標および連接角度の集合が対応付けられている。例えば、領域番号１の例で言えば、部分輪郭線番号１から部分輪郭線番号ＭまでのＭ個の部分輪郭線が領域番号１に対応付けられる。さらに、部分輪郭線番号１の部分輪郭線を形成する輪郭点番号１から輪郭点番号Ｎ１までの各輪郭点の座標および連接角度が領域番号１に対応付けられている。さらに、部分輪郭線番号２の部分輪郭線を形成する輪郭点番号１から輪郭点番号Ｎ２までの各輪郭点の座標および連接角度が領域番号１に対応付けられている。さらに、部分輪郭線番号Ｍの部分輪郭線を形成する輪郭点番号１から輪郭点番号ＮＭまでの各輪郭点の座標および連接角度が領域番号１に対応付けられている。なお、部分輪郭線番号１から部分輪郭線番号ＭまでのＭ個の部分輪郭線に含まれるＮ１個の輪郭点、Ｎ２個の輪郭点、・・・、ＮＭ個の輪郭点の総和は、領域番号１の領域に含まれる全輪郭点の数と等しい。
【００６１】
図２の説明に戻り、検出部１５ｅは、部分輪郭線の垂線同士の交点が最も多い領域をカラーパッチ１の計測領域として検出する処理部である。このように、部分輪郭線の垂線同士の交点が最も多い領域を計測領域とみなすのは、部分輪郭線の垂線同士の交点が存在する領域に投票を行った場合に計測領域への投票が最多となる蓋然性が高いからである。
【００６２】
なぜなら、カラーパッチ１の貫通孔３の円弧や貫通孔３の同心円の円弧などの部分輪郭線の間で垂線の交点が存在する領域に投票した場合には、その投票数がカラーパッチ１の計測領域である貫通孔３に集中するからである。一方、他の部分輪郭線、例えば貫通孔３へ向かう方向の線分を始め、カラーパッチ１に設けられたロゴや装飾を形成する部分輪郭線の間で垂線の交点が存在する領域に投票した場合には、その投票数が特定の領域には集中せずに分散する。したがって、各部分輪郭線間で部分輪郭線の垂線同士の交点が存在する領域に投票を行った場合には、計測領域への投票が最多となる蓋然性が高い。このことから、検出部１５ｅは、部分輪郭線の垂線同士の交点が最も多い領域をカラーパッチ１の計測領域として検出する。
【００６３】
図１２は、部分輪郭線の垂線同士の交点の一例を示す図である。図１２に示すように、検出部１５ｅは、部分輪郭線３１０に含まれる輪郭点のうち両端の輪郭点を結ぶ線分と垂直な直線を計算することによって部分輪郭線３１０の垂線３１５を算出する。また、検出部１５ｅは、部分輪郭線３２０の垂線３２５についても、部分輪郭線３２０に含まれる輪郭点のうち両端の輪郭点を結ぶ線分と垂直な直線を計算することによって算出する。その後、検出部１５ｅは、部分輪郭線３１０の垂線３１５と部分輪郭線３２０の垂線３２５との交点Ｐが存在する領域を判別した上で、交点Ｐが存在する領域の交点数をカウントアップする。例えば、検出部１５ｅは、記憶部１３に記憶された投票データ１３ｃ、すなわち領域ごとに当該領域の交点数が対応付けられたデータのうち先に算出した交点が存在する領域に対応する交点数を加算する更新を行う。そして、検出部１５ｅは、各部分輪郭線の全組合せについて交点の算出および交点数の計数を実行する。なお、ここでは、部分輪郭線の両端の輪郭点を用いて部分輪郭線の垂線を算出する場合を例示したが、部分輪郭線を形成する曲線の中点を通る法線を部分輪郭線の垂線として算出することもできる。
【００６４】
図１３は、交点の投票結果のイメージ例を示す図である。例えば、全ての部分輪郭線の組合せについて交点が存在する領域に投票を行った場合には、図１３に示す投票結果を得ることができる。このとき、部分輪郭線には、カラーパッチ１の貫通孔３の円弧や貫通孔３の同心円の円弧だけでなく、貫通孔３へ向かう方向の線分やカラーパッチ１に設けられたロゴや装飾のエッジなども含まれる。このため、図１３に示すように、カラーパッチ１の計測領域以外の領域にも若干の投票がなされるが、投票の大半はカラーパッチ１の計測領域になされる。
【００６５】
その上で、検出部１５ｅは、部分輪郭線の垂線同士の交点が最も多い領域をカラーパッチ１の計測領域として検出する。図１４は、交点の投票結果の一例を示す図である。例えば、図１４に示す投票結果が得られた場合には、図４に示したグルーピング結果として得られた領域番号１〜領域番号２３のうち領域番号１１に投票された交点数が「1489」となり、最多となる。したがって、検出部１５ｅは、交点数が最多である領域番号１１をカラーパッチ１の計測領域と検出する。
【００６６】
図２の説明に戻り、対応付け部１５ｆは、カラーパッチ１の計測領域の検出結果を用いて、計測領域を取り囲む標示領域の領域番号と、計測領域の輪郭を時計回りに周回する場合の並び順とを対応付ける処理部である。
【００６７】
一態様としては、対応付け部１５ｆは、画像上で計測領域の輪郭を形成する各輪郭点の輪郭点ごとに、各領域の輪郭点のうち当該計測領域の輪郭点と最も距離が近い対応輪郭点を抽出し、対応輪郭点に計測領域の輪郭点の輪郭点番号を付与する。そして、対応付け部１５ｆは、対応輪郭点を抽出する度に、対応輪郭点が抽出された領域を対象に、当該領域が持つ対応輪郭点の個数をインクリメントするとともに、当該領域が持つ対応輪郭点に付与された輪郭点番号の合計値に今回抽出された対応輪郭点へ付与された輪郭点番号を加算する更新を実行する。続いて、対応付け部１５ｆは、計測領域の全ての輪郭点にわたって対応輪郭点が抽出されると、対応輪郭点へ付与された輪郭点番号の合計値を対応輪郭点の個数で除算する計算を実行することによって領域番号別の輪郭点番号の平均値を各領域の代表値として算出する。その上で、対応付け部１５ｆは、代表値が小さい領域の領域番号から順番に領域番号を並び順に対応付ける。これによって、計測領域に近接する近接領域の領域番号の並び順が得られる。
【００６８】
その後、対応付け部１５ｆは、近接領域の領域番号の並び順にしたがって、近接領域よりも外側に存在する外側領域の並び順と、領域の領域番号とを対応付ける。これによって、外側領域の領域番号の並び順が得られる。そして、対応付け部１５ｆは、計測領域の中心座標から近接領域の外縁部までの距離が最長である並び順が貫通領域、すなわち白色の標示領域であると判別する。ここで、カラーパッチ１の例で言えば、貫通領域である白色の標示領域は、２つの並び順を跳ばして配置されるという規則性がある。したがって、対応付け部１５ｆは、先に貫通領域であると判別した並び順Ｌに加え、並び順Ｌ＋３、並び順Ｌ＋６及び並び順Ｌ＋９をさらに貫通領域であると判別する。
【００６９】
出力部１５ｇは、近接領域と外側領域の領域番号の並び順及び貫通領域の判別結果を用いて、カラーパッチ１の各標示領域のＲＧＢ値を所定の出力先へ出力する処理部である。ここで、以下では、出力先へのデータの出力形式が白色の標示領域Ｗ１〜Ｗ４のＲＧＢ値および白色以外の色の標示領域Ｃ１〜Ｃ１６のＲＧＢ値を出力する形式である場合を想定する。さらに、標示領域Ｃ１の輝度が標示領域Ｃ２の輝度よりも高い場合を想定する。なお、上記のＲＧＢ値は、各々の標示領域を構成する画素のＲＧＢ値の平均値であるものとする。
【００７０】
かかる出力部１５ｇは、並び順と対応付けられた領域番号と、白色の標示領域Ｗ１〜Ｗ４および白色以外の色の標示領域Ｃ１〜Ｃ１６との間でマッピングを行うために、並び順のうちマッピング出力の起点とする並び順を特定する。
【００７１】
これを説明すると、カラーパッチ１には、カラーパッチ１の貫通領域とその９０度隣の貫通領域との間に挟まれる内側および外側の標示領域は、９０度ごとに内側の標示領域の色と外側の標示領域の色が入れ替わるように配置されると規則性がある。これを利用して、出力部１５ｇは、近接領域及び外側領域の並び順のうち貫通領域と判別された並び順Ｌよりも１つ並び順が大きい近接領域、すなわち貫通領域よりも１つ右側にある近接領域の輝度がその外側領域の輝度よりも大きいか否かを判定する。このように、互いに隣接する近接領域及び外側領域を比較するのは、局所的に見れば、光源による影響が少ないからである。さらに、輝度を比較するのは、ＲＧＢ値よりも輝度の方が光源によって受ける影響が小さく、撮影によって近接領域と外側領域の輝度の大小関係が逆転するケースは想定しなくてよいからである。
【００７２】
そして、近接領域の輝度がその外側領域の輝度よりも高い場合には、近接領域及び外側領域の並び順がデータの出力形式で定められている標示領域の整列順と対応すると判別できる。この場合には、出力部１５ｇは、並び順をシフトさせずに、当該貫通領域の並び順Ｌを起点とし、各々の並び順と対応付けられた領域番号を白色の標示領域Ｗ１〜Ｗ４および白色以外の色の標示領域Ｃ１〜Ｃ１６とマッピングする。一方、近接領域の輝度がその外側領域の輝度以下である場合には、近接領域及び外側領域の並び順がデータの出力形式で定められている標示領域の整列順とズレていると判別できる。この場合には、出力部１５ｇは、貫通領域の並び順Ｌよりも１つの先の貫通領域の並び順Ｌ＋３が並び順Ｌとなるように並び順をシフトする。これによって、出力部１５ｇは、元の並び順Ｌ＋３を並び順Ｌへシフトさせ、元の並び順Ｌ＋６を並び順Ｌ＋３へシフトさせ、元の並び順Ｌ＋９を並び順Ｌ＋６へシフトさせ、元の並び順Ｌを並び順Ｌ＋９へシフトさせる。このようにして、画像に写るカラーパッチ１を９０度回転させた場合の並び順にシフトさせる。その後、出力部１５ｇは、シフト後の貫通領域の並び順Ｌを起点とし、各々の並び順と対応付けられた領域番号を白色の標示領域Ｗ１〜Ｗ４および白色以外の色の標示領域Ｃ１〜Ｃ１６とマッピングする。
【００７３】
例えば、標示領域Ｗ１には、貫通領域の第１要素である並び順Ｌの領域番号がマッピングされる。また、標示領域Ｗ２には、貫通領域の第２要素である並び順Ｌ＋３の領域番号がマッピングされる。また、標示領域Ｗ３には、貫通領域の第３要素である並び順Ｌ＋６の領域番号がマッピングされる。また、標示領域Ｗ４には、貫通領域の第４要素である並び順Ｌ＋９の領域番号がマッピングされる。これら標示領域Ｗ１〜Ｗ４は、貫通領域である白色の標示領域である。このため、標示領域Ｗ１〜Ｗ４には、外側領域は存在しないので、並び順Ｌ、並び順Ｌ＋３、並び順Ｌ＋６、並び順Ｌ＋９の近接領域の領域番号がマッピングされる。
【００７４】
さらに、標示領域Ｃ１には、貫通領域の第１要素である並び順Ｌよりも１つ先の並び順Ｌ＋１の近接領域の領域番号がマッピングされる。また、標示領域Ｃ２には、標示領域Ｃ１の外側領域の領域番号がマッピングされる。また、標示領域Ｃ３には、標示領域Ｃ１の並び順よりも１つ先の並び順の近接領域の領域番号がマッピングされる。また、標示領域Ｃ４には、標示領域Ｃ３の外側領域の領域番号がマッピングされる。ここで、標示領域Ｃ５には、標示領域Ｃ３との間に標示領域Ｗ２が挟まれるので、標示領域Ｃ３の並び順よりも２つ先の並び順の近接領域の領域番号がマッピングされる。また、標示領域Ｃ６には、標示領域Ｃ５の外側領域の領域番号がマッピングされる。また、標示領域Ｃ７には、標示領域Ｃ６の並び順よりも１つ先の並び順の近接領域の領域番号がマッピングされる。また、標示領域Ｃ８には、標示領域Ｃ７の外側領域の領域番号がマッピングされる。ここで、標示領域Ｃ９には、標示領域Ｃ７との間に標示領域Ｗ３が挟まれるので、標示領域Ｃ７の並び順よりも２つ先の並び順の近接領域の領域番号がマッピングされる。また、標示領域Ｃ１０には、標示領域Ｃ９の外側領域の領域番号がマッピングされる。また、標示領域Ｃ１１には、標示領域Ｃ９の並び順よりも１つ先の並び順の近接領域の領域番号がマッピングされる。また、標示領域Ｃ１２には、標示領域Ｃ１１の外側領域の領域番号がマッピングされる。ここで、標示領域Ｃ１３には、標示領域Ｃ１１との間に標示領域Ｗ４が挟まれるので、標示領域Ｃ１１の並び順よりも２つ先の並び順の近接領域の領域番号がマッピングされる。また、標示領域Ｃ１４には、標示領域Ｃ１３の外側領域の領域番号がマッピングされる。また、標示領域Ｃ１５には、標示領域Ｃ１３の並び順よりも１つ先の並び順の近接領域の領域番号がマッピングされる。また、標示領域Ｃ１６には、標示領域Ｃ１５の外側領域の領域番号がマッピングされる。
【００７５】
ここで、図１５を用いて、マッピングの具体例を説明する。図１５は、マッピングの一例を示す図である。図１５に示すように、図４に示した領域番号２の領域がカラーマップ１の白色の標示領域Ｗ１にマッピングされる。さらに、図４に示した領域番号１４の領域がカラーマップ１の白色の標示領域Ｗ２にマッピングされる。さらに、図４に示した領域番号２１の領域がカラーマップ１の白色の標示領域Ｗ３にマッピングされる。さらに、図４に示した領域番号１３の領域がカラーマップ１の白色の標示領域Ｗ４にマッピングされる。また、図４に示した領域番号６の領域がカラーマップ１の色の標示領域Ｃ１にマッピングされる。さらに、図４に示した領域番号４の領域がカラーマップ１の色の標示領域Ｃ２にマッピングされる。さらに、図４に示した領域番号１０の領域がカラーマップ１の色の標示領域Ｃ３にマッピングされる。さらに、図４に示した領域番号８の領域がカラーマップ１の色の標示領域Ｃ４にマッピングされる。さらに、図４に示した領域番号１７の領域がカラーマップ１の色の標示領域Ｃ５にマッピングされる。さらに、図４に示した領域番号１８の領域がカラーマップ１の色の標示領域Ｃ６にマッピングされる。さらに、図４に示した領域番号２０の領域がカラーマップ１の色の標示領域Ｃ７にマッピングされる。さらに、図４に示した領域番号２３の領域がカラーマップ１の色の標示領域Ｃ８にマッピングされる。さらに、図４に示した領域番号１９の領域がカラーマップ１の色の標示領域Ｃ９にマッピングされる。さらに、図４に示した領域番号２２の領域がカラーマップ１の色の標示領域Ｃ１０にマッピングされる。さらに、図４に示した領域番号１５の領域がカラーマップ１の色の標示領域Ｃ１１にマッピングされる。さらに、図４に示した領域番号１６の領域がカラーマップ１の色の標示領域Ｃ１２にマッピングされる。さらに、図４に示した領域番号９の領域がカラーマップ１の色の標示領域Ｃ１３にマッピングされる。さらに、図４に示した領域番号７の領域がカラーマップ１の色の標示領域Ｃ１４にマッピングされる。さらに、図４に示した領域番号５の領域がカラーマップ１の色の標示領域Ｃ１５にマッピングされる。さらに、図４に示した領域番号３の領域がカラーマップ１の色の標示領域Ｃ１６にマッピングされる。
【００７６】
その後、出力部１５ｇは、白色の標示領域Ｗ１〜Ｗ４および白色以外の色の標示領域Ｃ１〜Ｃ１６の各々の標示領域ごとに当該標示領域に含まれる画素のＲＧＢ値の平均値を算出する。その上で、出力部１５ｇは、白色の標示領域Ｗ１〜Ｗ４および白色以外の色の標示領域Ｃ１〜Ｃ１６の各々の標示領域別に算出されたＲＧＢ値を所定の出力先へ出力する。このとき、出力部１５ｇは、各々の標示領域のＲＧＢ値とともに、各々の標示領域の色が本来有するＲＧＢ値を併せて出力することもできる。
【００７７】
図１６は、マッピング出力の一例を示す図である。図１６に示すように、図１５に示したマッピングされた白色の標示領域Ｗ１〜Ｗ４および白色以外の色の標示領域Ｃ１〜Ｃ１６の各々の標示領域ごとに当該標示領域に含まれる画素のＲＧＢ値の平均値が算出される。その上で、白色の標示領域Ｗ１〜Ｗ４および白色以外の色の標示領域Ｃ１〜Ｃ１６の各々の標示領域別に算出されたＲＧＢ値の平均値とともに、各々の標示領域の色が本来有するＲＧＢ値が出力される。
【００７８】
上記の出力先の一例としては、カラーパッチ１の標示領域の色が本来有するＲＧＢ値と画像に写った標示領域の色のＲＧＢ値の変化量とを用いて画像に写る計測領域のＲＧＢ値を補正する色計測プログラムが挙げられる。かかる色計測プログラムは、必ずしも画像処理装置１０内で実行される必要はなく、色計測プログラムが実行される外部装置へ出力することとしてもかまわない。
【００７９】
なお、制御部１５には、各種の集積回路や電子回路を採用できる。また、制御部１５が有する機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ＡＳＩＣ（Application  Specific  Integrated  Circuit）が挙げられる。また、電子回路としては、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などが挙げられる。
【００８０】
［処理の流れ］
次に、本実施例に係る画像処理装置１０の処理の流れについて説明する。なお、ここでは、画像処理装置１０によって実行される（１）全体処理を説明した後に、全体処理のサブフローとして実行される（２）連接角度の算出処理、（３）部分輪郭線の抽出処理、（４）計測領域の検出処理の順に説明する。
【００８１】
（１）全体処理
図１７は、実施例１に係る画像処理装置１０の全体処理の手順を示すフローチャートである。この全体処理は、取得部１５ａによって画像が取得された場合に処理が起動される。図１７に示すように、画像が取得されると（ステップＳ１０１）、画像処理装置１０は、画像に含まれる画素のうち隣接する画素間で画素値が類似する画素同士をグルーピングする（ステップＳ１０２）。
【００８２】
続いて、画像処理装置１０は、領域に含まれる輪郭点に当該輪郭点が領域の輪郭上にある他の輪郭点と連接する連接角度を算出する「連接角度の算出処理」を実行する（ステップＳ１０３）。
【００８３】
そして、画像処理装置１０は、ステップＳ１０３で算出された各輪郭点の連接角度を用いて、領域を形成する輪郭線が分割された部分輪郭線を抽出する「部分輪郭線の抽出処理」を実行する（ステップＳ１０４）。
【００８４】
続いて、画像処理装置１０は、ステップＳ１０４で抽出された部分輪郭線の垂線同士の交点が最も多い領域をカラーパッチ１の計測領域として検出する「計測領域の検出処理」を実行する（ステップＳ１０５）。
【００８５】
その後、画像処理装置１０は、カラーパッチ１の計測領域の検出結果を用いて、計測領域を取り囲む近接領域及び外側領域の領域番号と、計測領域の輪郭を時計回りに周回する場合の並び順とを対応付ける（ステップＳ１０６）。
【００８６】
そして、画像処理装置１０は、計測領域の中心座標（ＣＸ，ＣＹ）から近接領域の外縁部までの距離が最長である並び順Ｌと、その並び順と一定の規則にある並び順Ｌ＋３、Ｌ＋６及びＬ＋９とを貫通領域であると判別する（ステップＳ１０７）。
【００８７】
続いて、画像処理装置１０は、近接領域及び外側領域の並び順のうち貫通領域と判別された並び順Ｌよりも１つ並び順が大きい近接領域の輝度がその外側領域の輝度よりも大きいか否かを判定する（ステップＳ１０８）。
【００８８】
このとき、近接領域の輝度がその外側領域の輝度以下である場合（ステップＳ１０８，Ｎｏ）には、近接領域及び外側領域の並び順がデータの出力形式で定められている標示領域の整列順とズレていると判別できる。この場合には、画像処理装置１０は、貫通領域の並び順Ｌよりも１つの先の貫通領域の並び順Ｌ＋３が並び順Ｌとなるように並び順をシフトする（ステップＳ１０９）。その上で、画像処理装置１０は、シフト後の貫通領域の並び順Ｌを起点とし、各々の並び順と対応付けられた領域番号を白色の標示領域Ｗ１〜Ｗ４および白色以外の色の標示領域Ｃ１〜Ｃ１６とマッピングする（ステップＳ１１０）。
【００８９】
一方、近接領域の輝度がその外側領域の輝度よりも高い場合（ステップＳ１０８，Ｙｅｓ）には、近接領域及び外側領域の並び順がデータの出力形式で定められている標示領域の整列順と対応すると判別できる。この場合には、画像処理装置１０は、並び順をシフトさせずに、当該貫通領域の並び順Ｌを起点とし、各々の並び順と対応付けられた領域番号を白色の標示領域Ｗ１〜Ｗ４および白色以外の色の標示領域Ｃ１〜Ｃ１６とマッピングする（ステップＳ１１０）。
【００９０】
その後、画像処理装置１０は、各々の標示領域Ｗ１〜Ｗ４およびＣ１〜Ｃ１６のＲＧＢ値とともに、各々の標示領域Ｗ１〜Ｗ４およびＣ１〜Ｃ１６のＲＧＢの色が本来有するＲＧＢ値を併せて所定の出力先へ出力し（ステップＳ１１１）、処理を終了する。
【００９１】
（２）連接角度の算出処理
図１８は、実施例１に係る連接角度の算出処理の手順を示すフローチャートである。この算出処理は、図１７に示したステップＳ１０３に対応する処理であり、色の近さでグルーピングが実行されることによって領域が得られた後に処理が起動される。
【００９２】
図１８に示すように、画像処理装置１０は、領域番号をカウントするカウンタＡに初期値、例えば領域番号が開始する番号を設定する初期化を実行する（ステップＳ２０１）。そして、画像処理装置１０は、領域番号のカウンタＡの値が全領域の数、すなわち最後の領域番号を超えるまで（ステップＳ２０２，Ｙｅｓ）、下記に説明するステップＳ２０３〜ステップＳ２１７までの処理を繰り返し実行する。
【００９３】
すなわち、画像処理装置１０は、カウンタＡの領域番号の値を持つ領域に含まれる各輪郭点に輪郭点番号を採番する（ステップＳ２０３）。そして、画像処理装置１０は、輪郭点番号をカウントするカウンタＢに初期値、例えば輪郭点番号が開始する番号を設定する初期化を実行する（ステップＳ２０４）。
【００９４】
その後、画像処理装置１０は、カウンタＢの輪郭点番号の値が領域Ａに含まれる全輪郭点の数、すなわち最後の輪郭点番号を超えるまで（ステップＳ２０５，Ｙｅｓ）、下記に説明するステップＳ２０６〜ステップＳ２１６までの処理を繰り返し実行する。
【００９５】
これを説明すると、画像処理装置１０は、カウンタＢの輪郭点番号を持つ輪郭点およびその輪郭点を中心とする周辺画素にＸ方向フィルタ及びＹ方向フィルタを適用する（ステップＳ２０６）。これによって、輝度勾配のＸ成分およびＹ成分が得られる。そして、画像処理装置１０は、ステップＳ２０６で得られた輝度勾配のＸ成分がゼロであるか否かを判定する（ステップＳ２０７）。
【００９６】
このとき、輝度勾配のＸ成分がゼロでない場合（ステップＳ２０７，Ｎｏ）には、画像処理装置１０は、輝度勾配のＸ成分及びＹ成分の値の逆正接を計算することによって輝度勾配の角度を算出する（ステップＳ２０８）。
【００９７】
そして、輝度勾配のＸ成分が正の値を取る場合（ステップＳ２０９，Ｙｅｓ）には、画像処理装置１０は、輝度勾配の角度に９０度を加算することによって輪郭点の連接角度を算出する（ステップＳ２１０）。一方、輝度勾配のＸ成分が負の値を取る場合（ステップＳ２０９，Ｎｏ）には、画像処理装置１０は、輝度勾配の角度に２７０度を加算することによって輪郭点の連接角度を算出する（ステップＳ２１１）。
【００９８】
また、輝度勾配のＸ成分がゼロである場合（ステップＳ２０７，Ｙｅｓ）には、逆正接を取ると輝度勾配の角度が発散する。したがって、この場合には、画像処理装置１０は、逆正接を取らない。すなわち、輝度勾配のＹ成分がゼロよりも大きい場合（ステップＳ２１２，Ｙｅｓ）には、画像処理装置１０は、輪郭点の連接角度を１８０度と決定する（ステップＳ２１３）。一方、輝度勾配のＹ成分がゼロ以下である場合（ステップＳ２１２，Ｎｏ）には、画像処理装置１０は、輪郭点の連接角度を０度と決定する（ステップＳ２１４）。
【００９９】
そして、画像処理装置１０は、ステップＳ２１０、Ｓ２１１、Ｓ２１３またはＳ２１４で算出された輪郭点の連接角度を、カウンタＡの領域番号、カウンタＢの輪郭点番号及び輪郭点の座標と対応付けて記憶部１３へ登録する（ステップＳ２１５）。
【０１００】
その後、画像処理装置１０は、カウンタＢの輪郭点番号の値を１つインクリメントする（ステップＳ２１６）。そして、カウンタＢの輪郭点番号の値が領域Ａに含まれる全輪郭点の数を超えると（ステップＳ２０５，Ｎｏ）、画像処理装置１０は、カウンタＡの領域番号の値を１つインクリメントする（ステップＳ２１７）。その後、カウンタＡの領域番号の値が全領域の数を超えると（ステップＳ２０２，Ｎｏ）、処理を終了する。
【０１０１】
（３）部分輪郭線の抽出処理
図１９は、実施例１に係る部分輪郭線の抽出処理の手順を示すフローチャートである。この抽出処理は、図１７に示したステップＳ１０４に対応する処理であり、各領域に含まれる輪郭点の連接角度が算出された後に処理が起動される。
【０１０２】
図１９に示すように、画像処理装置１０は、領域番号をカウントするカウンタＡに初期値、例えば領域番号が開始する番号を設定する初期化を実行する（ステップＳ３０１）。そして、画像処理装置１０は、領域番号のカウンタＡの値が全領域の数、すなわち最後の領域番号を超えるまで（ステップＳ３０２，Ｙｅｓ）、下記に説明するステップＳ３０３〜ステップＳ３１０までの処理を繰り返し実行する。
【０１０３】
すなわち、画像処理装置１０は、カウンタＡに保持された領域番号を持つ領域に含まれる各輪郭点に対応して配列された分割フラグと、部分輪郭線の始点の候補とする輪郭点の連接角度とを保持するレジスタを初期化する（ステップＳ３０３）。例えば、領域番号Ａの領域に含まれる各輪郭点の分割フラグが初期値、例えば「0」に設定されるとともに、部分輪郭線の始点の候補とする輪郭点の連接角度に最初の輪郭点番号の連接角度を設定する初期化が実行される。
【０１０４】
続いて、画像処理装置１０は、輪郭点番号をカウントするカウンタＢに初期値、例えば最初の輪郭点番号に続く次の輪郭点番号を設定する初期化を実行する（ステップＳ３０４）。その後、画像処理装置１０は、カウンタＢの輪郭点番号の値が領域Ａに含まれる全輪郭点の数、すなわち最後の輪郭点番号を超えるまで（ステップＳ３０５，Ｙｅｓ）、下記に説明するステップＳ３０６〜ステップＳ３０９までの処理を繰り返し実行する。
【０１０５】
これを説明すると、画像処理装置１０は、カウンタＢの輪郭点番号を持つ輪郭点の連接角度と、レジスタに部分輪郭線の始点の候補として保持された輪郭点の連接角度との差分が所定の分割閾値を超えるか否かを判定する（ステップＳ３０６）。
【０１０６】
このとき、連接角度の差分が分割閾値を超える場合（ステップＳ３０６，Ｙｅｓ）には、領域の輪郭を形成する輪郭線のうち始点の候補となる輪郭点から探索中の輪郭点までの区間で輪郭線の連接方向が大きく変化したと判別することができる。
【０１０７】
この場合には、画像処理装置１０は、レジスタに保持された分割フラグのうち輪郭点番号Ｂの１つ前の輪郭点番号Ｂ−１の輪郭点の分割フラグを有効化する（ステップＳ３０７）。さらに、画像処理装置１０は、レジスタに保持された部分輪郭線の始点の候補とする輪郭点の連接角度を、カウンタＢの輪郭点番号を持つ輪郭点の連接角度に上書きする（ステップＳ３０８）。
【０１０８】
一方、連接角度の差分が分割閾値以下である場合（ステップＳ３０６，Ｎｏ）には、領域の輪郭を形成する輪郭線のうち始点の候補となる輪郭点から探索中の輪郭点までの区間で輪郭線の連接方向が大きくは変化していないと判別することができる。この場合には、レジスタ内の分割フラグおよび連接角度を更新せずに、ステップＳ３０９へ移行する。
【０１０９】
その後、画像処理装置１０は、カウンタＢの輪郭点番号の値を１つインクリメントする（ステップＳ３０９）。そして、カウンタＢの輪郭点番号の値が領域Ａに含まれる全輪郭点の数を超えると（ステップＳ３０５，Ｎｏ）、画像処理装置１０は、カウンタＡの領域番号の値を１つインクリメントする（ステップＳ３１０）。
【０１１０】
そして、カウンタＡの領域番号の値が全領域の数を超えると（ステップＳ３０２，Ｎｏ）、画像処理装置１０は、次のような処理を実行する。すなわち、画像処理装置１０は、領域の輪郭線を形成する全輪郭点の輪郭点番号の集合のうち部分輪郭線の始点の候補となる輪郭点番号から分割フラグが有効化された輪郭点番号までの部分集合を部分輪郭線の輪郭点番号の集合として抽出する（ステップＳ３１１）。
【０１１１】
その上で、画像処理装置１０は、部分輪郭線を形成する輪郭点の輪郭点番号、座標および連接角度の集合を部分輪郭線データ１３ｂとして記憶部１３へ登録し（ステップＳ３１２）、処理を終了する。
【０１１２】
（４）計測領域の検出処理
図２０及び図２１は、実施例１に係る計測領域の検出処理の手順を示すフローチャートである。この検出処理は、図１７に示したステップＳ１０５に対応する処理であり、部分輪郭線が抽出された後に処理が起動される。
【０１１３】
図２０に示すように、画像処理装置１０は、領域別に交点数を保持するレジスタに初期値、例えば未投票の値であるゼロを設定する初期化を実行する（ステップＳ４０１）。続いて、画像処理装置１０は、交点を定める２つの部分輪郭線のうち第１の部分輪郭線が属する第１の領域の領域番号をカウントするカウンタＡ１に初期値、例えば領域番号が開始する番号を設定する初期化を実行する（ステップＳ４０２）。
【０１１４】
そして、画像処理装置１０は、カウンタＡ１に保持された第１の領域の領域番号の値が全領域の数、すなわち最後の領域番号を超えるまで（ステップＳ４０３，Ｙｅｓ）、下記に説明するステップＳ４０４〜ステップＳ４１９までの処理を繰り返し実行する。
【０１１５】
このうち、ステップＳ４０４において、画像処理装置１０は、第１の部分輪郭線の部分輪郭線番号をカウントするカウンタＢ１に初期値、例えば最初の部分輪郭線番号を設定する初期化を実行する。
【０１１６】
その後、画像処理装置１０は、カウンタＢ１に保持された第１の部分輪郭線の部分輪郭線番号の値がカウンタＡ１に保持された第１の領域に含まれる全部分輪郭線の数を超えるまで（ステップＳ４０５，Ｙｅｓ）、下記に説明するステップＳ４０６〜ステップＳ４１８までの処理を繰り返し実行する。
【０１１７】
このうち、ステップＳ４０６において、交点を定める２つの部分輪郭線のうち第２の部分輪郭線が属する第２の領域の領域番号をカウントするカウンタＡ２に初期値、例えば領域番号が開始する番号を設定する初期化を実行する。
【０１１８】
その後、画像処理装置１０は、カウンタＡ２に保持された第２の領域の領域番号の値が全領域の数を超えるまで（ステップＳ４０７，Ｙｅｓ）、下記に説明するステップＳ４０８〜ステップＳ４１７までの処理を繰り返し実行する。
【０１１９】
このうち、ステップＳ４０８において、画像処理装置１０は、第２の部分輪郭線の部分輪郭線番号をカウントするカウンタＢ２に初期値、例えば最初の部分輪郭線番号を設定する初期化を実行する。
【０１２０】
その後、画像処理装置１０は、カウンタＢ２に保持された第２の部分輪郭線の部分輪郭線番号の値がカウンタＡ２に保持された第２の領域に含まれる全部分輪郭線の数を超えるまで（ステップＳ４０９，Ｙｅｓ）、下記に説明するステップＳ４１０〜ステップＳ４１５までの処理を繰り返し実行する。
【０１２１】
これを説明すると、画像処理装置１０は、図２１に示すように、カウンタＡ１及びカウンタＡ２に保持された領域番号が同一であり、かつカウンタＢ１及びカウンタＢ２に保持された部分輪郭線番号が同一であるか否かを判定する（ステップＳ４１０）。つまり、交点を求めようとする部分輪郭線が同一の部分輪郭線であるか否かを判定する。
【０１２２】
このとき、交点を求めようとする部分輪郭線が同一の部分輪郭線でない場合（ステップＳ４１０，Ｎｏ）には、画像処理装置１０は、次のような処理を実行する。すなわち、画像処理装置１０は、第１の部分輪郭線の垂線と第２の部分輪郭線の垂線との交点が存在する座標を算出する（ステップＳ４１１）。なお、交点を求めようとする部分輪郭線が同一の部分輪郭線である場合（ステップＳ４１０，Ｙｅｓ）には、ステップＳ４１１〜Ｓ４１４までの処理を跳ばし、ステップＳ４１５へ移行する。
【０１２３】
ここで言う「第１の部分輪郭線」は、カウンタＡ１の領域番号を持つ第１の領域に含まれる部分輪郭線であってカウンタＢ１の部分輪郭線番号を持つ部分輪郭線を指す。また、「第２の部分輪郭線」は、カウンタＡ２の領域番号を持つ第２の領域に含まれる部分輪郭線であってカウンタＢ２の部分輪郭線番号を持つ部分輪郭線を指す。
【０１２４】
そして、画像処理装置１０は、ステップＳ４１１で算出された交点が存在する領域を判別する（ステップＳ４１２）。続いて、画像処理装置１０は、交点が画像の端を含まない領域、例えば画像を形成する４辺の画素を含まない領域上にあるか否かを判定する（ステップＳ４１３）。
【０１２５】
このとき、交点が画像の端を含まない領域上にある場合（ステップＳ４１３，Ｙｅｓ）には、画像処理装置１０は、レジスタに保持された交点数のうちステップＳ４１２で交点が存在すると判別された領域の交点数をインクリメントする（ステップＳ４１４）。なお、交点が画像の端を含む領域上にある場合（ステップＳ４１３，Ｎｏ）には、交点数をインクリメントせずにステップＳ４１５へ移行する。
【０１２６】
そして、画像処理装置１０は、カウンタＢ２に保持された第２の部分輪郭線の部分輪郭線番号を１つインクリメントし（ステップＳ４１５）、上記のステップＳ４０９へ移行する。
【０１２７】
その後、カウンタＢ２に保持された第２の部分輪郭線の部分輪郭線番号の値が領域Ａ２に含まれる全部分輪郭線の数を超えると（ステップＳ４０９，Ｎｏ）、画像処理装置１０は、次のような処理を実行する。すなわち、画像処理装置１０は、カウンタＡ２に保持された第２の領域の領域番号の値を１つインクリメントし（ステップＳ４１７）、ステップＳ４０７へ移行する。
【０１２８】
そして、カウンタＡ２に保持された第２の領域の領域番号の値が全領域の数を超えると（ステップＳ４０７，Ｎｏ）、画像処理装置１０は、次のような処理を実行する。すなわち、画像処理装置１０は、カウンタＢ１に保持された第１の部分輪郭線の部分輪郭線番号を１つインクリメントし（ステップＳ４１８）、上記のステップＳ４０５へ移行する。
【０１２９】
その後、カウンタＢ１に保持された第１の部分輪郭線の部分輪郭線番号の値が領域Ａ１に含まれる全部分輪郭線の数を超えると（ステップＳ４０５，Ｎｏ）、画像処理装置１０は、次のような処理を実行する。すなわち、画像処理装置１０は、カウンタＡ１に保持された第１の領域の領域番号の値を１つインクリメントし（ステップＳ４１９）、ステップＳ４０３へ移行する。
【０１３０】
そして、カウンタＡ１に保持された第１の領域の領域番号の値が全領域の数を超えると（ステップＳ４０３，Ｎｏ）、画像処理装置１０は、次のような処理を実行する。すなわち、画像処理装置１０は、レジスタに領域別に保持された交点数のうち交点数が最も多い領域をカラーパッチ１の計測領域として検出し（ステップＳ４２０）、処理を終了する。
【０１３１】
［実施例１の効果］
上述してきたように、本実施例に係る画像処理装置１０は、カラーパッチ１が写る画像中の画素を色でグルーピングした各領域の輪郭線を連接角度の変化が少ない範囲で分割し、部分輪郭線の垂線同士の交点の投票数が最多の領域を色の計測領域と検出する。このため、本実施例に係る画像処理装置１０では、ハフ変換を用いる場合のように円や楕円を行わずともカラーパッチ１の計測領域を検出することができる。
【０１３２】
したがって、本実施例に係る画像処理装置１０によれば、計測領域の検出時に実行される演算処理量を低減できる。さらに、本実施例に係る画像処理装置１０では、標示領域を区切る境界線の有無とは無関係にカラーパッチ１の計測領域を検出できるので、汎用性も高めることができる。
【実施例２】
【０１３３】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１３４】
［応用例］
開示の装置は、部分輪郭線の垂線と部分輪郭線の垂線との交点を算出した後に、当該交点と部分輪郭線との位置関係が妥当であるか否かを判定することもできる。図２２は、応用例を説明するための図である。図２２に示すように、開示の装置は、部分輪郭線４１０の両端の輪郭点を結ぶ線分４１３と垂直な直線を計算することによって部分輪郭線４１０の垂線４１５を算出する。また、開示の装置は、部分輪郭線４２０の垂線４２５についても、部分輪郭線４２０の両端の輪郭点を結ぶ線分４２３と垂直な直線を計算することによって算出する。そして、開示の装置は、垂線４１５及び垂線４２５の交点Ｐの座標を算出する。
【０１３５】
その上で、開示の装置は、交点Ｐを形成する部分輪郭線４１０及び部分輪郭線２４０について次のような判定を実行する。そして、開示の装置は、交点Ｐと部分輪郭線４１０との位置関係及び交点Ｐと部分輪郭線４２０との位置関係の両方に妥当性がある場合に、当該交点が存在する領域の交点数を更新する。
【０１３６】
これを具体的に説明すると、開示の装置は、交点Ｐから部分輪郭線４１０の中点までの距離が交点Ｐから部分輪郭線４１０の両端の輪郭画素を結ぶ線分４１３の中間点までの距離よりも大きいか否かを判定する。図２２の例では、交点Ｐから部分輪郭線４１０の中点までの距離が交点Ｐから部分輪郭線４１０の両端の輪郭画素を結ぶ線分４１３の中間点までの距離よりも大きいので、交点と部分輪郭線との位置関係が妥当であると推定できる。すると、開示の装置は、交点Ｐから部分輪郭線４２０の中点までの距離が交点Ｐから部分輪郭線４２０の両端の輪郭画素を結ぶ線分４２３の中間点までの距離よりも大きいか否かを判定する。図２２の例では、交点Ｐから部分輪郭線４２０の中点までの距離が交点Ｐから部分輪郭線４２０の両端の輪郭画素を結ぶ線分４２３の中間点までの距離以下であるので、交点と部分輪郭線との位置関係に妥当性がないと推定できる。このように、一方の部分輪郭線でも交点との間で位置関係に妥当性がない場合には、当該交点が存在する領域の交点数を更新しない。なお、上記の位置関係の妥当性を判定する処理は、図２１に示したフローチャートのステップＳ４１１の後で実行することにより容易に実装することが可能である。
【０１３７】
これによって、カラーパッチ１の外周よりも外側に弓状のエッジの連なりや交点が集まりやすい領域が存在する場合でも、カラーパッチ１の計測領域をより正確に検出することが可能になる。
【０１３８】
［適用例］
上記の実施例１では、各領域に含まれる輪郭点及びその周辺画素にＸ方向フィルタ及びＹ方向フィルタを適用して輪郭点の連接角度を算出する場合を例示したが、必ずしもＸ方向フィルタ及びＹ方向フィルタを輪郭点だけに適用する必要はない。例えば、開示の装置は、画像に含まれる各画素に各種のエッジ検出用のフィルタを適用することによって画像の輝度成分からエッジを抽出した上でエッジを構成する輪郭点ごとに連接角度を算出するようにしてもかまわない。
【０１３９】
また、上記の実施例１では、カラーパッチ１の貫通孔３によって形成される計測領域を画像処理装置１０に検出させる場合を例示したが、開示の装置の適用範囲はこれに限定されない。例えば、開示の装置は、カラーパッチ１以外の対象であっても対象が同心円状に円、楕円や多角形が多重されたものであれば任意の対象を画像から検出することができるし、また、必ずしも円、楕円や多角形の多重が貫通孔によって実現される必要もない。
【０１４０】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、制御部１５内の機能部１５ａ〜１５ｇの一部、例えば対応付け部１５ｆや出力部１５ｇを画像処理装置１０の外部装置としてネットワーク経由で接続するようにしてもよい。また、制御部１５内の機能部１５ａ〜１５ｇの一部、例えば対応付け部１５ｆや出力部１５ｇを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の画像処理装置１０の機能を実現するようにしてもよい。
【０１４１】
［画像処理プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図２３を用いて、上記の実施例と同様の機能を有する画像処理プログラムを実行するコンピュータの一例について説明する。
【０１４２】
図２３は、実施例１及び実施例２に係る画像処理プログラムを実行するコンピュータの一例について説明するための図である。図２３に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【０１４３】
ＨＤＤ１７０には、図２３に示すように、上記の実施例１で示した取得部１５ａ、グルーピング部１５ｂ、算出部１５ｃ、抽出部１５ｄ、検出部１５ｅ、対応付け部１５ｆ及び出力部１５ｇと同様の機能を発揮する画像処理プログラム１７０ａが予め記憶される。この画像処理プログラム１７０ａについては、図２に示した各々の取得部１５ａ、グルーピング部１５ｂ、算出部１５ｃ、抽出部１５ｄ、検出部１５ｅ、対応付け部１５ｆ及び出力部１５ｇの各構成要素と同様、適宜統合又は分離しても良い。すなわち、ＨＤＤ１７０に格納される各データは、常に全てのデータがＨＤＤ１７０に格納される必要はなく、処理に必要なデータのみがＨＤＤ１７０に格納されれば良い。
【０１４４】
そして、ＣＰＵ１５０が、画像処理プログラム１７０ａをＨＤＤ１７０から読み出してＲＡＭ１８０に展開する。これによって、図２３に示すように、画像処理プログラム１７０ａは、画像処理プロセス１８０ａとして機能する。この画像処理プロセス１８０ａは、ＨＤＤ１７０から読み出した各種データを適宜ＲＡＭ１８０上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、画像処理プロセス１８０ａは、図２に示した取得部１５ａ、グルーピング部１５ｂ、算出部１５ｃ、抽出部１５ｄ、検出部１５ｅ、対応付け部１５ｆ及び出力部１５ｇにて実行される処理、例えば図１７〜図２１に示す処理を含む。また、ＣＰＵ１５０上で仮想的に実現される各処理部は、常に全ての処理部がＣＰＵ１５０上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
【０１４５】
なお、上記の画像処理プログラム１７０ａについては、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶させておく必要はない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ１００がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【０１４６】
１    カラーパッチ
３    貫通孔
Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５，Ｃ６，Ｃ７，Ｃ８，Ｃ９，Ｃ１０，Ｃ１１，Ｃ１２，Ｃ１３，Ｃ１４，Ｃ１５，Ｃ１６    標示領域
Ｗ１，Ｗ２，Ｗ３，Ｗ４    白色の標示領域
１０    画像処理装置
１１    カメラ
１３    記憶部
１３ａ  連接角度データ
１３ｂ  部分輪郭線データ
１３ｃ  投票データ
１５    制御部
１５ａ  取得部
１５ｂ  グルーピング部
１５ｃ  算出部
１５ｄ  抽出部
１５ｅ  検出部
１５ｆ  対応付け部
１５ｇ  出力部
【図１】
0005853848.tif 000002
【図２】
0005853848.tif 000003
【図５】
0005853848.tif 000004
【図６】
0005853848.tif 000005
【図７】
0005853848.tif 000006
【図８】
0005853848.tif 000007
【図９】
0005853848.tif 000008
【図１０】
0005853848.tif 000009
【図１１】
0005853848.tif 000010
【図１２】
0005853848.tif 000011
【図１４】
0005853848.tif 000012
【図１６】
0005853848.tif 000013
【図１７】
0005853848.tif 000014
【図１８】
0005853848.tif 000015
【図１９】
0005853848.tif 000016
【図２０】
0005853848.tif 000017
【図２１】
0005853848.tif 000018
【図２２】
0005853848.tif 000019
【図２３】
0005853848.tif 000020
【図３】
0005853848.tif 000021
【図４】
0005853848.tif 000022
【図１３】
0005853848.tif 000023
【図１５】
0005853848.tif 000024