(57)【要約】【課題】１Ｄカラービットコードの構成セル群の配列が一部乱れている場合や、構成セル群の周囲に切り出し用のＱｚを設けにくい場合でも、データを読み取れる方法を提供する。【解決手段】  読み取り対象の１Ｄカラービットコード１０を含む画像を撮像し、キャプチャ画像１２を得る。次に、キャプチャ画像１２内に細長い視野枠Ｂを設定し、視野枠Ｂの内部の狭小画像を取り出す。次に、取り出した狭小画像を狭小画像中の各画素の値によって複数の色彩領域に分割し、狭小画像の一方端から他方端に至るまでの順番と、各色彩領域の色彩と、を記述した色彩配列情報を生成する。次に、生成した色彩配列情報が１Ｄカラービットコードの成立を規定する成立条件を満たしている場合に、その色彩配列情報は読み取り対象の１Ｄカラービットコードの色彩の配列であるとみなして、その色彩配列情報に基づいてデコードを行い、データを出力する。【選択図】図１
2011103023.tif 000002
【特許請求の範囲】
【請求項１】
色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、
前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、
前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出しステップと、
前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割ステップと、
前記各色彩領域ごとに、前記色彩領域の色彩と、前記狭小画像の一方端から他方端に至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、
前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の順番及び色彩であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、
を含むことを特徴とする色彩配列コードの読み取り方法。
【請求項２】
色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、
前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、
前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出しステップと、
前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割ステップと、
前記各色彩領域ごとに、前記色彩領域の色彩と、前記狭小画像の一方端から他方端に至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、
前記色彩配列情報のうち、前記色彩配列コードのスタートを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、前記色彩配列コードのエンドを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、の間にある色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の順番及び色彩であるとみなして、前記色彩配列情報に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、
を含むことを特徴とする色彩配列コードの読み取り方法。
【請求項３】
請求項１又は２に記載の色彩配列コードの読み取り方法において、
前記狭小画像取り出しステップは、前記画像内に１個又は複数個設定された前記視野枠の位置を、前記画像内で、利用者の指示に従って移動する第１の視野枠移動ステップ、
をさらに含み、
前記狭小画像取り出しステップは、前記視野枠移動ステップにおいて移動した視野枠によって前記狭小画像を取り出すことを特徴とする色彩配列コードの読み取り方法。
【請求項４】
請求項１又は２に記載の色彩配列コードの読み取り方法において、
前記狭小画像取り出しステップは、前記予め設定された視野枠を、キャプチャされた前記画像ごとに異なる位置に移動させる第２の視野枠移動ステップ、
をさらに含み、
前記異なる位置に設定された視野枠の内部の狭小画像が、前記色彩配列コードを構成する色彩によって構成されている場合に、その視野枠の内部の狭小画像を取り出すことを特徴とする色彩配列コードの読み取り方法。
【請求項５】
請求項４に記載の色彩配列コードの読み取り方法において、
前記視野枠は、前記画像ごとに平行な方向に異なる位置に移動することを特徴とする色彩配列コードの読み取り方法。
【請求項６】
請求項４に記載の色彩配列コードの読み取り方法において、
前記視野枠は、前記画像ごとに前記視野枠の中心点を軸として回転する方向に異なる位置に移動することを特徴とする色彩配列コードの読み取り方法。
【請求項７】
請求項４に記載の色彩配列コードの読み取り方法において、
前記視野枠は、前記画像ごとに平行な方向に、かつ、前記視野枠の中心点を軸として回転して移動することを特徴とする色彩配列コードの読み取り方法。
【請求項８】
請求項１又は２に記載の色彩配列コードの読み取り方法において、
前記狭小画像取り出しステップは、前記予め設定された視野枠を前記画像上において走査する第３の視野枠移動ステップ、
をさらに含み、
前記視野枠移動ステップにおいて走査する視野枠の内部の狭小画像が、前記色彩配列コードを構成する色彩で構成されている場合に、前記視野枠の内部の狭小画像を取り出すことを特徴とする色彩配列コードの読み取り方法。
【請求項９】
請求項８に記載の色彩配列コードの読み取り方法において、
前記視野枠は、前記画像上を縦方向又は横方向に平行に走査することを特徴とする色彩配列コードの読み取り方法。
【請求項１０】
請求項８に記載の色彩配列コードの読み取り方法において、
前記視野枠は、前記視野枠の中心点を軸として回転する方向に走査することを特徴とする色彩配列コードの読み取り方法。
【請求項１１】
請求項８に記載の色彩配列コードの読み取り方法において、
前記視野枠は、前記画像ごとに平行な方向に、かつ、前記視野枠の中心点を軸として回転して走査することを特徴とする色彩配列コードの読み取り方法。
【請求項１２】
請求項１〜１１のいずれか１項に記載の色彩配列コードの読み取り方法において、
前記視野枠は所定の幅と長さを有する形状であって、長手方向の一方が前記一方端であり、他方が前記他方端であり、前記長さが前記幅よりも長いことを特徴とする色彩配列コードの読み取り方法。
【請求項１３】
請求項１２に記載の色彩配列コードの読み取り方法において、
前記視野枠のいずれかの辺は、曲線であり、前記視野枠が曲線状に配置されていることを特徴とする色彩配列コードの読み取り方法。
【請求項１４】
請求項１２又は１３に記載の色彩配列コードの読み取り方法において、
前記色彩配列情報生成ステップは、
さらに、前記狭小画像中の各色彩領域の前記狭小画像の長手方向の長さを測定し、測定した長さも前記各色彩領域ごとに記述した前記色彩配列情報を生成する長さ追記ステップと、
前記長さが所定の基準値より小さい場合、その色彩領域を表す色彩情報を前記色彩配列情報から削除するデータ削除ステップと、
その削除した色彩情報の前後に隣接する他の色彩情報をつめる色彩配列情報修正ステップ、
を含むことを特徴とする色彩配列コードの読み取り方法。
【請求項１５】
請求項１〜１４のいずれか１項に記載の色彩配列コードの読み取り方法において、
前記色彩配列情報中に、前記色彩配列コードを構成する構成色が混色した色彩の領域の色彩情報が存在し、その混色した色彩の領域に隣接する領域の色彩が前記構成色である場合に、その混色した色彩を、その色彩領域に隣接するいずれかの色彩領域の色彩であると見なす色彩見なしステップ、
を含むことを特徴とする色彩配列コードの読み取り方法。
【請求項１６】
請求項１〜１５のいずれか１項に記載の色彩配列コードの読み取り方法において、
前記狭小画像取り出しステップと、前記色彩配列情報生成ステップと、の間に、
前記狭小画像中の各画素の値を、その画素を含み、前記狭小画像の幅方向に伸展する画素列の平均値と置き換える均一化処理ステップ、
を含み、
前記色彩配列情報生成ステップは、前記均一化処理を行った後の前記狭小画像に基づいて前記色彩配列情報を生成することを特徴とする色彩配列コードの読み取り方法。
【請求項１７】
色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、
前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、
前記画像中の各画素の値に基づき前記画像を色彩領域に分割する分割ステップと、
前記画像内の予め決められた位置にある画素を含む色彩領域が前記色彩配列コードのスタートセルであるとみなす第１のスタートセルみなしステップと、
前記スタートセルに隣接する他の色彩領域のうち、予め決められた色彩の色彩領域を前記色彩配列コードの第２セルであるとみなす第２セルみなしステップと、
第（ｋ＋１）セルの重心点と、前記第（ｋ＋１）セルに隣接する他の各色彩領域の各重心点と、を通る直線を前記各重心点ごとに描き、それら直線の中から、前記第（ｋ＋１）セルの重心点と、第ｋセルの重心点と、を通る直線に対して成す角が最も小さい直線を選択し、その選択した直線が通る２個の重心点のうち前記第（ｋ＋１）セルの重心点以外の重心点が属する色彩領域を前記色彩配列コードの第（ｋ＋２）セルであるとみなすセル選択ステップと、
前記スタートセルから前記第ｎセルに至るセル群であるとみなした前記各色彩領域ごとに、前記各色彩領域の色彩と、前記スタートセルから前記第ｎセルに至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、
前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、
を含むことを特徴とする色彩配列コードの読み取り方法。（なお、ｋは１以上の自然数であり、ｎはｋより大きい自然数とする。）
【請求項１８】
色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、
前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、
前記画像中の各画素の値に基づき前記画像を色彩領域に分割する分割ステップと、
前記画像内の予め決められた画像端に接する色彩領域群の中から、予め決められた色彩の色彩領域を選択し、その選択した色彩領域を前記色彩配列コードのスタートセルであるとみなす第２のスタートセルみなしステップと、
前記スタートセルに隣接する他の色彩領域のうち、予め決められた色彩の色彩領域を前記色彩配列コードの第２セルであるとみなす第２セルみなしステップと、
第（ｋ＋１）セルの重心点と、前記第（ｋ＋１）セルに隣接する他の各色彩領域の各重心点と、を通る直線を前記各重心点ごとに描き、それら直線の中から、前記第（ｋ＋１）セルの重心点と、第ｋセルの重心点と、を通る直線に対して成す角が最も小さい直線を選択し、その選択した直線が通る２個の重心点のうち前記第（ｋ＋１）セルの重心点以外の重心点が属する色彩領域を前記色彩配列コードの第（ｋ＋２）セルであるとみなすセル選択ステップと、
前記スタートセルから前記第ｎセルに至るセル群であるとみなした前記各色彩領域ごとに、前記各色彩領域の色彩と、前記スタートセルから前記第ｎセルに至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、
前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、
を含むことを特徴とする色彩配列コードの読み取り方法。（なお、ｋは１以上の自然数であり、ｎはｋより大きい自然数とする。）
【請求項１９】
請求項１７に記載の色彩配列コードの読み取り方法において、
前記第１のスタートセルみなしステップにおける前記予め決められた位置は複数あり、
前記第１のスタートセルみなしステップは、前記複数の予め決められた位置のいずれかの位置の色彩が、予め決められた色彩である場合に、その色彩領域を前記色彩配列コードのスタートセルであるとみなすことを特徴とする色彩配列コードの読み取り方法。
【請求項２０】
請求項１８に記載の色彩配列コードの読み取り方法において、
前記第２のスタートセルみなしステップの前記予め決められた色彩は、前記色彩配列コードが付された物品の地色、又は、地色に対して前面を彩色した下地色であることを特徴とする色彩配列コードの読み取り方法。
【請求項２１】
色彩の遷移によってデータを表す色彩配列コードの読み取り装置において、
前記色彩配列コードを含む画像をキャプチャするキャプチャ手段と、
前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出し手段と、
前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割手段と、
前記各色彩領域ごとに、前記色彩領域の色彩と、前記狭小画像の一方端から他方端に至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成手段と、
前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコード手段と、
を含むことを特徴とする色彩配列コードの読み取り装置。
【請求項２２】
色彩の遷移によってデータを表す色彩配列コードの読み取り装置において、
前記色彩配列コードを含む画像をキャプチャするキャプチャ手段と、
前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出し手段と、
前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割手段と、
前記各色彩領域ごとに、前記狭小画像の一方端から他方端に至るまでの順番と、前記色彩領域の色彩と、を記述した色彩配列情報を生成する色彩配列情報生成手段と、
前記色彩配列情報のうち、前記色彩配列コードのスタートを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、前記色彩配列コードのエンドを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、の間にある色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩配列情報に基づいて前記色彩配列コードをデコードし前記データを出力するデコード手段と、
を含むことを特徴とする色彩配列コードの読み取り装置。
【請求項２３】
請求項２１又は２２に記載の色彩配列コードの読み取り装置において、
前記画像内に１個又は複数個設定された前記視野枠の位置を、前記画像内で、利用者の指示に従って移動する視野枠移動手段、
を含み、前記狭小画像取り出し手段が、前記移動した視野枠によって前記狭小画像を取り出すことを特徴とする色彩配列コードの読み取り装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光学的自動認識コードに関する。特に、本発明者がすでに提案した１Ｄカラービットコード（特願２００６−１９６７０５）と呼ぶ光学的自動認識コードの読み取り率をより一層向上させた読み取り方法に関する発明である。また、本発明は、光学的に自動認識コードを読み取り、デコードする方法に関する。
【背景技術】
【０００２】
本発明者は、すでに色彩の配列（遷移）によってデータを表す光学的自動認識コードに関する出願を複数行っている。
【０００３】
本発明者は、先の特願２００６−１９６７０５号において、１Ｄカラービットコードを提案した。この１Ｄカラービットコードを構成する色彩が付されている領域を「セル」と呼ぶ。すなわち、所定の色彩が付されたセルを並べることによって、１Ｄカラービットコードは構成されている。なお、１個１個の１Ｄカラービットコードそのもの（複数のセルによって構成される幾何学的図形）を、「コードシンボル」又は「色彩配列」と呼ぶ。
【０００４】
データを読み取るために色彩配列をキャプチャすると、色彩配列そのものと、色彩配列ではない部分とが１つの画像に写る。色彩配列を読み取るためには、色彩配列の部分を画像から切り出す必要がある。
【０００５】
しかしながら、状況によって、読み取り対象である色彩配列の切り出しが困難な場合があった。
【０００６】
そこで、本発明者は、先の出願（特願２００７−１３０５０４号）において、色彩配列の周囲に設けられたクワイアットゾーンを利用する読み取り方法を提案した。クワイアットゾーンとは、色彩配列を構成する色以外の色彩の領域である。クワイエットゾーンを「Ｑｚ」と記すこともある。この読み取り方法では、色彩配列とクワイアットゾーンを含む画像データを定義に基づき複数の色領域に区分けする。そして、区分けした領域群からクワイアットゾーンを排除し、残りの領域群について、境界条件、セル数の条件、終端条件等を用いて、色彩配列を構成するセルであるか否か判定する。この方法によれば、キャプチャした画像に色彩配列でない部分が写っていても、色彩配列そのものだけを切り出すことができる。
【０００７】
クワイアットゾーンを設けることなく色彩配列を切り出す方法
また、本発明者は、先の出願（特願２００７−２５８４３０号）において、色彩配列が直線状であり、周囲のクワイアットゾーンが小さい、又は存在しないケースにおける色彩配列の存在の切り出し方法、及びデコード方法を提案した。この切り出し方法では、端面に色彩配列がマーキングされた複数のシート状被印物を少しずつずらしてキャプチャする。キャプチャ画像には、色彩配列のほかにシート状被印物の側面と背景とが写り、これら側面と背景がクワイアットゾーンとなることを技術的特徴の１つとする。この方法によれば、シート状被印物の端面のように広いＱｚを設けにくい又は存在しない状況でも、被印物の並べ方と切り出し方を工夫し、色彩配列を読み取ることができる。
【０００８】
公知特許文献
下記特許文献１には、走行する車両から障害物の存在を監視する認識補助装置が開示されている。特に、この認識補助装置は、撮像素子によって取得された画像において、その画像よりも狭い領域を持つウィンドウを設定し、そのウィンドウ内に監視対象の物体が位置するようにウィンドウの位置を制御することが記載されている。
【０００９】
下記特許文献２には、対象パターン及び対象外パターンを撮像したカメラ視野内で、対象パターンを画像認識により検出して位置出しをする方法が開示されている。特に、この特許文献２には、対象外パターンｎの位置に基づいて、対象パターンｍの周囲に認識ウィンドウを設定し、対象パターンｍの重心データ及び面積データに基づいて、対象パターンｍが認識ウィンドウの内にあるのか否かを判断し、認識ウィンドウの位置を補正することが記載されている。  
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００５−２４４３９９号公報
【特許文献２】特開平９−５０２２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明者が先に出願した特願２００７−１３０５０４号に記載の読み取り方法では、１Ｄカラービットコードは、１Ｄカラービットコードの使用色以外の色彩の領域（クワイアットゾーン）により囲まれている必要があった。１Ｄカラービットコードの切り出しを容易にするためである。また、この特願２００７−１３０５０４号に記載の読み取り方法では、１Ｄカラービットコードを構成する各色彩領域を、１Ｄカラービットコードの「境界条件」を基に切り出していた。この「境界条件」とは、例えば「１個のセルは他の１個又は２個のセルと接する」という条件である。
【００１２】
ところが、１Ｄカラービットコードが何らかの理由で乱れ、１Ｄカラービットコードのごく一部のみが「境界条件」と合致しないものになると、１Ｄカラービットコード全体が読み取れなくなってしまう場合があった。この処理は、１Ｄカラービットコードの読み取りに正確を期するという観点では好ましい。
【００１３】
しかし、状況によっては、この特願２００７−１３０５０４号に記載の読み取り方法は好ましくない場合もあった。
【００１４】
図１には、１Ｄカラービットコード１０をキャプチャしたキャプチャ画像１２が示されている。この図中には１１個の色彩領域が示されている。これら１１個の色彩領域のうち３個の色彩領域１４ｂ、１４ｄ、１４ｈは他の３個以上の色彩領域と接する。従って、これら３個の色彩領域は上述した境界条件と合致しないので、従来の方法では、この１Ｄカラービットコード１０は読み取れない場合が多かった。このように状況によっては多くの１Ｄカラービットコードが読み取れなくなるので、上記特願２００７−１３０５０４号に記載の読み取り方法は、使用場面によっては、利便性に欠け、読み取り操作上、好ましくない場合があった。
【００１５】
また、１Ｄカラービットコードが、極めて狭い場所（例えば板状体の端面などのようにきわめて幅の狭い場所）にマーキングされた場合には、Ｑｚを設けることが容易でない又はＱｚを設けられないことがある。この結果、１Ｄカラービットコードを切り出すことが難しい場合があった。また、端面をキャプチャした画像内に背景の様々な色彩が写った場合には、１Ｄカラービットコードの境界を判断することが難しい場合があった。
【００１６】
上述した特願２００７−２５８４３０号には、板状体の端面にマーキングされた１Ｄカラービットコードの読み取り方法が記載されているが、この読み取り方法は、非常に狭くてもＱｚが存在することを前提とした読み取り方法である。具体的には、例えば、１Ｄカラービットコードがマーキングされた複数の板状体がずらして密着配置されている場合に、１Ｄカラービットコードのキャプチャ画像上では板状体の側面や背景をＱｚとして扱うことによって「非常に狭くてもＱｚが存在すること」を実現している。従って、特願２００７−２５８４３０号に記載の読み取り方法は、Ｑｚが存在しないケースには対応できない場合もあった。
【００１７】
本発明の目的
本発明の第１の目的は、適当な直線状の区間にマーキングされ、コードを形成する色彩配列を読み取る方法を提供することである。また、第２の目的は、周囲にクワイアットゾーンが存在しない色彩配列を読み取る方法を提供することである。また、第３の目的は、色彩配列を構成するセル群の一部が乱れてマーキングされているような場合でも、その色彩配列を読み取る方法を提供することである。
【００１８】
また、上記第１から第３までの目的に関連する技術を提供することである。
【課題を解決するための手段】
【００１９】
（１）本発明は、上記課題を解決するために、色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出しステップと、前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割ステップと、前記各色彩領域ごとに、前記色彩領域の色彩と、前記狭小画像の一方端から他方端に至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の順番及び色彩であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、を含むことを特徴とする色彩配列コードの読み取り方法である。
【００２０】
（２）また、本発明は、色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出しステップと、前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割ステップと、前記各色彩領域ごとに、前記色彩領域の色彩と、前記狭小画像の一方端から他方端に至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、前記色彩配列情報のうち、前記色彩配列コードのスタートを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、前記色彩配列コードのエンドを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、の間にある色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の順番及び色彩であるとみなして、前記色彩配列情報に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、を含むことを特徴とする色彩配列コードの読み取り方法である。
【００２１】
（３）また、本発明は、上記（１）又は（２）に記載の色彩配列コードの読み取り方法において、前記狭小画像取り出しステップは、前記画像内に１個又は複数個設定された前記視野枠の位置を、前記画像内で、利用者の指示に従って移動する第１の視野枠移動ステップ、をさらに含み、前記狭小画像取り出しステップは、前記視野枠移動ステップにおいて移動した視野枠によって前記狭小画像を取り出すことを特徴とする色彩配列コードの読み取り方法である。
【００２２】
（４）また、本発明は、上記（１）又は（２）に記載の色彩配列コードの読み取り方法において、前記狭小画像取り出しステップは、前記予め設定された視野枠を、キャプチャされた前記画像ごとに異なる位置に移動させる第２の視野枠移動ステップ、をさらに含み、前記異なる位置に設定された視野枠の内部の狭小画像が、前記色彩配列コードを構成する色彩によって構成されている場合に、その視野枠の内部の狭小画像を取り出すことを特徴とする色彩配列コードの読み取り方法である。
【００２３】
（５）また、本発明は、上記（４）に記載の色彩配列コードの読み取り方法において、前記視野枠は、前記画像ごとに平行な方向に異なる位置に移動することを特徴とする色彩配列コードの読み取り方法である。
【００２４】
（６）また、本発明は、上記（４）に記載の色彩配列コードの読み取り方法において、前記視野枠は、前記画像ごとに前記視野枠の中心点を軸として回転する方向に異なる位置に移動することを特徴とする色彩配列コードの読み取り方法である。
【００２５】
（７）また、本発明は、上記（４）に記載の色彩配列コードの読み取り方法において、前記視野枠は、前記画像ごとに平行な方向に、かつ、前記視野枠の中心点を軸として回転して移動することを特徴とする色彩配列コードの読み取り方法である。
【００２６】
（８）また、本発明は、上記（１）又は（２）に記載の色彩配列コードの読み取り方法において、前記狭小画像取り出しステップは、前記予め設定された視野枠を前記画像上において走査する第３の視野枠移動ステップ、をさらに含み、前記視野枠移動ステップにおいて走査する視野枠の内部の狭小画像が、前記色彩配列コードを構成する色彩で構成されている場合に、前記視野枠の内部の狭小画像を取り出すことを特徴とする色彩配列コードの読み取り方法である。
【００２７】
（９）また、本発明は、上記（８）に記載の色彩配列コードの読み取り方法において、前記視野枠は、前記画像上を縦方向又は横方向に平行に走査することを特徴とする色彩配列コードの読み取り方法である。
【００２８】
（１０）また、本発明は、上記（８）に記載の色彩配列コードの読み取り方法において、
前記視野枠は、前記視野枠の中心点を軸として回転する方向に走査することを特徴とする色彩配列コードの読み取り方法である。
【００２９】
（１１）また、本発明は、上記（８）に記載の色彩配列コードの読み取り方法において、前記視野枠は、前記画像ごとに平行な方向に、かつ、前記視野枠の中心点を軸として回転して走査することを特徴とする色彩配列コードの読み取り方法である。
【００３０】
（１２）また、本発明は、上記（１）〜（１１）のいずれかに記載の色彩配列コードの読み取り方法において、前記視野枠は所定の幅と長さを有する形状であって、長手方向の一方が前記一方端であり、他方が前記他方端であり、前記長さが前記幅よりも長いことを特徴とする色彩配列コードの読み取り方法である。
【００３１】
（１３）また、本発明は、上記（１２）に記載の色彩配列コードの読み取り方法において、前記視野枠のいずれかの辺は、曲線であり、前記視野枠が曲線状に配置されていることを特徴とする色彩配列コードの読み取り方法である。
【００３２】
（１４）また、本発明は、上記（１２）又は（１３）に記載の色彩配列コードの読み取り方法において、前記色彩配列情報生成ステップは、さらに、前記狭小画像中の各色彩領域の前記狭小画像の長手方向の長さを測定し、測定した長さも前記各色彩領域ごとに記述した前記色彩配列情報を生成する長さ追記ステップと、前記長さが所定の基準値より小さい場合、その色彩領域を表す色彩情報を前記色彩配列情報から削除するデータ削除ステップと、その削除した色彩情報の前後に隣接する他の色彩情報をつめる色彩配列情報修正ステップ、を含むことを特徴とする色彩配列コードの読み取り方法である。
【００３３】
（１５）また、本発明は、上記（１）〜（１４）のいずれかに記載の色彩配列コードの読み取り方法において、前記色彩配列情報中に、前記色彩配列コードを構成する構成色が混色した色彩の領域の色彩情報が存在し、その混色した色彩の領域に隣接する領域の色彩が前記構成色である場合に、その混色した色彩を、その色彩領域に隣接するいずれかの色彩領域の色彩であると見なす色彩見なしステップ、を含むことを特徴とする色彩配列コードの読み取り方法である。
【００３４】
（１６）また、本発明は、上記（１）〜（１５）のいずれかに記載の色彩配列コードの読み取り方法において、前記狭小画像取り出しステップと、前記色彩配列情報生成ステップと、の間に、前記狭小画像中の各画素の値を、その画素を含み、前記狭小画像の幅方向に伸展する画素列の平均値と置き換える均一化処理ステップ、を含み、前記色彩配列情報生成ステップは、前記均一化処理を行った後の前記狭小画像に基づいて前記色彩配列情報を生成することを特徴とする色彩配列コードの読み取り方法である。
【００３５】
（１７）また、本発明は、色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、  前記画像中の各画素の値に基づき前記画像を色彩領域に分割する分割ステップと、前記画像内の予め決められた位置にある画素を含む色彩領域が前記色彩配列コードのスタートセルであるとみなす第１のスタートセルみなしステップと、前記スタートセルに隣接する他の色彩領域のうち、予め決められた色彩の色彩領域を前記色彩配列コードの第２セルであるとみなす第２セルみなしステップと、第（ｋ＋１）セルの重心点と、前記第（ｋ＋１）セルに隣接する他の各色彩領域の各重心点と、を通る直線を前記各重心点ごとに描き、それら直線の中から、前記第（ｋ＋１）セルの重心点と、第ｋセルの重心点と、を通る直線に対して成す角が最も小さい直線を選択し、その選択した直線が通る２個の重心点のうち前記第（ｋ＋１）セルの重心点以外の重心点が属する色彩領域を前記色彩配列コードの第（ｋ＋２）セルであるとみなすセル選択ステップと、前記スタートセルから前記第ｎセルに至るセル群であるとみなした前記各色彩領域ごとに、前記各色彩領域の色彩と、前記スタートセルから前記第ｎセルに至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、
を含むことを特徴とする色彩配列コードの読み取り方法である。（なお、ｋは１以上の自然数であり、ｎはｋより大きい自然数とする。）
（１８）また、本発明は、色彩の遷移によってデータを表す色彩配列コードの読み取り方法において、前記色彩配列コードを含む画像をキャプチャするキャプチャステップと、前記画像中の各画素の値に基づき前記画像を色彩領域に分割する分割ステップと、前記画像内の予め決められた画像端に接する色彩領域群の中から、予め決められた色彩の色彩領域を選択し、その選択した色彩領域を前記色彩配列コードのスタートセルであるとみなす第２のスタートセルみなしステップと、前記スタートセルに隣接する他の色彩領域のうち、予め決められた色彩の色彩領域を前記色彩配列コードの第２セルであるとみなす第２セルみなしステップと、第（ｋ＋１）セルの重心点と、前記第（ｋ＋１）セルに隣接する他の各色彩領域の各重心点と、を通る直線を前記各重心点ごとに描き、それら直線の中から、前記第（ｋ＋１）セルの重心点と、第ｋセルの重心点と、を通る直線に対して成す角が最も小さい直線を選択し、その選択した直線が通る２個の重心点のうち前記第（ｋ＋１）セルの重心点以外の重心点が属する色彩領域を前記色彩配列コードの第（ｋ＋２）セルであるとみなすセル選択ステップと、前記スタートセルから前記第ｎセルに至るセル群であるとみなした前記各色彩領域ごとに、前記各色彩領域の色彩と、前記スタートセルから前記第ｎセルに至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成ステップと、前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコードステップと、を含むことを特徴とする色彩配列コードの読み取り方法である。（なお、ｋは１以上の自然数であり、ｎはｋより大きい自然数とする。）
（１９）また、本発明は、上記（１７）に記載の色彩配列コードの読み取り方法において、前記第１のスタートセルみなしステップにおける前記予め決められた位置は複数あり、
前記第１のスタートセルみなしステップは、前記複数の予め決められた位置のいずれかの位置の色彩が、予め決められた色彩である場合に、その色彩領域を前記色彩配列コードのスタートセルであるとみなすことを特徴とする色彩配列コードの読み取り方法である。
【００３６】
（２０）また、本発明は、上記（１８）に記載の色彩配列コードの読み取り方法において、前記第２のスタートセルみなしステップの前記予め決められた色彩は、前記色彩配列コードが付された物品の地色、又は、地色に対して前面を彩色した下地色であることを特徴とする色彩配列コードの読み取り方法である。
【００３７】
（２１）また、本発明は、色彩の遷移によってデータを表す色彩配列コードの読み取り装置において、前記色彩配列コードを含む画像をキャプチャするキャプチャ手段と、前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出し手段と、前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割手段と、前記各色彩領域ごとに、前記色彩領域の色彩と、前記狭小画像の一方端から他方端に至るまでの順番と、を記述した色彩配列情報を生成する色彩配列情報生成手段と、前記色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩及び順番に基づいて前記色彩配列コードをデコードし前記データを出力するデコード手段と、を含むことを特徴とする色彩配列コードの読み取り装置である。
【００３８】
（２２）また、本発明は、色彩の遷移によってデータを表す色彩配列コードの読み取り装置において、前記色彩配列コードを含む画像をキャプチャするキャプチャ手段と、
前記画像内に予め設定された細長い視野枠の内部の狭小画像を取り出す狭小画像取り出し手段と、前記狭小画像中の各画素の値によって前記狭小画像を複数の色彩領域に分割する分割手段と、前記各色彩領域ごとに、前記狭小画像の一方端から他方端に至るまでの順番と、前記色彩領域の色彩と、を記述した色彩配列情報を生成する色彩配列情報生成手段と、前記色彩配列情報のうち、前記色彩配列コードのスタートを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、前記色彩配列コードのエンドを示す切り出し用冗長セルの色彩が付された前記色彩領域を表す色彩情報と、の間にある色彩配列情報中の色彩領域の色彩及び順番が、前記色彩配列コードを構成するセル群の色彩及び順番であるとみなして、前記色彩配列情報に基づいて前記色彩配列コードをデコードし前記データを出力するデコード手段と、を含むことを特徴とする色彩配列コードの読み取り装置である。
【００３９】
（２３）また、本発明は、上記（２１）又は（２２）に記載の色彩配列コードの読み取り装置において、前記画像内に１個又は複数個設定された前記視野枠の位置を、前記画像内で、利用者の指示に従って移動する視野枠移動手段、を含み、前記狭小画像取り出し手段が、前記移動した視野枠によって前記狭小画像を取り出すことを特徴とする色彩配列コードの読み取り装置である。
【発明の効果】
【００４０】
本発明に係る読み取り方法によれば、色彩配列の一部が境界条件と合致していなくても、視野枠を用いて境界条件と合致する部分を切り出してデコードすることができる。
【００４１】
また、本発明に係る読み取り方法によれば、色彩配列の一部が境界条件と合致していなくても、色彩配列の直線性を利用して追跡したので、デコードすることができる。
【図面の簡単な説明】
【００４２】
【図１】１Ｄカラービットコード読み取り方法の原理図である。
【図２】１Ｄカラービットコード読み取り装置を示す図である。
【図３】ノイズの処理方法を説明する図である。
【図４】色彩が混在する領域の処理方法を説明する図である。
【図５】色彩の平均化処理を説明する図である。
【図６】短辺方向色彩均一化処理を説明する図である。
【図７】白色を１Ｄカラービットコードの構成色の１つとする場合のセルのマーキング方法を説明する図である。
【図８】切り出し用冗長セルを説明する図である。
【図９】切り出し用冗長セルを利用した読み取り方法を説明する図である。
【図１０】視野枠の数・配置・形状のバリエーションを示す図である。
【図１１】１Ｄカラービットコードの構成セルを追跡する方法を説明する図である。
【図１２】１Ｄカラービットコードの構成セルを追跡する方法を説明する拡大図である。
【図１３】端点セルを含む１Ｄカラービットコードを追跡する方法を説明する図である。
【図１４】１Ｄカラービットコードの探索方法を説明する図である。
【図１５】直列１Ｄカラービットコードの読み取り方法を説明する図である。
【図１６】直列１Ｄカラービットコードの読み取り方法を説明する図である。
【図１７】色彩の配列及びデコード結果を示す図である。
【図１８】本実施の形態に係る読み取り方法の効果を説明する図である。
【発明を実施するための形態】
【００４３】
（１）本実施の形態に係る読み取り方法の特徴事項
特徴事項１
１Ｄカラービットコードは、本発明者が先に出願した特願２００７−１３０５０４号に示した方法によって１Ｄカラービットコードを含む画像から切り出される。本実施の形態における特徴事項の１つは、この切り出しを行う前に、１Ｄカラービットコードの画像の一部を視野枠を使用して取り出す点である。
【００４４】
１Ｄカラービットコードが所定の境界条件と成立条件とを満たしていれば、デコード手段は、その１Ｄカラービットコードを読み取ることができる。ここで、境界条件とは、例えば「各セルは他の１個又は２個のセルと接する」という条件である。また、成立条件とは、従来と同様に、Ｒの個数、Ｇの個数、Ｂの個数、スタートの端部の色彩、エンドの端部の色彩、誤り訂正符号、などの条件である。
【００４５】
しかし、１Ｄカラービットコードのごく一部のセルが、例えば３個のセルと接する場合には、そのセルは境界条件を満たさなくなるため、１Ｄカラービットコード全体を読み取れなくなる場合がある。
【００４６】
一方、読み取る範囲を狭めて、境界条件を満たさない部分を読み取り対象から除外すれば、１Ｄカラービットコードを読み取れる場合がある。１Ｄカラービットコードのごく一部だけが境界条件を満たさない場合には、その部分だけを除いて、残りの部分を読むことが好ましい場合も多い。
【００４７】
そこで、本実施の形態においては、デコード手段内で起動しているアプリケーションが、１Ｄカラービットコードの画像データ上にソフトウェア的にマスクする処理を行い、画像データを、マスクされた部分と、マスクされない部分と、に分ける。本実施の形態では、マスクされない部分を特に「狭小視野」という。本実施の形態における特徴事項の１つは、この狭小視野の画像だけを読み取り、デコードすることである。
【００４８】
特徴事項２
本実施の形態において、狭小視野の位置は、デコード手段が画像上に視野枠で表示することによって利用者に提示される。視野枠の形状は、１Ｄカラービットコードの境界条件を満たさない部分を除外するような形状である必要がある。
【００４９】
例えば、板状体の端面にマーキングされた１Ｄカラービットコードを読み取る場合には、短辺を１Ｄカラービットコードの幅よりも狭く設定した視野枠を用いることが好ましい。視野枠の内部に１Ｄカラービットコードの境界条件を満たさない部分が入らないようにするためである。この場合、視野枠の形状は、いわば幅の狭い直線状となる。この幅の狭い直線状の視野枠も、本願の特許請求の範囲に記載の「視野枠」の形状の好適な一例に相当する。
【００５０】
このように直線状の１Ｄカラービットコードのうち、幅の狭い直線状の視野枠の内部に位置する部分のみを読み取れば、１Ｄカラービットコードの直列性を阻む部分を読み取り対象から除外することができる可能性が高い。この結果、１Ｄカラービットコードの直列性を阻む部分に影響されることなく、良好に１Ｄカラービットコードを読み取ることができ確率を向上させることができる。
【００５１】
特徴事項３
また、本実施の形態における別の特徴事項は、１Ｄカラービットコードの切り出し動作及びデコード動作が、視野枠の長手方向（直線方向）の色彩変化のみに着目して行われる点である。
【００５２】
なお、本実施の形態において、「切り出し」とは、直線状の視野枠内の色彩配列（色彩領域群）から１Ｄカラービットコードを構成するセル群を検出して、取り出すことをいう。また、本実施の形態において、「デコード」とは、取り出した１Ｄカラービットコードを構成するセル群に付された色彩の配列順を認識し、その認識した配列順からデータを出力することをいう。
【００５３】
（２）従来の読み取り方法
従来の読み取り方法では、キャプチャした画像において「各セルは１個又は２個の他のセルと接する」という境界条件を満たすセルを追跡し、１Ｄカラービットコードを読み取っていた。しかし、１Ｄカラービットコードのごく一部が汚れや印刷ミス、ノイズ等によって境界条件を満たさなくなると１Ｄカラービットコード全体が読み取れなくなる場合もあった。
【００５４】
図１には、本実施の形態における１Ｄカラービットコード読み取り方法の原理図が示されている。この図中には、１１個の色彩領域１４群が示されている。これら１１個の色彩領域１４群のうち、９個の色彩領域（色彩領域１４ａ、１４ｂ、１４ｃ、１４ｄ、１４ｆ、１４ｇ、１４ｈ、１４ｉ、１４ｊ）は、図１の左から右に向かって直列に配列されている。これら９個の色彩領域１４ａ、１４ｂ、１４ｃ、１４ｄ、１４ｆ、１４ｇ、１４ｈ、１４ｉ、１４ｊには、それぞれＲ、Ｇ、Ｂ、Ｒ、Ｂ、Ｒ、Ｇ、Ｒ、Ｂが付されている。これら９個の色彩領域１４群は１Ｄカラービットコード１０の構成セルであり、各セル間の色彩の変化がデータを表す。
【００５５】
残りの２個の色彩領域１４ｅ、１４ｋは、それぞれ｛Ｇ｝、｛Ｒ、Ｇ、Ｂのいずれでもない色彩（Ｑ）｝である。これら２個の色彩領域１４ｅ、１４ｋは、１Ｄカラービットコード１０の構成セルではない。なお、１１個の色彩領域１４群の周囲には、１Ｄカラービットコード１０がマーキングされた被印物の表面そのものが写っている。被印物表面が写った部分は、１Ｄカラービットコード１０と（図１中には示されていない）周囲の１Ｄカラービットコードではない領域とを区分けする役割を担う。
【００５６】
ところで、１Ｄカラービットコード１０の構成色が付されている１０個の色彩領域のうち、色彩領域１４ｂ、１４ｄ、１４ｆ、１４ｇ、１４ｈ、１４ｉは、３個以上の他の色彩領域と接する。１Ｄカラービットコード１０の構成セル群のうち一部のセルが３個以上の他のセルと接すると、セルが連なる方向が２つ以上存在することとなり、セルの直列性が阻まれる。
【００５７】
従来の１Ｄカラービットコードの切り出しアルゴリズムでは、「各セルは１個又は２個の他のセルと接する」という境界条件を満たす必要があるが、これら色彩領域１４ｂ、１４ｄ、１４ｆ、１４ｇ、１４ｈ、１４ｉは３個以上の他のセルと接するため、この境界条件を満たさない。そのため、従来の切り出しアルゴリズムを利用した読み取り方法では、１Ｄカラービットコード１０は切り出しの対象とはならなかった。
【００５８】
１Ｄカラービットコードのごく一部が汚れや印刷ミス、ノイズ等によって境界条件を満たさないために１Ｄカラービットコード全体が読み取れなくなるのは妥当ではない場合も多い。１Ｄカラービットコードのごく一部に汚れ等があっても、その汚れ等を読み取り対象から除外して１Ｄカラービットコードを読み取れれば、非常に便利である。
【００５９】
本実施の形態では、このように１Ｄカラービットコードのごく一部に汚れ等があっても１Ｄカラービットコードを読み取れる可能性が高い読み取り方法である。
【００６０】
（３）本実施の形態に係る読み取り方法の原理
（３−１）読み取り装置
本実施の形態における読み取り装置を図２に基づいて説明する。図２には、１Ｄカラービットコードのデコードを行うデコード手段１６が示されている。デコード手段１６にはキャプチャ手段１８が接続されている。このキャプチャ手段１８は、図２では三脚上に固定されており、被印物２０群がキャプチャ手段１８の前を次々に移動している。キャプチャ手段１８は、被印物２０群にマーキングされた各１Ｄカラービットコード２２をキャプチャし、その画像データをデコード手段１６に送信する。なお、キャプチャ手段１８は固定される必要はなく、例えば利用者がキャプチャ手段１８を持ちながら各１Ｄカラービットコード２２をキャプチャすることも好ましい。
【００６１】
（３−２）読み取り方法
デコード手段１６は、１Ｄカラービットコード２２をデコードする所定のアプリケーションを起動している。デコード手段１６の画面には、キャプチャ手段１８から受信した画像データ２４が写し出されている。デコード手段１６は、画像データ２４上にソフトウェア的にマスクする処理を行い、画像データ２４を、マスクされた部分と、マスクされない部分と、に分ける。本実施の形態では、マスクされない部分を狭小視野と呼ぶ。デコード手段１６は、利用者の指示に従って画面データ上に狭小視野の位置を視野枠２６で表示する。本実施の形態では、視野枠の内部の画像を狭小画像という。
【００６２】
上述した図１には、直列状にセル群が配列して成る１Ｄカラービットコード１０をキャプチャしたキャプチャ画像１２が示されている。まずは、最も簡単な配置の例として、直列状の１Ｄカラービットコード１０を視野枠Ｂで読み取る方法を説明する。
【００６３】
デコード手段は、視野枠Ｂでキャプチャ画像１２の一部を取り出すと、左から右に向かって「色彩領域１４ａ→１４ｂ→１４ｃ→１４ｄ→１４ｆ→１４ｇ→１４ｈ→１４ｉ→１４ｊ」の順に並ぶ狭小画像を得る。次に、デコード手段は、この狭小画像中の各画素の値に基づいて狭小画像を複数の色彩領域に分割する。そして、狭小画像の左端から右端至るまでに、｛Ｒの色彩領域｝、｛Ｇの色彩領域｝、｛Ｂの色彩領域｝、｛Ｒの色彩領域｝、｛Ｂの色彩領域｝、｛Ｒの色彩領域｝、｛Ｇの色彩領域｝、｛Ｒの色彩領域｝、｛Ｂの色彩領域｝、がこの順に存在することを認識する。
【００６４】
デコード手段は、狭小画像中の色彩領域１４群について「各セルは他の１個又は２個のセルと接する」という境界条件を満たすかどうか判断する。図１では、視野枠Ｂの短辺が色彩領域１４群の（図中の縦方向の）長さよりも短く設定されているので、視野枠Ｂ内の狭小画像中の色彩領域１４群は境界条件を満たす。
【００６５】
次に、デコード手段は、狭小画像が１Ｄカラービットコード１０であると想定して各色彩領域ごとに色彩情報を生成する。色彩情報とは、色彩領域に割り振られた番号（ＩＤ）と、色彩を表す情報と、前方向に隣接する色彩領域の番号と、後方向に隣接する色彩領域の番号と、が記述された情報である。視野枠Ｂで取り出した狭小画像中には、９個の色彩領域が存在するので、９個の色彩情報が生成される。なお、境界条件が満たされないときは、デコード手段は色彩情報を作成せず、デコード手段は、キャプチャ手段から受信する次の画像データに対して同様の処理を行う。
【００６６】
図１においては、１Ｄカラービットコードのスタートは左端の色彩領域１４ａであり、エンドは右端の色彩領域１４ｊである。従って、図１においては、色彩領域の左に隣接する色彩領域が前方向に隣接する色彩領域であり、右に隣接する色彩領域が後方向に隣接する色彩領域である。従って、デコード手段は、視野枠Ｂで取り出した狭小画像に基づいて、「１、Ｒ、（なし）、２」、「２、Ｇ、１、３」、「３、Ｂ、２、４」、「４、Ｒ、３、５」、「５、Ｂ、４、６」、「６、Ｒ、５、７」、「７、Ｇ、６、８」、「８、Ｒ、７、９」、「９、Ｂ、８、（なし）」、という色彩情報を生成する。これら９個の色彩情報は１個の色彩配列情報を構成する。
【００６７】
この後、デコード手段は、生成した色彩配列情報が１Ｄカラービットコード１０の色彩の配列を表すとみなして、この色彩配列情報に基づいて１Ｄカラービットコード１０のデコードを行い、データを出力する。
【００６８】
本実施の形態の読み取り方法によれば、たとえ１Ｄカラービットコードの一部に汚れ等があり一部が１Ｄカラービットコードの境界条件を満たしていなくても、デコード手段は、残りの境界条件を満たしている部分のみを読み取るので、従来のデコードアルゴリズムを利用して読み取れる可能性が飛躍的に高まる。
【００６９】
なお、本実施の形態においては、デコード手段は、特許請求の範囲に記載の狭小画像取り出し手段、及び分割手段、色彩配列情報生成手段、の好適な一例に相当する。
【００７０】
（３−３）視野枠について
視野枠の短辺の長さ
上述したように、本実施の形態における読み取り方法では、狭小画像だけを読み取ることを特徴の１つとする。従って、視野枠の短辺の長さは、狭小視野に境界条件を満たす部分のみが入る長さであることが好ましい。一般的には、視野枠の短辺方向（幅方向）の長さが短ければ短いほど、視野枠の内部に１Ｄカラービットコードの境界条件を満たさない部分が入りにくくなり、デコード手段が１Ｄカラービットコードを読み取れる確率が高くなる。従って、本実施の形態では、視野枠の短辺の長さは、キャプチャ画面上で最短の長さである１ピクセル又は数ピクセル程度に予め設定されている。
【００７１】
デコード手段は、視野枠内部の狭小画像が境界条件を満たすか否か判定し、判定結果をインジケーターで利用者に提示する。狭小画像が境界条件を満たす場合には、デコード手段はその狭小画像に基づいてデコードを行う。
【００７２】
狭小画像が境界条件を満たさない場合には、利用者は、提示された判定結果と、狭小画像と、キャプチャ画像と、を見ながら、狭小画像が境界条件を満たすように種々の操作を行うことができる。
【００７３】
視野枠の短辺を１ピクセル又は数ピクセル程度のわずかなピクセル数に設定すると、狭小画像のＳ／Ｎ比が低くなる。その結果、デコード手段は、デコードの際に視野枠の内部に存在するノイズ等の影響を強く受け、正確にデータを出力できない場合も予想される。
【００７４】
そこで、利用者の指示に従ってデコード手段がメディアンフィルタなどを利用して狭小画像中のノイズに対して適当な処理を施すことによって、ノイズの影響が出力されるデータに及ぶのを防止する。この結果、視野枠の短辺がわずか数ピクセル程度にまで短く設定された場合でも、正しくデコードを行える可能性が高まる。
【００７５】
視野枠の長辺の長さ
視野枠の長辺の長さは、予めデコード手段に設定された２つのタイプのうちいずれかが利用者によって選択される。
【００７６】
一方のタイプは、視野枠の長辺の長さが１Ｄカラービットコードの長さよりも長い狭小視野である。他方のタイプは、視野枠の長辺の長さが１Ｄカラービットコードの長さよりも短い視野枠である。
【００７７】
図１には、前者のタイプの視野枠Ａと、後者のタイプの視野枠Ｂと、が示されている。視野枠Ａは、１Ｄカラービットコード１０に対して十分に長いものの例である。視野枠Ａの長手方向の両端は下地の領域にある。一方、視野枠Ｂは、１Ｄカラービットコード１０よりも短く、その長手方向の両端が端点セルの領域内にある例である。色彩領域１４ａと視野枠Ｂとが重なる領域よりも色彩領域１４ａが十分長い。また他方の端点の色彩領域１４ｊと視野枠Ｂとが重なる領域よりも色彩領域１４ｊが十分長い。すなわち、言い換えれば、視野枠Ａは被印物表面（Ｑｚ）がある場合の例である。視野枠Ｂは被印物表面（Ｑｚ）がない場合の例である。
【００７８】
まず、原則的には、視野枠Ｂが選択される。視野枠Ｂで切り出した狭小画像中の色彩領域群は全て１Ｄカラービットコードの構成色の色彩領域だからである。しかし、１Ｄカラービットコードが視野枠Ｂよりも長く、視野枠Ｂの内部に１Ｄカラービットコードを構成する色彩領域が入りきれない場合には、視野枠Ａを選択してもよい。利用者は、１Ｄカラービットコードの「切り出し」やすさや或いは「デコード」のしやすさを考慮して、適宜、視野枠Ａ又はＢのいずれかを選択することができる。
【００７９】
視野枠Ｂでキャプチャ画像１２の一部を取り出すと、左から右に向かって「色彩領域１４ａ→１４ｂ→１４ｃ→１４ｄ→１４ｆ→１４ｇ→１４ｈ→１４ｉ→１４ｊ」の順に並ぶ狭小画像を得る。この狭小画像には、セル群の直列性を乱す部分は含まれていない。
【００８０】
また、視野枠Ａでキャプチャ画像１２の一部を取り出すと、左から右に向かって「被印物表面→色彩領域１４ａ→１４ｂ→１４ｃ→１４ｄ→１４ｆ→１４ｇ→１４ｈ→１４ｉ→１４ｊ→被印物表面」の順に並ぶ狭小画像を得る。この狭小画像にも、セル群の直列性を乱す部分は含まれていない。
【００８１】
なお、視野枠の長辺の長さは、原則的には、デコード手段が１Ｄカラービットコードの読み取り動作を行う前に予めＢに設定されているが、デコードする度に利用者がデコード手段の画面上で適宜視野枠のタイプを選ぶようにしてもよい。
【００８２】
このように、本実施の形態に係る読み取り方法によれば、セル群の直列性を乱す部分を読み取り対象から除外して、残った部分だけを読み取るので、セル群の直列性を乱す部分の影響を受けることなく１Ｄカラービットコードを読み取ることができる。
【００８３】
視野枠の個数
上述した図１及び図２では、１個の視野枠を利用して１個の狭小画像を切り出す例を示した。本実施の形態では、視野枠の位置と、１Ｄカラービットコードの位置と、が一致する必要がある。しかしながら、キャプチャした画像中の１Ｄカラービットコードが、画面上に設定されたただ１個の視野枠の位置と一致する可能性は必ずしも高くない。
【００８４】
そこで、本実施の形態では、視野枠の個数を増やして、例えば図１０（２）に示されるように５個の視野枠を設定し、１個のキャプチャ画像から５個の狭小画像を切り出すことも好ましい。位置が異なる複数の視野枠で同時に１個の１Ｄカラービットコードの検出を行えば、１個の１Ｄカラービットコードに対して複数の異なる狭小画像が切り出される。切り出された狭小画像が複数あれば、読み取る候補が複数に増える。複数ある狭小画像のうちいずれか１個の狭小画像が１Ｄカラービットコードの境界条件を満たしさえすれば、デコード手段は１Ｄカラービットコードをデコードすることができるので、利用者にとって利便性が飛躍的に高まる。
【００８５】
キャプチャ画面そのものが視野枠である場合
上述した例では、デコード手段が画像データ上にマスクをかけて、画像データの一部を視野枠で取り出す方法を説明した。一方、画像データの一部を取り出すのではなく、狭い視野の画面を備えた読み取り装置を用いてもよい。このようにすることによっても、セルの直列性を阻む部分の影響を受けずに１Ｄカラービットコードを切り出すことができる。
【００８６】
（４）ノイズの処理方法
上述したように、本実施の形態における読み取り方法は、視野枠を利用してキャプチャ画像の一部を取り出し、その取り出した狭小画像に基づいてデコードを行うことを特徴の１つとする。狭小画像はキャプチャ画像よりも小さい画像の画像データなので、画像データから得られる情報量が少ない。そのため、狭小画像のＳ／Ｎ比はキャプチャ画像のそれよりも小さいので、本実施の形態における読み取り方法はノイズに弱くなる場合もある。
【００８７】
そこで、狭小画像中に混在するノイズを処理する方法を説明する。
【００８８】
（４−１）色彩領域の長さを利用する処理方法
図３には、１Ｄカラービットコードのキャプチャ画像の一部を狭小視野で切り出した狭小画像２８が示されている。図３に示されるように、狭小画像２８には、Ｒの色彩領域、Ｇの色彩領域、Ｑの色彩領域、Ｂの色彩領域、Ｒの色彩領域、Ｂの色彩領域、Ｑの色彩領域、Ｒの色彩領域、Ｇの色彩領域、Ｑの色彩領域、Ｇの色彩領域、の１１個の色彩領域がこの順に存在する。
【００８９】
デコード手段は、この狭小画像２８の左端から右端に至る各色彩領域に基づいて、「１、Ｒ、（なし）、２」、「２、Ｇ、１、３」、「３、Ｑ、２、４」、「４、Ｂ、３、５」、「５、Ｒ、４、６」、「６、Ｂ、５、７」、「７、Ｑ、６、８」、「８、Ｒ、７、９」、「９、Ｇ、８、１０」、「１０、Ｑ、９、１１」、「１１、Ｇ、１０、（なし）」という色彩情報を生成する。これら１１個の色彩情報は、１個の色彩配列情報を構成する。
【００９０】
図３では、さらに、デコード手段は、画像２８の左端から右端に至るまでの各色彩領域の狭小画像の長手方向の長さを測り取り、その長さを各色彩情報に追記する。長さの情報を利用して、ノイズから生成された色彩情報を後で除去するためである。長さを追記した後の色彩情報は、色彩領域に割り振られる番号（ＩＤ）、色彩の情報、前方向に隣接する色彩領域の番号、後方向に隣接する色彩領域の番号、長さ、が記述された情報となる。
【００９１】
画像２８の左端から右端に至る各色彩領域の長さは、それぞれ、１０、７、４、１０、１、５、３、４、８、２、５、である。従って、各長さを追記した後の各色彩情報は、それぞれ、「１、Ｒ、（なし）、２、１０」、「２、Ｇ、１、３、７」、「３、Ｑ、２、４、４」、「４、Ｂ、３、５、１０」、「５、Ｒ、４、６、１」、「６、Ｂ、５、７、５」、「７、Ｑ、６、８、３」、「８、Ｒ、７、９、４」、「９、Ｇ、８、１０、８」、「１０、Ｑ、９、１１、２」、「１１、Ｇ、１０、（なし）、５」となる。
【００９２】
ノイズの種類
狭小画像２８には、２つのタイプのノイズが含まれている。
【００９３】
第１タイプのノイズは、１Ｄカラービットコードの構成色以外の色彩が付され、かつ、長さが基準よりも短い色彩領域である。狭小画像２８では、色彩領域の長さの最大値１０を基準値としている。長さが基準値以上である色彩領域は、２個の１Ｄカラービットコードに挟まれた領域である。
【００９４】
第２タイプのノイズは、１Ｄカラービットコードの構成色の色彩が付され、かつ、長さが非常に短い色彩領域である。狭小画像２８では、長さが１である色彩領域を非常に短いとみなしている。
【００９５】
図３の１Ｄカラービットコードの本来の色彩の配列は、「Ｒ→Ｇ→Ｂ→Ｒ→Ｇ」であるが、上述した２種類のノイズが混在した結果、本来の色彩の配列とは異なる色彩の配列を表す色彩配列情報となっている。そのため、デコード手段が上記色彩配列情報をデコードしようとしても、正しくデコードできない場合がある。
【００９６】
そこで、本実施の形態では、以下に述べる２つのステップによって、上記２種類のノイズを除去する。
【００９７】
（第１ステップ）まず、デコード手段が第１タイプのノイズを表す色彩情報を無視（色彩配列情報から色彩情報を削除）し、その前後の色彩情報を詰めるという処理を行う。本実施の形態において、第１タイプのノイズは３個（「３、Ｑ、２、４、４」と、「７、Ｑ、６、８、３」と、「１０、Ｑ、９、１１、２」）あるので、デコード手段は、これら３個色彩情報を色彩配列情報から削除する。
【００９８】
次に、デコード手段は、削除した各色彩情報の前方向に隣接する色彩情報中の「後方向に隣接する色彩領域の番号」を、削除した色彩情報の後方向に隣接する色彩情報中の「色彩領域の番号（ＩＤ）」に修正する。例えば、色彩情報「３、Ｑ、２、４、４」の前方向に隣接する色彩情報（修正前）は「２、Ｇ、１、３、７」であるが、これを「２、Ｇ、１、４、７」に修正する。
【００９９】
また、デコード手段は、削除した色彩情報の後方向に隣接する色彩情報中の「前方向に隣接する色彩領域の番号」を、削除した色彩情報の前方向に隣接する色彩情報中の「色彩領域の番号（ＩＤ）」に修正する。例えば、色彩情報「３、Ｑ、２、４、４」の後方向に隣接する色彩情報（修正前）は「４、Ｂ、３、５、１１」であるが、これを「４、Ｂ、２、５、１１」に修正する。
【０１００】
本実施の形態では、第１ステップの処理によって、上記１１個の色彩情報から、「１、Ｒ、（なし）、２、１０」、「２、Ｇ、１、４、７」、「４、Ｂ、２、５、１１」、「５、Ｒ、４、６、１」、「６、Ｂ、５、８、５」、「８、Ｒ、６、９、４」、「９、Ｇ、８、１１、８」、「１１、Ｇ、９、（なし）、５」という処理結果が得られる。
【０１０１】
ここまでが、第１ステップの処理内容である。
【０１０２】
（第２ステップ）次に、デコード手段は、上記第１ステップの処理結果のうち、長さが１以下の色彩領域を第２タイプのノイズであると判断し、第２タイプのノイズであると判断した色彩領域に対応する色彩情報を無視（色彩配列情報から色彩情報を削除）する。そして、その無視する色彩情報の前方向に隣接する色彩情報と後方向に隣接する色彩情報との間を詰める処理を行う。本実施の形態においては、「５、Ｒ、４、６、１」が第２タイプのノイズの色彩情報なので、これを削除する。また、デコード手段は、無視する色彩情報の前方向に隣接する色彩情報中の「後方向に隣接する色彩領域の番号」を無視する色彩情報の後方向に隣接する色彩情報中の「色彩領域の番号（ＩＤ）」に修正し、無視する色彩情報の後方向に隣接する色彩情報中の「前方向に隣接する色彩領域の番号」を無視する色彩情報の前方向に隣接する色彩情報中の「色彩領域の番号（ＩＤ）」にそれぞれ修正する。
【０１０３】
この結果、第２ステップの処理によって、上記第１ステップの処理結果から、「１、Ｒ、（なし）、２、１０」、「２、Ｇ、１、４、７」、「４、Ｂ、２、６、１１」、「６、Ｂ、４、８、５」、「８、Ｒ、６、９、４」、「９、Ｇ、８、１１、８」、「１１、Ｇ、９、（なし）、５」という処理結果が得られる。
【０１０４】
ここまでが、第２ステップの処理内容である。
【０１０５】
この後、デコード手段は、第２ステップの処理結果が、１Ｄカラービットコードの成立条件を満たしているか否かを判断する。上記第２ステップの処理結果が成立条件を満たしていれば、デコード手段は、上記第２ステップの処理結果は正しいものであると判断してデコードを行い、データを出力する。処理結果が成立条件を満たしていない場合には、デコード手段は、デコードした１Ｄカラービットコードは読み取り対象ではない他の１Ｄカラービットコードであると判断して、再度、１Ｄカラービットコードを撮像し直し、再度デコードを繰り返す。
【０１０６】
（４−２）２個の色彩領域が重なり合った部分の処理方法
一般的なカラー印刷では、色の境界部分をわずかに重ね合わせることが広く行われている。多少、版ズレしても、色の境界部分に隙間ができないようにするためである。濃い色と薄い色との組み合わせで２色刷りした場合には、２色が重ね合わさった部分は濃い色の領域の一部になることが多いので、特に色彩の混在を認識する必要はない。
【０１０７】
一方、薄い色（輝度が低い色）同士の組み合わせで２色刷りした場合には、色を重ね合わせた部分が別の色彩領域になってしまうことがある。例えば、薄い黄色と薄い青色との組み合わせで２色刷りした場合には、色を重ね合わせた部分が緑色の色彩領域になる。その結果、本来の色彩の配列「（薄い黄色の領域）−（薄い青色の領域）」ではなく、それとは異なる色彩の配列「（薄い黄色の領域）−（緑色の領域）−（薄い青色の領域）」であると認識されることとなるので、妥当ではない。
【０１０８】
色彩領域の境界部分の模式図が図４（１）に示されている。図４（１）の色彩領域３０Ａ（右斜線で示される部分）は１Ｄカラービットコード構成色のＡ色のセルであり、色彩領域３０Ｂ（左斜線で示される部分）は１Ｄカラービットコード構成色のＢ色のセルである。各色彩領域３０Ａ、３０Ｂの一部が重なると、一定の領域（図中の領域３２）にＡ色及びＢ色の２つの色彩が混在することがある。
【０１０９】
領域３２の色彩をソフトウェア的に通常の方法で認識すると、領域３２の色彩はＡ色やＢ色とは異なる別の色彩Ｃ色（Ａ色とＢ色とを混色するとＣ色になるものとする）であるとみなされる。Ｃ色が１Ｄカラービットコードの構成色ではない場合には、従来の読み取り方法では、領域３２はノイズとして扱われてきた。Ｃ色を１Ｄカラービットコードのセルの１つとみなすと、本来の色彩の変化とは異なる色彩の変化を基にデコードすることとなり、不都合が生じる恐れがあるからである。
【０１１０】
しかし、Ｃ色が、セル構成色であるＡ色及びＢ色が混色した色彩であることが予め分かっている場合には、領域３２をノイズと認識するのは必ずしも妥当ではない。特に、Ｃ色の領域の面積が広い場合に、そのＣ色の領域を２個の１Ｄカラービットコードに挟まれた領域であると判断するのは妥当ではない。そのＣ色の領域を、Ａ色又はＢ色のどちらかの領域として扱うのが妥当である。
【０１１１】
そこで、本実施の形態では、以下に述べるステップを経て、Ｃ色である領域３２を色彩領域３０Ａ又は色彩領域３０Ｂのどちらかの領域の一部であるとみなすこととした。
【０１１２】
図４（１）下の図中に示される色彩領域３０Ａに割り振られた「色彩領域の番号」が３であるとき、色彩領域３０群から、色彩情報群「３、Ａ、２、４」、「４、Ｃ、３、５」、「５、Ｂ、４、６」が生成される。
【０１１３】
デコード手段は、この色彩情報群を修正することによって、利用者の指示に基づき「Ｃ色の色彩領域をＡ色の色彩領域の一部であるとみなす」又は「Ｃ色の色彩領域をＢ色の色彩領域の一部であるとみなす」処理を行う。
【０１１４】
具体的には、前者の処理を行う場合には、まず、デコード手段が、色彩の情報がＣである色彩情報と、Ａである色彩情報とを探す。本実施の形態では、色彩情報「３、Ａ、２、４」と「４、Ｃ、３、５」が該当する。
【０１１５】
次に、デコード手段は、これら２つの色彩情報は本来１個のＡ色の色彩領域を構成するとみなして、「３、Ａ、２、４」という色彩情報を生成し、２個の色彩情報「３、Ａ、２、４」、「４、Ｃ、３、５」と置き換える。また、他の色彩情報中の番号を適宜ずらす修正を行う。
【０１１６】
この結果、上記色彩情報群「３、Ａ、２、４」、「４、Ｃ、３、５」、「５、Ｂ、４、６」は、色彩情報群「３、Ａ、２、４」、「４、Ｂ、３、５」と修正される。この色彩情報群に基づいてデコードを行うことによって、「Ｃ色である領域３２を色彩領域３０Ａの一部であるとみなす」ことが実現される。
【０１１７】
なお、上述したように色彩配列情報を修正するのではなく、デコード手段が、キャプチャした画像を複数の色彩領域に区分けする前に、「Ｃ色の画素をＡ色の画素に置き換える」又は「Ｃ色の画素をＢ色の画素に置き換える」という画像処理を行うことも、好ましい実施の形態である。
【０１１８】
図４（２）の処理結果３４ａは、領域３２内にあるＣ色の画素を、画像処理的にＡ色の画素に置き換えることによって、領域３２を色彩領域３０Ａの一部であると見なした場合の例である。また、処理結果３４ｂは、領域３２内にあるＣ色の画素を、画像処理的にＢ色の画素に置き換えることによって、領域３２を色彩領域３０Ｂの一部であると見なした場合の例である。これら２個の処理結果３４ａ、３４ｂのいずれを基にしても、デコード手段は、上述したのと同一の色彩情報群「３、Ａ、２、４」、「４、Ｂ、３、５」を生成する。
【０１１９】
以上述べた方法によれば、色彩の情報がＡである色彩情報と、色彩の情報がＢである色彩情報と、の間に色彩の情報がＣである色彩情報が入らないので、問題なく１Ｄカラービットコードを正しく認識することができる可能性が高まる。
【０１２０】
（４−３）色彩の平均化処理
被印物にマーキングされた１Ｄカラービットコードをキャプチャすると、キャプチャ画像に背景が写り込んだり、１Ｄカラービットコードの色彩が微妙に変化して写ったりすることがある。その結果、キャプチャ画像に対して何ら画像の処理を行わなければ、デコード手段が、キャプチャ画像から１Ｄカラービットコードの本来の色彩の配列とは異なる色彩の配列を読み取り、正しいデータが得られない恐れがある。
【０１２１】
そこで、本実施の形態では、キャプチャ画像中の色彩を補正するために、キャプチャ画像に対して色彩の平均化処理を施す。色彩の平均化処理とは、具体的には、例えば、メディアンフィルター、輝度の平均化、シェーディング補正である。
【０１２２】
図５には、湾曲した板状体３６の端面をキャプチャしたキャプチャ画像３８が示されている。この板状体３６の端面には、１Ｄカラービットコード４０がマーキングされている。１Ｄカラービットコード４０は、板状体３６の端面に隙間なくマーキングされているので、板状体３６の端面そのものはキャプチャ画像３８中には写っていない。１Ｄカラービットコード４０の周囲は、背景である。
【０１２３】
キャプチャ画像３８中の２点鎖線は視野枠４２の一部である。図中、２本の２点鎖線に挟まれた部分が視野枠４２の内部である。図中の斜線部分は、視野枠４２の内部にある背景又はノイズが写ったものであり、１Ｄカラービットコードを構成する色彩領域ではない。
【０１２４】
デコード手段は、キャプチャ画像３８の一部を視野枠４２で取り出す。次に、デコード手段は、例えば、メディアンフィルターを利用して、視野枠４２中の斜線部分の色彩を１Ｄカラービットコードの構成色に置換する。この結果、視野枠４２の内部は、全て１Ｄカラービットコードの構成色の色彩領域となる。
【０１２５】
この後、デコード手段は、上記置換を終えた後の狭小画像を複数の色彩領域に分割し、上記（２）で述べた読み取り方法を実行して、１Ｄカラービットコード４０からデータを取得する。
【０１２６】
本実施の形態によれば、キャプチャ画像中にある程度ノイズが混在していても、デコード結果に影響を及ばない。そのため、利用者が多少ラフなキャプチャ動作を行っても、１Ｄカラービットコードを正しくデコードできるという非常に有益な効果が得られる。
【０１２７】
１Ｄカラービットコードと１次元バーコードとの比較
本実施の形態における１Ｄカラービットコードの読み取り方法では、直線状の視野枠で画像の一部を切り出すことを特徴の１つとする。一方、この直線状の視野（枠）でコードシンボルを読み取る方式は、すでに白黒バーコード（１次元バーコードとも呼ばれる）の読み取りにも使用されている。
【０１２８】
従って、直線状の視野を用いるという点では、従来の１次元バーコードの読み取り方法と、本実施の形態における１Ｄカラービットコードの読み取り方法とでは、視野枠を用いるという点で、一部共通する事項があるかも知れない。
【０１２９】
しかし、１Ｄカラービットコードと１次元バーコードとではデータの表し方が異なるため、ノイズ色彩の処理のために色彩の平均化処理（例えば画素の置換）ができるか否かという点で大きく異なる。
【０１３０】
図５中の１Ｄカラービットコード４０が１次元バーコードであった場合には、不都合が生じる場合がある。１次元バーコードのデータは、縞模様状の線の太さによって表わされる。各線（白黒（明暗）シンボル）の幅が重要である。白黒（明暗）シンボルの境界部分に曖昧さがある場合や、白黒（明暗）シンボルの幅が変化した場合には、正しくデコードできない場合があるからである。
【０１３１】
一方、１Ｄカラービットコードは、視野画像の長手方向の色彩の変化を認識することでコード（データ）を返すので、１Ｄカラービットコードの各セルの長さは、返すデータとは関係がない。各セルの長さにとらわれずに、ノイズを除去する色彩の平均化処理を行うことが可能である。そのため、１Ｄカラービットコードは、狭小画像にある程度ノイズが混在することがあっても、そのノイズ色彩からの影響を軽減しデータを正しく出力することができる。
【０１３２】
（４−４）短辺方向色彩均一化処理
上述した色彩の平均化処理は、１Ｄカラービットコードの構成色と、１Ｄカラービットコードの構成色でない色彩と、を区別することなく、メディアンフィルタなどで処理する。もし、１Ｄカラービットコードの構成色でない色彩が存在することが予め分かっている場合には、キャプチャ画像からその色彩を除去した後に色彩の平均化処理を行うことがより一層好ましい。
【０１３３】
そこで、本実施の形態では、ノイズ対策として、狭小画像の短辺方向の画素を均一化する短辺方向色彩均一化処理を行うステップを設けている。この短辺方向色彩均一化処理は、色彩の平均化処理を行う前に行われる。
【０１３４】
図６（１）には、１Ｄカラービットコードをキャプチャしたキャプチャ画像４４が示されている。この１Ｄカラービットコードは、湾曲した板状体４６の端面に隙間なくマーキングされている。また、キャプチャ画像４４内には、視野枠４８の位置が示されている。視野枠４８の内部には、１Ｄカラービットコードと背景とが写っている。なお、視野枠４８の外部は、板状体４６の輪郭のみが破線で示されている。
【０１３５】
１Ｄカラービットコードのセル構成色は、例えば、赤色、緑色、青色である場合が多い。一般的な画像信号の成分とも一致し、画像処理的に扱いやすいからである。背景の部分は、部屋の照明光との干渉や様々な物体への反射によって彩度・明度が低い色（例えば灰色）になることが多い。この背景の部分をＱｚと表す。
【０１３６】
なお、本節（４−４）における「Ｑｚ」は、上記（３）における「Ｑｚ」とは意味が異なる。（３）の「Ｑｚ」は、上記背景技術で述べた「クワイアットゾーン」を指す用語である。このクワイアットゾーンは、上記背景技術でも述べたように、１Ｄカラービットコードの領域とその周囲の１Ｄカラービットコードではない領域とを区分けするという役割を担う。一方、本節の「Ｑｚ」は、単に除く領域を指して用られている用語である。要するに、本節の「Ｑｚ」はいわゆる「ノイズ」を指す。
【０１３７】
デコード手段は、まず、キャプチャ画像４４の一部を視野枠４８で切り出す。
【０１３８】
次に、デコード手段は、キャプチャ画像４４の各画素の値を読み取る。各画素の値を読み取った結果、全画素の個数に対してＱｚに相当する画素の個数が占める割合が、予め定められた基準よりも高い場合には、デコード手段は、１Ｄカラービットコードの周囲にＱｚが存在している可能性が高いと判断する。そして、狭小画像の短辺方向に並ぶ１列の画素群又は狭小画像の短辺方向と平行な方向に１本の細い直線を表現できる画素群ごとに、Ｑｚの画素を色彩の平均化処理の対象から外し（無視し）、１Ｄカラービットコードの構成色である画素群のみを対象として色彩の平均化処理（例えばメディアンフィルタ）を行う。なお、狭小画像の短辺方向に並ぶ複数列の画素群又は狭小画像の短辺方向と平行な方向にやや太めの直線を表現できる画素群ごとに、上記処理を行うことも好ましい。本実施の形態では、この処理ステップを短辺方向色彩均一化処理と呼んでいる。
【０１３９】
デコード手段は、この短辺方向色彩均一化処理を、狭小画像の一方端から他方端に至るまでの全画素について行う。このことが、図６（２）に示されている。
【０１４０】
次に、デコード手段は、短辺方向色彩均一化処理後の各画素の値に基づいて狭小画像を複数の色彩領域に区分けする。図６（３）には、区分けした後の狭小画像５０が示されている。狭小画像５０には、Ｑｚの色彩領域は存在しない。
【０１４１】
この結果、デコード手段は、Ｑｚの色彩領域が存在しない又は非常に少ない画像に基づいてデコードを行うことができるので、より一層読み取り精度の高いデコード処理が可能になる。
【０１４２】
なお、図６（１）において、１Ｄカラービットコードを構成するセル群の境界部分の色彩が、隣接する色彩領域の色彩（Ａ色とＢ色）の混色であると予め分かっている場合には、上記（４−２）で述べたように、「Ａ色ｏｒＢ色」という値のくくりでＱｚの画素群を認識するという１Ｄカラービットコードに特有の均一化処理を行うことが好ましい。もし、Ａ色とＢ色とを単に平均化（例えば各画素のＲＧＢ値をそれぞれ平均する等）すると、色彩の遷移が変わり、色彩変化を検知する処理との整合性が悪くなる恐れがあるからである。
【０１４３】
Ｑｚの色彩が、１Ｄカラービットコードの構成色が混色した色彩であると予め分かっている場合には、それに適した方法で処理に合った方法で処理すれば、精度の高いデコード特性をより一層実現しやすくなる。
【０１４４】
応用例
短辺方向色彩均一化処理を利用すれば、狭小画像内にノイズや背景が一部に混在しても１Ｄカラービットコードを読み取ることができる。
【０１４５】
そこで、視野枠の内部にノイズや背景部分が入ることを前提に、デコード手段は、視野枠に一定の幅をもたせる（短辺を長くする）ことができる。多少の曲がりがある１Ｄカラービットコードを読み取る場合には、１Ｄカラービットコードの一部の構成セルが視野枠の内部に入りきれないことがある。本実施の形態では、デコード手段は視野枠の内部だけを読み取るので、視野枠の内部に入りきれなかった構成セルはデコードされない。１Ｄカラービットコードの配置と視野枠の形状がわずかに違うだけで、１Ｄカラービットコードを読み取れなくなるのは利用者にとって利便性が低くなる恐れがある。
【０１４６】
そこで、利用者の指示に従ってデコード手段が、視野枠の短辺の長さを長く調節し、狭小画像内のノイズや背景が除去されれば、デコード手段は、多少の曲がりのある１Ｄカラービットコードも読み取ることができる。その結果、デコード手段は、曲がった１Ｄカラービットコードの全体を含む画像を基に正しくデータを読み取れるので、利用者によって利便性が格段に向上するという非常に有益な効果が得られる。
【０１４７】
短辺方向色彩均一化処理と色彩量子化処理とを行う順序
本願発明者が先に出願した特願２００７−１３０５０４号に記載した１Ｄカラービットコードの読み取り方法では、キャプチャした画像に対して、まず色彩量子化を行う。この色彩量子化とは、キャプチャした画像を複数の色彩領域に区分けする処理をいう。
【０１４８】
一方、本実施の形態における読み取り方法では、色彩量子化の後に短辺方向色彩均一化処理を行うというパターン（すなわち、先に色彩量子化を行う）と、短辺方向色彩均一化処理の後に量子化を行うというパターン（すなわち、後に色彩量子化を行う）とが考えられるが、以下に述べる理由により後者のパターンが典型的である。
【０１４９】
図６（１）に示されるように、キャプチャ画像には１Ｄカラービットコードと背景とが写り込む場合がある。１Ｄカラービットコードは、赤色、緑色、青色などのように、彩度・明度が高い色彩のセルから構成されることが多い。一方、背景の色彩は、明度・彩度の低い色彩（例えば灰色）になる場合が多い。これらの色彩の彩度・明度の高さを比較すると、１Ｄカラービットコードを形成するセルの色彩は、彩度、明度ともに、背景の色彩よりも高いと考えられる。
【０１５０】
背景部分の画素値と１Ｄカラービットコードの構成セル部分の画素値との間に大きな差があるので、先に短辺方向色彩均一化処理によってＱｚを除去してから色彩量子化を行った方が、１Ｄカラービットコードを形成する色彩セルを際立たせる目的では有利である。すなわち、本実施の形態では、「短辺方向色彩均一化処理→量子化」の順に処理することが好ましい。
【０１５１】
また、狭小画像の短辺方向の均一化処理だけでは短辺方向ノイズを完全に除去するのは困難な場合があるので、長手方向にノイズリダクション処理を行うことがより一層好ましい。
【０１５２】
従って、短辺方向色彩均一化処理における典型的な処理順序は、「キャプチャ」→「短辺方向均一化処理」→長手方向「ノイズリダクション処理」→量子化、となる。
【０１５３】
（５）１Ｄカラービットコードのマーキング方法及び読み取り方法の改良例
（５−１）１Ｄカラービットコードの構成色について
視野枠を利用しない従来の１Ｄカラービットコードの読み取り方法では、例えば、「各セルは１個又は２個の他のセルと接する」という境界条件を満たすセルを追跡していた。セルに接する隣のセルを探し、次にそのセルに接するまた隣のセルを探し、さらにそのセルに接する隣のセルを探し、と次々にセルを追跡する。もし、セルの連なりが２分岐し、隣接するセルの個数が３個以上等になる場合には、境界条件を満たさなくなるので、１Ｄカラービットコードの切り出しができなくなる。
【０１５４】
一方、本実施の形態では、デコード手段が狭小画像の長手方向（直線方向）の色彩変化のみに基づいて１Ｄカラービットコードを検知し、デコードをする。デコード手段は、狭小画像の短辺方向（幅方向）の色彩は、平均化処理（例えば画素の置換）によって均一であると見なし、狭小画像の短辺方向（幅方向）の色彩変化を無視している。また、本実施の形態に係る読み取り方法では、狭小画像の長手方向にあるセルが隣のセルであると仮定している。
【０１５５】
従って、狭小画像の長手方向（直線方向）の一次元的な色彩変化のみを捕らえればよいので、狭小画像の短辺方向（幅方向）に必ずしもＱｚを設ける必要はない。
【０１５６】
一方、狭小画像の長手方向には、１Ｄカラービットコードの先端及び終端を表すＱｚを設ける必要がある。狭小画像の長手方向に１Ｄカラービットコード以外の画像が写る場合があるので、１Ｄカラービットコードと１Ｄカラービットコード以外の画像との境界を明確にする必要があるからである。
【０１５７】
もちろん、「狭小画像の長手方向が１Ｄカラービットコードの画像で満たされる」と規定した場合には、狭小画像の長辺近傍にＱｚを設ける必要はない。視野枠の長手方向の長さは有限であるから、視野枠の内部に１Ｄカラービットコードのセル群がちょうど全て過不足無く収まれば、Ｑｚは不要である。
【０１５８】
ここで、「過不足」の「過」とは、視野枠の長辺が、１Ｄカラービットコードよりも長い場合を指す。視野枠の長辺が１Ｄカラービットコードよりも長い場合には、１Ｄカラービットコードとそれ以外の画像との境界を明らかにするためにＱｚを設ける必要がある。一方、「不足」とは、視野枠の短辺が短すぎて視野枠の内部に１Ｄカラービットコードの一部しか入らない場合を指す。この場合には、視野枠の外部にある１Ｄカラービットコードも読み取り対象とはならない。従って、１Ｄカラービットコードのスタートを表すＱｚとエンドを表すＱｚとを設けて、それらを目印にして１Ｄカラービットコード全体を視野枠の内部に入れる必要がある。
【０１５９】
Ｑｚが不要な場合には、Ｑｚに利用されていた色彩をデータを表すために使用しても良い。Ｑｚの色彩としては一般的に白色や黒色が予約されることが多いが、白色を１Ｄカラービットコードの構成色に加えて、｛赤色、緑色、白色｝の３色で１Ｄカラービットコードを構成しても良い。
【０１６０】
（５−２）白色を１Ｄカラービットコードの構成色の１つとした場合のマーキング方法
例１
Ａ色、Ｂ色、白色、の３色を用いた１Ｄカラービットコードのマーキングは、現実の場面では、一般的に、まず広い範囲に白色を塗布し、その上にＡ色のセルとＢ色のセルを塗布することによって行われる。
【０１６１】
図７（１）は、被印物５２の表面の模式図である。被印物５２の表面の広範囲に、１Ｄカラービットコードの構成色であるＷのインクを下地色として塗布して白色下地５４が形成されたことが示されている。ここで、広範囲とは、視野枠よりも広いことをいう。なお、図７（１）中の斜線部分は背景色を示す。
【０１６２】
図７（２）は、構成セル５６群（Ａ色のセル及びＢ色のセル）を形成した後の被印物５２の表面の模式図である。白色下地５４上にＡ色のインク又はＢ色のインクが重ね塗りされ、構成セル５６群が構成されている。構成セル５６群を構成するＡ色のセル及びＢ色のセルは、それぞれ間隔を空けて形成されている。Ａ色のセル及びＢ色のセルの各セルの間には白色下地５４がそのまま露出しており、この露出部分が１Ｄカラービットコードを構成する白色セルとなる。
【０１６３】
図７（３）には、１Ｄカラービットコードのキャプチャ画像５８が示されている。デコード手段のキャプチャ画面には視野枠６０が予め表示されており、デコード手段は、視野枠６０を利用して視野枠６０の内部の狭小画像を切り出す。
【０１６４】
この図７（３）に示されるように、視野枠６０内には、Ａ色のセルと、Ｂ色のセルと、白色の部分、のみしか存在しない。このように、Ｑｚに利用していた色彩を１Ｄカラービットコードの構成色の１つとして利用すれば、「視野枠内に１Ｄカラービットコードを過不足なく納める」という状況を容易に実現することができる。
【０１６５】
図７（４）には、切り出された狭小画像６２が示されている。デコード手段は、狭小画像６２に対して色彩の平均化処理又は短辺方向色彩均一化処理を行い、各画素に基づいて複数の色彩領域に分割する。そして、狭小画像６２が１Ｄカラービットコードの成立条件を満たしていると判断した場合には、上記（２）で述べた読み取り方法でデコードを行う。
【０１６６】
例２
読み取りにさらに正確性を期するために、１Ｄカラービットコードの両端以外の白色セルに、再度白色をマーキングすることも好ましい。もし、Ａ色のセル及びＢ色のセルをマーキングする際に、白色下地が汚れたとしても、汚れの上から白色セルをマーキングすれば正しく読み取れるという有利な効果が得られる。
【０１６７】
また、１Ｄカラービットコードの構成色が、｛赤色｝、｛緑色｝、｛赤色及び緑色のいずれでもない色彩｝、の３種類である場合には、１Ｄカラービットコードの両端以外の白色セルに黄色系統の色彩をマーキングすることによっても同様の効果が得られる。
【０１６８】
下地色を１Ｄカラービットコードの構成色として利用する効果
上述したように、本実施の形態では、白色を下地色として被印物表面に塗布し、下地が露出した部分を１Ｄカラービットコードの構成セルとして利用することも好ましい。このように下地の色彩を１Ｄカラービットコードの１つとして利用すれば、以下の３つの効果が得られる。
【０１６９】
１つ目の効果は、１Ｄカラービットコードの構成色として、無彩色系統（白、黒、グレーなど）の色彩や明色系統（白、明るい黄色等）の色彩を用いることができるという効果である。
【０１７０】
Ｑｚの色彩としては、従来から、無彩色系統や明色系統の色彩が用いられることが多い。無彩色系統や明色系統の色彩は背景色として一般的で、安定的にキャプチャできる色彩なので、デコードの正確性の維持及び品質的に、無彩色系統や明色系統の色彩をＱｚに用いるのが最も好ましかったからである。
【０１７１】
セルの構成色は、Ｑｚの色彩とは別に、無彩色系統や明色系統ではない色彩（例えばＲ（赤色）、Ｇ（緑色）、Ｂ（青色））を選択する必要があった。無彩色系統や明色系統ではない色彩は、色彩の区分けが白色等に比べて困難な場合がある。そのため、Ｒ、Ｇ、Ｂをセルの構成色とすると、正しくデコードができない場合もあった。
【０１７２】
一方、本実施の形態では、Ｑｚを設ける必要がないので、従来Ｑｚに割り当てていた無彩色系統の色彩や明色系統の色彩を、１Ｄカラービットコードの構成色として用いることができる。キャプチャ対象として安定的な色彩を１Ｄカラービットコードの構成色として用いることができるので、従来よりも読み取り正確性が向上する。
【０１７３】
２つ目の効果は、色彩の区分けがし易くなるという効果である。１Ｄカラービットコードの構成色としては、Ｒ（赤色）、Ｇ（緑色）、Ｂ（青色）の３つの色彩がしばしば採用される。これら３つの色彩は色の３原色であり、色の認識が容易だからである。しかしながら、これらＲ、Ｇ、Ｂの３種類の色相は、人間の視覚とカメラで測定する感度との間にズレがある場合がある。特に、カメラを用いて｛Ｇ｝と｛Ｂ｝とを区別することは比較的に難しい。ＧのセルとＢのセルとの配列順を誤って認識することもあり得る。一方、｛Ｒ｝と｛Ｇ｝との区別や、｛Ｒ｝と｛Ｂ｝との区別、及び｛Ｒ、Ｇ、Ｂ｝と｛Ｗ｝との区別は、比較的に容易なケースが多い。
【０１７４】
そこで、Ｗを下地色として利用すれば、｛Ｒ、Ｇ、Ｂ｝と｛Ｗ｝との組み合わせで１Ｄカラービットコードを構成できる。カメラを用いて１Ｄカラービットコードを構成する色彩をより一層容易に区分けできるので、読み取り特性が格段に向上するという有益な効果が得られる。
【０１７５】
３つ目の効果は、１Ｄカラービットを付すのに必要な色彩の種類が減り、色彩の選定が極めて容易になるという効果である。３色をセル構成色とする従来の１Ｄカラービットコードでは、１Ｄカラービットコードを構成する３種類の色彩と、Ｑｚを表す１色と、の合計４種類の色彩を必要としていた。一方、本実施の形態では、Ｑｚを表すための色彩を特に設ける必要がない。この結果、１Ｄカラービットコードを付すために必要な色彩の種類を、４種類から３種類に減じることができたという有益な効果が得られた。また、１Ｄカラービットコードのマーキングがより一層簡便になるという効果も得られる。
【０１７６】
（５−３）切り出し用冗長セル
図７（３）において、視野枠６０の長辺の長さが、白色にした下地部分（白色下地５４）よりも長い場合には、非下地部分（白色下地５４がマーキングされていない部分）も視野枠６０の内部に入り、キャプチャされてしまう。非下地部分の色彩は不定であり、非下地部分そのものが何らかの色彩パターン（模様）をもっていることもあり得る。従って、この場合には、非下地部分をデコードの対象から除外することが好ましい。ここでは、切り出し用冗長セル６８ａ、６８ｂを用いて、非下地部分をデコードの対象から除外する（すなわち、１Ｄカラービットコードのみをデコードする）方法について述べる。
【０１７７】
図８には、板状体６４が示されている。板状体６４の端面の一部には、白色下地６６がマーキングされており、白色下地６６上にはさらに１Ｄカラービットコードのセル構成色のうち白色以外の色彩のセルがマーキングされている。こうして、図中に示されるように、左端から右端に向かって、切り出し用冗長セル群６８ａ、１Ｄカラービットコード７０、切り出し用冗長セル群６８ｂ、がこの順にマーキングされている。
【０１７８】
切り出し用冗長セル群６８ａ、６８ｂは、それぞれ５個のセル（白色のセルを含む）から構成され、同一の色彩の配列を表す。これら切り出し用冗長セル群６８ａ、６８ｂは、間に１Ｄカラービットコード７０が存在することを示す。
【０１７９】
図９には、上記板状体６４の端面の垂直上方から１Ｄカラービットコード７０をキャプチャしたキャプチャ画像７２が示されている。図９において、視野枠７４の長辺の長さは、白色の下地６６より長い。そのため、非下地部分（不定色）が視野枠内に入り、キャプチャされてしまう。このような場合でも、切り出し用冗長セル群６８ａ、６８ｂによって１Ｄカラービットコードの存在を示すことによって、１Ｄカラービットコードの切り出しを容易にすることができるのである。デコード手段は、予め設定された視野枠７４の内部の画像が、１Ｄカラービットコードの成立条件を満たすと判断したとき、切り出し用冗長セル６８ａと６９ｂとの間にあるセル群が１Ｄカラービットコード７０の色彩の配列を表すと想定してデコードを行う。                        
本実施の形態によれば、１Ｄカラービットコードをマーキングする被印物そのものの色彩パターン（模様）に関わらず１Ｄカラービットコードを読み取ることができるので、１Ｄカラービットコードの使用用途が格段に広がる。
【０１８０】
（６）デコード手段の操作性の改良例
（６−１）視野枠の数・配置・形状のバリエーション
本実施の形態において、キャプチャした画像をデコード手段の画面に表示することは容易である。視野枠の内部の画像を表示することも容易である。視野枠で１Ｄカラービットコードを読み取る場合、利用者が、デコード手段のキャプチャ画面上で、キャプチャ画像と視野枠との双方の位置・範囲を同時に認識できるのが好ましい。キャプチャ画像と、視野枠の内部の画像と、の双方を同時に１個の画面に表示すれば、利用者にとって操作しやすく指示しやすいので都合がよい。また、視野枠をキャプチャ画像内に表示すれば、利用者にとってエイミングが容易で更に操作しやすくなる。
【０１８１】
図１０には、視野枠の数・配置・形状のバリエーションの例が示されている。
【０１８２】
図１０（１）は、１個のキャプチャ画面７６に１個の直線状の視野枠７８を設定した例である。本実施の形態における視野枠は、必ずしも直線状である必要はない。また、視野枠の数を１個に限定するものではない。１つのキャプチャ画面に視野枠が複数ある方が読み取り操作の面で好都合である場合には、キャプチャ画面に複数の視野枠を設定することもできる。１つのキャプチャ画面に視野枠が複数存在する場合には、各視野枠を平行に配列したり、角度を変えて配列する等、操作性向上のための数多くのバリエーションがあり得る。
【０１８３】
図１０（２）のキャプチャ画面８０は、５個の直線状の視野枠が平行に設けられた例である。１Ｄカラービットコードを読み取るためには１Ｄカラービットコードを構成するセル群の画像を視野枠に合わせる必要があるが、視野枠が複数個あれば、いずれかの視野枠が１Ｄカラービットコードに合えばよい。この結果、１Ｄカラービットコードを捕らえやすくなるので、利用者にとって操作が簡便になるという効果が得られる。
【０１８４】
図１０（３）のキャプチャ画面８２は、９個の直線状の視野枠が、３個１組でそれぞれ少しずつ角度を変えて設けられた例である。上述したように、１Ｄカラービットコードを読み取るためには視野枠の位置を１Ｄカラービットコードに合わせる必要があるが、角度も合わせる必要がある。しかし、１Ｄカラービットコードの角度を視野枠に合わせるのが容易でない場合もある。そこで、キャプチャ画面８２のように、複数個の視野枠が角度を少しずつずらして設けられていれば、視野枠と１Ｄカラービットコードとの角度を合わせやすくなり、利用者にとって操作がより一層簡便になる。
【０１８５】
図１０（４）のキャプチャ画面８４は、「へ」の字型の１個の視野枠を配置した例である。なお、図１０中に記載されている「異形」とは、直線状ではないという意味である。１Ｄカラービットコードが「へ」の字型にマーキングされている場合には、それに合わせて「へ」字型の視野枠を用いれば読み取りやすくなる。
【０１８６】
図１０（５）のキャプチャ画面８６は、「Ｕ」字型の１個の視野枠を配置した例である。キャプチャ画面８４と同様に、１Ｄカラービットコードが「Ｕ」字型に配置されている場合には、視野枠の形状も１Ｄカラービットコードに合わせて「Ｕ」字型に設定すれば、切り出しやすくなり読み取りやすくなる。
【０１８７】
本実施の形態においては、視野枠で取り出す狭小画像が短辺方向と長手方向という方向性を有することが重要である。狭小画像の長手方向のみの色彩の変化に基づいてデコードするからである。狭小画像のいずれかの縁が曲線状であったり、短辺方向の幅が変化していても（一定でなくても）、狭小画像の２つの方向性（長手方向と短辺方向）が明確であれば読み取りが可能である。
【０１８８】
また、視野枠は、キャプチャ画面の視野内で固定されている必要はなく、デコード手段が、視野枠をキャプチャ画面中を上下に走査するように移動させたり、回転させたりすることも考えられる。本実施の形態において、デコード手段は、特許請求の範囲に記載の視野枠移動手段の好ましい一例に相当する。また、１つのキャプチャ画面上に、複数の視野枠があっても良い。また、視野枠の幅、長さなどを１Ｄカラービットコードの配置に合わせて変更することも好ましい。利用者が、視野枠の形状を１Ｄカラービットコードの幅・長さに合わせて変更できれば、好都合である場合が多々あるものと想定される。
【０１８９】
また、視野枠の数・形状のバリエーションの設定は、画像をキャプチャした後にソフトウェア的に行うことができる。利用者が、視野枠のバリエーションを自由に選んだり、任意に変化を加えることも可能である。
【０１９０】
（６−２）１Ｄカラービットコードの位置と視野枠の位置とを関連づける方法
キャプチャ画像内に、１個の１Ｄカラービットコードがマーキングされたタグが複数個ある場合、デコード手段が、タグごとに、１Ｄカラービットコードが表すデータと位置情報とを関連づけてキャプチャ画像上に提示すれば、利用者にとって利便性が向上する。視野枠を利用した読み取り方式では、読み取れた１Ｄカラービットコードの多くは、おおよそ平行に配置されているものであるケースが多いと想定される。キャプチャカメラを上下左右に動かして読み取る場合が多いからである。読み取れた複数の１Ｄカラービットコードの位置と、それらの１Ｄカラービットコードを読み取ったときの視野枠の位置とを関連付けて認識できれば、複数のタグ同士の位置関係も認識できるのでより一層好ましい。
【０１９１】
上記（６−１）で述べたように、利用者は、視野枠の位置をキャプチャ画像の中で自由に設定できる。また、その他に、以下に示すような多様な方法で視野枠の位置を設定することが考えられる。
【０１９２】
ａ．１Ｄカラービットコードを動画キャプチャしながら、キャプチャ映像内で視野枠を自動で移動（走査）させる。
【０１９３】
具体的には、連続的にキャプチャされる各画像上に、視野枠を、各画像ごとに少しずつ位置を移動させて設定しておき、視野枠と色彩配列コードの位置が合致しているいずれかのキャプチャ画像についてデコード処理を行えば、この処理を行うことができる。より具体的には、各画像に設定された視野枠のうち、視野枠内の色彩領域が、色彩配列コードを構成する色彩により構成されているものについて、その視野枠内の狭小画像を取り出し、デコードの対象とするのである。この場合に、各キャプチャ画像における視野枠の移動方法は、平行に移動させても良いし、回転移動させても良い。なお、視野枠の個数は、単数個であっても複数個であっても良い。
【０１９４】
ｂ．一旦取り込んだ静止画像上で、視野枠を自動で走査させる。視野枠の個数は、単数個であっても、複数個であっても良い。
【０１９５】
ｃ．キャプチャ画像内の所定の位置に視野枠を固定し、利用者が、カメラ本体を動かして動画キャプチャ視野全体を移動（走査）させる。視野枠の個数は、単数個であっても、複数個であっても良い。
【０１９６】
上記の方法であれば、タグが複数個あった場合でも、いずれのタグも読み取ることが可能である。
【０１９７】
しかしながら、上記ａ〜ｃの方法で視野枠の位置を設定してタグをキャプチャすると、その後の処理で、以下の３つの処理を行うことが困難になる場合がある。
【０１９８】
１．タグの位置関係の認識  
キャプチャ画像上において、視野枠の位置とタグとの双方が移動するので、双方の位置関係を認識することが困難になる。また、複数のタグが存在する場合に、各タグの位置関係を認識することも困難になる。
【０１９９】
２．同一タグの区別  
視野枠の位置が移動するので、１個のタグを複数回認識したということを判断することが困難になる。
【０２００】
３．読み取りに失敗したタグの処理
読み取りに失敗したタグは、再度読み取りトライを行うのが望ましい。しかし、読み取りに失敗したタグの位置の追跡をしないので、視野枠が読み取れなかったタグを一度離れると、再度読み取りトライすることが困難になる。
【０２０１】
これら３つの処理を行うために、以下に述べる２つの方式を併用することが好ましい。
【０２０２】
方式１（タグの位置の認識）
方式１は、視野枠の位置情報を利用して、タグの位置を認識する方式である。
【０２０３】
デコード手段は、１Ｄカラービットコードをデコードできたときの視野枠（デコード視野）の位置情報をキャプチャ画像とリンクさせて（貼り付けて）記憶する。位置情報とは、視野枠の内部に存在する各画素の座標情報である。デコード手段は、１Ｄカラービットコードからデコード結果を得る度に、デコード結果と、デコードできたときの視野枠の位置情報とをキャプチャ画像とリンクさせて（貼り付けて）記憶する。複数回デコードできたときには、複数の位置情報がキャプチャ画像にリンクされることになる。
【０２０４】
この結果、デコードできた１Ｄカラービットコードの位置が全てキャプチャ画像にリンクさせて記憶されることになるので、デコード手段が、キャプチャ画像にリンクされた位置情報全てを読み取り、キャプチャ画面上にその位置を示す枠等を表示すれば、利用者にとっては、読み取れたタグの位置を全て認識することが容易である。
【０２０５】
方式２（同一タグの区別）
方式２は、デコード手段が上記方式１を実行して記憶した視野枠の位置情報に基づいて、同一タグであると判断した場合には、合わせて１つとしてカウントする方式である。同一のタグであるか否かの判断は、以下の２通りの考え方がある。
【０２０６】
第１の考え方は、「視野枠の幅の係数倍以上」を基準とする考え方である。デコード手段が新たに得た視野枠の位置情報と、デコード手段がすでに得ている視野枠の位置情報と、を比較して、新たな視野枠が前の視野枠に対して「視野枠の幅の係数倍以上」離間している場合には、それら視野枠の内部に写っているタグは同一でないと判定する。基準内であれば、デコード手段は、同一のタグを読み取ったと判定し、新たに得た位置情報及びデコード結果を破棄する。
【０２０７】
第２の考え方は、「予め定められた距離」を基準とする考え方である。第１の考え方と同様に、新たな視野枠と前の視野枠との間に、基準値以上の離間があれば、それらのタグは同一でないと判定する。基準内であれば、デコード手段は、同一のタグを読み取ったと判断し、新たに得た位置情報及びデコード結果を破棄する。
【０２０８】
利用者は、視野枠の幅の長さ、或いは読み取ろうとするタグの密集度などに合わせて、適宜いずれか又は双方の考え方を採用することができる。この結果、デコード手段は、利用者に対して読み取れたタグの位置を提示できるので、利用者にとって操作性が向上する。また、利用者は、読み取れたタグの位置を知ることによって、読み取れていないタグがどのタグであるかを知ることもできるので、利用者にとって操作性が格段に向上する。
【０２０９】
（７）１Ｄカラービットコードの追跡
１Ｄカラービットコードの最も基本的な読み取り方法では、色彩のみに基づいて、キャプチャ画像中の１Ｄカラービットコードの構成色の色彩領域を追跡し、１Ｄカラービットコードを切り出す。
【０２１０】
しかしながら、この色彩のみに基づく追跡方法では、１Ｄカラービットコードを追跡する方向が規制されないので、１Ｄカラービットコードの配置によっては、読み取りが困難な場合もあった。
【０２１１】
そこで、本願発明者は、１Ｄカラービットコードの追跡方向を規制した改良例を２つ開発した。
【０２１２】
改良例１は、上述したように、幅の狭い視野枠（上述した「Ｕ」字型の視野枠や「へ」字型の視野枠のように視野枠が曲線状に配置されている場合も含まれる）を利用した読み取り方法である。上述したように、この読み取り方法では、１Ｄカラービットコードのキャプチャ画像に視野枠をあてがうことによって、追跡方向を規制する。
【０２１３】
改良例２は、１Ｄカラービットコードの直線性を利用した読み取り方法である。１Ｄカラービットコードの配置はデータとは関係がないが、一般的に１Ｄカラービットコードは直線状にマーキングされる場合が多い。そこで、直線状にマーキングされた１Ｄカラービットコードを読み取る場合には、１Ｄカラービットコードの直線性を利用すればより一層簡単に追跡することができる。以下では、この改良例２の具体例を２つ説明する。
【０２１４】
追跡例１
図１１には、１Ｄカラービットコードを含むキャプチャ画像８８が示されている。図中の１６個の色彩領域９０ａ、９０ｂ、９０ｃ、９０ｄ、９０ｅ、…、９０ｋ、９０ｋ＋１、９０ｋ＋２、…、９０ｎ−１、９０ｎが１Ｄカラービットコードを構成する。色彩領域９０ｑは、１Ｄカラービットコードの構成色と同色の色彩領域であるが、１Ｄカラービットコードを構成しない。なお、色彩領域９０群の周囲は、１Ｄカラービットコードの構成色ではない色彩の色彩領域である。
【０２１５】
本実施の形態では、初期条件として、（Ａ）色彩領域９０ａが第１セルであることが既知である。色彩領域９０ａが「予め定められた位置にある画素」を含むので、色彩領域９０ａが１Ｄカラービットコードの第１セルであることは初めから既知である。（Ｂ）１Ｄカラービットコードを構成する各セルは、「各セルは１個又は２個の他のセルと接する」という境界条件に基づいてマーキングされている。（Ｃ）「１Ｄカラービットコードを構成するセル群は、急峻な曲がり方をしない」という規定に基づいてマーキングされている。デコード手段は、これら３個の規定を利用して、最も直線性の高い色彩範囲（色彩領域）を順番に追っていくことによって、１Ｄカラービットコードを追跡する。
【０２１６】
デコード手段は、まず、色彩領域９０ａに隣接する他の色彩領域の中から１Ｄカラービットコードの構成色の色彩領域を選択し、その色彩領域を１Ｄカラービットコードの第２セルであるとみなす。本実施の形態では、色彩領域９０ｂが第２セルとなる。
【０２１７】
デコード手段は、同様に、１Ｄカラービットコードの構成色の色彩領域を次々に選択し、色彩領域９０ｃ、９０ｄ、９０ｅ、…、９０ｋ、９０ｋ＋１を、それぞれ、第３セル、第４セル、第５セル、…、第ｋセル、第ｋ＋１セルであるとみなす。
【０２１８】
次に、デコード手段は、第ｋ＋２セルである色彩領域を追跡する。図１１に示されるように、色彩領域９０ｋ＋１セルは、色彩領域９０ｋ＋２と、色彩領域９０ｑと、その他周囲の色彩領域と、に接する。色彩領域９０ｋ＋２と色彩領域９０ｑは、ともに１Ｄカラービットコードの構成色の色彩領域であり、第ｋ＋２セルである色彩領域の候補が２個存在することになるので、上記（Ｂ）の規定だけでは追跡できない。そこで、デコード手段は、上記（Ｃ）の規定を利用して１Ｄカラービットコードを追跡する。
【０２１９】
図１２には、図１１中の枠９２の内部を拡大した図が示されている。デコード手段は、まず、色彩領域９０ｋ＋１、９０ｋ、９０ｋ＋２、９０ｑの各重心点９４ｋ＋１、９４ｋ、９４ｋ＋２、９４ｑの位置を算出する。
【０２２０】
次に、デコード手段は、重心点９４ｋ＋１と、各重心点９４ｋ、９４ｋ＋２、９４ｑ、とを通る直線Ｌ（ｋ）、Ｌ（ｋ＋２）、Ｌ（ｑ）、を各重心点ごとに描く。
【０２２１】
次に、デコード手段は、直線Ｌ（ｋ）と直線Ｌ（ｋ＋２）とが成す角α（ｋ＋２）と、直線Ｌ（ｋ）と直線Ｌ（ｑ）とが成す角α（ｑ）と、を比較し、直線Ｌ（ｋ）に対して最も直線性が高い直線を選択する。本実施の形態では、角α（ｋ＋２）の方が小さいので、デコード手段は、直線Ｌ（ｋ＋２）が最も直線性が高いと判断し選択する。
【０２２２】
次に、デコード手段は、直線Ｌ（ｋ＋２）上にある２個の重心点のうち、重心点９４ｋ＋１ではない重心点９４ｋ＋２が属する色彩領域９０ｋ＋２を１Ｄカラービットコードの第ｋ＋２セルであると判断する。
【０２２３】
デコード手段は、さらに色彩領域９０ｎに至るまで色彩領域を追跡する。この結果、本実施の形態によれば、１Ｄカラービットコードを構成する色彩領域群をより一層簡単に追跡し、デコードを行うことができる。
【０２２４】
追跡例２
図１３には、板状体９６が示されている。板状体９６の端面には、図中左から右に向かって、端点セル９８ａ、切り出し冗長セル群９８ｂ、データセル群９８ｃ、がマーキングされている。これら３個のセル群は１Ｄカラービットコード９８を構成する。本実施の形態の特徴の１つは、端点セル９８ａが、他のセルよりも端面の長手方向に長く、他のセルよりも非常に大きい色彩範囲（領域）にマーキングされていることである。なお、端点セルは、スタートセルと呼ばれることもある。
【０２２５】
図１４には、１Ｄカラービットコード９８をデコード手段でキャプチャしたキャプチャ画像１００が示されている。図中、１Ｄカラービットコード９８の周囲に示される色彩領域群は、背景の模様を示す。
【０２２６】
本実施の形態では、視野枠を用いずに、通常に視野によって１Ｄカラービットコードをキャプチャし、読み取る。初期条件は以下の２つである。
【０２２７】
第１の条件は、端点セルは、予め定められた色彩を表し、キャプチャ画像内の予め決められた画像端に接して存在するという条件である。予め決められた画像端とは、キャプチャ画像の縁のうち、利用者が指定した縁をいう。なお、縁の一部であってもよい。本実施の形態では、端点セルは、キャプチャ画像１００の左縁に接して存在すると条件付けされている。
【０２２８】
第２の条件は、端点セルから連続して切り出し冗長セル群が存在するという条件である。切り出し冗長セル群は４個のセルからなり、予め規定された色彩の配列を表す。
【０２２９】
利用者は、端点セル９８ａがキャプチャ画像１００の左縁にかかるようにデコード手段を動かして１Ｄカラービットコード９８をキャプチャする。上述したように、端点セル９８ａの色彩領域は非常に大きいので、端点セル９８ａの色彩領域をキャプチャ場面１００の左端にかかるように移動させキャプチャすることは容易である。
【０２３０】
デコード手段は、キャプチャ画像１００を各画素の値に基づいて複数の色彩領域に分割し、キャプチャ画像８６の左縁に接する色彩領域群の画素の値に基づいて端点セル９８ａを探索する。端点セル９８ａに割り当てられた色彩と同一の色彩の色彩領域を見つけた場合には、その色彩領域は端点セル９８ａであるとみなす。
【０２３１】
次に、デコード手段は、端点セル９８ａに隣接する４個の色彩領域の中から、各画素の値に基づいて切り出し冗長セル群９８ｂの第１セルを見つけ出す。また、さらに、デコード手段は、画素の値に基づいて切り出し冗長セル群９８ｂの第２セル、第３セル、第４セルを次々に追跡する。
【０２３２】
次に、デコード手段は、キャプチャ画像１００上で、端点セル９８ａと、切り出し冗長セル群９８ｂを構成するセル群と、の位置関係を認識し、位置関係に基づいてキャプチャ画像１００上の配列方向（角度）を算出する。
【０２３３】
次に、デコード手段は、上記追跡例１と同様にして、切り出し冗長セル群９８ｂの配列方向に対して最も直線性が高い位置に存在する色彩領域を次々に選択し、データセル群９８ｃを構成する色彩領域群を追跡する。１Ｄカラービットコード９８のセル群の列は曲率が比較的に小さく、直線状に配列しているので、上記追跡例１で述べた方法によって１Ｄカラービットコード９８を切り出すことができる。
【０２３４】
本実施の形態において、端点セル９８ａは、キャプチャ画像の視野端（画像端）に接するという初期条件があるが、画像端ではなく、例えば、キャプチャ画像の視野内の決められた位置に存在する画素を含む色彩領域を端点セルであると規定しても、問題なく１Ｄカラービットコードを切り出すことができる。この場合、その「決められた位置」を画面内に例えば「×」印等によって表示すれば、利用者が、端点セルを「決められた位置」に合わせやすくなるので、操作性が格段に向上する。また、「決められた位置」をキャプチャ画面内で自動的に走査するように移動させることによっても操作性の向上を図ることができる。具体的には、「決められた位置」をキャプチャ画像の視野内に複数定めておいて、いずれかの「決められた位置」が端点セルを表す色彩である場合に、そこを端点セルとみなす。その結果、ある１つの「決められた位置」に色彩配列コードの端点が位置しない場合でも、他のいずれかの「決められた位置」に端点が位置すれば、画像内から「自動」で端点セルを抽出し、色彩配列コードを切り出すことができる。なお、この処理は、特許請求の範囲における「複数の予め決められた位置の中から、予め決められた色彩の色彩領域を選択し、その選択した色彩領域を前記色彩配列コードのスタートセルであるとみなす」ことの好適な一例である。
【０２３５】
（８）１Ｄカラービットコードの改良例
（８−１）追記型１Ｄカラービットコード
例えば、複雑に各工程が入り組んだ製造工程などでは、その各工程単位毎に、製品にコードを付加することがしばしば望まれている。これは、製造された製品がどのような工程を辿ったか、簡単にかつ精度良く管理するためである。
【０２３６】
そこで、本発明者は、先に、同一色彩列上に複数のコードシンボル（１Ｄカラービットコード）を連続的にマーキングして構成される追記型１Ｄカラービットコードを開発した。
【０２３７】
具体的には、例えば、
（Ａ）Ｑｚ色のセルと、Ｑｚ色ではない３種類のセルと、の４種類のセルからなる追記型１Ｄカラービットコードを開発した。この追記型１Ｄカラービットコードは複数の１Ｄカラービットコードから構成され、各１ＤカラービットコードはＱｚ色ではない３種類のセルから構成されている。そして、各１Ｄカラービットコード間には、Ｑｚ色のセルが挿入されている。読み取りの際には、デコード手段が、Ｑｚを目印にして１個の追記型１Ｄカラービットコードを複数の１Ｄカラービットコードに分ける。こうして、デコード手段は、複数の１Ｄカラービットコードを同時に読み取ることができる。
【０２３８】
ところがこの実施の形態では、図７等に基づいて上述したように、Ｑｚの色彩が１Ｄカラービットコードのセルの構成色となる場合がある。この場合には、Ｑｚのセルが、データを表すセルなのか又は１Ｄカラービットコードの切れ目を表すセルなのかを知ることができない可能性がある。そのため、（Ａ）の１Ｄカラービットコードは本実施の形態には不向きであるかも知れない。
【０２３９】
（Ｂ）また、本発明者は、先に出願した特願２００８−２００６２４号において、追記型コードを開示した。この追記型コードは、複数の１Ｄカラービットコードから構成される。各１Ｄカラービットコードは、構成セル数と、スタートとエンドの色彩が予め決められている。そして、複数の１Ｄカラービットコードを連続してマーキングして、１個の追記型コードが構成される。読み取りの際には、デコード手段は、セルの色彩とセル数に基づいて、追記型コードを個々の１Ｄカラービットコードに区切って読み取ることができる。この追記型コードによれば、直列に別の１Ｄカラービットコードを付加していくことは有用である。
【０２４０】
そこで、本実施の形態では、この特願２００８−２００６２４号に記載の（Ｂ）の１Ｄカラービットコードの技術事項を、本実施の形態における１Ｄカラービットコードに当てはめた読み取り方法を説明する。
【０２４１】
例１
図１５には、原初１Ｄカラービットコード１０２及び追記１Ｄカラービットコード１０４が示されている。
【０２４２】
本実施の形態では、「原初１Ｄカラービットコードを構成するセルの個数は１０個である」と予め利用者によって規定されている。また、「原初１Ｄカラービットコードの両端部には、それぞれ１個の白色のセルが追加してマーキングされる」と予め規定されている。これら追記した白色のセルは、原初１Ｄカラービットコードのスタート又はエンドを表す端点セルである。
【０２４３】
また、本実施の形態では、「追記１Ｄカラービットコードを構成するセルの個数は５個である」と予め利用者によって規定されている。また、「追記１Ｄカラービットコードの両端に隣接してそれぞれ１個の白色のセルがマーキングされる」と予め規定されている。これら追記した白色のセルは、追記１Ｄカラービットコードのスタート又はエンドを表す端点セルである。
【０２４４】
また、本実施の形態では、「１個の原初１Ｄカラービットコードに１個以上の追記１Ｄカラービットコードを追記して直列１Ｄカラービットコードを構成する」ことが利用者によって予め規定されている。また、本実施の形態では、各１Ｄカラービットコード間には１個だけ端点セルが設けられると規定されている。２個の１Ｄカラービットコードに挟まれた端点セルは、隣接する一方の１Ｄカラービットコードのエンドを表す端点セルと、他方の１Ｄカラービットコードのスタートを表す端点セルと、の２つ役割を担う。
【０２４５】
いま、図１５（３）に示されるように、セルの個数が２４個である直列１Ｄカラービットコード１０６が被印物表面にマーキングされている。デコード手段は、この直列１Ｄカラービットコード１０６を含む画像をキャプチャし、上記（３）又は（４）に記載の読み取り方法によって色彩配列情報を生成する。本実施の形態では、直列１Ｄカラービットコード１０６は２４個のセルから成るので、生成した色彩配列情報は２４個の色彩情報から成る。なお、色彩情報とは、上述したように、色彩領域に割り振られた番号、色彩の情報、前の色彩領域の番号、後の色彩領域の番号、を含む情報である。
【０２４６】
デコード手段は、色彩情報の個数に基づいて、直列１Ｄカラービットコード１０６に含まれる追記１Ｄカラービットコードの個数を算出する。
【０２４７】
直列１Ｄカラービットコード１０６には、必ず１個の原初１Ｄカラービットコードが含まれる。従って、２４個の色彩情報のうち、１０個の色彩情報は原初１Ｄカラービットコードから得られた色彩情報である。また、他の２個の色彩情報は原初１Ｄカラービットコードの端点セルの色彩情報である。
【０２４８】
追記１Ｄカラービットコードは、５個のセルから成り、終端に端点セルが１個設けられている。従って、デコード手段は、直列１Ｄカラービットコード１０６に含まれる追記１Ｄカラービットコードの個数は、（２４−１０−２）／（５＋１）＝２個であることを算出する。
【０２４９】
例２
もし、原初１Ｄカラービットコード及び追記１Ｄカラービットコードの並び順が予め利用者によって定められていれば、デコード手段は、直列１Ｄカラービットコード中の各１Ｄカラービットコードの区切り位置も判定することができる。
【０２５０】
例えば、図１５（３）の直列１Ｄカラービットコード１０６が、「直列１Ｄカラービットコードの左端が原初１Ｄカラービットであり、その右に次々と追記１Ｄカラービットコードが追記される」との規定に基づいてマーキングされていた場合には、デコード手段は、直列１Ｄカラービットコード１０６から生成した色彩配列情報のうち、２個目から１１個目までの色彩情報が原初１Ｄカラービットコードの色彩情報であり、１３個目から１７個目までの色彩情報が追記１Ｄカラービットコードの色彩情報であり、１９個目から２３個目までの色彩情報がもう１つの追記１Ｄカラービットコードの色彩情報であることを判定することができる。
【０２５１】
例３
原初１Ｄカラービットコード及び追記１Ｄカラービットコードの並び順が決められていない場合には、各１Ｄカラービットコードの両端のセルに特有の色彩を付すことによって、各１Ｄカラービットコードの種類を区別することができる。
【０２５２】
図１６には、原初１Ｄカラービットコード１０８と、追記１Ｄカラービットコード１１０と、直列１Ｄカラービットコードの例１１２群が示されている。
【０２５３】
原初１Ｄカラービットコードのセルの個数と、追記１Ｄカラービットコードのセルの個数と、については上で述べた例１と同様に利用者によって予め規定されている。
【０２５４】
本例３において特徴的な事項は、原初１Ｄカラービットコードの両端のセルは「Ａ」であると規定され、追記１Ｄカラービットコードの両端のセルは「Ｂ」であると規定されていることである。これら規定を利用することによって、デコード手段は、直列１Ｄカラービットコード中の原初１Ｄカラービットコード及び追記１Ｄカラービットコードの配列順を判別することができる。
【０２５５】
図１６には、直列１Ｄカラービットコードの例１１２群が示されている。まず、直列１Ｄカラービットコード１１２ａに基づいて説明する。
【０２５６】
デコード手段は、直列１Ｄカラービットコード１１２ａを含む画像をキャプチャし、上記（３）又は（４）で述べた読み取り方法によって、色彩配列情報を生成する。直列１Ｄカラービットコード１１２ａは３０個のセルから構成されるので、生成された色彩配列情報は３０個の色彩情報から構成される。
【０２５７】
３０個の色彩情報のうち、１番目から２番目までの色彩の情報は、「Ｗ」「Ａ」である。「Ａ」は原初１Ｄカラービットコードが始まることを示す。原初１Ｄカラービットコードは１０個のセルから構成されるので、デコード手段は、２番目から１１番目までの色彩情報が原初１Ｄカラービットコードの色彩情報を表すと判定する。１１番目から１２番目までの色彩の情報が「Ａ」「Ｗ」であることから、１１番までの色彩情報が原初１Ｄカラービットコードの色彩情報であると確認的に判定してもよい。
【０２５８】
次に、１２番目から１３番目までの色彩の情報は「Ｗ」「Ｂ」である。「Ｂ」は追記１Ｄカラービットコードを示す。追記１Ｄカラービットコードは５個のセルから構成されるので、デコード手段は、１３番目から１７番目までの色彩情報が追記１Ｄカラービットコードの色彩情報を表すと判定する。１７番目から１８番目までの色彩の情報が「Ｂ」「Ｗ」でることから、１７番目までの色彩情報が追記１Ｄカラービットコードの色彩情報であると確認的に判定してもよい。
【０２５９】
以後、デコード手段は、同様にして色彩配列情報の終端の色彩情報に至るまで判定を行う。この結果、デコード手段は、直列１Ｄカラービットコード１１２ａが、「原初１Ｄカラービットコード」、「追記１Ｄカラービットコード」、「追記１Ｄカラービットコード」、「追記１Ｄカラービットコード」をこの順に配列して成ると判定することができる。
【０２６０】
直列１Ｄカラービットコード１１２ｂ、１１２ｃ、１１２ｄについても、同様にして、デコード手段は、原初１Ｄカラービットコードと追記１Ｄカラービットコードの配列順を判定することができる。
【０２６１】
このように、本実施の形態によれば、各１Ｄカラービットコード間に、１Ｄカラービットコードを区分けするＱｚ色の色彩領域を設けなくとも、直線状に複数個の１Ｄカラービットコードを直列配置することが可能である。この結果、物品に複数の１Ｄカラービットコードをマーキングしてもそれらを区別して認識することができるので、例えば、複数の工程からなる作業の管理等を容易に実行することが可能である。
【０２６２】
（８−２）データの密度向上
上記（５−２）において、Ｑｚの色彩（Ｑｚ色）を１Ｄカラービットコードの色彩構成色（Ａ色、Ｂ色）に加えて、合計３種類の色彩によってデータを表す例を示した。
【０２６３】
１Ｄカラービットコードは、その構成色の種類が多ければ多いほど、表せるデータの量が増え、データの密度を上げることができる。
【０２６４】
１Ｄカラービットコードのマーキングに使用される色彩の種類が上述した３種類よりも多い例として、本発明者がすでに出願した特願２００７−１３０５０４号には、Ａ色、Ｂ色、Ｃ色、Ｑｚ色の４種類の色彩を使用してマーキングされた１Ｄカラービットコードが示されている。この１Ｄカラービットコードでは、Ａ色、Ｂ色、Ｃ色の３種類の色彩によってデータを表す。Ｑｚ色はデータを表さない。
【０２６５】
この特願２００７−１３０５０４号において、Ａ色、Ｂ色、Ｃ色が、例えばそれぞれ、Ｒ（赤色）、Ｇ（緑色）、Ｂ（青色）であった場合、一般的な画像信号の成分とも一致するので画像処理的に扱いやすい。また、利用する色彩が３種類であれば、１つ色彩当たりの色彩範囲を広く取れるので、実用上便利である。なお、色彩の種類をさらに多くすると、１色あたりの色彩範囲が狭くなるので、照明光やカメラ調整等によっては、各色彩のコンタミが生じやすくなり実用性が失われていく可能性がある。
【０２６６】
本実施の形態における読み取り方法では、上記（５−１）で述べたように、視野枠で読み取る部分を限定するので、Ｑｚを設けなくてもよい場合がある。Ｑｚを設ける必要がない場合には、Ｑｚに予約していた色彩をデータを構成する色彩に加えて、Ａ色、Ｂ色、Ｃ色、Ｑｚ色の４種類の色彩でデータを表すことができる。４種類の色彩を用いれば、３種類の色彩を用いる時よりも、さらにセル数あたりのデータ量を増やすことができる。
【０２６７】
図１７の表１１４の上の行には、１Ｄカラービットコードの色彩の配列が示されている。この１Ｄカラービットコードの色彩の配列は、「Ｗ−Ａ−ｂ−Ｗ−Ａ−Ｗ−Ａ−Ｃ−Ｂ−Ｗ−Ｃ−Ｂ−Ｃ−Ｗ−Ｃ−ｂ−Ｃ−Ｗ」である。表１１４には、この色彩の配列を、スタートと、データ部の各色彩と、エンドと、に分けて示されている。スタートは「Ｗ−Ａ−ｂ」、データ部は「Ｗ−Ａ−Ｗ−Ａ−Ｃ−Ｂ−Ｗ−Ｃ−Ｂ−Ｃ−Ｗ−Ｃ」、エンドは「ｂ−Ｃ−Ｗ」である。また、表１１４の下の行には、１Ｄカラービットコードの色彩の配列と、データと、の関係が示されている。
【０２６８】
スタートの「Ｗ−Ａ−ｂ」のうち「ｂ」は、直前の「Ａ」の色彩と、「Ｗ−Ａ−ｂ」の後方のセル「Ｗ」の色彩と、が同色とならないようにするために挿入されるセルである。つまり、「ｂ」の色彩は前後の色彩によって都度変わる。本実施の形態では、「ｂ」は「Ａ」と「Ｗ」とに挟まれているから、ＡでもなくＷでもない色彩（すなわちＢ又はＣ）である。エンドの「ｂ−Ｃ−Ｗ」のうち「ｂ」も、同様に、「ｂ−Ｃ−Ｗ」の前方のセル「Ｃ」の色彩と、が同色とならないようにするために挿入されるセルである。本実施の形態においては、「ｂ」はＣに挟まれているから、「ｂ」は「Ｃ」ではない色彩（すなわちＷ又はＡ又はＢ）である。
【０２６９】
本実施の形態では、Ａ色、Ｂ色、Ｃ色の３つの色彩は、それぞれ数値「０」、「１」、「２」を表すと定義されている。また、Ｑｚ（Ｗ）は、その直後の色彩が表す数値を表すと定義されている。
【０２７０】
これらの定義に基づいて、色彩の配列「Ｗ−Ａ−Ｗ−Ａ−Ｃ−Ｂ−Ｗ−Ｃ−Ｂ−Ｃ−Ｗ−Ｃ」をデコードすることによって、「００００２１２２１２２２」という３進数のデータが得られる。このことが、図１７の表１１４の下の行に示されている。
【０２７１】
このように、本実施の形態によれば、従来１Ｄカラービットコードよりも、さらにデータの密度を上げることができるという有益な効果が得られる。
【０２７２】
（９）効果
図１８（１）には、被印物の表面にマーキングされた１Ｄカラービットコード１１６が示されている。１Ｄカラービットコード１１６の周囲（図中の斜線で示される部分）はＱｚである。１Ｄカラービットコードのセルに不要な色彩領域が加わったり、一部の構成セルの並び方に乱れがあると、従来の読み取り方法では正確に読み取れない場合があった。
【０２７３】
特に図１８（２）に示されるように、板状体１１８の端面にマーキングされた１Ｄカラービットコードをキャプチャした場合には、図１８（３）に示されるように、キャプチャした画像に１Ｄカラービットコードの画像とともに背景の色彩パターンも写ることがある。この背景の色彩パターンは、１Ｄカラービットコードの読み取りを妨げる場合があるため、視野枠を用いない従来の通常の１Ｄカラービットコード読み取り手段では、読み取りが困難な場合があった。
【０２７４】
しかし、本実施の形態によれば、セルの並び方に乱れがある部分を読み取り対象から除外することができるので、例えキャプチャ画像に背景の色彩パターンが写り込んでも、容易に１Ｄカラービットコードの読み取りを行うことができる。
【符号の説明】
【０２７５】
１０  １Ｄカラービットコード
１２  キャプチャ画像
１４ａ〜１４ｋ  セル
１６  デコード手段
１８  キャプチャ手段
２０  被印物
２２  １Ｄカラービットコード
２４  画像データ
２６  視野枠
２８  狭小画像
３０Ａ〜３０Ｃ  色彩領域
３２  領域
３４ａ、３４ｂ  処理結果
３６  板状体
３８  キャプチャ画像
４０  １Ｄカラービットコード
４２  視野枠
４４  キャプチャ画像
４６  板状体
４８  視野枠
５０  狭小画像
５２  被印物
５４  白色下地
５６  構成セル群
５８  キャプチャ画像
６０  視野枠
６２  狭小画像
６４  板状体
６６  白色下地
６８ａ、６８ｂ  切り出し用冗長セル
７０  １Ｄカラービットコード
７２  キャプチャ画像
７４  視野枠
７６  キャプチャ画面
７８  視野枠
８０、８２、８４、８６  キャプチャ画面
８８  キャプチャ画像
９０ａ〜９０ｅ、９０ｋ、９０ｋ＋１、９０ｋ＋２、９０ｎ−１、９０ｎ、９０ｑ  色彩領域
９２  枠
９４ｋ、９４ｋ＋１、９４ｋ＋２、９４ｑ  重心点
９６  板状体
９８  １Ｄカラービットコード
９８ａ  端点セル
９８ｂ  切り出し冗長セル群
９８ｃ  データセル群
１００  キャプチャ画像
１０２  原初１Ｄカラービットコード
１０４  追記１Ｄカラービットコード
１０６  直列１Ｄカラービットコード
１０８  原初１Ｄカラービットコード
１１０  追記１Ｄカラービットコード
１１２ａ〜１１２ｄ  直列１Ｄカラービットコード
１１４  表
１１６  １Ｄカラービットコード
１１８  板状体
Ａ、Ｂ  視野枠
Ｌ（ｋ）、Ｌ（ｋ＋２）、Ｌ（ｑ）  直線
α（ｋ＋２）、α（ｑ）  角度
【図１】
2011103023.tif 000003
【図２】
2011103023.tif 000004
【図３】
2011103023.tif 000005
【図４】
2011103023.tif 000006
【図５】
2011103023.tif 000007
【図６】
2011103023.tif 000008
【図７】
2011103023.tif 000009
【図８】
2011103023.tif 000010
【図９】
2011103023.tif 000011
【図１０】
2011103023.tif 000012
【図１１】
2011103023.tif 000013
【図１２】
2011103023.tif 000014
【図１３】
2011103023.tif 000015
【図１４】
2011103023.tif 000016
【図１５】
2011103023.tif 000017
【図１６】
2011103023.tif 000018
【図１７】
2011103023.tif 000019
【図１８】
2011103023.tif 000020