JP4102742B2 - 光学的情報読取装置及び画像データ解析方法 - Google Patents

光学的情報読取装置及び画像データ解析方法 Download PDF

Info

Publication number
JP4102742B2
JP4102742B2 JP2003394500A JP2003394500A JP4102742B2 JP 4102742 B2 JP4102742 B2 JP 4102742B2 JP 2003394500 A JP2003394500 A JP 2003394500A JP 2003394500 A JP2003394500 A JP 2003394500A JP 4102742 B2 JP4102742 B2 JP 4102742B2
Authority
JP
Japan
Prior art keywords
image
point
points
positions
image data
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.)
Expired - Fee Related
Application number
JP2003394500A
Other languages
English (en)
Other versions
JP2005157677A (ja
Inventor
詩平 劉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Optoelectronics Co Ltd
Original Assignee
Optoelectronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Optoelectronics Co Ltd filed Critical Optoelectronics Co Ltd
Priority to JP2003394500A priority Critical patent/JP4102742B2/ja
Publication of JP2005157677A publication Critical patent/JP2005157677A/ja
Application granted granted Critical
Publication of JP4102742B2 publication Critical patent/JP4102742B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Description

この発明は、読み取り対象の情報の画像を撮像し、画像データとして取り込んでその画像データを解析する光学的情報読取装置及び、このような画像データをコンピュータによって解析する画像データ解析方法に関する。
従来から、流通、物流、郵便、イベント会場管理や医療・化学検査などの分野において、扱う物や人を識別する手段として、バーコードが広く使用されている。また、近年はバーコードよりも多くの情報を記録できる二次元コードも併用されるようになってきている。
このような二次元コードのほとんどは、2000文字以上の情報を記録することができ、バーコードの容量が20文字程度であるのに比べて非常に多くの情報を記録できる。また、バーコードは基本的に英数字のみを扱うのに対し、二次元コードでは漢字やカナの使用も可能である。さらに、二次元コードは高密度印刷が可能であり、一般的な二次元コードは、同じ面積領域であってもバーコードの20〜100倍の記録密度を持っている。
ここで、二次元コードには、大別してスタック式のものとマトリクス式のものがある。このうちスタック式は、バーコードを縮小し、縦に複数段積み重ねた形態をしており、水平方向に長い長方形をしているものが多い。そして、スタック式コードの代表的なものとしてはPDF417が挙げられる。
このPDF417は、図22に示すように、コードを画定するために、左右に開始/停止(スタート/ストップ)パターンSta/Stoと呼ばれる特定パターンである垂直方向の黒及び白バーを有し、上記開始/停止パターンのそれぞれ右/左隣りに、具体的な内容データの始まり及び終わりを示す左/右行標識(左/右ローインディケータ)Li/Riを有する。但し、スタート/ストップパターンを除いたコードは、列と行から成り、コードワードと呼ばれるブロックによって構成されるデータセルである。スタート/ストップパターンを除いたコードの大きさは、上記コードワード単位で、列は最小1列、最大30列(スタートからストップパターンの方向)、行は最小3行、最大90行(スタートおよびストップパターンに沿う方向)と規定されている。
マトリックス式は、概ね正方形のコード記号面を規則的に区切った表示領域に、黒と白のセルによってパターンを表示する。そして、一例として、図23に示されるような、マキシコード(Maxi Code)が挙げられる。
このマキシコードは、アメリカ合衆国の宅配業者であるUPS社が、1987年小荷物の管理と仕分け追跡のために開発した二次元コードである。そして現在でも、宅配便の集荷センターにおける行き先の仕分けや、航空機、鉄道あるいは船舶の積み荷における仕分けの管理に多く利用されている。
マキシコードは、マトリックス式コードの中でも複雑な形態をしているが、真中の3重の同心円ファインダパターン(Finder Pattern)FPと、外側の884個の6角形のモジュールとから構成される。
そして、ファインダパターンFPは、モジュール90個分の面積を持ち、コード記号の中心位置の検出に使用される。
また、上記の884個のモジュールのうち、18個モジュールが方向決めと傾きの検出に使用される。このモジュールは、方向モジュールと呼ばれ、それぞれ3つのモジュールからなるモジュール群が、上記のファインダパターンFPを中心として、その周辺に60度ごとに6つ配置されている。そして、この方向パターンのモジュール群によって、コードの図形がいかなる方向を向いていようとも、その方向を検出して解析を行うことができる。そして、その方向パターンとしては、白白白のモジュールで構成される右上のモジュール群P1を起点として、反時計回りに、黒黒黒(P2)、黒白黒(P3)、白黒黒(P4)、黒黒白(P5)、黒白黒(P6)の6つのモジュール群が配置される。
あとの866個のモジュールのうち、2個は何の情報も持っておらず、864個が864ビットの情報を搭載している。ファインダパターンに近い120個のモジュールが荷物ID番号や荷主コード、行き先コードサービス区分などのプライマリメッセージといった基本情報をエンコードし、残りの744個のモジュールが注文番号や納品番号などのセカンダリーメッセージと呼ばれる顧客情報をエンコードする。コード記号全体のサイズは33行×30モジュール、およそ1インチ×1インチ(25.4mm×25.4mm)である。
このように複雑なコード記号なので、読み取り・デコードの方法も多く提案されており、最速、最良の方法が模索されている。このような技術としては、例えば特許文献1や特許文献2に記載されたものが挙げられる。
特開平10−21322号公報 特開2002−49889号公報
ところで、二次元コードを読み取る二次元コードスキャナには、コード記号の画像をCMOSイメージセンサやCCDイメージセンサ等の固体撮像素子で撮像して解析することによってデコードするものが多い。しかし、このような撮像素子においては、コード記号貼付面とスキャナの撮像部とが平行でないと、正方形あるいは長方形のコード記号が、傾きの方向に応じて、例えば図24に示したように、台形あるいは変形四辺形として撮像されてしまう。従って、撮像素子のイメージエリアにおける表示が歪んでしまい、スタート/ストップパターン、ファインダパターン、方向パターン、データセル等の位置関係が、本来のコード記号上ものとずれてしまい、結果的に正確なデコードができなくなってしまう。
このような場合には、表示の歪みを考慮して、画像あるいは解析方式を修正する必要がある。ここで、表示の歪みからコード記号の傾き量を求めるためには、例えば特許文献3に記載されているような技術を利用し、所定の基準点(ファインダパターンや方向パターン等)の画像中での位置関係から、コード記号の傾き角度を計算することが考えられる。そして、これがわかれば、傾き角度をもとに画像を修正することができる。また、非特許文献1に記載のようなアフィン変換を利用することも考えられる。
しかしながら、このような方式では、三角関数のような複雑な演算を幾ステップにも亘って行う必要があるため、計算量が多くなり、計算に時間がかかるので、デコードを高速に行うことが困難であるという問題があった。
岡崎彰夫著「ビギナーブックス15 はじめての画像処理技術」,初版,株式会社工業調査会,2000年10月,p.65−67 特開平8−292128号公報
このような問題の解決を試みた技術としては、例えば特許文献4に記載の2次元コード読み取り方法が挙げられる。この方法においては、「傾き」という量を演算に利用することにより、コード記号を撮像して得た画像中に設定する検査線を、三角関数を用いた角度演算を行わずに設定するようにしている。この方式では、三角関数のような演算量の大きな演算を行わないので、デコードの高速化を図ることができると考えられる。
しかしながら、この方法では、検査線の位置を決めるために、セル配列の行や列の位置を示すタイミングセルを構成する各セルの画像中の位置を正確に解析する必要がある。従って、このようなタイミングセルのないマキシコードの解析には適用できないという問題があった。
特開2000−172777号公報
この発明は、このような問題を解決し、読み取り対象の情報を撮像した画像を解析する場合において、読み取り対象が傾いた状態で撮像された場合でも、少ない計算量で正確に画像を解析できるようにすることを目的とし、特に、マキシコードの解析を正確かつ高速に行うことができるようにすることを目的とする。
上記の目的を達成するため、この発明は、正六角形の6頂点及びその中心の位置に配置された基準点を有する読取対象の情報の画像を撮像し、画像データとして取り込む画像データ取込手段と、その手段が取り込んだ画像データを解析する解析手段とを有する光学的情報読取装置において、上記解析手段に、上記各基準点を格子点とし、撮像した画像中での各格子点の位置を決定する第1の位置決定手段と、上記読取対象中において、既に上記画像中の位置が決定された格子点の中から選択した3点を3つの頂点とする平行四辺形の残り1つの頂点に当たる点の、上記画像中の位置を、別の格子点の位置として順次決定する第2の位置決定手段と、上記第1及び第2の位置決定手段が位置を決定した格子点によって囲まれる最も細かい格子の内側では、上記撮像が上記読取対象に平行な面で行われたものとして上記画像データの解析を行う手段とを設けたものである。
このような光学的情報読取装置において、上記第2の位置決定手段を、上記読取対象中における上記正六角形の対角線のうちその中心を通る線の両端の、上記画像中における位置をa,b、上記正六角形の中心の上記画像中における位置をmとし、aと対応する点の位置定数K
=(|bm|−|am|)/|ab|…式(A)
(ただし、|ab|は線分abの長さを表す)
と定めるものとして、上記正六角形の6頂点の位置に配置された各基準点の位置定数を求める手段と、上記選択した3点のうち、平行四辺形の対角線にその当する2点の上記画像中における位置をe,g、残り1点の上記画像中における位置をfとし、それら3点の位置定数をそれぞれK,K,Kとして、上記読取対象中において上記残り1つの頂点に当たる点Hの位置定数KをK=K−K+Kと定め、点Hの上記画像中における位置hを、線分egを|gi|/|ei|=(1+K)/(1+K)なる割合で分割する点iについて、線分fiを|hi|/|fi|=(1+K)/(1+K)なる割合で延長した位置に定める手段とを設け、これらの各手段を用いて上記格子点の位置を順次決定する手段とするとよい。
さらに、上記第2の位置決定手段に、上記正六角形の隣接する2頂点の位置に配置された基準点について上記式(A)に従って定めた画像中の位置を利用して、その正六角形の他の4つの頂点の位置に配置された基準点の画像中の位置を求める第3の位置決定手段を設け、上記格子点の位置を順次決定するに際し、上記各基準点の画像中の位置として、上記第3の位置決定手段によって、位置定数を決めようとする基準点を含まない4組の基準点の画像中の位置を利用してそれぞれ求めた4つの画像中の位置と、上記式(A)に従って定めた1つの画像中の位置との平均の位置を用いるようにするとよい。
さらに、上記のいずれかの光学的情報読取装置において、上記読取対象が、所与の情報を示す2色のパターンが規則的に配置されたコードであり、上記解析手段を、上記画像データを解析してそのコードが示す情報を取得する手段とするとよい。
さらにまた、上記解析手段に、上記画像中において、上記最も細かい格子上に等間隔に所定個数の上記パターンが並んでいると仮定し、各パターンの中心位置を中心として半径が上記パターンよりも若干小さい円の円周上に位置する複数の点における画像データをサンプリングするサンプリング手段と、その手段がサンプリングするパターン1つ分の画像データの値の組み合わせと、上記格子点の位置の補正方向との対応関係を記憶する手段と、上記サンプリング手段がサンプリングした画像データの組み合わせと上記対応関係とから、上記格子点の位置の補正方向を決定し、上記画像中における格子点の位置をその方向に補正する手段とを設けるとよい。
また、この発明の画像データ解析方法は、正六角形の6頂点及びその中心の位置に配置された基準点を有する読取対象の情報の画像を撮像して得た画像データをコンピュータによって解析する画像データ解析方法において、上記各基準点を格子点とし、撮像した画像中での各格子点の位置を決定する第1の位置決定手順と、上記読取対象中において、既に上記画像中の位置が決定された格子点の中から選択した3点を3つの頂点とする平行四辺形の残り1つの頂点に当たる点の、上記画像中の位置を、別の格子点の位置として順次決定する第2の位置決定手順とを上記コンピュータに実行させ、上記第1及び第2の位置決定手順で位置を決定した格子点によって囲まれる最も細かい格子の内側では、上記撮像が上記読取対象に平行な面で行われたものとして上記コンピュータに上記画像データの解析を行わせるようにしたものである。
このような画像データ解析方法において、上記第2の位置決定手順において、上記読取対象中における上記正六角形の対角線のうちその中心を通る線の両端の、上記画像中における位置をa,b、上記正六角形の中心の上記画像中における位置をmとし、aと対応する点の位置定数K
=(|bm|−|am|)/|ab|…式(A)
(ただし、|ab|は線分abの長さを表す)
と定めるものとして、上記正六角形の6頂点の位置に配置された各基準点の位置定数を求める手順と、上記選択した3点のうち、平行四辺形の対角線にその当する2点の上記画像中における位置をe,g、残り1点の上記画像中における位置をfとし、それら3点の位置定数をそれぞれK,K,Kとして、上記読取対象中において上記残り1つの頂点に当たる点Hの位置定数KをK=K−K+Kと定め、点Hの上記画像中における位置hを、線分egを|gi|/|ei|=(1+K)/(1+K)なる割合で分割する点iについて、線分fiを|hi|/|fi|=(1+K)/(1+K)なる割合で延長した位置に定める手順とを上記コンピュータに実行させ、これらの各手順の処理によって上記格子点の位置を順次決定させるようにするとよい。
さらに、上記第2の位置決定手順において、上記正六角形の隣接する2頂点の位置に配置された基準点について上記式(A)に従って定めた画像中の位置を利用して、その正六角形の他の4つの頂点の位置に配置された基準点の画像中の位置を求める第3の位置決定手順を上記コンピュータに実行させ、上記格子点の位置を順次決定するに際し、上記各基準点の画像中の位置として、上記第3の位置決定手順において、位置定数を決めようとする基準点を含まない4組の基準点の画像中の位置を利用してそれぞれ求めた4つの画像中の位置と、上記式(A)に従って定めた1つの画像中の位置との平均の位置を用いるようにするとよい。
さらに、上記のいずれかの画像データ解析方法において、上記読取対象が、所与の情報を示す2色のパターンが規則的に配置されたコードであり、上記解析を、上記画像データを解析してそのコードが示す情報を取得する処理とするとよい。
さらにまた、上記画像中において、上記最も細かい格子上に等間隔に所定個数の上記パターンが並んでいると仮定し、各パターンの中心位置を中心して半径が上記パターンよりも若干小さい円の円周上に位置する複数の点における画像データをサンプリングするサンプリング手順と、その手順においてサンプリングするパターン1つ分の画像データの値の組み合わせと、上記格子点の位置の補正方向との対応関係を記憶しておき、上記サンプリング手順でサンプリングした画像データの組み合わせとその対応関係とから、上記格子点の位置の補正方向を決定し、上記画像中における格子点の位置をその方向に補正する手順とを上記コンピュータに実行させるようにするとよい。
以上のようなこの発明の光学的情報読取装置及び画像データ解析方法によれば、読み取り対象の情報を撮像した画像を解析する場合において、読み取り対象が傾いた状態で撮像された場合でも、少ない計算量で正確に画像を解析できるようにすることができる。特に、マキシコードの解析を正確かつ高速に行うことができるようにすることができる。
以下、この発明を実施するための最良の形態を図面を参照して説明する。
〔第1の実施形態:図1乃至図11〕
まず、この発明の光学的情報読取装置の第1の実施形態であるコードスキャナ(以下「スキャナ」という)について説明するが、そのハードウェア構成について図1及び図2を用いて説明する。図1はそのスキャナの構成を示すブロック図、図2は図1に示したCMOSイメージセンサの構成をより詳細に示すブロック図である。
このスキャナ1は、ニ次元コードを読み取ることができ、設定を変更すればバーコードも読み取ることができるスキャナであり、図1に示すように、光学ヘッド10及びデコーダ30を備え、ホストコンピュータ2に接続されている。この接続は無線であると有線であるとを問わず、スキャナ1によってコード記号を読み取ってデコードした情報が、ホストコンピュータ2に送信され、蓄積及びデータ処理されるものである。
そして、スキャナ1の光学ヘッド10は、レンズ11,CMOSイメージセンサ(以下「CMOSセンサ」と呼ぶ)12,ガイド用発光ダイオード(LED)13,照明用LED14を備えている。レンズ11は、読み取り対象の情報を含むコード記号面3からの反射光をCOMSセンサ12上に結像させるためのものであり、CMOSセンサ12はその画像を設定されたゲイン値とシャッタ速度で画像データとして取り込む画像データ取込手段である。また、ガイド用LED13は読み取り対象のコード記号の範囲を示すガイド光を照射するためのLEDであり、照明用LED14はコード記号自体を照明する照明手段である。
このうちCMOSイメージセンサ12は、図2に示すように、イメージエリア21,CDS(二重相関サンプリング)回路22,AGC(自動ゲイン制御)回路23,A/D変換回路24,タイミングジェネレータ25,コマンド・デコーダ回路26,基準電圧回路27を備えている。
イメージエリア21は、多数のフォトダイオードが配列された受光部であり、CMOSセンサ12で取り込むべき画像はこの部分に結像される。そして、その画像のデータはフォトダイオードに電荷として蓄積され、増幅トランジスタを介して電圧信号として取り出される。CDS回路22はこの信号のノイズを低減させるためのサンプリング処理を行う回路であり、AGC回路23はそのサンプリング後の信号がA/D変換回路24で適正に処理されるよう、基準電圧回路27からの基準電圧によってゲイン調整する回路である。画像取り込みの際に必要な演算の多くはここで行われる。
A/D変換回路24はこのゲイン調整後の信号をA/D変換し、後段のデコーダ30のFPGA(Field Programmable Gate Array)32に送信する回路である。そしてまた、その信号を制御信号として基準電圧器を介してAGC回路23に帰還させる。
コマンド・デコーダ回路26は、CPU31からの制御コマンドをデコードし、これに従って各部への制御信号を発する回路である。
タイミングジェネレータ25は、マスタークロックMCKから、データ読み出しタイミングを制御するタイミング信号HD,VD,DATACLKを生成し、また、フォトダイオードへの電荷蓄積期間であるシャッタ速度も制御する回路である。
基準電圧回路27は、コマンド・デコーダ回路26からの制御信号に従って基準電圧を発生させることにより、AGC回路23におけるゲインのレベルを調整する。
なお、CMOSイメージセンサ12における動作、例えばイメージエリア21におけるデータ取り込みモードや、出力信号の形態、信号出力のタイミング、AGC回路23を制御するためのコマンド等は、図示しないインタフェースを介して、ホストコンピュータや操作子等により、外部から入力することも可能である。このようなコマンドも、コマンド・デコーダ回路26によってデコードし、タイミングジェネレータ25,基準電圧回路27,AGC回路23等の必要な回路に制御信号を出力するようにするとよい。
また、デコーダ30は、CPU31,FPGA32,RAM33,通信I/F34を備えており、CPU31,FPGA32,RAM33によってマイクロコンピュータを構成している。
そして、CPU31は、このスキャナ1全体を統括制御する制御手段であり、FPGA32や、CMOSセンサ12の各部の制御も行う。
FPGA32は、CMOSセンサ12によって読み取った画像データに対し、二値化処理,ラプラシアンエッジ強調等の種々の画像処理を行うユニットである。なお、これらの処理を行うユニットとして、FPGA32に代えてASIC(特定用途向け集積回路)やゲートアレイを設けてもよい。また、ソフトウェアを用いて同様の処理を行ってもよい。
RAM33は、FPGA32による処理後の画像データを記憶したり、CPU31のワークメモリとして用いたり、その他このスキャナ1の動作に必要なデータを記憶したりする記憶手段である。なお、RAM33に記憶した画像データの解析及びデコード処理は、CPU31が行う。この場合において、CPU31が解析手段として機能する。また、RAM33の一部を不揮発性記憶手段で構成し、設定データ等を記憶させるようにするとよい。
通信インタフェース(I/F)34は、スキャナ1をホストコンピュータ2と接続するためのインタフェースであり、CPU31はこの通信I/F34を介してデコード処理後のデータをホストコンピュータに送信することができる。また、CPU31が制御処理やデコード処理を行うために必要なプログラムは、デコーダ30側に記憶手段を設けて記憶させるようにしてもよいが、この通信I/F34を介してホストコンピュータ2から受信するようにしてもよい。
このようなスキャナ1によってコードを読み込む際には、外部光あるいは照明用LED14による照明光によるコード記号面3からの反射光をレンズ11によってCMOSセンサ12のイメージエリア21上に結像させ、読み取り対象の情報の画像を撮像する。具体的には、その画像を画素毎にフォトダイオードによって光電変換して増幅トランジスタを介して電圧信号として取り出す。そして、その信号に対してCDS回路22によってCDSを行い、AGC回路23によってゲイン調整を施し、A/D変換回路24によってデジタル画像データに変換する。
このスキャナの特徴は、撮像時に読み取り対象のコード記号面3がCMOSセンサ12のイメージエリア21と平行でなく、このためコード記号が歪んで撮像された場合でも、この歪みを考慮したデコード処理を行うことにより、コード記号面3の二次元コードを正確にデコードできるようにした点である。
そこで、次にこの歪みを補正するための処理について説明するが、まずこの処理の基礎となる数学的な考え方について説明する。
まず、イメージエリア21に対して傾いた物体面Lに貼付したコード記号ACを撮像する場合のこれらの位置関係を模式的に示すと、図3に示すようになる。ここで、acがイメージエリア21上に形成されるコード記号ACの像である。一般に、コード記号は位置決め用の特徴的なパターンを有するので、このパターンの端部又は中心が、点Aや点Cであると考えるとよい。このようなパターンの画像中の位置は、画像が多少歪んでいる場合でも容易に認識することができる。
また、点BはACの中点であり、点bは点Bの画像中での位置である。また、線分Aaの延長と線分Ccの延長が交わる点をQとすると、点Qは、点a,b,cを含む面(イメージエリア21の結像面に該当)が投影面である透視投影法における光学的中心(視点)であると考えることができる。そこで、点Qを通って線分abに平行な直線を、光学的中心面(視点平面)と呼ぶ。以後、点a,b,c及び点A,B,Cをそれぞれ幾何学上の一点として考える。
ここで、このコードスキャナにおいては、線分abと線分bcの長さから、物体面Lの傾斜の度合いを求め、これを利用して、コード記号中の各点が撮像された画像中でどの位置に該当するかを求めるようにしている。
図3の模式図において、点A,B,Cからそれぞれ光学的中心面に下ろした垂線の足をA′,B′,C′とする。そして、線分AA′の長さを|AA′|で表わすことにすると、点A,B,Cから光学的中心面までの距離は、それぞれ|AA′|,|BB′|,|CC′|となる。そして、図4に示すように、|AA′|−|BB′|=|BB′|−|CC′|=Sとする。
ここで、光学的中心面と平行な適当な平面Mを考え、図5に示すように各部の長さ及び角度を定義するものとする。点Dは、点Qを通り、光学的中心面(及び平面M)に垂直な直線と、物体面Lとの交点である。なお、定義から、Y,Z≠0である。また、r1〜r3も0でないとする。
すると、まず、ΔEHQ∽ΔQA′Aであるから、
|QA′|/|EH|=|AA′|/|QH|なので、式(1)が成り立つ。
Figure 0004102742
従って、式(2)も成り立つ。
Figure 0004102742
同様に、ΔFHQ∽ΔQB′B及びΔGHQ∽ΔQC′Cから、以下の式(3)及び(4)を導くことができる。
Figure 0004102742
そして、R3−R2=R2+R1=Rであるから、次の式(5)が成り立つ。
Figure 0004102742
そして、平面Mは投影面とも平行であるので、
|EF|/|FG|=|ab|/|bc|であるから、式(6)が成り立つ。
Figure 0004102742
このコードスキャナでは、この式を傾き補正の基本式としている。
なお、ここでは点A,B,C,Dの位置関係が図5に示すものである場合について説明したが、点Dが線分BC上に位置したり、点Aや点Cの外側に位置したり、あるいは点A,B,Cのいずれかと重なったり(このときはr1,r2,r3のいずれかが0になる)しても、上記と同様な考え方により、式(6)を導き出すことができる。
ただし、一般には、3点Q,A,Cを通る平面QAC(図5で紙面に相当する)が光学的中心面に垂直であるとは限らない。この場合に、図7に示すように、点A,Cからそれぞれ光学的中心面に下ろした垂線の足A′,C′は、平面QAC上にはないことになる。
ここで、平面QACと光学的中心面との交線をMNとし、点A,点Cから直線MNに下ろした垂線の足を点A″,C″とすると、上述と同様な導出により、
|ab|/|bc|=|CC″|/|AA″| …式(7)
が得られる。
そして、直線MNを含み光学的中心面と垂直な平面Wを考え、平面Wと平面QACのなす角をβとすると、
|AA″|=|AA′|/cosβ,|CC″|=|CC′|/cosβ
であるから、上記式(7)より、
Figure 0004102742
となり、上記式(6)と同様な関係が成り立つ。
以上から、物体面L上の点A及び点Cが撮像可能な位置にあれば、その位置によらず、必ず上記式(6)が成り立つことがわかる。
ところで、図4に示した定義から、式(8)が成り立つ。
Figure 0004102742
ここで、S/|BB′|=Kとおく。このKは、点Bから光学的中心面までの距離、線分ABの長さ、および線分ACと光学的中心面のなす角すなわち物体面Lと投影面のなす角に応じて変化する値であり、このKを「位置定数」と呼ぶことにする。そして、このKを用いると、式(8)は式(9)のように記載できる。
Figure 0004102742
さらに、式(6)から、Kと|ab|,|bc|の関係は式(10)のようになる。
Figure 0004102742
従って、Kの値は次の式(11)によって求めることができる。
Figure 0004102742
ところで、上記のKの値は、点Bから光学的中心面までの距離|BB′|と、点Aから、点Bを通って光学的中心面に平行な平面までの距離Sとを用いて定義した。そこで、この値を、「点Bを参照点とした点Aの位置定数」と呼ぶことにする。すなわち、
(点Xを参照点とした点Yの位置定数)
=(点Yから、点Xを通って光学的中心面に平行な平面(参照面)までの距離)/
(点Xから光学的中心面までの距離) …式(12)
と定義する。ただし、「点Yから参照面までの距離」は、実際の距離に、点Yが参照面に対して光学的中心面と反対側にある場合にプラス、光学的中心面と同じ側に有る場合にマイナスの符号をつけた値とする。
従って、図3及び図4に示した場合において、点Bを参照点とすると、「点Aから参照面までの距離」はS、「点Cから参照面までの距離」は−Sとなる。そして、点Bを参照点とした点Aの位置定数をKと記載するものとすると、K=K,K=0,K=−Kとなる。
ゆえに、式(10)より、KとKの関係は、式(13)のように表わすことができる。
Figure 0004102742
また、図7に示すように、線分ACの延長上の任意の点をDとし、参照面と光学的中心面の距離をVB、点C及び点Dと参照面との距離をそれぞれS,Sと置くと、点C及び点Dの位置定数K及びKは、K=S/VB,K=S/VBのように表わすことができる。
そして、S/|DB|=S/|CB|であるから、以下の式(14)が成り立つ。
Figure 0004102742
なお、点Dを点A側に取った場合には、K=K・|DB|/|AB|となる。
ここまでの説明は、コード記号が線分であるものとして行った。しかし、実際にはコード記号は平面である。そこで、次に、上述したコード記号上の点の位置定数と画像中の位置の関係について、平面の場合に拡張して説明する。ここでは、コード記号面が図8(a)に示すような平行四辺形EFGHである場合について考える。ここでも、点E,F,G,Hは、それぞれコード記号中の位置決め用パターンの端部又は中心であると考えるとよい。そして、これら4点を基準点と呼び、画像中でこれらの点に相当する点の位置e,f,g,hは、画像を解析して容易に定めることができるものとする。
この場合、平行四辺形EFGHの対角線の交点Iは、各対角線EG,FHの中点に当たる。従って、各対角線について図3乃至図5を用いて説明した線分ACについての考え方を適用して、点E,F,G,Hの位置定数K,K,K,Kを、下記式(15),(16)のように定めることができる。この場合、参照点は点Iである。また、点Iの画像中の位置iは、点E,F,G,Hの画像中の位置e,f,g,hがわかるので、線分egと線分fhの交点として容易に導出することができる。この点は、イメージエリア21に結像した画像が図8(b)に示すようないびつな四角形や、(c)に示すような台形や、その他の四角形であっても変わらない。
Figure 0004102742
従って、上記式(11)より、K,K,K,Kは以下の式(17),(18)に示すような値となる。
Figure 0004102742
式(17),(18)に登場する各線分の長さは、各点の画像中の位置がわかれば容易に求めることができるし、その演算には三角関数演算のような複雑な演算は必要としない。従って、点E,F,G,Hの位置定数は、これら各点の画像中の位置のみから、単純な距離計算及び四則演算によって求めることができる。
そして、以上のように求めた点E,F,G,Hの位置定数を用いて、コード記号面中に解析用の格子を形成するための格子点を配置することができる。この場合において、ここでは、上記の基準点(点E,F,G,H)が基準となる格子点であるとし、2つの格子点を結ぶ線分の中点に当たる点の画像中における位置を順次決定していくようにしている。
図9(a)に、ここで例として用いるコード面上の平行四辺形EFGHを、(b)に、そのコード面を撮像した場合の画像中における各点の位置の例を示す。
図9(a)に示すように、コード面上の平行四辺形EFGHの各辺の中点をそれぞれ点J,K,L,Mとすると、これら各点は、図9(b)に示すように、画像中でも対応する各辺上に位置するが、必ずしも中点の位置になるとは限らない。
しかし、点Jは線分EHの中点であるから、上述した式(6)より、次の式(19)の関係が成り立つ。
Figure 0004102742
ここで、点Iを参照点とし、参照平面と光学的中心面との距離をV、点E,Hから参照平面までの距離をそれぞれS,Sとすると、位置定数を定義した式(12)から、次の式(20)が成り立つことがわかる。
Figure 0004102742
そして、K及びKは上記の式(17),(18)から求めることができるので、点Jの画像中での位置は、線分ehを式(20)に示す割合で分割する点jとなることがわかる。同様に、点K,L,Mの画像中での位置も、線分fg,ef,ghをそれぞれ下記数17に示す割合で分割する点k,l,mとなることがわかる。
Figure 0004102742
また、点J,K,L,Mはそれぞれ線分EH,FG,EF,GHの中点であるから、これらの点の位置定数は、下記数18に示すように求めることができる。
Figure 0004102742
以上の計算により、平行四辺形EFGHの各辺の中点の位置定数及び画像中での位置を得ることができる。従って、4つの平行四辺形ELIJ,JIMH,LFKI,IKGMについて各頂点の位置定数及び画像中の位置がわかったことになる。
従って、これらを利用して4つの平行四辺形について同様な計算を行うことにより、さらに各辺の中点の位置定数及び画像中の位置を求めることができるので、コード記号面上で図10に示すような16個の平行四辺形による格子を形成する各格子点の画像中での位置がわかる。なお、破線同士が交わる交点の画像中の位置は、平行四辺形ELIJ等の対角線の交点であることを利用して、線分ljと線分eiとの交点等として求めることができる。その位置定数も、(K+K)/2等として求めることができる。
以上のように求めた各格子点の情報を利用して、16個の平行四辺形について同様な計算を行うことにより、さらにコード記号面上で64個の平行四辺形による格子を形成する各格子点の位置定数及び画像中での位置がわかる。
以上の処理を繰り返すことにより、いくらでも細かく格子点の位置を決めることができる。そして、ある程度細かい格子の内部では、コード記号面が撮像面に対して傾いていたとしても、像の歪みはあまり大きくならないので、撮像がコード記号面に平行な面で行われたものとして画像データの解析を行っても歪みは問題とならず、解析に支障がない。
そこで、以上のように定めた格子点によって囲まれる最も細かい格子の内側では、撮像がコード記号面に平行な面で行われたものとして画像データの解析を行うようにしている。例えば、2次元コードの場合には、コードの各モジュールの中心が格子点上に位置するるか、端部が格子点状に位置するか、また格子の1辺にいくつのモジュールが並ぶか等を予め把握しておくことができるから、各モジュールの位置を決める際に、格子の各辺をモジュールの個数に応じて均等に分割し、その各点を結んで得た線分を基準に、各モジュールの位置を決めることができる。
なお、格子をあまり細かく取ると、格子点の位置を決めるための計算量が大きくなることから、格子点は、解析時に画像の歪みが問題とならない程度の適度の細かさまで決めるようにするとよい。
また、ここでは、基準点を平行四辺形の各頂点の位置に設けた場合について説明したが、基準点を平行四辺形のうちの特別な形状である長方形やひし形、正方形の各頂点の位置に設ける場合にも同様な手法が適用できることは、もちろんである。
次に、以上のような手法を適用した、このコードスキャナにおける画像データ処理の内容について説明する。
図11のフローチャートに、その画像データ処理の一例として、読み取った二次元コードのデコードを行う処理を示す。なお、読み取り対象のコードとしては、例えば図23に示したPDF417が考えられ、この場合、基準点としては、スタートパターン及びストップパターンの端部において、長方形の4頂点となる点を採用することができる。また、この処理は、この発明の画像処理方法の第1の実施形態に係る処理である。
図1に示したスキャナ1は、図示しないトリガスイッチ等をオンすると、CPU31が所要のプログラムを実行することにより、図11に示す処理を開始する。
そして、まずステップS1で、イメージエリア21上に結像している画像を、画像データとして取り込む。この画像データは、CMOSセンサ12が、イメージエリア21に結像した画像を光電変換して電圧信号として取り出し、デジタル画像データに変換したものである。ここでは、CMOSセンサ12及びCPU31が画像データ取込手段として機能する。また、以下のステップS2乃至S7の処理では、CPU31が解析手段として機能する。
次に、ステップS2で、取り込んだ画像データを解析して各基準点を探索し、画像中の位置を決定する。そして、スタート/ストップパターンは極めて特徴的なパターンであるから、コード面の傾きにより画像が歪んでいたとしても、その端部にある基準点は容易に発見することができる。なお、各点の画像中での位置は、イメージエリア21の主走査方向の画素番号と副走査方向の画素番号とにより、これら2方向の座標軸からなる直交座標系における座標として定義するとよい。ただしこの場合においても、計算誤差を低減するため、小数部分を含む座標値も便宜的に取りうるものとする。この処理が、第1の位置決定手順の処理であり、ここではCPU31が第1の位置決定手段として機能する。
次のステップS3では、ステップS2で求めた各基準点の画像中の位置から、上記長方形の対角線の交点の画像中の位置を求めると共に、上記式(17)及び(18)を利用して、求めた対角線の交点を参照点とする各基準点の位置定数を計算する。
そして、ステップS4で、数16乃至18を用いて説明した手法を用いて、2つの格子点を結ぶ線分の中点に当たる点の画像中の位置を新たな格子点の位置として順次計算して決定し、画像データ中に解析用の格子を設ける。
以上のステップS3及びS4の処理が、第2の位置決定手順の処理であり、ここではCPU31が第2の位置決定手段として機能する。
その後、ステップS5で、コード記号面3上の全モジュールの位置を決定するが、このとき、ステップS2乃至S4で位置を決定した格子点によって囲まれる最も細かい格子の内側では、撮像が読取対象のコード記号面3に平行な面で行われたものとし、例えば画像中に同じ大きさのモジュールが等間隔で並んでいるものとして位置を決定する。
そして、以下ステップS6乃至S8で、各モジュール位置の画像データの値から、そのモジュールの示す値(2値の場合には0か1)を判定し、誤り訂正のためのリードソロモンデコードを行い、デコードしたデータをホストコンピュータ2に出力する。これらのステップS6乃至S8の処理については、適宜公知の処理を採用すればよい。
なお、リードソロモンデコードは、コードに「汚れ」や「欠け」がある部分に集中して発生する情報の誤り(バースト誤り)の訂正に適した処理であり、誤り訂正のためにコード中に埋め込んでおくリードソロモン符号を用いて行うものである。
以上のような処理を行うことにより、読み取り対象の情報が平行四辺形の4頂点を構成する位置に配置された基準点を有する場合には、読み取り対象が傾いた状態で撮像された場合でも、三角関数等の複雑な演算を行うことなく、基準点の画像中の位置の情報のみから、単純な四則演算及び2点間の距離計算を用いて、傾きによる画像の歪みの影響を考慮した正確な画像処理を可能にすることができる。従って、高速なデコードが可能なコードスキャナを構成することができる。また、この方式は、セル配列の各行や各列の位置を示すタイミングセルがないコードのデコードにも使用することができるため、広汎な対象に適用することができる。PDF417形式以外のコードの読み取りにも適用することができることは、言うまでもない。
さらに、以上説明した手法は、所与の情報を示す図形が規則的に配置されたコードが読み取り対象であり、読み取った画像データを解析してそのコードが示す情報を取得するコードスキャナのような光学的情報読取装置に適用すると有効であるが、所要の参照点を有する読取対象であれば、どのような画像の解析にも適用することができる。
また、ハードウェア構成も、上述したものに限られることはない。
〔第2の実施形態:図12乃至図22〕
次に、この発明の光学的情報読取装置の第2の実施形態であるスキャナについて説明する。このスキャナは、ハードウェア構成については上述した第1の実施形態のものと同様であるので、その部分の説明は省略する。
このスキャナも、撮像時に読み取り対象のコード記号面3がCMOSセンサ12イメージエリア21と平行でなかった場合でもコード記号面3の二次元コードを正確にデコードできるようにした点が特徴であり、このための処理を第1の実施形態の場合と同様な考え方に基づいて行うが、格子点の取り方が異なる。
すなわち、このスキャナにおいては、コード記号面3中において、既に画像中の位置が決定された格子点の中から選択した3点を3つの頂点とする平行四辺形の残り1つの頂点に当たる点を新たな格子点とし、その画像中の位置を順次定めるようにしている。そこで、まずこの位置を決定するための計算内容について説明する。
ここで、図12(a)に示した平行四辺形EFGHについて、点E,F,Gを、既に画像中の位置が決定されたコード記号面上の格子点の中から選択した3点とし、点Hを、新たに画像中の位置を決定すべき格子点とする。なお、点E,F,Gについての位置定数K,K,Kは既知であるとする。初めに平行四辺形の4頂点を構成する位置に配置された基準点の位置定数を第1の実施形態で説明した方式で定めれば、これを利用して画像中の位置を導出する全ての格子点の位置定数は、以下に説明する方式で求めることができる。この場合の参照点は、上記の平行四辺形の対角線の交点であるが、図中には示していない。また、この点がどこにあっても以下の導出過程に変化はない。
ここで、点E,F,G,Hから参照平面までの距離をそれぞれS,S,S,Sとすると、線分GHと線分FEは平行で長さが等しいことから、これらの間には次の式(21)の関係が成立する。
Figure 0004102742
また、参照平面と光学的中心面との距離をVと置くと、式(22)が成立する。
Figure 0004102742
そして、位置定数の定義から、下記の関係式も成立する。
Figure 0004102742
従って、点Hの位置定数Kは、点E,F,Gの位置定数K,K,Kを用いて式(23)により求めることができる。
また、図12(b)に、(a)の図形を撮像した場合の画像を示すが、線分EGの中点の画像中の位置iは、上述した式(13)より、平行四辺形の対角線となる線分egを
|gi|/|ei|=(1+K)/(1+K) …式(24)
なる割合で分割した点となる。ここで、KとKは既知であるので、iの位置は具体的に定めることができる。
また、点hの画像中での位置は、線分fiの延長上となり、同様に式(13)より、線分fiを
|hi|/|fi|=(1+K)/(1+K) …式(25)
なる割合で延長した点となる。そして、Kは既知であり、式(23)よりKも求めることができるので、hの位置は具体的に定めることができる。そして、この点hの位置及び点Hの位置定数を、次の格子点の位置定数及び画像中の位置を求めるために使用することができる。
このスキャナにおいては、以上のように格子点を配置することにより、マキシコードについてコード記号面3の傾きに起因する画像の歪みを補正した解析を行うことができるようにしている。そこで、読み取り対象がマキシコードである場合の処理について以下に具体的に説明する。また、マキシコード特有の性質を利用して格子点の位置を精密化する処理も行っているので、この点についても併せて説明する。
まず、マキシコードには、従来の技術の項で図24を用いて説明した通り、位置決めのためのパターンとして、中央部のファインダパターンFPと、6つのモジュール群P1〜P6からなる方向パターンとを有する。そして、ファインダパターンは、白、黒、白、黒、白、黒の6つの同心円で構成される極めて特徴的なパターンであるので、その位置は画像が歪んでいたとしても容易に決定することができる。また、各方向パターンの位置も、ファインダパターンとの位置関係が決まっているので、これをRAM33に記憶させておくことにより、容易に決定することができる。
そこで、これらのパターンの位置に基準点を置くものとし、ファインダパターンFPの中心と、方向パターンを構成する各モジュール群のうち、最もファインダパターンFPに近い第1モジュール(例として、モジュール群P3の場合にはモジュールP3A)の中心とを基準点とする。このようにすると、各基準点は、正六角形の6頂点及びその中心の位置に配置されることになる。なお、以後の説明において、ファインダパターンFPの中心を点O、モジュール群P1乃至P6に対応する基準点をそれぞれ点P1乃至P6と呼び、これらの画像中での位置を、それぞれ点L0及び点L1乃至L6と呼ぶ。
ここで、図13のフローチャートに、読み取ったマキシコードのデコードを行う処理を示す。この処理は、この発明の画像処理方法の第2の実施形態に係る処理である。
この実施形態のスキャナ1は、図示しないトリガスイッチ等をオンすると、CPU31が所要のプログラムを実行することにより、図13に示す処理を開始する。
そして、まずステップS101で、図11のステップS1の場合と同様に、イメージエリア21上に結像している画像を、画像データとして取り込む。そして、ここではCMOSセンサ12及びCPU31が画像データ取込手段として機能し、以下のステップS102乃至S108の処理では、CPU31が解析手段として機能する。
次に、ステップS102及びS103で、取り込んだ画像データを解析してファインダパターンの中心及び各方向パターンの位置を探索し、各基準点の位置を決定する。これらの処理が、第1の位置決定手順の処理であり、ここではCPU31が第1の位置決定手段として機能する。
その後、ステップS104で各基準点の画像中の位置を正確化する。このコードスキャナでは、基準点の外側に格子点を取っていくので、基準点の位置にずれがあると後の処理に影響が大きいため、このような処理を設けたものである。なお、ここで正確化の対象となるのは、各方向パターンに対応する基準点のみとしている。これは、ファインダパターンは他の部分とは際立って異なるパターンであり、その中心位置は比較的正確に検知できると考えられるためである。
ここで、このステップS104の処理の内容を図14のフローチャートにより詳しく示す。
すなわち、この処理においては、まずステップS201で、各基準点の画像中での位置から、各基準点の位置定数を求める。
上記のように基準点を定めると、線分P1P4,P2P5,P3P6の中点は全て点Oとなる。従って、これらの線分について上述した式(11)を適用すると、点P1乃至P6の、参照点を点Oとする位置定数KP1乃至KP6は、上記点L0乃至L6の位置から以下の数22のように定められる。
Figure 0004102742
次に、ステップS202で、隣接する2つの基準点の位置定数を用いて、他の基準点の位置定数を計算する。
各基準点の位置関係は図15(a)に示すようになるので、例えば点P3は、点O,P1,P2の3点を3つの頂点とし、線分P2Oを対角線とする平行四辺形の残り1つの頂点に該当する。従って、これらの点について上記の式(23)を適用すると、点P3の位置定数KP3を、KP3 =KP2−KP1として求めることができる。KP3に付した*は、他の点の位置定数を用いて計算した位置定数であることを示すためのものである。
同様に、下記数23に示すように、各基準点の位置定数を計算することができる。
Figure 0004102742
なお、KP1 とKP2 を用いて点P3の位置定数を求める等しても、上記数22を考慮すると、結局のところ、KP3又はKP3 のどちらかと同じ値しか得られない。他の点についても同様である。
次に、ステップS203で、各基準点について、ステップS201で求めた位置定数とステップS202で求めた位置定数とを平均し、その値を以後の計算に用いる位置定数として採用する。
ここで、仮に各基準点の画像中の位置を完全に正確に求めることができていたとすると、KPNとKPN (N=1〜6)は一致するはずである。しかし、実際には計測や解析の誤差のため、これらは一致しないことが多い。そこで、これら2つの値の平均を取り、その値を以後の計算に使用するようにしたものである。以後はこの平均値をKPNと表記することにする。
次に、ステップS204で、ファインダパターンの中心及び2つの隣接する方向パターンと対応する基準点の位置定数及び画像中の位置を用いて、他の4つの基準点の画像中の位置を求める。この導出法は、以下の通りである。
上記のように、点P3は、点O,P1,P2の3点を3つの頂点とし、線分P2Oを対角線とする平行四辺形の残り1つの頂点に該当する。そこで、これらの点について上述の式(23)乃至式(25)を適用すると、点P3の画像中の位置を、図15(b)に示すように、線分LO2L0を所定の割合で分割する点Xについて、線分LO1Xを所定の割合で延長した点の位置として導出することができる。
ここで、画像を検索して得た点Pnの画像中の位置を点LOnと記載し、点Pm,点P(m+1),点Oの情報をもとに導出した点Pnの画像中の位置を点Lmn(mはローマ数字)と記載するものとする。従って、点LI3は、点P1,点P2,点Oの情報から導出した点P3の画像中の位置を意味する。
また、点P4は点P2,点P3,点Oを3つの頂点とする平行四辺形の残り1つの頂点に該当するので、(c)に示すように、検索した点P2の情報と、先ほど求めた点P3の情報とを利用して、点P4の位置定数および画像中の位置を導出することができる。このように求めた画像中の位置は、点LI4となる。
以下同様に、(d)及び(e)に示すように各平行四辺形に式(23)乃至式(25)を適用し、点LI5及び点LI6の位置を求めることができる。
以上でステップS204の処理を終了し、次のステップS205に進む。
次のステップS205では、他の基準点の組み合わせ5通りについて、ステップS204の場合と同様に、他の基準点の画像中の位置を求める。
すなわち、まず点P2,点P3,点Oの情報をもとに同様な導出を行い、点LII4,点LII5,点LII6,点LII1の位置を求め、さらに、他の4つの組み合わせについても、同様にもとにした3点以外の基準点の画像中の位置を順次導出していく。
以上のステップS204及びS205の処理が、第3の位置決定手順の処理であり、ここではCPU31が第3の位置決定手段として機能する。
そして、次のステップS206では、初めに検索して得た位置(LOn)と、ステップS204及びS205で求めた位置(Lmn)とを平均して、各方向パターンの画像中の位置(Ln)を決定する。平均の位置は、イメージエリア21中での、各点の主走査方向の画素番号と副走査方向の座標をそれぞれ平均して求めればよい。
例えば、点P1の画像中の位置については、図16に示すように、初めに検索して得た点LO1と、他の基準点の情報から導出したLII1,LIII1,LIV1,LV1の5つの位置情報が得られているので、これら5点の座標を平均してL1の座標を得ることができる。
なお、上記の5つ全ての座標を導出せず、2つ、3つ、あるいは4つの座標のみを導出して平均したとしても、ある程度の効果は得ることができる。
以上で各基準点の位置の正確化処理を終了し、図13のステップS105の処理に進む。ただし、上記の処理において、ステップS202及びS203の処理は必須ではなく、ステップS201で求めた各基準点の位置定数をそのままKPNとして使用するようにしてもよい。
次のステップS105の処理は、画像面上の各格子点の位置を順次決定する処理である。そして、このスキャナにおいては、格子点は図17に示すような位置に取り、コード記号面上に正三角形の格子を形成する。
ここで、このステップS105の処理の内容を図18のフローチャートにより詳しく示す。
すなわち、この処理においては、まずステップS301で、初めの基準点O及びP1〜P6の位置定数及び画像中の位置から定められる第1グリッドの各格子点の画像中の位置(及びその演算課程で得られる位置定数)を求める。
例えば、点Pa1は、点O,P1,P2の3点を3つの頂点とし、線分P1P2を対角線とする平行四辺形の残り1つの頂点に該当する。従って、これらの点について上述の式(23)乃至式(25)を適用すると、点Pa1の画像中の位置を、図19に示すように、線分L2L1を所定の割合で分割する点Yについて、線分L0Yを所定の割合で延長した点の位置として導出することができる。この際、点Pa1の位置定数も導出できる。
また、同様に点Pa2〜Pa6の位置定数及び画像中の位置も導出することができ、これらの点が第1グリッドを構成する格子点となる。なお、第1グリッドは、点Oから各基準点の次に近い格子点の集まりであると言うこともできる。
以上の各点の画像中の位置を導出できると、処理はステップS302に進み、ステップS301で求めた各格子点の位置を調整するが、この処理については後に詳述する。
そしてその後、ステップS303に進んでコード記号の外縁までの格子点の位置を決定したか否か判断するが、ここではまだそこまで処理が進んでいないので、ステップS304に進む。
そして、今までに求めた各格子点の位置定数及び画像中の位置を利用して、ステップS301の場合と同様に次のグリッドの各格子点の画像中の位置を導出する。ここで、次のグリッドとは、前のグリッドを構成する各格子点の次に点Oに近い格子点の集まりである。そして、図17において、各格子点がどのグリッドに属するかは、各点の名前に含まれる、「P」の次のアルファベットで示している。これが「a」である格子点は第1グリッド、以下「b」,「c」,…である格子点は、第2,第3,…グリッドの格子点である。
また、例えば点Pb1の画像中の位置は、点P1,P2,Pa1の情報から導出することもできるし、点P2,P3,Pa2の情報から導出することもできる。このような場合、双方から導出した位置の平均を採用してもよいし、一方から導出した値を採用するようにしてもよい。
以上の各点の画像中の位置を導出できると、処理はステップS305に進み、ステップS304で求めた各格子点の位置を調整する。この処理は、ステップS302と同様なものであり、この処理については後に詳述する。
そしてその後、ステップS303に戻って処理を繰り返し、コード記号の外縁までの、すなわち最後のグリッド(図17の場合は第5グリッド)の格子点の位置が決定されていれば、ステップS105の処理を終了する。以上のステップS105の処理が、第2の位置決定手順の処理であり、ここではCPU31が第2の位置決定手段として機能する。
そして、以上により、コード記号面上に図17に示したような格子を構成する各格子点の画像中の位置を決定することができる。
次に、図13のステップS106以降の処理に進む。
ステップS106では、コード記号面3上の全モジュールの位置を決定するが、このとき、ステップS102乃至S105で位置を決定した格子点によって囲まれる最も細かい格子の内側では、撮像が読取対象のコード記号面3に平行な面で行われたものとし、画像中に同じ大きさのモジュールが等間隔で並んでいるものとして位置を決定する。この場合において、最も細かい格子として、3つの格子点からなる正三角形ではなく、4つの格子点からなる平行四辺形を採用してもよい。
そして、以下ステップS107乃至S109で、各モジュール位置の画像データの値から、そのモジュールの示す値(2値の場合には0か1)を判定し、誤り訂正のためのリードソロモンデコードを行い、デコードしたデータをホストコンピュータ2に出力して処理を終了する。これらの処理については、適宜公知の処理を採用すればよい。
ここで、図18のステップS302及びS304で行う格子点の位置調整の処理について説明する。この処理は、点Oから離れるに従って大きくなると考えられる格子点の位置誤差を補正し、誤差が蓄積しないようにするための処理である。そして、その詳細は、図20のフローチャートに示すものである。
すなわち、まずステップS401で、調整対象の格子点の位置を決めるために用いた平行四辺形と対応する画像中の格子のうち、調整対象の格子点を含む辺の一方を6等分し、モジュールの大きさStを求める。例えば、図19に示した例の場合には、線分La1L1又はLa1L2の一方を6等分することになる。なお、後述するように、ここで用いなかった辺についても後で同様な処理を行うので、どちらの辺を先に用いても構わない。
また、マキシコード上に図17に示すような格子を設けた場合、各格子点はモジュールの中心に該当し、格子の1辺はモジュール6個分の長さとなる。そして、第1の実施形態の場合と同様に、最小の格子の内側では、撮像がコード記号面に平行な面で行われたものとして画像データの解析を行うので、格子の辺を等分して各モジュールの位置を決めるようにしている。
次に、ステップS402でN=1と置き、ステップS403でN番目(ここでは1番目)のモジュールの位置を決める。ここで、1番目のモジュールとは、ステップS401で6等分した辺上にあって調整対象でない方の格子点から最も近いモジュールであるとする。図21(a)に示す例では、モジュールM1に該当する。そして、この位置は、点L1から距離StだけLa1方向に進んだ点、あるいは線分L1La1を1:5に内分する点として決めることができる。
その後、ステップS404で、ステップS403で決めたモジュール位置を中心に、直径がStより若干小さい円の円周を8等分する点を取り、その点の画像データを取得する。この点の取り方は、例えば図21(b)に破線で示す正八角形の頂点とすることができ、このような点の座標は、所要の回転行列を固定値として予め記憶させておけば、三角関数演算を用いることなく求めることができる。また、円の直径をStより小さいものとしたのは、モジュールが6角形であり、直径Stの円内全体に存在するわけではないからである。しかし、円があまり小さすぎると、後述する調整方向を得る際にわずかなずれが検出できず、適当でないから、円の直径としては、例えばSt×(2/3)を用いるとよい。この処理が、サンプリング手順の処理であり、ここではCPU31がサンプリング手段として機能する。
なお、サンプリング位置については、必ずしも8点でなくても、また円周上に等間隔に取らなくても構わないが、後述する調整テーブルの大きさと信頼性を考慮すると、このようにすることが好ましい。
次のステップS405では、ステップS404で取得した8点の画像データを所定の閾値で2値化し、白又は黒のデータを得る。そして、ステップS406でその2値化後のデータを調整テーブルに当てはめて、格子点の調整方向を取得する。
ここで、調整テーブルについて説明する。
調整対象の格子点が、仮に丁度目標のモジュールの中心に位置している場合には、ステップS401で6等分した辺は各モジュールの中心を通ると考えられるので、ステップS404で画像データを取得した8点は全て1つのモジュール内に位置し、ステップS405で求めた8点の値は、そのモジュールが白であれば全て白、黒であれば全て黒になると考えられる。しかし、調整対象の格子点が目標のモジュールの中心からずれている場合には、図21(c)に示すように、6等分した辺は各モジュールの中心からずれた位置を通るので、N番目のモジュールMNが黒であっても隣のモジュールが白であれば、ステップS405で求めた8点の値の一部は白になってしまう。従って、このような場合には、格子点La1の位置を矢印方向に微調整する必要があることがわかる。
上記の調整テーブルは、ステップS405で求めた8点の値の組み合わせと、このような調整方向との対応関係を示したものである。また、ステップS404で想定したモジュールが白か黒かを示す情報も記載するようにするとよい。
ステップS405で取得したデータをこのような調整テーブルにあてはめることにより、格子点の調整方向を取得することができる。ただし、モジュールMNと隣接モジュールの色が同じ場合等には、適当な調整方向を得られないこともある。しかし、モジュールは直線的に並んでいるのであるから、格子点の位置がずれていれば、基本的にはすべてのモジュールにおいて同じ方向へのずれが検出されるはずであり、辺上の6個のモジュールについて同様な処理を行って、多数のモジュールについて一致して得られた調整方向を採用することようにすれば、一部のモジュールについて適当な調整方向が得られなくても問題ない。8点の値の組み合わせに応じて、調整方向と共にその信頼性も定義してテーブルに記載しておき、信頼性の高い調整方向を優先的に採用するようにしてもよい。
なお、上記の対応関係は、必ずしもテーブル形式で記憶させる必要はない。
以上のようなステップS406の処理の後、ステップS407でNをインクリメントし、Nが6より大きくなければ、すなわち辺上の全てのモジュールについて処理がなされていなければ、ステップS403に戻って処理を繰り返す。
ステップS407でNが6より大きければ、ステップS409に進み、ステップS401で採用しなかった方の辺について、ステップS401乃至S409と同様な処理を行う。
そして、ステップS410で、ステップS406(又はS409)で得られた調整方向に従って調整対象の格子点の位置を調整する。調整量は、St×1/16からSt×1/8程度とするとよい。また、これに合わせて位置定数も調整する。ここで、ステップS406とステップS409で得られた調整方向が食い違う場合には、辺上に黒モジュールが多かった方の処理で得られた調整方向を採用するようにするとよい。黒モジュールは、バックとはっきり区別できるので、その位置を基準とした調整方向の方が信頼性が高いと考えられるためである。
以上により1つの格子点の位置調整の処理を終了し、必要な全ての格子点の位置調整が完了すると、ステップS411から図18のステップS303に進む。他に位置調整が必要な格子点があれば、ステップS401に戻って処理を繰り返す。
なお、この図20の処理において、ステップS404において円周だけでなく円の中心の点の画像データも取得するようにし、調整テーブルを、中心の値と円周上の各点の値との異同の組み合わせと、調整方向との対応関係を示すものとしてもよい。
以上説明したような各処理を行うことにより、読み取り対象の情報が正六角形の6頂点及びその中心の位置に配置された基準点を有する場合には、読み取り対象が傾いた状態で撮像された場合でも、三角関数等の複雑な演算を行うことなく、単純な四則演算及び2点間の距離計算を用いて、傾きによる画像の歪みの影響を考慮した正確な画像処理を可能にすることができる。従って、高速なデコードが可能なコードスキャナを構成することができる。また、この方式は、セル配列の各行や各列の位置を示すタイミングセルがないコードのデコードにも使用することができるため、広汎な対象に適用することができる。ここではマキシコードのデコードを例に挙げて説明したが、コードの形式に応じて基準点及び格子点を取ることにより、他の形式のコードの読み取りにも適用することができることは、言うまでもない。
さらに、以上説明した手法は、所与の情報を示す2色の図形が規則的に配置されたコードが読み取り対象であり、読み取った画像データを解析してそのコードが示す情報を取得するコードスキャナのような光学的情報読取装置に適用すると有効であるが、所要の参照点を有する読取対象であれば、どのような画像の解析にも適用することができる。また、上記の2色は白と黒である場合が多いが、他の色である場合にも上記の方式が適用可能であることは言うまでもない。
また、ハードウェア構成も、上述したものに限られることはない。例えば、画像解析処理をホストコンピュータ側で行うようにし、汎用のPCに所要のプログラムを実行させることにより、上記の各処理を行わせることもできる。この場合、プログラムを適当な記録媒体に記憶させて提供することもできる。上述の第1の実施形態の場合も同様である。
ところで、マキシコードをデコードする場合、通常は、コードの印刷が不鮮明である等して方向パターンの位置が1つでも検索できないと、デコードを行うことができない。しかし、上述した位置正確化処理を利用することにより、一部の方向パターンの位置が検索できない場合でも、その位置を推測して以後のデコード処理に利用することができる。
すなわち、例えば点P3の画像中の位置がわからない場合、点P3だけでなく点P6についての位置定数も求めることができないが、点P1,点P2,点Oの情報及び点P4,点P5,点Oの情報をもとにそれぞれこれらの点の画像中の位置を導出することができる。そして、得られた2つの値の平均を点L3や点L6の位置情報として採用し、これをもとに点P3や点P6の位置定数を計算すれば、以後のデコード処理を行うことができる。
また、図15(a)に示した六角形の2本以上の対角線にまたがって位置を検索できない方向パターンがあり、例えば点P5と点P6の画像中の位置がわからない場合には、上記の方法も適用することができない。しかし、例えば点P1,点P2,点P3の画像中の位置がわかれば、四角形OP1P2P3は平行四辺形であることから、第1の実施形態で説明した手法を用い、式(17),(18)によってその対角線の交点を参照点とする各頂点の位置定数を求めることができる。そして、この値を利用して、上述の式(23)乃至式(25)により順次他の各基準点の位置定数及び画像中の位置を導出し、以後のデコード処理に使用することができる。例えば、点P4は、点P2,点P3,点Oを3頂点とする平行四辺形の残り1つの頂点に当たるので、その位置定数及び画像中の位置を、点P2,点P3,点Oの位置定数及び画像中の位置から導出することができる。
なお、このように、第1の実施形態の手法と第2の実施形態の手法を組み合わせることにより、読み取り対象が少なくとも平行四辺形の4頂点を構成する位置に配置された基準点を有する場合に、任意の領域に配置した格子点の位置定数及び画像中の位置を導出することができる。すなわち、読み取り対象中に図22(a)に示すような平行四辺形ABCDの各頂点に位置する基準点が存在し、その画像中の位置が決定できるとすると、第1の実施形態で説明した手法を用い、式(17),(18)によって点Oを参照点とする各頂点の位置定数を求めることができる。
そして、これらの点の位置定数及び画像中の位置の情報から、第2の実施形態で説明した手法を用い、式(23)乃至(24)により、図22(b)乃至(f)に示すように、点E,F,G,H,Iの位置定数及び画像中の位置を順次導出することができる。もちろん、他の方向に格子点を設けた場合でも、同様に位置定数及び画像中の位置を導出することができる。
その後、必要に応じて、数16乃至数18を利用して平行四辺形の各辺の中点の位置定数及び画像中の位置を決定することにより、(g)に示すようにより細かい格子を形成する各格子点の画像中の位置を得ることができる。
従って、上述の手法を用いることにより、読み取り対象中の任意の領域に適切な細かさの格子を構成する格子点について、その画像中の位置を、単純な四則演算及び距離計算の繰り返しにより導出することができる。そして、これを利用することにより、読み取り対象が傾いた状態で撮像された場合でも、少ない計算量で正確に画像を解析できる光学的情報読取装置を構成することが可能であり、傾きに伴うずれの補正を広汎な対象について行うことができる。
なお、この場合において、格子点によって構成される格子は、基準点が構成する平行四辺形のと相似な形状となる。従って、基準点が長方形、ひし形、正方形の頂点に配置されている場合には、格子もその形状となる。また、格子の形状を三角形とすることもできるものとする。
以上の説明から明らかなように、この発明の光学的情報読取装置及び画像データ解析方法によれば、読み取り対象の情報を撮像した画像を解析する場合において、特にマキシコードが読み取り対象である場合に、少ない計算量で正確に画像を解析可能とすることができる。従って、これらを利用することにより、マキシコードの高速な読み取りが可能な光学的情報読取装置を構成できるし、処理速度の遅い安価なプロセッサを用いて光学的情報読取装置を構成し、コストダウンを図ることもできる。
この発明の光学的情報読取装置の第1の実施形態であるコードスキャナの構成を示すブロック図である。 図1に示したCMOSイメージセンサの構成をより詳細に示すブロック図である。 イメージエリアに対して傾いた物体面に貼付したコード記号を撮像する場合の、これらの位置関係を模式的に示す図である。 この発明における画像処理に用いる基本的な考え方について説明するための図である。 同じく基本的な考え方について説明するための別の図である。 同じくさらに別の図である。 同じくさらに別の図である。 図1に示したコードスキャナによる読み取り対象となるコード記号面及びこれを撮像して得た画像の形状の例を示す図である。 図8に示したコード記号面上に設ける格子点及びその画像中の位置について説明するための図である。 同じくさらに細かい格子点について説明するための図である。
図1に示したコードスキャナが読み取った二次元コードのデコードを行う際に実行する処理を示すフローチャートである。 この発明の第2の実施形態のコードスキャナにおける画像処理に用いる基本的な考え方について説明するための図である。 この発明の第2の実施形態のコードスキャナが読み取ったマキシコードのデコードを行う処理を示すフローチャートである。 図13のステップS104の処理をより詳細に示すフローチャートである。 図14のステップS201の処理について説明するための図である。 図14のステップS203の処理について説明するための図である。 この発明の第2の実施形態においてマキシコードのコード記号面上に設ける格子点の例を示す図である。 図13のステップS105の処理をより詳細に示すフローチャートである。 図18のステップS301の処理について説明するための図である。 図18のステップS302及びS305の処理をより詳細に示すフローチャートである。
図20に示した処理について説明するための図である。 この発明の各実施形態において説明した手法を利用した格子点の取り方について説明するための図である。 PDF417形式のコード記号の例を示す図である。 マキシコードのコード記号の例を示す図である。 イメージエリアに対して傾いた状態で撮像されたコード記号の画像の例を示す図である。
符号の説明
1:スキャナ 2:ホストコンピュータ
3:コード記号面 10:光学ヘッド
11:レンズ 12:CMOSイメージセンサ
13:ガイド用LED 14:照明用LED
21:イメージエリア 22:CDS回路
23:AGC回路 24:A/D変換回路
25:タイミングジェネレータ
26:コマンド・デコーダ回路
27:基準電圧回路 30:デコーダ
31:CPU 32:FPGA
33:RAM 34:通信I/F

Claims (10)

  1. 正六角形の6頂点及びその中心の位置に配置された基準点を有する読取対象の情報の画像を撮像し、画像データとして取り込む画像データ取込手段と、該手段が取り込んだ画像データを解析する解析手段とを有する光学的情報読取装置であって、
    前記解析手段に、
    前記各基準点を格子点とし、撮像した画像中での各格子点の位置を決定する第1の位置決定手段と、
    前記読取対象中において、既に前記画像中の位置が決定された格子点の中から選択した3点を3つの頂点とする平行四辺形の残り1つの頂点に当たる点の、前記画像中の位置を、別の格子点の位置として順次決定する第2の位置決定手段と、
    前記第1及び第2の位置決定手段が位置を決定した格子点によって囲まれる最も細かい格子の内側では、前記撮像が前記読取対象に平行な面で行われたものとして前記画像データの解析を行う手段とを設けたことを特徴とする光学的情報読取装置。
  2. 請求項1記載の光学的情報読取装置であって、
    前記第2の位置決定手段が、
    前記読取対象中における前記正六角形の対角線のうちその中心を通る線の両端の、前記画像中における位置をa,b、前記正六角形の中心の前記画像中における位置をmとし、aと対応する点の位置定数K
    =(|bm|−|am|)/|ab|…式(A)
    (ただし、|ab|は線分abの長さを表す)
    と定めるものとして、前記正六角形の6頂点の位置に配置された各基準点の位置定数を求める手段と、
    前記選択した3点のうち、平行四辺形の対角線に該当する2点の前記画像中における位置をe,g、残り1点の前記画像中における位置をfとし、それら3点の位置定数をそれぞれK,K,Kとして、前記読取対象中において前記残り1つの頂点に当たる点Hの位置定数K
    =K−K+K
    と定め、点Hの前記画像中における位置hを、線分egを
    |gi|/|ei|=(1+K)/(1+K
    なる割合で分割する点iについて、線分fiを
    |hi|/|fi|=(1+K)/(1+K
    なる割合で延長した位置に定める手段とを有し、
    これらの各手段を用いて前記格子点の位置を順次決定する手段であることを特徴とする光学的情報読取装置。
  3. 請求項2記載の光学的情報読取装置であって、
    前記第2の位置決定手段が、前記正六角形の隣接する2頂点の位置に配置された基準点について前記式(A)に従って定めた画像中の位置を利用して、その正六角形の他の4つの頂点の位置に配置された基準点の画像中の位置を求める第3の位置決定手段を有し、
    前記格子点の位置を順次決定するに際し、前記各基準点の画像中の位置として、前記第3の位置決定手段によって、位置定数を決めようとする基準点を含まない4組の基準点の画像中の位置を利用してそれぞれ求めた4つの画像中の位置と、前記式(A)に従って定めた1つの画像中の位置との平均の位置を用いるようにしたことを特徴とする光学的情報読取装置。
  4. 請求項1乃至3のいずれか一項記載の光学的情報読取装置であって、
    前記読取対象は、所与の情報を示す2色のパターンが規則的に配置されたコードであり、
    前記解析手段は、前記画像データを解析してそのコードが示す情報を取得する手段であることを特徴とする光学的情報読取装置。
  5. 請求項4記載の光学的情報読取装置であって、
    前記解析手段に、
    前記画像中において、前記最も細かい格子上に等間隔に所定個数の前記パターンが並んでいると仮定し、各パターンの中心位置を中心として半径が前記パターンよりも若干小さい円の円周上に位置する複数の点における画像データをサンプリングするサンプリング手段と、
    該手段がサンプリングするパターン1つ分の画像データの値の組み合わせと、前記格子点の位置の補正方向との対応関係を記憶する手段と、
    前記サンプリング手段がサンプリングした画像データの組み合わせと前記対応関係とから、前記格子点の位置の補正方向を決定し、前記画像中における格子点の位置をその方向に補正する手段とを設けたことを特徴とする光学的情報読取装置。
  6. 正六角形の6頂点及びその中心の位置に配置された基準点を有する読取対象の情報の画像を撮像して得た画像データをコンピュータによって解析する画像データ解析方法であって、
    前記各基準点を格子点とし、撮像した画像中での各格子点の位置を決定する第1の位置決定手順と、
    前記読取対象中において、既に前記画像中の位置が決定された格子点の中から選択した3点を3つの頂点とする平行四辺形の残り1つの頂点に当たる点の、前記画像中の位置を、別の格子点の位置として順次決定する第2の位置決定手順とを前記コンピュータに実行させ、
    前記第1及び第2の位置決定手順で位置を決定した格子点によって囲まれる最も細かい格子の内側では、前記撮像が前記読取対象に平行な面で行われたものとして前記コンピュータに前記画像データの解析を行わせることを特徴とする画像データ解析方法。
  7. 請求項6記載の画像データ解析方法であって、
    前記第2の位置決定手順において、
    前記読取対象中における前記正六角形の対角線のうちその中心を通る線の両端の、前記画像中における位置をa,b、前記正六角形の中心の前記画像中における位置をmとし、aと対応する点の位置定数K
    =(|bm|−|am|)/|ab|…式(A)
    (ただし、|ab|は線分abの長さを表す)
    と定めるものとして、前記正六角形の6頂点の位置に配置された各基準点の位置定数を求める手順と、
    前記選択した3点のうち、平行四辺形の対角線に該当する2点の前記画像中における位置をe,g、残り1点の前記画像中における位置をfとし、それら3点の位置定数をそれぞれK,K,Kとして、前記読取対象中において前記残り1つの頂点に当たる点Hの位置定数K
    =K−K+K
    と定め、点Hの前記画像中における位置hを、線分egを
    |gi|/|ei|=(1+K)/(1+K
    なる割合で分割する点iについて、線分fiを
    |hi|/|fi|=(1+K)/(1+K
    なる割合で延長した位置に定める手順とを前記コンピュータに実行させ、
    これらの各手順の処理によって前記格子点の位置を順次決定させるようにしたことを特徴とする画像データ解析方法。
  8. 請求項7記載の画像データ解析方法であって、
    前記第2の位置決定手順において、前記正六角形の隣接する2頂点の位置に配置された基準点について前記式(A)に従って定めた画像中の位置を利用して、その正六角形の他の4つの頂点の位置に配置された基準点の画像中の位置を求める第3の位置決定手順を前記コンピュータに実行させ、
    前記格子点の位置を順次決定するに際し、前記各基準点の画像中の位置として、前記第3の位置決定手順において、位置定数を決めようとする基準点を含まない4組の基準点の画像中の位置を利用してそれぞれ求めた4つの画像中の位置と、前記式(A)に従って定めた1つの画像中の位置との平均の位置を用いるようにしたことを特徴とする画像データ解析方法。
  9. 請求項6乃至8のいずれか一項記載の画像データ解析方法であって、
    前記読取対象は、所与の情報を示す2色のパターンが規則的に配置されたコードであり、
    前記解析は、前記画像データを解析してそのコードが示す情報を取得する処理であることを特徴とする画像データ解析方法。
  10. 請求項9記載の画像データ解析方法であって、
    前記画像中において、前記最も細かい格子上に等間隔に所定個数の前記パターンが並んでいると仮定し、各パターンの中心位置を中心して半径が前記パターンよりも若干小さい円の円周上に位置する複数の点における画像データをサンプリングするサンプリング手順と、
    該手順においてサンプリングするパターン1つ分の画像データの値の組み合わせと、前記格子点の位置の補正方向との対応関係を記憶しておき、前記サンプリング手順でサンプリングした画像データの組み合わせとその対応関係とから、前記格子点の位置の補正方向を決定し、前記画像中における格子点の位置をその方向に補正する手順とを前記コンピュータに実行させるようにしたことを特徴とする画像データ解析方法。
JP2003394500A 2003-11-25 2003-11-25 光学的情報読取装置及び画像データ解析方法 Expired - Fee Related JP4102742B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003394500A JP4102742B2 (ja) 2003-11-25 2003-11-25 光学的情報読取装置及び画像データ解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003394500A JP4102742B2 (ja) 2003-11-25 2003-11-25 光学的情報読取装置及び画像データ解析方法

Publications (2)

Publication Number Publication Date
JP2005157677A JP2005157677A (ja) 2005-06-16
JP4102742B2 true JP4102742B2 (ja) 2008-06-18

Family

ID=34720549

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003394500A Expired - Fee Related JP4102742B2 (ja) 2003-11-25 2003-11-25 光学的情報読取装置及び画像データ解析方法

Country Status (1)

Country Link
JP (1) JP4102742B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6491931B2 (ja) * 2015-04-03 2019-03-27 株式会社Nttドコモ 情報処理装置及びプログラム
DE102021126906A1 (de) 2021-10-18 2023-04-20 Sick Ag Kamerabasierter Codeleser und Verfahren zum Lesen optischer Codes

Also Published As

Publication number Publication date
JP2005157677A (ja) 2005-06-16

Similar Documents

Publication Publication Date Title
US9451132B2 (en) System for capturing a document in an image signal
US6612497B1 (en) Two-dimensional-code related method, apparatus, and recording medium
KR100309242B1 (ko) 심벌정보판독장치
KR100275007B1 (ko) 바코드 판독장치
JP4752413B2 (ja) 2次元コード分割表示方法、2次元コード読取方法および2次元コード読取装置
US9911072B2 (en) Two-dimensional code, and two-dimensional-code analysis system
JP2006079615A (ja) Qrコードの位置を確認するための方法、装置、及び記憶媒体
JP2004054529A (ja) 2次元コード読み取り方法,2次元コード読み取りプログラム,該2次元コード読み取りプログラムの記録媒体及び2次元コード読み取り装置
CN104008359A (zh) 一种用于qr码识别的精确网格采样方法
US20160283763A1 (en) Two-dimensional code
US9070033B2 (en) Stack barcode reader and stack barcode reading method
JP4951735B2 (ja) 光学情報読取装置
WO2016166914A1 (ja) 二次元コード,二次元コード記録担体,二次元コード読取り方法,二次元コード読取用プログラムおよび二次元コード読取り装置
JP2003248792A (ja) 2次元コードのデコード方法、2次元コードのデコード装置、コンピュータに2次元コードのデコード方法を実行させるためのプログラム、このプログラムを記録した記録媒体
JP2011081832A (ja) 2次元コード分割表示方法、2次元コード読取方法および2次元コード読取装置
JP4865844B2 (ja) 二次元コード読取方法及び該二次元コード読取方法で読み取るための二次元コード並びに該二次元コード読取方法を記録した記録媒体
JP2012058776A (ja) バーコード読取装置およびバーコード読取方法
JP4102742B2 (ja) 光学的情報読取装置及び画像データ解析方法
JP4102741B2 (ja) 光学的情報読取装置及び画像データ解析方法
JP5187382B2 (ja) 2次元コード分割表示方法、2次元コード読取方法および2次元コード読取装置
JP4314148B2 (ja) 2次元コード読取装置
JPH0437466B2 (ja)
JP4267965B2 (ja) バーコード読取装置
JPH11316795A (ja) 二次元コードデコード装置、及び記憶媒体
JP2996243B1 (ja) 2次元コード読取方法、2次元コード読取装置及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080312

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080318

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080324

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110328

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120328

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130328

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130328

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140328

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees