(57)【特許請求の範囲】
【請求項１】
第１及び第２の色彩と当該第１及び第２の色彩の混色である第３の色彩とを含む３以上の色彩がそれぞれ付された３色以上のセルが複数配列されてなる光学式認識コードであって、当該セルの色彩の遷移によってデータを表す光学式認識コードを読み取る光学式認識コード読取装置において、
前記光学式認識コードを含み、複数の画素から構成される画像データを取得する取得手段と、
前記取得された画像データに含まれる光学式認識コードを構成する複数の画素のうちの前記第３の色彩を有する第１の画素に対して予め定められた距離の位置にある一以上の第２の画素が有する色彩の全てが前記第３の色彩と異なるかを判定する判定手段と、
前記複数の第２の画素が有する色彩の全てが前記第３の色彩と異なると判定された場合、前記第１の画素が有する色彩を前記第３の色彩から前記第１または第２の色彩に変更する変更手段と、
前記色彩が変更された後の画像データに含まれる光学式認識コードを読み取る読取手段と
を具備することを特徴とする光学式認識コード読取装置。
【請求項２】
前記取得された画像データに含まれる光学式認識コードを検証するための検証データを予め格納する格納手段と、
前記格納手段に格納されている検証データに基づいて、前記色彩が変更された後の画像データに含まれる光学式認識コードが有効であるか無効であるかを判定する検証手段を更に具備し、
前記読取手段は、前記色彩が変更された後の画像データに含まれる光学式認識コードが有効であると判定された場合に、当該光学式認識コードを読み取る
ことを特徴とする請求項１記載の光学式認識コード読取装置。
【請求項３】
前記検証データは、前記光学式認識コードにおいて配列されるセルの数を含み、
前記検証手段は、
前記色彩が変更された後の画像データに含まれる光学式認識コードを構成する複数の画素の各々が有する色彩に基づいて、当該光学式認識コードを前記第１、第２及び第３の色彩を含む３以上の色彩の各々の領域に分割する分割手段を含み、
前記検証データに含まれるセルの数が前記分割された領域の数と等しい場合、前記色彩が変更された後の画像データに含まれる光学式認識コードが有効であると判定する
ことを特徴とする請求項２記載の光学式認識コード読取装置。
【請求項４】
前記検証データは、前記光学式認識コードにおいて有効な色彩の配列に関するルールを含み、
前記検証手段は、
前記色彩が変更された後の画像データに含まれる光学式認識コードを構成する複数の画素の各々が有する色彩に基づいて、当該光学式認識コードを前記第１、第２及び第３の色彩を含む３以上の色彩の各々の領域に分割する分割手段を含み、
前記分割された３以上の色彩の各々の領域の配列が前記検証データに含まれるルールに合致する場合、前記色彩が変更された後の画像データに含まれる光学式認識コードが有効であると判定する
ことを特徴とする請求項２記載の光学式認識コード読取装置。
【請求項５】
前記色彩が変更された後の画像データに含まれる光学式認識コードを構成する画素の各々が有する色彩に基づいて、当該光学式認識コードを前記第１、第２及び第３の色彩を含む３以上の色彩の各々の領域に分割する分割手段を更に具備し、
前記読取手段は、前記分割された領域のうち予め定められた面積以上の領域の配列に基づいて、前記色彩が変更された後の画像データに含まれる光学式認識コードを読み取る
ことを特徴とする請求項１記載の光学式認識コード読取装置。
【請求項６】
前記第１の画素に対して前記予め定められた距離の位置にある複数の第２の画素は、当該第１の画素を挟むように位置する２つの画素を含むことを特徴とする請求項１記載の光学式認識コード読取装置。
【請求項７】
前記第１の画素に対して前記予め定められた距離の位置にある複数の第２の画素は、当該第１の画素の左右方向に位置する２つの画素及び当該第１の画素の上下方向に位置する２つの画素を含み、
前記変更手段は、前記第１の画素の左右方向に位置する２つの画素が有する色彩の両方が前記第３の色彩と異なると判定された場合、または前記第１の画素の上下方向に位置する２つの画素の両方が前記第３の色彩と異なると判定された場合、前記第１の画素が有する色彩を前記第３の色彩から前記第１または第２の色彩に変更する
ことを特徴とする請求項１記載の光学式認識コード読取装置。
【請求項８】
第１及び第２の色彩と当該第１及び第２の色彩の混色である第３の色彩とを含む３以上の色彩がそれぞれ付された３色以上のセルが複数配列されてなる光学式認識コードであって、当該セルの色彩の遷移によってデータを表す光学式認識コードを読み取る光学式認識コード読取方法であって、
前記光学式認識コードを含み、複数の画素から構成される画像データを取得するステップと、
前記取得された画像データに含まれる光学式認識コードを構成する複数の画素のうちの前記第３の色彩を有する第１の画素に対して予め定められた距離の位置にある一以上の第２の画素が有する色彩の全てが前記第３の色彩と異なるかを判定するステップと、
前記複数の第２の画素が有する色彩の全てが前記第３の色彩と異なると判定された場合、前記第１の画素が有する色彩を前記第３の色彩から前記第１または第２の色彩に変更するステップと、
前記色彩が変更された後の画像データに含まれる光学式認識コードを読み取るステップと
を具備することを特徴とする光学式認識コード読取方法。
【請求項９】
第１及び第２の色彩と当該第１及び第２の色彩の混色である第３の色彩とを含む３以上の色彩がそれぞれ付された３色以上のセルが複数配列されてなる光学式認識コードであって、当該セルの色彩の遷移によってデータを表す光学式認識コードを読み取る光学式認識コード読取装置のコンピュータによって実行されるプログラムであって、
前記コンピュータに、
前記光学式認識コードを含み、複数の画素から構成される画像データを取得するステップと、
前記取得された画像データに含まれる光学式認識コードを構成する複数の画素のうちの前記第３の色彩を有する第１の画素に対して予め定められた距離の位置にある一以上の第２の画素が有する色彩の全てが前記第３の色彩と異なるかを判定するステップと、
前記複数の第２の画素が有する色彩の全てが前記第３の色彩と異なると判定された場合、前記第１の画素が有する色彩を前記第３の色彩から前記第１または第２の色彩に変更するステップと、
前記色彩が変更された後の画像データに含まれる光学式認識コードを読み取るステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光学式認識コード読取装置、光学式認識コード読取方法、プログラム及び光学式認識コードに関する。
【背景技術】
【０００２】
一般的に、物品に付される情報処理用の光学式認識コード（光学式シンボル）として種々のものが利用されている。光学式認識コードは光学的に読み取られるコードであり、このような光学式認識コードとしては例えば一次元方向の黒及び白のパターンで情報を記録するバーコード等が広く実用化されている。
【０００３】
更に、近年では、例えば３色の色彩（例えば、赤色、緑色、青色）のうちの１の色彩が付されたセルが所定の順番で複数配列されてなる光学式認識コード（以下、カラービットコードと表記）が開発されている（例えば、特許文献１を参照）。
【０００４】
このカラービットコードによれば、当該カラービットコードの構成色である例えば３色の色彩の遷移（配列）によって特定のデータを表すことができるため、カラービットコードにおける各色彩の占める領域の大きさ及び形状の制限は緩く、当該カラービットコードが例えば凹凸のある表面や柔軟性のある素材上に付された場合であっても、バーコード等と比較して、高い読み取り精度を実現することができる。
【０００５】
ところで、上記したカラービットコードにおける色彩の遷移を読み取るためには、例えばカメラによって撮像されたカラービットコードを含む画像（データ）から当該カラービットコードの部分を切り出す必要があるが、状況によっては当該切り出しが困難な場合がある。
【０００６】
そこで、例えばカラービットコードを構成するセル群の一部が乱れているような場合でも、当該カラービットコードを読み取ることが可能な技術（以下、先行技術と表記）が開示されている（例えば、特許文献２を参照）。
【０００７】
例えばカラービットコードにおいて隣接する２つの色彩の領域（セル）の一部が重複した場合、当該２つの色彩の混色（の領域）が認識される場合がある。このような場合、上記した先行技術では、隣接する２つの色彩の混色として認識される領域を、当該２つの色彩のどちらか一方の領域として扱う。これにより、先行技術によれば、混色が認識されたような場合であってもカラービットコードを読み取ることができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−０２７０２９号公報
【特許文献２】特開２０１１−１０３０２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した先行技術においては、カラービットコードにおいて隣接する２つの色彩の混色がカラービットコードの構成色（つまり、カラービットコードにおいて意味のある色彩）でないことを前提とするものである。
【００１０】
すなわち、例えばカラービットコードにおいて隣接する２つの色彩の混色が当該カラービットコードの構成色として採用されている場合、先行技術では、カラービットコードを読み取る際に認識された色彩が、混色としての色彩であるかまたはカラービットコードの構成色としての色彩であるかを判定することはできない。これは、カラービットコードの誤読の原因となる。
【００１１】
そこで、本発明の目的は、２つの色彩及び当該２つの色彩の混色を含む複数の色彩を光学式認識コードの構成色として使用した場合であっても誤読を防止することが可能な光学式認識コード読取装置、光学式認識コード読取方法、プログラム及び光学式認識コードを提供することにある。
【課題を解決するための手段】
【００１２】
本発明の１つの態様によれば、第１及び第２の色彩と当該第１及び第２の色彩の混色である第３の色彩とを含む３以上の色彩がそれぞれ付された３色以上のセルが複数配列されてなる光学式認識コードであって、当該セルの色彩の遷移によってデータを表す光学式認識コードを読み取る光学式認識コード読取装置が提供される。この光学式認識コード読取装置は、前記光学式認識コードを含み、複数の画素から構成される画像データを取得する取得手段と、前記取得された画像データに含まれる光学式認識コードを構成する複数の画素のうちの前記第３の色彩を有する第１の画素に対して予め定められた距離の位置にある一以上の第２の画素が有する色彩の全てが前記第３の色彩と異なるかを判定する判定手段と、前記複数の第２の画素が有する色彩の全てが前記第３の色彩と異なると判定された場合、前記第１の画素が有する色彩を前記第３の色彩から前記第１または第２の色彩に変更する変更手段と、前記色彩が変更された後の画像データに含まれる光学式認識コードを読み取る読取手段とを具備する。
【発明の効果】
【００１３】
２つの色彩及び当該２つの色彩の混色を含む複数の色彩を光学式認識コードの構成色として使用した場合であっても誤読を防止することを可能とする。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る光学式認識コード読取装置の外観の一例を示す図。
【図２】図１に示す光学式認識コード読取装置１０のハードウェア構成の一例を示す図。
【図３】本実施形態に係る光学式認識コード読取装置１０のいて読み取られるカラービットコードの一例を示す図。
【図４】カラービットコードを読み取る際に生じる混色について説明するための図。
【図５】本実施形態に係る光学式認識コード読取装置１０の機能構成を示す図。
【図６】本実施形態に係る光学式認識コード読取装置１０の処理手順を示すフローチャート。
【図７】図６に示すステップＳ２〜Ｓ６の処理について具体的に説明するための図。
【図８】図６に示すステップＳ２〜Ｓ６の処理について具体的に説明するための図。
【図９】図６に示すステップＳ２〜Ｓ６の処理について具体的に説明するための図。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について図面を参照して説明する。  
図１は、本実施形態に係る光学式認識コード読取装置の外観の一例を示す図である。本実施形態において、光学式認識コード読取装置は、カメラを備えた情報処理装置であり、例えばスマートフォン、タブレット端末及びパーソナルコンピュータ（ＰＣ）等を含む。なお、図１においては、光学式認識コード読取装置１０がスマートフォンである場合を示している。図１に示す光学式認識コード読取装置（スマートフォン）１０の場合、図示されていないが、例えば背面にカメラが搭載されている。
【００１６】
本実施形態に係る光学式認識コード読取装置１０は、カメラによって光学式認識コード（光学式シンボル）を撮像することによって、当該光学式認識コードを読み取ることができる。なお、本実施形態に係る光学式認識コード読取装置１０において読み取ることができる光学式認識コードには、例えば３以上の色彩のうちの１の色彩が付されたセル（当該３以上の色彩がそれぞれ付された３色以上のセル）が複数配列されてなる光学式認識コード（以下、カラービットコードと表記）が含まれる。このカラービットコードによれば、複数配列された各セルに付されている色彩の遷移によって特定のデータ（例えば、ＩＤ等）を表すことができる。このようにカラービットコードは色彩の遷移によって特定のデータを表すものであるから、当該カラービットコードにおいては、隣接するセル同士には同色は付されず、異なる色彩が付される。
【００１７】
なお、本実施形態に係る光学式認識コード読取装置１０において読み取ることを想定しているカラービットコードの詳細については後述する。
【００１８】
図２は、図１に示す光学式認識コード読取装置１０のハードウェア構成の一例を示す。ここでは、光学式認識コード読取装置１０がスマートフォンであるものとして説明する。
【００１９】
図２に示すように、光学式認識コード読取装置１０においては、バス１１に、不揮発性メモリ１２、ＣＰＵ１３、メインメモリ１４、無線通信部１５、ディスプレイ１６及びタッチパネル１７等が接続されている。
【００２０】
不揮発性メモリ１２は、例えばオペレーティングシステム（ＯＳ）や上記した光学式認識コードの読み取り処理を実現するためのプログラムを含む各種プログラムを格納する。
【００２１】
ＣＰＵ１３は、例えば不揮発性メモリ１２に格納されている各種プログラムを実行する。なお、ＣＰＵ１３は、光学式認識コード読取装置１０全体の制御を司るものである。
【００２２】
メインメモリ１４は、例えばＣＰＵ１３が各種プログラムを実行する際に必要とされるワークエリア等として使用される。
【００２３】
無線通信部１５は、インターネット等のネットワークを介した各種サーバ装置等の外部装置との通信を制御する機能を有する。また、無線通信部１５は、例えば無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）及びＷｉｆｉ（登録商標）等の無線通信機能を有する。
【００２４】
ディスプレイ１６は、例えば液晶表示パネル及び表示制御を行う駆動回路を備えることにより、各種データ等を表示する機能を有する。なお、上述した光学式認識コード読取装置１０に備えられているカメラによって撮像された画像（データ）及び光学式認識コードの読み取り結果等は、このディスプレイ１６に表示することができる。
【００２５】
タッチパネル１７は、ディスプレイ１６の前面に重畳して配置され、例えばユーザの指先等で指定された画面上の位置を検出する機能を有する。これにより、タッチパネル１７は、光学式認識コード読取装置１０に対するユーザの各種操作を検知することができる。
【００２６】
ここで、図３を参照して、本実施形態に係る光学式認識コード読取装置１０において読み取られるカラービットコードについて具体的に説明する。
【００２７】
図３に示すように、カラービットコードは、例えば赤色、緑色、青色及び紫色のうちの１の色彩が付されたセル２０が複数配列されて構成されている。図３において、赤色はＲ、緑色はＧ、青色はＢ、紫色はＰとして示されている。なお、図３においては、便宜的にカラービットコードの一部分のみが示されているものとする。以下の説明においては、カラービットコードにおいて配列される各セル２０に付される色彩（ここでは、赤色、緑色、青色及び紫色）を便宜的にカラービットコードの構成色と称する。
【００２８】
また、図３に示すカラービットコードにおいて、当該カラービットコードの構成色のうちの紫色（第３の色彩）は、当該構成色のうちの赤色（第１の色彩）及び青色（第２の色彩）の混色である。すなわち、本実施形態に係る光学式認識コード読取装置１０において読み取られるカラービットコードの構成色のうちの少なくとも１つの色彩は、当該構成色のうちの他の２つの色彩の混色であるものとする。
【００２９】
また、カラービットコードは、上述したように複数配列されているセル２０に付されている色彩の遷移によって特定のデータを表すことができる。つまり、カラービットコードにおける色彩の遷移（配列）が例えば特定のＩＤ等を表す場合には、当該カラービットコードを各種物品に付して、当該カラービットコードを光学式認識コード読取装置１０において読み取ることにより、当該カラービットコードが付された物品を識別することができる。
【００３０】
ここで、光学式認識コード読取装置１０において上記した図３に示すようなカラービットコードを読み取る場合、当該カラービットコードにおいて配列されている複数のセル２０のうちの隣接するセル２０間で混色（つまり、当該隣接する２つのセル２０の各々に付された２つの色彩の混色）が当該光学式認識コード読取装置１０において認識される場合がある。なお、このような混色が生じる原因としては、例えばカラービットコードを撮像するカメラの精度によるもの（レンズボケ等）や、当該カラービットコードの印刷精度によるもの（隣接する２つの色彩の領域の一部の重複等）がある。
【００３１】
具体的には、図４に示すように、赤色（Ｒ）が付されたセル２０ａと青色（Ｂ）が付されたセル２０ｂとが隣接している箇所が光学式認識コード読取装置１０に備えられているカメラで読み取られた場合を想定する。この場合、図４に示すように、画像データ上の赤色（Ｒ）の領域（セル）２０ａ及び青色の領域（セル）２０ｂとの間で当該赤色と青色との混色である紫色（Ｐ）の領域３０が生じ、当該領域３０が光学式認識コード読取装置１０において認識される場合がある。
【００３２】
ここで、本実施形態においては、紫色（つまり、赤色と青色との混色）はカラービットコードの構成色として採用されている。このため、光学式認識コード読取装置１０において紫色として認識された領域は、カラービットコードの構成色としての領域（以下、構成色領域と表記）である場合もあるが、赤色と青色との混色としての領域（以下、混色領域と表記）である場合もある。
【００３３】
すなわち、紫色として認識された領域が構成色領域であるにもかかわらず混色領域であるとして扱われた場合には誤読となる。また、紫色として認識された領域が混色領域であるにもかかわらず構成色領域であるとして扱われた場合にも同様に誤読となる。
【００３４】
したがって、本実施形態に係る光学式認識コード読取装置１０は、上記したようなカラービットコードの読み取り時に認識された色彩が構成色であるか混色であるかを判定する必要がある。
【００３５】
以下、図５を参照して、本実施形態に係る光学式認識コード読取装置１０の機能構成について説明する。
【００３６】
図５に示すように、光学式認識コード読取装置１０は、画像データ取得部１０１、混色判定部１０２、格納部１０３、有効性検証処理部１０４及び読取処理部１０５を含む。
【００３７】
画像データ取得部１０１は、上記したように光学式認識コード読取装置１０に備えられているカメラによってカラービットコードが撮像されることによって得られる画像データを取得する。なお、画像データ取得部１０１によって取得される画像データは、カラービットコードを含み、色情報の最小単位である複数の画素（ピクセル）から構成される。
【００３８】
混色判定部１０２は、画像データ取得部１０１によって取得された画像データに含まれるカラービットコードを構成する複数の画素の各々が有する色彩が当該カラービットコードの構成色であるか混色であるかを判定する。なお、画像データ中のカラービットコード（の領域）は、例えばカラービットコードの構成色以外の色彩（例えば、白等）で囲まれていること等により特定することができる。
【００３９】
混色判定部１０２は、画像データ取得部１０１によって取得された画像データに含まれるカラービットコードを構成する複数の画素のうちの１つの画素（例えば、紫色を有する画素）を対象画素（第１の画素）とする。混色判定部１０２は、この対象画素に対して一定の距離（予め定められた距離の位置）にある一以上の画素（第２の画素）が有する色彩の全てが当該対象画素が有する色彩と異なるか否かを判定する。なお、対象画素に対して一定の距離にある複数の画素は、例えば対象画素を挟むように位置する２つの画素を含む。
【００４０】
混色判定部１０２は、対象画素に対して一定の距離にある複数の画素が有する色彩の全てが対象画素が有する色彩と異なると判定された場合、当該対象画素が有する色彩（例えば、紫色）はカラービットコードの構成色ではなく混色としての色彩であると判定する。この場合、混色判定部１０２は、画像データを構成する対象画素が有する色彩を、当該色彩を混色とする２つの色彩（カラービットコードの構成色）のうちのいずれか一方に変更する。
【００４１】
格納部１０３には、画像取得部１１によって取得された画像データに含まれるカラービットコードの有効性を検証するためのデータ（以下、検証データと表記）が予め格納されている。
【００４２】
有効性検証処理部１０４は、格納部１０３に格納されている検証データに基づいて、混色判定部１０２によって色彩が変更された後の画像データに含まれるカラービットコードが有効であるか無効であるかを判定する。
【００４３】
読み取り処理部１０５は、有効性検証処理部１０４によってカラービットコードが有効であると判定された場合、当該カラービットコードを読み取る（デコードする）処理を実行する。この処理により、読取処理部１０５は、画像データに含まれるカラービットコードにおける色彩の遷移によって表されるデータを取得する。
【００４４】
次に、図６のフローチャートを参照して、本実施形態に係る光学式認識コード読取装置１０の処理手順について説明する。
【００４５】
ここでは、上述した図３において説明したように、光学式認識コード読取装置１０において、例えば２つの色彩と当該２つの色彩の混色である色彩とを含む３以上の色彩のうちの１の色彩が付されたセルが複数配列されてなるカラービットコードが読み取られるものとする。以下の説明においては、便宜的に図３に示すカラービットコードが読み取られる場合について主に説明する。
【００４６】
まず、光学式認識コード読取装置１０を利用するユーザは、当該光学式認識コード読取装置１０を操作することによって当該光学式認識コードを読み取り装置１０に備えられているカメラを起動する。これにより、ユーザは、光学式認識コード読取装置１０（に備えられているカメラ）を用いてカラービットコードを撮影することができる。
【００４７】
この場合、画像データ取得部１０１は、上記したようにユーザによって撮影されたカラービットコードを含む画像データを取得する（ステップＳ１）。
【００４８】
次に、混色判定部１０２は、画像データ取得部１０１によって取得された画像データに含まれるカラービットコードを構成する複数の画素の各々について、後述するステップＳ２〜Ｓ６の処理を実行する。以下、この処理の対象となる画素を便宜的に対象画素と称する。
【００４９】
まず、混色判定部１０２は、対象画素が有する色彩と、当該対象画素に対して左右方向に一定の距離にある２つの画素（以下、比較対象画素と表記）が有する色彩とを比較する（ステップＳ２）。
【００５０】
混色判定部１０２は、ステップＳ２において比較された結果、２つの比較対象画素が有する色彩の全て（両方）が対象画素が有する色彩と異なるか否かを判定する（ステップＳ３）。
【００５１】
２つの比較対象画素が有する色彩のうちの少なくとも１つが対象画素が有する色彩と同一であると判定された場合（ステップＳ３のＮＯ）、混色判定部１０２は、対象画素が有する色彩と、当該対象画素に対して上下方向に一定の距離にある２つの画素（比較対象画素）が有する色彩とを比較する（ステップＳ４）。
【００５２】
混色判定部１０２は、ステップＳ４において比較された結果、２つの比較対象画素が有する色彩の全て（両方）が対象画素が有する色彩と異なるか否かを判定する（ステップＳ５）。
【００５３】
ここで、上述したステップＳ３またはＳ５において２つの比較対象画素が有する色彩の全てが対象画素が有する色彩と異なると判定された場合、混色判定部１０２は、対象画素が有する色彩が混色としての色彩（つまり、隣接する２つのカラービットコードの構成色によって生じた混色）であると判定する。この場合、混色判定部１０２は、対象画素が有する色彩を、当該色彩を混色とする２つの色彩（つまり、当該混色を生じている隣接する２つの色彩）のうちのいずれか一方に変更する（ステップＳ６）。
【００５４】
一方、２つの比較対象画素が有する色彩のうちの少なくとも１つが対象画素が有する色彩と同一であると判定された場合（ステップＳ５のＮＯ）、混色判定部１０２は、対象画素が有する色彩がカラービットコードの構成色としての色彩である（つまり、混色でない）と判定する。この場合、後述するステップＳ７の処理が実行される。
【００５５】
上記したようにステップＳ２〜Ｓ６の処理によれば、対象画素に対して左右方向に一定の距離にある２つの比較対象画素の色彩の全てが対象画素が有する色彩と異なる場合または当該対象画素に対して上下方向に一定の距離にある２つの比較対象画素の色彩の全てが対象画素が有する色彩と異なる場合には、当該対象画素が有する色彩は混色によるものであると判定される。一方、対象画素に対して左右方向に一定の距離にある２つの比較対象画素の色彩のうちの少なくとも１つが対象画素が有する色彩と同一であり、かつ、当該対象画素に対して上下方向に一定の距離にある２つの比較対象画素の色彩のうちの少なくとも１つが対象画素が有する色彩と同一である場合には、当該対象画素が有する色彩はカラービットコードの構成色によるものであると判定される。
【００５６】
なお、このステップＳ２及びＳ４における一定の距離としては、例えば混色が生じ得る領域の大きさ等に応じて、対象画素が有する色彩がカラービットコードの構成色によるものであるかまたは混色によるものであるかを判定することが可能な値が設定されていればよい。
【００５７】
ここで、図７〜図９を参照して、上記したステップＳ２〜Ｓ６の処理について具体的に説明する。ここでは、対象画素が有する色彩と当該対象画素に対して左右方向に一定の距離にある２つの比較対象画素が有する色彩とを比較する場合について説明する。なお、図７〜図９においては、×印が各画素を示しているものとする。
【００５８】
まず、図７を参照して、対象画素が有する色彩が混色ではなくカラービットコードの構成色である場合について説明する。ここでは、画素２０１が対象画素であるものとし、当該対象画素２０１が有する色彩は紫色（Ｐ）であるものとする。
【００５９】
ここで、上述した図３に示す向きのカラービットコードが撮像されたものとすると、図４に示すように、カラービットコードの構成色の領域（例えば、赤色及び青色の領域）の左右方向の幅に比べて、当該赤色と青色との混色としての紫色の領域（混色領域）の左右方向の幅は狭いものとなる。
【００６０】
このため、対象画素が有する色彩がカラービットコードの構成色である場合には、当該カラービットコードの構成色である紫色の領域の左右方向の幅は広いため、図７に示すように、対象画素２０１に対して左右方向に一定の距離ｄにある２つの比較対象画素２０２及び２０３が有する色彩はそれぞれ紫色となる。この場合、２つの比較対象画素２０２及び２０３が有する色彩は、対象画素が有する色彩と同一であるため、対象画素２０１が有する紫色は混色としての色彩ではない（つまり、カラービットコードの構成色としての色彩である）と判定される。
【００６１】
なお、図７においては、対象画素２０１が紫色の領域（構成色領域）の比較的中央付近に位置する場合を示しているが、例えば図８に示すように対象画素２０１が紫色の領域と隣接する他の色彩（ここでは、青色）の領域との境界付近に位置する場合を想定する。この場合、対象画素２０１に対して右方向に一定の距離ｄにある比較対象画素２０３が有する色彩は青色となる（つまり、対象画素２０１が有する色彩とは異なる）が、当該対象画素２０１に対して左方向に一定の距離ｄにある比較対象画素２０２が有する色彩は紫色となる（つまり、対象画素２０１が有する色彩と同一である）ため、対象画素２０１が有する紫色（の領域）は混色（領域）ではないと判定される。
【００６２】
次に、図９を参照して、対象画素が有する色彩がカラービットの構成色でなく混色である場合について説明する。ここでは、上記した図７と同様に、画素２０１が対象画素であるものとし、当該対象画素２０１が有する色彩は紫色（Ｐ）であるものとする。
【００６３】
この場合には、上記したように混色領域の左右方向の幅は狭いため、図９に示すように、対象画素２０１に対して左右方向に一定の距離ｄにある２つの比較対象画素２０２及び２０３が有する色彩はそれぞれ赤色（Ｒ）及び青色（Ｂ）となる。この場合、２つの比較対象画素２０２及び２０３が有する色彩は、対象画素２０１が有する色彩とは異なるため、対象画素２０１が有する紫色は混色としての色彩である（つまり、カラービットコードの構成色としての色彩ではない）と判定される。
【００６４】
このように本実施形態においては、上述した図６に示すステップＳ２〜Ｓ６の処理が実行されることによって、対象画素２０１が有する色彩がカラービットコードの構成色としての色彩であるか混色としての色彩であるかを判定することができる。
【００６５】
ここでは、比較対象画素が対象画素に対して左右方向に一定の距離にある２つの画素であるものとして説明したが、当該比較対象画素が対象画素に対して上下方向に一定の距離にある２つの画素である場合についても同様であるため、その詳しい説明を省略する。
【００６６】
なお、上述した図３に示すカラービットコードを９０度回転させた向きでカラービットコードが撮像された場合であって、対象画素が有する色彩が混色としての色彩である場合には、当該対象画素が有する色彩は左右方向に一定の距離にある２つの比較対象画素が有する色彩と同一であると判定されるが、対象画素が有する色彩は上下方向に一定の距離にある２つの比較対象画素が有する色彩とは異なると判定される。つまり、図３に示すカラービットコードを９０度回転させた向きのカラービットコードが撮像された場合であっても、混色としての色彩を適切に判定することができる。
【００６７】
このように本実施形態においては、左右方向及び上下方向のそれぞれについて比較処理が実行されることにより、カメラによって撮像されるカラービットコードの向きに依存することなく混色を検出（判定）することができる。
【００６８】
なお、ここでは比較対象画素が対象画素に対して左右方向及び上下方向に位置する画素であるものとして説明したが、当該比較対象画素の位置はカラービットコードの形状等に応じて適宜変更されても構わない。
【００６９】
再び図６に戻ると、画像データ取得部１０１によって取得された画像データに含まれるカラービットコードを構成する全ての画素について上述したステップＳ２〜Ｓ６の処理が実行されたか否かが判定される（ステップＳ７）。
【００７０】
全ての画素について処理が実行されていないと判定された場合（ステップＳ７のＮＯ）、上記したステップＳ２に戻って処理が繰り返される。この場合、ステップＳ２〜Ｓ６の処理が実行されていない画素を対象画素としてステップＳ２〜Ｓ６の処理が実行される。
【００７１】
一方、全ての画素について処理が実行されたと判定された場合を想定する（ステップＳ７のＹＥＳ）。この場合、画像データ取得部１０１によって取得された画像データは、当該画像データを構成する複数の画素のうち混色であると判定された画素が有する色彩が当該色彩を混色とする２つの色彩のうちのいずれか一方に変更された状態となっている。以下、このように混色と判定された色彩が変更された後の画像データを補正後画像データと称する。
【００７２】
次に、有効性検証処理部１０４は、格納部１０３に格納されている検証データに基づいて、補正後画像データに含まれるカラービットコードの有効性を検証する（ステップＳ９）。
【００７３】
有効性検証処理部１０４は、検証結果に基づいて、補正後画像データに含まれるカラービットコードが有効であるか否かを判定する（ステップＳ１０）。
【００７４】
ここで、上記したステップＳ９及びＳ１０の処理について具体的に説明する。ここでは、格納部１０３に格納されている検証データには、カラービットコードにおいて配列されるセルの数が含まれているものとする。なお、カラービットコードにおいて配列されるセルの数は予め規定されている（つまり、固定長である）ものとする。
【００７５】
この場合、有効性検証処理部１０４は、補正後画像データに含まれるカラービットコードを構成する複数の画素の各々が有する色彩（例えば、赤色、緑色、青色及び紫色）に基づいて、当該カラービットコードをカラービットコードの構成色の各々の領域（つまり、セル）に分割する。具体的には、有効性検証処理部１０４は、補正後画像データに含まれるカラービットコードを構成する複数の画素のうち、同一の色彩を有し、連続して隣接する画素の集合を当該色彩の１つの領域として分割する。以下、この分割処理によって得られるカラービットコードの構成色の各々の領域を便宜的に分割領域と称する。
【００７６】
有効性検証処理部１０４は、上記した検証データに含まれるセルの数が分割領域の数と等しい場合には、補正後画像データに含まれるカラービットコードが有効であると判定する。一方、有効性検証処理部１０４は、検証データに含まれるセルの数が分割領域の数と異なる場合には、補正後画像データに含まれるカラービットコードが有効でないと判定する。
【００７７】
ここでは、検証データとしてカラービットコードにおいて配列されるセルの数が用いられるものとして説明したが、当該検証データとしてカラービットコードにおいて有効な色彩（セル）の配列に関するルール等が用いられても構わない。すなわち、上記した各分割領域（色彩）の順番（配列）がルールに合致する場合には補正後画像データに含まれるカラービットコードが有効であると判定され、当該ルールに合致しない場合には当該カラービットコードが有効でないと判定されるようにしてもよい。
【００７８】
なお、ここで説明した有効性検証処理部１０４の処理は一例であり、他の処理によって補正後画像データに含まれるカラービットコードの有効性が検証されても構わない。具体的には、チェックディジット等により有効性（整合性）が検証されても構わない。
【００７９】
上記したステップＳ１０においてカラービットコードが有効であると判定された場合（ステップＳ１０のＹＥＳ）、読取処理部１０５は、補正後画像データに含まれるカラービットコードの読み取り処理を実行する（ステップＳ１１）。この場合、読取処理部１０５は、上記した分割領域の配列（つまり、カラービットコードの構成色の遷移）に基づいてデコード処理を実行し、当該カラービットコードによって表されるデータを取得する。
【００８０】
このように読み取り処理部１０５によって取得されたデータは、例えばディスプレイ１６に表示されてもよいし、光学式コード読取装置１０内または外部の各種サーバ装置等での他の処理に用いられても構わない。
【００８１】
なお、図６においては、ステップＳ９において補正後画像データに含まれるカラービットコードの有効性が検証されるものとして説明したが、読取処理部１０５によって取得されたデータ（例えば、ＩＤ）が有効なものであるか否かに基づいて当該カラービットコードの有効性が検証されても構わない。この場合には、例えば格納部１０３に有効なデータのリスト等が予め格納されていればよい。
【００８２】
一方、上記したステップＳ１０において補正後画像データに含まれるカラービットコードが有効でないと判定された場合、ステップＳ１１の処理は実行されず、処理が終了される。
【００８３】
なお、本実施形態においては、カラービットコードをリアルタイムの動画（連続する画像）として撮像することができるものとする。この場合、図６に示す処理はカメラによって撮像された動画を構成する１の画像データについて実行されるものであり、上記したように補正後画像データに含まれるカラービットコードが有効でないと判定された場合にはカラービットコードの読み取り処理は実行されず、カメラによって撮像された動画を構成する次の画像（データ）について再度図６に示す処理が実行される。これにより、補正後画像データに含まれるカラービットコードが有効でないにもかかわらず当該カラービットコードに対して読み取り処理が実行されることによって生じる誤読を回避することができるとともに、当該カラービットコードが有効であると判断されるような混色の影響が少ない画像データの際に読み取り処理を実行することが可能となる。ここでは、カラービットコードが動画として撮像されるものとして説明したが、例えば単に静止画像として撮像された画像データについて図６に示す処理が実行されても構わない。
【００８４】
また、上述した図６に示す処理においては、画像データに含まれるカラービットコードを構成する全ての画素についてステップＳ２〜Ｓ６の処理が実行されるものとして説明したが、混色としての色彩である可能性のある画素（つまり、紫色を有する画素）についてのみ当該処理が実行される構成としても構わない。
【００８５】
上述したように本実施形態においては、２つの色彩（第１及び第２の色彩）と当該２つの色彩の混色である色彩（第３の色彩）とを含む３以上の色彩のうちの１の色彩が付されたセルが複数配列されてなるカラービットコード（光学式認識コード）を読み取る際に、画像データに含まれるカラービットコードを構成する複数の画素のうちの対象画素（第１の画素）に対して一定の距離にある（予め定められた距離の位置にある）複数の比較対象画素（第２の画素）が有する色彩の全てが当該対象画素が有する色彩と異なる場合、当該対象画素が有する色彩を変更してカラービットコードを読み取る。本実施形態においては、このような構成により、カラービットコードの構成色である２つの色彩の混色である色彩をカラービットコードの構成色として採用したとしても誤読を防止することができ、例えば構成色の選択の幅を広げることが可能となる。
【００８６】
また、本実施形態においては、例えばカラービットコードにおいて配列されるセルの数（固定長）や当該カラービットコードにおいて有効な色彩の配列に関するルール等を含む検証データに基づいて補正後画像データに含まれるカラービットコードの有効性を検証することにより、より確実に誤読を防止することが可能となる。
【００８７】
また、本実施形態においては、対象画素に対して一定の距離にある複数の比較対象画素を当該対象画素の左右方向に位置する２つの画素及び当該対象画素の上下方向に位置する２つの画素とすることによって、カメラによって撮像されるカラービットコードの向きに影響されることなく混色を検出（判定）することが可能となる。
【００８８】
なお、カラービットコードの構成色でない混色としての色彩の領域が前述した図４に示すような形状であれば、上述したように当該混色領域を構成する全ての画素について色彩を変更することは可能であるが、混色領域の形状は一様ではないため、上述した処理を実行した場合であっても色彩が変更されない画素（つまり、混色としての色彩を有する画素）が残存してしまう場合がある。しかしながら、上記した処理が実行されることによって、混色としての色彩を有する画素によって構成される領域の面積は小さくなる。したがって、例えば上記した分割領域のうち予め定められた面積（画素数）以上の領域のみの配列に基づいて読み取り処理を実行する構成とすることが好ましい。このように、予め定められた面積より小さい領域についてはカラービットコードの構成色の領域ではないものとして扱うことによって、上記した混色による誤読の可能性を更に低減させることが可能となる。なお、このカラービットコードの構成色の領域ではないものとして扱うためのパラメータ（面積の閾値）については、例えば格納部１０３に予め格納されていればよい。
【００８９】
また、本実施形態の処理はコンピュータプログラムによって実現することができるため、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００９０】
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。  
【符号の説明】
【００９１】
１０…光学式認識コード読取装置、１１…バス、１２…不揮発性メモリ、１３…ＣＰＵ、１４…メインメモリ、１５…無線通信部、１６…ディスプレイ、１７…タッチパネル、１０１…画像データ取得部、１０２…混色判定部、１０３…格納部、１０４…有効性検証部、１０５…読取処理部
【図１】
0006008333.tif 000002
【図２】
0006008333.tif 000003
【図３】
0006008333.tif 000004
【図４】
0006008333.tif 000005
【図５】
0006008333.tif 000006
【図６】
0006008333.tif 000007
【図７】
0006008333.tif 000008
【図８】
0006008333.tif 000009
【図９】
0006008333.tif 000010