(57)【要約】【課題】簡易な操作で誤読を防止する。【解決手段】読取対象を光学的に読み取り、画像として取得する撮像手段と、前記撮像手段によって取得した画像内に存在する表示パターンをデコードし記録情報を読み取るデコード手段と、所定の時間間隔ごとに前記撮像手段によって取得した画像に基づいて前記撮像手段の移動量を判定する移動判定手段と、前記移動判定手段により、前記撮像手段の移動量が移動停止判定閾値以下となっている期間を計時する計時手段とを備え、前記撮像手段の移動量が所定の閾値以下となっている期間が所定の時間を超えたときに前記デコード手段によるデコードを開始する。【選択図】図６
2019091431.tif 000002
【特許請求の範囲】
【請求項１】
読取対象を光学的に読み取り、画像として取得する撮像手段と、
前記撮像手段によって取得した画像内に存在する表示パターンを読み取る読取手段と、
前記撮像手段によって取得した画像に基づいて前記撮像手段の移動量を判定する移動判定手段と、
を備え、
前記移動判定手段により、前記撮像手段の移動量が所定の閾値以下となっていると判定したときに、前記読取手段による読み取りを開始することを特徴とする情報読取装置。
【請求項２】
前記移動判定手段は、前記撮像手段の移動量が移動停止判定閾値以下となっている期間を計時する計時手段を有し、
前記計時手段によって、前記撮像手段の移動量が前記移動停止判定閾値以下となっている期間が所定の時間を超えたと判定した時に、前記読取手段による読み取りを開始することを特徴とする請求項１に記載の情報読取装置。
【請求項３】
前記撮像手段によって取得した画像内に存在する表示パターンの個数をカウントする表示パターン数検知手段と、
前記表示パターン数検知手段によって前記画像内の表示パターン数が複数であることを検知すると、前記情報読取装置を前記読取手段による読み取り処理を行わない非デコード処理状態に遷移させる非デコード処理遷移手段と、
所定の条件を満たした際に、前記非デコード処理状態から復帰して前記読取手段による読み取り処理を再開すると判断するデコード再開判断手段と
を備え、
前記デコード再開判断手段は、前記撮像手段の移動量が所定の閾値以下となっていると判定したときに前記所定の条件を満たしたと判定し、前記読取手段による読み取り処理を再開すると判断することを特徴とする請求項１または２に記載の情報読取装置。
【請求項４】
ユーザーによって操作されるデコード処理実行ボタンが入力されると、
前記読取手段による読み取り処理を即座に開始することを特徴とする請求項１から３のいずれか一項に記載の情報読取装置。
【請求項５】
前記表示パターン数検知手段により検知された表示パターン数が一つの場合、前記撮像手段によって取得した画像を読み取り対象と判断し、ただちに前記読取手段によって前記表示パターンを読み取ることを特徴とする請求項３に記載の情報読取装置。
【請求項６】
前記読取手段が読み取った表示パターンをデコードして記録情報を読み取るデコード手段を有することを特徴とする請求項１から５のいずれか一項に記載の情報読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元コードやバーコードなどの表示パターンから光学的に情報を読み取る装置、制御方法、プログラムに関する。
【背景技術】
【０００２】
従来、市販商品の会計時、工場内での部品管理等、様々な業種において、対象物に付された１次元バーコードまたは２次元コードに代表される表示パターンを、専用の光学情報読取装置にて光学的に読み取り、読み取ったデータに含まれる価格、商品識別番号等のデータをオンラインで物流管理に活かす技術が広く普及している。コードは主に商品の外装箱、外装フィルム等の表面に印刷され、これを読取装置にて光学的に読み取る。読取装置は、ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）等の光照射手段が設けられており、これにより対象となるコードを照明し、コードからの反射光を結像レンズやＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）等を用いて、画像として読み取り、画像情報に含まれる明暗分布からコードが保持している情報を解読する。
【０００３】
そのため、表示パターンが密集している場合、マーカー照射前にハンディターミナルを適切な方向に向けていないと、意図しない表示パターンを読み取り可能範囲の中心に捉えてしまい、その表示パターンを読み込んでしまう可能性がある。しかしながら、マーカー照射前にハンディターミナルの受光装置がどの領域を読み取り範囲として捉えているかユーザーが判断することは難しい。
【０００４】
それに対し、特許文献１においては、ボタンが半押しされると読み取り範囲を示すマーカー光を照射し、全押しされると照明用の光を照射し表示パターンを撮影、デコードする技術が開示されている。また、特許文献２においては、撮像部の撮像により取得された画像データ又はデコード部の解読結果に基づいてデータコードが複数有ることを判断すると、デコード結果のうちいずれか１つを選択可能とするデータコード選択案内部とを具備する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−３２６５４５号公報
【特許文献２】特許第４５３８０５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術においては、半押ししてマーカー光を照射する手間がかかり、特許文献２においては、複数のデータコードがある場合にどちらかを操作者が判別して選択する手間がかかっていた。
【課題を解決するための手段】
【０００７】
上記の課題を鑑み、本発明に係る情報読取装置は、
読取対象を光学的に読み取り、画像として取得する撮像手段と、
前記撮像手段によって取得した画像内に存在する表示パターンをデコードし記録情報を読み取るデコード手段と、
前記撮像手段によって取得した画像に基づいて前記撮像手段の移動量を判定する移動判定手段と、
前記移動判定手段により、前記撮像手段の移動量が移動停止判定閾値以下となっている期間を計時する計時手段と
を備え、
前記撮像手段の移動量が所定の閾値以下となっている期間が所定の時間を超えたときに前記デコード手段によるデコードを開始することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、表示パターンが密集しているような状況において、ユーザーの利便性を低下させずに、より確実に読み込み動作を行うことができるようになる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係る情報読取装置のブロック図。
【図２】本発明の一実施形態に係る情報読取装置の正面図。
【図３】本発明の一実施形態に係る情報読取装置の背面斜視図。
【図４】従来の読取装置の動作を示すフローチャート。
【図５】本発明の一実施形態に係る情報読取装置の誤読防止の原理を示す図。
【図６】本発明の一実施形態に係る情報読取装置の誤読防止の原理を示すフローチャート。
【図７】本発明の一実施形態に係る情報読取装置の誤読防止の動作を示す図。
【図８】本発明の一実施形態に係る情報読取装置の誤読防止の動作を示す他のフローチャート。
【図９】本発明の他の実施形態に係る情報読取装置の誤読防止の動作を示すフローチャート。
【図１０】本発明の他の実施形態に係る情報読取装置の動作モード切り替え画面。
【図１１】本発明の他の実施形態に係る情報読取装置の動作モード切り替えの処理の流れを示すフローチャート。
【図１２】本発明の第４実施形態に係る情報読取装置のブロック図の一例。
【図１３】本発明の第４実施形態における情報読取装置の動作を示すフローチャート。
【図１４】本発明の第４実施形態に係る情報読取装置で読み取った輝度情報の一例。
【図１５】本発明の第７実施形態に係る読取装置のブロック図の一例。
【図１６】輝度斑があるバーコードの例。
【図１７】輝度変化グラフの例。
【図１８】輝度斑を推定する多次元式の例。
【図１９】輝度斑の影響を補正する正規化の例。
【図２０】輝度情報からバー幅情報への変換を示す概念図。
【図２１】本発明の第８実施形態に係る情報読取装置のブロック図。
【図２２】本発明の第９実施形態に係る情報読取装置の処理の一例。
【図２３】本発明の第９実施形態に係る情報読取装置の動作を示すフローチャート。
【図２４】バー幅情報が正常に読み取れないバーコードの例。
【図２５】バー幅情報が正常に読み取れないバーコードの一部拡大図。
【図２６】バー幅推定処理テーブルの例。
【図２７】本発明の第１０実施例における読取装置の動作を示すフローチャート。
【図２８】本発明の第１０実施例における読取装置の検知精度向上の概念を示す図。
【図２９】本発明の第１の実施例における読取装置の検知精度向上の動作を示すフローチャート。
【図３０】本発明の第１の実施例における読取装置の補正式作成の一例である。
【図３１】バーコードに読取用ＬＥＤ／エイマーが照射されている状態を例示する図。
【図３２】バーコードを正しく読み取れない状態を例示する図。
【図３３】撮像したバーコードの一部を示す図。
【図３４】水平・垂直方向の輝度変化密度を示した図。
【図３５】バーコードの傾きに応じた正弦波の位相変化を示した図。
【図３６】角度ごとの輝度変化密度とその近似正弦波の例を示す正面図。
【図３７】本発明の第１１実施形態に係るバーコードの角度推定処理を示すフローチャート。
【図３８】角度ごとの輝度変化密度とその近似正弦波の他の例を示す正面図。
【図３９】本発明の第１２実施形態に係る情報端末で読み取る対象となるバーコードの一例。
【図４０】本発明の第１２実施形態に係る情報端末における欠損領域特定の対象または対象外のバーコード画像。
【図４１】本発明の第１２実施形態に係る情報端末における欠損領域の特定のために行う黒画素の一次元変換の概要。
【図４２】本発明の第１２実施形態に係る情報端末における欠損領域特定処理の概要。
【図４３】バー領域全体に対して、ｘ、ｙ方向に均等に欠損が発生している場合の黒画素変換結果の一例。
【図４４】本発明の第１３実施形態に係る情報端末における範囲指定による欠損領域特定処理の概要。
【図４５】本発明の第１２、１３実施形態に係る欠損領域特定の動作を示すフローチャート。
【発明を実施するための形態】
【００１０】
＜第１実施形態＞
以下、本発明の第１の実施形態を、図を用いて詳細に説明する。図１には、本実施形態における１次元または２次元コード等のコードを読み取る情報読取装置のブロック図を示している。具体的には、バーコードリーダーや、携帯電話（スマートフォン）、タブレット端末、ハンディターミナル等であり、コードを読み取り可能な情報端末が対象となる。
【００１１】
ＣＰＵ（中央演算処理装置）１０１は、本発明の読取装置に内蔵されるコード読取プログラムの実行を行う。ＲＡＭ１０２は、本発明のコード読取プログラムを実行する際、作業領域として使用される。外部記憶領域１０３は、本発明で使用されるコード読取プログラム、ＯＳ及びアプリケーションプログラムやデータが保存される。外部記憶領域としては、ハードディスクドライブ（ＨＤＤ）やフラッシュＲＯＭ等不揮発性の記憶媒体であれば、記憶媒体の形式は問わない。
【００１２】
ＬＣＤＣ（液晶ディスプレイコントローラ）１０４は、本発明の読取装置の表示デバイスとして用いるＬＣＤ１０６の制御を行い、ＬＣＤ１０６に表示するための表示元データが、ＣＰＵ１０１により表示メモリ１０５へ格納された際、ＬＣＤ１０６に表示するためのデータを生成する。
【００１３】
システムバス１１０は、ＣＰＵ１０１と各周辺モジュール間でのデータアクセスに使用される。Ｉ／Ｏ制御部１０９は、タッチパネル１０８やキーボード１０７などの入力デバイスを制御する。通信制御部１１１は、ＷＬＡＮ（Ｗｉｒｅｌｅｓｓ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）コントローラを介した通信、近距離無線通信、モデムを介した公衆回線での通信等、無線通信機能を備える。通信制御部１１１により、本情報端末はネットワークを介して他のコンピュータとデータ通信が出来る。
【００１４】
ＲＴＣ（リアルタイムクロック）１１２は、日時情報を記録する。電源コントローラ１１３は、読取装置の電源オフ、オン、省電力設定、充電等を制御する。電源１１４は、読取装置に電力を供給する。スキャナ部１１５は、不図示のＬＥＤ等によるマーカー光照射手段および照明手段を備え、ＣＣＤ等の撮像素子を用いて光学的にコードを読み取る。
【００１５】
図２には、本実施形態に係る情報読取装置の正面図を示している。外形を構成する筐体２００は図３の背面斜視図に示すように、上ケース２０１と下ケース２０２に２分割される。図２に示すように、情報読取装置の正面側には上方に液晶表示部２が設けられ、下方に操作部３が備えられている。この筐体２００は、液晶表示部２を設けた表示部４と、操作部３が設けられユーザーが握る部分であるグリップ部５とから成る。
【００１６】
液晶表示部２は、読取対象のシンボルをカメラ部で撮影した画像や、シンボルを復号化した情報、その他の設定情報といった各種の情報を表示するための部分であり、その液晶表示部２に表示された表示内容を参照しながら、正面に配置された操作部３を片手、または両手にて操作する。この液晶表示部２の表面には、タッチパネルが配置される。また、液晶表示部２の上方には内蔵したＬＥＤライトが発光した際に外観から視認可能なようにする、ＬＥＤライトの導光部材６が設けられている。
【００１７】
操作部３には、各種の操作を行うテンキー１０や電源ボタン７、各種ファンクションボタン群８、スキャンボタン９等が割り当てられる。電源ボタン７は、他のキーよりも上ケース２０１からの突出量が低くなっており、また、上ケース２０１の電源ボタン７の回りにはバーリング状の凸部が形成されていることによって電源ボタン７の誤押しを防止している。上ケース２０１の内部には、各種キーが取り付けられたキーラバー１８とキー基板１９とを備えている。
【００１８】
図３は本実施形態に係る情報読取装置の背面斜視図である。液晶表示部２の裏面に相当する位置には図１におけるスキャナ部１１５の一例であるスキャナ部１４が設けられており、その表面には、透光性のスキャナ窓１５を有している。その内部に設けられたスキャナユニット１６によって読取対象の二次元画像を取得可能であり、二次元画像中の記録情報を読み取ってデコードすることが可能になっている。
【００１９】
スキャナ部１４のグリップ部５側にはスキャナ部１４に隣接してスピーカー部１７を設けている。下方のグリップ部５には、情報読取装置を駆動する電力を供給するためのバッテリ１１を備えている。図３に示すようにバッテリ１１は、情報読取装置に対して着脱可能に装着されている。また、情報読取装置の下方にはバッテリ１１を収納するバッテリ収納部３１を備えている。このバッテリ収納部３１は下ケース２０２に設けられた窪み状の開口部であり、下ケース２０２に着脱可能なバッテリカバー１２によって閉塞される。また、このバッテリカバー１２を、閉塞した状態で保持するためのバッテリロックノブ１３が下ケース２０２に備えられている。
【００２０】
バッテリカバー１２を外し、バッテリ１１を取り外すと、図３のようにバッテリ収納部３１の一部が開口されており、そこからキー基板１９に配置されたカードコネクタ２０が見え、ユーザーの指にてアクセス可能となる。また、筐体２００の左右にはスキャンキー２１を備えている。スキャンキー２１は筐体２００のグリップ部５よりも筐体２００長手方向で上方に位置し、液晶表示部２の横に配置される。
【００２１】
次に、従来技術における課題を図４のフローチャートを用いて説明する。従来技術によるデコード処理はステップＳ４０１から始まり、次に読取装置上に配置されたキーまたはタッチパネル等の入力を待ってから読取処理を開始する（ステップＳ４０２）。読取が開始されると、コード読取プログラムの制御によって、読取範囲をガイドするためのマーカー光を照射する（ステップＳ４０３）。ここでは、ユーザーに読み取り範囲を短時間知らしめた後（ステップＳ４０４）、画像撮影用の照明を照射し（ステップＳ４０５）、バーコードを含んだ画像を取得する（ステップＳ４０６）。ここで、バーコードとは、一次元バーコード、二次元バーコードのいずれで合っても良い。
【００２２】
ステップＳ４０６にて撮影された画像データは、ステップＳ４０７においてバーコードの内容を判別される。すなわち、バーコードが1つしかない場合はそのバーコードを、バーコードが複数存在している場合は中心に位置するバーコードをデコード対象として選択する（ステップＳ４０８）。
【００２３】
続いてステップＳ４０９にて、画像の表示パターンからコードに含まれる情報が抽出される。コードにはデコード結果が正常に終了したかを判定するためのチェックデジットと呼ばれるデータの信憑性を確認するためのデータが付加されているため、ステップＳ４１０でチェックデジットを用いてデコードが正常終了したかが判定される。以上の処理はデコードが正常に終了するか、ユーザーが読取操作を中断するまで繰り返される。
【００２４】
以上の処理によると、ステップＳ４０３で照射したマーカー光で示されたガイド内に偶然別のバーコードがあれば（バーコードが複数ある場合にはその中央に他のバーコードが位置すれば）、それが所望しないものであっても正常終了と見なされてしまうため、結果としてユーザーにとっては誤読したものとなってしまう。
【００２５】
図５に本発明第１の実施形態における誤読防止の基本的な概念図を示す。図５においては、複数のバーコードが密集している読取対象範囲３０１の一例を示している。この時、読み取りたいバーコードが中央のバーコードであるにも関わらず、中央以外のバーコードを読み込んでしまった場合、従来の方法では、デコードは正常に行えても、本来読み取るべきコードでは無いため、誤読と判断されていた。本発明では、所望するコードを特定するために、読取位置が一定期間固定されたと判断するまで、デコードを行わないようにすることで、誤読を防止することができる。
【００２６】
位置３０２は、読取開始後のタイミング（撮影時刻ｔ）の読取装置の位置であり、画像３０４は位置３０２の位置で撮影された画像である。また、位置３０３は位置３０２の後のタイミング（撮影時刻ｔ＋１）における読取装置の位置であり、画像３０５は位置３０３で撮影された画像である。本発明では、読取対象の画像を一定の間隔で撮影し、時系列順に画像を取得する。取得した画像に対し、最新の画像とその直前の画像間における被写体の移動量を算出する。この場合の移動量は図中の移動量３０６に該当する。このように読取対象の画像の移動量を算出し、一定期間に亘って、読取装置の位置が所定の移動量以下と判断された時に、デコードを行うようにし、誤読を防止する。
【００２７】
本発明における基本的な誤読防止処理を図６のフローチャートを用いて詳細に示す。読取を開始すると、画像の取得を開始する（ステップＳ６０１）。画像は読取装置が備えるＲＡＭに時系列に沿って一時的に保存される。時系列上、一つ前の画像が存在する場合（ステップＳ６０２  Ｙｅｓ）、今回取得した画像と前回取得した画像から画像移動量を計算する（ステップＳ６０３）。計算された画像移動量が、予め設定されている閾値以下の場合は、読取位置が前回位置とほぼ同じ位置であると判断し（ステップＳ６０４  Ｙｅｓ）、カウンタ値をプラスする（ステップＳ６０５）。カウンタ値が予め設定されている閾値に達したら、一定期間、読取位置が固定されていると判断し、取得した画像をデコード対象の画像であると判断する（ステップＳ６０６  Ｙｅｓ）。デコード対象と判断された画像はデコードが行われ（ステップＳ６０７）、デコード処理の正否が判定される（ステップＳ６０８）。
【００２８】
読取開始時は前回の画像が無いため、最初の画像取得時は、ステップＳ６０２でＮｏとなることでステップＳ６１０に進み、最初に取得した画像が、画像移動量計算の元データ（前回画像）に設定される。ステップＳ６０４で計算された画像移動量が閾値を超える場合には、読取位置が定まっておらず、ユーザーが読取位置の調整中だと判断し、ステップＳ６０９にてカウンタ値をクリアする。
【００２９】
ステップＳ６０６にてカウンタ値が閾値に達していない場合は、ステップＳ６１０に遷移し、カウンタ値が閾値に達するまで画像取得を繰り返す。ステップＳ６０８にて、デコードが正常に終了しなかった場合、コードの汚れや破損によるデコードエラーも考えられるが、ステップＳ６１０に遷移し、画像取得を繰り返す。
【００３０】
次に、図７の概念図を用いて本実施形態における誤読防止の原理を説明する。図７の読取対象範囲３０１は複数のバーコードが密集している一例を示している。
【００３１】
そういった状況に対し、本実施形態は、上述した通り、読み取り可能範囲内に複数のバーコードが存在した場合、所望するバーコードを特定するために、読取開始タイミングを遅らせることにより、マーカー照射位置を目的のバーコードに合わせる時間的余裕が発生し、ユーザーの期待通りのバーコードをデコードすることが出来るようにしたものである。
【００３２】
図７におけるＰ１は読取開始後のタイミング（撮影時刻ｔ）の読取装置の位置、そしてＰ１の位置で撮影された画像が画像３０４である。また、Ｐ２はＰ１の後のタイミング（撮影時刻ｔ＋ｘ）における読取装置の位置、そしてＰ２の位置で撮影された画像は画像３０５である。
【００３３】
本発明では、読取対象の画像の中に複数のバーコードが存在することが確認された場合、特定の時間だけ経過した後に再びバーコードを撮影し、所定の条件を満たした時点で取得した画像に対して中心にあるバーコードをデコードすることを特徴としている。具体的には、ユーザーは時間ｘが経過するまでの間に、表示されるマーカー光を参考にして所望のバーコードが読み取り可能範囲の中心に来るように読取装置の位置を動かすことによってデコードが開始されないようにして、誤読を防止することができる。ここで、所定の条件としては、詳しくは後述するが、特定の時間間隔で取得する読取対象の画像の中におけるバーコードの移動量が、所定の閾値以下となる回数が所定の回数を超えたときに所定の条件を満たしたと判定することができる。
【００３４】
図８に、本実施形態における誤読防止処理を、フローチャートを用いて詳細に示す。但し、誤読防止処理に係る主なステップ以外は省略することがある。読取を開始（ステップＳ８０１）すると、読取装置上に配置されたキーまたはタッチパネル等のボタン押下を待つ状態に入ると同時に読取処理の内部状態を示すＲＡＭ内のフラグ「モード」を０とする（ステップＳ８０２）。ユーザーがボタン押下を行うと、読取装置は読み取り範囲をユーザーに報知するためにマーカー光を照射する（ステップＳ８０３）。なお、モードが０であることは、初回のループ動作であることを示している。
【００３５】
次にＲＡＭ内のフラグ「モード」の値を調べ（ステップＳ８０４）、モードが1以外の場合はステップＳ８０６で予め設定された時間だけマーカー光を照射した後、ステップＳ８０７で画像撮影用の照明を点灯し、ステップＳ８０８でバーコードを含む画像を撮影する。次にステップＳ８０９で画像を解析し、画像内に存在するバーコードの数を測定する。このとき、ステップＳ８１０でモードが０の時はステップＳ８１２へ分岐し、表示パターン数検知手段によって、バーコード（表示パターン）の個数をカウントする。なお、ステップＳ８１０においてモードが０となるのは、読み取りを開始した初回（初めてステップＳ８１０に到達する時）のみであり、初回のみバーコードの数を判定することとなる。
【００３６】
ステップＳ８１２において、バーコードの数が1つと判定した場合、該当するコードをステップＳ８１１で選んだ後に、ステップＳ８１３で内容をデコードし、ステップＳ８１４でそのデコードが正常に終了したかを調べて、正常であればステップＳ８１７に進み、処理を終了する。ステップＳ８１４でデコードが正常ではなかった場合、ステップＳ８１５でモードを確認して１以外の場合はステップＳ８０３へ戻り再びマーカー光を照射し、以降、ステップＳ８０９で判定する画像内に存在するバーコードの数が１である限り、デコード結果が正常に終わるまで上記処理を繰り返す。
【００３７】
次に、本実施形態におけるポイントである、複数のバーコードが存在した場合の処理を説明する。まずステップＳ８０１からステップＳ８１０までは上記処理と同様であり、ステップＳ８１２で画像内に存在するバーコードが複数あった時、非デコード処理遷移手段によって非デコード処理へ遷移するために、ステップＳ８１８でユーザーに複数のコードが読取範囲内に存在することを報知し、さらにここでモードに１を代入する。モードを１に設定することで、非デコード処理状態へ遷移する。なお、ユーザーへの報知は必ずしも行う必要はないが、本実施形態においては行うことで、複数のバーコードを撮影していることをユーザーが認識しやすくしている。
【００３８】
次にステップＳ８０３でマーカー光を照射する処理に戻るが、今度はステップＳ８０４ではモードが１になっているため、ステップＳ８０５へ分岐してユーザーのデコード処理実行ボタンの押下がされるまで、又は移動判定手段によって読取装置の移動量が所定の値（移動停止判定閾値）以下であると判定している期間が一定時間に到達したことを計時手段によって計時するまで待機する。いずれかを検知すると、デコード再開判断手段によって非デコード処理状態から復帰し、デコード処理が再開される。
【００３９】
ここで、ユーザーはステップＳ８１８で複数のバーコードが存在していることを報知されて認識しており、まだデコード処理が出来ていないことを認識しているので、ステップＳ８０３で照射されるマーカー光を用いて所望のバーコードが読取範囲の中心に来るように読取装置の位置を調整することができる。ユーザーは読取装置の位置が決定出来た場合にはボタンを押すか、一定時間経過するまでその状態を維持すれば、目的のバーコードを中心に捉えたままステップＳ８０７で照明を照射して画像撮影を実施することができる。
【００４０】
次に、ステップＳ８１０ではモードが１になっているため、ステップＳ８１１に進み、バーコードが複数ある場合には中心にあるコードを選択して、ステップＳ８１３でデコードを行う。以上のようにして、複数のバーコードが存在した場合は、２回目にマーカー光を照射した時に読取範囲の中心位置を調整できるため、目的とするバーコードを読みことが出来る。
【００４１】
また、ステップＳ８１４でデコード後の結果が異常だった場合、モードが１であるため、ステップＳ８１６でモードを２に変更してステップＳ８０３へ戻る。それ以降の処理はモードが２であるため、ステップＳ８０４でステップＳ８０６へ分岐し、予め設定された時間だけマーカー光を照射してからステップＳ８０７で照明を照射して撮影処理へ移る。その後モードは２で固定されるため、正常にデコードされるまで同様の処理を繰り返し実行する仕組みになっている。
【００４２】
すなわち、一度モードが２になった以降の処理については、ステップＳ８０４から毎回ステップＳ８０６に遷移することになり、初回と同様のマーカー光照射時間での動作が行われ続けることになる。この構成により、初回の読取でバーコードが複数存在することを確認し、２回目の読取においてはボタン押下によって目的のバーコードを選択し得るようにし、それ以降は目的のバーコードにマーカーを合わせるだけで読み取りを実行できるようにすることができる。但し、ステップＳ８０４における判定を１以外ではなく、複数回ステップＳ８０５に進めるように設定しても良い。すなわち、例えばモードが１と２の場合にはステップＳ８０５に進むように変更しても良いし、所定回数ステップＳ８０６に進んだあとに、それ以後はステップＳ８０５に進むように変更しても良い。
【００４３】
＜第２実施形態＞
次に本発明の第２の実施形態について説明する。第１の実施形態では、ステップＳ８０４でのモードの値による分岐処理において、モードが１の場合と１以外の場合に分かれていた。これは初回読取時に複数のバーコードが存在することを確認出来た後、２回目の読取時だけボタン押下による目的選択を行える機会を与え、３回目以降はボタン押下の必要がなく、ただターゲットを中心に合わせるだけで自動的に読み取りを行うために存在する。
【００４４】
この場合、３回目以降の読み取りのきっかけは予め設定していた時間の経過によるものであるが、ユーザーの中にはこの時間経過を待つことが苦痛に感じる人もいる可能性がある。そこで、３回目以降も時間経過だけでなくボタン押下のタイミングで読み取りを実行するように処理を工夫したものが、本実施形態である。
【００４５】
図９には、第１の実施形態と異なる部分を説明するために、図８のフローチャートにおける一部をピックアップしている。具体的には上記ステップＳ８０４の分岐判断を下に示すステップＳ９０４のように変更し、モードが０すなわち初回読み取りの時はステップＳ９０６で時間経過によるタイムアウトをきっかけに読み取りを開始し、モードが１および２以上の時すなわち二回目以降の場合は、ステップＳ９０５によって時間経過とボタン押下の２つのきっかけにより読み取りを開始することが出来るようになっている。
【００４６】
＜第３実施形態＞
以下、本発明の第３の実施形態について説明する。第１、第２の実施形態のようにして複数のコードが密集している場合に誤読を防止することが可能であるが、コード読取プログラムの動作モード切り替えにより、画像移動量計算による誤読防止機能を無効化することも出来る。尚、第２の実施形態における画像読取装置としての構成は、第１の実施形態と同様である。
【００４７】
図１０に本発明のコード読取プログラムにおける動作モード切り替えの設定画面の一例を示す。図１０のような設定画面を本発明の読取装置の表示画面上に表示することにより、ユーザーは任意のタイミングで誤読防止機能を無効化することが出来る。例えば、ユーザーがコード読取作業を使用する環境において、複数のコードが密集するような状態がない場合は、誤読防止機能を無効化することが出来る。この場合は、画像移動量計算が行われないため、コードの読取が誤読機能防止有効時より、軽快に行われる。
【００４８】
つまり、複数のコードが密集するような環境においては、誤読を防止するために、誤読防止機能を有効にし、複数のコードが密集しない環境においては、誤読防止機能を無効にし、コード読取を軽快に行うといった使い方が出来る。また、モード切り替えは、キー操作によっても切り替え可能であり、日時設定により、コードを読み取る作業時間によって、自動切り替えすることも可能である。
【００４９】
動作モード切り替えの処理の流れを図１１のフローチャートを用いて説明する。動作モード切り替えは、ユーザーの意図する任意のタイミングでいつでも切り替え可能である。例えば読取装置が備える表示画面上から、ユーザーが動作モードを変更したいタイミングで、動作モード切り替え画面を表示する（ステップＳ２０１）。その際、図１０に示すような動作モード切り替え画面にて設定を変更する（ステップＳ２０２）。誤読機能防止モードを有効にした場合（ステップＳ２０３）は、以降図６に示した誤読機能防止の動作が有効な状態で、コードの読取が行われる。ステップＳ２０２にて、誤読機能を無効にした場合は、以降図６に示した誤読機能防止の処理は実行されず、読み取ったコードをそのままデコードする処理を行う。
【００５０】
本発明は、以上説明した各実施形態を、本発明の主旨を逸脱しない範囲で変更可能である。
【００５１】
例えば、読取対象となる画像を取得した後の、画像の表示パターンからコードに含まれる情報の抽出や、デコードが正常終了したかの判定について、上述した各実施形態では情報読取装置において行うことを説明したが、情報読取装置と有線または無線通信などによって接続される情報処理装置において行われるようにした情報読取システムを構成しても良い。
【００５２】
＜第４実施形態＞
以下、本発明の第４実施形態に係る発明について説明する。本発明に係る情報読取装置においては、例えば、スタック型バーコードのバーおよびスペースの線幅を複数算出して平均化したライン波形を2次微分することで黒バーと白バーの境界値を算出することができるが、輝度斑を考慮した輝度値を算出していないため、正確な輝度変化を得ることができない可能性がある。
【００５３】
本実施形態に係る情報読取装置は、上記を鑑み、
画像から情報を読み取る読取手段と、
前記読取手段により読み取った画像から輝度情報をブロックに分けて取得する輝度情報取得手段と、
前記輝度情報取得手段により取得した輝度情報から、前記ブロックごとの輝度情報に基づいて、前記ブロックごとの輝度情報を正規化する正規化手段と、
前記正規化手段により正規化された輝度情報からバー幅を算出するバー幅算出手段と
を備え、
前記バー幅算出手段の算出結果に基づいて前記情報をデコードすることを特徴とする。
【００５４】
本実施形態によれば、読取対象をブロックに分割し、輝度斑を考慮して正規化を行うことで正確な輝度変化を求めることが出来るため、バー幅の検知精度が向上する。
【００５５】
以下、本実施形態を、図を用いて詳細に説明する。なお、本実施形態に係る情報読取装置は、その多くの構成が第１実施形態と同様であるため説明を省略し、異なる部分についてのみ説明する。図１２には、本発明の１次元または２次元コード等のコードの読み取りを行う情報読取装置のブロック図を示す。具体的には、バーコードリーダーや、携帯電話（スマートフォン）、タブレット端末、ハンディターミナル等であり、コードを読み取り可能な情報端末が全て対象となる。
【００５６】
ＣＰＵ（中央演算処理装置）１０１は、本発明の情報読取装置に内蔵されるコード読取プログラムの実行を行う。ＲＡＭ１０２は、本発明のコード読取プログラムを実行する際、作業領域として使用される。外部記憶領域１０３は、本発明で使用されるコード読取プログラム、ＯＳ及びアプリケーションプログラムやデータが保存される。外部記憶領域としては、ハードディスクドライブ（ＨＤＤ）やフラッシュＲＯＭ等不揮発性の記憶媒体であれば、記憶媒体の形式は問わない。ＣＰＵ１０１は、後述する輝度情報取得手段３１１、正規化手段３１２、バー幅算出手段３１３、輝度上限式作成手段３１４、輝度下限式作成手段３１５などを有しているが、これらをＣＰＵ１０１とは別のＩＣなどによって構成しても良い。
【００５７】
ＬＣＤＣ（液晶ディスプレイコントローラ）１０４は、本発明の情報読取装置の表示デバイスとして用いるＬＣＤ１０６の制御を行い、ＬＣＤ１０６に表示するための表示元データが、ＣＰＵ１０１により表示メモリ１０５へ格納された際、ＬＣＤ１０６に表示するためのデータを生成する。
【００５８】
システムバス１１０は、ＣＰＵ１０１と各周辺モジュール間でのデータアクセスに使用される。Ｉ／Ｏ制御部１０９は、タッチパネル１０８やキーボード１０７などの入力デバイスを制御する。通信制御部１１１は、ＷＬＡＮ（Ｗｉｒｅｌｅｓｓ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）コントローラを介した通信、近距離無線通信、モデムを介した公衆回線での通信等、無線通信機能を備える。１１１により本情報端末は、ネットワークを介して他のコンピュータとデータ通信が出来る。
【００５９】
ＲＴＣ（リアルタイムクロック）１１２は、日時情報を記録する。電源コントローラ１１３は、読取装置の電源オフ、オン、省電力設定、充電等を制御する。電源１１４は、読取装置に電力を供給する。スキャナ部１１５は、不図示のＬＥＤ等によるマーカー光照射手段および照明手段を備え、ＣＣＤ等の撮像素子を用いて光学的にコードを読み取る。
【００６０】
次に、本実施形態における読取処理の流れを図１３のフローチャートと、図１４に示す取得した輝度情報の一例を用いて説明する。なお、以下においては説明を簡単にするために、スキャナユニット１６として一次元画像すなわちバーコードを読み取ることが可能な読取装置に関する処理について説明する。本実施形態に係る読取装置において読取処理を開始すると、まずは光学的にコードを読み取った撮像素子からの画像を元に、読み取りラインの輝度情報を輝度情報取得手段３１１によって取得する（ステップＳ１）。読取ラインにおける輝度情報を、縦軸を輝度、横軸をライン方向における座標としてプロットしたグラフが図１４に示すグラフである。
【００６１】
１ライン分の輝度情報を読み取ったのち、正規化手段３１２によって輝度情報をブロック毎に分ける。このブロックサイズを仮に４０と置く（ステップＳ２）。
【００６２】
次に、ブロック内の最小輝度を抽出する。ブロック内における位置０の輝度から位置３９の輝度のうち最も小さい輝度を選択して保持する。これを１ライン分のブロックすべてがなくなるまで繰り返す。１ラインが６４０ドットで構成されている場合は、１６回繰り返すことで、ブロック単位の最小輝度（輝度の下限）を取得する（ステップＳ３）。
【００６３】
次にブロック内の最大輝度を抽出する。ブロック内における位置０の輝度から位置３９の輝度のうち最も大きい輝度を選択して保持する。これを１ライン分のブロックすべてがなくなるまで繰り返す。１ラインが６４０ドットで構成されている場合は、１６回繰り返すことで、ブロック単位の最大輝度（輝度の上限）を取得する（ステップＳ４）。
【００６４】
次に輝度斑正規化式を算出する。ステップＳ３で算出したブロックごとの最小輝度とステップＳ４で算出したブロックごとの最大輝度によって、ブロック内における輝度の範囲が確定するため、１ラインの範囲（６４０ドットであれば１６ブロック）に対しての最小値・最大値を格納する配列を作成することで輝度斑正規化式が算出される（ステップＳ５）。
【００６５】
次に黒バーの輝度ムラ補正値を算出する。本実施形態においては、ブロック内の最小値と最大値の中点となる平均値をとり、平均値を黒バーの輝度ムラ補正値とし（ステップＳ６）、また、平均値を白バーの輝度ムラ補正値とする（ステップＳ７）。すなわち、本実施形態においては、黒バーと白バーの輝度ムラ補正値は同一（平均値）に設定している。
【００６６】
次に輝度ムラの補正を実施する。ブロック内の黒バーの輝度ムラ補正値と白バーの輝度ムラ補正値は確定しているため、ブロック内のそれぞれの輝度に対してこの条件を適用し、黒バーの輝度ムラ補正値を下回る場合は黒バーと判断し、白バーの輝度ムラ補正値を上回る場合は白バーと判断する（ステップＳ８）。
【００６７】
次に、バー幅算出手段によって補正後のバー幅情報を取得する。ブロック内の輝度データに対して、補正後の黒バーの幅と白バーの幅をそれぞれ算出し、バー幅の情報を取得する（ステップＳ９）。これらの処理による算出結果に基づいて、光学的に読み取った輝度情報が適切に正規化され、読み取ったコードがデコードされる。
【００６８】
図１４は、本実施形態に係る光学式情報読取装置で読み取った輝度情報の一例を示すグラフである。縦軸は取得した輝度情報、横軸はライン方向における座標である。図１４に示すように、取得した輝度情報を１６のブロックに分けているが、読取対象としてのバーコードの輝度ムラ（光ムラ）などによって、ブロックごとの最大輝度及び最小輝度が異なっている。
【００６９】
本実施形態においては、上述した通り、これらのブロックごとの最大輝度と最小輝度を抽出し、輝度斑正規化式を算出することによって、輝度斑による影響を抑えて読取対象のデコードを行うことができる。
【００７０】
＜第５実施形態＞
次に、本発明における第２の実施形態について説明する。本実施形態においては、その構成の多くが第４実施形態と共通しているため説明を省略し、異なる部分のみ説明する。
【００７１】
本実施形態においては、第４実施形態とは輝度ムラ補正値の算出方法が異なる。すなわち、図１３において、ブロック内における輝度の最大値と最小値の中点となる平均値に対し、その平均値よりも小さい第１の値を黒バーの輝度ムラ補正値とし（ステップＳ６）、それを下回る輝度情報の時に黒バーであると判定し、平均値よりも大きい第２の値を白バーの輝度ムラ補正値とし（ステップＳ７）、それを上回る輝度情報の時に白バーであると判定する。
【００７２】
次に、図１３におけるステップＳ８に進み輝度ムラの補正を実施する。ブロック内における黒バーの輝度ムラ補正値と白バーの輝度ムラ補正値はステップＳ６、ステップＳ７において確定しているため、ブロック内のそれぞれの輝度に対して、黒バーの輝度ムラ補正値を下回る場合は黒バーと判断し、白バーの輝度ムラ補正値を上回る場合は白バーと判断する。
【００７３】
その際に、第１の値以上かつ第２の値以下の間となる輝度については、他の補正方法によって輝度ムラ補正を行う。一例としては、ステップＳ４で取得したブロック内の最大輝度に応じて、白バーか黒バーかを判定するための第３の値を調整しても良い。
【００７４】
具体的には、取得する輝度範囲が０から２５５の２５６階調である場合に、ブロック内の最大輝度が１２８よりも小さい場合には、第３の値として第１の値と平均値との間の値を用い、ブロック内の最大輝度が１２８以上である場合には、第３の値として平均値と第２の値との間の値を用いることができる。これによって、輝度ムラがあっても好適に白バーと黒バーの判断をすることができ、デコードの精度を向上することができる。
【００７５】
また、第１の値以上かつ第２の値以下の間となる輝度を示すドットが所定数以上存在するブロックに対し、エッジ強調などの処理を加えてから上述した正規化を行っても良い。
【００７６】
本実施形態において、第１の値と第２の値との間となる輝度の補正方法について上記の方法は一例であり、それ以外の方法を用いて補正を行っても良い。
【００７７】
＜第６実施形態＞
次に、本発明における第６実施形態について説明する。本実施形態においては、その構成の多くが第４実施形態と共通しているため説明を省略し、異なる部分のみ説明する。
【００７８】
本実施形態においては、ブロックごとの輝度の最大値と最小値とを、すべてのブロックに対して算出するのではなく、離散的に位置するブロックに対して取得した結果から、輝度上限式作成手段によって輝度上限となる最大値を直線で結ぶ輝度上限式を作成し、また、輝度下限式作成手段によって輝度下限となる最小値を直線で結ぶ輝度下限式を作成し、それらによってすべての輝度情報に関する正規化を行う。
【００７９】
こうすることによって、すべてのブロックに対して最大輝度と最小輝度を算出しなくとも、輝度上限式と輝度下限式を用いて正規化を行うことができ、処理時間の短縮を行うことができる。
【００８０】
以上説明した各実施形態において、ブロックごとの最大輝度と最小輝度から輝度斑正規
化式、輝度上限式、輝度下限式などを作成して正規化を行ったが、ブロックごとの最大輝度と最小輝度から直接ブロックごとに正規化を行っても良いし、ブロックごとに黒バー、白バーの判断を行っても良い。説明した各実施形態においては、輝度斑を考慮した補正式（正規化式）を算出してから読み取ったバーコード全体に対して黒バー、白バーの判断を行うように構成したことによって、式全体の傾向から正規化式における各値の妥当性を踏まえて正規化を行うことができ、異常なデータであると判断した場合に、補正するなどの処理を加えることによって、デコードの精度を向上できる。
【００８１】
また、正規化の前後に限らず、適宜ノイズ除去のための処理を行っても良く、そうすることでデコードの精度を更に向上することができる。
【００８２】
（付記１）
画像から情報を読み取る読取手段と、
前記読取手段により読み取った画像から輝度情報をブロックに分けて取得する輝度情報取得手段と、
前記輝度情報取得手段により取得した輝度情報から、前記ブロックごとの輝度情報に基づいて、前記ブロックごとの輝度情報を正規化する正規化手段と、
前記正規化手段により正規化された輝度情報からバー幅を算出するバー幅算出手段と
を備え、
前記バー幅算出手段の算出結果に基づいて前記情報をデコードすることを特徴とする情報読取装置。
【００８３】
（付記２）
前記正規化手段は、前記ブロックごとの輝度情報における輝度の最大値と最小値に基づいて、前記輝度情報を正規化することを特徴とする付記１に記載の情報読取装置。
【００８４】
（付記３）
前記正規化手段は、前記輝度情報が黒バーであると判定するための第１の値と、前記輝度情報が白バーであると判定するための第２の値を有し、
前記輝度情報が前記第１の値以上かつ前記第２の値以下である場合には、前記ブロックごとの輝度情報における輝度の最大値に基づいて前記輝度情報が白バーであるか黒バーであるかを判定することを特徴とする付記２に記載の情報読取装置。
【００８５】
（付記４）
前記読取手段によって読み取った画像に対し、
前記ブロックごとの輝度情報における輝度の最大値を直線で結ぶ輝度上限式を作成する輝度上限式作成手段と、
前記ブロックごとの輝度情報における輝度の最小値を直線で結ぶ輝度下限式を作成する輝度下限式作成手段と
を有し、
前記正規化手段は、前記輝度上限式と前記輝度下限式とを用いて前記輝度情報を正規化することを特徴とする付記１から３のいずれか一項に記載の情報読取装置。
【００８６】
＜第７実施形態＞
以下、本発明の第７実施形態に係る発明について説明する。通常、バーコードが付与された商品等は太陽光や照明器具の外光の照射を受けている。従来、画像情報に含まれる明暗部分を基に情報を解読するため、バーコードに照射される光量が一定せずムラが生じている場合、読取装置が読み取った画像情報上の明暗分布にもムラが生じ、正しく読み取りが行えない問題が発生していた。従来の読み取り装置がＬＥＤの光照射手段を持っているのは、このムラを軽減する目的もあるが、外光の影響は環境に依存し確実にムラを排除することは困難であった。
【００８７】
この課題を解決するために、画像情報からバーコード上に存在する複数のバー幅とバー間の幅を複数算出して平均したライン波形を２次微分することにより、バーの境界値を算出することができる。この方法は、輝度斑がある画像からバーの特徴を抽出することでバーの境界を判定しようとしており、輝度斑自体を排除するわけではないので、輝度斑のパターンによっては正確な判定ができないことがある。
【００８８】
本実施形態に係る情報読取装置は、上記の課題を鑑み、
バーコードを読み取る情報読取装置において、
読取対象を光学的に読み取る読取手段と、
前記読取手段により読み取った画像から輝度情報を取得する輝度情報取得手段と、
前記輝度情報取得手段により取得した前記輝度情報に基づいて作成した輝度斑を補正するための条件を用いて前記輝度情報を正規化する正規化手段と、
前記正規化手段により正規化された輝度情報に基づいてバー幅を算出するバー幅算出手段と
を備えることを特徴とする。
【００８９】
本実施形態によれば、輝度斑が生じる環境に配置されたバーコードでも、輝度斑の影響を抑えて画像のデコードを行うことで、バーコードの読み取り精度を向上することができる。
【００９０】
以下、本発明の第７実施形態を、図を用いて詳細に説明する。なお、本実施形態に係る情報読取装置は、その多くの構成が第１実施形態と同様であるため説明を省略し、異なる部分についてのみ説明する。
【００９１】
図１５は、本実施形態に係る光学式情報読取装置の一例である画像読取装置３２１の構成を示すブロック図である。読取部３２２（スキャナ部１１５）はＣＣＤ等の撮像素子を用いて光学的にコードを読み取る。輝度情報取得手段３１１は読取部３２２が光学的に読み取ったコードの輝度情報を撮像素子から取得する。多次元式作成部３２４は輝度情報取得手段３１１が取得した輝度情報を基に輝度変化を認識し、輝度斑を推定する多次元式を作成する。正規化手段３１２は多次元式作成部３２４が作成した多次元式を、輝度情報を正規化する条件として用い、輝度斑の影響を補正して正規化した輝度変化情報を作成する。バー幅算出手段３１３は正規化手段３１２が作成した輝度変化情報を解析してバー幅を算出し、バーコードを構成する各バーがどのような順序で並んでいるかに関する情報を作成し、画像読取装置３２１と接続してバーコード情報を数値等の元データにデコードする機能を構成する外部装置に出力する。
【００９２】
読取部３２２はＣＣＤ等で構成される撮像部であり従来の技術で利用されているものであればどのようなものでも構成可能である。なお読み取ったバーコードのデコードは、必ずしも外部装置で行わなくても良く、画像読取装置３２１におけるＣＰＵ１０１などで実行し、その結果を外部装置等に送信するように構成しても良い。すなわち、図１５に示す輝度情報取得手段３１１、多次元式作成部３２４、正規化手段３１２、バー幅算出手段３１３については、ＣＰＵ１０１の機能の一部として構成しても良い。
【００９３】
輝度情報取得手段３１１は読取部３２２から輝度情報をラインごとに輝度変化が分かる状態で取得する機能を持つ。読取対象が２次元バーコードの場合、複数ラインを取得するように構成することもできる。また、読取対象が１次元バーコードの場合は１ラインで情報を得ることができる場合もあるが、読み取り率向上等を目的として複数ラインの情報を取得するよう構成することも同様に可能である。
【００９４】
多次元式作成部３２４は輝度情報取得手段３１１が取得した１つ以上のラインごとの輝度変化情報から高輝度、低輝度の頂点を抽出して輝度斑を推定する２つの多次元式をそれぞれ作成する。
【００９５】
正規化手段３１２は、多次元式作成部３２４が作成した２つの多次元式に挟まれた領域を本来の輝度の範囲とみなし正規化することにより、輝度斑の影響を補正した輝度情報を１つ以上のラインごとに作成する。
【００９６】
バー幅算出手段３１３は、正規化手段３１２が作成した補正された輝度情報を解析し、バーコードを構成する要素であるバーの幅を算出し各バーの並び情報をバーコード情報として外部装置に出力する。
【００９７】
図１６は外光の影響で輝度斑が生じるバーコードの例であり、このようなバーコードを読取部３２２が光学的に読み取る。
【００９８】
図１７は、図１６に示すバーコードの輝度情報を、隣接する画素の輝度をつなぎ輝度変化グラフとして表現したものであり、輝度情報取得手段３１１の機能を示す例である。図６の左端と右端に輝度変化が少ない直線的な部分があるが、これは、図１６におけるバーコードの左右の外側に位置する白地の部分の輝度情報を表している。白地部分自体は左右同色であるにもかかわらず、外光の影響で左右の輝度が異なっている。また、バーコードは白黒２色で構成されているので、理想的な読取環境であれば白地部分と、それより輝度が低い黒字の部分の２つの輝度で表現されるが、輝度斑の影響で輝度がばらついており外光を受けている右側部分の輝度が特に高輝度を示す部分において大きくなっている。
【００９９】
図１８は、図１７の輝度変化グラフから輝度斑を推定する多次元式の例である。輝度変化グラフから高輝度、低輝度の頂点を結ぶ線を表現する多次元式をそれぞれ生成している。図１８において輝度変化グラフに重ねて描いている上側の曲線が高輝度に対応した多次元式、下側の曲線が低輝度に対応した多次元式である。多次元式の生成には例えばフーリエ変換等を用いる。バーコード中の白地が示す高輝度部分と、黒字が示す低輝度部分とは、理想的な状況では位置に関わらずそれぞれ同士が同じ輝度を持っていることを前提に、高輝度部分と低輝度部分の変化から輝度斑を推定することができ、多次元式作成部３２４がこの多次元式を生成する。但し、多次元式の生成は、種々の方法を用いることができる。例えば、高輝度部分のみをプロットしたデータに対する近似曲線と低輝度部分のみをプロットしたデータに対する近似曲線とを作成しても良い。尚、高輝度部分、低輝度部分の検出は、極値を示す点を用いるなどの方法を用いても良い。
【０１００】
図１９は、図１８で生成した２つの多次元式に挟まれた領域内での正規化の例を示している。正規化手段３１２が図１９に表した処理を行う。図１９では、輝度情報の範囲が０から２５５までの２５６段階の値で表されている。正規化前においては、１０から１２５を示す輝度値の範囲が示されており、その範囲内の輝度値に対応するように、低輝度部分の輝度斑を推定する多次元式と高輝度部分の輝度斑を推定する多次元式が描かれている。この時、高輝度部分の輝度斑を推定する多次元式がその部分での高輝度部分、つまりバーコードの白地の部分を示し、低輝度部分の輝度斑を推定する多次元式がその部分での低輝度部分、つまりバーコードの黒字の部分を示していると推定できるので、正規化後の輝度情報が０から２５５までの値で表されるように、高輝度部に対応する多次元式の値以上を２５５、低輝度部に対応する多次元式の値以下を０とするようにして正規化を行う。
【０１０１】
この正規化処理により、輝度斑によって引き伸ばされた輝度情報が収束し輝度斑の影響を補正した輝度情報が得られる。このように、多次元式を利用することにより、細かい範囲で輝度斑を考慮した正規化を行うことができるため、より正確な輝度変化を求めることができる。輝度斑を考慮して正規化が行われた輝度情報に対して、所定の閾値を用いて白と黒の判定（２値化）を行う。
【０１０２】
図２０は、図１９で正規化した輝度情報バー幅情報への変換を示す概念図である。バー幅算出手段３１３がこの概念図で表した処理を行う。図１６で示されるバーコードは、４種類の太さを持った黒のバーと白のバーとで構成されている。そのため、４つのバーの太さをそれぞれ太さ１から太さ４とすると、例えば太さ２の黒のバーを「黒黒」と表現している。このように表現した場合、バー幅情報は最大４つ連続する「白」または「黒」の集合で表されることになる。装置に組み込む場合、バー幅情報がデジタル情報として扱われることを想定し「黒」を“０”、「白」を“１”と表し“１００１００００１”のような情報（ビット列）として扱うことで、バー幅情報をデジタル情報として取扱うことが可能である。
【０１０３】
図１９で正規化した輝度情報は０から２５５の間をとるため、それらを「黒（０）」または「白（１）」のどちらかの一部として扱う必要があるが、その扱い方に関しては従来技術と同じ方法を適用可能である。もっともシンプルな方法であれば、正規化後の中央の値である１２８を閾値として、１２８未満を「黒（０）」、１２８以上を「白（１）」とすることができる。
【０１０４】
＜第８実施形態＞
以下、本発明の第８実施形態を、図を用いて詳細に説明する。
【０１０５】
図２１は、本実施形態に係る光学式情報読取装置の例としての画像読取装置４２１の構成を示すブロック図である。読取部４２２、輝度情報取得手段４１１、正規化手段４１２の機能は、それぞれ、第７実施形態における読取部３２２、輝度情報取得手段３１１、正規化手段３１２と同様である。多次元式作成部４２４は輝度情報取得手段４１１から取得した正規化されていない輝度情報をバー幅算出手段４１３に与え、正規化されていない輝度情報上から得たバー幅情報を取得する。ここで得たバー幅情報において黒ワイドバー及び白ワイドバーと判定された部分の輝度変化情報のみの中から高輝度、低輝度の頂点を抽出して輝度斑を推定する２つの多次元式をそれぞれ作成する。
【０１０６】
図１６で示されるバーコードを読み取っている場合であれば、図１６で示されるバーコードは４種類の太さを持った黒のバーと白のバーで構成されているので、例えば太さが２以上のものをワイドバーとして認識する。そして、読み取ったバーコード中に黒および白のワイドバーがそれぞれ２本以上存在する場合に、多次元式作成部４２４はこのワイドバーにおける輝度情報のみを用いて多次元式を作成する。なお、読み取ったバーコード中に含まれるワイドバーが各色１つ以下である場合は、多次元式作成部３２４と同様、輝度情報取得手段４１１から得られた輝度情報全てを利用し多次元式を作成する。
【０１０７】
バー幅算出手段４１３は、バー幅情報を外部に出力するか、輝度情報を与えた部分に返却するかを選択できるようになっている。つまり、正規化部４０５から正規化された輝度情報を受け取った際には、バー幅算出手段３１３と同様に外部装置に出力し、多次元式作成部４２４からワイドバー位置を特定するために輝度情報を受け取った場合には、多次元式作成部４２４のバー幅情報を多次元式作成部４２４に返却するように構成されている。
【０１０８】
本実施形態では、正規化に用いるワイドバー位置を検出するためにバー幅算出手段４１３の機能を流用しているが、ワイドバー位置を特定する為だけの独自のバー幅算出部を別途構成してもよい。
【０１０９】
線幅が細いバーの輝度情報はノイズとの区別が難しいため、本実施形態のようにワイドバー部分の輝度変化情報のみを多次元式の作成に使用することで、より正確な輝度斑の補正が可能となる。
【０１１０】
さらに、本実施形態においては、ワイドバーに限らず、輝度情報のうちの一部の情報のみを使用して多次元式を作成しても良い。例えば、バーコード全体の幅のうち、所定の間隔でサンプリングした位置の輝度情報のみを用いて多次元式を作成しても良い。また、別の例としては、ワイドバー情報のうち、黒ワイドバーのうちの最小輝度となる値と、白ワイドバーのうちの最大輝度となる値を抽出して正規化条件となる多次元式を作成しても良い。具体的には、ワイドバーまたは輝度情報全体から多次元式を作成した上で、高輝度部分に対応する多次元式が白ワイドバーの最大値を通るように平行移動し、低輝度部分に対応する多次元式が黒ワイドバーの最小値を通るように平行移動しても良い。
【０１１１】
以上説明したように、本発明は、バーコードを読み取った画像情報に対し輝度変化グラフを作成し、輝度変化グラフから、高輝度、低輝度の頂点を抽出することにより、輝度斑を推定する多次元式を作成する。そのうえで作成した２つの多次元式で挟まれた領域内で輝度変化を正規化することで、輝度斑を考慮して読み取りを行うことができ、読み取り精度を向上することができるものである。
【０１１２】
以上説明した各実施形態においては、正規化した輝度情報に対し、それを２値化するための閾値は、０から２５５の中央の値である１２８を用いる例を説明したが、これに限られない。例えば、正規化する前の輝度情報における高輝度部分に相当する多次元式の値が所定の輝度（例えば１２８）よりも小さい場合に、２値化するための閾値を中央の値（０から２５５の場合１２８）よりも小さい値にし、正規化する前の輝度情報における低輝度部分に相当する多次元式の値が所定の輝度（例えば１２８）よりも大きい場合に、２値化するための閾値を中央の値よりも大きい値にすることなどが考えられる。この方法によれば、輝度斑があっても好適に白バーと黒バーの判別をすることができ、デコードの精度を向上することができる。
【０１１３】
（付記５）
バーコードを読み取る情報読取装置において、
読取対象を光学的に読み取る読取手段と、
前記読取手段により読み取った画像から輝度情報を取得する輝度情報取得手段と、
前記輝度情報取得手段により取得した前記輝度情報に基づいて作成した輝度斑を補正す
るための条件を用いて前記輝度情報を正規化する正規化手段と、
前記正規化手段により正規化された輝度情報に基づいてバー幅を算出するバー幅算出手
段と
を備えることを特徴とする情報読取装置。
【０１１４】
（付記６）
前記輝度情報取得手段は、取得した輝度情報に基づいてワイドバーの位置を判定し、
前記正規化手段は、前記ワイドバーの輝度情報のみを用いて前記条件を作成することを
特徴とする付記５に記載の情報読取装置。
【０１１５】
（付記７）
前記正規化手段は、前記輝度情報取得手段が算出したワイドバーの輝度情報のうち、黒
ワイドバー内の最小輝度と白ワイドバーの最大輝度を抽出することにより前記条件を作成
することを特徴とする付記６に記載の情報読取装置。
【０１１６】
＜第９実施形態＞
以下、本発明の第９実施形態に係る発明について説明する。本発明に係る情報読取装置においては、スタック型バーコードのバーおよびスペースの線幅を複数算出し、その度数分布の評価値に基づいてエラー数を減らし、読取性能を向上させることができる。しかしながら、バーコードにノイズ成分が発生している場合などでも、それを除去するわけではないため、正確な読取を行うことが難しい場合があった。
【０１１７】
本実施形態に係る情報読取装置は、上記の課題を鑑み、
バーコードを読み取る情報読取装置において、
読取対象を光走査して光学的に読み取る読取手段と、
前記読取手段により読み取った画像から輝度情報を取得する輝度情報取得手段と、
前記輝度情報取得手段が取得した輝度情報に基づいて、読み取ったバーコードにおける走査ラインごとのバー幅を算出するバー幅算出手段と
を備え、
読取ったバーコードを複数ライン走査して走査方向と直交する方向における走査ラインごとのバー幅を平均することで各バーごとに得たバー幅基準値に基づいて前記バーコードの各バー幅を特定することにより、前記バーコードを読み取ることを特徴とする。
【０１１８】
本実施形態によれば、読取対象について複数の走査ラインの平均値との比較を行い、部分的な欠損やノイズを減らすことできる。その結果、コードの読み取り精度を向上させることができる。
【０１１９】
以下、本実施形態を、図を用いて詳細に説明する。なお、本実施形態に係る情報読取装置は、その多くの構成が第１実施形態と同様であるため説明を省略し、異なる部分についてのみ説明する。
【０１２０】
図２２は、本実施例に係る情報読取装置における情報読取処理の流れを示す概念図である。撮像部３３１（スキャナ部１４）は、ＬＥＤ等の光照射手段を備え、ＣＣＤ等の撮像素子を用いて光学的にコードを読み取る。画像取り込み部３３２は光学的に読み取ったコードの輝度情報を撮像部３３１から取得し保持する輝度情報取得手段として機能する。輝度変化算出部３３３は読み取った輝度情報からバー幅を算出するバー幅算出手段として機能する。輝度変化算出部３３３におけるバー幅算出は、コードにおける主走査方向の走査ラインごとに行い、撮像部３３１が１次元リーダであればその読み取った走査ラインごとであり、撮像部３３１が２次元リーダであれば、その読み取った画像内のコードにおける所定の走査ラインごとに行う。バー幅変換部３３４は前記輝度変化算出部３３３から得たバー幅情報から、対象バーのバー１本分のバー幅である１本バー幅ｗ１と複数ラインに対する１本バー幅ｗ１の平均値ｗａ１と、対象バーをから隣接するバー３本分を１つのバーとみなしたときのバー幅である３本バー幅ｗ３と複数ラインに対する３本バー幅ｗ３の平均値ｗａ３を算出する。これらの平均値は、バー幅基準値として後述する各バー幅の特定に用いられる。
【０１２１】
ここで、３本バー幅ｗ３とは、交互に現れる白バーと黒バーとについて、連続する３つのバー全体の幅のことである。例えば、図２５には図２４に示すバーコード画像の一部の拡大図を示しているが、太枠内にある一つ目の白バーの部分と二つ目の細い黒バーの部分と3つ目の細い白バーの部分の合計である。
【０１２２】
バー幅比較部３３５は、輝度変化算出部３３３から得た１本バー幅ｗ１と１本バー幅の平均値ｗａ１と３本バー幅ｗ３と３本バー幅の平均値ｗａ３それぞれの値と、読み取り対象ラインのバー情報を比較する。最適バー幅特定部３３６は、バー幅比較部３３５から得た比較情報からバー幅推定対象バーの最適なバー幅を推定し、バー幅を最適化するための処理を適用する。具体的な最適なバー幅とは、以下で説明する比較処理を行った結果、図２６のバー幅推定処理テーブルを参照して導かれるバー幅のことである。
【０１２３】
これらの処理において、撮像部３３１の一例としては図１に示すスキャナ部１１５であり、画像取り込み部３３２から最適バー幅特定部３３６によって実行される処理は、図１におけるＣＰＵ１０１やそれ以外のＩＣなどによって実行されるように構成すれば良い。また、その一部の機能についてを回路上の電装部品などによって構成しても良い。
【０１２４】
本発明の第１の実施形態における読取処理の流れを図２３のフローチャートを用いて説明する。
【０１２５】
ここで、図２４は本発明での読み取り装置において読み取り対象となるバーコードのうちバー幅情報が正常に読み取れないバーコードの例である。
【０１２６】
図２４のバーコードには、本来のバーコードには存在しない斜めの線が含まれており、一部を切り出してみると、バー幅が正常な幅になっていないため、正しいバー幅情報を取得することが出来ない。
【０１２７】
本発明の情報読取装置において読取処理を開始すると、読み取り対象を光学的に読み取った撮像部３３１から読み取りラインの輝度情報を取得する。取得した輝度情報の中に、ステップ２以降に示される処理が行われていないバーが含まれていればステップＳ２３０２へ進む、すべてのバーについて最適バー幅特定が完了していればステップＳ１１に進み処理を終了する（ステップＳ２３０１）。
【０１２８】
以下にバー幅を補正する処理の詳細を示す。ステップＳ２３０２からステップＳ２３０５ではバー幅変換部３３４における処理を示している。
【０１２９】
まず、読み取ったバーコード内のいずれから端のバーを、バー幅推定の対象バーとして設定する。次に、読み取ったバーコード内の全てのラインにおける１本バー幅ｗ１を取得する。さらに、読み取ったバーコード内の全てのラインにおいて対象バーから連続した３本のバー幅を取得し、全ラインの３本バー幅ｗ３を算出する（ステップＳ２３０２）。このとき、同時に対象バーにおける全ライン数を取得しておく（ステップＳ２３０３）。
【０１３０】
次いで、１本バー幅ｗ１のラインごとの値すべてを加算して１本バー幅の数で割ることで平均値を取得して、１本バー幅の平均値ｗａ１とする。
【０１３１】
また、３本バー幅のすべての幅を加算して３本バー幅の数で割ることで平均値を取得して、３本バー幅の平均値ｗａ３とする（ステップＳ２３０４）。
【０１３２】
ステップＳ２３０５からステップＳ２３０６には、バー幅比較部３３５における処理を示している。
【０１３３】
ステップＳ２３０５においてｉを１に初期化し、次に、１本目のラインから順にそのラインの１本バー幅ｗ１と１本バー幅の平均値ｗａ１とを大小比較して、その差をａｖｅ１＿ｗｉｄｔｈ１として保持する。同様に、１本バー幅ｗ１と３本バー幅の平均値ｗａ３を大小比較して、その差をａｖｅ３＿ｗｉｄｔｈ１として保持する。さらに、３本バー幅ｗ３と１本バー幅の平均値ｗａ１を大小比較して、その差をａｖｅ１＿ｗｉｄｔｈ３として保持し、３本バー幅ｗ３と３本バー幅の平均値ｗａ３を大小比較して、その差をａｖｅ３＿ｗｉｄｔｈ３として保持する（ステップＳ２３０６）。
【０１３４】
なお、ステップＳ２３０６において、対象バー位置が対象ラインの最後か最後から２番目である場合、後述する３本バーの処理の代わりに、残っているバーの数に置き換えた処理を行う。特に、対象ラインの最後のバーである場合には、何もせずに処理を終える。
【０１３５】
これらｗ１、ｗ３、ｗａ１、ｗａ３の大小比較の結果は、図２６のバー幅推定処理テーブルに従い、次に説明するように判定することで、バー幅の特定が行われる。すなわち、バー幅の特定においては、読み取ったラインに対して上から順に適用することによって、対象バーにおけるあるライン上でのバー幅を他のライン上におけるバー幅と比較して、その妥当性を判断し、バー幅が太過ぎる場合にはバーを分割し、後ろにノイズが乗っていると見做される場合には３本バーを結合する処理を繰り返すことで行われる。
【０１３６】
現在の対象バーにおける対象ラインにおいて、ａｖｅ１＿ｗｉｄｔｈ１とａｖｅ３＿ｗｉｄｔｈ１、また、ａｖｅ１＿ｗｉｄｔｈ３とａｖｅ３＿ｗｉｄｔｈ３とをそれぞれ比較し、その結果を元にステップＳ２３０７のバー幅推定処理を実行し、バー幅推定処理の結果に基づいてステップＳ２３０８のバー幅最適化処理を行う。具体的な動作を以下に詳述する。
【０１３７】
まずステップＳ２３０６に従ってａｖｅ１＿ｗｉｄｔｈ１とａｖｅ３＿ｗｉｄｔｈ１の大きさを比較し、次いでａｖｅ１＿ｗｉｄｔｈ３とａｖｅ３＿ｗｉｄｔｈ３の大きさを比較する。
【０１３８】
それらの比較結果に基づいて、ステップＳ２３０７において図２６のバー幅推定処理テーブルを参照し、ステップＳ２３０８に進んでバー幅最適化処理を実行する。
【０１３９】
より具体的には、ａｖｅ１＿ｗｉｄｔｈ１とａｖｅ３＿ｗｉｄｔｈ１とを大小比較し、ａｖｅ１＿ｗｉｄｔｈ１がａｖｅ３＿ｗｉｄｔｈ１よりも小さく（１本バー幅ｗ１が、３本バー幅の平均値ｗａ３よりも１本バー幅の平均値ｗａ１に近い）、かつ、ａｖｅ１＿ｗｉｄｔｈ３とａｖｅ３＿ｗｉｄｔｈ３とを大小比較し、ａｖｅ３＿ｗｉｄｔｈ３がａｖｅ１＿ｗｉｄｔｈ３よりも小さい（３本バー幅が１本バー幅の平均値ｗａ１よりも３本バー幅の平均値ｗａ３に近い）場合には（図２６の右上）、正常と判定する。
【０１４０】
同様に、ａｖｅ１＿ｗｉｄｔｈ１とａｖｅ３＿ｗｉｄｔｈ１とを大小比較し、ａｖｅ１＿ｗｉｄｔｈ１がａｖｅ３＿ｗｉｄｔｈ１よりも小さく（１本バー幅ｗ１が、３本バー幅の平均値ｗａ３よりも１本バー幅の平均値ｗａ１に近い）、かつ、ａｖｅ１＿ｗｉｄｔｈ３とａｖｅ３＿ｗｉｄｔｈ３とを大小比較し、ａｖｅ１＿ｗｉｄｔｈ３がａｖｅ３＿ｗｉｄｔｈ３よりも小さい（３本バー幅が３本バー幅の平均値ｗａ３よりも１本バー幅の平均値ｗａ１に近い）場合には（図２６の左上）、３本バー幅に含まれる後ろの２つのバーがノイズを含むと判定し、３本バーを結合して１本のバーであると判定する。
【０１４１】
さらに、ａｖｅ１＿ｗｉｄｔｈ１とａｖｅ３＿ｗｉｄｔｈ１とを大小比較し、ａｖｅ３＿ｗｉｄｔｈ１がａｖｅ１＿ｗｉｄｔｈ１よりも小さく（１本バー幅ｗ１が、１本バー幅の平均値ｗａ１よりも３本バー幅の平均値ｗａ３に近い）、かつ、ａｖｅ１＿ｗｉｄｔｈ３とａｖｅ３＿ｗｉｄｔｈ３とを大小比較し、ａｖｅ３＿ｗｉｄｔｈ３がａｖｅ１＿ｗｉｄｔｈ３よりも小さい（３本バー幅が１本バー幅の平均値ｗａ１よりも３本バー幅の平均値ｗａ３に近い）場合には（図２６の右下）、１本バー幅と見做している対象バーがノイズを含み幅が大きくなり過ぎていると判定し、対象バーにおけるそのラインの部分を分割して３本のバーから構成されていると判定する。なお、分割の仕方としては、対象バーのバー幅が１本バーの平均値ｗａ１と同等であると判断して、そのバー幅に設定するなどの方法が適用できる。
【０１４２】
さらに、ａｖｅ１＿ｗｉｄｔｈ１とａｖｅ３＿ｗｉｄｔｈ１とを大小比較し、ａｖｅ３＿ｗｉｄｔｈ１がａｖｅ１＿ｗｉｄｔｈ１よりも小さく（１本バー幅ｗ１が、１本バー幅の平均値ｗａ１よりも３本バー幅の平均値ｗａ３に近い）、かつ、ａｖｅ１＿ｗｉｄｔｈ３とａｖｅ３＿ｗｉｄｔｈ３とを大小比較し、ａｖｅ１＿ｗｉｄｔｈ３がａｖｅ３＿ｗｉｄｔｈ３よりも小さい（３本バー幅が３本バー幅の平均値ｗａ３よりも１本バー幅の平均値ｗａ１に近い）場合には（図２６の左下）、大小比較の判定が異常であると見做し、結合、分割の処理を行わないと判定する。この場合、その後、他のラインに関してバー幅推定処理を適用した結果と照らし合わせて、バーの結合や分割を行っても良い。
【０１４３】
次に、ステップＳ２３０７で判定した結果を元に、ステップＳ２３０８のバー幅最適化処理を実行する。すなわち、ステップＳ２３０７で推定されたバー幅に基づいて、各ライン、バーごとに結合、分割などの処理を行う。
【０１４４】
ステップＳ２３０９に進んでｉをカウントアップし、対象バーのライン数ｉｍａｘよりも大きくなった時点で対象バーのすべてのラインに対して処理が完了したとして、ステップＳ２３０１に進む。ｉがｉｍａｘ以下である場合には、まだラインが残っていると判定し、ステップＳ２３０５へ進む（ステップＳ２３１０）。
【０１４５】
これらの処理を繰り返すことによって、読み取ったすべてのバーに対してバー幅推定と最適化処理を実行する。すなわち、最適バー幅特定部３３６を含めた構成による以上の処理によって、読み取ったコードに対し、汚れなどのノイズや欠損が含まれているかどうかを判定している。その判定結果に基づいて、ノイズや欠損が発生している箇所のバー幅を修正することで、読み取ったコードからノイズや欠損を除去することができる。
【０１４６】
以上説明した実施形態においては、対象バーに対して全ラインから平均値を算出し、全ラインに対してバー幅推定処理やバー幅最適化処理を実行するように構成したが、必ずしもそうでなくても良く、例えば所定の間隔を空けた数ラインに関してのみこれらの処理を実行し、それらの中で得られた最適バー幅に基づいてバーコード内の情報をデコードするように構成しても良い。
【０１４７】
また、バーコード画像の取得の際には、カメラで撮像するものだけでなく、ライン上にバーコード表面で反射する光を取得可能な１次元リーダであっても良く、その場合、所定の時間間隔で取得した複数のラインに関数データに対して上記の処理を行うことで、同等の効果を得ることができる。
【０１４８】
（付記８）
バーコードを読み取る情報読取装置において、
読取対象を光走査して光学的に読み取る読取手段と、
前記読取手段により読み取った画像から輝度情報を取得する輝度情報取得手段と、
前記輝度情報取得手段が取得した輝度情報に基づいて、読み取ったバーコードにおける走査ラインごとのバー幅を算出するバー幅算出手段と
を備え、
読取ったバーコードを複数ライン走査して、複数の走査ラインごとのバー幅を平均することで各バーごとに得たバー幅基準値に基づいて前記バーコードの各バー幅を特定することにより、前記バーコードを読み取ることを特徴とする情報読取装置。
【０１４９】
（付記９）
前記バー幅基準値は、前記バー幅算出手段によって算出されたバー幅におけるバー１本分の１本バー幅の複数ラインに対する平均と、隣接するバー３本分を１つのバーとみなしたときの３本バー幅の複数ラインに対する平均とであることを特徴とする付記８に記載の情報読取装置。
【０１５０】
（付記１０）
前記バー幅算出手段は、走査ラインごとに前記１本バー幅および前記３本バー幅を算出し、
バー幅比較手段によって、前記１本バー幅の複数ラインに対する平均および前記３本バー幅の複数ラインに対する平均と、前記１本バー幅および前記３本バー幅との比較を行うことで、前記バーコードの各バー幅を特定する最適バー幅特定手段を有することを特徴とする付記９に記載の情報読取装置。
【０１５１】
（付記１１）
前記最適バー幅特定手段は、前記バー幅比較手段による比較結果に基づいて、前記１本バー幅に欠損やノイズが含まれているかどうかを判定することを特徴とする付記１０に記載の情報読取装置。
【０１５２】
＜第１０実施形態＞
以下、本発明の第１０実施形態に係る発明について説明する。本発明に係る情報読取装置においては、スタック型バーコードのバーおよびスペースの線幅を複数算出して平均化したライン波形を2次微分することで黒バーと白バーの境界値を算出しているが、輝度ムラを考慮した輝度値を算出していないため、正確な輝度変化を得ることができないことがある。
【０１５３】
輝度ムラを判別するには輝度の上限と下限を用いる方法がある。ところで、一次元バーコード上の黒バーおよび白バーはバーごとにバー幅が異なり、バーコード上のすべてのバーの幅平均値よりも広い幅を持つワイドバーと狭い幅を持つナローバーがある。
【０１５４】
このうちナローバーはバー幅が細いために、隣接するバーの影響を受けやすく、輝度ムラを判別する場合に本来の輝度の上限と下限から外れた値を示し、正規化への悪影響を与える場合があった。
【０１５５】
正確な輝度変化を求めるためには、隣接バーの影響が小さいワイドバーを用いて輝度を検出して正規化を行うことで、良好に輝度ムラを判別できる。
【０１５６】
本実施形態に係る読取装置は、上記を鑑み、
画像を読み取る読取手段と、
前記読取手段により読み取った画像から輝度情報を取得する輝度情報取得手段と、
前記輝度情報取得手段により取得した輝度情報からバー幅を算出するバー幅算出手段と、
前記バー幅算出手段から得たバー幅情報からワイドバーの画像上の位置を算出するワイドバー位置算出手段と、
前記ワイドバー位置算出手段が算出した隣り合うワイドバーの輝度値を結ぶことにより補正式を作成する補正式作成手段と、
前記補正式作成手段により作成した補正式により、前記輝度情報を正規化する正規化手段と
を備え、
前記バー幅算出手段は、前記正規化手段により正規化された輝度情報からバー幅を算出することを特徴とする。
【０１５７】
本実施形態によれば、ワイドバーを利用して輝度ムラを推定することにより、バー幅の検知精度の向上が可能となる。
【０１５８】
以下、本発明の第１の実施形態を、図を用いて詳細に説明する。なお、本実施形態に係る情報読取装置は、その多くの構成が第１実施形態と同様であるため説明を省略し、異なる部分についてのみ説明する。
【０１５９】
本実施形態における読取処理の流れを図２７のフローチャートを用いて説明する。
【０１６０】
本実施形態での読取装置において読取処理を開始すると、輝度情報取得手段３１１は光学的に読み取った撮像素子から読み取りラインの輝度情報を取得する（ステップＳ２７０１）。
【０１６１】
ここで、図２８は本発明での読み取り装置において読み取り対象となるバーコードの一例であり、バーコードにおける白い部分に関し、向かって左側が薄暗く、向かって右側が明るく見えている。
【０１６２】
図２９は、図２８に示すバーコードを読み取った際の、前記ステップＳ２７０１における読み取りラインの輝度情報を示したグラフである。図２９の輝度グラフを見ると、左から右にかけて、背景（白い部分）全体の輝度が上昇しており、輝度ムラが発生していることがわかる。
【０１６３】
次に１ライン分の輝度情報を読み取ったのち、バー幅算出手段によって輝度情報からバー幅情報を取得する。バーには白バーと黒バーが存在するため、輝度情報を持つ点をドットとしたとき、隣り合うドットの輝度差が読み取った１ライン分の輝度情報における最大の輝度値Tmaxの10%を超えた時に、輝度値が高い値から低い値に変化したときは白バーから黒バーへの転換と認識する。同様に輝度値が低い値から高い値に変化したときは黒バーから白バーへの転換と認識する。
【０１６４】
1ラインにおけるすべての転換を認識したのちに、それぞれの転換間隔における連続ドット数をカウントしてバー幅を得たのち、１ラインにおける各バー幅の平均を取得する。この平均値を下回るバーをナローバー、平均値を上回るバーをワイドバーとして、ワイドバー位置算出手段によってワイドバーのドット位置を記憶する（ステップＳ２７０２）。ワイドバーのドット位置と関連付けて輝度情報を記憶しておいても良い。次に記憶したそれぞれの黒ワイドバーの連続ドット数からその中心位置における輝度値を抽出する。この輝度値の抽出を1ライン全ての黒ワイドバーブロックがなくなるまで繰り返し、位置と輝度値を記憶する（ステップＳ２７０３）。
【０１６５】
次に、補正式作成手段は、この隣り合う黒ワイドバーの中心ドットの位置と輝度値から補正式を作成する。補正式の作成は初期値として位置0の値を最初に出現する黒ワイドバーの中心ドットの輝度とし、隣り合う黒ワイドバーの中心ドットの位置を直線で結ぶことにより作成する。なおこの補正式は必要に応じてスプライン曲線などを使用してもよいし、初期値として適当な切片を設定してもよい（ステップＳ２７０４）。
【０１６６】
次に記憶したそれぞれの白ワイドバーの連続ドット数からその中心位置における輝度値を抽出する。この輝度値の抽出を1ライン全ての白ワイドバーブロックがなくなるまで繰り返し、位置と輝度値を記憶する（ステップＳ２７０５）。
【０１６７】
補正式作成手段は、この隣り合う白ワイドバーの中心ドットの位置と輝度値から補正式を作成する。補正式の作成は初期値として位置0の値を最初に出現する白ワイドバーの中心ドットの輝度とし、隣り合う白ワイドバーの中心ドットの位置を直線で結ぶことにより作成する。なおこの補正式は必要に応じてスプライン曲線などを使用してもよいし、初期値として適当な切片を設定してもよい（ステップＳ２７０６）。
【０１６８】
図３０は白ワイドバーの補正式を図示したものである。本実施形態においては説明を簡便にするため、輝度ムラが白バーにのみ影響を与えた状態を示している。図中の実線が補正式を示しており、見やすくするため上方向にシフトして表示している。
【０１６９】
この補正式は、上述したように白ワイドバーの中心点を結ぶようにして作られている。図３０には、白ワイドバーにのみ輝度ムラが影響した図を示したが、実際には同様の作業を黒ワイドバーに対しても行い、補正式を作成する。
【０１７０】
次に、黒バーの輝度ムラ補正値を算出する。1ラインにおけるそれぞれのドット位置をパラメーターとしてステップＳ４で算出した補正式から黒バーの輝度ムラ補正値を算出する（ステップＳ２７０７）。すなわち、各ドット位置において、黒ワイドバーによってステップＳ４で作成した補正式に対応する値を、読み取った1ライン分の黒ワイドバーの中心点の最小値（例えば０）とし、白ワイドバーによって作成した補正式に対応する値を、読み取った1ライン分の白ワイドバーの中心点の最大値（例えば２５５）として正規化するために、黒バーに対して適用される数値を算出する。
【０１７１】
次に、白バーの輝度ムラ補正値を算出する。黒バーの輝度ムラ補正値同様に、1ラインにおけるそれぞれのドット位置をパラメーターとして、ステップＳ６で算出した補正式から白バーの輝度ムラ補正値を算出する（ステップＳ２７０７）。
【０１７２】
次に輝度ムラの補正を実施する。1ラインにおけるそれぞれのドット位置の黒バーの輝度ムラ補正値と白バーの輝度ムラ補正値は確定しているため、正規化手段によって1ラインにおけるそれぞれのドット位置の輝度に対して補正値を適用して正規化を実施し、正規化後の値に対して、黒バーであると判断するための第１の閾値を設定する。各輝度情報は正規化されているため、第１の閾値としては、単一の値を用いることができ、例えば輝度を０から２５５の２５６階調とする場合に、１５以下などとすることができる。この第１の閾値を下回る場合、白黒判定部によって黒バーと判断する。
【０１７３】
また、正規化後の値に対して、白バーであると判断するための第２の閾値を設定する。第１の閾値同様に、単一の値を用いることができ、例えば２４０以上などとすることができる。この第２の閾値を上回る場合、白黒判定部によって白バーと判断する（ステップＳ８）。
【０１７４】
このように、本実施形態における黒バーの輝度ムラ補正値は、輝度ムラを考慮した上で最小値に近い値とすることができる（例えば１５以下）。これは各ワイドバーの中心点によって補正式を算出したことにより、輝度ムラによる影響を低減できたことによる。同様に、白バーの輝度ムラ補正値も、輝度ムラを考慮した上で最大値に近い値とすることができる（例えば２４０以上）。
【０１７５】
次に、補正後のバー幅情報を取得する。1ラインにおけるそれぞれのドット位置の輝度データに対して、補正後の黒バーの幅と白バーの幅をそれぞれ検出し、バー幅の情報を取得する（ステップＳ９）。これらの処理により、光学的に読み取った輝度情報が適切に正規化され、正しい情報の取得が可能となる。
【０１７６】
（付記１２）
画像を読み取る読取手段と、
前記読取手段により読み取った画像から輝度情報を取得する輝度情報取得手段と、
前記輝度情報取得手段により取得した輝度情報からバー幅を算出するバー幅算出手段と、
前記バー幅算出手段から得たバー幅情報からワイドバーの画像上の位置を算出するワイドバー位置算出手段と、
前記ワイドバー位置算出手段が算出した隣り合うワイドバーの輝度値を結ぶことにより補正式を作成する補正式作成手段と、
前記補正式作成手段により作成した補正式により、前記輝度情報を正規化する正規化手段と
を備え、
前記バー幅算出手段は、前記正規化手段により正規化された輝度情報からバー幅を算出することを特徴とする情報読取装置。
【０１７７】
（付記１３）
前記正規化手段によって正規化された輝度情報に対して、第１の閾値よりも小さいと判定した際に前記輝度情報が黒バーであると判定し、第２の閾値よりも大きいと判定した際に前記輝度情報が白バーであると判定する白黒判定部を有することを特徴とする付記１２に記載の情報読取装置及びその制御プログラム。
【０１７８】
（付記１４）
前記輝度情報の範囲が最小値０、最大値２５５であるとき、前記第１の閾値は、１５以下となる値であり、前記第２の閾値は２４０以上となる値であることを特徴とする付記１３に記載の情報読取装置及びその制御プログラム。
【０１７９】
＜第１１実施形態＞
以下、本発明の第１１実施形態に係る発明について説明する。本実施形態に係る情報読取装置では、バーコードを認識させるにあたり、読取用ＬＥＤの照射とは別に、読み取りたいバーコードを狙うためのレーザー（エイマー）を、図３１に示すように照射している。  
【０１８０】
情報読取装置としては、読取用ＬＥＤとエイマーを使い、読み取りをしたいバーコードに光をあてることで、白／黒の反射光を読み取り、画像処理を施してバーコードの情報を認識させているが、従来、予め定めた直線上にある表示パターンのみを読み取るものが多く、正しい読み取りのためには、画像内における直線上にバーコードの両端を含むように位置を合わせる必要があった。  
【０１８１】
しかしながら、ユーザーがバーコードを読み取る時、必ずしもバーコードが同じ大きさ・同じ角度で画像中に写っている（存在する）とは限らず、どのような大きさや角度で写っていてもデータを読み取るためには、始めにバーコードの位置を検出する必要があり、求めた位置の情報を利用して走査線の位置を変更することで、バーコードのデータを読み取ることが可能となっていた。  
【０１８２】
また、バーコードの位置を検出したとしても、例えば図３２のようにバーコードの両端が走査線の直線上にない場合には、表示パターンを正しく読み取れない場合があった。
【０１８３】
それに対し、読み取った画像に部分的な区画を作り、区画領域内に含まれる情報コードが、バーコードか２次元コードかを解読前に区別した上で、バーコードの角度を推定する方法により、バーコードの位置を検出することができる。すなわち、バーコード内のある区画に対して、黒色・白色の輝度値の最大、最小の差と輝度変化回数の積を評価点数と定め、一定角度ごとに評価点数を算出する。評価点数の最大、最小の差が閾値以上であればバーコード、閾値以下であれば、２次元コードと判断することができる。バーコードと判定された場合、評価点数が最大、最小を取る角度を求めることによって、バーコードの向きを推定することができる。
【０１８４】
しかし、画像中のノイズの影響により輝度変化回数に誤差が生じると、それに伴い評価点数が最小、最大となる方向が容易に変化し、バーコードの正しい角度を推定できない可能性がある。
【０１８５】
本実施形態に係る情報読取装置は、上記を鑑み、
読取対象を撮像する撮像手段と、
前記撮像手段が撮像した画像内においてバーコードが存在する位置を特定する位置特定手段と、
前記バーコードに対し、基準方向に対する角度を変化させながら前記基準方向に沿って現れる輝度の変化密度を算出する輝度変化密度算出手段と、
前記角度に対する前記輝度変化密度の変動に近似する正弦波の位相を特定する位相特定手段と
を備え、
前記位相特定手段が特定した位相に基づいて、前記バーコードの前記画像内における傾きを特定することを特徴とする。
【０１８６】
本実施形態によれば、画像中のノイズにより輝度変化密度に誤差が生じた場合でも、バーコードの角度を精度良く推定し、正確な情報読取を行うことが可能である。
【０１８７】
以下、本実施形態に係る情報読取装置について、図面を用いて説明する。なお、本実施形態に係る情報読取装置は、その多くの構成が第１実施形態と同様であるため説明を省略し、異なる部分についてのみ説明する。
【０１８８】
図３３には撮像したバーコード画像の一部を示している。ここで、画像から取得した横軸方向と、縦軸方向の輝度変化密度をそれぞれｘ、ｙとし、バーコードを構成する各バーに垂直な方向の輝度変化密度をｎとする。また、画像横軸とバーが延びる方向に垂直な方向が角度θだけズレているとすると、以下の式が成り立つ。
【数１】
2019091431.tif 000003
【０１８９】
つまり、画像横軸方向と縦軸方向の輝度変化密度から、バーと垂直な方向における輝度変化密度を算出することができる。
【０１９０】
図３４に示すように、バーコード領域内で様々な方向に対して、輝度変化密度を調べると、輝度変化密度には次の２つの傾向が現れる。
【０１９１】
まず第１に、バーと垂直な方向に関しては輝度変化密度が高くなる。図３４に示すように、白／黒が交互に現れる。第２に、バーと平行な方向に関しては輝度変化密度が低くなる。図３４には、一例を示しており、この場合、バーと垂直な方向においては最大の輝度変化密度が現れ、バーと平行な方向においては黒または白から輝度変化がないため、輝度変化は０となっている。
【０１９２】
撮像した画像内における基準方向に対するバーコードの角度を回転させながら輝度変化密度が最大値、最小値を取る角度を求めることで、撮像したバーコードの初期角度（傾き）を推定することができる。しかし、最大値、最小値を取る角度自体はノイズの影響を受けて変化しやすいため、本発明においては、次の処理を行うことでその精度を向上させている。
【０１９３】
まず、理想的な状況下においては、バーコードの回転角度に対する輝度変化密度の変動は正弦波の絶対値と同じカーブを描き、バーの延びる方向（バーと平行な方向）で輝度変化密度が最小となり、バーと垂直な方向で最大となる。
【０１９４】
例えば、図３５のような３つのパターンに対し、撮像した画像におけるバーコードの初期角度（傾き）に応じて、正弦波の位相が変化することがわかる。ここで初期角度とは、バーコードのバーと垂直な方向が撮像した画像の横軸方向となす角度のことである。
【０１９５】
図３５においては、グラフ横軸が画像の横軸方向に対する角度θであり、グラフ縦軸が輝度変化密度を表している。図３５（ａ）は、バーコードの初期角度が横軸方向と一致している。この場合、角度θが０または１８０度のときに最大の輝度変化密度となっており、角度θが９０度のときに最小の輝度変化密度となっている。それに対し図３５（ｃ）は、バーコードの初期角度が縦軸方向と一致している。この場合、角度θが０または１８０度のときに最小の輝度変化密度となっており、角度θが９０度のときに最大の輝度変化密度となっている。図３５（ｂ）はこれら２つの中間の初期角度であり、輝度変化密度が最大、最小となる角度θも初期角度と同じ分だけずれている。図３５（ｂ）は一例として約４５度ずれた状態を示している。
【０１９６】
本実施形態のように、輝度変化密度と正弦波の位相を比較することでバーコードの初期角度を推定することによって、ノイズの影響を抑えることが可能である。輝度変化密度をもっともよく近似する正弦波（の絶対値）を求めることが好ましく、このようにして推定した正弦波の位相に対し、予め位相ごとの初期角度を記憶したテーブルや演算式を用いて、バーコードの初期角度を特定し、ＲＡＭ１０２や外部記憶領域１０３などの記憶部に記憶する。
【０１９７】
例えば、図３６（ａ）に示す実際の画像から取得した輝度変化密度からも分かるように、ノイズの影響を受けて、不規則な値を検出しやすい状態にある。これに対し、位相をずらしながら、角度θごとの正弦波の絶対値と輝度変化密度を比較し、差の累計が最小となる正弦波の絶対値により近似することで、ノイズの影響を受けにくくすることができる。もしくは、輝度変化密度の値から、正弦波を近似し、その近似した正弦波の位相によってバーコードの初期角度を求めればよい。なお、実際の画像から取得した輝度変化密度を正弦波と比較、もしくは正弦波に近似する方法は、上記以外にも種々の方法が適用可能である。
【０１９８】
また、本実施形態における初期角度の推定シーケンスのフローチャートを図３７に示す。まず、ステップＳ３７０１で、撮像した画像に対して位置検知を行うことで、撮像画像内におけるバーコードの領域を検出する。次に、ステップＳ３７０２で、角度θごとの輝度変化密度を算出する。
【０１９９】
角度θごとの輝度変化密度の算出が完了したあと、ステップＳ３７０３において、正弦波の位相を変化させながら比較し、ステップＳ３７０４で、輝度変化密度と正弦波の絶対値との差が最小になる角度θを算出し、バーコードの初期角度の算出を完了する。算出された初期角度すなわちバーコードの傾きに沿ってバー幅を算出してデコードすることによって情報の読取を完了する。
【０２００】
図３８には、実際に撮像した画像に対し、角度θを５度ずつ変化させながら輝度変化密度を求めた例を示す。図３８（ａ）には撮像対象の画像を示し、図３８（ｂ）に角度θを５度ずつ変化させながら輝度変化密度を求め、最も近似する正弦波を描いた結果を示している。
【０２０１】
図３８（ａ）の点線内の領域に対して、輝度変化密度を求めた結果が図３８（ｂ）のグラフとなる。図３８（ａ）の点線内の領域は、バーコードがそこに存在する旨を位置検知によって検出した結果が反映されているものであり、撮像した画像内にバーコードが存在する部分を示している。
【０２０２】
以上説明したように、正弦波の絶対値と輝度変化密度との比較を行い、正弦波を近似することで、ノイズの影響をほとんど受けることなく、精度良くバーコードの角度を推定できる。図３８（ｂ）において、輝度変化密度が最大となるのは角度θが１５０度（換言すれば、マイナス３０度）の位置であり、図３８（ａ）に照らせば、バーコードの初期角度が概ね正確に推定できている。
【０２０３】
輝度変化密度の算出においては、バーコードの高さが高い程精度の向上に期待ができ、初期角度を精度良く推定することができる。
【０２０４】
（付記１５）
読取対象を撮像する撮像手段と、
前記撮像手段が撮像した画像内においてバーコードが存在する位置を特定する位置特定
手段と、
前記バーコードに対し、基準方向に対する角度を変化させながら前記基準方向に沿って
現れる輝度の変化密度を算出する輝度変化密度算出手段と、
前記角度に対する前記輝度変化密度の変動に近似する正弦波の位相を特定する位相特定手段と
を備え、
前記位相特定手段が特定した位相に基づいて、前記バーコードの前記画像内における傾きを特定することを特徴とする情報読取装置。
【０２０５】
（付記１６）
前記位相特定手段は、前記角度に対する前記輝度変化密度の変動に対し、前記正弦波の位相をずらしながら、前記角度ごとの前記輝度変化密度との差の累計が最小となる位相を特定することを特徴とする付記１５に記載の情報読取装置。
【０２０６】
（付記１７）
特定した前記バーコードの傾きに沿ってバー幅を算出して前記バーコードをデコードすることを特徴とする付記１６に記載の情報読取装置。
【０２０７】
＜第１２実施形態＞
以下、本発明の第１２実施形態に係る発明について説明する。本発明に係る情報読取装置においては、読み取ったバーコード画像上に欠損領域が存在することを検知し、読み取りエラーとして通知することができるが、読み取りエラー通知を前提として欠損発生の特定を行うと、画像上の欠損領域が比較的少ない場合であっても画像を破棄することになり、読み取り処理やデコード処理が非効率になってしまうことがある。また、欠損領域を避けてデコードを行う既存技術もあるが、画像上の欠損領域の分布度合いによっては正確にデコードできない場合があり、欠損しているバーコードに対して汎用的にデコード処理を行うことが難しい。
本実施形態に係る情報読取装置は、上記を鑑み、
画像を読み取る撮像手段と、
前記撮像手段が読み取った画像に対し、横方向及び縦方向における黒画素分布を取得する黒画素分布取得手段と、
前記黒画素分布取得手段で取得した黒画素分布から横方向及び縦方向それぞれの方向における欠損範囲を特定する欠損範囲特定手段と、
前記欠損範囲特定手段で求めた各方向の欠損範囲から二次元領域として欠損領域を算出する欠損領域算出手段と
を備えることを特徴とする。
【０２０８】
本実施形態によれば、バーコードの仕様に依存せず、１次元バーコードに対して汎用的に欠損領域の特定を行うことが出来る。また、本発明にて行う欠損領域の特定により、欠損領域を避けてバーコードの読み取りを行うことで、たとえ読み取れるラインがバーコードの水平方向に全く存在しない場合でも、正常にデコードを行うことが出来る。
【０２０９】
以下、本発明における欠損領域の特定方法の実施形態を、図を用いて詳細に説明する。なお、本実施形態に係る情報読取装置は、その多くの構成が第１実施形態と同様であるため説明を省略し、異なる部分についてのみ説明する。
【０２１０】
また、本発明の情報端末で読み取る対象となるバーコード２１１は図３９に示すように一般的な一次元バーコードとし、バーコートを構成する黒バーは全て互いに並行であり、各黒バーは途切れることなく、同一直線状に存在する黒バーは１本のみである。
【０２１１】
また、本発明は、情報端末で読み取った、または読み取り後に施した画像処理により、バーコード画像が、図４０に示す画像３４３のような画像であるものを対象とする。画像３４３のように、バーコード画像上の黒バーが存在する領域をバー領域とする場合、バー領域が長方形となるように、画像３４１や画像３４２のようなバー領域が歪んでいるものを画像処理によって補正していても良い。
【０２１２】
図４１に示す、欠損領域が存在しない例を用いて、本発明においてバーコードの欠損領域を特定するために行う、黒画素の一次元変換について説明する。バー領域に対する黒画素分布を、バー領域左下端を原点とするｘ方向（横方向）、ｙ方向（縦方向）それぞれに一次元変換して黒画素分布取得手段によって取得する。具体的には、各座標軸上の座標ごとに黒画素が何点現れるかをカウントし、黒画素の数に対応した位置まで黒に塗り潰すことで表現している。領域４０１は、バー領域の左下を原点としたｘｙ座標の黒画素分布、すなわち、撮像したデータそのものである。領域４０２は、ｙ方向の黒画素分布、領域４０３は、ｘ方向の黒画素分布である。バー領域に欠損が存在しない場合、領域４０２、領域４０３のようにｘ、ｙ方向ともに黒画素の一次元分布は平坦になる。
【０２１３】
一方、図４２の領域５０１のように欠損が発生しているバーコードに対して、同様に黒画素の一次元変換を行うと、他の領域と比較して黒画素数の分布が少ない領域が見つかる。この領域がバーコード上の欠損領域であり、これを欠損範囲特定手段によって特定する。領域５０２においては、ｙ軸上の座標ｙ０からｙ１までの間で黒画素数が少なくなっており、領域５０３においては、ｘ軸上の座標ｘ０からｘ１までの間で黒画素数が少なくなっている。
【０２１４】
次いで、欠損領域算出手段によって、領域５０２に示すｙ方向の黒画素分布及び領域５０３に示すｘ方向の黒画素分布を双方統合し、領域５０４に示すように、具体的な座標値を特定して二次元領域として欠損領域を算出することが可能となる。すなわち、領域５０４においては、座標（ｘ０，ｙ０）から（ｘ１，ｙ１）の部分が欠損領域であると特定できる。欠損領域の特定においては、欠損していない領域に比べて黒画素が何画素以上足りない時に欠損領域とみなすか閾値を設け、その閾値を変動させて欠損領域特定処理の厳密さを調整してもよい。
【０２１５】
＜第１３実施形態＞
本実施形態では、第１２実施形態を応用した、範囲指定による欠損領域の特定方法を説明する。情報端末の構成は、第１２実施形態で説明した情報端末の構成と同様である。それに対し、本実施形態では、欠損領域の特定を範囲指定により行う点に特徴がある。
【０２１６】
第１２実施形態の場合、バー領域全体で黒画素の一次元変換を行い、欠損領域を特定するため、バー領域全体に対して、ｘ、ｙ方向均等に欠損が発生している場合は、図４３に示すように、ｘ方向及びｙ方向に黒画素分布を取得しても欠損領域を特定出来ず、欠損がないものとされてしまう虞がある。すなわち、図４３に示す通り、ｘ方向、ｙ方向いずれの方向においても、他の座標と比べて黒画素数の小さい座標が存在しないと判断され、欠損領域が存在しないと判断されてしまうことがある。
【０２１７】
このようなｘ、ｙ方向に対し均等に分布した欠損の領域を特定するため、図４４の領域７０１に示すように、バー領域を一定範囲の領域に分割し、分割したそれぞれの分割領域に対して黒画素分布を取得する。図４４においては、領域７０１に示すバー領域を座標（０，０）から（ａ／２，ｂ／２）の第１分割領域、座標（ａ／２，０）から（ａ，ｂ／２）の第２分割領域、座標（０，ｂ／２）から（ａ／２，ｂ）の第３分割領域、座標（ａ／２，ｂ／２）から（ａ２，ｂ）の第４分割領域の４つに分割している。取得する黒画素分布の範囲を縮小することにより、分割領域内の欠損領域を一定方向に偏らせ、欠損領域を特定しやすくすることができる。黒画素分布を取得する分割領域の分割単位は任意とする。分割する単位をより縮小することにより、欠損領域をより厳密に特定することができる。
【０２１８】
まずは、領域７０１における第１分割領域に対し、第１２実施形態で説明した欠損領域特定処理を適用する。すなわち、ｘ，y方向に対して黒画素分布を取得し、第１分割領域における欠損領域の特定を行う。第１分割領域における欠損領域の特定が完了したら、残りの分割領域に対しても同様に欠損領域特定処理を適用し、領域７０１に示すバー領域全体の欠損領域を特定する。
【０２１９】
分割領域に対して欠損領域特定処理を実行した結果、欠損領域の特定に失敗した場合には、その分割領域をさらに複数の範囲に分割し、欠損領域特定処理を実行し直しても良い。欠損領域の特定ができるまでこの再分割を繰り返すことで、領域７０１の分割数を抑えながら、欠損領域特定の精度を向上することができる。
【０２２０】
＜第１２実施形態、第１３実施形態の動作説明＞
次に、第１２実施形態及び第１３実施形態に関する欠損領域の特定動作を図４５のフローチャートを用いて説明する。図４５は基本的に第１３実施形態の動作に対応しており、第１２実施形態は、この動作から、一部の動作を省略して実行されることで実現される。
【０２２１】
バーコードの読み取りに先立ち、事前に黒画素分布を読み取るバー領域上の分割領域情報を取得する（ステップＳ４５０１）。分割領域情報は、予め本プログラムのパラメーターとして設定されており、任意のタイミングで本プログラムより、設定を変更することが出来る。次に、ステップＳ４５０２にて分割領域を管理するカウンタを初期化して、全ての分割領域の欠損領域特定が完了するまで、欠損領域特定のための黒画素分布測定を繰り返す（ステップＳ４５０３）。
【０２２２】
黒画素分布測定の繰り返し処理は、ｉ番目の分割領域の画像を読み込み（ステップＳ４５０４）、読み込んだ画像からｘ方向の黒画素分布を求め、ｘ方向の欠損範囲を求める（ステップＳ４５０５）。次に読み込んだｉ番目の画像から、ｙ方向の黒画素分布を求め、ｙ方向の欠損範囲を求める（ステップＳ４５０６）。ｘ、ｙ方向のそれぞれの欠損範囲からバー領域上の欠損領域を座標値にて特定する（ステップＳ４５０７）。
【０２２３】
ステップＳ４５０７にて欠損領域が見つかった場合、バー領域上に欠損領域が存在すると判断し、欠損領域保存手段によって、欠損領域情報として動作プログラム上にその情報を保存し、管理する（ステップＳ４５０８、ステップＳ４５０９）。ステップＳ４５０７にて欠損領域が無いと判断された場合は、次の分割領域に遷移する。以降、ステップＳ８０３に戻り、全ての分割領域において、欠損領域の特定が完了すれば終了となる。
【０２２４】
以上が本発明の欠損領域特定の動作フローである。上記の処理により、各分割領域の欠損領域が特定出来るため、画像処理により欠損領域を除外し、欠損してない領域を結合することで正常にデコードが行える。さらに、特定した欠損領域は、欠損していないｙ方向の領域のデータで補完し、元の画像を復元することも出来る。
【０２２５】
また、本発明は、上記各実施形態を組み合わせて用いても良い。例えば、欠損領域算出手段による欠損領域の算出を、第１２実施形態に従って画像全体に対して行った後で、第１３実施形態に従って画像の一部（例えば左半分や４分割した一部）に対しても実行し、そのうちのいずれかで欠損があると判定された際に欠損を有する画像であると判定する。画像全体と分割領域の両方において欠損領域が算出されなかった場合には、欠損がない画像であると判定できる。欠損を有する画像であると判定した後は、上記各実施形態で説明したような欠損領域の特定処理を行えばよい。この構成によれば、画像全体または分割領域に対してｘ方向とｙ方向とで均等に欠損が発生していたとしても、いずれかの欠損領域算出手段において欠損を検出することができる。
【０２２６】
（付記１６）
画像を読み取る撮像手段と、
前記撮像手段が読み取った画像に対し、横方向及び縦方向における黒画素分布を取得す
る黒画素分布取得手段と、
前記黒画素分布取得手段で取得した黒画素分布から横方向及び縦方向それぞれの方向に
おける欠損範囲を特定する欠損範囲特定手段と、
前記欠損範囲特定手段で求めた各方向の欠損範囲から二次元領域として欠損領域を算出
する欠損領域算出手段と
を備えることを特徴とする情報読取装置。
【０２２７】
（付記１７）
前記欠損範囲特定手段は、取得した黒画素数が前記画像内における他の部分における黒
画素数と比較して所定の閾値以上少ない部分を欠損範囲であると特定することを特徴とす
る付記１６に記載の情報読取装置。
【０２２８】
（付記１８）
前記画像を複数の領域に分割し、分割されたそれぞれの分割領域に対して前記欠損範囲
特定手段による欠損領域の特定を行うことを特徴とする付記１６または１７に記載の情報読
取装置。
【０２２９】
（付記１９）
前記欠損領域算出手段で求めた欠損領域情報を保存する欠損領域保存手段を有すること
を特徴とする付記１６から１８のいずれか一項に記載の情報読取装置。
【０２３０】
（付記２０）
前記欠損領域算出手段による欠損領域の算出を、前記画像全体と前記分割領域の両方に
対して行い、そのいずれにおいても欠損領域が算出されなかった場合に、前記画像に欠損
がないと判定することを特徴とする付記１８に記載の情報読取装置。
【符号の説明】
【０２３１】
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  外部記憶領域
１０４  ＬＣＤＣ（液晶ディスプレイコントローラ）
１０５  表示用メモリ
１０６  ＬＣＤ
１０７  キーボード
１０８  タッチパネル
１０９  Ｉ／Ｏ制御部
１１０  システムバス
１１１  通信制御部
１１２  ＲＴＣ（リアルタイムクロック）
１１３  電源コントローラ
１１４  電源
１１５  スキャナ部
Ｐ１  撮影時刻ｔでの読取装置の位置
Ｐ２  撮影時刻ｔ＋ｘの読取装置の位置
【図１】
2019091431.tif 000004
【図２】
2019091431.tif 000005
【図３】
2019091431.tif 000006
【図４】
2019091431.tif 000007
【図５】
2019091431.tif 000008
【図６】
2019091431.tif 000009
【図７】
2019091431.tif 000010
【図８】
2019091431.tif 000011
【図９】
2019091431.tif 000012
【図１０】
2019091431.tif 000013
【図１１】
2019091431.tif 000014
【図１２】
2019091431.tif 000015
【図１３】
2019091431.tif 000016
【図１４】
2019091431.tif 000017
【図１５】
2019091431.tif 000018
【図１６】
2019091431.tif 000019
【図１７】
2019091431.tif 000020
【図１８】
2019091431.tif 000021
【図１９】
2019091431.tif 000022
【図２０】
2019091431.tif 000023
【図２１】
2019091431.tif 000024
【図２２】
2019091431.tif 000025
【図２３】
2019091431.tif 000026
【図２４】
2019091431.tif 000027
【図２５】
2019091431.tif 000028
【図２６】
2019091431.tif 000029
【図２７】
2019091431.tif 000030
【図２８】
2019091431.tif 000031
【図２９】
2019091431.tif 000032
【図３０】
2019091431.tif 000033
【図３１】
2019091431.tif 000034
【図３２】
2019091431.tif 000035
【図３３】
2019091431.tif 000036
【図３４】
2019091431.tif 000037
【図３５】
2019091431.tif 000038
【図３６】
2019091431.tif 000039
【図３７】
2019091431.tif 000040
【図３８】
2019091431.tif 000041
【図３９】
2019091431.tif 000042
【図４０】
2019091431.tif 000043
【図４１】
2019091431.tif 000044
【図４２】
2019091431.tif 000045
【図４３】
2019091431.tif 000046
【図４４】
2019091431.tif 000047
【図４５】
2019091431.tif 000048