(57)【要約】【課題】情報コードの各セルの色判別を、情報コードの撮像状態に応じた適切な方法で行い得る情報コード読取装置を提供する。【解決手段】情報コード読取装置において、「割当サイズ検出手段」及び「サイズ決定手段」が設けられており、「割当サイズ検出手段」は、撮像手段によって撮像された情報コードのコード画像において、セル画像に割り当てられた割当領域の大きさを検出している。また、「サイズ決定手段」は、検出された割当領域の大きさに基づき、各セル画像の色判別の際に判別対象として用いる領域のサイズを決定している。更に、コード画像を構成する各セル画像それぞれにおいて、「サイズ決定手段」によって決定されたサイズに相当する領域を参照し、各セル画像の色を判別する「セル色判別手段」が設けられている。【選択図】図４
2010277169.tif 000002
【特許請求の範囲】
【請求項１】
複数のセルが配列されてなる情報コードを読み取る情報コード読取装置であって、
複数の受光素子を備えた撮像手段と、
前記情報コードからの反射光を取り込み、当該情報コードの像を前記撮像手段において結像させる結像手段と、
前記撮像手段によって撮像された前記情報コードのコード画像において、セル画像に割り当てられた割当領域の大きさを検出する割当サイズ検出手段と、
前記割当サイズ検出手段によって検出された前記割当領域の大きさに基づき、各セル画像の色判別の際に判別対象として用いる領域のサイズを決定するサイズ決定手段と、
前記コード画像を構成する前記各セル画像それぞれにおいて、前記サイズ決定手段によって決定された前記サイズに相当する領域を参照し、前記各セル画像の色を判別するセル色判別手段と、
を備えたことを特徴とする情報コード読取装置。
【請求項２】
前記セル色判別手段は、
前記コード画像を構成する前記各セル画像の中心画素を検出する中心画素検出手段と、
前記中心画素検出手段によって検出された前記中心画素と、前記サイズ決定手段によって決定された前記サイズとに基づき、前記各セル画像において、その決定された前記サイズに相当する大きさであって且つ前記中心画素を含んだ領域を色判別の対象領域として特定する対象領域特定手段と、
を備え、
前記対象領域特定手段によって特定された前記対象領域を構成する各画素の色情報に基づいて前記各セル画像の色を判別することを特徴とする請求項１に記載の情報コード読取装置。
【請求項３】
前記撮像手段によって撮像された前記情報コードのコード画像から、当該コード画像を構成するセル画像の形状情報を取得する形状情報取得手段と、
前記形状情報取得手段によって取得された前記形状情報に基づき、各セル画像の色判別の際に判別対象として用いる領域の形状を決定する形状決定手段と、
を備え、
前記セル色判別手段は、前記コード画像を構成する前記各セル画像それぞれにおいて、前記サイズ決定手段によって決定された前記サイズに相当し且つ前記形状決定手段によって決定された前記形状に相当する領域を参照し、前記各セル画像の色を判別することを特徴とする請求項１又は請求項２に記載の情報コード読取装置。
【請求項４】
複数のセルが配列されてなる情報コードを読み取る情報コード読取装置であって、
複数の受光素子を備えた撮像手段と、
前記情報コードからの反射光を取り込み、当該情報コードの像を前記撮像手段において結像させる結像手段と、
前記撮像手段によって撮像された前記情報コードのコード画像から、当該コード画像を構成するセル画像の形状情報を取得する形状情報取得手段と、
前記形状情報取得手段によって取得された前記形状情報に基づき、各セル画像の色判別の際に判別対象として用いる領域の形状を決定する形状決定手段と、
前記コード画像を構成する前記各セル画像それぞれにおいて、前記形状決定手段によって決定された前記形状に相当する領域を参照し、前記各セル画像の色を判別するセル色判別手段と、
を備えたことを特徴とする情報コード読取装置。
【請求項５】
前記形状決定手段は、
前記コード画像において、所定の中心セル画像と、当該中心セル画像の周囲に隣接する隣接セル画像と、を検出するセル画像検出手段と、
前記中心セル画像から各隣接セル画像までの各距離を算出する距離算出手段と、
を備え、
前記距離算出手段によって算出された前記各距離に基づいて、前記各セル画像の色判別の際に用いる領域の前記形状を決定することを特徴とする請求項３又は請求項４に記載の情報コード読取装置。
【請求項６】
前記セル画像検出手段によって検出された前記中心セル画像の中心位置と、前記隣接セル画像の中心位置とを検出する中心位置検出手段を備え、
前記距離算出手段は、前記中心セル画像の中心位置と、各隣接セル画像の中心位置とに基づいて前記各距離を算出することを特徴とする請求項５に記載の情報コード読取装置。
【請求項７】
前記中心位置検出手段は、前記中心セル画像の上下左右に隣接する４つの第１隣接セル画像の中心位置、及び前記中心セル画像にそれぞれ斜めに隣接する４つの第２隣接セル画像の中心位置をそれぞれ検出し、
前記距離算出手段は、前記中心セル画像の中心位置と、４つの前記第１隣接セル画像の各中心位置との間の第１間隔を前記各距離としてそれぞれ算出しており、
更に、各第１隣接セル画像の中心位置と、当該各第１隣接セル画像の両側に隣接する各第２隣接セル画像の中心位置との間の各第２間隔をそれぞれ算出する隣接セル間隔算出手段を備え、
前記形状決定手段は、前記距離算出手段によって算出された前記第１間隔と、前記隣接セル間隔算出手段によって算出された前記第２間隔とに基づいて前記形状を決定することを特徴とする請求項３から請求項６のいずれか一項に記載の情報コード読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報コード読取装置に関するものである。
【背景技術】
【０００２】
現在、複数のセルがマトリックス状に配置されてなる各種情報コードが広く提供されている。この種の情報コードでは、コード領域を構成する各セルにおいて、各セルで表すべき情報に対応した色が付されており、読取装置によって読み取る場合には、各セルの色を正確に認識することが求められている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１２８５２４公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記情報コードを読み取る読取装置は、読取対象となる情報コードを受光センサで撮像し、得られたコード画像においてセル毎に色判別を行う構成が一般的である。この色判別の方法としては、各セルの代表位置（例えば中心位置）の画素を参照すると共にそれら各代表位置（各参照画素）の色を識別し、それら識別された色を、各セル色と判定する方法が考えられる。
【０００５】
しかしながら、上記のように各セルの特定位置の画素のみを参照する方法を用いた場合、参照位置の画素がセル色を正確に反映していない場合があり、このような場合には各セル色を適切に判別できない虞がある。一方、各セル領域において多くの画素を参照し、各セル色を判別する方法も考えられるが、各セルに対する画素の割り当て（各セルに対する受光素子の割り当て）は、二次元コードのサイズや結像状態によって変わりうるため、各セルに対する画素の割り当てが少ない場合には、このような判別方法は難しくなる。
【０００６】
本発明は、上述した課題を解決するためになされたものであり、情報コードの各セルの色判別を、情報コードの撮像状態に応じた適切な方法で行い得る情報コード読取装置を提供すること目的とする。
【課題を解決するための手段】
【０００７】
請求項１の発明は、複数のセルが配列されてなる情報コードを読み取る情報コード読取装置であって、複数の受光素子を備えた撮像手段と、前記情報コードからの反射光を取り込み、当該情報コードの像を前記撮像手段において結像させる結像手段と、前記撮像手段によって撮像された前記情報コードのコード画像において、セル画像に割り当てられた割当領域の大きさを検出する割当サイズ検出手段と、前記割当サイズ検出手段によって検出された前記割当領域の大きさに基づき、各セル画像の色判別の際に判別対象として用いる領域のサイズを決定するサイズ決定手段と、前記コード画像を構成する前記各セル画像それぞれにおいて、前記サイズ決定手段によって決定された前記サイズに相当する領域を参照し、前記各セル画像の色を判別するセル色判別手段と、を備えたことを特徴とする。
【０００８】
請求項２の発明は、請求項１に記載の情報コード読取装置において、前記セル色判別手段が、前記コード画像を構成する前記各セル画像の中心画素を検出する中心画素検出手段と、前記中心画素検出手段によって検出された前記中心画素と、前記サイズ決定手段によって決定された前記サイズとに基づき、前記各セル画像において、その決定された前記サイズに相当する大きさであって且つ前記中心画素を含んだ領域を色判別の対象領域として特定する対象領域特定手段と、を備え、前記対象領域特定手段によって特定された前記対象領域を構成する各画素の色情報に基づいて前記各セル画像の色を判別することを特徴とする。
【０００９】
請求項３の発明は、請求項１又は請求項２に記載の情報コード読取装置において、更に、前記撮像手段によって撮像された前記情報コードのコード画像から、当該コード画像を構成するセル画像の形状情報を取得する形状情報取得手段と、前記形状情報取得手段によって取得された前記形状情報に基づき、各セル画像の色判別の際に判別対象として用いる領域の形状を決定する形状決定手段と、が設けられており、前記セル色判別手段が、前記コード画像を構成する前記各セル画像それぞれにおいて、前記サイズ決定手段によって決定された前記サイズに相当し且つ前記形状決定手段によって決定された前記形状に相当する領域を参照し、前記各セル画像の色を判別することを特徴とする。
【００１０】
請求項４の発明は、複数のセルが配列されてなる情報コードを読み取る情報コード読取装置であって、複数の受光素子を備えた撮像手段と、前記情報コードからの反射光を取り込み、当該情報コードの像を前記撮像手段において結像させる結像手段と、前記撮像手段によって撮像された前記情報コードのコード画像から、当該コード画像を構成するセル画像の形状情報を取得する形状情報取得手段と、前記形状情報取得手段によって取得された前記形状情報に基づき、各セル画像の色判別の際に判別対象として用いる領域の形状を決定する形状決定手段と、前記コード画像を構成する前記各セル画像それぞれにおいて、前記形状決定手段によって決定された前記形状に相当する領域を参照し、前記各セル画像の色を判別するセル色判別手段と、を備えたことを特徴とする。
【００１１】
請求項５の発明は、請求項３又は請求項４に記載の情報コード読取装置において、前記形状決定手段が、前記コード画像において、所定の中心セル画像と、当該中心セル画像の周囲に隣接する隣接セル画像と、を検出するセル画像検出手段と、前記中心セル画像から各隣接セル画像までの各距離を算出する距離算出手段と、を備えており、前記距離算出手段によって算出された前記各距離に基づいて、前記各セル画像の色判別の際に用いる領域の前記形状を決定することを特徴としている。
【００１２】
請求項６の発明は、請求項５に記載の情報コード読取装置において、更に、前記セル画像検出手段によって検出された前記中心セル画像の中心位置と、前記隣接セル画像の中心位置とを検出する中心位置検出手段が設けられており、前記距離算出手段が、前記中心セル画像の中心位置と、各隣接セル画像の中心位置とに基づいて前記各距離を算出することを特徴としている。
【００１３】
請求項７の発明は、請求項３から請求項６のいずれか一項に記載の情報コード読取装置において、前記中心位置検出手段が、前記中心セル画像の上下左右に隣接する４つの第１隣接セル画像の中心位置、及び前記中心セル画像にそれぞれ斜めに隣接する４つの第２隣接セル画像の中心位置をそれぞれ検出し、前記距離算出手段が、前記中心セル画像の中心位置と、４つの前記第１隣接セル画像の各中心位置との間の第１間隔を前記各距離としてそれぞれ算出している。
更に、各第１隣接セル画像の中心位置と、当該各第１隣接セル画像の両側に隣接する各第２隣接セル画像の中心位置との間の各第２間隔をそれぞれ算出する隣接セル間隔算出手段が設けられており、前記形状決定手段が、前記距離算出手段によって算出された前記第１間隔と、前記隣接セル間隔算出手段によって算出された前記第２間隔とに基づいて前記形状を決定することを特徴としている。
【発明の効果】
【００１４】
請求項１の発明は、撮像手段によって撮像された情報コードのコード画像において、セル画像に割り当てられた割当領域の大きさを検出し、その検出された大きさ（割当領域サイズ）に基づき、各セル画像の色判別の際に判別対象として用いる領域のサイズを決定している。そして、コード画像を構成する各セル画像それぞれにおいて、決定されたサイズに相当する領域を参照し、各セル画像の色を判別している。このようにすると、色判別の際に判別対象として用いる領域のサイズを、セル画像に割り当てられたサイズに応じて変更することができるため、各セルの色判別を、撮像サイズに適した判別方法で行うことができるようになる。
【００１５】
請求項２の発明は、コード画像を構成する各セル画像の中心画素を検出しており、各セル画像において、サイズ決定手段によって決定されたサイズに相当する大きさであって且つ中心画素を含んだ領域を色判別の対象領域として特定している。そして、その特定された対象領域を構成する各画素の色情報に基づいて各セル画像の色を判別している。このようにすると、信頼性の高い中心画素付近の領域を、認識されたセルサイズに相当する適切な大きさで、色判別の対象領域として用いることができる。
【００１６】
請求項３の発明は、撮像された情報コードのコード画像から、当該コード画像を構成するセル画像の形状情報を取得し、この形状情報に基づいて、各セル画像の色判別の際に判別対象として用いる領域の形状を決定している。そして、コード画像を構成する各セル画像それぞれにおいて、サイズ決定手段によって決定されたサイズに相当し且つ形状決定手段によって決定された形状に相当する領域を参照し、各セル画像の色を判別している。このようにすると、色判別の際に判別対象として用いる領域のサイズのみならず、形状についても、撮像状態に応じて適切に変更することができるため、各セルの色判別を、より一層適切な判別方法で行うことができるようになる。
【００１７】
請求項４の発明は、撮像手段によって撮像された情報コードのコード画像において、当該コード画像を構成するセル画像の形状情報を取得し、その取得された形状情報に基づき、各セル画像の色判別の際に判別対象として用いる領域の形状を決定している。そして、コード画像を構成する各セル画像それぞれにおいて、形状決定手段によって決定された形状に相当する領域を参照し、各セル画像の色を判別している。このようにすると、色判別の際に判別対象として用いる領域の形状を、セル画像の形状に応じて変更することができるため、各セルの色判別を、撮像形状に適した判別方法で行うことができるようになる。
【００１８】
請求項５の発明は、コード画像において、所定の中心セル画像と、当該中心セル画像の周囲に隣接する隣接セル画像とを検出し、中心セル画像から各隣接セル画像までの各距離を算出している。そして、それら算出された各距離に基づいて、各セル画像の色判別の際に用いる領域の形状を決定している。このようにすると、複雑な処理方法を用いることなくセル画像の形状を認識することができ、各セル画像の形状情報を迅速且つ簡易に取得できる。
【００１９】
請求項６の発明は、中心セル画像の中心位置と、隣接セル画像の中心位置とを検出し、これら中心位置に基づいて各距離（中心セル画像から各隣接セル画像までの各距離）を算出している。このようにすると、中心セル画像と隣接セル画像がどのような距離関係にあるかを適切に把握でき、その距離関係に基づいて各セル画像の形状を適切に特定できるようになる。
【００２０】
請求項７の発明は、中心セル画像の上下左右に隣接する４つの第１隣接セル画像の中心位置、及び中心セル画像にそれぞれ斜めに隣接する４つの第２隣接セル画像の中心位置をそれぞれ検出している。そして、中心セル画像の中心位置と、４つの第１隣接セル画像の各中心位置との間の各第１間隔をそれぞれ算出すると共に、各第１隣接セル画像の中心位置と、当該各第１隣接セル画像の両側に隣接する各第２隣接セル画像の中心位置との間の各第２間隔をそれぞれ算出している。そして、このように算出された各第１間隔及び各第２間隔に基づいてセル形状を決定している。このようにすると、中心セルと、当該中心セルの上下左右に隣接する隣接セル（第１隣接セル）及び斜めに隣接する隣接セル（第２隣接セル）の位置関係を適切に把握でき、その位置関係に基づいて各セル画像の形状をより一層適切に特定できるようになる。
【図面の簡単な説明】
【００２１】
【図１】図１は、本発明の第１実施形態に係る情報コード読取装置の電気的構成を概略的に例示するブロック図である。
【図２】図２は、図１の情報コード読取装置で行われる読取処理を例示するフローチャートである。
【図３】図３は、図２の読取処理で行われるデコード処理を例示するフローチャートである。
【図４】図４は、図３のデコード処理で行われるセル色判別処理を例示するフローチャートである。
【図５】図５（ａ）は、図１の情報コード読取装置で読み取られる情報コードのセル配列を概念的に例示する説明図であり、図５（ｂ）は、図５（ａ）の情報コードを撮像した画像例を示す説明図である。
【図６】図６（ａ）は、図５（ｂ）のコード画像においていずれかを着目セル画像とした場合の着目セル画像及びその周囲のセル画像を概念的に示す説明図であり、図６（ｂ）は、着目セル画像（中心セル画像）と各第１隣接セル画像との間の間隔（第１間隔）、及び、隣接セル画像同士の間隔（第２間隔）を説明する説明図である。
【図７】図７（ａ）は、着目セル画像（中心セル画像）と各第１隣接セル画像との間の各距離値（第１間隔）を例示する説明図である。図７（ｂ）は、参照領域を決定する上で基準となる基準領域を概念的に説明する説明図であり、図７（ｃ）は、図７（ａ）の各距離値（第１間隔）に基づいて基準領域を拡張した例を示す説明図である。
【図８】図８（ａ）は、隣接セル間の各距離値（第２間隔）を例示する説明図であり、図８（ｂ）は、拡張領域について、中心画素、最上列、最下列、最左列、最右列等の関係を示す説明図である。また、図８（ｃ）は、図８（ａ）の各距離値（第２間隔）に基づいて図８（ｂ）の拡張領域を更に拡張し、参照領域を定めた例を示す説明図である。
【図９】図９は、他の実施形態に関し、各セル画像のサイズに基づいて参照領域のサイズを決定する場合の設定例を示す説明図である。
【発明を実施するための形態】
【００２２】
[第１実施形態]
以下、本発明を具現化した第１実施形態について、図面を参照して説明する。
（全体構成）
まず、第１実施形態に係る情報コード読取装置の全体構成を概説する。
本実施形態に係る情報コード読取装置１は、主に、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等の光学系と、メモリ３５、制御回路４０、操作スイッチ４２、液晶表示装置４６等のマイクロコンピュータ（以下「マイコン」という）系と、電源スイッチ４１、電池４９等の電源系と、から構成されている。
【００２３】
光学系は、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等から構成されている。照明光源２１は、照明光Ｌｆを発光可能な照明光源として機能するもので、例えば、ＬＥＤとこのＬＥＤの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、ハウジングの読取口（図１では図示略）を介して読取対象物Ｒに向けて照明光Ｌｆを照射可能に構成されている。この読取対象物Ｒは、例えば、包装容器や包装用紙あるいはラベルといった表示媒体に相当するもので、この読取対象物Ｒには読取対象となる二次元コード１００が印刷等によって形成されている。
【００２４】
受光センサ２３は、読取対象物Ｒや二次元コード１００に照射されて反射した反射光Ｌｒを受光可能に構成されるもので、例えば、Ｃ−ＭＯＳやＣＣＤ等の固体撮像素子である受光素子を２次元に配列したエリアセンサが、これに相当する。受光センサ２３は、結像レンズ２７を介して入射する入射光を受光面２３ａにて受光し得る構成でプリント配線板（図示略）に実装されている。本実施形態では、受光センサ２３が「撮像手段」の一例に相当する。
【００２５】
フィルタ２５は、反射光Ｌｒの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタであり、反射光Ｌｒの波長相当を超える不要な光が受光センサ２３に入射することを抑制している。また、結像レンズ２７は、外部から読取口を介して入射する入射光を集光して受光センサ２３の受光面２３ａに像を結像する結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。なお、本実施形態では、結像レンズ２７が「結像手段」の一例に相当し、二次元コード１００（情報コード）からの反射光を取り込み、当該二次元コード１００の像を受光センサ２３（撮像手段）において結像させるように機能する。
【００２６】
次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示装置４６、通信インタフェース４８等から構成されている。このマイコン系は、その名の通り、マイコン（情報処理装置）として機能し得る制御回路４０及びメモリ３５を中心に構成されるもので、前述した光学系によって撮像された二次元コード１００の画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。また制御回路４０は、当該情報コード読取装置１の全体システムに関する制御も行っている。
【００２７】
このマイコン系では、光学系の受光センサ２３から出力される画像信号（アナログ信号）を、増幅回路３１にて所定ゲインで増幅し、その増幅信号をＡ／Ｄ変換回路３３によってアナログ信号からディジタル信号に変換している。このディジタル化された画像信号（即ち、画像データ）は、メモリ３５に入力され、画像データ蓄積領域に蓄積される。なお、同期信号発生回路３８は、受光センサ２３およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００２８】
メモリ３５は、半導体メモリ装置として構成されており、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ等）がこれに相当する。このメモリ３５のうちのＲＡＭには、前述した画像データ蓄積領域のほかに、制御回路４０が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルなども確保可能に構成されている。またＲＯＭには、後述する読取処理等を実行可能な所定プログラムやその他、照明光源２１、受光センサ２３等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【００２９】
制御回路４０は、情報コード読取装置１全体を制御しうるものであり、例えばＣＰＵ、システムバス、入出力インタフェース等を備えたマイコンによって構成されている。この制御回路４０は、情報処理機能を有しており、内蔵された入出力インタフェースを介して種々の入出力装置（周辺装置）が接続可能とされている。本実施形態では、図１に示すように、電源スイッチ４１、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示装置４６、通信インタフェース４８などが制御回路４０に接続されている。なお、通信インタフェース４８には、当該情報コード読取装置１の上位システムに相当するホストコンピュータＨＳＴ等が接続可能とされている。
【００３０】
電源系は、電源スイッチ４１、電池４９等によって構成されており、制御回路４０のオンオフ制御により、電池４９から上述した各装置や各回路に対して供給される駆動電圧の導通や遮断が制御されている。
【００３１】
（二次元コード）
次に、情報コード読取装置１の読取対象となる二次元コードを説明する。なお、図５（ａ）は、第１実施形態に係る情報コード読取装置１で読み取られる情報コードのセル配列を概念的に例示する説明図であり、図５（ｂ）は、図５（ａ）の情報コードを撮像した画像例を示す説明図である。
【００３２】
この二次元コード１００は、外形が正方形状のセルＣが集合してマトリックス状に配置されたセル集合体として構成されており、図５（ａ）の例では、セル数が縦横同数（１２セル×１２セル）となる配列で構成されている。また、二次元コード１００のコード領域（セルＣが配置される領域）は、外形が矩形状の矩形領域（図５（ａ）の例では、外形が正方形状の正方形領域）とされている。なお、図５（ａ）では、一部のセルのみに符号Ｃを付しており、他のセルの符号は省略している。また、図５（ａ）では、具体的セル構成は省略して示している。
【００３３】
図５（ａ）に示す二次元コード１００は、例えば、色彩又は濃度又は輝度の異なる３種類以上のセルを用いたいわゆるカラーコードとして構成されており、コード領域内に、特定パターン（データに関係なく一定のパターン）や、複数のコードブロック（データを表すデータコードブロックや、誤り訂正を行うための誤り訂正コードブロック等）が配置されている。なお、コードブロックでは、数値とセル表示色とが対応付けられており、例えば、データ値「０」に対して第１の色「白」、データ値「１」に対して第２の色「赤」、データ値「２」に対して第３の色「緑」、データ値「３」に対して第４の色「青」、データ値「４」、に対して第５の色「マゼンタ」、データ値「５」に対して第６の色「黄」、データ値「６」に対して第７の色「シアン」、データ値「７」、に対して第８の色「黒」といった具合に対応付けられている。
【００３４】
（読取処置）
次に、情報コード読取装置１で行われる読取処理について説明する。
図２は、情報コード読取装置１で行われる読取処理の流れを例示するフローチャートである。図２に示す読取処理は、例えば作業者が所定操作（例えば、操作スイッチ４２のオン操作）を行うことで開始され、まず、画像取得処理が行われる（Ｓ１）。この処理では、二次元コード１００が付された読取対象物Ｒ（図１）が受光センサ２３によって撮像され、二次元コード１００の画像データがメモリ３５に記憶される。
【００３５】
その後、Ｓ１にて取得された画像データにおいて二次元コード１００のコード領域（矩形領域）を特定する処理を行う（Ｓ２）。この特定処理では、例えば外縁が特定図形（例えば略四角形）となっている領域を抽出したり、或いは、外縁の明暗変化、色変化が激しい領域を抽出することで、コード領域（情報コードと推定される領域）を特定する。なお、画像処理の分野において異なる色の領域を区別する技術は各種提供されているため、これら公知の方法を用いて領域を特定してもよい。
【００３６】
Ｓ２の特定処理の後には、Ｓ２の処理においてコード領域（矩形領域）が特定できたか否かを判断し（Ｓ３）、特定できた場合にはＳ３にてＹｅｓに進み、デコード処理を行う（Ｓ４）。一方、特定できなかった場合には、Ｓ３にてＮｏに進み、当該読取処理を終了する。
【００３７】
次に、Ｓ４のデコード処理について説明する。Ｓ４のデコード処理は、例えば図３のような流れで行われ、まず、コード領域（矩形領域）をセル単位に分割し、セル位置を特定する処理を行う（Ｓ１１）。このＳ１１の処理では、コード画像を構成する各セル画像の中心画素を検出している。
なお、Ｓ１１の処理を実行する制御回路４０は、「中心画素検出手段」「中心位置検出手段」「セル画像検出手段」の一例に相当する。
【００３８】
Ｓ１１の処理の後には、Ｓ１１で特定された全セルの内の未選択となっているいずれかのセルを選択する処理を行う（Ｓ１２）。本実施形態では、コード領域を構成する各セルに対してＳ１３、Ｓ１４の処理が行われるようになっており、このＳ１２の処理では、Ｓ１３、Ｓ１４の処理が未だ行われていないいずれかのセルを選択することになる。Ｓ１２でいずれかのセルが選択された後には、その選択されたセルの色を判別する処理を行う（Ｓ１３）。
【００３９】
Ｓ１３のセル色判別処理は、例えば図４のような流れで行われ、まず、Ｓ１２で選択されたセル（現在の着目セル）と、当該着目セルの周囲の隣接セルとの間の各距離値を算出する処理を行う（Ｓ２１）。この処理では、Ｓ１２で選択された着目セルの画像を中心セル画像とし、当該中心セル画像の周囲に隣接する隣接セル画像を検出し、中心セル画像から各隣接セル画像までの各距離値を算出する。具体的には、図６（ａ）に示すように、Ｓ１１で特定された各セルの中心位置の座標データの中から、Ｓ１２で選択されたセル画像（中心セル画像Ｃ１）の中心位置Ｐ１の座標と、中心セル画像Ｃ１の上下左右に隣接する４つの第１隣接セル画像Ｄ１、Ｄ２、Ｄ３、Ｄ４の中心位置Ｑ１，Ｑ２，Ｑ３、Ｑ４の座標を読み出し、図６（ｂ）に示すように、着目セル画像（中心セル画像Ｃ１）の中心位置Ｐ１と、４つの第１隣接セル画像の各中心位置Ｑ１〜Ｑ４との間の各距離値Ａ１、Ａ２、Ａ３、Ａ４（第１間隔）を算出している。
【００４０】
なお、着目セル画像Ｃ１（対象セル画像）と各第１隣接セル画像Ｄ１，Ｄ２，Ｄ３、Ｄ４との各距離値Ａ１〜Ａ４は、着目セル画像Ｃ１の大きさを反映しており、Ｓ２１の処理を実行する制御回路４０が「割当サイズ検出手段」の一例に相当し、受光センサ２３（撮像手段）によって撮像された二次元コード１００（情報コード）のコード画像において、各セル画像に割り当てられた割当領域の大きさを検出するように機能する。
また、Ｓ２１の処理を実行する制御回路４０は、「距離算出手段」の一例に相当し、中心セル画像から各隣接セル画像までの各距離値を算出するように機能する。
【００４１】
図４のＳ２１の処理後には、着目セルの周囲に配される隣接セル同士の距離値を算出する処理を行う（Ｓ２２）。本実施形態では、上述したように、Ｓ１１の処理により、中心セル画像Ｃ１の上下左右に隣接する４つの第１隣接セル画像Ｄ１〜Ｄ４の各中心位置Ｑ１〜Ｑ４の座標、及び中心セル画像Ｃ１にそれぞれ斜めに隣接する４つの第２隣接セル画像Ｅ１〜Ｅ４の各中心位置Ｒ１〜Ｒ４の座標がそれぞれ特定されており、Ｓ２２では、まず、各第１隣接セル画像Ｄ１〜Ｄ４の中心位置Ｑ１〜Ｑ４の座標と、各第２隣接セル画像Ｅ１〜Ｅ４の各中心位置Ｒ１〜Ｒ４の座標を読み出している。そして、各中心位置Ｑ１〜Ｑ４及び各中心位置Ｒ１〜Ｒ４において、隣接するセル間の各距離値Ｂ１〜Ｂ８（各第２間隔）をそれぞれ算出している。
【００４２】
なお、Ｓ２２の処理を実行する制御回路４０は、「隣接セル間隔算出手段」の一例に相当する。
また、着目セル画像（中心セル画像Ｃ１）と各第１隣接セル画像Ｄ１〜Ｄ４との各距離値Ａ１〜Ａ４、及び隣接セル画像同士の各距離値Ｂ１〜Ｂ４は、着目セル画像（中心セル画像Ｃ１）の形状を反映する「形状情報」に相当する。また、Ｓ２１、Ｓ２２の処理を実行する制御回路４０は、「形状情報取得手段」の一例に相当し、受光センサ２３（撮像手段）によって撮像された二次元コード１００（情報コード）のコード画像から、当該コード画像を構成する各セル画像の「形状情報」を取得するように機能する。
【００４３】
図４のＳ２２の処理後には、着目セルの色判別の際に参照すべき参照領域のサイズ及び形状を決定する処理を行う（Ｓ２３）。
この処理では、Ｓ２１で算出された各距離値Ａ１〜Ａ４（第１間隔）と、Ｓ２３の処理で算出された各距離値Ｂ１〜Ｂ８（第２間隔）とに基づいて、着目セル（中心セル）の参照領域のサイズ及び形状を決定している。
【００４４】
本実施形態では、例えば図７（ｂ）のような基準領域が予め定められており、Ｓ２３の処理では、まず、Ｓ２１、Ｓ２２での距離算出結果に基づいて、この基準領域よりも大きいサイズの拡張領域を設定している。具体的には、中心セル画像Ｃ１と上方の第１隣接セル画像Ｄ１との距離関係に基づいて、図７（ｂ）の基準領域を上方へどの程度拡張するかを定めており、同様に、中心セル画像Ｃ１と下方の第１隣接セル画像Ｄ２との距離関係に基づいて、基準領域を下方へどの程度拡張するかを定めている。また、中心セル画像Ｃ１と左方の第１隣接セル画像Ｄ３との距離関係に基づいて、基準領域の左方へどの程度拡張するかを定めており、中心セル画像Ｃ１と右方の第１隣接セル画像Ｄ４との距離関係に基づいて、基準領域を左方へどの程度拡張するかを定めている。
【００４５】
本実施形態では、Ｓ２１、Ｓ２２において距離値を算出する上で基準となる単位サイズ（単位長さ）がＮと定められており、各距離値Ａ１〜Ａ４は、各中心間距離がこのＮの約何倍であるかを示す値として求めている。例えば、中心セル画像Ｃ１の中心位置Ｐ１から第１隣接セル画像Ｄ１の中心位置Ｑ１までの実際の距離がＡ１’である場合、Ａ１’／Ｎの整数部分の値（即ち、Ａ１’／Ｎの小数部分を切り捨てた値）を距離Ａ１の値としている。同様に、中心位置Ｐ１から中心位置Ｑ２までの実際の距離をＡ２’としたときのＡ２’／Ｎの整数部分の値をＡ２とし、中心位置Ｐ１から中心位置Ｑ３までの実際の距離をＡ３’としたときのＡ３’／Ｎの整数部分の値をＡ３とし、中心位置Ｐ１から中心位置Ｑ４までの実際の距離をＡ４’としたときのＡ４’／Ｎの整数部分の値をＡ４として求めている。
【００４６】
Ｓ２３では、このようにして得られた各距離値Ａ１、Ａ２、Ａ３、Ａ４の分だけ、基準領域を上下左右に拡張している。上方については、中心画素Ｗ１の上方列Ｇ２を上方にＡ１倍拡張し、下方については、中心画素Ｆ１の下方列Ｇ２を下方にＡ２倍拡張する。また、左方については、中心画素Ｗ１の左方列Ｇ３を左方にＡ３倍拡張し、右方については、中心画素Ｆ１の右方列Ｇ４を右方にＡ４倍拡張する。従って、中心画素Ｇ１の上方には、Ａ１列配置されることになり、中心画素Ｆ１の下方にはＡ２列配置されることになる。また、中心画素Ｆ１の左方には、Ａ３列配置され、中心画素Ｆ１の右方にはＡ４列配置される。そして、全体としてＸ行Ｙ列（Ｘ×Ｙ）の拡張領域が得られる（但し、Ｘ＝Ａ１＋Ａ２＋１、Ｙ＝Ａ３＋Ａ４＋１）。
【００４７】
図７（ａ）の例では、Ｓ２１で得られた各距離値Ａ１〜Ａ４が、Ａ１＝１、Ａ２＝２、Ａ３＝２、Ａ４＝２である場合を例示しており、このような場合、基準領域が３行３列（図７（ｂ））のときには、上方列が１倍拡張され（即ち変化はなく）、下方列が２倍に拡張され、左方列が２倍に拡張され、右方列が２倍に拡張される。そして、全体として図７（ｃ）のような４行５列の拡張領域が得られる。
【００４８】
更に、本実施形態では、隣接セル同士の距離関係に基づいて、上記拡張領域の形状変化度合を決定している。具体的には、中心セル画像Ｃ１の上方に配置される第１隣接セル画像Ｄ１と、各第２隣接セル画像Ｅ１、Ｅ３との各距離関係を求め、これら各距離関係に基づいて、図８（ｂ）に示す拡張領域の最上列Ｈ１の形状変化度合を決定している。同様に、中心セル画像Ｃ１の下方に配置される第１隣接セル画像Ｄ２と各第２隣接セル画像Ｅ２、Ｅ４との各距離関係を求め、これら各距離関係に基づいて拡張領域の最下列Ｈ２の形状変化度合を決定している。更に、中心セル画像Ｃ１の左方に配置される第１隣接セル画像Ｄ３と各第２隣接セル画像Ｅ１、Ｅ２との各距離関係を求め、これら各距離関係に基づいて拡張領域の最左列Ｈ３の形状変化度合を決定している。更に、中心セル画像Ｃ１の右方に配置される第１隣接セル画像Ｄ４と各第２隣接セル画像Ｅ３、Ｅ４との各距離関係を求め、これら各距離関係に基づいて拡張領域の最右列Ｈ４の形状変化度合を決定している。
【００４９】
本実施形態では、Ｓ２２において、各距離値Ａ１〜Ａ４の算出方法と同様の方法で各距離値Ｂ１〜Ｂ８が求められている。即ち、中心位置Ｑ１から中心位置Ｒ１，Ｒ３までの実際の距離がそれぞれＢ１’、Ｂ２’である場合、Ｂ１’／Ｎの整数部分の値（即ち、Ｂ１’／Ｎの小数部分を切り捨てた値）を距離値Ｂ１とし、Ｂ２’／Ｎの整数部分の値（即ち、Ｂ２’／Ｎの小数部分を切り捨てた値）を距離値Ｂ２として求めている。同様に、中心位置Ｑ２から中心位置Ｒ２，Ｒ４までの実際の距離がそれぞれＢ５’、Ｂ６’である場合、Ｂ５’／Ｎの整数部分の値（即ち、Ｂ５’／Ｎの小数部分を切り捨てた値）を距離値Ｂ５とし、Ｂ６’／Ｎの整数部分の値（即ち、Ｂ６’／Ｎの小数部分を切り捨てた値）を距離値Ｂ６として求めている。更に、中心位置Ｑ３から中心位置Ｒ１，Ｒ２までの実際の距離がそれぞれＢ３’、Ｂ４’である場合、Ｂ３’／Ｎの整数部分の値（即ち、Ｂ３’／Ｎの小数部分を切り捨てた値）を距離値Ｂ３とし、Ｂ４’／Ｎの整数部分の値（即ち、Ｂ４’／Ｎの小数部分を切り捨てた値）を距離値Ｂ４としている。また、中心位置Ｑ４から中心位置Ｒ３，Ｒ４までの実際の距離がそれぞれＢ７’、Ｂ８’である場合、Ｂ７’／Ｎの整数部分の値（即ち、Ｂ７’／Ｎの小数部分を切り捨てた値）を距離値Ｂ７とし、Ｂ８’／Ｎの整数部分の値（即ち、Ｂ８’／Ｎの小数部分を切り捨てた値）を距離値Ｂ８としている。
【００５０】
Ｓ２３の処理では、このようにして得られた距離値Ｂ１〜Ｂ８に基づき、拡張領域の最上列Ｈ１、最下列Ｈ２、最左列Ｈ３、最右列Ｈ４の画素数を設定している。例えば、最上列については、中心画素Ｆ１の列の上端画素Ｊ１よりも左方に配置されるべき画素数を、基準数（１）からＢ１倍した値とし、中心画素Ｆ１の列の上端画素Ｊ１よりも右方に配置されるべき画素数を、基準数（１）からＢ２倍した値とするように、最上列Ｈ１の形状（画素配列）を新たに設定している。また、下方については、中心画素Ｆ１の列の下端画素Ｊ２よりも左方に配置されるべき画素数を、基準数（１）からＢ５倍した値とし、中心画素Ｆ１の列の下端画素Ｊ２よりも右方に配置されるべき画素数を、基準数（１）からＢ６倍した値とするように、最下列Ｈ２の形状（画素配列）を新たに設定している。また、左方については、中心画素Ｆ１の列の左端画素Ｊ３よりも上方に配置されるべき画素数を、基準数（１）からＢ３倍した値とし、中心画素Ｆ１の列の左端画素Ｊ３よりも下方に配置されるべき画素数を、基準数（１）からＢ４倍した値とするように、最左列Ｈ３の形状（画素配列）を新たに設定している。更に、右方については、中心画素Ｆ１の列の右端画素Ｊ４よりも上方に配置されるべき画素数を、基準数（１）からＢ７倍した値とし、中心画素Ｆ１の列の右端画素Ｆ４よりも下方に配置されるべき画素数を、基準数（１）からＢ８倍した値とするように、最左列Ｈ４の形状（画素配列）を新たに設定している。
【００５１】
図８（ａ）の例では、Ｓ２２で得られた各距離値Ｂ１〜Ｂ８が、Ｂ１＝２、Ｂ２＝２、Ｂ３＝１、Ｂ４＝２、Ｂ５＝３、Ｂ６＝３、Ｂ７＝１、Ｂ８＝２である場合を例示しており、図８（ｃ）では、図８（ａ）のような各第２間隔Ｂ１〜Ｂ８に基づいて、図８（ｂ）の拡張領域（即ち、図７（ｃ）の拡張領域）の形状を変更した例を示している。
【００５２】
この例では、まず、中心画素Ｆ１を含んだ上下方向の画素列の上端画素Ｊ１よりも左方に配置されるべき画素数を基準数（１）から２倍した値（即ち「２」）とする。なお、図８（ｂ）に示す拡張領域の当該位置（即ち、上端画素Ｊ１よりも左側の位置）も同じ値なので、この位置の形状は変更しないことになる。同様に、中心画素Ｆ１を含んだ上下方向の画素列の上端画素Ｊ１よりも右方に配置されるべき画素数を、基準数（１）から２倍した値（即ち「２」）とする。この場合も、図８（ｂ）の拡張領域の当該位置（即ち、上端画素Ｊ１よりも右側の位置）が同じ値なので、この位置の形状は変更しないことになる。
【００５３】
また、最下列については、中心画素Ｆ１を含んだ上下方向の画素列の下端画素Ｊ２よりも左方に配置されるべき画素数を、基準数（１）から３倍した値（即ち「３」）とする。なお、図８（ｂ）の拡張領域では、当該位置（即ち、下端画素Ｊ２よりも左側の位置）の画素数が「２」であるため、図８（ｃ）のように１画素分左方に拡張する。また、中心画素Ｆ１を含んだ上下方向の画素列の下端画素Ｊ２よりも右方に配置されるべき画素数を、基準数（１）から３倍した値とする。図８（ｂ）の拡張領域では、この位置（（即ち、下端画素Ｊ２よりも右側の位置）の画素数が「２」であるため、図８（ｃ）のように１画素分右方に拡張する。
【００５４】
また、最左列については、中心画素Ｆ１を含んだ左右方向の画素列の左端画素Ｊ３よりも上方に配置されるべき画素数を、基準数（１）から１倍した値とする。なお、図８（ｂ）の拡張領域の当該位置（即ち、左端画素Ｊ３よりも上側の位置）も同じ値なので、この位置の形状は変更しないことになる。また、中心画素Ｆ１を含んだ左右方向の画素列の左端画素Ｊ３よりも下方に配置されるべき画素数を、基準数（１）から２倍した値とする。この場合も、図８（ｂ）の拡張領域の当該位置（即ち、左端画素Ｊ３よりも下側の位置）が同じ値なので、この位置の形状は変更しないことになる。
【００５５】
また、最右列については、中心画素Ｆ１を含んだ左右方向の画素列の右端画素Ｊ４よりも上方に配置されるべき画素数を、基準数（１）から１倍した値とする。図８（ｂ）の拡張領域の当該位置（即ち、右端画素Ｊ４よりも上側の位置）も同じ値なので、この位置の形状は変更しないことになる。また、中心画素Ｆ１を含んだ左右方向の画素列の右端画素Ｊ４よりも下方に配置されるべき画素数を、基準数（１）から２倍した値とする。この場合も、図８（ｂ）の拡張領域の当該位置（即ち、右端画素Ｊ４よりも下側の位置）が同じ値なので、この位置の形状は変更しないことになる。
【００５６】
このようにして拡張領域の最上列Ｈ１、最下列Ｈ２、最左列Ｈ３、最右列Ｈ４の画素数を設定することで、図８（ｃ）のような画素領域（参照領域）が得られることとなる。なお、左右方向に延びる列の内、中心画素Ｆ１を含む左右方向列、最上列、最下列以外の中間列については、中心画素Ｆ１を含む左右方向列、最上列、最下列の中の最も近い画素列の画素数や画素配列と同一としてもよく、中間列の画素数を、中心画素Ｆ１を含む左右方向列、最上列、最下列の内の当該中間列の上下両側に配置される列の値の中間値としてもよい。例えば、図８（ｃ）の例では、中心画素を含む左右方向列と最下列の間に中間列が存在するが、この中間列の画素数については、この中間列に最も近い左右方向の列（中心画素を含む左右方向列、或いは最下列）と同一の画素数としてもよく、中間列の画素数を、当該中間列の上下両側に配置される各列（中心画素Ｆ１を含む左右方向列及び最下列）の中間値（中間値が少数を含む場合には、当該少数を切り上げ、切り捨て、或いは四捨五入した値）としてもよい。
【００５７】
なお、Ｓ２３の処理を実行する制御回路４０は、「サイズ決定手段」の一例に相当し、上記「割当サイズ検出手段」によって検出された割当領域の大きさに基づき、各セル画像の色判別の際に判別対象として用いる領域のサイズを決定するように機能する。
また、Ｓ２３の処理を実行する制御回路４０は、「形状決定手段」の一例に相当し、上記「形状情報取得手段」によって取得された「形状情報」に基づき、各セル画像の色判別の際に判別対象として用いる領域の形状を決定するように機能する。具体的には、上記「距離算出手段」によって算出された各距離に基づいて、各セル画像の色判別の際に用いる領域の形状を決定するように機能している。
また、Ｓ２３の処理を実行する制御回路４０は、「対象領域特定手段」の一例に相当し、「中心画素検出手段」によって検出された中心画素と、「サイズ決定手段」によって決定されたサイズとに基づき、各セル画像において、その決定されたサイズに相当する大きさであって且つ中心画素を含んだ領域を色判別の対象領域として特定するように機能する。
【００５８】
図４のＳ２３の処理後には、対象セルのセル色を判別する処理を行う（Ｓ２４）。Ｓ２４では、対象セル（Ｓ１２で選択された着目セル）のセル画像において、Ｓ２３で決定された参照領域に相当する領域を対象領域として参照し、当該対照領域を構成する各画素の色情報に基づいて各セル画像の色を判別する。例えば、図８（ａ）（ｃ）のような場合には、対象セル画像（即ち、中心セル画像Ｃ１）において、中心位置Ｐ１を中心画素Ｆ１とするような図８（ｃ）のような画素領域を「対象領域」として特定し、このような対象領域の各画素の色情報を取得する。例えば、対象領域の全画素におけるＲ成分の平均値、対象領域の全画素におけるＧ成分の平均値、対象領域の全画素におけるＢ成分の平均値をそれぞれ求め、得られたＲ成分平均値、Ｇ成分平均値、Ｂ成分平均値に基づいて対象セル（Ｓ１２選択された着目セル）の色が候補とされる色のいずれかを判別する。なお、セル画像のＲ成分値、Ｇ成分値、Ｂ成分値に基づいて色判別を行う方法は公知の様々な方法を用いることができる。
【００５９】
なお、Ｓ２４の処理を実行する制御回路４０は、「セル色判別手段」の一例に相当し、コード画像を構成する各セル画像それぞれにおいて、上記「サイズ決定手段」によって決定されたサイズに相当する領域を参照し、各セル画像の色を判別するように機能する。具体的には、コード画像を構成する各セル画像それぞれにおいて、上記「サイズ決定手段」によって決定されたサイズに相当し且つ上記「形状決定手段」によって決定された形状に相当する領域を参照し、各セル画像の色を判別するように機能する。
【００６０】
上記のように対象セル（Ｓ１２で選択された着目セル）について図３のセル色判別処理が行われた後には、Ｓ１３で判別された対象セルの色を、当該色に対応付けられた値に変換し、バイナリデータとしてメモリ３５に記憶する（Ｓ１４）。その後、全てのセルについてＳ１３、Ｓ１４の処理が行われたか否かを判断し（Ｓ１５）、未だ行われていないセルが存在する場合には、Ｓ１５にてＮｏに進んでＳ１２に戻り、残っているセルをいずれか一つ選択してＳ１３、Ｓ１４の処理を繰り返す。一方、全てのセルに対してＳ１３、Ｓ１４の処理が行われた場合には、Ｓ１５にてＹｅｓに進み、誤り訂正処理を行い、デコード結果を出力する。
【００６１】
（本実施形態の主な効果）
また、撮像手段によって撮像された情報コードのコード画像において、セル画像に割り当てられた割当領域の大きさを検出し、その検出された大きさ（割当領域サイズ）に基づき、各セル画像の色判別の際に判別対象として用いる領域のサイズを決定している。そして、コード画像を構成する各セル画像それぞれにおいて、決定されたサイズに相当する領域を参照し、各セル画像の色を判別している。このようにすると、色判別の際に判別対象として用いる領域のサイズを、セル画像に割り当てられたサイズに応じて変更することができるため、各セルの色判別を、撮像サイズに適した判別方法で行うことができるようになる。
【００６２】
また、コード画像を構成する各セル画像の中心画素を検出しており、各セル画像において、サイズ決定手段によって決定されたサイズに相当する大きさであって且つ中心画素を含んだ領域を色判別の対象領域として特定している。そして、その特定された対象領域を構成する各画素の色情報に基づいて各セル画像の色を判別している。このようにすると、信頼性の高い中心画素付近の領域を、認識されたセルサイズに相当する適切な大きさで、色判別の対象領域として用いることができる。
【００６３】
また、撮像された情報コードのコード画像から、当該コード画像を構成するセル画像の形状情報を取得し、この形状情報に基づいて、各セル画像の色判別の際に判別対象として用いる領域の形状を決定している。そして、コード画像を構成する各セル画像それぞれにおいて、サイズ決定手段によって決定されたサイズに相当し且つ形状決定手段によって決定された形状に相当する領域を参照し、各セル画像の色を判別している。このようにすると、色判別の際に判別対象として用いる領域のサイズのみならず、形状についても、撮像状態に応じて適切に変更することができるため、各セルの色判別を、より一層適切な判別方法で行うことができるようになる。
【００６４】
また、コード画像において、所定の中心セル画像と、当該中心セル画像の周囲に隣接する隣接セル画像とを検出し、中心セル画像から各隣接セル画像までの各距離を算出している。そして、それら算出された各距離に基づいて、各セル画像の色判別の際に用いる領域の形状を決定している。このようにすると、複雑な処理方法を用いることなくセル画像の形状を認識することができ、各セル画像の形状情報を迅速且つ簡易に取得できる。
【００６５】
また、中心セル画像の中心位置と、隣接セル画像の中心位置とを検出し、これら中心位置に基づいて各距離（中心セル画像から各隣接セル画像までの各距離）を算出している。このようにすると、中心セル画像と隣接セル画像がどのような距離関係にあるかを適切に把握でき、その距離関係に基づいて各セル画像の形状を適切に特定できるようになる。
【００６６】
また、中心セル画像の上下左右に隣接する４つの第１隣接セル画像の中心位置、及び中心セル画像にそれぞれ斜めに隣接する４つの第２隣接セル画像の中心位置をそれぞれ検出している。そして、中心セル画像の中心位置と、４つの第１隣接セル画像の各中心位置との間の各第１間隔をそれぞれ算出すると共に、各第１隣接セル画像の中心位置と、当該各第１隣接セル画像の両側に隣接する各第２隣接セル画像の中心位置との間の各第２間隔をそれぞれ算出している。そして、このように算出された各第１間隔及び各第２間隔に基づいてセル形状を決定している。このようにすると、中心セルと、当該中心セルの上下左右に隣接する隣接セル（第１隣接セル）及び斜めに隣接する隣接セル（第２隣接セル）の位置関係を適切に把握でき、その位置関係に基づいて各セル画像の形状をより一層適切に特定できるようになる。
【００６７】
［他の実施形態］
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【００６８】
上記実施形態では、拡張領域を設定した後、図８（ｃ）のように更に当該拡張領域の形状を変更していたが、図７（ｃ）のように得られた拡張領域を参照領域として用いてもよい。
【００６９】
上記実施形態では、基準領域を３行３列の画素領域としたが、これに限定されない。例えば、１画素（１行１列の画素領域）を基準領域としてもよく、５行５列等、他のサイズの画素領域を基準領域としてもよい。
【００７０】
上記実施形態では、各セルに割り当てられた画素領域の大きさと形状を共に検出したが、各セルに割り当てられた画素領域の大きさのみを検出してもよい。例えば、各セル画像に割り当てられた画素領域の大きさを示す値として、各セル画像に割り当てられた画素数を検出し、画素数に応じて参照領域の大きさを定めるようにしてもよい。この例としては、図９のように、割り当てられた画素数が多くなるにつれて参照領域が大きくなるように予め画素数と参照領域サイズとを対応付けて定めておく方法が挙げられる。この場合、各セルの色判別を行う際に、色判別を行おうとするセルの画素数を検出し、その画素数に応じた参照領域サイズを読み出すようにすればよい。そして、その色判別を行おうとするセル画像の中心位置を含んだ対応サイズ（読み出されたサイズ）の領域を参照し、色判別を行うようにすればよい。
【符号の説明】
【００７１】
１…情報コード読取装置
２３…受光センサ（撮像手段）
２７…結像レンズ（結像手段）
４０…制御回路（割当サイズ検出手段、サイズ決定手段、セル色判別手段、中心画素検出手段、対象領域特定手段、形状情報取得手段、形状決定手段、セル画像検出手段、距離算出手段、中心位置検出手段、隣接セル間隔算出手段）
【図１】
2010277169.tif 000003
【図２】
2010277169.tif 000004
【図３】
2010277169.tif 000005
【図４】
2010277169.tif 000006
【図６】
2010277169.tif 000007
【図７】
2010277169.tif 000008
【図８】
2010277169.tif 000009
【図９】
2010277169.tif 000010
【図５】
2010277169.tif 000011