(57)【特許請求の範囲】
【請求項１】
少なくとも第１のデータと、第１のデータとは異なる第２のデータが記録されている２次元コードからデータを読み取る２次元コード読取装置であって、
２次元コードを撮影する撮影手段と、
撮影された２次元コードの画像に基づいて、２次元コードに記録されているデータをデコードして出力するデータ出力手段、
を有しており、
データ出力手段は、
２次元コードを撮影するときの撮影角度が第１角度範囲内にある場合には、２次元コードに記録されているデータのうちの第１のデータをデコードし、第２のデータをデコードせず、デコードされた第１のデータを表示装置及び記憶装置に出力し、
前記撮影角度が第２角度範囲内にある場合には、２次元コードに記録されているデータのうちの第２のデータをデコードし、第１のデータをデコードせず、デコードされた第２のデータを表示装置及び記憶装置に出力し、
前記撮影角度は、
撮影手段によって２次元コードの画像を撮影するときの撮影手段から２次元コードに向かう軸を撮影軸とし、
撮影手段の向きを規定する基準軸を第１基準軸とし、
２次元コードの向きを規定する基準軸を第２基準軸とし、
撮影軸に沿って第１基準軸を２次元コード上に投影したときにおける第１基準軸と第２基準軸との間の相対角度であり、
データ出力手段は、さらに、前記選択されたデータを記憶装置に出力する、
ことを特徴とする２次元コード読取装置。
【請求項２】
第１のデータの量と第２のデータの量とが異なることを特徴とする請求項１に記載の２次元コード読取装置。
【請求項３】
２次元コードを撮影する撮影手段と、撮影された２次元コードの画像に基づいて、２次元コードに記録されているデータをデコードして出力するデータ出力手段を用いて、少なくとも第１のデータと、第１のデータとは異なる第２のデータが記録されている２次元コードからデータを読み取る２次元コード読取方法であって、
撮影手段によって２次元コードを撮影する撮影ステップと、
撮影された２次元コードの画像に基づいて、データ出力手段によって２次元コードに記録されているデータをデコードして出力するデータ出力ステップ、
を有しており、
データ出力ステップでは、
撮影ステップにおける２次元コードを撮影するときの撮影角度が第１角度範囲内にある場合には、２次元コードに記録されているデータのうちの第１のデータをデコードし、第２のデータをデコードせず、デコードされた第１のデータを表示装置及び記憶装置に出力し、
前記撮影角度が第２角度範囲内にある場合には、２次元コードに記録されているデータのうちの第２のデータをデコードし、第１のデータをデコードせず、デコードされた第２のデータを表示装置及び記憶装置に出力し、
前記撮影角度は、
撮影手段によって２次元コードの画像を撮影するときの撮影手段から２次元コードに向かう軸を撮影軸とし、
撮影手段の向きを規定する基準軸を第１基準軸とし、
２次元コードの向きを規定する基準軸を第２基準軸とし、
撮影軸に沿って第１基準軸を２次元コード上に投影したときにおける第１基準軸と第２基準軸との間の相対角度である、
ことを特徴とする２次元コード読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元コード読取装置、及び、２次元コードからデータを読み取る２次元コード読取方法に関する。
【背景技術】
【０００２】
特許文献１には、２次元コードが開示されている。２次元コードは一般に広く普及しており、これにともなって２次元コード読取装置も広く普及している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−２５４０３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
２次元コードは、データを２次元に配置するため、多くの情報を持つことができる。その一方、２次元コードが多くの情報を持っていても、その全てがユーザにとって必要な情報とは限らない。例えば、２次元コードに１つのメッセージを複数の言語で記録しておき、各ユーザが所望の言語でメッセージを読む場合、所望の言語以外のメッセージはユーザにとっては不要である。従来の２次元コード読取装置は、通常、２次元コードから読み取ったデータの全てを出力するため、ユーザにとって不要なデータまでが出力されてしまうという問題があった。
【０００５】
本発明は上述した実情を鑑みて創作されたものであり、２次元コードから必要なデータを選択して読み取ることができる２次元コード読取装置を提供する。
【課題を解決するための手段】
【０００６】
請求項１の２次元コード読取装置は、少なくとも第１のデータと、第１のデータとは異なる第２のデータが記録されている２次元コードからデータを読み取る２次元コード読取装置である。２次元コード読取装置は、２次元コードを撮影する撮影手段と、撮影された２次元コードの画像に基づいて２次元コードに記録されているデータをデコードして出力するデータ出力手段を有している。データ出力手段は、２次元コードを撮影するときの撮影角度が第１角度範囲内にある場合には、２次元コードに記録されているデータのうちの第１のデータをデコードし、第２のデータをデコードせず、デコードされた第１のデータを表示装置及び記憶装置に出力し、撮影角度が第２角度範囲内にある場合には、２次元コードに記録されているデータのうちの第２のデータを選択してデコードし、第１のデータをデコードせず、デコードされた第２のデータを表示装置及び記憶装置に出力する。撮影角度は、撮影手段によって２次元コードの画像を撮影するときの撮影手段から２次元コードに向かう軸を撮影軸とし、撮影手段の向きを規定する基準軸を第１基準軸とし、２次元コードの向きを規定する基準軸を第２基準軸とし、撮影軸に沿って第１基準軸を２次元コード上に投影したときにおける第１基準軸と第２基準軸との間の相対角度である。
なお、請求項１において、「出力する」とは、データを他の手段に送ることをいう。データを出力することで、出力先の手段にそのデータに応じた動作を実行させることができる。例えば、２次元コード読取装置が表示手段を有している場合には、データを表示手段に出力することで、その表示手段にそのデータに応じた画像を表示させることができる。また、ネットワークに接続された通信手段にデータを出力すれば、そのデータに応じた情報をネットワークから取得することができる。
【０００７】
請求項１の２次元コード読取装置によれば、ユーザは、２次元コード読取装置で２次元コードを撮影する角度を調節して２次元コードからデータを読み取ることで、必要なデータを選択して読み取ることができる。すなわち、ユーザは、２次元コード読取装置の向きまたは２次元コードの向きを変更することで、２次元コードから必要なデータを選択して読み取ることができる。
【０００９】
また、２次元コード読取装置は、撮影角度に応じて異なるデータを読み取ってもよいし、撮影角度に応じて読み取るデータの量を変化させてもよい。
【００１０】
請求項３のデータ読取方法によれば、２次元コードから必要なデータを選択して読み取ることができる。
【図面の簡単な説明】
【００１１】
【図１】２次元コード読み取り装置１０の斜視図。
【図２】２次元コード読み取り装置１０のブロック図。
【図３】２次元コード読み取り装置１０により撮影された２次元コードの画像データを示す図。
【図４】実施例１の２次元コード読み取り装置１０が実行する処理を示すフローチャート。
【図５】実施例２の２次元コード読み取り装置１０が実行する処理を示すフローチャート。
【図６】変形例の２次元コード読み取り装置１０が実行する処理を示すフローチャート。
【発明を実施するための形態】
【実施例１】
【００１２】
実施例の２次元コード読取装置について説明する。図１は２次元コード読取装置１０の概略斜視図であり、図２は２次元コード読取装置１０の概略ブロック図である。図２に示すように、２次元コード読取装置１０は、カメラ１２と、ＣＰＵ１４と、記憶装置１６と、表示装置１８を有している。
【００１３】
カメラ１２は、図１に示すカメラレンズ１２ａを備えている。図１のＹ方向は、カメラレンズ１２ａの撮影軸を示している。図１のＸ方向は、２次元コード読取装置１０の側面方向を示している。図１のＺ方向は、２次元コード読取装置１０の上面方向を示している。図１に示すように、カメラレンズ１２ａの撮影軸（Ｙ方向）を２次元コード２０に向けて所定の操作を行うことで、２次元コード２０を撮影することができる。撮影された画像データは、Ｘ方向及びＺ方向に沿って配列された画素毎の輝度データとして表される。カメラ１２で撮影された２次元コード２０の画像データは、ＣＰＵ１４に入力される。
【００１４】
記憶装置１６は、２次元コード２０の画像データから、２次元コード２０に記録されているデータを読み取るための読み取りプログラムを記憶している。
【００１５】
ＣＰＵ１４は、読み取りプログラムに従って、２次元コード２０の画像データを演算処理する。これによって、ＣＰＵ１４は２次元コード２０に記録されているデータを読み取る。ＣＰＵ１４は、読み取ったデータに対応する情報を表示装置１８に表示する。
【００１６】
図３は、２次元コード２０の一例を示している。２次元コード２０は、３つの位置決め用シンボル２２ａ〜２２ｃと、データ領域２４を有している。位置決め用シンボル２２ａ〜２２ｃは、明部（例えば、白色部）と暗部（例えば、黒色部）からなるシンボルであって、その中心部２３ａ〜２３ｃを通る限り何れの角度でスキャンしても一定の周波数成分比が得られるように構成されている。データ領域２４には、明部と暗部のパターンによって、データが記録されている。本実施例では、データ領域２４には、日本語のメッセージを表すデータ（以下、日本語データという）、英語のメッセージを表すデータ（以下、英語データという）、中国語のメッセージを表すデータ（以下、中国語データという）、イタリア語のメッセージを表すデータ（以下、イタリア語データという）が記録されている。また、データ領域２４には、誤り訂正符号等も記録されている。
【００１７】
次に、２次元コード読取装置１０の動作について説明する。ユーザが、図１に示すようにカメラレンズ１２ａを２次元コード２０に向けた状態で所定の操作を行うことにより、カメラ１２で２次元コード２０が撮影される。撮影された２次元コード２０の画像データは、ＣＰＵ１４に入力される。すると、ＣＰＵ１４は、読み取りプログラムに従って、図４のフローチャートに示す処理を実行する。
【００１８】
ステップＳ２では、ＣＰＵ１４は、画像データをＸ方向にスキャンすることによって、位置決め用シンボル２２ａ〜２２ｃに対応する周波数成分比を持つ画素群を特定する。これによって、画像データのうち位置決め用シンボル２２ａ〜２２ｃの中心部２３ａ〜２３ｃの座標（Ｘ１，Ｚ１），（Ｘ２，Ｚ２），（Ｘ３，Ｚ３）を特定する。中心部２３ａ〜２３ｃの座標の特定方法は従来公知の技術であるので、その詳細については説明を省略する（例えば、特開平７−２５４０３７号を参照）。
【００１９】
ステップＳ４では、ＣＰＵ１４は、特定した座標（Ｘ１，Ｚ１），（Ｘ２，Ｚ２），（Ｘ３，Ｚ３）から、図３に示す角度θを算出する。角度θは、位置決めシンボル２２ａから位置決めシンボル２２ｂに向かうＴ方向とＺ方向（すなわち、画像の撮影時における２次元コード読取装置１０の上面方向）との間の角度である。図１のＺ’軸は、Ｚ軸を２次元コード２０上に投影した軸を示している。角度θは、図１に示すように、Ｔ方向とＺ’方向（すなわち、Ｚ方向）との間の角度に相当する。すなわち、角度θは、カメラ１２の撮影軸Ｙの周りにおけるカメラ１２と２次元コード２０の間の相対角度に相当する。なお、角度θは、図３に示すように、Ｔ方向から右回りに測定した角度として算出される。
【００２０】
ステップＳ６では、ＣＰＵ１４は、画像データに基づいてデータ領域２４に記録されているデータをデコードする。データのデコード方法は従来公知の技術であるので、その詳細については説明を省略する（例えば、特開平７−２５４０３７号を参照）。デコードによって、データ領域２４に記録されているデータが得られる。本実施例では、「１．ＡＡＡＡＡ：２．ＢＢＢＢＢ：３．ＣＣＣＣＣ：４．ＤＤＤＤＤ：」という文字列データが得られる。なお、上記文字列中の「ＡＡＡＡＡ」は日本語データであり、「ＢＢＢＢＢ」は英語データであり、「ＣＣＣＣＣ」は中国語データであり、「ＤＤＤＤＤ」はイタリア語データである。また、上記文字列中の数字と「：」は、データの区切りを示すための文字である。
【００２１】
ステップＳ８では、ＣＰＵ１４は、ステップＳ４で算出された角度θが何れの角度範囲に属するかを判定する。
角度θが３１５°（−４５°）〜４５°である場合には、ＣＰＵ１４はステップＳ１０を実行する。ステップＳ１０では、ＣＰＵ１４は、ステップＳ６で得られた文字列データのうち、「１．」と１番目の「：」の間の文字列データ「ＡＡＡＡＡ」（すなわち、日本語データ）を表示装置１８に出力する。したがって、表示装置１８に日本語のメッセージが表示される。
角度θが４５°〜１３５°である場合には、ＣＰＵ１４はステップＳ１２を実行する。ステップＳ１２では、ＣＰＵ１４は、ステップＳ６で得られた文字列データのうち、「２．」と２番目の「：」の間の文字列データ「ＢＢＢＢＢ」（すなわち、英語データ）を表示装置１８に出力する。したがって、表示装置１８に英語のメッセージが表示される。
角度θが１３５°〜２２５°である場合には、ＣＰＵ１４はステップＳ１４を実行する。ステップＳ１４では、ＣＰＵ１４は、ステップＳ６で得られた文字列データのうち、「３．」と３番目の「：」の間の文字列データ「ＣＣＣＣＣ」（すなわち、中国語データ）を表示装置１８に出力する。したがって、表示装置１８に中国語のメッセージが表示される。
角度θが２２５°〜３１５°（−４５°）である場合には、ＣＰＵ１４はステップＳ１６を実行する。ステップＳ１６では、ＣＰＵ１４は、ステップＳ６で得られた文字列データのうち、「４．」と４番目の「：」の間の文字列データ「ＤＤＤＤＤ」（すなわち、イタリア語データ）を表示装置１８に出力する。したがって、表示装置１８にイタリア語のメッセージが表示される。
【００２２】
以上に説明したように、実施例１の２次元コード読取装置１０では、２次元コード２０を読み取るときの撮影角度によって、表示装置１８に表示される情報が変化する。したがって、ユーザは、自己が必要な情報に応じた撮影角度で２次元コード２０を読み取ることで、必要な情報だけを選択して表示装置１８に表示させることができる。ユーザは、煩雑なキー操作を行うことなく表示させる情報を選択することができる。
【実施例２】
【００２３】
次に、実施例２の２次元コード読取装置について説明する。実施例２の２次元コード読取装置は、名刺等に印刷されている２次元コードからデータを読み取る。この２次元コードのデータ領域には、「名前」を示すデータ（以下では、名前データという）、「電話番号」を示すデータ（以下では、電話番号データという）、「会社名」を示すデータ（以下では、会社名データという）、「会社の住所」を示すデータ（以下では、住所データという）が記録されている。
【００２４】
図５は、実施例２の２次元コード読取装置のＣＰＵ１４が実行する処理を示している。ステップＳ２２、Ｓ２４は、実施例１のステップＳ２、Ｓ４と同様に実行される。
【００２５】
ステップＳ２６では、ＣＰＵ１４は、画像データに基づいてデータ領域２４に記録されているデータをデコードする。実施例２では、「１．ＥＥＥＥＥ：２．ＦＦＦＦＦ：３．ＧＧＧＧＧ：４．ＨＨＨＨＨ：」という文字列データが得られる。なお、上記文字列中の「ＥＥＥＥＥ」は名前データであり、「ＦＦＦＦＦ」は電話番号データであり、「ＧＧＧＧＧ」は会社名データであり、「ＨＨＨＨＨ」は住所データである。
【００２６】
ステップＳ２８では、ＣＰＵ１４は、ステップＳ２４で算出された角度θが何れの角度範囲に属するかを判定する。
角度θが３１５°（−４５°）〜４５°である場合には、ＣＰＵ１４はステップＳ３０を実行する。ステップＳ３０では、ＣＰＵ１４は、ステップＳ２６で得られた文字列データのうち、文字列データ「ＥＥＥＥＥ」（すなわち、名前データ）を表示装置１８と記憶装置１６に出力する。したがって、表示装置１８に名前が表示される。また、記憶装置１６に名前データが記憶される。
角度θが４５°〜１３５°である場合には、ＣＰＵ１４はステップＳ３２を実行する。ステップＳ３２では、ＣＰＵ１４は、ステップＳ２６で得られた文字列データのうち、文字列データ「ＥＥＥＥＥ」（すなわち、名前データ）と文字列データ「ＦＦＦＦＦ」（すなわち、電話番号データ）を表示装置１８と記憶装置１６に出力する。したがって、表示装置１８に名前と電話番号が表示される。また、記憶装置１６に名前データと電話番号データが記憶される。
角度θが１３５°〜２２５°である場合には、ＣＰＵ１４はステップＳ３４を実行する。ステップＳ３４では、ＣＰＵ１４は、ステップＳ２６で得られた文字列データのうち、文字列データ「ＥＥＥＥＥ」（すなわち、名前データ）と文字列データ「ＦＦＦＦＦ」（すなわち、電話番号データ）と文字列データ「ＧＧＧＧＧ」（すなわち、会社名データ）を表示装置１８と記憶装置１６に出力する。したがって、表示装置１８に名前と電話番号と会社名が表示される。また、記憶装置１６に名前データと電話番号データと会社名データが記憶される。
角度θが２２５°〜３１５°（−４５°）である場合には、ＣＰＵ１４はステップＳ３６を実行する。ステップＳ３６では、ＣＰＵ１４は、ステップＳ２６で得られた文字列データのうち、文字列データ「ＥＥＥＥＥ」（すなわち、名前データ）と文字列データ「ＦＦＦＦＦ」（すなわち、電話番号データ）と文字列データ「ＧＧＧＧＧ」（すなわち、会社名データ）と文字列データ「ＨＨＨＨＨ」（すなわち、住所データ）を表示装置１８と記憶装置１６に出力する。したがって、表示装置１８に名前と電話番号と会社名と会社の住所が表示される。また、記憶装置１６に名前データと電話番号データと会社名データと住所データが記憶される。
【００２７】
以上に説明したように、実施例２の２次元コード読取装置は、名刺に印刷された２次元コードからデータを読み取り、読み取ったデータを表示装置１８に表示するとともに、読み取ったデータを記憶装置１６に記憶する。したがって、記憶装置１６に取引先等のデータが蓄積されてデータベースが形成される。また、実施例２の２次元コード読取装置では、撮影角度に応じて記憶装置１６に記憶されるデータの量が変化する。したがって、必要に応じて必要な量のデータだけを記憶させることができる。例えば、記憶装置１６の記憶容量が小さい場合には、２次元コードに記録された全てのデータを記憶させると、記憶装置１６の空き容量がすぐになくなってしまう。このような場合には、２次元コードを読み取るときの撮影角度を調節することで、必要な量のデータだけを記憶し、記憶装置１６の容量を節約することができる。
【００２８】
なお、実施例１及び実施例２の２次元コード読取装置では、ＣＰＵ１４が、２次元コードに記録されている全てのデータをデコードし、デコードしたデータから撮影角度に応じたデータだけを選択して出力した。この方式によれば、撮影角度を誤った場合に、その後に所定のキー操作を行うことで、デコードしたデータから必要なデータを選択して出力することも可能である。しかしながら、２次元コードに記録されているデータのうち撮影角度に応じたデータだけを選択してデコードし、そのデコードしたデータを出力するようにしてもよい。
図６は、日本語データ、英語データ、中国語データ及びイタリア語データが記録されている２次元コードを読み取る際に、撮影角度に応じたデータだけを選択してデコードして出力する処理を示している。この場合、ＣＰＵ１４は、ステップＳ４２、Ｓ４４を図４のステップＳ２、Ｓ４と同様に実行した後に、ステップＳ４６で角度θについて判定を行う。そして、ステップＳ４８〜Ｓ５４で角度θに応じたデータのみをデコードし、その他のデータはデコードしない。すなわち、角度θが３１５°〜４５°の角度範囲にある場合には、ステップＳ４８で日本語データのみをデコードする。角度θが４５°〜１３５°の角度範囲にある場合には、ステップＳ５０で英語データのみをデコードする。角度θが１３５°〜２２５°の角度範囲にある場合には、ステップＳ５２で中国語データのみをデコードする。角度θが２２５°〜３１５°の角度範囲にある場合には、ステップＳ５４でイタリア語データのみをデコードする。その後、ＣＰＵ１４は、ステップＳ５６においてデコードしたデータを表示装置１８に出力する。したがって、表示装置１８に撮影角度θに応じた言語でメッセージが表示される。
このように、撮影角度に応じたデータのみをデコードする場合には、全てのデータをデコードする場合に比べてより早くデータを出力することができる。
【００２９】
また、実施例１及び実施例２の２次元コード読取装置では、撮影角度を４つの角度範囲に分類したが、より細かい角度範囲を設定して角度範囲毎に出力するデータを変更するようにしてもよい。
【００３０】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例をさまざまに変形、変更したものが含まれる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００３１】
１０：２次元コード読取装置
１２：カメラ
１２ａ：カメラレンズ
１４：ＣＰＵ
１６：記憶装置
１８：表示装置
２０：２次元コード
２２ａ−２２ｃ：位置決め用シンボル
２３ａ−２３ｃ：中心部
２４：データ領域
【図２】
0005445056.tif 000002
【図４】
0005445056.tif 000003
【図５】
0005445056.tif 000004
【図６】
0005445056.tif 000005
【図１】
0005445056.tif 000006
【図３】
0005445056.tif 000007