(57)【要約】【課題】  読み取られた画像状況に応じて、２値化リトライ時における閾値を、短時間のうちに最適に決定でき、適切なデコードを確実に行うことができるバーコード読み取り方法及びバーコード読み取り装置を提供すること。【解決手段】  リトライ時閾値決定手段１８により、予め設定された最高階調値と閾値の初期値との差に基づいて変動量を決定し、これを初期値に加算してリトライ時の閾値を求めるので、短時間で適切なリトライ時の閾値を得ることができる。【選択図】図１
2005165949.tif 000002
【特許請求の範囲】
【請求項１】
光学的に読み取られ、画面を構成する各画素に多値情報として展開されたバーコードの画像情報を所定の閾値で画素毎に２値化してデコードするバーコードの読み取り方法であって、
各画素の多値情報を表す階調値と各階調毎の画素数分布から前記閾値の初期値を決定する段階と、
前記閾値により前記多値情報の２値化を行い、この２値化によるデコード結果が正常か否かを判定し、判定結果が正常でない場合は、閾値を変化させて、デコード結果が正常になるまで２値化をリトライする段階と、
予め設定された最高階調値と前記初期値との差に基づいて変化量を求め、この変化量を前記初期値に加算して前記リトライ時の閾値を求める段階と、
を有することを特徴とするバーコード読み取り方法。
【請求項２】
光学的に読み取られ、画面を構成する各画素に多値情報として展開されたバーコードの画像情報を所定の閾値で画素毎に２値化してデコードするバーコードの読み取り装置であって、
各画素の多値情報を表す階調値と各階調毎の画素数分布から前記閾値の初期値を決定する初期閾値決定手段と、
前記閾値により前記画素毎の多値情報を２値化し、デコードを行うデコード手段と、
このデコード手段によるデコード結果が正常か否かを判定するデコード結果判定手段と、
このデコード結果判定手段による判定結果が正常でない場合は、閾値を変化させて、デコード結果が正常になるまで前記２値化をリトライさせる２値化リトライ手段と、
予め設定された最高階調値と前記初期値との差に基づいて変化量を求め、この変化量を前記初期値に加算して前記リトライ時の閾値を求めるリトライ時閾値決定手段と、
を備えたことを特徴とするバーコード読み取り装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多値画像から検出され、切り出されたバーコードを2値化してデコードするバーコード読み取り方法及びバーコード読み取り装置に関する。
【背景技術】
【０００２】
一般に、商品などの貼付されているバーコードは、その商品の取引に関する情報を保持しており、これを正確に読み取ることが重要である。このバーコードの読み取りはスキャナなどによりバーコードを画像情報として読み取り、この読み取った画像情報をデコードすることにより、保持された情報を得ている。この場合、バーコードが白地上に黒字で明確に表示されていれば、誤読を生じることなく正確に読み取ることができる。
【０００３】
通常、バーコードは多値情報として読み取られ、これを所定の閾値により２値化し、その結果をデコードするようにしており、それらに関する提案もなされている（例えば、特許文献１参照）。
【０００４】
ここで、読み取られた多値情報は、バーコードが記される下地の状態により種々異なり、白画素値と黒画素値の差が大きくコントラストがくっきりしている画像や、逆に白画素値と黒画素値の差が少なくコントラストが厳しい画像など様々である。このような場合、２値化のための閾値は、各画素の階調値と階調値毎の画素数分布から、公知の大津法などを用いて決定している。
【０００５】
しかしながら、上述のように閾値を決定し、その閾値により２値化を行っても、閾値が適切でない場合は、正確なデコードが行われない。そこで、この閾値を変化させて２値化及びデコードをリトライし、デコードが正確に行われるようにしている。この場合、リトライ時の閾値を、初期の閾値に対しどれだけ変化させるかにより、適切なデコードが行われないことがある。すなわち、閾値を変化させる幅が小さい場合、デコード可能となる閾値を見つけるのに多くの時間がかかってしまう。また、変化させる幅が大きい場合は、処理時間は早くなるが、最適な閾値を飛び越してしまい、デコードできないこともある。
【特許文献１】特開平９−３１９８２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このように、２値化リトライ時における閾値を適切に決定することが難しく、適切なデコードが行われないことがあった。
【０００７】
本発明の目的は、読み取られた画像状況に応じて、2値化リトライ時における閾値を、短時間のうちに最適に決定でき、適切なデコードを確実に行うことができるバーコード読み取り方法及びバーコード読み取り装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明のバーコード読み取り方法は、光学的に読み取られ、画面を構成する各画素に多値情報として展開されたバーコードの画像情報を所定の閾値で画素毎に２値化してデコードするバーコードの読み取り方法であって、各画素の多値情報を表す階調値と各階調毎の画素数分布から前記閾値の初期値を決定する段階と、前記閾値により前記多値情報の２値化を行い、この２値化によるデコード結果が正常か否かを判定し、判定結果が正常でない場合は、閾値を変化させて、デコード結果が正常になるまで２値化をリトライする段階と、予め設定された最高階調値と前記初期値との差に基づいて変化量を求め、この変化量を前記初期値に加算して前記リトライ時の閾値を求める段階とを有することを特徴とする。
【０００９】
また、本発明のバーコード読み取り装置は、光学的に読み取られ、画面を構成する各画素に多値情報として展開されたバーコードの画像情報を所定の閾値で画素毎に２値化してデコードするバーコードの読み取り装置であって、各画素の多値情報を表す階調値と各階調毎の画素数分布から前記閾値の初期値を決定する初期閾値決定手段と、前記閾値により前記画素毎の多値情報を２値化し、デコードを行うデコード手段と、このデコード手段によるデコード結果が正常か否かを判定するデコード結果判定手段と、このデコード結果判定手段による判定結果が正常でない場合は、閾値を変化させて、デコード結果が正常になるまで前記２値化をリトライさせる２値化リトライ手段と、予め設定された最高階調値と前記初期値との差に基づいて変化量を求め、この変化量を前記初期値に加算して前記リトライ時の閾値を求めるリトライ時閾値決定手段とを備えたことを特徴とする。
【００１０】
これらの発明では、予め設定された最高階調値と前記初期閾値との差に基づいて閾値の変化量を求め、この変化量を初期値に加算して２値化リトライ時の閾値を求めるので、短時間で適切にバーコードを２値化し、デコードすることができる。
【発明の効果】
【００１１】
本発明によれば、閾値の初期値による２値化が適切でなく、２値化処理をリトライする際に、初期値に基づき、リトライ時の閾値を適切に決定できるので、短い処理時間により正確なデコードを確実に行うことができ、高い認識率を確保できる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明によるバーコード読み取り方法及びバーコード読み取り装置の一実施の形態について図面を用いて説明する。
【００１３】
図１は、この実施の形態におけるバーコード読み取り装置の構成を示している。図１において、１１はスキャナなどによるバーコード読み取り手段で、紙片などに印刷されたバーコード１２を光学的に読み取る。
【００１４】
１３はメモリで、バーコード読み取り手段１１で読み取られた２次元多値画像から、図示しない入力処理手段により検出され、切り出されたバーコード部分を、画面を構成する画素毎に多値情報として保持している。すなわち、１画素は、例えば、８ビットの２５６階調で表現されており、最大黒画素値は２５５、最小白画素値は０で表現され、これらの階調値が画素毎に保持されている。
【００１５】
１４は初期閾値決定手段で、前記バーコード部分の画素毎の階調値及び各階調毎の画素数分布をもとに、公知の大津法などによって、２値化のための閾値の初期値を演算し決定する。
【００１６】
１５は２値化／デコード手段で、決定された閾値を用いて、バーコード部分の多値情報を、画素毎の２値情報に２値化する。この２値化により、画面上の白黒部分が明確になるので、バーコードの黒バーの幅及び白バーの幅を求めてデコードする。
【００１７】
１６はデコード結果判定手段で、上記デコード結果が正常か否かを判定する。この判定は、例えば、２値化された黒バー及び白バーの幅から、それらを正規のバーコードのキャラクタと比較し、正規のキャラクタを表現しているものであれば、正常と判断し、正規のキャラクタ以外のバー配列であれば、正常でないと判断する。
【００１８】
１７は２値化リトライ手段で、デコード結果判定手段１６による判定結果が正常でない場合は、閾値を変化させて、デコード結果が正常になるまで２値化をリトライさせる。
【００１９】
１８はリトライ時閾値決定手段で、リトライ時の閾値を、次式のように求める。
【００２０】
best_th =  ohtsu_th + ((２５５−ohtsu_th)÷１０)×n・・・（１）
ここで、ohtsu_th：大津法で獲得した閾値の初期値、best_th：リトライ時の閾値、n：リトライ回数とする。
【００２１】
すなわち、((２５５−ohtsu_th)÷１０)×n が、予め設定された最高階調値と初期値との差に基づいて決定した変化量であり、これを閾値の初期値ohtsu_thに加算することにより、リトライ時の閾値best_thを求めている。  
上記構成において、読み取り手段１１によりバーコード１２を光学的に読み取り、得られた２次元多値画像からバーコード部分を検出して切り出し、その画像情報を、メモリ１３の、画面を構成する各画素部分（以下、単に画素と呼ぶ）に、それぞれ多値情報として記憶する。すなわち、前述のように、例えば、１画素は８ビットの２５６階調で表現され、最大黒画素値は２５５、最小白画素値は０で表現されるものとする。
【００２２】
次に、初期閾値決定手段１４において、この切り出されたバーコード画像に対し、既知の手法である大津法を使用して２値化のための閾値の初期値：ohtsu_thを獲得する。
【００２３】
２値化／デコード手段１５では、このようにして求めた閾値を用いて、バーコード部分の画像情報を２値化しデコードする。その結果は、デコード結果判定手段１６で判定され、正常であればデコード結果として出力され、正常でなければ２値化リトライ手段１７を動作させる。２値化リトライ手段１７は、リトライ時閾値決定手段１８により、閾値を変えて、デコード結果が正常になるまで、２値化／デコードをリトライさせる。
【００２４】
一般的にコントラストが厳しい（くっきりしていない）画像の場合は、背景が暗くなり、バー部分の黒画素値とスペース部分の白画素値の値が２５５に近くなる。このため、２値化のための閾値は平均値１２８よりも高い値となる。また、通常バーコードにおいてはナロースペースの部分が暗くなり、黒っぽくなる。そのため、一般的には、大津法により求めた初期値よりも高い値に（黒い方向へ）閾値を移動させて２値化しないとバーコードを正しく２値化することができない。
【００２５】
リトライ時、閾値を初期値から高い値へどれくらい移動（変化）させるが問題となる。移動（変化）量が小さいとデコード可能となる２値化閾値を見つけるのに時間がかかり、移動量が大きいと処理時間は早くなるが最適である２値化閾値を飛び越してデコードできないこともある。
【００２６】
そこで、リトライ時閾値決定手段１８は、前記（１）式により、予め設定した最高階調値と前記初期値との差に基づいて変化量を決定し、これを閾値の初期値に加算してリトライ時の閾値を求めている。
【００２７】
例えば、黒画素と白画素のコントラストが厳しく、大津法により求めた２値化閾値の初期値が１８５とすると、予め求められている最高階調値２５５との差に基づく変化量は７となり、リトライ数の増加に対して２値化閾値は次のように細かく移動する。
【００２８】
リトライ数    ２値化閾値の計算式                              ２値化閾値
０      １８５+((２５５−１８５)÷１０)×０＝１８５＋０      ＝１８５
１      １８５+((２５５−１８５)÷１０)×１＝１８５＋７      ＝１９２
２      １８５+((２５５−１８５)÷１０)×２＝１８５＋１４    ＝１９９
図２は、上述した黒画素と白画素のコントラストが厳しい画像を２値化する場合を示している。図中、th-0は、大津法により求めた閾値の初期値（１８５）により２値化した結果であり、デコード結果はＮＧである。th-1は、閾値の変化量７で細かく移動させ、１回目の２値化リトライを行った結果であり、デコード結果はまだＮＧである。th-3は、閾値の変化量７で２回目の２値化リトライを行った結果であり、デコード結果はＯＫとなった。th-4は、さらに閾値を変化量７移動させた２値化リトライ結果であり、この場合は閾値が変化し過ぎてしまい、デコード結果はＮＧとなった。なお、初期値以下の閾値で２値化した場合、すなわち、図示上から５列以下では、すべての画素を黒画素と判定してしまい、もちろんデコード結果はＮＧである。
【００２９】
これらの結果、リトライ２回目の閾値１９９が、正確なデコード結果を得ることができる最適な閾値となる。
【００３０】
これに対し、黒画素と白画素のコントラストがくっきりしており、大津法により求めた２値化閾値の初期値が１３５とすると、予め求められている最高階調値２５５との差に基づく変化量は１２となり、リトライ数の増加に対して２値化閾値は次のように大きく移動する。
【００３１】
リトライ数    ２値化閾値の計算式                              ２値化閾値
０      １３５+((２５５−１３５)÷１０)×０＝１３５＋０      ＝１３５
１      １３５+((２５５−１３５)÷１０)×１＝１３５＋１２    ＝１４７
２      １３５+((２５５−１３５)÷１０)×２＝１３５＋２４    ＝１５９
図３は、上述の黒画素と白画素のコントラストがくっきりとした画像を２値化する場合を示している。図中、th-0は、大津法により求めた閾値の初期値（１３５）により２値化した結果であり、デコード結果はＮＧである。th-1は、閾値の変化量１２で大きく移動させ、１回目の２値化リトライを行った結果であり、デコード結果はＯＫとなった。th-3は、さらに閾値を変化量１２移動させた２値化リトライ結果であり、この場合は閾値が変化し過ぎてしまい、デコード結果はＮＧとなった。
【００３２】
これらの結果、リトライ１回目の閾値１４７が、正確なデコード結果を得ることができる最適な閾値となる。
【００３３】
このよう、画像のコントラストが厳しい場合には２値化閾値の移動量を細かく設定し、コントラストがくっきりしている場合には２値化閾値の移動量を広く設定することで、短い処理時間で、最適な２値化閾値を設定し、高い認識率を確保できる。
【図面の簡単な説明】
【００３４】
【図１】本発明によるバーコード読み取り装置の一実施の形態を示すブロック構成図である。
【図２】同上一実施の形態による、黒画素と白画素とのコントラストがくっきりしない画像の２値化結果を示す図である。
【図３】同上一実施の形態による黒画素と白画素とのコントラストがくっきりした画像の２値化結果を示す図である。
【符号の説明】
【００３５】
１１    バーコード読み取り手段
１２    バーコード
１３    メモリ
１４    初期閾値決定手段
１５    ２値化／デコード手段
１６    デコード結果判定手段
１７    ２値化リトライ手段
１８    リトライ時閾値決定手段
【図１】
2005165949.tif 000003
【図２】
2005165949.tif 000004
【図３】
2005165949.tif 000005