【解決手段】 画像付二次元コード生成装置1は、二次元コードを生成する二次元コード生成部10と、二次元コードをベース画像に適用して画像付二次元コードを生成する画像付二次元コード生成部32と、画像付二次元コードの読取りの可否を試験するコード試験部33と、二次元コードを調整するコード調整部20とを備える。生成した画像付二次元コードがコード試験部33での読取りに失敗した場合には、コード調整部20は、読取りの確率が高くなる方向に、色彩、明度、透明度、及びドットサイズのうちの少なくとも1つのパラメータを調整し、読取りが成功するまでコード試験及びコード調整を繰り返し行い、読取りが成功したときの画像付二次元コードを生成結果として出力する。
前記コード調整部は、前記コード試験部により前記画像付二次元コードの情報の読取りに失敗した場合に、二次元コードの色彩、明度、透明度、および二次元コードを構成するドットのサイズのうちの少なくとも1つのパラメータを、二次元コードの読取りの成功率を高める方向に調整する処理を、前記コード試験部にて前記画像付二次元コードの情報の読取りに成功するまで繰り返し行い、読み取れた画像付二次元コードを生成結果として出力する請求項1に記載の画像付二次元コード生成装置。
前記二次元コード生成部は、前記二次元コードの各ドットの色彩のパラメータとして、背景の前記ベース画像の色よりも、Lab空間において彩度方向に所定の閾値だけ大きい値を用いる請求項1または2に記載の画像付二次元コード生成装置。
前記二次元コード生成部は、前記二次元コードの各ドットの明度のパラメータとして、背景の前記ベース画像の明度が大きいほど、前記二次元コードの各ドットの明度と背景の前記ベース画像の明度との差が大きくなるように決定された値を用いる請求項1ないし3のいずれかに記載の画像付二次元コード生成装置。
前記コード調整部は、前記二次元コードの各ドットの明度のパラメータを、背景の前記ベース画像の明度との差が大きくなるように調整を行う請求項1ないし4のいずれかに記載の画像付二次元コード生成装置。
前記コード調整部は、前記二次元コードの各ドットの透明度のパラメータを透明度が低下するように調整を行う請求項1ないし5のいずれかに記載の画像付二次元コード生成装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、画像付二次元コードにおいて、二次元コードの読取りの確実性とデザイン性とを両立させることは困難である。デザイン性を向上させるためにベース画像が見えやすいようにするほど、デザインに合わせてセルの明暗等を構成するため、セルの明暗がはっきりしない場合があり、二次元コードの読取りが難しくなる。また、二次元コードの読取りを重視すると、セルの明暗がはっきりするように構成するため、ベース画像が見づらくなってデザイン性が低下する。特許文献1に記載された技術では、生成された画像付二次元コードが読み取れるものでなくてはならないため、いきおい、必要以上にデザイン性が低下したものとなってしまう。
【0006】
本発明は、上記の課題に鑑みてなされたものであり、二次元コードの読取りが可能で、かつデザイン性も高い画像付二次元コードを生成することができる画像付二次元コード生成装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の画像付二次元コード生成装置は、所定の情報を有する二次元コードであって、二次元コードが適用されるベースとなるベース画像に応じた色彩、明度を有する二次元コードを生成する二次元コード生成部と、前記二次元コードをベース画像に適用して画像付二次元コードを生成する画像付二次元コード生成部と、画像付二次元コードの読取りの可否を試験するコード試験部と、二次元コードの色彩、明度、透明度、および二次元コードを構成するドットのサイズのうちの少なくとも1つのパラメータを調整するコード調整部とを備える。
【0008】
この構成により、二次元コード生成部が生成した初期の二次元コードを、コード調整部によって二次元コードの読取りを可能にするように徐々にパラメータを変更していくことができる。すなわち、徐々にデザイン性を低下させて読取りの成功率を上げていくことができる。そして、二次元コードの読取りができたところで、そのときの画像付二次元バーコードを生成結果として出力する。この構成により、二次元コードの読取りが可能で、かつデザイン性も高い画像付二次元コードを生成することができる。なお、二次元コード生成部が生成する二次元コードの透明度、およびドットサイズは、例えば、所与の値とするなど、適宜設定してもよいし、色彩や明度と同様に、ベース画像に応じて決定してもよい。
【0009】
本発明の画像付二次元コード生成装置において、前記コード調整部は、前記コード試験部により前記画像付二次元コードの情報の読取りに失敗した場合に、二次元コードの色彩、明度、透明度、および、二次元コードを構成するドットのサイズのうちの少なくとも1つのパラメータを、二次元コードの読取りの成功率を高める方向に調整する処理を、前記コード試験部にて前記画像付二次元コードの情報の読取りに成功するまで繰り返し行い、読み取れた画像付二次元コードを生成結果として出力してもよい。
【0010】
この構成により、コード調整部が読取りの成功率を高める方向にパラメータを調整しつつトライアンドエラーを繰り返すことにより、読取り可能で、かつデザイン性の高い画像付二次元コードを生成することができる。
【0011】
本発明の画像付二次元コード生成装置において、前記二次元コード生成部は、前記二次元コードの各ドットの色彩のパラメータとして、背景の前記ベース画像の色よりも、Lab空間において彩度方向に所定の閾値だけ大きい値を用いてもよい。
【0012】
人間は、彩度方向への色の変化には鈍感であり、かつ彩度が高い方が鈍感な領域が大きいことが知られている。そこで、本発明では、二次元コードの各ドットの色彩のパラメータとして、背景のベース画像の色よりも彩度方向に大きい値を用いることにより、見た目には色の違いがわかりにくく、かつ背景のベース画像との色彩の違いによって読取りの成功率を高めた画像付二次元コードを生成することができる。
【0013】
本発明の画像付二次元コード生成装置において、前記二次元コード生成部は、前記二次元コードの各ドットの明度のパラメータとして、背景の前記ベース画像の明度が大きいほど、前記二次元コードの各ドットの明度と背景の前記ベース画像の明度との差が大きくなるように決定された値を用いてもよい。
【0014】
この構成により、ベース画像の明度に応じて、二次元コードの各ドットの明度を適切に決定することができる。
【0015】
本発明の画像付二次元コード生成装置において、前記コード調整は、(1)二次元コードの各ドットの明度のパラメータを、背景の前記ベース画像の明度との差が大きくなるように調整を行う、(2)前記二次元コードの各ドットの透明度のパラメータを透明度が低下するように調整を行う、(3)前記二次元コードの各ドットのサイズを大きくするように調整を行う、こととしてもよい。
【0016】
これらの構成により、二次元コードの読取りの成功率を徐々に高める構成を実現することができる。
【0017】
本発明の画像付二次元コード生成装置において、前記ベース画像に基づいて、前記二次元コードに対して所定の領域を設定する領域設定部を備え、前記所定の領域の方が他の領域よりもベース画像を認識しやすくするように、前記二次元コード生成部は、前記所定の領域と前記他の領域において異なるパラメータを用いて二次元コードを生成してもよい。
【0018】
この構成により、例えば、人間の顔の部分など、ベース画像の中でも特に重要な部分についてはデザイン性を重視し、それ以外の部分では読取りの成功率を重視した二次元コードを生成することができる。
【0019】
本発明の画像付二次元コード生成装置において、前記ベース画像に基づいて、前記二次元コードに対して所定の領域を設定する領域設定部を備え、前記二次元コード生成部は、前記所定の領域にドットを持たない二次元コードを生成してもよい。
【0020】
この構成により、例えば、人間の顔の部分など、ベース画像の中でも特に重要な部分については二次元コードのドットを持たず、ベース画像がそのまま見えるデザイン性の高い画像付二次元コードを生成することができる。
【0021】
本発明の画像付二次元コード生成方法は、画像付二次元コード生成装置によって画像付二次元コードを生成する画像付二次元コード生成方法であって、前記画像付二次元コード生成装置が、所定の情報を有する二次元コードであって、二次元コードが適用されるベースとなるベース画像に応じた色彩、明度を有する二次元コードを生成するステップと、前記二次元コードをベース画像に適用して画像付二次元コードを生成するステップと、前記画像付二次元コードの読取りの可否を試験するステップと、前記試験するステップにおいて前記画像付二次元コードの情報の読取りに失敗した場合に、二次元コードの色彩、明度、透明度、および、二次元コードを構成するドットのサイズのうちの少なくとも1つのパラメータを、二次元コードの読取りの成功率を高める方向に調整する処理を、前記画像付二次元コードの情報の読取りに成功するまで繰り返し行うステップと、前記試験するステップにて読み取れた画像付二次元コードを生成結果として出力するステップとを備える。
【0022】
本発明のプログラムは、画像付二次元コードを生成するためのプログラムであって、コンピュータに、所定の情報を有する二次元コードであって、二次元コードが適用されるベースとなるベース画像に応じた色彩、明度を有する二次元コードを生成するステップと、前記二次元コードをベース画像に適用して画像付二次元コードを生成するステップと、前記画像付二次元コードの読取りの可否を試験するステップと、前記試験するステップにおいて前記画像付二次元コードの情報の読取りに失敗した場合に、二次元コードの色彩、明度、透明度、および二次元コードを構成するドットのサイズのうちの少なくとも1つのパラメータを、二次元コードの読取りの成功率を高める方向に調整する処理を、前記画像付二次元コードの情報の読取りに成功するまで繰り返し行うステップと、前記試験するステップにて読み取れた画像付二次元コードを生成結果として出力するステップとを実行させる。
【発明の効果】
【0023】
本発明によれば、二次元コードの読取りが可能で、かつデザイン性も高い画像付二次元コードを生成することができる。
【発明を実施するための形態】
【0025】
以下、本発明の実施の形態の画像付二次元コード生成装置について、図面を参照しながら説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてよい。
【0026】
(第1の実施の形態)
図1は、本発明の第1の実施の形態の画像付二次元コード生成装置1の構成を示す図である。本実施の形態の画像付き画像付二次元コード生成装置1は、二次元コードとしてQRコードを生成する。なお、二次元コードはQRコードに限られず、PDF417(登録商標)、DATAMatrix(登録商標)、Maxi Code(登録商標)等の他の二次元コードが採用されてもよい。まず、本実施の形態において例示しているQRコードについて説明する。
【0027】
[QRコードの構造]
図2は、QRコードの基本構造を示す図である。情報は、白又は黒の正方形のセルを最小単位として表現される。このセルがマトリクス状に配置される。QRコード100は、切出しシンボル101、セパレータ102、フォーマット情報103、及びデータセル領域105からなる。QRコード100は、全体として四角形のコードである。データセル領域105には、タイミングパターン104が含まれる。また、QRコード100の周囲には所定の幅のマージン106が確保される。
【0028】
切出しシンボル101は、QRコード100を撮影した画像(コード画像)からQRコード100を切り出す位置を検出するためのパターンであり、QRコード100の4つの角のうちの3つの角(左上角、右上角、左下角)に位置する。切出しシンボル101は、その2つの辺がQRコード100の外縁となる。
【0029】
セパレータ102は、切出しシンボル101とそれより内側のセルで表される情報とを明確に切り離すための領域であり、切出しシンボル101におけるQRコード100の外縁とならない他の2辺に沿って位置する。セパレータ102は1セル分の幅をもつ。セパレータ102は白セルのみからなる。
【0030】
また、左上角の切出しシンボル101の内側の2辺のセパレータ102に沿ってフォーマット情報103が設けられており、右上角の切出しシンボル101の下側の辺のセパレータ102に沿ってフォーマット情報103が設けられており、左下角の切出しシンボル101の右側のセパレータ102に沿ってフォーマット情報103が設けられている。フォーマット情報103は、制御情報として、使用されている誤り訂正レベルの情報を含んでいる。フォーマット情報103は1セル分の幅をもつ。
【0031】
また、隣り合う切出しシンボル101をつなぐように、1セル分の幅を持つタイミングパターン104が設けられている。タイミングパターン104は、白セルと黒セルを交互に配置したものであり、バージョン情報の判別のために用いられる。
【0032】
QRコード100における切出しシンボル101、セパレータ102、フォーマット情報103以外の領域はデータセル領域105である。なお、上述のようにデータセル領域105にはタイミングパターン104が含まれるが、さらにアライメントパターンが含まれていてもよい。
【0033】
図3は、黒セルに対応するデータを「1」、白セルに対応するデータを「0」としたバージョン4(セル数が33×33)のQRコードのコードパターンの例である。以上、本実施の形態において画像付二次元コードの例として用いているQRコードについて説明した。
【0034】
[画像付二次元コード生成装置の構成]
画像付二次元コード生成装置1は、二次元コード生成部10と、画像取得部30と、画像加工部31と、画像付二次元コード生成部32と、コード試験部33とを備えている。画像付二次元コード生成装置1は、入力インターフェース、通信モジュール、表示装置等に接続されたコンピュータがプログラムを実行することで実現されてよい。また、画像付二次元コード生成装置1は、パーソナルコンピュータで実現されてもよいし、タブレット端末やスマートフォンで実現されてもよいし、携帯型の専用装置で実現されてもよい。
【0035】
二次元コード生成部10は、画像付二次元コードのベースになる画像(本明細書では「ベース画像」という)に適用される二次元コードを生成する機能を有する。二次元コード生成部10は、コード化情報取得部11と、コード仕様決定部12と、色情報算出部13と、コード調整部20とを備えている。
【0036】
コード化情報取得部11は、二次元コードとしてコード化すべき情報(コード情報)を取得する。この情報は、図示しない入力手段を用いてユーザが入力してよく、または通信ネットワークを介して外部から受信してもよい。コード情報は、例えば原画像の人物の連絡先の情報(電子メールアドレス等)であってよい。
【0037】
コード仕様決定部12は、二次元コードの仕様を決定する。コード仕様には、コードパターン、バージョン、およびセルサイズが含まれる。コードパターンは、入力データ(テキストデータやバイナリデータ等)を、黒セル、白セルに対応するコードに変換したものである。コードパターンは、コード化情報取得部11で取得されたコード情報の内容及び要求される誤り訂正レベルに基づいて決定される。バージョンはセルの数を反映したものである。バージョンは、コード化情報取得部11で取得されたコード情報の容量(文字数)及び文字種と、要求される誤り訂正レベルに基づいて決定される。セルサイズは、各セルの大きさを示すものである。セルサイズは、二次元コードを印刷する際の印刷解像度及び二次元コードを読み取る際の読取分解能に基づいて決定される。なお、入力データからコードパターンを生成する技術としては、既存の技術(例えば特許第2938338号の技術)を採用することができる。
【0038】
コード仕様決定部12は、コード情報の容量が大きいほど、また、誤り訂正レベルが高いほど、バージョンを高くし、印刷解像度や読取分解能が低い(粗い)ほどセルサイズを大きくする。誤り訂正レベル、印刷解像度、及び読取分解能の情報は、ユーザが図示しない入力手段を用いて入力してもよいし、通信ネットワークを介して外部から取得してもよい。
【0039】
本実施の形態では、コード調整部20にて、二次元コードの色彩や明度を調整する際に、ベース画像の色情報を用いるので、色情報算出部13等の説明に先立って、ベース画像を生成する画像取得部30及び画像加工部31について説明する。
【0040】
画像取得部30は、画像付二次元コードを生成する際のベース画像の元となる原画像を取得する。画像取得部30は、光学モジュール、撮像素子等を用いて撮影することで原画像を取得してもよいし、通信ネットワークを介して外部から受信することで原画像を取得してもよいし、記憶領域から読み出すことで原画像を取得してよい。本実施の形態では、原画像として人物の顔画像を用いる場合を説明する。
【0041】
画像加工部31は、画像取得部30にて取得された原画像のサイズを、コード仕様決定部12で取得されたQRコードのサイズに合わせるために、拡大縮小処理を行う。拡大縮小率R
1は、以下の手順で求める。画像加工部31は、検出した原画像の背景画像幅W
1[pxl]と背景画像高さW
2[pxl]とを比較する。W
1≧W
2であるときはR
1=S/W
1とし、W
1<W
2であるときはR
1=S/W
2とする。ここで、SはQRコードのサイズ[pxl]である。すなわち、背景画像幅、背景画像高さのうちの大きい方でQRコードのサイズ[pxl]を割ることによって、拡大縮小率R
1を決定する。
【0042】
画像加工部31は、拡大縮小率R
1を適用して画像取得部30で取得された原画像のサイズをQRコードのサイズに合わせるように、原画像を加工し、ベース画像を作成する。なお、R
1が1となる場合には、原画像の拡大縮小を行わない。
【0043】
続いて、二次元コード生成部10の構成について説明する。
色情報算出部13は、コード仕様決定部12からコードパターン、バージョン、及びセルサイズの情報を取得し、画像加工部31からベース画像の情報を取得した上で、以下の方法により、ベース画像の各セルの位置に対応する色情報を抽出し、これを変換してLab空間情報を算出する。なお、ここで色情報とは、色彩及び明度の情報をいう。
【0044】
まず、色情報算出部13は、二次元コードの各セルに対応する位置にあるベース画像上の色情報を抽出する。ここで抽出される色情報は、任意の手段で抽出されたものでよく、例えば、各セルの中心座標に対応する箇所にある画素の色情報や、各セル全体の画素の平均となる色情報等である。また、ベース画像から抽出される色情報は、RGBカラーモデルの情報であっても、他のカラーモデルの情報であってもよい。
【0045】
次に、色情報算出部13は、抽出した色情報を、Lab空間情報に変換する。ここで用いられるベース画像から抽出した色情報からLab空間情報への変換は、既存の技術を採用することができる。なお、Lab空間とは補色空間の一種であり、L軸は明度を意味し、a軸、b軸は補色次元を意味する。
【0046】
ここで、色情報算出部13で算出されるベース画像のLab空間情報を(L
1,a
1,b
1)とする。また、色情報算出部13で算出されたLab空間情報が、色彩調整部21、及び明度調整部22において調整されたものを(L
C,a
C,b
C)とする。
【0047】
コード調整部20は、二次元コードの調整を行う。コード調整部20は、初期の二次元コードを生成する際には、コード仕様により決定されるデフォルトの二次元コードに対してコード調整を行って、ベース画像に基づいた初期の二次元コードを生成する。また、コード調整部は、コード試験部33において、画像付二次元コードの読取りが失敗した場合には、二次元コードの調整を行う。コード調整部20は、色彩調整部21と、明度調整部22と、透明度調整部23と、ドットサイズ調整部24とを備えている。
【0048】
色彩調整部21は、各セルについて、色情報算出部13で算出されたLab空間情報のうち色彩に関する情報「a
1」、「b
1」を用いて、「a
C」、「b
C」を決定する。色彩調整部21は、基本的には、ベース画像の色よりも、Lab空間において彩度方向に大きい値を決定するが、以下に詳細に説明するように、彩度方向に値を変えても人間の目に気付かれないであろう値を、近似MacAdam楕円を用いて求める。
【0049】
具体的には、色彩調整部21は、まず色情報算出部13で算出されたLab空間情報「a
1」、「b
1」の値を用いて、下記の式(1)、(2)によって、Lab空間上の座標(L
1,0,0)から、座標(L
1,a
1,b
1)へ向かうベクトルV
1の大きさ「R」、及びa軸とベクトルV
1のなす角のうち、a軸の正の部分からベクトルV
1に向けて反時計回りになす角「θ」を算出する。
R=(a
12+b
12)
0.5 ・・・(1)
θ=tan
-1(b
1/a
1) ・・・(2)
【0050】
次に、色彩調整部21は、Lab空間上の座標(L
1,a
1,b
1)が、いかなる近似MacAdam楕円上に存在するかを算出する。なお、近似MacAdam楕円の算出には既存の技術を採用することができる。
【0051】
ここで、座標(L
1,a
1,b
1)が存在する近似MacAdam楕円をC
1とし、C
1に隣接してLab空間上の座標(L
1,a
1,b
1)からベクトルV
1方向に伸びる線分に最初に円周が交わる楕円をC
Cとする。この線分と近似MacAdam楕円C
Cとの交点、又は、交点の間の任意の座標を(L
1,a
C,b
C)とする。なお、この線分が近似MacAdam楕円C
Cの接線となる場合は、接点を座標(L
1,a
C,b
C)とする。この「a
C」、「b
C」が、色彩調整部21で各セルの色彩を調整した値となる。
【0052】
図4は、座標(L
1,a
1,b
1)と座標(L
1,a
C,b
C)の位置関係を示した図である。色彩調整部21は、座標(L
1,a
C,b
C)を以下の式(3)、(4)で算出することができる。
a
C=a
1+(cosθ×R´) ・・・(3)
b
C=b
1+(sinθ×R´) ・・・(4)
なお、ここで、R´は、座標(L
1,a
1,b
1)と座標(L
1,a
C,b
C)との距離である。R´の値は、色彩用ルックアップテーブルに記憶されている情報を用いることによって、または任意の変換式を用いることによって算出してもよい。
【0053】
色彩調整部21で算出した色情報のLab空間上の座標(L
1,a
C,b
C)は、座標(L
1,a
1+(cosθ×R´),b
1+(sinθ×R´))と表すことができる。この「a
C」、「b
C」の値が、コード仕様決定部12で求めた二次元コードの各セルの色彩となる。
【0054】
色彩調整部21は、コード試験部33による読取り失敗に続いて行うコード調整の際には、画像付二次元コード生成部32で生成された画像付二次元コードの各ドットの色彩のパラメータであるaとbを、背景の前記ベース画像の色よりも、Lab空間において彩度方向に所定の値だけ大きくなるように調整を行う。すなわち、前記式(3)、(4)におけるR´の値を大きくすることにより調整を行う。調整後のR´の値は、例えば所与の値とするなど、適宜設定してよい。
【0055】
明度調整部22は、色情報算出部13で取得されたLab空間情報のうち、明度に関する「L
1」の情報を用いて、各セルの明度「L
C」を求める。具体的には、黒セルの場合には、以下の式(5)のように、基準となるセルの明度「L
1」よりも明度が低くなるようにΔLを設定することにより、白セルの場合には、以下の式(6)のように、基準となるセルの明度「L
1」よりも明度が高くなるように、ΔLを設定することにより、各セルの明度「L
C」を算出する。
黒セルの場合 L
C=L
1−ΔL ・・・(5)
白セルの場合 L
C=L
1+ΔL ・・・(6)
【0056】
図5(a)及び
図5(b)は、明度調整部22で行われるQRコードの明度変換処理の例である。
図5(a)、
図5(b)の縦軸は、明度変換処理をされるQRコード中の各明度に対応するセルの個数、横軸は、明度(Lの値)を示す。なお、明度の値が「0」の場合は黒色、明度の値が「100」の場合は白色となる。
【0057】
明度調整部22が用いるΔLの値は任意の手段で設定されたものでよく、例えば、固定値を用いるものであってもよいし、変換式を用いるものであってもよいし、また、明度用ルックアップテーブルに記憶されている情報を用いるものであってもよい。なお、ΔLの値は、印刷、コンピュータ画面上への表示等といった用途別に異なる値を設定してもよい。
【0058】
明度調整部22は、コード試験部33による読取り失敗に続いて行うコード調整の際には、画像付二次元コード生成部32で生成された画像付二次元コードにおける各ドットの明度のパラメータであるΔLを、背景の前記ベース画像の明度との差が大きくなるように調整を行う。すなわち、前記式(5)、(6)におけるΔLの値を大きくすることにより調整を行う。調整後のΔLの値は、所与の値とするなど、適宜設定してよい。
【0059】
透明度調整部23は、二次元コードの各ドットの透明度を決定する。透明度は、例えば、所与の値を設定することとしてもよいし、色情報に基づいて決定することとしてもよい。
【0060】
透明度調整部23は、コード試験部33による読取り失敗に続いて行うコード調整の際には、画像付二次元コード生成部32で生成された画像付二次元コードにおける各ドットの透明度(透過度)のパラメータであるαを、1.0に近くなるように調整を行う。αの調整方法は、透明度用ルックアップテーブルを用いてもよく、また、変換式を用いてもよい。なお、αが1.0に近くなるほど透明度は低くなり、画像付二次元コードの読取り性能が高まる。調整後のαの値は用途(印刷、コンピュータ画面上への表示等)に従って異なる固定値を用いてもよいし、変換式を用いてもよい。
【0061】
ドットサイズ調整部24は、二次元コードの各ドットのサイズを決定する。ドットサイズは、例えば、所与の値としてもよいし、色情報やコード仕様等に基づいて決定することとしてもよい。
【0062】
ドットサイズ調整部24は、コード試験部33による読取り失敗に続いて行うコード調整の際には、二次元コードの各セルのドットのサイズを大きくするように調整を行う。なお、ドットとは、二次元コード上の各セルにおいて白セル、黒セルが表示される領域のことをいう。ドットサイズの調整は、任意の手段で行うものでよく、ドットの形状を変化させずに拡大して面積を増加させてもよいし、ドットの形を正方形から円形に変換する等、形状の変換を伴うものでもよい。なお、ドットのサイズを大きくする調整には既存の技術(例えば特許文献1の技術)を採用することができる。
【0063】
二次元コード生成部10は、コード化情報取得部11にて取得したコード情報を、コード仕様決定部12にて決定された仕様でコード化するとともに、コード調整部20にて調整した色彩、明度、透明度、およびドットサイズにて各ドットを生成することにより、二次元コードを生成する。なお、本実施の形態では、二次元コード生成部10の中にコード調整部20が含まれる構成を例として説明しているが、二次元コード生成部10とコード調整部20とは別構成であってもよい。その場合、二次元コード生成部10は、色彩、明度、透明度、及びドットサイズを決定する手段を備える。
【0064】
画像付二次元コード生成部32は、二次元コード生成部10から二次元コードを取得し、これを画像加工部31から取得したベース画像に適用することで画像付二次元コードを生成する。二次元コードをベース画像に適用する技術としては既存の技術(例えば特開2009−104451号の技術)を採用することができる。
【0065】
コード試験部33は、画像付二次元コード生成部32において生成された画像付二次元コードの読取りの可否を試験する。具体的には、任意の二次元コード読取りソフトに画像付二次元コードを入力して、画像付二次元コードの読取りが可能か否かを試験する。
【0066】
コード試験部33において、画像付二次元コードの読取りが成功した場合には、画像付二次元コード生成部32において生成された画像付二次元コードを出力する。この場合には、コード生成部15で生成された画像付二次元コードは、プリンタ等の印刷装置によって所定の媒体に印刷され、又は表示装置によって表示される。
【0067】
コード試験部33は、画像付二次元コードの読取りに失敗した場合には、コード調整部20にてコードの調整を行った後の画像付二次元コードの読取りを行う。コード調整部20におけるコード調整およびコード試験部33による試験は、コード試験部33での読取りが成功するまで繰り返される。
【0068】
コード調整部20は、コード試験部33の結果に応じて画像付二次元コードの二次元コードの色彩、明度、透明度、および二次元コードを構成するドットのサイズのうちの少なくとも一つのパラメータを調整する。いかなるパラメータを用いてコード調整を行うかは、適宜設定することができる。例えば、予め優先順位を設定しておいてもよく、さらに、優先順位は、ベース画像の色情報等に応じて代えてもよい。また、用途別に任意の基準を用いるなどしてもよい。
【0069】
図6は、第1の実施の形態の画像付二次元コード生成装置1の動作を示すフローチャートである。画像取得部30は画像付二次元コードを生成する際のベース画像の元となる原画像を取得する(S10)。また、コード化情報取得部11は、コード化する情報を取得し(S11)、コード仕様決定部12は、コード化情報から生成する二次元コードのコードパターン、バージョン、サイズの情報を決定する(S12)。
【0070】
次に、画像加工部31は、画像取得部30で取得された原画像のサイズとコード仕様決定部12で取得された二次元コードのサイズに合わせるように原画像を加工してベース画像を生成する(S13)。
【0071】
色情報算出部13は、コード仕様決定部12で決定されたコードパターン、バージョン、セルサイズと、画像加工部31で生成されたベース画像とを取得すると、ベース画像の各セルの位置に対応する色情報を抽出し、これを変換したLab空間情報を算出する(S14)。そして、このLab空間情報を用いて、色彩調整部21がドットの色彩を決定し(S15)、明度調整部22がドットの明度を決定する(S16)。続いて、透明度調整部23は、二次元コードの各ドットの透明度を決定し(S17)、ドットサイズ調整部24は、二次元コードのドットサイズを決定する(S18)。そして、二次元コード生成部10は、コード化情報取得部11にて取得した情報を、コード仕様決定部12にて決定された仕様でコード化するとともに、決定された色彩、明度、透明度、及びドットサイズにて各ドットを生成することにより、二次元コードを生成する(S19)。
【0072】
次に、画像付二次元コード生成部32は、画像加工部31からベース画像を、二次元コード生成部10から二次元コードを取得し、画像付二次元コードを生成する(S20)。コード試験部33は、この画像付二次元コードの読取りの可否を、任意の二次元コード読取りソフトを用いて試験する(S21)。この試験において読取りが成功した場合には(S22でYES)、画像付二次元コード生成装置1は、読取りが成功した画像付二次元コードを出力する(S24)。
【0073】
この試験において読取りが失敗した場合には(S22でNO)、画像付二次元コードに対して、二次元コードの調整を行う(S23)。二次元コードの調整は、色彩調整部21における色彩調整、明度調整部22における明度調整、透明度調整部23における透明度調整、ドットサイズ調整部24におけるドットサイズ調整のうちの少なくとも1つが行われる。そして、コード調整された二次元コードをベース画像に適用して画像付二次元コードを生成し(S20)、新しい画像付二次元コードをコード試験部33にて読取り試験を行う(S21)。この調整および試験の処理は、コード試験部33での読取り試験が成功するまで繰り返される。以上、第1の実施の形態の画像付二次元コード生成装置1の構成および動作について説明した。
【0074】
第1の実施の形態の画像付二次元コード生成装置1は、二次元コード生成部10にて初期の二次元コードを生成し、コード試験部33にて二次元コードの読取り試験を行う。この読取り試験に成功しなかった場合には、コード調整部20が、初期の二次元コードから徐々に読取りの成功率を高める方向に、二次元コードの色彩、明度、透明度、ドットサイズの少なくとも1つのパラメータを変更し、読取り試験を行う処理を繰り返し、読取りが成功したところで、画像付二次元コードの生成を完了し、出力する。したがって、デザイン性の低下を最小限に抑え、読取り可能な画像付二次元バーコードを生成することができる。
【0075】
(第2の実施の形態)
図7は、本発明の第2の実施の形態の画像付二次元コード生成装置2の構成を示す図である。第2の実施の形態の基本的な構成は第1の実施の形態と同じであるが、デザイン上重要性の高い領域(以下、「デザイン領域」という)に対して、二次元コードのドットが目立たないように、その他の領域とは異なるパラメータを用いてコード調整を行う点が異なる。第2の実施の形態の画像付二次元コード生成装置2は、第1の実施の形態の構成に加えて、デザイン領域情報取得部14と、デザイン領域検出部15と、デザイン領域設定部16とをさらに備える。
【0076】
デザイン領域情報取得部14は、デザイン領域として設定すべき領域を指定する領域情報を取得する。領域情報は、デザイン上重要であると考えられる領域を特定する情報であり、例えば、顔の部分、目及び口の部分、というような情報である。デザイン領域情報取得部14は、任意の手段で情報を取得してよく、外部から取得してもよいし、記憶領域から読み出すことで取得してもよい。
【0077】
デザイン領域検出部15は、画像加工部31からベース画像を取得し、ベース画像の中から、領域情報で指定された領域を検出し、検出した領域に対応する二次元コードの領域を特定する。
【0078】
図8は、ベース画像の中からデザイン領域を検出した例を示す図である。
図8において、領域情報は「顔」であり、ベース画像における人物の顔に当たる領域111(斜線で示した領域)がデザイン領域として特定されている。デザイン領域設定部16は、デザイン領域検出部15にて特定された二次元コードの領域をデザイン領域として設定する。
【0079】
色彩調整部21、明度調整部22、透明度調整部23、及びドットサイズ調整部24は、デザイン領域設定部16から、デザイン領域の情報を取得し、デザイン領域とその他の領域に異なるパラメータを用いて色彩調整、明度調整、透明度調整、ドットサイズ調整を順次行う。デザイン領域は他の領域に比べてデザイン性を重視し、二次元コードのドットが目立たないように調整する。
【0080】
図9は、第2の実施の形態の画像付二次元コード生成装置2の動作を示すフローチャートである。まず、画像取得部30は、ベース画像の元となる原画像を取得すると共に(S30)、デザイン領域情報取得部14は、特定すべきデザイン領域を指定する領域情報を取得する(S31)。続いて、デザイン領域検出部15は、ベース画像中から、領域情報にて指定される領域を検出し(S32)、デザイン領域設定部16が、検出されたデザイン領域に対応する二次元コードの領域を設定する(S33)。
【0081】
次に、コード化情報取得部11は、コード化する情報を取得し(S34)、コード仕様決定部12が、コード化情報から生成する二次元コードのコードパターン、バージョン、サイズの情報を決定する(S35)。
【0082】
次に、画像加工部31は、画像取得部30で取得された原画像のサイズとコード仕様決定部12で取得された二次元コードのサイズに合わせるように原画像を加工してベース画像を生成する(S36)。
【0083】
続いて、色情報算出部13は、コード仕様決定部12で決定されたコードパターン、バージョン、セルサイズと、画像加工部31で生成されたベース画像とを取得すると、ベース画像の各セルの位置に対応する色情報を抽出し、これを変換したLab空間情報を算出する(S37)。そして、このLab空間情報を用いて色彩および明度を決定すると共に、透明度およびドットサイズを決定する(S38)。この際、画像付二次元コード生成装置2は、デザイン領域とその他の領域とで、設定する色彩、明度、透明度およびドットサイズを変える。デザイン領域の方がその他の領域よりもベース画像が見えやすいように、例えば、ベース画像との明度差を小さくしたり、透明度を高くしたり、あるいはドットサイズを小さくする。
【0084】
二次元コード生成部10は、こうして設定された色彩、明度、透明度及びドットサイズのパラメータを用いて、入力されたコード化情報をコード化した二次元コードを生成する(S39)。
【0085】
次に、画像付二次元コード生成部11は、画像加工部31からベース画像を、二次元コード生成部10から二次元コードを取得し、画像付二次元コードを生成する(S40)。コード試験部33は、この画像付二次元コードの読取りの可否を、任意の二次元コード読取りソフトを用いて試験する(S41)。この結果、二次元コードの読取りが成功した場合には(S42でYES)、画像付二次元コード生成装置2は、画像付二次元コードを出力する(S44)。
【0086】
この試験による読取りが失敗した場合には(S42でNO)、コード調整部20にて、色彩、明度、透明度、及びドットサイズのいずれかのパラメータを、二次元コードの読取りの成功率が高くなる方向に変更し(S43)、画像付き二次元コードを生成し(S40)、コード試験を行う。画像付二次元コード生成装置2は、コード試験(S41)およびコード調整(S43)の処理を、読取りがOKになるまで(S42でYESになるまで)、繰り返し行う。
【0087】
第2の実施の形態では、二次元コードに対してデザイン領域を設定し、デザイン領域に対して他の領域よりもベース画像が見えやすいドットを生成することにより、例えば、人物の顔や目など、デザイン上重要な領域については、ベース画像が見えやすいデザイン性の高い画像付二次元コードを生成することができる。
【0088】
(第3の実施の形態)
図10は、本発明の第3の実施の形態の画像付二次元コード生成装置3の構成を示す図である。第3の実施の形態の基本的な構成は第2の実施の形態と同じであるが、ベース画像の見えやすい二次元コードを用いるデザイン領域に代えて、ドットを形成しないマスク領域を設定する点が異なる。第3の実施の形態の画像付二次元コード生成装置3は、第2の実施の形態のデザイン領域情報取得部14、デザイン領域検出部15、及びデザイン領域設定部16に代えて、マスク領域情報取得部17、マスク領域検出部18、及びマスク領域設定部19を備えている。
【0089】
マスク領域情報取得部17は、マスク領域として設定すべき領域を指定する領域情報を取得する。領域情報は、二次元コードのドットを持たない領域を特定する情報である。マスク領域情報取得部17は、任意の手段で情報を取得してよく、外部から取得してもよいし、記憶領域から読み出すことで取得してもよい。
【0090】
マスク領域検出部18は、画像加工部31からベース画像を取得し、ベース画像の中から、領域情報で指定された領域を検出し、検出した領域に対応する二次元コードの領域を特定する。領域情報として顔の部分が特定された場合には、マスク領域は、例えば、
図8に示すデザイン領域と同様に特定される。
【0091】
なお、マスク領域設定部19は、マスク領域検出部18にて検出されたマスク領域、及びコード仕様決定部12が決定したコード仕様に基づいて、マスク領域を設定する。なお、マスク領域を設定するに際しては、二次元コードの読取りに際して二次元コードの切り出しや誤り訂正に支障のないように、まず、マスク許容領域を設定し、その中でマスク領域を設定することが好ましい。
【0092】
画像付二次元コード生成部11は、二次元コード生成部20からマスク領域が設定された二次元コードを、画像加工部31からベース画像を取得し、マスク領域が設定された画像付二次元コードを生成する。
【0093】
図11は、第3の実施の形態の画像付二次元コード生成装置3の動作を示すフローチャートである。画像取得部30は、ベース画像の元となる原画像を取得すると共に(S50)、マスク領域情報取得部17は、特定すべきマスク領域を指定する領域情報を取得する(S51)。続いて、マスク領域検出部18は、ベース画像の中から、領域情報にて指定される領域を検出し(S52)、マスク領域設定部19が、検出されたマスク領域に対応する二次元コードの領域を設定する(S53)。
【0094】
次に、コード化情報取得部11は、コード化する情報を取得し(S54)、コード仕様決定部12が、コード化情報から生成する二次元コードのコードパターン、バージョン、サイズの情報を決定する(S55)。
【0095】
次に、画像加工部31は、画像取得部30で取得された原画像のサイズをコード仕様決定部12で取得された二次元コードのサイズに合わせるように原画像を加工してベース画像を生成する(S56)。
【0096】
続いて、色情報算出部13は、コード仕様決定部12で決定されたコードパターン、バージョン、セルサイズと、画像加工部31で生成されたベース画像とを取得すると、ベース画像の各セルの位置に対応する色情報を抽出し、これを変換したLab空間情報を算出する(S57)。そして、このLab空間情報を用いて色彩および明度を決定すると共に、透明度及びドットサイズを決定する(S58)。
【0097】
こうして設定された色彩、明度、透明度及びドットサイズのパラメータを用いて、入力されたコード化情報をコード化した二次元コードを生成する(S59)。この際、画像付二次元コード生成装置3は、マスク領域には、ドットを生成しない。
【0098】
以下の動作は、第2の実施の形態の画像付二次元コード生成装置2と同様であり、コード試験(S60)とコード調整(S63)とを、コード試験による読取りが成功するまで行い、読取りが成功した場合に(S62でYES)、画像付二次元コードを出力する(S64)。以上、第3の実施の形態の画像付二次元コード生成装置3の構成及び動作について説明した。
【0099】
第3の実施の形態では、二次元コードが生成されないマスク領域を設けることにより、全ての領域に二次元コードが生成される画像付二次元コードに比べてデザイン性の高い画像付二次元コードを生成することができる。
【0100】
(その他の実施の形態)
上記した実施の形態では、色彩調整部21、明度調整部22、透明度調整部23、ドットサイズ調整部24の順にコード調整を行っているが、この順序は異なるものであってもよい。また、本発明の画像付二次元コード生成装置は、色彩調整部21、明度調整部22、透明度調整部23、ドットサイズ調整部24をすべて備える必要はなく、これらのうちの一又は複数の構成を備えないものであってもよい。また、本発明の画像付二次元コード生成装置は、デザイン領域設定部16と、マスク領域設定部19とを共に備えるものであってもよい。
【0101】
上記した実施の形態において、用途別に異なるパラメータ調整を行うこととしてもよい。例えば、
図12(a)はモニタに表示する画像付二次元コードの例、
図12(b)は印刷して用いる画像付二次元コードの例を示す図である。
図12(a)に比べて
図12(b)の方が、黒セルの明度が低く(暗く)、白セルの明度が高く(明るく)なっており、明度差の大きい二次元コードが適用されている。このように用途に応じて異なるパラメータを用いることによって、読取りが可能な範囲でデザイン性の高い画像付二次元コードを生成することができる。
【0102】
上記した実施の形態では、コード調整部20が自動で色彩、明度、透明度及びドットサイズを調整する例を挙げて説明したが、コード調整は人が手動で行うこととしてもよい。