JP3957735B1 - プログラム、情報記憶媒体、2次元コード生成システム、2次元コード - Google Patents

プログラム、情報記憶媒体、2次元コード生成システム、2次元コード Download PDF

Info

Publication number
JP3957735B1
JP3957735B1 JP2006229562A JP2006229562A JP3957735B1 JP 3957735 B1 JP3957735 B1 JP 3957735B1 JP 2006229562 A JP2006229562 A JP 2006229562A JP 2006229562 A JP2006229562 A JP 2006229562A JP 3957735 B1 JP3957735 B1 JP 3957735B1
Authority
JP
Japan
Prior art keywords
value
dimensional code
data
design data
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006229562A
Other languages
English (en)
Other versions
JP2008052588A (ja
Inventor
聡 大内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Namco Ltd
Bandai Namco Entertainment Inc
Original Assignee
Namco Ltd
Namco Bandai Games Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Namco Ltd, Namco Bandai Games Inc filed Critical Namco Ltd
Priority to JP2006229562A priority Critical patent/JP3957735B1/ja
Application granted granted Critical
Publication of JP3957735B1 publication Critical patent/JP3957735B1/ja
Publication of JP2008052588A publication Critical patent/JP2008052588A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】2次元コードに配置されるサブモジュールの色により、任意のデザインが高解像度で構成されるように2次元コードを生成すること。
【解決手段】カラーデザインデータに対応する2値化デザインデータを逆変換した逆変換ビット列を更に変換した変換後ビット列の値を基準として、カラーデザインデータのサブモジュールごとの色値を補正する。
【選択図】図14

Description

本発明は、プログラム、情報記憶媒体、2次元コード生成システム、2次元コードに関する。
従来より、所定のフォーマット情報に基づいて、データを示すモジュールを2次元に配置した2次元コードが知られている。この2次元コードでは、1次元コードに比して狭い領域で多くのデータを読み取らせることができる。このような従来の技術として、例えば特許第2938338号公報に開示されるものがある。
かかる2次元コードでは2次元コードのサイズに対してデータ量が少ないと、データを示さない領域が発生する。この場合、従来の2次元コードでは、データを示さない領域に所定のフォーマット情報に従ってモジュールを配置する。
特許第2938338号公報
しかし、データを示さない領域にモジュールを配置するフォーマット情報は、各種モジュールがデータを示さない領域にバランスよく配置されるように構成されている。従って、生成される2次元コードのモジュールパターンの構成に特徴を持たせて、他の2次元コードと差別化をはかることができなかった。
そこで本発明は、2次元コードのデータを示さない領域など、所定の領域に配置されるモジュールが、任意のデザインを構成して配置されるように2次元コードを生成することができるプログラム、情報記憶媒体を提供することにある。
また本発明は、2次元コードに配置されるモジュールを分割したサブモジュールごとのの色により、任意のデザインが構成されるように2次元コードを生成することができるプログラム、情報記憶媒体を提供することにある。
(1) 本発明は、2次元コードを生成するためのシステムであって、
2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールを分割したサブモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
前記求められた逆変換ビット列と前記原データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
少なくとも前記デザインデータ領域に対応する前記多階調デザインデータのサブモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求める多階調デザインデータ補正部と、
前記補正後の階調値に基づいて2次元コードを生成する2次元コード生成部とを含む2次元コード生成システムに関係する。
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、上記プログラムに基づいて生成した2次元コードに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。また本発明は、上記2次元コード生成システム、プログラム、情報記憶媒体を用いて生成された2次元コードが印刷された印刷物に関係する。また本発明は、上記2次元コード生成システム、プログラム、情報記憶媒体を用いて生成された2次元コードとして読み取られる2次元コード画像を生成するシステム、プログラム及び情報記憶媒体に関係する。
本発明において「階調値(色値)」とは、色を設定するためのパラメータであって、R・G・BやY・Cr・Cb、Y・M・C・Kなどの色成分ごとの明るさを示すパラメータや、色合いを示す色相、鮮やかさを示す彩度、明るさを示す明度などのパラメータ、輝度などのパラメータ等、種々のパラメータとすることができる。即ち2次元コードの読み取りに影響を与える種々のパラメータとすることができる。
2次元コードでは、例えば2次元コードを構成するモジュールが2値化データのいずれを示すものであるか(例えば白か黒か)を読み出すことにより、2次元コードに化体されたビット列を読み出す。従って2次元コードの各モジュールは、例えば白か黒のように明らかに異なるものとして読み取られる色とすることが好ましい。しかしモジュールの色が白か黒でなくとも、階調値が黒に近い範囲の暗い色であれば一方の値を示すものとして読み取らせ、階調値が白に近い範囲の明るい色であれば他方の値を示すものとして読み取らせることができる。即ち2次元コードの各モジュールの色が、2値化データのいずれを示すものであるか読み取り可能な範囲の色であれば、2次元コードとして機能させることができる。しかし2次元コードのモジュールの色が、明るさが中間的な階調値であるなど2値化データのいずれを示すものであるか読み取ることができないおそれがある色である場合には、2次元コードの読み取り誤りが発生したり、2次元コードとして読み取れない事態が発生する場合がある。
そこで本発明では、サブモジュールごとの階調値から構成される多階調デザインデータに対応するモジュールごとの2値化デザインデータを取得し、かかる2値化デザインデータを逆変換した逆変換ビット列を更に変換した変換後ビット列の値を基準として、多階調デザインデータのサブモジュールごとの階調値を補正する。即ち本発明では、変換後ビット列を求めることにより、2次元コードとして読み取り可能であって、かつ多階調デザインデータに対応する2値化デザインが構成された2次元コードを生成するためのデータを生成する。そして多階調デザインデータのサブモジュールごとの階調値が、変換後ビット列の値として読み取られるようにサブモジュールごとの階調値を補正することにより、変換後ビット列の値が示すとおりに読み取り可能であって、かつサブモジュールごとの階調値から構成される多階調デザインが構成された2次元コードを生成する。
従って本発明によれば、多階調デザインデータのサブモジュールに、明度が中間的な階調値であるなど2値化データのいずれを示すものであるか読み取ることができないおそれがある階調値のサブモジュールが存在する場合であっても、かかるサブモジュールの階調値を変換後ビット列の値として読み取られるように補正することができる。そして変換後ビット列には原データの情報が含まれているので、2次元コードの読取装置により、本システム利用者が2次元コードを介して伝達しようとする情報である原データを読み取らせることができる。
このように本発明によれば、2値化デザインデータは、多階調デザインデータがモジュール単位で階調値に応じて2値化されたものを用いており、多階調デザインデータ補正部が、モジュール単位でサブモジュールごとの階調値を補正するので、階調値がサブモジュールごとに異なっていても、モジュールごとに1の値を読み出させることができる。従って本発明によれば、2次元コードのモジュールよりも多階調デザインを高解像度のものとしても、確実に読み取り誤りを防止することができる。
こうして本発明によれば、2次元コードのモジュールを分割したサブモジュールごとの階調値により、細かく複雑なデザインが構成された2次元コードを生成することができる。そして、人目を引き付けることができるサブモジュールごとの多階調のデザインパターンが構成された2次元コードを、通常の2次元コードの生成手順に準じて簡易に生成することができる。しかも、サブモジュールごとの多階調デザインが構成されていても、モジュールごとの2値化データを基準として通常の2次元コードの生成手順に準じて生成されているので、2次元コードを読取装置により正確に読み取らせることができる。
(2)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
前記デザインデータ領域に対応する多階調デザインデータのサブモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求め、
前記2次元コード生成部が、
前記デザインデータ領域については前記補正後の階調値に基づいて2次元コードを生成し、2次元コードのその他の領域については前記変換後ビット列に基づいて2次元コードを生成するようにしてもよい。
本発明によれば、デザインデータ領域においてサブモジュールごとの多階調デザインが構成され、原データ領域などその他の領域において変換後ビット列に基づくモジュールパターンが構成された2次元コードを生成することができる。従って本発明によれば、デザインデータ領域以外の領域のモジュールを2値化パターンにより構成し、より確実に読み取り可能な2次元コードを生成することができる。
(3)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記逆変換ビット列に基づいて、生成される2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部を更に含み、
前記2次元コードデータ生成部が、
前記求められた逆変換ビット列と、前記原データのビット列と、前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求め、
前記多階調デザインデータ補正部が、
前記デザインデータ領域と、前記原データのデータ量に応じた原データ領域と、前記サイズデータに応じた誤り訂正データ領域とに対応する多階調デザインデータのサブモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求めるようにしてもよい。
本発明によれば、デザインデータ領域と、原データ領域と、誤り訂正データ領域において多階調デザインデータのサブモジュールごとの階調値を補正する。従って本発明によれば、より広い領域において多階調デザインデータの階調値が反映された2次元コードを生成することができる。
(4)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
2次元コードの読み取りに用いられる機能パターンを設定する機能パターン設定部を更に含み、
前記多階調デザインデータ補正部が、
前記機能パターンが配置される領域に対応する多階調デザインデータのサブモジュールごとの階調値が、各モジュールに対応する前記機能パターンの値として読み取られるように前記階調値を補正した補正後の階調値を求めるようにしてもよい。
本発明によれば、位置合せパターンが配置される領域等の機能パターン領域において多階調デザインデータのサブモジュールごとの階調値を補正する。従って本発明によれば、より広い領域において多階調デザインデータのサブモジュールごとの階調値が反映された2次元コードを生成することができる。
(5)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのサブモジュールごとの階調値を、前記階調値に応じた変換式に基づいて補正するようにしてもよい。
本発明において、2値化デザインデータは多階調デザインデータに対応するデータとなっているため、階調値を補正するための基準となる変換後ビット列もデザインデータ領域に対応する多階調デザインデータのサブモジュールの階調値に対応した値となっている。従って本発明によれば、階調値に応じた補正用の変換式の種類を削減し、階調値に応じた割り振り処理を軽減しつつも、可及的に元の階調値を補正後の階調値に反映することができる。
(6)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
前記階調値が階調値のとり得る範囲の中間付近の第1の範囲の値である場合に、前記階調値をその階調値に応じた変換式に基づいて補正し、
前記2次元コード生成部が、
前記階調値が前記第1の範囲の値であるサブモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記階調値が前記第1の範囲の値以外の第2の範囲の値であるサブモジュールについては前記多階調デザインデータのサブモジュールごとの階調値に基づいて2次元コードを生成するようにしてもよい。
本発明において、「第1の範囲」とは、2値化データのいずれを示すものであるか読み取ることができないおそれがある階調値の範囲とすることができる。例えば各色成分の階調値が0〜255までの値をとる場合には、64以上192未満など階調値の取り得る範囲の中間値を含む範囲を第1の範囲とし、それ以外の0以上64未満及び192以上255以下を第2の範囲とすることができる。なお第1の範囲と第2の範囲は、2次元コードの読取装置の性能や、読み取りの正確性との関係などで任意に定めることができる。例えば誤り訂正アルゴリズムなどによりデータを訂正することができる場合など、生成された2次元コードのモジュールに2値化データのいずれを示すものであるか読み取ることができないモジュールがいくつか存在しても構わない場合には、第1の範囲からいくつかの値を間引いた値の集合を第1の範囲の値として扱うようにしてもよい。例えば64以上192未満の値のうち、中間値である128を除外した値の集合なども「第1の範囲」の概念に含まれる。即ち本発明により生成された2次元コードが、2次元コードとして機能するように、中間的な階調値が補正されればよい。
本発明によれば、多階調デザインデータのサブモジュールごとの階調値が、例えば明度が中間的な階調値であるなど2値化データのいずれを示すものであるか読み取ることができないおそれがある階調値(第1の範囲の値)である場合に階調値を補正し、第2の範囲の値である場合には階調値を補正しない。従って本発明によれば、階調値が第2の範囲の値である場合には元の階調値をそのまま反映することができる。
(7)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのサブモジュールごとの階調値を、各モジュールに対応する前記変換後ビット列の値に応じた変換式に基づいて補正するようにしてもよい。
本発明において、2値化デザインデータは多階調デザインデータに対応するデータとなっているため、階調値を補正するための基準となる変換後ビット列もデザインデータ領域に対応する多階調デザインデータのサブモジュールの階調値に対応した値となっている。従って本発明によれば、変換後ビット列の値に応じた補正用の変換式の種類を削減し、階調値に応じた割り振り処理を軽減しつつも、可及的に元の階調値を補正後の階調値に反映することができる。
(8)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
前記階調値が階調値のとり得る範囲の中間付近の第1の範囲の値である場合に、前記階調値を各モジュールに対応する前記変換後ビット列の値に応じた変換式に基づいて補正し、
前記2次元コード生成部が、
前記階調値が前記第1の範囲の値であるサブモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記階調値が前記第1の範囲の値以外の第2の範囲の値であるサブモジュールについては前記多階調デザインデータのサブモジュールごとの階調値に基づいて2次元コードを生成するようにしてもよい。
本発明によれば、多階調デザインデータのサブモジュールごとの階調値が第1の範囲の値である場合に階調値を補正し、第2の範囲の値である場合には階調値を補正しない。従って本発明によれば、階調値が第2の範囲の値である場合には元の階調値をそのまま反映することができる。
(9)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのサブモジュールごとの階調値が、階調値のとり得る範囲の中間付近の第1の範囲の値である場合に、各モジュールに所定のパターンで割り当てられる値に応じた変換式に基づいて前記階調値を補正するようにしてもよい。
本発明によれば、階調値が第1の範囲の値であるサブモジュールに対して、一括した補正処理を行うのではなく、例えば誤差拡散法などを用いて所定のパターンで値を割り当て、値に応じた補正処理を行う。従って本発明によれば、階調値が第1の範囲の値であるサブモジュールについて、所定のパターンで異なる階調値を出現させて元の中間的な階調値を表現することにより、可及的に元の階調値を補正後の階調値に反映することができる。
ここで本発明では、階調値が第1の範囲の値であるか否かを区別する単位と、値を割り当てる単位はモジュールごととし、階調値を補正する単位はサブモジュールごととする。即ち1のモジュールに含まれるサブモジュールは、同様の変換式により各階調値が補正される。従って本発明によれば、2次元コードのモジュールよりも多階調デザインを高解像度のものとしたものに誤差拡散法などを用いた補正処理を行っても、確実に読み取り誤りを防止するとともに、高解像度の多階調デザインを維持したまま補正後の階調値により元の中間的な階調値を表現することができる。
(10)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する多階調デザインデータのサブモジュールごとの各色成分の階調値を、色成分ごとの階調値に応じた変換式に基づいて補正するようにしてもよい。
本発明によれば、R・G・BやY・Cr・Cb、Y・M・C・Kなどの色成分ごとの階調値に応じて色成分ごとに階調値を補正するので、よりきめ細かく可及的に元の階調値を補正後の階調値に反映することができる。また例えばR・G・BのうちのG成分(緑成分)は、データ上の値以上に人間の目に与える影響が大きいことから、2次元コードの読み取り装置であるカメラ等による読み取り数値に補正が行われることがある。すると本発明における補正後の階調値が、意図しない数値に補正されて読み誤りが発生するおそれがある。そこで本発明によれば、色成分ごとに階調値の補正を行うことによりかかる不具合を解消することができる。
(11)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
前記多階調デザインデータ補正部が、
少なくとも前記デザインデータ領域に対応する前記変換後ビット列の値が第1の値であって、対応する多階調デザインデータのサブモジュールの各色成分の階調値の最小値が第1のしきい値よりも小さい場合に、そのサブモジュールの各色成分の階調値を増加させる変換式に基づいて各色成分の階調値を補正し、
少なくとも前記デザインデータ領域に対応する前記変換後ビット列の値が第2の値であって、対応する多階調デザインデータのサブモジュールの各色成分の階調値の最大値が第2のしきい値よりも大きい場合に、そのサブモジュールの各色成分の階調値を減少させる変換式に基づいて各色成分の階調値を補正するようにしてもよい。
本発明によれば、あるサブモジュールの色成分ごとの階調値に、読み取られるべき値に反して小さい又は大きい値がある場合には、当該サブモジュールの階調値全体を補正する。即ち本発明では、変換後ビット列の値が第1の値であるモジュール(例えば色成分の値が大きくあるべきモジュール、明(白)であることを示す値であるモジュール)を構成するサブモジュールの色成分ごとの階調値のうち最小の値を示す色成分の階調値が、例えば明るいモジュールであると読み取られる最小の値である第1のしきい値よりも小さい場合には、最小値の色成分のみならずそのサブモジュールの各色成分の階調値を増加させる。そして第2の値であるモジュールを構成するサブモジュールについては、第2のしきい値よりも大きい場合に各色成分の階調値を減少させる。従って本発明によれば、より確実に読み取り誤りを防止するとともに、可及的に元の階調値を補正後の階調値に反映することができる。
ここで本発明では、色成分ごとの階調値に、読み取られるべき値(第1の値又は第2の値)に反して小さい又は大きい値がある場合に階調値を補正する際に、第1の値又は第2の値であるか否かを区別する単位はモジュールごととし、色成分ごとの階調値の最小値又は最大値をしきい値と比較する単位と、階調値を補正する単位はサブモジュールごととする。即ち1のモジュールに含まれるサブモジュールは、同様の変換式により各色成分の階調値が補正される。従って本発明によれば、2次元コードのモジュールよりも多階調デザインを高解像度のものとしたものに各色成分の最小値、最大値を考慮した補正処理を行っても、確実に読み取り誤りを防止するとともに、高解像度の多階調デザインを維持したまま可及的に元の階調値を補正後の階調値に反映することができる。
(12)また本発明に係る2次元コードを生成するためのデータを生成するシステム、プログラム及び情報記憶媒体では、
2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールを分割したサブモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
前記求められた逆変換ビット列と前記原データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
少なくとも前記デザインデータ領域に対応する前記多階調デザインデータのサブモジュールごとの階調値が、各モジュールに対応する前記変換後ビット列の値として読み取られるように前記階調値を補正した補正後の階調値を求める多階調デザインデータ補正部とを含むようにしてもよい。
本発明によれば、サブモジュールごとの階調値のデザインパターンが構成された2次元コードを生成することができるデータを生成することができる。そして、生成された2次元コードを生成するためのデータには、原データの情報が含まれている。従って、本発明により生成したデータに基づいて2次元コードを生成すれば、2次元コードにサブモジュールごとの階調値のデザインパターンを構成しつつ、本システム利用者が2次元コードシンボルを介して伝達しようとする情報である原データを2次元コードの読取装置に読み取らせることができる。
このように本発明によれば、2次元コードのモジュールを分割したサブモジュールごとの階調値により、細かく複雑なデザインが構成された2次元コードを生成するためのデータを生成することができる。そして、人目を引き付けることができるサブモジュールごとの多階調のデザインパターンが構成された2次元コードを、通常の2次元コードの生成手順に準じて簡易に生成することができる。しかも、サブモジュールごとの多階調デザインが構成されていても、モジュールごとの2値化データを基準として通常の2次元コードの生成手順に準じて生成されているので、2次元コードを読取装置により正確に読み取らせることができる。
(13)また本発明に係る2次元コード生成システム、プログラム及び情報記憶媒体では、
2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールを分割したサブモジュールごとの階調値が、第1の値として読み取られる範囲の階調値と第2の値として読み取られる範囲の階調値とから構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
前記求められた逆変換ビット列と前記原データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
少なくとも前記デザインデータ領域に対応する前記多階調デザインデータのサブモジュールごとの階調値に基づいて、2次元コードを生成する2次元コード生成部とを含むようにしてもよい。
本発明によれば、明度が中間的な階調値であるなど2値化データのいずれを示すものであるか読み取ることができないおそれがある階調値がサブモジュール単位の階調値として存在しない多階調デザインデータを用いることにより、階調値の補正処理を行うことなく多階調のデザインパターンが構成された2次元コードを生成することができる。
(14)本発明は、
所与の2値化データを表すモジュールが2次元に配置された2次元コードであって、
前記2次元コードから読み取られるべき原データを表すモジュールと、
少なくとも、前記原データを表すモジュールが配置された原データ領域以外の領域において、前記モジュールを分割したサブモジュールごとの階調値により多階調のデザインを構成するモジュールとが配置され、
前記サブモジュールごとの階調値は、
前記サブモジュールが構成するモジュールが前記2値化データのいずれを表すか読み取り可能な範囲の値とされていることを特徴とする2次元コードに関係する。
また本発明は、上記2次元コードを生成する2次元コード生成部、又は、上記2次元コードを生成するためのデータを生成する2次元コードデータ生成部を含む2次元コード生成システムに関係する。また本発明は、上記2次元コードを生成する2次元コード生成部、又は、上記2次元コードを生成するためのデータを生成する2次元コードデータ生成部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記2次元コード生成部、又は、2次元コードデータ生成部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
また本発明は、上記2次元コードが印刷された印刷物に関係する。また本発明は、上記2次元コードとして読み取られる2次元コード画像を生成するシステム、プログラム及び情報記憶媒体に関係する。
本発明によれば、本システム利用者が2次元コードを介して伝達しようとする情報を読み取り装置に読み取らせつつ、サブモジュールごとの階調値により所与のデザインを構成するモジュールが配置された2次元コードを提供することができる。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.2次元コードの構造
図1に、本実施の形態の2次元コード生成システムで生成される2次元コードシンボルの構造の例を示す。本実施の形態では、2次元コードとしてQRコード(株式会社デンソーウェーブの登録商標)を用いた例を示すが、本実施の形態により生成できる2次元コードはQRコードに限らない。
図1に示すように、本実施の形態の2次元コードシンボル10は、正方形のモジュールを縦に45個、横に45個、計2025個正方形状に配列して構成されている。このシンボル10には、シンボル10からデータを読み取る際に用いられる位置検出パターン12と位置合せパターン13とタイミングパターン14とが配置されている。そして、位置検出パターン12と位置合せパターン13とタイミングパターン14とが配置されている領域以外の領域として、シンボル10から読み取られるべきデータのモジュールパターン(符号化パターン)が配置される符号化領域16が設けられている。
この符号化領域16には、シンボル10の型番情報(サイズ情報)の符号化パターンが配置される型番領域18と、シンボル10の形式情報(誤り訂正レベル情報、マスク処理パターンに関する情報)の符号化パターンが配置される形式領域20と、本実施の形態のシステムの利用者が任意に入力可能なデータの符号化パターンが配置されるデータ領域22とが含まれる。
2.2次元コードの生成処理
図2に、本実施の形態の2次元コード生成システムの処理の流れの一例を示す。まず、ステップS1において、2次元コードを生成するための各種データを取得する。
図3に、このデータ取得処理の詳細を示す。まず、ステップS2において、入力部への入力情報に基づき、システムの利用者が所望するシンボルの型番情報と形式情報とを取得する。ここで、型番情報には、シンボル10の大きさを特定するサイズ情報(1〜40)が含まれている。本実施の形態では、サイズ情報によりシンボル10を構成するモジュールの数とその配置を特定することができる。また、形式情報には、生成されるシンボルの読み取り誤りを訂正するための誤り訂正アルゴリズムの種類を特定する誤り訂正レベル情報が含まれる。本実施の形態では、誤り訂正レベルがL、M、Q、Hの4段階用意されており、誤り訂正レベルに応じて誤り訂正の精度が異なる。
そして、ステップS4において、本システム利用者が2次元コードシンボルを介して伝達しようとする情報である原データの文字列を取得する。この原データとしては、例えばURLやメールアドレス等のネットワークアドレス情報や、種々の管理情報、識別情報、暗号化情報等が入力される。すると、ステップS6において、取得した原データの文字列を2次元コードのフォーマット情報に基づいて変換し、原データのビット列を生成する。そして、原データのビット列の最後に原データの終端を示すエンドパターンのビット列を挿入する。このエンドパターンは、2次元コードを読み取った場合に、エンドパターン以降の符号化パターンについては情報として出力する必要がないことを示すものである。
そして、図2のステップS10において、エンドパターンを含む原データのビット列を2次元コードのフォーマット情報に基づいて8ビットコード語(データコード語)に分割する。すると、ステップS12において、取得したサイズ情報、誤り訂正レベル情報に基づき、当該サイズ、誤り訂正レベルが要求するデータコード語数を満たすか否かを判断する。
ここで、要求するデータコード語数を満たさないと判断すると(ステップS12のN)、即ち2次元コードのサイズに対して原データのデータ量が少ないと、ステップS14において、データコード語列の後に埋め草コード語を付加する。この埋め草コード語とは、2次元コードのサイズに対して原データのデータ量が少ない場合に、原データを示す符号化パターン以降の符号化領域16が例えば空白(明モジュールのみ)となると、2次元コードの読み取りに支障があることを考慮して付加されるものである。本実施の形態では、2次元コードのフォーマットに基づいて、データが空であることを示す所定の符号化パターンが繰返し付加される。
一方、要求するデータコード語数を満たすと判断すると(ステップS12のY)、埋め草コード語は付加せずに、ステップS16において、データコード語列を誤り訂正用のブロック数に分割し、ステップS18において、各ブロックに対して誤り訂正コード語を生成する。この誤り訂正コード語とは、2次元コードの読み取り誤りを訂正するための誤り訂正アルゴリズムに用いられる情報の符号化パターンを生成するための所定のビット列単位である。そして、ステップS20において、データコード語列の後に誤り訂正コード語を付加する。
そして、ステップS22において、2次元コードのフォーマット情報に従って各ブロックのデータコード語・誤り訂正コード語をインターリーブにし、必要に応じて残余ビットを付加し、ステップS24において、2次元コードのフォーマット情報に基づいてマトリックスに、位置検出パターン12、位置合せパターン13、タイミングパターン14、コード語列に対応させた暗(黒)モジュールと明(白)モジュールとを配置する。
そして、ステップS26において、シンボルの符号化領域16にマスク処理パターンを適用する。このマスク処理は、ステップS24において符号化領域16に配置された暗(黒)モジュールと明(白)モジュールとが、バランスよく配置されるようにするための処理である。そして、ステップS28において、ステップS2で取得した型番情報の符号化パターンを型番領域18に配置し、形式情報の符号化パターンを形式領域20に配置し、シンボルを完成する。
図4に、このようにして生成された2次元コードシンボルの一例を示す。本実施の形態では、各コード語列に対応させた暗(黒)モジュールと明(白)モジュールの配置は、図4に示すシンボル10の右下隅から開始し、上方向、下方向を交互に走査し、右から左へ配置する。ここで、各コード語列は、原データとそのエンドパターンを示すデータコード語、埋め草コード語、誤り訂正コード語の順に配列されている。従って、シンボル10の符号化領域16には、図4に示すように、原データの符号化パターンが配置された原データ領域30と、埋め草データの符号化パターンが配置された不使用データ領域32と、誤り訂正コードの符号化パターンが配置された誤り訂正コード領域34とが形成される。
3.デザインデータ処理
ここで本実施の形態では、不使用データ領域32の符号化パターンは、データが空であることを示しているに過ぎない。従って、不使用データ領域32においては自由にモジュールを配置することができる。そこで本実施形態では、不使用データ領域32となるべき領域をデザインデータ領域33として利用して、デザインデータ領域33のモジュールの配置(パターン)が、所与のデザインを構成するように2次元コードシンボル10を生成するためのデータ(ビット列)を生成する。
また本実施形態の2次元コードでは、2次元コードを構成するモジュールが2値化データのいずれを示すものであるか、即ち、各モジュールが明(白)モジュールであるか暗(黒)モジュールであるかを読み出すことにより、2次元コードに化体されたビット列を読み出す。従って2次元コードの各モジュールは、例えば白か黒のように明らかに異なるものとして読み取られる色とすることが好ましい。しかしモジュールの色が白か黒でなくとも、色値(階調値)が黒に近い範囲の暗い色であれば一方の値を示すものとして読み取らせ、色値が白に近い範囲の明るい色であれば他方の値を示すものとして読み取らせることができる。即ち2次元コードの各モジュールの色が、2値化データのいずれを示すものであるか読み取り可能な範囲の色であれば、2次元コードとして機能させることができる。更に本実施形態の2次元コードでは、モジュールごとの色が、2値化データのいずれか一方を示す範囲の色であれば、1のモジュール内で色が変化していてもこれを読み取らせることができる。
そこで本実施形態では、デザインデータ領域33に配置されるモジュールを分割したサブモジュールごとの色が所与のデザインを構成しつつ、モジュールごとに2値化データのいずれを示すものであるか読み取り可能な範囲の色から構成された2次元コードシンボル10を生成する。従って本実施形態では、2次元コードのモジュールごとの色によりデザインを構成するよりも解像度が高いデザインを2次元コード上に構成することができる。そのため本実施形態では、図2のステップS1のデータ取得処理において、本実施の形態に特徴的なデザインデータ処理を行う。
図5に、デザインデータ処理の流れの一例を示す。まず、図3のステップS6までにおいて、サイズ情報・誤り訂正レベル情報・原データを取得して(ステップS2、ステップS4)、2次元コードのフォーマット情報に基づいて原データのビット列を生成すると(ステップS6)、図5のステップS39において、システムの利用者が2次元コードに構成させるデザインとして選んだ所与のカラー画像データ(多階調画像データ)に基づいて、サイズ情報に応じた2次元コードのモジュールを分割したサブモジュールごとの色値から構成されたカラーデザインデータ(多階調デザインデータ)を生成する。
3−1.カラーデザインデータ生成処理
本実施形態ではカラー画像データP0は、R・G・Bの各色成分の色値が0〜255までとり得るいわゆるフルカラーの画像データとすることができる。そしてこのカラー画像データP0は、システム利用者がスキャナ等のハードウェアで取り込んだものや情報記憶媒体に記憶されたもの、画像作成ソフトで作成したものなどとすることができる。
ここで本実施形態では、図6(A)に示すようにデザインデータ領域33の範囲を示す画像を生成して表示部に表示させて、カラー画像データP0をデザイン領域33の範囲に合わせて調整するようにしてもよい。本実施の形態では、図4に示すように原データ領域30がサイズ情報と原データのデータ量に応じて定まり、誤り訂正データ領域34がサイズ情報に応じて定まる。よって、サイズ情報と原データのビット列に基づいて原データ領域30を特定し、サイズ情報に基づいて誤り訂正データ領域34を特定し、サイズ情報と原データ領域30と誤り訂正データ領域34とに基づいて、デザイン領域33を特定することができる。従って、図6(A)に示すように、2次元コードシンボル10を、デザイン領域33が空白となるように表示することができる。
そしてシステム利用者は、かかる2次元コードシンボル10と所与のカラー画像データP0を対比して、デザイン領域33の範囲内に所望のデザインが収まるように、カラー画像データP0の大きさを調整する、或いは2次元コードのサイズ情報を変更する。そして本実施形態では、かかるカラー画像データP0を、図6(B)に示すような、取得したサイズ情報に応じた2次元コードのモジュールを縦横均等に分割したサブモジュールごとの色値から構成されたカラーデザインデータPmに変換する。即ち任意の解像度のカラー画像データP0を、2次元コードのサブモジュールを1画素とするカラーデザインデータPmに変換する。
図6(B)の例では、1のサブモジュールは1のモジュールを縦横それぞれ2分の1に分割したものであるので、1のモジュールは4つのサブモジュールから構成されており、縦横90個の計8100個の正方形のサブモジュールごとの色値に変換されている。このとき、サブモジュールの位置(領域)に対応するカラー画像データP0の位置(領域)の代表画素を抽出することにより1のサブモジュールの色値を決定してもよいし、サブモジュールの位置(領域)に対応するカラー画像データP0の位置(領域)の画素を平均することにより1のサブモジュールの色値を決定してもよく、本実施形態では種々の手法を採用することができる。
3−2.縮小画像生成処理
すると図5のステップS40において、図6(B)のカラーデザインデータPmを2次元コードのモジュールごとの色値に変換し、図6(C)に示すような縮小データPsを生成する。即ちサブモジュールを1画素とするカラーデザインデータPmの画素数を縦横それぞれN分の1に補間縮小して、2次元コードのモジュールを1画素とする縮小画像データPsを生成する。図6(C)の例では、画素数を縦横それぞれ2分の1に縮小して、縦横45個の計2025個の正方形のモジュールごとの色値に変換している。この縮小画像データPsは、カラーデザインデータPmの色の分布を2次元コードの読取装置が読み取った場合に、読取装置が認識する単位の色分布を示すものである。
図7は、図5のステップS40の縮小データ生成処理の詳細の一例を示すフローチャートである。図7に示すようにまずステップS50、ステップS51において、縮小データPsの座標値のYとXに0を代入し、ステップS52において、各色成分の種類を示すC(R=0、G=1、B=2)に0(R)を代入し、ステップS53において、各色成分の色値が格納されるaに0を代入する。そしてステップS54、ステップS55において、1のモジュールにおけるサブモジュールの座標値VとUに0を代入し、ステップS56において、カラーデザインデータPmの(X*N+U,Y*N+V)の位置の色Cを読み出しaに加える。即ち縮小データPsの(X,Y)=(0,0)の位置(モジュール)に対応する、カラーデザインデータPmの(U,V)=(0,0)の位置のサブモジュールの各成分の色値を読み出す。
そしてステップS55〜ステップS60までの処理を繰返し、そのモジュールを構成する全てのサブモジュールについて色Cを加算すると(ステップS60のN)、ステップS61において、色値の総計aをサブモジュールの数で割り、モジュールごとのサブモジュールの色値の平均値を求める。そしてステップS62において、縮小データPsの(X,Y)=(0,0)の位置の色C(R)に平均値aを書き込む。
するとステップS63において、各色成分の種類を示すCに1加算し、ステップS64においてCが3未満即ち各色成分の色値を全て読み出していない場合には(ステップS64のY)、ステップS53に戻り、他の色成分の色値について同様の処理を行う。こうして縮小データPsの(X,Y)=(0,0)の位置の色成分ごとの平均値をそれぞれ書込むと(ステップS64のN)、ステップS65において座標値Xに1加算し、ステップS66においてX座標が45となるまでステップS52からステップS66までの処理を繰返し、Y座標が0の位置全てについて色成分ごとの平均値を書込む(ステップS66のN)。
するとステップS67において座標値Yに1加算し、ステップS68においてY座標が45となるまでステップS51からステップS68までの処理を繰返し、縮小データPsの全ての(X,Y)の位置について、カラーデザインデータPmのモジュールごとのサブモジュールの色値の平均値aを書込む。こうして本実施形態では、図6(B)に示すようなカラーデザインデータPmを、図6(C)に示すようなサイズ情報に応じた2次元コードのモジュールごとの色値から構成された縮小データPsに変換する。
3−3.2値化デザインデータ生成処理
こうして図5のステップS40において縮小データPsを取得すると、図5のステップS41において、縮小データPsのモジュールごとの色値を各モジュールの色値に応じて2値化することにより、図8に示すような2値化デザインデータPbwを生成し、これを取得する。即ち縮小データPsのモジュールのうち、相対的に暗い色のモジュールは黒のモジュールとし、相対的に明るい色のモジュールは白のモジュールとする変換を行う。この2値化デザインデータPbwは、縮小データPsの色の分布を2次元コードの読取装置が読み取った場合に、読取装置に認識させるべき値を示すものである。
図9は、かかる2値化デザインデータ生成処理の詳細の一例を示すフローチャートである。図9に示すようにまずステップS80、ステップS81において、縮小データPsの座標値のYとXに0を代入し、ステップS84において、各座標についての値が格納されるaに0を代入する。そしてステップS86において、カラーデザインデータPmの(0,0)の位置のRGB各色成分の色値の合計値Tを求める。そしてステップS94において、各色成分の色値の合計Tを色成分の数3で割った値をaに代入する。即ち(0,0)の位置のRGBの色成分の色値の平均値をaに格納する。
するとステップS96において平均値aが128よりも大きい、即ち色値がとり得る値0〜255の中間の値よりも大きい値である場合には、ステップS98においてaに当該位置のモジュールが白であることを示す0を代入する。一方平均値aが128以下である場合には、ステップS100においてaに当該位置のモジュールが黒であることを示す1を代入する。そしてステップS102において、2値化デザインデータPbwの(0,0)の位置にa(0、1のいずれか)を格納する。そしてステップS104において座標値Xに1加算し、ステップS106においてX座標が45となるまでステップS84からステップS106までの処理を繰返し、Y座標が0の位置全てについてa(0、1のいずれか)を格納する。
するとステップS108において座標値Yに1加算し、ステップS110においてY座標が45となるまでステップS82からステップS110までの処理を繰返し、2値化デザインデータPbwの全てに位置についてa(0、1のいずれか)を格納する。こうして本実施形態では、図6(C)に示すような縮小データPsを、図8に示すような縮小データPsのモジュールごとの色値が各モジュールの色値に応じて2値化された2値化デザインデータPbwに変換する。
なお図6(C)の例の縮小データPsは、ハート形状の左半分HLは色値の平均値が30の暗い赤の色値となっており、ハート形状の右半分HRは色値の平均値が230の明るい赤の色値となっている。また背景の左半分BLは色値の平均値が160であって、中間よりは明るい青の色値となっており、背景の右半分BRは色値の平均値が96であって、中間よりは暗い青の色値となっている。従ってかかる縮小データPsから生成される2値化デザインデータPbwは、ハート形状の左半分HLと背景の右半分BRが黒のモジュールとされ、ハート形状の右半分HRと背景の左半分BLが白のモジュールとされている。
3−4.2値化デザインデータ逆変換処理
本実施の形態では、図2のステップS26のように、2次元コードを生成する際にマスクパターンとコード語モジュールパターンとでXOR演算による変換を行う。従って、2次元コードのデザインデータ領域33で縮小データPsの色値に対応する2値化デザインデータ(2値化デザインパターンのビット列)を生成しても、そのままではマスクパターンとのXOR演算により、2値化デザインパターンのビット列がカラーデザインデータPmの色値に対応しないビット列に変換されてしまう。
そこで、本実施の形態では、2次元コードを生成する際にマスクパターンとのXOR演算を行うと2値化デザインパターンのビット列に戻るように、生成した2値化デザインパターンのビット列を予め逆変換しておく。即ち、本実施の形態では、図2のステップS26でマスクパターンが適用される前に、予め2値化デザインパターンとマスクパターンとでXOR演算による変換を行う。
より詳細には、図5のステップS42において、サイズ情報、誤り訂正レベル情報、原データのビット列に基づき、デザインデータ領域33を特定し、ステップS44において、デザインデータ領域33に該当する2値化デザインパターンのビット列を抽出する。そして、ステップS46において、抽出した2値化デザインパターンのビット列とマスクパターンのビット列とでXOR演算による変換を行う。
図10は、図8の2値化デザインデータPbwから抽出した2値化デザインパターン40と、マスクパターン42とでXOR演算による変換を行って得られる逆変換モジュールパターン44の例である。図10に示すように、本実施の形態では、2値化デザインパターン40とマスクパターン42とで対応するモジュールが、同種のモジュールである場合には当該モジュールを暗(黒)モジュールとし(0+0=1、1+1=1)、異種のモジュールである場合には当該モジュールを明(白)モジュールとする(0+1=0、1+0=0)。
従って、XOR演算による変換を行って得られる逆変換モジュールパターン44は2値化デザインデータPbwの色値に対応しないものとなるが、2次元コードを生成する際に再びマスクパターンとのXOR演算を行うと2値化デザインパターンに戻るものである。こうして、デザインデータ領域33に対応する2値化デザインパターンのビット列をマスクパターンで逆変換した逆変換ビット列を生成する。なお、マスクパターン42の4隅などのグレーの部分、即ち生成される2次元コードの位置検出パターン12と位置合せパターン13とタイミングパターン14とに対応する機能パターン領域46には、マスク処理を適用しないようになっている。
すると、図2のステップS10以降において、図3のステップS6で生成された原データのビット列(終端パターンや分割パターンを含めてもよい)と、生成された2値化デザインパターンの逆変換ビット列とをデータコード語に分割し、ステップS12において、得られたデータコード語列がデータコード語数を満たすか否かを判断する。
ここで、2値化デザインパターンの逆変換ビット列は、デザインデータ領域33のモジュール全てを含んでいる。よって、原データのビット列と逆変換ビット列とからなるデータコード語列は、ステップS12において、データコード語数を満たすと判断される(ステップS12のY)。従って、ステップS14で埋め草コード語は付加されず、そのままステップS16〜ステップS24までの2次元コードのフォーマットに基づく処理が行われる。すると、図11の左側のモジュールパターンのように、位置検出パターン12等が配置され、原データのモジュールパターン48と逆変換モジュールパターン44と、それらに対応する誤り訂正コードパターン50とを含むマスク前パターン52が生成される。
そして、ステップS26において、マスク前パターン52にマスク処理パターンを適用すると、2値化デザインパターンの逆変換ビット列が変換されて、元の2値化デザインパターンのビット列に戻る。即ち、図11に示すように、マスク前パターン52と、マスクパターン42とでXOR演算による変換を行うことにより、デザインデータ領域33にカラーデザインデータPmの色値に対応する2値化デザインパターン40が構成されたデザイン2次元コードシンボル54を生成するための変換後ビット列を生成することができる。
こうして、本実施の形態によれば、逆変換モジュールパターン44を生成しておくことにより、その後は通常の2次元コードの生成手順に従って、変換後ビット列を生成することができる。そして、2値化デザインパターン40が構成されたデザイン2次元コードシンボル54(変換後ビット列)のうち、原データ領域30には原データのモジュールパターン48が変換された変換後の原データのモジュールパターン56が配置されているので、2次元コードの読取装置がこの2次元コード54を読み取ると、本システム利用者が2次元コードシンボルを介して伝達しようとする情報である原データを読み取らせることができる。
また、誤り訂正データ領域34には誤り訂正コードパターン50が変換された変換後の誤り訂正コードパターン58が配置されているので、原データのモジュールパターン56及び2値化デザインパターン40の読み取り誤りを訂正することができる。なお、本実施の形態では、2値化デザインパターン40は原データのモジュールパターンの終端パターンの後に付加されているので、デザインデータ領域33の2値化デザインパターン40は読取装置に読み取られてもデータは示さない。
なお、原データのモジュールパターンの後には、終端パターンのみならず、原データのビット列とデザインデータのビット列を識別するための識別子を挿入するようにしてもよい。例えば、原データのビット列の最後に分割パターンを挿入するようにしてもよい。この分割パターンは、例えば、ビット列を文字列とした場合に改行を示すビット列としてもよいし、スペースを示すビット列としてもよい。これによりデザインデータ領域33のビット列と原データのビット列とを区別することができる。また、原データのビット列とデザインデータ領域33のビット列との間に終端パターン等を挿入せず、原データのビット列とデザインデータ領域33のビット列とにより、例えばネットワークアドレスデータ等の所与の情報を示すようにしてもよい。
また、図5のステップS44において、原データ領域30に該当する原データのビット列も合わせて抽出し、原データのビット列及び2値化デザインパターンのビット列と、マスクパターンとでXOR演算による変換を行ってもよい。即ち、少なくともデザインデータ領域33に該当する2値化デザインパターンのビット列について、逆変換がなされていればよい。
また、本実施の形態では、2次元コードを生成する際のマスクパターンによる変換処理を考慮して逆変換を行う例を挙げて説明したが、2値化デザインパターンのビット列に対して2次元コードを生成する際に他の変換処理が行われる場合には、その変換処理を行うと2値化デザインパターンのビット列に戻るように、生成した2値化デザインパターンのビット列を予め逆変換しておく。ここで、逆変換とは、2次元コードを生成する際の変換処理により2値化デザインパターンのビット列に戻るようなビット列に、2値化デザインパターンのビット列を変換する処理をいう。例えば本実施の形態では、逆変換処理と、2次元コードを生成する際の変換処理とが、ともにXOR演算であって同一の変換処理となるものであるが、かかる場合も逆変換の概念に含まれる。
なお、図2のステップS26のマスク処理において、複数種類のマスクパターンが適用され、所定の評価関数に基づいて最もバランスよくモジュールが配置されるマスクパターンが選択される場合には、図3のステップS2において、マスク処理で適用させるマスクパターンを指定するマスクパターン情報を取得し、当該マスクパターンで図5のステップS46の逆変換処理と、図2のステップS26の変換処理とを行うようにしてもよい。
3−5.カラーデザインデータ補正処理
こうして本実施形態では、デザイン領域33にカラーデザインデータPmに対応する2値化デザインパターン40が構成された2次元コード54が生成される。従って、カラーデザインデータPmを構成するサブモジュールごとの色が、モジュール単位で黒と読み取られるような暗い色、白と読み取られるような明るい色から構成されていれば、2次元コード54のデザイン領域33のモジュールの色を、カラーデザインデータPmのサブモジュールごとの色に配色しても2次元コードとして読み取ることができる。
しかしカラーデザインデータPmはフルカラーのカラー画像データP0から生成されているため、カラーデザインデータPmのサブモジュールには、明るさが中間的な色値であるなど2値化データのいずれを示すものであるか読み取ることができないおそれがある色のサブモジュールが存在する場合がある。従って、カラーデザインデータPmのサブモジュールごとの色値を、上述のようにして生成したデザイン2次元コードシンボル54(変換後ビット列)のサブモジュールの色としてそのまま適用したのでは、2次元コードの読み取り誤りが発生したり、2次元コードとして読み取れない事態が発生する場合がある。
そこで本実施形態では、かかるカラーデザインデータPmの色値に対応する2値化デザインパターン40を構成するための変換後ビット列(2値化デザインパターンPbw)を基準として、カラーデザインデータPmのサブモジュールごとの色値を補正して、補正後の色値に基づいた2次元コードを生成する。即ち本実施形態では、まず2次元コードとして読み取り可能であって、かつカラーデザインデータに対応する2値化デザインが構成された2次元コードを生成するための変換後ビット列(図11に示す2値化デザインパターン40が構成された2次元コードシンボル54)を生成する。そしてカラーデザインデータのサブモジュールごとの色値が、変換後ビット列の値として読み取られるように各色値を補正することにより、変換後ビット列の値が示すとおりに読み取り可能であって、かつサブモジュールごとの色値によりカラーデザインが構成された2次元コードを生成する。
図12は、サブモジュールごとの色値のカラーデザインが構成されたカラー2次元コードを生成するための処理の一例の詳細を示すフローチャートである。図12に示すようにまずステップS300、ステップS302において、2次元コードのモジュールの座標値のYとXに0を代入し、ステップS304、ステップS306において、(X,Y)=(0,0)のモジュールのサブモジュールの座標値のVとUに0を代入する。そしてステップS308において、(U,V)=(0,0)の位置のサブモジュールについて色値の補正処理を行う。
そしてV座標が0の位置の全てのサブモジュールについて色値の補正処理を行うまで(ステップS312のN)、ステップS308〜ステップS312までの処理を繰返す。更にそのモジュールを構成する全てのサブモジュールについて色値の補正処理を行うまで(ステップS316のN)、ステップS306〜ステップS316までの処理を繰返す。
するとY座標が0の位置の全てのモジュールについて、上記サブモジュールごとの色値の補正処理を行うまで(ステップS320のN)、ステップS304〜ステップS320までの処理を繰返し、2次元コードを構成する全てのモジュールについて、上記サブモジュールごとの色値の補正処理を行うまで(ステップS324のN)、ステップS302〜ステップS324までの処理を繰返す。
従って本実施形態によれば、例えば図13(A)に示すカラーデザインデータPmの4つのモジュールのうち、左上のモジュールPmM1を構成するサブモジュールごとの色値の平均値が、中間値よりもやや暗い色値である場合には、図13(B)に示す対応する2値化デザインデータPbwの左上のモジュールPbwM1は黒(変換後ビット列の値が1)となるので、図13(C)に示す生成されるカラー2次元コードPcの左上のモジュールPcM1を構成するサブモジュールごとの色値は、黒と読み取られるように暗い色値に補正される。また、図13(A)に示すカラーデザインデータPmの右上のモジュールPmM2を構成するサブモジュールごとの色値の平均値が、中間値よりもやや明るい色値である場合には、図13(B)に示す対応する2値化デザインデータPbwの右上のモジュールPbwM2は白(変換後ビット列の値が0)となるので、図13(C)に示す生成されるカラー2次元コードPcの右上のモジュールPcM2を構成するサブモジュールごとの色値は、白と読み取られるように明るい色値に補正される。
図14は、このようにして補正した色値に基づいて生成したカラー2次元コードシンボルPcの一例である。なお図14の例では、図6等にあげた2次元コードシンボル10を反時計回りに90度回転させた状態となっている。本実施形態の2次元コードでは、位置検出パターン12や位置合せパターン13などの機能パターンにより読取装置に2次元コードの向きを検出させることができるので、2次元コードシンボル10を読み取る向きに拘わらずデータを読み取ることができる。
本実施形態によれば図14に示すように、2次元コードのモジュールごとの色によりデザインを構成するよりも解像度が高いデザインをカラー2次元コードPcに構成することができる。そして本実施形態では、モジュール単位でサブモジュールごとの色値を補正するので、色値がサブモジュールごとに異なっていても、モジュールごとに1の値を読み取らせることができる。従って本発明によれば、2次元コードのモジュールを分割したサブモジュールごとの色値により、細かく複雑なデザインが構成され、かつ確実に読み取ることができる2次元コードを生成することができる。
なお本実施形態では、図14に示すカラー2次元コードシンボルPcのうち、原データ領域30と、誤り訂正データ領域34と、位置検出パターン12と位置合せパターン13とタイミングパターン14とに対応する機能パターン領域46とを除く、デザインデータ領域33に対応するモジュールについて、補正後の色値に応じた色が配色されればよい。
3−5−1.第1の色値の補正処理
図15は、図12のステップS308の色値の補正処理の一例である、第1の色値補正処理の詳細を示すフローチャートである。第1の色値補正処理では、図15に示すようにまずステップS120において、各色成分の種類を示すC(R=0、G=1、B=2)に0(R)を代入し、ステップS122において、カラーデザインデータPmのサブモジュールごとの座標値(X*N+U,Y*N+V)の位置の色Cを読み出しAに代入する。そして、ステップS124において、変換後ビット列の(X,Y)の位置の値が0か否か、即ち生成されるカラー2次元コードPcの(X,Y)の位置のモジュールが白(明)モジュールか黒(暗)モジュールであるべきか判定する。
ここで対応する変換後ビット列の値が0の場合、即ち白モジュールであるべき場合には(ステップS124のY)、ステップS126において、カラーデザインデータPmの(X*N+U,Y*N+V)の位置のRGB各色成分の色値を色成分ごとに、A´=A/4+192のAに代入し、ステップS130において、変換後の値A´を、生成されるカラー2次元コードPcの(X*N+U,Y*N+V)の位置の補正後の色成分ごとの色値とする。従って各色成分の色値が例えば130であるなど中間値とほとんど変わらないような色値が存在する場合でも、130/4+192=224.5と補正され、確実に白(変換後ビット列が示す値)として読み取られる値となる。また、この変換式によれば変換後ビット列が示す値が0(白)であるが、対応するサブモジュールの各色成分の色値が例えば30であるなど黒に近い暗い色値が存在する場合でも30/4+192=199.5と補正され、確実に白(変換後ビット列が示す値)として読み取られる値となる。
一方対応する変換後ビット列の値が1の場合、即ち黒モジュールであるべき場合には(ステップS124のN)、ステップS128において、カラーデザインデータPmの(X*N+U,Y*N+V)の位置のRGB各色成分の色値を色成分ごとに、A´=A/4のAに代入し、変換後の値A´を、生成されるカラー2次元コードPcの(X*N+U,Y*N+V)の位置の補正後の色成分ごとの色値とする。従って各色成分の色値が例えば126であるなど中間値とほとんど変わらないような色値が存在する場合でも、126/4=31.5と補正され、確実に黒(変換後ビット列が示す値)として読み取られる値となる。また、変換後ビット列が示す値が1(黒)であるが、対応するサブモジュールの各色成分の色値が例えば230であるなど白に近い明るい色値が存在する場合でも230/4=57.5と補正され、確実に黒(変換後ビット列が示す値)として読み取られる値となる。
するとステップS132において各色成分の種類を示すCに1加算し、ステップS134においてCが3未満即ち各色成分の色値を全て補正していない場合には(ステップS134のY)、ステップS122に戻り、他の色成分の色値について同様の処理を行う。そして図12のフローチャートのようにして、カラー2次元コードPcの全てのサブモジュールについて補正後の色成分ごとの色値を求める。こうして本実施形態では、カラーデザインデータPmのサブモジュールごとの色値を、確実に各モジュールに対応する変換後ビット列の値として読み取られるように補正する。
3−5−2.第2の色値の補正処理
上記第1の色値の補正処理の例では、全てのサブモジュールについて一律に上記変換式に基づいて補正処理を行う。従って、例えば図13(A)に示すカラーデザインデータPmの4つのモジュールのうち、左下のモジュールPmM3のように、そのサブモジュールごとの色値がそのままでも白モジュールとして読み誤りなく読み取られるモジュールであっても、図13(C)に示す生成されるカラー2次元コードPcの左下のモジュールPcM3のように、更に白くなるように補正され、元のモジュールPmM3のサブモジュールごとの色分布が失われてしまう。
そこで第2の例では、サブモジュールごとの色値が色値のとり得る範囲の中間付近の第1の範囲の値である場合、即ち色値が中間的な値である場合に、サブモジュールごとの色値を各モジュールに対応する変換後ビット列の値に応じた変換式に基づいて、中間値よりも暗い色は確実に黒として読み取られるように、中間値よりも明るい色は確実に白として読み取られるように補正する。そして色値が第1の範囲の値(中間的な値)であるモジュールについては補正後の色値に基づいて2次元コードを生成し、色値が第1の範囲の値以外の第2の範囲の値(中間的でない値)であるモジュールについては補正を行わずに、カラーデザインデータPmのモジュールごとの色値に基づいて2次元コードを生成する。
また、少なくともデザインデータ領域33に対応する変換後ビット列の値が第1の値(白、0)であって、対応するカラーデザインデータのサブモジュールの各色成分の色値の最小値が第1のしきい値よりも小さい場合に、そのサブモジュールの各色成分の色値を増加させる変換式に基づいて各色成分の色値を補正し、少なくともデザインデータ領域33に対応する変換後ビット列の値が第2の値(黒、1)であって、対応するカラーデザインデータのサブモジュールの各色成分の色値の最大値が第2のしきい値よりも大きい場合に、そのサブモジュールの各色成分の色値を減少させる変換式に基づいて各色成分の色値を補正するようにしてもよい。
図16は、第2の例の色値補正処理の詳細を示すフローチャートである。図16において、Fgetcol(X,Y,c)は、カラーデザインデータPmの(X,Y)の位置の色値を取り出す関数であって、cは0〜2までとり、それぞれがRGBの各色成分に対応する。またFsetgen(X,Y,c,a)は、(X,Y)の位置の補正後の色値を設定する関数であって、cは0〜2までとり、それぞれがRGBの各色成分に対応し、指定された色成分cにaの値が設定される。またFgetgen(X,Y,c)は、(X,Y)の位置の補正後の色値を取り出す関数であって、cは0〜2までとり、それぞれがRGBの各色成分に対応する。
図16に示すように第2の例では、まずステップS150において、カラーデザインデータPmのサブモジュールの座標値としてXb=X*N+U、Yb=Y*N+Vを代入する。そしてステップS152において、カラーデザインデータPmの(Xb,Yb)の位置のRGB各色成分の色値の合計値Tを求め、ステップS154において、変換後ビット列Pcodeの(X,Y)の位置の値が0か否か、即ち生成されるカラー2次元コードPcの(X,Y)の位置のモジュールが白(明)モジュールか黒(暗)モジュールであるべきか判定する。
3−5−2−1.色成分ごとの色値に応じた補正処理
すると、ステップS156〜ステップS178までの処理により、モジュールの色成分ごとの色値に、読み取られるべき値に反して小さい又は大きい値がある場合には、当該モジュールの色値全体を補正しておく処理を行う。具体的には図16のステップS154において、変換後ビット列Pcodeの値が1(黒)の場合には(ステップS154のN)、ステップS156において、RGB各色成分の色値のうち最も値が大きいものEmaxを求め、ステップS158において、黒であると認識されるモジュールの各色成分がとり得る最大値LowmaxとEmaxとを比較する。即ち当該モジュールは黒モジュールであるべきだが、色成分ごとの色値にしきい値(Lowmax)を超えて色値が大きいもの(白に近づくもの)があるか否か判定する。
ここで大きい色値がある場合には(ステップS158のY)、ステップS160〜ステップS166において、当該位置のサブモジュールの各色成分について、ステップS162の変換を行う。図16の例では、カラーデザインデータPmのサブモジュールの(Xb,Yb)の位置のRGB各色成分の色値を読出し(a=Fgetcol(Xb,Yb,c))、a=a−(Emax−LowMax)*a/Emaxのようにして、読み出した値からEmaxとLowMaxに応じた値を差し引く。即ち、色成分ごとの色値でLowMax(第2のしきい値)よりも大きい色値がある場合には、当該サブモジュールの各色成分の色値を同様に減少させる。一方、大きい色値がない場合には(ステップS158のN)、そのまま次の処理へと進む。
また、ステップS154において、変換後ビット列Pcodeの値が0(白)の場合には(ステップS154のY)、ステップS168において、RGB各色成分の色値のうち最も値が小さいものEminを求め、ステップS170において、白であると認識されるモジュールの各色成分がとり得る最小値HighminとEminとを比較する。即ち当該モジュールは白モジュールであるべきだが、色成分ごとの色値にしきい値(Lowmin)を超えて色値が小さいもの(黒に近づくもの)があるか否か判定する。
ここで小さい色値がある場合には(ステップS170のY)、カラーデザインデータPmのサブモジュールの(Xb,Yb)の位置のRGB各色成分の色値を読出し(a=Fgetcol(Xb,Yb,c))、a=a+(HighMin−Emin)*(255−a)/(255−Emin)のようにして、読み出した値にEmaxとLowMaxに応じた値を加える。即ち、色成分ごとの色値でHighMin(第1のしきい値)よりも小さい色値がある場合には、当該サブモジュールの各色成分の色値を同様に増加させる。一方、小さい色値がない場合には(ステップS170のN)、そのまま次の処理に進む。
こうして第2の例では、色成分ごとの色値に応じた変換処理を行うことにより、より確実に読み取り誤りを防止するとともに、可及的に元の色値を補正後の色値に反映することができる。
3−5−2−2.色値が属する範囲に応じた補正処理
するとステップS180において、上述のようにして補正した補正後のカラーデザインデータPmの(Xb,Yb)の位置のRGB各色成分の色値の合計値Tを求め、ステップS182において、変換後ビット列Pcodeの(X,Y)の位置の値が0かつT≧192*3か、即ち生成されるカラー2次元コードPcの(X,Y)の位置のモジュールが白(明)モジュールであるべきで、かつ当該サブモジュールの色値の合計値が確実に白モジュールと読み取れる値(192*3)であるか判定する。ここで条件を満たす場合には(ステップS182のY)、ステップS184〜ステップS190において、カラーデザインデータPmの(Xb,Yb)の位置のRGB各色成分の色値を、補正せずにそのまま2次元コードを生成するための色値として設定する。また、ステップS182の条件を満たさない場合(ステップS182のN)であっても、ステップS192において、変換後ビット列Pcodeの(X,Y)の位置の値が1かつT<64*3か、即ち生成されるカラー2次元コードPcの(X,Y)の位置のモジュールが黒(暗)モジュールであるべきで、かつ当該サブモジュールの色値の合計値が確実に黒モジュールと読み取れる値(64*3)である場合には(ステップS192のY)、やはりステップS184〜ステップS190において、カラーデザインデータPmの(Xb,Yb)の位置のRGB各色成分の色値を、補正せずにそのまま2次元コードを生成するための色値として設定する。
一方、ステップS182及びステップS192の条件をいずれも満たさない場合(ステップS192のN)、即ち当該サブモジュールの色値の合計値が中間的な値である場合には、ステップS194において、変換後ビット列Pcodeの(X,Y)の位置の値が0か、即ち生成されるカラー2次元コードPcの(X,Y)の位置のモジュールが白(明)モジュールであるべきか判定する。ここで変換後ビット列Pcodeの(X,Y)の位置の値が1(黒)である場合には(ステップS194のN)、ステップS196において各色成分の種類を示すC(R=0、G=1、B=2)に0(R)を代入し、ステップS198において、カラーデザインデータPmのサブモジュールの(Xb,Yb)の位置のRGB各色成分の色値を色成分ごとに、a=a*(64*3)/Tのように変換し、変換後の値aを(Xb,Yb)の位置の補正後の色成分ごとの色値とする。従って各色成分の色値が例えばいずれも126であるなど中間値とほとんど変わらないような色値である場合でも、126*(64*3)/378=64と補正され、確実に黒として読み取られる値となる。
一方、変換後ビット列Pcodeの(X,Y)の位置の値が0(白)である場合には(ステップS194のY)、ステップS204〜ステップS228において、所定の変換式に基づいて各色成分の色値を変換した場合に、色値がとり得る最大値255をオーバーフローしたか否かに応じて変換式を変える手法により、各色成分ごとの色値を補正する。本実施形態ではまず、ステップS204において最大値255に対するオーバーフローの積算値OVと、余裕分の積算値SPに0を代入し、ステップS206においてCに0を代入する。そしてステップS208において、カラーデザインデータPmの(Xb,Yb)の位置のRGB各色成分の色値を色成分ごとに、a=a*(192*3)/Tのように変換する。
そしてステップS210において、変換後の値が最大値の255をオーバーフローした場合には(ステップS210のY)、ステップS212においてOV=OV+a−255のようにしてオーバーフロー積算値を加え、補正値を255に設定する。一方、変換後の値が最大値の255をオーバーフローしない場合には(ステップS210のN)、ステップS214においてSP=SP+255−aのようにして余裕分の積算値を加え、補正値をステップS208で求めたaをPcの(Xb,Yb)の位置のCにに設定する。そしてこれを各色成分について行う(ステップS216、ステップS218)。
そしてステップS220においてオーバーフローがなかったと判定されると(ステップS220のY)、即ちステップS212の処理が行われず、各色成分についてステップS214の処理が行われた場合には、補正値をaとしてそのまま設定する。一方、ステップS220においてオーバーフローがあったと判定されると(ステップS220のN)、即ちステップS212の処理が行われた場合には、ステップS222〜ステップS228までにおいて、各色成分の補正後の色値(ステップS208〜ステップS218において設定された色成分ごとの補正値)を更に変換する。即ちステップS224において、a=225−Fgetgen(Xb,Yb,c)のようにして、最大値255と補正値との差をaとし、b=OV*a/SP+Fgetgen(Xb,Yb,c)のようにして、オーバーフロー積算値OVと余裕分の積算値SPを反映させた補正値bを算出し、これを最終的な補正値bをPcの(Xb,Yb)の位置の色Cに設定する。
そして図12のフローチャートのようにして、カラー2次元コードPcの全てのサブモジュールについて補正後の色成分ごとの色値を求める。こうして第2の色値補正処理では、そのままの色値でも読み誤りなく読み取られるモジュールについては補正を行わず、読み誤りのおそれがおる色値のモジュールについてのみ補正を行う。特に中間的な値であって相対的に色値が明るいモジュールについては、オーバーフロー積算値OVと余裕分の積算値SPを考慮することにより、各色成分の色値にばらつきがあるモジュールについても適切な補正を行う。
従って第2の例では、例えば図13(A)に示すカラーデザインデータPmの左下のモジュールPmM3のように、そのサブモジュールごとの色値がそのままでも白モジュールとして読み誤りなく読み取られるモジュールである場合には、図13(D)に示す生成されるカラー2次元コードPcの左下のモジュールPcM3のように、補正せずにそのままの色値に基づいて、カラー2次元コードPcが生成される。従って図13(A)の左下のモジュールPmM3を構成するサブモジュールに他のサブモジュールとは異なる色値のものがある場合では、第1の例によると更に白くなるように補正された結果、図13(C)の左下のモジュールPcM3のように元の色分布が失われる場合があるが、第2の例によると、図13(D)の左下のモジュールPcM3のように元の色分布をそのまま反映させることができる。
そして図13(A)に示すカラーデザインデータPmの左上のモジュールPmM1については、サブモジュールごとの色値の平均値が、中間値よりもやや暗い色値であるので、図13(D)の左上のモジュールPcM1においても、変換後ビット列Pcodeに基づいて、サブモジュールごとの色値が黒と読み取られるように暗い色値に補正される。
3−5−3.第3の色値補正処理
また、少なくともデザインデータ領域33に対応するカラーデザインデータPmのモジュールごとの色値が、色値のとり得る範囲の中間付近の第1の範囲の値である場合、即ち色値が中間的な値である場合に、各モジュールに所定のパターンで割り当てられる値に応じた変換式に基づいて色値を補正するようにしてもよい。
例えば、(X,Y)の位置のモジュールの色値が中間的な色値であると判定した場合に、(Y&1)*2+(X&1)?のようにして、座標値X、Yに応じて異なる値0〜3を算出し、算出された値に対応するしきい値Lを当該位置のモジュールに割り当てる。そして割り当てられたしきい値に応じて用いる変換式が異なるようにして、色値の補正処理を行う。
こうして第3の例によれば、色値が第1の範囲の値であるモジュールに対して、一括した補正処理を行うのではなく、例えば誤差拡散法などを用いて所定のパターンで値を割り当て、値に応じた補正処理を行う。従って第3の例によれば、色値が第1の範囲の値であるモジュールについて、所定のパターンで異なる色値を出現させて元の中間的な色値を表現することにより、可及的に元の色値を補正後の色値に反映することができる。
3−5−4.デザイン領域以外への適用
また本実施形態では、図14に示すように、デザインデータ領域33に対応するモジュールのみならず、原データ領域30と、誤り訂正データ領域34と、位置検出パターン12と位置合せパターン13とタイミングパターン14とに対応する機能パターン領域46に対応するサブモジュールについても、補正後の色値に応じた色が配色されるように2次元コードを生成することができる。
上述のようにデザインデータ領域33に対応するサブモジュールは、変換後ビット列がカラーデザインデータPmに対応するものであるため、各モジュールの色値に応じた変換式、又は各モジュールに対応する前記変換後ビット列の値に応じた変換式に基づいて、色値を補正することにより、適切な補正後の色値を求めることができる。しかし、原データ領域30と、誤り訂正データ領域34と、機能パターン領域46に対応するモジュールについては、変換後ビット列がカラーデザインデータPmとは無関係なものであるため、同様の変換式によって補正後の色値を求めたのでは、変換後ビット列や機能的なパターンが示す値として読み取られない色値に補正されてしまう場合がある。
そこで本実施形態では、デザインデータ領域33以外の上記各領域に対応するモジュールについては、変換後ビット列や機能的なパターンが示す値(0か1)を参照し、当該領域用の変換式を用いて、変換後ビット列や機能的なパターンが示す値として読み取られるように各色値を補正した補正後の色値を求める。具体的には、変換後ビット列や機能的なパターンが示す値が0即ちモジュールが白である場合であって、対応するカラーデザインデータPmのモジュールの色値が中間値よりも暗い場合には、補正後の各色成分の色値の平均値が192〜255の間の数値となるような変換式を用いる。また、変換後ビット列や機能的なパターンが示す値が1即ちモジュールが黒である場合であって、対応するカラーデザインデータPmのモジュールの色値が中間値よりも明るい場合には、補正後の各色成分の色値の平均値が0〜64の間の数値となるような変換式を用いる。
例えば、デザイン領域33のサブモジュールについては、変換後ビット列の値等に応じて、A’=A/2+128、又はA’=A/2の変換式を用い、その他の領域のサブモジュールについては、A´=A/4+192、又はA´=A/4の変換式を用いるようにしてもよい。即ちデザイン領域33では、サブモジュールごとの色値と変換後ビット列等の値が対応しているので補正率が相対的に小さい変換式を用い、その他の領域では、サブモジュールごとの色値と変換後ビット列等の値が必ずしも対応していないので補正率が相対的に大きい変換式を用いるようにしてもよい。
また、変換後ビット列や機能的なパターンが示す値が0即ちモジュールが白である場合であって、対応するカラーデザインデータPmのモジュールの各色成分の色値の平均値が192〜255の間の明るい色の数値である場合や、変換後ビット列や機能的なパターンが示す値が1即ちモジュールが黒である場合であって、対応するカラーデザインデータPmのモジュールの各色成分の色値の平均値が0〜64の間の暗い色の数値である場合には、補正せずにカラーデザインデータPmのモジュールの色値をそのまま2次元コードの色値としてもよい。
4.構成
図19に本実施形態の2次元コード生成システムの機能ブロック図の例を示す。なお本実施形態の2次元コード生成システムは図19の構成要素(各部)の一部を省略した構成としてもよい。
入力部160は、生成する2次元コードの基本データ、生成した2次元コードから読み取られるべき原データ、生成した2次元コードに構成されるデザインデータなどを入力するためのものである。その機能は、例えばボタンやレバーの他、入力部と表示部の両方の機能を有するタッチパネル型表示部(パネルに画像が表示されると共に、指やペンで画面を触れたり押すことで情報を入力できる装置)により実現できる。また、スキャナやカメラ等の光学読み取り装置によりデザインデータを入力するようにしてもよい。
記憶部170は、処理部100などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部をコンピュータに実現させるためのプログラム)が記憶(記録、格納)される。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能はCRT、液晶ディスプレイ、プラズマディスプレイ、入力部と表示部の両方の機能を有するタッチパネル型表示部により実現できる。
通信部196は、外部(例えばホストや他の端末)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト(サーバー)が有する情報記憶媒体からネットワーク(広域ネットワーク、インターネット)及び通信部196を介して情報記憶媒体180(記憶部170)に配信するようにしてもよい。このようなホスト(サーバー)の情報記憶媒体の使用も本発明の範囲内に含まれる。
処理部100(プロセッサ)は、入力部160からの入力データやプログラムなどに基づいて、データ表示処理、データ加工処理、データ変換処理、2次元コード生成処理などの各種の処理を行う。この場合、処理部100は、記憶部170内の主記憶部172をワーク領域として使用して、各種の処理を行う。この処理部100の機能は、各種プロセッサ(CPU、DSP等)又はASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、データ取得部110、コードサイズ決定部112、デザイン領域特定部114、2値化デザインデータ変換部118、2次元コードデータ生成部120、2次元コード変更部126を含む。なお、処理部100は、これらの各部(機能ブロック)を全て含む必要はなく、その一部を省略してもよい。
データ取得部110は、入力部160への入力情報に基づき、シンボルの型番情報(サイズ情報)と形式情報(誤り訂正レベル情報)とを取得する。また、本システム利用者が2次元コードシンボルを介して伝達しようとする情報である原データ(ネットワークアドレス情報等)を、2次元コードのフォーマットに基づいてビットコード(ビット列)に変換する。
また、データ取得部110は、サイズ情報に応じた2次元コードのモジュールを分割したサブモジュールごとの色値から構成されたカラーデザインデータと、カラーデザインデータのモジュールごとの色値が各モジュールの色値に応じて2値化された2値化デザインデータとを取得する。ここでデータ取得部110は、所与のカラー画像データを取得してカラーデザインデータを生成するカラーデザインデータ生成部と、所与のカラー画像データに基づいて、又はカラーデザインデータに基づいて2値化デザインデータを生成する2値化デザインデータ生成部とを含むようにしてもよい。また、データ取得部110は、2次元コードに対応付けられた所与の2値化デザインデータを、2次元コードのフォーマットに基づいてビットコード(ビット列)に変換する。
また、コードサイズ決定部112を採用し、取得したカラー画像データ、カラーデザインデータ、2値化デザインデータのサイズ(領域、ビット数)に応じて2次元コードのサイズを決定するようにしてもよい。例えば、取得した2値化デザインパターンに対応するモジュールがデザインデータ領域33内に納まるように2次元コードのサイズ情報を決定し、データ取得部110が当該サイズ情報を取得するようにしてもよい。この場合、原データのビットコード、2値化デザインデータのビットコードに基づいて、当該2値化デザインパターンを配置可能なデザインデータ領域33を確保できる2次元コードのサイズ情報を特定するようにしてもよい。
デザインデータ領域特定部114は、2次元コードのサイズ情報と、原データを変換したビットコードとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域33を特定する。より詳細には、デザインデータ領域特定部114は、サイズ情報に応じて誤り訂正データ領域34を特定し、原データに基づいて原データ領域30を特定し、サイズ情報と誤り訂正データ領域34と原データ領域30とに基づいてデザインデータ領域33を特定する。
2値化デザインデータ変換部118は、デザインデータ領域33に対応する2値化デザインデータを、2次元コードのフォーマット情報に基づいて逆変換したビットコードを求める。具体的には、図5及び図5の説明に示す各処理を行って、2値化デザインパターンのビットコードを逆変換したビットコードを求める。
補正処理部119は、逆変換後のビットコードが2次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合ビットコードについては補正処理を行ってデザインデータ領域のビットコードを求める。例えば、逆変換後のビットコードに対する判定処理と補正処理とを、2次元コードのフォーマットに基づいた分割単位ごとに行ってもよいし、全体として行ってもよい。また、ビット(モジュール)ごとに行うようにしてもよい。
また、2値化デザインデータ変換部118の処理と補正処理部119の処理の順序を入れ替えて行ってもよい。例えば、補正処理部119が、任意アドレスデータ領域31に対応する2値化デザインデータのビットコードが2次元コードのフォーマット及びネットワークアドレスのフォーマットに適合するか否かを判定し、不適合ビットコードについては補正処理を行って任意アドレスデータのビットコードを求め、2値化デザインデータ変換部118が、補正処理後の任意アドレスデータのビットコードを2次元コードのフォーマット情報に基づいて逆変換したビットコードを求めるようにしてもよい。
2次元コードデータ生成部120は、2値化デザインデータを逆変換したビットコードと原データを示すビットコードとを2次元コードのフォーマット情報に基づいて変換して、2次元コードを生成するための変換後ビット列を生成する。具体的には、図2及び図2の説明に示す各処理を行って2次元コードを生成する。
特に2次元コードデータ生成部120は、誤り訂正データ生成部122と位置合せパターン設定部124とを含む。この誤り訂正データ生成部122は、2値化デザインデータを逆変換したビットコードと原データを示すビットコードとに基づいて、生成される2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する。また、位置合せパターン設定部124は、2次元コードの読み取りに用いられる位置合せパターン13を配置する。
また、位置合せパターン設定部124は、位置合せパターン13の省略処理を受け付けるようにしてもよい。例えば、2次元コードを生成する前に設定された情報に基づいて、位置合せパターン13を配置しないようにしてもよい。また、所定のアルゴリズムにより、2値化デザインパターンに対応する所定のカバー領域に含まれる位置合せパターン13を配置しないようにしてもよい。また、位置合せパターン13を配置して2次元コードシンボル10を完成させてから、入力情報に基づいて位置合せパターン13を削除するようにしてもよい。
2次元コード変更部126は、誤り訂正レベルデータに応じて、生成された2次元コードの変更処理を受け付ける。本実施の形態では、誤り訂正レベルが4段階用意されており、それぞれの復元能力が決められている。従って、2次元コードのサイズ情報と誤り訂正レベル情報とから、変更しても復元可能なモジュール数(ビット数、パターン数)の範囲内で、配置されたモジュール(ビット)の変更を受け付ける。
カラーデザインデータ補正部128は、少なくともデザインデータ領域33に対応するカラーデザインデータのサブモジュールごとの色値が、各モジュールに対応する変換後ビット列の値として読み取られるように各色値を補正した補正後の色値を求める。
2次元コード生成部130は、補正後の色値及び変換後ビット列に基づいて2次元コードを生成する。即ち2次元コード生成部130は、補正後の色値によるカラーデザインパターンが構成された2次元コードを生成する。
6.2次元コードの利用
本実施の形態で生成されたカラーデザインパターンが配置された2次元コードは、種々の印刷物に印刷してこれを利用することができる。また、テレビ放送やビデオ放映、ゲーム機等、種々のメディアを介してモニタ等の表示部に画像表示させることができる。この場合には、本実施の形態で生成されたカラーデザインパターンが配置された2次元コードの画像データを生成して、表示部に表示させればよい。
特に、本実施の形態で生成された2次元コードを画像表示させる場合には、デザインデータ領域33に配置されるカラーデザインパターンを複数種類用意しておく。この複数種類のカラーデザインパターンとして、例えば、丸、三角、四角等、形状が異なるカラーデザインパターンを用意してもよいし、連続して切り替え表示すると人が走っているように見えるように、所与のモーションをコマ割りしてそれぞれをデザインした複数のカラーデザインパターンを用意してもよい。また、各モジュールの色を、変換後ビット列が示す値として読み取られる範囲で変化させるようにしてもよい。
また、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
また本発明は、QRコードなどのマトリックス式の2次元コードのみならず、スタック式の2次元コードなど、種々の2次元コードに関して適用することができる。その場合には、各2次元コードのフォーマットに応じて各処理を行う。
また本発明は、デザインパターンが配置された2次元コードを生成するためのプログラムのみならず、デザインパターンが配置された2次元コードを生成するためのデータを生成するためのプログラム、デザインパターンが配置された2次元コード画像を生成するためのプログラム、及びそれらのプログラムを記憶した情報記憶媒体、システムにも適用することができる。
本実施の形態の2次元コードの構造の一例を示す図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態で生成される2次元コードの一例を示す図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 図6(A)、(B)、(C)は、本実施の形態で表示部に表示される画面の一例を示す図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態の2次元コード生成処理の一例を説明するための図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態の2次元コード生成処理の一例を説明するための図である。 本実施の形態の2次元コード生成処理の一例を説明するための図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態の2次元コード生成処理の一例を説明するための図である。 本実施の形態の2次元コード生成処理の一例を説明するための図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態の処理の流れの一例を示すフローチャート図である。 本実施の形態の機能ブロックの一例を示す図である。
符号の説明
10 2次元コードシンボル、13 位置合せパターン、16 符号化領域、30 原データ領域、33 デザインデータ領域、34 誤り訂正コード領域、40 2値化デザインパターン、42 マスクパターン、44 逆変換モジュールパターン、52 マスク前パターン、54 デザイン2次元コードシンボル、100 処理部、110 データ取得部、112 コードサイズ決定部、114 デザインデータ領域特定部、118 2値化デザインデータ変換部、120 2次元コードデータ生成部、126 2次元コード変更部、128 カラーデザインデータ補正部、130 2次元コード生成部、160 入力部、170 記憶部、180 情報記憶媒体、190 表示部

