JP2002157549A - 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 - Google Patents
二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置Info
- Publication number
- JP2002157549A JP2002157549A JP2000355940A JP2000355940A JP2002157549A JP 2002157549 A JP2002157549 A JP 2002157549A JP 2000355940 A JP2000355940 A JP 2000355940A JP 2000355940 A JP2000355940 A JP 2000355940A JP 2002157549 A JP2002157549 A JP 2002157549A
- Authority
- JP
- Japan
- Prior art keywords
- module
- axis
- direction axis
- center point
- calculating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Abstract
(57)【要約】 (修正有)
【課題】MaxiCodeシンボルの読み取り画像のデ
コード処理において、総てのデータモジュールの位置情
報および図形情報を算出するステップを備えた二次元コ
ード読み取り方法、情報記録媒体及び二次元コード読み
取り装置を提供する。 【解決手段】ファインダーパターンの中心点、内側方向
モジュールの中心点および外側方向モジュールの中心点
を通る方向軸を想定し、方向軸上のデータモジュールの
位置情報および図形情報を算出する(ステップS40
1)。次に、算出した各モジュールの中心点の位置に対
応する画素データに基づいて、ビットパターンに変換す
る(S402)。次に、方向軸間の領域に存在するシン
ボルのデータモジュールの位置情報を算出する(ステッ
プS403)。次に、算出した各モジュールの中心点の
位置に対応する画素データに基づいて、ビットパターン
に変換し(S404)、データモジュール探索処理を終
了する。
コード処理において、総てのデータモジュールの位置情
報および図形情報を算出するステップを備えた二次元コ
ード読み取り方法、情報記録媒体及び二次元コード読み
取り装置を提供する。 【解決手段】ファインダーパターンの中心点、内側方向
モジュールの中心点および外側方向モジュールの中心点
を通る方向軸を想定し、方向軸上のデータモジュールの
位置情報および図形情報を算出する(ステップS40
1)。次に、算出した各モジュールの中心点の位置に対
応する画素データに基づいて、ビットパターンに変換す
る(S402)。次に、方向軸間の領域に存在するシン
ボルのデータモジュールの位置情報を算出する(ステッ
プS403)。次に、算出した各モジュールの中心点の
位置に対応する画素データに基づいて、ビットパターン
に変換し(S404)、データモジュール探索処理を終
了する。
Description
【0001】
【発明の属する技術分野】本発明は、二次元コード読み
取り方法、情報記録媒体及び二次元コード読み取り装置
に関する。特に、二次元コードのシンボルを読み取った
読み取り画像のファインダーパターンの中心点と方向モ
ジュールとを通る方向軸に基づいて、総てのデータモジ
ュールを探索する二次元コード読み取り方法、情報記録
媒体及び二次元コード読み取り装置に関する。
取り方法、情報記録媒体及び二次元コード読み取り装置
に関する。特に、二次元コードのシンボルを読み取った
読み取り画像のファインダーパターンの中心点と方向モ
ジュールとを通る方向軸に基づいて、総てのデータモジ
ュールを探索する二次元コード読み取り方法、情報記録
媒体及び二次元コード読み取り装置に関する。
【0002】
【従来の技術】バーコードは、小売業界において、対象
物の特定のチェックを早くかつ正確に行うための手段と
して発展した自動認識技術であり、現在では流通、物
流、行政、医療、研究、イベント等、幅広い分野におい
て利用されている。バーコードが普及するにつれて、そ
の用途は多岐にわたり、従来バーコードが適用できなか
った分野(小型化、大容量)にまで、その需要が求めら
れるようになってきた。その需要を満たすために近年開
発されたのが、二次元コードである。二次元コードに
は、スタック型とマトリックス型の2種類がある。スタ
ック型二次元コードは、バーコードを縦に積み重ねて縦
横に情報を表示したものであり、レーザースキャナやC
CDスキャナのようなスキャニング方法により読み取る
ことができる。一方、マトリックス型二次元コードは、
情報を白色または黒色のセルによってモザイク状に表示
したものであり、CCDイメージリーダのようなイメー
ジセンシング方法により読み取ることができる。
物の特定のチェックを早くかつ正確に行うための手段と
して発展した自動認識技術であり、現在では流通、物
流、行政、医療、研究、イベント等、幅広い分野におい
て利用されている。バーコードが普及するにつれて、そ
の用途は多岐にわたり、従来バーコードが適用できなか
った分野(小型化、大容量)にまで、その需要が求めら
れるようになってきた。その需要を満たすために近年開
発されたのが、二次元コードである。二次元コードに
は、スタック型とマトリックス型の2種類がある。スタ
ック型二次元コードは、バーコードを縦に積み重ねて縦
横に情報を表示したものであり、レーザースキャナやC
CDスキャナのようなスキャニング方法により読み取る
ことができる。一方、マトリックス型二次元コードは、
情報を白色または黒色のセルによってモザイク状に表示
したものであり、CCDイメージリーダのようなイメー
ジセンシング方法により読み取ることができる。
【0003】MaxiCodeは、マトリックス型二次
元コードの一つである。特に、MaxiCodeは、荷
物の仕分けや追跡管理に適するように設計されており、
アメリカ国内では宅配便の集荷センターにおける行き先
仕分けや、船積みにおける仕分け管理に利用されてい
る。以下、MaxiCodeによって表された二次元コ
ードのシンボルをMaxiCodeシンボルという。
元コードの一つである。特に、MaxiCodeは、荷
物の仕分けや追跡管理に適するように設計されており、
アメリカ国内では宅配便の集荷センターにおける行き先
仕分けや、船積みにおける仕分け管理に利用されてい
る。以下、MaxiCodeによって表された二次元コ
ードのシンボルをMaxiCodeシンボルという。
【0004】図20は、MaxiCodeシンボルを示
す図である。図20(a)は、MaxiCodeシンボ
ルの全体図を示す一例であり、図20(b)は、ファイ
ンダーパターンと方向モジュールを示す図である。
す図である。図20(a)は、MaxiCodeシンボ
ルの全体図を示す一例であり、図20(b)は、ファイ
ンダーパターンと方向モジュールを示す図である。
【0005】図20(a)に示すように、MaxiCo
deシンボル2000の中央には、6個の同心円によっ
て構成される1個の白色の円、2個の白色の輪、および
3個の黒色の輪からなるファインダーパターン2001
と呼ばれる部分が存在する。ファインダーパターン20
01は、MaxiCodeシンボル2000を検出する
ときの目印となる、切り出しシンボルである。ファイン
ダーパターンの中心を探索することにより、シンボルの
中心位置を認識する。
deシンボル2000の中央には、6個の同心円によっ
て構成される1個の白色の円、2個の白色の輪、および
3個の黒色の輪からなるファインダーパターン2001
と呼ばれる部分が存在する。ファインダーパターン20
01は、MaxiCodeシンボル2000を検出する
ときの目印となる、切り出しシンボルである。ファイン
ダーパターンの中心を探索することにより、シンボルの
中心位置を認識する。
【0006】また、ファインダーパターン2001の周
りには、884個の、正六角形の白色または黒色のセル
であるモジュール2002によるモジュール群が存在す
る。モジュール群は、方向モジュール群とデータモジュ
ール群から構成される。シンボルの右上に位置する2個
のモジュールは使用されない。方向モジュール群は、M
axiCodeシンボル2000の方向を示す18個の
方向モジュールから構成される。データモジュール群は
データを表す864個のデータモジュールから構成さ
れ、1個のデータモジュールはデータの1ビットに対応
する。データモジュールは、データをコード化し、エラ
ー訂正処理を行うために使用される。
りには、884個の、正六角形の白色または黒色のセル
であるモジュール2002によるモジュール群が存在す
る。モジュール群は、方向モジュール群とデータモジュ
ール群から構成される。シンボルの右上に位置する2個
のモジュールは使用されない。方向モジュール群は、M
axiCodeシンボル2000の方向を示す18個の
方向モジュールから構成される。データモジュール群は
データを表す864個のデータモジュールから構成さ
れ、1個のデータモジュールはデータの1ビットに対応
する。データモジュールは、データをコード化し、エラ
ー訂正処理を行うために使用される。
【0007】また、図20(b)に示すように、1個の
正六角形のモジュール2002は、ファインダーパター
ン2001の中央の白色の円に内接する大きさを有して
いる。方向モジュール群2003は、ファインダーパタ
ーン2001の中心を中心点Oとして、その周りに60
度の間隔で、6方向に存在する。各方向モジュール群2
003は、3個の方向モジュールによって構成されてお
り、方向モジュール群2003は、合計18個の方向モ
ジュールから構成される。18個の方向モジュールを探
索することによりMaxiCodeシンボルの方向を認
識し、各データモジュールに対応するデータを読み取
る。
正六角形のモジュール2002は、ファインダーパター
ン2001の中央の白色の円に内接する大きさを有して
いる。方向モジュール群2003は、ファインダーパタ
ーン2001の中心を中心点Oとして、その周りに60
度の間隔で、6方向に存在する。各方向モジュール群2
003は、3個の方向モジュールによって構成されてお
り、方向モジュール群2003は、合計18個の方向モ
ジュールから構成される。18個の方向モジュールを探
索することによりMaxiCodeシンボルの方向を認
識し、各データモジュールに対応するデータを読み取
る。
【0008】
【発明が解決しようとする課題】二次元コードのシンボ
ルであるMaxiCodeシンボルの読み取りにはイメ
ージセンシング方式が用いられている。即ち、Maxi
Codeシンボルをイメージ画像情報として読み取り、
解読(以下、「デコード」という)する。
ルであるMaxiCodeシンボルの読み取りにはイメ
ージセンシング方式が用いられている。即ち、Maxi
Codeシンボルをイメージ画像情報として読み取り、
解読(以下、「デコード」という)する。
【0009】まず、読み取った画像情報からMaxiC
odeシンボルのファインダーパターンと方向モジュー
ルを探索し、各データモジュールを認識する。次に、各
データモジュールが「黒」のとき1、「白」のとき0と
して、ビットパターンに変換する。最後に、得られたビ
ットパターンを、対応するデータキャラクタに変換する
ことによって、デコードする。そのため、MaxiCo
deシンボルの読み取り画像のデコード処理において、
様々なデコード処理の方法が考えられてきた。
odeシンボルのファインダーパターンと方向モジュー
ルを探索し、各データモジュールを認識する。次に、各
データモジュールが「黒」のとき1、「白」のとき0と
して、ビットパターンに変換する。最後に、得られたビ
ットパターンを、対応するデータキャラクタに変換する
ことによって、デコードする。そのため、MaxiCo
deシンボルの読み取り画像のデコード処理において、
様々なデコード処理の方法が考えられてきた。
【0010】図21は、MaxiCodeシンボルのモ
ジュール群を示す図である。図21に示すように、モジ
ュール群2100は、方向モジュールから成る方向モジ
ュール群2101a、2101b、2101c、210
1d、2101eおよび2101fと、データモジュー
ルから成るデータモジュール群2102とによって構成
される。また、6個の方向モジュール群2101a、2
101b、2101c、2101d、2101eおよび
2101fをそれぞれ構成する3個の方向モジュールの
ビットパターンは、方向によって異なる。ここで、方向
モジュール群、例えば方向モジュール群2101aを構
成する3つの方向モジュールにおいて、中心点Oからの
距離が一番短い位置に存在する方向モジュール2103
を内側方向モジュールと呼び、中心点Oからの距離が一
番長い位置に存在する方向モジュール2104を外側方
向モジュールと呼び、中心点Oからの距離が、中心点O
からの内側方向モジュール2103の距離と中心点Oか
らの外側方向モジュール2104の距離との間の距離に
存在する方向モジュール2105を中央方向モジュール
と呼ぶ。
ジュール群を示す図である。図21に示すように、モジ
ュール群2100は、方向モジュールから成る方向モジ
ュール群2101a、2101b、2101c、210
1d、2101eおよび2101fと、データモジュー
ルから成るデータモジュール群2102とによって構成
される。また、6個の方向モジュール群2101a、2
101b、2101c、2101d、2101eおよび
2101fをそれぞれ構成する3個の方向モジュールの
ビットパターンは、方向によって異なる。ここで、方向
モジュール群、例えば方向モジュール群2101aを構
成する3つの方向モジュールにおいて、中心点Oからの
距離が一番短い位置に存在する方向モジュール2103
を内側方向モジュールと呼び、中心点Oからの距離が一
番長い位置に存在する方向モジュール2104を外側方
向モジュールと呼び、中心点Oからの距離が、中心点O
からの内側方向モジュール2103の距離と中心点Oか
らの外側方向モジュール2104の距離との間の距離に
存在する方向モジュール2105を中央方向モジュール
と呼ぶ。
【0011】読み取り装置によって、バーコードや二次
元コードである読み取り対象物を読み取る場合、読み取
り対象物を正面から読み取るとは限らない。実際には、
斜めから読み取ったりする場合が多く、読み取られた画
像は、歪みのある画像となってしまうことが多い。従っ
て、歪みのない読み取り画像をデコードする場合と同様
な方法によって、歪みのある読み取り画像をデコードす
る場合、デコードを失敗することが多かった。その為
に、歪みのある読み取り画像を、歪みのない読み取り画
像にするための歪み補正が必要であった。一般的に用い
られている歪み補正の方法として、正規化という手法が
ある。
元コードである読み取り対象物を読み取る場合、読み取
り対象物を正面から読み取るとは限らない。実際には、
斜めから読み取ったりする場合が多く、読み取られた画
像は、歪みのある画像となってしまうことが多い。従っ
て、歪みのない読み取り画像をデコードする場合と同様
な方法によって、歪みのある読み取り画像をデコードす
る場合、デコードを失敗することが多かった。その為
に、歪みのある読み取り画像を、歪みのない読み取り画
像にするための歪み補正が必要であった。一般的に用い
られている歪み補正の方法として、正規化という手法が
ある。
【0012】図19は、正規化による画像の歪み補正を
示す図である。図19(a)は、歪みの種類を示す図で
あり、図19(b)は、正規化補正を利用した読み取り
画像のデコード処理を示す図である。
示す図である。図19(a)は、歪みの種類を示す図で
あり、図19(b)は、正規化補正を利用した読み取り
画像のデコード処理を示す図である。
【0013】図19(a)に示すように、歪み画像に
は、立体的な歪み画像、回転した歪み画像等があり、正
規化補正することにより歪みのない画像となる。また、
図19(b)に示すように、歪みのある読み取り画像の
デコード処理は、まず、シンボルを切り出し、切り出し
たシンボルを正規化補正し、補正した歪みのない画像を
デコードすることによって、シンボルに書き込まれてい
た情報を読み取ることができる。
は、立体的な歪み画像、回転した歪み画像等があり、正
規化補正することにより歪みのない画像となる。また、
図19(b)に示すように、歪みのある読み取り画像の
デコード処理は、まず、シンボルを切り出し、切り出し
たシンボルを正規化補正し、補正した歪みのない画像を
デコードすることによって、シンボルに書き込まれてい
た情報を読み取ることができる。
【0014】ここで、MaxiCodeシンボルは、図
20に示したように、ファインダーパターンがシンボル
の中心にあるだけでなく、セルが正六角形であることか
ら、シンボルの周囲部や頂点のデータモジュールが
「白」である場合は、シンボルの形を数学的に特徴づけ
ることが困難であった。従って、MaxiCodeシン
ボルは、一般的な歪み補正の方法である正規化による歪
み補正を正確に実行できないという問題点があった。
20に示したように、ファインダーパターンがシンボル
の中心にあるだけでなく、セルが正六角形であることか
ら、シンボルの周囲部や頂点のデータモジュールが
「白」である場合は、シンボルの形を数学的に特徴づけ
ることが困難であった。従って、MaxiCodeシン
ボルは、一般的な歪み補正の方法である正規化による歪
み補正を正確に実行できないという問題点があった。
【0015】また、正規化による歪み補正が正確に実行
できたとしても、補正処理に時間がかかってしまうとい
う問題点もあった。
できたとしても、補正処理に時間がかかってしまうとい
う問題点もあった。
【0016】本発明は、以上のような問題点を解決する
ためになされたもので、二次元コードのシンボルである
MaxiCodeシンボルの読み取り画像のデコード処
理において、切り出しシンボルであるファインダーパタ
ーンの位置情報と方向モジュールの位置情報および図形
情報とに基づいて、ファインダーパターンの中心点と方
向モジュールとを通る方向軸を算出することによって、
総てのデータモジュールの位置情報および図形情報を算
出するステップを備えた二次元コード読み取り方法、情
報記録媒体及び二次元コード読み取り装置を提供するこ
とを目的とする。
ためになされたもので、二次元コードのシンボルである
MaxiCodeシンボルの読み取り画像のデコード処
理において、切り出しシンボルであるファインダーパタ
ーンの位置情報と方向モジュールの位置情報および図形
情報とに基づいて、ファインダーパターンの中心点と方
向モジュールとを通る方向軸を算出することによって、
総てのデータモジュールの位置情報および図形情報を算
出するステップを備えた二次元コード読み取り方法、情
報記録媒体及び二次元コード読み取り装置を提供するこ
とを目的とする。
【0017】
【課題を解決するための手段】本発明者は、上述した従
来の問題点を解決すべく研究を重ねた。その結果、Ma
xiCodeシンボルの読み取り画像において、ファイ
ンダーパターンの中心点と方向モジュールとを通る方向
軸上に存在する「黒」のモジュール群の領域に基づい
て、方向モジュールおよびデータモジュールの中心点を
通るように軸の角度を補正することによって、歪みのあ
る読み取り画像の方向軸を補正できることが判明した。
来の問題点を解決すべく研究を重ねた。その結果、Ma
xiCodeシンボルの読み取り画像において、ファイ
ンダーパターンの中心点と方向モジュールとを通る方向
軸上に存在する「黒」のモジュール群の領域に基づい
て、方向モジュールおよびデータモジュールの中心点を
通るように軸の角度を補正することによって、歪みのあ
る読み取り画像の方向軸を補正できることが判明した。
【0018】また、補正した方向軸上の同一色のモジュ
ール群の領域に基づいて、歪みのある読み取り画像の方
向軸上のモジュールの位置情報および図形情報を補正
し、補正した方向軸上のモジュールの位置情報および図
形情報に基づいて、方向軸間のデータモジュールの位置
を補正できることが判明した。
ール群の領域に基づいて、歪みのある読み取り画像の方
向軸上のモジュールの位置情報および図形情報を補正
し、補正した方向軸上のモジュールの位置情報および図
形情報に基づいて、方向軸間のデータモジュールの位置
を補正できることが判明した。
【0019】更に、上述した読み取り画像の補正により
モジュールの位置情報および図形情報を検出することに
よって、二次元コードのシンボルであるMaxiCod
eシンボルの読み取り画像のデコード処理の処理時間を
短縮できることが判明した。
モジュールの位置情報および図形情報を検出することに
よって、二次元コードのシンボルであるMaxiCod
eシンボルの読み取り画像のデコード処理の処理時間を
短縮できることが判明した。
【0020】上記研究結果に基づき、以下の発明を提供
する。
する。
【0021】本発明の、二次元コード読み取り方法にお
ける第1の態様は、二次元コードのシンボルの読み取り
画像における、ファインダーパターンの位置情報と、方
向モジュールの位置情報と、前記方向モジュールの図形
情報と、に基づいて、前記ファインダーパターンの中心
点と前記方向モジュールとを通る方向軸を算出するステ
ップと、該方向軸を用いて、前記二次元コードのシンボ
ルを構成する総てのモジュールの位置情報および図形情
報を算出するデータモジュール探索ステップと、を備え
てなる。また、二次元コードのシンボルの読み取り画像
における、ファインダーパターンの位置情報と方向モジ
ュールの位置情報および図形情報とに基づいて、ファイ
ンダーパターンの中心点と方向モジュールとを通る方向
軸を算出することによって、二次元コードのシンボルを
構成する総てのモジュールの位置情報および図形情報を
算出するデータモジュール探索ステップを備えた二次元
コード読み取り方法である。
ける第1の態様は、二次元コードのシンボルの読み取り
画像における、ファインダーパターンの位置情報と、方
向モジュールの位置情報と、前記方向モジュールの図形
情報と、に基づいて、前記ファインダーパターンの中心
点と前記方向モジュールとを通る方向軸を算出するステ
ップと、該方向軸を用いて、前記二次元コードのシンボ
ルを構成する総てのモジュールの位置情報および図形情
報を算出するデータモジュール探索ステップと、を備え
てなる。また、二次元コードのシンボルの読み取り画像
における、ファインダーパターンの位置情報と方向モジ
ュールの位置情報および図形情報とに基づいて、ファイ
ンダーパターンの中心点と方向モジュールとを通る方向
軸を算出することによって、二次元コードのシンボルを
構成する総てのモジュールの位置情報および図形情報を
算出するデータモジュール探索ステップを備えた二次元
コード読み取り方法である。
【0022】ここで、方向モジュールの図形情報とは、
方向モジュールの幅(大きさ、単位としては画素数など
で定義できる)。
方向モジュールの幅(大きさ、単位としては画素数など
で定義できる)。
【0023】本発明の、二次元コード読み取り方法にお
ける第2の態様は、データモジュール探索ステップが、
下記のステップを備えた二次元コード読み取り方法であ
る。 (a)ファインダーパターンの位置情報と方向モジュー
ルの位置情報および図形情報とに基づいて、方向軸上に
存在するモジュール群を構成する複数個のモジュールの
位置情報および図形情報を算出する方向軸上モジュール
位置算出ステップと、(b)方向軸上モジュール位置算
出ステップによって算出された方向軸上に存在する複数
個のデータモジュールのビットパターンを検出する方向
軸上データモジュールビットパターン検出ステップと、
(c)方向軸上モジュール位置算出ステップによって算
出された方向軸上のモジュール群を構成する複数個のモ
ジュールの位置情報および図形情報に基づいて、隣り合
う方向軸によって構成される方向軸間のモジュール群を
構成する複数個のモジュールの位置情報を算出する方向
軸間モジュール位置算出ステップと、(d)方向軸間モ
ジュール位置算出ステップによって算出された方向軸間
に存在する複数個のデータモジュールのビットパターン
を検出する方向軸間データモジュールビットパターン検
出ステップ。
ける第2の態様は、データモジュール探索ステップが、
下記のステップを備えた二次元コード読み取り方法であ
る。 (a)ファインダーパターンの位置情報と方向モジュー
ルの位置情報および図形情報とに基づいて、方向軸上に
存在するモジュール群を構成する複数個のモジュールの
位置情報および図形情報を算出する方向軸上モジュール
位置算出ステップと、(b)方向軸上モジュール位置算
出ステップによって算出された方向軸上に存在する複数
個のデータモジュールのビットパターンを検出する方向
軸上データモジュールビットパターン検出ステップと、
(c)方向軸上モジュール位置算出ステップによって算
出された方向軸上のモジュール群を構成する複数個のモ
ジュールの位置情報および図形情報に基づいて、隣り合
う方向軸によって構成される方向軸間のモジュール群を
構成する複数個のモジュールの位置情報を算出する方向
軸間モジュール位置算出ステップと、(d)方向軸間モ
ジュール位置算出ステップによって算出された方向軸間
に存在する複数個のデータモジュールのビットパターン
を検出する方向軸間データモジュールビットパターン検
出ステップ。
【0024】本発明の、二次元コード読み取り方法にお
ける第3の態様は、方向軸上モジュール算出ステップ
が、下記のステップを備えた二次元コード読み取り方法
である。 (a)方向軸上のモジュール群を構成する複数個のモジ
ュールの中心点を通るように、方向軸の角度を補正する
方向軸角度補正ステップと、(b)方向軸角度補正ステ
ップによって補正された方向軸上に存在する複数個の実
モジュールの位置情報を算出し、算出した位置情報に基
づいて、複数個の実モジュールの図形情報であるモジュ
ール幅を補正する方向軸上実モジュール幅補正ステップ
と(c)方向軸上実モジュール幅補正ステップによって
算出された実モジュールの位置情報および図形情報に基
づいて、方向軸上に存在する複数個の仮モジュールの位
置情報を算出し、算出した位置情報に基づいて、複数個
の仮モジュールの図形情報であるモジュール幅を補正す
る方向軸上仮モジュール幅補正ステップ。
ける第3の態様は、方向軸上モジュール算出ステップ
が、下記のステップを備えた二次元コード読み取り方法
である。 (a)方向軸上のモジュール群を構成する複数個のモジ
ュールの中心点を通るように、方向軸の角度を補正する
方向軸角度補正ステップと、(b)方向軸角度補正ステ
ップによって補正された方向軸上に存在する複数個の実
モジュールの位置情報を算出し、算出した位置情報に基
づいて、複数個の実モジュールの図形情報であるモジュ
ール幅を補正する方向軸上実モジュール幅補正ステップ
と(c)方向軸上実モジュール幅補正ステップによって
算出された実モジュールの位置情報および図形情報に基
づいて、方向軸上に存在する複数個の仮モジュールの位
置情報を算出し、算出した位置情報に基づいて、複数個
の仮モジュールの図形情報であるモジュール幅を補正す
る方向軸上仮モジュール幅補正ステップ。
【0025】本発明の、二次元コード読み取り方法にお
ける第4の態様は、方向軸角度補正ステップが、下記の
ステップを備えた二次元コード読み取り方法である。 (a)方向軸上に存在する1個または連続する複数個の
「黒」のモジュールから構成される「黒」のモジュール
群の領域に基づいて、「黒」のモジュール群の中におい
て最もファインダーパターンに近い「黒」のモジュール
の第1補正中心点を算出する第1補正中心点算出ステッ
プと、(b)第1補正中心点算出ステップによって算出
した「黒」のモジュールの第1補正中心点を通る、方向
軸と隣り合う方向軸に平行な隣接予備軸上に存在する
「黒」のモジュールを含む1個または連続する複数個の
「黒」のモジュールから構成される「黒」のモジュール
群の領域に基づいて、「黒」のモジュールの第2補正中
心点を算出する第2補正中心点算出ステップと、(c)
第2補正中心点算出ステップによって算出した「黒」の
モジュールの第2補正中心点と、ファインダーパターン
の中心点とを通る方向予備軸上に存在する「黒」のモジ
ュールを含む1個または連続する複数個の「黒」のモジ
ュールから構成される「黒」のモジュール群の領域に基
づいて、「黒」のモジュールの中心点を算出する中心点
算出ステップと、(d)中心点算出ステップによって算
出した「黒」のモジュールの中心点とファインダーパタ
ーンの中心点とを通る方向軸の補正した角度を算出する
方向軸補正角度算出ステップ。
ける第4の態様は、方向軸角度補正ステップが、下記の
ステップを備えた二次元コード読み取り方法である。 (a)方向軸上に存在する1個または連続する複数個の
「黒」のモジュールから構成される「黒」のモジュール
群の領域に基づいて、「黒」のモジュール群の中におい
て最もファインダーパターンに近い「黒」のモジュール
の第1補正中心点を算出する第1補正中心点算出ステッ
プと、(b)第1補正中心点算出ステップによって算出
した「黒」のモジュールの第1補正中心点を通る、方向
軸と隣り合う方向軸に平行な隣接予備軸上に存在する
「黒」のモジュールを含む1個または連続する複数個の
「黒」のモジュールから構成される「黒」のモジュール
群の領域に基づいて、「黒」のモジュールの第2補正中
心点を算出する第2補正中心点算出ステップと、(c)
第2補正中心点算出ステップによって算出した「黒」の
モジュールの第2補正中心点と、ファインダーパターン
の中心点とを通る方向予備軸上に存在する「黒」のモジ
ュールを含む1個または連続する複数個の「黒」のモジ
ュールから構成される「黒」のモジュール群の領域に基
づいて、「黒」のモジュールの中心点を算出する中心点
算出ステップと、(d)中心点算出ステップによって算
出した「黒」のモジュールの中心点とファインダーパタ
ーンの中心点とを通る方向軸の補正した角度を算出する
方向軸補正角度算出ステップ。
【0026】本発明の、二次元コード読み取り方法にお
ける第5の態様は、方向軸上実モジュール幅補正ステッ
プが、方向軸上に存在する1個または連続する複数個の
同一色の実モジュールから構成される同一色の実モジュ
ール群の領域に基づいて、同一色の実モジュール群を構
成する実モジュールの中心点およびモジュール幅を算出
するステップを備えた二次元コード読み取り方法であ
る。
ける第5の態様は、方向軸上実モジュール幅補正ステッ
プが、方向軸上に存在する1個または連続する複数個の
同一色の実モジュールから構成される同一色の実モジュ
ール群の領域に基づいて、同一色の実モジュール群を構
成する実モジュールの中心点およびモジュール幅を算出
するステップを備えた二次元コード読み取り方法であ
る。
【0027】本発明の、二次元コード読み取り方法にお
ける第6の態様は、方向軸上仮モジュール幅補正ステッ
プが、下記のステップを備えた二次元コード読み取り方
法である。 (a)総ての方向軸の中において補正量の最も小さい方
向軸である基準方向軸を検出する基準方向軸検出ステッ
プと、(b)基準方向軸検出ステップによって検出され
た基準方向軸上に存在する最もファインダーパターンか
ら離れている「黒」のモジュールの図形情報に基づい
て、方向軸上に存在する複数個の仮モジュールの中心点
およびモジュール幅を算出するステップと、(c)基準
方向軸上の実モジュールおよび仮モジュールの位置情報
に基づいて、基準方向軸以外の方向軸上に存在する複数
個の仮モジュールの中心点およびモジュール幅を算出す
るステップ。
ける第6の態様は、方向軸上仮モジュール幅補正ステッ
プが、下記のステップを備えた二次元コード読み取り方
法である。 (a)総ての方向軸の中において補正量の最も小さい方
向軸である基準方向軸を検出する基準方向軸検出ステッ
プと、(b)基準方向軸検出ステップによって検出され
た基準方向軸上に存在する最もファインダーパターンか
ら離れている「黒」のモジュールの図形情報に基づい
て、方向軸上に存在する複数個の仮モジュールの中心点
およびモジュール幅を算出するステップと、(c)基準
方向軸上の実モジュールおよび仮モジュールの位置情報
に基づいて、基準方向軸以外の方向軸上に存在する複数
個の仮モジュールの中心点およびモジュール幅を算出す
るステップ。
【0028】本発明の、二次元コード読み取り方法にお
ける第7の態様は、下記のステップを更に備えた二次元
コード読み取り方法である。 (a)二次元コードのシンボルの読み取り画像の画素デ
ータを記憶する画素データ記憶ステップと、(b)ファ
インダーパターンの位置情報を算出するファインダーパ
ターン探索ステップと、(c)方向モジュールの位置情
報および図形情報を算出する方向モジュール探索ステッ
プと、(d)データモジュールの色に基づいて、データ
キャラクタに変換するデータキャラクタ変換ステップ。
ける第7の態様は、下記のステップを更に備えた二次元
コード読み取り方法である。 (a)二次元コードのシンボルの読み取り画像の画素デ
ータを記憶する画素データ記憶ステップと、(b)ファ
インダーパターンの位置情報を算出するファインダーパ
ターン探索ステップと、(c)方向モジュールの位置情
報および図形情報を算出する方向モジュール探索ステッ
プと、(d)データモジュールの色に基づいて、データ
キャラクタに変換するデータキャラクタ変換ステップ。
【0029】本発明の、二次元コード読み取り方法にお
ける第8の態様は、二次元コードのシンボルは、Max
iCodeシンボルであることを特徴とする二次元コー
ド読み取り方法である。
ける第8の態様は、二次元コードのシンボルは、Max
iCodeシンボルであることを特徴とする二次元コー
ド読み取り方法である。
【0030】本発明の、情報記録媒体における第1の態
様は、上述の二次元コード読み取り方法のプログラムを
記録した情報記録媒体である。
様は、上述の二次元コード読み取り方法のプログラムを
記録した情報記録媒体である。
【0031】本発明の、情報記録媒体における第2の態
様は、コンパクト・ディスク、フロッピー・ディスク、
ハード・ディスク、光磁気ディスク、デジタル・ビデオ
・ディスク、もしくは磁気テープであることを特徴とす
るプログラムを記録した情報記録媒体である。
様は、コンパクト・ディスク、フロッピー・ディスク、
ハード・ディスク、光磁気ディスク、デジタル・ビデオ
・ディスク、もしくは磁気テープであることを特徴とす
るプログラムを記録した情報記録媒体である。
【0032】本発明の、二次元コード読み取り装置にお
ける第1の態様は、二次元コードのシンボルの読み取り
画像における、ファインダーパターンの位置情報と方向
モジュールの位置情報および図形情報とに基づいて、フ
ァインダーパターンの中心点と方向モジュールとを通る
方向軸を算出することによって、二次元コードのシンボ
ルを構成する総てのモジュールの位置情報および図形情
報を算出するデータモジュール探索手段を備えた二次元
コード読み取り装置である。
ける第1の態様は、二次元コードのシンボルの読み取り
画像における、ファインダーパターンの位置情報と方向
モジュールの位置情報および図形情報とに基づいて、フ
ァインダーパターンの中心点と方向モジュールとを通る
方向軸を算出することによって、二次元コードのシンボ
ルを構成する総てのモジュールの位置情報および図形情
報を算出するデータモジュール探索手段を備えた二次元
コード読み取り装置である。
【0033】本発明の、二次元コード読み取り装置にお
ける第2の態様は、データモジュール探索手段が、下記
の手段を備えた二次元コード読み取り装置である。 (a)ファインダーパターンの位置情報と方向モジュー
ルの位置情報および図形情報とに基づいて、方向軸上に
存在するモジュール群を構成する複数個のモジュールの
位置情報および図形情報を算出する方向軸上モジュール
位置算出手段と、(b)方向軸上モジュール位置算出手
段によって算出された方向軸上に存在する複数個のデー
タモジュールのビットパターンを検出する方向軸上デー
タモジュールビットパターン検出手段と、(c)方向軸
上モジュール位置算出手段によって算出された方向軸上
のモジュール群を構成する複数個のモジュールの位置情
報および図形情報に基づいて、隣り合う方向軸によって
構成される方向軸間のモジュール群を構成する複数個の
モジュールの位置情報を算出する方向軸間モジュール位
置算出手段と、(d)方向軸間モジュール位置算出手段
によって算出された方向軸間に存在する複数個のデータ
モジュールのビットパターンを検出する方向軸間データ
モジュールビットパターン検出手段。
ける第2の態様は、データモジュール探索手段が、下記
の手段を備えた二次元コード読み取り装置である。 (a)ファインダーパターンの位置情報と方向モジュー
ルの位置情報および図形情報とに基づいて、方向軸上に
存在するモジュール群を構成する複数個のモジュールの
位置情報および図形情報を算出する方向軸上モジュール
位置算出手段と、(b)方向軸上モジュール位置算出手
段によって算出された方向軸上に存在する複数個のデー
タモジュールのビットパターンを検出する方向軸上デー
タモジュールビットパターン検出手段と、(c)方向軸
上モジュール位置算出手段によって算出された方向軸上
のモジュール群を構成する複数個のモジュールの位置情
報および図形情報に基づいて、隣り合う方向軸によって
構成される方向軸間のモジュール群を構成する複数個の
モジュールの位置情報を算出する方向軸間モジュール位
置算出手段と、(d)方向軸間モジュール位置算出手段
によって算出された方向軸間に存在する複数個のデータ
モジュールのビットパターンを検出する方向軸間データ
モジュールビットパターン検出手段。
【0034】本発明の、二次元コード読み取り装置にお
ける第3の態様は、方向軸上モジュール算出手段が、下
記の手段を備えた二次元コード読み取り装置である。 (a)方向軸上のモジュール群を構成する複数個のモジ
ュールの中心点を通るように、方向軸の角度を補正する
方向軸角度補正手段と、(b)方向軸角度補正手段によ
って補正された方向軸上に存在する複数個の実モジュー
ルの位置情報を算出し、算出した位置情報に基づいて、
複数個の実モジュールの図形情報であるモジュール幅を
補正する方向軸上実モジュール幅補正手段と(c)方向
軸上実モジュール幅補正手段によって算出された実モジ
ュールの位置情報および図形情報に基づいて、方向軸上
に存在する複数個の仮モジュールの位置情報を算出し、
算出した位置情報に基づいて、複数個の仮モジュールの
図形情報であるモジュール幅を補正する方向軸上仮モジ
ュール幅補正手段。
ける第3の態様は、方向軸上モジュール算出手段が、下
記の手段を備えた二次元コード読み取り装置である。 (a)方向軸上のモジュール群を構成する複数個のモジ
ュールの中心点を通るように、方向軸の角度を補正する
方向軸角度補正手段と、(b)方向軸角度補正手段によ
って補正された方向軸上に存在する複数個の実モジュー
ルの位置情報を算出し、算出した位置情報に基づいて、
複数個の実モジュールの図形情報であるモジュール幅を
補正する方向軸上実モジュール幅補正手段と(c)方向
軸上実モジュール幅補正手段によって算出された実モジ
ュールの位置情報および図形情報に基づいて、方向軸上
に存在する複数個の仮モジュールの位置情報を算出し、
算出した位置情報に基づいて、複数個の仮モジュールの
図形情報であるモジュール幅を補正する方向軸上仮モジ
ュール幅補正手段。
【0035】本発明の、二次元コード読み取り装置にお
ける第4の態様は、方向軸角度補正手段が、下記の手段
を備えた二次元コード読み取り装置である。 (a)方向軸上に存在する1個または連続する複数個の
「黒」のモジュールから構成される「黒」のモジュール
群の領域に基づいて、「黒」のモジュール群の中におい
て最もファインダーパターンに近い「黒」のモジュール
の第1補正中心点を算出する第1補正中心点算出手段
と、(b)第1補正中心点算出手段によって算出した
「黒」のモジュールの第1補正中心点を通る、方向軸と
隣り合う方向軸に平行な隣接予備軸上に存在する「黒」
のモジュールを含む1個または連続する複数個の「黒」
のモジュールから構成される「黒」のモジュール群の領
域に基づいて、「黒」のモジュールの第2補正中心点を
算出する第2補正中心点算出手段と、(c)第2補正中
心点算出手段によって算出した「黒」のモジュールの第
2補正中心点と、ファインダーパターンの中心点とを通
る方向予備軸上に存在する「黒」のモジュールを含む1
個または連続する複数個の「黒」のモジュールから構成
される「黒」のモジュール群の領域に基づいて、「黒」
のモジュールの中心点を算出する中心点算出手段と、
(d)中心点算出手段によって算出した「黒」のモジュ
ールの中心点とファインダーパターンの中心点とを通る
方向軸の補正した角度を算出する方向軸補正角度算出手
段。
ける第4の態様は、方向軸角度補正手段が、下記の手段
を備えた二次元コード読み取り装置である。 (a)方向軸上に存在する1個または連続する複数個の
「黒」のモジュールから構成される「黒」のモジュール
群の領域に基づいて、「黒」のモジュール群の中におい
て最もファインダーパターンに近い「黒」のモジュール
の第1補正中心点を算出する第1補正中心点算出手段
と、(b)第1補正中心点算出手段によって算出した
「黒」のモジュールの第1補正中心点を通る、方向軸と
隣り合う方向軸に平行な隣接予備軸上に存在する「黒」
のモジュールを含む1個または連続する複数個の「黒」
のモジュールから構成される「黒」のモジュール群の領
域に基づいて、「黒」のモジュールの第2補正中心点を
算出する第2補正中心点算出手段と、(c)第2補正中
心点算出手段によって算出した「黒」のモジュールの第
2補正中心点と、ファインダーパターンの中心点とを通
る方向予備軸上に存在する「黒」のモジュールを含む1
個または連続する複数個の「黒」のモジュールから構成
される「黒」のモジュール群の領域に基づいて、「黒」
のモジュールの中心点を算出する中心点算出手段と、
(d)中心点算出手段によって算出した「黒」のモジュ
ールの中心点とファインダーパターンの中心点とを通る
方向軸の補正した角度を算出する方向軸補正角度算出手
段。
【0036】本発明の、二次元コード読み取り装置にお
ける第5の態様は、方向軸上実モジュール幅補正手段
が、方向軸上に存在する1個または連続する複数個の同
一色の実モジュールから構成される同一色の実モジュー
ル群の領域に基づいて、同一色の実モジュール群を構成
する実モジュールの中心点およびモジュール幅を算出す
る手段を備えた二次元コード読み取り装置である。
ける第5の態様は、方向軸上実モジュール幅補正手段
が、方向軸上に存在する1個または連続する複数個の同
一色の実モジュールから構成される同一色の実モジュー
ル群の領域に基づいて、同一色の実モジュール群を構成
する実モジュールの中心点およびモジュール幅を算出す
る手段を備えた二次元コード読み取り装置である。
【0037】本発明の、二次元コード読み取り装置にお
ける第6の態様は、方向軸上仮モジュール幅補正手段
が、下記の手段を備えた二次元コード読み取り装置であ
る。 (a)総ての方向軸の中において補正量の最も小さい方
向軸である基準方向軸を検出する基準方向軸検出手段
と、(b)基準方向軸検出手段によって検出された基準
方向軸上に存在する最もファインダーパターンから離れ
ている「黒」のモジュールの図形情報に基づいて、方向
軸上に存在する複数個の仮モジュールの中心点およびモ
ジュール幅を算出する手段と、(c)基準方向軸上の実
モジュールおよび仮モジュールの位置情報に基づいて、
基準方向軸以外の方向軸上に存在する複数個の仮モジュ
ールの中心点およびモジュール幅を算出する手段。
ける第6の態様は、方向軸上仮モジュール幅補正手段
が、下記の手段を備えた二次元コード読み取り装置であ
る。 (a)総ての方向軸の中において補正量の最も小さい方
向軸である基準方向軸を検出する基準方向軸検出手段
と、(b)基準方向軸検出手段によって検出された基準
方向軸上に存在する最もファインダーパターンから離れ
ている「黒」のモジュールの図形情報に基づいて、方向
軸上に存在する複数個の仮モジュールの中心点およびモ
ジュール幅を算出する手段と、(c)基準方向軸上の実
モジュールおよび仮モジュールの位置情報に基づいて、
基準方向軸以外の方向軸上に存在する複数個の仮モジュ
ールの中心点およびモジュール幅を算出する手段。
【0038】本発明の、二次元コード読み取り装置にお
ける第7の態様は、下記の手段を更に備えた二次元コー
ド読み取り装置である。 (a)二次元コードのシンボルの読み取り画像の画素デ
ータを記憶する画素データ記憶手段と、(b)ファイン
ダーパターンの位置情報を算出するファインダーパター
ン探索手段と、(c)方向モジュールの位置情報および
図形情報を算出する方向モジュール探索手段と、(d)
データモジュールの色に基づいて、データキャラクタに
変換するデータキャラクタ変換手段。
ける第7の態様は、下記の手段を更に備えた二次元コー
ド読み取り装置である。 (a)二次元コードのシンボルの読み取り画像の画素デ
ータを記憶する画素データ記憶手段と、(b)ファイン
ダーパターンの位置情報を算出するファインダーパター
ン探索手段と、(c)方向モジュールの位置情報および
図形情報を算出する方向モジュール探索手段と、(d)
データモジュールの色に基づいて、データキャラクタに
変換するデータキャラクタ変換手段。
【0039】本発明の、二次元コード読み取り装置にお
ける第8の態様は、二次元コードのシンボルは、Max
iCodeシンボルであることを特徴とする二次元コー
ド読み取り装置である。
ける第8の態様は、二次元コードのシンボルは、Max
iCodeシンボルであることを特徴とする二次元コー
ド読み取り装置である。
【0040】
【発明の実施の形態】この発明の一実施態様を、図面を
参照しながら説明する。なお、以下に説明する実施態様
は説明のためのものであり、本発明の範囲を制限するも
のではない。従って、当業者であればこれらの各要素も
しくは全要素をこれと均等なもので置換した実施態様を
採用することが可能であるが、これらの実施態様も本発
明の範囲に含まれる。
参照しながら説明する。なお、以下に説明する実施態様
は説明のためのものであり、本発明の範囲を制限するも
のではない。従って、当業者であればこれらの各要素も
しくは全要素をこれと均等なもので置換した実施態様を
採用することが可能であるが、これらの実施態様も本発
明の範囲に含まれる。
【0041】図1は、この発明の二次元コード読み取り
装置の主要な要素のブロック構成図である。以下に各要
素について説明する。
装置の主要な要素のブロック構成図である。以下に各要
素について説明する。
【0042】二次元コード読み取り装置100は、光源
101、開口102を有する光センサ103、受信機お
よびAD変換器104、CPU105、VRAM10
6、およびROM107を備えている。
101、開口102を有する光センサ103、受信機お
よびAD変換器104、CPU105、VRAM10
6、およびROM107を備えている。
【0043】光源101は、MaxiCodeシンボル
110を照射するためのもので、LED(発光ダイオー
ド)や半導体レーザ、ランプなどから構成される。光セ
ンサ103は、MaxiCodeシンボル110から反
射された光を受信し、受信した光を電気信号に変換する
ためのもので、一次元または二次元CCD(電荷結合素
子)等から構成される。受信機およびAD変換器104
は、光センサ103からの電気信号を受信し、CPU1
05において処理できる信号に変換する。CPU105
は、信号であるイメージ画像に対して、デコード処理を
実行する。
110を照射するためのもので、LED(発光ダイオー
ド)や半導体レーザ、ランプなどから構成される。光セ
ンサ103は、MaxiCodeシンボル110から反
射された光を受信し、受信した光を電気信号に変換する
ためのもので、一次元または二次元CCD(電荷結合素
子)等から構成される。受信機およびAD変換器104
は、光センサ103からの電気信号を受信し、CPU1
05において処理できる信号に変換する。CPU105
は、信号であるイメージ画像に対して、デコード処理を
実行する。
【0044】即ち、光センサ103は、MaxiCod
eシンボル110の構成要素から反射された変調光であ
るアナログ信号を生成する。即ち、光センサ103のC
CDアレイにおける各ピクセル素子は、代表的にはグレ
ーレベルの信号、即ちビデオデータ信号と同様な、特定
のピクセル素子に働く光の量または強さを決定するアナ
ログ信号を出力する。
eシンボル110の構成要素から反射された変調光であ
るアナログ信号を生成する。即ち、光センサ103のC
CDアレイにおける各ピクセル素子は、代表的にはグレ
ーレベルの信号、即ちビデオデータ信号と同様な、特定
のピクセル素子に働く光の量または強さを決定するアナ
ログ信号を出力する。
【0045】受信機およびAD変換器104の受信機部
は、変調光であるアナログ信号を受信し、受信機および
AD変換器104のAD変換器部は、受信したアナログ
信号をデジタル信号に変換して、CPU105に送信す
る。即ち、受信機およびAD変換器104は、好ましく
はグレーレベルの信号を、例えば、CPU105におけ
る処理に使用するためのグレーの16レベルを有する、
デジタル信号に変換する。受信機およびAD変換器10
4は、デジタル信号であるMaxiCodeシンボル1
10のイメージ画像を、VRAM106に蓄積する。
は、変調光であるアナログ信号を受信し、受信機および
AD変換器104のAD変換器部は、受信したアナログ
信号をデジタル信号に変換して、CPU105に送信す
る。即ち、受信機およびAD変換器104は、好ましく
はグレーレベルの信号を、例えば、CPU105におけ
る処理に使用するためのグレーの16レベルを有する、
デジタル信号に変換する。受信機およびAD変換器10
4は、デジタル信号であるMaxiCodeシンボル1
10のイメージ画像を、VRAM106に蓄積する。
【0046】CPU105は、蓄積されたイメージ画像
に対して画像処理を行った後、インターフェースを介し
て、処理の結果を周辺機器またはホストコンピュータ
(図示せず)へ出力することができる。
に対して画像処理を行った後、インターフェースを介し
て、処理の結果を周辺機器またはホストコンピュータ
(図示せず)へ出力することができる。
【0047】また、CPU105の画像処理をホストコ
ンピュータにおいて、実行することもできる。
ンピュータにおいて、実行することもできる。
【0048】受信機およびAD変換器104とCPU1
05は、VRAM106に結合されている。ROM10
7は、CPU105を動かすプログラムを内蔵してい
る。また、後述する所定の値を記憶している。尚、Ma
xiCodeシンボル110の中心部の同心円が、ファ
インダーパターン111である。
05は、VRAM106に結合されている。ROM10
7は、CPU105を動かすプログラムを内蔵してい
る。また、後述する所定の値を記憶している。尚、Ma
xiCodeシンボル110の中心部の同心円が、ファ
インダーパターン111である。
【0049】図2は、二次元コードにおける読み取り装
置の機能ブロック図である。以下に各機能について説明
する。
置の機能ブロック図である。以下に各機能について説明
する。
【0050】CPU105は、制御手段201、画素デ
ータ記憶手段202、ファインダーパターン探索手段2
03、方向モジュール探索手段204、データモジュー
ル探索手段205およびデータキャラクタ変換手段20
6を備えている。
ータ記憶手段202、ファインダーパターン探索手段2
03、方向モジュール探索手段204、データモジュー
ル探索手段205およびデータキャラクタ変換手段20
6を備えている。
【0051】CPU105の画素データ記憶手段202
は、図示しない光センサ103を介して読み取ったイメ
ージ画像の画像情報を、画素の位置と対応付けられた画
素データとして、VRAM106の画素データ記憶部2
10に記憶する。
は、図示しない光センサ103を介して読み取ったイメ
ージ画像の画像情報を、画素の位置と対応付けられた画
素データとして、VRAM106の画素データ記憶部2
10に記憶する。
【0052】CPU105のファインダーパターン探索
手段203は、VRAM106の画素データ記憶部21
0に記憶された画素データとROM107のデコード情
報記憶部220に記憶されている実際のMaxiCod
eシンボルの図形情報に基づいて、MaxiCodeシ
ンボルのファインダーパターンを探索し、ファインダー
パターンの図形情報である、ファインダーパターンの中
心位置、ファインダーパターンの大きさおよびファイン
ダーパターンの形状を算出する。更に、算出したファイ
ンダーパターンの図形情報をVRAM106のファイン
ダーパターン情報記憶部211に記憶する。
手段203は、VRAM106の画素データ記憶部21
0に記憶された画素データとROM107のデコード情
報記憶部220に記憶されている実際のMaxiCod
eシンボルの図形情報に基づいて、MaxiCodeシ
ンボルのファインダーパターンを探索し、ファインダー
パターンの図形情報である、ファインダーパターンの中
心位置、ファインダーパターンの大きさおよびファイン
ダーパターンの形状を算出する。更に、算出したファイ
ンダーパターンの図形情報をVRAM106のファイン
ダーパターン情報記憶部211に記憶する。
【0053】CPU105の方向モジュール探索手段2
04は、MaxiCodeシンボルの読み取られた画像
情報と実際のMaxiCodeシンボルの図形情報とに
基づいて、方向モジュールを探索し、6個の方向に3個
づつ存在する18個の方法モジュールの位置情報および
図形情報を算出する。また、算出した方向モジュールの
位置情報からMaxiCodeシンボルの方向を決定す
る。更に、算出した方向モジュールの位置情報および図
形情報をVRAM106の方向モジュール情報記憶部2
12に記憶する。
04は、MaxiCodeシンボルの読み取られた画像
情報と実際のMaxiCodeシンボルの図形情報とに
基づいて、方向モジュールを探索し、6個の方向に3個
づつ存在する18個の方法モジュールの位置情報および
図形情報を算出する。また、算出した方向モジュールの
位置情報からMaxiCodeシンボルの方向を決定す
る。更に、算出した方向モジュールの位置情報および図
形情報をVRAM106の方向モジュール情報記憶部2
12に記憶する。
【0054】CPU105のデータモジュール探索手段
205は、ファインダーパターン探索手段203によっ
て算出したファインダーパターンの図形情報と、方向モ
ジュール探索手段204によって算出した方向モジュー
ルの位置情報および図形情報とに基づいて、光センサ1
03によって読み取られた画像情報の歪み補正をするこ
とによって、MaxiCodeシンボルにおける総ての
データモジュールを探索し、データモジュールの位置情
報および図形情報を算出する。更に、算出したデータモ
ジュールの位置情報および図形情報をVRAM106の
データモジュール情報記憶部213に記憶する。
205は、ファインダーパターン探索手段203によっ
て算出したファインダーパターンの図形情報と、方向モ
ジュール探索手段204によって算出した方向モジュー
ルの位置情報および図形情報とに基づいて、光センサ1
03によって読み取られた画像情報の歪み補正をするこ
とによって、MaxiCodeシンボルにおける総ての
データモジュールを探索し、データモジュールの位置情
報および図形情報を算出する。更に、算出したデータモ
ジュールの位置情報および図形情報をVRAM106の
データモジュール情報記憶部213に記憶する。
【0055】CPU105のデータキャラクタ変換手段
206は、算出した総てのデータモジュールの色を、例
えば、データモジュールが「白」のときビット0とし、
データモジュールが「黒」のときビット1とする、ビッ
トパターンに変換する(以後、「ビット変換」とい
う)。ビット変換したデータを二次元ビット配列テーブ
ルに格納し、ROM107のデコード情報記憶部220
に予め記憶されているコードワード二次元配列テーブル
に基づいて、1文字分のデータを表すデータコードワー
ドとエラー訂正の情報を表すエラー訂正コードワードに
変換する(以後、「コードワード変換」という)。コー
ドワード変換したデータコードワードは、更にエラー訂
正コードワードを使用し、エラー訂正処理を行うことに
よって、正しいデータコードワードに復元される。
206は、算出した総てのデータモジュールの色を、例
えば、データモジュールが「白」のときビット0とし、
データモジュールが「黒」のときビット1とする、ビッ
トパターンに変換する(以後、「ビット変換」とい
う)。ビット変換したデータを二次元ビット配列テーブ
ルに格納し、ROM107のデコード情報記憶部220
に予め記憶されているコードワード二次元配列テーブル
に基づいて、1文字分のデータを表すデータコードワー
ドとエラー訂正の情報を表すエラー訂正コードワードに
変換する(以後、「コードワード変換」という)。コー
ドワード変換したデータコードワードは、更にエラー訂
正コードワードを使用し、エラー訂正処理を行うことに
よって、正しいデータコードワードに復元される。
【0056】エラー訂正処理されたデータコードワード
を、ROM107のデコード情報記憶部220に予め記
憶されているデフォルトキャラクタセット表に基づい
て、データキャラクタに変換する。変換したデータキャ
ラクタを、VRAM106のデコード結果記憶部214
に記憶する。更に、データキャラクタ変換の中間処理デ
ータであるビット変換したデータ、コードワード変換し
たデータおよびエラー訂正したデータを、VRAM10
6のデコード結果記憶部214に記憶しても良い。
を、ROM107のデコード情報記憶部220に予め記
憶されているデフォルトキャラクタセット表に基づい
て、データキャラクタに変換する。変換したデータキャ
ラクタを、VRAM106のデコード結果記憶部214
に記憶する。更に、データキャラクタ変換の中間処理デ
ータであるビット変換したデータ、コードワード変換し
たデータおよびエラー訂正したデータを、VRAM10
6のデコード結果記憶部214に記憶しても良い。
【0057】CPU105の制御手段201は、画素デ
ータ記憶手段202、ファインダーパターン探索手段2
03、方向モジュール探索手段204、データモジュー
ル探索手段205およびデータキャラクタ変換手段20
6のそれぞれの手段を相互に関連付けて制御する。
ータ記憶手段202、ファインダーパターン探索手段2
03、方向モジュール探索手段204、データモジュー
ル探索手段205およびデータキャラクタ変換手段20
6のそれぞれの手段を相互に関連付けて制御する。
【0058】本発明の二次元コード読み取り方法は、二
次元コードのシンボルの読み取り画像における、ファイ
ンダーパターンの位置情報と方向モジュールの位置情報
および図形情報とに基づいて、ファインダーパターンの
中心点と方向モジュールとを通る方向軸を算出すること
によって、二次元コードのシンボルを構成する総てのモ
ジュールの位置情報および図形情報を算出するデータモ
ジュール探索ステップを備えている。
次元コードのシンボルの読み取り画像における、ファイ
ンダーパターンの位置情報と方向モジュールの位置情報
および図形情報とに基づいて、ファインダーパターンの
中心点と方向モジュールとを通る方向軸を算出すること
によって、二次元コードのシンボルを構成する総てのモ
ジュールの位置情報および図形情報を算出するデータモ
ジュール探索ステップを備えている。
【0059】また、本発明の二次元コード読み取り方法
は、(a)二次元コードのシンボルの読み取り画像の画
素データを記憶する画素データ記憶ステップと、(b)
ファインダーパターンの位置情報を算出するファインダ
ーパターン探索ステップと、(c)方向モジュールの位
置情報および図形情報を算出する方向モジュール探索ス
テップと、(d)データモジュールの色に基づいて、デ
ータキャラクタに変換するデータキャラクタ変換ステッ
プとを備えている。
は、(a)二次元コードのシンボルの読み取り画像の画
素データを記憶する画素データ記憶ステップと、(b)
ファインダーパターンの位置情報を算出するファインダ
ーパターン探索ステップと、(c)方向モジュールの位
置情報および図形情報を算出する方向モジュール探索ス
テップと、(d)データモジュールの色に基づいて、デ
ータキャラクタに変換するデータキャラクタ変換ステッ
プとを備えている。
【0060】また、本発明の二次元コード読み取り方法
は、二次元コードのシンボルは、MaxiCodeシン
ボルである。
は、二次元コードのシンボルは、MaxiCodeシン
ボルである。
【0061】上述した本発明の二次元コード読み取り方
法について、図を参照しながら以下に詳細に説明する。
法について、図を参照しながら以下に詳細に説明する。
【0062】図3は、この発明の二次元コード読み取り
方法における、デコード処理のフローチャート図であ
る。
方法における、デコード処理のフローチャート図であ
る。
【0063】まず、光センサ103を介して読み取った
イメージ画像の画像情報を、画素の位置と対応付けられ
た画素データとして、VRAM106の画素データ記憶
部210に画素データを記憶する(ステップS30
1)。
イメージ画像の画像情報を、画素の位置と対応付けられ
た画素データとして、VRAM106の画素データ記憶
部210に画素データを記憶する(ステップS30
1)。
【0064】画素データは、画素の位置を表す座標値と
画像のグレーレベルを表すグレースケール値によって構
成されている。ここで、黒色に近いほどグレースケール
値を小さい値とする。更に、画素データのグレースケー
ル値は、ROM107のデコード情報記憶部220に予
め記憶されている所定のグレースケール閾値によって、
「黒」=1と「白」=0の2値のパターン値に変換され
る。即ち、画素のグレースケール値がグレースケール閾
値未満の場合、パターン値は「黒」=1になり、画素の
グレースケール値がグレースケール閾値以上の場合、パ
ターン値は「白」=0となる。ここで、「黒」=1と
「白」=0の2値を画像データとして画像データ記憶部
210に記憶しても良い。また、グレースケール閾値
は、変更可能な値である。
画像のグレーレベルを表すグレースケール値によって構
成されている。ここで、黒色に近いほどグレースケール
値を小さい値とする。更に、画素データのグレースケー
ル値は、ROM107のデコード情報記憶部220に予
め記憶されている所定のグレースケール閾値によって、
「黒」=1と「白」=0の2値のパターン値に変換され
る。即ち、画素のグレースケール値がグレースケール閾
値未満の場合、パターン値は「黒」=1になり、画素の
グレースケール値がグレースケール閾値以上の場合、パ
ターン値は「白」=0となる。ここで、「黒」=1と
「白」=0の2値を画像データとして画像データ記憶部
210に記憶しても良い。また、グレースケール閾値
は、変更可能な値である。
【0065】次に、VRAM106の画素データ記憶部
210に記憶された画素データからMaxiCodeシ
ンボルのファインダーパターンであるファインダーパタ
ーンを探索する(ステップS302)。
210に記憶された画素データからMaxiCodeシ
ンボルのファインダーパターンであるファインダーパタ
ーンを探索する(ステップS302)。
【0066】ファインダーパターンの探索によって、フ
ァインダーパターンの図形情報である、ファインダーパ
ターンの中心位置、ファインダーパターンの大きさおよ
びファインダーパターンの形状を算出する。実際のMa
xiCodeシンボルのファインダーパターンは、図2
0(b)に示すように、6個の同心円によって生成され
る1個の白色の円、2個の白色の輪、および3個の黒色
の輪から構成される。従って、ファインダーパターンの
図形情報として、ファインダーパターンの中心の位置座
標、およびファインダーパターンの白色部と黒色部との
色境界の位置座標群を算出する。
ァインダーパターンの図形情報である、ファインダーパ
ターンの中心位置、ファインダーパターンの大きさおよ
びファインダーパターンの形状を算出する。実際のMa
xiCodeシンボルのファインダーパターンは、図2
0(b)に示すように、6個の同心円によって生成され
る1個の白色の円、2個の白色の輪、および3個の黒色
の輪から構成される。従って、ファインダーパターンの
図形情報として、ファインダーパターンの中心の位置座
標、およびファインダーパターンの白色部と黒色部との
色境界の位置座標群を算出する。
【0067】次に、VRAM106の画素データ記憶部
210に記憶された画素データに基づいて、方向モジュ
ールを探索する(ステップS303)。
210に記憶された画素データに基づいて、方向モジュ
ールを探索する(ステップS303)。
【0068】方向モジュールは、MaxiCodeシン
ボルの方向を示すモジュールであり、MaxiCode
シンボルの決められた位置に配置されている。従って、
方向モジュールを探索し、方向モジュールの位置情報お
よび図形情報を算出することにより、MaxiCode
シンボルの方向がわかる。MaxiCodeシンボルの
方向がわかることにより、MaxiCodeシンボルの
各データモジュールの位置がわかり、各データモジュー
ルの色がわかる。
ボルの方向を示すモジュールであり、MaxiCode
シンボルの決められた位置に配置されている。従って、
方向モジュールを探索し、方向モジュールの位置情報お
よび図形情報を算出することにより、MaxiCode
シンボルの方向がわかる。MaxiCodeシンボルの
方向がわかることにより、MaxiCodeシンボルの
各データモジュールの位置がわかり、各データモジュー
ルの色がわかる。
【0069】次に、算出した方向モジュールとファイン
ダーパターンの中心点を結んだ方向軸、方向モジュール
の位置情報および方向モジュールの図形情報に基づい
て、光センサ103によって読み取られた画像情報の歪
み補正をすることによって、MaxiCodeシンボル
を構成する総てのデータモジュールを、方向軸上のデー
タデータモジュールと方向軸間の領域に存在するデータ
モジュールとに分けて、各データモジュールの位置情報
および図形情報を算出する(ステップS304)。
ダーパターンの中心点を結んだ方向軸、方向モジュール
の位置情報および方向モジュールの図形情報に基づい
て、光センサ103によって読み取られた画像情報の歪
み補正をすることによって、MaxiCodeシンボル
を構成する総てのデータモジュールを、方向軸上のデー
タデータモジュールと方向軸間の領域に存在するデータ
モジュールとに分けて、各データモジュールの位置情報
および図形情報を算出する(ステップS304)。
【0070】次に、算出した各データモジュールの色を
識別し、総てのデータモジュールをビット変換し、ビッ
ト変換したデータを二次元ビット配列テーブルに格納
し、ROM107のデコード情報記憶部220に予め記
憶されている所定のコードワード二次元配列テーブルに
基づいて、データをコードワードに変換し、エラー訂正
処理をした後、コードワードをROM107のデコード
情報記憶部220に予め記憶されている所定のデフォル
トキャラクタセット表に基づいて、データキャラクタに
変換し(ステップS305)、デコード処理を終了す
る。
識別し、総てのデータモジュールをビット変換し、ビッ
ト変換したデータを二次元ビット配列テーブルに格納
し、ROM107のデコード情報記憶部220に予め記
憶されている所定のコードワード二次元配列テーブルに
基づいて、データをコードワードに変換し、エラー訂正
処理をした後、コードワードをROM107のデコード
情報記憶部220に予め記憶されている所定のデフォル
トキャラクタセット表に基づいて、データキャラクタに
変換し(ステップS305)、デコード処理を終了す
る。
【0071】また、本発明の二次元コード読み取り方法
は、データモジュール探索ステップが、(a)ファイン
ダーパターンの位置情報と方向モジュールの位置情報お
よび図形情報とに基づいて、方向軸上に存在するモジュ
ール群を構成する複数個のモジュールの位置情報および
図形情報を算出する方向軸上モジュール位置算出ステッ
プと、(b)方向軸上モジュール位置算出ステップによ
って算出された方向軸上に存在する複数個のデータモジ
ュールのビットパターンを検出する方向軸上データモジ
ュールビットパターン検出ステップと、(c)方向軸上
モジュール位置算出ステップによって算出された方向軸
上のモジュール群を構成する複数個のモジュールの位置
情報および図形情報に基づいて、隣り合う方向軸によっ
て構成される方向軸間のモジュール群を構成する複数個
のモジュールの位置情報を算出する方向軸間モジュール
位置算出ステップと、(d)方向軸間モジュール位置算
出ステップによって算出された方向軸間に存在する複数
個のデータモジュールのビットパターンを検出する方向
軸間データモジュールビットパターン検出ステップとを
備えている。
は、データモジュール探索ステップが、(a)ファイン
ダーパターンの位置情報と方向モジュールの位置情報お
よび図形情報とに基づいて、方向軸上に存在するモジュ
ール群を構成する複数個のモジュールの位置情報および
図形情報を算出する方向軸上モジュール位置算出ステッ
プと、(b)方向軸上モジュール位置算出ステップによ
って算出された方向軸上に存在する複数個のデータモジ
ュールのビットパターンを検出する方向軸上データモジ
ュールビットパターン検出ステップと、(c)方向軸上
モジュール位置算出ステップによって算出された方向軸
上のモジュール群を構成する複数個のモジュールの位置
情報および図形情報に基づいて、隣り合う方向軸によっ
て構成される方向軸間のモジュール群を構成する複数個
のモジュールの位置情報を算出する方向軸間モジュール
位置算出ステップと、(d)方向軸間モジュール位置算
出ステップによって算出された方向軸間に存在する複数
個のデータモジュールのビットパターンを検出する方向
軸間データモジュールビットパターン検出ステップとを
備えている。
【0072】上述したデータモジュール探索ステップに
ついて、図4、図10および図11を参照して説明す
る。
ついて、図4、図10および図11を参照して説明す
る。
【0073】図4は、MaxiCodeシンボルのデコ
ード処理におけるデータモジュール探索処理のフローチ
ャート図である。
ード処理におけるデータモジュール探索処理のフローチ
ャート図である。
【0074】まず、ファインダーパターンの中心点、内
側方向モジュールの中心点および外側方向モジュールの
中心点を通る方向軸を想定し、方向軸上のデータモジュ
ールの位置情報および図形情報を算出する(ステップS
401)。
側方向モジュールの中心点および外側方向モジュールの
中心点を通る方向軸を想定し、方向軸上のデータモジュ
ールの位置情報および図形情報を算出する(ステップS
401)。
【0075】図10は、方向軸上のモジュールを示す図
である。図10(a)は、方向軸上の実モジュールと仮
モジュールを示す図であり、図10(b)は、方向軸上
のデータモジュールの位置を示す図である。
である。図10(a)は、方向軸上の実モジュールと仮
モジュールを示す図であり、図10(b)は、方向軸上
のデータモジュールの位置を示す図である。
【0076】図10(a)に示すように、ファインダー
パターンの中心点、内側方向モジュールの中心点および
外側方向モジュールの中心点を通る方向軸を想定し、軸
番号をつける。また、データモジュールの位置を算出す
るために、方向軸上に、MaxiCodeシンボルに存
在するモジュール(以下、「実モジュール」という)
と、MaxiCodeシンボルに存在しないモジュール
(以下、「仮モジュール」という)を考える。ここで、
仮モジュールは、実モジュールと同一の図形である。
パターンの中心点、内側方向モジュールの中心点および
外側方向モジュールの中心点を通る方向軸を想定し、軸
番号をつける。また、データモジュールの位置を算出す
るために、方向軸上に、MaxiCodeシンボルに存
在するモジュール(以下、「実モジュール」という)
と、MaxiCodeシンボルに存在しないモジュール
(以下、「仮モジュール」という)を考える。ここで、
仮モジュールは、実モジュールと同一の図形である。
【0077】図10(b)に示すように、軸番号0の方
向軸上においては、実モジュールが10個と仮モジュー
ルが8個からなるモジュール群を考え、各モジュールの
中心点の位置を算出する。尚、軸番号1の方向軸上にお
いては、実モジュールが11個と仮モジュールが7個か
らなるモジュール群を考え、軸番号2の方向軸上におい
ては、実モジュールが11個と仮モジュールが6個から
なるモジュール群を考え、軸番号3の方向軸上において
は、実モジュールが9個と仮モジュールが8個からなる
モジュール群を考え、軸番号4の方向軸上においては、
実モジュールが11個と仮モジュールが6個からなるモ
ジュール群を考え、軸番号5の方向軸上においては、実
モジュールが11個と仮モジュールが7個からなるモジ
ュール群を考える。ここで、軸番号1の方向軸上の実モ
ジュールは12個あるが、内側方向モジュールよりもファ
インダーパターンの中心に近い実モジュールは、独自に
モジュールの中心点の位置を求め、ビット変換を行う。
従って、軸番号1の方向軸上においては、実モジュール
が11個と仮モジュールが7個からなるモジュール群を
考えれば良い。
向軸上においては、実モジュールが10個と仮モジュー
ルが8個からなるモジュール群を考え、各モジュールの
中心点の位置を算出する。尚、軸番号1の方向軸上にお
いては、実モジュールが11個と仮モジュールが7個か
らなるモジュール群を考え、軸番号2の方向軸上におい
ては、実モジュールが11個と仮モジュールが6個から
なるモジュール群を考え、軸番号3の方向軸上において
は、実モジュールが9個と仮モジュールが8個からなる
モジュール群を考え、軸番号4の方向軸上においては、
実モジュールが11個と仮モジュールが6個からなるモ
ジュール群を考え、軸番号5の方向軸上においては、実
モジュールが11個と仮モジュールが7個からなるモジ
ュール群を考える。ここで、軸番号1の方向軸上の実モ
ジュールは12個あるが、内側方向モジュールよりもファ
インダーパターンの中心に近い実モジュールは、独自に
モジュールの中心点の位置を求め、ビット変換を行う。
従って、軸番号1の方向軸上においては、実モジュール
が11個と仮モジュールが7個からなるモジュール群を
考えれば良い。
【0078】次に、算出した各モジュールの中心点の位
置に対応する画素データに基づいて、「黒」=ビット1
または「白」=ビット0からなるビットパターンに変換
する(S402)。ここで、仮モジュールはビットパタ
ーンに変換しない。
置に対応する画素データに基づいて、「黒」=ビット1
または「白」=ビット0からなるビットパターンに変換
する(S402)。ここで、仮モジュールはビットパタ
ーンに変換しない。
【0079】次に、方向軸間の領域に存在するMaxi
Codeシンボルのデータモジュールの位置情報を算出
する(ステップS403)。
Codeシンボルのデータモジュールの位置情報を算出
する(ステップS403)。
【0080】図11は、方向軸間のモジュールを示す図
である。図11(a)は、方向軸間の実モジュールと仮
モジュールを示す図であり、図11(b)は、方向軸間
のデータモジュールの位置を示す図である。
である。図11(a)は、方向軸間の実モジュールと仮
モジュールを示す図であり、図11(b)は、方向軸間
のデータモジュールの位置を示す図である。
【0081】図11(a)に示すように、軸番号0と軸
番号1とからなる三角形の領域を仮シンボル領域0と
し、軸番号1と軸番号2とからなる三角形の領域を仮シ
ンボル領域1とし、軸番号2と軸番号3とからなる三角
形の領域を仮シンボル領域2とし、軸番号3と軸番号4
とからなる三角形の領域を仮シンボル領域3とし、軸番
号4と軸番号5とからなる三角形の領域を仮シンボル領
域4とし、軸番号5と軸番号0とからなる三角形の領域
を仮シンボル領域5とする。また、仮シンボル領域iに
おいて、MaxiCodeシンボルの領域は、実モジュ
ールで構成され、MaxiCodeシンボルの領域以外
は、仮モジュールで構成されている。
番号1とからなる三角形の領域を仮シンボル領域0と
し、軸番号1と軸番号2とからなる三角形の領域を仮シ
ンボル領域1とし、軸番号2と軸番号3とからなる三角
形の領域を仮シンボル領域2とし、軸番号3と軸番号4
とからなる三角形の領域を仮シンボル領域3とし、軸番
号4と軸番号5とからなる三角形の領域を仮シンボル領
域4とし、軸番号5と軸番号0とからなる三角形の領域
を仮シンボル領域5とする。また、仮シンボル領域iに
おいて、MaxiCodeシンボルの領域は、実モジュ
ールで構成され、MaxiCodeシンボルの領域以外
は、仮モジュールで構成されている。
【0082】図11(b)に示すように、軸番号iの方
向軸上のモジュールの中心点と、軸番号i+1の方向軸
上のモジュールの中心点とを直線で結び、結んだ直線を
(方向軸間のモジュール数+1)間隔に分割した点を各
モジュールの中心点とする。即ち、仮シンボル領域0に
おいては、直線は18本となり、方向軸上の内側方向モ
ジュールの中心点を点A1と点A’1とするとき、点A
1と点A’1とを結んだ直線は、6個に分割され、分割
された点がモジュールの中心点となる。また、点Akと
点A’kとを結んだ直線は、(k+5)個に分割され、
分割された点がモジュールの中心点となる。
向軸上のモジュールの中心点と、軸番号i+1の方向軸
上のモジュールの中心点とを直線で結び、結んだ直線を
(方向軸間のモジュール数+1)間隔に分割した点を各
モジュールの中心点とする。即ち、仮シンボル領域0に
おいては、直線は18本となり、方向軸上の内側方向モ
ジュールの中心点を点A1と点A’1とするとき、点A
1と点A’1とを結んだ直線は、6個に分割され、分割
された点がモジュールの中心点となる。また、点Akと
点A’kとを結んだ直線は、(k+5)個に分割され、
分割された点がモジュールの中心点となる。
【0083】次に、算出した各モジュールの中心点の位
置に対応する画素データに基づいて、「黒」=ビット1
または「白」=ビット0からなるビットパターンに変換
し(S404)、データモジュール探索処理を終了す
る。尚、ステップS404のビットパターンの変換は、
実モジュールについてのみ実行する。
置に対応する画素データに基づいて、「黒」=ビット1
または「白」=ビット0からなるビットパターンに変換
し(S404)、データモジュール探索処理を終了す
る。尚、ステップS404のビットパターンの変換は、
実モジュールについてのみ実行する。
【0084】また、本発明の二次元コード読み取り方法
は、方向軸上モジュール算出ステップが、(a)方向軸
上のモジュール群を構成する複数個のモジュールの中心
点を通るように、方向軸の角度を補正する方向軸角度補
正ステップと、(b)方向軸角度補正ステップによって
補正された方向軸上に存在する複数個の実モジュールの
位置情報を算出し、算出した位置情報に基づいて、複数
個の実モジュールの図形情報であるモジュール幅を補正
する方向軸上実モジュール幅補正ステップと、(c)方
向軸上実モジュール幅補正ステップによって算出された
実モジュールの位置情報および図形情報に基づいて、方
向軸上に存在する複数個の仮モジュールの位置情報を算
出し、算出した位置情報に基づいて、複数個の仮モジュ
ールの図形情報であるモジュール幅を補正する方向軸上
仮モジュール幅補正ステップとを備えている。
は、方向軸上モジュール算出ステップが、(a)方向軸
上のモジュール群を構成する複数個のモジュールの中心
点を通るように、方向軸の角度を補正する方向軸角度補
正ステップと、(b)方向軸角度補正ステップによって
補正された方向軸上に存在する複数個の実モジュールの
位置情報を算出し、算出した位置情報に基づいて、複数
個の実モジュールの図形情報であるモジュール幅を補正
する方向軸上実モジュール幅補正ステップと、(c)方
向軸上実モジュール幅補正ステップによって算出された
実モジュールの位置情報および図形情報に基づいて、方
向軸上に存在する複数個の仮モジュールの位置情報を算
出し、算出した位置情報に基づいて、複数個の仮モジュ
ールの図形情報であるモジュール幅を補正する方向軸上
仮モジュール幅補正ステップとを備えている。
【0085】次に、上述した方向軸上のデータモジュー
ルの位置情報および図形情報を算出する処理を、図5お
よび図12を参照して詳細に説明する。
ルの位置情報および図形情報を算出する処理を、図5お
よび図12を参照して詳細に説明する。
【0086】図5は、データモジュール探索処理におけ
る方向軸上のデータジュール位置算出処理のフローチャ
ート図である。
る方向軸上のデータジュール位置算出処理のフローチャ
ート図である。
【0087】まず、内側方向モジュールを探索開始のモ
ジュールとして、方向軸上をシンボルの外側方向へ、
「黒」のモジュール群を探索する(ステップS50
1)。即ち、VRAM106の画素データ記憶部210
に記憶された画素データに基づいて、内側方向モジュー
ルの中心点を開始点として、方向軸上の連続する「黒」
の画素データを探索する。ここで、「黒」のモジュール
群とは、1個または連続する複数個の「黒」のモジュー
ルによって構成されるモジュール群である。
ジュールとして、方向軸上をシンボルの外側方向へ、
「黒」のモジュール群を探索する(ステップS50
1)。即ち、VRAM106の画素データ記憶部210
に記憶された画素データに基づいて、内側方向モジュー
ルの中心点を開始点として、方向軸上の連続する「黒」
の画素データを探索する。ここで、「黒」のモジュール
群とは、1個または連続する複数個の「黒」のモジュー
ルによって構成されるモジュール群である。
【0088】次に、探索した「黒」のモジュール群に基
づいて、方向軸の角度補正を実行する(ステップS50
2)。シンボルの読み取り画像が歪んでいるために、図
3のステップS303において探索した方向モジュール
の位置情報は、必ずしも方向モジュールの中心点の位置
情報であるとは限らない。従って、方向モジュールの位
置情報とファインダーパターンの中心点の位置情報に基
づいて算出された方向軸上に、データモジュールの中心
点が存在するとは限らない。また、方向モジュールの位
置情報が方向モジュールの中心点の位置情報であったと
しても、画像の歪みの大きいシンボルの外側において
は、データモジュールの中心点が方向軸上に存在すると
は限らない。そこで、方向モジュールの位置情報とファ
インダーパターンの中心点の位置情報に基づいて算出さ
れた方向軸が、方向モジュールおよびデータモジュール
の中心点近傍を通るように軸の角度補正する。
づいて、方向軸の角度補正を実行する(ステップS50
2)。シンボルの読み取り画像が歪んでいるために、図
3のステップS303において探索した方向モジュール
の位置情報は、必ずしも方向モジュールの中心点の位置
情報であるとは限らない。従って、方向モジュールの位
置情報とファインダーパターンの中心点の位置情報に基
づいて算出された方向軸上に、データモジュールの中心
点が存在するとは限らない。また、方向モジュールの位
置情報が方向モジュールの中心点の位置情報であったと
しても、画像の歪みの大きいシンボルの外側において
は、データモジュールの中心点が方向軸上に存在すると
は限らない。そこで、方向モジュールの位置情報とファ
インダーパターンの中心点の位置情報に基づいて算出さ
れた方向軸が、方向モジュールおよびデータモジュール
の中心点近傍を通るように軸の角度補正する。
【0089】図12は、方向軸の角度補正を示す図であ
る。図12に示すように、ステップS501に方向軸の
角度を補正することによって、モジュールの中心点近傍
を通るようにする。
る。図12に示すように、ステップS501に方向軸の
角度を補正することによって、モジュールの中心点近傍
を通るようにする。
【0090】次に、方向軸上の「黒」のモジュール群を
総て探索したか否かを判定する(ステップS503)。
即ち、総ての「黒」のモジュール群に基づいた、方向軸
の角度補正を実行したか否かを判定する。方向軸上の
「黒」のモジュール群を総て探索していない場合(ステ
ップS503;No)は、ステップS501に戻って、
方向軸i上の「黒」のモジュール群を総て探索するま
で、ステップS501およびステップS502を繰り返
す。
総て探索したか否かを判定する(ステップS503)。
即ち、総ての「黒」のモジュール群に基づいた、方向軸
の角度補正を実行したか否かを判定する。方向軸上の
「黒」のモジュール群を総て探索していない場合(ステ
ップS503;No)は、ステップS501に戻って、
方向軸i上の「黒」のモジュール群を総て探索するま
で、ステップS501およびステップS502を繰り返
す。
【0091】一方、方向軸上の「黒」のモジュール群を
総て探索した場合(ステップS503;Yes)は、総
ての「黒」のモジュール群に基づいた、方向軸の角度補
正を実行した後の方向軸iを補正後の方向軸に決める
(ステップS504)。総ての「黒」のモジュール群に
基づいた、方向軸の角度補正を実行することによって、
画像の歪みの大きい場合でもシンボルの外側に存在する
データモジュールの中心点近傍を通るように方向軸iを
補正できる。
総て探索した場合(ステップS503;Yes)は、総
ての「黒」のモジュール群に基づいた、方向軸の角度補
正を実行した後の方向軸iを補正後の方向軸に決める
(ステップS504)。総ての「黒」のモジュール群に
基づいた、方向軸の角度補正を実行することによって、
画像の歪みの大きい場合でもシンボルの外側に存在する
データモジュールの中心点近傍を通るように方向軸iを
補正できる。
【0092】次に、6方向の総ての方向軸を補正したか
否かを判定する(ステップS505)。6方向の総ての
方向軸を補正していない場合(ステップS505;N
o)は、ステップS501に戻って、6方向の総ての方
向軸を補正するまでステップS501からステップS5
04を繰り返す。
否かを判定する(ステップS505)。6方向の総ての
方向軸を補正していない場合(ステップS505;N
o)は、ステップS501に戻って、6方向の総ての方
向軸を補正するまでステップS501からステップS5
04を繰り返す。
【0093】一方、6方向の総ての方向軸を補正した場
合(ステップS505;Yes)は、角度補正した方向
軸上に存在する総ての実モジュールの幅を補正し(ステ
ップS506)、最後に、角度補正した方向軸上の仮モ
ジュールの幅を補正し(ステップS507)、処理を終
了する。
合(ステップS505;Yes)は、角度補正した方向
軸上に存在する総ての実モジュールの幅を補正し(ステ
ップS506)、最後に、角度補正した方向軸上の仮モ
ジュールの幅を補正し(ステップS507)、処理を終
了する。
【0094】また、本発明の二次元コード読み取り方法
は、方向軸角度補正ステップが、(a)方向軸上に存在
する1個または連続する複数個の「黒」のモジュールか
ら構成される「黒」のモジュール群の領域に基づいて、
「黒」のモジュール群の中において最もファインダーパ
ターンに近い「黒」のモジュールの第1補正中心点を算
出する第1補正中心点算出ステップと、(b)第1補正
中心点算出ステップによって算出した「黒」のモジュー
ルの第1補正中心点を通る、方向軸と隣り合う方向軸に
平行な隣接予備軸上に存在する「黒」のモジュールを含
む1個または連続する複数個の「黒」のモジュールから
構成される「黒」のモジュール群の領域に基づいて、
「黒」のモジュールの第2補正中心点を算出する第2補
正中心点算出ステップと、(c)第2補正中心点算出ス
テップによって算出した「黒」のモジュールの第2補正
中心点とファインダーパターンの中心点とを通る方向予
備軸上に存在する「黒」のモジュールを含む1個または
連続する複数個の「黒」のモジュールから構成される
「黒」のモジュール群の領域に基づいて、「黒」のモジ
ュールの中心点を算出する中心点算出ステップと、
(d)中心点算出ステップによって算出した「黒」のモ
ジュールの中心点とファインダーパターンの中心点とを
通る方向軸の補正した角度を算出する方向軸補正角度算
出ステップとを備えている。
は、方向軸角度補正ステップが、(a)方向軸上に存在
する1個または連続する複数個の「黒」のモジュールか
ら構成される「黒」のモジュール群の領域に基づいて、
「黒」のモジュール群の中において最もファインダーパ
ターンに近い「黒」のモジュールの第1補正中心点を算
出する第1補正中心点算出ステップと、(b)第1補正
中心点算出ステップによって算出した「黒」のモジュー
ルの第1補正中心点を通る、方向軸と隣り合う方向軸に
平行な隣接予備軸上に存在する「黒」のモジュールを含
む1個または連続する複数個の「黒」のモジュールから
構成される「黒」のモジュール群の領域に基づいて、
「黒」のモジュールの第2補正中心点を算出する第2補
正中心点算出ステップと、(c)第2補正中心点算出ス
テップによって算出した「黒」のモジュールの第2補正
中心点とファインダーパターンの中心点とを通る方向予
備軸上に存在する「黒」のモジュールを含む1個または
連続する複数個の「黒」のモジュールから構成される
「黒」のモジュール群の領域に基づいて、「黒」のモジ
ュールの中心点を算出する中心点算出ステップと、
(d)中心点算出ステップによって算出した「黒」のモ
ジュールの中心点とファインダーパターンの中心点とを
通る方向軸の補正した角度を算出する方向軸補正角度算
出ステップとを備えている。
【0095】次に、上述した方向軸の角度補正処理を、
図6、図9、図13、図14、図15、図16および図
17を参照して、詳細に説明する。
図6、図9、図13、図14、図15、図16および図
17を参照して、詳細に説明する。
【0096】図6は、方向軸上のデータモジュール位置
算出処理における方向軸の角度補正処理のフローチャー
ト図である。
算出処理における方向軸の角度補正処理のフローチャー
ト図である。
【0097】まず、方向軸i上に存在する「黒」のモジ
ュール群において、モジュール群に存在するファインダ
ーパターンに最も近い「黒」のモジュールの第1補正中
心点を点P0とし、点P0の位置情報を算出する(ステ
ップS601)。ここで、方向軸iは、ファインダーパ
ターンの中心点を中心に6方向の方向モジュールに基づ
いて方向付けられる6本の方向軸の中の任意の1本であ
る。方向軸の番号iは、反時計回りに増加する。但し、
i=0〜5であり、方向軸iが方向軸5のときは、方向
軸(i+1)は、方向軸0となる。尚、モジュールの中
心点の位置情報を算出する処理は、後述の図9において
説明する。
ュール群において、モジュール群に存在するファインダ
ーパターンに最も近い「黒」のモジュールの第1補正中
心点を点P0とし、点P0の位置情報を算出する(ステ
ップS601)。ここで、方向軸iは、ファインダーパ
ターンの中心点を中心に6方向の方向モジュールに基づ
いて方向付けられる6本の方向軸の中の任意の1本であ
る。方向軸の番号iは、反時計回りに増加する。但し、
i=0〜5であり、方向軸iが方向軸5のときは、方向
軸(i+1)は、方向軸0となる。尚、モジュールの中
心点の位置情報を算出する処理は、後述の図9において
説明する。
【0098】次に、方向軸iと方向軸(i+1)との間
の角度をθiとするとき、点P0を中心に、方向軸iを
θiだけ反時計回りに回転させた軸を隣接予備軸i’と
し、更に、隣接予備軸i’上における点P0が存在する
「黒」のモジュールを含む「黒」のモジュール群を探索
する(ステップS602)。
の角度をθiとするとき、点P0を中心に、方向軸iを
θiだけ反時計回りに回転させた軸を隣接予備軸i’と
し、更に、隣接予備軸i’上における点P0が存在する
「黒」のモジュールを含む「黒」のモジュール群を探索
する(ステップS602)。
【0099】図14は、方向軸iと隣接予備軸i’の関
係を示す図である。図14に示すように、点P0を中心
に、方向軸iをθiだけ反時計回りに回転させた軸が隣
接予備軸i’である。
係を示す図である。図14に示すように、点P0を中心
に、方向軸iをθiだけ反時計回りに回転させた軸が隣
接予備軸i’である。
【0100】次に、探索した「黒」のモジュール群に基
づいて、再度、点P0が存在する「黒」のモジュールの
第2補正中心点の候補を点P1とし、点P1の位置情報
を算出する(ステップS603)。
づいて、再度、点P0が存在する「黒」のモジュールの
第2補正中心点の候補を点P1とし、点P1の位置情報
を算出する(ステップS603)。
【0101】図15は、モジュールの第2補正中心点の
候補である点P1の位置情報の算出処理を示す図であ
る。図15に示すように、「黒」のモジュール群に含ま
れる、総てのモジュールの隣接予備軸i’上の大きさを
同一と考えて、点P1の位置情報を算出する。
候補である点P1の位置情報の算出処理を示す図であ
る。図15に示すように、「黒」のモジュール群に含ま
れる、総てのモジュールの隣接予備軸i’上の大きさを
同一と考えて、点P1の位置情報を算出する。
【0102】次に、方向軸(i−1)と方向軸iとの間
の角度をθi−1とするとき、点P0を中心に、方向軸
iをθi−1だけ時計回りに回転させた軸を隣接予備軸
i”とし、更に、隣接予備軸i”上における点P0が存
在する「黒」のモジュールを含む「黒」のモジュール群
を探索する(ステップS604)。ここで、方向軸iが
方向軸0のときは、方向軸(i−1)は、方向軸5とな
る。
の角度をθi−1とするとき、点P0を中心に、方向軸
iをθi−1だけ時計回りに回転させた軸を隣接予備軸
i”とし、更に、隣接予備軸i”上における点P0が存
在する「黒」のモジュールを含む「黒」のモジュール群
を探索する(ステップS604)。ここで、方向軸iが
方向軸0のときは、方向軸(i−1)は、方向軸5とな
る。
【0103】次に、探索した「黒」のモジュール群に基
づいて、再度、点P0が存在する「黒」のモジュールの
第2補正中心点の候補を点P2とし、点P2の位置情報
を算出する(ステップS605)。
づいて、再度、点P0が存在する「黒」のモジュールの
第2補正中心点の候補を点P2とし、点P2の位置情報
を算出する(ステップS605)。
【0104】図16は、モジュールの第2補正中心点の
候補である点P2の位置情報の算出処理を示す図であ
る。図16に示すように、「黒」のモジュール群に含ま
れる、総てのモジュールの隣接予備軸i”上の大きさを
同一と考えて、点P2の位置情報を算出する。
候補である点P2の位置情報の算出処理を示す図であ
る。図16に示すように、「黒」のモジュール群に含ま
れる、総てのモジュールの隣接予備軸i”上の大きさを
同一と考えて、点P2の位置情報を算出する。
【0105】次に、隣接予備軸i’の角度補正と隣接予
備軸i”の角度補正を比較し、補正誤差の小さいほうを
検出する(ステップS606)。隣接予備軸i’の角度
補正の誤差が小さい場合(ステップS606;i’)
は、点P0が存在する「黒」のモジュールの第2中心点
を点P3とするとき、点P1を点P3とする(ステップ
S607)。一方、隣接予備軸i”の補正の誤差が小さ
い場合(ステップS606;i”)は、点P0が存在す
る「黒」のモジュールの第2補正中心点を点P3とする
とき、点P2を点P3とする(ステップS608)。例
えば、補正誤差の大小は、方向軸上の「黒」のモジュー
ル群に含まれる総てのモジュールの数によって判定す
る。即ち、総てのモジュールの大きさを同一と考えるた
め、モジュールの数が少ないほど誤差は小さくなる。図
15および図16に示すような場合は、隣接予備軸i’
上のモジュール数が隣接予備軸i”上のモジュール数よ
りも多いことから、点P2を第2補正中心点である点P
3とする。
備軸i”の角度補正を比較し、補正誤差の小さいほうを
検出する(ステップS606)。隣接予備軸i’の角度
補正の誤差が小さい場合(ステップS606;i’)
は、点P0が存在する「黒」のモジュールの第2中心点
を点P3とするとき、点P1を点P3とする(ステップ
S607)。一方、隣接予備軸i”の補正の誤差が小さ
い場合(ステップS606;i”)は、点P0が存在す
る「黒」のモジュールの第2補正中心点を点P3とする
とき、点P2を点P3とする(ステップS608)。例
えば、補正誤差の大小は、方向軸上の「黒」のモジュー
ル群に含まれる総てのモジュールの数によって判定す
る。即ち、総てのモジュールの大きさを同一と考えるた
め、モジュールの数が少ないほど誤差は小さくなる。図
15および図16に示すような場合は、隣接予備軸i’
上のモジュール数が隣接予備軸i”上のモジュール数よ
りも多いことから、点P2を第2補正中心点である点P
3とする。
【0106】次に、点P3とファインダーパターンの中
心点を通る軸を方向予備軸jとするとき、方向予備軸j
上における点P3が存在する「黒」のモジュールを含む
「黒」のモジュール群を探索し(ステップS609)、
点P3が存在する「黒」のモジュールの中心点である点
Pの位置情報を算出する(ステップS610)。
心点を通る軸を方向予備軸jとするとき、方向予備軸j
上における点P3が存在する「黒」のモジュールを含む
「黒」のモジュール群を探索し(ステップS609)、
点P3が存在する「黒」のモジュールの中心点である点
Pの位置情報を算出する(ステップS610)。
【0107】図17は、モジュールの中心点である点P
の位置情報の算出処理を示す図である。図17に示すよ
うに、点P3が存在する「黒」のモジュールを含む
「黒」のモジュール群に含まれる、総てのモジュールの
方向予備軸j上の大きさを同一と考えて、モジュールの
中心点である点Pの位置情報を算出する。
の位置情報の算出処理を示す図である。図17に示すよ
うに、点P3が存在する「黒」のモジュールを含む
「黒」のモジュール群に含まれる、総てのモジュールの
方向予備軸j上の大きさを同一と考えて、モジュールの
中心点である点Pの位置情報を算出する。
【0108】次に、モジュールの中心点である点Pとフ
ァインダーパターンの中心点とを通る方向軸kを方向軸
iの角度補正した方向軸とし、方向軸kと水平方向軸と
の間の角度αiを算出する(ステップS611)。図1
7に示すように、点Pとファインダーパターンの中心点
とを通る直線が、方向軸iを角度補正した方向軸が方向
軸kとなる。ここで、方向軸kは方向予備軸jと同一直
線である。
ァインダーパターンの中心点とを通る方向軸kを方向軸
iの角度補正した方向軸とし、方向軸kと水平方向軸と
の間の角度αiを算出する(ステップS611)。図1
7に示すように、点Pとファインダーパターンの中心点
とを通る直線が、方向軸iを角度補正した方向軸が方向
軸kとなる。ここで、方向軸kは方向予備軸jと同一直
線である。
【0109】最後に、「黒」のモジュール群を構成する
方向軸k上の「黒」モジュールの幅を算出し(ステップ
S612)、処理を終了する。
方向軸k上の「黒」モジュールの幅を算出し(ステップ
S612)、処理を終了する。
【0110】図9は、方向軸上におけるモジュールの中
心点の位置情報算出処理のフローチャート図である。
心点の位置情報算出処理のフローチャート図である。
【0111】まず、VRAM106の画素データ記憶部
210に記憶された画素データに基づいて、1個また複
数個の連続したモジュールから構成されるモジュール群
の境界を横切る方向軸iの長さLを測定する(ステップ
S901)。
210に記憶された画素データに基づいて、1個また複
数個の連続したモジュールから構成されるモジュール群
の境界を横切る方向軸iの長さLを測定する(ステップ
S901)。
【0112】図13は、モジュールの中心点の位置情報
を算出する処理を示す図である。図13(a)は、方向
軸上のモジュール群の領域Lを示す図であり、図13
(b)は、モジュール群を構成するモジュールの中心点
の位置情報を示す図である。
を算出する処理を示す図である。図13(a)は、方向
軸上のモジュール群の領域Lを示す図であり、図13
(b)は、モジュール群を構成するモジュールの中心点
の位置情報を示す図である。
【0113】図13(a)に示すように、「黒」のモジ
ュールから構成されるモジュール群の境界を横切る方向
軸iの長さLを、画素データの「黒」と「白」の境界点
に基づいて測定する。ここで、境界点を点Aと点Bとす
る。従って、L=ABとなる。
ュールから構成されるモジュール群の境界を横切る方向
軸iの長さLを、画素データの「黒」と「白」の境界点
に基づいて測定する。ここで、境界点を点Aと点Bとす
る。従って、L=ABとなる。
【0114】次に、算出した長さL、および、図3の方
向モジュール探索処理(ステップS303)によって算
出したモジュールの幅Wに基づいて、値n’(=L/
W)を算出し、値n’を四捨五入した値または境界値テ
ーブルに基づいて、モジュール群を構成するモジュール
の個数nを算出する(ステップS902)。
向モジュール探索処理(ステップS303)によって算
出したモジュールの幅Wに基づいて、値n’(=L/
W)を算出し、値n’を四捨五入した値または境界値テ
ーブルに基づいて、モジュール群を構成するモジュール
の個数nを算出する(ステップS902)。
【0115】図13(a)において、n=2となり、モ
ジュール群を構成する「黒」のモジュールの個数は2個
である。
ジュール群を構成する「黒」のモジュールの個数は2個
である。
【0116】最後に、モジュール群を構成するモジュー
ルの順番rに基づいて、モジュールの中心点の位置情報
を算出する(ステップS903)。ここで、方向軸i上
において、モジュール群の中で最もファインダーパター
ン側にあるモジュールの順番をr=1とし、ファインダ
ーパターンから最も離れているモジュールの順番をr=
nとする。また、モジュール群を構成するモジュールは
総て同一の大きさであるとし、総てのモジュールの中心
点を方向軸iが通ると仮定して、モジュールの中心点の
位置情報を算出する。即ち、長さLを(2r−1):
(2n−2r+1)に内分する点を、r番目のモジュー
ルの中心点とする。図13(b)に示すように、r=1
のときのモジュールの中心点を点P0とするとき、点P
0は、長さL(線分AB)を1:3に内分する点であ
る。
ルの順番rに基づいて、モジュールの中心点の位置情報
を算出する(ステップS903)。ここで、方向軸i上
において、モジュール群の中で最もファインダーパター
ン側にあるモジュールの順番をr=1とし、ファインダ
ーパターンから最も離れているモジュールの順番をr=
nとする。また、モジュール群を構成するモジュールは
総て同一の大きさであるとし、総てのモジュールの中心
点を方向軸iが通ると仮定して、モジュールの中心点の
位置情報を算出する。即ち、長さLを(2r−1):
(2n−2r+1)に内分する点を、r番目のモジュー
ルの中心点とする。図13(b)に示すように、r=1
のときのモジュールの中心点を点P0とするとき、点P
0は、長さL(線分AB)を1:3に内分する点であ
る。
【0117】また、本発明の二次元コード読み取り方法
は、方向軸上実モジュール幅補正ステップが、方向軸上
に存在する1個または連続する複数個の同一色の実モジ
ュールから構成される同一色の実モジュール群の領域に
基づいて、同一色の実モジュール群を構成する実モジュ
ールの中心点およびモジュール幅を算出するステップを
備えている。
は、方向軸上実モジュール幅補正ステップが、方向軸上
に存在する1個または連続する複数個の同一色の実モジ
ュールから構成される同一色の実モジュール群の領域に
基づいて、同一色の実モジュール群を構成する実モジュ
ールの中心点およびモジュール幅を算出するステップを
備えている。
【0118】図7は、方向軸上のデータモジュール位置
算出処理における、方向軸上の実モジュールの幅補正処
理のフローチャート図である。
算出処理における、方向軸上の実モジュールの幅補正処
理のフローチャート図である。
【0119】まず、内側方向モジュールを探索開始のモ
ジュールとして、方向軸i上をシンボルの外側方向へ、
「黒」の実モジュールから構成されるモジュール群を探
索する(ステップS701)。
ジュールとして、方向軸i上をシンボルの外側方向へ、
「黒」の実モジュールから構成されるモジュール群を探
索する(ステップS701)。
【0120】次に探索したモジュール群を構成する総て
の実モジュールの中心点の位置情報を算出し(ステップ
S702)、実モジュールの幅を算出する(ステップS
703)。
の実モジュールの中心点の位置情報を算出し(ステップ
S702)、実モジュールの幅を算出する(ステップS
703)。
【0121】次に、方向軸i上において、最もシンボル
の内側の「黒」の実モジュールよりも内側に「白」の実
モジュールが存在するか否かを判定する(ステップS7
04)。「白」の実モジュールが存在する場合(ステッ
プS704;Yes)は、最もシンボルの内側の「黒」
の実モジュールの幅を、「白」の実モジュールの幅とす
る(ステップS705)。
の内側の「黒」の実モジュールよりも内側に「白」の実
モジュールが存在するか否かを判定する(ステップS7
04)。「白」の実モジュールが存在する場合(ステッ
プS704;Yes)は、最もシンボルの内側の「黒」
の実モジュールの幅を、「白」の実モジュールの幅とす
る(ステップS705)。
【0122】次に、方向軸i上において、探索した同一
色のモジュール群の最もシンボルの外側に存在するモジ
ュールを探索開始のモジュールとして、方向軸i上をシ
ンボルの外側方向へ、前回探索したモジュール群とは異
なる色の実モジュールから構成されるモジュール群を探
索する(ステップS706)。
色のモジュール群の最もシンボルの外側に存在するモジ
ュールを探索開始のモジュールとして、方向軸i上をシ
ンボルの外側方向へ、前回探索したモジュール群とは異
なる色の実モジュールから構成されるモジュール群を探
索する(ステップS706)。
【0123】次に探索したモジュール群を構成する総て
の実モジュールの中心点の位置情報を算出し(ステップ
S707)、実モジュールの幅を算出する(ステップS
708)。
の実モジュールの中心点の位置情報を算出し(ステップ
S707)、実モジュールの幅を算出する(ステップS
708)。
【0124】次に、方向軸i上において、シンボルの最
も外側に存在する「黒」の実モジュールを含んだモジュ
ール群を探索したか否かを判定する(ステップS70
9)。探索していない場合(ステップS709;No)
は、ステップS701に戻り、シンボルの最も外側に存
在する「黒」の実モジュールを含んだモジュール群を探
索するまで、ステップS706〜ステップS708を繰
り返す。
も外側に存在する「黒」の実モジュールを含んだモジュ
ール群を探索したか否かを判定する(ステップS70
9)。探索していない場合(ステップS709;No)
は、ステップS701に戻り、シンボルの最も外側に存
在する「黒」の実モジュールを含んだモジュール群を探
索するまで、ステップS706〜ステップS708を繰
り返す。
【0125】一方、探索した場合(ステップS709;
Yes)は、6方向の総ての方向軸について、実モジュ
ールの中心点の位置情報および実モジュールの幅を算出
したか否かを判定する(ステップS710)。総ての方
向軸について算出処理を実行した場合(ステップS71
0;Yes)は、処理を終了する。一方、総ての方向軸
について算出処理を実行していない場合(ステップS7
10;No)は、ステップS701に戻り、総ての方向
軸について算出処理を実行するまで、ステップS701
〜ステップS709を繰り返す。
Yes)は、6方向の総ての方向軸について、実モジュ
ールの中心点の位置情報および実モジュールの幅を算出
したか否かを判定する(ステップS710)。総ての方
向軸について算出処理を実行した場合(ステップS71
0;Yes)は、処理を終了する。一方、総ての方向軸
について算出処理を実行していない場合(ステップS7
10;No)は、ステップS701に戻り、総ての方向
軸について算出処理を実行するまで、ステップS701
〜ステップS709を繰り返す。
【0126】また、本発明の二次元コード読み取り方法
は、方向軸上仮モジュール幅補正ステップが、(a)総
ての方向軸の中において補正量の最も小さい方向軸であ
る基準方向軸を検出する基準方向軸検出ステップと、
(b)基準方向軸検出ステップによって検出された基準
方向軸上に存在する最もファインダーパターンから離れ
ている「黒」のモジュールの図形情報に基づいて、方向
軸上に存在する複数個の仮モジュールの中心点およびモ
ジュール幅を算出するステップと、(c)基準方向軸上
の実モジュールおよび仮モジュールの位置情報に基づい
て、基準方向軸以外の方向軸上に存在する複数個の仮モ
ジュールの中心点およびモジュール幅を算出するステッ
プとを備えている。
は、方向軸上仮モジュール幅補正ステップが、(a)総
ての方向軸の中において補正量の最も小さい方向軸であ
る基準方向軸を検出する基準方向軸検出ステップと、
(b)基準方向軸検出ステップによって検出された基準
方向軸上に存在する最もファインダーパターンから離れ
ている「黒」のモジュールの図形情報に基づいて、方向
軸上に存在する複数個の仮モジュールの中心点およびモ
ジュール幅を算出するステップと、(c)基準方向軸上
の実モジュールおよび仮モジュールの位置情報に基づい
て、基準方向軸以外の方向軸上に存在する複数個の仮モ
ジュールの中心点およびモジュール幅を算出するステッ
プとを備えている。
【0127】図8は、方向軸上のデータモジュール位置
算出処理における、方向軸上の仮モジュールの幅補正処
理のフローチャート図である。
算出処理における、方向軸上の仮モジュールの幅補正処
理のフローチャート図である。
【0128】まず、6方向の方向軸の中から最も歪みの
小さい方向軸である基準方向軸mを検出する(ステップ
S801)。例えば、方向軸の歪みの大きさEiを、図
7に示した実モジュールの幅補正によって算出した、シ
ンボルの最も外側に存在する「黒」の実モジュールの幅
Wiと、図3の方向モジュール探索処理(ステップS3
03)によって算出した実モジュールの幅W0iとの比
率Riに基づいて、下記の式によって表す。ここで、i
は軸番号である。
小さい方向軸である基準方向軸mを検出する(ステップ
S801)。例えば、方向軸の歪みの大きさEiを、図
7に示した実モジュールの幅補正によって算出した、シ
ンボルの最も外側に存在する「黒」の実モジュールの幅
Wiと、図3の方向モジュール探索処理(ステップS3
03)によって算出した実モジュールの幅W0iとの比
率Riに基づいて、下記の式によって表す。ここで、i
は軸番号である。
【0129】 Ei=|Ri−1|=|Wi/W0i−1| 従って、6方向の方向軸において、歪みの大きさEiを
算出し、最小となる方向軸が基準方向軸mとなる。
算出し、最小となる方向軸が基準方向軸mとなる。
【0130】次に、基準方向軸m上の算出していない実
モジュールの幅および仮モジュールの幅を、シンボルの
最も外側に存在する「黒」の実モジュールの幅と同一で
あると仮定して、基準方向軸m上の算出していない総て
の実モジュールの中心点および仮モジュールの中心点の
位置情報を算出する(ステップS802)。また、基準
方向軸mを方向軸iとして、方向軸i上の実モジュール
および仮モジュールの中心点の位置情報に基づいて、方
向軸(i+1)上のモジュールの中心点の位置情報を考
える。
モジュールの幅および仮モジュールの幅を、シンボルの
最も外側に存在する「黒」の実モジュールの幅と同一で
あると仮定して、基準方向軸m上の算出していない総て
の実モジュールの中心点および仮モジュールの中心点の
位置情報を算出する(ステップS802)。また、基準
方向軸mを方向軸iとして、方向軸i上の実モジュール
および仮モジュールの中心点の位置情報に基づいて、方
向軸(i+1)上のモジュールの中心点の位置情報を考
える。
【0131】次に、ファインダーパターンの中心点の位
置情報、方向軸i上のモジュールの中心点の位置情報、
および、方向軸(i+1)上のシンボルの最も外側に存
在する「黒」の実モジュールの中心点の位置情報に基づ
いて、方向軸(i+1)上のシンボルの最も外側に存在
する「黒」の実モジュールの中心点から、方向軸(i+
1)上の仮シンボル領域の最も外側に存在する仮モジュ
ールの中心点までの距離Lを算出する(ステップS80
3)。ここで、仮シンボル領域は、図11に説明した領
域である。
置情報、方向軸i上のモジュールの中心点の位置情報、
および、方向軸(i+1)上のシンボルの最も外側に存
在する「黒」の実モジュールの中心点の位置情報に基づ
いて、方向軸(i+1)上のシンボルの最も外側に存在
する「黒」の実モジュールの中心点から、方向軸(i+
1)上の仮シンボル領域の最も外側に存在する仮モジュ
ールの中心点までの距離Lを算出する(ステップS80
3)。ここで、仮シンボル領域は、図11に説明した領
域である。
【0132】次に、算出した距離Lおよび方向軸(i+
1)上のシンボルの最も外側に存在する「黒」の実モジ
ュールから、方向軸(i+1)上の仮シンボル領域の最
も外側に存在する仮モジュールまでに存在するモジュー
ルの個数に基づいて、方向軸(i+1)上の算出してい
ない総ての実モジュールの中心点および仮モジュールの
中心点の位置情報を算出する(ステップS804)。
1)上のシンボルの最も外側に存在する「黒」の実モジ
ュールから、方向軸(i+1)上の仮シンボル領域の最
も外側に存在する仮モジュールまでに存在するモジュー
ルの個数に基づいて、方向軸(i+1)上の算出してい
ない総ての実モジュールの中心点および仮モジュールの
中心点の位置情報を算出する(ステップS804)。
【0133】図18は、距離Lおよび算出していないモ
ジュールの中心点の位置情報を算出する処理を示す図で
ある。
ジュールの中心点の位置情報を算出する処理を示す図で
ある。
【0134】図18に示すように、ファインダーパター
ンの中心点を点Oとし、方向軸(i+1)上のシンボル
の最も外側に存在する「黒」の実モジュールの中心点を
点A’とし、方向軸(i+1)上の仮シンボル領域の最
も外側に存在する仮モジュールの中心点を点B’とし、
方向軸i上の仮シンボル領域の最も外側に存在する仮モ
ジュールの中心点を点Bとする。また、方向軸i上の内
側方向モジュールからの個数が、方向軸(i+1)上の
内側方向モジュールからシンボルの最も外側に存在する
「黒」の実モジュールまでの個数と同一となる、方向軸
i上のモジュールの中心点を点Aとする。尚、点A’か
ら点B’までの距離Lは、下記の式によって算出する。
ンの中心点を点Oとし、方向軸(i+1)上のシンボル
の最も外側に存在する「黒」の実モジュールの中心点を
点A’とし、方向軸(i+1)上の仮シンボル領域の最
も外側に存在する仮モジュールの中心点を点B’とし、
方向軸i上の仮シンボル領域の最も外側に存在する仮モ
ジュールの中心点を点Bとする。また、方向軸i上の内
側方向モジュールからの個数が、方向軸(i+1)上の
内側方向モジュールからシンボルの最も外側に存在する
「黒」の実モジュールまでの個数と同一となる、方向軸
i上のモジュールの中心点を点Aとする。尚、点A’か
ら点B’までの距離Lは、下記の式によって算出する。
【0135】L=A’B’=AB・(OA’/OA) 更に、点A’が存在するモジュールから点B’ が存在
するモジュールまでの(n+1)個のモジュールが総て
同一である仮定して、モジュールの中心点の位置情報を
算出する。
するモジュールまでの(n+1)個のモジュールが総て
同一である仮定して、モジュールの中心点の位置情報を
算出する。
【0136】最後に、6方向の総ての方向軸について、
算出していない総ての実モジュールの中心点および仮モ
ジュールの中心点の位置情報を算出したか否かを判定す
る(ステップS805)。総ての方向軸について算出処
理を実行した場合(ステップS805;Yes)は、処
理を終了する。一方、総ての方向軸について算出処理を
実行していない場合(ステップS805;No)は、ス
テップS803に戻り、新たに方向軸(i+1)を方向
軸iとして、総ての方向軸について算出処理を実行する
まで、ステップS803およびステップS804を繰り
返す。
算出していない総ての実モジュールの中心点および仮モ
ジュールの中心点の位置情報を算出したか否かを判定す
る(ステップS805)。総ての方向軸について算出処
理を実行した場合(ステップS805;Yes)は、処
理を終了する。一方、総ての方向軸について算出処理を
実行していない場合(ステップS805;No)は、ス
テップS803に戻り、新たに方向軸(i+1)を方向
軸iとして、総ての方向軸について算出処理を実行する
まで、ステップS803およびステップS804を繰り
返す。
【0137】また、本発明の情報記録媒体は、上述の二
次元コード読み取り方法のプログラムを記録することも
できる。
次元コード読み取り方法のプログラムを記録することも
できる。
【0138】また、本発明の情報記録媒体は、コンパク
ト・ディスク、フロッピー・ディスク、ハード・ディス
ク、光磁気ディスク、デジタル・ビデオ・ディスク、も
しくは磁気テープであっても良い。
ト・ディスク、フロッピー・ディスク、ハード・ディス
ク、光磁気ディスク、デジタル・ビデオ・ディスク、も
しくは磁気テープであっても良い。
【0139】また、本発明の二次元コード読み取り装置
は、二次元コードのシンボルの読み取り画像における、
ファインダーパターンの位置情報と方向モジュールの位
置情報および図形情報とに基づいて、ファインダーパタ
ーンの中心点と方向モジュールとを通る方向軸を算出す
ることによって、二次元コードのシンボルを構成する総
てのモジュールの位置情報および図形情報を算出するデ
ータモジュール探索手段を備えている。
は、二次元コードのシンボルの読み取り画像における、
ファインダーパターンの位置情報と方向モジュールの位
置情報および図形情報とに基づいて、ファインダーパタ
ーンの中心点と方向モジュールとを通る方向軸を算出す
ることによって、二次元コードのシンボルを構成する総
てのモジュールの位置情報および図形情報を算出するデ
ータモジュール探索手段を備えている。
【0140】また、本発明の二次元コード読み取り装置
は、データモジュール探索手段が、(a)ファインダー
パターンの位置情報と方向モジュールの位置情報および
図形情報とに基づいて、方向軸上に存在するモジュール
群を構成する複数個のモジュールの位置情報および図形
情報を算出する方向軸上モジュール位置算出手段と、
(b)方向軸上モジュール位置算出手段によって算出さ
れた方向軸上に存在する複数個のデータモジュールのビ
ットパターンを検出する方向軸上データモジュールビッ
トパターン検出手段と、(c)方向軸上モジュール位置
算出手段によって算出された方向軸上のモジュール群を
構成する複数個のモジュールの位置情報および図形情報
に基づいて、隣り合う方向軸によって構成される方向軸
間のモジュール群を構成する複数個のモジュールの位置
情報を算出する方向軸間モジュール位置算出手段と、
(d)方向軸間モジュール位置算出手段によって算出さ
れた方向軸間に存在する複数個のデータモジュールのビ
ットパターンを検出する方向軸間データモジュールビッ
トパターン検出手段とを備えている。
は、データモジュール探索手段が、(a)ファインダー
パターンの位置情報と方向モジュールの位置情報および
図形情報とに基づいて、方向軸上に存在するモジュール
群を構成する複数個のモジュールの位置情報および図形
情報を算出する方向軸上モジュール位置算出手段と、
(b)方向軸上モジュール位置算出手段によって算出さ
れた方向軸上に存在する複数個のデータモジュールのビ
ットパターンを検出する方向軸上データモジュールビッ
トパターン検出手段と、(c)方向軸上モジュール位置
算出手段によって算出された方向軸上のモジュール群を
構成する複数個のモジュールの位置情報および図形情報
に基づいて、隣り合う方向軸によって構成される方向軸
間のモジュール群を構成する複数個のモジュールの位置
情報を算出する方向軸間モジュール位置算出手段と、
(d)方向軸間モジュール位置算出手段によって算出さ
れた方向軸間に存在する複数個のデータモジュールのビ
ットパターンを検出する方向軸間データモジュールビッ
トパターン検出手段とを備えている。
【0141】また、本発明の二次元コード読み取り装置
は、方向軸上モジュール算出手段が、(a)方向軸上の
モジュール群を構成する複数個のモジュールの中心点を
通るように、方向軸の角度を補正する方向軸角度補正手
段と、(b)方向軸角度補正手段によって補正された方
向軸上に存在する複数個の実モジュールの位置情報を算
出し、算出した位置情報に基づいて、複数個の実モジュ
ールの図形情報であるモジュール幅を補正する方向軸上
実モジュール幅補正手段と、(c)方向軸上実モジュー
ル幅補正手段によって算出された実モジュールの位置情
報および図形情報に基づいて、方向軸上に存在する複数
個の仮モジュールの位置情報を算出し、算出した位置情
報に基づいて、複数個の仮モジュールの図形情報である
モジュール幅を補正する方向軸上仮モジュール幅補正手
段とを備えている。
は、方向軸上モジュール算出手段が、(a)方向軸上の
モジュール群を構成する複数個のモジュールの中心点を
通るように、方向軸の角度を補正する方向軸角度補正手
段と、(b)方向軸角度補正手段によって補正された方
向軸上に存在する複数個の実モジュールの位置情報を算
出し、算出した位置情報に基づいて、複数個の実モジュ
ールの図形情報であるモジュール幅を補正する方向軸上
実モジュール幅補正手段と、(c)方向軸上実モジュー
ル幅補正手段によって算出された実モジュールの位置情
報および図形情報に基づいて、方向軸上に存在する複数
個の仮モジュールの位置情報を算出し、算出した位置情
報に基づいて、複数個の仮モジュールの図形情報である
モジュール幅を補正する方向軸上仮モジュール幅補正手
段とを備えている。
【0142】また、本発明の二次元コード読み取り装置
は、方向軸角度補正手段が、(a)方向軸上に存在する
1個または連続する複数個の「黒」のモジュールから構
成される「黒」のモジュール群の領域に基づいて、
「黒」のモジュール群の中において最もファインダーパ
ターンに近い「黒」のモジュールの第1補正中心点を算
出する第1補正中心点算出手段と、(b)第1補正中心
点算出手段によって算出した「黒」のモジュールの第1
補正中心点を通る、方向軸と隣り合う方向軸に平行な隣
接予備軸上に存在する「黒」のモジュールを含む1個ま
たは連続する複数個の「黒」のモジュールから構成され
る「黒」のモジュール群の領域に基づいて、「黒」のモ
ジュールの第2補正中心点を算出する第2補正中心点算
出手段と、(c)第2補正中心点算出手段によって算出
した「黒」のモジュールの第2補正中心点とファインダ
ーパターンの中心点とを通る方向予備軸上に存在する
「黒」のモジュールを含む1個または連続する複数個の
「黒」のモジュールから構成される「黒」のモジュール
群の領域に基づいて、「黒」のモジュールの中心点を算
出する中心点算出手段と、(d)中心点算出手段によっ
て算出した「黒」のモジュールの中心点とファインダー
パターンの中心点とを通る方向軸の補正した角度を算出
する方向軸補正角度算出手段とを備えている。
は、方向軸角度補正手段が、(a)方向軸上に存在する
1個または連続する複数個の「黒」のモジュールから構
成される「黒」のモジュール群の領域に基づいて、
「黒」のモジュール群の中において最もファインダーパ
ターンに近い「黒」のモジュールの第1補正中心点を算
出する第1補正中心点算出手段と、(b)第1補正中心
点算出手段によって算出した「黒」のモジュールの第1
補正中心点を通る、方向軸と隣り合う方向軸に平行な隣
接予備軸上に存在する「黒」のモジュールを含む1個ま
たは連続する複数個の「黒」のモジュールから構成され
る「黒」のモジュール群の領域に基づいて、「黒」のモ
ジュールの第2補正中心点を算出する第2補正中心点算
出手段と、(c)第2補正中心点算出手段によって算出
した「黒」のモジュールの第2補正中心点とファインダ
ーパターンの中心点とを通る方向予備軸上に存在する
「黒」のモジュールを含む1個または連続する複数個の
「黒」のモジュールから構成される「黒」のモジュール
群の領域に基づいて、「黒」のモジュールの中心点を算
出する中心点算出手段と、(d)中心点算出手段によっ
て算出した「黒」のモジュールの中心点とファインダー
パターンの中心点とを通る方向軸の補正した角度を算出
する方向軸補正角度算出手段とを備えている。
【0143】また、本発明の二次元コード読み取り装置
は、方向軸上実モジュール幅補正手段が、方向軸上に存
在する1個または連続する複数個の同一色の実モジュー
ルから構成される同一色の実モジュール群の領域に基づ
いて、同一色の実モジュール群を構成する実モジュール
の中心点およびモジュール幅を算出する手段を備えてい
る。
は、方向軸上実モジュール幅補正手段が、方向軸上に存
在する1個または連続する複数個の同一色の実モジュー
ルから構成される同一色の実モジュール群の領域に基づ
いて、同一色の実モジュール群を構成する実モジュール
の中心点およびモジュール幅を算出する手段を備えてい
る。
【0144】また、本発明の二次元コード読み取り装置
は、方向軸上仮モジュール幅補正手段が、(a)総ての
方向軸の中において補正量の最も小さい方向軸である基
準方向軸を検出する基準方向軸検出手段と、(b)基準
方向軸検出手段によって検出された基準方向軸上に存在
する最もファインダーパターンから離れている「黒」の
モジュールの図形情報に基づいて、方向軸上に存在する
複数個の仮モジュールの中心点およびモジュール幅を算
出する手段と、(c)基準方向軸上の実モジュールおよ
び仮モジュールの位置情報に基づいて、基準方向軸以外
の方向軸上に存在する複数個の仮モジュールの中心点お
よびモジュール幅を算出する手段とを備えている。
は、方向軸上仮モジュール幅補正手段が、(a)総ての
方向軸の中において補正量の最も小さい方向軸である基
準方向軸を検出する基準方向軸検出手段と、(b)基準
方向軸検出手段によって検出された基準方向軸上に存在
する最もファインダーパターンから離れている「黒」の
モジュールの図形情報に基づいて、方向軸上に存在する
複数個の仮モジュールの中心点およびモジュール幅を算
出する手段と、(c)基準方向軸上の実モジュールおよ
び仮モジュールの位置情報に基づいて、基準方向軸以外
の方向軸上に存在する複数個の仮モジュールの中心点お
よびモジュール幅を算出する手段とを備えている。
【0145】また、本発明の二次元コード読み取り装置
は、(a)二次元コードのシンボルの読み取り画像の画
素データを記憶する画素データ記憶手段と、(b)ファ
インダーパターンの位置情報を算出するファインダーパ
ターン探索手段と、(c)方向モジュールの位置情報お
よび図形情報を算出する方向モジュール探索手段と、
(d)データモジュールの色に基づいて、データキャラ
クタに変換するデータキャラクタ変換手段とを備えてい
る。
は、(a)二次元コードのシンボルの読み取り画像の画
素データを記憶する画素データ記憶手段と、(b)ファ
インダーパターンの位置情報を算出するファインダーパ
ターン探索手段と、(c)方向モジュールの位置情報お
よび図形情報を算出する方向モジュール探索手段と、
(d)データモジュールの色に基づいて、データキャラ
クタに変換するデータキャラクタ変換手段とを備えてい
る。
【0146】また、本発明の二次元コード読み取り装置
は、二次元コードのシンボルは、MaxiCodeシン
ボルである。
は、二次元コードのシンボルは、MaxiCodeシン
ボルである。
【0147】
【発明の効果】以上説明したように、本発明によれば、
以下の効果を奏する。
以下の効果を奏する。
【0148】MaxiCodeシンボルの読み取り画像
において、本発明の歪み補正は、平面的な歪みに対して
好適であり、ファインダーパターンの中心点と方向モジ
ュールとを通る方向軸上に存在する「黒」のモジュール
群の領域に基づいて、方向モジュールおよびデータモジ
ュールの中心点を通るように軸の角度を補正することに
よって、歪みのある読み取り画像の方向軸を補正するこ
とができる。
において、本発明の歪み補正は、平面的な歪みに対して
好適であり、ファインダーパターンの中心点と方向モジ
ュールとを通る方向軸上に存在する「黒」のモジュール
群の領域に基づいて、方向モジュールおよびデータモジ
ュールの中心点を通るように軸の角度を補正することに
よって、歪みのある読み取り画像の方向軸を補正するこ
とができる。
【0149】また、補正した方向軸上の同一色のモジュ
ール群の領域に基づいて、歪みのある読み取り画像の方
向軸上のモジュールの位置情報および図形情報を補正
し、補正した方向軸上のモジュールの位置情報および図
形情報に基づいて、方向軸間のデータモジュールの位置
を補正することができる。
ール群の領域に基づいて、歪みのある読み取り画像の方
向軸上のモジュールの位置情報および図形情報を補正
し、補正した方向軸上のモジュールの位置情報および図
形情報に基づいて、方向軸間のデータモジュールの位置
を補正することができる。
【0150】更に、上述した読み取り画像の補正により
モジュールの位置情報および図形情報を検出することに
よって、二次元コードのシンボルであるMaxiCod
eシンボルの読み取り画像のデコード処理の処理時間を
短縮することができる。
モジュールの位置情報および図形情報を検出することに
よって、二次元コードのシンボルであるMaxiCod
eシンボルの読み取り画像のデコード処理の処理時間を
短縮することができる。
【0151】また、上述した二次元コード読み取り方法
のプログラムを記録した情報記録媒体をソフトウェア商
品として、容易に配布したり販売したりすることができ
る。
のプログラムを記録した情報記録媒体をソフトウェア商
品として、容易に配布したり販売したりすることができ
る。
【0152】また、上述した二次元コード読み取り方法
を実行する手段を備えた二次元コード読み取り装置を提
供することができる。
を実行する手段を備えた二次元コード読み取り装置を提
供することができる。
【図1】二次元コード読み取り装置のブロック構成図で
ある。
ある。
【図2】二次元コード読み取り装置の機能ブロック図で
ある。
ある。
【図3】二次元コード読み取り方法におけるデコード処
理のフローチャート図である。
理のフローチャート図である。
【図4】デコード処理におけるデータモジュール探索処
理のフローチャート図である。
理のフローチャート図である。
【図5】データモジュール探索処理における方向軸上モ
ジュール位置算出処理のフローチャート図である。
ジュール位置算出処理のフローチャート図である。
【図6】方向軸上モジュール位置算出処理における方向
軸角度補正処理のフローチャート図である。
軸角度補正処理のフローチャート図である。
【図7】方向軸上モジュール位置算出処理における方向
軸上実モジュール幅補正処理のフローチャート図であ
る。
軸上実モジュール幅補正処理のフローチャート図であ
る。
【図8】方向軸上モジュール位置算出処理における方向
軸上仮モジュール幅補正処理のフローチャート図であ
る。
軸上仮モジュール幅補正処理のフローチャート図であ
る。
【図9】モジュール中心点算出処理のフローチャート図
である。
である。
【図10】(a)軸上の実モジュールと仮モジュールを
示す図、(b)軸上のデータモジュールの位置を示す図
である。
示す図、(b)軸上のデータモジュールの位置を示す図
である。
【図11】(a)軸間の実モジュールと仮モジュールを
示す図、(b)軸間のデータモジュールの位置を示す図
である。
示す図、(b)軸間のデータモジュールの位置を示す図
である。
【図12】方向軸の角度補正を示す図である。
【図13】(a)方向軸上のモジュール群の領域Lを示
す図であり、(b)モジュール群を構成するモジュール
の中心点を示す図である。
す図であり、(b)モジュール群を構成するモジュール
の中心点を示す図である。
【図14】方向軸iと隣接方向軸i’の関係を示す図で
ある。
ある。
【図15】モジュールの第2補正中心点の候補点P1の
算出処理を示す図である。
算出処理を示す図である。
【図16】モジュールの第2補正中心点の候補点P2の
算出処理を示す図である。
算出処理を示す図である。
【図17】モジュールの中心点Pの算出処理を示す図で
ある。
ある。
【図18】モジュールの中心点の算出処理を示す図であ
る。
る。
【図19】(a)歪みの種類を示す図であり、(b)正
規化補正を利用したデコード処理を示す図である。
規化補正を利用したデコード処理を示す図である。
【図20】(a)MaxiCodeシンボルの全体図、
(b)ファインダーパターンと方向モジュールを示す図
である。
(b)ファインダーパターンと方向モジュールを示す図
である。
【図21】MaxiCodeシンボルのモジュール群を
示す図である。
示す図である。
2000 MaxiCodeシンボル 2001 ファインダーパターン 2002 モジュール 2003 方向モジュール群 2100 モジュール群 2101a〜2101f 方向モジュール群 2102 データモジュール群 2103 内側方向モジュール 2104 外側方向モジュール 2105 中央方向モジュール
Claims (18)
- 【請求項1】 二次元コードのシンボルの読み取り画像
における、ファインダーパターンの位置情報と、方向モ
ジュールの位置情報と、前記方向モジュールの図形情報
と、に基づいて、前記ファインダーパターンの中心点と
前記方向モジュールとを通る方向軸を算出するステップ
と、該方向軸を用いて、前記二次元コードのシンボルを
構成する総てのモジュールの位置情報および図形情報を
算出するデータモジュール探索ステップと、 を備えてなる二次元コード読み取り方法。 - 【請求項2】 前記データモジュール探索ステップが、
下記のステップを備えた請求項1に記載の二次元コード
読み取り方法。 (a)前記ファインダーパターンの位置情報と前記方向
モジュールの位置情報および図形情報とに基づいて、前
記方向軸上に存在するモジュール群を構成する複数個の
モジュールの位置情報および図形情報を算出する方向軸
上モジュール位置算出ステップと、(b)前記方向軸上
モジュール位置算出ステップによって算出された前記方
向軸上に存在する複数個の前記データモジュールのビッ
トパターンを検出する方向軸上データモジュールビット
パターン検出ステップと、(c)前記方向軸上モジュー
ル位置算出ステップによって算出された前記方向軸上の
モジュール群を構成する複数個のモジュールの位置情報
および図形情報に基づいて、隣り合う前記方向軸によっ
て構成される方向軸間のモジュール群を構成する複数個
のモジュールの位置情報を算出する方向軸間モジュール
位置算出ステップと、(d)前記方向軸間モジュール位
置算出ステップによって算出された前記方向軸間に存在
する複数個の前記データモジュールのビットパターンを
検出する方向軸間データモジュールビットパターン検出
ステップ。 - 【請求項3】 前記方向軸上モジュール算出ステップ
が、下記のステップを備えた請求項2に記載の二次元コ
ード読み取り方法。 (a)前記方向軸上のモジュール群を構成する複数個の
モジュールの中心点を通るように、前記方向軸の角度を
補正する方向軸角度補正ステップと、(b)前記方向軸
角度補正ステップによって補正された前記方向軸上に存
在する複数個の実モジュールの位置情報を算出し、算出
した位置情報に基づいて、複数個の前記実モジュールの
図形情報であるモジュール幅を補正する方向軸上実モジ
ュール幅補正ステップと(c)前記方向軸上実モジュー
ル幅補正ステップによって算出された前記実モジュール
の位置情報および図形情報に基づいて、前記方向軸上に
存在する複数個の仮モジュールの位置情報を算出し、算
出した位置情報に基づいて、複数個の前記仮モジュール
の図形情報であるモジュール幅を補正する方向軸上仮モ
ジュール幅補正ステップ。 - 【請求項4】 前記方向軸角度補正ステップが、下記の
ステップを備えた請求項3に記載の二次元コード読み取
り方法。 (a)前記方向軸上に存在する1個または連続する複数
個の「黒」のモジュールから構成される「黒」のモジュ
ール群の領域に基づいて、前記「黒」のモジュール群の
中において最も前記ファインダーパターンに近い「黒」
のモジュールの第1補正中心点を算出する第1補正中心
点算出ステップと、(b)前記第1補正中心点算出ステ
ップによって算出した前記「黒」のモジュールの第1補
正中心点を通る、前記方向軸と隣り合う方向軸に平行な
隣接予備軸上に存在する前記「黒」のモジュールを含む
1個または連続する複数個の「黒」のモジュールから構
成される「黒」のモジュール群の領域に基づいて、前記
「黒」のモジュールの第2補正中心点を算出する第2補
正中心点算出ステップと、(c)前記第2補正中心点算
出ステップによって算出した前記「黒」のモジュールの
第2補正中心点と、前記ファインダーパターンの中心点
を通る方向予備軸上に存在する前記「黒」のモジュール
を含む1個または連続する複数個の「黒」のモジュール
から構成される「黒」のモジュール群の領域に基づい
て、前記「黒」のモジュールの中心点を算出する中心点
算出ステップと、(d)前記中心点算出ステップによっ
て算出した前記「黒」のモジュールの中心点と前記ファ
インダーパターンの中心点とを通る方向軸の補正した角
度を算出する方向軸補正角度算出ステップ。 - 【請求項5】 前記方向軸上実モジュール幅補正ステッ
プが、前記方向軸上に存在する1個または連続する複数
個の同一色の実モジュールから構成される同一色の実モ
ジュール群の領域に基づいて、前記同一色の実モジュー
ル群を構成する実モジュールの中心点およびモジュール
幅を算出するステップを備えた、請求項3に記載の二次
元コード読み取り方法。 - 【請求項6】 前記方向軸上仮モジュール幅補正ステッ
プが、下記のステップを備えた請求項3に記載の二次元
コード読み取り方法。 (a)総ての方向軸の中において補正量の最も小さい方
向軸である基準方向軸を検出する基準方向軸検出ステッ
プと、(b)前記基準方向軸検出ステップによって検出
された前記基準方向軸上に存在する最も前記ファインダ
ーパターンから離れている「黒」のモジュールの図形情
報に基づいて、前記方向軸上に存在する複数個の仮モジ
ュールの中心点およびモジュール幅を算出するステップ
と、(c)前記基準方向軸上の前記実モジュールおよび
前記仮モジュールの位置情報に基づいて、前記基準方向
軸以外の前記方向軸上に存在する複数個の仮モジュール
の中心点およびモジュール幅を算出するステップ。 - 【請求項7】 下記のステップを更に備えた、請求項1
に記載の二次元コード読み取り方法。 (a)前記二次元コードのシンボルの読み取り画像の画
素データを記憶する画素データ記憶ステップと、(b)
前記ファインダーパターンの位置情報を算出するファイ
ンダーパターン探索ステップと、(c)前記方向モジュ
ールの位置情報および図形情報を算出する方向モジュー
ル探索ステップと、(d)前記データモジュールの色に
基づいて、データキャラクタに変換するデータキャラク
タ変換ステップ。 - 【請求項8】 前記二次元コードのシンボルは、Max
iCodeシンボルであることを特徴とする、請求項1
に記載の二次元コード読み取り方法。 - 【請求項9】 請求項1から8のいずれか1項に記載の
二次元コード読み取り方法のプログラムを記録した情報
記録媒体。 - 【請求項10】 前記情報記録媒体は、コンパクト・デ
ィスク、フロッピー(登録商標)・ディスク、ハード・
ディスク、光磁気ディスク、デジタル・ビデオ・ディス
ク、もしくは磁気テープであることを特徴とする、請求
項9に記載のプログラムを記録した情報記録媒体。 - 【請求項11】 二次元コードのシンボルの読み取り画
像における、ファインダーパターンの位置情報と方向モ
ジュールの位置情報および図形情報とに基づいて、前記
ファインダーパターンの中心点と前記方向モジュールと
を通る方向軸を算出することによって、前記二次元コー
ドのシンボルを構成する総てのモジュールの位置情報お
よび図形情報を算出するデータモジュール探索手段を備
えた二次元コード読み取り装置。 - 【請求項12】 前記データモジュール探索手段が、下
記の手段を備えた請求項11に記載の二次元コード読み
取り装置。 (a)前記ファインダーパターンの位置情報と前記方向
モジュールの位置情報および図形情報とに基づいて、前
記方向軸上に存在するモジュール群を構成する複数個の
モジュールの位置情報および図形情報を算出する方向軸
上モジュール位置算出手段と、(b)前記方向軸上モジ
ュール位置算出手段によって算出された前記方向軸上に
存在する複数個の前記データモジュールのビットパター
ンを検出する方向軸上データモジュールビットパターン
検出手段と、(c)前記方向軸上モジュール位置算出手
段によって算出された前記方向軸上のモジュール群を構
成する複数個のモジュールの位置情報および図形情報に
基づいて、隣り合う前記方向軸によって構成される方向
軸間のモジュール群を構成する複数個のモジュールの位
置情報を算出する方向軸間モジュール位置算出手段と、
(d)前記方向軸間モジュール位置算出手段によって算
出された前記方向軸間に存在する複数個の前記データモ
ジュールのビットパターンを検出する方向軸間データモ
ジュールビットパターン検出手段。 - 【請求項13】 前記方向軸上モジュール算出手段が、
下記の手段を備えた請求項12に記載の二次元コード読
み取り装置。 (a)前記方向軸上のモジュール群を構成する複数個の
モジュールの中心点を通るように、前記方向軸の角度を
補正する方向軸角度補正手段と、(b)前記方向軸角度
補正手段によって補正された前記方向軸上に存在する複
数個の実モジュールの位置情報を算出し、算出した位置
情報に基づいて、複数個の前記実モジュールの図形情報
であるモジュール幅を補正する方向軸上実モジュール幅
補正手段と(c)前記方向軸上実モジュール幅補正手段
によって算出された前記実モジュールの位置情報および
図形情報に基づいて、前記方向軸上に存在する複数個の
仮モジュールの位置情報を算出し、算出した位置情報に
基づいて、複数個の前記仮モジュールの図形情報である
モジュール幅を補正する方向軸上仮モジュール幅補正手
段。 - 【請求項14】 前記方向軸角度補正手段が、下記の手
段を備えた請求項13に記載の二次元コード読み取り装
置。 (a)前記方向軸上に存在する1個または連続する複数
個の「黒」のモジュールから構成される「黒」のモジュ
ール群の領域に基づいて、前記「黒」のモジュール群の
中において最も前記ファインダーパターンに近い「黒」
のモジュールの第1補正中心点を算出する第1補正中心
点算出手段と、(b)前記第1補正中心点算出手段によ
って算出した前記「黒」のモジュールの第1補正中心点
を通る、前記方向軸と隣り合う方向軸に平行な隣接予備
軸上に存在する前記「黒」のモジュールを含む1個また
は連続する複数個の「黒」のモジュールから構成される
「黒」のモジュール群の領域に基づいて、前記「黒」の
モジュールの第2補正中心点を算出する第2補正中心点
算出手段と、(c)前記第2補正中心点算出手段によっ
て算出した前記「黒」のモジュールの第2補正中心点
と、前記ファインダーパターンの中心点を通る方向予備
軸上に存在する前記「黒」のモジュールを含む1個また
は連続する複数個の「黒」のモジュールから構成される
「黒」のモジュール群の領域に基づいて、前記「黒」の
モジュールの中心点を算出する中心点算出手段と、
(d)前記中心点算出手段によって算出した前記「黒」
のモジュールの中心点と前記ファインダーパターンの中
心点とを通る方向軸の補正した角度を算出する方向軸補
正角度算出手段。 - 【請求項15】 前記方向軸上実モジュール幅補正手段
が、前記方向軸上に存在する1個または連続する複数個
の同一色の実モジュールから構成される同一色の実モジ
ュール群の領域に基づいて、前記同一色の実モジュール
群を構成する実モジュールの中心点およびモジュール幅
を算出する手段を備えた、請求項13に記載の二次元コ
ード読み取り装置。 - 【請求項16】 前記方向軸上仮モジュール幅補正手段
が、下記の手段を備えた請求項13に記載の二次元コー
ド読み取り装置。 (a)総ての方向軸の中において補正量の最も小さい方
向軸である基準方向軸を検出する基準方向軸検出手段
と、(b)前記基準方向軸検出手段によって検出された
前記基準方向軸上に存在する最も前記ファインダーパタ
ーンから離れている「黒」のモジュールの図形情報に基
づいて、前記方向軸上に存在する複数個の仮モジュール
の中心点およびモジュール幅を算出する手段と、(c)
前記基準方向軸上の前記実モジュールおよび前記仮モジ
ュールの位置情報に基づいて、前記基準方向軸以外の前
記方向軸上に存在する複数個の仮モジュールの中心点お
よびモジュール幅を算出する手段。 - 【請求項17】 下記の手段を更に備えた、請求項11
に記載の二次元コード読み取り装置。 (a)前記二次元コードのシンボルの読み取り画像の画
素データを記憶する画素データ記憶手段と、(b)前記
ファインダーパターンの位置情報を算出するファインダ
ーパターン探索手段と、(c)前記方向モジュールの位
置情報および図形情報を算出する方向モジュール探索手
段と、(d)前記データモジュールの色に基づいて、デ
ータキャラクタに変換するデータキャラクタ変換手段。 - 【請求項18】 前記二次元コードのシンボルは、Ma
xiCodeシンボルであることを特徴とする、請求項
11に記載の二次元コード読み取り装置。
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000355940A JP2002157549A (ja) | 2000-11-22 | 2000-11-22 | 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 |
AT01108629T ATE321310T1 (de) | 2000-04-06 | 2001-04-05 | Verfahren und vorrichtung zum lesen von einem zwei-dimensionalen strichkode und datenspeichermedium |
EP01108629A EP1143372B1 (en) | 2000-04-06 | 2001-04-05 | Method of and apparatus for reading a two-dimensional bar code symbol and data storage medium |
ES01108629T ES2256106T3 (es) | 2000-04-06 | 2001-04-05 | Metodo y aparato para leer un simbolo de codigo de barra bidimensional y medio de almacenamiento de datos. |
DE60118051T DE60118051T2 (de) | 2000-04-06 | 2001-04-05 | Verfahren und Vorrichtung zum Lesen von einem zwei-dimensionalen Strichkode und Datenspeichermedium |
KR1020010018244A KR100579356B1 (ko) | 2000-04-06 | 2001-04-06 | 2차원 코드 판독 방법, 정보 기록 매체 및 2차원 코드판독 장치 |
US09/828,453 US6604682B2 (en) | 2000-04-06 | 2001-04-06 | Method of and apparatus for reading a two-dimensional bar code symbol and data storage medium |
CN01119210A CN1334544A (zh) | 2000-04-06 | 2001-04-06 | 二维代码读取方法、信息记录媒体和二维代码读取装置 |
HK02105405.6A HK1043852A1 (zh) | 2000-04-06 | 2002-07-22 | 二維代碼讀取方法、信息記錄媒體和二維代碼讀取裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000355940A JP2002157549A (ja) | 2000-11-22 | 2000-11-22 | 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002157549A true JP2002157549A (ja) | 2002-05-31 |
Family
ID=18828269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000355940A Withdrawn JP2002157549A (ja) | 2000-04-06 | 2000-11-22 | 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002157549A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7336319B2 (en) | 2002-12-19 | 2008-02-26 | Ricoh Company, Ltd. | Digital camera apparatus having a recognizing function |
KR101109510B1 (ko) | 2010-07-02 | 2012-01-31 | (주) 애니모비 | 2차원 바코드 인식방법 |
CN105608403A (zh) * | 2016-02-06 | 2016-05-25 | 湖南暴云科技有限公司 | 一种基于二维码定位的方法及*** |
-
2000
- 2000-11-22 JP JP2000355940A patent/JP2002157549A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7336319B2 (en) | 2002-12-19 | 2008-02-26 | Ricoh Company, Ltd. | Digital camera apparatus having a recognizing function |
KR101109510B1 (ko) | 2010-07-02 | 2012-01-31 | (주) 애니모비 | 2차원 바코드 인식방법 |
CN105608403A (zh) * | 2016-02-06 | 2016-05-25 | 湖南暴云科技有限公司 | 一种基于二维码定位的方法及*** |
CN105608403B (zh) * | 2016-02-06 | 2018-08-14 | 湖南暴云科技有限公司 | 一种基于二维码定位的方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6604682B2 (en) | Method of and apparatus for reading a two-dimensional bar code symbol and data storage medium | |
US9582701B2 (en) | Information input/output method using dot pattern | |
EP1383070B1 (en) | Two-dimensional code reading method for portable terminal with digital camera | |
US9892300B2 (en) | Two-dimensional code | |
US7264174B2 (en) | 2D coding and decoding barcode and its method thereof | |
JP2938338B2 (ja) | 二次元コード | |
JP3668275B2 (ja) | デジタル情報記録方法、解読方法および解読装置 | |
US7106904B2 (en) | Form identification method | |
US20060175414A1 (en) | Method for reading out symbol information and device for reading out symbol information | |
US9898637B2 (en) | Two-dimensional code | |
JP6856956B2 (ja) | 長距離高密度視覚マーカの検出および認識方法 | |
EP3996283B1 (en) | Coding pattern, coding and reading methods for same, calibration board, and calibration method | |
JP2002157549A (ja) | 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 | |
JP2002024752A (ja) | 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 | |
JP2002049889A (ja) | 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 | |
JP4397866B2 (ja) | 2次元パターン読み取り装置、2次元パターン読み取り方法 | |
CN111191759A (zh) | 一种二维码的生成方法和基于gpu的定位、解码方法 | |
JP3853331B2 (ja) | デジタル情報記録方法 | |
JPH11312215A (ja) | 二次元コードデコード装置、及び記憶媒体 | |
JP4383961B2 (ja) | デジタル情報記録担体 | |
CN110348265B (zh) | 一种基于平行坐标系的新型矩阵码还原方法 | |
JP2006178641A (ja) | シンボル情報読取方法及びシンボル情報読取装置 | |
JPS63234374A (ja) | 文字図形認識方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080205 |