【文献】
小室 重行 他,色成分の時間変調に基づく不可視QRコード,マルチメディア,分散,協調とモバイル(DICOMO2013)シンポジウム論文集,一般社団法人情報処理学会,2013年 7月 3日,vol.2013, no.2,pp.1690-1694
(58)【調査した分野】(Int.Cl.,DB名)
前記生成部は、前記コード情報の少なくとも一部と重なる位置の前記背景画像の画素値を、前記画素値を中心として所定の方向に変動させることで、前記コード画像を生成する
請求項1記載の情報処理装置。
前記表示部は、前記コード画像が表示されてから所定時間以上、前記ユーザによって前記表示部に対する操作が行われない場合、前記コード画像に代えて前記背景画像を表示する
請求項6記載の情報処理装置。
前記生成部は、前記コード情報が前記背景画像への埋め込みに適さない場合、前記データドットによって保持される情報の同一性を維持した状態で、前記データドットの配置を変更する
請求項13記載の情報処理装置。
請求項1乃至16のいずれか一項に記載の前記コード画像を、前記情報処理装置に読み取らせる、または表示させるプログラムを記憶するコンピュータ読み取り可能な非一時的記憶媒体。
【発明を実施するための形態】
【0010】
以下、実施形態の情報処理装置、表示方法、読取方法、およびコンピュータ読み取り可能な非一時的記憶媒体を、図面を参照して説明する。
【0011】
(第1の実施形態)
<情報処理システムの全体構成>
図1は、第1の実施形態に係る情報処理システムの全体構成を示す図である。情報処理システムは、デスクトップコンピュータ10と、複数の携帯端末装置20aおよび20bと、サーバ30とを備える。デスクトップコンピュータ10、複数の携帯端末装置20aおよび20b、およびサーバ30は、ネットワークNを介して互いに通信可能に接続されている。
【0012】
ネットワークNは、例えば、WAN(Wide Area Network)、LAN(Local Area Network)、インターネット、プロバイダ装置、無線基地局、専用回線などのうちの一部または全部を含む。携帯端末装置20aおよび20bは、例えば、タブレットコンピュータまたはスマートフォンである。携帯端末装置20aおよび20bは、ワイヤレス通信W行うことで、ネットワークNを介してデスクトップコンピュータ10およびサーバ30と通信する。
【0013】
デスクトップコンピュータ10には、画像を表示するディスプレイD1が接続されている。詳細は後述するが、携帯端末装置20aに設けられたカメラは、携帯端末装置20bのディスプレイD2に表示された2次元コードを撮影する。携帯端末装置20aおよび20bは、同じ構成を備えている。以下、携帯端末装置20aおよび20bを区別しない場合は、単に携帯端末装置20と称する。
【0014】
便宜上、情報を要求するコンピュータをクライアント、情報の要求に応じて情報を送信するコンピュータをサーバと称する。本実施形態においては、デスクトップコンピュータ10はサーバまたはクライアントとして機能し、携帯端末装置20aおよび20bは主にクライアントとして機能し、サーバ30は主にサーバとして機能する。
【0015】
図2は、第1の実施形態に係るデスクトップコンピュータ10、携帯端末装置20、およびサーバ30を示すブロック図である。デスクトップコンピュータ10は、CPU(Central Processing Unit)11と、メモリ12と、バス13と、ストレージ14とを備える。
【0016】
CPU11およびメモリ12は、互いにバス13で接続されている。CPU11は、プログラムに従ってバス13を介してメモリ12に格納された情報にアクセスする。メモリ12は、RAM(Random Access Memory)であるが、これに限られない。例えば、メモリ12は、フラッシュメモリ等の他の種類のメモリであってもよい。メモリ12は、CPU11によって処理される情報を一時的に格納する。
【0017】
CPU11は、ストレージ14に対して各種情報の読み出しおよび書き込みを行う。ストレージ14は、例えば、HDD(Hard Disk Drive)であるが、これに限られない。例えば、ストレージ14は、NAS(Network Attached Storage)や外部のストレージサーバなど、デスクトップコンピュータ10がアクセス可能な外部装置であってもよい。
【0018】
デスクトップコンピュータ10は、メモリ12に代えてストレージ14に情報を記憶してもよい。また、デスクトップコンピュータ10のアーキテクチャーの変化に応じて、メモリおよびストレージ等の代替物が用いられてもよい。
【0019】
携帯端末装置20は、CPU21と、メモリ22と、バス23と、カメラ24と、ディスプレイD2(
図1参照)とを備える。CPU21は、プログラムに従ってバス23を介してメモリ22に格納された情報にアクセスする。メモリ22はRAMであるが、これに限られない。例えば、メモリ22は、フラッシュメモリ等の他の種類のメモリであってもよい。メモリ22は、CPU11によって処理される情報を一時的に格納する。
【0020】
カメラ24は、他の携帯端末装置のディスプレイに表示される画像を読み取り(スキャン)、読み取った画像を、バス23を介してCPU21に出力する。詳細は後述するが、CPU21は、カメラ24から出力された画像に対して画像処理を行う。
【0021】
サーバ30は、CPU31と、メモリ32と、バス33と、ストレージ34とを備える。CPU31は、プログラムに従ってバス33を介してメモリ32に格納された情報にアクセスする。メモリ32はRAMであるが、これに限られない。例えば、メモリ32は、フラッシュメモリ等の他の種類のメモリであってもよい。メモリ32は、CPU31によって処理される情報を一時的に格納する。
【0022】
CPU31は、ストレージ34に対して各種情報の読み出しおよび書き込みを行う。ストレージ34は、例えば、HDDであるが、これに限られない。例えば、ストレージ34は、NASや外部のストレージサーバなど、サーバ30がアクセス可能な外部装置であってもよい。
【0023】
なお、デスクトップコンピュータ10およびサーバ30は、携帯端末装置20と同様に、画像を撮影するカメラが接続されてもよい。また、サーバ30は、デスクトップコンピュータ10および携帯端末装置20と同様に、ディスプレイを備えてもよい。
【0024】
<不可視コード>
一般に、0.03[秒]未満の画像の点滅は、肉眼では認識され難い。言い換えると、33[Hz]を超える周波数の画像の点滅は、肉眼では認識され難い。33[Hz]を超える周波数で画像が点滅する場合、明暗の差が大きな目立ちやすい画像が点滅する場合であっても、肉眼で認識され難い。このため、明暗の差が小さければ、点滅の周波数が33[Hz]よりも少し低くても、画像の点滅を肉眼で認識され難い状態を作り出すことができる。このように、肉眼で認識され難い状態を、本実施形態において「不可視」と称する。
【0025】
図3は、第1の実施形態に係る不可視コードが埋め込まれたコード画像60の一例を示す図である。以下、
図3を参照して、コード画像60の生成方法について説明する。コード画像60は、第1のフレーム画像60aと第2のフレーム画像60bが交互に切り替わる画像である。コード画像60は、背景画像40にコード情報50を不可視状態で埋め込むことで生成される。以下、不可視状態で背景画像40に埋め込まれたコード情報50を、「不可視コード」と称する。
【0026】
背景画像40は、ユーザによって指定された任意の画像であるが、これに限られない。例えば、背景画像40は、アプリケーションソフトの操作画面として表示される画像であってもよい。コード情報50は、QRコード(登録商標)であるが、これに限られない。例えば、コード情報50は、DataMatrix(登録商標)やVeriCode(登録商標)などの他の2次元コードであってもよいし、バーコード等の一次元コードであってもよい。コード情報50は、ユーザによって指定されたデータ(例えば、メッセンジャーソフトウェアのアカウント情報や、ソーシャルネットワーキングサービスのアカウント情報)がコード化された情報である。
【0027】
コード情報50には、位置検出用マーカ51と、姿勢補正用マーカ52と、データドット53とが含まれる。位置検出用マーカ51は、コード情報50の位置を検出するために用いられるマーカであり、コード情報50の3つの角に配置される。姿勢補正用マーカ52は、読取部としてのカメラ24によって読み取られたコード情報50の姿勢を補正するために用いられるマーカである。データドット53は、アカウント情報等のユーザによって指定された情報を保持するドットである。
【0028】
カメラ24は携帯端末装置20に設けられているため、カメラ24によって撮影された画像には手ぶれが発生する可能性がある。このため、データドット53には、リードソロモン符号等の誤り訂正符号が含まれる。ロバスト性を確保するため、15%以上の誤り訂正率を有する誤り訂正符号を採用する。なお、30%以上の誤り訂正率を有する誤り訂正符号を採用することが好ましい。
【0029】
携帯端末装置20のCPU21は、背景画像40とコード情報50とを取得する。CPU21は、取得した背景画像40およびコード情報50に基づき、第1のフレーム画像60aおよび第2のフレーム画像60bを生成する。例えば、CPU21は、コード情報50と重なる位置の背景画像40の画素の明度を低くすることで、第1のフレーム画像60aを生成する。また、CPU21は、コード情報50と重なる位置の背景画像40の画素の明度を高くすることで、第2のフレーム画像60bを生成する。CPU21は、第1のフレーム画像60aおよび第2のフレーム画像60bが0.03[秒]未満の間隔で交互に切り替わる画像を、コード画像60として生成する。
【0030】
前述したように、0.03[秒]未満の画像の点滅は、肉眼で認識され難い。このため、第1のフレーム画像60aおよび第2のフレーム画像60bが0.03[秒]未満の間隔で交互に切り替わると、第1のフレーム画像60aおよび第2のフレーム画像60bの明度の平均がコード画像60の明度として肉眼によって認識される。このため、コード情報50が背景画像40に埋め込まれても、背景画像40のデザイン性が損なわれることが低減される。
【0031】
単純に背景画像40にコード情報50が重畳されると、コード情報50が目立ってしまい画像のデザイン性が損なわれる。このため、CPU21は、第1のフレーム画像60aと第2のフレーム画像60bとを0.03[秒]未満の間隔で交互に切り替える。これによって、コード情報50が肉眼では不可視な状態となる。言い換えると、第1のフレーム画像60aと第2のフレーム画像60bとが交互に表示されているにも関わらず、肉眼では背景画像40とコード画像60とを区別することができないこととなる。
【0032】
<コード画像の表示処理>
図4は、第1の実施形態に係るコード画像60の表示処理を示すフローチャートである。
図4を用いて、携帯端末装置20によって生成されるコード画像60の表示処理を詳細に説明する。
【0033】
携帯端末装置20のCPU21は、ユーザによって指定されたデータを取得する(S101)。例えば、ユーザによって指定されたデータは、メッセンジャーソフトウェアのアカウント情報、ソーシャルネットワーキングサービスのアカウント情報、サーバのURL、自身の連絡先データ等である。CPU21は、取得したデータに基づきコード情報50を生成する(S102)。生成されるコードは、ユーザに提示してもしなくてもよい。
【0034】
次に、取得部としてのCPU21は、背景画像40を取得する。例えば、CPU21は、メモリ22またはカメラ24から背景画像40を取得する(S103)。
【0035】
背景画像40に高周波成分が多く含まれると、不可視コードの抽出が困難になる。このため、CPU21は、背景画像40に対してフーリエ変換を行うことにより、背景画像40の周波数特性を算出する(S104)。その後、CPU21は、算出した背景画像40の空間周波数が所定値以上か否かを判定する(S105)。CPU21は、算出した背景画像40の空間周波数が所定値以上でないと判定した場合、後述するS107に処理を進める。
【0036】
一方、CPU21は、算出した背景画像40の周波数が所定値以上であると判定した場合、背景画像40に含まれる空間周波数が所定値以上の成分を除去する(S106)。なお、CPU21は、高周波成分が除去された背景画像40と、高周波成分が除去される前の背景画像40の両方を、メモリ22に保持してもよい。
【0037】
例えば、CPU21は、背景画像40に対してフィルタ処理を行うことによって、背景画像40に含まれる空間周波数が所定値以上の成分を除去する。具体的に、CPU21は、以下の式(1)に基づいて、背景画像40の座標(i,j)に対してフィルタ処理を行う。ここで、X
i,jはフィルタ処理前の画素値を示し、Y
i,jはフィルタ処理後の画素値を示す。
【0039】
背景画像40に空間周波数が高い成分が含まれていると、背景画像40の撮影時に手ぶれの影響を受けやすい。このため、背景画像40がぶれてしまうと、不可視コードを抽出するのが困難となる。このため、CPU21は、背景画像40に対してフィルタ処理を行うことにより、空間周波数が所定値以上の成分が除去する。これによって、手ぶれの影響を低減することができる。
【0040】
その後、CPU21は、コード情報50と背景画像40とを用いて、後述するコード画像生成処理を行う(S107)。コード画像生成処理において、生成部としてのCPU21は、背景画像40にコード情報50を不可視状態で埋め込むことで、コード画像60を生成する。詳細は後述するが、CPU21は、コード情報50と重なる位置の背景画像40の画素値を変動させることで、背景画像40にコード情報50を不可視状態で埋め込む。CPU21は、生成したコード画像60を表示部としてのディスプレイD2に表示し(S108)、本フローチャートによる処理を終了する。
【0041】
図5は、第1の実施形態に係るコード画像生成処理を示すフローチャートである。
図5に示されるフローチャートは、
図4のS107の処理を詳細に示す。
【0042】
まず、CPU21は、背景画像40およびコード情報50を解析する(S201)。例えば、CPU21は、コード情報50が配置される位置の背景画像40の色データを取得するとともに、取得した色データのRGB値を取得する。CPU21は、取得したRGB値に基づき、コード情報50が背景画像40への埋め込みに適するか否かを判定する。例えば、CPU21は、コード情報50が配置される位置の背景画像40の色データのうち、過半数がコード情報50を埋め込むのに適さない場合、コード情報50が背景画像40への埋め込みに適さないと判定する。
【0043】
コード情報50を埋め込むのに適さない色データとは、色を変動させる余裕がない画素値を意味する。具体的には、画素値を8ビットRGBで表現した場合、(255,255,255)や(0,0,0)等が、コード情報50を埋め込むのに適さない色データに該当する。なお、画素値の変動方向として彩度方向を設定した場合には、彩度が限界値である画素値も、コード情報50を埋め込むのに適さない色データに該当する。
【0044】
画素値が表現範囲の限界値近傍である場合、画素値を変動させるための変動幅を十分に確保できない。このため、画素値を8ビットRGB(256諧調)で表現した場合、各RGB値と限界値(0または255)との差の総和が10程度確保できれば、コード情報50を背景画像40に好適に埋め込むことができる。
【0045】
CPU21は、コード情報50が背景画像40への埋め込みに適さないと判定した場合、背景画像40を考慮してコード情報50を再生成する(S202)。例えば、CPU21は、コード情報50の誤り訂正符号の余裕ビットを利用して、データドット53によって保持される情報の同一性を維持した状態で、データドット53の配置を変更する。これによって、CPU21は、コード情報50を再生成する。CPU21は、コード情報50を背景画像40に好適に埋め込むことができるまで、コード画像60の生成を繰り返す。
【0046】
次に、CPU21は、コード情報50の画素値の変動方向および変動幅を決定する(S203)。本実施形態においては、CPU21は、コード情報50の画素値を中心として色相上で相補的な二色に画素値を変動させる。
【0047】
CPU21は、コード情報50と重なる位置の背景画像40の画像値を取得する(S204)。CPU21は、取得した画像値に対して、S203において決定された条件で画像処理を行う(S205)。
【0048】
例えば、CPU21は、S204において取得された画素値(R,G,B)を、HSVモデルにおける画素値(H,S,V)に変換する。ここで、H(Hue)は色相を示し、S(Saturation Chroma)は彩度を示し、V(Value Lightness Brightness)は明度を示す。なお、CPU21は、以下の式(2)〜式(4)に基づいて、画素値(R,G,B)を画素値(H,S,V)に変換する。ここで、MAXはRGBのうちの最大の値を示し、MINはRGBのうちの最小の値を示す。
【0052】
CPU21は、変換した画素値(H,S,V)に対し、彩度方向の画素値から5が減算された色データAと、彩度方向の画素値に5が加算された色データBとを生成する。すなわち、色データAは(H,S−5,V)であり、色データBは(H,S+5,V)である。なお、本実施形態においては画素値の変動幅を5としたが、これに限られない。
【0053】
CPU21は、コード情報50と重なる位置の背景画像40の画素値を変動させることによって、第1のフレーム画像と第2のフレーム画像とを生成する。CPU21は、生成した第1のフレーム画像と第2のフレーム画像とを0.03[秒]未満の間隔で交互に切り替えることにより、不可視コードが埋め込まれたコード画像60(動画)を生成する(S206)。言い換えると、CPU21は、生成した第1のフレーム画像と第2のフレーム画像とを30[Hz]より高い周波数で交互に切り替えることにより、不可視コードが埋め込まれたコード画像60(動画)を生成する。
【0054】
その後、CPU21は、前述の
図4のS108に処理を進める。CPU21は、生成した不可視コードが埋め込まれたコード画像60(動画)をディスプレイD2に表示する。これによって、コード情報50を不可視状態で背景画像40に埋め込むことができる。
【0055】
以上説明したように、CPU21は、フィルタ処理が行われた背景画像40に、コード情報50が不可視状態で埋め込まれたコード画像60を生成する。具体的に、CPU21は、コード情報50と重なる位置の背景画像40の画素値を、この画素値を中心として所定の方向に変動させることで、コード画像60を生成する。これによって、スクリーンショットのような静止画をキャプチャーする方法を用いて、コード画像60を複製することを防止することができる。
【0056】
なお、本実施形態においては、RGBの画素値や、HSVモデルの画素値を用いることとしたが、これに限られない。例えば、HSL色空間の画素値や、L*a*b*(JIS Z 8730)の画素値を用いてもよい。
【0057】
<コード画像の読取処理>
図6は、第1の実施形態に係るコード画像60の読取処理を示すフローチャートである。
図6を用いて、携帯端末装置20によって生成されるコード画像60の読取処理を詳細に説明する。
【0058】
まず、携帯端末装置20のカメラ24は、他の携帯端末装置のディスプレイD2に表示されたコード画像60を撮影することで、コード画像60を取得する(S301)。取得されたコード画像60には、コード情報50と重なる位置の背景画像40の画素値が変動された複数のフレーム画像が含まれる。
【0059】
CPU21は、取得したコード画像60に含まれる複数のフレーム画像の中から、シャープネスが高いフレーム画像を抽出する(S302)。例えば、CPU21は、複数のフレーム画像の各々に対してフーリエ変換を行うことによって空間周波数を算出し、算出した空間周波数が最も高いフレーム画像を抽出する。
【0060】
CPU21は、抽出したフレーム画像から位置検出用マーカ51および姿勢補正用マーカ52を検出する(S303)。次に、CPU21は、検出した位置検出用マーカ51および姿勢補正用マーカ52を用いて、複数のフレーム画像を正規化する。具体的には、CPU21は、位置検出用マーカ51および姿勢補正用マーカ52を用いて、複数のフレーム画像に対して射影変換(ホモグラフィー変換)を行う(S304)。
【0061】
もし、コード画像60が表示されるディスプレイD2と正対するようにカメラ24を配置しなければ、正方形の2次元コードが歪んで撮像されてしまう。このため、CPU21は、複数のフレーム画像に対してホモグラフィー変換等の射影変換を行う。これによって、ヨー、ピッチ、ロール、軸ずれ等に起因する複数のフレーム画像の歪みが補正される。
【0062】
CPU21は、以下の式(5)に基づいてホモグラフィー変換を行う。ここで、(x
1、y
1)はホモグラフィー変換前の座標を示し、(x
2、y
2)はホモグラフィー変換後の座標を示す。a、b、c、d、e、f、g、h、およびiは、変換係数を示す。
【0064】
次に、抽出部としてのCPU21は、歪みが補正された複数のフレーム画像の画素値の差分を算出し、算出した差分に基づいて不可視コード(コード情報50)を抽出する(S305)。その後、CPU21は、抽出した不可視コードをデコードし(S306)、本フローチャートによる処理を終了する。
【0065】
以上説明したように、携帯端末装置20は、コード画像60を読み取るカメラ24と、カメラ24によって読み取られたコード画像60からコード情報50を抽出するCPU21とを有する。具体的に、カメラ24は、コード情報50と重なる位置の背景画像40の画素値が変動された複数のフレーム画像を含むコード画像を読み取る。CPU21は、カメラ24によって読み取られた複数のフレーム画像の差分に基づき、コード情報50(不可視コード)を抽出する。
【0066】
これによって、手ぶれが発生しやすい携帯端末装置20を用いた場合であっても、不可視コードの表示の精度および読み取りの精度を向上することができる。また、手ぶれによる読み取りエラーを低減できるため、不可視コードとして採用されるコード情報50のデータドットのサイズを小型化することができる。このため、携帯端末装置20のディスプレイD2のサイズが小さい場合であっても、読み取りに十分なデータ密度を確保することができる。
【0067】
(第2の実施形態)
第1の実施形態において、携帯端末装置20のCPU21は、背景画像40に含まれる空間周波数が所定値以上の成分を除去する処理(空間周波数調整)を行うこととした。これに対し、第2の実施形態において、CPU21は、空間周波数調整に加えて、背景画像40における画素値の表現幅を狭くする処理(表現幅調整)を行うこととする。以下、第2の実施形態について詳細に説明する。
【0068】
<背景画像に対する画像処理>
図7は、第2の実施形態に係る背景画像40に対して行われる画像処理を示す図である。ユーザによって指定される背景画像40は多種多様であり、不可視コードを埋め込むのに適していない背景画像40が指定される場合もある。このため、画像処理部としてのCPU21は、背景画像40に対して不可視コードを埋め込むのに適した形式に変換する画像処理を行う。
【0069】
背景画像40の画素値を8ビットRGBで表現した場合、RGBの各値が0近傍や255近傍の画素に不可視コードを埋め込むのは困難である。これは、コード情報50の画素値の変動幅を大きくすることができないためである。このため、CPU21は、RGBのうち、背景画像40における画素値の範囲が5〜250以内の色を特定し、特定した色を変動させる。
【0070】
一方、背景画像40における画素値の範囲が5〜250以内の色が存在しない場合、CPU21は、背景画像40における画素値の表現幅を狭くする処理(表現幅調整)を行う。例えば、CPU21は、表現幅調整において、0〜255の表現幅を5〜250まで狭くする。この場合、CPU21は、5未満の画素値を強制的に5にするとともに、250を超える画素値を強制的に250にする。
【0071】
CPU21は、背景画像40の全体に空間周波数調整および表現幅調整等の画像処理を行うが、これに限られない。例えば、CPU21は、コード情報50を埋め込む位置のみに、空間周波数調整および表現幅調整等の画像処理を行ってもよい。これによって、CPU21の計算時間を短縮することができる。
【0072】
以上説明したように、本実施形態において、CPU21は、空間周波数調整に加えて、背景画像40における画素値の表現幅を狭くする処理(表現幅調整)を行う。これによって、不可視コードを埋め込むのに適した形式に背景画像40を変換することができる。
【0073】
なお、本実施形態において、CPU21は、空間周波数調整および表現幅調整の一方を背景画像40に対して行ってもよいし、空間周波数調整および表現幅調整の両方を背景画像40に対して行ってもよい。また、CPU21は、これらの画像処理に加えて、他の画像処理を背景画像40に対して行ってもよい。
【0074】
(第3の実施形態)
第1および第2の実施形態において、携帯端末装置20のCPU21は、コード画像60をディスプレイD2に表示することとした。これに対し、第3の実施形態において、CPU21は、ディスプレイD2に対するユーザの操作に応じてディスプレイD2に表示される画像を切り替えることとする。ディスプレイD2に対するユーザの操作は、例えばディスプレイD2に対するタップ操作である。以下、第3の実施形態について詳細に説明する。
【0075】
<ディスプレイD2に表示される画像の切替処理>
第1のフレーム画像60aと第2のフレーム画像60bが交互に切り替わるコード画像60(動画)を高い周波数でディスプレイD2に表示し続けると、消費電力が大きくなる。一方、消費電力を小さくするために第1のフレーム画像60aと第2のフレーム画像60bを切り替える周波数を低くすると、第1のフレーム画像60aと第2のフレーム画像60bの切り替わり(点滅)が肉眼で認識される可能性がある。画像の切り替え(点滅)が肉眼で認識されると、ディスプレイD2に表示されたコード画像60に対して違和感が生じる。
【0076】
このため、本実施形態において、CPU21は、ディスプレイD2に対するユーザの操作に応じて、フレーム画像の切り替えが行われない背景画像40(静止画)をディスプレイD2に表示するか、フレーム画像の切り替えが行われるコード画像60(動画)をディスプレイD2に表示される画像を切り替える。
【0077】
図8〜
図10は、第3の実施形態に係る携帯端末装置20のディスプレイD2に表示される画像の一例を示す図である。ユーザによってディスプレイD2に対する操作が行われていない場合、
図8に示されるように、CPU21は、背景画像40に画像処理を行わず、背景画像40にコード情報50を付与しない。すなわち、ディスプレイD2は、表現幅が0〜255の背景画像40(静止画)を表示する。
【0078】
一方、ユーザによってディスプレイD2に対する操作が行われた場合、
図9に示されるように、CPU21は、背景画像40に画像処理を行うとともに、背景画像40にコード情報50を付与する。具体的に、CPU21は、背景画像40に前述の表現幅調整を行ってもよいし(背景A)、背景画像40に前述の空間周波数調整を行ってもよい(背景B)。また、背景画像40に埋め込まれるコード情報50の表現幅(変動幅)は、±5としてもよい。すなわち、ディスプレイD2に対してユーザの操作が行われた場合、ディスプレイD2は、背景画像40に代えて、背景画像40にコード情報50が不可視状態で埋め込まれたコード画像60(動画)を表示する。
【0079】
また、コード画像60を表示してから所定時間以上、ユーザによってディスプレイD2に対する操作が行われない場合、
図10に示されるように、CPU21は、背景画像40に画像処理を行わず、背景画像40にコード情報50を付与しない。すなわち、ディスプレイD2は、コード画像60(動画)に代えて、表現幅が0〜255の背景画像40(静止画)を表示する。
【0080】
ディスプレイD2がコード画像60を表示する場合、CPU21がディスプレイD2に対して高速でフレーム画像を切り替える命令を出力するため、消費電力が増大する。これに対し、本実施形態によれば、ユーザによってディスプレイD2に対する操作が行われてから所定時間だけ、ディスプレイD2がコード画像60を表示するため、消費電力を低減することができる。また、画像の切り替え(点滅)による違和感を低減することもできる。
【0081】
<表示画像の切替処理の具体的なフローチャート>
図11は、第3の実施形態に係る表示画像の切替処理を示すフローチャートである。まず、携帯端末装置20のCPU21は、オリジナルの背景画像40のみをディスプレイD2に表示する(S401)。次に、CPU21は、ディスプレイD2がユーザによって操作されたか否かを判定する(S402)。
【0082】
CPU21は、ディスプレイD2がユーザによって操作されていないと判定した場合、前述のS402の処理を繰り返す。一方、CPU21は、ディスプレイD2がユーザによって操作されたと判定した場合、背景画像40に対して画像処理(例えば、表現幅調整や空間周波数調整等)を行う。その後、CPU21は、画像処理された背景画像40を表示する(S403)。
【0083】
次に、CPU21は、ディスプレイD2の画面輝度を調整する(S404)。具体的に、CPU21は、ディスプレイD2の画面輝度を高くすることで、背景画像40に埋め込まれる不可視コード(コード情報50)を読み取り易くする。
【0084】
次に、CPU21は、背景画像40に不可視コード(コード情報50)を埋め込む(S405)。これによって、第1のフレーム画像60aと第2のフレーム画像60bが交互に切り替わるコード画像60が、ディスプレイD2に表示される。このように、ディスプレイD2は、背景画像40に代えてコード画像60を表示する。
【0085】
コード画像60が表示されてから所定時間以上、ユーザによってディスプレイD2に対する操作が行われない場合、CPU21は、オリジナルの背景画像40をディスプレイD2に表示し(S406)、本フローチャートによる処理を終了する。これによって、画像の切り替え(点滅)による違和感を低減することができるとともに、消費電力を小さくすることができる。なお、コード画像60の読取処理は、第1の実施形態(
図6)と同様であるので説明を省略する。
【0086】
以上説明したように、本実施形態において、ユーザによってディスプレイD2に対する操作が行われていない場合、ディスプレイD2は背景画像40を表示する。また、ユーザによってディスプレイD2に対する操作が行われた場合、ディスプレイD2は背景画像40に代えてコード画像60を表示する。また、コード画像60が表示されてから所定時間以上、ユーザによってディスプレイD2に対する操作が行われない場合、ディスプレイD2は、コード画像60に代えて背景画像40を表示する。これによって、消費電力を低減することができるとともに、画像の切り替え(点滅)による違和感を低減することができる。
【0087】
(第4の実施形態)
第1〜第3の実施形態において、携帯端末装置20のCPU21は、1つの軸方向にのみ画素値を変動させることとした。これに対し、第4の実施形態において、CPU21は2つ以上の軸方向に画素値を変動させることとする。以下、第4の実施形態について詳細に説明する。
【0088】
<背景画像の色情報操作に関するイメージ図>
前述したように、CPU21が背景画像40に不可視コードを埋め込む際、背景画像40の色データによっては画像処理を行う必要がある。このため、まず、画像処理を行う必要がある理由について説明する。
【0089】
図12〜
図14は、第4の実施形態に係る色空間の一例を示す図である。
図12に示されるように、色空間には、円筒形の軸70と、リング状の帯71と、扇形の領域72とが含まれる。円筒形の軸70は、白と黒をつなぐ彩度ゼロの領域を示す軸であり、上に行くほど明度が高くなる。リング状の帯71は、色相を示す。扇形の領域72は、外に行くほど彩度が高い。
【0090】
図13は、マンセルの色彩球73を示す図である。
図13に示されるように、マンセルの色彩球73の最上部は白を示し、マンセルの色彩球73の最下部は黒を示す。すなわち、マンセルの色彩球73の上の方ほど明度が高く、マンセルの色彩球73の下の方ほど明度(Lightness)が低い。また、マンセルの色彩球73の外周方向は、色相(Hue)方向を示す。更に、マンセルの色彩球73の中心から遠いほど彩度が高い。
【0091】
図14は、マンセルの色彩球73の内部を示す図である。
図14を用いて、不可視コードを埋め込むのに適した背景画像40の色空間を説明する。
【0092】
前述したように、CPU21は、コード情報50と重なる位置の背景画像40の画素値を所定方向に変動させる。例えば、CPU21は、
図14に示されるBaseを中心として画素値を変動させる。CPU21が30[Hz]より高い周波数で画素値を変動させると、変動された画素値の平均が肉眼によって認識される。このため、CPU21がBASEを中心として矢印方向(2方向)に画素値を変動させたとしても、この画素の色はBase(2つの矢印の交点)の色であると肉眼によって認識される。
【0093】
このことから、
図14に示されるTop、Out、またはBottomにBaseが位置すると、画素値を変動させることが難しい(言い換えると、十分な変動幅を確保することができない)。このため、オリジナルの背景画像40の色データ(Base)がInner以外の領域に含まれる場合、CPU21は、背景画像40の見え方を損なわないように、色データ(Base)をInnerの領域内に配置する。これによって、画素値を変動させるための変動幅を十分に確保することができるため、不可視コードを読み取り易くすることができる。
【0094】
CPU21は、色データ(Base)をInnerの領域内に配置することで、明度方向のみ画素値を変動させるだけではなく、彩度方向にも画素値を変動させることができる。CPU21が色データ(Base)をInnerの領域内に配置すると、画素値を変動させる方向を十分に確保することができるため、不可視コードが保持できるデータ量を引き上げることができる。例えば、CPU21が2軸方向に画素値を変動させると、1軸方向に画素値を変動させるエンコード方式と比べて、同一面積において保持できるデータ量を増加させることができる。言い換えると、コード画像60のデータ密度を向上させることができる。
【0095】
例えば、CPU21が明度方向(θ=0°)と、明度方向に直交する方向(θ=90°)に画素値を変動させる場合、明度方向(θ=0°)の変動に「0」をデータとして割り当てることができるとともに、明度方向に直交する方向(θ=90°)の変動に「1」をデータとして割り当てることができる。このため、コード画像60のデータ密度を向上させることができる。
【0096】
なお、CPU21は、3軸方向(例えば、明度方向と、明度方向に60°交差する方向と、明度方向に120°交差する方向)に画素値を変動させてもよい。この場合、θ=0°、60°、および120°である。また、CPU21は、4軸以上の方向に画素値を変動させてもよい。CPU21は、画素値を彩度方向に変動させることもでき、彩度方向、明度方向、および色相方向を適宜組み合わせて画素値を変動させてもよい。
【0097】
なお、CPU21が画素値の変動の周波数を高くしても、画素値の変動幅が大きいと肉眼で認識されやすくなる。特に、明度方向における変動は、彩度方向の変動および色相方向の変動よりも、肉眼によって認識されやすい。このため、CPU21は、明度方向における変動幅を、色相方向における変動幅および彩度方向における変動幅よりも小さくする。
【0098】
なお、CPU21は、色相方向の変動幅の絶対値を、他の方向の変動幅の絶対値よりも必ず大きく設定する。つまり、CPU21は、色相>彩度>明度となるように、各方向の変動幅の絶対値を設定する。
【0099】
一例として、明度(輝度)、彩度、色相について説明したが、RGBや他の色表現に本実施形態を適用してもよい。(R,G,B)=(20,20,20)の場合、CPU21は、B(Blue)方向に画素値を変動するとともに、G(Green)方向に画素値を変動してもよい。言い換えると、CPU21がB方向に画素値を変動する場合、30[Hz]を超える周波数で、(20,20,15)と(20,20,25)を切り替えてもよい。また、CPU21がG方向に画素値を変動する場合、30[Hz]を超える周波数で、(20,15,20)と(20,25,20)を切り替えてもよい。
【0100】
RGB表現を用いる場合、Greenの諧調変化が最も明度変化(輝度変化)に影響を与え、Blueの諧調変化はGreenの諧調変化よりも明度変化(輝度変化)に影響を与えない。このため、CPU21は、Gの画素値の変動幅を、Bの画素値の変動幅よりも小さくするのが好ましい。例えば、CPU21は、(R,G,B)=(20,20±3,20),(20,20,20±5)と設定するのが好ましい。
【0101】
<コード画像の生成処理>
図15は、第4の実施形態に係るコード画像60の生成処理を示すフローチャートである。
図15を用いて、携帯端末装置20によって行われるコード画像60の生成処理を詳細に説明する。
【0102】
まず、CPU21は、背景画像40を解析する(S501)。例えば、CPU21は、コード情報50が配置される位置の背景画像40の色データを取得する。また、CPU21は、コード情報50が配置される位置の背景画像40の色データが、
図14に示されるInnerの領域内に存在するか否かを判定する。CPU21は、コード情報50が配置される位置の背景画像40の色データがInnerの領域内に存在しない場合、この色データがInnerの領域内に配置するように背景画像40に対して画像処理を行う。これによって、画素値を変動させるための変動幅を十分に確保することができるため、不可視コードを読み取り易くすることができる。
【0103】
次に、CPU21は、画素値の変動方向(例えば、
図14に示される角度θ)と、変動方向における変動幅とを決定する(S502)。CPU21は、画素値を複数方向に変動させる場合、複数の変動方向と変動幅とを決定する。その後、CPU21は、決定した変動方向を示す情報を含むインデックスを生成する(S503)。
【0104】
次に、CPU21は、コード情報50と重なる位置の背景画像40の色データを取得する(S504)。その後、CPU21は、S503において生成したインデックスを背景画像40に可視状態で付加する(S505)。
【0105】
次に、CPU21は、背景画像40にコード情報50を不可視状態で埋め込む(S506)。具体的に、CPU21は、コード情報50と重なる位置の背景画像40の画素値を、この画素値を中心として、決定した変動方向および変動幅に基づいて変動させる。これによって、コード画像60を生成することができる。
【0106】
<コード画像の読取処理>
図16は、第4の実施形態に係るコード画像60の読取処理を示すフローチャートである。
図16を用いて、携帯端末装置20によって生成されるコード画像60の読取処理を詳細に説明する。
【0107】
まず、携帯端末装置20のカメラ24は、他の携帯端末装置のディスプレイD2に表示されたコード画像60を撮影することで、コード画像60を取得する。また、CPU21は、取得したコード画像60に埋め込まれたインデックスを取得する(S511)。前述したように、インデックスには、画素値の変動方向を示す情報が含まれる。また、取得されたコード画像60には、コード情報50と重なる位置の背景画像40の画素値が変動された複数のフレーム画像が含まれる。
【0108】
次に、CPU21は、インデックスによって指定された変動方向における、複数のフレーム画像の差分を取得する(S512)。その後、CPU21は、取得した差分に基づき、不可視コードをデコードし(S513)、本フローチャートによる処理を終了する。
【0109】
以上説明したように、本実施形態において、CPU21は、画素値の変動方向を示す情報を含むインデックスを、背景画像40に可視状態で付加する。本実施形態によれば、画素値の変動方向にデータを割り当てることができるため、コード画像60のデータ密度を向上させることができる。また、本実施形態によれば、肉眼によって認識され難い画素値の変動方向と変動幅を設定することができるため、コード情報50をより確実に不可視状態で背景画像40に埋め込むことができる。
【0110】
(第5の実施形態)
第1〜第4の実施形態において、携帯端末装置20のCPU21は、1つのフレームセットを背景画像40に埋め込むこととした。これに対し、第5の実施形態において、CPU21は2つ以上のフレームセットを背景画像40に埋め込むこととする。ここで、フレームセットとは、複数のフレーム画像が含まれるセットである。背景画像40に埋め込まれた2つ以上のフレームセットは、時間経過に応じて切り替えて表示される。以下、第5の実施形態について詳細に説明する。
【0111】
<フレームセットの切替処理>
図17は、第5の実施形態に係るフレームセットの切替処理を示す図である。CPU21は、3つのフレームセット80a〜80cを含むコード画像60をディスプレイD2に表示する。具体的には、CPU21は、時間tが経過するとともに、フレームセット80a、フレームセット80b、およびフレームセット80cを順に切り替えてディスプレイD2に表示する。フレームセット80a〜80cの各々において、キーフレーム画像81と、フレーム画像82とが30[Hz]より高い周波数で交互に表示される。
【0112】
まず、CPU21は、フレームセット80aをディスプレイD2に表示する。このとき、CPU21は、キーフレーム画像81およびフレーム画像82に、位置検出用マーカ83aを可視状態で埋め込む。フレームセット80aがディスプレイD2に表示されてから所定時間が経過すると、CPU21は、フレームセット80aに代えてフレームセット80bをディスプレイD2に表示する。このとき、CPU21は、キーフレーム画像81およびフレーム画像82に、位置検出用マーカ83bを可視状態で埋め込む。フレームセット80bがディスプレイD2に表示されてから所定時間が経過すると、CPU21は、フレームセット80bに代えてフレームセット80cをディスプレイD2に表示する。このとき、CPU21は、キーフレーム画像81およびフレーム画像82に、位置検出用マーカ83cを可視状態で埋め込む。CPU21は、これらの処理を繰り返す。
【0113】
一方、コード画像60をデコードする際、CPU21は、フレームセットごとに、キーフレーム画像81とフレーム画像82との差分に基づいて不可視コード(コード情報50)を抽出する。なお、CPU21は、可視状態で埋め込まれた位置検出用マーカの切り替わりに応じて、フレームセットの切り替わりを検出する。このように、複数のフレームセットを切り替えてディスプレイD2に順番に表示することで、コード画像60により多くのデータ量を保持することができる。
【0114】
<コード画像の生成処理>
図18は、第5の実施形態に係るコード画像60の生成処理を示すフローチャートである。
図18を用いて、携帯端末装置20によって行われるコード画像60の生成処理を詳細に説明する。
【0115】
まず、CPU21は、コード画像60として生成する複数のフレームセットを決定する(S601)。次に、CPU21は、決定したフレームセットに応じて、位置検出用マーカを切り替えて背景画像40に埋め込む(S602)。
【0116】
また、CPU21は、背景画像40に埋め込まれた位置検出用マーカごとに、不可視コード(コード情報50)を切り替える(S603)。その後、CPU21は、不可視コード(コード情報50)を背景画像40に埋め込む(S604)。これによって、複数のフレームセットが含まれるコード画像60を生成することができる。
【0117】
<コード画像の読取処理>
図19は、第5の実施形態に係るコード画像60の読取処理を示すフローチャートである。
図19を用いて、携帯端末装置20によって生成されるコード画像60の読取処理を詳細に説明する。
【0118】
まず、携帯端末装置20のカメラ24は、他の携帯端末装置のディスプレイD2に表示されたコード画像60(動画)を撮影することで、所定期間の動画を取得する(S611)。CPU21は、取得した所定期間の動画に基づき、位置検出用マーカの切替回数を検出する(S612)。これによって、コード画像60に含まれるフレームセットの数を検出することができる。
【0119】
次に、CPU21は、位置検出用マーカの切替に応じて、取得した動画を複数のフレームセットに分割する(S613)。その後、CPU21は、分割した各フレームセットから、キーフレーム画像81を抽出する(S614)。また、CPU21は、分割した各フレームセットから、キーフレーム画像81以外のフレーム画像82についても抽出する。
【0120】
次に、CPU21は、フレームセットごとに、キーフレーム画像81とフレーム画像82との差分を算出する。その後、CPU21は、フレームセットごとに、算出した差分に基づいて不可視コードをデコードし(S615)、本フローチャートによる処理を終了する。
【0121】
以上説明したように、本実施形態において、カメラ24は、複数のフレームセット80a〜80cが含まれるコード画像60を読み取る。複数のフレームセット80a〜80cの各々は、キーフレーム画像81およびフレーム画像82を含む。CPU21は、フレームセット80a〜80cごとに、キーフレーム画像81およびフレーム画像82の差分に基づいて不可視コード(コード情報50)を抽出する。これによって、より多くのデータ量をコード画像60に保持することができる。なお、第5の実施形態と第4の実施形態とを組み合わせてもよい。これによって、更に多くのデータ量をコード画像60に保持することができる。
【0122】
(他の実施形態)
以下、位置検出用マーカ、マーカの埋め込み処理、およびデータドットの形状についての他の実施形態について説明する。
【0123】
<位置検出用マーカについての他の実施形態>
図20〜
図27は、他の実施形態に係る位置検出用マーカの一例を示す図である。第1〜第5の実施形態においては、位置検出用マーカ51およびデータドット53の両方を背景画像40に不可視状態で埋め込むこととしたが、これに限られない。例えば、
図20に示されるように、CPU21は、位置検出用マーカ51を背景画像40に可視状態で埋め込むとともに、データドット53を背景画像40に不可視状態で埋め込んでもよい。
【0124】
位置検出用マーカは、台形補正およびホモグラフィー変換に利用される。QRコード(登録商標)においては、三つの角に位置検出用マーカが配置されており、360°どの方向からでもQRコード(登録商標)を高速に読み取ることができる。したがって、不可視コードを360°どの方向からでも高速に読み取ることができるようにするために、位置検出用マーカを可視状態で背景画像40に埋め込んでもよい。これによって、コード画像内のデータドットの位置をより精度よく検出することができるとともに、コード画像を360°どの方向からでも高速に読み取ることができる。
【0125】
また、位置検出用マーカは四角形に限られない。例えば、
図21に示されるように、三角形の位置検出用マーカ91が背景画像40に埋め込まれてもよい。
【0126】
また、
図22および
図23に示されるように、位置検出用ベゼル92または93を表示してもよい。位置検出用ベゼル92または93を表示することで、ユーザに対してベゼルに合わせてコード画像60を撮影するよう誘導することができる。
【0127】
また、
図24および
図25に示されるように、ラインタイプの位置検出用マーカ94または95が表示されてもよい。また、
図26および
図27に示されるように、枠タイプの位置検出用マーカ96または97が表示されてもよい。
【0128】
<マーカの埋込処理についての他の実施形態>
図28〜
図30は、他の実施形態に係るマーカの埋込処理の一例を示す図である。前述したように、位置検出用マーカは、可視状態で背景画像40に埋め込まれるのが好ましい。このため、
図28に示されるように、明度の低いマーカ100〜103を背景画像40に埋め込んでもよい。逆に、
図29に示されるように、明度の高いマーカ100〜103を背景画像40に埋め込んでもよい。
【0129】
しかしながら、
図28に示されるように、マーカ102および103は明度の低い背景画像40の領域に埋め込まれているため、マーカ102および103を検出することは難しい。また、
図29に示されるように、マーカ100および101は明度の高い背景画像40の領域に埋め込まれているため、マーカ100および101を検出することは難しい。
【0130】
このため、
図30に示されるように、マーカ100および101の明度を低くするとともに、マーカ102および103の明度を高くしてもよい。このように、背景画像の明度に応じてマーカの明度を変更することで、マーカの検出精度を向上させることができる。
【0131】
また、
図31に示されるように、位置検出用マーカに代えて、水平方向の枠104を背景画像40に埋め込んでもよい。また、
図32に示されるように、位置検出用マーカに代えて、垂直方向の枠105を背景画像40に埋め込んでもよい。また、CPU21は、背景画像40に埋め込まれた枠104または105に基づいて、データドットの位置を検出してもよい。
【0132】
また、
図33に示されるように、CPU21は、位置検出用マーカに代えて、特徴点106を背景画像40から抽出してもよい。CPU21は、抽出した特徴点に基づいて、コード画像60の歪みを補正してもよい。なお、CPU21は、特徴点の抽出方法として、SIFT(Scale−Invariant Feature Transform)や、「Harris corner response function」を用いてもよい。また、CPU21は、背景画像40に対してブロブ解析を行うことにより、特徴点を抽出してもよい。また、CPU21は、背景画像40から特徴点を抽出し難い場合は位置検出用マーカを埋め込み、背景画像40から特徴点を抽出しやすい場合は位置検出用マーカを埋め込まないようにしてもよい。また、白黒で表現したQRコードのように、コードとして識別可能な画像を背景画像としてもよい。つまり、識別可能なコードに加えて不可視コードを追加してもよい。これにより、背景画像として表示されている識別可能なコードにデータの一部を格納し、不可視コードにデータの一部を格納してもよい。当然、背景画像として表示されているコードのみでデコードできるデータを格納し、不可視コードを付加的機能のために割り当ててもよい。付加的機能としては、不可視コードに暗号鍵を格納した暗号通信やシークレットシェアリング、簡単なIDを格納した真贋判定等が挙げられる。
【0133】
例えば、所定年齢未満(18歳等法規による)のユーザが不特定多数と連絡先交換することを抑制するために、上記付加的機能を利用してもよい。具体的には、18歳未満のユーザが連絡先を交換するためにスマートフォンに表示するQRコード(背景画像)に不可視コードを付与する。QRコードリーダにより、18歳未満のユーザの連絡先であると識別された際には、追加で不可視コードが保有するID情報を参照する。これにより、スマートフォンのスクリーンショット機能を活用して、18歳未満のユーザが不特定多数へ連絡先を配布することを抑制することができる。対して、18歳以上のユーザについては不可視コードを追加しないQRコード(背景画像)のみを表示させるように制御する。これにより、不可視コードを表示することにより消費電力が増加することを抑制することができる。
【0134】
また、18歳以上の場合もQRコードに不可視コードを付与することを基本としてもよい。具体的には、18歳以上のユーザがスクリーンショットにより連絡先を交換(一般公開)することを希望する場合、不可視コードがなくとも連絡先を交換できるようにしてもよい。これにより、ユーザーエクスペリエンスを統一しつつも、必要に応じて利便性を確保することができる。
【0135】
<データドットの形状についての他の実施形態>
図34〜
図41は、他の実施形態に係るデータドットの形状の一例を示す図である。例えば、
図34および
図35に示されるように、CPU21は、四角形のデータドット110および111を生成してもよい。また、
図36および
図37に示されるように、CPU21は、三角形のデータドット112および113を生成してもよい。また、
図38および
図39に示されるように、CPU21は、円形のデータドット114および115を生成してもよい。また、
図40に示されるように、CPU21は、星形のデータドット116を生成してもよい。更に、
図41に示されるように、CPU21は、同心円形状のデータドット117を生成してもよい。
【0136】
以上説明したように、CPU21は、背景画像40を取得し、取得した背景画像40に対して画像処理(空間周波数調整または表現幅調整)を行う。また、CPU21は、画像処理が行われた背景画像40に、コード情報50の少なくとも一部が不可視状態で埋め込まれたコード画像60を生成する。これによって、2次元コードを背景画像に埋め込む際に、2次元コードが背景画像のデザインに及ぼす影響を低減することができる。
【0137】
なお、上記実施形態におけるデスクトップコンピュータ10、携帯端末装置20、およびサーバ30は、内部にコンピュータシステムを有している。そして、上述したデスクトップコンピュータ10、携帯端末装置20、およびサーバ30の各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって上記各種処理が行われる。ここで、コンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
【0138】
また、特定のコンピュータで実行される処理の一部を、他のコンピュータによって分担してもよい。このため、情報処理システム全体を、情報処理装置としてみなしてもよい。また、特徴的な情報処理を行う要素が意図的に国外に設置されたとしても、処理結果を参照する地域が国内であれば、情報処理が国内で実行されたものとみなす。
【0139】
以上、本発明の好ましい実施形態を説明したが、本発明はこれらの実施形態に限定されることはない。本発明の趣旨を逸脱しない範囲で、構成の付加、省略、置換、およびその他の変更が可能である。本発明は前述した説明によって限定されることはなく、添付のクレームの範囲によってのみ限定される。
背景画像を取得する取得部と、前記取得部によって取得された前記背景画像に対して画像処理を行う画像処理部と、前記画像処理部によって画像処理が行われた前記背景画像に、コード情報の少なくとも一部が不可視状態で埋め込まれたコード画像を生成する生成部と、を有する情報処理装置。