Claims (14)

  1. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールを分割したサブモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    記デザインデータ領域に対応する前記変換後ビット列の値が、第1の値である場合には対応する前記多階調デザインデータのサブモジュールの階調値を増加させる補正を行い、第2の値である場合には対応する前記多階調デザインデータのサブモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
    前記デザインデータ領域については前記補正後の階調値に基づいて2次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  2. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールを分割したサブモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    記デザインデータ領域に対応する前記多階調デザインデータのサブモジュールの階調値が、階調値のとり得る範囲の中間付近の第1の範囲の値であって、かつ、対応する前記変換後ビット列の値が第1の値である場合にはそのサブモジュールの階調値を増加させる補正を行い、第2の値である場合にはそのサブモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
    前記デザインデータ領域に対応するサブモジュールのうち、前記補正が行われたサブモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記補正が行われなかったサブモジュールについてはそのサブモジュールの階調値に基づいて2次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  3. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールを分割したサブモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    前記変換後ビット列の値が、第1の値である場合には対応する前記多階調デザインデータのサブモジュールの階調値を増加させる補正を行い、第2の値である場合には対応する前記多階調デザインデータのサブモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
    前記補正後の階調値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  4. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールを分割したサブモジュールごとの階調値から構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    前記デザインデータ領域については、対応する前記多階調デザインデータのサブモジュールの階調値が、階調値のとり得る範囲の中間付近の第1の範囲の値であって、かつ、対応する前記変換後ビット列の値が第1の値である場合にはそのサブモジュールの階調値を増加させる補正を行い、第2の値である場合にはそのサブモジュールの階調値を減少させる補正を行い、前記デザインデータ領域以外の領域については、対応する前記変換後ビット列の値が第1の値であって、対応する前記多階調デザインデータのサブモジュールの階調値が前記第1の範囲の最大値よりも小さい場合には、そのサブモジュールの階調値を前記第1の範囲の最大値よりも大きい値に増加させる補正を行い、対応する前記変換後ビット列の値が第2の値であって、対応する前記多階調デザインデータのサブモジュールの階調値が前記第1の範囲の最小値よりも大きい場合には、そのサブモジュールの階調値を前記第1の範囲の最小値よりも小さい値に減少させる補正を行う多階調デザインデータ補正部と、
    前記補正が行われたサブモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記補正が行われなかったサブモジュールについてはそのサブモジュールの階調値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  5. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールを分割したサブモジュールごとの階調値が、第1の値として読み取られる範囲の階調値と第2の値として読み取られる範囲の階調値とから構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    前記デザインデータ領域については前記多階調デザインデータのサブモジュールごとの階調値に基づいて2次元コードを生成し、前記デザインデータ領域以外の領域については前記変換後ビット列の値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  6. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールを分割したサブモジュールごとの階調値が、第1の値として読み取られる範囲の階調値と第2の値として読み取られる範囲の階調値とから構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    前記デザインデータ領域以外の領域について、対応する前記変換後ビット列の値が、第1の値である場合には対応する前記多階調デザインデータのサブモジュールの階調値を増加させる補正を行い、第2の値である場合には対応する前記多階調デザインデータのサブモジュールの階調値を減少させる補正を行う多階調デザインデータ補正部と、
    前記デザインデータ領域については前記多階調デザインデータのサブモジュールごとの階調値に基づいて2次元コードを生成し、前記デザインデータ領域以外の領域については前記補正後の階調値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  7. 2次元コードを生成するためのプログラムであって、
    2次元コードのサイズデータと、2次元コードから読み取られるべき原データと、前記サイズデータに応じた2次元コードのモジュールを分割したサブモジュールごとの階調値が、第1の値として読み取られる範囲の階調値と第2の値として読み取られる範囲の階調値とから構成された多階調デザインデータと、前記多階調デザインデータのモジュールごとの階調値が各モジュールの階調値に応じて2値化された2値化デザインデータとを取得するデータ取得部と、
    前記サイズデータと原データとに基づいて、原データのデータ量に応じた2次元コードのデザインデータ領域を特定するデザインデータ領域特定部と、
    前記デザインデータ領域に対応する2値化デザインデータを2次元コードのフォーマット情報に基づいて逆変換した逆変換ビット列を求める2値化デザインデータ変換部と、
    前記逆変換ビット列と前記原データのビット列とに基づいて、2次元コードの読み取り誤りを訂正するための誤り訂正データを生成する誤り訂正データ生成部と、
    記逆変換ビット列と前記原データのビット列と前記誤り訂正データのビット列とを、前記2次元コードのフォーマット情報に基づいて変換した変換後ビット列を求める2次元コードデータ生成部と、
    前記デザインデータ領域以外の領域について、対応する前記変換後ビット列の値が第1の値であって、対応する前記多階調デザインデータのサブモジュールの階調値が前記第1の範囲の最大値よりも小さい場合には、そのサブモジュールの階調値を前記第1の範囲の最大値よりも大きい値に増加させる補正を行い、対応する前記変換後ビット列の値が第2の値であって、対応する前記多階調デザインデータのサブモジュールの階調値が前記第1の範囲の最小値よりも大きい場合には、そのサブモジュールの階調値を前記第1の範囲の最小値よりも小さい値に減少させる補正を行う多階調デザインデータ補正部と、
    前記デザインデータ領域については前記多階調デザインデータのサブモジュールごとの階調値に基づいて2次元コードを生成し、前記デザインデータ領域以外の領域に対応するサブモジュールのうち、前記補正が行われたサブモジュールについては前記補正後の階調値に基づいて2次元コードを生成し、前記補正が行われなかったサブモジュールについてはそのサブモジュールの階調値に基づいて2次元コードを生成する2次元コード生成部としてコンピュータを機能させることを特徴とするプログラム。
  8. 請求項1〜7のいずれかにおいて、
    前記デザインデータ領域以外の領域は、前記原データのデータ量に応じた原データ領域及び前記サイズデータに応じた誤り訂正データ領域及び2次元コードの読み取りに用いられる機能パターンが配置される領域の少なくとも1つであることを特徴とするプログラム。
  9. コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
  10. 請求項1〜8のいずれかのプログラムに基づいて機能することを特徴とする2次元コード生成システム。
  11. 請求項1〜のいずれかのプログラムに基づいて生成したことを特徴とする2次元コード。
  12. 請求項11の2次元コードが印刷されたことを特徴とする印刷物。
  13. 請求項11の2次元コードを画像として表示することを特徴とする画像表示方法。
  14. 請求項11の2次元コードであって、異なる前記多階調デザインデータに基づいて生成した複数の前記2次元コードを連続的に切り替えて画像表示することを特徴とする画像表示方法。
