JPH1063772A - データマトリックスシンボルを有する機械読取り可能なシンボルを探し、デコードするための方法及び装置 - Google Patents

データマトリックスシンボルを有する機械読取り可能なシンボルを探し、デコードするための方法及び装置

Info

Publication number
JPH1063772A
JPH1063772A JP9177524A JP17752497A JPH1063772A JP H1063772 A JPH1063772 A JP H1063772A JP 9177524 A JP9177524 A JP 9177524A JP 17752497 A JP17752497 A JP 17752497A JP H1063772 A JPH1063772 A JP H1063772A
Authority
JP
Japan
Prior art keywords
shape
symbol
processor
solid
solid line
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.)
Pending
Application number
JP9177524A
Other languages
English (en)
Inventor
Lingnan Liu
リウ リングナン
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.)
Intermec Technologies Corp
Original Assignee
Intermec Corp
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 Intermec Corp filed Critical Intermec Corp
Publication of JPH1063772A publication Critical patent/JPH1063772A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/1093Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing, after transfer of the image of the data-field to an intermediate store, e.g. storage with cathode ray tube
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K2019/06215Aspects not covered by other subgroups
    • G06K2019/06262Aspects not covered by other subgroups with target- or other orientation-indicating feature

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Toxicology (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【課題】データ・マトリックス・シンボルのような機械
読み取り可能なシンボルを探し出し、デコードするため
の方法及び装置を提供する。 【解決手段】本発明は、シンボル53のイメージを蓄積
することによって開始する。本発明は、シンボルのため
のファインダーパターンのクワイエットゾーンと実線の
境界間のエッジ点を探が出す。そこから、本発明は第1
と第2の実線の境界70、72の少なくとも部分、好ま
しくはそれらの間の実線のコーナー80を探し出す。そ
の後、本発明は実線の境界の自由端82、84から延び
る点線の境界74、76の少なくとも部分を探し出す。
シンボルのためのファインダーパターンの実線及び点線
の境界を探し出した後に、本発明はシンボルの周辺と翻
訳を決定し、シンボルのイメージをデコードするため
に、適切なデコードルーチンを適用する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、少なくとも2つの
実線の境界を有するシンボルを含む、機械読取りり可能
なシンボル或いはイメージを探し出し、デコードするた
めの方法及び装置に関する。
【0002】
【発明の背景】バーコードリーダーは線形シンボロジー
(linear symbology)から代表的なバーコードを探し出
し、デコードする。“線形シンボロジー" は、データが
交互の、多数の幅とスペースの並列な配列としてエンコ
ードされる場合のシンボロジーである(例えば、U.S.
C., Code 39, Code 93等 )。他のシンポロジーと同様
に、線形シンボロジーは代表的には交互のバーとスペー
スである“シンボル文字”として“データ文字”(即
ち、人間が読むことのできる文字)をエンコードする。
バーコードリーダーは、一般に高い反射率の領域、即ち
“スペース”から反射され、低い反射率の領域、即ち
“バー”によって吸収された変調光を表すアナログ信号
である反射信号を生成するために、領域を走査し、イメ
ージ化することによって、シンボル文字をデータ文字へ
変換する。その結果、信号はシンボルにおけるバーとス
ペースのパターンを表す。
【0003】バーコードリーダーは、代表的には、信号
におけるクワイエットゾーン(quietzone)を探すことに
よって、信号に表された他の視覚によるノイズからバー
コード情報を探す。“クワイエットゾーン”は、しばし
ばスタート或いはストップ文字の隣にあって、シンボル
を従え、或いはそれに続く暗いマークを含まないクリア
スペースである。代表的には、クワイエットゾーンは、
クワイエットゾーンに続く、或いは従えるバーより約1
0倍大きいサイズを有している。新しいデータ収集シン
ボロジーは、典型的な線形シンボロジーから出発し、
“情報の密度”、即ち与えられた領域内にエンコードさ
れる情報の量を増加するために、積み重ねられ、或いは
面積シンポロジーを作成した。“積み重ねられたシンポ
ロジー”即ち多数の行のシンボロジーは、多数の幅のバ
ーとスペースの幾つかの隣接した行を用いている(例え
ば、Code 49, PDF417,等) 。“エリアシンボロジー”即
ち二次元マトリックスシンボロジーは、隣接するデータ
セルの中心から中心迄の距離が一定である規則的な多角
形のデータセルの配列を用いている(例えば、Data Mat
rix, MaxiCode, Code One, Aztec Code,等)。
【0004】標準的なの探索及びデコードアルゴリズム
が線形シンボロジーのために、またいくらかの積み重ね
られたシンボロジーのために用いられるが、これらのア
ルゴリズムはエリアシンボロジーには適していない。エ
リアシンボロジーは、代表的には、自動化されたイメー
ジ認識装置及びアルゴリズムによって認識され得る特定
のパターンである“ファインダーパターン(finder patt
erns)"を用いる。例えば、データマトリックスシンボロ
ジー(Data Matrix symbology) は、実線のエッジ、即ち
底部と左側に沿う境界、及び交互の黒と白の四角形から
なる上部と右側に沿う2つの点線の境界を有するファイ
ンダーパターンのある隣接する四角形モジュールの二次
元マトリックスを用いる。データマトリックスシンボロ
ジーは、蓄積されたイメージ内のシンボルを見つけ、デ
コードする方法を用いる。標準的なの方法は、(1)蓄
積されたイメージ内のシンボルの位置を探し出すステッ
プ、(2)ファインダーパターンの2つの実線の境界を
探し出すステップ、(3)点線の外側境界を探し出すス
テップ、(4)2つの実線の境界の外側境界上の全ての
白い“ペニシュラ(peninsulas: 出っ張り)"をトリミン
グするステップ、(5)2つの点線の境界を探し出すス
テップ、(6)2つの点線の境界を用いて、局部の平均
モジュール幅Cを計算するステップ、(7)2つの点線
の境界上の黒と白の四角形のモジュールの中心を決定す
るステップ、及び(8)小さなシンボル(即ち、内部に
ファインダーパターンのない)及びシンボルに対するデ
ータモジュールの中心を決定し、シンボルをデコードす
るステップを有する。全実線と点線の境界が先ず探さ
れ、その後、追加のステップが実行される場合、これら
のステップは順番に実行される。内部にファインダーパ
ターンを有する大きなシンボルに対して、この方法は、
更に、(1)内部のファインダーパターンのために点線
の境界の中心点を探し出すステップ、(2)データモジ
ュールの中心を決定するステップ、(3)データモジュ
ールの数が偶数であるかどうかを決定し、もし、そうで
あればECC200のデコード方法を用いて、シンボル
をデコードするステップ、及び(4)データモジュール
の数が奇数であるかどうか決定し、もし、そうであれば
ECC000−140のデコードルーチンを用いて、シ
ンボルをデコードするステップを有する。この方法に関
するより詳細な説明は、Data Matrix AIM Uniform Symb
ology Specification に成されている。
【0005】上記の方法は、与えられたシンボルに対し
て探し出すプロセスの間、実質的な量のメモリ容量を必
要とし、速いマイクロプロセッサをしばしば必要とし
て、相当な量の処理経費を必要とする。速いマイクロプ
ロセッサは、遅いものより高価であり、従って、データ
マトリックスシンボル(Data Matrix symbols)を探し出
し、デコードするために設計されたリーダーは高価であ
る。多分、より重要なことには、ファインダーパターン
は、クワイエットゾーンに隣接するデータセルのマトリ
ックスの2つの側のみで探し出され、且つ比較的狭いの
で、標準的なの探索アルゴリズムはファインダーパター
ンを必ず探し出すとは限らない。データマトリックスシ
ンボルは、シンボルが歪んでいたり、欠陥があるかどう
かを探すのはより困難である。もし、蓄積されたイメー
ジが視角歪みを受けているたり(即ち、イメージがシン
ボルに垂直でないリーダーで作られる場合)、ラベルが
そのファインダーパターンの境界に沿って損なわれてい
るならば、データマトリックスシンボルをデコードする
ための標準的な方法は適していない。
【0006】
【本発明の概要】本発明は、ファインダーパターンの部
分を識別し、シンボルの蓄積されたイメージのために境
界を構成することによって、データマトリックスシンボ
ルを含む、機械読取り可能なシンボルを探し出し、デコ
ードするための方法及び装置を例示する。本発明は、デ
ータマトリックスシンボロジーにおけるシンボルの大き
さに関して、例えば比較的大きなファインダーパターン
のようなファインダーパターンにおける冗長な情報を用
いることによって、シンボルのイメージを探す方法を提
供する。本発明は、以下の情報のみでデータマトリック
スシンボルの位置を探し出し、定めることができる。
(1)2つの反対側のコーナー、(2)ファインダーパ
ターンの3つの完全な境界或いは側面、(3)4つの部
分的な境界、(4)3つの部分的な境界と使わない境界
の1つのコーナー、又は(5)1つのコーナーと1つの
コーナーに面する2つの部分的な境界、これらの5つの
認識された情報の内の1つのみに基づいて、本発明は、
シンボルの境界を正確に評価することができ、そこから
シンボルを素早くデコードすることができる。
【0007】更に、本発明は、シンボルの変形を決定す
る。データマトリックスシンボルの変形を探し出すため
の必要な情報は、一つの完成したタイミングトラック
か、点線の境界が出合う完全なコーナーである。2つの
部分的な点線の境界は変形を評価するのに役立てること
ができる。このような評価の正確性は、シンボルのファ
インダーパターンの全てのどのくらい多く知られている
かに依存する。本発明は、シンボルを探し、デコードす
るスピードと複雑性を効果的にバランスする。非常に悪
く歪んでいたり、損なわれているシンボルを探し出し、
デコードするように、複雑なルーチンを作ることはでき
るけれども、このようなルーチンは時間がかかるであろ
う。消費者は、大量のシンボルが早くイメージ化され、
デコードされるように、高速のシンボルリーダーを求め
る。従って、時間のかかるデコードルーチンは望ましく
ない。
【0008】特許請求の範囲に記載されているように、
本発明は、広い意味おいて、蓄積されたイメージ内で所
定のイメージを探す出す方法を例示する。この所定のイ
メージは、第1と第2の線形形状と第1と第2の線形形
状に隣接する第1と第2の点線の線形形状を有する。本
方法は、(a) 第1と第2の線形形状の一つのエッジ点を
探すステップ、(b) 探し出されたエッジ点に基づいた第
1と第2の線形形状の一つの少なくとも一部を探し出す
ステップ、(c) 第1と第2の線形形状の他の少なくとも
一部を探し出すステップ、(d) 第1と第2の線形形状の
探し出された部分に基づいた第1の点線形状の少なくと
も1部を探すステップ、(e) 第1の点線形状、或いは第
1の線形形状の探し出された一部に基づいた第2の点線
形状を探し出すすステップ、及び(f) 第1と第2の線形
及び点線形状の探し出された部分に基づいて、蓄積され
たイメージにおける所定のイメージの位置を探し出すス
テップを有する。
【0009】本発明は、蓄積されたイメージ内の機械読
取り可能なシンボルのイメージを探す方法を例示する。
このシンボルは、シンボルの周辺に所定のパターンを有
する。所定のパターンは、共通の実線のコーナーで出合
う第1と第2の実線の線形形状、及び第1と第2の実線
形状の自由端から延び、共通の点線のコーナーで出合う
第1と第2の点線の線形形状を有する。本発明は、(a)
所定のパターンのエッジ点を見つけるステップ、(b) シ
ンボルの周辺の少なくとも一部を解析するステップ、
(c) 解析するステップに基づいて、所定のパターンの少
なくとも部分を探すステップ、この探された部分は、
(i) 実線と点線のコーナー、(ii)第1と第2の実線及び
点線の形状の少なくとも一部、(iii) 第1と第2の点線
形状と実線のコーナーの少なくとも一部、(iv)第1と第
2の実線形状と点線のコーナーの少なくとも一部、及び
(v) 4つの形状の3つの少なくとも完全な位置、の一つ
であり、そして(d) 所定のパターンの探された部分に基
づいて、蓄積されたイメージにおけるシンボルの位置を
決定するステップを有する。
【0010】本発明の他の特徴及び関連する利点は、図
面と一緒に以下の詳細な記載を理解することにより明ら
かになるであろう。
【0011】
【実施の形態】図1に示されているように、本発明のデ
ータ収集シンボロジーリーダー50は、例えばデータマ
トリックスシンボル(Data Matrix symbol)53のよう
な、データ収集シンボル、或いは他のシンボルを照射す
る光源52を有する。ここで用いられているように、
“データ収集シンボル”は、線形の、積み重ねの、領域
の、或いは他の機械読取り可能なシンボロジーからのシ
ンボルを含む。光開口61を有するセンサー54は、シ
ンボル53から反射された光を受け、受けた光を電気信
号あるいはプロフィールに変換する。例えば、光源52
は、LED、フラッシュバルブ、赤外線の光源、ラスタ
ー化したレーザー、或いは他の光を放射する素子であ
る。一方、センサー54は、一次元、或いは二次元のC
CD、半導体アレイ、光検出器、ビディコン、或いは他
の受け取った光を電気信号に変換することのできる領域
イメジャー(area imager) である。
【0012】レシーバ或いはコンバータ56はセンサー
54から電気信号を受け取り、プログラムされたコンピ
ュータ或いはプロセッサ60によって処理される信号に
変換する。代表的には、センサー54は、シンボル53
においてエレメントから反射された変調光を表すアナロ
グのプロフィール信号を生成する。重要なことは、も
し、プロセッサ60がディジタルコンピュータであれ
ば、コンバータ56は、センサー54によって生成され
たアナログ信号からシンボルのイメージにおける各ピク
セルをアナログ信号の種々の振幅を数値的に表す多重レ
ベルのディジタル信号に変換する。コンバータ及び/又
はプロセッサ60は、ディジタル形状でプロフィールを
蓄積するためのメモリ57に接続されている。コンバー
タ56、メモリ57及びプロセッサ60は、集積回路に
一体化されることができる。
【0013】センサー54は、電荷結合装置(CCD)
或いはM×Nのピクセルエレメント、例えば582×7
52のピクセルエレメント、の長方形のような活性化表
面を有する類似の領域イメジャーである。知られている
ように、センサーのCCDアレイにおける各ピクセルエ
レメントは、代表的にはグレーレベルの信号、即ちビデ
オデータ信号と同様、特定のピクセルエレメント上に当
たる光の量或いは強さを決定するアナログ信号を出力す
る。コンバータ56は、好ましくはこのグレー信号を、
例えばプロセッサ60によって用いられるグレーの16
レベルを有するディジタル信号へ変換する。メモリ57
は、ディジタル信号を蓄積し、好ましくは揮発性及び不
揮発性メモリ(例えば、ランダムアクセス及び電気的に
消すことができるリードオンリーメモリ)を有する。そ
の結果、リーダー50によって、センサー54の視野内
の物体、或いはイメージは電気信号へ変換される。これ
らの電気信号は、ディジタル化され、ランダムアクセス
部分のメモリ57に蓄積されるイメージとして蓄積さ
れ、(以下に述べるように)メモリに蓄積されたルーチ
ン100のもとでプロセッサ60によって検索され、処
理される。蓄積されたイメージを処理した後、プロセッ
サ60は、この様な処理の結果を周辺装置或いはコンピ
ュータ(図示せず)へ出力することができる。
【0014】図2と図3を参照すると、本発明のリーダ
ー50によって行われる代表的なルーチン100は、先
ず蓄積されたイメージ内のシンボル53のイメージを探
し出し、その後シンボルをデコードする。ここで用いら
れているように、用語“蓄積されたイメージ”は、一般
に、センサー54とプロセッサ60によって生成され
た、メモリ57に蓄積された視野の全体のイメージであ
り、シンボル53或いはデコードされるべき他のシンボ
ルを含む。処理の効率化のために、もし、センサー54
におけるCCDが582×752のアレイを有している
なら、メモリ57はピクセルのアレイに対応する、プロ
セッサによってアドレスされるメモリロケーションの5
82×752のアレイを有する。メモリ57に蓄積され
たイメージは、各ピクセルの位置が蓄積されたイメージ
における、水平位置と垂直位置を示す一対の数によって
表されるように、デカルト座標系によって参照されるの
が好ましい。例えば、蓄積されたイメージの上部左コー
ナーにおける第1のピクセルはデカルト座標(0,0)
に割り当てられ、一方、底部右のピクセルは座標(75
2,582)に割り当てられる。従って、蓄積されたイ
メージ内の対象、即ちピクセルの群は、座標系に基づい
て幾何学的及び三角関数の性質を用いて、数学的に決め
られる(即ち、以下に記載されるように、平面の対象物
を表すために用いられる直線、円、或いは他の幾何学
的、或いは三角方程式)。ここで用いられるように、用
語“探す(locates)"は、蓄積されたイメージ内の対象の
イメージの位置及び向きの双方を決定するために用い
る。
【0015】リーダーがシンボル53のイメージを走査
し、蓄積する場合、ルーチン100はステップ102に
おいて開始する。例えば、リーダー50は、手持ち製品
であり、光源52がシンボル53を照射するようにし、
センサー54、コンバータ56及びプロセッサ60がス
イッチの付勢で、メモリ57のシンボルのイメージを蓄
積するようにすることができるプロセッサ60に接続さ
れたトリガースイッチ(図示せず)を含む。リーダー5
0によってシンボルのイメージを蓄積する特定の手段及
び方法は従来の手段及び方法で、ここで更に説明の必要
もなく、所謂当業者によって理解されるであろう。ステ
ップ102において、プロセッサ60は蓄積されたイメ
ージ内のシンボル53を探し始める。図1に、更に図4
にはっきり示されているように、データマックスシンボ
ル53は、2つの実線の境界70と72、及び点線の境
界74と76から成るファインダーパターン、中央のデ
ータ領域を含む。2つの実線の境界70と72は、理想
的には互いに90°に位置され、交差するコーナー80
において出合う。しかし、より完全に以下に説明される
ように、光学歪み、或いは欠点は、図5のシンボル90
によって示されているように、実線のコーナーに対して
異なる角度を生じさせる。第1の境界70は自由端、即
ちコーナー82をゆうし、一方、第2の境界72は、自
由端のコーナー84を有している。
【0016】2つの点線の境界74と76は、コーナー
86において出合う。もし、コーナー86が黒の四角で
ないなら、データマトリックス53はバージョンECC
200シンボルであり、そうでなければ、シンボルはバ
ージョンECC140データマトリックスシンボルであ
る。第1の点線の境界74は、コーナー84において第
2の境界72の自由端を合わせ、一方、第2の点線の境
界76は、コーナー82において第1の境界70を合わ
せる。本発明の最終目標は、2つの実線の境界70と7
2、及び2つの点線の境界74と76の位置を決定する
ことであり、それにより、境界ボックス、即ちシンボル
53のためのアウトラインを決定する。シンボル53の
ためのアウトラインを決定することによって、リーダー
50はシンボル53内のデータセルの各々をより容易に
探すことができ、それにより、シンボルを早くデコード
する。用語“点(point)"及び“ピクセル(pixel)"は、こ
こでは互いに取り替えて使用される。
【0017】ステップ102において、プロセッサ60
は、例えば、クワイエットゾーンと実線の境界70と7
2の1つの間のエッジ点を探すために、蓄積されたイメ
ージを通過する1つ或いはそれより多くの仮想の走査、
或いはサンプリングパスを解析することによって、蓄積
されたイメージ内のシンボル53を探し始める。プロセ
ッサ60は、「A. Rosenfeld, Digital Picture Proces
sing, Academic Press, Vols. 1 and 2, 1982 」に記載
されているように、この分野でよく知られている、デカ
ルト座標系におけるエッジ点(X,Y)を探す。例え
ば、プロセッサ60は、イメージを通る水平パス、及び
水平パスから90°の垂直パス、及び水平パスから26
°、45°そしてび71°のパスのような蓄積されたイ
メージを通過する多くのサンプリングパスを解析するこ
とができる。蓄積されたイメージに対する他の知られた
サンプリング手段が用いられてもよい。
【0018】ステップ102において、プロセッサ60
によって調べられたピクセルの初期のサンプリングパス
或いはラインは、デカルト座標系に関して、左から右へ
エッジランニングに対するエッジ点を探すために、垂直
であるのが好ましい。プロセッサ60は、リーダー50
を用いるユーザーが、シンボル53のイメージは図4に
示されているように正しく向けられるように、シンボル
53に関して真っ直ぐにセンサー54を整列させたもの
と最初に仮定する。しかし、シンボルのイメージは、図
5に示されている逆のシンボル90のように、蓄積され
たイメージ内で他のいろいろな向きに向けられる。従っ
て、ステップ102においてプロセッサ60によって探
された点(X,Y)は、シンボル53(図4)に対する
第1の実線の境界70に沿うよりむしろ、おそらくシン
ボル90に対する第2の実線の境界72に沿っているで
あろう。
【0019】ステップ104において、プロセッサは、
探されたエッジに沿って延びるラインセグメントを定め
るか、探し、エッジ点(X,Y)を含むサブルーチン2
00を呼び出す。。図6を参照すると、ステップ104
において、典型的なラインセグメントを探すルーチン2
00はエッジ点(X,Y)、及び勾配即ちエッジ方向θ
を入力することによって開始する。勾配、即ちエッジ方
向は、ピクセル、即ち点におけるエッジ方向に関して、
与えられたピクセルからピクセルの強度における最大の
変化の距離を参考にする。本発明において、与えられた
点におけるエッジ方向の角度θは、その点のシンボル5
3における境界、或いは他の形状のエッジに略垂直であ
る。ステップ204において、プロセッサ60は、デカ
ルト座標系に関して、左の値に方向のフラッグをセット
する。
【0020】ステップ206において、プロセッサ60
はエッジ点(X,Y)において開始し、エッジに沿って
左方向に延びるラインセグメントを見つけるサブルーチ
ン250を呼び出す。図7を参照すると、エッジを見つ
けるサブルーチンは、ステップ252において、開始点
(エッジ点(X,Y))、エッジ方向θ及び方向フラッ
グの値を入力することによって開始する。ステップ25
4において、プロセッサ60は初期の点の変数(X’,
Y’)をエッジ点(X,Y)へ、また初期の方向の変数
θ’をエッジ方向θにセットする。ステップ254にお
いて、プロセッサ60は、変数Nを0に、また平均のエ
ッジ方向θAVE をθの値にセットする。最後に、ステッ
プ254において、プロセッサ60は、戻りフラッグ(a
returnflag) を失敗の値(a value of failure)にセッ
トする。
【0021】ステップ256において、プロセッサ60
は、方向のフラグが左の値を有するか否かを決定する。
もし、そうなら、ステップ258において、プロセッサ
60は、新しいエッジ点(X”,Y”)を探すために、
点(X’,Y’)の左隣にエッジ点を見つけ、新しいエ
ッジ点のための新しいエッジ方向θ”を見つける。“隣
(neighborhood)は、クラスター、即ちピクセルの3×3
の正方形群のようなピクセルの群と呼ぶ。代わりに、も
し、ステップ256において、プロセッサ60は、方向
のフラッグが左の値にセットされないことを決定するな
ら、ステップ260において、プロセッサ60は、新し
いエッジ点(X”,Y”)と新しい方向の向きθ”とし
て点(X’,Y’)の右隣に点を見つける。ステップ2
58或いは260の後、ステップ262において、エッ
ジ点が見つけられたか否かを決定する。もし、見つけら
れたなら、ステップ264において、プロセッサ60は
初期の点(X’,Y’)を新しく探されたエッジ点
(X”,Y”)にセットする。更に、ステップ264に
おいて、プロセッサ60は初期の方向の変数θ’を新し
いエッジ点での新しいエッジ方向θ”にセットし、値N
を1だけ増加する。
【0022】ステップ266において、プロセッサ60
は、方向の変数θ’と平均の方向の値θAVE 間の差の絶
対値がスレッショルド方向の値θSHRESHOLD より大きい
か否かを決定する。もし、大きくなければ、ステップ2
68において、プロセッサ60は、全ての前の方向の値
θ’を加え、その合計を変数Nの現在の値で除すること
によって、平均の方向の値θAVE を更新する。その後、
ルーチン250はステップ256に戻る。ステップ25
8(或いは260)、262、264、266及び26
8の下で、プロセッサ60は、蓄積されたイメージを解
析し、クワイエットゾーンに隣接して位置される境界の
エッジ点に対する方向θ’における蓄積されたイメージ
のピクセルの後に、ピクセルを実質的にサンプリングす
ることによって、実線の境界70或いは72の一つ、即
ち境界の一部に沿って移動する。
【0023】シンボル53は、図8に示された損なわれ
た実線の境界70’と72’のような、損なわれた境界
を有する。図8に示されているように、ファインダーパ
ターンは、1つ或いはそれより多くの境界が平均の幅部
分91より大きな幅を有するプリント或いはイメージの
欠陥を有している。知られているように、個々のデータ
セルと同様、実線の境界はX−ディメンジョンと等しい
幅を有する。このX−ディメンジョンは、与えられたシ
ンボロジーにおけるバー、スペース、データセル、或い
は他の形状の最も小さな幅(高さ)を表す。シンボル5
3は、また実線の境界70’と72’がX−ディメンジ
ョンより小さな幅を持つようにさせる、空隙92のよう
な他の損傷、或いは欠陥を有する。更に、境界は、境界
が不連続であり、不完全であるようなギャプ93を有す
ることもある。最後に、シンボル53は空き92’のよ
うな失われたコーナーを含むこともある。本発明による
ルーチンは、境界におけるこのような欠陥、空隙及びギ
ャップにもかかわらず、シンボル53に対するファイン
ダーパターンの実線の、及び点線の境界を探すのが好ま
しい。従って、ステップ266において、プロセッサ6
0は、いずれかのコーナー(コーナー80,82,或い
は84のような)が達せられないか、境界が不連続であ
り、あるギャップ93により終端していることを示すた
めに、新しい方向の変数θ’と平均の方向の値θAVE
差がスレッショルドの方向θSHRESHOL D を越える程大き
いか否を決定する。一定のθSHRESHOLD は5°〜15°
の間の値を有することが望ましい。
【0024】もし、ステップ266において、現在の方
向の値θ’は、それがスレッショルドの方向θ
SHRESHOLD より大きいように、平均と異なっているか、
或いはもし、ステップ262において、エッジ点が見つ
けられないならは、ステップ270において、プロセッ
サ60は、一定のNがスレッショルドの方向θ
SHRESHOLD より大きいか否かを決定する。一定のN
SHRESHOLD は、ラインセグメントが正確に探されないこ
とを決定する前に、プロセッサ60がステップ258
(或いは260)、262、264、266及び268をと
おしてループする最小の回数である。例えば、一定のN
SHRESHOLD は、3から5までの数程度小さく、3から5
までのピクセルのラインセグメントはラインセグメント
を識別するために必要であることを示している。しか
し、本発明は、リーダー60、イメージ化されているシ
ンボル53のサイズ等の解像度としてのファクターに依
存している、6〜15間の、サブルーチン250におけ
る値Nを用いるのが好ましい。
【0025】もし、プロセッサ60がNSHRESHOLD より
少なき数の反復に対して、ステップ258(或いは26
0)、262、264、266及び268を実行するな
ら、ステップ272において、プロセッサ60は、評価
されたX−ディメンション或いは幅Wの蓄積された値を
更新する。その後、プロセッサ60はステップ254に
おいて確立された失敗値にセットされた戻りフラッグ
で、サブルーチン250を呼んだルーチン或いはサブル
ールチンへ戻る(即ち、図6のサブルーチン200へ戻
る)。しかし、もし、プロセッサは、Nの値がステップ
270のNSHRESH OLD の一定値より大きいように、ルー
チン250における一連のステップを充分に実行するな
らば、プロセッサは、Nの現在値を蓄積するか、出力
し、250のステップの下で探された現在の点、即ち
(X’,Y’)に等しい終の点(XEND,YEND )をセ
ットする。更に、ステップ274においてプロセッサ6
0は現在の方向の値θ’に等しい終わりの方向の値θ
END を確立する。最後に、ステップ274において、プ
ロセッサは現在の平均の方向値θAVE も蓄積し、与え、
戻りフラッグを成功値へ変える。その後、ステップ27
2において、プロセッサ60は、Wの蓄積された値を更
新し、サブルーチン250を呼ぶルーチンか、あるいは
サブルーチンへ戻る(即ち、サブルーチン200へ戻
る)。
【0026】ステップ272の下で、プロセッサは、エ
レメントを横切るサブルーチン300を呼び出して、X
−ディメンションWを評価する。サブルールチン300
は勾配の方向θにおける終の点(XEND ,YEND )を実
質的にサンプリングして、その点における境界の幅或い
はエッジを決定する。図3に示されているように、コー
ナー点82と84においてのみ、実線の境界70と72
は1つのX−ディメンションの広さである。実線の境界
70と72に沿う他の点において、1つ或いはそれより
多くのデータセルは、勾配の方向における幅がX−ディ
メンションの2倍或いはそれ以上であるように、境界に
近接し得る。図9を参照すると、エレメントを横切るサ
ブルーチン300のステップ302において、プロセッ
サ60は、kがサンプリングの数を表す場合に、値kを
1に初期化する。ステップ304において、プロセッサ
60は、典型的なシンボル53に対して、中心点82で
ある開始点(X,Y)と同様に、勾配方向θと評価され
たX−ディメンションWをメモリから再び呼出す。も
し、開始点が実線の境界の終わりにあるなら、プロセッ
サ60は、境界に沿って後ろ向きに(例えば、左向き
に)左X−ディメンションの1/2(即ち、1/2W)
である開始点を選ぶ。次に、ステップ306において、
プロセッサ60は、現在の点(X,Y)における読み取
る強さIk (X,Y)を取り、蓄積し、ステップ308
において、プロセッサ308は、Ik (X,Y)をスレ
ッショルドの強さの値ITHRESHOLD と比較する。もし、
現在の読み取る強さIk (X,Y)はスレッショルドの
強さを越えないならば、プロセッサ60は、エレメント
がまだ横切られておらず、ステップ310へ進むことを
決定する。例えば、もし、黒いエレメントを表す低い値
を伴うピクセルの強さの値が1から16までの範囲にあ
るなら、ステップ308において、プロセッサ60は、
現在のピクセルに対する現在の強さの値が前記範囲にお
けるほぼ中間値より小さい、例えば、8の値より小さ
い。
【0027】ステップ310において、プロセッサ60
はXNEW =X+cosθ及びYNEW=Y+sinθとし
て新しいX軸とY軸座標を有する新しい点を確立する。
そてい、ステップ312において、プロセッサ60は、
値XNEW =X、値YNEW =Yをセットし、kを1つだけ
増加する。プロセッサ60は、ステップ306へ戻り、
新しいサンプリング点Ik (X,Y)へ移動し、且つ連
続する。この方法で、プロセッサ60は、第1の実線の
境界70の終わりの部分を通過する。しかし、ステップ
308において、プロセッサ60は、読み取る強さIk
(X,Y)がスレッショルドの強さを越え、エレメント
が横切られる可能性があることを決定するならば、プロ
セッサはステップ314へ続く。ステップ314におい
て、プロセッサ60は前に蓄積された2つの点と現在の
強さに続く2つの点における強さのレベルをチェックし
て、これらの値を以下のスレッショルドの強さの1/2
と比較する。
【0028】 1/2|(Ik-1 +Ik-2)-(Ik+1 +Ik+2)|> .5・ITHRESHOLD (1) この特別なステップは、エレメントが実際に横切られた
か、或いは異形が遭遇されたかを決定する助けとなる。
もし、現在の点の前後に、強さの違いがスレッショルド
の強さの1/2を越えないならば、言及された点は、反
射、シンボル53への損傷、プリントエラー等による単
なる異形である。プロセッサ60は、上述されたよう
に、ステップ312におけるkの値を増加するばかり
か、座標XNE W とYNEW を計算し、サブルーチン300
において、ステップ306へ戻る。しかし、もし、強さ
の相違がスレッショルドの強さの1/2より大きいな
ら、実線の境界70は横切られたことが確からしい。従
って、プロセッサ60は、ステップ312へ進み、以下
の距離の方程式を用いることによって、初期の開始点か
ら横切る点の距離(dist)を計算する。
【0029】 dist=√{(X1 −X K2 +(Y1 −Y K2 } (2) 最後に、プロセッサ60は、ステップ318へ進み、そ
こで計算された距離をシンボルWの評価されたX−ディ
メンションと比較する。もし、距離が評価されたX−デ
ィメンションの50%より小さいか、評価されたX−デ
ィメンションの150%より大きいかの何れかであるな
ら、プロセッサ60は、実線の計算されたサイズが小さ
すぎるか、大きすぎるかであり、修正されるべきである
ことを決定し、そしてステップ320へ進み、そこで現
在のサブルーチン300を呼び出すルーチン或いはサブ
ルーチンへもどり、そしてエレメントを横切る試みが失
敗したことを示す。しかし、距離が評価されたX−ディ
メンションの50%と150%の間にあるならば、プロ
セッサ60は、ステップ322へ進み、そしてルーチン
200かサブルーチン300を呼び出したサブルーチン
へ戻る。更に、ステップ322において、プロセッサ6
0は、新しく決定された距離に基づいてWの新しい値を
戻す。
【0030】図7におけるステップ272へ戻ると、プ
ロセッサ60は、評価されたX−ディメンションWの蓄
積された値をWの新しく受けとった値で更新する。例え
ば、プロセッサ60は、距離distを有する評価されたX
−ディメンションの蓄積された値を平均して、X−ディ
メンションのより正確な評価を与えることがででる。結
果として、プロセッサ60は、図5に示された、コーナ
ー82におけるX−ディメンションはコーナー84にお
けるX−ディメンションより非常に大きい斜視の光学的
歪みのような歪みにかかわらず、シンボル53に対する
X−ディメンションを評価することができる。プロセッ
サ60は、例えば、本発明者の出願( 出願番号 08/524,
368 filed September 6, 1995)による"Orientation Ind
ependentMethod for Robust Computing of X-Dimension
s in Code 1 System," を使用するために若干変更し
て、シンボル53のX−ディメンションを評価する他の
方法を用いることもできる。
【0031】図6へ戻って、参照すると、ステップ20
8において、プロセッサ60は方向性のフラグを右の値
にセットする。その後、ステップ210において、プロ
セッサ60は、開始点(X,Y)の右側でラインセグメ
ントを見つける。プロセッサ60は、ステップ252に
おける方向性のフラグ入力が右の値を有することを除い
て、図7のエッジを見つけるサブルーチン250を再び
呼び出す。サブルーチン250を再び実行した後、プロ
セッサ60は、サブルーチン200を終了し、図2及び
図3の主ルーチン100へ戻る。ステップ106におい
て、主ルーチン100でプロセッサ60は、境界の1
つ、或いは境界70又は72の一部がラインセグメント
を探すサブルーチン250(図7)の戻りフラグの値の
ような、主ルーチンへ戻されたデータを解析することに
よって、サブルーチン200の下で探されるか否かを決
定する。もし、ラインセグメントが見つけられなけれ
ば、ルーチン100は終了する。リーダー500は、聴
くことのできる及び/又は見ることのできる失敗表示を
ユーザーに与えて、ユーザーがシンボル53を再イメー
ジしなければならないことをユーザーに示す。シンボル
53を再イメージした後、プロセッサ60は、シンボル
をデコードする第2の試みを行うために、ルーチン10
0を再び実行する。代わりに、ここで述べたように、ル
ーチン100は、ルーチンにおける続くステップへルー
プすることによって、蓄積されたイメージ内にシンボル
53のイメージを探すように試み、反対のコーナー、部
分的な、或いは完全な点線の境界74又は76等のよう
なファインダーパターンの他の重要な形状を探すように
試み、それにより、シンボルの外側境界を評価する。し
かし、探すアルゴリズムの複雑性に対して、探すたり、
デコードしたりするスピードをバランスするために、ス
テップ106において、プロセッサ60は、シンボル5
3がシンボル境界の正確な評価を早く与えるには悪く損
傷しすぎていると仮定する。従って、ルーチン100
は、もし、部分的な境界が探されないならば、ステップ
106において終了する。
【0032】もし、ステップ106いおて、プロセッサ
が、境界70又は72の1つが探されたことを決定する
ならば、ステップ108におて、プロセッサ60は、探
されたラインの左端の実線のコーナー80を見つけるよ
うに試みる。従って、ステップ108において、プロセ
ッサ60は、コーナーを見つけるサブルーチン350を
呼び出す。図10を参照すると、コーナーを見つけるサ
ブルーチン350は、ステップ352において、開始点
(X,Y)、エッジ方向θ、終わりのフラグに対する
値、及び評価されたX−ディメンション、即ち幅Wを入
力することによって開始する。この開始点(X,Y)は
ステップ206(図6)の下で探されたラインの左端に
おいて前に探された終わりの点であり、一方、エッジ方
向θは終わりの点に対応する勾配方向である。終わりの
フラグは、ステップ108(図2及び図3)における左
の値にセットされ、一方、幅Wは、ステップ272(図
7)において決定される。
【0033】ステップ354において、プロセッサ60
は、終わりのフラグが左の値であるか否かを決定する。
もし、そうであるなら、ステップ356において、方向
の変数θ1 はエッジの方向θプラス90°、即ちπ/2
の値にセットされる。代わりに、もし、方向のフラグが
左の値(即ち右)にセットされないなら、ステップ35
8において、プロセッサ60は、方向の変数θ1 をθマ
イナス90°、即ちπ/2の値にセットする。ステップ
360において、プロセッサ60は、カウンターの値N
を1の値にセットする。プロセッサ60は、蓄積された
イメージを解析し、1つの幅の値Wを開始点から上方へ
左と2つの幅の値Wへ移動、即ち“ジャンプ”する。言
い換えれば、プロセッサ60は、以下の値を有する点
(X0 ,Y 0 )へ左に向かって最初ジャンプする。
【0034】 X0 =X+Wcosθ1 (3) Y0 =Y+Wsinθ1 (4) その後、プロセッサ60は、以下の値を有する点
(X1 ,Y1 )の上に向かって幅Wの2倍の距離ジャン
プする。 X1 =X0 +2Wcosθ (5) Y1 =Y0 +2Wsinθ (6) ステップ362において、プロセッサ60は、以下の値
を有する新しい点(X 1 ,Y1 )の右に向かってMに等
しい距離移動、即ちジャンプする。 X1 =X1 +Wcos(θ1 +π) (7) Y1 =Y1 +Wsin(θ1 +π) (8) ステップ364において、プロセッサ60は、新しい点
(X1 ,Y1 )の近傍にあるエッジ点を見つけて、新し
いエッジ点(X1 ,Y1 EDGEを定める。ここで説明さ
れるように、プロセッサは、好ましくは3ピクセル×3
ピクセルの正方形領域を解析し、その隣内に黒から白ピ
クセルへの変換を定める。
【0035】ステップ366において、プロセッサ60
は、エッジ点が見つけられたかどうかを決定する。も
し、見つけられなければ、ステップ368において、プ
ロセッサ60は、カウンターの値Nがスレッショルドの
値NTHR より大きいか否かを決定する。もし、カウンタ
ーの値Nがスレッショルドの値NTHR より大きくなけれ
ば、ステップ370において、プロセッサ60は、1だ
けNの値を増加し、ステップ360において確立された
上部の点(X1 ,Y1 )から上方へ新しい点の幾つかの
ピクセルを確立する。言い換えれば、ステップ370に
おいて、プロセッサ60は以下の値を有する新しい上部
の点(X1 ,Y1 )へジャンプする。 X1 =X0 +(2+N)*Wcosθ (9) Y1 =Y0 +(2+N)*Wsinθ (10) この方法において、もし、図8における損傷されたコー
ナー92’によって示されるように、コーナー80が損
傷されていれば、ステップ372において、プロセッサ
60は、第2の実線の境界72の終端にける点へ損傷さ
れたコーナーを越えて移動する試みにおいて、上方へ新
しい点を確立する。その後、プロセッサ60は、プロセ
ッサが上方へ増加して移動するに従って、エッジがステ
ップ366において見つけられるか、コーナーの値Nが
スレッショルドの値NTHR より大きいかの何れかななる
まで、ステップ362,364,366,368及び3
72を繰り返す。
【0036】値NTHR は、プロセッサ60がステップ3
62,364,366,368及び372を介してルー
プする多数回を示す。これらのステップの特定の繰り返
し回数、例えばN=5の後、第6の繰り返し中に、値N
がスレッショルドの値NTHRより大きく、値Nはコーナ
ー80が悪く損傷されてすぎているか、プロセッサ60
が同じであるが、シンボル53でない蓄積されたイメー
ジにおけるイメージを解析していることを示している。
従って、ステップ372において、プロセッサ60は失
敗の値を主ルーチン100へ戻し、コーナーを見つける
サブルーチン350は終了する。エッジ点が366にお
いて見つけられると、ステップ374においてプロセッ
サ60は、両側のエッジ点(X1,Y1)EDGEから延びるラ
インを見つけ、見つけられたラインの終わりの点を探
す。従って、ステップ374においてプロセッサ60
は、図6のラインを探すサブルーチン200を呼び出
す。サブルーチン200の下でラインと終わりの点を探
した後、ステップ376において、プロセッサ60は、
ステップ374において見つけられたラインの右に位置
する終わりの点(XEND ,YEND ) が、ステップ104
(図2及び図3)において決められたラインの左に位置
する終わりの点である開始点(X,Y) に近いかどうか
を決める。ステップ376において、プロセッサ60は
終わりの点(XEND ,YEND ) と開始点(X,Y) 間の
式(2)における距離を決め、そしてその距離がスレッ
ショルド値より小さいか否かを決める。スレッショルド
値は、評価されたXディメンジョンの1/2から2倍内
にあり、値Wの数倍のような値である。もし、決められ
た距離がスレッショルドより小さくないならば、ステッ
プ378において、プロセッサ60は、コーナー80が
見つけられなかったことを示して、失敗した値をメイン
ルーチン100へ戻す。しかし、決められた距離がスレ
ッショルドより小さいなら、プロセッサ60は、成功し
た値、及びステップ374において決められたラインの
終わりの点を戻す。
【0037】図2および図3に戻って参照すると、ステ
ップ110において、プロセッサ60は、コーナーが図
10のコーナーを見つけるルーチン350の下で見つけ
られたか否かを決める。もし、見つけられなかったな
ら、ステップ112においてプロセッサ60は、方向フ
ラッグを右の値にセットし、ステップ106で決められ
たラインの右端で実線のコーナー80を見つけようとす
る。例えば、図4に示されたシンボル53は、蓄積され
たイメージ(図11に示されたように)において反時計
方向に90度回転され、その結果、ステップ104にお
いて決められたラインは、実線の境界(実線の境界70
以外の)である。図10のコーナーを見つけるサブルー
チン350を行った後、サブルーチンは図2および図3
におけるメインルーチン100へ戻り、プロセッサ60
は、ステップ114においてコーナー80が見つかった
か否かを決める。もし、見つからなかったなら、ルーチ
ン100はステップ132へジャンプして、以下に説明
されるように実線のコーナー80を無視して、点線の境
界74と76を探す。しかし、上述のように、ルーチン
100は、悪く損傷されたか、或いは破壊されたシンボ
ルの境界を依然として評価しようとしてルーチンの残り
のステップと共に交互に続けることができる。
【0038】もし、プロセッサ60がステップ110或
いは114において、コーナー80が見つけられたこと
を決めると、ステップ116において、プロセッサ60
は見つけられたコーナーに隣接する実線の境界を探そう
とする。例えば、もし、第1の実線の境界70がステッ
プ104において最初に見つけられたなら、ステップ1
16において、プロセッサ60は実線の境界72を見つ
けるように試みる。従って、ステップ116において、
プロセッサ60は、前に探されたコーナー点である開始
点と共に、図7のラインセグメントを探すルーチン25
0、およびシンボル53が図5に示されたように向けら
れていると仮定して、上(up) の値にセットされた方向
フラッグを呼び出す。サブルーチン50は、関連分野に
おける当業者によって理解されるであろう新しい方向を
反映するために、適当に変更される。
【0039】サブルーチン250の下で第2の境界を突
き止めようとした後、図2のステップ118においてプ
ロセッサ60は、第2の実線の境界72が見つけられた
か否かを決める。もし、見つけられなかったなら、ステ
ップ120において、プロセッサ60はコーナーを探し
出すサブルーチン350を呼出し、ステップ104にお
いて決められたラインの反対端にある実線のコーナー8
0を探し出すように試みる。図11を参照すると、シン
ボル92が反時計方向に90度回転されている点を除い
て、図4のシンボル53と同様なシンボル92が示され
ている。更に、コーナー84にあるプリントの欠陥は、
点線の境界74の端を裁り落とすようにし、第2の実線
の境界72の終わりの点に接続される。その結果、誤り
のコーナー84’は、ステップ108において実線のコ
ーナー80と間違えられる。しかし、プロセッサ60は
ステップ116において第2の実線の境界を見つけるの
に失敗する。従って、もし、ステップ118においてプ
ロセッサ60は、第2の境界が存在しないことを決める
なら、ステップ120において、プロセッサ60は、ス
テップ104において最初に突き止められたラインの反
対端にある実線のコーナーを突き止めようとする。
【0040】結果として、ステップ120において、プ
ロセッサ60は図10のコーナーを探し出すサブルーチ
ン350を呼び出して、図11のシンボル92に対して
ライン72の反対端にある実線のコーナー80を探し出
そうとする。ステップ122において、プロセッサ60
は実線のコーナーが突き止められたか否かを決定する。
もし、突き止められなかったなら、ルーチンは終了す
る。代わりに、上述のように、ルーチン100は、それ
にもかかわらず、シンボルの境界を突き止め続けようと
する。もし、ステップ122においてプロセッサ60は
コーナー80が探されたか否かを決定するならば、ステ
ップ124において、プロセッサは、図7のラインセグ
メントを探すサブルーチン250を呼び出すことによっ
て、探された実線のコーナー80から延びる第2の実線
の境界(即ち、境界70)を探すように試みる。その
後、図2のステップ126において、プロセッサ60
は、第2の実線の境界がステップ124において突き止
められたか否かを決める。もし、突き止められなかった
なら、ルーチン100は終了する。もし、第2の実線の
境界がステップ126或いはステップ118において突
き止められたならば、ステップ128においてプロセッ
サ60は、(実線のコーナー80の反対側のコーナーか
ら延びる)第2の実線の境界の自由端から延びる第1の
点線の境界を見つけようとする。
【0041】図12を参照すると、点線を突き止めるサ
ブルーチン400においてプロセッサ60は、ステップ
402において、開始点(X,Y)、方向θ、幅Wを入
力することによって開始し、カウンターの値Nを0にセ
ットする。この開始点(X,Y)は、第2の実線の境界
72の終わりの点84のような実線の境界の終わりの点
である。方向θは、勾配の方向であり、例えばそれは実
線の境界72の方向に垂直であり、点線74の方向と平
行であるべきである。ステップ404において、プロセ
ッサ60は、開始点(X,Y)に関して、実線の境界上
を内方に移動する。例えば、もし、開始点(X,Y)が
第2の実線の境界72のコーナー点84であるなら、プ
ロセッサ60は、ステップ404においてXディメンジ
ョンの1/2、即ち1/2Wに等しい距離下方へ移動す
る。その後、ステップ406において、プロセッサ60
は方向θにおいて実線の境界72を横切り、上述の図9
のエレメントを横切るサブルーチン300の下で、幅W
に対して新しい値を計算する。
【0042】ステップ408において、プンロセッサ6
0は、実線の境界の端(即ち、後の繰り返しの下での黒
いエレメント)が突き止められたか否かを決定する。プ
ロセッサ60は、サブルーチン300のステップ316
の下で決定された距離distを一対の距離のスレッショル
ドと比較する。第1の距離のスレッショルドはエレメン
トに対する評価されたXディメンジョンWの2倍(即
ち、2*W)であり、一方第2の距離のスレッショルド
は、評価された黒のXディメンジョンWの1/2であ
る。知られているように、プリントの欠陥、光学歪み等
のために、与えられたシンボルにおける黒の、或いは暗
いエレメントのXディメンジョンは、同じシンボルにお
いて、たとえ理想的にそれらが同じであるべきであって
も、白い、或いは明るいエレメントのXディメンジョン
より大きいか、小さい。ステップ408において、プロ
セッサ60は、決定された距離distが以下の式に基づい
た第1と第2の距離のスレッショルド間に横たわってい
るか否かを決める。
【0043】 1/2*W1 <W≦2*W1 (11) ステップ408において、プロセッサは、大きなプリン
ト欠陥か、或いはシンボル53のためのデータセルにサ
ンプリングするかを示して、決定された距離distが第1
のスレッショルド2*Wより大きいか、または第2のス
レッショルド1/2*Wより小さいかを決定するなら、
サブルーチン400は終了する。しかし、もし、決定さ
れた距離distがッスレッショルド間にあるなら、ステッ
プ410において、プロセッサ60は、実線の境界72
に隣接する白いエレメントを横切る。ステップ410に
おいて、プロセッサ60は、図9のエレメントを横切る
サブルーチン300を呼び出す。しかし、図9のサブル
ーチン300は、関連分野の当業者に明らかなように、
黒以外の白いエレメントの横断に対して補償するために
若干変更される。例えば、ステップ308において、プ
ロセッサ60は、現在のピクセル強度のスレッショルド
がスレッショルド強度ITHRESHOLD より小さいか否かを
決める。その後、図12のステップ412において、プ
ロセッサ60は、白いエレメントの端が見つかったか否
かを決定する。プロセッサ60は、サブルーチン300
の下で決められた白いエレメントの距離distを同じ対の
スレッショルドと比較する。もし、以下の式に基づい
て、決められた幅の距離Wが見積もられたXディメンジ
ョンW2 の1/2より大きく、見積もられた白のXディ
メンジョンW2 の2倍より小さいなら、プロセッサ60
は、白いエレメントが一般に交差していることを決定す
る。
【0044】 1/2*W2 <W≦2*W2 (12) 従って、プロセッサ60は、それが値Nを1だけ増加し
た場合に、ステップ414へ進む。そうでなければ、も
し、評価された距離がスレッショルドの外側にあれば、
プロセッサ60は失敗した値を戻し、サブルーチン40
0を終了する。ステップ414に続いて、プロセッサ6
0は、ステップ416において評価された黒と白のXデ
ィメンジョンW1 とW2 を以下の式で平均化する。
【0045】
【数1】
【0046】平均化され、評価された黒と白のXディメ
ンジョンW1 とW2 は、以下に説明されるように、ステ
ップ406,408,410,412および414の連
続した繰り返しの間後で使用される。従って、ステップ
418において、プロセッサ60は、カウンターの値N
がスレッショルドの値NTHREより大きいか否かを決め
る。スレッショルドの値NTHREは、ステップ406,4
08,410,412,414および416による最大
の繰り返し数を表す72の値を有するのが好ましい。図
13を参照すると、シンボル94は、図4のシンボル5
3と類似した4つのシンボルから実質的になる大きなデ
ータ・マトリックス・シンボル(Data Matrix symbol)を
示す。データ・マトリックス・シンボロジーの下で、図
13に示されるように、多重シンボルは、単一の大きな
シンボルを与えるために、四角のマトリックス状に隣接
されてもよい。現在、最大のシンボルサイズは、72の
白のデータセル(或いは黒のデータセル)を有する単一
の結合された点線の境界を用いる。従って、もし、ステ
ップ418においてプロセッサ60がカウンターの値N
が72より大きいことを決定するならば、プロセッサ
は、破損したシンボルを解析し、データ・マトリックス
・シンボルを解析しないが、しかし蓄積されたイメージ
のある他の情報を解析する。しかし、もし、カウンター
の値Nがスレッショルドの値NTHREより小さいならば、
ルーチンはループバックして、ステップ406,40
8,410,412,414および416を行う。これ
らのステップは、プロセッサ60が最早ステップ408
或いは412において黒或いは白のエレメントを探し出
すことができなくまで、即ちステップ418のスレッシ
ョルド値を越えるまで連続して行われる。
【0047】図2および図3に戻って参照すると、プロ
セッサ60は、点線の境界74のような第1の点線の境
界をステップ128において探した後、プロセッサは、
ステップ130において、点線の境界が探されたか否か
を決める。もし、そうでないなら、シンボルは、プロセ
ッサ60がサブルーチン400の下で点線の境界を探す
ことを禁止する破損したコーナー84(或いは82)を
有する。従って、ステップ132において、プロセッサ
60はステップ104において前に決定された第1の実
線の境界、即ち境界72の反対端を探す。代わりに、も
し、プロセッサ60がステップ114において実線のコ
ーナー80が見つからなかったことを決めたなら、ルー
チン100はステップ132へ続く。その後、ステップ
134において、プロセッサ60は、図12の点線の境
界を突き止めるサブルーチン400を用いることによっ
て、実線の境界の見つけられた反対端に接続された他の
点線の境界を見つけようとする。例えば、もし、コーナ
ーが悪く損傷されているなら、プロセッサ60は、シン
ボル53(図4)に対する実線の境界70のコーナー8
2から延びる点線の境界を探し出すためにサブルーチン
400を用いる。ステップ136において、プロセッサ
60は、サブルーチン400が点線の境界(例えば、点
線の境界76)を突き止めたか否かを決定する。もし、
突き止めないなら、ルーチンは終了する。しかし、ルー
チン400がステップ136或いはステップ130にお
いて点線の境界の一つを突き止めたなら、プロセッサは
他の点線の境界を探し出す。
【0048】最初に、ステップ138においてプロセッ
サ60は、もし、点線の境界74がシンボル53(図
4)に対してステップ128において前に探し出された
ならば、サブルーチン400を呼出し、第1の探し出さ
れた点線の境界から垂直に延びる点線の境界、例えば点
線の境界76を見つけようと試みる。プロセッサ60は
コーナー86において開始し、それが点線の境界74を
探し出すにしたがって、サブルーチン400の下でコー
ナー84に左に向かって移動する。ステップ140にい
て、プロセッサ60は、第2の点線の境界が探し出され
たか否かを決める。もし、そうでないなら、ステップ1
42において、プロセッサ60は、ステップ128にお
いて第1の点線の境界を見つけたなら、第1の実線の境
界の反対端を探し出す。例えば、点線の境界74と76
が合うコーナー86は、悪く損傷され、或いは壊されて
いるので、プロセッサ60は、第1の探し出された点線
の境界から垂直に延びる点線の境界を探し出すことがで
きない。従って、ステップ144において、プロセッサ
60は、点線の境界を探し出すサブルーチン400の下
で、探し出された反対端の点に接続された点線の境界を
探し出そうとする。例えば、もし、プロセッサ60がス
テップ128において第1の点線の境界を探し出した
が、しかしステップ138において、そこから垂直に延
びる点線の境界76を探し出すのに失敗したら、プロセ
ッサ60は、コーナー82において開始し、サブルーチ
ン400の下で、そこから上方へ点線の境界76に沿っ
て移動することによって、点線の境界76を探し出そう
と試みる。ステップ146において、プロセッサ60
は、サブルーチン400が第2の点線の境界を探し出し
たか否かを決める。もし、探し出せないなら、ルーチン
100は終了する。
【0049】もし、ルーチン200がステップ146或
いはステップ140において、第2の点線の境界を探し
出したなら、プロセッサ60は、ステップ147におい
て、プロセッサがステップ114において実線のコーナ
ー80を見つけ出すのに失敗したか否かを決める。も
し、失敗したなら、ステップ147において、プロセッ
サ60は第2の実線の境界を探す。プロセッサ60は、
今のところは探し出されていない実線の境界を探すため
に、第2の探し出された点線の境界の終わりの点におい
て開始して、サブルーチン250を実質的に行う。例え
ば、もし、プロセッサ60がコーナー80を探し出すの
に失敗したが、しかし実線の境界70、点線の境界76
と74を探し出したなら、プロセッサ60は、ステップ
147において、サブルーチン250を用いて、コーナ
ー84で開始して、実線の境界72を探し出す。
【0050】その後、ステップ148において、プロセ
ッサ60は、点線の境界74と76がシンボルに対する
バージョンを決めるために出合うコーナー86を調べ
る。プロセッサ60は、点線の境界74と76がほぼ同
じデカルト座標において、或いは座標の1つの評価され
たXディメンジョンW内で終わるか否かを決める。も
し、点線の境界がほぼ同じコーナー点で、即ち黒いエレ
メントで終わるなら、プロセッサ60は、シンボルがバ
ージョンECC140のシンボル(例えば、図5のシン
ボル)であることを知る。しかし、2つのコーナー点間
の距離が評価されたXディメンジョンのほぼ2倍の平方
根であるなら、プロセッサ60は、第1と第2の点線の
境界74と76が、図4に示されるように白いエレメン
トで終わることを決める。もし、そうなら、プロセッサ
60は、シンボル53がバージョンECC200データ
・マトリックス・シンボルであることを決める。もし、
プロセッサ60は、コーナー86が(例えば、ステップ
138において第2の点線の境界を探すのに失敗するこ
とによって)損傷されていることを決めるなら、プロセ
ッサ60は2つの点線の境界74と76を解析して、シ
ンボルに対してバージョンを評価する。
【0051】ステップ150において、プロセッサ60
は適切なデコードルーチンを選び、シンボル53の探し
出されたイメージをデコードする。プロセッサ60は、
前のステップ148からデータ・マトリックス・シンボ
ルのバージョンを知っているので、プロセッサ60は、
適切なデコードルーチンを選ぶことができる。デコード
するルーチンはこの分野では良く知られている。もし必
要なら、プロセッサ60は、ステップ150において既
知の線形を適合するルーチンを行い、シンボル53の周
辺或いは境界のあるボックスを定めるために、実線の境
界70と72、点線の境界74と76、及び/又はコー
ナー点80、82、84及び86を通してラインを適合
する。もし、境界のコーナー、或いは部分が失われてい
るなら、線形を適合する技術(linear fitting techniqu
es) は、シンボルの外側境界を正確に評価し、シンボル
内のデータセルの位置をきめることを容易にする。線形
を適合する技術は、この分野で知られており、図5のシ
ンボル90のような悪く壊れたシンボルに特に有利であ
る。本発明者の出願に係る、Method and Apparatusfor
Locating Data Regions in Stored Images of Symbols
(シンボルの蓄積されたイメージにおけるデータ領域を
探し出す方法および装置),出願番号08/571,257, 出願日
1995年12月11日及びMethod and Apparatus for Accurat
ely LocatingData Regions in Stored Images of Symbo
ls ( シンボルの蓄積されたイメージにおけるデータ領
域を正確に探し出す方法および装置),出願番号08/607,1
00, 出願日1996年 2月26日のような、既知の線形を適合
するルーチンおよび境界のボックスを評価するルーチン
を用いるために、本発明はここでの詳細な記載に基づか
れている。すべて引用した米国特許および出願は、それ
らの全体に述べられているように、レファレンスによっ
てここに組み入れられる。
【0052】本発明の特定の実施の形態、及び本発明に
対する例示が説明のために記載されたが、本発明の精神
及び範囲から逸脱することなく、当業者によっていろい
ろな変形を行うことができる。ここに記載された、本発
明の教示は、必ずしも機械読み取り可能なシンボル読み
取り装置に限らず、他の機械翻訳装置(machine version
system)に適用され得る。例えば、本発明は、データ・
マトリックス・シンボルの中心ファインダーパターンを
探し出すこととして上述されたが、本発明は、同様な、
線形の点線および“L型の”パターンを探すことを必要
とする機械翻訳装置に応用することができる。本発明
は、いろいろな環境、例えば自動組み立て環境におけ
る、正方形、矩形或いはたの多角形の物体を探すための
ロボットアームを有するコンピュータシステムに容易に
用いることができる。
【0053】更に、ルーチン100は、ある境界の一部
分のようなファインダーパターンのある一部分を探すの
に失敗した後に終了するが、それにもかかわらず、たと
えルーチンが、ここで一般に述べられたルーチンより複
雑になり、従って遅くなることがあっても、特別な形状
を探すのに失敗した後に続けることができる。これら
の、及び他の変更は上記の詳細な記載に照らして行われ
ることができる。一般に、特許請求の範囲において用い
られている用語は、本発明を明細書に記載された特定の
実施の形態に限定するために解釈されるべきでなく、デ
ータ・マトリックス・シンボルのような形状或いはシン
ボルを探し出すために、特許請求の範囲に従って動作す
る全ての探し出すルーチンを含むように解釈されるべき
である。一つの形状を探すような用語は、物体上に印刷
されたライン或いは境界のような識別できるマーク、或
いは物体の認識できる部分を形成しているラインを自動
的に認識するためのあらゆる方法或いは構造を含むよう
に解釈されるべきである。従って、本発明は、明細書の
開示だけに限定されるべきでないが、その範囲は特許請
求の範囲から完全に決められるべきである。
【図面の簡単な説明】
【図1】データ・マトリックス・シンボルの平面を有す
る、本発明の典型的なデータ・コレクション・シンボロ
ジーのブロック図である。
【図2】データ・コレクション・シンボロジー、特に図
1のデータ・マトリックス・シンボルを探し、且つデコ
ードするための典型的なルーチンのフローチャートを示
す。
【図3】データ・コレクション・シンボロジー、特に図
1のデータ・マトリックス・シンボルを探し、且つデコ
ードするための典型的なルーチンのフローチャートを示
す。
【図4】図1のデータ・マトリックス・シンボルの拡大
図である。
【図5】光学的に歪んだデータ・マトリックス・シンボ
ルの概略図である。
【図6】開始点の反対側のラインを探し出すためのサブ
ルーチンのフローチャートである。
【図7】開始点の1つの側からラインセグメントを探し
出すためのサブルーチンのフローチャートである。
【図8】データ・マトリックス・シンボルのファインダ
ーパターンに対する、歪んだ及び/又は損傷した実線の
境界の拡大図である。
【図9】エレメントを横切るためのサブルーチンのフロ
ーチャートである。
【図10】データ・マトリックス・シンボルのファイン
ダーパターンに対する実線のコーナーを探し出すための
サブルーチンのフローチャートである。
【図11】誤りの実線コーナーを有するデータ・マトリ
ックス・シンボルの概略図である。
【図12】データ・マトリックス・シンボルのファイン
ダーパターンのための点線の境界を探し出すためのサブ
ルーチンのフローチャートである。
【図13】多数の、隣接するファインダーパターンを有
する大きなデータ・マトリックス・シンボルの概略図で
ある。

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】蓄積されたイメージ内の所定のイメージを
    探し出す方法であって、前記所定のイメージは、第1と
    第2の線形形状、及び前記第1と第2の線形形状に隣接
    する第1と第2の点線形状を有しており、 前記第1と第2の線形形状の1つのエッジ点を探し出す
    ステップと、 前記探し出されたエッジ点に基づいて、前記第1と第2
    の線形形状の1つの少なくとも一部を探し出すステップ
    と、 前記第1と第2の線形形状の他の1つの少なくとも一部
    を探し出すステップと、 前記第1或いは第2の線形形状の前記探し出された部分
    に基づいて、前記第1の点線形状の少なくとも一部を探
    し出すステップと、 前記第1の点線形状或いは前記第1の実線形状の探し出
    された部分に基づいて、前記第2の点線形状を探し出す
    ステップと、 前記第1と第2の線形形状及び点線形状の探し出された
    部分に基づいて、前記蓄積されたイメージ内の所定のイ
    メージの一部を探し出すステップ、を有する方法。
  2. 【請求項2】前記第1と第2の線形形状の1つの少なく
    とも一部を探し出すステップは、 前記探し出されたエッジ点の第1の側から延びる前記第
    1の実線形状の新しいエッジ点を探し出すステップと、 前記新しいエッジ点いおけるエッジ方向がスレッショル
    ドの方向値と所定の関係を有しているか否かを決定する
    ステップと、 前記エッジ方向が前記スレッショルドの方向値と所定の
    関係を有するまで、新しいエッジ点を探し出すステップ
    と決定するステップを繰り返すステップ、を有すること
    を特徴とする請求項1に記載の方法。
  3. 【請求項3】前記第1と第2の線形形状の1つの少なく
    とも一部を探し出すステップは、前記探し出されたエッ
    ジ点の反対側から延びる第1の実線形状のエッジを探す
    ことを特徴とする請求項1に記載の方法。
  4. 【請求項4】前記第1と第2の線形形状は共通のコーナ
    ーで出会い、且つ更に、前記第1の実線形状の第1の終
    わりの点を探し出すステップと、 前記終わりの点から所定距離離れた、蓄積されたイメー
    ジにある場所へ移動するステップと、 前記位置に近い前記第2の実線形状の新しいエッジ点を
    探し出すステップと、 前記新しいエッジ点から、前記第2の実線形状に沿って
    延びるライン、前記ラインは前記第1の終わりの点に近
    い第2の終わりの点を含むラインを決めるステップと、 前記第1と第2の終わりの点がスレッショルド値と所定
    の関係を有するか否かを決めるステップと、 第1と第2の終わりの点に基づいて、共通のコーナーを
    決定するステップ、を有することを特徴とする請求項1
    に記載の方法。
  5. 【請求項5】更に、前記第1の実線形状の探し出された
    部分に基づいて、共通のコーナーを探し出すステップを
    有し、他の1つの少なくとも一部を探し出すステップは
    前記探し出された共通のコーナーに基づいて、前記第2
    の実線形状の一部を探すことを特徴とする請求項4に記
    載の方法。
  6. 【請求項6】前記第1と第2の点線形状は、交互に暗い
    及び明るいエレメントを有し、前記第1と第2の点線形
    状を探し出すステップは、 (a) 第1の実線形状の自由端において開始するステップ
    と、 (b) 暗いエレメントを横切るステップと、 (c) 前記暗いエレメントの幅を決定するステップと、 (d) 前記暗いエレメントの幅が暗い幅の値に基づいて受
    入れ可能であるか否かを決定するステップと、 (e) 明るいエレメントを横切るステップと、 (f) 前記明るいエレメントの幅を決定するステップと、 (g) 前記明るいエレメントの幅が明るい幅の値に基づい
    て受入れ可能であるか否かを決定するステップと、 (h) 前記暗いエレメントと明るいエレメントの決定され
    た幅に基づいて、前記暗い幅と明るい幅の値を更新する
    ステップと、 (i) 前記第1の点線形状が探し出されるまで、(b) から
    (h) までのステップを繰り返すステップ、を有すること
    を特徴とする請求項1に記載の方法。
  7. 【請求項7】前記第2の点線形状を探し出すステップ
    は、 前記第1の点線形状の自由端において始めるステップ
    と、 前記第2の点線形状が探し出されるまで、前記第1或い
    は第2の線形形状の自由端に向かう方向において、前記
    (b) から(h) までのステップを繰り返すステップ、 を有することを特徴とする請求項6に記載の方法。
  8. 【請求項8】前記第2の点線形状を探し出すステップ
    は、 前記第2或いは第1の線形形状の自由端において開始す
    るステップと、 前記第2の点線形状が探し出されるまで、前記(b) から
    (h) までのステップを繰り返すステップ、を有すること
    を特徴とする請求項6に記載の方法。
  9. 【請求項9】前記暗いエレメントを横切るステップは、 現在の位置における強さの読み取りをするステップと、 前記強さをスレッショルドの強さと比較するステップ
    と、 現在の位置の強さが前記スレッショルドの強さを越える
    まで、横切る方向に沿って位置を増加して進ませるステ
    ップと、 暗いエレメントの終わりとして前記スレッショルドの強
    さを越えた場合、現在位置を示すステップ、を有する請
    求項6に記載の方法
  10. 【請求項10】前記第1の点線形状は幾つかの線形に位
    置した暗いエレメントを有し、前記第1の点線の特徴を
    探すステップは、 (a) 第1の実線形状の自由端において開始するステップ
    と、 (b) 暗いエレメントを横切るステップと、 (c) 前記幾つかの線形に位置した暗いエレメントにおけ
    る次の暗いエレメントの始めに移動するステップと、 (d) 第1の点線の形状が探し出されるまで、前記(b) と
    (c)のステップを繰り返すステップ、を有することを特
    徴とする請求項1に記載の方法。
  11. 【請求項11】蓄積されたイメージ内の機械読み取り可
    能なシンボルのイメージを探し出す方法であって、前記
    シンボルは前記シンボルの周辺に所定のパターンを有
    し、前記所定のパターンは共通の実線のコーナーで出合
    う第1と第2の実線の線形形状、及び前記第1と第2の
    実線形状から延び、共通の点線のコーナーにおいて出合
    う第1と第2の点線の線形形状を有しており、前記方法
    は、 所定のパターンのエッジ点を見つけ出すステップと、 前記シンボルの周辺の少なくとも一部を解析するステッ
    プと、 前記解析するステップに基づいて、前記所定のパターン
    の少なくとも部分を探し出すステップであって、探し出
    された部分は、(a) 実線と点線のコーナー、(b) 前記第
    1と第2の実線形状及び点線形状の少なくとも一部、
    (c) 前記第1と第2の点線形状の一部および前記実線の
    コーナー、(d) 前記第1と第2の実線形状の一部および
    前記点線のコーナー、及び(e) 前記4つの形状の3つの
    少なくとも完全な位置の一つであり、 前記所定のパターンの探し出された部分に基づいて、蓄
    積されたイメージにおけるシンボルの一部を決定するス
    テップ、を有する方法。
  12. 【請求項12】探し出されるステップは、 前記探し出されたエッジ点の第1の側から延びる前記第
    1の実線形状の新しいエッジ点を探し出すステップと、 前記新しいエッジ点におけるエッジ方向は、スレッショ
    ルドの方向の値と所定の関係を有するか否かを決定する
    ステップと、 前記エッジの方向がスレッショルドの方向の値と所定の
    関係を有するまで、新しいエッジ点を探し出すステップ
    と決定するステップを繰り返すステップ、を有すること
    を特徴とする請求項11に記載の方法。
  13. 【請求項13】前記探し出すステップは、前記探し出さ
    れたエッジ点の反対側から延びる第1の実線形状を探し
    出し、前記第1の実線形状の探し出されたエッジの一端
    にある実線のコーナーを探すことを特徴とする請求項1
    1に記載の方法。
  14. 【請求項14】前記探し出すステップは、 第1の実線形状の第1の終わりの点を探し出すステップ
    と、 前記終わりの点から所定の距離離れた蓄積されたイメー
    ジにある場所へ移動するステップと、 前記場所に近い、第2の実線形状の新しいエッジ点を探
    し出すステップと、 前記新しいエッジ点から、そして前記第2の実線形状に
    沿って延びるラインを決定するステップであって、前記
    ラインは前記第1の終わりの点に近い第2の終わりの点
    を含むステップと、 前記第1と第2の終わりの点間の距離がスレッショルド
    の値と所定の関係を有しているか否かを決定するステッ
    プと、 もし、前記第1と第2の終わりの点間の距離がスレッシ
    ョルドの値と所定の関係を有しているならば、前記第2
    の終わりの点として実線のコーナーの点を探し出すステ
    ップ、を有する請求項11に記載の方法。
  15. 【請求項15】前記第1の点線形状は、幾つかの線形に
    位置した暗いエレメントを有し、且つ前記探し出すステ
    ップは、 (a) 第1の実線形状の自由端で開始するするステップ
    と、 (b) 暗いエレメントを横切るステップと、 (c) 前記幾つかの線形に位置した暗いエレメントにおけ
    る次の暗いエレメントの始めに移動するステップと、 (d) 前記第1の点線形状が探し出されるまで、前記(c)
    と(d) のステップを繰り返すステップ、を有する請求項
    11に記載の方法。
  16. 【請求項16】前記機械読み取り可能なシンボルはデー
    タ・マトリックス・シンボルであり、前記探し出すステ
    ップは点線のコーナーか、全体的に第1と第2の点線形
    状の何れかを探し出し、且つ前記方法は、更に、 前記探し出されたコーナーか、第1と第2の点線形状に
    基づいてデータ・マトリックス・シンボルの翻訳を決定
    するステップと、 前記決定された翻訳に基づいてデータ・マトリックス・
    シンボルをデコードするステップ、を有することを特徴
    とする請求項11に記載の方法。
  17. 【請求項17】蓄積されたイメージ内の所定のパターン
    のイメージを探し出す装置であって、所定のパターンは
    共通のコーナーで出合う第と第2の実線の線形形状及び
    前記第1と第2の実線形状の自由端から延びる第1と第
    2の点線の線形形状を有し、前記装置は、 前記所定のパターンから反射された光を受光し、そこか
    ら出力信号を生成するセンサーと、 前記出力信号を受信し、前記所定のパターンの少なくと
    も部分を示すデータ信号を生成する受信器と、 前記所定のパターンの少なくとも部分を表すデータ信号
    を蓄積するメモリと、 前記メモリにいて前記所定のパターン探し出すプロセッ
    サを備え、前記プロセッサは、(a) 前記第1と第2の実
    線形状の1つのエッジ点を探し出す、(b) 前記探し出さ
    れたエッジ点に基づいて、前記第1と第2の実線形状の
    1つの少なくとも一部を探し出す、(c) 前記第1と第2
    の実線形状の他の1つの一部を探し出す、(d) 前記探し
    出された第1或いは第2の実線形状に基づいて、前記第
    1と第2の点線形状を探し出す、及び(e) 前記探し出さ
    れた第1と第2の実線及び点線形状に基づいて、メモリ
    にある所定のイメージの位置を探し出すためにプログラ
    ムされていることを特徴とする装置。
  18. 【請求項18】前記プロセッサは、メモリ内の探し出さ
    れたエッジ点の反対側から延びる第1の実線形状のエッ
    ジを探し出すことによって、第1と第2の実線形状の1
    つの少なくとも一部を探し出すことを特徴とする請求項
    17に記載の装置。
  19. 【請求項19】前記プロセッサは、(a) 前記第1の実線
    形状の第1の終わりの点を探し出す、(b) 前記終わりの
    点から所定距離離れた前記蓄積されたイメージにある場
    所へ移動する、(c) 前記場所に近い前記第2の実線形状
    の新しいエッジ点を探し出す、(d) 前記新しいエッジ点
    から、そして第2の実線形状に沿って延びるライン、前
    記ラインは前記第1の終わりの点に近い第2の終わりの
    点を含んでいるラインを決定する、及び(e) 第1と第2
    の終わりの点間の距離がスレッショルドの値と所定の関
    係を有するか否かを決定する、ことによって共通のコー
    ナー点を探し出すことを特徴とする請求項17に記載の
    装置。
  20. 【請求項20】前記第1の点線形状は、幾つかの線形に
    位置した暗いエレメントを含み、前記プロセッサは、
    (a) 第1の実線形状において開始し、(b) 暗いエレメン
    トを横切り、(c) 前記幾つかの線形に位置した暗いエレ
    メントにおいて次の暗いエレメントの始めに移動し、且
    つ(d) 第1の点線形状が探し出されるまで前記(b) と
    (c) のステップを繰り返すことによって、前記第1の点
    線形状を探し出すことを特徴とする請求項17に記載の
    装置。
JP9177524A 1996-05-29 1997-05-29 データマトリックスシンボルを有する機械読取り可能なシンボルを探し、デコードするための方法及び装置 Pending JPH1063772A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/654925 1996-05-29
US08/654,925 US5742041A (en) 1996-05-29 1996-05-29 Method and apparatus for locating and decoding machine-readable symbols, including data matrix symbols

Publications (1)

Publication Number Publication Date
JPH1063772A true JPH1063772A (ja) 1998-03-06

Family

ID=24626774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9177524A Pending JPH1063772A (ja) 1996-05-29 1997-05-29 データマトリックスシンボルを有する機械読取り可能なシンボルを探し、デコードするための方法及び装置

Country Status (3)

Country Link
US (1) US5742041A (ja)
JP (1) JPH1063772A (ja)
DE (1) DE19722439A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8746572B2 (en) 2011-03-17 2014-06-10 Fujitsu Limited Image processing apparatus and image processing method

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6310689B1 (en) * 1996-08-23 2001-10-30 Asahi Kogaku Kogyo Kabushiki Kaisha Pattern reading apparatus
US6327395B1 (en) 1996-12-20 2001-12-04 Xerox Parc Glyph address carpet methods and apparatus for providing location information in a multidimensional address space
US5937110A (en) * 1996-12-20 1999-08-10 Xerox Corporation Parallel propagating embedded binary sequences for characterizing objects in N-dimensional address space
GB2326003B (en) * 1997-06-07 2001-02-28 Aquasol Ltd Coding systems
US6128414A (en) * 1997-09-29 2000-10-03 Intermec Ip Corporation Non-linear image processing and automatic discriminating method and apparatus for images such as images of machine-readable symbols
DE19942789C2 (de) * 1999-09-08 2002-10-31 Omnitron Ag Fuer Optoelektroni Verfahren zur Erkennung von zweidimensionalen Matrixcodes
US6636837B1 (en) * 2000-01-27 2003-10-21 Eastman Kodak Company Method and apparatus for ordering photofinishing goods and/or services
DE60118051T2 (de) * 2000-04-06 2006-08-31 Seiko Epson Corp. Verfahren und Vorrichtung zum Lesen von einem zwei-dimensionalen Strichkode und Datenspeichermedium
US6739513B1 (en) 2000-09-05 2004-05-25 Rjs Systems International Box detector in barcode environment
US8040328B2 (en) * 2000-10-11 2011-10-18 Peter Smith Books, papers, and downloaded information to facilitate human interaction with computers
US8682077B1 (en) 2000-11-28 2014-03-25 Hand Held Products, Inc. Method for omnidirectional processing of 2D images including recognizable characters
DE10123406A1 (de) * 2001-05-15 2002-11-21 Sick Ag Verfahren zum Erfassen von zweidimensionalen Codes
DE10141876A1 (de) * 2001-08-28 2003-03-20 Sick Ag Verfahren zur Erkennung eines Codes
US7159780B2 (en) * 2002-07-08 2007-01-09 Veritec, Inc. Method for reading a symbol having encoded information
KR100414524B1 (ko) * 2002-10-31 2004-01-16 주식회사 아이콘랩 복호 특성이 우수하며 단계별 에러레벨조정이 가능한2차원 코드 및 그 코드의 인코딩 디코딩 방법
DE10302634B4 (de) * 2003-01-23 2004-11-25 Siemens Ag Verfahren und Vorrichtung zur Identifikation und Kompensation einer perspektivischen Verzerrung
US20050219299A1 (en) * 2004-04-02 2005-10-06 Kia Silverbrook And Paul Lapstun Integrated printhead and image sensor
JP2005316755A (ja) * 2004-04-28 2005-11-10 Nec Electronics Corp 2次元矩形コードシンボル読み取り装置及び2次元矩形コードシンボル読み取り方法
US7557799B2 (en) * 2004-06-17 2009-07-07 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. System for determining pointer position, movement, and angle
JP4652741B2 (ja) * 2004-08-02 2011-03-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 異常検出装置、異常検出方法、異常検出プログラム、及び記録媒体
US20060050961A1 (en) * 2004-08-13 2006-03-09 Mohanaraj Thiyagarajah Method and system for locating and verifying a finder pattern in a two-dimensional machine-readable symbol
US7921078B2 (en) * 2005-04-20 2011-04-05 Sony Online Entertainment Llc System for negotiated differential compression
DE102005035208B4 (de) * 2005-07-27 2007-10-04 Siemens Ag Verfahren zur Lokalisierung von Bildelementen
GB0525285D0 (en) * 2005-12-13 2006-01-18 Xvista Ltd Image processing method and apparatus
US7635920B2 (en) * 2006-02-23 2009-12-22 Freescale Semiconductor, Inc. Method and apparatus for indicating directionality in integrated circuit manufacturing
EP2345351A1 (en) * 2010-01-19 2011-07-20 Nestec S.A. Capsule for the preparation of a beverage comprising an identification code
WO2014063837A1 (en) * 2012-10-23 2014-05-01 Sicpa Holding Sa Method and device for identifying a two-dimensional barcode
EP3109823A1 (en) 2015-06-22 2016-12-28 Sick IVP AB Method and arrangements for estimating one or more dominating orientations in a digital image
US20170097627A1 (en) * 2015-10-02 2017-04-06 Southwire Company, Llc Safety switch system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2612994A (en) * 1949-10-20 1952-10-07 Norman J Woodland Classifying apparatus and method
US4013893A (en) * 1975-08-07 1977-03-22 Welch Allyn, Inc. Optical bar code scanning device
JPS61131074A (ja) * 1984-11-29 1986-06-18 Yokohama Rubber Co Ltd:The 凹凸バ−コ−ドの読取方法
FR2622992B1 (fr) * 1987-11-06 1990-02-09 Thomson Semiconducteurs Procede de lecture de codes a barres
US4874936A (en) * 1988-04-08 1989-10-17 United Parcel Service Of America, Inc. Hexagonal, information encoding article, process and system
US4998010A (en) * 1988-04-08 1991-03-05 United Parcel Service Of America, Inc. Polygonal information encoding article, process and system
US4939354A (en) * 1988-05-05 1990-07-03 Datacode International, Inc. Dynamically variable machine readable binary code and method for reading and producing thereof
US5319181A (en) * 1992-03-16 1994-06-07 Symbol Technologies, Inc. Method and apparatus for decoding two-dimensional bar code using CCD/CMD camera
US5080456A (en) * 1990-02-26 1992-01-14 Symbol Technologies, Inc. Laser scanners with extended working range
US5155343A (en) * 1990-03-28 1992-10-13 Chandler Donald G Omnidirectional bar code reader with method and apparatus for detecting and scanning a bar code symbol
US5241166A (en) * 1990-07-02 1993-08-31 Chandler Donald G Low resolution target acquisition
US5189292A (en) * 1990-10-30 1993-02-23 Omniplanar, Inc. Finder pattern for optically encoded machine readable symbols
DE4208082C1 (en) * 1992-03-13 1993-02-11 Agfa-Gevaert Ag, 5090 Leverkusen, De Reading bar=code on edge of photographic film - ascertaining code start and end and thus length by relative speed between film and sensor arrangement
US5276315A (en) * 1992-05-14 1994-01-04 United Parcel Service Of America, Inc. Method and apparatus for processing low resolution images of degraded bar code symbols
JPH0687270B2 (ja) * 1992-09-16 1994-11-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 線分の方向検出装置及びその方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8746572B2 (en) 2011-03-17 2014-06-10 Fujitsu Limited Image processing apparatus and image processing method

Also Published As

Publication number Publication date
US5742041A (en) 1998-04-21
DE19722439A1 (de) 1997-12-04

Similar Documents

Publication Publication Date Title
JPH1063772A (ja) データマトリックスシンボルを有する機械読取り可能なシンボルを探し、デコードするための方法及び装置
US5936224A (en) Method and apparatus for reading machine-readable symbols by employing a combination of multiple operators and/or processors
US6386454B2 (en) Detecting bar code candidates
EP0669593B1 (en) Two-dimensional code recognition method
US6097839A (en) Method and apparatus for automatic discriminating and locating patterns such as finder patterns, or portions thereof, in machine-readable symbols
US7337970B2 (en) Barcode scanner decoding
EP1836646B1 (en) Bar code scanner decoding
JP3209108B2 (ja) 2次元コード読み取り装置
US6128414A (en) Non-linear image processing and automatic discriminating method and apparatus for images such as images of machine-readable symbols
US7181066B1 (en) Method for locating bar codes and symbols in an image
US6758399B1 (en) Distortion correction method in optical code reading
EP0685809A2 (en) Method and apparatus for decoding two-dimensional bar code
US5854478A (en) Method and apparatus for reading machine-readable symbols having surface or optical distortions
EP0591635A2 (en) Method and apparatus for decoding bar code symbols using subpixel interpolation
EP3462372B1 (en) System and method for detecting optical codes with damaged or incomplete finder patterns
JPH0612515A (ja) Ccd/cmdカメラを使用して二次元バーコードを復号する方法及び装置
WO2013044875A1 (zh) 线性条码识别方法和***
JPH1021322A (ja) 機械読取り可能なシンボルを探し、エンコードするための方法及び装置
US10303913B2 (en) Virtual wave decoder for blurred images and subpixel performance
Liang et al. Real time recognition of 2D bar codes in complex image conditions
JP3567904B2 (ja) 2次元コード読み取り装置
JPH1040331A (ja) バーコード読取装置