(57)【要約】【課題】バーコードの読み取り精度を向上させること。【解決手段】入力されたバーコードの画像の輝度値の分布に基づいて、前記バーコードの太いバーの幅と細いバーの幅との比を算出し、第１のキャラクタに対して規定された輝度値の第１の分布のサンプル数を前記比に基づいて変更して第２の分布を生成し、前記第２の分布のサンプル数を、前記バーコードの画像から得られる１つのキャラクタ分の輝度値の分布のサンプル数に変更して第３の分布を生成し、前記第３の分布と、前記１つのキャラクタ分の輝度値の分布との相関に基づいて、前記１つのキャラクタ分の輝度値の分布が、前記第１のキャラクタを示すか否かを判定する。【選択図】図５
2018049534.tif 000002
【特許請求の範囲】
【請求項１】
入力されたバーコードの画像の輝度値の分布に基づいて、前記バーコードの太いバーの幅と細いバーの幅との比を算出し、
第１のキャラクタに対して規定された輝度値の第１の分布のサンプル数を前記比に基づいて変更して第２の分布を生成し、
前記第２の分布のサンプル数を、前記バーコードの画像から得られる１つのキャラクタ分の輝度値の分布のサンプル数に変更して第３の分布を生成し、
前記第３の分布と、前記１つのキャラクタ分の輝度値の分布との相関に基づいて、前記１つのキャラクタ分の輝度値の分布が、前記第１のキャラクタを示すか否かを判定する、
処理をコンピュータが実行することを特徴とするバーコード読取方法。
【請求項２】
前記第２の分布を生成する処理は、前記第２の分布の各輝度値を、前記第１の分布の各輝度値に基づく線形補間によって算出し、
前記第３の分布を生成する処理は、前記第３の分布の各輝度値を、前記第２の分布の各輝度値に基づく線形補間によって算出する、
ことを特徴とする請求項１記載のバーコード読取方法。
【請求項３】
前記比を算出する処理は、前記バーコードの画像の輝度値の分布における先頭のキャラクタ及び末尾のキャラクタの少なくともいずれか一方に対応する輝度値の分布に基づいて、前記比を算出する、
ことを特徴とする請求項１又は２記載のバーコード読取方法。
【請求項４】
入力されたバーコードの画像の輝度値の分布に基づいて、前記バーコードの太いバーの幅と細いバーの幅との比を算出する算出部と、
第１のキャラクタに対して規定された輝度値の第１の分布のサンプル数を前記比に基づいて変更して第２の分布を生成する第１の生成部と、
前記第２の分布のサンプル数を、前記バーコードの画像から得られる１つのキャラクタ分の輝度値の分布のサンプル数に変更して第３の分布を生成する第２の生成部と、
前記第３の分布と、前記１つのキャラクタ分の輝度値の分布との相関に基づいて、前記１つのキャラクタ分の輝度値の分布が、前記第１のキャラクタを示すか否かを判定する判定部と、
を有するバーコード読取装置。
【請求項５】
入力されたバーコードの画像の輝度値の分布に基づいて、前記バーコードの太いバーの幅と細いバーの幅との比を算出し、
第１のキャラクタに対して規定された輝度値の第１の分布のサンプル数を前記比に基づいて変更して第２の分布を生成し、
前記第２の分布のサンプル数を、前記バーコードの画像から得られる１つのキャラクタ分の輝度値の分布のサンプル数に変更して第３の分布を生成し、
前記第３の分布と、前記１つのキャラクタ分の輝度値の分布との相関に基づいて、前記１つのキャラクタ分の輝度値の分布が、前記第１のキャラクタを示すか否かを判定する、
処理をコンピュータに実行させることを特徴とするバーコード読取プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード読取方法、バーコード読取装置、及びバーコード読取プログラムに関する。
【背景技術】
【０００２】
機器の小型化が日進月歩で進んでいる。例えば、ウェアラブル機器の開発が盛んになってきている。ウェアラブル機器では小型化が重要な課題であり、スマートフォンアプリや専用端末のような高い性能よりも付け心地が優先される場合も多い。そのため、ウェアラブル機器の撮像素子は、より小型化（低解像度化）される必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−３０１４６３号公報
【特許文献２】特開２００１−１６７２２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
低解像度化された撮像素子を有する機器で１次元バーコードを読み取ろうとすると、十分な解像度を得ることができず、バーコードの読み取り精度が低下する場合が有る。
【０００５】
図１は、従来手法でバーコードを読み取った場合の解像度が与える影響を示す図である。従来技術では印刷されたバーコードに光を当て、その反射率（あるいは撮影画像の輝度）の分布が２値化されてバーコードの太さ情報が取得される。
【０００６】
図１において（１）は、十分な解像度（サンプリングデータ）が有る場合の例であり、（２）は、は解像度が（１）の半分である場合の例である。
【０００７】
バーコードのデコードにおいては、例えば、山（又は谷）ごとの極大値及び極小値の平均を閾値とし、各サンプルの輝度値が白又は黒に分類される。その結果、例えば、（１）において、３番目から８番目までの６サンプルは平均より低いため黒に分類され、９番目から１４番目までの６サンプルは平均より高いため白に分類される。同様にして、各サンプルが白又は黒に分類されると、（１）において白又は黒の幅（サンプル数）は、順番に、６、６、３、３、３、２、２となる。これらの幅の平均を求めると、（６＋６＋３＋３＋３＋２＋２）／７＝３．５７である。３．５７以上を太いバー、３．５７未満を細いバーと判定すると、（１）は、太太細細細細細にデコードされる。
【０００８】
（２）についても同様の手順でデコードを行うと、各白又は黒の幅（サンプル数）は、３、３、２、１、２、１、１であり、その平均は（３＋３＋２＋１＋２＋１＋１）／７＝１．８６である。１．８６を閾値として、各幅をデコードすると、太太太細太細細となり、（１）に一致しない。このように、小型化により性能（解像度）が制限された環境下では、誤判定を起こす可能性が高くなる。
【０００９】
そこで、本発明は、バーコードの読み取り精度を向上させることを目的とする。
【課題を解決するための手段】
【００１０】
一つの態様では、バーコード読取方法は、入力されたバーコードの画像の輝度値の分布に基づいて、前記バーコードの太いバーの幅と細いバーの幅との比を算出し、第１のキャラクタに対して規定された輝度値の第１の分布のサンプル数を前記比に基づいて変更して第２の分布を生成し、前記第２の分布のサンプル数を、前記バーコードの画像から得られる１つのキャラクタ分の輝度値の分布のサンプル数に変更して第３の分布を生成し、前記第３の分布と、前記１つのキャラクタ分の輝度値の分布との相関に基づいて、前記１つのキャラクタ分の輝度値の分布が、前記第１のキャラクタを示すか否かを判定する、処理をコンピュータが実行する。
【発明の効果】
【００１１】
一側面として、バーコードの読み取り精度を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】従来手法でバーコードを読み取った場合の解像度が与える影響を示す図である。
【図２】第１の実施の形態におけるバーコード読取装置のハードウェア構成例を示す図である。
【図３】ＮＷ７のコード表を示す図である。
【図４】ＮＷ７のバーコードの内訳を説明するための図である。
【図５】第１の実施の形態におけるバーコード読取装置の機能構成例を示す図である。
【図６】バーコード画像における水平方向を説明するための図である。
【図７】ＮＷ比が異なる場合の誤判定を説明するための図である。
【図８】バーコード読取装置が実行する処理手順の一例を説明するためのフローチャートである。
【図９】スタートコードに対応する部分輝度値列の一例を示す図である。
【図１０】基準コードのサンプル数の変更に伴う各輝度値の線形補間処理の処理手順の一例を説明するためのフローチャートである。
【図１１】ＮＷ比補間２：５基準コードの一例を示す図である。
【図１２】比較用補間２：５基準コードの一例を示す図である。
【図１３】部分輝度値列と比較用補間２：５基準コードとの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面に基づいて本発明の実施の形態を説明する。図２は、第１の実施の形態におけるバーコード読取装置のハードウェア構成例を示す図である。図２のバーコード読取装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、インタフェース装置１０５、表示装置１０６、及び撮像装置１０７等を有する。
【００１４】
バーコード読取装置１０での処理を実現するプログラムは、記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１５】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってバーコード読取装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。
【００１６】
撮像装置１０７は、バーコードを撮像するための撮像素子を含む装置である。
【００１７】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard Disk Drive）又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【００１８】
また、バーコード読取装置１０は、ウェアラブル機器、スマートフォン、携帯電話等であってもよいし、汎用的なコンピュータであってもよい。バーコード読取装置１０が汎用的なコンピュータである場合、バーコード読取装置１０は、撮像装置１０７を有していなくてもよい。この場合、他の機器によって撮像されたバーコードの画像が、バーコード読取装置１０に入力されてもよい。
【００１９】
本実施の形態では、ＮＷ７規格に準拠するバーコードを対象とする。図３は、ＮＷ７のコード表を示す図である。ＮＷ７において表現可能なキャラクタは、０〜９の数字と、６個の特殊記号と、４個のスタートコード又はストップコードとが含まれる。また、なお、０〜９の数字と６個の特殊記号とを、以下「文字」という。
【００２０】
図３の（１）には、１６個の各文字のビット配列（７ビットコード）が示されており、（２）には、スタートコード又はストップコードのビット配列（７ビットコード）が示されている。各７ビットコードにおいて、０は、細いバーを示し、１は、太いバーを示す。文字について、太いバーの数と細いバーの数との比は、２：５又は３：４の２種類である。スタートコード又はストップコードについて、太いバーの数と細いバーの数との比は、３：４である。すなわち、各キャラクタは、７ビットで表現される。このことは、各キャラクタが７本のバーで表現されることを意味する。
【００２１】
図４は、ＮＷ７のバーコードの内訳を説明するための図である。図４に示されるように、ＮＷ７のバーコードは、スタートコードで始まり、１以上の文字を含み、ストップコードで終了する。すなわち、スタートコードは、先頭のキャラクタであり、ストップコードは、末尾のキャラクタである。各キャラクタは、４本の黒バーと３本の白バーの７本のバーで表現され、両端は黒バーである。したがって、各キャラクタの黒バーと白バーとの並び順は、黒白黒白黒白黒で同じであり、各バーの太さによって、各キャラクタが区別される。
【００２２】
なお、細いバーの幅Ｎと太いバーの幅Ｗとの比（Ｗ／Ｎ）をＮＷ比という。ＮＷ７において、ＮＷ比は、２〜３の間であればいずれの値であってもよい。但し、ＮＷ比は、一つのバーコードにおいて一定である。
【００２３】
図５は、第１の実施の形態におけるバーコード読取装置の機能構成例を示す図である。図５において、バーコード読取装置１０は、バーコード入力部１１、ＮＷ比算出部１２、ＮＷ比補間部１３、比較用補間部１４、及びキャラクタ判定部１５等を有する。これら各部は、バーコード読取装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。バーコード読取装置１０は、また、基準コード記憶部１６を利用する。基準コード記憶部１６は、例えば、補助記憶装置１０２、又はバーコード読取装置１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００２４】
基準コード記憶部１６には、ＮＷ７で表現可能な１６個のそれぞれの文字ごとに基準コードが記憶されている。基準コードとは、文字ごとに予め規定された輝度値の分布を示す配列である。基準コードにおいて、輝度値は、０又は２５５である。０は、黒を示し、２５５は、白を示す。本実施の形態では、基準コードのＮＷ比は３であるとする。したがって、太いバーの数と細いバーの数との比が２：５である文字（以下「２：５文字」という。）の基準コード（以下、「２：５基準コード」という。）を画素単位で表現するには、最低で２×３＋５×１＝１１画素必要である。よって、２：５基準コードの輝度値のサンプル数（要素数）は、１１である。また、太いバーの数と細いバーの数との比が３：４である文字（以下、「３：４文字」という。）の基準コード（以下、「３：５基準コード」という。）を画素単位で表現するには、３×３＋４×１＝１３画素必要である。よって、３：５基準コードの輝度値のサンプル数（要素数）は、１３である。なお、２：５基準コードに対応する文字は、図３の（１）において、０〜９の数字と、「−」及び「＄」とである。また、３：４基準コードに対応する文字は、図３の（１）において、「／」、「：」、「＋」、「．」である。
【００２５】
例えば、文字「３」の７ビットコードは、図３の（１）より、「１１０００００」である。細いバーを１つの輝度値で表現し、ＮＷ比が３の場合、太いバーは、３つの輝度値で表現される。また、上記したように、白いバーと黒いバーとの並び順は、全ての文字について「黒白黒白黒白黒」である。したがって、文字「３」の２：５基準コードは、｛（０，０，０），（２５５，２５５，２５５），０，２５５，０，２５５，０｝である。なお、当該２：５基準コードにおいて、（）は、便宜上、太いバーに対応する部分を示す。
【００２６】
バーコード入力部１１は、撮像装置１０７を制御して、デコード対象のバーコードの画像（以下、「バーコード画像」という。）を入力する。厳密には、バーコード画像における、水平方向の各画素の輝度値の分布（配列）が入力される。
【００２７】
図６は、バーコード画像における水平方向を説明するための図である。図６に示されるように、バーコード画像における水平方向とは、バーコードの各バーと略直交する方向である。なお、バーコードのバーには、黒バーと白バーとが有る。黒バーは、黒いバーである。白バーとは、白いバーである。また、輝度値の分布における各サンプルの順番は、矢印の方向に従った順番である。以下、入力された輝度値の分布を「入力輝度値列」という。入力輝度値列のサンプル数（要素数）は、撮像装置の解像度に依存する。すなわち、解像度が低い程、入力輝度値列のサンプル数は少なくなり、解像度が高いほど、入力輝度値列のサンプル数は多くなる。
【００２８】
ＮＷ比算出部１２は、入力輝度値列のＮＷ比を算出する。ＮＷ比補間部１３は、各文字の基準コードのサンプル数を、ＮＷ比算出部１２によって算出されたＮＷ比に基づいて変更する。すなわち、基準コードは、ＮＷ比が３であるところ、デコード対象のバーコード画像（入力輝度値列）のＮＷ比は、３であるとは限らない。そして、ＮＷ比が異なる基準コードに基づいて入力輝度値列がデコードされると、誤判定が発生する可能性が有る。
【００２９】
図７は、ＮＷ比が異なる場合の誤判定を説明するための図である。図７は、ＮＷ比が１：３のバーコードと、ＮＷ比が１：２のバーコードとの輝度値の分布が示されている。このように、ＮＷ比が異なると、同じ文字に対するバーコードであっても輝度値の分布が異なる。したがって、バーコード画像とＮＷ比が異なる基準コードに基づいてバーコード画像の読み取り（デコード）を行うと、誤判定が発生する可能性が高くなる。そこで、ＮＷ比補間部１３は、基準コードと入力輝度値列との間のＮＷ比の違いを解消するために、入力輝度値列のＮＷ比に基づいて、基準コードのサンプル数を変更する。なお、サンプル数の変更後の基準コードの各輝度値は、変更前の各輝度値に基づく線形補間によって算出される。
【００３０】
比較用補間部１４は、入力輝度値列から１つのキャラクタ分の輝度値の分布を示す配列（以下、「部分輝度値列」という。）を順番に取り出して、部分輝度値列ごとにデコードを行う過程において、ＮＷ比補間部１３によってサンプル数が変更された各基準コードのサンプル数（変更後のサンプル数）を、各部分輝度値列のサンプル数に一致するように変更する。なお、サンプル数の変更後の基準コードの各輝度値は、変更前の各輝度値に基づく線形補間によって算出される。
【００３１】
キャラクタ判定部１５は、比較用補間部１４によって線形補間された基準コードに基づいて、各部分輝度値列が表現する文字を判定する。
【００３２】
以下、バーコード読取装置１０が実行する処理手順について説明する。図８は、バーコード読取装置が実行する処理手順の一例を説明するためのフローチャートである。
【００３３】
ステップＳ１０１において、バーコード入力部１１は、撮像装置１０７によって撮像されたバーコード画像の水平方向の輝度値の分布を示す配列である入力輝度値列を入力する。
【００３４】
続いて、ＮＷ比算出部１２は、入力輝度値列からスタートコードに対応する部分輝度値列を取得する（切り出す）（Ｓ１０２）。
【００３５】
図９は、スタートコードに対応する部分輝度値列の一例を示す図である。図９において、縦軸は輝度値に対応し、横軸は、サンプル数（部分輝度値列の要素数）に対応する。図９では、スタートコードに対応する部分輝度値列のサンプル数が１５である例が示されている。なお、図９では、便宜上、隣り合う輝度値が線分によって接続されているが、部分輝度値列は、離散値の配列である。
【００３６】
続いて、ＮＷ比算出部１２は、スタートコードの部分輝度値列に基づいて、入力輝度値列のＮＷ比（以下、「入力ＮＷ比」という。）を算出する（Ｓ１０３）。入力ＮＷ比は、例えば、次のように算出される。例えば、黒バー及び白バーを区別するための閾値を１２７とする。ここでは、輝度値の範囲を０〜２５５とした場合の中間値が閾値とされているが、公知の他の方法によって閾値が決定されてもよい。続いて、１２７以上の各区間と１２７未満の各区間とのそれぞれの幅を求める。図９では、各区間がＷ０〜Ｗ６によって示されている。
【００３７】
図３（２）から明らかなように、スタートコードは太いバーが３本、細いバーが４本である。したがって、ＮＷ比算出部１２は、Ｗ０からＷ６のうち、幅の太い順に上位３本を太いバーに分類する。ＮＷ比算出部１２は、このようにして、Ｗ０〜Ｗ６までを、太いバー又は細いバーに分類する。図９の例では、Ｗ０、Ｗ１、Ｗ４が太いバーに分類され、それ以外が細いバーに分類される。
【００３８】
続いて、太いバーの幅の平均と、細いバーの幅の平均と算出される。すなわち、（Ｗ０＋Ｗ１＋Ｗ４）／３＝Ｗａｖｅが太いバーの幅の平均であり、（Ｗ２＋Ｗ３＋Ｗ５＋Ｗ６）／４＝Ｎａｖｅが細いバーの幅の平均である。ＷａｖｅとＮａｖｅの比（Ｗａｖｅ／Ｎａｖｅ）が入力ＮＷ比として算出される。
【００３９】
なお、入力ＮＷ比は、ストップコードに対応する部分輝度値列に基づいて算出されてもよい。
【００４０】
ステップＳ１０３に続いて、ＮＷ比補間部１３は、入力ＮＷ比と基準コードのＮＷ比（以下、「基準ＮＷ比」という。）とを比較する（Ｓ１０４）。なお、本実施の形態において、基準ＮＷ比は、３であり、予め定数として設定されている。入力ＮＷ比と基準ＮＷとが一致する場合（Ｓ１０４でＮｏ）、ステップＳ１１０に進む。
【００４１】
一方、入力ＮＷ比と基準コードのＮＷ比とが異なる場合（Ｓ１０４でＹｅｓ）、ＮＷ比補間部１３は、入力ＮＷ比に基づいて、２：５文字及び３：４文字のそれぞれの表現に必要な最低のサンプル数を算出する（Ｓ１０５）。例えば、入力ＮＷ比が１．６だとする。なお、ＮＷ７のＮＷ比の範囲は２〜３であるが、ここでは、バーコード画像の解像度の不足等により、入力ＮＷ比が当該範囲より小さかったとする。但し、入力ＮＷ比が当該範囲内、又は当該範囲より大きい場合であっても、以下に説明する処理は行われる。
【００４２】
この場合、２：５文字の表現に必要なサンプル数は、以下の通りである。
２×１．６＋５×１＝８．２≒８（四捨五入により）
また、３：４文字の表現に必要なサンプル数は、以下の通りである。
３×１．６＋４×１＝７．８≒８（四捨五入により）
なお、本実施の形態では、２：５文字の表現に必要なサンプル数と、３：４文字の表現に必要なサンプル数とが一致しているが、両者は必ずしも一致するとは限らない。したがって、本実施の形態でも、両者が一致しない場合をも考慮した処理手順を説明する。
【００４３】
続いて、ＮＷ比補間部１３は、２：５文字に必要なサンプル数について、２：５基準コードのサンプル数以上の最小の倍数を算出する（Ｓ１０６）。本実施の形態において、基準ＮＷは３である。したがって、２：５基準コードに必要なサンプル数（２：５基準コードの表現に必要な最低のサンプル数）＝２×３＋５×１＝１１である。一方、上記したように、入力ＮＷ比に基づく、２：５文字に必要なサンプル数は、８である。したがって、ステップＳ１０６では、８の倍数のうち、１１以上の最小の倍数である１６が算出される。なお、仮に、入力ＮＷ比に基づく、２：５文字に必要なサンプル数が１１以上であれば、当該サンプル数が、２：５基準コードのサンプル数以上の最小の倍数となる。
【００４４】
続いて、ＮＷ比補間部１３は、基準コード記憶部１６に記憶されている各２：５基準コードのサンプル数を、１６に変更（拡張）し、サンプル数の変更後の各輝度値を、サンプル数の変更前の２：５基準コードの各輝度値に基づく線形補間によって算出する（Ｓ１０７）。
【００４５】
ステップＳ１０７の詳細について説明する。図１０は、基準コードのサンプル数の変更に伴う各輝度値の線形補間処理の処理手順の一例を説明するためのフローチャートである。なお、図１０において、サンプル数の変更前の基準コードのサンプル数は、Ｘである。また、変更先のサンプル数は、Ｙである。
【００４６】
ステップＳ２０１において、ＮＷ比補間部１３は、ＸとＹとの最小公倍数Ｚを算出する（Ｓ２０１）。すなわち、基準コードのサンプル数Ｘが、当該最小公倍数に基づいて拡張される。上記の例において、Ｘ＝１１、Ｙ＝１６である。したがって、Ｚ＝１１×１６＝１７６である。
【００４７】
続いて、ＮＷ比補間部１３は、Ｚ個の各輝度値を、基準コードのＸ個の各輝度値に基づく線形補間によって算出する（Ｓ２０２）。線形補間の方法は一般的な方法を用いる。例えば、基準コードのＮ番目の輝度値が０であり、Ｎ＋１番目の輝度値が、２５５であれば、ＮとＮ＋１の間を１６等分して、Ｎ×１６〜Ｎ×１６＋１５番目までが、０及び２５５に基づいて線形補間される。
【００４８】
具体的には、Ｎ×１６番目に０が割り当てられ、Ｎ×１６＋１５番目に２５５が割り当てられる。そして、３×１６＋ｎ（ｎは１〜１４）番目の輝度値が、（２５５／１６）×ｎによって線形補間される。例えば、ｎ＝２であれば、２５５／１６×２＝３１．９である。このようにして、１７６個の輝度値が算出される。
【００４９】
続いて、ＮＷ比補間部１３は、Ｚ個の輝度値から、等分にＹ個の輝度値を取り出す（Ｓ２０３）。取り出されたＹ個の輝度値の分布（配列）が、サンプル数がＹ個に変更された基準コードである。
【００５０】
具体的には、１７６個の輝度値の中から１１刻みで、０、１１、２２、３３、４４、５５、６６、７７、８８、９９、１１０、１２１、１３２、１４３、１５４、１６５番目の輝度値が取り出される。以下、入力ＮＷ比に基づいてサンプル数が変更された２：５基準コードを、「ＮＷ比補間２：５基準コード」という。
【００５１】
なお、上記では、ステップ２０１において、ＸとＹとの最小公倍数が算出される例を示したが、Ｘ×Ｙが算出されてもよい。
【００５２】
図１１は、ＮＷ比補間２：５基準コードの一例を示す図である。図１１において、実線は、線形補間前の基準コードを示し、破線は、ＮＷ比補間２：５基準コードを示す。このように、サンプル数が１１であった基準コードが、サンプル数が１６の基準コードに変更される。なお、図１１の基準コードは、文字「３」に対応する基準コードである。
【００５３】
図８のステップＳ１０７では、１２個の２：５基準コードのそれぞれについて実行される。
【００５４】
続いて、ＮＷ比補間部１３は、２：５文字に必要なサンプル数について、２：５基準コードのサンプル数以上の最小の倍数を算出する（Ｓ１０８）。本実施の形態において、基準ＮＷは３である。したがって、３：４基準コードに必要なサンプル数（３：４基準コードの表現に必要な最低のサンプル数）＝３×３＋４×１＝１３である。一方、上記したように、入力ＮＷ比に基づく、３：４文字に必要なサンプル数は、８である。したがって、ステップＳ１０８では、８の倍数のうち、１３以上の最小の倍数である１６が算出される。なお、仮に、入力ＮＷ比に基づく、３：４文字に必要なサンプル数が、１３以上であれば、当該サンプル数が、３：４基準コードのサンプル数以上の最小の倍数となる。
【００５５】
続いて、ＮＷ比補間部１３は、基準コード記憶部１６に記されている各３：４基準コードのサンプル数を、１６に変更（拡張）し、サンプル数の変更後の各輝度値を、サンプル数の変更前の３：４基準コードの各輝度値に基づく線形補間によって算出する（Ｓ１０９）。すなわち、４つの３：４基準コードについて、図１０において説明した処理手順が実行されて、ＮＷ比補間３：４基準コードが生成される。
【００５６】
なお、続く、ステップＳ１１０以降の説明において、ステップＳ１０５〜Ｓ１０９が実行されていない場合、当初の基準コードが「ＮＷ比補間２：５基準コード」又は「ＮＷ比補間３：４基準コード」に該当する。
【００５７】
ステップＳ１１０において、比較用補間部１４は、入力輝度値列から、次の１キャラクタ分に対応する部分輝度値列を取得する（Ｓ１１０）。なお、次のキャラクタに対応する部分輝度値列は、公知の方法に基づいて特定可能である。例えば、閾値に基づいて判別される黒バー及び白バーの数が７本である部分が、部分輝度値列として特定される。
【００５８】
続いて、比較用補間部１４は、当該部分輝度値列が入力輝度値列の末尾であるか（すなわち、ストップコードに対応する部分輝度値列であるか）否かを判定する（Ｓ１１１）。当該部分輝度値列が入力輝度値列の末尾でない場合（Ｓ１１１でＮｏ）、比較用補間部１４は、各ＮＷ比補間２：５基準コードのサンプル数を、当該部分輝度値列のサンプル数に変更し、サンプル数の変更後の各輝度値を、サンプル数の変更前の各輝度値に基づいて線形補間する（Ｓ１１２）。この場合、ＮＷ比補間２：５基準コードのサンプル数がＸとされ、当該部分輝度値列のサンプル数がＹとされて、図１０において説明した処理手順が実行される。なお、当該線形補間後のＮＷ比補間２：５基準コードを、以下、「比較用補間２：５基準コード」という。
【００５９】
すなわち、ＮＷ比補間２：５基準コードのサンプル数は、入力輝度値列のサンプル数に一致しているが、現在処理対象の部分輝度値列のサンプル数に一致していない可能性が有る。したがって、ＮＷ比補間２：５基準コードのサンプル数を、当該部分輝度値列のサンプル数に合わせ、両者を比較し易くするために、比較用補間２：５基準コードが生成される。
【００６０】
図１２は、比較用補間２：５基準コードの一例を示す図である。図１２では、ＮＷ比補間２：５基準コードのサンプル数が１６であり、当該部分輝度値列のサンプル数が１３であった場合の例が示されている。図１２に示されるように、比較用補間２：５基準コードのサンプル数が１３に変更されている。
【００６１】
続いて、比較用補間部１４は、各ＮＷ比補間３：４基準コードのサンプル数を、当該部分輝度値列のサンプル数に変更し、サンプル数の変更後の各輝度値を、サンプル数の変更前の各輝度値に基づいて線形補間する（Ｓ１１３）。この場合、ＮＷ比補間３：４基準コードのサンプル数がＸとされ、当該部分輝度値列のサンプル数がＹとされて、図１０において説明した処理が実行される。その結果、各ＮＷ比補間３：４基準コードについて、比較用補間３：４基準コードが生成される。なお、比較用補間３：４基準コードのサンプル数は、比較用補間２：５基準コードのサンプル数に一致する。
【００６２】
続いて、キャラクタ判定部１５は、当該部分輝度値列と、各比較用補間２：５基準コード及び各比較用補間３：４基準コードとを比較して、当該部分輝度値列が表現する文字を判定する（Ｓ１１４）。例えば、当該部分輝度値列について、各比較用補間２：５基準コード及び各比較用補間３：４基準コードとの相関が求められ、最も相関が高い比較用補間２：５基準コード又は比較用補間３：４基準コードに対応する文字が、当該部分輝度値列の表現する文字であると判定されてもよい。相関は、最小二乗法等、公知の方法を用いて求められればよい。
【００６３】
図１３は、部分輝度値列と比較用補間２：５基準コードとの一例を示す図である。図１３に示されるように、比較用補間２：５基準コードは、当初の２：５基準コードに比べて、部分輝度値列に近い輝度値の分布を有するため、各部分輝度値列が表現する文字の判定精度の劣化を回避することができる。
【００６４】
ステップＳ１１０以降は、入力輝度値列の末尾が検出されるまで（Ｓ１１１）、各部分輝度値列について実行される。ここで、各部分輝度値列のサンプル数は、共通する傾向に有る。したがって、処理対象の部分輝度値列とサンプル数が一致する比較用補間２：５基準コード及び比較用補間３：４基準コードが既に生成されている場合、ステップＳ１１２及びＳ１１３は実行されなくてもよい。
【００６５】
なお、エンドコードについても、ＮＷ比補間基準コード及び比較用補間基準コードが生成されてもよい。この場合、ステップＳ１１１において、比較用補間基準コードとの相関が最も高い部分輝度値列が検出されたことで、入力輝度値列の末尾が判定されてもよい。
【００６６】
上述したように、第１の実施の形態によれば、入力されたバーコード画像のＮＷ比に基づいて線形補間され、更に、当該バーコード画像の各キャラクタに対応する部分のサンプル数に合わせて線形補間された基準コードに基づいて、バーコード画像がデコードされる。その結果、小型でスペックの低い（低解像度な）撮像素子が用いられた場合において、１次元バーコードの読み取り性能を向上させることができる。
【００６７】
次に、第２の実施の形態について説明する。第２の実施の形態では第１の実施の形態と異なる点について説明する。第２の実施の形態において、特に言及されない点については、第１の実施の形態と同様でもよい。
【００６８】
第２の実施の形態では、入力ＮＷ比の算出方法が第１の実施の形態と異なる。すなわち、第２の実施の形態において、ＮＷ比算出部１２は、入力輝度値列のスタートコードに対応する部分輝度値列と、ストップコードに対応する部分輝度値列とに基づいて、入力ＮＷ比を算出する。
【００６９】
例えば、スタートコードに対応する部分輝度値列の白黒各区間の幅がＷＬ０、ＷＬ１、ＷＬ２、ＷＬ３、ＷＬ４、ＷＬ５、ＷＬ６であるとする。また、ストップコードに対応する部分輝度値列の白黒各区間の幅が、ＷＲ０、ＷＲ１、ＷＲ２、ＷＲ３、ＷＲ４、ＷＲ５、ＷＲ６であるとする。スタートコード、ストップコード毎に太いバーと細いバーとを分類する方法は、第１の実施の形態と同様である。
【００７０】
第２の実施の形態では、二つの太いバーの幅の平均は、スタートコード及びストップコードの太いバーに基づいて算出され、細いバーの幅の平均は、スタートコード及びストップコードの細いバーに基づいて算出される。すなわち、ＷＬ０、ＷＬ１、ＷＬ４、ＷＲ０、ＷＲ１、ＷＲ５が太いバーに分類されたとすると、Ｗａｖｅ＝（ＷＬ０＋ＷＬ１＋ＷＬ４＋ＷＲ０＋ＷＲ１＋ＷＲ５）／６であり、Ｎａｖｅ＝、（ＷＬ２＋ＷＬ３＋ＷＬ５＋ＷＬ６＋ＷＲ２＋ＷＲ３＋ＷＲ４＋ＷＲ６）である。入力ＮＷ比は、Ｗａｖｅ／Ｎａｖｅである。
【００７１】
なお、スタートコード又はストップコード以外の部分を用いて入力ＮＷ比が算出されてもよい。
【００７２】
また、上記各実施の形態は、ＮＷ７以外の規格のバーコードに対して適用されてもよい。
【００７３】
なお、上記各実施の形態において、基準コードは、第１の分布の一例である。ＮＷ比補間２：５基準コード及びＮＷ比補間３：４基準コードは、第２の分布の一例である。比較用補間２：５基準コード及び比較用補間３：４基準コードは、第３の分布の一例である。
【００７４】
ＮＷ比算出部１２は、算出部の一例である。ＮＷ比補間部１３は、第１の生成部の一例である。比較用補間部１４は、第２の生成部の一例である。キャラクタ判定部１５は、判定部の一例である。
【００７５】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００７６】
以上の説明に関し、更に以下の項を開示する。
（付記１）
入力されたバーコードの画像の輝度値の分布に基づいて、前記バーコードの太いバーの幅と細いバーの幅との比を算出し、
第１のキャラクタに対して規定された輝度値の第１の分布のサンプル数を前記比に基づいて変更して第２の分布を生成し、
前記第２の分布のサンプル数を、前記バーコードの画像から得られる１つのキャラクタ分の輝度値の分布のサンプル数に変更して第３の分布を生成し、
前記第３の分布と、前記１つのキャラクタ分の輝度値の分布との相関に基づいて、前記１つのキャラクタ分の輝度値の分布が、前記第１のキャラクタを示すか否かを判定する、
処理をコンピュータが実行することを特徴とするバーコード読取方法。
（付記２）
前記第２の分布を生成する処理は、前記第２の分布の各輝度値を、前記第１の分布の各輝度値に基づく線形補間によって算出し、
前記第３の分布を生成する処理は、前記第３の分布の各輝度値を、前記第２の分布の各輝度値に基づく線形補間によって算出する、
ことを特徴とする付記１記載のバーコード読取方法。
（付記３）
前記比を算出する処理は、前記バーコードの画像の輝度値の分布における先頭のキャラクタ及び末尾のキャラクタの少なくともいずれか一方に対応する輝度値の分布に基づいて、前記比を算出する、
ことを特徴とする付記１又は２記載のバーコード読取方法。
（付記４）
入力されたバーコードの画像の輝度値の分布に基づいて、前記バーコードの太いバーの幅と細いバーの幅との比を算出する算出部と、
第１のキャラクタに対して規定された輝度値の第１の分布のサンプル数を前記比に基づいて変更して第２の分布を生成する第１の生成部と、
前記第２の分布のサンプル数を、前記バーコードの画像から得られる１つのキャラクタ分の輝度値の分布のサンプル数に変更して第３の分布を生成する第２の生成部と、
前記第３の分布と、前記１つのキャラクタ分の輝度値の分布との相関に基づいて、前記１つのキャラクタ分の輝度値の分布が、前記第１のキャラクタを示すか否かを判定する判定部と、
を有するバーコード読取装置。
（付記５）
前記第１の生成部は、前記第２の分布の各輝度値を、前記第１の分布の各輝度値に基づく線形補間によって算出し、
前記第２の生成部は、前記第３の分布の各輝度値を、前記第２の分布の各輝度値に基づく線形補間によって算出する、
ことを特徴とする付記４記載のバーコード読取装置。
（付記６）
前記算出部は、前記バーコードの画像の輝度値の分布における先頭のキャラクタ及び末尾のキャラクタの少なくともいずれか一方に対応する輝度値の分布に基づいて、前記比を算出する、
ことを特徴とする付記４又は５記載のバーコード読取装置。
（付記７）
入力されたバーコードの画像の輝度値の分布に基づいて、前記バーコードの太いバーの幅と細いバーの幅との比を算出し、
第１のキャラクタに対して規定された輝度値の第１の分布のサンプル数を前記比に基づいて変更して第２の分布を生成し、
前記第２の分布のサンプル数を、前記バーコードの画像から得られる１つのキャラクタ分の輝度値の分布のサンプル数に変更して第３の分布を生成し、
前記第３の分布と、前記１つのキャラクタ分の輝度値の分布との相関に基づいて、前記１つのキャラクタ分の輝度値の分布が、前記第１のキャラクタを示すか否かを判定する、
処理をコンピュータに実行させることを特徴とするバーコード読取プログラム。
（付記８）
前記第２の分布を生成する処理は、前記第２の分布の各輝度値を、前記第１の分布の各輝度値に基づく線形補間によって算出し、
前記第３の分布を生成する処理は、前記第３の分布の各輝度値を、前記第２の分布の各輝度値に基づく線形補間によって算出する、
ことを特徴とする付記７記載のバーコード読取プログラム。
（付記９）
前記比を算出する処理は、前記バーコードの画像の輝度値の分布における先頭のキャラクタ及び末尾のキャラクタの少なくともいずれか一方に対応する輝度値の分布に基づいて、前記比を算出する、
ことを特徴とする付記７又は８記載のバーコード読取プログラム。
【符号の説明】
【００７７】
１０          バーコード読取装置
１１          バーコード入力部
１２          ＮＷ比算出部
１３          ＮＷ比補間部
１４          比較用補間部
１５          キャラクタ判定部
１６          基準コード記憶部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        撮像装置
Ｂ            バス
【図１】
2018049534.tif 000003
【図２】
2018049534.tif 000004
【図３】
2018049534.tif 000005
【図４】
2018049534.tif 000006
【図５】
2018049534.tif 000007
【図６】
2018049534.tif 000008
【図７】
2018049534.tif 000009
【図８】
2018049534.tif 000010
【図９】
2018049534.tif 000011
【図１０】
2018049534.tif 000012
【図１１】
2018049534.tif 000013
【図１２】
2018049534.tif 000014
【図１３】
2018049534.tif 000015