JPH113397A - シンボル情報読取装置 - Google Patents
シンボル情報読取装置Info
- Publication number
- JPH113397A JPH113397A JP9153779A JP15377997A JPH113397A JP H113397 A JPH113397 A JP H113397A JP 9153779 A JP9153779 A JP 9153779A JP 15377997 A JP15377997 A JP 15377997A JP H113397 A JPH113397 A JP H113397A
- Authority
- JP
- Japan
- Prior art keywords
- bar
- information
- bars
- scan
- 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.)
- Withdrawn
Links
Abstract
(57)【要約】
【課題】 バーの下端及び上端が必ずしも同一線上にな
く、また、バーの高さが同じであってもその高さ方向の
位置が異なるようなバーがシンボル内にあってもシンボ
ルを正確に復号できるシンボル情報読取装置を提供す
る。 【解決手段】 シンボルを2次元像として撮像し、該2
次元像の輝度値情報を記憶保持し、該輝度値情報に基づ
きシンボルが有する情報の復号を行うシンボル情報読取
装置において、該輝度値情報から前記2次元像における
シンボルのバーに相当する部分のすべてを横切るスキャ
ンラインを決定するスキャンライン決定処理と、バーに
相当する部分の高さ及び位置を検出するバー判別処理と
を行う。
く、また、バーの高さが同じであってもその高さ方向の
位置が異なるようなバーがシンボル内にあってもシンボ
ルを正確に復号できるシンボル情報読取装置を提供す
る。 【解決手段】 シンボルを2次元像として撮像し、該2
次元像の輝度値情報を記憶保持し、該輝度値情報に基づ
きシンボルが有する情報の復号を行うシンボル情報読取
装置において、該輝度値情報から前記2次元像における
シンボルのバーに相当する部分のすべてを横切るスキャ
ンラインを決定するスキャンライン決定処理と、バーに
相当する部分の高さ及び位置を検出するバー判別処理と
を行う。
Description
【0001】
【発明の属する技術分野】本発明はCCD等の2次元撮
像手段を有するシンボル情報読取装置に関し、特に、郵
便局等において小荷物や書類等の分類あるいは情報入力
の処理効率化等をを目的として使用されるバーコードな
どのシンボルを読み取るためのシンボル情報読取装置に
関する。
像手段を有するシンボル情報読取装置に関し、特に、郵
便局等において小荷物や書類等の分類あるいは情報入力
の処理効率化等をを目的として使用されるバーコードな
どのシンボルを読み取るためのシンボル情報読取装置に
関する。
【0002】
【従来技術】最近のめざましいPOS(ポイント・オブ
・セールス=販売時点情報管理システム)の普及によっ
て、バーコードに代表される各種シンボルは、広く一般
に利用されるようになってきた。ここで、シンボルと
は、光学的情報認識のために印刷された、バーとスペー
スの適当な組み合わせ、英数字、文字、記号またはそれ
らに属するものであり、情報入力の効率化等を図るため
のものをいう。
・セールス=販売時点情報管理システム)の普及によっ
て、バーコードに代表される各種シンボルは、広く一般
に利用されるようになってきた。ここで、シンボルと
は、光学的情報認識のために印刷された、バーとスペー
スの適当な組み合わせ、英数字、文字、記号またはそれ
らに属するものであり、情報入力の効率化等を図るため
のものをいう。
【0003】広く一般消費財に使用されているバーコー
ドシンボルとしては、JAN(Japanese Article Numbe
r)コードやEAN(European Article Number)コード
等がある。また、上記JANコードの前に1桁または2
桁の物流識別コードを追加した物流バーコードがある。
これらのバーコードシンボルは1次元バーコードと呼ば
れるものである。
ドシンボルとしては、JAN(Japanese Article Numbe
r)コードやEAN(European Article Number)コード
等がある。また、上記JANコードの前に1桁または2
桁の物流識別コードを追加した物流バーコードがある。
これらのバーコードシンボルは1次元バーコードと呼ば
れるものである。
【0004】1次元バーコードは数値・文字情報等を扱
うにあたり、使用する上での簡易さ、正確さ、高速性、
コスト等の点において、従来の管理手法に比べ有利であ
るため、近年非常に多岐に亘り普及するに至っている。
うにあたり、使用する上での簡易さ、正確さ、高速性、
コスト等の点において、従来の管理手法に比べ有利であ
るため、近年非常に多岐に亘り普及するに至っている。
【0005】この1次元バーコードに対して、その拡張
ともいえる2次元バーコードと呼ばれるバーコード体系
がいくつか発表されている。2次元バーコードは、1次
元バーコードを積み重ねることによって、より多くの情
報を一括して扱うことができるといった利点を有してい
る。
ともいえる2次元バーコードと呼ばれるバーコード体系
がいくつか発表されている。2次元バーコードは、1次
元バーコードを積み重ねることによって、より多くの情
報を一括して扱うことができるといった利点を有してい
る。
【0006】一方、1960年前後から欧米諸国では郵
便処理等の機械化のため、ドットコード、バーノーバー
・バーコード、フルバーハーフバー・バーコード等と呼
ばれるバーコード体系が相次いで制定され、人件費の比
率が高い郵便事業の効率化が推進されてきた。また、日
本においても、1998年2月から、新郵便番号制度が
導入されるとともに、新規バーコードシンボルが採用さ
れることになっている。
便処理等の機械化のため、ドットコード、バーノーバー
・バーコード、フルバーハーフバー・バーコード等と呼
ばれるバーコード体系が相次いで制定され、人件費の比
率が高い郵便事業の効率化が推進されてきた。また、日
本においても、1998年2月から、新郵便番号制度が
導入されるとともに、新規バーコードシンボルが採用さ
れることになっている。
【0007】このような郵便用のバーコードでは一般
に、住所等の情報を扱う必要から情報量が増大する傾向
がある反面、あらゆる大きさ・形状の郵便物に対応する
ため、狭い領域に印刷できることが必要になっている。
したがって、このような分野においては、バーコードの
バーの高さを複数種類規定することにより情報量を増大
させ、かつバーの高さを極力低くして印刷の範囲を極力
狭くする等の改良を行うのが通常であり、従来の1次元
バーコード用の装置とは異なるバーコード情報読取装置
が必要となる。
に、住所等の情報を扱う必要から情報量が増大する傾向
がある反面、あらゆる大きさ・形状の郵便物に対応する
ため、狭い領域に印刷できることが必要になっている。
したがって、このような分野においては、バーコードの
バーの高さを複数種類規定することにより情報量を増大
させ、かつバーの高さを極力低くして印刷の範囲を極力
狭くする等の改良を行うのが通常であり、従来の1次元
バーコード用の装置とは異なるバーコード情報読取装置
が必要となる。
【0008】従来、このような郵便用のバーコードに代
表されるバーコード情報読取装置として、例えば米国特
許第5428211号において開示されているように、
例えばCCD等の2次元撮像手段でバーコードを撮像
し、バーコードの画像をメモリに取り込み、この画像情
報に基づいてバーコードの情報を復号するものがあっ
た。
表されるバーコード情報読取装置として、例えば米国特
許第5428211号において開示されているように、
例えばCCD等の2次元撮像手段でバーコードを撮像
し、バーコードの画像をメモリに取り込み、この画像情
報に基づいてバーコードの情報を復号するものがあっ
た。
【0009】
【発明が解決しようとする課題】しかしながら、米国特
許第5428211号に開示されている装置では、米国
で採用されているフルバーハーフバー・バーコードの復
号はできるものの、他国のバーコードを復号することが
困難である。
許第5428211号に開示されている装置では、米国
で採用されているフルバーハーフバー・バーコードの復
号はできるものの、他国のバーコードを復号することが
困難である。
【0010】例えば、日本で採用される郵便用のバーコ
ードは図10(a)に図示されるようなカスタマバーコ
ードであって、バーの高さの比が1:2:3の関係を有
し、うち高さの比が2のバーは上側に位置するものと下
側に位置するものとの2つに分かれており、全部でバー
は4種類規定されている。そして、バーコードの各バー
の下端が必ずしも同一線上にはない。
ードは図10(a)に図示されるようなカスタマバーコ
ードであって、バーの高さの比が1:2:3の関係を有
し、うち高さの比が2のバーは上側に位置するものと下
側に位置するものとの2つに分かれており、全部でバー
は4種類規定されている。そして、バーコードの各バー
の下端が必ずしも同一線上にはない。
【0011】米国特許第5428211号に開示される
装置がこのようなバーコードを復号しようとすると、バ
ーの高さについては検出できるが、特に高さの比が2の
バーの位置を検出することができず、バーコードの復号
が困難となる。さらに、同特許公報の図9に図示されて
いる「BAR AXIS」(バーの下端を結ぶ走査線)の定義が
困難となり、やはりバーコードの検出が困難となる。
装置がこのようなバーコードを復号しようとすると、バ
ーの高さについては検出できるが、特に高さの比が2の
バーの位置を検出することができず、バーコードの復号
が困難となる。さらに、同特許公報の図9に図示されて
いる「BAR AXIS」(バーの下端を結ぶ走査線)の定義が
困難となり、やはりバーコードの検出が困難となる。
【0012】したがって、本発明は、上述した不具合を
解決し、バーの下端および上端が必ずしも同一線上にな
く、また、バーの高さが同じであってもその位置が異な
るようなバーがシンボル内にあっても正確に復号できる
シンボル情報読取装置を提供することを目的とする。
解決し、バーの下端および上端が必ずしも同一線上にな
く、また、バーの高さが同じであってもその位置が異な
るようなバーがシンボル内にあっても正確に復号できる
シンボル情報読取装置を提供することを目的とする。
【0013】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、異なる光反射率の部分を有するバーとス
ペースから構成されるシンボルを2次元像として撮像す
る撮像手段と、前記2次元像の輝度値情報を一時的に記
憶保持する記憶手段と、前記輝度値情報に基づき前記シ
ンボルが有する情報の復号を行う情報処理手段とを有す
るシンボル情報読取装置において、前記情報処理手段
は、前記記憶手段の輝度値情報から前記2次元像におけ
る前記シンボルのバーに相当する部分の全てを横切るス
キャンラインを決定するスキャンライン決定処理と、前
記バーに相当する部分の高さ及び位置を検出するバー判
別処理と、を行うことを特徴とする。
に、本発明は、異なる光反射率の部分を有するバーとス
ペースから構成されるシンボルを2次元像として撮像す
る撮像手段と、前記2次元像の輝度値情報を一時的に記
憶保持する記憶手段と、前記輝度値情報に基づき前記シ
ンボルが有する情報の復号を行う情報処理手段とを有す
るシンボル情報読取装置において、前記情報処理手段
は、前記記憶手段の輝度値情報から前記2次元像におけ
る前記シンボルのバーに相当する部分の全てを横切るス
キャンラインを決定するスキャンライン決定処理と、前
記バーに相当する部分の高さ及び位置を検出するバー判
別処理と、を行うことを特徴とする。
【0014】この構成によれば、バーの下端および上端
が必ずしも同一線上になく、また、バーの高さが同じで
あってもその位置が異なるようなバーがシンボル内にあ
っても正確に復号することができる。
が必ずしも同一線上になく、また、バーの高さが同じで
あってもその位置が異なるようなバーがシンボル内にあ
っても正確に復号することができる。
【0015】なお、前記スキャンライン決定処理は、前
記スキャンライン上の輝度値を演算することでバーに相
当する部分を複数検出し、最初に検出されるバーから最
後に検出されるバーまでの前記スキャンライン上におけ
る中点の位置を検出する。これは、シンボルの全てのバ
ーを横切るスキャンラインを早く見つけることができる
点が望ましい。
記スキャンライン上の輝度値を演算することでバーに相
当する部分を複数検出し、最初に検出されるバーから最
後に検出されるバーまでの前記スキャンライン上におけ
る中点の位置を検出する。これは、シンボルの全てのバ
ーを横切るスキャンラインを早く見つけることができる
点が望ましい。
【0016】
【発明の実施の形態】以下、図面を参照して本願発明の
実施形態について説明する。図1は本実施形態のバーコ
ード情報読取装置が使用される態様を示す図である。
実施形態について説明する。図1は本実施形態のバーコ
ード情報読取装置が使用される態様を示す図である。
【0017】バーコード情報読取装置1は図示しない光
源と、撮像レンズ2、2次元CCD3、フレームメモリ
4、情報処理手段5から構成される。情報処理手段5は
ホストコンピュータ6に接続されている。ホストコンピ
ュータ6は、例えばCPU及びメモリ等で構成されてお
り、バーコード情報読取装置1で復号された情報に基づ
き、周辺機器を自動的に作動させる等、種々の作業を行
うことができる。ホストコンピュータ6は、情報処理手
段5の通信方式に対応できるコンピュータであれば、パ
ーソナルコンピュータ等、どのようなものであってもよ
い。
源と、撮像レンズ2、2次元CCD3、フレームメモリ
4、情報処理手段5から構成される。情報処理手段5は
ホストコンピュータ6に接続されている。ホストコンピ
ュータ6は、例えばCPU及びメモリ等で構成されてお
り、バーコード情報読取装置1で復号された情報に基づ
き、周辺機器を自動的に作動させる等、種々の作業を行
うことができる。ホストコンピュータ6は、情報処理手
段5の通信方式に対応できるコンピュータであれば、パ
ーソナルコンピュータ等、どのようなものであってもよ
い。
【0018】次に、バーコード情報読取装置1の構成に
ついて詳細に説明する。図示しない光源はバーコード8
が貼付された荷物7に対し、発散光を照射させる。撮像
レンズ2はカスタマバーコード8から反射される光を後
述する2次元CCD3の光電変換面(受光領域)に結像
させる。2次元CCD3は光電変換面を有し、撮像され
た画像情報を輝度値情報に変換する機能を有する。フレ
ームメモリ4は、2次元CCD3から得られた2次元像
の輝度値情報を一時的に記憶保持する機能を有する。情
報処理手段5は、CPUとメモリ等で構成され、バーコ
ードの位置の推定やバーの種類の判別等を行ってから復
号を行う等、種々の処理を行う。またメモリには、後述
する各種定数及び変数を格納するための種々のレジスタ
が構成されている。
ついて詳細に説明する。図示しない光源はバーコード8
が貼付された荷物7に対し、発散光を照射させる。撮像
レンズ2はカスタマバーコード8から反射される光を後
述する2次元CCD3の光電変換面(受光領域)に結像
させる。2次元CCD3は光電変換面を有し、撮像され
た画像情報を輝度値情報に変換する機能を有する。フレ
ームメモリ4は、2次元CCD3から得られた2次元像
の輝度値情報を一時的に記憶保持する機能を有する。情
報処理手段5は、CPUとメモリ等で構成され、バーコ
ードの位置の推定やバーの種類の判別等を行ってから復
号を行う等、種々の処理を行う。またメモリには、後述
する各種定数及び変数を格納するための種々のレジスタ
が構成されている。
【0019】図1において、バーコード情報読取装置1
に対して予め設定された位置に荷物7が搬送される。荷
物7に貼付されたバーコード8は、例えば、日本の新郵
便番号制度で制定されたカスタマバーコードである。こ
のバーコード8からの反射光は撮像レンズ2によって、
光電変換面を有する2次元CCD3上に結像される。2
次元CCD3によって光電変換された輝度値情報、すな
わちバーコード情報は8ビットの画像信号としてフレー
ムメモリ4に取り込まれる。情報処理手段5はフレーム
メモリ4に記憶保持されているバーコード情報に対し
て、後述する種々の処理を行い、処理された情報をホス
トコンピュータ6に転送する。
に対して予め設定された位置に荷物7が搬送される。荷
物7に貼付されたバーコード8は、例えば、日本の新郵
便番号制度で制定されたカスタマバーコードである。こ
のバーコード8からの反射光は撮像レンズ2によって、
光電変換面を有する2次元CCD3上に結像される。2
次元CCD3によって光電変換された輝度値情報、すな
わちバーコード情報は8ビットの画像信号としてフレー
ムメモリ4に取り込まれる。情報処理手段5はフレーム
メモリ4に記憶保持されているバーコード情報に対し
て、後述する種々の処理を行い、処理された情報をホス
トコンピュータ6に転送する。
【0020】図2は、情報処理手段5で行われるバーコ
ードの復号アルゴリズムの概略を示すフローチャートで
ある。まず、フレームメモリ4、しきい値、各種グロー
バル変数等の種々のパラメータを初期設定する(ステッ
プS1)。
ードの復号アルゴリズムの概略を示すフローチャートで
ある。まず、フレームメモリ4、しきい値、各種グロー
バル変数等の種々のパラメータを初期設定する(ステッ
プS1)。
【0021】次に、画像取り込みルーチン(図3参照)
をコールして画像をフレームメモリ4に取り込む(ステ
ップS2)。次に、バーコード検出ルーチン(図5参
照)をコールしてフレームメモリ4内のスキャン処理を
行い、フレームメモリ4内において、予め規定されたバ
ーコード8の検出を行う(ステップS3)。
をコールして画像をフレームメモリ4に取り込む(ステ
ップS2)。次に、バーコード検出ルーチン(図5参
照)をコールしてフレームメモリ4内のスキャン処理を
行い、フレームメモリ4内において、予め規定されたバ
ーコード8の検出を行う(ステップS3)。
【0022】そして、ステップS3におけるバーコード
検出ルーチンの結果、フレームメモリ4内にバーコード
に相当する画像が存在するかどうかを判別し(ステップ
S4)、バーコードに相当する画像が存在しなければ、
バーコードの読取処理を終了する。
検出ルーチンの結果、フレームメモリ4内にバーコード
に相当する画像が存在するかどうかを判別し(ステップ
S4)、バーコードに相当する画像が存在しなければ、
バーコードの読取処理を終了する。
【0023】バーコードに相当する画像が存在する場合
には、バーコード検出ルーチンから得られた各バーの座
標について、特定のバーを指定し、バーの判別ルーチン
をコールし、バーの種類(高さや位置)を判別する(ス
テップS5)。
には、バーコード検出ルーチンから得られた各バーの座
標について、特定のバーを指定し、バーの判別ルーチン
をコールし、バーの種類(高さや位置)を判別する(ス
テップS5)。
【0024】この判別ルーチンをバーコードの全てのバ
ーについて行い(ステップS6)、全てのバーの種類の
判別できたならば、復号を行う(ステップS7)。その
後、チェックデジットを確認し(ステップS8)、チェ
ックデジットに異常があれば読取処理を終了する。
ーについて行い(ステップS6)、全てのバーの種類の
判別できたならば、復号を行う(ステップS7)。その
後、チェックデジットを確認し(ステップS8)、チェ
ックデジットに異常があれば読取処理を終了する。
【0025】チェックデジットに異常がなければ復号し
た結果を出力して(ステップS9)、バーコードの読取
処理を終了する。次に、これまでに説明した各種処理ル
ーチンについて、さらに詳細に説明する。
た結果を出力して(ステップS9)、バーコードの読取
処理を終了する。次に、これまでに説明した各種処理ル
ーチンについて、さらに詳細に説明する。
【0026】まず、バーコード検出ルーチン(図2のス
テップS3)を図4及び図5を参照して説明する。図4
(a),(b)はフレームメモリ4におけるスキャンラ
インの態様を示す図であり、図5はバーコード検出ルー
チンを示すフローチャートである。なお、以下、「スキ
ャン」という用語を用いるが、これは、ある特定の直線
を指定したときに、フレームメモリ4の中において直線
の位置に対応する画素から、一列状に順次輝度値情報を
読み出し、然るべき配列変数の中にその輝度値情報を格
納し演算する作業を意味する。また「スキャンライン」
とはそのフレームメモリ4内のスキャンするための直線
のことを意味する。
テップS3)を図4及び図5を参照して説明する。図4
(a),(b)はフレームメモリ4におけるスキャンラ
インの態様を示す図であり、図5はバーコード検出ルー
チンを示すフローチャートである。なお、以下、「スキ
ャン」という用語を用いるが、これは、ある特定の直線
を指定したときに、フレームメモリ4の中において直線
の位置に対応する画素から、一列状に順次輝度値情報を
読み出し、然るべき配列変数の中にその輝度値情報を格
納し演算する作業を意味する。また「スキャンライン」
とはそのフレームメモリ4内のスキャンするための直線
のことを意味する。
【0027】初めに、スキャンラインの角度及びスキャ
ンラインの位置を設定する(ステップS31、ステップ
S32)。スキャンラインの角度θ0(以下、スキャン
角度と呼ぶ)とはフレームメモリ4の水平方向とスキャ
ン処理の行う方向とのなす角のことである。またスキャ
ンラインの位置c0(以下、スキャン位置と呼ぶ)とは
スキャンラインが通る一点のことである。
ンラインの位置を設定する(ステップS31、ステップ
S32)。スキャンラインの角度θ0(以下、スキャン
角度と呼ぶ)とはフレームメモリ4の水平方向とスキャ
ン処理の行う方向とのなす角のことである。またスキャ
ンラインの位置c0(以下、スキャン位置と呼ぶ)とは
スキャンラインが通る一点のことである。
【0028】スキャン角度θ0は最初、θ0=0度(水平
方向と平行)に設定され、スキャン位置c0はフレーム
メモリ4の撮像領域の面積を2等分する位置に設定され
る。このように設定されたスキャンラインでもってスキ
ャン処理が行われる(ステップS33)。スキャン処理
の詳細については後述するが、一列状に得られた輝度値
のなすパターンと予め規定されていたバーコードのバー
とスペースのなすパターンとを比較し、パターンが一致
した場合に、一致した領域におけるバーの本数Bar1を検
出する処理を行う。
方向と平行)に設定され、スキャン位置c0はフレーム
メモリ4の撮像領域の面積を2等分する位置に設定され
る。このように設定されたスキャンラインでもってスキ
ャン処理が行われる(ステップS33)。スキャン処理
の詳細については後述するが、一列状に得られた輝度値
のなすパターンと予め規定されていたバーコードのバー
とスペースのなすパターンとを比較し、パターンが一致
した場合に、一致した領域におけるバーの本数Bar1を検
出する処理を行う。
【0029】そして検出されたバーの本数Bar1が67本
(カスタマバーコードのバーの数は67本)かどうかを
判別し、Bar1=67であれば、そのスキャンラインは6
7本全てのバーを横切るものとして、上位ルーチンに返
す。
(カスタマバーコードのバーの数は67本)かどうかを
判別し、Bar1=67であれば、そのスキャンラインは6
7本全てのバーを横切るものとして、上位ルーチンに返
す。
【0030】Bar1=67でない場合は、次にBar1≧3か
どうかを判別する。3本以上のバーが検出されたなら
ば、詳細検出ルーチンをコールし(ステップS34)、
スキャン角度、スキャン位置をより詳細に変更しながら
全てすなわち67本のバーを検出しようとする。
どうかを判別する。3本以上のバーが検出されたなら
ば、詳細検出ルーチンをコールし(ステップS34)、
スキャン角度、スキャン位置をより詳細に変更しながら
全てすなわち67本のバーを検出しようとする。
【0031】Bar1が3本未満である場合、また、詳細検
出ルーチンの結果Bar1が67本でなかった場合、フレー
ムメモリ4において全スキャン位置及び全スキャン角度
について検出したかどうかを調べ(ステップS35、ス
テップS36)、まだ検出していないスキャン位置ある
いはスキャン角度があるならば、そのスキャン位置ある
いはスキャン角度を再設定し、上述したルーチンを繰り
返す。
出ルーチンの結果Bar1が67本でなかった場合、フレー
ムメモリ4において全スキャン位置及び全スキャン角度
について検出したかどうかを調べ(ステップS35、ス
テップS36)、まだ検出していないスキャン位置ある
いはスキャン角度があるならば、そのスキャン位置ある
いはスキャン角度を再設定し、上述したルーチンを繰り
返す。
【0032】例えば、スキャン位置についてはフレーム
メモリ4の中央位置(図4(a)のスキャンライン1)
からその周辺位置(図4(a)のスキャンライン2やス
キャンライン3)に再設定したり、さらに、スキャンラ
イン間隔を狭くするように(図4(a)のスキャンライ
ン4乃至7)再設定することで、Bar1=67になるよう
なスキャンラインを見つける。
メモリ4の中央位置(図4(a)のスキャンライン1)
からその周辺位置(図4(a)のスキャンライン2やス
キャンライン3)に再設定したり、さらに、スキャンラ
イン間隔を狭くするように(図4(a)のスキャンライ
ン4乃至7)再設定することで、Bar1=67になるよう
なスキャンラインを見つける。
【0033】また、スキャン角度については、例えば、
図4(b)に図示するように、+45度(スキャンライ
ン1−2)、90度、−45度(スキャンライン1−
3)等と再設定する。
図4(b)に図示するように、+45度(スキャンライ
ン1−2)、90度、−45度(スキャンライン1−
3)等と再設定する。
【0034】なお、スキャン位置及び角度の再設定値の
設定方法はどのような方式であってもよい。例えば、ス
キャン位置においては再設定する順序を図4(a)に図
示されるスキャンラインで1,2,3,4,5,6,7
でもよいし、1,4,5,3,2,6,7でもよい。ま
た、スキャン角度においては+45度ずつ変化させても
よいし、+30度ずつ変化させて設定してもよい。
設定方法はどのような方式であってもよい。例えば、ス
キャン位置においては再設定する順序を図4(a)に図
示されるスキャンラインで1,2,3,4,5,6,7
でもよいし、1,4,5,3,2,6,7でもよい。ま
た、スキャン角度においては+45度ずつ変化させても
よいし、+30度ずつ変化させて設定してもよい。
【0035】なお、スキャン位置、スキャン角度は、ス
キャンラインによって分割されたフレームメモリ4の領
域の面積の比が1〜10になるように設定することが、
バーコードを検出するまでに要するスキャン処理の回数
が特に増大することはなく、十分に高速で検出できる点
で望ましい。なかでも特に、分割される領域の面積比が
1となるように設定することが望ましい。
キャンラインによって分割されたフレームメモリ4の領
域の面積の比が1〜10になるように設定することが、
バーコードを検出するまでに要するスキャン処理の回数
が特に増大することはなく、十分に高速で検出できる点
で望ましい。なかでも特に、分割される領域の面積比が
1となるように設定することが望ましい。
【0036】次に、スキャン処理ルーチン(ステップS
33)について図6及び図10を参照して説明する。図
6はスキャン処理ルーチンのフローチャートであり、図
10(a)はカスタマバーコードを示し、図10(b)
はフレームメモリ4においてバーコードをスキャン処理
する様子を示し、図10(c)は図10(b)の部分拡
大図である。
33)について図6及び図10を参照して説明する。図
6はスキャン処理ルーチンのフローチャートであり、図
10(a)はカスタマバーコードを示し、図10(b)
はフレームメモリ4においてバーコードをスキャン処理
する様子を示し、図10(c)は図10(b)の部分拡
大図である。
【0037】まず、上位ルーチンのステップS31、S
32において設定されたc0、θ0に基づいて各パラメー
タを設定する。ここではBar1(バーのカウント最大値)
=2、Bar2(バーのカウント値)=2、T1(許容範囲)
=0.6を設定する(ステップS331)。
32において設定されたc0、θ0に基づいて各パラメー
タを設定する。ここではBar1(バーのカウント最大値)
=2、Bar2(バーのカウント値)=2、T1(許容範囲)
=0.6を設定する(ステップS331)。
【0038】つぎに、点c0を通り傾きθ0のスキャンラ
インでフレームメモリ4内をスキャンし、順次スキャン
ライン上の輝度値を得る(ステップS332)。そし
て、得られた輝度値すべてについて差分化し、最初にそ
の差分値の絶対値が一定しきい値を越えた点と、その差
分値の符号(+または−)とを検出することで、最初に
スペースからバーへ移る境界点(ファーストエッジ)を
見つける。ファーストエッジを見つけた後は、差分値の
絶対値が一定しきい値を越えた点、つまりバーからスペ
ースおよびスペースからバーへ移る境界点(エッジ)の
みを検出することで、バーに相当する部分を見つける。
そして、バーに相当する部分における2つのエッジ(例
えば、ファーストエッジとその次の2番目のエッジ、3
番目のエッジと4番目のエッジ)の中点を求めること
で、バーの幅方向の中点を検出する(ステップS33
3)。
インでフレームメモリ4内をスキャンし、順次スキャン
ライン上の輝度値を得る(ステップS332)。そし
て、得られた輝度値すべてについて差分化し、最初にそ
の差分値の絶対値が一定しきい値を越えた点と、その差
分値の符号(+または−)とを検出することで、最初に
スペースからバーへ移る境界点(ファーストエッジ)を
見つける。ファーストエッジを見つけた後は、差分値の
絶対値が一定しきい値を越えた点、つまりバーからスペ
ースおよびスペースからバーへ移る境界点(エッジ)の
みを検出することで、バーに相当する部分を見つける。
そして、バーに相当する部分における2つのエッジ(例
えば、ファーストエッジとその次の2番目のエッジ、3
番目のエッジと4番目のエッジ)の中点を求めること
で、バーの幅方向の中点を検出する(ステップS33
3)。
【0039】つぎに、連続するバーの中点間隔D(i)
(i=1,2,・・・)を求め(ステップS334)、
さらに、連続するバーの中点間隔の比D(i)/D(i+1)が
0.6〜1/0.6の範囲内にあるかどうかを判別し
(ステップS335)、範囲内にあるときは等間隔のバ
ーが並んでいるものとみなし、Bar2を1つ増加させカウ
ントする(ステップS336)。ここでは、等間隔に並
ぶバーが3本であり、Bar2は3としてカウントされる。
日本の新郵便番号制度のもとで用いられるバーコード体
系や米国の郵便用に用いられているバーコード体系で
は、等間隔に並ぶバーのパターンが必ず存在するため、
ステップS335のような連続するバーの間隔がほぼ等
しいかどうか、という検出を行えばよい。また、他のバ
ーコード体系ではバーの間隔が異なる場合があるので、
そのバーコード体系の規格に従ってステップS335の
条件式を適宜変更することで対応する。
(i=1,2,・・・)を求め(ステップS334)、
さらに、連続するバーの中点間隔の比D(i)/D(i+1)が
0.6〜1/0.6の範囲内にあるかどうかを判別し
(ステップS335)、範囲内にあるときは等間隔のバ
ーが並んでいるものとみなし、Bar2を1つ増加させカウ
ントする(ステップS336)。ここでは、等間隔に並
ぶバーが3本であり、Bar2は3としてカウントされる。
日本の新郵便番号制度のもとで用いられるバーコード体
系や米国の郵便用に用いられているバーコード体系で
は、等間隔に並ぶバーのパターンが必ず存在するため、
ステップS335のような連続するバーの間隔がほぼ等
しいかどうか、という検出を行えばよい。また、他のバ
ーコード体系ではバーの間隔が異なる場合があるので、
そのバーコード体系の規格に従ってステップS335の
条件式を適宜変更することで対応する。
【0040】Bar2がBar1よりも大きい場合には、そのBa
r2のカウント値をバーの本数の最大値としてBar1の値と
して記録するとともに、Bar2でカウントされた最初のバ
ーから最後のバーまでのスキャンラインの中点の座標を
c1として記録する(ステップS337)。ここでは、B
ar2(=3)はBar1(=2)よりも大きいため、Bar1を
3として記録し、Bar2が3となる領域とは左から2番目
のバーの左側エッジから右から2番目のバーの右側エッ
ジまでの領域であり、その領域におけるスキャンライン
の中点は真ん中のバーの中心座標であるので、その中心
座標を中点c1として記録する。
r2のカウント値をバーの本数の最大値としてBar1の値と
して記録するとともに、Bar2でカウントされた最初のバ
ーから最後のバーまでのスキャンラインの中点の座標を
c1として記録する(ステップS337)。ここでは、B
ar2(=3)はBar1(=2)よりも大きいため、Bar1を
3として記録し、Bar2が3となる領域とは左から2番目
のバーの左側エッジから右から2番目のバーの右側エッ
ジまでの領域であり、その領域におけるスキャンライン
の中点は真ん中のバーの中心座標であるので、その中心
座標を中点c1として記録する。
【0041】そして、スキャンライン上の全てに、さら
に等間隔に並ぶバーがあるかどうか調べ(ステップS3
38)、スキャンライン上の全てを調べたならば、検出
したバーの本数Bar1および中心座標c1を上位ルーチン
に移す(ステップS339)。
に等間隔に並ぶバーがあるかどうか調べ(ステップS3
38)、スキャンライン上の全てを調べたならば、検出
したバーの本数Bar1および中心座標c1を上位ルーチン
に移す(ステップS339)。
【0042】次に詳細検出ルーチン(ステップS34)
について図7を参照して説明する。図7は詳細検出ルー
チンのフローチャートである。詳細検出ルーチンはスキ
ャン処理ルーチンにおいて、検出されたバーの本数Bar1
が3以上の場合(ただし67ではない)に行う処理であ
る。
について図7を参照して説明する。図7は詳細検出ルー
チンのフローチャートである。詳細検出ルーチンはスキ
ャン処理ルーチンにおいて、検出されたバーの本数Bar1
が3以上の場合(ただし67ではない)に行う処理であ
る。
【0043】まず、各パラメータおよび初期値の設定を
行う(ステップS341)。上位ルーチンで設定されて
いたスキャン位置c1及びスキャン角度θ1の値を受け
る。。また、スキャン位置及びスキャン角度の変位量で
あるΔc、Δθの値を決定する。このΔcおよびΔθの
値は、定数Con1(=1)、Con2(=3)、Δx(=
0)、Δy(=0)、Bar1(=3)に基づき(カッコ内
の数値は初期値の一例)、 Δc=(Δx×Con2,Δy×Con2) Δθ=Arctan(1/(Bar1×2−1))×Con1 とする。
行う(ステップS341)。上位ルーチンで設定されて
いたスキャン位置c1及びスキャン角度θ1の値を受け
る。。また、スキャン位置及びスキャン角度の変位量で
あるΔc、Δθの値を決定する。このΔcおよびΔθの
値は、定数Con1(=1)、Con2(=3)、Δx(=
0)、Δy(=0)、Bar1(=3)に基づき(カッコ内
の数値は初期値の一例)、 Δc=(Δx×Con2,Δy×Con2) Δθ=Arctan(1/(Bar1×2−1))×Con1 とする。
【0044】Con1は1または0の値であり、スキャン角
度を変えるか否かを示すものである。Con2はスキャンラ
インの平行移動量を示すもので、値が大きいと平行移動
量も大きくなる。xはフレームメモリの水平方向、yは
フレームメモリの垂直方向を示し、ΔxおよびΔyはそ
れぞれの方向のスキャン位置c1の変位量を示すもので
ある。
度を変えるか否かを示すものである。Con2はスキャンラ
インの平行移動量を示すもので、値が大きいと平行移動
量も大きくなる。xはフレームメモリの水平方向、yは
フレームメモリの垂直方向を示し、ΔxおよびΔyはそ
れぞれの方向のスキャン位置c1の変位量を示すもので
ある。
【0045】なお、これらのパラメータは後述するスキ
ャン処理ルーチン(ステップS343)で得られたBar1
にしたがって適宜変更していく。また、スキャン処理回
数n、およびスキャン処理回数の限度値nmax等も決定
する。
ャン処理ルーチン(ステップS343)で得られたBar1
にしたがって適宜変更していく。また、スキャン処理回
数n、およびスキャン処理回数の限度値nmax等も決定
する。
【0046】ステップS341でΔc、Δθが決定した
ならば、スキャン位置cとスキャン角度θを設定し(ス
テップS342)、再度スキャン処理を行いバーが何本
あるのか検出する(ステップS343)。このスキャン
処理(ステップS343)は、スキャン処理回数がカウ
ントされることを除けば、前述したスキャン処理(ステ
ップS33)と同様の処理内容であるため、ここではそ
の説明を省略する。
ならば、スキャン位置cとスキャン角度θを設定し(ス
テップS342)、再度スキャン処理を行いバーが何本
あるのか検出する(ステップS343)。このスキャン
処理(ステップS343)は、スキャン処理回数がカウ
ントされることを除けば、前述したスキャン処理(ステ
ップS33)と同様の処理内容であるため、ここではそ
の説明を省略する。
【0047】このスキャン処理によって検出されたバー
の本数Bar1がBarmaxよりも大きいか小さいか判別し、大
きい場合には、スキャン位置c及びスキャン角度θの値
をそれぞれ、c1およびθ1の値に更新し、また、Bar1の
値をBarmaxの値に更新する(ステップS344)。そし
て、スキャンラインの変位量Δc、変位角度Δθを再設
定する(ステップS345)。たとえば、Con1、Con2の
値を変化させたり、正負の符号を反転させたりする。ま
た、Δx、Δy、Con1の値を入れ替え、順次、スキャン
角度のみ、スキャン位置のx方向のみ、スキャン位置の
y方向のみが、それぞれ変更されスキャン処理をするよ
うに設定されてもよい。
の本数Bar1がBarmaxよりも大きいか小さいか判別し、大
きい場合には、スキャン位置c及びスキャン角度θの値
をそれぞれ、c1およびθ1の値に更新し、また、Bar1の
値をBarmaxの値に更新する(ステップS344)。そし
て、スキャンラインの変位量Δc、変位角度Δθを再設
定する(ステップS345)。たとえば、Con1、Con2の
値を変化させたり、正負の符号を反転させたりする。ま
た、Δx、Δy、Con1の値を入れ替え、順次、スキャン
角度のみ、スキャン位置のx方向のみ、スキャン位置の
y方向のみが、それぞれ変更されスキャン処理をするよ
うに設定されてもよい。
【0048】また、たとえばBar1の値が50となり、目
標値である67に近づいたならば、Con2の絶対値を減少
させ、スキャン位置の移動をより小さくする。すなわ
ち、スキャン位置c1の移動量Δcは、Δθと同様、Bar
1の減少関数で定義されている。
標値である67に近づいたならば、Con2の絶対値を減少
させ、スキャン位置の移動をより小さくする。すなわ
ち、スキャン位置c1の移動量Δcは、Δθと同様、Bar
1の減少関数で定義されている。
【0049】そして、スキャン処理回数nを確認し(ス
テップS346)、nmax以下であれば再度スキャン処
理を行い、nmaxより大きければ詳細検出ルーチンは終
了し、上位ルーチンへ移る。
テップS346)、nmax以下であれば再度スキャン処
理を行い、nmaxより大きければ詳細検出ルーチンは終
了し、上位ルーチンへ移る。
【0050】この詳細検出ルーチンでは、カスタマバー
コードのように互いのバーの上下端の位置が不規則であ
って、最終的にはバーのパターンが最も多く発見される
バーコードの中心位置を横切るスキャンラインが収束的
に検出される。
コードのように互いのバーの上下端の位置が不規則であ
って、最終的にはバーのパターンが最も多く発見される
バーコードの中心位置を横切るスキャンラインが収束的
に検出される。
【0051】以上説明した詳細検出ルーチンによってバ
ーコードが検出される過程を図4を参照して説明する。
バーコードがない場合は、図4(a)のようにスキャン
処理が反復されるが、図4(b)のスキャンライン1−
1のように、指定された本数(Bar1≧3)のバーを横切
ると、詳細検出ルーチンがコールされる(図5参照)。
ーコードが検出される過程を図4を参照して説明する。
バーコードがない場合は、図4(a)のようにスキャン
処理が反復されるが、図4(b)のスキャンライン1−
1のように、指定された本数(Bar1≧3)のバーを横切
ると、詳細検出ルーチンがコールされる(図5参照)。
【0052】最初にスキャンライン1−2のようにスキ
ャン角度が変更される。しかし、スキャンライン1−2
では検出されるバーの本数が増えないので、Δθの符号
が反転され、スキャンライン1−3のようにスキャンラ
イン1−2とは反対方向に傾きを持つことになる。この
結果、検出されるバーの本数が増えるので、そのスキャ
ンラインのスキャン位置c1、スキャン角度θ1が記録さ
れる。そして、Δθが再設定されるのだが、Con1の値は
変わらず、かつΔθの絶対値はBar1の減少関数であるか
ら、Δθはより小さい値に設定され、再度スキャン処理
がなされる。検出されるバーの本数Bar1が増すごとにス
キャン角度の変位量Δθは0度に近づき、スキャン角度
θ1は最適な値、すなわちバーコードの全てのバーを横
切る中心位置に収束していく。また、スキャン位置につ
いても、バーの発見された領域の中心座標に随時更新さ
れるので、最適な点に収束していく。
ャン角度が変更される。しかし、スキャンライン1−2
では検出されるバーの本数が増えないので、Δθの符号
が反転され、スキャンライン1−3のようにスキャンラ
イン1−2とは反対方向に傾きを持つことになる。この
結果、検出されるバーの本数が増えるので、そのスキャ
ンラインのスキャン位置c1、スキャン角度θ1が記録さ
れる。そして、Δθが再設定されるのだが、Con1の値は
変わらず、かつΔθの絶対値はBar1の減少関数であるか
ら、Δθはより小さい値に設定され、再度スキャン処理
がなされる。検出されるバーの本数Bar1が増すごとにス
キャン角度の変位量Δθは0度に近づき、スキャン角度
θ1は最適な値、すなわちバーコードの全てのバーを横
切る中心位置に収束していく。また、スキャン位置につ
いても、バーの発見された領域の中心座標に随時更新さ
れるので、最適な点に収束していく。
【0053】したがって、スキャン処理が繰り返し行わ
れるたびに、スキャン位置及びスキャン角度がバーコー
ドのすべてのバーの存在する位置に収束していく。図4
(b)では、合計4回のスキャン処理を行うことによ
り、バーコードの全てのバーの検出が完了する様子を示
したが、ある1つのスキャンラインさえ、バーコードの
一部を横切ればバーコードの全てのバーの存在する位置
の検出が可能である。よって、フレームメモリ4の全領
域をスキャンし、全体のパターンの位置関係からバーコ
ードの上記位置を検出する方式と比較して、スキャン回
数を格段に減らすことができる。
れるたびに、スキャン位置及びスキャン角度がバーコー
ドのすべてのバーの存在する位置に収束していく。図4
(b)では、合計4回のスキャン処理を行うことによ
り、バーコードの全てのバーの検出が完了する様子を示
したが、ある1つのスキャンラインさえ、バーコードの
一部を横切ればバーコードの全てのバーの存在する位置
の検出が可能である。よって、フレームメモリ4の全領
域をスキャンし、全体のパターンの位置関係からバーコ
ードの上記位置を検出する方式と比較して、スキャン回
数を格段に減らすことができる。
【0054】また、ΔcやΔθは、その絶対値がBar1の
減少関数となるように設定すればよく、より単純な関数
に変更し、角度などの演算処理を簡素化してもよい。な
お、ここでいう減少関数とは、必ずしも連続的に減少す
る関数である必要はなく、Bar1が増加するに伴い関数の
値がステップ状に減少するようなものであってもよい。
減少関数となるように設定すればよく、より単純な関数
に変更し、角度などの演算処理を簡素化してもよい。な
お、ここでいう減少関数とは、必ずしも連続的に減少す
る関数である必要はなく、Bar1が増加するに伴い関数の
値がステップ状に減少するようなものであってもよい。
【0055】またスキャン回数nがnmaxを越えた場合
で、スキャン処理においてスキャンライン上にスキャン
位置c1が複数発見されている場合、nを1に初期化
し、スキャン位置を他の位置に移動させる処理を行って
もよい。とくに、バーコード周辺に文字や汚れなどのノ
イズが多い場合には、必ずしも1回目で検出されたスキ
ャン位置が正しいとは限らないので、このような処理を
行うことで読取の信頼性が格段に向上する。
で、スキャン処理においてスキャンライン上にスキャン
位置c1が複数発見されている場合、nを1に初期化
し、スキャン位置を他の位置に移動させる処理を行って
もよい。とくに、バーコード周辺に文字や汚れなどのノ
イズが多い場合には、必ずしも1回目で検出されたスキ
ャン位置が正しいとは限らないので、このような処理を
行うことで読取の信頼性が格段に向上する。
【0056】次に、バーコードのバーの判別ルーチン
(ステップS5)を図8及び図9を参照して説明する。
図8はバーの判別ルーチンのフローチャートであり、図
9はあるバーの高さを検出する様子を示す図である。
(ステップS5)を図8及び図9を参照して説明する。
図8はバーの判別ルーチンのフローチャートであり、図
9はあるバーの高さを検出する様子を示す図である。
【0057】この判別ルーチンに移る前、すでに、カス
タマバーコードの全てのバーが検出され、バーコードの
検出ルーチン(ステップS3)によって、各バーの中心
座標が認識されている。
タマバーコードの全てのバーが検出され、バーコードの
検出ルーチン(ステップS3)によって、各バーの中心
座標が認識されている。
【0058】判別ルーチン(ステップS5)では、ま
ず、図9(a)に図示するように、検出されたバーの中
心座標のうちの1つについてP(1)を設定し、そのP
(1)と同じ位置にさらにP(2)及びP(3)を設定
する(ステップS51)。
ず、図9(a)に図示するように、検出されたバーの中
心座標のうちの1つについてP(1)を設定し、そのP
(1)と同じ位置にさらにP(2)及びP(3)を設定
する(ステップS51)。
【0059】つぎに、そのP(2)に隣接する一点であ
り、かつ、P(3)との距離が最も大きくなる点をP
(4)として(ステップS52)、P(2)とP(4)
との輝度値の差分をとる(ステップS53)。そして差
分の絶対値が所定のしきい値以下であるかどうかを判断
する(ステップS54)。つまり、ステップS54では
P(4)がバー上に位置するのか、それともバー上から
外れてスペース上に位置するのかを判断しており、しき
い値以下であればP(4)はバー上に位置するものであ
り、しきい値以下でなければP(4)はスペース上に位
置するものとしている。
り、かつ、P(3)との距離が最も大きくなる点をP
(4)として(ステップS52)、P(2)とP(4)
との輝度値の差分をとる(ステップS53)。そして差
分の絶対値が所定のしきい値以下であるかどうかを判断
する(ステップS54)。つまり、ステップS54では
P(4)がバー上に位置するのか、それともバー上から
外れてスペース上に位置するのかを判断しており、しき
い値以下であればP(4)はバー上に位置するものであ
り、しきい値以下でなければP(4)はスペース上に位
置するものとしている。
【0060】差分値の絶対値がしきい値以下である場
合、P(4)の座標をP(2)の座標として更新し、ス
テップ52〜54を繰り返す。また、差分値の絶対値が
しきい値以下でない場合、P(2)に隣接する他の点を
調べ(ステップS55)、P(2)に隣接する点がまだ
あるならば、それらのうちの1点をP(4)として設定
し直し(ステップS52)、ステップS53〜S54を
繰り返す。
合、P(4)の座標をP(2)の座標として更新し、ス
テップ52〜54を繰り返す。また、差分値の絶対値が
しきい値以下でない場合、P(2)に隣接する他の点を
調べ(ステップS55)、P(2)に隣接する点がまだ
あるならば、それらのうちの1点をP(4)として設定
し直し(ステップS52)、ステップS53〜S54を
繰り返す。
【0061】P(2)に隣接し、かつP(2)よりもP
(3)から離れている点のすべてが、P(2)との輝度
値の差分値の絶対値がしきい値以下でない場合、すなわ
ち、図9(c)に図示するように、P(2)がバーの端
部(角部)に位置している場合、P(4)を設定するこ
とができないため、そのP(2)の座標が記録され、P
(2)に関する処理が終了する。
(3)から離れている点のすべてが、P(2)との輝度
値の差分値の絶対値がしきい値以下でない場合、すなわ
ち、図9(c)に図示するように、P(2)がバーの端
部(角部)に位置している場合、P(4)を設定するこ
とができないため、そのP(2)の座標が記録され、P
(2)に関する処理が終了する。
【0062】つぎに、P(3)についても同様な処理を
行う。その結果、図9(d)に図示するように、P
(3)はP(2)の対角上に位置することになる。そし
て、P(2)及びP(3)のそれぞれの座標から、2つ
の点を結ぶ線分を求め、その線分の長さからバーの高さ
を求める。
行う。その結果、図9(d)に図示するように、P
(3)はP(2)の対角上に位置することになる。そし
て、P(2)及びP(3)のそれぞれの座標から、2つ
の点を結ぶ線分を求め、その線分の長さからバーの高さ
を求める。
【0063】上述したように、カスタマバーコードのバ
ーの高さは3種類(高さ比1:2:3)であり、左端ま
たは右端のバー(高さ比3)との比較により各バーの高
さを判別することができる。また、高さ比2のバーは、
バーコード内における高さ方向の位置により2種類規定
されているが、この位置の判別はP(2)とP(3)を
結ぶ線分の中点がスキャンラインよりも上側に位置する
か下側に位置するかで判別する。例えば図9(d)に図
示されているバーの場合、P(2)とP(3)を結ぶ線
の中点はスキャンラインよりも上側にあるので、このバ
ーはバーコードの上側に配置された高さ比2のバーであ
ると判別する。なお、バーの位置の判別については、P
(2)とP(3)を結ぶ線分の中点がP(1)よりも上
側に位置するか下側に位置するかで判別してもよい。
ーの高さは3種類(高さ比1:2:3)であり、左端ま
たは右端のバー(高さ比3)との比較により各バーの高
さを判別することができる。また、高さ比2のバーは、
バーコード内における高さ方向の位置により2種類規定
されているが、この位置の判別はP(2)とP(3)を
結ぶ線分の中点がスキャンラインよりも上側に位置する
か下側に位置するかで判別する。例えば図9(d)に図
示されているバーの場合、P(2)とP(3)を結ぶ線
の中点はスキャンラインよりも上側にあるので、このバ
ーはバーコードの上側に配置された高さ比2のバーであ
ると判別する。なお、バーの位置の判別については、P
(2)とP(3)を結ぶ線分の中点がP(1)よりも上
側に位置するか下側に位置するかで判別してもよい。
【0064】なお、この判別ルーチンでは、任意のバー
を左右のロングバーと比較し、高さと位置の相対的な関
係のみでバーの種類を判別することができるから、例え
ば、荷物7がシンボル情報読取装置に対して傾斜して配
置されており、撮像された画像がゆがんでいる場合や、
バーコードの印刷精度が悪く印刷のはみ出しが多少生じ
ている場合やバーの短辺に対してバーの長辺方向が直交
していない場合、等の悪条件下であってもバーの種類を
判別することができる。
を左右のロングバーと比較し、高さと位置の相対的な関
係のみでバーの種類を判別することができるから、例え
ば、荷物7がシンボル情報読取装置に対して傾斜して配
置されており、撮像された画像がゆがんでいる場合や、
バーコードの印刷精度が悪く印刷のはみ出しが多少生じ
ている場合やバーの短辺に対してバーの長辺方向が直交
していない場合、等の悪条件下であってもバーの種類を
判別することができる。
【0065】また、この判別ルーチンにおいて、移動す
る点(P(2)及びP(3))の数は2点である必要は
なく、たとえば、3点の点をとり同等のアルゴリズムに
よりバーの3つの角を検出してバーの高さのみならず、
幅を演算することもできるから、多様なバーコードシン
ボル体系に対応することができる。
る点(P(2)及びP(3))の数は2点である必要は
なく、たとえば、3点の点をとり同等のアルゴリズムに
よりバーの3つの角を検出してバーの高さのみならず、
幅を演算することもできるから、多様なバーコードシン
ボル体系に対応することができる。
【0066】このように、バーの判別ルーチンを全ての
バーに対して行うことにより、全てのバーの種類を判別
する。なお、以上の各ルーチンにおいては、バーが予め
決められた間隔で並ぶパターンがあるバーコードシンボ
ルであればよく、したがって、上記実施形態で述べた日
本の郵便用バーコードのみに限られず、米国の郵便用の
バーコード、英国の4ステイト・バーコード、独国等の
バーノーバー・バーコード等であっても、バーの本数を
予め設定しておき、バーの間隔の設定を適宜変更し、バ
ーの本数をカウントするようにすれば、容易に対応する
ことができる。
バーに対して行うことにより、全てのバーの種類を判別
する。なお、以上の各ルーチンにおいては、バーが予め
決められた間隔で並ぶパターンがあるバーコードシンボ
ルであればよく、したがって、上記実施形態で述べた日
本の郵便用バーコードのみに限られず、米国の郵便用の
バーコード、英国の4ステイト・バーコード、独国等の
バーノーバー・バーコード等であっても、バーの本数を
予め設定しておき、バーの間隔の設定を適宜変更し、バ
ーの本数をカウントするようにすれば、容易に対応する
ことができる。
【0067】また、バーの全本数によってシンボルの検
出を行うので、印刷されたバーコードの大きさが変わっ
たり、撮像手段からの遠近によって撮像されるバーコー
ドシンボルの大きさが変わり、ゆがみ等が生じる場合で
あっても問題なく対応することができる。
出を行うので、印刷されたバーコードの大きさが変わっ
たり、撮像手段からの遠近によって撮像されるバーコー
ドシンボルの大きさが変わり、ゆがみ等が生じる場合で
あっても問題なく対応することができる。
【0068】なお、本発明は、以下のように要約するこ
とができる。 (1)異なる光反射率の部分を有するバーとスペースか
ら構成されるシンボルを2次元像として撮像する撮像手
段と、前記2次元像の輝度値情報を一時的に記憶保持す
る記憶手段と、前記輝度値情報に基づき前記シンボルが
有する情報の復号を行う情報処理手段とを有するシンボ
ル情報読取装置において、前記情報処理手段は、 1)前記記憶手段の輝度値情報から前記2次元像におけ
る前記シンボルのバーに相当する部分の全てを横切るス
キャンラインを決定するスキャンライン決定処理と、 2)前記バーに相当する部分の高さ及び位置を検出する
バー判別処理と、を行うことを特徴とするシンボル情報
読取装置。
とができる。 (1)異なる光反射率の部分を有するバーとスペースか
ら構成されるシンボルを2次元像として撮像する撮像手
段と、前記2次元像の輝度値情報を一時的に記憶保持す
る記憶手段と、前記輝度値情報に基づき前記シンボルが
有する情報の復号を行う情報処理手段とを有するシンボ
ル情報読取装置において、前記情報処理手段は、 1)前記記憶手段の輝度値情報から前記2次元像におけ
る前記シンボルのバーに相当する部分の全てを横切るス
キャンラインを決定するスキャンライン決定処理と、 2)前記バーに相当する部分の高さ及び位置を検出する
バー判別処理と、を行うことを特徴とするシンボル情報
読取装置。
【0069】この構成によれば、バーの下端および上端
が必ずしも同一線上になく、また、バーの高さが同じで
あってもその位置が異なるようなバーがシンボル内にあ
っても正確に復号することができる。 (2)前記第1項記載のシンボル情報読取装置におい
て、前記スキャンライン決定処理は、前記スキャンライ
ン上の輝度値を演算することでバーに相当する部分を複
数検出し、最初に検出されるバーから最後に検出される
バーまでの前記スキャンライン上における中点の位置を
検出することを特徴とするシンボル情報読取装置。
が必ずしも同一線上になく、また、バーの高さが同じで
あってもその位置が異なるようなバーがシンボル内にあ
っても正確に復号することができる。 (2)前記第1項記載のシンボル情報読取装置におい
て、前記スキャンライン決定処理は、前記スキャンライ
ン上の輝度値を演算することでバーに相当する部分を複
数検出し、最初に検出されるバーから最後に検出される
バーまでの前記スキャンライン上における中点の位置を
検出することを特徴とするシンボル情報読取装置。
【0070】この構成によれば、シンボルの全てのバー
を横切るスキャンラインを早く見つけることができる。 (3)前記第2項記載のシンボル情報読取装置におい
て、前記スキャンライン決定処理におけるスキャンライ
ンの位置の設定は、前記最初に検出されるバーから最後
に検出されるバーまでの前記スキャンライン上における
中点の位置をc1、該位置c1を通るスキャンライン上で
のバーに相当する部分の数をBar1、次に設定されるスキ
ャンラインの位置をcとすると、位置c1から位置cへ
の変位量Δcは前記Bar1の減少関数とすることを特徴と
するシンボル情報読取装置。
を横切るスキャンラインを早く見つけることができる。 (3)前記第2項記載のシンボル情報読取装置におい
て、前記スキャンライン決定処理におけるスキャンライ
ンの位置の設定は、前記最初に検出されるバーから最後
に検出されるバーまでの前記スキャンライン上における
中点の位置をc1、該位置c1を通るスキャンライン上で
のバーに相当する部分の数をBar1、次に設定されるスキ
ャンラインの位置をcとすると、位置c1から位置cへ
の変位量Δcは前記Bar1の減少関数とすることを特徴と
するシンボル情報読取装置。
【0071】この構成によれば、シンボルの全てのバー
を横切るスキャンラインをさらに早く見つけることがで
きる。 (4)前記第2項記載のシンボル情報読取装置におい
て、前記スキャンライン決定処理におけるスキャンライ
ンの角度の設定は、前記最初に検出されるバーから最後
に検出されるバーまでの前記スキャンライン上における
中点の位置を通るスキャンラインの角度をθ1、該角度
θ1のスキャンライン上でのバーに相当する部分の数をB
ar1、次に設定されるスキャンラインの角度をθとする
と、角度θ1から角度θへの変位角度量Δθは前記Bar1
の減少関数とすることを特徴とするシンボル情報読取装
置。
を横切るスキャンラインをさらに早く見つけることがで
きる。 (4)前記第2項記載のシンボル情報読取装置におい
て、前記スキャンライン決定処理におけるスキャンライ
ンの角度の設定は、前記最初に検出されるバーから最後
に検出されるバーまでの前記スキャンライン上における
中点の位置を通るスキャンラインの角度をθ1、該角度
θ1のスキャンライン上でのバーに相当する部分の数をB
ar1、次に設定されるスキャンラインの角度をθとする
と、角度θ1から角度θへの変位角度量Δθは前記Bar1
の減少関数とすることを特徴とするシンボル情報読取装
置。
【0072】この構成によれば、シンボルの全てのバー
を横切るスキャンラインをさらに早く見つけることがで
きる。 (5)前記第1項記載のシンボル情報読取装置におい
て、前記バー判別処理は、前記バーに相当する部分内に
任意の2点P(2),P(3)を設定し、前記2点P
(2),P(3)が互いに最も離間し、かつ、移動前と
移動後の輝度値の変化がしきい値以下となる点に前記2
点P(2),P(3)をそれぞれ移動させ、前記点P
(2)と点P(3)と結ぶ線分の長さを検出し、他のバ
ーの長さとの比を検出することにより前記バーに相当す
る部分の高さを検出することを特徴とするシンボル情報
読取装置。
を横切るスキャンラインをさらに早く見つけることがで
きる。 (5)前記第1項記載のシンボル情報読取装置におい
て、前記バー判別処理は、前記バーに相当する部分内に
任意の2点P(2),P(3)を設定し、前記2点P
(2),P(3)が互いに最も離間し、かつ、移動前と
移動後の輝度値の変化がしきい値以下となる点に前記2
点P(2),P(3)をそれぞれ移動させ、前記点P
(2)と点P(3)と結ぶ線分の長さを検出し、他のバ
ーの長さとの比を検出することにより前記バーに相当す
る部分の高さを検出することを特徴とするシンボル情報
読取装置。
【0073】この構成によれば、バーの高さを検出する
ことができる。 (6)前記第5項記載のシンボル情報読取装置におい
て、前記バー判別処理は、前記点P(2)と点P(3)
と結ぶ線分の長さからその中点を検出し、該中点が前記
スキャンラインを挟んでどちら側に位置するかを検出す
ることによりバーに相当する部分の位置を検出すること
を特徴とするシンボル情報読取装置。
ことができる。 (6)前記第5項記載のシンボル情報読取装置におい
て、前記バー判別処理は、前記点P(2)と点P(3)
と結ぶ線分の長さからその中点を検出し、該中点が前記
スキャンラインを挟んでどちら側に位置するかを検出す
ることによりバーに相当する部分の位置を検出すること
を特徴とするシンボル情報読取装置。
【0074】この構成よれば、シンボル内におけるバー
の高さ方向の位置を検出することができる。
の高さ方向の位置を検出することができる。
【0075】
【発明の効果】以上説明したように、本発明によれば、
バーの下端および上端が必ずしも同一線上になく、ま
た、バーの高さが同じであってもその位置が異なるよう
なバーがバーコード内にあっても正確に復号することが
できる。
バーの下端および上端が必ずしも同一線上になく、ま
た、バーの高さが同じであってもその位置が異なるよう
なバーがバーコード内にあっても正確に復号することが
できる。
【図1】 図1は本発明の実施形態にかかるバーコード
情報読取装置の構成を示すブロック図である。
情報読取装置の構成を示すブロック図である。
【図2】 図2は情報処理手段5で行われるバーコード
の復号アルゴリズムの概略を示すフローチャートであ
る。
の復号アルゴリズムの概略を示すフローチャートであ
る。
【図3】 図3は画像取り込みルーチンを示すフローチ
ャートである。
ャートである。
【図4】 図4(a),(b)はフレームメモリ4にお
けるスキャンラインの各態様を示す図である
けるスキャンラインの各態様を示す図である
【図5】 図5はバーコード検出ルーチンを示すフロー
チャートである。
チャートである。
【図6】 図6はスキャン処理ルーチンのフローチャー
トである。
トである。
【図7】 図7は詳細検出ルーチンのフローチャートで
ある。
ある。
【図8】 図8はバーの判別ルーチンのフローチャート
である。
である。
【図9】 図9はあるバーの高さを検出する様子を示す
図である。
図である。
【図10】 図10(a)はカスタマバーコードを示
し、図10(b)はフレームメモリ4においてバーコー
ドをスキャン処理する様子を示し、図10(c)は図1
0(b)の部分拡大図である。
し、図10(b)はフレームメモリ4においてバーコー
ドをスキャン処理する様子を示し、図10(c)は図1
0(b)の部分拡大図である。
1 バーコード情報読取装置 2 撮像レンズ 3 2次元CCD 4 フレームメモリ 5 情報処理手段 6 ホストコンピュータ 7 荷物 8 カスタマバーコード
Claims (2)
- 【請求項1】異なる光反射率の部分を有するバーとスペ
ースから構成されるシンボルを2次元像として撮像する
撮像手段と、 前記2次元像の輝度値情報を一時的に記憶保持する記憶
手段と、 前記輝度値情報に基づき前記シンボルが有する情報の復
号を行う情報処理手段とを有するシンボル情報読取装置
において、 前記情報処理手段は、 前記記憶手段の輝度値情報から前記2次元像における前
記シンボルのバーに相当する部分の全てを横切るスキャ
ンラインを決定するスキャンライン決定処理と、 前記バーに相当する部分の高さ及び位置を検出するバー
判別処理と、を行うことを特徴とするシンボル情報読取
装置。 - 【請求項2】請求項1記載のシンボル情報読取装置にお
いて、 前記スキャンライン決定処理は、 前記スキャンライン上の輝度値を演算することでバーに
相当する部分を複数検出し、最初に検出されるバーから
最後に検出されるバーまでの前記スキャンライン上にお
ける中点の位置を検出することを特徴とするシンボル情
報読取装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9153779A JPH113397A (ja) | 1997-06-11 | 1997-06-11 | シンボル情報読取装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9153779A JPH113397A (ja) | 1997-06-11 | 1997-06-11 | シンボル情報読取装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH113397A true JPH113397A (ja) | 1999-01-06 |
Family
ID=15569963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9153779A Withdrawn JPH113397A (ja) | 1997-06-11 | 1997-06-11 | シンボル情報読取装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH113397A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002541566A (ja) * | 1999-04-07 | 2002-12-03 | シンボル テクノロジーズ インコーポレイテッド | 郵便番号読取り用の撮像エンジンおよび技術 |
JP2011186950A (ja) * | 2010-03-10 | 2011-09-22 | Toshiba Tec Corp | コード読取装置およびプログラム |
-
1997
- 1997-06-11 JP JP9153779A patent/JPH113397A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002541566A (ja) * | 1999-04-07 | 2002-12-03 | シンボル テクノロジーズ インコーポレイテッド | 郵便番号読取り用の撮像エンジンおよび技術 |
JP2011186950A (ja) * | 2010-03-10 | 2011-09-22 | Toshiba Tec Corp | コード読取装置およびプログラム |
US8439259B2 (en) | 2010-03-10 | 2013-05-14 | Toshiba Tec Kabushiki Kaisha | Code reading apparatus, sales registration processing apparatus, and code reading method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5489769A (en) | Symbol information reading apparatus | |
US7181066B1 (en) | Method for locating bar codes and symbols in an image | |
US4896029A (en) | Polygonal information encoding article, process and system | |
US6142376A (en) | Method and apparatus for reading symbols on items moved by conveyor | |
US4874936A (en) | Hexagonal, information encoding article, process and system | |
CA2191433C (en) | Method and apparatus for decoding bar code symbols using independent bar and space analysis | |
JP4911340B2 (ja) | 二次元コード検出システムおよび二次元コード検出プログラム | |
US5635697A (en) | Method and apparatus for decoding two-dimensional bar code | |
EP1086439B1 (en) | Techniques for reading postal codes | |
US5742041A (en) | Method and apparatus for locating and decoding machine-readable symbols, including data matrix symbols | |
EP3462372B1 (en) | System and method for detecting optical codes with damaged or incomplete finder patterns | |
JPH0519694A (ja) | 多解像度機械の読み取り可能な記号 | |
JP5140820B2 (ja) | シンボル情報読取装置及びシンボル情報読取方法 | |
EP1416421B1 (en) | Barcode detection system and corresponding method | |
JP7062722B2 (ja) | 光学コードのモジュールサイズの特定 | |
JP4652201B2 (ja) | バーコードシンボル情報読取方法及びバーコードシンボル情報読取装置 | |
JPH113397A (ja) | シンボル情報読取装置 | |
EP1544783B1 (en) | Robust barcode reader | |
JP3022459B2 (ja) | 帳票識別登録装置 | |
JP4403063B2 (ja) | シンボル情報読取方法及びシンボル情報読取装置 | |
JP4102742B2 (ja) | 光学的情報読取装置及び画像データ解析方法 | |
JPH02125386A (ja) | 画信号処理装置 | |
JP4102741B2 (ja) | 光学的情報読取装置及び画像データ解析方法 | |
JP6561891B2 (ja) | バーコード領域検知装置、バーコード読み取りシステム、バーコード領域検知方法及びプログラム | |
JP3730716B2 (ja) | バーコード読取装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20040907 |