(57)【要約】【課題】撮像時の環境条件、特に照明の照度ムラの影響を受けずに安定して正確にバーコードを２値化すること。【解決手段】多階調画像データ中における２次元コードを読み取る方向における注目画素の階調レベルとこの注目画素よりも２次元コードを読み取る方向に少なくとも１画素前の画素の階調レベルとの変動のレベル差が予め設定された２次元コードにおける黒バー部分とその背景部分との境界を判定するための境界判定レベル差以下であるか否かを判定する。この判定の結果、レベル差が予め設定された境界判定レベル差以下であれば、しきい値を増加又は減少させる。レベル差が予め設定された境界判定レベル差以下でなければ、しきい値の増加又は減少を行わない。【選択図】      図５
2011159317.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２次元コードを撮像装置により撮像して多階調の画像データを取得し、この多階調画像データに対してしきい値を用いて２値化し、この２値化データから前記２次元コードに含まれる情報を読み取る２次元コード読取装置において、
前記多階調画像データ中における前記２次元コードを読み取る方向における注目画素の前記階調レベルと前記注目画素よりも前記２次元コードを読み取る方向に少なくとも１画素前の画素の前記階調レベルとの変動のレベル差が予め設定された前記２次元コードにおける黒バー部分とその背景部分との境界を判定するための境界判定レベル差以下であるか否かを判定し、この判定の結果、前記レベル差が前記予め設定された境界判定レベル差以下であれば、前記しきい値を増加又は減少させ、前記レベル差が前記予め設定された境界判定レベル差以下でなければ、前記しきい値の増加又は減少を行わないしきい値可変設定部、
を具備することを特徴とする２次元コード読取装置。
【請求項２】
前記しきい値可変設定部は、前記レベル差が前記予め設定された境界判定レベル差以下のとき、前記注目画素の前記階調レベルと前記注目画素よりも少なくとも１画素前の画素の前記階調レベルとの前記レベル差に基づいて前記しきい値を増加又は減少させることを特徴とする請求項１記載の２次元コード読取装置。
【請求項３】
前記しきい値可変設定部は、前記レベル差が前記予め設定された境界判定レベル差以下のとき、前記注目画素の前記階調レベルと前記注目画素よりも少なくとも１画素前の画素の前記階調レベルとの間のレベル変化がゼロ、増加する方向、又は減少する方向のいずれであるのかを判定し、この判定の結果、前記レベル差が前記ゼロであれば、前記しきい値を変化させず、前記レベル差が前記増加する方向であれば、前記しきい値を増加し、前記レベル差が前記減少する方向であれば、前記しきい値を減少させることを特徴とする請求項２記載の２次元コード読取装置。
【請求項４】
少なくとも２次元コードを撮像装置により撮像して多階調の画像データを取得し、この多階調画像データに対してしきい値を用いて２値化し、この２値化データから前記２次元コードに含まれる情報を読み取る２次元コード読取方法において、
前記多階調画像データ中における前記２次元コードを読み取る方向における注目画素の前記階調レベルと前記注目画素よりも前記２次元コードを読み取る方向に少なくとも１画素前の画素の前記階調レベルとの変動のレベル差が予め設定された前記２次元コードにおける黒バー部分とその背景部分との境界を判定するための境界判定レベル差以下であるか否かを判定し、
この判定の結果、前記レベル差が前記予め設定された境界判定レベル差以下であれば、前記しきい値を増加又は減少させ、
前記レベル差が前記予め設定された境界判定レベル差以下でなければ、前記しきい値の増加又は減少を行わない、
ことを特徴とする２次元コード読取方法。
【請求項５】
前記レベル差が前記予め設定された境界判定レベル差以下のとき、前記注目画素の前記階調レベルと前記注目画素よりも少なくとも１画素前の画素の前記階調レベルとの前記レベル差に基づいて前記しきい値を増加又は減少させることを特徴とする請求項４記載の２次元コード読取方法。
【請求項６】
前記レベル差が前記予め設定された境界判定レベル差以下のとき、前記注目画素の前記階調レベルと前記注目画素よりも少なくとも１画素前の画素の前記階調レベルとの間のレベル差がゼロ、増加する方向、又は減少する方向のいずれであるのかを判定し、
前記判定の結果、前記レベル差がゼロであれば、前記しきい値を変化させず、前記レベル差が前記増加する方向であれば、前記しきい値を増加し、前記レベル差が前記減少する方向であれば、前記しきい値を減少させる、
ことを特徴とする請求項５記載の２次元コード読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば商品に付されているバーコード等の２次元コードを撮像装置により撮像して取得した多階調画像データに対してしきい値を用いて２値化し、この２値化データから２次元コードに含まれる情報を読み取る２次元コード読取装置及びその方法に関する。
【背景技術】
【０００２】
例えばＣＣＤカメラ等の撮像装置によりバーコードや記号等を撮像し、この撮像装置から出力される映像信号を画像処理することによってバーコードや記号等を認識する２次元コード読取装置がある。このような装置では、撮像装置から出力される映像信号から多階調から成る画像データを取得し、この多値画像データを２値化して２値化データを取得する前処理が行われる。そして、２次元コード読取装置は、前処理により取得された２値化データに基づいてバーコードのデコードやパターン認識等の各種処理を行う。
【０００３】
多値画像データを２値化する技術としては、例えば平均法、Ｐタイル法、モード法、判別分析法等がある。これらの方法は、いずれも所定の領域内で単一のしきい値に固定して設定し、このしきい値に基づいて多値画像データを２値化する。  
一方、閾値レベルを固定しない方法としては、例えば特許文献１がある。この特許文献１は、“黒”又は“白”を判断するためのしきい値レベルを固定させずにバーコードラベルの下地の濃度（白色度）に応じてしきい値レベルを設定することを開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第２６７８００９号公報（特開平１−２５２０６７号公報）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
撮像装置により例えば商品に付されたバーコードを撮像するときには、バーコードに対して照明を行うが、この照明領域の例えば中央部では照明ムラが殆どないが、その周辺では、中央部との間に照明ムラが生じる。このような事から例えば撮像装置のフォーカス位置で撮像装置の撮像方向と照明方向とを一致させている。これにより、撮像装置は、バーコードを捉えたときに照明ムラが生じないように照明ムラの殆どない照明領域の中央部に向けて撮像領域の方向が設定される。このように撮像装置の撮像方向と照明方向とを設定しているが、照明領域の例えば中央部とその周辺との間には照明ムラが生じるために、撮像装置における撮像面上の中央部とその周辺部との間に照明ムラが生じる。しかるに、バーコードが例えばオペレータによって撮像装置における撮像面上の中央部に配置されると、バーコード上に照明ムラが生じないが、バーコードが撮像装置における撮像面上の周辺部に配置されると、バーコード上に照明ムラが生じる。
【０００６】
図６は撮像装置における撮像面１上の周辺部にバーコード２が配置された場合の２値化処理を示す。このようにバーコード２が撮像装置における撮像面１上の周辺部に配置されると、バーコード２上に照明ムラが生じるために、例えばラインｍ上における多値画像データの階調レベルは、変動し、撮像面１上の中央部よりもその周辺部で低下している。
【０００７】
このように階調レベルが変動している多値画像データに対して固定設定されたしきい値ｔｈ１を用いて２値化処理すると、撮像面１上の中央部における多値画像データに対しては２値化処理してバーコード２を再現できるが、撮像面１上の周辺部すなわち図６上の右側になるに従って照度が低下するために、バーコード２に対応する多値画像データの階調レベルがしきい値ｔｈ１よりも低くなり、バーコード２が在るにも拘わらずバーコード２を再現することが不可能になる。
【０００８】
特許文献１は、バーコードラベルの下地の濃度（白色度）に応じてしきい値レベルを設定しており、読み取る対象のバーコードの下地が所定の濃度レベルを有していることを前提とする。特にバーコード読み取り装置に商品をかざして当該商品に付されたバーコードを読み取る場合、バーコードを撮像装置の撮像面上の中央部（装置の正面）で捉えた場合には照明が均一に当たっているため２値化に支障はない。  
しかしながら、特許文献１でもバーコードを撮像面上の周辺部で捉えた場合には、周辺部の照度が低下するために、上記同様に、バーコード領域の両端で多階調レベルに差が生じる。すなわち、特許文献１は、バーコードラベルの下地の濃度（白色度）に応じてしきい値レベルを設定しているが、この設定されるしきい値レベルは、撮像装置の撮像により取得されるそれぞれ異なる複数の画像データ毎に可変設定される。すなわち、複数の画像データ毎に設定される各しきい値レベルは、それぞれ図６に示すしきい値ｔｈ１と同様に、１つの画像データ内で変化しない一定値を示す。このため、特許文献１であっても上記図６に示す説明と同様に、１つの画像データに対して設定されたしきい値レベルは、固定設定されたものと同一になる。従って、特許文献１に開示されているしきい値レベルを用いて２値化処理したとしても、上記同様に、撮像面上の周辺部になるに従って照度が低下するために、バーコードに対応する多値画像データの階調レベルが一定値を示すしきい値よりも低くなり、バーコードが在るにも拘わらずバーコードを再現することが不可能になる。
【０００９】
本発明の目的は、撮像時の環境条件、特に照明の照度ムラの影響を受けずに安定して正確にバーコードを２値化できる２次元コード読取装置及びその方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の主要な局面に係る２次元コード読取装置は、多階調画像データ中における２次元コードを読み取る方向における注目画素の階調レベルとこの注目画素よりも２次元コードを読み取る方向に少なくとも１画素前の画素の階調レベルとの変動のレベル差が予め設定された２次元コードにおける黒バー部分とその背景部分との境界を判定するための境界判定レベル差以下であるか否かを判定し、この判定の結果、レベル差が予め設定された境界判定レベル差以下であれば、しきい値を増加又は減少させ、レベル差が予め設定された境界判定レベル差以下でなければ、しきい値の増加又は減少を行わないしきい値可変設定部を具備する。
【００１１】
本発明の主要な局面に係る２次元コード読取方法は、多階調画像データ中における２次元コードを読み取る方向における注目画素の階調レベルとこの注目画素よりも２次元コードを読み取る方向に少なくとも１画素前の画素の階調レベルとの変動のレベル差が予め設定された２次元コードにおける黒バー部分とその背景部分との境界を判定するための境界判定レベル差以下であるか否かを判定し、この判定の結果、レベル差が予め設定された境界判定レベル差以下であれば、しきい値を増加又は減少させ、レベル差が予め設定された境界判定レベル差以下でなければ、しきい値の増加又は減少を行わない。
【発明の効果】
【００１２】
本発明によれば、撮像時の環境条件、特に照明の照度ムラの影響を受けずに安定して正確にバーコードを２値化できる２次元コード読取装置及びその方法を提供できる。
【図面の簡単な説明】
【００１３】
【図１】本発明に係る２次元コード読取装置の一実施の形態を示す構成図。
【図２】同装置におけるしきい値可変設定部によりレベル差を算出するときの画素を示す摸式図。
【図３】同装置におけるバーコードにおける例えば黒バー部分から背景部分に移るときの多階調画像データの階調レベルの変動を説明するための図。
【図４】同装置における２値化処理の順序を示す図。
【図５】同装置における撮像部の撮像により取得されたバーコード上に照明ムラが生じた場合の多階調画像データの階調レベルの変動を示す図。
【図６】従来における撮像装置の撮像面上の周辺部にバーコードが配置された場合の２値化処理を示す図。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施の形態について図面を参照して説明する。  
図１は２次元コード読取装置の構成図を示す。この２次元コード読取装置は、例えば電子キャッシュレジスタに用いられる。この２次元コード読取装置は、制御部本体としてＣＰＵ（Central Processing Unit）１０を搭載している。このＣＰＵ１００には、ＲＯＭ（Read Only Memory）１１と、ＲＡＭ（Random Access Memory）１２と、通信インタフェース（通信Ｉ／Ｆ）１３と、撮像部１４とが接続されると共に、ＣＰＵ１００からの指令を受けて２値化処理部１５と、デコード部１６と、しきい値可変設定部１７とが動作するものとなっている。
【００１５】
ＲＯＭ１１には、例えば電子キャッシュレジスタの業務を実行させるための業務プログラムや２次元コード読取プログラムが予め格納されている。２次元コード読取プログラムは、例えば商品１８に付されたバーコード２を撮像部１４により撮像して多階調画像データを取得し、この多階調画像データに対してしきい値ｔｈ２を用いて２値化させ、この２値化データからバーコード２に含まれる商品１８の情報を読み取る場合、多階調画像データにおける階調レベルの変動に応じてしきい値ｔｈ２を可変設定させ、この可変設定させたしきい値ｔｈ２を用いて多階調画像データを２値化させる。
【００１６】
ＲＡＭ１２は、各種データを一時記憶するためのワークエリアが形成され、例えば撮像部１４の撮像により取得された多階調画像データＤａを当該ワークエリアに一時記憶したり、デコード部１６によりデコードされたバーコード２に含む情報等をワークエリアに一時記憶する。  
通信Ｉ／Ｆ１３には、図示しない伝送路を通して例えばＰＯＳシステムのサーバ等の外部機器が接続されている。この通信Ｉ／Ｆ１３は、伝送路を通して外部機器の間でデータ通信を行う。  
撮像部１４は、商品１８に貼られたバーコード２を含む領域を撮像し、その多階調、例えば０〜２５５階調の映像信号を出力するもので、例えばＣＣＤ等により成るイメージセンサが用いられる。
【００１７】
２値化処理部１５は、撮像部１４の撮像により取得された多階調画像データに対してしきい値ｔｈ２を用いて２値化して２値化データＤｂを取得する。この２値化処理部１５での２値化処理に用いるしきい値ｔｈ２は、後述するしきい値可変設定部１７により可変設定される。  
デコード部１６は、２値化処理部１５により取得された２値化データＤｂからバーコード２に含まれる情報を読み取る。
【００１８】
しきい値可変設定部１７は、撮像部１４の撮像により取得された多階調画像データＤａにおける階調レベルの変動に応じてしきい値ｔｈ２を可変設定するもので、例えば階調レベルの変動、例えばバーコード２における黒バー部分に対する背景部分の階調レベルの変動に応じて２値化処理部１５のしきい値ｔｈ２を増加又は減少する。  
このしきい値可変設定部１７は、バーコード２を読み取る方向、すなわち撮像部１４によりバーコード２を撮像するときのスキャン方向と同一方向において、多階調画像データＤａにおける注目画素の階調レベルとこの注目画素よりも少なくとも１画素前の画素の階調レベルとのレベル差に基づいてしきい値ｔｈ２を増加又は減少させる。例えば、図２に示すように注目画素ｉの階調レベルをｐ(i)とし、この注目画素ｉに対して１画素前である直前の画素ｉ−１の階調レベルをｐ(i-1)とすると、しきい値可変設定部１７は、１画素前の画素ｉ−１の階調レベルｐ(i-1)と注目画素ｉの階調レベルｐ(i)とのレベル差Δｄを算出する。  
Δｄ＝ｐ(i-1)−ｐ(i)                                  …（１）  
しきい値可変設定部１７は、１画素前の画素ｉ−１の階調レベルｐ(i-1)と注目画素ｉの階調レベルｐ(i)とのレベル差Δｄを算出した結果、このレベル差Δｄが無くゼロ「０」、正値（Δｄ＞０）、又は負値（Δｄ＜０）のいずれであるのかを判定する。すなわち、レベル差Δｄが「０」であるのは、１画素前の画素ｉ−１の階調レベルｐ(i-1)と注目画素ｉの階調レベルｐ(i)とのレベル差Δｄに変化がないことを示す。レベル差Δｄが正値（Δｄ＞０）であるのは、レベル差Δｄが増加する方向であることを示す。レベル差Δｄが負値（Δｄ＜０）であるのは、レベル差Δｄが減少する方向であることを示す。
【００１９】
しきい値可変設定部１７は、レベル差Δｄが「０」、正値（Δｄ＞０）、又は負値（Δｄ＜０）のいずれであるのかの判定の結果、レベル差が「０」であれば、２値化処理部１５のしきい値ｔｈ２を変化させずに維持する。  
しきい値可変設定部１７は、レベル差Δｄが正値（Δｄ＞０）であれば、しきい値ｔｈ２を増加する。例えば、しきい値可変設定部１７は、  
ｔｈ２＝ｔｈ２＋１                                    …（２）
を算出して２値化処理部１５のしきい値ｔｈ２を「１」だけ増加する。  
しきい値可変設定部１７は、レベル差Δｄが負値（Δｄ＜０）であれば、しきい値ｔｈ２を減少する。例えば、しきい値可変設定部１７は、  
ｔｈ２＝ｔｈ２−１                                    …（３）
を算出して２値化処理部１５のしきい値ｔｈ２を「１」だけ減少する。
【００２０】
しきい値可変設定部１７は、多階調画像データＤａにおける注目画素ｉの階調レベルｐ(i)と注目画素ｉよりも例えば直前の１画素前の画素ｉ−１の階調レベルｐ(i-1)とのレベル差Δｄが予め設定された境界判定レベル差ｔｈ３以下であるか否かを判定する。すなわち、しきい値可変設定部１７は、注目画素ｉが例えばバーコード２における黒バー部分中又はこの黒バー部分の背景部分中であるか否かを判断する。換言すれば、注目画素ｉが直前の１画素前から同一色中すなわち黒バー部分中である黒色中にあるか、又は背景部分の白色中にあるかを判断する。この判断は、バーコード２における黒バー部分中又は背景部分中であれば、多階調画像データＤａにおける階調レベルの変動が緩慢であり、これら黒バー部分中又は背景部分中においてしきい値ｔｈ２の変更設定を行うためである。なお、黒バー部分と背景部分との境界部では、多階調画像データＤａにおける階調レベルの変動が急峻であり、しきい値ｔｈ２の変更設定を行わない。
【００２１】
例えば図３に示すようにバーコード２における例えば黒バー部分から背景部分に移るとき、又は背景部分から黒バー部分に移るとき、多階調画像データＤａの階調レベルは、予め設定された境界判定レベル差ｔｈ３以上変動する。これにより、黒バー部分内又は背景部分内であれば、多階調画像データＤａの階調レベルは、予め設定された境界判定レベル差ｔｈ３内にある。
【００２２】
従って、しきい値可変設定部１７は、判定の結果、レベル差Δｄが予め設定された境界判定レベル差ｔｈ３以下であれば、黒バー部分内又は背景部分内であると判断し、上記の如くレベル差Δｄが「０」、正値、又は負値のいずれかに応じてしきい値ｔｈ２を変化させない、「１」だけ増加する、又は「１」だけ減少する。
【００２３】
次に、上記の如く構成された装置によるバーコードの読取動作について図４に示す２値化処理の順序を示す図に従って説明する。  
例えば商品１８がオペレータによって撮像部１４の撮像領域内に配置される。このとき、オペレータは、商品１８に付けられているバーコード２を撮像部１４に向けて配置すると共に、撮像部１４のフォーカス位置にバーコード２が配置されるように商品１８を撮像部１４に対して近付けたり遠ざけたりする。撮像部１４は、例えばオペレータによって把持されている商品１８に付けられたバーコード２を含む領域を撮像し、その映像信号を出力する。この撮像部１４から出力された映像信号は、ＣＰＵ１０の指令により順次ＲＡＭ１２に送られ、最終的にバーコード２の全体を含む多階調画像データＤａとして記憶される。
【００２４】
ここで、撮像部１４により商品１８に付されたバーコード２を撮像する場合、バーコード２に対して照明を行うが、この照明領域の例えば中央部とその周辺部との間には照明ムラが生じる。撮像部１４は、撮像面１上の中央部でバーコード２を捉えたときに照明ムラが生じないように撮像領域の方向を設定しているため、撮像部１４における撮像面１上の中央部とその周辺部との間に照明ムラが生じる。しかるに、バーコード２がオペレータによって撮像部１４における撮像面１上の周辺部に配置されると、バーコード２上に照明ムラが生じる。例えば図５はバーコード２上に照明ムラが生じた場合の多階調画像データＤａの階調レベルの変動を示す。撮像部１４における撮像面１上の階調レベルは、中央部からその周辺部になるに従って低下している。
【００２５】
しきい値可変設定部１７は、ステップ＃１において、多階調画像データＤａ中の２値化対象ラインｍ、すなわち撮像部１４によりバーコード２を撮像するときのスキャン方向と同一方向の２値化対象ラインｍに対して２値化のためのしきい値ｔｈ２を初期設定する。初期設定の方法は、例えば多階調画像データＤａの全体あるいは注目しているラインｍ単位に、平均法、Ｐタイル法、モード法、又は判別分析法等の方法を用いて求めた値ｎをしきい値ｔｈ２として初期設定する。すなわちしきい値ｔｈ２＝ｎである。  
次に、しきい値可変設定部１７は、ステップ＃２において、注目画素ｉの初期座標ｘを設定する。この注目画素ｉの初期座標ｘは、例えば図５に示す撮像部１４における撮像面１中における２値化対象ラインｍ上の最左側ｘに設定される。例えばｉ＝ｘである。
【００２６】
次に、しきい値可変設定部１７は、ステップ＃３において、図２に示すように注目画素ｉの階調レベルｐ(ｉ)と１画素前の画素ｉ−１の階調レベルｐ(ｉ-1)とのレベル差Δｄを上記式（１）を算出して求める。  
次に、しきい値可変設定部１７は、ステップ＃４において、注目画素ｉが直前の１画素前から同一色中すなわち黒バー部分中である黒色中にあるか、又は背景部分の白色中にあるかを判断するために、多階調画像データＤａにおける注目画素ｉの階調レベルｐ(ｉ)と注目画素ｉよりも例えば直前の１画素前の画素ｉ−１の階調レベルｐ(ｉ-1)とのレベル差Δｄが予め設定された境界判定レベル差ｔｈ３以下であるか否かを判定する。例えば図３に示すようにバーコード２における例えば黒バー部分から背景部分に移るとき、又は背景部分から黒バー部分に移るとき、多階調画像データＤａの階調レベルは、予め設定された境界判定レベル差ｔｈ３以上変動する。
【００２７】
この判定の結果、注目画素ｉの階調レベルｐ(ｉ)と注目画素ｉよりも例えば直前の１画素前の画素ｉ−１の階調レベルｐ(ｉ-1)とのレベル差Δｄが予め設定された境界判定レベル差ｔｈ３以下であれば、しきい値可変設定部１７は、バーコード２における黒バー部分中又は背景部分中であると判断し、ステップ＃５に移る。なお、バーコード２における黒バー部分中又は背景部分中でなければ、黒バー部分と背景部分との境界であり、多階調画像データＤａの階調レベルが予め設定された境界判定レベル差ｔｈ３以上変動するので、しきい値可変設定部１７は、ステップ＃９に移る。
【００２８】
次に、しきい値可変設定部１７は、バーコード２における黒バー部分中又は背景部分中であると判断すると、ステップ＃５において、レベル差Δｄが「０」であるか否かを判定する。この判定の結果、レベル差Δｄが「０」であれば、しきい値可変設定部１７は、しきい値ｔｈ２を変更せずに維持してステップ＃９に移り、２値化処理部１５により２値化を行わせる。すなわち、レベル差Δｄが「０」であることは、注目画素ｉの階調レベルｐ(i)と１画素前の画素ｉ−１の階調レベルｐ(i-1)とが同一であり、バーコード２に対する注目画素ｉの照明の照度と１画素前の画素の照明の照度とが同一であることを示す。
【００２９】
一方、判定の結果、レベル差Δｄが「０」でなければ、しきい値可変設定部１７は、ステップ＃６に移り、レベル差Δｄが負値（Δｄ＜０）であるか否かを判定する。この判定の結果、レベル差Δｄが負値（Δｄ＜０）であれば、しきい値可変設定部１７は、ステップ＃７に移り、上記式（２）を算出して２値化処理部１５のしきい値ｔｈ２を「１」だけ増加する。すなわち、注目画素ｉの階調レベルｐ(i)と１画素前の画素ｉ−１の階調レベルｐ(i-1)とのレベル差Δｄが負値（Δｄ＜０）であることは、注目画素ｉの階調レベルｐ(i)が１画素前の画素ｉ−１の階調レベルｐ(i-1)よりも高いことであり、バーコード２に対する注目画素ｉの照明の照度が１画素前の画素の照明の照度よりも高くなっていることを示す。
【００３０】
一方、レベル差Δｄが正値（Δｄ＞０）であれば、しきい値可変設定部１７は、ステップ＃８に移り、上記式（３）を算出してしきい値ｔｈ２を「１」だけ減少する。すなわち、注目画素ｉの階調レベルｐ(i)と１画素前の画素ｉ−１の階調レベルｐ(i-1)とのレベル差Δｄが正値（Δｄ＞０）であることは、注目画素ｉの階調レベルｐ(i)が１画素前の画素ｉ−１の階調レベルｐ(i-1)よりも低いことであり、バーコード２に対する注目画素ｉの照明の照度が１画素前の画素の照明の照度よりも低くなっていることを示す。
【００３１】
この結果、しきい値可変設定部１７は、図５に示すように注目画素ｉの階調レベルｐ(i)と１画素前の画素ｉ−１の階調レベルｐ(i-1)とのレベル差Δｄが負値（Δｄ＞０）であってバーコード２に対する注目画素ｉの照明の照度が１画素前の画素の照明の照度よりも高くなるに従って２値化処理部１５のしきい値ｔｈ２を「１」ずつ増加する。  
これに対してしきい値可変設定部１７は、注目画素ｉの階調レベルｐ(i)と１画素前の画素ｉ−１の階調レベルｐ(i-1)とのレベル差Δｄが正値（Δｄ＜０）であってバーコード２に対する注目画素ｉの照明の照度が１画素前の画素の照明の照度よりも低くなるに従ってしきい値ｔｈ２を「１」ずつ減少する。なお、バーコード２に対する注目画素ｉの照明の照度と１画素前の画素の照明の照度とが同一であれば、しきい値可変設定部１７は、２値化処理部１５のしきい値ｔｈ２を変更しない。
【００３２】
次に、２値化処理部１５は、ステップ＃９において、しきい値可変設定部１７によって変更されなかったしきい値ｔｈ２、増加又は減少されたしきい値ｔｈ２を用いて撮像部１４の撮像により取得された多階調画像データＤａに対して２値化処理を行い、この２値化データＤｂを取得する。  
次に、デコード部１６は、２値化処理部６により取得された２値化データＤｂからバーコード２に含まれる情報を読み取る。すなわち、デコード部１６は、２値化データＤｂに対して例えば多方向に走査することによりバーコード２の領域を走査し、この走査により得られる２値化データＤｂの連側幅を検証してバーコード２のデコードを行う。このバーコード２のデコード結果は、ＣＰＵ１０の指令により通信Ｉ／Ｆ１３を通して例えばＰＯＳシステム等の外部機器に送られる。
【００３３】
このように上記一実施の形態によれば、例えば商品１８に付されたバーコード２を撮像部１４により撮像して多階調画像データＤａを取得し、この多階調画像データＤａに対してしきい値ｔｈ２を用いて２値化し、この２値化データＤｂからバーコード２に含まれる商品１８の情報を読み取る場合、多階調画像データＤａにおける階調レベルの変動に応じてしきい値ｔｈ２を可変設定し、この可変設定したしきい値ｔｈ２を用いて多階調画像データＤａを２値化する。  
これにより、バーコード２が例えばオペレータによって撮像部１４における撮像面１上の周辺部に配置されると、バーコード２上に照明ムラが生じるが、この照明ムラが生じても、この照明ムラの照度に応じて適切なしきい値ｔｈ２に変更することができ、撮像時の環境条件、特に照明の照度ムラの影響を受けずに安定して正確にバーコード２を２値化できる。この結果、２値化により取得された２値化データＤｂからバーコード２に含まれる情報を正確に読み取ることができる。
【００３４】
オペレータは、商品１８に付けられているバーコード２を撮像部１４に向けて配置すると共に、撮像部１４のフォーカス位置にバーコード２が配置されるように商品１８を撮像部１４に対して近付けたり遠ざけたりするが、バーコード２が撮像部１４の撮像面１上の中央部に必ず配置されるとは限らない。バーコード２が撮像部１４の撮像面１上の周辺部に配置されることも生じる。このような場合でもバーコード２の２値化が不可能になることはない。
【００３５】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。  
しきい値可変設定部１７は、注目画素ｉの階調レベルｐ(i)と１画素前の画素ｉ−１の階調レベルｐ(i-1)とのレベル差Δｄを算出しているが、これに限らず、注目画素ｉとこの注目画素ｉよりも例えば２画素前等の複数画素前の画素との各階調レベルのレベル差Δｄを算出してもよい。  
上記一実施の形態では、バーコード２に適用した場合について説明したが、これに限らず、２次元コードとして例えばＱＲコードを読み取るときのしきい値を変更設定することにも適用可能である。
【００３６】
黒バー部分と背景部分との境界部は、注目画素ｉの直前２画素前から黒バー部分中又は背景部分中にあるかを判断しているが、注目画素ｉの直前２画素前に限らず、例えば直前３画素以上前の画素から黒バー部分中又は背景部分中にあるかを判断してもよい。
【符号の説明】
【００３７】
１：撮像装置の撮像面、２：バーコード、１０：ＣＰＵ１０１：ＲＯＭ、１２：ＲＡＭ、１３：通信インタフェース（通信Ｉ／Ｆ）、１４：撮像部、１５：２値化処理部、１６：デコード部、１７：しきい値可変設定部、１８：商品。
【図１】
2011159317.tif 000003
【図２】
2011159317.tif 000004
【図３】
2011159317.tif 000005
【図４】
2011159317.tif 000006
【図５】
2011159317.tif 000007
【図６】
2011159317.tif 000008