(57)【特許請求の範囲】
【請求項１】
二次元コードが出力される環境における白色点を決定する白色点決定手段と、
前記白色点決定手段によって決定された前記白色点を基準とする、デバイスに依存しない色空間で表された、読取装置が複数のセルのそれぞれを２値で読み取るための明度の閾値であって、前記白色点によって定められる白色に相当する明度に応じて異なる閾値を取得する閾値取得手段と、
前記閾値取得手段によって取得された前記閾値以上の明度の色と前記閾値未満の明度の色とで前記複数のセルを着色して形成された複数のセルドットの分布パターンによって情報を表現する前記二次元コードを生成する二次元コード生成手段と、
を備えることを特徴とする二次元コード生成装置。
【請求項２】
ロゴ画像を取得するロゴ画像取得手段と、
前記ロゴ画像取得手段によって取得された前記ロゴ画像がデバイスに依存する色空間で表されている場合、取得された前記ロゴ画像を、前記デバイスに依存しない色空間で表されるロゴ画像に変換し、前記デバイスに依存しない色空間で表される前記ロゴ画像内の各部分の明度を取得する明度取得手段と、
をさらに備え、
前記二次元コード生成手段は、前記二次元コードとして、
前記複数のセルのうち前記閾値未満の明度の色に着色されるべきセルに重ね合わされた、前記ロゴ画像のうち前記明度取得手段によって取得された明度が前記閾値以上である部分に、前記閾値未満の明度の色に着色されたセルドットを重ね合わせ、
前記複数のセルのうち前記閾値以上の明度の色に着色されるべきセルに重ね合わされた、前記ロゴ画像のうち前記明度取得手段によって取得された明度が前記閾値未満である部分に、前記閾値以上の明度の色に着色されたセルドットを重ね合わせることにより、
前記ロゴ画像が重ね合わされたロゴ付き二次元コードを生成する、
ことを特徴とする請求項１に記載の二次元コード生成装置。
【請求項３】
前記二次元コード生成手段は、
前記複数のセルのうち前記閾値未満の明度の色に着色されるべきセルに重ね合わされた、前記ロゴ画像のうち前記明度取得手段によって取得された明度が前記閾値以上である部分に、前記閾値未満の明度の色に着色された、該セルより小さい前記セルドットを重ね合わせ、
前記複数のセルのうち前記閾値以上の明度の色に着色されるべきセルに重ね合わされた、前記ロゴ画像のうち前記明度取得手段によって取得された明度が前記閾値未満である部分に、前記閾値以上の明度の色に着色された、該セルより小さい前記セルドットを重ね合わせることにより、
前記ロゴ付き二次元コードを生成する、
ことを特徴とする請求項２に記載の二次元コード生成装置。
【請求項４】
前記二次元コード生成手段は、
前記閾値未満の明度の色に着色された、前記セルより小さい前記セルドットを、該セルの中心の位置に重ね合わせ、
前記閾値以上の明度の色に着色された、前記セルより小さい前記セルドットを、該セルの中心の位置に重ね合わせることにより、
前記ロゴ付き二次元コードを生成する、
ことを特徴とする請求項３に記載の二次元コード生成装置。
【請求項５】
前記二次元コード生成手段によって生成された前記二次元コードを、前記二次元コードが出力される前記環境における色空間で表される二次元コードに変換する二次元コード変換手段をさらに備える、
ことを特徴とする請求項１に記載の二次元コード生成装置。
【請求項６】
前記二次元コード変換手段は、前記二次元コード生成手段によって生成された前記二次元コードを印刷出力する場合、前記二次元コードを、印刷出力用の色空間で表される二次元コードに変換し、
前記二次元コード変換手段によって変換された前記二次元コード内の各位置の色を網点の大きさによって表現した網点データを生成する網点データ生成手段をさらに備える、
ことを特徴とする請求項５に記載の二次元コード生成装置。
【請求項７】
ロゴ画像を取得するロゴ画像取得手段と、
前記ロゴ画像取得手段によって取得された前記ロゴ画像が前記デバイスに依存しない色空間で表された場合における、前記ロゴ画像内の各部分の明度を取得する明度取得手段と、
をさらに備え、
前記二次元コード生成手段は、前記二次元コードとして、前記複数のセルのうち前記閾値未満の明度の色に着色されるべきセルに重ね合わされた、前記ロゴ画像のうち前記明度取得手段によって取得された明度が前記閾値以上である部分に、前記閾値未満の明度の色に着色された、該セルより小さいセルドットを、該セルの中心の位置に重ね合わせることにより、前記ロゴ画像が重ね合わされたロゴ付き二次元コードを生成し、
前記二次元コード変換手段は、前記二次元コード生成手段によって生成された前記ロゴ付き二次元コードを印刷出力する場合、前記ロゴ付き二次元コードを、前記印刷出力用の色空間で表されるロゴ付き二次元コードに変換し、
前記網点データ生成手段は、前記二次元コード変換手段によって変換された前記ロゴ付き二次元コード内の前記複数のセルのうち、前記閾値未満の明度の色に着色すべき各セルの中心に、いずれかの網点が位置するように、前記網点データを生成する、
ことを特徴とする請求項６に記載の二次元コード生成装置。
【請求項８】
二次元コードが出力される環境における白色点を決定する白色点決定ステップと、
前記白色点決定ステップによって決定された前記白色点を基準とする、デバイスに依存しない色空間で表された、読取装置が複数のセルのそれぞれを２値で読み取るための明度の閾値であって、前記白色点によって定められる白色に相当する明度に応じて異なる閾値を取得する閾値取得ステップと、
前記閾値取得ステップによって取得された前記閾値以上の明度の色と前記閾値未満の明度の色とで前記複数のセルを着色して形成された複数のセルドットの分布パターンによって情報を表現する前記二次元コードを生成する二次元コード生成ステップと、
を備えることを特徴とする二次元コード生成方法。
【請求項９】
コンピュータに、
二次元コードが出力される環境における白色点を決定する白色点決定手順と、
前記白色点決定手順によって決定された前記白色点を基準とする、デバイスに依存しない色空間で表された、読取装置が複数のセルのそれぞれを２値で読み取るための明度の閾値であって、前記白色点によって定められる白色に相当する明度に応じて異なる閾値を取得する閾値取得手順と、
前記閾値取得手順によって取得された前記閾値以上の明度の色と前記閾値未満の明度の色とで前記複数のセルを着色して形成された複数のセルドットの分布パターンによって情報を表現する前記二次元コードを生成する二次元コード生成手順と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二次元コード生成装置、二次元コード生成方法、及びプログラムに関する。
【背景技術】
【０００２】
縦横（マトリクス状）に配列され、白と黒とに塗り分けられた複数のセルの分布パターンによって、情報を表現する二次元コードが知られている。例えば、二次元コードを携帯電話等に備えられた読取装置によって読み取ることで、様々なＵＲＬ（Uniform Resource Locator）に容易にアクセスすることができる。二次元コードは、一次元バーコード等と比べて多くの情報量を取り扱うことができるため、日常生活の様々な場面で使用されている。【０００３】
最近、二次元コードに色や形等が付加されることによって、デザイン性を有する二次元コードが知られてきている。例えば特許文献１及び特許文献２は、複数のセルに着色されて形成されたセルドットの分布パターンによって情報を表現する二次元コードと、視覚により情報を表現するロゴマークと、を重ね合わせることによって、デジタル情報と視覚情報とを同時に表現可能なロゴ付き二次元コードを開示している。このようなロゴ付き二次元コードは、デジタル情報を読取装置によって読み取り可能であると共に、ロゴマークを有するため、二次元コードを見た人によって二次元コードがどのような会社又は団体等を表しているのか等の情報を容易に視認することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４３３０６０１号公報
【特許文献２】特許第４７８１８９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
二次元コードは、様々な表示デバイスに表示され、様々な印刷媒体に印刷される。ところが、二次元コードが表示される表示デバイスや、二次元コードが印刷される印刷媒体によっては、読取装置による二次元コードの読み取り精度が安定しないとの問題がある。具体的には、読取装置が二次元コードを読み取ることに時間がかかって読み取り難い場合だけでなく、読取装置が二次元コードを読み取ることができない場合も生じている。特に、色や形等が付加された二次元コードの読み取り精度は、白黒等の２色のみのパターンで生成された二次元コードの読み取り精度に比べて、更に不安定になる。【０００６】
このように読取装置による二次元コードの読み取り精度が不安定になる理由は、二次元コードが表示又は印刷される環境によって、基準となる白色が異なるからである。すなわち、実生活の中では、何種類もの光源があって、それらが混ざり合っている。例えば、同一物であっても、光源が変わる度に色味が変って見える。その結果、読取装置による二次元コードの読み取り精度は、読み取り環境や表示デバイスによって左右される。そのため、環境が様々であっても、二次元コードを安定して読み取ることが求められている。【０００７】
本発明は上記実状に鑑みてなされたものであり、様々な環境において読取装置によって安定して読み取り可能な二次元コードを生成する二次元コード生成装置、二次元コード生成方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の第１の観点に係る二次元コード生成装置は、
二次元コードが出力される環境における白色点を決定する白色点決定手段と、
前記白色点決定手段によって決定された前記白色点を基準とする、デバイスに依存しない色空間で表された、読取装置が複数のセルのそれぞれを２値で読み取るための明度の閾値を取得する閾値取得手段と、
前記閾値取得手段によって取得された前記閾値以上の明度の色と前記閾値未満の明度の色とで前記複数のセルを着色して形成された複数のセルドットの分布パターンによって情報を表現する前記二次元コードを生成する二次元コード生成手段と、
を備えることを特徴とする。【０００９】
上記二次元コード生成装置において、
ロゴ画像を取得するロゴ画像取得手段と、
前記ロゴ画像取得手段によって取得された前記ロゴ画像が前記色空間で表された場合における、前記ロゴ画像内の各部分の明度を取得する明度取得手段と、
をさらに備え、
前記二次元コード生成手段は、前記二次元コードとして、
前記複数のセルのうち前記閾値未満の明度の色に着色されるべきセルに重ね合わされた、前記ロゴ画像のうち前記明度取得手段によって取得された明度が前記閾値以上である部分に、前記閾値未満の明度の色に着色されたセルドットを重ね合わせ、
前記複数のセルのうち前記閾値以上の明度の色に着色されるべきセルに重ね合わされた、前記ロゴ画像のうち前記明度取得手段によって取得された明度が前記閾値未満である部分に、前記閾値以上の明度の色に着色されたセルドットを重ね合わせることにより、
前記ロゴ画像が重ね合わされたロゴ付き二次元コードを生成する、
ようにしてもよい。【００１０】
上記二次元コード生成装置において、
前記二次元コード生成手段は、
前記複数のセルのうち前記閾値未満の明度の色に着色されるべきセルに重ね合わされた、前記ロゴ画像のうち前記明度取得手段によって取得された明度が前記閾値以上である部分に、前記閾値未満の明度の色に着色された、該セルより小さい前記セルドットを重ね合わせ、
前記複数のセルのうち前記閾値以上の明度の色に着色されるべきセルに重ね合わされた、前記ロゴ画像のうち前記明度取得手段によって取得された明度が前記閾値未満である部分に、前記閾値以上の明度の色に着色された、該セルより小さい前記セルドットを重ね合わせることにより、
前記ロゴ付き二次元コードを生成する、
ようにしてもよい。【００１１】
上記二次元コード生成装置において、
前記二次元コード生成手段は、
前記閾値未満の明度の色に着色された、前記セルより小さい前記セルドットを、該セルの中心の位置に重ね合わせ、
前記閾値以上の明度の色に着色された、前記セルより小さい前記セルドットを、該セルの中心の位置に重ね合わせることにより、
前記ロゴ付き二次元コードを生成する、
ようにしてもよい。【００１２】
上記二次元コード生成装置において、
前記二次元コード生成手段によって生成された前記二次元コードを、前記二次元コードが出力される前記環境における色空間で表される二次元コードに変換する二次元コード変換手段をさらに備える、
ようにしてもよい。【００１３】
上記二次元コード生成装置において、
前記二次元コード変換手段は、前記二次元コード生成手段によって生成された前記二次元コードを印刷出力する場合、前記二次元コードを、印刷出力用の色空間で表される二次元コードに変換し、
前記二次元コード変換手段によって変換された前記二次元コード内の各位置の色を網点の大きさによって表現した網点データを生成する網点データ生成手段をさらに備える、
ようにしてもよい。【００１４】
上記二次元コード生成装置において、
前記網点データ生成手段は、前記二次元コード変換手段によって変換された前記二次元コード内の前記複数のセルのうち、前記閾値未満の明度の色に着色すべき各セルの中心に、いずれかの網点が位置するように、前記網点データを生成する、
ようにしてもよい。【００１５】
上記目的を達成するため、本発明の第２の観点に係る二次元コード生成方法は、
二次元コードが出力される環境における白色点を決定する白色点決定ステップと、
前記白色点決定ステップによって決定された前記白色点を基準とする、デバイスに依存しない色空間で表された、読取装置が複数のセルのそれぞれを２値で読み取るための明度の閾値を取得する閾値取得ステップと、
前記閾値取得ステップによって取得された前記閾値以上の明度の色と前記閾値未満の明度の色とで前記複数のセルを着色して形成された複数のセルドットの分布パターンによって情報を表現する前記二次元コードを生成する二次元コード生成ステップと、
を備えることを特徴とする。【００１６】
上記目的を達成するため、本発明の第３の観点に係るプログラムは、
コンピュータに、
二次元コードが出力される環境における白色点を決定する白色点決定手順と、
前記白色点決定手順によって決定された前記白色点を基準とする、デバイスに依存しない色空間で表された、読取装置が複数のセルのそれぞれを２値で読み取るための明度の閾値を取得する閾値取得手順と、
前記閾値取得手順によって取得された前記閾値以上の明度の色と前記閾値未満の明度の色とで前記複数のセルを着色して形成された複数のセルドットの分布パターンによって情報を表現する前記二次元コードを生成する二次元コード生成手順と、
を実行させる。
【発明の効果】
【００１７】
本発明によれば、様々な環境において読取装置によって安定して読み取り可能な二次元コードを生成する二次元コード生成装置、二次元コード生成方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】二次元コードの一例を示す平面図である。
【図２】ロゴ付き二次元コードの第１の例を示す平面図である。
【図３】ロゴ付き二次元コードの第２の例を示す平面図である。
【図４】ロゴ付き二次元コードの第３の例を示す平面図である。
【図５】セルドットの例を示す図である。
【図６】本発明の実施形態に係る二次元コード生成装置の構成例を示すブロック図である。
【図７】本発明の実施形態に係る二次元コード生成装置の機能ブロック図である。
【図８】異なる出力環境における閾値の例を示す図である。
【図９】セル内に打たれた網点の例を示す図である。
【図１０】本発明の実施形態に係る二次元コード生成装置によって実行される二次元コード生成処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明を実施するための形態について説明する。
【００２０】
本実施形態に係る二次元コード生成装置について、図面を参照しつつ説明する。
【００２１】
本実施形態に係る二次元コード生成装置は、マトリクス状に配置された複数のセルによって情報を表現する二次元コードを生成する。二次元コードとは、例えばＱＲ（Quick Response）コード（登録商標）などのような、縦方向と横方向との二方向に情報をもつことができる表示形式のコードである。二次元コードが表現する情報は、例えば製品や商品の管理情報、携帯電話でアクセスするためのＵＲＬ（Uniform Resource Locator）、金券又はクーポン券等として使用される情報等である。
【００２２】
図１に、二次元コードの一例を示す。図１に示すように、二次元コード１は、マトリクス状に配置された複数のセル２を有する。具体的には、複数のセル２は、それぞれ特定サイズ（例えば４ｍｍ角）の正方形状であって、縦横それぞれに予め定められた個数並んでいる。
【００２３】
複数のセル２は、予め定められた閾値未満の明度の色（図１の例では黒）と閾値以上の明度の色（図１の例では白）とのいずれかに塗り分けられる。ここで、閾値とは、読取装置が二次元コード１を読み取る際に、各セル２を“１”又は“０”のいずれとして読み取るかの境界値に相当する明度である。二次元コード１の読取装置は、例えば閾値未満の明度の色に着色されたセル２を“１”と読み取り、閾値以上の明度の色に着色されたセル２を“０”と読み取る。
【００２４】
以下、閾値未満の明度の色と閾値以上の色とのいずれかに塗り分けられたセル２を、セルドットという。二次元コード１は、このように複数のセル２を閾値未満の明度の色と閾値以上の色とのいずれかに着色させて形成されたセルドットの分布パターンにより、各種の情報を二進的に表現する。
【００２５】
二次元コード１内の異なる３つの隅部には、３つの位置決めシンボル３ａ、３ｂ、及び３ｃが配置される。この３つの位置決めシンボル３ａ、３ｂ、及び３ｃは、二次元コード１の位置と向きとを読取装置が検出できるようにするための基準である。このような３つの位置決めシンボル３ａ、３ｂ、及び３ｃは、特定の比率の正方形が組み合わさった分布パターンとなるように複数のセル２が配置されることで、他のセルと区別される。
【００２６】
次に、図２〜図４に、ロゴ付き二次元コードの例を示す。ロゴ付き二次元コードは、複数のセル上に、図形、文字、記号、絵等を表すロゴマークが重ねてデザインされた二次元コードである。
図２に示すロゴ付き二次元コード１１は、マトリクス状に配置された複数のセル２１上に、人型のマークを表すロゴマーク５１が重ね合わされて形成されている。
図３に示すロゴ付き二次元コード１２は、マトリクス状に配置された複数のセル２２上に、ハート型のマークを表すロゴマーク５２が重ね合わされて形成されている。
図４に示すロゴ付き二次元コード１３は、マトリクス状に配置された複数のセル２３上に、「３ｐｔ」との文字を表すロゴマーク５３が重ね合わされて形成されている。
【００２７】
図１に示した二次元コード１が、基本的には白と黒との組み合わせであるため、見た目にはそれがどのような情報を表現しているのかを理解できないコードであった。これに対して、図２〜図４に示したロゴ付き二次元コード１１、１２、１３は、複数のセル２１、２２、２３に視覚により情報を表現するロゴマーク５１、５２、５３が重ね合わされているため、デジタル情報と視覚情報とを同時に表現可能なコードである。このようなロゴ付き二次元コード１１、１２、１３は、図２〜図４ではグレースケールで示しているが、意匠性を高めるため、或いは偽造防止等の観点から、フルカラーであることが好ましい。
【００２８】
図２に示すように、ロゴ付き二次元コード１１は、主に２人分の人型マークによって構成されるロゴマーク５１を有する。このロゴマーク５１の内部は、白色、すなわち読取装置の閾値以上の明度の色に着色されている。
【００２９】
このようなロゴマーク５１の部分も含めてロゴ付き二次元コード１１が読取装置によって正しく読み取られるように、ロゴマーク５１のうち、閾値未満の明度の色に着色すべきセル２１に重ね合わされた部分には、閾値未満の明度の色（黒又はグレー）に着色されたセルドットがロゴマーク５１の上から重ね合わされている。一方で、ロゴマーク５１のうち、閾値以上の明度の色に着色すべきセル２１に重ね合わされた部分には、読取装置がロゴマーク５１の色（白）をそのまま読み取っても正しい情報を読み取ることができるため、ロゴマーク５１の上からセルドットが重ね合わされていない。このように、ロゴ付き二次元コード１１は、ロゴマーク５１上において、ロゴマーク５１に重ね合わされた閾値未満の明度の色（黒又はグレー）に着色されたセルドットと、閾値以上の明度の色（白）を有するロゴマーク５１自身と、によって情報を表現している。
【００３０】
図３に示すように、ロゴ付き二次元コード１２は、ハート型のマークを表すロゴマーク５２を有する。このロゴマーク５２の内部は、濃いグレー、すなわち読取装置の閾値未満の明度の色に着色されている。
【００３１】
このようなロゴマーク５２の部分も含めてロゴ付き二次元コード１２が読取装置によって正しく読み取られるように、ロゴマーク５２のうち、閾値以上の明度の色に着色すべきセル２２に重ね合わされた部分には、閾値以上の明度の色（白）に着色されたセルドットがロゴマーク５２の上から重ね合わされている。一方で、ロゴマーク５２のうち、閾値未満の明度の色に着色すべきセル２２に重ね合わされた部分には、読取装置がロゴマーク５２の色（濃いグレー）をそのまま読み取っても正しい情報を読み取ることができるため、ロゴマーク５２の上からセルドットが重ね合わされていない。このように、ロゴ付き二次元コード１２は、ロゴマーク５２上において、ロゴマーク５２に重ね合わされた閾値以上の明度の色（白）に着色されたセルドットと、閾値未満の明度の色（濃いグレー）を有するロゴマーク５２自身と、によって情報を表現している。
【００３２】
図４に示すように、ロゴ付き二次元コード１３は、「３ｐｔ」との文字を表すロゴマーク５３を有する。ロゴマーク５３のうち、「３ｐｔ」の文字部分は、白色、すなわち読取装置の閾値以上の明度の色に着色されており、「３ｐｔ」の文字の周囲部分は、グレー、すなわち読取装置の閾値未満の明度の色に着色されている。
【００３３】
このようなロゴマーク５３の部分も含めてロゴ付き二次元コード１３が読取装置によって正しく読み取られるように、ロゴマーク５３における白色の文字部分のうち、閾値未満の明度の色に着色すべきセル２３に重ね合わされた部分には、閾値未満の明度の色（黒）に着色されたセルドットがロゴマーク５３の上から重ね合わされている。更に、ロゴマーク５３におけるグレーの周囲部分うち、閾値以上の明度の色に着色すべきセル２３に重ね合わされた部分には、閾値以上の明度の色（白）に着色されたセルドットがロゴマーク５３の上から重ね合わされている。一方で、ロゴマーク５３における白色の文字部分のうち、閾値以上の明度の色に着色すべきセル２３に重ね合わされた部分には、読取装置がロゴマーク５３の色（白）をそのまま読み取っても正しい情報を読み取ることができるため、ロゴマーク５３の上からセルドットが重ね合わされていない。同様に、ロゴマーク５３におけるグレーの周囲部分のうち、閾値未満の明度の色に着色すべきセル２３に重ね合わされた部分には、読取装置がロゴマーク５３の色（グレー）をそのまま読み取っても正しい情報を読み取ることができるため、ロゴマーク５３の上からセルドットが重ね合わされていない。このように、ロゴ付き二次元コード１３は、ロゴマーク５３上において、ロゴマーク５３に重ね合わされた閾値以上の明度の色（白）に着色されたセルドットと、ロゴマーク５３に重ね合わされた閾値未満の明度の色（黒）に着色されたセルドットと、閾値以上の明度の色の部分（白色の文字部分）と閾値未満の明度の色の部分（グレーの周囲部分）とを有するロゴマーク５３自身と、によって情報を表現している。
【００３４】
ところで、図２〜図４に示したロゴ付き二次元コード１１、１２、１３において、ロゴマーク５１、５２、５３に重ね合わされたセルドットの形状は、セルの形状である正方形状ではなく、円形である。このセルドットの円の中心は、正方形状のセルの中心に一致し、且つ、セルドットの面積は、セルの面積よりも小さい。そして、セル内における円形のセルドット以外の部分は、ロゴマーク５１、５２、５３の色に着色されている。
【００３５】
読取装置は、ロゴ付き二次元コード１１、１２、１３等の二次元コードを読み取る際、各セルの中心部分を読み取る。そのため、上記特許文献１の中でも説明しているように、たとえ閾値未満の明度の色に着色されたセルドットの着色面積がセルの面積よりも小さく、且つセルドットが正方形以外の形状であっても、読取装置は、ある程度“１”に近い値（黒として認識する値）を読み取る。同様に、閾値以上の明度の色に着色されたセルドットの着色面積がセルの面積よりも小さく、且つセルドットが正方形以外の形状であっても、読取装置は、ある程度“０”に近い値（白として認識する値）を読み取る。そのため、各セルの中心部分を中心にセルドットを形成すれば、セルドットの面積をセルの面積よりも小さくしても、読取装置による二次元コードの読み取りに支障はでない。具体的には、各セルの中心部分を中心にセルドットを形成する場合、セルドットの着色面積がセルの面積の３％（より好ましくは２０％）以上を占めていれば、二次元コードを読取装置に容易に読み取らせることができる。
【００３６】
図５に、様々な形状のセルドットの例を示す。図２〜図４に示したロゴ付き二次元コード１１、１２、１３におけるセルドットは、図５に示す正方形状のセル２ａ内に設けられた円形のセルドット６ａに相当する。円形のセルドット６ａ以外にも、二次元コードに重ね合わされるロゴ画像のデザインに合わせて、セル２ｂ〜２ｆ内に設けられた星型やハート形等のセルドット６ｂ〜６ｆのような、様々な形状のセルドットを用いることができる。読取装置は、図５の例のような円形、多角形、ハート形等の様々な形状のセルドット６ａ〜６ｆの分布パターンから、情報を読み取ることができる。
【００３７】
このように読取装置によるロゴ付き二次元コード１１、１２、１３の正常な読み取り機能を確保しつつ、セルドットの面積をセルの面積よりも小さくし、且つ、セル内のセルドット以外の部分をロゴマーク５１、５２、５３の色で表現することで、セルドットによるロゴマーク５１、５２、５３の浸食を抑えることができる。従って、ロゴマーク５１、５２、５３をより視認しやすくなり、ロゴマーク５１、５２、５３の意匠性の低下を抑制できる。
【００３８】
以上のような二次元コード１及びロゴ付き二次元コード１１、１２、１３を生成する二次元コード生成装置は、図６に示すように構成される。二次元コード生成装置１００は、表示部１０１と、記憶部１０２と、操作部１０３と、通信部１０４と、制御部１０５と、を備える。これら各部は、バスを介して相互に接続される。二次元コード生成装置１００は、例えば汎用のコンピュータによって実現される。
【００３９】
表示部１０１は、例えばＬＣＤ（Liquid Crystal Display）等によって構成される。表示部１０１は、制御部１０５による制御のもと、各種画像を表示する。例えば、表示部１０１は、二次元コード生成装置１００によって生成された二次元コードや、二次元コードに重ね合わせるロゴ画像等を表示する。
【００４０】
記憶部１０２は、例えばハードディスクドライブやフラッシュメモリ等の不揮発性メモリによって構成される。記憶部１０２は、二次元コード生成装置１００によって実行される処理のために必要となる各種情報及び各種プログラムを記憶する。
【００４１】
操作部１０３は、ユーザによって操作されるもので、例えばキーボードやマウス等によって構成される。例えば、ユーザは、操作部１０３を操作して、二次元コードを生成する指示等を入力する。
【００４２】
通信部１０４は、例えば無線通信装置などから構成され、ネットワークに接続される。通信部１０４は、制御部１０５による制御のもと、二次元コード生成装置１００による二次元コードの生成に必要なデータを外部の機器から受信し、二次元コード生成装置１００によって生成された二次元コードを外部の機器に送信する。
【００４３】
制御部１０５は、例えばＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、及びＲＡＭ（Random Access Memory）等によって構成される。制御部１０５では、ＣＰＵが、ＲＡＭをワークメモリとして用いてＲＯＭや記憶部１０２などに記憶されている各種プログラムを適宜実行することにより、二次元コード生成装置１００の各部の動作を制御する。
【００４４】
図７に示すように、二次元コード生成装置１００は、機能的には、白色点決定部１１１と、閾値取得部１１２と、二次元コード生成部１１３と、ロゴ画像取得部１１４と、明度取得部１１５と、を備える。制御部１０５は、ＣＰＵ、ＲＯＭ、及びＲＡＭ等の協働により、これら各部として機能する。
【００４５】
白色点決定部１１１は、二次元コード生成装置１００によって生成される二次元コードが出力される環境における、白色点を決定する。
【００４６】
白色は、色作りの基準となる色である。そのため、二次元コード生成装置１００によって生成された二次元コードを、ＰＣ（Personal Computer）等のモニタに表示出力する場合であっても、プリンタによって印刷出力する場合であっても、出力されるデータ（二次元コード）の色は、白色を基準として作成される。
【００４７】
例えば、二次元コードをＰＣ等のモニタに表示出力する場合、モニタ上での白色は、ＲＧＢ（Red, Green, Blue）の各色の光源が全て同じ１００％の割合で発光することによって表現される。そして、その他の色は、ＲＧＢの各色の光源の発光強度を０％から１００％の間において調整することによって表現される。そのため、モニタによって白色が異なると、白色以外の各色もモニタによって異なることになる。これは、ユーザが所望する色合いが得られない原因となる。
【００４８】
一方、二次元コードをプリンタによって印刷出力する場合も、二次元コードの印刷出力先となる紙やフィルム等の記録媒体の材質によって、基準となる白色が異なる。例えば、二次元コードの印刷出力先となる記録媒体が紙であっても、コピー用紙、段ボール、新聞紙、雑誌等では、紙の色が全て異なっている。そのため、ユーザが所望する色合いで二次元コードを印刷出力するためには、記録媒体の材質に応じて、白色の基準を適切に設定する必要がある。
【００４９】
すなわち、二次元コードをモニタに表示出力する場合とプリンタで印刷出力する場合とのいずれにおいても、二次元コードを生成する環境における白色と、二次元コードを出力する環境における白色と、を正しく合わせる（キャリブレーションする）必要がある。そのために、白色点決定部１１１は、生成する二次元コードを出力すべきデバイスに応じて適切な白色点を決定する。これにより、ホワイトバランスを調整する。
【００５０】
具体的に説明すると、白色点決定部１１１は、二次元コードを出力する環境における白色点として、色温度を決定する。例えば、白色点決定部１１１は、ユーザが操作部１０３を介して入力した色温度を、白色点として決定する。或いは、白色点決定部１１１は、二次元コードを出力する環境（表示出力する場合はＯＳ等、印刷出力する場合は記録媒体の種類等）を示す情報を取得して、取得した情報からその環境に適した色温度等を、白色点として決定することもできる。
【００５１】
色温度とは、モニタやプリンタ等のような色を扱う機器において用いられる色合いを表すための指標である。色温度の単位は、ケルビン（Ｋ）が用いられる。例えば画像をモニタに表示する場合、色温度が高いと、青みがかった色でモニタ全体が表示され、色温度が低いと、赤みがかった色でモニタ全体が表示される。すなわち、色温度が高いモニタで表示された白色と、色温度が低いモニタで表示された白色とは、異なっている。
【００５２】
例えば、ページホワイトと呼ばれる色温度は５０００Ｋ（Ｄ５０）である。また、モニタの色温度は、使用されるＯＳ（Operating System）に応じて、６５００Ｋ（Ｄ６５）又は９３００（Ｄ９３）等にデフォルトで設定されている。なお、モニタは時間の経過と共に劣化していくため、実際の色温度が設定値に一致しなくなることがある。この場合、測定機等を用いてモニタの色温度を測定すればよい。これにより、白色点決定部１１１は、精度良く白色点を決定することができる。
【００５３】
閾値取得部１１２は、白色点決定部１１１によって決定された白色点を基準とする色空間で表された、二次元コードの読取装置が複数のセルのそれぞれを２値で読み取るための明度の閾値を取得する。
【００５４】
以下、色温度として６５００Ｋ（Ｄ６５）を採用した場合について説明する。この場合、閾値取得部１１２は、６５００Ｋ（Ｄ６５）の色温度をサポートする、デバイスに依存しない色空間を採用する。閾値取得部１１２は、色温度が６５００Ｋ（Ｄ６５）の場合におけるデバイスに依存しない色空間として、具体的には、ｓＲＧＢ（Standard RGB）による色空間を採用する。ｓＲＧＢは、一般的なモニタ、プリンタ、及びデジタルカメラ等において、デバイスの違いに関わらず色を正しく再現するために採用されている規格である。閾値取得部１１２は、採用したｓＲＧＢの色空間における色領域内において、二次元コードの読取装置が複数のセルのそれぞれを２値で読み取るための閾値を決定する。
【００５５】
二次元コードの読取装置は、セルを“１”と読み取るか“０”を読み取るかを、明度の情報で判別している。すなわち、黒色以外の色であっても、閾値未満の明度の色（すなわち相対的に暗い色）に着色されていれば、読取装置は、そのセルを“１”と読み取る。同様に、白色以外の色であっても、閾値以上の明度の色（すなわち相対的に明るい色）に着色されていれば、読取装置は、そのセルを“０”と読み取る。
【００５６】
より詳細に、図８を参照して説明する。図８において、横方向に明度（Ｌ値）を示し、縦方向に出力デバイス（モニタやプリンタ等）における明度に対応する階調数を示す。例えば、二次元コード生成装置１００によって生成された二次元コードを出力する第１の出力環境において、０から最大明度（白色に相当する明度）であるＬ１までの明度が、２５６階調（８ビット）で表現される。具体的には明度０が２５５階調に対応し、明度Ｌ１が０階調に対応する。この最大明度Ｌ１は、第１の出力環境における白色点（色温度）によって定められる。読取装置の閾値に相当する明度をＴと表すと、読取装置は、第１の出力環境において、０からＴまでの明度の色に着色されたセルを“１”と読み取り、ＴからＬ１までの明度の色に着色されたセルを“０”と読み取る。この閾値Ｔの明度に対応する階調数を、Ｓ１と表す。第１の出力環境において、閾値取得部１１２は、白色点決定部１１１によって決定された白色点を基準とする、デバイスに依存しない色空間で表された読取装置の閾値として、階調数Ｓ１を取得する。
【００５７】
一方、第１の出力環境とは異なる第２の出力環境において二次元コードを出力する場合、第２の出力環境における白色点（色温度）に応じて、最大明度は、図８に示すように、Ｌ１とは異なるＬ２に変わる。これに対して、読取装置の閾値に相当する明度はＴから変わらない。読取装置は、第２の出力環境においては、０からＴまでの明度の色に着色されたセルを“１”と読み取り、ＴからＬ２までの明度の色に着色されたセルを“０”と読み取る。すなわち、最大明度がＬ１からＬ２に変わったことにより、“０”と読み取る明度の範囲と“１”と読み取る明度の範囲との比率が、第１の出力環境における比率から変わっている。そのため、この閾値Ｔの明度に対応する階調数Ｓ２も、第１の出力環境における閾値Ｔの明度に対応する階調数Ｓ１とは異なる値に変わる。第２の出力環境において、閾値取得部１１２は、白色点決定部１１１によって決定された白色点を基準とする、デバイスに依存しない色空間で表された読取装置の閾値として、階調数Ｓ２を取得する。
【００５８】
このように、閾値に相当する明度Ｔの、白色明度に対する相対的な値は、出力環境によって変わる。そのため、同じ二次元コードでも、特に二次元コードにロゴマークが付加される場合には様々な色を伴うことになるため、出力する環境によってセルの明度が閾値未満であるか閾値以上であるかが変わってしまい、読取装置が二次元コードを正しく読み取れなくなることがある。
【００５９】
これを回避するため、二次元コード生成部１１３は、閾値取得部１１２によって取得された閾値を基準として、閾値以上の明度の色と閾値未満の明度の色とで複数のセルを着色して形成された複数のセルドットの分布パターンによって情報を表現する二次元コードを生成する。
【００６０】
具体的に説明すると、二次元コード生成部１１３は、二次元コードの生成対象となる数字、文字、記号等の入力データを取得する。二次元コード生成部１１３は、入力データを、例えば操作部１０３を介してユーザからの入力指示を受け付けることによって、又は通信部１０４を介して外部の機器から受信することによって、取得する。そして、二次元コード生成部１１３は、取得した入力データに対応する分布パターンを生成し、生成した分布パターンに従って、閾値以上の明度の色と閾値未満の明度の色とで複数のセルを着色することにより、取得した入力データを情報として表現する二次元コードを生成する。
【００６１】
二次元コード生成部１１３は、閾値未満の明度の色として、黒色の他、閾値未満の明度の色であれば黒色以外の色（相対的に暗い色）を用いることができる。同様に、二次元コード生成部１１３は、閾値以上の明度の色として、白色の他、閾値未満の明度の色であれば白色以外の色（相対的に明るい色）を用いることができる。二次元コード生成部１１３は、採用した色空間において閾値未満か閾値以上かを判別することにより、セルを着色する色を決めるため、出力する環境によってセルの明度が閾値未満であるか閾値以上であるかが変わってしまい、読取装置が二次元コードを正しく読み取れなくなることを防止することができる。すなわち、二次元コードを出力する環境に応じて、正しく読み取れる二次元コードを生成することができる。
【００６２】
ロゴ画像取得部１１４は、ロゴ画像を取得する。ロゴ画像とは、二次元コードをロゴ付き二次元コードとして生成する際に二次元コードに付するロゴマークの画像データをいう。ロゴ画像取得部１１４は、ロゴ画像を、例えば操作部１０３を介してユーザからの入力指示を受け付けることによって、又は通信部１０４を介して外部の機器から受信することによって、取得する。或いは、予め記憶部１０２にロゴ画像が記憶されている場合には、ロゴ画像取得部１１４は、記憶部１０２からロゴ画像を取得する。
【００６３】
明度取得部１１５は、ロゴ画像取得部１１４によって取得されたロゴ画像が、閾値取得部１１２において採用された色空間で表された場合における、ロゴ画像内の各部分の明度を取得する。
【００６４】
具体的に説明すると、明度取得部１１５は、取得したロゴ画像がＣＭＹＫ（Cyan, Magenta, Yellow, Black）色空間で表されている場合、又は、ｓＲＧＢ色空間以外のＲＧＢ色空間（広域ＲＧＢ色空間等）で表されている場合、取得したロゴ画像を、ｓＲＧＢ色空間で表されるロゴ画像に変換する。これは、一般的に印刷に用いられるＣＭＹＫ色空間、及び、モニタ表示に用いられるＲＧＢ色空間は、デバイス毎に色の設定が異なるデバイス依存型の色空間であるため、明度を直接には取得することができないためである。そのため、明度取得部１１５は、ロゴ画像がデバイスに依存する色空間で表されている場合、ロゴ画像の画素値を、デバイスに依存しない色空間（絶対色空間）であるｓＲＧＢ色空間における値に変換する。
【００６５】
色空間の変換は、例えばＩＣＣ（International Color Consortium）に準拠したカラーマネージメントシステムに従い、ＩＣＣで規定されているプロファイル等、デバイス毎の色空間の特性を規定したプロファイルを用いて行う。
【００６６】
色空間を変換すると、明度取得部１１５は、ｓＲＧＢ色空間で表されるロゴ画像を、Ｌａｂ色空間で表されるロゴ画像に変換する。Ｌａｂ色空間は、明度を示すＬ値と、色差情報を示すａ値及びｂ値と、によって色を表す色空間である。明度取得部１１５は、Ｌａｂ色空間で表されるロゴ画像内の各部分のＬ値を取得することにより、ロゴ画像内の各部分の明度を取得する。
【００６７】
二次元コード生成部１１３は、ロゴ画像取得部１１４によって取得されたロゴ画像を、二次元コードを構成する複数のセルに重ね合わせることにより、ロゴ付き二次元コードを生成する。
【００６８】
具体的に説明すると、明度取得部１１５によって取得されたロゴ画像内の各部分の明度と、閾値取得部１１２によって取得された読取装置の閾値と、を比較する。そして、複数のセルのうち閾値未満の明度の色に着色されるべきセルに重ね合わされた、ロゴ画像のうち明度取得部１１５によって取得された明度が閾値以上である部分に、閾値未満の明度の色に着色されたセルドットを重ね合わせる。また、複数のセルのうち閾値以上の明度の色に着色されるべきセルに重ね合わされた、ロゴ画像のうち明度取得部１１５によって取得された明度が閾値未満である部分に、閾値以上の明度の色に着色されたセルドットを重ね合わせる。このとき、セルドットとして、セルよりも小さい（例えば円状の）セルドットを用いることで、セルドットによるロゴ画像への浸食を抑えることができる。これにより、明度取得部１１５は、例えば図２〜図４に示したような、ロゴマーク５１、５２、５３が重ね合わされたロゴ付き二次元コード１１、１２、１３を生成する。
【００６９】
二次元コード変換部１１６は、二次元コード生成部１１３によって生成された二次元コードを、二次元コードが出力される環境における色空間で表される二次元コードに変換する。すなわち、二次元コード生成部１１３によって生成された二次元コードは、Ｌａｂ色空間において生成されたものであるため、二次元コード変換部１１６は、Ｌａｂ色空間において生成された二次元コードを、二次元コードを出力するデバイスにおける色空間で表される二次元コードに変換（色分解）する。
【００７０】
具体的に説明すると、生成された二次元コードをＰＣ等のモニタに表示出力する場合、二次元コード変換部１１６は、生成された二次元コードを、表示出力用の色空間（例えばＲＧＢ色空間）で表される二次元コードに変換する。そして、変換された二次元コードを含む表示データを、二次元コードを表示するモニタに送信する。一方で、生成された二次元コードをプリンタによって印刷出力する場合、二次元コード変換部１１６は、生成された二次元コードを、印刷出力用の色空間（例えばＣＭＹＫ色空間）で表される二次元コードに変換する。
【００７１】
網点データ生成部１１７は、生成された二次元コードをプリンタによって印刷出力する場合、二次元コード変換部１１６によって変換された二次元コード内の各位置の色を網点の大きさによって表現した網点データを生成する。
【００７２】
すなわち、一般的な印刷では、記録媒体上に網点と呼ばれる小さな点のパターンを並べることで、印刷画像が記録媒体上に記録される。この網点の大きさを調整することで、色の明暗や濃淡が表現される。一般的に、カラー印刷では、シアン、マゼンタ、イエロー、ブラックの４色の網点を適当な密度で印刷することで、所望の色を再現している。なお、カラー印刷では、モアレを目立たせないよう、各色のスクリーン角度をずらして網点を生成している。網点データ生成部１１７は、このような網点によって各セル及びロゴ画像の色を表現した網点データを生成して、生成した網点データをプリンタに送信する。
【００７３】
図９に、セル２０上に生成された網点７の例を示す。網点データ生成部１１７は、網点７として多数の小さなドットを打つことにより、セル２０内における閾値未満の明度の色に着色すべき円形のセルドット６０を表現する。一方で、網点データ生成部１１７は、セル２０内におけるセルドット６０以外の領域のように、白色に維持すべき領域には、網点７を打たない。図９では、理解を容易にするため、１色（黒色）の網点７のみ表示しているが、カラー印刷の場合は、シアン、マゼンタ、イエロー、ブラックの４色の網点がセル２０上に生成される。また、図９におけるセル２０と網点７とのサイズ比は、実際のサイズ比とは必ずしも一致しない。
【００７４】
上述したように、読取装置は各セルの中心部分を読み取って、“０”か“１”かを判別している。その結果、閾値未満の明度の色（黒色等）に着色すべきセル２０の色を網点によって表現する場合、セルドット６０自体がセル２０の中心に位置するだけでなく、セルドット６０に打たれた網点７のうちのいずれかの網点７（図９に示す網点７０）がセル２０の中心に位置していた方が、いずれの網点７もセル２０の中心に位置しないよりも、セル２０の読み取り精度が向上する。
【００７５】
そのため、網点データ生成部１１７は、二次元コード変換部１１６によって変換された二次元コード内の複数のセルのうち、閾値未満の明度の色に着色すべき各セルの中心に、いずれかの網点が位置するように、網点データを生成する。なお、閾値以上の明度の色（白色等）に着色すべきセルについては、読取装置の読み取り精度への影響が少ないと考えられるため、セルの中心に網点が位置してもよいし、セルの中心に網点が位置しなくてもよい。
【００７６】
次に、上記構成を備える二次元コード生成装置１００が実行する処理について、図１０に示すフローチャートを参照しつつ説明する。
【００７７】
例えばユーザにより、操作部１０３を介して、数字、文字、記号等の入力データが入力され、二次元コードを構成するセルの個数及びセルドットの形状、サイズ等が指定された後、二次元コードの生成が指示されたことに応答して、二次元コード生成装置１００は、図１０に示す二次元コード生成処理を開始する。
【００７８】
二次元コード生成処理を開始すると、制御部１０５は、白色点決定部１１１として機能して、白色点を決定する（ステップＳ１）。すなわち、制御部１０５は、二次元コードが出力される環境において色作りの基準となる白色点（色温度）を決定する。例えば、制御部１０５は、白色点として、６５００Ｋ（Ｄ６５）の色温度を決定する。
【００７９】
白色点を取得すると、制御部１０５は、閾値取得部１１２として機能して、決定した白色点を基準とする、デバイスに依存しない色空間で表された、読取装置の閾値を取得する（ステップＳ２）。例えば、白色点として６５００Ｋ（Ｄ６５）の色温度を決定した場合、制御部１０５は、この色温度を基準とする色空間としてｓＲＧＢ色空間を採用する。そして、制御部１０５は、ｓＲＧＢ空間で表された読取装置の閾値として、例えば図８に示した階調数Ｓ１又はＳ２に相当する値を取得する。
【００８０】
閾値を取得すると、制御部１０５は、ロゴ画像取得部１１４として機能して、ロゴ画像を取得する（ステップＳ３）。すなわち、制御部１０５は、生成する二次元コードに付するロゴマークの画像データであるロゴ画像を、操作部１０３又は通信部１０４等を介して、取得する。
【００８１】
ロゴ画像を取得すると、制御部１０５は、明度取得部１１５として機能して、取得したロゴ画像をＬａｂ変換して（ステップＳ４）、ロゴ画像内の各部分の明度を取得する（ステップＳ５）。すなわち、制御部１０５は、取得したロゴ画像を、デバイスに依存しない色空間としてｓＲＧＢ色空間で表されるロゴ画像に変換し、更に、Ｌａｂ色空間で表されるロゴ画像に変換する。そして、制御部１０５は、ロゴ画像がＬａｂ色空間に変換されることによって得られるＬ値を取得することにより、ロゴ画像内の各部分の明度を取得する。
【００８２】
ロゴ画像の明度を取得すると、制御部１０５は、二次元コード生成部１１３として機能して、ロゴ画像を合成して、ロゴ付き二次元コードを生成する（ステップＳ６）。制御部１０５は、例えば図２〜図４に示したような、ロゴマーク５１、５２、５３が重ね合わされたロゴ付き二次元コード１１、１２、１３を生成する。
【００８３】
ロゴ付き二次元コードを生成すると、制御部１０５は、生成したロゴ付き二次元コードの出力環境を判別する（ステップＳ７）。制御部１０５は、生成したロゴ付き二次元コードを、具体的にはモニタに表示出力するのか、プリンタで印刷出力するのか、を判別する。出力環境は、例えばユーザによって操作部１０３を介して指示される。
【００８４】
生成したロゴ付き二次元コードをモニタに表示出力する場合（ステップＳ７；モニタ出力）、制御部１０５は、二次元コード変換部１１６として機能して、生成したロゴ付き二次元コードをＲＧＢ変換する（ステップＳ８）。すなわち、制御部１０５は、Ｌａｂ色空間において生成したロゴ付き二次元コードを、モニタ出力用の色空間としてＲＧＢ色空間で表されるロゴ付き二次元コードに変換する。
【００８５】
一方、ステップＳ７において、生成したロゴ付き二次元コードをプリンタで印刷出力する場合（ステップＳ７；印刷出力）、制御部１０５は、二次元コード変換部１１６として機能して、生成したロゴ付き二次元コードをＣＭＹＫ変換する（ステップＳ９）。すなわち、制御部１０５は、Ｌａｂ色空間において生成したロゴ付き二次元コードを、印刷出力用の色空間としてＣＭＹＫ色空間で表されるロゴ付き二次元コードに変換する。
【００８６】
ＣＭＹＫ変換すると、制御部１０５は、網点データ生成部１１７として機能して、ＣＭＹＫ変換後のロゴ付き二次元コードから、網点データを生成する（ステップＳ１０）。このとき、読取装置による読み取り精度を向上させるため、制御部１０５は、図９に示したように、ロゴ付き二次元コード内の複数のセルのうち、閾値未満の明度の色に着色すべき各セルの中心に、いずれかの網点が位置するように、網点データを生成する。
【００８７】
ＲＧＢ変換又はＣＭＹＫ変換によって、生成したロゴ付き二次元コードを出力できる状態になると、図１０のフローチャートに示した二次元コード生成処理は終了する。生成されたロゴ付き二次元コードは、所望のモニタにおいて表示出力され、又は所望のプリンタから印刷出力される。
【００８８】
以上説明したように、本実施形態に係る二次元コード生成装置１００は、二次元コードが出力される環境における白色点を決定し、決定した白色点を基準とするデバイスに依存しない色空間における、ロゴ画像の明度と読取装置の閾値とを取得する。そして、ロゴ画像の明度と読取装置の閾値とを比較して、二次元コードを構成する複数のセルにロゴ画像を合成することにより、ロゴ画像が重ね合わされたロゴ付き二次元コードを生成する。
【００８９】
その結果、本実施形態に係る二次元コード生成装置１００は、様々な環境において読取装置によって安定して読み取り可能な二次元コードを生成することができる。特に、デザイン性を有するロゴ付き二次元コードを生成する場合、本実施形態に係る二次元コード生成装置１００は、読み取り精度を安定させるためにロゴのデザインの変更は不要であり、またロゴに重ね合わされるセルドットの面積を小さくすることができるため、二次元コードのデザイン性が崩れることを抑えることができる。そのため、二次元コードが提示されるデバイス等に依存されずに安定して読み取ることができ、且つ、デザイン性（意匠性）も有するロゴ付き二次元コードを生成することができる。
【００９０】
なお、本発明は、上記実施形態に限定されず、種々の変形、応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。以下、本発明に適用可能な上記実施形態の変形態様について、説明する。
【００９１】
例えば、上記実施形態では、色温度として６５００Ｋ（Ｄ６５）を用い、デバイスに依存しない色空間としてｓＲＧＢ色空間を用いて説明した。しかし、本発明に係る二次元コード生成装置は、６５００Ｋ及びｓＲＧＢ色空間に限らず、他の色温度及び他の色空間を用いて、上述した二次元コード生成処理を実行することができる。例えば、二次元コードの出力環境における色温度が９３００Ｋ（Ｄ９３）であった場合には、二次元コード生成装置は、色温度として９３００Ｋを用い、且つ、色空間として９３００Ｋをサポートするデバイスに依存しない色空間を用いることができる。
【００９２】
また、上記実施形態に係る二次元コード生成装置１００は、ロゴが付されたロゴ付き二次元コードを生成した。しかし、本発明に係る二次元コード生成装置は、例えば図１に示した二次元コード１のような、ロゴが付されない二次元コードを生成してもよい。すなわち、本発明に係る二次元コード生成装置は、ロゴ画像取得部１１４と明度取得部１１５との機能を有さない、より簡易に構成された装置であってもよい。ロゴが付されない二次元コードは、ロゴ付き二次元コードほど多数の色を使用しないため、読み取り精度は相対的には安定する。しかし、ロゴが付されない二次元コードであっても、環境によっては読み取り精度が低下する場合もある。そのため、このような二次元コード生成装置によれば、安定して読み取り可能な二次元コードを、より簡易な構成で生成することができる。
【００９３】
また、上記実施形態では、ロゴ付き二次元コードは、理解を容易にするため、グレースケールで説明した。しかし、本発明に係る二次元コード生成装置によって生成されるロゴ付き二次元コードは、フルカラーで表されたものであってもよい。ロゴ付き二次元コードがフルカラーで表される場合には、例えばＲＧＢの各値の平均値が閾値以上であるか否かによって、ロゴマーク及びセルの明度が閾値以上か閾値未満かを区別することができる。
【００９４】
また、上記実施形態では、二次元コードがＱＲコード（登録商標）であるものとして説明したが、本発明はこれに限定されるものではなく、二次元コードは、データマトリクスや、アズテックコード、コードワン、アレイタグ、ボックス図形コード、マキシコード、ペリコード、ソフトストリップ、ＣＰコード、カルラコード、ウルトラコードなどといった他のマトリクス式の二次元コードであってもよい。あるいは、ＰＤＦ４１７、コード４９、コード１６ｋ、コーダブロックなどといった一次元コードを縦に積み重ねたスタック式の二次元コードであっても構わない。
【００９５】
また、上記実施形態において、ＣＰＵが実行するプログラムは、予めＲＯＭや記憶部１０２などに記憶されるものとして説明したが、本発明はこれに限定されるものではなく、上述の処理を実行させるためのプログラムを、既存の汎用コンピュータに適用することで、上記実施形態に係る二次元コード生成装置１００として機能させてもよい。
【００９６】
このようなプログラムの提供方法は任意であり、例えばコンピュータが読取可能な非一時的な記録媒体（フレキシブルディスク、ＣＤ（Compact Disc）−ＲＯＭ、ＤＶＤ（Digital Versatile Disc）−ＲＯＭなど）に格納して配布してもよいし、インターネットなどのネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより提供してもよい。
【００９７】
さらに、上記の処理をＯＳとアプリケーションプログラムとの分担、又はＯＳとアプリケーションプログラムとの協働によって実行する場合には、アプリケーションプログラムのみを記録媒体やストレージに格納してもよい。また、搬送波にプログラムを重畳し、ネットワークを介して配信することも可能である。例えば、ネットワーク上の掲示板（ＢＢＳ：Bulletin Board System）に上記プログラムを掲示し、ネットワークを介してプログラムを配信してもよい。そして、このプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。
【００９８】
本発明は、本発明の広義の精神と範囲に逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【符号の説明】
【００９９】
１、１１、１２、１３    二次元コード
２、２０、２１、２２、２３    セル
２ａ、２ｂ、２ｃ、２ｄ、２ｅ、２ｆ    セル
３ａ、３ｂ、３ｃ    位置決めシンボル
１１、１２、１３    ロゴ付き二次元コード
５１、５２、５３    ロゴマーク
６ａ、６ｂ、６ｃ、６ｄ、６ｅ、６ｆ、６０    セルドット
７、７０    網点
１００    二次元コード生成装置
１０１    表示部
１０２    記憶部
１０３    操作部
１０４    通信部
１０５    制御部
１１１    白色点決定部
１１２    閾値取得部
１１３    二次元コード生成部
１１４    ロゴ画像取得部
１１５    明度取得部
１１６    二次元コード変換部
１１７    網点データ生成部
【要約】
二次元コード生成装置（１００）において、白色点決定部（１１１）は、二次元コードが出力される環境における白色点を決定する。閾値取得部（１１２）は、白色点決定部（１１１）によって決定された白色点を基準とする、デバイスに依存しない色空間で表された、読取装置が複数のセルのそれぞれを２値で読み取るための明度の閾値を取得する。二次元コード生成部（１１３）は、閾値取得部（１１２）によって取得された閾値以上の明度の色と閾値未満の明度の色とで複数のセルを着色して形成された複数のセルドットの分布パターンによって情報を表現する二次元コードを生成する。【図１】
0005945376.tif 000002
【図５】
0005945376.tif 000003
【図６】
0005945376.tif 000004
【図７】
0005945376.tif 000005
【図８】
0005945376.tif 000006
【図９】
0005945376.tif 000007
【図１０】
0005945376.tif 000008
【図２】
0005945376.tif 000009
【図３】
0005945376.tif 000010
【図４】
0005945376.tif 000011