(57)【要約】【課題】キャラクタＬＣＤモジュールのように、１単位がｎ×ｍドットで構成されるドット・マトリクスが隙間を介して一定の間隔で並べられたような表示領域であっても、２次元コードを表示可能とし、該表示領域に表示された画像から２次元コードの読み取りを可能とすること。【解決手段】キャラクタＬＣＤモジュールのような表示領域で２次元コードを表示する際、２次元コードをｎ×ｍドットの小画像に分割し、表示領域の１単位のドット・マトリクスがｎ×ｍドットで構成されることを示すパターンとともに表示する。カメラ付き携帯電話・スマートフォンなどで表示領域を撮影して２次元コードを読み取る際、前記パターンを検出することで、ドット・マトリクスや隙間に関連する各値を算出し、撮影で取得した画像イメージから隙間を取り除いた２次元コード画像を再構成する。【選択図】図８
2015049753.tif 000002
【特許請求の範囲】
【請求項１】
１単位がｎ×ｍドットで構成されるドット・マトリクスが隙間を介して一定の間隔で並べられた表示領域に２次元コードを表示する装置であって、
１単位のドット・マトリクスがｎ×ｍドットで構成されることおよび前記隙間の画素数を示すパターンを生成するパターン生成手段と、
前記生成したパターンと、分割した２次元コード画像とを前記表示領域に表示する表示手段と
を備えたことを特徴とする２次元コードを表示する装置。
【請求項２】
情報が記録された２次元コード画像を生成する２次元コード画像生成手段と、
前記生成した２次元コード画像をｎ×ｍドットごとに小画像に分割する分割手段と、
前記表示領域の桁数および行数に収まるよう、前記分割された小画像を小画像グループとしてグループ化するグループ化手段と
をさらに備えたことを特徴とする請求項１に記載の２次元コードを表示する装置。
【請求項３】
前記パターン生成手段は、第一のパターンと、第二のパターンとを生成し、
前記表示手段は、前記表示領域の所定の位置に前記生成した第一のパターンおよび前記第二のパターンを配置し、当該配置されていない前記表示領域の空いている位置に前記小画像グループを配置して、前記小画像グループを表示することを特徴とする請求項２に記載の２次元コードを表示する装置。
【請求項４】
前記パターンは、検出を容易にするための特徴的なパターンを含むことを特徴とする請求項１に記載の２次元コードを表示する装置。
【請求項５】
前記小画像グループが複数あるとき、前記表示手段は、前記表示領域に小画像グループを１つずつ切り替えて表示することを特徴とする請求項２に記載の２次元コードを表示する装置。
【請求項６】
１単位がｎ×ｍドットで構成されるドット・マトリクスが隙間を介して一定の間隔で並べられた表示領域に２次元コードを表示する方法であって、
１単位のドット・マトリクスがｎ×ｍドットで構成されることおよび前記隙間の画素数を示すパターンを生成するパターン生成ステップと、
前記生成したパターンと、分割した２次元コード画像とを前記表示領域に表示する表示ステップと
を備えたことを特徴とする２次元コードを表示する方法。
【請求項７】
コンピュータに、請求項６に記載の方法を実行させるための、プログラム。
【請求項８】
１単位がｎ×ｍドットで構成されるドット・マトリクスが隙間を介して一定の間隔で並べられた表示領域に表示された２次元コードを読み取る装置であって、
１単位のドット・マトリクスがｎ×ｍドットで構成されることと、前記隙間の画素数とを示す第一および第二のパターンならびに２次元コード画像を分割しグループ化することで得た小画像グループを含む画像イメージを撮影する手段と、
前記撮影した画像イメージから、情報が記録された２次元コード画像を再構成する手段と
を備えたことを特徴とする２次元コードを読み取る装置。
【請求項９】
前記撮影した画像イメージの中から前記第一および第二のパターンを検出する手段と、
前記検出した第一または第二のパターンの何れかを走査することにより、前記撮影した画像イメージの中でドット・マトリクスの１ドットを占める横縦の画素数を夫々算出する手段と、
ドット・マトリクスの１単位の横方向の画素数と、ドット・マトリクスの１単位の縦方向の画素数と、前記算出したドット・マトリクスの１ドットを占める横縦の画素数とに基づき、ドット・マトリクスの１単位を構成する横縦のドット数を夫々算出する手段と、
前記検出した第一および第二のパターンの位置と、前記算出したドット・マトリクスの１ドットを占める横縦の画素数とに基づき、前記撮影した画像イメージの中での前記隙間の画素数を算出する手段と
前記算出した隙間の画素数を使って、前記撮影した画像イメージから隙間を取り除き、前記検出した第一および第二のパターンを前記撮影した画像イメージから取り除くことで、２次元コードの分割画像イメージを生成する手段と
をさらに備えたことを特徴とする請求項８に記載の２次元コードを読み取る装置。
【請求項１０】
前記第一および第二のパターンは、検出を容易にするための特徴的なパターンを含むことを特徴とする請求項８に記載の２次元コードを読み取る装置。
【請求項１１】
前記小画像グループが複数あるとき、複数の２次元コードの分割画像イメージが生成され、前記再構成する手段は、前記複数の２次元コードの分割画像イメージをつなぎ合わせることで、２次元コード画像を再構成することを特徴とする請求項８に記載の２次元コードを読み取る装置。
【請求項１２】
１単位がｎ×ｍドットで構成されるドット・マトリクスが隙間を介して一定の間隔で並べられた表示領域に表示された２次元コードを読み取る方法であって、
１単位のドット・マトリクスがｎ×ｍドットで構成されることと、前記隙間の画素数とを示す第一および第二のパターンならびに２次元コード画像を分割しグループ化することで得た小画像グループを含む画像イメージを撮影するステップと、
前記撮影した画像イメージから、情報が記録された２次元コード画像を再構成するステップと
を備えたことを特徴とする２次元コードを読み取る方法。
【請求項１３】
コンピュータに、請求項１２に記載の方法を実行させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元コードを表示する装置、方法、およびプログラムならびに２次元コードを読み取る装置、方法、およびプログラムに関する。具体的に本発明は、２次元コードを分割して表示する装置、方法、およびプログラムならびに分割された２次元コードを読み取る装置、方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、オフィスや家庭においては、プリンタ、複写機、スキャナ、ファクシミリ、デジタルカメラ、ビデオカメラ、プロジェクタ、電子文具など、さまざまな電子機器が普及している。これらの電子機器は、技術の発達により、日々、高機能化し、複雑化している。一方、これらの電子機器が広く普及することで、電子機器に関する知識が十分ではないユーザ、いわゆる初心者にも及ぶことになり、初心者が高機能化・複雑化した電子機器を使いこなせない、トラブルに際して対応できないといったケースも増えている。
【０００３】
電子機器にトラブルが発生した場合は、その電子機器の持つ表示部に何らかの情報を表示することが多い。複写機など一部の機器では大きな表示部を持ち、現在のトラブル状況やその対処方法などを表示する例もある。しかし、プリンタやファクシミリなど、特に安価な電子機器では、液晶パネルのような小さな表示部しか持たない場合が多い。そのため、このような安価な電子機器では、コード番号やメッセージのような簡易な情報だけを表示するのみで、トラブルの詳細や対処方法まで表示することはできない。
【０００４】
従来、電子機器の使用方法やトラブルに対する対処方法などは、製品に添付される文書形態の取扱説明書を参照することで得ることができた。また近年では、取扱説明書がＰＤＦなどの電子文書形態で製品に添付されることも多い。しかし、電子機器が高機能化・複雑化した昨今では、取扱説明書から必要な情報を探し出すことや、コード番号から対処方法を得ることは、初心者にとって困難なことである。また、年月を経て情報が更新されていたとしても、製品購入時に添付される取扱説明書からは最新の情報が得られない場合もある。さらに取扱説明書を紛失してしまうことで、必要な時に情報が得られないといった問題もあった。
【０００５】
このような問題を解決するため、特許文献１（特開２００７−０４１８４０）では、プリンタのトラブルの際、インターネット上からトラブルの詳細や対処方法などの最新の情報を得る技術が開示されている。特許文献１では、異常を示す情報をＱＲコード（（株）デンソーウェーブの登録商標）として構成、プリンタの表示部に表示するようにし、そのＱＲコードをカメラ付き携帯電話などで読み取り、インターネットに接続して必要な情報を得られるようにしている。
【０００６】
ＱＲコードに代表される２次元コードは、横方向および縦方向に配置されたドット（少なくとも１０ドット以上）により情報を表している。しかし、先述した安価なプリンタやファクシミリなどで使われる液晶パネルは、１行分の縦方向のドット数が１０ドットに満たない場合があり、その場合は２次元コードをすべて表示することができない。
【０００７】
このような問題を解決するため、特許文献２（特開２００７−０７９７８１）では、２次元コードを狭い領域に分割して表示し、それを読み取るための技術が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−０４１８４０号公報
【特許文献２】特開２００７−０７９７８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
先述の安価なプリンタやファクシミリなどでは、キャラクタＬＣＤモジュールと呼ばれる液晶パネルを利用している場合が多い。一般的なキャラクタＬＣＤモジュールの場合、１文字を５×７ドットのマトリクスで表現し、そのドット・マトリクスを水平方向に数桁、垂直方向に数行、配置することで１つのモジュールを構成している。通常、この１文字を表現するドット・マトリクスは、桁間あるいは行間に隙間を設けて配置されている。そのため、特許文献２に記載の技術を利用し、２次元コードを分割して表示したとしても、桁間あるいは行間にキャラクタＬＣＤモジュール本来の隙間が入るため、元の２次元コードを正しく復元できないという問題があった。
【００１０】
本発明は上述の問題点を解決するためのものであり、電子機器で利用されるキャラクタＬＣＤモジュール上に２次元コードを表示し、それを正しく読み取ることが可能な方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、１単位がｎ×ｍドットで構成されるドット・マトリクスが隙間を介して一定の間隔で並べられた表示領域に２次元コードを表示する装置であって、１単位のドット・マトリクスがｎ×ｍドットで構成されることおよび前記隙間の画素数を示すパターンを生成するパターン生成手段と、前記生成したパターンと、分割した２次元コード画像とを前記表示領域に表示する表示手段とを備えたことを特徴とする。
【発明の効果】
【００１２】
本発明に係る２次元コードの分割表示方法により、キャラクタＬＣＤモジュールのような桁間あるいは行間に隙間のある液晶パネル上であっても、２次元コードを表示することが可能になる。また、本発明に係る２次元コードの読取方法により、同様な液晶パネル上に表示された２次元コードを正しく読み取ることが可能になる。
【図面の簡単な説明】
【００１３】
【図１】第１・第２の実施形態に係る２次元コードを表示する機器のブロック構成図。
【図２】第１・第２の実施形態に係る２次元コードを読み取る機器のブロック構成図。
【図３】第１の実施形態に係る表示部として使用されるモジュールの説明図。
【図４】第１・第２の実施形態に係る所望の情報を含む２次元コード。
【図５】第１の実施形態に係る２次元コードを分割した図。
【図６】第１の実施形態に係るドット・マトリクスに関する各値の算出用パターン。
【図７】第１・第２の実施形態に係る特徴的なパターンの詳細図。
【図８】第１の実施形態に係る表示領域の表示例。
【図９】第１の実施形態に係る表示領域を撮影した画像イメージ。
【図１０】第１の実施形態に係る２次元コードの分割画像イメージ。
【図１１】第１の実施形態に係る２次元コードを表示するフローチャート。
【図１２】第１の実施形態に係る２次元コードを読み取るフローチャート。
【図１３】第２の実施形態に係る表示部として使用されるモジュールの説明図。
【図１４】第２の実施形態に係る２次元コードを分割した図。
【図１５】第２の実施形態に係るドット・マトリクスに関する各値の算出用パターン。
【図１６】第２の実施形態に係る表示領域の表示例。
【図１７】第２の実施形態に係る表示領域を撮影した画像イメージ。
【図１８】第２の実施形態に係る２次元コードの分割画像イメージ。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための最良の形態について図面を用いて説明する。  
（第１の実施形態）
本発明の第１の実施形態を図１から図１２を参照しながら説明する。
【００１５】
図１は、本発明に係る２次元コードを表示する機器のブロック構成図である。２次元コードを表示する機器１は、制御部１０１と、表示部１０５と、入力部１０６とから構成される。また、制御部１０１は、機器の様々な処理を制御するＣＰＵ１０２ならびに処理の際の記憶域として利用されるＲＡＭ１０３およびＲＯＭ１０４によって構成される。表示部１０５は、２次元コードの表示に利用される他、必要に応じて様々な情報を表示する。入力部１０６は、ユーザからの入力を受け取る。
【００１６】
図２は、本発明に係る２次元コードを読み取る機器のブロック構成図である。２次元コードを読み取る機器２は、制御部２０１と、デジタルカメラ２０５とから構成される。また、制御部２０１は、機器の様々な処理を制御するＣＰＵ２０２ならびに処理の際の記憶域として利用されるＲＡＭ２０３およびＲＯＭ２０４によって構成される。デジタルカメラ２０５は、前述の２次元コードを表示する機器１の表示部１０５に表示されている２次元コードを撮影し、その画像イメージをＲＡＭ２０３に保存する。
【００１７】
図３は、２次元コードを表示する機器１の表示部１０５として使用されるモジュールの説明図である。このモジュールは、一般的にキャラクタＬＣＤモジュールと呼ばれる液晶パネルなどを想定しており、表示領域３０１を有している。この表示領域３０１は、１単位がｎ×ｍドットで構成されるドット・マトリクスが、隙間を介して一定の間隔で並べられている。図３では、横６ドット、縦１１ドットで構成されるドット・マトリクスが、水平方向に８桁、垂直方向に４行、並べられたものを例示している。ＣＰＵ１０２は、この表示領域３０１の１ドットごとの点灯、消灯を制御し、文字や様々なパターンを表示することが可能である。なお、説明をわかりやすくするため、図中の表示領域３０１には各ドットを仕切る線が表示されているが、実際のモジュールにおいてはこのような線が見えるわけではない。これは、以降の表示領域に関する図や、そこに表示されるパターンにおいても同様である。
【００１８】
図４は、所望の情報を含む２次元コードを示す。ここでは、２次元コード画像４０１として横縦２９セルで構成されたＱＲコードを例示している。なお、小さな正方形を上下左右に配列させたマトリクス型の２次元コードであれば、Ｄａｔａ  Ｍａｔｒｉｘ（インターナショナルデータマトリックス社の登録商標）など、他の形式のものを利用してもよい。
【００１９】
図５は、所望の情報を含む２次元コード画像４０１を分割した図である。２次元コードを表示する機器１の表示部１０５に表示するため、表示領域３０１のドット・マトリクスの１単位のドット数（ｎ×ｍ、本実施例では６×１１）に収まるよう、２次元コード画像４０１は小画像５０１に分割される。また、この小画像５０１は、表示領域３０１の桁数、行数に合わせ、小画像グループ５０２としてグループ化される。
【００２０】
図６（ａ）は、表示領域３０１のドット・マトリクスに関する各値を算出するためのパターンを示す。ドット・マトリクスに関する各値を算出するためのパターンとして、２次元コードを表示する機器１の表示領域３０１上の所定の位置に第一のパターン６０１と、第二のパターン６０２とが表示される。また、図６（ｂ）は、２次元コードを読み取る機器２が表示領域３０１に表示された第一のパターン６０１および第二のパターン６０２を撮影することで得られる第一のパターン６０１および第二のパターン６０２の画像イメージを示す。この第一のパターン６０１および第二のパターン６０２には、特徴的なパターンＰが含まれている。２次元コードを読み取る機器２がこの特徴的なパターンＰを検出することで、表示領域３０１のドット・マトリクスに関する様々な値を算出することが可能となる。
【００２１】
図６（ａ）中で、ｎは表示領域３０１のドット・マトリクスの１単位の横方向のドット数、ｍは同縦方向のドット数を示す。図６（ｂ）中で、Ｄｗはドット・マトリクスの１ドットを占める横の画素数、Ｄｈは同縦の画素数を示す。Ｕｗはドット・マトリクスの１単位の横方向の画素数、Ｕｈは同縦方向の画素数を示す。Ｃｈは第一のパターン６０１に含まれる特長的なパターンＰと、第二のパターン６０２に含まれる特徴的なパターンＰとの各中心の横方向の距離を表す画素数、Ｃｖは同縦方向の距離を表す画素数を示す。Ｇｈはドット・マトリクス間の桁間の隙間の画素数、Ｇｖは同行間の隙間の画素数を示す。
【００２２】
図７（ａ）は、第一のパターンおよび第二のパターンに含まれる特徴的なパターンＰの詳細図である。この特徴的なパターンＰは、５ドット大の黒（暗）点の四角形と、３ドット大の白（明）点の四角形と、中心の１ドットの黒（暗）点との組み合わせで構成される。この特徴的なパターンＰを横切る３つの代表的な走査線（ア）（イ）（ウ）は、図７（ｂ）に示す通り、どの走査線も暗：明：暗：明：暗＝１：１：１：１：１の比率となっている。そのため、２次元コードを読み取る機器２は、この特徴的なパターンＰを容易に検出することができる。また、図７（ｃ）に示す通り、この特徴的なパターンＰの大きさや黒（暗）点の連続を走査することで、角θを得ることができる。よって、撮影した画像イメージに傾きがあるようであれば、適宜、傾き補正を行なうことも可能である。
【００２３】
図８は、表示領域３０１に、第一のパターン６０１と、第二のパターン６０２と、２次元コード画像４０１を分割した小画像５０１とを配置し、表示した例を示す。第一のパターン６０１と、第二のパターン６０２とは、表示領域３０１の左上の２桁×２行に表示される。複数の小画像５０１は、１個の小画像グループ５０２としてグループ化されている。表示領域３０１上では、小画像グループ５０２を一度に表示することが可能であるため、表示領域３０１内は表示例８０１のように表示される。
【００２４】
図９は、２次元コードを読み取る機器２のデジタルカメラ２０５によって撮影された画像イメージを示す。２次元コードを読み取る機器２が２次元コードを表示する機器１の表示領域３０１を撮影することで、画像イメージ９０１が得られる。この画像イメージ９０１は、２次元コードを読み取る機器２のＲＡＭ２０３に保存され、元の２次元コード画像４０１を得るために解析される。
【００２５】
図１０は、画像イメージ９０１から得られる、２次元コード部分のみを分割して抽出したイメージ（本明細書では「２次元コードの分割画像イメージ」と呼ぶ）を示す。画像イメージ９０１を解析し、ドット・マトリクスの桁間および行間の隙間ならびに第一のパターン６０１および第二のパターン６０２を取り除くことで、２次元コードの分割画像イメージ１００１を得ることができる。
【００２６】
図１１は、２次元コードを表示する機器１において実行される手順を示すフローチャートである。この手順は、２次元コードを表示する機器１のＲＡＭ１０３あるいはＲＯＭ１０４に保存されたプログラムをＣＰＵ１０２が読み込み実行することにより、実行される。図示はしていないが、この手順をＨＤＤなどの記憶媒体に保存するように２次元コードを表示する機器１を構成してもよい。以下、図１１を参照しながら２次元コードを表示する手順について説明する。
【００２７】
ステップＳ１１０１において、２次元コードを表示する機器１のＣＰＵ１０２は２次元コード画像生成手段として機能し、２次元コード画像を生成する。具体的には、２次元コードを表示する機器１において、何らかの状態が発生し、２次元コードを表示部１０５の表示領域３０１に表示する必要性が生じた際、ＣＰＵ１０２は、表示すべき情報を保持する２次元コード画像４０１を生成し、ＲＡＭ１０３に保持する。ここでは、生成する２次元コードの種類に合わせ、既知の２次元コード・エンコード用ライブラリが使用される。次いで、手順はステップＳ１１０２に進む。
【００２８】
ステップＳ１１０２において、２次元コードを表示する機器１は、２次元コード画像を小画像に分割する。具体的には、ＣＰＵ１０２は、ステップＳ１１０１で生成した２次元コード画像４０１を表示領域３０１のドット・マトリクスの１単位を構成する横縦のドット数（ｎ×ｍ）に合わせ、複数の小画像５０１に分割する。本実施例では、表示領域３０１のドット・マトリクスの１単位を構成する横縦のドット数が６×１１ドット、例示した２次元コード画像４０１は横縦ともに２９セルであるため、２次元コード画像４０１は１５（＝５×３）個の小画像５０１に分割される。次いで、手順はステップＳ１１０３に進む。
【００２９】
ステップＳ１１０３において、２次元コードを表示する機器１は、小画像を小画像グループにグループ化する。具体的には、ＣＰＵ１０２は、ステップＳ１１０２で分割することで得た複数の小画像５０１を表示領域３０１の桁数および行数に合わせ、小画像グループとしてグループ化する。なお、表示領域３０１の左上２桁×２行は、第一のパターン６０１および第二のパターン６０２を表示するために予約されている。本実施例における表示領域３０１の場合、桁数８、行数４であるため、１５個の小画像５０１は、１つの小画像グループ５０２としてグループ化される。次いで、手順はステップＳ１１０４に進む。
【００３０】
ステップＳ１１０４において、２次元コードを表示する機器１は、第一のパターンおよび第二のパターンを生成する。具体的には、ＣＰＵ１０２はパターン生成手段として機能し、第一のパターン６０１および第二のパターン６０２を生成する。この第一のパターン６０１および第二のパターン６０２は、特徴的なパターンＰを含んでいる。また、第一のパターン６０１および第二のパターン６０２は、特徴的なパターンＰの外周５ドットの四角形の辺を延長することで、表示領域３０１中のドット・マトリクスの１単位の横縦のドット数（本実施例では横６ドット、縦１１ドット）を示している。次いで、手順はステップＳ１１０５に進む。
【００３１】
ステップＳ１１０５において、２次元コードを表示する機器１は、第一のパターン、第二のパターン、および小画像グループを表示領域に表示する。具体的には、ＣＰＵ１０２は、ステップＳ１１０４で生成した第一のパターン６０１および第二のパターン６０２を、図６（ａ）のように配置する。そして、ステップＳ１１０３でグループ化した小画像グループ５０２とともに、表示領域３０１にて表示例８０１のように表示する。次いで、手順はステップＳ１１０６に進む。
【００３２】
ステップＳ１１０６において、２次元コードを表示する機器１は、まだ表示領域に表示していない小画像グループがあるか判断する。具体的には、ＣＰＵ１０２は、ステップＳ１１０３でグループ化した小画像グループのうち、まだ表示領域３０１で表示していないものがあるかを判断する。表示していない小画像グループがあると判断した場合、手順はステップＳ１１０５に戻り、表示していない小画像グループがないと判断した場合、手順はステップＳ１１０７に進む。本実施例では、ステップＳ１１０３でグループ化した小画像グループ５０２は１個だけであるため、ステップＳ１１０５には戻らず、ステップＳ１１０７に進む。
【００３３】
ステップＳ１１０７において、２次元コードを表示する機器１は、表示を繰り返すか判断する。具体的には、２次元コードを表示する機器１がすべての小画像グループを表示し終えると、ＣＰＵ１０２は、表示を最初から繰り返すかどうかを判断する。ここでは、一定時間、一定回数の表示を行なったら終わるように２次元コードを表示する機器１を構成してもよいし、入力部１０６から表示を終える指示を受けるように２次元コードを表示する機器１を構成してもよい。表示を繰り返すと判断した場合、手順はステップＳ１１０５に戻り、表示を繰り返さないと判断した場合、手順は終了する。
【００３４】
図１２は、２次元コードを読み取る機器２において実行する手順を示すフローチャートである。この手順は、２次元コードを読み取る機器２のＲＡＭ２０３あるいはＲＯＭ２０４に保存されたプログラムをＣＰＵ２０２が読み込み実行することにより、実行される。図示はしていないが、この手順をＨＤＤなどの記憶媒体に保存するように２次元コードを読み取る機器２を構成してもよい。以下、図１２を参照しながら２次元コードを読み取る手順について説明する。
【００３５】
ステップＳ１２０１において、２次元コードを読み取る機器２は、画像イメージを撮影する。具体的には、ＣＰＵ２０２は、２次元コードを表示する機器１の表示領域３０１にて表示例８０１のように表示されている画像イメージを、デジタルカメラ２０５を使用して撮影する。撮影の結果、得られた画像イメージ９０１は、Ａ／Ｄ変換や２値化といった処理を経て、ＲＡＭ２０３に保持される。次いで、手順はステップＳ１２０２に進む。
【００３６】
ステップＳ１２０２において、２次元コードを読み取る機器２は、第一のパターンおよび第二のパターンを検出する。具体的には、ＣＰＵ２０２は、ステップＳ１２０１で撮影した画像イメージ９０１の中から第一のパターン６０１と、第２のパターン６０２とを検出する。この検出は、画像イメージ９０１の中から特徴的なパターンＰを探し出すことで可能となる。第一のパターン６０１と、第二のパターン６０２とにおいては、特徴的なパターンＰの中心点を横切る走査線の明暗比が常に、暗：明：暗：明：暗＝１（＋α）：１：１：１：１（＋α）となるので、中心点を容易に検出可能である。なお、ここでいうαとは、隙間に依存する値である。また、画像イメージ９０１に傾きがあるようであれば、適宜、傾きの補正を行なう。このようにして得られた特徴的なパターンＰを含む近接する２個のパターンを選び出し、第一のパターン６０１および第二のパターン６０２とする。次いで、手順はステップＳ１２０３に進む。
【００３７】
ステップＳ１２０３において、２次元コードを読み取る機器２は、ドット・マトリクスの１ドットの縦横の画素数を算出する。具体的には、ＣＰＵ２０２は、ステップＳ１２０２で得られた第一のパターン６０１もしくは第二のパターン６０２を解析し、撮影された画像イメージ９０１内におけるドット・マトリクスの１ドットを占める横縦の画素数（Ｄｗ、Ｄｈ）を算出する。ステップＳ１２０２で説明した通り、特徴的なパターンＰの中心点を検出できるので、その中心点から横方向および縦方向の黒（暗）点の走査を行なうことで、ドット・マトリクスの１ドットを占める横縦の画素数（Ｄｗ、Ｄｈ）を得ることができる。次いで、手順はステップＳ１２０４に進む。
【００３８】
ステップＳ１２０４において、２次元コードを読み取る機器２は、ドット・マトリクスの１単位の縦横のドット数を算出する。具体的には、ＣＰＵ２０２は、ステップＳ１２０２で得られた第一のパターン６０１もしくは第二のパターン６０２を解析し、ドット・マトリクスの１単位を構成する横縦のドット数（ｎ、ｍ）を算出する。図６（ａ）に示した通り、第一のパターン６０１もしくは第二のパターン６０２は、特徴的なパターンＰの外周５ドットの四角形の辺を延長することで、表示領域３０１中のドット・マトリクスの１単位の横縦のドット数（ｎ×ｍ）を示している。そのため、特徴的なパターンＰの外周の辺の延長線の黒（暗）点を走査することで、ドット・マトリクスの１単位の横方向の画素数Ｕｗと、縦方向の画素数Ｕｈとを得ることができる。よって、以下の式（１）および式（２）によりドット・マトリクスの１単位を構成する横縦のドット数（ｎ、ｍ）を得ることができる。  
ｎ＝Ｕｗ÷Ｄｗ      式（１）
ｍ＝Ｕｈ÷Ｄｈ      式（２）
次いで、手順はステップＳ１２０５に進む。
【００３９】
ステップＳ１２０５において、２次元コードを読み取る機器２は、ドット・マトリクスの桁間・行間の隙間の画素数を算出する。具体的には、ＣＰＵ２０２は、ステップＳ１２０２で得られた第一のパターン６０１および第二のパターン６０２を解析し、撮影された画像イメージ９０１内におけるドット・マトリクスの桁間および行間の隙間の画素数（Ｇｈ、Ｇｖ）を算出する。第一のパターン６０１と、第二のパターン６０２とにそれぞれ含まれる特徴的なパターンＰの中心に注目すると、各パターンの中心間の距離を示す画素数が横方向にＣｈ、縦方向にＣｖであることを算出できる。図６（ａ）に示した通り、第一のパターン６０１と、第二のパターン６０２とにそれぞれ含まれる特徴的なパターンＰの中心の間には５ドット分＋隙間分の距離がある。よって、以下の式（３）および式（４）によりドット・マトリクスの桁間および行間の隙間の画素数（Ｇｈ、Ｇｖ）を得ることができる。  
Ｇｈ＝Ｃｈ−５×Ｄｗ      式（３）
Ｇｖ＝Ｃｖ−５×Ｄｈ      式（４）
次いで、手順はステップＳ１２０６に進む。
【００４０】
ステップＳ１２０６において、２次元コードを読み取る機器２は、２次元コードの分割画像イメージを生成する。具体的には、ＣＰＵ２０２は、画像イメージ９０１から、第一のパターン６０１と、第二のパターン６０２と、桁間および行間の隙間とを取り除くことで、２次元コードの分割画像イメージ１００１を生成する。ステップＳ１２０１で撮影された画像イメージ９０１には、第一のパターン６０１と、第二のパターン６０２と、各ドット・マトリクスの桁間および行間の隙間とが含まれている。従って、まず、ステップＳ１２０５で算出したドット・マトリクスの桁間および行間の隙間の画素数（Ｇｈ、Ｇｖ）を使い、画像イメージ９０１よりドット・マトリクスの桁間および行間の隙間を取り除く。続いて、ステップＳ１２０２で検出した第一のパターン６０１と、第二のパターン６０２とを取り除く。こうして、２次元コードの分割画像イメージ１００１を得ることができる。次いで、手順はステップＳ１２０７に進む。
【００４１】
ステップＳ１２０７において、２次元コードを読み取る機器２は、次の未処理の画像イメージがあるか判断する。具体的には、ＣＰＵ２０２は、ステップＳ１２０２からステップＳ１２０６までの処理を行なっていない画像イメージがまだあるかどうかを判断する。処理を行なっていない画像イメージがあると判断した場合、手順はステップＳ１２０２に戻り、処理を行っていない画像イメージがないと判断した場合、手順はステップＳ１２０８に進む。
【００４２】
ステップＳ１２０８において、２次元コードを読み取る機器２は、２次元コードを再構成する。具体的には、すべての画像イメージに対して、２次元コードの分割画像イメージを得られたら、ＣＰＵ２０２は、２次元コードの分割画像イメージをつなぎ合わせ、元の２次元コード画像４０１を再構成し、手順を終了する。本実施形態では、１個の２次元コードの分割画像イメージ１００１より、元の２次元コード画像４０１を再構成する。
【００４３】
以上、説明した通り、本実施形態により、１単位がｎ×ｍドットで構成されるドット・マトリクスが隙間を介して一定の間隔で並べられた表示領域であっても、２次元コードを表示し、それを正しく読み取ることが可能となる。
【００４４】
（第２の実施形態）
本発明の第２の実施形態を図１、図２、図４、図７、および図１１から図１８を参照しながら説明する。本実施形態は、２次元コードを表示しようとする表示領域の大きさ（行数）が十分ではない場合に対処している点で第１の実施形態と相違する。なお、図１、図２、図４、図７に示す構成については、（第１の実施形態）にて説明したものと同様であるため、ここでは詳細な説明は省略する。
【００４５】
図１３は、２次元コードを表示する機器１の表示部１０５として使用されるモジュールの説明図であり、このモジュールは、表示領域１３０１を有している。図１３では、横５ドット、縦７ドットで構成されるドット・マトリクスが、水平方向に８桁、垂直方向に１行、並べられたものを例示している。
【００４６】
図１４は、所望の情報を含む２次元コード画像４０１を分割した図である。２次元コード画像４０１は小画像１４０１に分割され、表示領域１３０１の桁数、行数に合わせ、小画像グループ１４０２〜１４０６としてグループ化される。
【００４７】
図１５（ａ）は、表示領域１３０１のドット・マトリクスに関する各値を算出するための第一のパターン１５０１および第二のパターン１５０２を示す。また、図１５（ｂ）は、２次元コードを読み取る機器２が表示領域１３０１に表示された第一のパターン１５０１および第二のパターン１５０２を撮影することで得られる第一のパターン１５０１および第二のパターン１５０２の画像イメージを示す。
【００４８】
図１５（ａ）中で、ｎは表示領域１３０１のドット・マトリクスの１単位の横方向のドット数、ｍは同縦方向のドット数を示す。図１５（ｂ）中で、Ｄｗはドット・マトリクスの１ドットを占める横の画素数、Ｄｈは同縦の画素数を示す。Ｕｗはドット・マトリクスの１単位の横方向の画素数、Ｕｈは同縦方向の画素数を示す。Ｃｈは第一のパターン１５０１と、第二のパターン１５０２とに含まれる特徴的なパターンＰの各中心の横方向の距離を表す画素数を示す（縦方向の距離は０）。Ｇｈはドット・マトリクス間の桁間の隙間の画素数を示す。
【００４９】
図１６は、表示領域１３０１に、第一のパターン１５０１と、第二のパターン１５０２と、２次元コード画像４０１を分割した小画像１４０１とを配置し、表示した例を示す。第一のパターン１５０１および第二のパターン１５０２は、表示領域１３０１の左２桁に表示される。複数の小画像１４０１は、５個の小画像グループ１４０２〜１４０６としてグループ化されている。本実施例では、表示領域１３０１の行数は１であり、表示領域１３０１上では、これらの小画像グループ１４０２〜１４０６を一度に表示することはできないため、表示領域１３０１は表示例１６０１〜１６０５のように切り替えつつ表示される。
【００５０】
図１７は、２次元コードを読み取る機器２のデジタルカメラ２０５によって撮影された画像イメージ１７０１〜１７０５を示す。
【００５１】
図１８は、画像イメージ１７０１〜１７０５から得られる２次元コードの分割画像イメージ１８０１〜１８０５を示す。
【００５２】
本実施形態に係る、２次元コードを表示する機器１および２次元コードを読み取る機器２において実行する手順について説明する。図１１および図１２のフローチャートにおいて、基本的な流れは、第１の実施形態で説明したものとほぼ同じであり、下記の通り、図中の符号を読み替えればよい。表示領域３０１は表示領域１３０１に対応する。小画像５０１は小画像１４０１に、小画像グループ５０２は小画像グループ１４０２〜１４０６に対応する。第一のパターン６０１は第一のパターン１５０１に、第二のパターン６０２は第二のパターン１５０２に対応する。表示例８０１は表示例１６０１〜１６０５に対応する。画像イメージ９０１は画像イメージ１７０１〜１７０５に対応する。２次元コードの分割画像イメージ１００１は２次元コードの分割画像イメージ１８０１〜１８０５に対応する。以下、図１１および図１２を参照しながら第２の実施形態特有の手順のみ、説明を行なう。
【００５３】
ステップＳ１１０２において、ＣＰＵ１０２は、ステップＳ１１０１で生成した２次元コード画像４０１を表示領域１３０１のドット・マトリクスの１単位を構成する横縦のドット数（ｎ×ｍ）に合わせ、複数の小画像１４０１に分割する。本実施例では、表示領域１３０１のドット・マトリクスの１単位を構成する横縦のドット数が５×７ドット、例示した２次元コード画像４０１は横縦ともに２９セルであるため、２次元コード画像４０１は３０（＝６×５）個の小画像１４０１に分割される。次いで、手順はステップＳ１１０３に進む。
【００５４】
ステップＳ１１０３において、ＣＰＵ１０２は、ステップＳ１１０２で分割することで得た複数の小画像１４０１を表示領域１３０１の桁数および行数に合わせ、小画像グループとしてグループ化する。表示領域１３０１の左２桁は、第一のパターン１５０１および第二のパターン１５０２を表示するために予約されている。本実施例における表示領域１３０１の場合、桁数８、行数１であるため、３０個の小画像１４０１は、５つの小画像グループ１４０２〜１４０６としてグループ化される。次いで、手順はステップＳ１１０４に進む。
【００５５】
ステップＳ１１０４において、ＣＰＵ１０２はパターン生成手段として機能し、第一のパターン１５０１および第二のパターン１５０２を生成する。第一のパターン１５０１および第二のパターン１５０２は、特徴的なパターンＰの外周５ドットの四角形の辺を延長することで、表示領域１３０１中のドット・マトリクスの１単位の横縦のドット数（本実施例では横５ドット、縦７ドット）を示している。次いで、手順はステップＳ１１０５に進む。
【００５６】
ステップＳ１１０５において、ＣＰＵ１０２は、ステップＳ１１０４で生成した第一のパターン１５０１および第二のパターン１５０２を、図１５（ａ）のように配置する。そして、ステップＳ１１０３でグループ化した小画像グループ１４０２〜１４０６のいずれかとともに、表示領域１３０１上にて表示例１６０１〜１６０５のように表示する。
【００５７】
ステップＳ１１０６において、ＣＰＵ１０２は、ステップＳ１１０３でグループ化した小画像グループのうち、まだ表示していないものがあるかを判断する。ここでは、一定時間を経たら表示を切り替えるよう構成してもよいし、入力部１０６より切り替え指示を受けるよう構成してもよい。表示していない小画像グループがあると判断した場合、手順はステップＳ１１０５に戻り、表示していない小画像グループがないと判断した場合、手順はステップＳ１１０７に進む。
【００５８】
ステップＳ１２０５において、ＣＰＵ２０２は、ステップＳ１２０２で得られた第一のパターン１５０１および第二のパターン１５０２を解析し、撮影された画像イメージ１７０１〜１７０５内におけるドット・マトリクスの桁間の隙間の画素数Ｇｈを算出する。第一のパターン１５０１と、第二のパターン１５０２とにそれぞれ含まれる特徴的なパターンＰの中心に注目すると、各パターンの横方向の中心間の距離を示す画素数がＣｈであることを算出できる。図１５（ａ）に示した通り、第一のパターン１５０１と、第二のパターン１５０２とにそれぞれ含まれる特徴的なパターンＰの中心の間には５ドット分＋隙間分の距離がある。よって、以下の式（５）によりドット・マトリクスの桁間の隙間の画素数Ｇｈを得ることができる。  
Ｇｈ＝Ｃｈ−５×Ｄｗ      式（５）
【００５９】
ステップＳ１２０６において、ＣＰＵ２０２は、２次元コードの分割画像イメージ１８０１〜１８０５を生成する。まず、ステップＳ１２０５で算出したドット・マトリクスの桁間の隙間の画素数Ｇｈを使い、画像イメージ１７０１〜１７０５よりドット・マトリクスの桁間の隙間を取り除く。続いて、ステップＳ１２０２で検出した第一のパターン１５０１と、第二のパターン１５０２とを取り除く。こうして、２次元コードの分割画像イメージ１８０１〜１８０５を得ることができる。次いで、手順はステップＳ１２０７に進む。
【００６０】
すべての画像イメージに対して、２次元コードの分割画像イメージを得られたら、ステップＳ１２０８において、ＣＰＵ２０２は、２次元コードの分割画像イメージをつなぎ合わせ、元の２次元コード画像４０１を再構成する。本実施例では、５個の２次元コードの分割画像イメージ１８０１〜１８０５をつなぎ合わせて、元の２次元コード画像４０１を再構成する。
【００６１】
以上、説明した通り、本実施形態により、１単位がｎ×ｍドットで構成されるドット・マトリクスが隙間を介して一定の間隔で並べられた表示領域の大きさ（行数）が十分ではない場合であっても、２次元コードを表示し、それを正しく読み取ることが可能となる。
【００６２】
（その他の実施形態）
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給しそのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
2015049753.tif 000003
【図２】
2015049753.tif 000004
【図３】
2015049753.tif 000005
【図４】
2015049753.tif 000006
【図５】
2015049753.tif 000007
【図６】
2015049753.tif 000008
【図７】
2015049753.tif 000009
【図８】
2015049753.tif 000010
【図９】
2015049753.tif 000011
【図１０】
2015049753.tif 000012
【図１１】
2015049753.tif 000013
【図１２】
2015049753.tif 000014
【図１３】
2015049753.tif 000015
【図１４】
2015049753.tif 000016
【図１５】
2015049753.tif 000017
【図１６】
2015049753.tif 000018
【図１７】
2015049753.tif 000019
【図１８】
2015049753.tif 000020