(57)【要約】【課題】  精度よく認識することのできる２次元コードを提供することを目的とする。【解決手段】  本発明の２次元コードは、複数の方形セル１０６を２次元配置することでコードデータを構成するコードデータ部分１０２と、コードデータ部分１０２を取り囲むように配置される複数のコーナーセル１０４とを備える。このコーナーセル１０４は、方形セル１０６よりも大きな面積を有して構成される。この２次元コードが撮像装置により撮像されると、コーナーセル１０４を大きく認識できるため、２次元コードの読み取り精度を向上できる。【選択図】  図２
2006113852.tif 000002
【特許請求の範囲】
【請求項１】
複数の方形セルを２次元配置することでコードデータを構成するコードデータ部分と、
コードデータ部分を取り囲むように配置される複数のコーナーセルと、を備え、
前記コーナーセルは前記方形セルよりも大きな面積を有することを特徴とする物体。
【請求項２】
前記コーナーセルは方形または円形であることを特徴とする請求項１に記載の物体。
【請求項３】
複数の方形セルを２次元配置することでコードデータを構成するコードデータ部分と、
コードデータ部分を取り囲むように配置された複数のコーナーセルと、を備え、
前記コーナーセルは丸い形状を有することを特徴とする物体。
【請求項４】
２次元コードを表示装置に表示させるためのデータフォーマットにしたがって生成された画像データであって、
複数の方形セルを表示装置上の所定の座標位置に表示させるためのデータと、
所定の座標位置に表示される複数の方形セルを取り囲む座標位置に複数のコーナーセルを表示させるためのデータとを備え、
前記コーナーセルが前記方形セルよりも大きく表示されるように、前記コーナーセルと前記方形セルのデータが設定されていることを特徴とする画像データ。
【請求項５】
２次元コードを表示装置に表示させるためのデータフォーマットにしたがって生成された画像データであって、
複数の方形セルを表示装置上の所定の座標位置に表示させるためのデータと、
所定の座標位置に表示される複数の方形セルを取り囲む座標位置に複数のコーナーセルを表示させるためのデータとを備え、
前記コーナーセルが丸い形状に表示されるように、前記コーナーセルのデータが設定されていることを特徴とする画像データ。
【請求項６】
２次元コードを表示装置に表示させるためのデータフォーマットにしたがって生成された画像データを伝送する方法であって、伝送する前記画像データが、
複数の方形セルを表示装置上の所定の座標位置に表示させるためのデータと、
所定の座標位置に表示される複数の方形セルを取り囲む座標位置に複数のコーナーセルを表示させるためのデータとを備え、
前記コーナーセルが前記方形セルよりも大きく表示されるように、前記コーナーセルと前記方形セルのデータが設定されていることを特徴とする画像データ伝送方法。
【請求項７】
２次元コードを表示装置に表示させるためのデータフォーマットにしたがって生成された画像データを伝送する方法であって、伝送する前記画像データが、
複数の方形セルを表示装置上の所定の座標位置に表示させるためのデータと、
所定の座標位置に表示される複数の方形セルを取り囲む座標位置に複数のコーナーセルを表示させるためのデータとを備え、
前記コーナーセルが丸い形状に表示されるように、前記コーナーセルのデータが設定されていることを特徴とする画像データ伝送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のセルを２次元配置することでコードデータを表現する技術に関し、特にコードデータを有する物体、コードデータを表示装置に表示させるための画像データ、およびその画像データを伝送する方法に関する。
【背景技術】
【０００２】
近年、２次元コードをカメラで撮像してコードデータを認識し、そのコードデータに対応付けられた所定の処理を実行させる技術が普及している。１次元バーコードと比較すると、２次元コードの方がコード化できる情報量が多く、現在では様々な種類の２次元コードが登場するようになっている。２次元コードのコードデータは、画像データから効率よく且つ正確に読み取られる必要がある。このような状況をふまえて、従来、２次元コードの画像認識に関する技術を提案するものがある（例えば、特許文献１参照）。
【特許文献１】特開２０００−８２１０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
画像データの解像度が高ければ、２次元コードの情報量を多く取得でき、コードデータの高い認識率を実現することができる。しかしながら、カメラによっては解像度の低いものもあり、そのような場合であっても、コードデータの認識率を高めることが好ましい。
本発明は、精度よく認識することのできる２次元コードを提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記課題を解決するために、本発明のある態様は、複数の方形セルを２次元配置することでコードデータを構成するコードデータ部分と、コードデータ部分を取り囲むように配置される複数のコーナーセルとを備え、コーナーセルは方形セルよりも大きな面積を有する物体を提供する。この物体はカードなどの２次元的なオブジェクトであってもよく、また３次元オブジェクトであってもよい。また、方形セルおよびコーナーセルは、物体上に印刷されていてもよく、また刻印されていてもよい。これらのセルは、撮像装置により撮像されることが可能な状態で存在すればよい。
【０００５】
本発明の別の態様は、複数の方形セルを２次元配置することでコードデータを構成するコードデータ部分と、コードデータ部分を取り囲むように配置された複数のコーナーセルとを備え、コーナーセルは丸い形状を有する物体を提供する。この物体はカードなどの２次元的なオブジェクトであってもよく、また３次元オブジェクトであってもよい。また、方形セルおよびコーナーセルは、物体上に印刷されていてもよく、また刻印されていてもよい。これらのセルは、撮像装置により撮像されることが可能な状態で存在すればよい。
【０００６】
本発明のさらに別の態様は、２次元コードを表示装置に表示させるためのデータフォーマットにしたがって生成された画像データであって、複数の方形セルを表示装置上の所定の座標位置に表示させるためのデータと、所定の座標位置に表示される複数の方形セルを取り囲む座標位置に複数のコーナーセルを表示させるためのデータとを備え、コーナーセルが方形セルよりも大きく表示されるように、コーナーセルと方形セルのデータが設定されていることを特徴とする画像データを提供する。
【０００７】
本発明のさらに別の態様は、２次元コードを表示装置に表示させるためのデータフォーマットにしたがって生成された画像データであって、複数の方形セルを表示装置上の所定の座標位置に表示させるためのデータと、所定の座標位置に表示される複数の方形セルを取り囲む座標位置に複数のコーナーセルを表示させるためのデータとを備え、コーナーセルが丸い形状に表示されるように、コーナーセルのデータが設定されていることを特徴とする画像データを提供する。
【０００８】
本発明のさらに別の態様は、２次元コードを表示装置に表示させるためのデータフォーマットにしたがって生成された画像データを伝送する方法であって、伝送する画像データが、複数の方形セルを表示装置上の所定の座標位置に表示させるためのデータと、所定の座標位置に表示される複数の方形セルを取り囲む座標位置に複数のコーナーセルを表示させるためのデータとを備え、コーナーセルが方形セルよりも大きく表示されるように、コーナーセルと方形セルのデータが設定されていることを特徴とする画像データ伝送方法を提供する。
【０００９】
本発明のさらに別の態様は、２次元コードを表示装置に表示させるためのデータフォーマットにしたがって生成された画像データを伝送する方法であって、伝送する画像データが、複数の方形セルを表示装置上の所定の座標位置に表示させるためのデータと、所定の座標位置に表示される複数の方形セルを取り囲む座標位置に複数のコーナーセルを表示させるためのデータとを備え、コーナーセルが丸い形状に表示されるように、コーナーセルのデータが設定されていることを特徴とする画像データ伝送方法を提供する。
【００１０】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によると、精度よく認識することのできる２次元コードを提供することができる。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明の実施例にかかるゲームシステム１の構成を示す。ゲームシステム１は、撮像装置２、画像処理装置１０および出力装置６を備える。画像処理装置１０は、画像解析装置２０およびゲーム装置３０を備える。画像解析装置２０およびゲーム装置３０は別装置として構成されてもよいが、一体として構成されてもよい。撮像装置２は、ＣＣＤ撮像素子またはＭＯＳ撮像素子などから構成されるビデオカメラであり、例えば３２０画素×２４０画素の解像度を有する。撮像装置２は実空間を所定の周期で撮像して、周期ごとのフレーム画像を生成する。撮像領域５は撮像装置２により撮像される範囲であり、撮像装置２の高さや向きを調整することで、撮像領域５の位置や大きさが調整される。ゲームプレイヤは、撮像領域５において、実オブジェクトであるゲームカード４を指で動かす。ゲームカード４は、自身を一意に識別するための２次元コードを有して構成される。
【００１３】
出力装置６は、表示装置であるディスプレイ７を有する。出力装置６は、さらにスピーカ（図示せず）を有して構成されてもよい。基本的に画像処理装置１０は、撮像装置２により撮像されたフレーム画像をディスプレイ７に表示させ、その際に、ゲームカード４上に仮想オブジェクトであるキャラクタを重畳するように表示制御する。プレイヤは、ディスプレイ７を見ることで、ゲームカード４が撮像領域５に入っているか容易に確認でき、入っていない場合には、ゲームカード４の位置をずらしたり、また撮像装置２の向きを調整して、撮像装置２にゲームカード４を撮像させるようにする。
【００１４】
実施例のゲームアプリケーションでは、プレイヤがゲームカード４に対して所定の操作を施すことにより、キャラクタを動作させる。このゲームアプリケーションの性質上、プレイヤにゲームカード４とキャラクタとの一体性を認識させることが好ましく、そのため、キャラクタの画像を、ゲームカード４に重ね合わせて表示させている。撮像領域５内でゲームカード４をゆっくりと移動させると、キャラクタは、ゲームカード４の上に乗った状態を維持しながら、ゲームカード４の動きに追従して一緒に移動する。
【００１５】
以上のキャラクタの動きは、画像処理装置１０により制御される。まず、画像解析装置２０は、撮像装置２において取得されたフレーム画像から、ゲームカード４の画像情報を抽出する。さらに、画像解析装置２０は、ゲームカード４の画像情報から、ゲームカード４に印刷された２次元コードを抽出する。このとき、画像解析装置２０は、ゲームカード４の２次元コードから、ゲームカード４の空間における位置情報、方向情報、距離情報などを決定する。
【００１６】
後述するが、画像解析装置２０は、フレーム画像中のゲームカード４の画像における基準セルおよび４隅のコーナーセルを用いて、撮像装置２とゲームカード４との距離やゲームカード４の向きなどを計算して求める。これにより、キャラクタは、ゲームカード４上にて前方を向くように表示制御される。また、２次元コードにおける複数の方形セルの配列から、ゲームカード４のコードデータを取得する。
【００１７】
図１では、ゲームカード４が台３に単に置かれている状態を示しているが、ゲームカード４は、例えば台３に対して斜めに傾けられたり、また台３よりも上に持ち上げられたりしてもよい。画像解析装置２０は、ゲームカード４が傾斜された状態、または、台３からの高さを変化された状態を画像解析により認識する機能をもつ。画像解析装置２０において画像解析された結果は、ゲーム装置３０に送られる。なお、撮像装置２において撮像されたフレーム画像が、ゲーム装置３０に送られて、ゲーム装置３０側で画像解析を行ってもよい。この場合、画像処理装置１０は、ゲーム装置３０のみで構成されることになる。
【００１８】
ゲーム装置３０は、画像解析装置２０における画像解析結果をもとに、ディスプレイ７の表示画面上で、キャラクタをゲームカード４の上に位置するように表示制御する。キャラクタは、ゲームカード４から抽出したコードデータに対応付けられて、ゲームシーンごとに適宜割り当てられてもよい。この場合、ゲームシーンが切り替わると、表示されるキャラクタも切り替わることになる。
【００１９】
図２は、ゲームカードの表面に印刷した２次元コードを示す。ゲームカード４の表面には、複数の所定形状をもつ多角形セルが所定の配列規則にしたがって２次元的に配置されている。具体的に、ゲームカード４の２次元コードは、撮像装置２により撮像された画像データからゲームカード４の認識処理を行うための基準となる基準セル１００、複数の方形セル１０６を２次元配置することでコードデータを構成するコードデータ部分１０２、コードデータ部分１０２を取り囲むように配置される複数のコーナーセル１０４ａ、１０４ｂ、１０４ｃ、１０４ｄ（以下、総称する場合は、「コーナーセル１０４」と呼ぶ）を備えている。コードデータ部分１０２およびコーナーセル１０４は、２次元コードにおけるコード部１１０に存在している。
【００２０】
基準セル１００、方形セル１０６およびコーナーセル１０４は、それぞれ所定の形状を有して構成される。図２に示す２次元コードでは、各セルが黒色に塗りつぶされて存在している。図２において、領域１０８は、複数の方形セル１０６が連結して構成されたものであり、他の方形セル１０６とともにコードデータを構成している。実施例のゲームカード４が複数存在する場合に、基準セル１００およびコーナーセル１０４の配置および大きさは共通とされ、コードデータ部分１０２における方形セル１０６の配列により、ゲームカード４を一意に特定することができる。
【００２１】
以下に、本実施例における２次元コードの詳細を説明する。正方形状の方形セル１０６の１辺を１ブロックとすると、基準セル１００は、７ブロック分の横方向の長辺と１．５ブロック分の縦方向の短辺で形成される長方形状のセル（エレメント）として構成される。実施例において、縦１ブロックと横１ブロックで形成される正方形状の領域をブロック領域と呼ぶ。
【００２２】
コードデータ部分１０２は、７ブロック×７ブロックで囲まれる領域に形成される。この領域の一辺は、基準セル１００の長辺に平行であり且つ長辺から１ブロック離れた位置に配置される。図示のように、コード部１１０は、８ブロック×８ブロックで囲まれる領域であり、コードデータ部分１０２は、コード部１１０が形成される領域に含まれる。実際に方形セル１０６が配置される領域は、７ブロック×７ブロックで囲まれる領域の４隅における２ブロック×２ブロックの領域を除いた部分とする。すなわち、４隅の２ブロック×２ブロックの領域には方形セル１０６を配置させないこととし、したがって、（７×７−２×２×４）＝３３のブロック領域に方形セル１０６が配置されて、コードデータを構成する。
【００２３】
コーナーセル１０４ａは、コード部１１０の左上隅の領域に配置される。この左上隅の領域は、コードデータ部分１０２として７ブロック×７ブロックで囲まれる領域の左上隅の２ブロック×２ブロックの領域の範囲内であってよく、またその範囲内からはみ出してもよい。図示の例では、コーナーセル１０４ａが、コードデータ部分１０２における左上隅の２ブロック×２ブロックの領域から縦に０．５ブロック分、横に０．５ブロック分だけはみ出して配置されている。すなわち、コーナーセル１０４ａは、コード部１１０において２．５ブロック×２．５ブロックで囲まれる左上隅の領域に存在している。同様に、コーナーセル１０４ｂはコード部１１０の右上隅の領域に配置され、コーナーセル１０４ｃはコード部１１０の右下隅の領域に配置され、コーナーセル１０４ｄはコード部１１０の左下隅の領域に配置される。図示の例では、各コーナーセル１０４は方形に形成され、具体的には１辺を１．５ブロック分の長さとする正方形のセルとして形成されている。
【００２４】
コードデータ部分１０２は、１ブロック領域を１ビットとすると、合計で３３ビット分の情報をコード化することができる。この３３ビット中、９ビット分は、コードデータが、正しいコードデータであることを確かめるためのチェックデータを構成する。従って、コードデータ部分１０２には、２４ビット分の情報がコード化されている。
【００２５】
方形セル１０６は、コードデータを表現する重要なエレメントであり、画像解析装置２０において正確に画像認識される必要がある。そのためには、全ての方形セル１０６を大きく形成することが理想的であるが、当然のことながらゲームカード４の大きさには制約があり、方形セル１０６を大きくすることは、それだけコードデータ部分１０２を構成する方形セル１０６の数を減じる結果となる。これは情報のビット数を減らすことに相当し、好ましくない。
【００２６】
以上のことから、本実施例において、コーナーセル１０４は、方形セル１０６よりも大きな面積を有して構成される。後述するが、本実施例の画像解析装置２０において、４隅のコーナーセル１０４は、コードデータ部分１０２を検出するために利用される。逆に言えば、４隅のコーナーセル１０４を検出できなければ、方形セル１０６を検出することもできないため、この２次元コードでは、方形セル１０６よりもコーナーセル１０４をまず確実に認識する必要がある。４隅のコーナーセル１０４を方形セル１０６よりも大きく形成することで、４隅のコーナーセル１０４の認識率を高めることができる。
【００２７】
画像解析装置２０は、フレーム画像中の基準セル１００の候補を抽出して所定の基準を満たすものを基準セル１００として仮定し、その仮定した基準セル１００の近傍に４つのコーナーセル１０４が存在しているか否かを判定する。４つのコーナーセル１０４を認識すると、画像解析装置２０は、４つのコーナーセル１０４により囲まれた領域、すなわちコードデータ部分１０２における方形セル１０６の配置を読み取り、コードデータを取得する。これにより、仮定した基準セル１００が真の基準セル１００であったことが判断され、ゲームカード４を認識することができる。画像解析装置２０は、撮像装置２を基準（原点）とするゲームカード４の仮想３次元座標系における位置と方向を計算して求める。
【００２８】
図３は、画像解析装置の構成を示す。画像解析装置２０は、フレーム画像取得部４０、実オブジェクト抽出部４２および状態決定部４４を備える。実オブジェクト抽出部４２は、２値化処理部５０、基準セル検出部５２、コード部検出部５４、検証処理部５６を備える。本実施例における画像解析装置２０の処理機能は、ＣＰＵ、メモリ、メモリにロードされたプログラムなどによって実現され、ここではそれらの連携によって実現される構成を描いている。プログラムは、画像解析装置２０に内蔵されていてもよく、また記録媒体に格納された形態で外部から供給されるものであってもよい。したがってこれらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者に理解されるところである。図示の例では、画像解析装置２０のＣＰＵが、フレーム画像取得部４０、実オブジェクト抽出部４２、状態決定部４４としての機能をもつ。
【００２９】
フレーム画像取得部４０が、撮像装置２にて撮像された実空間のフレーム画像を取得する。撮像装置２は、周期的にフレーム画像を取得し、好適には１／６０秒間隔でフレーム画像を生成する。
【００３０】
実オブジェクト抽出部４２は、フレーム画像から実オブジェクト画像、すなわちゲームカード４の画像を抽出する。具体的に、２値化処理部５０がフレーム画像を２進数のビット表現に変換して、フレーム画像の情報をビットのオンとオフで表現する。基準セル検出部５２は、フレーム画像の２値化データから、基準セル１００を検出する。基準セル１００を検出すると、コード部検出部５４が、基準セル１００の位置をもとにコード部１１０を検出し、検証処理部５６が、コード部１１０に含まれるコードデータの検証処理を行う。
【００３１】
状態決定部４４は、設定した座標系における実オブジェクトの状態を決定し、具体的には、ゲームカード４の位置、方向および撮像装置２からの距離を決定する。状態決定部４４において決定された位置情報、方向情報、距離情報は、２次元コードから取得されたコードデータにそれぞれ関連付けされて、ゲーム装置３０に送られる。なお、複数のゲームカード４が撮像領域５に存在する場合には、それぞれのゲームカード４ごとに、位置情報、方向情報、距離情報、コードデータが関連付けされてゲーム装置３０に送られる。また、ゲームシステム１では、撮像装置２により撮像されたフレーム画像をディスプレイ７に表示させるため、フレーム画像自体もゲーム装置３０に送られる。ゲーム装置３０は、コードデータに対応付けられたキャラクタを読み出し、３次元の仮想空間においてゲームカード４とキャラクタとを重畳させて表示させる。
【００３２】
図４は、２次元コードの認識処理の処理手順を示すフローチャートである。２次元コードが撮像装置２により撮像され、その結果得られた１フレーム分の画像データが、フレーム画像取得部４０により取得される。２値化処理部５０は、画像データに対して２値化処理を行う（Ｓ１０）。２値化処理では、所定の閾値より大きい輝度を保持する画素の画素値が"０"に符号化され、表示上、その画素は白色とされる。以下においては、このように、画素値が"０"に符号化された画素を、白色画素と称する。一方、閾値以下の輝度値を保持する画素の画素値は、"１"に符号化され、表示上、その画素は黒色とされる。以下においては、このように、画素値が"１"に符号化された画素を、黒色画素と称する。２値化処理部５０は、黒色画素が連続して存在する領域を１つの連結領域としてまとめ、抽出された複数の黒色画素連結領域に対して、番号を１から順に昇順で設定（ラベリング）する（Ｓ１２）。例えば、ラベリングの番号は、連結領域として抽出した順すなわち特定した順に設定されてもよい。番号は、その座標データとともにＲＡＭ（図示せず）に記憶させる。図２に示す２次元コードを利用すると、コーナーセル１０４が方形セル１０６よりも大きく表示されているため、コーナーセル１０４を黒色画素連結領域として検出できる確率および座標位置の精度を高くすることができる。
【００３３】
基準セル検出部５２は、今回対象とする画像データより前に実行された２次元コード認識処理において、認識された２次元コードの表示上の位置、例えば、基準セル１００の中央点が、ＲＡＭに記憶されているか否かを判定する（Ｓ１４）。前フレームにおける基準セル１００の中央点がＲＡＭに記憶されている場合（Ｓ１４のＹ）、記憶されている位置を基準セル検出処理の開始点として設定する（Ｓ１６）。前の画像フレームにおいて基準セル１００が検出されている場合、今回の画像フレームにおいてもゲームカード４の位置は大きく変化していないことが多いため、前フレームの基準セル１００の中央点を利用することで、今回のフレームにおいて効率的に基準セル１００を検出することが可能となる。一方、２次元コードの位置がＲＡＭに記憶されていない場合（Ｓ１４のＮ）、基準セル検出部５２は、ディスプレイ７の表示上の中心点を基準セル検出処理の開始点に設定する（Ｓ１８）。開始点を設定した後、基準セル検出部５２は、基準セル１００の検出処理を実行する（Ｓ２０）。
【００３４】
図５は、基準セルの検出処理を示すフローチャートである。なお、本フローにて示す画素数は撮像装置２の解像度などに依存し、ここでは理解を容易にするため、一例としての画素数を示すこととする。まず、基準セル検出部５２は、図４のＳ１２においてラベリングした黒色画素連結領域の総数Ｍを読み出し、カウンタの値ｊを１に初期設定する（Ｓ１００）。次に、図４のＳ１６またはＳ１８において設定した開始点から、ディスプレイ７の画面上を左回りの渦巻の軌跡に沿って、黒色画素連結領域を探索し、始めに検出した黒色画素連結領域を基準セル候補領域として選択する（Ｓ１０２）。基準セル検出部５２は、選択した基準セル候補領域の縁部分を抽出して、短辺および長辺を決定する（Ｓ１０４）。
【００３５】
基準セル検出部５２は、短辺が所定画素数、例えば２０画素以上の画素で構成されているか否かを判定する（Ｓ１０６）。短辺は１．５ブロック分の長さで構成されているが、短辺が２０画素より少ない画素で構成されている基準セル１００である場合、１ブロックの長さは、さらに少ない数の画素から構成されることとなる。そのため、２次元コードにおける最小の構成要素である方形セル１０６の一辺は約１３画素以下となり、撮像装置２で適切に撮像することはできない。このことより、短辺が２０画素より少ない画素で構成されていると判定された場合（Ｓ１０６のＮ）、Ｓ１０２で選択された黒色画素連結領域は、基準セル１００ではないと判断することとし、Ｓ１１６に進む。
【００３６】
短辺が２０画素以上の画素で構成されていると判定された場合（Ｓ１０６のＹ）、基準セル検出部５２は、基準セル候補領域の長辺が所定画素数、例えば３００画素以下の画素で構成されているか否かを判定する（Ｓ１０８）。例えば、長辺が３００画素より多い画素で構成されている基準セル１００であるとすると、長辺の長さが７に対して１の割合で求められる１ブロックの長さが大きくなり、基準セル１００から、８．５ブロック分離れて位置する右下コーナーセル１０４ｃおよび左下コーナーセル１０４ｄが、撮像装置２にて撮像されなくなる。このことより、長辺が３００画素より多い画素で構成されていると判定された場合（Ｓ１０８のＮ）、Ｓ１０２で選択された黒色画素連結領域は、基準セル１００ではないと判断することとし、Ｓ１１６に進む。
【００３７】
長辺が３００画素以下の画素で構成されていると判定された場合（Ｓ１０８のＹ）、基準セル検出部５２は、基準セル候補領域の黒色画素の総数が、２０画素以上かつ１５００画素未満であるか否かを判定する（Ｓ１１０）。黒色画素の総数が２０画素未満の場合（Ｓ１１０のＮ）、短辺が２０画素より少ない画素で構成された場合と同様の問題が発生し、また、１５００画素以上である場合（Ｓ１１０のＮ）、長辺が３００画素より多い画素で構成された場合と同様の問題が発生する。したがって、これらの場合には、基準セル候補領域が基準セル１００である可能性が小さいと判断することとし、Ｓ１１６に進む。
【００３８】
基準セル候補領域の黒色画素の総数が２０画素以上かつ１５００画素未満である場合（Ｓ１１０のＹ）、基準セル検出部５２が、基準セル候補領域の方形らしさを判定する（Ｓ１１２）。方形らしさは、既述した特許文献１に記載されるように、基準セル候補領域のモーメントをもとに求められる。方形でないと判定する場合（Ｓ１１２のＮ）、基準セル候補領域が基準セル１００でないと判断することとし、Ｓ１１６に進む。方形であると判定される場合（Ｓ１１２のＹ）、基準セル検出部５２は、基準セル候補領域を基準セル１００として設定し（Ｓ１１４）、基準セル候補領域とされた黒色画素連結領域のラベリング番号を、ＲＡＭに記憶させる。このようにして、基準セル１００を検出することができる。画像データ中に１枚のゲームカード４しか含まれていない場合、基準セル１００を検出した時点で、基準セルの検出処理を終了する。一方、ゲームカード４が複数含まれている可能性がある場合には、Ｓ１１６に進む。
【００３９】
基準セル検出部５２は、カウント値ｊが基準セル候補領域の総数Ｍに等しいか否かを判定する（Ｓ１１６）。カウント値ｊが総数Ｍに達していない場合（Ｓ１１６のＮ）、カウント値ｊを１インクリメントして（Ｓ１１８）、Ｓ１０２のステップに戻る。一方、カウント値ｊが総数Ｍに達すると（Ｓ１１６のＹ）、この基準セル検出処理を終了する。
【００４０】
図４に戻って、Ｓ２０の基準セル検出処理において基準セル１００が検出されない場合（Ｓ２２のＮ）、ゲームカード４の存在を確認できないため、２次元コードの認識処理を終了する。一方、基準セル１００が検出されると（Ｓ２２のＹ）、コード部検出処理が実行される（Ｓ２４）。
【００４１】
図６は、コード部の検出処理を示すフローチャートである。まず、コード部検出部５４は、図５のＳ１１４において設定された基準セル１００の総数Ｎを読み出し、カウンタの値ｋを１に初期設定する（Ｓ２００）。なお、Ｓ１１４において設定した基準セル１００には、設定した順に番号をふっているものとする。続いて、図４のＳ１２においてラベリングした黒色画素連結領域の総数Ｍを読み出し、カウンタの値ｊを１に初期設定する（Ｓ２０２）。コード部検出部５４は、カウント値ｊに対応する番号の黒色画素連結領域を検出し、それを左下隅のコーナーセル候補領域として選択する（Ｓ２０４）。
【００４２】
次に、コード部検出部５４は、選択した左下隅コーナーセル候補領域が、図４のＳ２０において検出してカウント値ｋに対応する番号の基準セル１００に対して予め設定された探索範囲内に存在するか否かを判定する（Ｓ２０６）。基準セル１００と左下隅のコーナーセル１０４ｄとの位置関係は図２に示すように予め定められているため、基準セル１００の座標データから、左下隅コーナーセルを探索する範囲を絞ることが可能である。なお、基準セル１００は横長の矩形状を有するため、長辺側を挟んで対向する２つの位置に探索範囲を設定することが可能となる。探索範囲内に存在しない場合（Ｓ２０６のＮ）、その黒色画素連結領域は左下コーナーセル１０４ｄではないと判断され、Ｓ２３２に進む。探索範囲内に存在する場合（Ｓ２０６のＹ）、その黒色画素連結領域を左下コーナーセル１０４ｄとして設定する（Ｓ２０８）。
【００４３】
左下コーナーセル１０４を設定した後、コード部検出部５４は、黒色画素連結領域の番号をカウントする他のカウンタの値ｌを１に初期設定する（Ｓ２１０）。コード部検出部５４は、カウント値ｌに対応する番号の黒色画素連結領域を検出し、それを右下隅のコーナーセル候補領域として選択する（Ｓ２１２）。
【００４４】
次に、コード部検出部５４は、Ｓ２０８で設定した左下コーナーセル１０４ｄの画素数（面積）と、Ｓ２１２で選択した右下コーナーセル候補領域の画素数（面積）の比を算出し、その比（面積比）が例えば１／６以上または６倍以下であるか否かを判定する（Ｓ２１４）。コーナーセル１０４は撮像装置２からの距離に応じて取得される画素数が変化する。具体的に、撮像装置２に近ければ大きい面積を有し、離れれば面積は小さくなる。そのため、コーナーセル同士であっても画像データ中の面積は異なるケースが想定される。しかしながら、例えば左下コーナーセルと右下コーナーセルの比が１／６より小さく、または６倍よりも大きくなるようなケース（Ｓ２１４のＮ）は通常想定しえないため、これらは一つの２次元コードにおけるコーナーセルであるとみなすことはできず、Ｓ２２６に進む。
【００４５】
面積比が例えば１／６以上、６倍以下である場合（Ｓ２１４のＹ）、コード部検出部５４は、左下コーナーセル１０４ｄの中心点と、Ｓ２１２で選択した右下コーナーセル候補領域の中心点の距離が所定の条件を満たすか否かを判定する（Ｓ２１６）。ここで所定の条件とは、中心点同士の距離が例えば基準セル１００の長辺の長さに近似していることであってもよい。所定の条件が成立しなければ（Ｓ２１６のＮ）、Ｓ２２６にすすみ、所定の条件が成立すると（Ｓ２１６のＹ）、コード部検出部５４は、その黒色画素連結領域を右下コーナーセル１０４ｃとして設定する（Ｓ２１８）。
【００４６】
以上のように左下コーナーセル１０４ｄ、右下コーナーセル１０４ｃを設定すると、コード部検出部５４が、設定した基準セル１００、左下コーナーセル１０４ｄ、右下コーナーセル１０４ｃを、ディスプレイ７の画面上のＸ軸方向およびＹ軸方向にアフィン変換する（Ｓ２２０）。なお、１ブロックの長さは、Ｓ２０で設定した基準セル１００の長辺または短辺の長さに基づいて算出される。コード部検出部５４は、アフィン変換して得られた画像から、コード部１１０の領域に含まれる黒色画素連結領域をセルとしてマッピングし、コードマップを生成する（Ｓ２２２）。
【００４７】
コード部検出部５４は、生成したコードマップのセルのうち、４隅のコーナーセル１０４を検出し、その周りの３ブロック領域が、白色画素とされているか否かを判定する（Ｓ２２４）。コーナーセル１０４の周囲の３ブロック領域が白色画素で構成されている場合（Ｓ２２４のＹ）、そのコードマップを２次元コードのコード部１１０と設定して（Ｓ２３０）、Ｓ２３６に進む。コーナーセル１０４の周囲の３ブロック領域が白色画素でない場合、Ｓ２２６に進む。
【００４８】
Ｓ２２６では、カウント値ｌが黒色画素連結領域の総数Ｍに等しいか否かを判定し、カウント値ｌがＭに等しければ（Ｓ２２６のＹ）、Ｓ２３２に進み、等しくなければ（Ｓ２２６のＮ）、カウント値ｌを１インクリメントして（Ｓ２２８）、Ｓ２１２に戻る。
【００４９】
Ｓ２３２では、カウント値ｊが黒色画素連結領域の総数Ｍに等しいか否かを判定し、カウント値ｊがＭに等しければ（Ｓ２３２のＹ）、Ｓ２３６に進み、等しくなければ（Ｓ２３２のＮ）、カウント値ｊを１インクリメントして（Ｓ２３４）、Ｓ２０４に戻る。
【００５０】
Ｓ２３６では、カウント値ｋが設定した基準セル１００の総数Ｎに等しいか否かを判定し、カウント値ｋがＮに等しくなければ（Ｓ２３６のＮ）、カウント値ｋを１インクリメントして（Ｓ２３８）、Ｓ２０２に戻る。これにより、画像データにおいて複数の２次元コードを探索することが可能となる。カウント値ｋがＮに等しくなると（Ｓ２３６のＹ）、以上により、コード部１１０の検出処理が終了する。
【００５１】
図４に戻って、Ｓ２４のコード部検出処理においてコード部１１０が検出されない場合（Ｓ２６のＮ）、２次元コードの存在を確認できないため、２次元コードの認識処理を終了する。一方、コード部１１０が検出されると（Ｓ２６のＹ）、コードデータの検証処理が実行される（Ｓ２８）。
【００５２】
図７は、コードデータの検証処理を示すフローチャートである。既述したように、３３ビットのコードデータ中、所定のアルゴリズムで生成された９ビットのチェックデータと、２４ビットの情報データとが存在し、この処理ではチェックデータを用いて、コードデータを検証する。以下では、所定のアルゴリズムで生成したチェックデータを、そのアルゴリズムに基づいてコードデータからチェックデータを生成して照合することで、コードデータを検証する処理を行う。
【００５３】
まず、検証処理部５６は、後のステップであるＳ３０４、Ｓ３０８で算出される基準値を、１ビット右方向にシフトする回数をカウントするカウンタの値ｐを１に初期設定する（Ｓ３００）。次に、検証処理部５６は、コード部１１０のコードマップから、コードデータおよびチェックデータの値を算出する（Ｓ３０２）。
【００５４】
検証処理部５６は、算出したコードデータの値（ビットストリーム）と、０ｘＦＦＦＦＦＦとの排他的論理和演算を行い（Ｓ３０４）、その結果得られた値（ビットストリーム）を基準値（基準ビットストリーム）とする。基準ビットストリームのLSB(Least Significant Bit)に"１"が立っているか否かを判定し（Ｓ３０６）、"１"が立っていないと判定した場合（Ｓ３０６のＮ）、検証処理部５６は、基準値（基準ビットストリーム）と、０ｘ８４０８との排他的論理和演算を行い（Ｓ３０８）、その結果得られた値（ビットストリーム）を新たな基準値（基準ビットストリーム）とし、Ｓ３１０に進む。LSBに"１"がたっている場合（Ｓ３０６のＹ）、同様にＳ３１０に進む。
【００５５】
検証処理部５６は、Ｓ３０４またはＳ３０８において算出した基準値（基準ビットストリーム）を１ビットだけ右にシフトさせ（Ｓ３１０）、カウント値ｐが、予め定めたシフト回数である２４に等しいか否かを判定する（Ｓ３１２）。ｐ＝２４ではないと判定した場合（Ｓ３１２のＮ）、カウント値ｐを１だけインクリメントした後（Ｓ３１４）、Ｓ３０６に戻る。
【００５６】
ｐ＝２４であると判定した場合（Ｓ３１２のＹ）、算出されたビットストリームと、０ｘ１ＦＦとの論理積演算を行う（Ｓ３１６）。検証処理部５６は、論理積演算より得られ値が、算出したチェックデータの値と等しいか否かを判定し（Ｓ３１８）、等しいと判定した場合（Ｓ３１８のＹ）、図４のＳ２４で検出されたコード部１１０が、２次元コードとして適正なパターンであるとし、２次元コードのコード部１１０を確定する（Ｓ３２０）。チェックコードと等しくなければ（Ｓ３１８のＮ）、コード部１１０の読み取りに誤りがあったことを判定して、コードデータの検証処理を終了する。なお、図７では１つのコード部１１０の検証処理のみを示しているが、複数のコード部１１０が検出されている場合は、それぞれについてこの検証処理を実行する。
【００５７】
図４に戻って、Ｓ２８のコードデータ検出処理においてコード部１１０が確定されない場合（Ｓ３０のＮ）、２次元コードの存在を確認できないため、２次元コードの認識処理を終了する。一方、コード部１１０が確定されると（Ｓ３０のＹ）、コードデータの値、すなわち、２次元コードの値を、例えばＲＡＭに記憶させ、保持し（Ｓ３２）、２次元コードの認識処理を終了する。
【００５８】
以下に、３次元座標系におけるゲームカード４の位置および方向の求め方について説明する。ゲームカード４の仮想３次元座標系の位置および方向を求めるために、本実施例では、撮像装置２の画角、スクリーン解像度、４つのコーナーセル１０４のスクリーン座標位置、実際のコーナーセル１０４間の距離を利用する。なお、スクリーンとは、撮像装置２により撮像された画像を表示するディスプレイ７の画面である。
【００５９】
（ステップ１）
まず、視点からスクリーン投影面までの距離を求める。ここでは、カメラの画角とスクリーン解像度により、視点からスクリーン投影面までの距離を求める。
カメラの水平方向の画角：θ
スクリーンの水平方向の解像度：Ｗ
視点からスクリーン投影面までの距離：Ｐ
とすると、以下の計算式が成り立つ。
Ｐ＝（Ｗ×０．５）／ｔａｎ（θ×０．５）
【００６０】
（ステップ２）
次に、視点から各コーナーセル１０４に伸びる３次元ベクトルを求める。
コーナーセルのスクリーン座標位置：ＳＸ、ＳＹ
視点からスクリーン投影面までの距離：Ｐ
コーナーセルへ伸びる３次元ベクトル：Ｖ
とすると、以下の計算式が成り立つ。
Ｖ＝（ＳＸ，ＳＹ，Ｐ）
なお、スクリーン座標位置は、スクリーンの中央を原点としている。
【００６１】
（ステップ３）
視点と、隣り合う２つのコーナーセルの３点が形成する平面の法線ベクトルを求める。この法線ベクトルは、合計で４つ生成される。
視点からコーナーセル１０４ａへ伸びる３次元ベクトル：Ｖ１
視点からコーナーセル１０４ｂへ伸びる３次元ベクトル：Ｖ２
視点からコーナーセル１０４ｃへ伸びる３次元ベクトル：Ｖ３
視点からコーナーセル１０４ｄへ伸びる３次元ベクトル：Ｖ４
視点とコーナーセル１０４ａ、１０４ｂが形成する平面の法線ベクトル：Ｓ１２
視点とコーナーセル１０４ｂ、１０４ｃが形成する平面の法線ベクトル：Ｓ２３
視点とコーナーセル１０４ｃ、１０４ｄが形成する平面の法線ベクトル：Ｓ３４
視点とコーナーセル１０４ｄ、１０４ａが形成する平面の法線ベクトル：Ｓ４１
とすると、以下の計算式が成り立つ。
Ｓ１２＝Ｖ１×Ｖ２
Ｓ２３＝Ｖ２×Ｖ３
Ｓ３４＝Ｖ３×Ｖ４
Ｓ４１＝Ｖ４×Ｖ１
なお、「×」は、外積を指す。
【００６２】
（ステップ４）
続いて、ゲームカード４の３次元上での方向（座標軸）を求める。ステップ３で求めた４つの法線ベクトルをもとに、カードの座標軸が求まる。
カードのローカル座標Ｘ軸（カード表面に対して左右方向）：ＶＸ
カードのローカル座標Ｙ軸（カード表面に対して貫く方向）：ＶＹ
カードのローカル座標Ｚ軸（カード表面に対して上下方向）：ＶＺ
とすると、以下の計算式が成り立つ。
ＶＸ＝Ｓ１２×Ｓ３４
ＶＺ＝Ｓ２３×Ｓ４１
ＶＹ＝ＶＺ×ＶＸ
【００６３】
（ステップ５）
最後に、ゲームカード４の３次元上での位置を求める。ステップ４では、ゲームカード４のローカル座標変換マトリクスを求めたが、現実のコーナーセル間の距離が分かれば、カードの位置は容易に求められる。コーナーセル１０４ａの３次元座標位置を変数として表現すると、その変数を使ってコーナーセル１０４ｂ、１０４ｃ、１０４ｄの３次元座標位置を表すことができる。４つのコーナーセルのスクリーン座標位置は判明しているため、これらの計算式の連立方程式を解くことで、ゲームカード４の３次元座標位置を特定できる。
【００６４】
以上の実施例に示したように、図２に示す２次元コードを利用することで、コード部１１０におけるコーナーセル１０４の認識率を高めることができるとともに、２次元座標系におけるコーナーセル１０４の座標位置を正確に求めることが可能となる。具体的には、コーナーセル１０４を大きく形成することで、コーナーセル１０４の中心位置を正確に求めることができるため、ゲームカード４の位置を正確に特定できる。また、複数のコーナーセル１０４の中心位置を正確に求めることで、基準セル１００とコーナーセル１０４との位置関係を正確に把握して、アフィン変換の精度を高めることができ、ゲームカード４の位置やゲームカード４が向いている方向などを正確に特定できる。
【００６５】
図８は、ゲームカードの表面に印刷した２次元コードの別の例を示す。ゲームカード４の表面には、所定の形状を有する基準セル１００およびコード部１１０が配置されている。図２の２次元コードと比較すると、図８に示す２次元コードでは、コードデータ部分１０２を取り囲む複数のコーナーセル１０４ａ、１０４ｂ、１０４ｃ、１０４ｄが円形に形成されている。既述したように、コーナーセル１０４の２次元座標位置は、コーナーセル１０４の中心点により特定される。コーナーセル１０４が丸い形状を有することで、撮像装置２に対するゲームカード４の向きによらず、撮像装置２により撮像されるコーナーセル１０４の形状は変化しない。そのため、撮像装置２に対する向きによって、コーナーセル１０４の中心点が変わらず、したがって安定して中心点を取得することが可能となる。これにより、既述したように、ゲームカード４の位置情報、方向情報、距離情報を正確に求めることが可能となる。なお、方形セル１０６を丸く形成してもよい。また、コーナーセル１０４を円形にするだけでなく、図２に関して説明したように、方形セル１０６に対して大きく形成することで、コーナーセル１０４の座標位置をさらに高精度に求めることが可能となる。
【００６６】
図９は、ゲームカードの表面に印刷した２次元コードのさらに別の例を示す。ゲームカード４の表面には、基準セル１００およびコード部１１０が配置されている。図２の２次元コードと比較すると、図９に示す２次元コードでは、所定の形状を有する基準セル１００、それぞれ２次元配置することでコードデータを構成する複数の方形セル１０６、コードデータ部分１０２の領域を取り囲むように配置される複数のコーナーセル１０４の少なくとも１つのセルが、他のセルと異なる色を付けられる。例えば、基準セル１００に赤色、方形セル１０６に緑色、コーナーセル１０４に青色とそれぞれのセルに異なる色を割り当ててもよい。なお、ここで割り当てる色は、撮像装置２において取り込んで、所定の輝度閾値を基準として２値化できる色であればよく、必ずしも人間の目に可視であることは要求されない。使用する撮像装置２の撮像特性が予め分かっている場合は、その特性に合わせてセルを色づけしてもよい。
【００６７】
本実施例の２次元コードの認識処理では、図４のＳ２０に示すように、まず基準セル１００を検出することが条件となる。２次元コードの認識処理全体のなかでも、この基準セル検出処理の負荷は高く、したがって、画像データ中から基準セル１００を効率的に抽出できることが好ましい。そこで、複数種類のセルのうち、少なくとも基準セル１００には、方形セル１０６およびコーナーセル１０４とは異なる色をつけることが好ましい。
【００６８】
撮像装置２の受光面の前面にはＲＧＢのカラーフィルタが配置されており、フレーム画像ごとに、ＲＧＢのそれぞれの画素値が２５６階調で表現されたデータとして記録される。この例において、２値化処理部５０が、２値化処理するためのＲＧＢの画素値の範囲を設定する機能をもつ。基準セル１００が赤色で塗りつぶされている場合、図４のＳ１０の２値化処理において、２値化処理部５０が、基準セル用のＲＧＢの画素値の範囲を設定する。例えば、２値化処理部５０は、赤色（Ｒ）の画素値の範囲を２００〜２５５、緑色（Ｇ）の画素値の範囲を０〜１００、青色（Ｂ）の画素値の範囲を０〜１００と設定する。この設定に基づいて、２値化処理部５０は、この範囲内にあるＲＧＢの複合画素を抽出して、その画素値を"１"に符号化する。例えば、Ｒ画素値が２２５、Ｇ画素値が３０、Ｂ画素値が５０となる複合画素の画素値は"１"に符号化され、２値画像としての色が黒色に設定される。一方、ＲＧＢの画素値がこれらの範囲内にない複合画素の画素値は"０"に符号化され、２値画像としての色が白色に設定される。このように、赤色の画素を画像データから抽出することで、図４のＳ１２において、２値画像において黒色画素となる連結領域をラベリングすることができる。黒色画素として抽出する画素を画像データにおいて特定の色、ここでは赤色のものに限定することで、抽出するノイズの数を少なくでき、基準セル検出部５２は、フレーム画像の２値化データから基準セル１００を検出する時間を短縮できる。
【００６９】
なお、画素値はカラーフィルタ特性の影響を受けるため、カラーフィルタの特性も加味した画素値の範囲設定を行うために、ゲームカード４を台３に配置した状態で、基準セル１００の赤色の画素値を調査してもよい。これにより、撮像装置２において取得される基準セル１００のＲＧＢの画素値を特定することができ、特定した画素値に若干のマージンを与えた範囲で２値化処理を行うことで、検出する黒色画素連結領域の数を飛躍的に少なくすることが可能となる。特に、ゲームシステム１においては、リアルタイムで処理することが好ましいため、基準セル１００を効率的に抽出できることには、大きなメリットがある。
【００７０】
なお、他の種類のセル、例えばコーナーセル１０４、方形セル１０６に色づけを施した場合も同様である。コーナーセル１０４を青色とする場合、図４のＳ１０において、２値化処理部５０が、コーナーセル用のＲＧＢの画素値の範囲を設定する。例えば、２値化処理部５０は、赤色（Ｒ）の画素値の範囲を０〜１００、緑色（Ｇ）の画素値の範囲を０〜１００、青色（Ｂ）の画素値の範囲を２００〜２５５と設定する。この設定に基づいて、２値化処理部５０は、この範囲内にあるＲＧＢの複合画素を抽出して、その画素値を"１"に符号化する。例えば、Ｒ画素値が２０、Ｇ画素値が３０、Ｂ画素値が２４０となる複合画素の画素値は"１"に符号化され、２値画像としての色が黒色に設定される。一方、ＲＧＢの画素値がこれらの範囲内にない複合画素の画素値は"０"に符号化され、２値画像としての色が白色に設定される。このように、青色の画素を画像データから抽出することで、図４のＳ１２において、２値画像において黒色画素となる連結領域をラベリングすることができる。
【００７１】
このように、青色の強い画像を黒色画像に変換する２値化処理を行ってから、Ｓ１２において黒色画素連結領域としてラベリングされたものを、コード部検出部５４が、図６のフローに示すコーナーセル候補領域として選択するために利用する。黒色画素として抽出する画素を画像データにおいて特定の色、ここでは青色のものに限定することで、抽出するノイズの数を少なくでき、コード部検出部５４は、フレーム画像の２値化データからコーナーセル１０４を検出する時間を短縮できる。方形セル１０６を緑色とした場合は、図４のＳ１０において緑色の強い画像を黒色画像に変換する２値化処理を行ってから、Ｓ１２において黒色画素連結領域としてラベリングされたものを、図６のＳ２２２のコードマップ生成処理に利用する。３種類のセルに異なる色づけをした場合、２値化処理をする回数が増えることになるが、２値化処理した後の連結領域を探索する処理量が大幅に低減されるため、全体的な効率化を実現できる。
【００７２】
図９に示した２次元コードは、色づけしたセルを有しており、色づけしたセルは、大きく形成されてもよく、また図８に示すように、丸く形成されてもよい。
【００７３】
図１０は、実施例における画像データの伝送システムを示す。画像データ伝送システム２００は、画像データを生成する画像データ生成装置２０１、画像データを送信する送信局２０４、送信された画像データを受信する端末装置２０２を有して構成される。端末装置２０２は、受信した画像データを表示するための表示装置２０３を有する。画像データ伝送システム２００は、無線通信によりデータを伝送しているが、有線通信によりデータを伝送するものであってもよい。
【００７４】
画像データ生成装置２０１は、上述した２次元コード、すなわち図２、図８および図９に関して説明した２次元コードの画像データを、端末装置２０２の表示装置２０３に表示させるためのデータフォーマットにしたがって生成する。画像データ生成装置２０１は、図２に示す２次元コードの画像データとして、複数の方形セルを表示装置２０３上の所定の座標位置に表示させるためのデータと、所定の座標位置に表示される複数の方形セルを取り囲む座標位置に複数のコーナーセルを表示させるためのデータを生成してもよい。画像データ生成装置２０１は、表示装置２０３上で、コーナーセルが方形セルよりも大きく表示されるように、コーナーセルと方形セルのデータを設定する。
【００７５】
画像データ生成装置２０１は、図８に示す２次元コードの画像データとして、複数の方形セルを表示装置２０３上の所定の座標位置に表示させるためのデータと、所定の座標位置に表示される複数の方形セルを取り囲む座標位置に複数のコーナーセルを表示させるためのデータを生成してもよい。画像データ生成装置２０１は、コーナーセルが丸い形状に表示されるように、コーナーセルのデータを設定する。
【００７６】
画像データ生成装置２０１は、図９に示す２次元コードの画像データとして、所定の形状を有する基準セルを表示装置上の所定の位置に表示させるためのデータと、基準セルに対して定められる領域の範囲内で複数の多辺形セルを表示させるためのデータと、領域を取り囲む座標位置に複数のコーナーセルを表示させるためのデータを生成してもよい。画像データ生成装置２０１は、基準セル、多辺形セル、コーナーセルの少なくとも一つのセルの色が、他のセルの色と異なるように設定する。
【００７７】
送信局２０４は、画像データ生成装置２０１により生成された画像データを、端末装置２０２に送信する。画像データは、端末装置２０２において解凍可能な形式で圧縮されていることが好ましく、また端末装置２０２におけるブラウザ機能などにより表示されるデータフォーマットで作成されている必要がある。送信局２０４は、例えばセルごとの画像データを表示座標位置に対応付けて送信することで、データ送信量を削減することが可能となる。端末装置２０２は、表示装置２０３上に２次元コードを表示する。図１のゲームシステム１において、ユーザは、表示装置２０３に表示された２次元コードを、ゲームカード４の代わりに使用して、撮像装置２により読み取らせることができる。これにより、ユーザは、ゲームカード４を有していなくても、画像データを端末装置２０２にダウンロードすることで、ゲームシステム１に参加することができる。
【００７８】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【００７９】
【図１】実施例にかかるゲームシステムの構成を示す図である。
【図２】ゲームカードの表面に印刷した２次元コードを示す図である。
【図３】画像解析装置の構成を示す図である。
【図４】２次元コードの認識処理の処理手順を示すフローチャートである。
【図５】基準セルの検出処理を示すフローチャートである。
【図６】コード部の検出処理を示すフローチャートである。
【図７】コードデータの検証処理を示すフローチャートである。
【図８】ゲームカードの表面に印刷した２次元コードの別の例を示す図である。
【図９】ゲームカードの表面に印刷した２次元コードのさらに別の例を示す図である。
【図１０】実施例における画像データの伝送システムを示す図である。
【符号の説明】
【００８０】
１・・・ゲームシステム、２・・・撮像装置、４・・・ゲームカード、６・・・出力装置、７・・・ディスプレイ、１０・・・画像処理装置、２０・・・画像解析装置、３０・・・ゲーム装置、４０・・・フレーム画像取得部、４２・・・実オブジェクト抽出部、４４・・・状態決定部、５０・・・２値化処理部、５２・・・基準セル検出部、５４・・・コード部検出部、５６・・・検証処理部、１００・・・基準セル、１０２・・・コードデータ部分、１０４・・・コーナーセル、１０６・・・方形セル、１０８・・・領域、１１０・・・コード部、２００・・・画像データ伝送システム、２０１・・・画像データ生成装置、２０２・・・端末装置、２０３・・・表示装置、２０４・・・送信局。
【図１】
2006113852.tif 000003
【図２】
2006113852.tif 000004
【図３】
2006113852.tif 000005
【図４】
2006113852.tif 000006
【図５】
2006113852.tif 000007
【図６】
2006113852.tif 000008
【図７】
2006113852.tif 000009
【図８】
2006113852.tif 000010
【図９】
2006113852.tif 000011
【図１０】
2006113852.tif 000012