JP2832645B2 - ピクセル・イメージのバーコード・シンボルを読取る方法および装置 - Google Patents

ピクセル・イメージのバーコード・シンボルを読取る方法および装置

Info

Publication number
JP2832645B2
JP2832645B2 JP8508683A JP50868396A JP2832645B2 JP 2832645 B2 JP2832645 B2 JP 2832645B2 JP 8508683 A JP8508683 A JP 8508683A JP 50868396 A JP50868396 A JP 50868396A JP 2832645 B2 JP2832645 B2 JP 2832645B2
Authority
JP
Japan
Prior art keywords
symbol
whitening
signal
segment
barcode symbol
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
JP8508683A
Other languages
English (en)
Other versions
JPH09512936A (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.)
YUNAITETSUDO PAASERU SAABISU OBU AMERIKA Inc
Original Assignee
YUNAITETSUDO PAASERU SAABISU OBU AMERIKA Inc
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 YUNAITETSUDO PAASERU SAABISU OBU AMERIKA Inc filed Critical YUNAITETSUDO PAASERU SAABISU OBU AMERIKA Inc
Publication of JPH09512936A publication Critical patent/JPH09512936A/ja
Application granted granted Critical
Publication of JP2832645B2 publication Critical patent/JP2832645B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • 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/10851Circuits for pulse shaping, amplifying, eliminating noise signals, checking the function of the sensing device
    • 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
    • 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
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1465Methods for optical code recognition the method including quality enhancement steps using several successive scans of the optical code
    • 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
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1486Setting the threshold-width for bar codes to be decoded

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Image Processing (AREA)
  • Character Input (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)
  • Image Analysis (AREA)

Description