JP2006229562A 2006-08-25 2006-08-25 プログラム、情報記憶媒体、2次元コード生成システム、2次元コード Active JP3957735B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006229562A JP3957735B1 (ja) 2006-08-25 2006-08-25 プログラム、情報記憶媒体、2次元コード生成システム、2次元コード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006229562A JP3957735B1 (ja) 2006-08-25 2006-08-25 プログラム、情報記憶媒体、2次元コード生成システム、2次元コード

Publications (2)

Publication Number Publication Date
JP3957735B1 true JP3957735B1 (ja) 2007-08-15
JP2008052588A JP2008052588A (ja) 2008-03-06

Family

ID=38456447

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006229562A Active JP3957735B1 (ja) 2006-08-25 2006-08-25 プログラム、情報記憶媒体、2次元コード生成システム、2次元コード

Country Status (1)

Country Link
JP (1) JP3957735B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102231187A (zh) * 2011-07-12 2011-11-02 四川大学 一种基于计算机视觉检测技术的qr码检测识别方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8860699B2 (en) * 2007-12-04 2014-10-14 A. T Communications Co., Ltd. Two-dimensional code display system, two-dimensional code display method, and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102231187A (zh) * 2011-07-12 2011-11-02 四川大学 一种基于计算机视觉检测技术的qr码检测识别方法

