小さいセルサイズとより多くの色表現とを用いるバーコードの設計は、対象の領域において比較的高いデータ容量を実現できる。しかし、様々な要因がセルの小型化を制限する。
デジタルプリンターのチャンネルオフセットは、ハードウエアの欠陥によって生じる不可避の影響である。チャンネルとは、プリンターによって使用される異なる原色(たとえば、シアン、マゼンタ、イエローおよび黒、またはCMYK)のことを言い、チャンネルオフセットとは、同じ位置の値を有する画素が異なる原色を使用して印刷される場合、印刷される画素の実際の位置が正確に同一にはならないことを言う。オフセット量は、全体的(すなわち、ページ全体にわたって同じオフセット)、および/または、局所的(すなわち、ページの異なる領域でオフセット量が異なる)になりうる。バーコードセルが小さい場合、チャンネルオフセットの影響は、結果に顕著に作用し、セルの位置をずらしたり、隣接するセルの間隔を変化させたりする。
また、セルの色濃度も、セル領域のサイズに依存する。狭い領域の色濃度は、広い領域のものと比較すると相対的に低いため、小さいセルを有するバーコートに関する色の判断において、困難を生じうる。
さらに、異なるプリンターおよびスキャナーの動作状態は、変化しやすい。異なるプリンターは異なる出力を有し、異なるスキャナーも同様である。動作状態は、時間に伴っても変化し、異なる時間における一つのプリンターまたは一つのスキャナーからの出力も変化しうる。たとえば、2Dカラーバーコードが、用紙上に印刷され、あるいは、携帯機器の画面などの表示画面上に表示され、カメラまたは(フラットベッド型のスキャナーとは対照的な)カメラベースのバーコードリーダーによって読み取られる場合、透視投影および不均一な照明は、バーコードをデコードすることに対する課題を示しうる。
本発明の実施形態は、2Dカラーバーコードのレイアウトの設計と、上述した様々な要因の影響を低減するようにバーコードをデコードできるアルゴリズムとを提供する。
本発明の目的は、高容量2Dカラーバーコードの設計と、プリンターおよびスキャナー/カメラの物理的な制限の下で十分に機能する、バーコードをデコードする方法とを提供することである。
本発明の追加の特徴および利点は、以下の記載において説明され、その一部は当該記載から明らかであり、または、本発明の実施によって理解される。本発明の目的および他の利点は、明細書、特許請求の範囲および添付する図面で詳細に示された構成によって実現され、達成される。
これらの目的および/または他の目的を達成するために、具体化され、広く記載されるように、本発明は、画像における二次元カラーバーコードをデコードする方法を提供し、ここで、当該バーコードは、二次元配列を形成する複数のデータセルと、既知の色を有する複数の基準セルと、を含む既知のレイアウトを有し、各データセルおよび各境界の基準セルは、複数の原色のうち一つを有し、当該デコードする方法は、前記原色からなる前記基準セルの少なくともいくつかにおける画素の色強度値を平均することによって、各原色に関する基準の色強度値を算出するステップ(a)と、前記基準セルの少なくともいくつかの前記色強度値を用いて、当該基準セルの当該色強度値によって形成される各入力色ベクトルを、前記基準セルが前記原色の各々である確率の値によって形成される確率ベクトルに変換する色変換行列を算出するステップ(b)と、ここで、前記確率の値は、前記基準セルの前記原色については1であり、他の原色については0であり、前記画像における前記バーコードの各画素に対して、当該画素の色強度値に前記色変換行列を適用して、前記複数の原色に関する画素−色確率を算出するステップ(c)と、ここで、各々の前記画素−色確率は、前記画素が対応する前記原色である確率を示し、前記画像の前記画素の少なくともいくつかの前記画素−色確率および前記色強度値と、前記原色の各々に関する前記基準の色強度値とを用いて、各々の前記データセルの色の決定をするステップ(d)と、前記データセルの前記色をデジタルデータに変換するステップ(e)と、を含む。
前記方法は、前記ステップ(d)の前に、前記基準セルの少なくともいくつかを用いて、前記原色の各々に関するチャンネルオフセットを算出するステップをさらに含んでもよく、ここで、当該チャンネルオフセットは、前記原色の前記基準セルの設計位置と、実際の位置との間の平均の位置ずれであり、前記ステップ(d)においては、前記決定は、前記原色の各々に関する前記チャンネルオフセットをさらに用いる。
上記の方法では、各データセルに関して、前記ステップ(d)は、前記複数の原色に対応する複数の予測セル位置を算出するステップ(d1)と、ここで、各々の前記予測セル位置は、前記対応する原色に関する前記チャンネルオフセットを前記データセルの設計位置に加えることによって算出され、前記複数の原色に関する複数のセル−色確率を算出するステップ(d2)と、ここで、各々の前記セル−色確率は、前記データセルが前記対応する原色である確率を示し、前記対応する原色に関する前記予測セル位置のセルサイズ領域に位置する画素にわたって、前記対応する原色に関する前記画素−色確率を平均することによって算出され、前記複数のセル−色確率のうち最も高い値と二番目に高い値との間の確率の差が閾値より大きい場合、前記最も高いセル−色確率の値を有する前記原色を、前記データセルの色であると決定するステップ(d3)と、前記確率の差が前記閾値より大きくない場合、各原色に対して、前記対応する原色に関する前記予測セル位置のセルサイズ領域に位置する画素にわたって、画素の色強度値を平均することによって、対応する観察されたセルの色強度値を算出し、前記観察されたセルの色強度値と、前記原色に関する、対応する前記基準の色強度値との間の色差の値を算出し、最も小さい色差の値を有する前記原色を、前記データセルの色であると決定するステップ(d4)と、を含んでもよい。
前記原色は、シアン(C)、マゼンタ(M)、白(W)および黒(K)であってもよく、シアン(C)、マゼンタ(M)、イエロー(Y)および黒(K)であってもよい。前記色強度値は、赤(R)、緑(G)および青(B)の値であってもよい。
他の態様では、本発明は、データ処理装置を制御するための、コンピュータープログラム、および、コンピュータープログラムを内部に格納したコンピューター読み取り可能な記録媒体(たとえば、メモリーまたは記憶装置)を提供し、当該コンピュータープログラムは、上記の方法をデータ処理装置に実行させるように構成される。
他の態様では、本発明は、画像における二次元のカラーバーコードをデコードするデータ処理装置を提供し、ここで、当該バーコードは、二次元配列を形成する複数のデータセルと、既知の色を有する複数の基準セルと、を含む既知のレイアウトを有し、各データセルおよび各境界の基準セルは、複数の原色のうち一つを有し、当該装置は、前記原色からなる前記基準セルの少なくともいくつかにおける画素の色強度値を平均することによって、各原色に関する基準の色強度値を算出する基準色強度値算出部と、前記基準セルの少なくともいくつかの前記色強度値を用いて、当該基準セルの当該色強度値によって形成される各入力色ベクトルを、前記基準セルが前記原色の各々である確率の値によって形成される確率ベクトルに変換する色変換行列を算出する色変換行列算出部と、ここで、前記確率の値は、前記基準セルの前記原色については1であり、他の原色については0であり、前記画像における前記バーコードの各画素に対して、当該画素の色強度値に前記色変換行列を適用して、前記複数の原色に関する画素−色確率を算出する適用部と、ここで、各々の前記画素−色確率は、前記画素が対応する前記原色である確率を示し、前記画像の前記画素の少なくともいくつかの前記画素−色確率および前記色強度値と、前記原色の各々に関する前記基準の色強度値とを用いて、各々の前記データセルの色の決定をする決定部と、前記データセルの前記色をデジタルデータに変換する変換部と、を有する。
前記データ処理装置は、前記基準セルの少なくともいくつかを用いて、前記原色の各々に関するチャンネルオフセットを算出するチャンネルオフセット算出部をさらに有してもよく、ここで、当該チャンネルオフセットは、前記原色の前記基準セルの設計位置と、実際の位置との間の平均の位置ずれであり、前記決定部における前記決定は、前記原色の各々に関する前記チャンネルオフセットをさらに用いる。
上記のデータ処理装置では、各データセルに関して、前記決定部は、前記複数の原色に対応する複数の予測セル位置を算出し、ここで、各々の前記予測セル位置は、前記対応する原色に関する前記チャンネルオフセットを前記データセルの設計位置に加えることによって算出され、前記複数の原色に関する複数のセル−色確率を算出し、ここで、各々の前記セル−色確率は、前記データセルが前記対応する原色である確率を示し、前記対応する原色に関する前記予測セル位置のセルサイズ領域に位置する画素にわたって、前記対応する原色に関する前記画素−色確率を平均することによって算出され、前記複数のセル−色確率のうち最も高い値と二番目に高い値との間の確率の差が閾値より大きい場合、前記最も高いセル−色確率の値を有する前記原色を、前記データセルの色であると決定し、前記確率の差が前記閾値より大きくない場合、各原色に対して、前記対応する原色に関する前記予測セル位置のセルサイズ領域に位置する画素にわたって、画素の色強度値を平均することによって、対応する観察されたセルの色強度値を算出し、前記観察されたセルの色強度値と、前記原色に関する、対応する前記基準の色強度値との間の色差の値を算出し、最も小さい色差の値を有する前記原色を、前記データセルの色であると決定するように構成されてもよい。
前記決定部において、前記色差の値は、前記観察されたセルの色強度値と、前記対応する基準の色強度値とを、基準の色空間に変換し、その後、前記基準の色空間における色差の値を算出することによって算出されてもよい。
上記のデータ処理装置では、前記色変換行列算出部は、N×4の入力行列を構成し、ここで、Nは、前記算出において用いられる前記基準セルの数であり、前記入力行列の各行は、前記基準セルに対応し、前記基準セルの前記色強度値と、1の値とによって形成されるベクトルであり、N×4の出力行列を構成し、ここで、前記出力行列の各行は、前記入力行列の対応する前記行の同じ前記基準セルに対応し、前記基準セルに関する前記確率ベクトルであり、前記出力行列が、前記入力行列と前記色変換行列との積になるように、前記色変換行列を計算するように構成されてもよい。
上記の一般的な説明および以下の詳細な説明は、具体的で例示的であり、特許請求の範囲に記載された本発明のさらなる説明を提供することを意図すると理解される。
本発明の一態様は、媒体上に印刷され、または、携帯機器の画面上に表示される2Dカラーバーコードのレイアウト設計である。本発明の他の態様は、2Dカラーバーコードをデコードする方法である。2Dカラーバーコードの設計は、バーコードの処理およびデコードを容易にするという特徴を含む。
図1は、本発明の実施形態に係るカラーバーコードの一例のレイアウトを示す。カラーバーコードは、二次元配列を形成する複数のデータセル11を含み、各セルは、複数の色のうち一つを有する。好ましい実施形態では、複数の色は、シアン(C)、マゼンタ(M)、白(W)(すなわち、印刷されない)、および黒(K)であり、各セルは、2ビットの情報を表現できる。CMYKは、典型的なプリンターで使用される原色であり、それらの各々は、一つの着色インクまたはトナーによって印刷され、カラーチャンネルと呼ばれる。図1のカラーバーコードのレイアウトでは、原色のイエロー(Y)が、白(W)すなわち印刷されないセルで置き換えられている。この場合は、色のCMWKが、原色およびカラーチャンネルと呼ばれる。したがって、バーコードの各セルは、一つのインクを用いて印刷されるか、印刷されないかであり、各セルの色は均一になる。各セルは、所定のサイズを有し、所定の間隔で離れている。好ましくは、セルは、四角形であり、グリッド上の垂直方向および水平方向に配列される列および行を形成し、行の距離と列の距離とは等しい。一つの特定の実施形態では、セルサイズは、3×3画素であり、セルの間隔(白いスペースの幅)は、水平および垂直の両方向において2画素である。この例では、グリッドは正方格子である。あるいは、グリッドは長方形格子であってもよい。
バーコードは、当該バーコードの4つの角において、当該バーコードの境界に沿って、および、当該バーコードの内部において位置する複数のロケーター12を有する。図示された例では、16個のロケーター12が与えられ、4×4の配列を形成し、4つのロケーターが角に位置し、8つが境界に沿って位置し、4つがバーコードの内部に位置する。後で確認するように、ロケーター12は、バーコード全体における位置の基準を与えることができ、画像の処理およびデコードを補助する。ロケーターは、好ましくは黒であり、データセルより十分に大きく、画像においてそれらを比較的特定しやすくする。図示された実施形態では、各ロケーターは、塗りつぶした黒い正方形を、白いスペースで囲んで、さらに黒の境界で囲んで形成され、当該正方形は13×13画素(すなわち、データセルの3列および3行と同じ幅)であり、当該白いスペースは7画素幅であり(すなわち、データセルの列または行が、データセル領域において削除されると作られる白いスペースに等しい)、黒の境界は3画素幅(すなわち、データセルと同じ幅)である。したがって、各ロケーター12は、33×33画素のサイズであり、データセル配列における7×7のデータセルに等しいスペースを占める。
また、バーコードは、ロケーターの間に、バーコードの4つの境界に沿って位置する、複数の境界基準セル13も有する。境界基準セル13は、所定の色の順序(たとえば、図示された例において、C、M、Kを繰り返す順序)で配置される、シアン、マゼンタおよび黒の基準セルを含む。言い換えれば、各境界基準セルの色は既知である。基準セルは、デコード処理で有用な、チャンネルオフセットの(全体的および局所的な)情報と、色の情報とを提供できる。一実施形態では、境界基準セル13がデータセル11と同じサイズを有することにより、これらの基準セルの色密度は、データセルのものと同様になる。
境界基準セル13は、基準セルが重複する可能性を避けるために、内側のデータセル配列におけるセルの分離よりも大きい間隔で、ロケーター12およびデータセル11から互いに離れている。図示した例では、二つの隣接する基準セルの間隔(白いスペース)、および、基準セルと隣接するデータセルとの間隔(白いスペース)は、7画素である(すなわち、データセルの列または行が、データセル領域において削除されると作られる白いスペースに等しい)。ロケーター12および隣接する基準セル13は、この間隔で、または、より大きい間隔で離れている。
角にある4つのロケーターのうち一つが他から区別されうるように、バーコードに非対称性が設計されてもよく、このことは、デコード処理において有用である。これは、任意の適切な方法で達成されてもよい。たとえば、一つの角のロケーターが、他とは異なる形状を有してもよい。また、非対称性は、境界に沿った基準セルの、異なる色の順序または非対称の色の順序を用いることによって、バーコードに設計されてもよい。同様に、バーコードのデータ長およびECCなどをエンコードする検証セルなど、他の追加の特徴がバーコードに設計されてもよい。
一つの特定の例では、バーコード用のグリッドは、124列および124行を有する。白いスペースを除いた、ロケーターおよび基準セル、約13500のデータセルが、各バーコードに情報を格納するために用いられる。複数のバーコードが、たとえばそれらの間に20画素の白いスペースを用いて、同じページ上に互いに隣接して配置されうる。600dpiの印刷解像度に対して、バーコードは、約1.05×1.05平方インチのスペースを要する。したがって、レターサイズのページ上には、7×10までのバーコードが配置されてもよい。
図示された実施形態では、16個のロケーターが、角において、境界に沿って、および、バーコードの内部において位置する。他のバーコードの設計では、バーコードのサイズによって、異なる数および分布のロケーターが用いられてもよい。いくつかの例では、バーコードの角に位置する4つのロケーターで十分であってもよい。
図2Aおよび図2Bを参照して、上記の設計を有するバーコードを処理するための、バーコード画像の処理方法を以下に記載する。まず、カラーバーコード画像をキャプチャーする(ステップS11)。バーコードは、用紙上に印刷され、または、携帯機器の画面などの表示画面上に表示される。バーコード画像は、カメラ、カメラベースのバーコードリーダー、スキャナーなどを使用してキャプチャーされてもよい。
次に、バーコード画像におけるロケーター12を特定する(ステップS12)。ロケーターを特定するために、任意の適切な技術が用いられてもよい。一例では、カラーバーコード画像は、グレースケール画像に変換されてから二値化され、ロケーターは、二値画像から特定される。
射影ひずみと、不均一な画素強度とに対する補正を、元のカラーバーコード画像に対して任意に実行する(ステップS13)。射影ひずみに対する補正は、バーコード画像がカメラまたはカメラベースのバーコードリーダーを使用してキャプチャーされた場合や、バーコードを含む印刷用紙または携帯画面が、カメラまたはバーコードリーダーに対して斜めに保持されていた場合には特に、射影ひずみによって画像におけるバーコードの形状が元の形状(たとえば正方形)とは異なる可能性があるため、望ましい。射影補正を実行するために、任意の適切なアルゴリズムが用いられてもよい。一実装では、この処理は、ステップS12において特定されたロケーターを用いて、4つのロケーターをそれぞれ含む複数のより小さい領域にバーコード画像を分割することによって実行される。射影補正は、それぞれのより小さい領域に対して、それらを歪んでいない形状(たとえば正方形)に変形するために適用され、その後、より小さい領域は、再度バーコードに組み合わせられる。この補正されたバーコード画像は、元のバーコードのレイアウトに近い形状を有する。
不均一な画素強度に対する補正は、バーコード画像の画素強度が、バーコードにわたって不均一になる画素強度を生じうる照明条件によってしばしば影響されうるため、カメラまたは(スキャナーにかわる)カメラベースのバーコードリーダーを用いてキャプチャーされたバーコード画像に対しては、重要となりうる。照明補正を行うために、任意の適切なアルゴリズムが用いられてもよい。一実装では、この処理は、ステップS12において特定されたロケーターを用いて、まず、ロケーター12の観測された画素の平均強度を推定し、その後、それらを用いて二次元の照明補正マップを算出することによって実行される。ロケーター12の位置における補正関数は、ロケーターの測定強度が理想的な黒の画素値に変換されるようなものであり、ロケーター以外の位置における補正関数は、それから二次元補間によって算出される。
これらの補正の後、補正されたカラーバーコード画像に対してデコード処理を適用し、データセルの色のデータを抽出する(ステップS14〜S20)。
まず、バーコードのグリッド点の位置を、ロケーターを用いて算出する(ステップS14)。上述したように、全ての基準セルおよびデータセルの設計された位置(設計位置)は、グリッド上に位置する(たとえば、セルの中心画素がグリッド点上にある)。
基準セル13を用いて、各原色チャンネル(たとえばC、M、W、K)に関するチャンネルオフセットを算出する(ステップS15)。上述したように、チャンネルオフセットとは、プリンターのハードウェア要因によって生じる、異なる原色を用いて印刷された画素の位置ずれのことであり、チャンネルオフセットは、それらの色によって異なる量だけ(グリッド点上の)バーコードセルの設計位置からずれた、バーコードセルの実際の印刷位置をもたらす。同じ色のセルは、ほぼ同じ量だけずれる傾向がある。このようなオフセットは、バーコードセルのサイズと比較して、一般的に小さい。基準セル13は既知の色を有するため、それらの実際の印刷位置が、各カラーチャンネルに関するオフセットを推定するために、測定され、それらの設計位置と比較されうる。好ましい実施形態では、同じ色の全ての基準セルの位置ずれが平均され、そのカラーチャンネルに関するチャンネルオフセットが算出される。このようなチャンネルオフセットは、バーコード全体に関する包括的な値である。シアンおよびマゼンタの色に関するチャンネルオフセットは、このように算出される。黒のロケーターセル12は、セルの設計位置を算出するための位置基準として用いられるため、黒のチャンネルは、当然にゼロオフセットを有することに留意すべきである。
ステップS15においてチャンネルオフセットを算出する際、基準セル13の実際の位置は、任意の適切な方法を用いて取得されてもよい。たとえば、一つの方法としては、基準セルの各列および各行を、その境界に平行な軸に射影し、射影プロファイルにおけるピークおよび谷を特定することが挙げられる。射影された水平方向の境界は、基準セルの水平方向のずれを与え、射影された垂直方向の境界は、基準セルの垂直方向のずれを与える。
各基準セル13の色強度(RGB値)を算出する(ステップS16)。各基準セルに対して、カラーチャンネルに関するずれ位置に位置するセルサイズ領域(たとえば、3×3のサイズの画素)における画素の平均のR値、G値およびB値が、その基準セルのR値、G値およびB値として算出される。ここで、画像を印刷するためにプリンターによって使用される原色は、CMYKであり、画像をスキャンするためにスキャナー/カメラによって使用される原色は、RGBであることに留意すべきである。
ステップS16では、図1における基準シンボル13Aによって示されるような、隣接するC、MまたはKの基準セルの間にあるセルサイズの白いスペースは、白い基準セルとみなされ、それらの色強度(RGB値)も同様に算出される。
それぞれのカラーチャンネルの全ての基準セルの色強度(RGB)値を平均することによって、カラーチャンネルC、M、WおよびKの各々に関する基準色を算出する(ステップS17)。
個々の基準セルの色強度を用いて、4×4の色変換行列を算出する(ステップS18)。より具体的には、色変換行列は、以下の式から算出される。
ここで、左辺の第1行列は入力行列であり、「[4×4]」を示す左辺の第2行列は色変換行列であり、右辺の行列は出力行列である。
入力行列は、以下の通り、個々の基準セルの色強度からなるN×4の行列であり、Nは、この計算において用いられる基準セルの総数である。入力行列の各行は、基準セルのR、G、B(色強度)値と、最後の列における1の値とによって形成されるベクトルである。上記の式では、「C1」、「C2」…は、第1、第2、…のシアンの基準セルを示し、「M1」、「M2」…は、第1、第2、…のマゼンタの基準セルを示し、「W1」、「W2」…は、第1、第2、…の白の基準セルを示し、「K1」、「K2」…は、第1、第2、…の黒の基準セルを示す。
出力行列は、入力行列と同じサイズ(すなわちN×4)を有し、各行は、入力行列の対応する行の同じ基準セルに対応する。出力行列の各行は、対応する基準セルの色のラベルベクトル(確率ベクトルとも呼ばれる)であり、たとえば、シアンについては[1,0,0,0]、マゼンタについては[0,1,0,0]、白については[0,0,1,0]、および、黒については[0,0,0,1]である。
入力行列と出力行列との間の色変換行列を計算するために、擬似逆方法が上記の式に適用される。
上記の式から、色変換行列は、基準セルの色値(色強度値)によって形成される各々の入力色ベクトルを、基準セルが原色の各々である確率の値によって形成される確率ベクトルに変換する行列であり、確率の値は、基準セルの原色については1であり、他の原色については0であることがわかる。
そして、バーコード画像の各画素のRGB値に色変換行列を適用して、シアン、マゼンタ、白および黒である画素の確率を算出する(ステップS19)。より具体的には、画素のR、G、B値と1の値とによって形成されるベクトル[R,G,B,1]が、4×4の変換行列によって乗算され、C、M、WおよびKの色である画素の4つの確率をそれぞれ示す、確率ベクトル[PC,PM,PW,PK]が算出される。これらの確率を、画素−色確率と呼ぶ。
これらの画素−色確率を用いて、各データセルの色を決定する(ステップS20)。各データセルに適用されるこの決定ステップを、図2Bを参照して詳細に説明する。
まず、各カラーチャンネルに関するデータセルの予測されうる位置を算出する(ステップS31)。上述したチャンネルオフセットによって、データセルは、セルの色に依存する3つの予測されうる位置である、色がシアンである場合の第1のずれ位置、色がマゼンタである場合の第2のずれ位置、色が白または黒である場合のずれなしの位置(たとえばグリッド点の位置)に、実際に位置しうる。第1および第2のずれ位置は、ステップS15において取得されたチャンネルオフセットから算出される。言い換えれば、セルは、特定の色である場合、そのカラーチャンネルに対応する予測位置に位置するはずである。
二つの基準が、セルの色の決定に用いられる。第1の基準は、特定の色(C、M、WまたはK)のセルが、そのカラーチャンネルに関して予測された(ずれあり、または、ずれなしの)実際の位置に存在する確率に関する。したがって、4つの確率(セル−色確率と呼ぶ)、すなわち、セルがシアンの第1のずれ位置にある確率と、セルがマゼンタの第2のずれ位置にある確率と、セルが白のずれなしの位置にある確率と、セルが黒のずれなしの位置にある確率とを、4つのカラーチャンネル(C、M、WおよびK)に関して計算する(ステップS32)。各セル−色確率は、そのカラーチャンネルに対応する予測位置に位置するセルサイズ領域(たとえば3×3画素)における複数の画素の、特定の色に関する画素−色確率(すなわち、PC、PM、PWまたはPK)の平均である。たとえば、(シアンに関する)第1のずれ位置において、その位置のセルサイズ領域における画素について、シアンに関する画素−色確率PCが平均され、シアンに関するセル−色確率(すなわち、シアンのデータセルが実際にそのずれ位置に位置する確率)が算出される。M、WおよびKのセル−色確率も、同様に算出される。
そして、C、M、WおよびKに関する4つのセル−色確率のうち、最も高い確率と二番目に高い確率との間の差が閾値より大きい場合(ステップS33において「Yes」)、最も高いセル−色確率を有する色が、そのデータセルの色であると決定される(ステップS34)。
他方で、最も高いセル−色確率と二番目に高いセル−色確率との間の差が十分に大きくない場合(ステップS33において「No」)、4つのカラーチャンネルに対して、観察されたセルの色(観察セル色)と基準色との間の色の差に基づく第2の基準が用いられ、データセルの色が決定される(ステップS35〜S37)。具体的には、各カラーチャンネルに対応する予測位置において、その位置のセルサイズ領域における画素のR、G、B(色強度)値を平均することによって、観察セル色を算出する(ステップS35)。各カラーチャンネルに対して、そのチャンネルの予測位置における観察セル色と、そのカラーチャンネルに関する基準色との間の色差を算出する(ステップS36)。各カラーチャンネルに関する基準色は、ステップS17で算出された値(すなわち、そのカラーチャンネルの全ての基準セルの平均R、G、B(色強度)値)である。したがって、C、M、WおよびKのカラーチャンネルに関する4つの色差が、ステップS36において計算される。4つの色差が互いに比較され、最も小さい色差を有するカラーチャンネルが、データセルの色であると決定される(ステップS37)。
ステップS36において、これらの二つの色の間の色差は、二組のRGB値から算出されるスカラー値である。任意の適切な色差の定義が用いられてもよい。たとえば、RGB値は、最初にCIE L*a*b*またはCIE L*u*v*などの別の色空間に変換されてもよく、色差は、CIEDE94(2:1:1)などの既知の式を用いて算出されてもよい。
上述した方法では、(印刷されない)白は、イエローの代わりに原色の一つとして用いられる。本方法は、イエローが原色として用いられた場合でも適用できる。
ステップS34またはS36からセルの色が決定されると、当該セルの色を、デジタルデータに変換する(図2AのステップS21)。バーコードは、全てのデータセルに格納されたデジタルデータを抽出することによって、デコードされる。
本明細書に記載するカラーバーコード画像の処理方法は、図3に示すようなコンピューター120などのデータ処理システムにおいて実行されうる。コンピューター120は、処理装置121と、記憶装置(たとえばハードディスクドライブ)122と、内部メモリー(たとえばRAM)123とを含む。記憶装置122は、本方法を実行するために、RAM123に読み出され、処理装置121によって実行されるソフトウェアプログラムを記憶する。一の態様では、本発明は、データ処理システムによって実行される方法である。他の態様では、本発明は、本方法を実行する目的でデータ処理装置を制御するための、コンピュータープログラム、および、コンピュータープログラムを内部に格納したコンピューター読み取り可能な記録媒体である。他の態様では、本発明は、データ処理装置である。データ処理装置は、コンピュータープログラムを読み込んで実行することによって、基準色強度値算出部、色変換行列算出部、適用部、決定部、変換部およびチャンネルオフセット算出部として機能するように構成される。他の態様では、本発明は、データ処理システムにおいて具現化される。
当業者には明らかなように、本発明の思想または範囲から逸脱することなく、本発明のカラーバーコード画像の処理方法および関連する装置において、種々の改良および変更を行うことができる。したがって、本発明は、添付する特許請求の範囲およびその均等物の範囲に入る改良および変更を包含することを意図する。