JP2005165949A - バーコード読み取り方法及びバーコード読み取り装置 - Google Patents
バーコード読み取り方法及びバーコード読み取り装置 Download PDFInfo
- Publication number
- JP2005165949A JP2005165949A JP2003407420A JP2003407420A JP2005165949A JP 2005165949 A JP2005165949 A JP 2005165949A JP 2003407420 A JP2003407420 A JP 2003407420A JP 2003407420 A JP2003407420 A JP 2003407420A JP 2005165949 A JP2005165949 A JP 2005165949A
- Authority
- JP
- Japan
- Prior art keywords
- value
- threshold value
- retry
- pixel
- binarization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 読み取られた画像状況に応じて、2値化リトライ時における閾値を、短時間のうちに最適に決定でき、適切なデコードを確実に行うことができるバーコード読み取り方法及びバーコード読み取り装置を提供すること。
【解決手段】 リトライ時閾値決定手段18により、予め設定された最高階調値と閾値の初期値との差に基づいて変動量を決定し、これを初期値に加算してリトライ時の閾値を求めるので、短時間で適切なリトライ時の閾値を得ることができる。
【選択図】図1
【解決手段】 リトライ時閾値決定手段18により、予め設定された最高階調値と閾値の初期値との差に基づいて変動量を決定し、これを初期値に加算してリトライ時の閾値を求めるので、短時間で適切なリトライ時の閾値を得ることができる。
【選択図】図1
Description
本発明は、多値画像から検出され、切り出されたバーコードを2値化してデコードするバーコード読み取り方法及びバーコード読み取り装置に関する。
一般に、商品などの貼付されているバーコードは、その商品の取引に関する情報を保持しており、これを正確に読み取ることが重要である。このバーコードの読み取りはスキャナなどによりバーコードを画像情報として読み取り、この読み取った画像情報をデコードすることにより、保持された情報を得ている。この場合、バーコードが白地上に黒字で明確に表示されていれば、誤読を生じることなく正確に読み取ることができる。
通常、バーコードは多値情報として読み取られ、これを所定の閾値により2値化し、その結果をデコードするようにしており、それらに関する提案もなされている(例えば、特許文献1参照)。
ここで、読み取られた多値情報は、バーコードが記される下地の状態により種々異なり、白画素値と黒画素値の差が大きくコントラストがくっきりしている画像や、逆に白画素値と黒画素値の差が少なくコントラストが厳しい画像など様々である。このような場合、2値化のための閾値は、各画素の階調値と階調値毎の画素数分布から、公知の大津法などを用いて決定している。
しかしながら、上述のように閾値を決定し、その閾値により2値化を行っても、閾値が適切でない場合は、正確なデコードが行われない。そこで、この閾値を変化させて2値化及びデコードをリトライし、デコードが正確に行われるようにしている。この場合、リトライ時の閾値を、初期の閾値に対しどれだけ変化させるかにより、適切なデコードが行われないことがある。すなわち、閾値を変化させる幅が小さい場合、デコード可能となる閾値を見つけるのに多くの時間がかかってしまう。また、変化させる幅が大きい場合は、処理時間は早くなるが、最適な閾値を飛び越してしまい、デコードできないこともある。
特開平9−319821号公報
このように、2値化リトライ時における閾値を適切に決定することが難しく、適切なデコードが行われないことがあった。
本発明の目的は、読み取られた画像状況に応じて、2値化リトライ時における閾値を、短時間のうちに最適に決定でき、適切なデコードを確実に行うことができるバーコード読み取り方法及びバーコード読み取り装置を提供することにある。
本発明のバーコード読み取り方法は、光学的に読み取られ、画面を構成する各画素に多値情報として展開されたバーコードの画像情報を所定の閾値で画素毎に2値化してデコードするバーコードの読み取り方法であって、各画素の多値情報を表す階調値と各階調毎の画素数分布から前記閾値の初期値を決定する段階と、前記閾値により前記多値情報の2値化を行い、この2値化によるデコード結果が正常か否かを判定し、判定結果が正常でない場合は、閾値を変化させて、デコード結果が正常になるまで2値化をリトライする段階と、予め設定された最高階調値と前記初期値との差に基づいて変化量を求め、この変化量を前記初期値に加算して前記リトライ時の閾値を求める段階とを有することを特徴とする。
また、本発明のバーコード読み取り装置は、光学的に読み取られ、画面を構成する各画素に多値情報として展開されたバーコードの画像情報を所定の閾値で画素毎に2値化してデコードするバーコードの読み取り装置であって、各画素の多値情報を表す階調値と各階調毎の画素数分布から前記閾値の初期値を決定する初期閾値決定手段と、前記閾値により前記画素毎の多値情報を2値化し、デコードを行うデコード手段と、このデコード手段によるデコード結果が正常か否かを判定するデコード結果判定手段と、このデコード結果判定手段による判定結果が正常でない場合は、閾値を変化させて、デコード結果が正常になるまで前記2値化をリトライさせる2値化リトライ手段と、予め設定された最高階調値と前記初期値との差に基づいて変化量を求め、この変化量を前記初期値に加算して前記リトライ時の閾値を求めるリトライ時閾値決定手段とを備えたことを特徴とする。
これらの発明では、予め設定された最高階調値と前記初期閾値との差に基づいて閾値の変化量を求め、この変化量を初期値に加算して2値化リトライ時の閾値を求めるので、短時間で適切にバーコードを2値化し、デコードすることができる。
本発明によれば、閾値の初期値による2値化が適切でなく、2値化処理をリトライする際に、初期値に基づき、リトライ時の閾値を適切に決定できるので、短い処理時間により正確なデコードを確実に行うことができ、高い認識率を確保できる。
以下、本発明によるバーコード読み取り方法及びバーコード読み取り装置の一実施の形態について図面を用いて説明する。
図1は、この実施の形態におけるバーコード読み取り装置の構成を示している。図1において、11はスキャナなどによるバーコード読み取り手段で、紙片などに印刷されたバーコード12を光学的に読み取る。
13はメモリで、バーコード読み取り手段11で読み取られた2次元多値画像から、図示しない入力処理手段により検出され、切り出されたバーコード部分を、画面を構成する画素毎に多値情報として保持している。すなわち、1画素は、例えば、8ビットの256階調で表現されており、最大黒画素値は255、最小白画素値は0で表現され、これらの階調値が画素毎に保持されている。
14は初期閾値決定手段で、前記バーコード部分の画素毎の階調値及び各階調毎の画素数分布をもとに、公知の大津法などによって、2値化のための閾値の初期値を演算し決定する。
15は2値化/デコード手段で、決定された閾値を用いて、バーコード部分の多値情報を、画素毎の2値情報に2値化する。この2値化により、画面上の白黒部分が明確になるので、バーコードの黒バーの幅及び白バーの幅を求めてデコードする。
16はデコード結果判定手段で、上記デコード結果が正常か否かを判定する。この判定は、例えば、2値化された黒バー及び白バーの幅から、それらを正規のバーコードのキャラクタと比較し、正規のキャラクタを表現しているものであれば、正常と判断し、正規のキャラクタ以外のバー配列であれば、正常でないと判断する。
17は2値化リトライ手段で、デコード結果判定手段16による判定結果が正常でない場合は、閾値を変化させて、デコード結果が正常になるまで2値化をリトライさせる。
18はリトライ時閾値決定手段で、リトライ時の閾値を、次式のように求める。
best_th = ohtsu_th + ((255−ohtsu_th)÷10)×n・・・(1)
ここで、ohtsu_th:大津法で獲得した閾値の初期値、best_th:リトライ時の閾値、n:リトライ回数とする。
ここで、ohtsu_th:大津法で獲得した閾値の初期値、best_th:リトライ時の閾値、n:リトライ回数とする。
すなわち、((255−ohtsu_th)÷10)×n が、予め設定された最高階調値と初期値との差に基づいて決定した変化量であり、これを閾値の初期値ohtsu_thに加算することにより、リトライ時の閾値best_thを求めている。
上記構成において、読み取り手段11によりバーコード12を光学的に読み取り、得られた2次元多値画像からバーコード部分を検出して切り出し、その画像情報を、メモリ13の、画面を構成する各画素部分(以下、単に画素と呼ぶ)に、それぞれ多値情報として記憶する。すなわち、前述のように、例えば、1画素は8ビットの256階調で表現され、最大黒画素値は255、最小白画素値は0で表現されるものとする。
上記構成において、読み取り手段11によりバーコード12を光学的に読み取り、得られた2次元多値画像からバーコード部分を検出して切り出し、その画像情報を、メモリ13の、画面を構成する各画素部分(以下、単に画素と呼ぶ)に、それぞれ多値情報として記憶する。すなわち、前述のように、例えば、1画素は8ビットの256階調で表現され、最大黒画素値は255、最小白画素値は0で表現されるものとする。
次に、初期閾値決定手段14において、この切り出されたバーコード画像に対し、既知の手法である大津法を使用して2値化のための閾値の初期値:ohtsu_thを獲得する。
2値化/デコード手段15では、このようにして求めた閾値を用いて、バーコード部分の画像情報を2値化しデコードする。その結果は、デコード結果判定手段16で判定され、正常であればデコード結果として出力され、正常でなければ2値化リトライ手段17を動作させる。2値化リトライ手段17は、リトライ時閾値決定手段18により、閾値を変えて、デコード結果が正常になるまで、2値化/デコードをリトライさせる。
一般的にコントラストが厳しい(くっきりしていない)画像の場合は、背景が暗くなり、バー部分の黒画素値とスペース部分の白画素値の値が255に近くなる。このため、2値化のための閾値は平均値128よりも高い値となる。また、通常バーコードにおいてはナロースペースの部分が暗くなり、黒っぽくなる。そのため、一般的には、大津法により求めた初期値よりも高い値に(黒い方向へ)閾値を移動させて2値化しないとバーコードを正しく2値化することができない。
リトライ時、閾値を初期値から高い値へどれくらい移動(変化)させるが問題となる。移動(変化)量が小さいとデコード可能となる2値化閾値を見つけるのに時間がかかり、移動量が大きいと処理時間は早くなるが最適である2値化閾値を飛び越してデコードできないこともある。
そこで、リトライ時閾値決定手段18は、前記(1)式により、予め設定した最高階調値と前記初期値との差に基づいて変化量を決定し、これを閾値の初期値に加算してリトライ時の閾値を求めている。
例えば、黒画素と白画素のコントラストが厳しく、大津法により求めた2値化閾値の初期値が185とすると、予め求められている最高階調値255との差に基づく変化量は7となり、リトライ数の増加に対して2値化閾値は次のように細かく移動する。
リトライ数 2値化閾値の計算式 2値化閾値
0 185+((255−185)÷10)×0=185+0 =185
1 185+((255−185)÷10)×1=185+7 =192
2 185+((255−185)÷10)×2=185+14 =199
図2は、上述した黒画素と白画素のコントラストが厳しい画像を2値化する場合を示している。図中、th-0は、大津法により求めた閾値の初期値(185)により2値化した結果であり、デコード結果はNGである。th-1は、閾値の変化量7で細かく移動させ、1回目の2値化リトライを行った結果であり、デコード結果はまだNGである。th-3は、閾値の変化量7で2回目の2値化リトライを行った結果であり、デコード結果はOKとなった。th-4は、さらに閾値を変化量7移動させた2値化リトライ結果であり、この場合は閾値が変化し過ぎてしまい、デコード結果はNGとなった。なお、初期値以下の閾値で2値化した場合、すなわち、図示上から5列以下では、すべての画素を黒画素と判定してしまい、もちろんデコード結果はNGである。
0 185+((255−185)÷10)×0=185+0 =185
1 185+((255−185)÷10)×1=185+7 =192
2 185+((255−185)÷10)×2=185+14 =199
図2は、上述した黒画素と白画素のコントラストが厳しい画像を2値化する場合を示している。図中、th-0は、大津法により求めた閾値の初期値(185)により2値化した結果であり、デコード結果はNGである。th-1は、閾値の変化量7で細かく移動させ、1回目の2値化リトライを行った結果であり、デコード結果はまだNGである。th-3は、閾値の変化量7で2回目の2値化リトライを行った結果であり、デコード結果はOKとなった。th-4は、さらに閾値を変化量7移動させた2値化リトライ結果であり、この場合は閾値が変化し過ぎてしまい、デコード結果はNGとなった。なお、初期値以下の閾値で2値化した場合、すなわち、図示上から5列以下では、すべての画素を黒画素と判定してしまい、もちろんデコード結果はNGである。
これらの結果、リトライ2回目の閾値199が、正確なデコード結果を得ることができる最適な閾値となる。
これに対し、黒画素と白画素のコントラストがくっきりしており、大津法により求めた2値化閾値の初期値が135とすると、予め求められている最高階調値255との差に基づく変化量は12となり、リトライ数の増加に対して2値化閾値は次のように大きく移動する。
リトライ数 2値化閾値の計算式 2値化閾値
0 135+((255−135)÷10)×0=135+0 =135
1 135+((255−135)÷10)×1=135+12 =147
2 135+((255−135)÷10)×2=135+24 =159
図3は、上述の黒画素と白画素のコントラストがくっきりとした画像を2値化する場合を示している。図中、th-0は、大津法により求めた閾値の初期値(135)により2値化した結果であり、デコード結果はNGである。th-1は、閾値の変化量12で大きく移動させ、1回目の2値化リトライを行った結果であり、デコード結果はOKとなった。th-3は、さらに閾値を変化量12移動させた2値化リトライ結果であり、この場合は閾値が変化し過ぎてしまい、デコード結果はNGとなった。
0 135+((255−135)÷10)×0=135+0 =135
1 135+((255−135)÷10)×1=135+12 =147
2 135+((255−135)÷10)×2=135+24 =159
図3は、上述の黒画素と白画素のコントラストがくっきりとした画像を2値化する場合を示している。図中、th-0は、大津法により求めた閾値の初期値(135)により2値化した結果であり、デコード結果はNGである。th-1は、閾値の変化量12で大きく移動させ、1回目の2値化リトライを行った結果であり、デコード結果はOKとなった。th-3は、さらに閾値を変化量12移動させた2値化リトライ結果であり、この場合は閾値が変化し過ぎてしまい、デコード結果はNGとなった。
これらの結果、リトライ1回目の閾値147が、正確なデコード結果を得ることができる最適な閾値となる。
このよう、画像のコントラストが厳しい場合には2値化閾値の移動量を細かく設定し、コントラストがくっきりしている場合には2値化閾値の移動量を広く設定することで、短い処理時間で、最適な2値化閾値を設定し、高い認識率を確保できる。
11 バーコード読み取り手段
12 バーコード
13 メモリ
14 初期閾値決定手段
15 2値化/デコード手段
16 デコード結果判定手段
17 2値化リトライ手段
18 リトライ時閾値決定手段
12 バーコード
13 メモリ
14 初期閾値決定手段
15 2値化/デコード手段
16 デコード結果判定手段
17 2値化リトライ手段
18 リトライ時閾値決定手段
Claims (2)
- 光学的に読み取られ、画面を構成する各画素に多値情報として展開されたバーコードの画像情報を所定の閾値で画素毎に2値化してデコードするバーコードの読み取り方法であって、
各画素の多値情報を表す階調値と各階調毎の画素数分布から前記閾値の初期値を決定する段階と、
前記閾値により前記多値情報の2値化を行い、この2値化によるデコード結果が正常か否かを判定し、判定結果が正常でない場合は、閾値を変化させて、デコード結果が正常になるまで2値化をリトライする段階と、
予め設定された最高階調値と前記初期値との差に基づいて変化量を求め、この変化量を前記初期値に加算して前記リトライ時の閾値を求める段階と、
を有することを特徴とするバーコード読み取り方法。 - 光学的に読み取られ、画面を構成する各画素に多値情報として展開されたバーコードの画像情報を所定の閾値で画素毎に2値化してデコードするバーコードの読み取り装置であって、
各画素の多値情報を表す階調値と各階調毎の画素数分布から前記閾値の初期値を決定する初期閾値決定手段と、
前記閾値により前記画素毎の多値情報を2値化し、デコードを行うデコード手段と、
このデコード手段によるデコード結果が正常か否かを判定するデコード結果判定手段と、
このデコード結果判定手段による判定結果が正常でない場合は、閾値を変化させて、デコード結果が正常になるまで前記2値化をリトライさせる2値化リトライ手段と、
予め設定された最高階調値と前記初期値との差に基づいて変化量を求め、この変化量を前記初期値に加算して前記リトライ時の閾値を求めるリトライ時閾値決定手段と、
を備えたことを特徴とするバーコード読み取り装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003407420A JP2005165949A (ja) | 2003-12-05 | 2003-12-05 | バーコード読み取り方法及びバーコード読み取り装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003407420A JP2005165949A (ja) | 2003-12-05 | 2003-12-05 | バーコード読み取り方法及びバーコード読み取り装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005165949A true JP2005165949A (ja) | 2005-06-23 |
Family
ID=34729475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003407420A Pending JP2005165949A (ja) | 2003-12-05 | 2003-12-05 | バーコード読み取り方法及びバーコード読み取り装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005165949A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011076208A (ja) * | 2009-09-29 | 2011-04-14 | Nidec Sankyo Corp | スタック型バーコード情報読取方法及びスタック型バーコード情報読取装置 |
US8485444B2 (en) | 2010-02-01 | 2013-07-16 | Nidec Sankyo Corporation | Apparatus and method for reading symbol information |
WO2020071188A1 (ja) * | 2018-10-01 | 2020-04-09 | 株式会社日立産機システム | 印字検査装置 |
-
2003
- 2003-12-05 JP JP2003407420A patent/JP2005165949A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011076208A (ja) * | 2009-09-29 | 2011-04-14 | Nidec Sankyo Corp | スタック型バーコード情報読取方法及びスタック型バーコード情報読取装置 |
US8485444B2 (en) | 2010-02-01 | 2013-07-16 | Nidec Sankyo Corporation | Apparatus and method for reading symbol information |
WO2020071188A1 (ja) * | 2018-10-01 | 2020-04-09 | 株式会社日立産機システム | 印字検査装置 |
CN112740218A (zh) * | 2018-10-01 | 2021-04-30 | 株式会社日立产机系统 | 打印检查装置 |
JPWO2020071188A1 (ja) * | 2018-10-01 | 2021-09-02 | 株式会社日立産機システム | 印字検査装置 |
JP7057433B2 (ja) | 2018-10-01 | 2022-04-19 | 株式会社日立産機システム | 印字検査装置 |
JP7057433B6 (ja) | 2018-10-01 | 2022-05-16 | 株式会社日立産機システム | 印字検査装置 |
US11514256B2 (en) | 2018-10-01 | 2022-11-29 | Hitachi Industrial Equipment Systems Co., Ltd. | Printing inspection device |
CN112740218B (zh) * | 2018-10-01 | 2023-08-25 | 株式会社日立产机系统 | 打印检查装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4180497B2 (ja) | コード種類判別方法、およびコード境界検出方法 | |
JP4911340B2 (ja) | 二次元コード検出システムおよび二次元コード検出プログラム | |
US6742708B2 (en) | Fiducial mark patterns for graphical bar codes | |
US6575367B1 (en) | Image data binarization methods enabling optical reader to read fine print indicia | |
US11176454B2 (en) | Optoelectronic code reader and method for reading optical codes | |
JP2007272348A (ja) | 文字列認識方法及び文字列認識装置 | |
US7311262B2 (en) | Method of decoding a symbol with a low contrast | |
US10460142B2 (en) | Barcode identification method for improving decoding reliability by correcting image distortion | |
JPH10198754A (ja) | コード読取装置 | |
JP2005165949A (ja) | バーコード読み取り方法及びバーコード読み取り装置 | |
JP4398498B2 (ja) | コード境界検出方法 | |
JP5121685B2 (ja) | バーコード読取装置、バーコード読取プログラム、バーコード読取方法 | |
JP4874706B2 (ja) | Qrコード読取装置 | |
JP4749382B2 (ja) | 2次元コード読取装置及びその方法 | |
JP4815423B2 (ja) | データコード読取装置及びその方法 | |
JP4728297B2 (ja) | 2次元コード読取装置及びその方法 | |
CN104811581A (zh) | 图像处理装置 | |
JP2011076208A (ja) | スタック型バーコード情報読取方法及びスタック型バーコード情報読取装置 | |
JP4905767B2 (ja) | 二次元コード検出システムおよび二次元コード検出プログラム | |
JP2010182219A (ja) | 画像処理装置 | |
JP5470734B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP5127687B2 (ja) | バーコード読取装置、バーコード読取プログラム、バーコード読取方法 | |
JP4227859B2 (ja) | マークシート読取装置 | |
JP5092732B2 (ja) | コード認識装置及びプログラム | |
JP5453594B2 (ja) | シンボル情報読取装置及びシンボル情報読取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060927 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060929 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080226 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080701 |