Also Published As

Publication number Publication date
JP2008052588A (ja) 2008-03-06

Similar Documents

Publication Publication Date Title
JP3953501B1 (ja) プログラム、情報記憶媒体、2次元コード生成システム、画像生成システム及び2次元コード
JP4016342B2 (ja) コード認識のための装置及びその方法
US8830533B2 (en) System and method for creating machine-readable codes in combination with other images such as logos
JP6061075B2 (ja) 二次元コード、二次元コードの生成方法、及び二次元コードの読取方法
JP3957734B1 (ja) プログラム、情報記憶媒体、2次元コード生成システム、2次元コード
JP2007241328A (ja) プログラム、情報記憶媒体、2次元コード生成システム、画像生成システム及び印刷物
TWI646467B (zh) 具有隱匿資料之二維條碼產生方法與系統
KR20080006112A (ko) 경계 영역의 선명도를 개선하는 하프토닝 방법 및 장치
US20060285167A1 (en) Image processing method and a recording medium storing image processing program
US8107772B2 (en) Image processing apparatus, image reading apparatus, image processing method, and recording medium
US6950210B2 (en) Method and apparatus for adaptively binarizing color document images
JP3957735B1 (ja) プログラム、情報記憶媒体、2次元コード生成システム、2次元コード
US7151859B2 (en) Method and system for correcting direction or orientation of document image
US8705134B2 (en) Method of processing an image to clarify text in the image
JP2015198385A (ja) 画像処理装置、画像処理方法及びプログラム。
JP3061812B2 (ja) パターン認識方法および装置
JP2006121697A (ja) ビットマスク生成システム
JP2004110606A (ja) 画像処理装置及び方法並びにプログラム
JP4525916B2 (ja) 画像形成装置及び画像形成方法、画像処理装置、画像処理方法
JP4973603B2 (ja) 画像処理装置および画像処理プログラム
US20070188812A1 (en) Image processing device, image reading device and image processing method
JP2007241329A (ja) プログラム、情報記憶媒体、2次元コード生成システム、画像生成システム及び印刷物
JP2871570B2 (ja) 文字認識装置およびその方法
JP2018074291A (ja) 画像処理装置
JP2016129005A (ja) ハッシュ値生成方法及び装置、並びにプログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070508

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3957735

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100518

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100518

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100518

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100518

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110518

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120518

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120518

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130518

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130518

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140518

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250