(57)【要約】【課題】  高速で汎用性の高いバーコード読み取り装置、バーコード読み取り方法及びバーコード読み取りプログラムを提供すること。【解決手段】  複数のドットにより構成されるバーコードが撮影された射影画像から、バーコードを構成するドットを検出するドット検出手段を有し、前記ドット検出手段により検出されたドットに基づきバーコードが表す情報を読み取るバーコード読み取り装置において、前記ドット検出手段により検出されたドットがバーコードのコード枠のコーナードットに相当することを検出するコーナードット検出手段と、前記コーナードット検出手段により検出されたコーナードットに基づきバーコードのコード枠を検出するコード枠検出手段１１０１とを有する。【選択図】  図１１
2005070980.tif 000002
【特許請求の範囲】
【請求項１】
複数のドットにより構成されるバーコードが撮影された射影画像から、バーコードを構成するドットを検出するドット検出手段を有し、前記ドット検出手段により検出されたドットに基づきバーコードが表す情報を読み取るバーコード読み取り装置において、
前記ドット検出手段により検出されたドットがバーコードのコード枠のコーナードットに相当することを検出するコーナードット検出手段と、
前記コーナードット検出手段により検出されたコーナードットに基づきバーコードのコード枠を検出するコード枠検出手段と、
を有することを特徴とするバーコード読み取り装置。
【請求項２】
前記コード枠検出手段は、
前記コーナードット検出手段により検出されたバーコードのコード枠の第一のコーナードットの位置から他のコーナードットの位置を推定するコーナードット位置推定手段と、
前記コーナードット位置推定手段により推定された、他のコーナードットの推定位置近傍のコーナードット候補を検出するコーナードット候補検出手段と、
前記コーナードット候補検出手段により検出されたコーナードット候補が真のコーナードットであるか否かを判別するコーナードット判別手段と、
を有することを特徴とする請求項１記載のバーコード読み取り装置。
【請求項３】
前記コーナードット判別手段がコーナードットであると判別した位置に基づいて、前記コーナードット位置推定手段が推定した第一のコーナードットの位置と、
前記コーナードット検出手段により検出された前記第一のコーナードットの位置と、
が一致するか否かを判定するコーナードット一致判定手段を有する、
ことを特徴とする請求項２記載のバーコード読み取り装置。
【請求項４】
前記コーナードット検出手段又は前記コーナードット判別手段は、所定のドットに対し、  点対称なドットのペアを二組検出する点対称ペア検出手段を有することを特徴とする請求項２記載のバーコード読み取り装置。
【請求項５】
前記コーナードット位置推定手段は、バーコードのコード枠の情報に基づきコーナードットの位置を推定する、
ことを特徴とする請求項２記載のバーコード読み取り装置。
【請求項６】
前記コーナードット位置推定手段は、
所定のコーナードットの上下及び左右に存在するドットに基づきコーナードットの存在する方向を定める、
ことを特徴とする請求項５記載のバーコード読み取り装置。
【請求項７】
前記コーナードット候補検出手段は、
前記コーナードット位置推定手段により推定されたコーナードットの位置を起点として走査することで前記コーナードット候補を検出する、
ことを特徴とする請求項２記載のバーコード読み取り装置。
【請求項８】
前記コーナードット一致判定手段は、
前記コーナードット位置推定手段により推定された第一のコーナードットの位置と、
前記コーナードット検出手段により検出された前記第一のコーナードットの位置と、の距離が所定の閾値内の場合にコーナードットが一致したと判定する、
ことを特徴とする請求項３記載のバーコード読み取り装置。
【請求項９】
複数のドットにより構成されるバーコードが撮影された射影画像から、バーコードを構成するドットを検出するドット検出手順を有し、前記ドット検出手順により検出されたドットに基づきバーコードが表す情報を読み取るバーコード読み取り装置において、
前記ドット検出手順により検出されたドットがバーコードのコード枠のコーナードットに相当することを検出するコーナードット検出手順と、
前記コーナードット検出手順により検出されたコーナードットに基づきバーコードのコード枠を検出するコード枠検出手順と、
を有することを特徴とするバーコード読み取り方法。
【請求項１０】
前記コード枠検出手順は、
前記コーナードット検出手順により検出されたバーコードのコード枠の第一のコーナードットの位置から他のコーナードットの位置を推定するコーナードット位置推定手順と、
前記コーナードット位置推定手順により推定された、他のコーナードットの推定位置近傍のコーナードット候補を検出するコーナードット候補検出手順と、
前記コーナードット候補検出手順により検出されたコーナードット候補が真のコーナードットであるか否かを判別するコーナードット判別手順と、
を有することを特徴とする請求項９記載のバーコード読み取り方法。
【請求項１１】
前記コーナードット位置推定手順が、前記コーナードット判別手順がコーナードットであると判別した位置に基づいて推定した第一のコーナードットの位置と、
前記コーナードット検出手順により検出された前記第一のコーナードットの位置と、
が一致するか否かを判定するコーナードット一致判定手順を有する、
ことを特徴とする請求項１０記載のバーコード読み取り方法。
【請求項１２】
前記コーナードット検出手順又は前記コーナードット判別手順は、所定のドットに対し、  点対称なドットのペアを二組検出する点対称ペア検出手順を有することを特徴とする請求項１０記載のバーコード読み取り方法。
【請求項１３】
前記コーナードット位置推定手順は、バーコードのコード枠の情報に基づきコーナードットの位置を推定する、
ことを特徴とする請求項１０記載のバーコード読み取り方法。
【請求項１４】
前記コーナードット位置推定手順は、
所定のコーナードットの上下及び左右に存在するドットに基づきコーナードットの存在する方向を定める、
ことを特徴とする請求項１３記載のバーコード読み取り方法。
【請求項１５】
前記コーナードット候補検出手順は、
前記コーナードット位置推定手順により推定されたコーナードットの位置を起点として走査することで前記コーナードット候補を検出する、
ことを特徴とする請求項１０記載のバーコード読み取り方法。
【請求項１６】
前記コーナードット一致判定手順は、
前記コーナードット位置推定手順により推定された第一のコーナードットの位置と、
前記コーナードット検出手順により検出された前記第一のコーナードットの位置と、の距離が所定の閾値内の場合にコーナードットが一致したと判定する、
ことを特徴とする請求項１１記載のバーコード読み取り方法。
【請求項１７】
請求項９乃至１６いずれか一項記載のバーコード読み取り方法を、コンピュータに実行させるためのバーコード読み取りプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の読み取りに関し、特にバーコードを読み取るバーコード読み取り装置、バーコード読み取り方法及びバーコード読み取りプログラムに関する。
【背景技術】
【０００２】
業務の電子化やパソコンの普及と共に、文書を電子化しいわゆる電子文書として取り扱う機会が増大している。一方、ＣＲＴ、ＬＣＤなどのディスプレイの文書表示品質は紙への印刷品質に劣る点も多いため、電子的に作成された電子文書を紙文書として紙に印刷する機会も多い。
【０００３】
こうした印刷された紙文書に手書きで加筆することは日常的に行われているが、元の電子文書と加筆された内容とは何ら関連づけられておらず、印刷された紙文書に加筆された内容を電子文書に反映させるには、電子文書をパソコンなどで開き再度編集する必要がある。このため、印刷された紙文書に対して行われた手書き作業を有効に利用できるよう、元の電子文書と関連づけられた形で加筆情報を電子化する手段が必要とされている。
【０００４】
これに対して、光学的に読取可能なコードシンボル（２次元コード）を紙面上にマトリックス状に並べ、紙面へペンで加筆するのと同時に、ペンに設けたカメラで２次元コードを読み取る発明が開示されている（例えば、特許文献１参照。）。特許文献１記載の発明によれば、カメラが読み取った２次元コードにより加筆している位置の座標情報を取得することができ、加筆情報をリアルタイムに読み取りながら加筆前の紙面情報と加筆情報を関連付けることができる。特許文献１記載の発明では、文書を特定する文書固有の情報と紙上の座標位置を同時に白黒のパターンに変換し、紙に印刷する。白黒のパターンに誤り訂正機能を有する２次元コードを利用し、光学ペンによる読み取りが不安定な場合でも文書固有の情報と座標情報を取得できるような機能を有しているため、読み取りが不安定な場合でも読み取りが可能になっている。
【０００５】
また、２次元コードとして、Ｘ座標、Ｙ座標、コードの方向を表すパターン及びホーミングパターンと呼ばれるコードの中心に配置されたその他のパターンより大きいパターンとを用いた加筆情報の電子化に関する発明が開示されている（例えば、特許文献２参照。）。特許文献２記載の発明では、２次元コードは不可視インクで印刷されるため肉眼では見られないが、所定のカメラを備えたペンを用いて紙面に加筆するのと同時に２次元コードを読み込むことができる。したがって、文書内容の判別を損なわずに加筆情報をリアルタイムに読み取りながら加筆前の紙面情報と加筆情報を関連付けることができる。
【０００６】
更に、２次元コードとして、ドットを所定の位置からずらすことにより、１ドットで２ビット以上の情報を有することのできる２次元コードを用いた加筆情報の電子化に関する発明が開示されている（例えば、特許文献３。）。該２次元コードは水平及び垂直方向の座標情報を有しており、紙全体に連続的にドットが印刷されている。特許文献３記載の発明においても、小型カメラを備えたペンで紙面へ加筆するのと同時に２次元コードを読み取ることにより、加筆情報をリアルタイムに読み取りながら加筆前の紙面情報と加筆情報を関連付けることができる。
【特許文献１】特開平２０００−２９３３０３号公報
【特許文献２】ＵＳＰ５６６１５０６
【特許文献３】ＷＯ ００／７３９８１  Ａ１
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１記載の２次元コードは、サイズが大きくなるため、広い範囲の紙面を光学ペンで撮影しなければならない。このため、被写界深度などの問題で読み取った画像の品質が落ちるため、２次元コードを連続的に読み取ることが難しくなる。更に、当該２次元コードは筆記中にカメラで撮影され且つデコードするために作られたわけではなく、汎用の２次元コードを用いているため、デコード処理に時間がかかりリアルタイムで処理を行うことが難しい。連続的な加筆情報を取得しながら、２次元コードを読み取り座標位置を連続的に取得できなければ、加筆情報の不連続点が発生するので、正しい加筆情報が得られない。
【０００８】
また、特許文献２記載の発明では、不可視インクで２次元コードを印刷するため、一般の印刷装置を使用して２次元コードを印刷することは事実上不可能である。すなわち、この２次元コードを利用するためには、予め特殊な印刷装置において不可視インクを使用して２次元コードを印刷する必要がある。したがって、ユーザが印刷したい文書の情報を印刷時に印刷媒体に埋め込むためには別のバーコードを重畳して印刷するなどの手段が必要となるばかりか、文書に加筆する前に必ずそのバーコードを読ませる必要があり、利便性が損なわれる。仮に、バーコードを読む作業を忘れて別の文書に加筆を行ってしまうと、加筆情報と電子文書とのリンクが矛盾を起こす。また、可視インクで２次元コードを印刷することも考えられるが、特許文献２記載の２次元コードは他のパターンより大きいパターンを使用しているため、文書や加筆された内容の可読性が損なわれる。
【０００９】
また、特許文献３記載の発明では、２次元的に等間隔な点からわずかにドットをずらして配置することにより、１ドットに２ビット以上の座標情報を乗せることを可能とした２次元コードを開示している。しかしながら、位置をずらす量が３０μｍと非常に小さいため、一般に普及しているレーザープリンタ（解像度１２００ｄｐｉ程度）では、紙送りの精度、感光体の回転速度のむら等により正しいずれ量を再現することが難しい。したがって特許文献３記載の２次元コードの場合も、予めオフセット印刷等の印刷技術を利用して２次元コードを印刷した紙を用意する必要があるため、特許文献２と同様の問題がある。
【００１０】
本発明は、上記問題点に鑑み、高速で汎用性の高いバーコード読み取り装置、バーコード読み取り方法及びバーコード読み取りプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、請求項１記載の発明は、複数のドットにより構成されるバーコードが撮影された射影画像から、バーコードを構成するドットを検出するドット検出手段を有し、前記ドット検出手段により検出されたドットに基づきバーコードが表す情報を読み取るバーコード読み取り装置において、前記ドット検出手段により検出されたドットがバーコードのコード枠のコーナードットに相当することを検出するコーナードット検出手段と、前記コーナードット検出手段により検出されたコーナードットに基づきバーコードのコード枠を検出するコード枠検出手段とを有することを特徴とする。
【００１２】
請求項１記載の発明によれば、バーコードのコード枠のコーナードットを検出し、コーナードットに基づきコード枠を検出できるので、高速なバーコードの読み取りができる。
【００１３】
また、請求項２記載の発明は、請求項１記載のバーコード読み取り装置において、前記コード枠検出手段は、前記コーナードット検出手段により検出されたバーコードのコード枠の第一のコーナードットの位置から他のコーナードットの位置を推定するコーナードット位置推定手段と、前記コーナードット位置推定手段により推定された、他のコーナードットの推定位置近傍のコーナードット候補を検出するコーナードット候補検出手段と、  前記コーナードット候補検出手段により検出されたコーナードット候補が真のコーナードットであるか否かを判別するコーナードット判別手段とを有することを特徴とする。
【００１４】
請求項２記載の発明によれば、第一のコーナードットが検出されれば残りのコーナードットは位置を推定された後に、その推定位置の近傍で検出されるので、バーコードのコード枠を構成するドットを全て検出するしなくともよい。
【００１５】
また、請求項３記載の発明は、請求項２記載のバーコード読み取り装置において、前記コーナードット位置推定手段が、前記コーナードット判別手段がコーナードットであると判別した位置に基づいて推定した第一のコーナードットの位置と、前記コーナードット検出手段により検出された前記第一のコーナードットの位置とが一致するか否かを判定するコーナードット一致判定手段を有することを特徴とする。
【００１６】
請求項３記載の発明によれば、第一のコーナードットに基づいて検出された他のコーナードットのうち所定のコーナードットから、逆に第一のコーナードットの位置を推定することで、第一のコーナードットの検出結果を検証することができる。第一のコーナードットの位置が検証されれば他のコーナードットの位置も検証される。バーコードのコード枠は、コーナードットを直線で結ぶことで検出できるので、コード枠を構成するドットが、文字、罫線、汚れなどで検出困難であっても、コーナードットさえ検出できればバーコードを検出できる。
【００１７】
また、請求項４記載の発明は、請求項１又は２記載のバーコード読み取り装置において、前記コーナードット検出手段又は前記コーナードット判別手段は、所定のドットに対し、  点対称なドットのペアを二組検出する点対称ペア検出手段を有することを特徴とする。
【００１８】
請求項４記載の発明によれば、所定のドットから走査することで、高速にドットを検出できる。また、コーナードットと推定されるドットに対し点対称なドットを検出することでコーナードットを検出できる。
【００１９】
また、請求項５記載の発明は、請求項２記載のバーコード読み取り装置において、前記コーナードット位置推定手段は、バーコードのコード枠の情報に基づきコーナードットの位置を推定することを特徴とする。
【００２０】
請求項５記載の発明によれば、バーコードの角数や辺の長さに応じコーナードットの位置を推定できるので、バーコードのコード枠を構成するドットをすべて検出しなくてもよい。
【００２１】
また、請求項６記載の発明は、請求項５記載のバーコード読み取り装置において、前記コーナードット位置推定手段は、所定のコーナードットの上下及び左右に存在するドットに基づきコーナードットの存在する方向を定めることを特徴とする。
【００２２】
請求項６記載の発明によれば、コーナーを構成するコーナードット及びコーナードットに隣接するコード枠を構成するドットが生成する直線の延長方向に、他のコーナードットの方向を定めることができる。
【００２３】
また、請求項７記載の発明は、請求項２記載のバーコード読み取り装置において、前記コーナードット候補検出手段は、前記コーナードット位置推定手段により推定されたコーナードットの位置を起点として走査することで前記コーナードット候補を検出することを特徴とする。
【００２４】
請求項７記載の発明によれば、所定のドットから走査を開始することで、コーナードットの可能性の高いドットからコーナードット候補を検出できるので、高速にコーナードット候補を検出できる。
【００２５】
また、請求項８記載の発明は、請求項３記載のバーコード読み取り装置において、前記コーナードット一致判定手段は、前記コーナードット位置推定手段により推定された第一のコーナードットの位置と、前記コーナードット検出手段により検出された前記第一のコーナードットの位置と、の距離が所定の閾値内の場合にコーナードットが一致したと判定することを特徴とする。
【００２６】
請求項８記載の発明によれば、検出された第一のコーナードットの位置と、他のコーナードットから推定された第一のコーナードットの位置との距離が、所定の閾値内に入っていればコーナー枠が検出されたと判定できる。
【００２７】
また、請求項９記載の発明は、複数のドットにより構成されるバーコードが撮影された射影画像から、バーコードを構成するドットを検出するドット検出手順を有し、前記ドット検出手順により検出されたドットに基づきバーコードが表す情報を読み取るバーコード読み取り方法において、前記ドット検出手順により検出されたドットがバーコードのコード枠のコーナードットに相当することを検出するコーナードット検出手順と、
前記コーナードット検出手順により検出されたコーナードットに基づきバーコードのコード枠を検出するコード枠検出手順とを有することを特徴とする。
【００２８】
また、請求項１０記載の発明は、請求項９記載のバーコード読み取り方法において、前記コード枠検出手順は、前記コーナードット検出手順により検出されたコード枠の第一のコーナードットの位置から他のコーナードットの位置を推定するコーナードット位置推定手順と、前記コーナードット位置推定手順により推定された、他のコーナードットの推定位置近傍のコーナードット候補を検出するコーナードット候補検出手順と、前記コーナードット候補検出手順により検出されたコーナードット候補が真のコーナードットであるかを判別するコーナードット判別手順とを有することを特徴とする。
【００２９】
また、請求項１１記載の発明は、請求項１０記載のバーコード読み取り方法において、前記コーナードット位置推定手順が、前記コーナードット判別手順がコーナードットであると判別した位置に基づいて推定した第一のコーナードットの位置と、前記コーナードット検出手順により検出された前記第一のコーナードットの位置とが一致するか否かを判定するコーナードット一致判定手順を有することを特徴とする。
【００３０】
また、請求項１２記載の発明は、請求項１０記載のバーコード読み取り方法において、前記コーナードット検出手順又は前記コーナードット判別手順は、所定のドットに対し、  点対称なドットのペアを二組検出する点対称ペア検出手順を有することを特徴とする。
【００３１】
また、請求項１３記載の発明は、請求項１０記載のバーコード読み取り方法において、前記コーナードット位置推定手順は、バーコードのコード枠の情報に基づきコーナードットの位置を推定することを特徴とする。
【００３２】
また、請求項１４記載の発明は、請求項１３記載のバーコード読み取り方法において、前記コーナードット位置推定手順は、所定のコーナードットの上下及び左右に存在するドットに基づきコーナードットの存在する方向を定めることを特徴とする。
【００３３】
また、請求項１５記載の発明は、請求項１０記載のバーコード読み取り方法において、前記コーナードット候補検出手順は、前記コーナードット位置推定手順により推定されたコーナードットの位置を起点として走査することで前記コーナードット候補を検出することを特徴とする。
【００３４】
また、請求項１６記載の発明は、請求項１１記載のバーコード読み取り方法において、前記コーナードット一致判定手順は、前記コーナードット位置推定手順により推定された第一のコーナードットの位置と、前記コーナードット検出手順により検出された前記第一のコーナードットの位置と、の距離が所定の閾値内の場合にコーナードットが一致したと判定することを特徴とする。
【００３５】
請求項９乃至１６記載の発明は、請求項１乃至８記載のバーコード読み取り装置に適したバーコード読み取り方法を提供する。
【００３６】
また、請求項１７記載の発明は、請求項９乃至１６いずれか一項記載のバーコード読み取り方法をコンピュータに実行させるためのバーコード読み取りプログラムを提供する。
【００３７】
請求項１７記載の発明は、請求項９乃至１６記載のバーコード読み取り方法に適したバーコード読み取りプログラムを提供する。
【発明の効果】
【００３８】
高速で汎用性の高いバーコード読み取り装置、バーコード読み取り方法及びバーコード読み取りプログラムを提供できた。
【発明を実施するための最良の形態】
【００３９】
以下、本発明を実施するための最良の形態について、図を参照しながら実施例を上げて説明する。
【実施例】
【００４０】
〔２次元バーコード〕
始めに本実施例で用いる２次元バーコード（以下、単に２次元コードという）について説明する。図１は、本実施例で用いる印刷された文書の所定領域の一部が拡大された例を示す。点線で囲まれた領域２ａ、２ｂ、２ｃ及び２ｄは、それぞれが１つの２次元コードである。２次元コードは、光学的に読み取り可能な複数の黒ドットで構成されており、各２次元コードは縦横にマトリクス状に並べられている。図１の連続したドットで構成されたＨ１、Ｈ２及びＨ３のラインとＶ１、Ｖ２及びＶ３のラインは、各２次元コードの縦横の境界となる。なお、垂直線Ｈ１と水平線Ｖ１の交点、例えばドット１５を２次元コードのコーナー（角）と称す。
【００４１】
２次元コード及び境界（以下、単に２次元パターンという）は、文書印刷時に文書の内容と同時に印刷される。２次元コード２ａ等には、印刷された文書の原本となる電子文書の識別（ＩＤ）情報と各２次元コードの位置する座標を表す情報がエンコードされている。
【００４２】
例えば、２次元コード２ａには「水平座標＝９５、垂直座標＝１０、文書ＩＤ＝１０」がエンコードされ、２次元コード２ｂには「水平座標＝９６、垂直座標＝１０、文書ＩＤ＝１０」、２次元コード２ｃには「水平座標＝９５、垂直座標＝１１、文書ＩＤ＝１０」、２次元コード２ｄには「水平座標＝９６、垂直座標＝１１、文書ＩＤ＝１０」とエンコードされている。
【００４３】
ここで、２次元コードを構成するドットおよび２次元コードの大きさに関して図２を用いて説明する。ドット２０１は、２次元パターンを構成する１つのドットの一例を、セル２０２は、使用するプリンタで印刷できる最小ドットの大きさの一例を示す。
【００４４】
２次元パターンを構成するドット２０１は、使用するプリンタの最小ドット２０２の２×２単位で印字される。例えば１２００ｄｐｉのプリンタならば、プリンタの最小ドット径は約２１μｍであるので、２次元コードのドットの直径は理想的には約４２μｍとなる。実際にはドットゲインがあるため直径はもう少し大きくなる。本実施例では、各ドットをドットの直径の６倍の間隔を置いて水平・垂直方向に配置する。この場合、ドット配置位置にすべてのドットが存在する場合でもドットの占める面積率は理想的には２．８％、５０％程度のドットゲインを見込んでも面積占有率は５％に満たない。５％程度の黒色の占有率では、人の目には明るい灰色に見えるのでドットに邪魔されて文書や加筆した文字が読みにくいなどという問題は起こらない。
【００４５】
以上のようにドットの配置を決定すると、本実施例では各２次元コードは、縦１１個、横７個のドットにより構成されているため、各２次元コードの大きさは、横（水平）２ｍｍ、縦（垂直）３ｍｍ角となる。２次元コードの各位置を、例えば、紙面の左上の角の位置を原点として表す。例えば水平座標＝９５ということは、水平方向に９５番目の２次元コードとなり、原点から水平方向に１９０ｍｍの位置にあるということを意味する。同様に垂直座標＝１０は、垂直方向に１０番目の２次元コードとなり、紙面の左上の原点から、垂直方向に３０ｍｍの位置にあるということを意味する。
【００４６】
なお、詳しくは後述するが、水平２ｍｍ、垂直３ｍｍ角の大きさは、Ａ４サイズの用紙と相似の形状であり、水平・垂直座標情報を有効に格納することが可能になる。
【００４７】
文書ＩＤについて説明する。文書ＩＤとは、元の電子文書の固有情報、例えば電子文書が格納されているデータベースの識別ＩＤである。すなわち、２次元コード２aは文書ＩＤが１０であるので、２次元コード２ａは、その左上の角(垂直線Ｈ１と水平線Ｖ１の交点)が、「紙面左上から水平１９０ｍｍ、垂直３０ｍｍの位置にあり、印刷されている文書はそのＩＤが１０の文書である」、という情報を有する。
【００４８】
続いて、２次元コードに配置するデータの詳細を図３を用いて説明する。図３は、図２の２次元コード２ａを示す図である。２次元コード２ａはコード枠を構成するＨ１、Ｈ２、Ｖ１、Ｖ２に囲まれた７×１１のセルを有する。セルとはドットが配置され得る場所をいう。したがって、本実施例の２次元コードは最大７７個のドットを含み得る。
【００４９】
本実施例では、２次元コードをいくつかの領域に分割し、各領域に所定の情報を配置する。領域４０１は、水平座標を表すデータを配置する領域であり、４×２のセルを有する。１セル１ビットに相当するので１バイトの容量を有する。領域４０２は、垂直座標を表すデータを配置する場所である。水平座標の領域と同様に１バイトの容量を有する。
【００５０】
Ａ４サイズの用紙は水平２１０ｍｍ、垂直２９７ｍｍの大きさであるので、２次元コードの１つの大きさが、水平２ｍｍ、垂直３ｍｍであることから、水平方向には105個、垂直方向には９９個の２次元コードを配置できる。１バイトで表現できる数は２８＝２５６であるので、１バイトでＡ４サイズの用紙における位置情報を表示できる。用紙サイズがＡ３の場合には、水平２９７ｍｍ、垂直４２０ｍｍの大きさであるので、水平方向に１４８個、垂直方向に１２０個の２次元コードが配置される。この場合も1バイトのデータ容量があれば十分である。Ａ２サイズの場合は、水平４２０ｍｍ、垂直５９４ｍｍの大きさであるので、水平方向に２１０個、垂直方向に１９８個の２次元コードが配置できるが、この場合も1バイトのデータ容量で十分である。
【００５１】
このように紙の縦横の長さの違いに応じて２次元コードの縦横の長さを適切に決定すると、水平・垂直座標を表すビット数（データ長）を一定サイズに固定しても幅広いサイズの用紙に対応できる。
【００５２】
次に、領域４０３は文書ＩＤを表すデータを配置する場所である。４×６の２４ビット(＝３バイト)の容量を有する。領域４０４乃至４０７は、誤り訂正用の符号を配置する場所である。それぞれ、１バイトずつの容量を有し、誤り訂正用符号は合計４バイトで構成される。領域４０８及び４０９は、２次元コードの上下方向を表すためのパターンで、領域４０８は３×１の黒ドット、領域４０９は２×１のドット無しのパターンで、２次元コードの上下を判別するために使用される。
【００５３】
次に、各領域に配置されるビット列について説明する。図４は、各領域に水平座標など各データのビット列がどのように配列されるかを示す。領域４０１から４０７において、１はＭＳＢ（最上位ビット）、８はＬＳＢ（最下位ビット）を示す。
【００５４】
〔文書管理システム〕
続いて、２次元コードを用いた文書管理システムについて説明する。図５は、２次元コードを用いた文書管理システムの概略構成図を示す。図５の文書管理システムは、プリンタ６０１、複写機６０２、スキャナ６０３、パソコンなど情報処理装置６０４及び６０９、記憶装置６０５、携帯情報端末６０８、ペン型座標入力装置６０７、を有し、ネットワークを介しそれぞれが接続されている。また、記憶装置６０５は、文書管理データベース６０６及び印刷される文書を有する。文書管理データベース６０６は、各文書に識別のためのＩＤを付加するなど、各文書を管理するためのデータベースである。
【００５５】
本実施例では、２次元コードを読み取り、現在手書きしている文書のＩＤ番号及び位置を情報処理装置などへ出力する。この２次元コードを読み取るための装置として、図５のペン型座標入力装置６０７について説明する。
【００５６】
ペン型座標入力装置６０７は、人が手に持って筆記動作を行うことができる筆記具状の装置本体８０７を備えている。この装置本体８０７の先端部８０５には、筆記具８１３、すなわち、ボールペン、シャープペンシルの先端部分等が取り付けられており、文書に加筆可能である。装置本体８０７の側部に設けられた画像読取装置８０６は、ＣＣＤなどの光電変換素子８０６ａと、レンズなどからなる光学系８０６ｂとから構成されていて、印刷文書上の画像を読み取る装置である。なお、画像読取装置８０６には、必要に応じて照明を設けてもよい。
【００５７】
装置本体８０７には、マイコン８０８が搭載されていて、このマイコン８０８には、画像読取装置８０６が電気的に接続されている。画像読取装置８０６で読み取った印刷文書の画像に基づいた各種処理がマイコン８０８でなされる。すなわち、読み取った２次元コードをデコードし、２次元コードの紙面上の座標及び文書ＩＤを検出する。２次元コードの読み取り方法については後述する。また、マイコン８０８は装置本体８０７とは別の外部のパソコンなどの情報処理装置６０４と接続可能であり、マイコン８０８内に蓄積したデータを情報処理装置６０４に出力可能である。なお、図５では、画像読取装置８０６、マイコン８０８などに電力を供給する電源や、マイコン８０８と情報処理装置６０４とのインターフェースなどは図示を省略している。
【００５８】
図６は、マイコン８０８の構成図を示す。マイコン８０８では、バス８８０を介してＣＰＵ（中央処理装置）８８１、ＲＯＭ（リードオンリーメモリ）８８２、ＲＡＭ（ランダムアクセスメモリ）８８３、２次元コード読み取り装置８８４が電気的に接続されている。各種外部装置とはバス８８０を介して電気的に接続されている。ＲＯＭ８８２には、ペン型座標入力装置６０７の動作を制御するプログラムやマイコン８０８を動作させるプログラムがあらかじめ内蔵されている。ＲＡＭ８８３は画像読み取り装置８０６から読み取った画像や、コード読み取り中に生成される中間データ、２次元コードをデコードした際に得られる文書ＩＤや座標を一時的に保存する。２次元コード読み取り装置８８４については後述するが、ＲＡＭ８８３に記憶された画像から２次元コードを検出し、読み取った文書ＩＤや座標を検出する作業を行う。 
さらに、マイコン８０８には、ＬＣＤ表示装置８０９、ＬＥＤ８１０、あるいはブザー８１１が接続され、情報処理装置６０４から受信した情報をＬＣＤ表示装置８０９に表示したり、あるいは特定の情報を受信した場合にはＬＥＤ８１０を点滅させたり、ブザー８１１を鳴らしたりして外部に通知することが可能である。
【００５９】
装置本体８０７には、先端部８０５の部分が筆記面に接触しているかどうかを検出する圧力センサ８１２が設けられている。すなわち、先端部８０５が筆記面に接触することにより先端部８０５に加わる圧力が筆記具８１３を介して圧力センサ８１２に伝達される。圧力センサ８１２はこの圧力を感知し、感知した情報をマイコン８０８に伝送する。
ペン型座標入力装置６０７を用いることで、印刷文書上での先端部８０５の位置検出を連続的に行えば、印刷文書上での先端部８０５の移動軌跡を求めることができる。また、前述のように先端部８０５が筆記面に接触しているかどうかを検出する圧力センサによって、紙面上に筆記を行ったときの筆記軌跡を忠実に求めることができる。
【００６０】
仮に、２次元コードが存在しない文書に加筆するような場合、筆記中にもかかわらずコードを読み取ることが不可能であるので読み取り不能の表示をＬＣＤ８０９あるいはＬＥＤ８１０を用いて行いユーザに通知する。
【００６１】
〔２次元コードが印刷された文書の印刷〕
続いて、２次元コードが印刷された文書の印刷例について図５及び図７を用いて説明する。図７は、２次元コードを作成し、生成された２次元コードを印刷すべき文書に重畳し、文書を印刷するまでの処理のフローチャート図を示す。
【００６２】
２次元コードは、情報処理装置６０４又は６０９において、文書の印刷命令が実行された場合に、情報処理装置６０４又は６０９が有するプリンタドライバで作成される。プリンタドライバはまず、記憶装置６０５内の文書管理データベース６０６に問い合わせて印刷しようとする文書のページ毎の文書ＩＤを発行してもらう（Ｓ５０１）。
【００６３】
次に、紙面のサイズに応じて座標情報を意味する座標データが決定される（Ｓ５０２）。文書ＩＤと座標データを発行してもらったら、文書ＩＤと文書上の座標情報とをあわせ、エンコードすべきデータを作成する。例えば、文書ＩＤは１２３４５６、座標情報はｍｍ単位で（２４、１２３）という具合である。
【００６４】
次にデータをエンコード（符号化）する。データのエンコード処理（Ｓ５０３）及び誤り訂正符号追加（Ｓ５０４）の処理を図８に基づき説明する。文書ＩＤは６桁の数字が３バイトのバイナリ値に変換される。また、水平座標は、紙面左上の原点からｍｍ単位で表すと２４ｍｍであるので、２次元コードの水平方向の長さ２ｍｍで割って２４/２＝１２、垂直座標は、座標情報では１２３ｍｍであるので、２次元コードの水平方向の長さ３ｍｍで割って１２３/３＝４１となる。前記の通り、水平・垂直座標が、それぞれ１バイトずつに収まる。
【００６５】
座標情報はこのように２バイトのバイナリ値に変換し、文書ＩＤとあわせて計５バイトのデータとする（図７及び図８のＳ５０３）。
【００６６】
データをエンコードした後、エンコードデータに基づき誤り訂正符号を追加する（図７及び図８のＳ５０４）。図８の例では５バイトのデータに対して４バイトの誤り訂正符号を付加している。この誤り訂正符号には、リードソロモン符号を採用する。リードソロモン符号は、バイト単位の誤りを訂正できる強力な誤り訂正方式であり、誤り訂正符号長の半分以下の誤りを訂正することができる。リードソロモン誤り訂正符号の詳細については、昭晃堂「符号理論（コンピュータ基礎講座１８）」宮川、岩垂、今井共著など、多数の書籍に記されている。本発明の場合には、誤り訂正符号長が４バイトの場合、２バイトまでの誤り訂正が可能である。
【００６７】
このようにして作成されたエンコードデータおよび誤り訂正符号データは図３で説明した２次元コードの各領域に割り当てられ、２次元コードがページ全体に配置されたマトリクスの画像ができあがる（Ｓ５０５）。これで１ページ分の処理が終了したので（Ｓ５０６のはい）、全ページが終了するまで処理を繰り返す（Ｓ５０７）。
【００６８】
その後、プリンタ６０１や複写機６０２のプリンタ部を使用して印刷を行う。印刷が正常に終了したら、プリンタドライバは、文書管理データベース６０６に正常に印刷された文書、ページ数、文書ＩＤの情報の登録を行う。
【００６９】
図９は、図７の処理を背景に２次元コードが印刷された文書を作業者が印刷する流れを示したフローチャート図である。まず、作業者は、図５の記憶装置６０５に保存されている文書を必要に応じ編集する（Ｓ９０１）。作業者が、文書の印刷を所望する場合は印刷命令を出す（Ｓ９０２）。この時点で、図７で説明した処理が行われ、２次元コードが配置された紙面に、Ｓ９０１で編集した文書が重畳されて、プリンタ６０１や複写機６０２で文書の印刷が実行される。印刷が正常に終了したならば（Ｓ９０３のはい）、プリンタドライバは、印刷に成功した文書ＩＤを文書管理データベース６０６に登録する（Ｓ９０４）。
【００７０】
図１０は、２次元コードが重畳され印刷された文書の一例を示す。印刷文書１００１は所定のフォーマットを有する帳票文書の一例であり、背景には２次元パターンが印刷されている。拡大部分１００３は、印刷文書１００１の一部１００２を拡大したものである。拡大部分１００３において、ドット１００４は図３の領域４０８に相当し、上下の方法を示す。ドット１００４以外の黒いドットはコード枠を、白いドットはデータドットの一例である。
【００７１】
ここまでで、２次元コードが印刷された文書の印刷が行われたので、続いて、２次元コードの読み取りについて詳述する。
【００７２】
〔２次元コード読み取り装置〕
図１１は、図６で説明した２次元コード読み取り装置８８４の機能構成図を示す。まず、図５の画像読み取り装置８０６で読み取られた紙面の画像（白黒８ビット画像）が入力され、コード位置検出器１１０１で、画像内にある複数の２次元コードから一つの２次元コードの枠を検出する。詳細は後述する。撮影された画像の一例を図１２に示す。図１２においては、ドットで構成される複数の２次元コードが撮影されている。
【００７３】
２次元コードの位置を検出できたら、データ取得器１１０２において、２次元コードの各白黒セル（ドットが配置されるべき位置）に応じて０または１のデータを取得し、２次元コードのデータ配置規則に従ってデータの並べ替えが行われる。次に、データ置換器１１０６は、取得したデータに対して、連続筆記検出器１１０５から出力される連続筆記中であるか否かを示す信号に応じ、連続筆記中である場合には、既知情報メモリ１１０８から既知の文書ＩＤを読み出し、データ置換器において２次元コードから取得したデータの文書ＩＤに相当する部分を既知の文書ＩＤで置き換える。ここで、連続筆記検出器１１０５は、ペン型座標入力装置８０７には不図示であるが、加筆時にペン先に感じる圧力を検出する圧力センサの出力信号を入力して筆記中かいなかを判定する筆記検出器の出力を入力し、筆記の状態が所定時間以上続くと連続筆記中であると判断し、それ以外の場合を連続筆記中ではないと判断して、その信号を出力する。
【００７４】
文書ＩＤに基づきデータが置換される例を図１３に示す。図１３の表では、第一行目は正しいデータ、すなわち読み取られる前のエンコードされ誤り訂正符号が付加されたデータである。第二行目は画像から２次元コードを抽出してコードのドットからデータを再構成したものである。Ｙ座標とＩＤ情報の１、２番目に誤りがある。この場合三つの誤りがあるため、誤り訂正は不可能である。しかしながら、３行目のように、既知情報として文書ＩＤを置き換えることにより、ＩＤの部分の誤りがなくなり、誤りはＹ座標の1バイトだけとなり、誤り訂正が可能となって正しい座標情報、ＩＤ情報が得られる。
【００７５】
続いて、データ置換器１１０６は、誤り訂正器１１０７に置換されたデータを出力し訂正処理を行う。誤り訂正器１１０７からは、誤り訂正が成功したか否かの判定情報と誤り訂正後のデータが出力される。この誤り訂正されたデータは文書ＩＤと座標情報である。出力された誤り訂正の判定情報はデータ復号器１１０９、ペン先座標算出器１１１０、既知情報メモリ１１０８へ入力され、それぞれの機器の制御に使用される。データ復号器１１０９は、誤り訂正の判定情報が誤り訂正の成功の場合に動作する。誤り訂正失敗であればデータ復号器は動作しない。
【００７６】
ペン先座標算出器１１１０は、誤り訂正の判定情報が誤り訂正成功であり、かつ筆記検出器の出力が筆記中であれば、ペン先座標を算出して出力する。誤り訂正失敗の場合や筆記中でない場合ならば現実にはありえない座標値（（−１、−１）等）を出力する。また、既知情報メモリ１１０８では、誤り訂正が成功である場合、誤り訂正された情報の文書ＩＤに相当する部分を新たに保存する。
【００７７】
誤り訂正に成功したデータはデータ復号器１１０９により、紙面上の座標情報と文書ＩＤに復号される。紙面上のＩＤは、図１３の例では、水平座標＝２４ｍｍ、垂直座標１２３ｍｍ、文書ＩＤ＝２３となる。この座標およびデコードに成功した２次元コードの画像を用いて、ペン先座標算出器はペン先の紙面上での座標を算出する（詳細は後述する）。これによりペン型座標入力装置６０７の先端部８０５の位置が確定する。以上により、文書ＩＤ、ペン先の紙面上での座量が取得される。
【００７８】
（コード位置検出器）
コード位置検出器１１０１の詳細を説明する。コード位置検出器１１０１の機能構成図の一例を図１４に示す。コード位置検出器１１０１は、図１４に示すように、入力画像からドットおよびその位置を検出するドット検出器１４０１と、検出したドット画像からコード枠を構成するドットを検出し、コードの位置を決定するコード枠検出器１４０２とからなる。
【００７９】
・ドット検出器１４０１
ドット検出器１４０１がドットを検出する方法を図１５を用いて説明する。撮影された画像の中から所定の画素を決定し、該画素を注目画素Ｚとする。注目画素Ｚにドットが存在するか否かは、次のように判定する。
【００８０】
注目画素Ｚの周囲画素、図１５では斜線で記された画素（Ａ〜Ｈ）にすでに検出されたドットが存在せず、且つ、注目画素Ｚの画素値が周囲画素（Ｉ〜Ｘ）のどの画素値よりも所定の値（Ｔｈ）以上に小さい場合に注目画素Ｚに２次元コードのドットがあると検出する（画素値は、黒＝０、白＝２５５で表すとする）。すなわち、
画素（Ａ〜Ｈ）にすでに検出されたドットが存在しない
且つ  
Ｚの画素値＜周囲画素（Ｉ〜Ｘ）−  所定の値（Ｔｈ）
の場合に注目画素Ｚに２次元コードのドットがあると検出する。
【００８１】
所定の値（Ｔｈ）の設定について説明する。Ｔｈが小さければ小さいほどドットを検出しやすくなるが、同時にノイズもドットとして検出してしまい、検出したデータに誤りが起きる可能性がある。また、Ｔｈが大きければノイズを検出せずにドットを検出する確率が高くなるが、ドットが連続するコード枠を検出することが難しくなり座標取得率が小さくなる。図１６にＴｈの大きさと座標取得率の関係を示す。文書ＩＤを置き換えた場合と置き換えない場合との両方のデータを記載した。
【００８２】
・コード枠検出器１４０２
続いて、コード枠検出器１４０２について説明する。コード枠検出器１４０２は図１７のように構成されている。図１７は、コード枠検出器１４０２の機能構成図の一例を示す。
【００８３】
コード枠検出器１４０２は、ドット画像およびドット位置を入力しその画像中のあるドットがコーナーであるかいなかを検出する第一コーナー検出器１７０１、第一コーナーとともにコード枠の短辺の一端を成す第二コーナーの位置を推定する第二コーナー位置推定器１７０２、推定された第二コーナー位置近傍で真の第二コーナーを検出する第二コーナー検出器１７０３、第二コーナーとともにコード枠の長辺の一端を成す第三コーナーの位置を推定する第三コーナー位置推定器１７０４、推定された第三コーナー位置近傍で真の第三コーナーを検出する第三コーナー検出器１７０５、第三コーナーとともにコード枠の他の短辺の一端を成す第四コーナーの位置を推定する第四コーナー位置推定器１７０６、推定された第四コーナー位置近傍で真の第四コーナーを検出する第四コーナー検出器１７０７、第四コーナーとともにコード枠の他の長辺の一端を成す第一コーナーの位置を推定する第一コーナー位置推定器１７０８、推定された第一コーナー位置が最初に検出された第一コーナーの近傍にあり、且つ、検出した各コーナーが一つのコード枠であるかいなかを判定する第一コーナー一致判定器１７０９とからなる。
【００８４】
なお、説明のため、コーナーに第一〜第四の名称をつけているが、第一のコーナードットは、二次元コードのコード枠のいずれのコーナーであってもよい。
【００８５】
図１８は、コード枠検出器１４０２がコーナーを検出する手順を示す図である。第一コーナー検出器１７０１は、ドットが検出された画像の中で、あるドット（Ｘ）が２次元コードのコーナーであるかいなかを判定する（詳細は後述する）。第二コーナー位置推定器１７０２は、第一コーナーと判定されたコーナーから、ドットで構成されるコード枠の方向（Ｘ→Ｂ、Ｘ→Ｄ）に、８ドット離れたドットの位置を推定する。そして、推定された位置のうち、第二コーナードット（Ｂ、Ｄ）の近傍位置を検出する。第二コーナー検出器１７０３は、第二コーナー位置推定器１７０２で推定された第二コーナー位置の近傍に第二コーナーがあるかいなかを検出する。第三コーナー位置推定器１７０４は、第二コーナーＢ又はＤから、ドットで構成されるコード枠の方向に（Ｂ→Ｇ、Ｄ→Ｅ）１２ドット離れた位置を時計回り方向に推定する。そして、第三コーナードット（Ｇ、Ｅ）の近傍位置を検出する。第三コーナー検出器１７０５は、第三コーナー位置推定器１７０４で推定された第三コーナー位置の近傍に第三コーナーがあるかいなかを検出する。第四コーナー位置推定器１７０６は、第三コーナー（Ｇ又はＥ）からコード枠の８ドット離れた位置を時計回り方向に追跡し第四コーナードット（Ｇ→Ｃ、Ｅ→Ａ）の近傍位置を検出する。第四コーナー検出器１７０７は、第四コーナー位置推定器１７０６で推定された第四コーナー位置の近傍に第四コーナーがあるかいなかを検出する。第一コーナー位置推定器１７０８は、第四コーナー（Ｃ又はＡ）からドットで構成されるコード枠の１２ドット離れた位置を時計回り方向に推定し（Ｃ→Ｘ、Ａ→Ｘ）、第一コーナードット（Ｘ）の近傍位置を検出する。そして、第一コーナー一致判定器１７０９は、第一コーナー検出器１７０１で検出された真の第一コーナーと第一コーナー位置推定器１７０８で推定された位置とが近傍にあるか否かにより、検出した４つのコーナーが一つのコード枠を形成するかいなかを判定する。
【００８６】
以上の手順により、図１４のコード枠検出器１４０２は、図１８の（１）または（２）のどちらか一方の２次元コードのコード枠を検出する。コード枠が検出されるとそれを構成するドットの画像上の座標を検出できる。（１）と（２）のどちらが先の処理対象になるかは、ドットＸに最も近いドットを持つ方向により決定する。また、一方が検出できればそれでコード枠検出は終了するが、一方のコード枠検出ができなかった場合、他方のコード枠検出を行うことになる。
【００８７】
次に、第一コーナー検出器１７０１による第一コーナー検出の動作を図１９を用いて説明する。図１９（ａ）は、第一コーナー検出器１７０１の機能構成図の一例を、図１９（ｂ）は、注目画素を中心にした１７×１７の画素を表す図を示す。第一コーナー検出器１７０１は、図１９（ａ）に示すように、２次元コードが撮影された画像のなかで注目ドットの周囲で４つ以上のドットが存在するかいなかを検出する周囲ドット検出器１９０１と、検出された周囲ドットから、注目ドットに関して点対称となる二組のドットのペアを検出する点対称ペア検出器１９０２から構成される。
【００８８】
・周囲ドット検出器１９０１
図１９（ｂ）を用いて、周囲ドット検出器１９０１と点対称ペア検出器１９０２について説明する。図１９（ｂ）は、ドットが検出された画像であり、画素Ｎに当該ドットが検出されている。画素Ｎのドットを注目ドットＮと称し、画素Ａ〜Ｆには他のドットが存在する。
【００８９】
周囲ドット検出では、注目ドットＮを中心とする所定長のＬｅｎ
ｘ Ｌｅｎ画素の中で、注目ドットＮから渦巻状に他のドットを探索し、注目ドットＮの周囲に存在するドットを最大６つ検出する。Ｌｅｎの典型的な値は１７である。ノイズをドットとして誤検出する場合もあるので、二組のペアを作成するために必要となる４つのドットを検出するだけでなく、最大６つのドットを検出するようにする。三つ以下のドットしか検出できなかった場合はこのドットＮはコーナードットではないと判定し、処理を終了する。図１９（ｂ）の例では、Ａ〜Ｆの６ドットが存在する。これが周囲ドットとして検出される。
【００９０】
・点対称ペア検出器１９０２
続いて、点対称ペア検出器１９０２では、ドットＡ〜Ｆのうちで、注目ドットＮとの距離が近く、その中間点がＮに近く、かつ両ドット間の距離が小さいものを二組検出する。図１９（ｂ）の場合、（Ａ、Ｃ）、（Ｂ、Ｄ）の二組がそれに相当する。ＥおよびＦはノイズまたはコーナー最近傍のドットではないと判断される。このようにして注目ドットＮおよび周囲の二組の点対称ペアが検出されると、注目ドットＮは第一コーナーとして検出される。
【００９１】
・第二〜第四及び第一コーナー位置推定器
次に、図１７の第二コーナー位置推定器１７０２の詳細を図２０に基づき説明する。ここで、第一、第二、第三、第四コーナー位置推定器はコーナー名が変わるだけで、一部のパラメータ以外は同じ構成であるので、他のコーナーの位置推定器うち重複する部分の説明は省略する。図２０は、２次元コードのコーナー付近を構成するドットを示す図である。Ｘは第一コーナー検出器１７０１より検出された第一コーナードットであり、Ａ〜Ｉはコード枠を構成するドットである。このうちＡ〜Ｄは、図１９の点対称ペア検出器１９０２により検出されているため既知である。ドットＹは、第二コーナードットの推定位置、ドットＹ’は真の第二コーナードットである。
【００９２】
第二コーナー位置推定器１７０２は、ＸからドットＤＥＦの方向にあるコーナーの位置を推定する。コーナー位置の推定処理の説明のため、適当な原点を始点とし、ドットＡ〜Ｉ及びＸを終端とする座標ベクトルを用いる。
【００９３】
第二コーナー位置は、第一コーナーから８ドット離れた位置にあるため、
第二コーナー位置推定器では、
Ｙ＝ （Ｄ − Ｂ）８／２ ＋ Ｘ
を計算する。ベクトルＤからベクトルＢを減算することで、ＸからＹ方向を向くベクトルが得られる。このベクトルは長さが２ドット分あるため２で除算し、これにベクトルＸを加算することでＸから８ドット分離れた第二コーナードットＹを推定する。したがって、ベクトルＹは、第二または第四コーナードットＹの推定ベクトルである。
【００９４】
また、第一、第三コーナー位置推定器では、縦方向のドット数１２を用いて、
Ｙ＝ （Ｄ − Ｂ）１２／２ ＋ Ｘ
で計算される。Ｙは第一または第三コーナードットＹの推定ベクトルである。
【００９５】
・第二〜第四コーナー検出器
第二コーナーの位置が推定されたので、次に、第二コーナー検出器１７０３について説明する。図２１は、第二コーナー検出器１７０３の機能構成図の一例を示す。第二コーナー検出器１７０３は、第二コーナー位置推定器で推定された画素位置（従って位置が推定されたドットＹのある画素）を中心として、その周囲にある一つ以上のドットを検出するコーナードット候補検出器２１０１、及び、検出されたコーナードット候補がコーナーであるか否かを判定するコーナー判定器２１０２とからなる。なお、第三、第四コーナー検出器については、第二コーナー検出器１７０３と同様であるので説明は省略する。
【００９６】
コーナードット候補検出器２１０１の詳細を図２２に基づき説明する。図２２は、位置が推定されたコーナードットＹを有する画素を中心としたSlen × Slen 画素の大きさの領域である。Slenの典型的な大きさは１２である。図２２の領域の中心にある斜線で表された画素は、推定されたコーナー位置である。ここを中心として外側へ向かって渦巻状（図２２の点線）にドットを探索する。ここでも、図１９の周囲ドット検出と同様に、領域内の６つのドット（番号１〜６）を検出する。
【００９７】
次に、図２１のコーナー判定器２１０２が、コーナードット候補検出器２１０１で検出されたドットがコーナードットか否かを判定する。図２３は、コーナー判定器２１０２の機能構成図の一例を示す。コーナー判定器２１０２は、コーナードット候補検出器２１０１で検出されたドット候補の位置を記憶しておくＦＩＦＯの記憶装置２３０１とコーナードット候補がある画素位置のドットがコーナードットか否かを判定するコーナードット判定器２３０２とからなる。コーナードット判定器２３０２でコーナーと判定されたドットがあれば、その位置が出力されるとともに、ＦＩＦＯの記憶装置２３０１に残っているドット位置情報は破棄される。コーナードット判定器２３０２でコーナーと判定されなかった場合は、ＦＩＦＯから次のドット位置が読み出され、コーナードット判定器２３０２はそのドット位置がコーナーであるか否かを判定する動作をする。コーナードット判定器２３０２は、図１９の第一コーナー検出器１７０１と同等の構成で行われる。すなわち、図２２のドット１がコーナードット候補検出器２１０１で検出されたら、ドット１を図１９における注目ドットＮとして、周囲ドットの検出及び点対称ペア検出を行う。コーナードット判定器２３０２の判定の結果、コーナードットと判定されたら第二コーナーの位置情報を出力する。
【００９８】
同様の処理の結果、順次、第二〜第四の各コーナーの位置を検出したら、図１７の第一コーナー位置推定器１７０８は、第四コーナーの位置から第一コーナーの位置を推定する。そして、図１７の第一コーナー一致判定器１７０９は、第一コーナー位置推定器１７０８により推定された第一コーナーの位置と、最初に第一コーナー検出器１７０１で検出された第一コーナーとが所定の距離にあるかいなかを判定し、今回判定された各コーナーが一つのコード枠を形成するコーナーであるかいなかを判定する。
【００９９】
・第一コーナー一致判定器１７０９
第一コーナー位置推定器１７０８により推定された第一コーナーと、第一コーナー検出器１７０１によりあらかじめ検出された第一コーナーとが所定の距離にあるか否かの判定には、式（１）または式（２）を用いる。
【０１００】
|Ｙ'−Ｙ|
＜ Ｄｔｈ１     …（１）
又は
|Ｙ'x −Ｙx|
＜Ｄｔｈ１   且つ   |Ｙ'y−Ｙy| ＜Ｄｔｈ2 …（２）
ただし、|Ｙ’−Ｙ|は推定された第一コーナーベクトルＹと第一コーナーベクトルＹ'の距離。Ｙ'ｘ、Ｙ'ｙ
はそれぞれベクトルＹ'のｘ成分、ｙ成分であり、Ｙｘ、ＹｙはそれぞれベクトルＹのｘ成分、ｙ成分である。Ｄｔｈ１、ＤＴＨ２は所定の閾値を表す。典型的な値は１０である。従って、第一コーナー位置推定器１７０８により推定された第一コーナーと、第一コーナー検出器１７０１によりあらかじめ検出された第一コーナーとが所定の閾値（距離）よりも近い場合に、第一コーナー一致判定器１７０９は、２次元コードのコード枠が検出されたと判定する。
【０１０１】
以上で、図１１のコード位置検出器１１０１により２次元コードのコード位置が検出された。次に図１１のデータ取得器１１０２の説明を図２４に基づき行う。
【０１０２】
（データ取得器）
図２４（ａ）は、ドットで構成された２次元コード及びコード枠を示す。図２４（ｂ）は２次元コードの各ドットの位置を仮想座量で表す図を示す。図２４（ｃ）は、２次元コードのデータを取得する処理の一例を表すフローチャート図を示す。図２４（ｄ）は、２次元コードのデータを取得する処理の別の例を表すフローチャート図を示す。
【０１０３】
以下、図２４（ｃ）に従って、２次元コードのデータを取得する方法を説明する。図２４（ａ）では、コード枠のコーナーをそれぞれａ０、ｂ０、ｃ０、ｄ０とし、コード枠のうち、コーナーの４点を除いたドットをａ１〜ａ７、ｂ１〜ｂ１１、ｃ１〜ｃ７、ｄ１〜ｄ１１、とする。２次元コードのデータを取得するには、ａ１〜ａ７とｃ１〜ｃ７とを結ぶ垂直線、ｂ１〜ｂ１１とｄ１〜ｄ１１とを結ぶ水平線を引き、垂直線と水平線との交点を検出する。該交点が、２次元コードのデータドットの存在位置となる。
【０１０４】
垂直線と水平線との交点を検出するためのひとつの方法として、射影変換を用いる。図２４（ｂ）は、２次元コードの各ドットの仮想座標を示す。４つのコーナーの位置は既知であるので、これらに対応する座標、ａ０とＡｖ０(０、０)、ｂ０とＢｖ０（８、０）、ｃ０とＣｖ０（８、１２）、ｄ０とＤｖ０（０、１２）は既知である。射影変換について詳しくは後述するが、これらの対応する４点からａ０＝f（Ａｖ０）、
ｂ０＝ｆ（Ｂｖ０）、 ｃ０＝ｆ（Ｃｖ０）、ｄ０＝ｆ（Ｄｖ０）を満たす８元１次連立方程式を作り、これを解くことで各データドットの画像座標が求められる（Ｓ２４０１）。
【０１０５】
f(x)は未知パラメータが８つの関数であるので、連立方程式を解くことにより、図２４（ｂ）の仮想座標から画像座標への変換が可能になる。仮想座標から画像座標への変換が可能になると、仮想座標（１、１）〜（７、１１）から画像座標への射影変換が可能になり、データドットの存在位置を検出することができる（Ｓ２４０２）。しかしながら、データドットの存在位置は理想の位置であるので、必ずしも実際のドットがその位置にあるわけではなく、１画素程度ずれて存在していることもある。したがって、データドットの検出は、射影変換により得られたデータドットの存在位置を中心として３ｘ３画素領域を探索してドットの有無を検出する（Ｓ２４０３）。この領域にドットが存在すれば、その位置のデータは"1"となり、存在しなければ"0"とする。これを２次元コード内の７７個の仮想座量に対して行ってコードデータを取得する。
【０１０６】
２次元コードのデータが取得されたら、図４で説明したデータ配置規則に従ってデータを再構成する（Ｓ２４０４）。この際２次元コードの上下方向の判定は、図４の領域４０８と領域４０９を参照して、領域４０８に存在するデータは全て“１”、領域４０９に存在するデータは全て”0”であるはずとの前提の下、取得したデータとの一致度が高い向きに合わせる。
【０１０７】
データドットの存在位置の検出は、射影変換を行う以外にも方法はある。例えば、図２４（ｄ）のフローチャートに示したように、ａ０-ｂ０間を8等分する点をそれぞれａ１〜ａ７、 ｂ０-ｃ０間を１２等分する点をそれぞれｂ１〜ｂ１１、ｄ０-ｃ０間を8等分する点をそれぞれc1〜c7、ａ０-ｄ０間を１２等分する点をそれぞれｄ１〜ｄ１１とし、各データドットの存在位置は、線分ａｘｃｘと線分ｂｙｄｙ（ただし、ｘ＝１、…、7、ｙ＝１、…、11）との交点から求められる。該交点の座標を中心に３ｘ３画素の領域でドットが存在するかいなかを検出すれば、２次元コードのデータドットが得られる。
【０１０８】
（ペン先座標の算出）
ペンに備えられたカメラで撮影された２次元コードのデータドットが得られたので、次に、ペン先の座標の算出について説明する。
【０１０９】
図２５は、図１１で説明したペン先座標算出器１１１０の機能構成図を示す。ペン先座標算出器１１１０は、図２５に示すとおり、射影パラメータ算出器２５０１とペン先座標変換器２５０２とからなる。まず、射影パラメータ算出器２５０１に、画像上の２次元コードのコーナー座標と、それに対応する紙面上の２次元コードのコーナー座標を入力する。それらから射影パラメータを算出する。射影パラメータの算出方法を、図２６を用いて詳述する。
【０１１０】
図２６は、射影パラメータの算出方法を示す図である。図２６（ａ）は、撮影された画像における２次元コードのコーナー（Ａｓ〜Ｄｓ）とペン型座標入力装置６０７の先端部８０５の座標（Ｐｓ）を示す。ペン型入力装置６０７では画像読取装置８０６と先端部８０５は固定されているため、座標Ｐｓは常に一定である。先端部８０５はペン型座標入力装置６０７の構成により画像読取装置８０６で撮像される画像内にある場合もあれば画像外である場合もありうる。画像外にある場合は、その座標は負の値あるいは画像の座標の最大値を越えることになる。
【０１１１】
図２６（ｂ）は、紙面における２次元コードのコーナー（Ａｒ〜Ｄｒ）とペン型座標入力装置６０７の先端部８０５の座標（Ｐｒ）である。２次元コードのデコードによりＡｒが決定されるのでその隣接コーナーであるＢｒ〜Ｄｒは自動的に決まる。ここで、座標Ａｓ〜Ｄｓ、及び、座標Ａｒ〜Ｄｒが求められと、両者の関係から変換式が求められる。
【０１１２】
【数１】
2005070980.tif 000003
変換係数ｂ１〜ｂ８は未知数であるが、コーナー座標の関係により８つの一次方程式が作られる。この連立方程式を解く事によりｂ１〜ｂ８のパラメータが算出される。このパラメータを用いることで、ペンの先端部８０５の画像座標Ｐｓを紙面上の座標Ｐｒに変換する。
【０１１３】
以上を要約すると、画像上の２次元コードのコーナー座標Ａｓ〜Ｄｓは図１１のコード位置枠検器１１０１により算出され、ペン先座標Ｐｓは固定されているので既知であり、紙面上の２次元コードのコーナー座標Ａｒは２次元コードのデコードにより求められ、Ｂｒ〜ＤｒはＡｒに隣接する座標であるので算出できる。Ｐｒは数式１により求められる。
【０１１４】
〔上記実施例の変形例〕
次に、２次元コード読取装置の変形例について説明する。図２７は、本変形例における２次元コード読み取り装置の機能構成図を示す。図２７の２次元コード読み取り装置は、２つの誤り訂正器（第１誤り訂正器１１０７ａ、第２誤り訂正器１１０７ｂ）がある点と、それに伴い選択器１１１１がある点で図１１と異なる。なお、図１１と同一構成部分には同一符号を付し、その説明は省略する。第１誤り訂正器１１０７ａ及び第２誤り訂正器１１０７ｂの機能は図１１の誤り訂正器１１０７と同一である。
【０１１５】
選択器１１１１の機能を説明する。連続筆記検出器１１０５において連続筆記中であると判断された場合は、常に第２誤り訂正器１１０７ｂの出力を選択し、図１１の２次元コード読み取り装置と同一の動作を行う。筆記検出器の出力が筆記中であり、かつ連続筆記中でない場合、すなわち筆記の開始時には、選択器１１１１は次のような動作を行う。第1誤り訂正器１１０７ａが出力する誤り訂正判定情報が誤り訂正成功の場合には第１誤り訂正器の出力が選択される。第１誤り訂正器が出力する誤り訂正判定情報が誤り訂正失敗の場合には、第２誤り訂正器の出力が選択される。
【０１１６】
このような処理を行うと、新しい加筆が行われる際に、同一の文書への加筆ならば装置としての誤り訂正率が向上するので図１１の装置より有利である。
【０１１７】
〔ソフトウェアによる２次元コード読み取り〕
これまで説明してきた図６の２次元コードの読み取り装置８８４はハードウェアでコードの読み取りを行っているが、ソフトウェアで行ってもよい。この場合は２次元コード読み取り方法を実現するプログラムがマイコン８０８のＲＯＭ８８２に格納されており、そのプログラムの命令が順次ＣＰＵにロードされて命令の実行が行われ、２次元コードの読み取り処理がなされる。
【０１１８】
図２８は、ソフトウェアによる処理手順を示すフローチャート図である。図２８（ａ）は、２次元コードのデコードの処理を、図２８（ｂ）は誤り訂正手順の処理を示す図である。まず、画像入力を行った後、Ｓ２８０１において２次元コードの位置を検出する。
【０１１９】
Ｓ２８０１のコード位置検出ステップの詳細を図２９のコード位置検出処理のフローチャート図に示す。図２９のフローチャート図は、画像からドットを検出するドット検出ステップ（Ｓ２９０１）と検出したドットからコード枠を検出するコード枠検出ステップ（Ｓ２９０２）とからなる。ドット検出ステップ（Ｓ２９０１）におけるドットの検出方法は、図１５において説明したドット検出の方式と同じである。また、コード枠検出ステップ（Ｓ２９０２）の処理を示すフローチャート図を図３０に示す。図３０のフローチャート図の各ステップは、図１７に示したコード枠検出器の各ブロックと対応した機能を実現するように構成されている。すなわち、Ｓ３００１は第一コーナー検出器１７０１の機能を実現し、Ｓ３００２は第二コーナー位置推定器１７０２の機能を実現し、Ｓ３００３は第二コーナー検出器１７０３の機能を実現し、Ｓ３００４は第三コーナー位置推定器１７０４の機能を実現し、Ｓ３００５は第三コーナー検出器１７０５の機能を実現し、Ｓ３００６は第四コーナー位置推定器１７０６の機能を実現し、Ｓ３００７は第四コーナー検出器１７０７の機能を実現し、Ｓ３００８は第一コーナー位置推定器１７０８の機能を実現し、Ｓ３００９は第一コーナー一致判定器１７０９の機能を実現する。
【０１２０】
図２９及び３０の処理が終了し図２８のコード位置の検出（Ｓ２８０１）が終了すると、データ取得ステップ（Ｓ２８０２）において、２次元コードの白黒に応じて０または１のデータを取得し、取得したデータの並べ替えを行う。データ取得ステップ（Ｓ２８０２）は図２４（ｃ）又は（ｄ）に示したフローチャート図に従って実行される。したがって処理内容は図１１又は２７のデータ取得器１１０２の機能が実現するものと同等である。
【０１２１】
続いて、Ｓ２８０２で取得したデータの誤り訂正を行う（Ｓ２８０３）。まず、取得したデータが連続筆記中（図５のペン型座標入力装置先端部８０５が常に紙面に押し付けられている）であるかどうかを判定し（Ｓ２８１１）、連続取得中ならば（Ｓ２８１１のはい）、データ置換ステップ（Ｓ２８１２）において既知情報（文書ＩＤ）でデータ置換を行う。データ置換を行った後、誤り訂正ステップ（Ｓ２８１３）で誤り訂正を行う。誤り訂正が成功した場合には（Ｓ２８１４のはい）、文書ＩＤを保存するステップ（既知情報保存ステップＳ２８１５）においてデコードされた既知情報（文書ＩＤ）を保存する。
【０１２２】
続いて、データ復元ステップ（Ｓ２８０５）において元のデータ（座標情報）を復元し、ペン先座標算出ステップ（Ｓ２８０６）において、ペン型座標入力装置６０７の先端部８０５の紙面上の座標を求める。
【０１２３】
Ｓ２８１１において、取得したデータが連続筆記中でなかった（初めての加筆である）場合（Ｓ２８１１のいいえ）、データの置換は行わず、誤り訂正ステップ（Ｓ２８１３）で誤り訂正を行う。誤り訂正が成功した場合は（Ｓ２８１４のはい）、文書ＩＤを保存するステップ（既知情報保存ステップＳ２８１５）で文書ＩＤ（既知情報）を保存し、データ復元ステップ（Ｓ２８０５）で元のデータ（座標情報）を復元し、ペン先座標算出ステップ（２８０６）でペン型座標入力装置６０７の先端部８０５の紙面上の座標を求める。
【０１２４】
以上の処理により、コード位置の検出（Ｓ２８０１）、データ取得（Ｓ２８０２）、誤り訂正（Ｓ２８０３）、座標・文書ＩＤ復元（Ｓ２８０５）、ペン先座標算出（Ｓ２８０６）の各ステップは、図１１のコード位置検出器、データ取得器、誤り訂正器、データ復号器、ペン先座標算出器の各機能をソフトウェアで実現した。
【０１２５】
〔ソフトウェアによる２次元コード読み取りの他の例〕
ソフトウェアによる２次元コード読み取りの他の例として図３１にそのフローチャート図を示す。図３１において、図２８と同一ステップには同一の番号を付し、その説明は省略する。図２８のフローチャート図と異なるのは、筆記中であって連続検出中でない場合は（Ｓ３１０１のはい且つＳ２８１１のいいえ）、筆記開始時に文書ＩＤを置き換えずに誤り訂正を行う（Ｓ２８１３ｂ）点である。誤り訂正ができなかった場合には（Ｓ２８１４ｂのいいえ）、文書ＩＤ部分の置き換えを行って誤り訂正を行う処理を行う（Ｓ２８１２、Ｓ２８１３）。この処理により、同一文書への加筆時には、図３１の方法を使用することで図２８の方法よりも誤り訂正率が向上する。
【０１２６】
〔加筆した情報の取得、原文書への重畳方法〕
これまでで、２次元コードを読むことにより加筆座標を取得する装置・システム、方法、ソフトウェアについて述べたので、その加筆した情報を取得し、原文書に重畳する装置等について述べる。使用するシステムは図５に記載したものを使用し、その制御の流れを図３２のフローチャート図に示す。
【０１２７】
所定の文書が２次元コード付きで印刷されているとする。ペン型座標入力装置６０７で、その文書に加筆する。すると、前述したように、文書上の２次元コードが読み取られ、文書ＩＤと座標情報がペン型座標入力装置６０７で取得される（Ｓ３２０１）。加筆とともにリアルタイムで読み取られた文書ＩＤや座標情報が図５の情報処理装置６０４へ転送される（Ｓ３２０２）。情報処理装置６０４は文書ＩＤと座標情報を受け取ると、その文書ＩＤを文書管理データベース６０６を管理する情報処理装置６０９へ転送する。情報処理装置６０９は受信した文書ＩＤを元に、文書管理データベース６０６から現在加筆されている文書（のページ）を特定する（Ｓ３２０３）。
【０１２８】
図３３は、文書管理データベース６０６の登録項目の一例を示す。図３３のデータベースは、識別番号（ＩＤ）、文書名、パス名、作成者、更新日時、ページ、総ページ数、座標列ファイル、の各項目を有する。一例として、識別番号により特定された文書は、図３３の識別番号（ＩＤ）１２３４５６の「ＰＡＴＥＮＴ．ＤＯＣ」のページ１であるとする。この文書情報は、ペン型座標入力装置６０７へ送信され、ペン型入力装置６０７のＬＣＤ表示装置８０９には受信した文書情報が表示される。
【０１２９】
ファイル名、ページ番号などの電子文書（ファイル）の実体が特定できたので、情報処理装置６０４は「ＰＡＴＥＮＴ．ＤＯＣ」をそれが関連付けられているアプリケーション（例えばワープロソフト）で開き、情報処理装置６０４に接続された不図示のディスプレイに表示し、編集状態とする（Ｓ３２０４）。編集状態とされた文書「ＰＡＴＥＮＴ．ＤＯＣ」に、ペン型座標入力装置６０７から次々送信されてくる座標情報が描画されることになる（Ｓ３２０５〜Ｓ３２０８）。描画する方法としては、文書のウィンドウに新たな描画オブジェクトを開き、受信した座標を線でつないで描画することで実現することができる。加筆が終了した時点で（Ｓ３２０９のはい）、ペン型座標入力装置６０７は加筆終了の信号を情報処理装置６０４へ送信し、加筆終了の信号を受け取った情報処理装置６０４は、ウィンドウへの描画を終了し、加筆情報、該当文書の更新・保存を行う（Ｓ３２１０）。このようにして文書「ＰＡＴＥＮＴ．ＤＯＣ」に一つのオブジェクトが加えられる。
【０１３０】
以上説明した実施例では、加筆した情報をリアルタイムでコンピュータのディスプレイ上に表示し、実際に加筆した情報が正しく処理されているかどうかがすぐに確認できるので、後から加筆した内容の訂正が必要になることが少なく、ユーザにとって大きなメリットになる。
【０１３１】
また、本実施例における二次元コードのコード枠の検出方法は，コーナードットを検出しそれらコーナードットを直線で結ぶこと行うので、文書の文字、罫線や、汚れ、画像の質が悪い等でコード枠上のドットの検出が困難であっても、すぐにコード枠が検出できなくなることがない。そのため、二次元コードの検出（座標データなどの取得）の確率が増す。
【０１３２】
また、情報処理装置６０４では受信した座標情報を数列テキストとして同時に、図３３の座標列ファイルに別ファイルとして保存する。文書が巨大な場合など、ユーザが後にアプリケーションを開いて加筆されたデータを確認したい場合や素早く確認することが不可能な場合に、加筆されたデータのみを表示・確認させることができるので有効である。
【図面の簡単な説明】
【０１３３】
【図１】本実施例における２次元コードの一例である。
【図２】本実施例における２次元コードを構成するドットおよび２次元コードの大きさを示す図である。
【図３】１つの２次元コードを示す図である。
【図４】２次元コードのデータ配列を示す図である。
【図５】文書管理システムの概略構成図である。
【図６】マイコンの構成図の一例である。
【図７】２次元コードが重畳された文書を印刷する処理を示すフローチャート図である。
【図８】データの符号化及び誤り訂正符号付加の処理を示す図である。
【図９】作業者が２次元コードが重畳された文書を印刷する流れを示すフローチャート図である。
【図１０】２次元コードが重畳され印刷された文書の一例である。
【図１１】２次元コード読み取り装置の機能構成図である。
【図１２】２次元コードが撮影された画像の一例である。
【図１３】文書ＩＤに基づきデータが置換される例を示す図である。
【図１４】コード位置検出器の機能構成図の一例である。
【図１５】ドット検出の方法を説明するための図である。
【図１６】Ｔｈ（閾値）と座標取得率の関係を示す図である。
【図１７】コード枠検出器の機能構成図の一例である。
【図１８】コード枠検出器がコーナーを検出する手順を示す図である。
【図１９】第一コーナーの検出方法を説明するための図である。
【図２０】第二コーナーの位置を推定する方法を説明するための図である。
【図２１】第二コーナー検出器の機能構成図の一例である。
【図２２】コーナードットを有する画素を中心としたSlen × Slen画素の大きさの領域を示す図である。
【図２３】コーナー判定器の機能構成図の一例である。
【図２４】データ取得器のデータ取得の方法を説明するための図である。
【図２５】ペン先座標算出器の機能構成図の一例である。
【図２６】射影パラメータの算出方法を説明するための図である。
【図２７】変形例における２次元コード読み取り装置の機能構成図の一例である。
【図２８】ソフトウェアによる２次元コード読み取りの処理を示すフローチャート図である。
【図２９】コード位置検出処理のフローチャート図である。
【図３０】コード枠検出ステップの処理を示すフローチャート図である。
【図３１】ソフトウェアによる２次元コード読み取りの他の処理を示すフローチャート図である。
【図３２】文書加筆時の文書及び文書管理データベースの更新処理を示すフローチャート図である。
【図３３】文書管理データベースの登録項目の一例を示す図である。
【符号の説明】
【０１３４】
２ａ        ２次元コード
１５        コーナードット
６０４      情報処理装置
６０６      文書管理データベース
６０７      ペン型座標入力装置
８０６      画像読み取り装置
８０８      マイコン
８８４      ２次元コード読み取り装置
１１０１    コード位置検出器
１１０２    データ取得器
１１０３    圧力センサ
１１０４    筆記検出器
１１０５    連続筆記検出器
１１０６    データ置換器
１１０７    誤り訂正器
１１０８    既知情報メモリ
１１０９    データ複合器
１１１０    ペン先座標検出器
１１１１    選択器
１４０１    ドット検出器
１４０２    コード枠検出器
１７０１    第一コーナー検出器
１７０２    第二コーナー位置推定器
１７０９    第一コーナー一致判定器
１９０１    周囲ドット検出器
１９０２    点対称ペア検出器
２１０１    コーナードット候補検出器
２１０２    コーナー判定器
２３０１    ＦＩＦＯ記憶装置
２３０２    コーナードット判定器
２５０１    射影パラメータ算出器
２５０２    ペン先座標変換器
【図１】
2005070980.tif 000004
【図２】
2005070980.tif 000005
【図３】
2005070980.tif 000006
【図４】
2005070980.tif 000007
【図５】
2005070980.tif 000008
【図６】
2005070980.tif 000009
【図７】
2005070980.tif 000010
【図８】
2005070980.tif 000011
【図９】
2005070980.tif 000012
【図１０】
2005070980.tif 000013
【図１１】
2005070980.tif 000014
【図１２】
2005070980.tif 000015
【図１３】
2005070980.tif 000016
【図１４】
2005070980.tif 000017
【図１５】
2005070980.tif 000018
【図１６】
2005070980.tif 000019
【図１７】
2005070980.tif 000020
【図１８】
2005070980.tif 000021
【図１９】
2005070980.tif 000022
【図２０】
2005070980.tif 000023
【図２１】
2005070980.tif 000024
【図２２】
2005070980.tif 000025
【図２３】
2005070980.tif 000026
【図２４】
2005070980.tif 000027
【図２５】
2005070980.tif 000028
【図２６】
2005070980.tif 000029
【図２７】
2005070980.tif 000030
【図２８】
2005070980.tif 000031
【図２９】
2005070980.tif 000032
【図３０】
2005070980.tif 000033
【図３１】
2005070980.tif 000034
【図３２】
2005070980.tif 000035
【図３３】
2005070980.tif 000036