【発明の詳細な説明】 発明の背景 発明の属する技術分野 本発明は、イメージ処理に関するものであり、特にピ
クセル・イメージの形式のバーコード・シンボルの位置
を求め(locate)且つデコード(解読)する方法および
装置に関するものである。
関連する技術の説明 一次元レーザー走査システムを使用したバーコード・
シンボルを読取りはよく知られている。二次元ピクセル
・イメージの形のバーコード・シンボルの位置を求め且
つデコード(解読)するイメージ処理装置はそれ程知ら
れていない。バーコード・シンボルをデコードするに
は、端縁部(エッジ)がバーコード・シンボル内のバー
からスペースへの遷移(transition)あるいはスペース
からバーへの遷移に対応する場合は、端縁部と端縁部と
の間の距離を正確に測定する必要がある。
ファクシミリ級の品質のイメージ、すなわちファクシ
ミリ装置やそれに類する装置によって発生されたバーコ
ード・シンボルのイメージ形式の高密度バーコード・シ
ンボルを読み取ることは特に困難である。ファクシミリ
装置によって発生されたイメージ形式のバーコード・シ
ンボルの位置を求め且つデコードすることができるバー
コード読取り装置(バーコード・リーダー)はスキャナ
やカメラのような他の任意のイメージ・ソースによって
発生されたイメージ形式のバーコード・シンボルの読取
りにも適応できるものでなければならない。
発明の概要 本発明の好ましい実施例では、本発明はキャラクタ
(文字、数字、図形、記号等)が1あるいはそれ以上の
スペースと1あるいはそれ以上のバーとからなる、バー
コード・シボルの形式のキャラクタをデコードするため
の方法および装置である。この実施例では、スペースの
幅とバーの幅を決定するためにシンボルが走査される。
スペース幅スレショルドがバー幅スレショルドと異なっ
ている場合は、スペース幅スレッショルドはスペースの
幅に従って決定され、バー幅スレッショルドはバーの幅
に従って決定される。各スペースはスペース幅スレッシ
ョルドと比較され、各バーはバー幅スレッショルドと比
較される。次いでこれらの比較に従ってキャラクタがデ
コードされる。
図面の簡単な説明 図1は本発明の好ましい実施例によるバーコード・シ
ンボル読取りシステムの機能的ブロック図である。
図2はピクセル・イメージ形式のバーコード・シンボ
ルの位置を決定するために図1のシステムのシンボル・
ロケータ(記号の位置を求める装置)によって実行され
る処理の流れを示すブロック図である。
図3は2進イメージ形式の候補(candidate)バーコ
ード・シンボルの位置を求めるために図2のシンボル・
ロケータによって実行される処理の流れを示すブロック
図である。
図4は図2のシンボル・ロケータによって位置が求め
られたバーコード・シンボルのイメージを示す図であ
る。
図5は後方部のバーが2つのセグメントに切断されて
いるバーコード・シンボルのイメージを示す図である。
図6はバーコード・シンボルのコンポジット信号(複
合信号)を発生させるための図1のシステムのコンポジ
ット信号発生器の好ましい実施例によって実行される低
速法の流れを示すブロック図である。
図7は、サンプルの長方形全体にわたってシンボルが
図1のシステムのコンポジット信号発生器および傾斜
(gradient)信号発生器によって分析される上記サンプ
ルの長方形を示すバーコード・シンボルのイメージを示
す図である。
図8は図6の低速法を実行するに当たって図1のシス
テムのコンポジット信号発生器によって使用される何本
かの走査線を示す図7のバーコード・シンボルの一部分
のイメージを示す図である。
図9はバーコード・シンボルのコンポジット信号を発
生するための図1のシステムのコンポジット信号発生器
の好ましい実施例によって実行される高速法の流れを示
すブロック図である。
図10は図9の高速法を実行するに当たって図1のシス
テムのコンポジット信号発生器によって使用される走査
線を示す図7のバーコード・シンボルのイメージを示す
図である。
図11はバーコード・シンボルのコンポジット信号をス
レッショルド処理するために図1のシステムのコンポジ
ット信号スレッショルド(thresholder)によって実行
される処理の流れを示すブロック図である。
図12はスプリアスなバーをもったバーコード・シンボ
ルの一部の2進表示を示す図である。
図13はスプリアスなバーあるいはスリアスなスペース
のいずれかをもったバーコード・シンボルの一部の2進
表示を示す図である。
図14は、コード39バーコード・シンボルのキャラクタ
をデコードするために図1のシステムのコンポジット信
号デコーダによって実行される処理の流れを示すブロッ
ク図である。
図15はバーコード・シンボル用の白色化(whitenin
g)および黒色化(blackwning)傾斜(gradirnt)信号
を発生させるための図1のシステムの傾斜信号発生器に
よって実行される処理の流れを示すブロック図である。
図16は白色化および黒色化傾斜信号を処理するための
図1のシステムの傾斜信号プロセッサによって実行され
る処理の流れを示すブロック図である。
発明の詳細な説明 図1を参照すると、これには本発明の好ましい実施例
によるバーコード・シンボル読取りシステム100の機能
的ブロック図が示されている。システム100は二次元ピ
クセル・イメージ形式の未知の位置および方向をもった
バーコード・シンボルの位置を求め且つデコード(解
読)する。システム100は2進イメージあるいはグレー
スケール・イメージのいずれかの形式のバーコード・シ
ンボルの位置を求め且つデコードするように設計されて
いる。
システム100のデータ入力102はピクセル・イメージ用
のデータを受信し、シンボル・ロケータ104はピクセル
・イメージの形で含まれているバーコード・シンボルの
位置を求める。システム100は2つの並列処理によって
ピクセル・イメージ形式の各位置が求められたバーコー
ド・シンボルをデコードするようにされているのが望ま
しい。
1つの処理によれば、コンポジット信号発生器106は
バーコード・シンボルに対応するコンポジット信号を発
生する。次に、コンポジット信号スレッショルダ108は
コンポジット信号のスレッショルド(閾値)を決定し、
濾波してこのコンポジット信号に対応する2進信号を生
成する。次いで、コンポジット信号デコーダ110は2進
信号をデコードすることによりバーコード・シンボルを
デコード(解読)する。コンポジット信号デコーダ110
がバーコード・シンボルをデコードするのに成功する
と、該信号デコーダ110はデコードされた信号を出力セ
レクタ118に転送する。それ以外の場合は、信号デコー
ダ110はデコードが不成功であったことを表わす信号を
出力セレクタ118に転送する。
位置が求められた各バーコード・シンボルをデコード
する他の処理に従って、傾斜信号発生器112は位置が求
められたバーコード・シンボルから2個の傾斜信号を発
生する。傾斜信号プロセッサ114は2個の傾斜信号を処
理して2進の再構成された信号を発生する。次いで、傾
斜信号デコーダ116は上記再構成された信号をデコード
することによりバーコード・シンボルをデコードする。
傾斜信号デコーダ116がバーコード・シンボルをデコー
ドするのに成功すると、該デコーダ116はデコードされ
た信号を出力セレクタ118に転送する。それ以外の場合
は傾斜信号デコーダ116はデコードが不成功であったこ
とを表わす信号を出力セレクタ116に転送する。
好ましい実施例では、コンポジット信号デコーダ110
と傾斜信号デコーダ116は、コンポジット信号スレッシ
ョルダ108、傾斜信号プロセッサ114からそれぞれ受信さ
れた2進信号に関して同じデコーディング・アルゴリズ
ムを実行する。
出力セレクタ118は信号デコーダ110および116からデ
コードされた信号を受信し、適当な出力を選択してこれ
をデータ出力120に転送する。信号デコーダ110と116の
いずれか一方あるいは双方がバーコード・シンボルをデ
コードするのに成功すると、出力セレクタ118はデコー
ドされた信号をデータ出力120に転送する。それ以外の
場合は、バーコード・シンボルはデコードされなかった
ことになり、出力セレクタ118は適当な信号をデータ出
力120に転送する。
バーコード・シンボルの位置を求める。
図2を参照すると、これにはシステム100のシンボル
・ロケータ104によって実行される処理の流れを示すブ
ロック図が示されている。シンボル・ロケータ104は、
シンボルのバーとスペースとの間の最少の遷移(transi
tion)数が後続するバーコード・シンボルの静止区域
(quiet zone)をサーチすることによってピクセル・イ
メージ形式のバーコード・シンボルの位置を求める。ピ
クセル・イメージ形式のバーコード・シンボルの各終端
部には静止区域と称される明るいピクセルの領域が存在
する。シンボル自体は明るいスペースによって分離され
た一連の暗いバーによって構成されている。
好ましい実施例によれば、シンボル・ロケータ104の
手段202はピクセル・イメージ中の新しいサーチ・ライ
ン(search line)を選択する。サーチ・ラインはピク
セル・イメージの行あるいは列のいずれかからなる。手
段202は、1992年8月10日付けで「バーコード・シンボ
ルを検出しデコードする方法および装置(Method and A
pparatus for Detecting and Decoding Bar Code Symbo
ls)」という名称で出願された米国特許出願No.07/927,
910号明細書中に開示されているような2進サーチを使
用してサーチ・ラインを選択する。上記米国特許出願は
本願と同じ譲渡人が保有しており、本明細書中でその開
示内容全体が参照されている。2進サーチを使用したサ
ーチ・ラインを選択するのに適当な装置は、上記米国特
許明細書中の「バーコード・シンボルの検出およびデコ
ーディング(Detecting and Decoding Bar Code Symbol
s)」の項で詳細に説明されている。一般的に云えば、
バーコード・シンボルは通常ピクセル・イメージ形式で
多数の行と列に跨がっているので、手段202は処理が進
行するにつれて細かくなる広いパターンを使用した一連
の行を選択することが好ましい。
表Iは、例えば2048の列と4096の行とを有するピクセ
ル・イメージ形式の行を選択(あるいは同等の列を選
択)するための好ましいシーケンスを示す。好ましいシ
ーケンスでは、サーチ・ラインとしての行の選択はステ
ップの大きさが64で行番号64からスタートする。行(6
4、128、192、・・・・4032、4096)を選択したのち、
シーケンスは同じ64の行ステップの大きさで行番号32に
戻る。選択は表Iに示すように継続される。行(4、1
2、20、・・・4084、4092)を選択したのち、全体のシ
ーケンスはいずれの行も2回繰り返すことなくイメージ
中の選択された4番目毎の行を保有することになる。
代表的に表Iに示すような行をサーチする選択シーケ
ンスによりシステム100の速度および効率を向上させる
ことができる。このようなシーケンスは処理されるべき
ピクセル・イメージの特性に依存して変化する可能性の
あることは当業者には明らかである。
好ましい実施例では、ピクセル・イメージが既知の数
のバーコード・シンボルを含んでおれば、必要な数のバ
ーコード・シンボルの位置が求められ、デコードされた
のちサーチのシーケンスが終了する。さらに、システム
100は既に位置が求められ且つデコードされたバーコー
ド・シンボルを含むイメージの領域のトラックを保持す
ることが好ましい。シンボル・ロケータ104は既に処理
されたこれらの領域を無視することが望ましい。
手段204はピクセル・イメージの開始端からの候補(c
andidateあるいは潜在的)バーコード・シンボルに対す
る選択されたサーチ・ラインに沿ってサーチを開始す
る。ピクセル・イメージ中で発見されることが期待され
るバーコード・シンボルが既知の最短の長さをもってい
る場合は、手段204は各選択されたサーチ・ラインの全
体の長さをサーチしないことが望ましい。システム100
は“全”バーコード・シンボルのみをデコードするの
で、手段204はサーチ・ラインの停止端に隣接する各選
択されたサーチ・ラインの部分を無視することが望まし
い。無視される各サーチ・ラインの部分は最短の期待さ
れるにバーコードまでの距離に対応している。
手段204は、候補バーコード・シンボルを、(期待さ
れるバーとスペースとの間の遷移に対応する)“明”と
“暗”のピクセル間の一連のN2の遷移が後続する(期待
される静止区域に対応する)連続する一連のN1の“明る
い”ピクセルとして認識する。ここで、N1およびN2はそ
れぞれ第1および第2の指定されたスレッショルドであ
る。
手段204は2進イメージあるいはグレースケール・イ
メージのいずれかの形で候補バーコード・シンボルをサ
ーチする。2進イメージでは明るいピクセルは値1をも
つものとして定義され、暗いピクセルは値0をもつもの
と定義される。グレースケールのイメージでは、第3の
スレッショルドよりも大きな値をもったピクセルは明る
いピクセルであると定義され、それ以外の場合は暗いピ
クセルであると定義される。
手段204は、先ず候補バーコード・シンボルの静止区
域をサーチすることによって機能する。手段204は、選
択されたサーチ・ラインに沿って連続する一連のN1個の
明るいピクセルを発見したとき、候補バーコード・シン
ボルの静止区域を検出する。一旦候補バーコード・シン
ボルの静止区域が検出されると、手段204は次に一連のN
2個の明/暗の遷移に対する選択されたサーチ・ライン
に沿ってサーチする。ここで、各明/暗の遷移は候補バ
ーコード・シンボル中のバーの端縁部(すなわち、シン
ボルのバーとスペースとの間の遷移)に対応する。“明
/暗の遷移”の用語は、明から暗への遷移、暗から明へ
の遷移の双方を総合して表わしている。
候補静止区域に続く最初の暗いピクセルの位置を求め
たのち、暗いピクセルがシステム100によって既に位置
が求められ且つデコードされたバーコード・シンボル中
に含まれているか否かをチェックする。もし含まれてい
ると、この候補バーコード・シンボルは既に処理されて
いるから除去される。
さらに、明/暗の遷移数をカウントしている間に、手
段204は各候補バーおよびスペースの幅をチェックす
る。もし、いずれかの候補バー/スペースの幅が広すぎ
ると(すなわち、指定された最大のバー/スペースのス
レッショルドを超過すると)、そのときは候補シンボル
は除去され、候補バーコード・シンボルの静止区域に対
する新しいサーチが開始される。
選択されたサーチ・ラインに沿った候補バーコード・
シンボルの位置を求めたのち(すなわち、最少数の候補
バーコードおよびスペースが後続する候補静止区域の位
置を求めたのち)、手段204は静止区域のサーチを繰返
し、ピクセル・イメージ中の1あるいはそれ以上の隣接
する列/行に沿うバー/スペースの遷移のカウントを繰
り返すことによって候補シンボルを確認(verify:ベリ
ファイ)する。
2進イメージのバイト基準(Byte−Based)サーチ 次に図3を参照する。同図にはピクセル・イメージが
2進イメージである場合の候補バーコード・シンボルの
位置を求めるためのシンボル・ロケータ104の手段204に
よって実行される処理のフローチャートがブロックの形
で示されている。2進イメージでは各ピクセルは単一の
ビットによって表わされる。ここでは、例えば、“1"は
明るいピクセルに対応し、“0"は暗いピクセルに対応す
る。好ましい実施例では、手段204は静止区域の対する
バイト基準(byte−based)サーチを実行し、バー/ス
ペース遷移のバイト基準カウントを実行する。ここで、
ピクセル・イメージ中の8個の連続する2進ピクセルは
イメージ・データの単一バイトとして取り扱われる。
手段302は選択されたサーチ・ラインに沿って1度に
1バイトの割合でサーチを行なう。候補静止区域中に位
置する8個のピクセルすべてに対応するバイトは、一般
にすべてが1に等しい8個のビット(すなわちピクセ
ル)をもっている。従って、最少の静止区域長が32ピク
セルに等しい場合は、静止区域を通過するサーチ・ライ
ンは、すべてが1に等しい少なくとも3個の連続するバ
イトをもっている。手段302が3個の連続する静止区域
バイト(すなわち、すべてが1)を検出すると、そのと
きは候補静止区域の位置が求められ、手段304は手段306
へ続く処理を指令する。手段302が上記静止区域バイト
を検出しないと、処理は手段302へ戻され、候補静止区
域に対するバイト基準サーチを継続する。
手段306は候補バーコード・シンボルにおけるバー/
スペース遷移のバイト基準カウントを実行する。候補バ
ーコード・シンボル中のバーとスペースを表わす各バイ
トは、シンボルの一部における明/暗の遷移数に関する
特定の情報を与える。例えば、バイト“01100110"は4
回の遷移、すなわち2回の暗から明への遷移(すなわ
ち、0から1への遷移)と2回の明から暗への遷移(す
なわち、1から0への遷移)を含んでいる。さらに、先
のバイトからの最後のビットが“1"であると、先のバイ
トと現在のバイトとの間で明から暗への遷移が存在す
る。同様に、次のバイトにおける最初のビットが“1"で
あれば、現在のバイトと次のバイトとの間に暗から明へ
の遷移が存在する。
手段306はバー/スペース遷移のバイト基準カウント
を実行するために、2つのルックアップ・テーブルを採
用している。1つのテーブルは先のピクセル(すなわ
ち、先のバイトの最後のビット)が“1"のときに使用さ
れ、他のテーブルは先のピクセルが“0"のときに使用さ
れる。各テーブルには256のエントリ(入口)を有し、
それぞれ8ビットからなるピクセル中のあらゆる可能な
組合わせ毎に1個のエントリが対応している。
各テーブルの各エントリは次の3つの値を表わしてい
る。
(a)先のピクセルと同じ“色”(すなわち黒か白)で
ある先頭(左端)のピクセル数。
(b)そのバイト中の最後のピクセルと同じ色である後
端(右端)のピクセル(最後のピクセルを含む)の数。
(c)(先行するピクセルからの任意の遷移を含む)8
ピクセル・バイト中の遷移の数。
例えば、(先行ピクセル=1)のテーブルでは、バイ
ト“01100110"は、(a)先行ピクセルと同じ色である
先頭ピクセルの数として“0"、(b)最後のピクセルと
同じ色である後端ピクセルの数として“1"、(c)バイ
ト内の遷移の数として“5"を有している。(先行ピクセ
ル=0)のテーブルでは、バイト“01100110"は、
(a)先行ピクセルと同じ色である先頭ピクセルの数と
して“1"、(b)最後のピクセルと同じ色である後端ピ
クセルの数として“1"、(c)バイト内の遷移の数とし
て“4"を有している。
手段306は、遷移数をカウントし、各バーとスペース
の大きさを決定するためにテーブルのエントリから引き
出された値を使用する。手段306は、選択されたサーチ
・ラインに沿う各連続するイメージ・バイトを処理する
ときの遷移数の実行中のカウント値を保持する。また、
手段306はその時のバー/スペースの大きさの実行中の
カウント値を保持することによっていずれのバーあるい
はスペースが特定のスレッショルドを超過したか否かを
決定する。手段306は2つのテーブルから引き出された
情報を使用してこれらの計算を実行する。
例えば、選択されたサーチ・ラインに沿う一連のイメ
ージ・バイトが(“00011011"、“01101101"、“110011
00"、“00000111")であると仮定する。また、そのシー
ケンス中の最初のバイトに対する先行するピクセルが
“0"であると仮定する。最初のバイトののち、遷移数の
実行中のカウント値は3である。第2のバイトは実行中
のカウント値にさらに6回の遷移数を加算して合計9に
なる。第3のバイトはさらに3回の遷移数を加算して合
計12になる。第4のバイトはさらに1加算して合計13に
なる。
各バイトが処理されると、手段308はそのときのバー
/スペースの大きさカウンタを連続的に増加し、モニタ
することによってどのバーあるいはスペースが広いか否
かを決定する。選択されたサーチ・ラインに沿う任意所
定のピクセルに対して、この大きさカウンタは、所定の
ピクセルと同じ色を共有し、そのサーチ・ラインに沿う
その所定のピクセル直前の先行する連続するピクセルの
数を表わす。もし、バー/スペースの幅が指定された最
大のバー/スペース幅よりも大であれば(すなわち、大
きさカウンタが指定されたスレッショルドを超える
と)、候補シンボルは除去され、手段308は処理を手段3
02に戻すように命令し、候補静止区域に対するバイト基
準サーチを再開させる。それ以外の場合は、処理は手段
310に続く。
上の2つの節で説明した一連のイメージ・バイトの例
を再び参照すると、第1のバイトの終了と第2のバイト
の開始との間に明から暗への色変化が存在すると、その
ときのバー/スペースの大きさカウンタはそのサーチ・
ラインに沿うこの点で0にリセットされる。4番目のバ
イトが処理されるとき、3番目のバイトからの同じ色の
後縁ピクセルの数(2)は先行ピクセルと同じ色の前縁
ピクセルの数(5)だけ増加され、7個のピクセルから
なるそのときのバー/スペースの大きさが生成される。
特定の適用例で、指定された最大バー/スペース幅が
5ピクセル以上であれば、上述の説明が適用される。し
かしながら、指定された最大バー/スペース幅が5ピク
セルかそれ以下であれば、その場合は特別な処理を必要
とする。例えば、最大バー幅が5ピクセルであれば、バ
イト“10000001"は6ピクセルの幅のバーに対応する。
この状態はそのバイトに対する2つのテーブルにおける
エントリを操作することによって処理できることは当業
者には明らかである。例えば、バイト“10000001"に対
する両方のテーブルに蓄積された先行するピクセルと同
じ色の前縁ピクセルの数が6であると記憶されている
と、上記の処理はこの特別な状況を処理する。
各バイトが処理されると、手段310は遷移数の実行時
カウンタが指定されたスレッショルド、例えば30を超過
したか否かを決定する。もし、超過すると、その場合は
候補バーコード・シンボルは認識され、処理は手段312
へ続き、超過しない場合は、処理は手段306に戻り、バ
イトを基準とする遷移のカウントを継続する。
候補バーコード・シンボルが認識されると処理は手段
312に達する。手段312は、選択された隣接するサーチ・
ラインに沿う手段302乃至310のバイト基準静止区域のサ
ーチならびに遷移のカウントを繰り返すことにより候補
シンボルを確認(ベリファイ)する。手段312は、元の
サーチ・ラインの両側にある3つの平行な隣接するサー
チ・ラインを選択することが望ましい。
最初のサーチ・ラインがイメージの行であれば、隣接
するサーチ・ラインは2番目、3番目の行であることが
望ましい。例えば、行40が最初のサーチ・ラインである
とすると、手段312は6つの隣接するサーチ・ラインと
して行31、34、37、43、46および49を選択する。
手段312は、先ず最初に候補シンボルの開始に対応す
る最初のサーチ・ラインに沿うピクセルを識別すること
によって機能する。このピクセルは候補静止区域に続く
最初の暗ピクセルである。この最初の暗ピクセルに基づ
いて、手段312は各隣接サーチ・ラインに対するピクセ
ル・イメージ中の開始剤を選択する。左から右に向かう
サーチ・ラインに沿ってサーチが行われると、開始列は
少なくとも2つの最少静止区域の長さに等しい距離だけ
最初の暗ピクセルの左に位置決めされる。例えば、元の
サーチ・ラインに沿う最初の暗ピクセルが列1000であ
り、また静止区域の最少寸法が32ピクセルうであれば、
手段312は各隣接サーチ・ライン中の列936でサーチを開
始する。
同様に手段312は、最初の暗ピクセルから右方向に最
大期待バーコード・シンボルに2つの最少静止区域を加
算した長さに等しい距離だけ移動させることにより各隣
接サーチ・ラインに対する最終列を選択する。先の例に
続いて、もし最大シンボル長が300ピクセルであれば、
その場合は手段312は、各隣接サーチ・ラインの列(100
0+300+64)すなわち列1364でサーチを終了する。好ま
しい実施例では、6つの隣接サーチ・ラインの少なくと
も3つのサーチ・ラインが同じ候補シンボルを含んでお
れば候補バーコード・シンボルがベリファイされる。隣
接サーチ・ラインが同じ候補シンボルを含むためには、
この隣接サーチ・ライン中の第1の黒ピクセルは、元の
サーチ・ラインに沿う最初の黒ピクセルを含んだ列から
最少静止区域の2分の1内の列になければならない。
サーチ・ラインが列である場合も手段312は同様な選
択を行うことは当業者には明らかである。また、隣接サ
ーチ・ラインを選択するこの好ましい処理はランダムな
方位のバーコード・シンボルを有するイメージを処理す
るようにも設計されていることは理解できよう。バイト
基準静止区域サーチおよび遷移のカウントはバイト当た
り8ビット(すなわち、ピクセル)以外のビットを有す
るシステムにおいても実行できることは当業者であれば
理解できるところである。
ここで再び図2を参照すると、バーコード・シンボル
の位置が求められ、ベリファイされると、シンボル・ロ
ケータ104の手段206はをコーナ・ロケータ208に処理を
指令し、それ以外の場合は処理は手段214に続く。
本明細書のこの節で説明されているピクセル・イメー
ジにおけるバーコード・シンボルのバイト基準サーチの
特定の実施例は、2進ピクセル・イメージのみの処理に
関連している。本明細書中で開示されているシステム10
0の特徴は2進ピクセル・イメージあるいはグレー・ス
ケール・ピクセル・イメージのいずれの処理にも適用で
きることは当業者には明らかである。
バーコード・シンボルのコーナの位置を求める シンボル・ロケータ104のコーナ・ロケータ208は手段
204によって位置が求められたバーコード・シンボルの
4隅の位置を求める。コーナ・ロケータ208は手段206か
ら元のサーチ・ラインに沿う最初の暗ピクセルの座標を
受取り、コーナ発見アルゴリズムを実行する。好ましい
実施例では、ロケータ208によて実行されるコーナ発見
アルゴリズムは、米国特許出願第07/927,910号の「バー
コード・シンボルの4隅の位置を求める(Locating the
Four Corners of Bar Code Symbol)」というタイトル
の節、およびこの節に後続する3つの節で開示されてい
るアルゴリズムと同様である。ここではその開示内容全
体を参照している。
次に図4を参照する。ここには手段204によって位置
が求められたバーコード・シンボル400のイメージが示
されている。ここで、ピクセル402は元のサーチ・ライ
ンに沿う最初の暗ピクセルである。米国特許出願第07/9
27,910号に開示されているコーナ発見アルゴリズムを簡
単に説明すると、次のステップからなる。
(1) バー410の終端が検出されるまで最初の暗ピク
セル402からバーコード・シンボル400の先頭バー410の
外側端406に沿って時計方向にゆっくりと進める(crawl
ing)。指定されたスレッショルド以上の進行方向の変
化としてバーの終端が検出される。このような変化はラ
インに沿うよりもむしろコーナを廻る進行に対応する。
このステップによりシンボル400の左上コーナー408の位
置が求められる。
(2) シンボル400の左下コーナ426の位置を求めるた
めに先頭バー410に沿って反時計方向にゆっくりと進め
る。
(3) コーナ408および426から決定されたシンボル40
0を横切って先頭バー410の中心ピクセル404から垂直線4
12を投影する。
(4) 中心ピクセル404から開始して、シンボル400の
最端部における静止区域418に向けて垂直線412に沿って
左から右へサーチを行なう。
(5) シンボル400の最端部における最後の暗ピクセ
ル420に対する静止区域418より開始して右から左に向け
て垂直線412に沿ってサーチを行なう。
(6) シンボル400の右上コーナ416の位置を求めるた
めに終端バー414の外側端422に沿って反時計方向にゆっ
くりと進める。
(7) シンボル400の右下コーナ424の位置を求めるた
めに終端バー414に沿って時計方向にゆっくりと進め
る。
米国特許出願第07/927,910号に開示されているコーナ
発見アルゴリズムの上記7つのステップに加えて、上記
米国特許出願には開示されていない次の追加ステップを
実行することによって位置が求められたコーナの精度を
ベリファイすることが望ましい。
(8) 最初の暗ピクセル402とコーナ408によって特定
されたライン・セグメントと最初の暗ピクセル402とコ
ーナ426によって特定されたライン・セグメントが充分
に共直線(co−linear)であることをベリファイする。
(9) 最後の暗ピクセル420とコーナ416によって特定
されたライン・セグメントと最後の暗ピクセル420とコ
ーナ424とによって特定されたライン・セグメントが充
分に共直線(co−linear)であることをベリファイす
る。
(10)コーナ408と426によって特定されたライン・セグ
メントと、コーナ416と424によって特定されたライン・
セグメントが充分に平行であることをベリファイする。
ステップ(8)、(9)、あるいは(10)における関
連するライン・セグメントが充分に平行でなければ、候
補バーコード・シンボルは拒絶される。それぞれの傾斜
の間の差が指定されたスレッショルド内であれば、2本
のライン・セグメントは充分に平行である。ステップ
(8)および(9)の関連するライン・セグメントが共
通の点(すなわち、それぞれ最初の暗ピクセル402およ
び最後の暗ピクセル420)を共有しているので、平行関
係の試験は共直線性(co−linearity)に対する試験と
等価である。好ましい実施例では、コーナ・ロケータ20
8は、バーコード・シンボル400の4つの位置が求められ
たコーナ408、426、416、および424のピクセル・イメー
ジにおける(行、列の)座標を決定する。
位置が求められたシンボルの“平方化” コーナ・ロケータ208がバーコード・シンボルに対す
る4隅の位置を求めると、手段210は4隅の少なくとも
1つの位置を修正する。コーナ・ロケータ208によって
選択された4隅は四辺形を特定する。しかしながら、バ
ーコード・シンボルは理想的には長方形、すなわち特定
の形式の四辺形によって特定される。1あるいはそれ以
上の理由で、コーナ・ロケータ208によって識別される
4隅によって特定される四辺形は長方形でない場合があ
る。
例えば、先頭端あるいは後端のバーがイメージ中で2
あるいはそれ以上のセグメントに分断されておれば、位
置が求められた四辺形の一方の側は反対側よりも短くな
ることがある。ランレングス・コード化(符号化)ファ
クシミリ転送におけるライン・ノイズによりバー中にこ
のような分断を生じさせる可能性がある。このようなラ
イン・ノイズによりバーに延長した線を生じさせること
もある。いずれの場合もコーナの位置決定は不正確にな
る。この他にイメージ化されたバーコード・シンボルを
含む実際のラベルは物理的に損傷を受けて、バーが不完
全になることがある。
図5を参照すると、同図には最後のバーが2つの部分
に分断されているバーコード・シンボルのイメージが示
されている。コーナ・ロケータ208は、それぞれ座標(X
a、Ya)、(Xb、Yb)、(Xc、Yc)、(Xd、Yd)をもっ
たコーナA、B、C、Dの位置を求める。手段210は、
他の4つの位置が求められたコーナの少なくとも2個の
コーナに基づいて“最適の”長方形を構成することによ
って位置が求められたコーナのうちの少なくとも1つの
位置を修正する。
手段210は、4隅の各々について誤差値Eを計算す
る。例えば、コーナBについては誤差値Ebは次の(1)
式によって決定される。
Eb=|AC2−(AB2+BC2)| =|〔Xc−Xa)+(Yc−Ya)〕− 〔(Xb−Xa)+(Yb−Ya)〕− 〔(Xc−Xb)+(Yc−Yb)〕| (1) ここで、ACはコーナAとCとの間の距離であり、ABは
コーナAとBとの間の距離であり、BCはコーナBとCと
の間の距離である。コーナBにおける90゜(直角)から
のずれが大きくなればなるほど誤差値Ebは大きくなる。
同じ式を使うことにより、手段210はコーナA、Cおよ
びDに対するそれぞれの誤差値Ea、Ec、およびEdを計算
することもできる。
手段210は修正すべきコーナとしての最大の誤差をも
ったコーナを選択する。図5のシンボルについて云え
ば、4つの誤差値のうちで誤差値Ebが最大で、手段210
は修正のためにコーナBを選択する。コーナBに対する
修正された位置は、式(1)の誤差値が0である座標
(Xb′、Yb′)によって特定される。通常式(1)を解
くには2つの特別な解法がある。手段210は最初に位置
が求められたコーナに最も近い解を選択する。
手段210は少なくとも2つのコーナの位置を修正する
ために使用できることは当業者にとっては自明のことで
ある。この場合、先の例と同様に、手段210はコーナB
の位置を修正するためにコーナAおよびCを使用し、ま
た必要があれば、式(1)と等価な式を使って、コーナ
Dの位置を修正するためにコーナAおよびCを使用する
こともできる。一般には、手段210は対角線方向の任意
の2つのコーナを、残る2つのコーナを使用して修正す
ることができる。
1あるいはそれ以上のコーナの位置を修正するための
他の方法もこの発明の範囲内にあることは当業者には明
らかである。これらの別の方法は長方形(すなわち、理
想的なバーコード・シンボルの形状)についての次の1
あるいはそれ以上の特性を拠り所としている。
◎ 長方形の対辺は平行である。
◎ 対辺の長さは等しい。
◎ 2つの対角線の長さは等しい。
◎ コーナの角度は90゜である。
◎ 対角線と対応する各辺はピタゴラスの定理を満足す
る。
さらに、手段210は、平方化されたバーコード・シン
ボルの寸法と形状は指定されたスレッショルド内にある
ことをベリファイするために幾何学的試験を実行するこ
とが望ましい。これらの幾何学的試験はシンボルの4隅
の相対的位置に基づくものである。
手段210がシンボルを平方化したのち、手段212は、
“修正された”シンボルの4隅の(行、列)の座標を図
1のコンポジット信号発生器106および傾斜(グレイデ
ィエント)基準信号発生器112に転送する。次いで、そ
のときのサーチ・ラインの終端に到達したか否かが決定
するためにシンボル・ロケータ104の処理は手段214に引
き継がれる。もし、終端に到達したことが決定される
と、処理は手段202に戻り、新しいサーチ・ラインを選
択する。終端に達したことが決定されない場合は、処理
は手段204に戻り、そのときのサーチ・ラインに沿って
サーチが継続される。指定されたサーチ・ラインのシー
ケンスが枯渇するか、あるいは何らかの他の停止条件が
満足されるまでシンボル・ロケータ104はバーコード・
シンボルの位置を求めることが継続して行われる。
バーコード・シンボルのコンポジット信号を発生させる
ための低速法 次に図6を参照する。同図にはコンポジット信号発生
器600によって実行される低速法のフローチャートがブ
ロックの形で示されている。コンポジット信号発生器60
0は図1に示すシステム100のコンポジット信号発生器10
6の好ましい実施例である。ここでは、発生器600はバー
コード・シンボルのコンポジット信号を発生するための
低速法を実行するように設計されている。低速法の好ま
しい実施例によれば、バーコード・シンボルは多数の走
査線に沿って走査される。
走査線はシンボル・ロケータ104によって決定される
シンボルのコーナから決定される。コンポジット信号を
発生させるための低速法に対しては、各走査線はシンボ
ルのバーおよびスペースに対して平行である。さらに、
連続する走査線は1ピクセル幅以下の距離だけ互に離れ
ている。バーコード・シンボルがピクセル・イメージの
行および列と整列していないときは、走査線はイメージ
の行および列に対応していない。従って、コンポジット
信号を発生させるための低速法の走査線は一般にはシン
ボル・ロケータ104によって使用される“走査線”と異
なっており、常にピクセル・イメージ中の行あるいは列
のいずれかに対応している。
各走査線に対して、発生器600は走査線に沿うピクセ
ルの強度を平均して、1次元のコンポジット信号中のピ
クセルを発生する。連続する走査線間の距離を1ピクセ
ル以下にすることによて、発生器600はコンポジット信
号を発生するときにピクセル・イメージを過サンプリン
グする。
次に図7を参照する。同図にはコンポジット信号発生
器600によって処理されるバーコード・シンボル700のイ
メージが示されている。発生器600はシンボル・ロケー
タ104から供給されるコーナ702、704、706、および708
の座標を受信する。シンボルのバーの端部における共通
のサンプリング誤差を回避するために、発生器600はコ
ーナ712、714、716、および718によって特定されるサン
プルの長方形710を識別する。サンプルの長方形710の輪
郭は、シンボル700の頂部よりも僅かに低く(例えば、
約3%)、シンボル700の底部よりも僅かに高く(例え
ば、約3%)、さらにシンボル700よりも僅かに長く
(例えば、指定された距離だけ静止区域に入り込む)設
定されている。次いで、各走査線の長さはサンプルの長
方形710の境界によって特定され、その結果、各走査線
(定義によってシンボル700のバーとスペースに平行で
ある)はシンボル700の底部の上と頂部の下で開始す
る。
再び図6を参照すると、コンポジット信号発生器600
の手段602はサンプルの長方形710に基づいて一連の平行
な走査線を選択する。手段602はサンプルの長方形710の
一端におけるコーナ712および718によって特定される走
査線で開始し、先行する走査線からピクセルの幅よりも
短い指定された距離だけサンプルの長方形710の他端に
向けてシフトすることにより各新しい走査線を選択す
る。
次に図8を参照する。これにはバーコード・シンボル
の一部がその上に重畳された何本かの走査線802と共に
示されている。各走査線802に対して、手段604は現在選
択された走査線に沿ってシンボル・イメージを走査し、
手段606はその走査線に沿って存在するピクセルの平均
ピクセル強度値を発生する。手段608は1次元コンポジ
ット信号中のピクセルとしてその平均値を保存する。手
段610はそのときの走査線が最後の走査線であるか否
か、すなわちコーナ714および716によって特定されるサ
ンプルの長方形710の反対側の端部に到達したか否かを
決定する。もし最後の走査線でなければ、処理は次の走
査線を選択するために手段602に戻る。最後の走査線で
あれば、手段612は完全なコンポジット信号をシステム1
00のコンポジット信号スレッショルダ108に転送して別
の処理を施す。スレッショルダ108の処理については図1
1を参照して、本明細書中で後程詳細に説明する。
バーコード・シンボルのコンポジット信号を発生する高
速法 次に図9を参照する。これにはコンポジット信号発生
器900によって実行される高速法のフローチャートがブ
ロックの形で示されている。コンポジット信号発生器90
0は図1に示されたシステム100のコンポジット信号発生
器106の好ましい実施例である。この発生器900はバーコ
ード・シンボルのコンポジット信号を発生するための高
速法を実行するように設計されている。この高速法は図
6、7、および8を参照して本明細書中で先に説明した
低速法に代わるものである。
高速法の好ましい実施例によれば、発生器900はバー
コード・シンボルと交わるピクセル・イメージ中の行/
列から1組の走査線を選択する。この高速法では、走査
線は常にピクセル・イメージの行あるいは列のいずれか
に対応していることに注目する必要がある。図6に関し
て本明細書中で先に説明したように、低速法では走査線
はピクセル・イメージの行あるいは列と一致している必
要はないし、また一般に上記ピクセル・イメージの行あ
るいは列と一致していない。
各走査線に対して発生器900は走査線データを回転さ
せ、引伸ばす。引伸ばされ且つ回転されたデータを使用
して、発生器900は1次元コンポジット・ベクトルなら
びに1次元カウント・ベクトルを更新する。すべての選
択された走査線が処理されると、発生器900は1次元ベ
クトルを“規格化”して、バーコード・シンボルに対す
る1次元コンポジット信号を生成する。
次に図10を参照する。図10は、その上に重畳されたコ
ンポジット信号を発生させるための高速法を実行するた
めにコンポジット信号発生器900によって使用される走
査線1〜6を有する図7のバーコード・シンボルのイメ
ージが示されている。手段902は一連の走査線を選択す
る。図10に示すように、各走査線はバーコード・シンボ
ルと交わっており、ピクセル・イメージの行(あるいは
列)の一部となっている。手段902はバーコード・シン
ボルと交わるすべての行(あるいは列)を選択する必要
はない。従って、連続する走査線は1ピクセル以上離れ
ていることがある。さらに、走査線は全バーコード・シ
ンボルと交わっている必要はない。例えば、図10で走査
線3と4のみが全シンボルと交わっている。
手段904はそのときの各走査線からのデータを回転さ
せ且つ引伸ばす。手段904が走査線データを回転させる
角度は、シンボル・ロケータ104によって識別されたシ
ンボルの4隅によって示されるバーコード・シンボルの
方位によって支持される。このような回転はバーコード
・シンボルのバーを回転されたイメージの列(あるいは
行)と実効的に一致させることは当業者には理解できる
ことである。
手段904が走査線データを引伸ばす程度は過サンプリ
ング率、特定されたパラメータ値、例えば3によって決
定される。高速法でデータを引伸ばすことはピクセルの
分数分に相当する距離だけ離れた低速法における走査線
の選択と同様である。高速法、低速法共元のピクセル・
イメージのデータを過サンプリングするように設計され
ている。
表II乃至VIはコンポジット信号発生器900によって実
行される処理の一例を表わしている。これらの表による
説明の目的は発生器900によって実行される処理を表わ
すものであり、必ずしも実際の状況を表わすことを意図
したものではない。表III、IV、およびVにおけるリス
ト(I)、(J)、(K)および(L)は図15および傾
斜信号発生器112を参照して本明細書中で後程詳細に説
明する。
表IIはグレー・スケールのピクセル・イメージの3本
の走査線に対する元のピクセルの強度データを含み、走
査線#1はイメージの行0に対応し、走査線#2は行1
に対応し、走査線#3は行4に対応する。この例では、
ピクセル強度値が高くなればなるほどピクセルは明るく
なる。表IIの各走査線はピクセル・イメージの列0で開
始し、列9で終了する。従って、例えば(行=2)で
(列=5)におけるピクセルの強度は3である。この例
では、シンボル・ロケータ104によって位置が求められ
た4個のコーナに基づいて決定され、バーコード・シン
ボルはイメージの行に対して反時計方向に45゜の角度の
方向に位置している。
表IIIは走査線#1(行0)を処理する発生器900によ
り得られた結果を表わす。表IIIのリスト(A)は走査
線#1に沿うピクセル・イメージ中の各ピクセルに対す
る元の列番号を含んでいる。リスト(B)は元の各ピク
セルの強度を含んでいる。リスト(C)は、手段904が
元の各ピクセルをθ゜だけ回転させたのちの回転された
列番号を表わす数値(実際の値)を含んでいる。この列
では、θは45゜である。回転された列数値Crは次の
(2)式によって表わされる。
Cr=C0cosθ+R0sinθ (2) ここで、C0はピクセル・イメージ中の元の列数値であ
り、R0は元の行数値である。
キー (A):元のイメージ中のピクセルの列(Col) (B):元のイメージ中のピクセル強度(Int) (C):回転後(Rot)のピクセルの列(Col)(実際の
数値) (D):回転および引伸ばし(Str)後のピクセルの列
(実際の数値) (E):回転され、引伸ばされたピクセルの列(丸めら
れた(四捨五入された)値(Rnd)) (F):回転され、引伸ばされたピクセルの強度(In
t) (G):コンポジット・ベクトル(Cmp Vec)における
対応値 (H):カウント・ベクトル(Ct Vec)における対応値 (I):そのときの走査線に対する白色化傾斜(Wht Gr
ad) (J):白色化傾斜ベクトル(Wht Vec)における対応
値 (K):そのときの走査線に対する黒色化傾斜(Blk Gr
ad) (L):黒色化傾斜ベクトル(Blk Vec)における対応
値 表IIIのリスト(D)は手段904が各回転されたピクセ
ルを過サンプリング率だけ引伸ばしたのち、引伸ばされ
た列番号を表わす数値(実際の数値)を含んでいる。こ
の例は過サンプリング率3に基づいている。リスト
(D)はリスト(C)と過サンプリング率(この例では
3)の積を表わしている。リスト(E)は手段904によ
って発生された引伸ばされ且つ回転されたデータに対す
る丸められた(四捨五入された)列番号を表わす数値
(整数値)を含んでいる。例えば、リスト(D)からの
引伸ばされた列8.49はリスト(E)では丸められて、丸
められた列8になっている。同様に、リスト(D)から
の引伸ばされた列10.61はリスト(E)では丸められ
て、丸められた列11になっている。リスト(E)にはま
た丸められた列相互間に入る列番号が含まれている。従
って列7は丸められた列6と8との間にあり、列9と10
は丸められた列8と11との間にある。次の説明の都合
上、リスト(E)のすべての要素は全体を丸められた列
として表わしている。
リスト(F)はリスト(E)における各丸められた列
に対する強度値を含んでいる。リスト(E)の各丸めら
れた列に対して手段904は、それに対応するリスト
(A)の元の列からの強度値を繰り返す。例えば、リス
ト(E)の丸められた列6および7はリスト(A)の列
3に対応し、従って、これらの丸められた列に対するリ
スト(F)の対応する強度は21となる。
別の好ましい実施例では、手段904はリスト(F)に
おける強度値を決定するために丸められた列相互間を補
間する。この実施例では、リスト(E)の丸められた列
7に対応するリスト(F)の強度は21.5で、リスト
(E)の丸められた列6と8に対応する強度の中間値で
ある。
手段904によって実行される回転および引伸ばしは、
マトリックス乗算に基づく1回の計算で行われる。この
場合、回転マトリックスは過サンプリング率を含むよう
に修正される。
手段904が各走査線に対するデータを回転させ、引伸
ばすと、手段906は1次元コンポジット・ベクトルを更
新し、手段908は引伸ばされ、回転されたデータに基づ
く1次元カウント・ベクトルを更新する。コンポジット
・ベクトルは先に引伸ばされ、回転されたすべての走査
線の“合計”を表わす。カウント・ベクトルは、コンポ
ジット・ベクトルの各要素が何回更新されたかの経過
(トラック)を保持する。ここで再び表IIIの例を参照
すると、リスト(G)はコンポジット・ベクトルを示
し、リスト(H)は走査線#1が処理されたのちのカウ
ント・ベクトルを表わしている。
手段908がカウント・ベクトルを更新したのち、手段9
10はそのときの走査線が処理されるべき最後の走査線で
あるか否かを決定する。それが最後の走査線であれば、
処理は手段912へ続き、そうでない場合は処理は手段902
に戻り、次の走査線を選択する。表IIの例では行0(す
なわち、走査線#1)は最後の走査線でないので、手段
910は新しい走査線として行2を選択するように処理を
手段902に戻すように命令する。
表IVは表IIの走査線#2(行2)を処理する発生器90
0から得られた結果を表わしている。表IVのリスト
(A)乃至(H)は表IIIのそれと同じである。手段906
は先のコンポジット・ベクトル(表IIIのリスト
(G))からのピクセル値と表IVのリスト(F)からの
対応する強度値とを加え合わせることによって更新され
たコンポジット・ベクトル(表IVのリスト(G))を形
成する。手段908は、更新されたリスト(G)のコンポ
ジット・ベクトルの要素に対応するこれらの要素を増加
(インクリメント)させることによりリスト(H)のカ
ウントベクトルを更新する。
走査線#2からの引伸ばされ、回転されたデータのい
ずれもが丸められた列0〜3と一致していないが、幾つ
かのデータは新しい丸められた列21〜24と一致している
ことが判る。その結果、コンポジット・ベクトルの幾つ
かの要素は更新されない。カウント・ベクトルはコンポ
ジット・ベクトルの各要素が何回更新されたかの経過
(トラック)を保持するために使用される。コンポジッ
ト・ベクトルおよびカウント・ベクトルのこの一様でな
い更新は、すべてのバーコード・シンボルと交わらない
走査線、例えば、図10の走査線1を処理するときにも生
ずる。
走査線#2を処理したのち、手段910は手段902に戻っ
て処理するよう命令して、表IIの最後の走査線である走
査線#3(行4)を選択する。表Vは発生器900が表II
の走査線#3(行4)を処理することによって得られた
結果を表わしている。ここでも表Vのリスト(A)乃至
(H)は表IIIおよび表IVのそれと等価である。
走査線#3を処理したのち、手段910は処理を手段912
へ続くように命令する。手段912はコンポジット・ベク
トルを“規格化”して、コンポジット・ベクトル中の各
素子をカウント・ベクトル中の対応する要素で割算する
ことにより1次元コンポジット信号を発生する。手段91
4はこのコンポジット信号をシステム100のコンポジット
信号スレッショルダ108に転送する。
表VIは手段912によって発生された1次元コンポジッ
ト信号を表わす。リスト(E)、(G)、および(H)
は表Vの対応するリストと同じである。リスト(M)は
リスト(G)のコンポジット・ベクトルの要素をリスト
(H)のカウント・ベクトルの係数ベクトルの対応する
要素で割算することにより手段912によって発生された
コンポジット信号を表わす。手段914はリスト(M)の
コンポジット信号をスレッショルダ108に転送する。
キー (M):規格化されたコンポジット信号=コンポジット
・ベクトル/カウント・ベクトル (N):スレッショルド処理されたコンポジット信号
(閾値=12.0) 1次元コンポジット信号のスレッショルドおよび濾波 次に図11を参照する。同図には、バーコード・シンボ
ルの1次元コンポジット信号をスレッショルド処理する
ためのシステム100のコンポジット信号スレッショルダ1
08によって実行される処理のフローチャートがブロック
の形で示されている。コンポジット信号が図6を参照し
て本明細書中で先に説明した低速法を使用して発生器60
0により発生されたものであろうと、図9を参照して本
明細書中で先に説明した高速法を使用して発生器900に
より発生されたものであろうと、スレッショルダ108は
コンポジット信号を処理する。スレッショルダ108は、
コンポジット信号をバーコード・シンボルのバーとスペ
ースに対応する2進値黒(“0")および白(“1")にス
レッショルド処理(閾値分け)する。次いでスレッショ
ルダ108はスレッショルド処理された信号を濾波してス
プリアスなバーおよびスペースを除去する。次いでスレ
ッショルダ108は濾波された信号をコンポジット信号デ
コーダ110に転送する。コンポジット信号デコーダ110は
濾波された信号をデコーディング(解読)するのに通常
のバーコード・シンボル・デコーディング法を使用して
いる。
スレッショルダ108は手段1102は発生器106から供給さ
れるコンポジット信号をスレッショルド処理する。手段
1102は固定された閾値でスレッショルド処理することを
含む任意の通常のスレッショルド・アルゴリズムを使用
することができるが、コンポジット信号をスレッショル
ド処理するためにアダプティブ(適応性)スレッショル
ドを使用することが好ましい。
ここで、再び表VIを参照すると、リスト(N)は固定
されたスレッショルド値12を用いてリスト(M)のコン
ポジット信号をスレッショルド処理することによって手
段1102で発生された2進信号を表わしている。コンポジ
ット信号の要素が12より大であれば、対応する2進値は
1(白)であり、12以下であれば、対応する2進値は
(黒)である。表II乃至VIの例では、コンポジット信号
を発生するための高速法は丸められた列12と13との間の
明から暗への遷移、丸められた列18と19との間の暗から
明への遷移、および丸められた列27と28との間のその化
の明から暗への遷移を表わしている。これらの遷移はバ
ーコード・シンボル中の端縁部に対応する。
手段1102はコンポジット信号中の遷移の位置を求める
ためにアダプティブ(適応性)スレッショルド・アルゴ
リズムを採用することが好ましい。好ましいアダプティ
ブ・スレッショルド・アルゴリズムでは、手段1102はコ
ンポジット信号中の局部最小強度値と局部最大強度値と
の間の遷移の位置を求めるために使用される閾値を決定
するために、上記コンポジット信号中の局部最小強度値
と局部最大強度値とを有する。
再び表VIを参照すると、第1の局部最大強度値は丸め
られた列2および3に対応する23.0であり、第1の局部
最小強度値は丸められた15および16に対応する3.7であ
る。この例では、手段1102は、丸められた列2と丸めら
れた列16との間に供給されるべき閾値として局部最大値
と極部最小値の和の2分の1(0.5×(23.0+3.7))す
なわち13.4を選択する。この閾値を移用して手段1102は
丸められた12と13との間の明から暗への遷移の位置を求
める。ある特定の状況のもとでは、コンポジット信号中
の2あるいはそれ以上の連続した要素がスレッショルド
値に等しいと、その一連の連続する要素の中央の要素が
明/暗の遷移として選択される。
ノイズの影響を最小にするために、局部最大値および
局部最小値は特定された有効値(significant value)
の形で定義される。ある局部最大値と次の局部最小値と
の間の差が上記の特定された有効値より大きくなけれ
ば、そのときは手段1102はそれらを捨て、引き続きコン
ポジット信号中の適性な局部最小ピクセルと局部最大ピ
クセルをサーチする。
例えば、強度値(5、3、6、25、22、26、10、4、
7)を有するコンポジット信号について考えてみる。有
効値が5であると決定されると仮定すると、手段1102は
左から右に走査して局部最小値3を見つける。手段1102
は走査を続け、局部最大値25を見つける。局部最大値
(25)と局部最小値(3)との間の差は有効値(5)よ
りも大であるので、手段1102はこれらの値を保持する。
次いで手段1102は走査して次の局部最小値(22)を見
つける。局部最大値(25)と局部最小値(22)との間の
差は有効値(5)よりも大きくはないので、手段1102は
引き続き適性な局部最小値を探す。手段1102が適性な局
部最小値を探している間に、手段1102は必要があれば局
部最大値を更新する。かくして手段1102が次の局部最小
値(4)を見つけるために走査するときは、手段1102は
局部最大値を(26)に更新している。更新された局部最
大値(26)と新しい局部最小値(4)は有効値(5)よ
りも大であるので、手段1102はこれらのピクセルを適正
な局部最大値、局部最小値として選択する。次いでこれ
らの局部最小値および局部最大値は平均化されて、局部
最大値と局部最小値との間の遷移に相当するピクセルを
発見するために使用される閾値を計算する。有効値が5
ではなく2であれば、25と26はともに局部最大値と見做
されるされることに注意する必要がある。
選択された有効値はノイズに対する手段1102の不感性
(immunity)を決定する。有効値が高いとノイズに対す
る不感性はかなり大きくなるが、コンポジット信号中の
真の明/暗の遷移が失われるという結果が生じる。これ
に反して有効値が低いと、ノイズの多い領域における遷
移を誤って認識する可能性がある。有効値は高すぎるよ
りも低すぎる方が好ましい。これは後続する濾波処理に
よりスプリアスな遷移が取り除かれる可能性があるが、
失われた真の遷移は回復不可能であることによる。好ま
しい実施例では、有効値はコンポジット信号内の全体の
最小値と最大値とによって特定される上記コンポジット
信号のダイナミック・レンジの分数(例えば、8分の
1)を基準としている。
次に図12および13を参照する。これらの図にはノイズ
の多いコンポジット信号をスレッショルド処理するのに
比較的低い有効値を使用したことにより生ずる可能性の
あるスプリアスな明/暗の遷移の2つに共通した例が示
されている。図12は単一のスペースであるべきところに
あるスプリアス・バー1の2進表示を表わしている。図
13は1個のスペースと1個のバーのみが存在すべきとこ
ろにあるスプリアス・バー1あるいはスプリアス・スペ
ース2のいずれかの2進表示を表わしている。
手段1104はスプリアス・バーおよびスペースを除去す
るためにスレッショルド処理されたコンポジット信号を
濾波する。スプリアス・バー/スペースはあまりに狭
く、デコードされるバーコード・シンボルの既知の特性
によって決定される有効であるとされないものである。
閾値は、デコードされる特定のシンボルにおける最小の
バーおよびスペースの幅のある分数値(例えば2分の
1)を基準として設定されている。バーあるいはスペー
スが指定されたスレッショルドよりも狭いと、そのスペ
ース/バーは除かれる。図12で、バー1は狭すぎて有効
とされないので、手段1104はスプリアス・バー1を除去
して単一のスペースを生成する。
図13において、バー1およびスペース2は共に適用で
きるスレッショルド以下である。この場合は、手段1104
は隣接するバー/スペースを合体させることによって2
つのうちの狭い方を除去する。バー1がスペース2より
も狭いと、その場合は、手段1104はバー1を除去して点
4で終了する単一のスペースを生成する。しかしなが
ら、バー1がスペース2よりも狭くなければ、その場合
は手段1104はスペース2を除去して点3で終了する単一
のスペースを生成する。
再び図11を参照すると、手段1104がスレッショルド処
理された信号を濾波したのち、手段1106は濾波された信
号をコンポジット信号デコーダ110に転送し、デコーダ1
10は通常のバーシンボル・デコード手段を用いて濾波さ
れた信号をデコードする。
コンポジット信号のデコーディング(解読) コンポジット信号デコーダ110は、通常のバーコード
・シンボル・デコーディング法を用いてスレッショルダ
108によって発生された濾波されたコンポジット信号を
デコードする。デコーダ110は、コード128、コード39、
インタリーブされた2オブ5コード(2 of 5)(即ちIT
F)のような任意所望のシンボルをデコードすることが
できる。
コード128バーコード・シンボルをデコードする場合
は、デコーダ110は、米国特許出願第07/927,910号明細
書中の「サブピクセル補間により得られた結果からのキ
ャラクタ選択の決定(Determining Character Choices
from Subpixel Interpolation Result)」という節に記
載の標準のライクエッジ−ライクエッジ(like edge to
like edge)測定を行なう。上記米国特許出願明細書の
開示内容については本明細書中で参照されている。デコ
ーダ110は標準のt1、t2、t3およびt4の値を計算し、マ
ッピングテーブル(mapping−table)を走査し、コード
128の3組のキャラクタすべてのデコーディングを維持
するためにコード128のチェックサム計算を実行する。
次に図14を参照する。これにはコード39バーコード・
シンボルをデコードするためにシステム100のコンポジ
ット信号デコーダ110によって実行される処理のフロー
チャートがブロック図の形で示されている。コード39シ
ンボルは5個のバーと4個のスペースをもったキャラク
タを基準としたものである。コード39では、3個のバー
/スペースは広くなければならず、他の6個のバー/ス
ペースは狭くなければならない。さらに、コード39キャ
ラクタは2個の広いバーと1個の広いスペース、あるい
は3個の広いスペースのいずれかをもっていなければな
らない。正確に0、2、あるいは4個の広いスペースを
もったキャラクタは有効なコード39のキャラクタではな
い。同様に、そのキャラクタが正確に1個の広いスペー
スをもっているが、正確に2個の広いバーをもっていな
ければ、そのキャラクタは有効なコード39のキャラクタ
ではない。モード39バーコード・シンボルをデコードす
るときに、デコーダ110はバーコード・シンボルの5個
のバーと4個のスペースを一度に検査し、それらを広
い、狭いと分類し、そのキャラクタをルックアップ・テ
ーブルを参照してデコードする。
コード39のキャラクタをデコードするために、デコー
ダ110は先ずそのキャラクタの4個のスペースを解析す
る。図14の手段1402はキャラクタに対するスペース幅ス
レッショルドを計算する。この場合、スペース幅スレッ
ショルドはそのキャラクタの最も広いスペースの幅と最
も狭いスペースの幅との平均である。
手段1404は各スペースの幅をスペース幅スレッショル
ドと比較することによって4個のスペースの各々が広い
か狭いかを決定する。手段1404は、その幅がスペース幅
スレッショルドよりも大であれば、スペースは広いと分
類し、それ以外の場合はそのスペースは狭いと分類す
る。
手段1404が3個のスペースを広いと分類し、1個のス
ペースを狭いと分類すると、手段1406はキャラクタをデ
コードするために、手段1416に処理を指示し、それ以外
の場合は処理を後続する手段1408に実行させる。デコー
ダ110が3個の広いスペースと1個の狭いスペースが存
在すると決定すると、デコーダ110は5個のバーすべて
が狭いと仮定し、キャラクタは有効なコード39キャラク
タであると仮定する。
手段1404が1個のスペースが広く、3個のスペースが
狭いと分類すると、手段1408は手段1410に処理を指示
し、それ以外の場合はキャラクタはデコードされない。
デコーダ110が、正確に1あるいは3個の広いスペース
が存在しないと仮定すると、キャラクタは有効なコード
39キャラクタではなく、有効なコード39キャラクタとし
てデコードすることができない。
デコーダ110が、3個の狭いスペースと1個の広いス
ペースが存在すると決定すると、デコーダ110はキャラ
クタの5個のバーを分析する。手段1410はキャラクタに
対するバー幅のスレッショルドを計算する。ここで、バ
ー幅のスレッショルドはそのキャラクタ中の最も広いバ
ーの幅と最も狭いバーの幅の平均である。
手段1412は各バーの幅をバー幅のスレッショルドと比
較することにより5個のバーの各々を広いバーと狭いバ
ーに分類する。そのバーがバー幅のスレッショルドより
も大であると広いバーと分類し、それ以外の場合は狭い
バーと分類する。
手段1412が2個のバーが広く、3個のバーが狭いと分
類すると、手段1414はキャラクタをデコードするために
手段1416に処理を指示し、それ以外の場合はキャラクタ
は有効なコード39キャラクタではなく、有効なコード39
キャラクタとしてデコードすることができない。もし、
正確に1個の広いスペースが存在すると決定されたのち
デコーダ110が2個の広いバーと3個の狭いバーが存在
すると決定すると、デコーダ110はそのキャラクタは有
効なコード39のキャラクタであると仮定する。
コード39キャラクタの3個の広いバー/スペースと6
個の狭いバー/スペースの位置を順次に求めたのち、手
段1416は、手段1404と1412によって識別された一連の広
いバーおよびスペース、一連の狭いバーおよびスペース
を使用して適正な英数字キャラクタ用のコード39ルック
アップ・テーブルをサーチすることによりキャラクタを
デコードする。好ましい実施例では、デコーダ110はコ
ード39のチェックサム解析を実行する。
図14の好ましい実施例では、デコーダ110は、スペー
ス分類用のスレッショルドとバー分類用のスレッショル
ドの2つの異なる幅スレッショルドをそれぞれ別々に計
算することによってバーとスペースの幅を分析する。デ
コーダ110はスペース用およびバー用のこれらの異なる
幅スレッショルドを使用してピクセル・イメージのにじ
み(bleeding)により生ずる可能性のあるデコーディン
グ・エラーを減少させる。
通常のイメージング・システムを使用してピクセル・
イメージが生成されたとき、しばしばイメージ中の暗い
領域が明るい領域ににじみ出る傾向がある。このにじみ
のために、イメージ化されたバーコード・シンボル中の
バーは真のバーコード・シンボル中のバーよりも広く見
え、スペースは真のバーコード・シンボル中のスペース
よりも狭くみえる可能性がある。ときには真の狭いバー
(すなわち、真のバーコード・シンボル中の狭いバー)
はピクセル・イメージ中で真の広いスペースよりも広く
見えることさえある。バーおよびスペースの幅に関する
このような明らかな変化によりバーコード・シンボルの
デコードにエラーが導入されることがある。例えば、コ
ード39シンボルをデコードするときは、ピクセル・イメ
ージのにじみにより生ずるデコーディング・エラーを減
少させるために、デコーダ110は異なる幅のスレッショ
ルドを個別に使用してバーとスペースを分類することが
望ましい。
にじみの影響を修正するためのバーコード・シンボル
中のバーおよびスペースのこの個々の分類はコード39シ
ンボル以外のシンボルをデコードするのにも使用できる
ことは当業者には明らかである。
例えば、デコーダ110はインターリーブされたI2オブ
5(I2 of 5)バーコード・シンボルをデコードするた
めにバーおよびスペースの個々の分類を使用するのが望
ましい。I2オブ5キャラクタでは、5個のバーと5個の
スペースが2個の十進数字をエンコード(符号化)す
る。バーは第1の数字をエンコードし、スペースは第2
の数字をエンコードする。各数字は2個の広いバー(あ
るいはスペース)と3個の狭いバー(あるいはスペー
ス)で表わされる。コード39シンボルに対してテコーダ
110によって実行される個別の分類技法と同様に、デコ
ーダ110は一度にI2オブ5(I2 of 5)シンボルの13個の
バーとスペースとを受け入れて、バーおよびスペースを
個別に分類することによりそれらを狭いあるいは広いと
分類する。その結果、各ビットが対応するバー/スペー
スの幅を表わす13ビット値が得られる。
次いでデコーダ110はI2オブ5(I2 of 5)ルックアッ
プ・テーブルを、バーのサーチに1回、スペースのサー
チに1回の合計2回サーチする。デコーダ110はテーブ
ルのルックアップ期間中、最初の10個のバー/スペース
(上の10ビット)のみを使用する。他の3ビットは12オ
ブ5のストップ・パターンに対応する。最後の3ビット
が有効ストップ・パターン(広いバー、狭いスペース、
広いバー)であれば、デコーディングは終了する。それ
以外の場合は、他の13個のバーおよびスペースが分析さ
れる。この場合、最初の3個のバーとスペースは先行す
るリストからの最後の3個のバーとスペースである。デ
コーダ110はまた12オブ5のチェックサム分析を実行す
ることが望ましい。
スレッショルド処理されたコンポジット信号をデコー
ドしたのち、デコーダ110はデコードされた信号をシス
テム110の出力セレクタ118に転送する。
バーコード・シンボル用の傾斜(gradient)信号の発生 次に図15を参照する。同図にはシンボル・ロケータ10
4によって位置が求められたバーコード・シンボルに対
する白色化(whitening)傾斜信号および黒色化(black
ening)傾斜信号を発生させるためにシステム100の傾斜
信号発生器112によって実行される処理のフローチャー
トがブロック図の形で示されている。傾斜信号はバーコ
ード・シンボル中のバーとスペースとの間の遷移(すな
わち、バーの先端部と後端部)を発見するために使用さ
れる。
好ましい実施例では、発生器112はバーコード・シン
ボルと交わるピクセル・イメージ中の行あるいは列の組
からの走査線を選択する。これらの走査線は、図9を参
照して本明細書中で先に説明したコンポジット信号を発
生させるための高速法用に選択された走査線と同じ走査
線であることが好ましい。
各走査線に対して発生器112は走査線データを回転さ
せ、引伸ばし、2個の1次元傾斜ベクトル、すなわち白
色化傾斜ベクトルと黒色化傾斜ベクトル、ならびに引伸
ばされ且つ回転されたデータに基づく1次元カウント・
ベクトルを更新する。選択されたすべての走査線が処理
されると、発生器112は2個の傾斜ベクトルを規格化し
て白色化および黒色化傾斜ベクトルを発生し、これらの
傾斜信号を平滑し、平滑された傾斜信号をさらに処理す
るために傾斜信号プロセッサ114に転送する。
手段1502は一連の走査線を選択する。手段1502は、図
9のコンポジット信号発器900の手段902によって選択さ
れた走査線と同じ一連の走査線を選択することが望まし
い。手段1504はそのとき選択された走査線からのデータ
を回転し、引伸ばす。手段1504は発生器900の手段904に
よって実行される回転および引伸ばし機能と同じ回転お
よび引伸ばし機能を実行することが望ましい。好ましい
実施例では、コンポジット信号発生器900と傾斜信号発
生器112に共通の演算(例えば、走査線の選択、回転、
引伸ばし)は重複を避けるために合体される。
再び表IIの例を参照すると、図9を参照して本明細書
中で先に説明したように、各走査線に対する手段1504の
処理は手段904により実行される処理と同じである。表I
II、IVおよびVのリスト(A)乃至(F)もまた傾斜信
号発生器112の動作を説明するために使用できる。
手段1504が第1の走査線を回転させ且つ引伸ばしたの
ち、手段1506は回転され、引延ばされたデータを使用し
た白色化および黒色化の傾斜ベクトルを更新する。好ま
しい実施例では、白色化傾斜ベクトルはピクセル強度値
が増大する方向のすべてのピクセル−ピクセル変化の大
きさを累算する1次元ベクトルである。同様に、黒色化
傾斜ベクトルはピクセル強度が減少する方向のすべての
ピクセル−ピクセル間の変化の大きさを累算する1次元
ベクトルである。各傾斜ベクトルに対して、隣接するイ
メージ・ピクセル間の差の大きさは累積され、絶対ピク
セル値そのものではない。別の好ましい実施例では、白
色化および黒色化の傾斜ベクトルはそれらの変化の大き
さを累積するのとは対照的に、増加および減少する各ピ
クセル−ピクセル間の変化の数を累積する。
白色化および黒色化の傾斜はその走査線データの1次
微分の形で特定される。白色化傾斜は0より大きいこれ
らの1次微分に対応し、黒色化傾斜は0より小さいこれ
らの1次微分の大きさに対応する。
ここで再び表IIIを参照する。リスト(I)は走査線
#1に対する白色化傾斜を表わし、リスト(J)は手段
1506が走査線#1を処理したのち白色化傾斜ベクトルを
表わしている。一般に、白色化傾斜ベクトルは処理され
たすべての走査線に対する対応する白色化傾斜の合計を
表わしている。この例では走査線#1は処理される最初
の走査線であるので、リスト(I)の白色化傾斜はリス
ト(J)の白色化傾斜ベクトルと同じである。
強度は元のデータにおけるピクセル(0、0)からピ
クセル(1、1)までに21から23に増加するので、丸め
られた列2および3に対するリスト(I)中の対応する
重みの傾斜は2である。元のイメージ中の先行するピク
セルからそのときのピクセルへの変化が正でなければ、
そのときのピクセルに対する白色化傾斜は存在しない。
例えば、元のデータ中のピクセル(0、1)から(0、
2)までに強度は23から22に減少するので、丸められた
列4および5に対するリスト(I)中の対応する重み傾
斜は0である。
同様に、表III中のリスト(K)は走査線#1に対す
る黒色化傾斜を表わしている。例えば、元のデータ中の
ピクセル(0、4)から(0、5)までに強度が22から
18に減少するので、丸められた列11および12に対する対
応する黒色化傾斜は4である。元のイメージ中の先行す
るピクセルからそのときのピクセルへの変化が正でなけ
れば、そのときのピクセルに対しては黒色化の傾斜は存
在しない。例えば、元のデータ中のピクセル(0、7)
から(0、8)までに強度が4から5に増大するので、
丸められた列17および18に対する対応する黒色化傾斜は
0である。表IIIのリスト(L)は手段1506が走査線#
1を処理したのちの黒色化傾斜ベクトル(すなわち、累
積された黒色化傾斜)を表わしている。
図9を参照して本明細書中で先に説明したように、手
段1506はコンポジット信号発生器900の手段908によって
発生されたカウント・ベクトルと同様な1次元カウント
・ベクトルを更新する。表III、IV、V中のリスト
(H)もまた傾斜信号発生器の説明に適用できる。
手段1506がそのときの走査線に対する傾斜ベクトルお
よびカウント・ベクトルの双方を更新したのち、手段15
08はそのときの走査線がバーコード・シンボルに対する
最後の走査線であるか否かを決定する。もし、最後の走
査線でなければ、次の走査線を選択するために処理は手
段1510に戻る。最後の走査線であれば、処理は手段1510
へ進む。
表IIの例では、走査線#1が処理されたのち、処理は
手段1502に戻って新しい走査線として走査線#2を選択
する。表IVは走査線#2の処理結果を表わしている。表
IVのリスト(I)および(K)はそれぞれ走査線#2に
対する白色化および黒色化の傾斜を表わす。リスト
(J)および(L)は更新された傾斜ベクトルを表わ
す。手段1506は表IIIの傾斜ベクトルに走査線#2に対
する傾斜を“加算”することにより傾斜ベクトルを更新
する。同様に、表Vは走査線#3の処理により得られた
結果を表わしている。
最後の走査線が処理されたのち、手段1508は手段1510
へ処理を指令する。手段1510は各傾斜ベクトルの要素を
カウント・ベクトルの対応する素子によって割ることに
より白色化および黒色化傾斜ベクトルを規格化する。
表VIIおよびVIIIはそれぞれ白色化および黒色化の処
理結果を表わしている。表VIIのリスト(E)、(H)
および(J)、表VIIIのリスト(E)、(H)および
(L)は表Vの対応するリストと同じである。表VIIの
リスト(O)はリスト(J)の白色化傾斜ベクトルを規
格化する手段1510から得られた白色化傾斜信号を表わし
ている。手段1510はリスト(J)中の対応する要素をリ
スト(H)中の対応する要素で割ることによりリスト
(O)中の各要素を決定する。同様に、表VIIIのリスト
(T)はリスト(L)の黒色化傾斜ベクトルを規格化す
る手段1510から得られた黒色化傾斜信号を表わしてい
る。
キー (O):規格化された白色化傾斜信号=白色化傾斜ベク
トル/カウント・ベクトル (P):平滑された白色化傾斜信号=(先行ピクセル+
(2×ピクセル)+次のピクセル)/4 (Q):セグメント番号 (R):セグメントのマス(mass:集合) (S):白色化傾斜セグメントの重み付けられた重心 ★:マスが小さいために除去されたセグメント キー (T):規格化された黒色化傾斜信号=黒色化傾斜ベク
トル/カウント・ベクトル (U):平滑された規格化された黒色化傾斜信号 =(先行ピクセル+(2×ピクセル)+次のピ
クセル)/4 (V):セグメント番号 (W):セグメントのマス (X):白色化傾斜セグメントの重み付けられた重心 ★:マスが小さいために除去されたセグメント 手段1510が傾斜ベクトルを規格化したのち、手段1512
は得られた白色化傾斜信号および黒色化傾斜信号を平滑
する。手段1512で使用されている平滑化フィルタは走査
線データを引伸ばすために使用される過サンプリング率
に基づくものであることが好ましい。表IXは異なる過サ
ンプリング率に対する好ましいフィルタのパラメータを
表わす。
表VIIのリスト(P)は過サンプリング率3に基づく
リスト(O)の白色化傾斜信号を平滑して得られた結果
を表わしている。過サンプリング率3に対しては、リス
ト(P)の平滑された白色化傾斜信号中の各要素は次の
(3)式を使って計算される。
ここで、Wiは素子Siに対応するリスト(O)の白色化
傾斜信号中の要素であり、Wi-1はリスト(O)中の先行
要素であり、Wi+1はリスト(O)中の次の要素である。
同様に、表VIIIのリスト(U)は過サンプリング3に基
づくリスト(T)の黒色化傾斜信号を平滑して得られた
結果を示している。
手段1512が2つの傾斜信号を平滑したのち、手段1514
はシステム100の傾斜信号プロセッサ114に平滑化された
傾斜信号を転送する。手段1512による平滑化は必要に応
じて自由に選択される処理ステップであることは当業者
には明らかである。
平滑された傾斜信号の処理およびデコーディング 次に図16を参照する。同図には発生器112によって発
生された平滑された白色化傾斜信号および黒色化傾斜信
号を処理するためにシステム100の傾斜信号プロセッサ1
14によって実行される処理のフローチャートがブロック
の形で示されている。白色化および黒色化傾斜信号は、
それぞれバーコード・シンボル中の暗から明への遷移、
明から繰路への遷移の位置を表わしている。すなわち、
これらはそれぞれバーコード・シンボル中のバーの前縁
と後縁を表わしている。プロセッサ114は傾斜信号中の
明/暗の遷移の位置を求め、これらの遷移位置から1個
の1次元の再構成された信号を発生する。プロセッサ11
4はこの再構成された信号を傾斜信号デコーダ116に転送
し、デコーダ116は通常のバーコード・デコーディング
法を使用してこの信号をデコードする。
好ましい実施例では、プロセッサ114は2つの傾斜信
号をセグメント化し、信号セグメントの重心(centroi
d)を回転させ、その重心位置から単一の2進信号を再
構成する。別の好ましい実施例(図示せず)では、プロ
セッサ114は再構成された信号に対する遷移の位置とし
て2個の傾斜信号のそれぞれのピークを選択する。
図16の手段1602は発生器112から平滑された白色化信
号および黒色化信号を受信し、それらを個々のセグメン
トにセグメント化する。各セグメントは傾斜信号中の局
所最小値で開始し、次の局部最小値で終了する。従っ
て、各セグメントは1個の局部最大値を含んでいる。再
び表VIIを参照すると、リスト(Q)はリスト(P)の
平滑された白色化傾斜信号中のセグメントを識別する。
同様に、表VIIIのリスト(V)はリスト(U)の黒色化
傾斜信号中のセグメントを識別する。
間違ったセグメント化が行われるのを最少にするため
に、手段1602は傾斜信号におけるセグメントを特定する
局部最小値を決定するための有効値試験を使用すること
が好ましい。ここで使用される有効値試験は図11を参照
して本明細書中で先に説明した有効値試験と同様なもの
である。
手段1602が平滑された傾斜信号をセグメント化したの
ち、手段1604は各セグメントのマスを決定する。各セグ
メントはそのセグメントに対する平滑された傾斜値の和
である。表VIIIのリスト(R)はリスト(Q)で特定さ
れた白色化傾斜信号のマスを表わす。同様に、表VIIIの
リスト(W)はリスト(V)で特定された黒色化傾斜信
号のマスを表わす。従って、例えば表VIIにおけるセグ
メント#3は(0.1+0.2+0.2+0.1)=0.6のマスをも
っている。
手段1604が各セグメントのマスを決定したのち、手段
1606は充分な6マスをもったこれらのセグメントの重み
付けられた重心の位置を求める。手段1606は不充分なマ
スをもっていることを示す指定されたマスのスレッショ
ルド以下のマスのセグメントを無視する。このマスのス
レッショルドは、過サンプリング率と元のピクセル・イ
メージ中の狭いバーあるいはスペースの期待されるマス
との積の分数、例えば8分の1に等しく設定されている
ことが好ましい。
ピクセル・イメージ中のノイズは傾斜信号中にスプリ
アスなセグメントを生じさせる可能性がある。イメージ
のノイズがそれほど大きくなければ、スプリアスなセグ
メントは真のセグメントのマス(すなわち、ピクセル・
イメージ中の真の明/暗の遷移に相当する)よりも一般
的に小さなマスをもつようになる。この場合、手段1606
はスプリアス・セグメントを“濾波”して取り除くため
に使用される。
表VIIではセグメント#1、2、3、および5は特定
されたマスのスレッショルドである20以下のマスをもっ
ているものとして拒絶される。表VIIIIのセグメント#
1および3もまた同様にマスのスレッショルド以下のマ
スをもつものとして拒絶される。
小さいマスを有するセグメントを除去したのち、手段
1606は残りのセグメントの重み付けされた重心(centro
id)の位置を求める。重み付けされたセグメントの重心
はそのセグメントのマスの指定された割合に相当するセ
グメント内の位置である。例えば、50%を基準とする重
み付けされた重心は各セグメントのマスの中心に対応す
る。40%を基準とする重み付けされた重心は、マスの40
%が左、60%が右のセグメント内の位置に対応する。
表VIIにおけるリスト(S)の“1"はセグメント#4
の重みつけされた重心の位置を指定し、ここでは50%が
選択された重み付けされた重心の割合である。同様に表
VIIIのリスト(X)はセグメント#2および4の重み付
けされた重心の位置を指定している。
別の好ましい実施例(図示せず)では、白色化および
黒色化傾斜セグメントにおける重心の位置を求めるため
に異なる重み付けされた重心の割合が使用される。黒色
のバーはバーコード・シンボルのイメージにおける白の
スペース内ににじみでる可能性があるので、イメージ中
でバーは広く見え、スペースは狭く見える。黒色化重心
(blackening−centroid)の割合よりも小さい白色化重
心(whitening−centroid)の割合を使用することによ
り、このようなにじみ効果を修正することができる。正
確な重み付けられた重心の割合は、経験的に既知のバー
コード・シンボルのイメージに対して実行される試験に
基づいて選択される。
手段1606が白色化および黒色化セグメントの重心の位
置を求めたのち、手段1608は、2個の傾斜信号から重心
の位置をインタリーブすることにより1個の1次元信号
を再構成する。平滑された黒色化傾斜信号からの各セグ
メントの重心はバーコード・シンボルのバーの前縁に対
応する。同様に、平滑された白色化傾斜信号からの各セ
グメントの重心はバーコード・シンボルのバーの後縁に
対応する。
表Xは、表VIIおよびVIIIの白色化および黒色化セグ
メントの重心をインタリーブする手段1608の結果を表わ
している。表Xのリスト(E)、(S)、および(X)
は、表VIIおよびVIIIの対応するリストと同じである。
表Xのリスト(Y)は手段1608によって発生された1次
元の再構成された信号を表わしている。表Xのリスト
(Y)の再構成された信号は表VIのリスト(N)のスレ
ッショルドされた信号と同じで、システム100の発生器1
12とプロセッサ114による傾斜信号の処理によってシス
テム100のコンポジット信号処理発生器900とスレッショ
ルダ108と同じ結果を発生することに注目する必要があ
る。
キー (Y):再構成された信号 再構成された信号が2つの連続するバーの前縁をもっ
ておれば、そのときはバーの後縁は見逃されるかあるい
は別のバー前縁が挿入される。同様に、再構成された信
号が2つの連続するバーの後縁をもっておれば、そのと
きはバーの前縁は見逃されるかあるいは別のバー後縁が
挿入される。もし、真のバーの縁部が見逃されると、手
段1602によって実行されるセグメント化の処理はさらに
小さい傾斜に対してより高感度に行われる必要がある。
もし、スプリアスなバーの縁部が挿入されると、そのと
きはセグメント化は、そのセグメントを誤って2分割す
ることなく傾斜信号中のより大きい変化に適応するよう
に低い感度で行われる必要がある。セグメント化処理の
感度は、そのセグメントが充分のマスをもっているか否
か決定するために手段1606で使用される指定されたマス
・スレッショルドを変更することによって調整される。
手段1608が再構成された信号を発生したのち、手段16
10は再構成された信号を傾斜信号デコーダ116に転送す
る。好ましい実施例では、デコーダ116の処理は本明細
書中の「コンポジット信号のデコーディング」というタ
イトルが付された項で先に説明したコンポジット信号デ
コーダ110の処理と同じである。バーコード・シンボル
をデコードしたのち、デコーダ116はデコードされ信号
を出力セレクタ118に転送する。
表IIの例を参照して本明細書中で先に説明したよう
に、本発明の好ましい実施例では元のピクセル強度値
は、元の列を回転させ、引伸ばし、さらに丸めることに
よって生成された丸められた列相互間の“ギャップを埋
める”ために反復される。別の好ましい実施例(図示せ
ず)では、元のピクセル強度値は過サンプリング率に従
って反復される。
例えば、過サンプリング率3に対する表IIIを参照す
る。システム100は、丸められた列0、1、および2に
対応するコンポジット・ベクトルの素子を更新するため
にピクセル(0、0)の強度値が3回使用されるように
元のピクセル(0、0)を回転し、引伸ばす。同様にシ
ステム100は、丸められた列2、3、および4に対応す
るコンポジット・ベクトルの要素を更新するためにピク
セル(0、1)の強度値が3回使用されるように元のピ
クセル(0、1)を回転し、引伸ばす。
走査線1の元のピクセル(0、0)および(0、1)
の双方の強度値が、丸められた列2に対応するコンポジ
ット・ベクトルの要素を更新するために使用されること
に注意する必要がある。従って、この好ましい実施例で
は、丸められた列相互間の“ギャップを埋める”代わり
に過サンプリング率に従って元のピクセルが反復され、
“オーバーラッピング(overlapping:重複)”が生ず
る。この例では、丸められた列2に対応するカウント・
ベクトルの要素はこのオーバーラッピング効果を反映す
るために2回反復される。
システム100はハードウエアあるいはソフトウエアの
形で構成することができ、またハードウエアとソフトウ
エアの組合わせの形で構成することもできる。好ましい
実施例では、システム100はインテル(Intel)社製の80
X86ファミリあるいはモトローラ(Motorola)社製の680
X0ファミリのような普及形のマイクロプロセッサでラン
(実行)するソフトウエアで構成されている。
システム100の好ましい実施例は2進および/または
グレイスケール・イメージの形式のバーコード・シンボ
ルの位置を求め、デコードするよう設計することもでき
ることは当業者には明らかである。
また、システム100にはパラメータ駆動されるように
設計されていることが望ましいことは当業者には明らか
である。この場合、各種のパラメータに対する値は特定
の適用例に基づいて変更される。さらに、あるパラメー
タ値は既知のサンプル・イメージの処理から経験的解析
に基づいて選択されることは云うまでもない。
本発明の特徴を説明するに当たって、ここで説明し、
図示した各部の細部、材料、構成については、次に示す
請求の範囲に記載された本発明の原理、範囲から逸脱し
ない範囲内で種々変更できることは云うまでもない。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平2−59879(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06K 7/00 - 7/10

Claims (22)

    (57)【特許請求の範囲】
  1. 【請求項1】(a)バーコード・シンボル中の相対的な
    暗から明への各変化の大きさを表わす第1の傾斜信号を
    発生するステップと、 (b)上記バーコード・シンボル中の相対的な明から暗
    への各変化の大きさを表わす第2の傾斜信号を発生する
    ステップと、 (c)上記第1の傾斜信号と第2の傾斜信号に従って上
    記バーコード・シンボルをデコードするステップと、 からなる、ピクセル・イメージのバーコード・シンボル
    を読取る方法。
  2. 【請求項2】上記第1の傾斜信号は白色化傾斜信号であ
    り、上記第2の傾斜信号は黒色化傾斜信号である、請求
    項1に記載のピクセル・イメージのバーコード・シンボ
    ルを読取る方法。
  3. 【請求項3】上記ステップ(c)は、 (1)上記第1の傾斜信号を少なくとも1個の第1のセ
    グメントにセグメント化するステップと、 (2)暗から明への遷移に対応する上記第1のセグメン
    トにおける第1の位置を選択するステップと、 (3)上記第2の傾斜信号を少なくとも1個の第2のセ
    グメントにセグメント化するステップと、 (4)明から暗への遷移に対応する上記第2のセグメン
    トにおける第2の位置を選択するステップと、 (5)上記第1の位置と第2の位置とに従って上記バー
    コード・シンボルをデコードするステップと、 を含むものである、 請求項1に記載のピクセル・イメージのバーコード・シ
    ンボルを読取る方法。
  4. 【請求項4】上記ステップ(c)の(5)は、 (i)上記第1の位置と第2の位置とに従って再構成さ
    れた傾斜信号を発生するステップと、 (ii)上記再構成された傾斜信号をデコードするステッ
    プと、 を含むものである、 請求項3に記載のピクセル・イメージのバーコード・シ
    ンボルを読取る方法。
  5. 【請求項5】上記第1の位置は上記第1のセグメントの
    ピークに対応するものである、請求項3に記載のピクセ
    ル・イメージのバーコード・シンボルを読取る方法。
  6. 【請求項6】上記第1の位置は上記第1のセグメントの
    重み付けされた重心に対応するものである、請求項3に
    記載のピクセル・イメージのバーコード・シンボルを読
    取る方法。
  7. 【請求項7】上記第1のセグメントは上記第1の傾斜信
    号中の局部最大値からなるものである、請求項3に記載
    のピクセル・イメージのバーコード・シンボルを読取る
    方法。
  8. 【請求項8】上記ステップ(c)の(1)は、さらに、 (i)上記第1のセグメントのマスを決定するステップ
    と、 (ii)上記マスが第1のマスのスレッショルドよりも大
    であれば、上記ステップ(c)の(2)へと続き、それ
    以外の場合は上記第1のセグメントを捨てるステップ
    と、 を含むものである、 請求項3に記載のピクセル・イメージのバーコード・シ
    ンボルを読取る方法。
  9. 【請求項9】上記ステップ(a)は、さらに上記第1の
    傾斜信号を平滑処理するステップを含むものである、請
    求項1に記載のピクセル・イメージのバーコード・シン
    ボルを読取る方法。
  10. 【請求項10】上記ステップ(a)は、 (1)上記バーコード・シンボルの少なくとも第1の部
    分と交わる第1の走査線を選択するステップと、 (2)上記第1の部分に従って、白色化傾斜信号である
    上記第1の傾斜信号を発生するステップと、 を含むものである、 請求項1に記載のピクセル・イメージのバーコード・シ
    ンボルを読取る方法。
  11. 【請求項11】上記ステップ(a)は、さらに、 (3)上記バーコード・シンボルの少なくとも第2の部
    分と交わる第2の走査線を選択するステップと、 (4)上記第2の部分に従って上記第1の傾斜信号を更
    新するステップと、 を含むものである、 請求項10に記載のピクセル・イメージのバーコード・シ
    ンボルを読取る方法。
  12. 【請求項12】上記ステップ(a)の(2)は、 (i)上記第1の部分に対して、この第1の部分をピク
    セル・イメージ中のピクセルの行あるいは列のいずれか
    に実質的に平行な角度に回転させるステップと上記第1
    の部分を引伸ばすステップとを含む変換を施すステップ
    と、 (ii)上記変換された第1の部分に従って上記第1の傾
    斜信号を発生するステップと、 を含むものである、 請求項10に記載のピクセル・イメージのバーコード・シ
    ンボルを読取る方法。
  13. 【請求項13】上記ステップ(a)は、 (1)上記バーコード・シンボルの少なくとも第1の部
    分と交わる第1の走査線を選択するステップと、 (2)上記第1の部分に対して、この第1の部分をピク
    セル・イメージ中のピクセルの行あるいは列のいずれか
    に実質的に平行な角度に回転させるステップと上記第1
    の部分を引伸ばすステップとを含む変換を施すステップ
    と、 (3)上記変換された第1の部分に従って白色化傾斜ベ
    クトルを発生するステップと、 (4)上記変換された第1の部分に従ってカウント・ベ
    クトルを発生するステップと、 (5)上記バーコード・シンボルの少なくとも第2の部
    分と交わる第2の走査線を選択するステップと、 (6)上記第2の部分に対して、この第2の部分を上記
    ピクセル・イメージ中のピクセルの行あるいは列のいず
    れかに実質的に平行な角度に回転させるステップと上記
    第2の部分を引伸ばすスチェップとを含む変換を施すス
    テップと、 (7)上記変換された第2の部分に従って上記白色化傾
    斜ベクトルを更新するステップと、 (8)上記変換された第2の部分に従って上記カウント
    ・ベクトルを更新するステップと、 (9)上記白色化傾斜ベクトルと上記カウント・ベクト
    ルとに従って上記第1の傾斜信号を発生するステップ
    と、 を含むものである、 請求項1に記載のピクセル・イメージのバーコード・シ
    ンボルを読取る方法。
  14. 【請求項14】上記ステップ(a)の(7)は、上記変
    換された第1の部分に対応する第1の白色化傾斜値と上
    記変換された第2の部分に対応する第2の白色化傾斜値
    とを加え合わせることによって上記白色化傾斜ベクトル
    の要素を更新するステップを含むものである、請求項13
    に記載のピクセル・イメージのバーコード・シンボルを
    読取る方法。
  15. 【請求項15】上記ステップ(a)の(9)は、上記白
    色化傾斜ベクトルの要素を上記カウント・ベクトルの対
    応する要素で割ることにより上記第1の傾斜信号の要素
    を計算するステップを含むものである、請求項13に記載
    のピクセル・イメージのバーコード・シンボルを読取る
    方法。
  16. 【請求項16】(a)バーコード・シンボルに対して、
    このバーコード・シンボルをピクセル・イメージ中のピ
    クセルの行あるいは列のいずれかに実質的に平行な角度
    に回転させるステップと上記バーコード・シンボルを引
    伸ばすステップとを含む変換を施すステップと、 (b)上記変換されたバーコード・シンボルのバーおよ
    びスペースに実質的に垂直な第1の走査線を選択するス
    テップと、 (c)上記第1の走査線に従って白色化傾斜信号を発生
    するステップと、 (d)上記第1の走査線に従って黒色化傾斜信号を発生
    するステップと、 (e)上記白色化傾斜信号および黒色化傾斜信号に従っ
    て上記バーコード・シンボルをデコードするステップ
    と、 とからなる、ピクセル・イメージのバーコード・シンボ
    ルを読取る方法。
  17. 【請求項17】上記ステップ(e)は、 (1)上記白色化傾斜信号を少なくとも1個の白色化セ
    グメントにセグメント化するステップと、 (2)上記黒色化傾斜信号を少なくとも1個の黒色化セ
    グメントにセグメント化するステップと、 (3)暗から明への遷移に対応する上記白色化セグメン
    トにおける第1の位置を選択するステップと、 (4)明から暗への遷移に対応する上記黒色化セグメン
    トにおける第2の位置を選択するステップと、 (5)上記第1および第2の位置に従って上記バーコー
    ド・シンボルをデコードするステップと、 を含むものである、 請求項16に記載のピクセル・イメージのバーコード・シ
    ンボルを読取る方法。
  18. 【請求項18】さらに、(f)上記バーコード・シンボ
    ルの少なくとも第2の部分と交わる第2の走査線を選択
    するステップと、 (g)上記第2の部分に従って上記白色化傾斜信号を更
    新するステップと、 (h)上記第2の部分に従って上記黒色化傾斜信号を更
    新するステップと、 を含む、請求項16に記載のピクセル・イメージのバーコ
    ード・シンボルを読取る方法。
  19. 【請求項19】(a)バーコード・シンボルに対応する
    白色化傾斜信号を受入れるステップと、 (b)上記白色化傾斜信号を少なくとも1個の白色化セ
    グメントにセグメント化するステップと、 (c)暗から明への遷移に対応する上記白色化セグメン
    トにおける第1の位置を選択するステップと、 (d)上記バーコード・シンボルに対応する黒色化傾斜
    信号を受入れるステップと、 (e)上記黒色化傾斜信号を少なくとも1個の黒色化セ
    グメントにセグメント化するズテップと、 (f)明から暗への遷移に対応する上記黒色化セグメン
    トにおける第2の位置を選択するステップと、 (g)上記第1および第2の位置に従って上記バーコー
    ド・シンボルをデコードするステップと、 からなる、ピクセル・イメージのバコード・シンボルを
    読取る方法。
  20. 【請求項20】(a)バーコード・シンボル中の相対的
    な暗から明への各変化の大きさを表わす第1の傾斜信号
    を発生する手段と、 (b)上記バーコード・シンボル中の相対的な明から暗
    への各変化の大きさを表わす第2の傾斜信号を発生する
    手段と、 (c)上記第1の傾斜信号と第2の傾斜信号に従って上
    記バーコード・シンボルをデコードする手段と、 を具えた、ピクセル・イメージのバーコード・シンボル
    を読取る装置。
  21. 【請求項21】(a)バーコード・シンボルに対して、
    このバーコード・シンボルをピクセル・イメージ中のピ
    クセルの行あるいは列のいずれかに実質的に平行な角度
    に回転させる手段と上記バーコード・シンボルを引伸ば
    す手段とを含む変換を施す手段と、 (b)上記変換させたバーコード・シンボルのバーおよ
    びスペースに実質的に垂直な第1の走査線を選択する手
    段と、 (c)上記第1の走査線に従って白色化傾斜信号を発生
    する手段と、 (d)上記第1の走査線に従って黒色化傾斜信号を発生
    する手段と、 (e)上記白色化傾斜信号および黒色化傾斜信号に従っ
    て上記バーコード・シンボルをデコードする手段と、 を具えた、ピクセル・イメージのバーコード・シンボル
    を読取る装置。
  22. 【請求項22】(a)バーコード・シンボルに対応する
    白色化傾斜信号を受入れる手段と、 (b)上記白色化傾斜信号を少なくとも1個の白色化セ
    グメントにセグメント化する手段と、 (c)暗から明への遷移に対応する上記白色化セグメン
    トにおける第1の位置を選択する手段と、 (d)上記バーコード・シンボルに対応する黒色化傾斜
    信号を受入れる手段と、 (e)上記黒色化傾斜信号を少なくとも1個の黒色化セ
    グメントにセグメント化する手段と、 (f)明から暗への遷移に対応する上記黒色化セグメン
    トにおける第2の位置を選択する手段と、 (g)上記第1および第2の位置に従って上記バーコー
    ド・シンボルをデコードする手段と、 を具えた、ピクセル・イメージのバーコード・シンボル
    を読取る装置。
JP8508683A 1993-01-29 1994-08-29 ピクセル・イメージのバーコード・シンボルを読取る方法および装置 Expired - Fee Related JP2832645B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/011,458 US5352878A (en) 1993-01-29 1993-01-29 Method and apparatus for decoding bar code symbols using independent bar and space analysis
EP94929112A EP0783739A1 (en) 1993-01-29 1994-08-29 Method and apparatus for decoding bar code symbols using independent bar and space analysis
PCT/US1994/009704 WO1996007155A1 (en) 1993-01-29 1994-08-29 Method and apparatus for decoding bar code symbols using independent bar and space analysis
EP98111652A EP0877334B1 (en) 1993-01-29 1994-08-29 Method and apparatus for decoding bar code symbols using independent bar and space analysis

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP9134378A Division JP2925515B2 (ja) 1997-05-07 1997-05-07 ピクセル・イメージのバーコード・シンボルの読取り方法および装置
JP9134379A Division JP2864012B2 (ja) 1997-05-07 1997-05-07 ピクセル・イメージのバーコード・シンボルの読取り方法および装置

Publications (2)

Publication Number Publication Date
JPH09512936A JPH09512936A (ja) 1997-12-22
JP2832645B2 true JP2832645B2 (ja) 1998-12-09

Family

ID=41110784

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8508683A Expired - Fee Related JP2832645B2 (ja) 1993-01-29 1994-08-29 ピクセル・イメージのバーコード・シンボルを読取る方法および装置

Country Status (9)

Country Link
US (1) US5352878A (ja)
EP (4) EP0783739A1 (ja)
JP (1) JP2832645B2 (ja)
AT (2) ATE241180T1 (ja)
AU (1) AU7828794A (ja)
CA (1) CA2191433C (ja)
DE (1) DE69433492T2 (ja)
ES (2) ES2214662T3 (ja)
WO (1) WO1996007155A1 (ja)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412196A (en) * 1994-04-01 1995-05-02 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code images using multi-order feature vectors
US6543691B1 (en) * 1995-01-03 2003-04-08 Jerome H. Lemelson Method and apparatus for encoding and decoding bar codes with primary and secondary information and method of using such bar codes
US5777309A (en) * 1995-10-30 1998-07-07 Intermec Corporation Method and apparatus for locating and decoding machine-readable symbols
US5804802A (en) * 1996-02-14 1998-09-08 United Parcel Service Of America, Inc. Two-way data communication manager
US5963660A (en) * 1996-09-26 1999-10-05 The Boeing Company Method and apparatus for detecting and measuring laps and gaps in composite materials
US5767497A (en) * 1996-12-04 1998-06-16 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code symbols using ratio analysis of module size
US6366696B1 (en) * 1996-12-20 2002-04-02 Ncr Corporation Visual bar code recognition method
DE19724711B4 (de) * 1997-06-11 2004-09-16 Sick Ag Verfahren und Vorrichtung zum Erkennen und Lesen eines an einem Objekt vorgesehenen Strichcodes
US5984078A (en) 1997-08-04 1999-11-16 United Parcel Service Of America, Inc. Automated shuttle sorter for conveyors
US6758391B1 (en) 1997-11-18 2004-07-06 The Code Corporation Internet access of goods and services using graphical codes
DE69705054T2 (de) 1997-12-24 2002-01-24 Datalogic Spa Verfahren zur Erkennung eines Strichkodes auf einer Abtastzeile und Vorrichtung zur Erkennung und Dekodierung eines Strichkodes
US5969326A (en) * 1998-01-14 1999-10-19 Intermec Ip Corp. Method and apparatus of autodiscriminating in symbol reader employing prioritized and updated table of symbologies
US6102295A (en) * 1998-01-14 2000-08-15 Intermec Ip Corp. Method and apparatus for decoding symbols by declaring erasures of element characteristics
US6328213B1 (en) * 1998-06-12 2001-12-11 Symbol Technologies, Inc. Method of processing an analog electrical signal containing information representative of reflected light from coded indicia, wherein the electrical signal contains edge transitions
US7147161B2 (en) 1998-06-12 2006-12-12 Symbol Technologies, Inc. Digitizing bar code symbol data
US6513714B1 (en) 1998-09-14 2003-02-04 Psc Scanning, Inc. Character reconstruction and element level processing in bar code scanning system
US6585157B2 (en) 1998-09-14 2003-07-01 Psc Scanning, Inc. Symbology determination to aid decoding in a bar code scanning system
US6454168B1 (en) 1998-09-14 2002-09-24 Psc Scanning, Inc. Correlation and stitching techniques in a bar code scanning system
US6494376B1 (en) 1998-09-14 2002-12-17 Psc Scanning, Inc. Compensation for scan line variations in a bar code scanner system
WO2000016242A1 (en) 1998-09-14 2000-03-23 Psc Scanning, Inc. Bar code label reconstruction system and methodologies
EP0996079B1 (en) * 1998-10-23 2001-07-18 Datalogic S.P.A. Method for locating codes in bidimensional images
US6189702B1 (en) 1998-11-25 2001-02-20 United Parcel Service Of America, Inc. Overhead mounted sorter for conveyors
US6565003B1 (en) 1998-12-16 2003-05-20 Matsushita Electric Industrial Co., Ltd. Method for locating and reading a two-dimensional barcode
US6082619A (en) * 1998-12-16 2000-07-04 Matsushita Electric Industrial Co., Ltd. Method for locating and reading a two-dimensional barcode
US6371373B1 (en) 1999-05-25 2002-04-16 Matsushita Electric Industrial Co., Ltd. Method for reading a two-dimensional barcode
US6359247B1 (en) 1999-07-06 2002-03-19 Quantum Conveyor Systems, Llc Multi-fire and variable fire diverter conveyor system and method
US6666377B1 (en) 2000-07-18 2003-12-23 Scott C. Harris Bar code data entry device
US6761314B2 (en) * 2000-10-03 2004-07-13 Symbol Technologies, Inc. Bar code symbology for consumer scanning applications
US8682077B1 (en) 2000-11-28 2014-03-25 Hand Held Products, Inc. Method for omnidirectional processing of 2D images including recognizable characters
US7072974B2 (en) 2001-03-27 2006-07-04 The Code Corporation Extensible application interface using machine-readable graphical codes
US20020143814A1 (en) * 2001-03-27 2002-10-03 The Code Corporation Systems and methods for automatic insertion of machine-readable graphical codes into printable documents
WO2002084879A2 (en) * 2001-04-13 2002-10-24 The Code Coproration System and method for encoding and decoding data and references to data in machine-readable graphical codes
US7185824B2 (en) * 2001-04-13 2007-03-06 The Code Corporation System and method for associating pre-printed machine-readable graphical codes with electronically-accessible data
US6978038B2 (en) * 2001-04-13 2005-12-20 The Code Corporation Systems and methods for pixel gain compensation in machine-readable graphical codes
KR100339691B1 (ko) * 2001-11-03 2002-06-07 한탁돈 코드인식을 위한 장치 및 그 방법
US20030163396A1 (en) * 2002-02-27 2003-08-28 John Blankevoort Systems and methods for tracking products as they move through a supply chain
US20030163800A1 (en) * 2002-02-27 2003-08-28 Weiyang Zhou System and method for generating graphical codes containing a plurality of data fields
US7392933B2 (en) * 2002-07-29 2008-07-01 The Code Corporation Systems and methods for interfacing multiple types of object identifiers and object identifier readers to multiple types of applications
US7621453B2 (en) * 2002-07-29 2009-11-24 The Code Corporation System and method for controlling the distribution of data translation components to portable data collection devices
US7070091B2 (en) * 2002-07-29 2006-07-04 The Code Corporation Systems and methods for interfacing object identifier readers to multiple types of applications
US7097099B2 (en) * 2002-07-29 2006-08-29 The Code Corporation Data collection device with integrated data translation
AU2003258084A1 (en) * 2003-08-04 2005-03-07 Grass Valley (U.S.) Inc. Apparatus and method for reducing noise in an image
US6942152B1 (en) 2004-01-21 2005-09-13 The Code Corporation Versatile graphical code reader that is configured for efficient decoding
US7519239B2 (en) * 2004-02-11 2009-04-14 The Code Corporation Systems and methods for concurrent image capture and decoding of graphical codes
US7204417B2 (en) * 2004-11-03 2007-04-17 The Code Corporation Graphical code reader that is configured for efficient decoder management
KR101158005B1 (ko) * 2007-03-06 2012-06-25 삼성전자주식회사 인쇄품질 평가지표 산출 방법 및 장치
US8267322B2 (en) * 2010-03-08 2012-09-18 Seiko Epson Corporation Method and apparatus for correcting decoding errors in machine-readable symbols
JP5683891B2 (ja) * 2010-10-07 2015-03-11 日本電産サンキョー株式会社 スタック型バーコード読取装置およびスタック型バーコード読取方法
JP5657987B2 (ja) * 2010-10-07 2015-01-21 日本電産サンキョー株式会社 スタック型バーコード読取装置およびスタック型バーコード読取方法
KR101748877B1 (ko) 2010-12-16 2017-06-19 엘지이노텍 주식회사 바코드 인식 장치 및 방법
JP6330388B2 (ja) * 2014-03-14 2018-05-30 オムロン株式会社 画像処理方法、画像処理装置、並びに、当該方法を実行するプログラム、及び、当該プログラムを記録する記録媒体
US9361503B2 (en) 2014-10-30 2016-06-07 Datalogic IP Tech Srl Systems, methods and articles for reading highly blurred machine-readable symbols

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3688955A (en) * 1969-11-24 1972-09-05 Automatisme Cie Gle Character-reading apparatus incorporating electronic scanning circuitry
US4323772A (en) * 1980-03-06 1982-04-06 R. J. Reynolds Tobacco Company Bar code reader system
US4411016A (en) * 1981-06-01 1983-10-18 Recognition Equipment Incorporated Barcode width measurement system
JPS61101880A (ja) * 1984-10-24 1986-05-20 Sato :Kk バ−コ−ド読取方法および装置
US4680457A (en) * 1985-03-07 1987-07-14 Telesis Controls Corporation Code reader
JPS62197877A (ja) * 1986-02-26 1987-09-01 Hitachi Ltd バ−コ−ド読取方式
US4740675A (en) * 1986-04-10 1988-04-26 Hewlett-Packard Company Digital bar code slot reader with threshold comparison of the differentiated bar code signal
US4958054A (en) * 1986-10-29 1990-09-18 Fritto-Lay Inc. Dielectric drying of hot plastic food extrudate
US4749879A (en) * 1987-06-18 1988-06-07 Spectra-Physics, Inc. Signal transition detection method and system
NO174944C (no) * 1987-09-28 1994-08-03 Sumitomo Electric Industries Fremgangsmåte og anordning for avlesning og kombinasjon av stavkodedata
FR2622992B1 (fr) * 1987-11-06 1990-02-09 Thomson Semiconducteurs Procede de lecture de codes a barres
FR2631476B1 (fr) * 1988-05-10 1992-01-03 Bertin & Cie Procede et dispositif de lecture d'un code barres sur un support sensiblement immobile
JPH07101437B2 (ja) * 1988-06-21 1995-11-01 アルプス電気株式会社 符号読取装置
US4988852A (en) * 1988-07-05 1991-01-29 Teknekron Transportation Systems, Inc. Bar code reader
US4873426A (en) * 1988-08-03 1989-10-10 Image Business Systems Corporation Technique for reading bar codes
US5036183A (en) * 1988-08-25 1991-07-30 Alps Electric Co., Ltd. Code reading device
JPH02141889A (ja) * 1988-11-22 1990-05-31 Eastman Kodatsuku Japan Kk バーコード読取方法
US4958064A (en) * 1989-01-30 1990-09-18 Image Recognition Equipment Corporation Bar code locator for video scanner/reader system
US5073954A (en) * 1989-02-28 1991-12-17 Electrocom Automation, Inc. Bar code location and recognition processing system
US5081689A (en) * 1989-03-27 1992-01-14 Hughes Aircraft Company Apparatus and method for extracting edges and lines
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
US4992650A (en) * 1990-03-29 1991-02-12 International Business Machines Corporation Method and apparatus for barcode recognition in a digital image
US5120940A (en) * 1990-08-10 1992-06-09 The Boeing Company Detection of barcodes in binary images with arbitrary orientation
CA2048824A1 (en) * 1990-09-28 1992-03-29 William A. Blitz System for decoding bar codes on job programming separators for electronic reprographic/printing machines
US5124537A (en) * 1990-10-29 1992-06-23 Omniplanar, Inc. Omnidirectional bar code reader using virtual scan of video raster scan memory
US5142592A (en) * 1990-12-17 1992-08-25 Moler Keith E Method and apparatus for detection of parallel edges in image processing
CA2053460A1 (en) * 1991-09-13 1993-03-14 Eugene Bernard Joseph Analog waveform decoder
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
US5343028A (en) * 1992-08-10 1994-08-30 United Parcel Service Of America, Inc. Method and apparatus for detecting and decoding bar code symbols using two-dimensional digital pixel images
EP0584559A3 (en) * 1992-08-21 1994-06-22 United Parcel Service Inc Method and apparatus for finding areas of interest in images

Also Published As

Publication number Publication date
EP0877334A3 (en) 2000-12-06
EP0795836A2 (en) 1997-09-17
ES2214662T3 (es) 2004-09-16
EP0795836B8 (en) 2003-08-13
EP0785521B1 (en) 2004-01-21
ATE257962T1 (de) 2004-01-15
DE69433492D1 (de) 2004-02-19
JPH09512936A (ja) 1997-12-22
ES2214563T3 (es) 2004-09-16
US5352878A (en) 1994-10-04
CA2191433A1 (en) 1996-03-07
EP0785521A2 (en) 1997-07-23
AU7828794A (en) 1996-03-22
EP0783739A1 (en) 1997-07-16
EP0877334B1 (en) 2004-01-14
EP0795836B1 (en) 2003-05-21
EP0785521A3 (en) 2001-05-16
CA2191433C (en) 2000-07-11
ATE241180T1 (de) 2003-06-15
WO1996007155A1 (en) 1996-03-07
EP0795836A3 (en) 1999-12-08
EP0877334A2 (en) 1998-11-11
DE69433492T2 (de) 2004-10-28

Similar Documents

Publication Publication Date Title
JP2832645B2 (ja) ピクセル・イメージのバーコード・シンボルを読取る方法および装置
US5412197A (en) Method and apparatus for decoding bar code symbols using gradient signals
US5545887A (en) Method and apparatus for decoding bar code symbols using subpixel scan lines
US5404003A (en) Method and apparatus for decoding bar code symbols using byte-based searching
US6366696B1 (en) Visual bar code recognition method
JPH0612515A (ja) Ccd/cmdカメラを使用して二次元バーコードを復号する方法及び装置
US6097839A (en) Method and apparatus for automatic discriminating and locating patterns such as finder patterns, or portions thereof, in machine-readable symbols
US5635697A (en) Method and apparatus for decoding two-dimensional bar code
US5936224A (en) Method and apparatus for reading machine-readable symbols by employing a combination of multiple operators and/or processors
EP1086439B1 (en) Techniques for reading postal codes
US7337970B2 (en) Barcode scanner decoding
US8746566B2 (en) Two-dimensional symbol and method for reading same
JP3115003B2 (ja) モジュール・サイズの比率解析を用いてバーコード記号を解読する方法および装置
JPH05250515A (ja) テンプレートを使用してバーコード文字を光学的に認識する方法および装置
JP2000507727A (ja) 高速画像捕捉システムおよび方法
JPH07200712A (ja) バーコード読み取りの方法および装置
JPH1063772A (ja) データマトリックスシンボルを有する機械読取り可能なシンボルを探し、デコードするための方法及び装置
JPH0844809A (ja) 多値レベル・バー・コードまたは二値レベル・バー・コードのデコーディング方法及び装置
EP0797810B1 (en) Barcode decoding
JP2864012B2 (ja) ピクセル・イメージのバーコード・シンボルの読取り方法および装置
JP2925515B2 (ja) ピクセル・イメージのバーコード・シンボルの読取り方法および装置
WO1996009597A1 (en) Method and apparatus for detecting and adaptively decoding bar code symbols in continuous images
Liyanage Efficient decoding of blurred, pitched, and scratched barcode images
JP2001357350A (ja) 一次元バーコードの位置検出方法および一次元バーコードの位置検出装置
JPH02125384A (ja) 画像信号処理装置

Legal Events

Date Code Title Description
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

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

Free format text: PAYMENT UNTIL: 20081002

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091002

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20091002

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20101002

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20111002

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20131002

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees