(57)【特許請求の範囲】
【請求項１】
複数の明色パターンおよび暗色パターンが配列されてなる情報コードを撮像する撮像手段と、
前記撮像手段によって撮像された撮像画像に対して所定の閾値と比較することで、当該撮像画像を構成する各画素を明色領域および暗色領域のいずれかに区分け可能な二値化手段と、
前記二値化手段により区分けされた複数の前記明色領域および前記暗色領域のうち前記情報コードに対応するコード画像を構成する前記明色領域および前記暗色領域の配列に基づいて、当該情報コードをデコードするデコード手段と、
を備える光学的情報読取装置であって、
前記二値化手段は、
前記撮像手段によって撮像された撮像画像のうち少なくとも前記コード画像が含まれる対象画像に対して、当該対象画像よりも低い解像度の画素から構成される低解像度画像を生成する低解像度画像生成手段と、
前記低解像度画像を構成する各画素の輝度値をそれぞれ測定する輝度値測定手段と、
前記低解像度画像を構成する各画素のうち所定数を囲うスコア算出枠を設定し、このスコア算出枠を所定画素ずつ移動させてその移動ごとに当該スコア算出枠内に位置する各画素の輝度値の枠内平均値を算出し、このスコア算出枠内に位置する各画素のうち前記枠内平均値を基準に、前記明色領域および前記暗色領域のいずれか一方の領域に判定される画素に対して一定のスコア値を加算し他方の領域に判定される画素に対して前記一定のスコア値を加算しないことで、前記低解像度画像を構成する全ての画素にて総スコア値をそれぞれ算出する総スコア値算出手段と、
前記一方の領域とみなされる程度に前記総スコア値が高い高スコア画素とこの画素の近くに位置し前記他方の領域とみなされる程度に前記総スコア値が低い低スコア画素との中間位置での前記所定の閾値を、これら両画素の輝度値の平均値に等しくする設定を、少なくとも複数箇所の前記高スコア画素のうちの一部について実施することで、前記所定の閾値を複数箇所設定する閾値設定手段と、
前記対象画像を構成する各画素を、前記閾値設定手段により設定された前記複数箇所の閾値に基づいて、前記明色領域および前記暗色領域のいずれかに区分けする区分手段と、
を備えることを特徴とする光学的情報読取装置。
【請求項２】
前記総スコア値算出手段は、前記所定数を囲うスコア算出枠を含めてそれぞれ囲う画素の数が異なる２種以上のスコア算出枠を設定し、これら各スコア算出枠をそれぞれ移動させて当該各スコア算出枠内に位置する各画素のうち前記一方の領域に判定される画素に対して前記一定のスコア値を加算することで、前記低解像度画像を構成する全ての画素にて前記総スコア値をそれぞれ算出することを特徴とする請求項１に記載の光学的情報読取装置。
【請求項３】
前記総スコア値算出手段は、前記２種以上のスコア算出枠を設定し、これら各スコア算出枠をそれぞれ移動させて、これらスコア算出枠内の中央に位置する１または２以上の画素のうち前記枠内平均値を基準に前記一方の領域に判定される画素に対して一定のスコア値を加算することで、前記低解像度画像を構成する全ての画素にて前記総スコア値をそれぞれ算出することを特徴とする請求項２に記載の光学的情報読取装置。
【請求項４】
前記閾値設定手段は、前記高スコア画素および前記低スコア画素の位置と輝度値とに基づいて前記所定の閾値を求めるための二値化基準点を設定し、
前記区分手段は、前記対象画像を構成する各画素を、当該対象画素の近くに位置する２以上の前記二値化基準点に基づいて設定される閾値に基づいて、前記明色領域および前記暗色領域のいずれかに区分けすることを特徴とする請求項１〜３のいずれか一項に記載の光学的情報読取装置。
【請求項５】
前記閾値設定手段は、前記高スコア画素とこの画素の近くに位置する前記低スコア画素との中間位置での前記所定の閾値を、これら両画素の輝度値の平均値に等しくする設定を、全ての前記高スコア画素および全ての前記低スコア画素について実施することで、前記所定の閾値を複数箇所設定することを特徴とする請求項１〜４のいずれか一項に記載の光学的情報読取装置。
【請求項６】
前記閾値設定手段は、前記高スコア画素とこの画素に対して所定の方向にて近くに位置する前記低スコア画素との中間位置での前記所定の閾値を、これら両画素の輝度値の平均値に等しくする設定を、少なくとも複数の前記総スコア値が高い画素のうちの一部について実施することで、前記所定の閾値を複数箇所設定することを特徴とする請求項１〜４のいずれか一項に記載の光学的情報読取装置。
【請求項７】
前記閾値設定手段は、前記中間位置とその位置に設定される閾値とを関連付けた閾値マップを作成し、
前記区分手段は、前記対象画像を構成する各画素を、前記閾値設定手段により設定された前記閾値マップに基づいて、前記明色領域および前記暗色領域のいずれかに区分けすることを特徴とする請求項１〜６のいずれか一項に記載の光学的情報読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像した情報コードを二値化することで当該情報コードを光学的に読み取る光学的情報読取装置に関するものである。
【背景技術】
【０００２】
従来、撮像した情報コードを二値化することで当該情報コードを光学的に読み取る光学的情報読取装置に関する技術として、下記特許文献１に開示される二値化処理装置が知られている。この装置では、撮像された濃淡画像から文字画像を画素単位ごとに二値化する場合には、多値における画像の予測値と実際値との差分および２値における画像の予測値をパラメータとして二値化する画素におけるしきい値を適宜に変動させることによって、文字線分の直線性を保持した二値化処理を実施している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−０６０９０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、バーコードや二次元コードのような複数の明色パターンおよび暗色パターンからなる情報コードを光学的に読み取るには、そのパターン（セル）が明色パターンおよび暗色パターンのいずれであるかを判定する二値化処理が重要である。二次元コードには誤り訂正が含まれるため、多少の誤りがあっても読み取ることができるが、撮像された二次元コードがボケたりコード全体が低コントラストであると誤りが増大してしまい、読み取りに失敗する場合がある。
【０００５】
従来は、照明ムラや部分的な低コントラスト画像を読取るために、上記特許文献１に示す二値化方法や部分的な濃度ヒストグラム分布から小領域での局所二値化や適応的二値化処理といった方法で二値化処理をおこなっていた。しかしながら、いずれの二値化処理でも小領域の適正サイズが実際の読み取る画像に一致しないと極端に二値化精度が悪化するという問題があった。また、画像の多くの濃度分布を確認する必要がある場合には、演算量が増大することから、光学的情報読取装置における読み取りフィーリングが悪化するという問題があった。また、このようなフィーリングの悪化を避けるためには、高速処理を可能とする高価な演算装置が必要になるという問題があった。
【０００６】
本発明は、上述した課題を解決するためになされたものであり、その目的とするところは、撮像した情報コードを複雑な処理を行うことなく高精度に二値化し得る光学的情報読取装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、請求項１に記載の光学的情報読取装置は、複数の明色パターンおよび暗色パターンが配列されてなる情報コード（Ｃ）を撮像する撮像手段（２８）と、前記撮像手段によって撮像された撮像画像に対して所定の閾値と比較することで、当該撮像画像を構成する各画素を明色領域および暗色領域のいずれかに区分け可能な二値化手段（４０）と、前記二値化手段により区分けされた複数の前記明色領域および前記暗色領域のうち前記情報コードに対応するコード画像を構成する前記明色領域および前記暗色領域の配列に基づいて、当該情報コードをデコードするデコード手段（４０）と、を備える光学的情報読取装置（１０）であって、前記二値化手段は、前記撮像手段によって撮像された撮像画像のうち少なくとも前記コード画像が含まれる対象画像（Ｐｏ）に対して、当該対象画像よりも低い解像度の画素から構成される低解像度画像（Ｐａ）を生成する低解像度画像生成手段（４０）と、前記低解像度画像を構成する各画素の輝度値をそれぞれ測定する輝度値測定手段（４０）と、前記低解像度画像を構成する各画素のうち所定数を囲うスコア算出枠（Ｓ，Ｓｋ）を設定し、このスコア算出枠を所定画素ずつ移動させてその移動ごとに当該スコア算出枠内に位置する各画素の輝度値の枠内平均値を算出し、このスコア算出枠内に位置する各画素のうち前記枠内平均値を基準に、前記明色領域および前記暗色領域のいずれか一方の領域に判定される画素に対して一定のスコア値を加算し他方の領域に判定される画素に対して前記一定のスコア値を加算しないことで、前記低解像度画像を構成する全ての画素にて総スコア値をそれぞれ算出する総スコア値算出手段（４０）と、前記一方の領域とみなされる程度に前記総スコア値が高い高スコア画素（Ｐｗ）とこの画素の近くに位置し前記他方の領域とみなされる程度に前記総スコア値が低い低スコア画素（Ｐｂ）との中間位置での前記所定の閾値を、これら両画素の輝度値の平均値に等しくする設定を、少なくとも複数箇所の前記高スコア画素のうちの一部について実施することで、前記所定の閾値を複数箇所設定する閾値設定手段（４０）と、前記対象画像を構成する各画素を、前記閾値設定手段により設定された前記複数箇所の閾値に基づいて、前記明色領域および前記暗色領域のいずれかに区分けする区分手段（４０）と、を備えることを特徴とする。
【０００８】
請求項２に記載の発明は、請求項１に記載の光学的情報読取装置において、前記総スコア値算出手段は、前記所定数を囲うスコア算出枠を含めてそれぞれ囲う画素の数が異なる２種以上のスコア算出枠（Ｓｋ）を設定し、これら各スコア算出枠をそれぞれ移動させて当該各スコア算出枠内に位置する各画素のうち前記一方の領域に判定される画素に対して前記一定のスコア値を加算することで、前記低解像度画像を構成する全ての画素にて前記総スコア値をそれぞれ算出することを特徴とする。
【０００９】
請求項３に記載の発明は、請求項２に記載の光学的情報読取装置において、前記総スコア値算出手段は、前記２種以上のスコア算出枠を設定し、これら各スコア算出枠をそれぞれ移動させて、これらスコア算出枠内の中央に位置する１または２以上の画素のうち前記枠内平均値を基準に前記一方の領域に判定される画素に対して一定のスコア値を加算することで、前記低解像度画像を構成する全ての画素にて前記総スコア値をそれぞれ算出することを特徴とする。
【００１０】
請求項４に記載の発明は、請求項１〜３のいずれか一項に記載の光学的情報読取装置において、前記閾値設定手段は、前記高スコア画素および前記低スコア画素の位置と輝度値とに基づいて前記所定の閾値を求めるための二値化基準点を設定し、前記区分手段は、前記対象画像を構成する各画素を、当該対象画素の近くに位置する２以上の前記二値化基準点に基づいて設定される閾値に基づいて、前記明色領域および前記暗色領域のいずれかに区分けすることを特徴とする。
【００１１】
請求項５に記載の発明は、請求項１〜４のいずれか一項に記載の光学的情報読取装置において、前記閾値設定手段は、前記高スコア画素とこの画素の近くに位置する前記低スコア画素との中間位置での前記所定の閾値を、これら両画素の輝度値の平均値に等しくする設定を、全ての前記高スコア画素および全ての前記低スコア画素について実施することで、前記所定の閾値を複数箇所設定することを特徴とする。
【００１２】
請求項６に記載の発明は、請求項１〜４のいずれか一項に記載の光学的情報読取装置において、前記閾値設定手段は、前記高スコア画素とこの画素に対して所定の方向にて近くに位置する前記低スコア画素との中間位置での前記所定の閾値を、これら両画素の輝度値の平均値に等しくする設定を、少なくとも複数の前記総スコア値が高い画素のうちの一部について実施することで、前記所定の閾値を複数箇所設定することを特徴とする。
【００１３】
請求項７に記載の発明は、請求項１〜６のいずれか一項に記載の光学的情報読取装置において、前記閾値設定手段は、前記中間位置とその位置に設定される閾値とを関連付けた閾値マップを作成し、前記区分手段は、前記対象画像を構成する各画素を、前記閾値設定手段により設定された前記閾値マップに基づいて、前記明色領域および前記暗色領域のいずれかに区分けすることを特徴とする。
【００１４】
なお、上記各括弧内の符号は、後述する実施形態に記載の具体的手段との対応関係を示すものである。
【発明の効果】
【００１５】
請求項１の発明では、撮像された撮像画像を構成する各画素を明色領域および暗色領域のいずれかに区分け可能な二値化手段は、上記対象画像に対して低解像度画像が生成されその各画素の輝度値がそれぞれ測定されると、総スコア値算出手段により、スコア算出枠を所定画素ずつ移動させてその移動ごとに当該スコア算出枠内に位置する各画素のうち枠内平均値を基準に明色領域および暗色領域のいずれか一方の領域に判定される画素に対して一定のスコア値を加算することで、上記低解像度画像を構成する全ての画素にて総スコア値をそれぞれ算出する。そして、閾値設定手段により、高スコア画素とこの画素の近くに位置する低スコア画素との中間位置での所定の閾値を、これら両画素の輝度値の平均値に等しくする設定を、少なくとも複数箇所の高スコア画素のうちの一部について実施することで、所定の閾値が複数箇所設定されると、区分手段により、上記対象画像を構成する各画素が、閾値設定手段により設定された複数箇所の閾値に基づいて、明色領域および暗色領域のいずれかに区分けされる。
【００１６】
これにより、例えば、上記一方の領域として明色領域に判定される画素に対して一定のスコア値を加算する場合には、上記低解像度画像のうち明色領域の可能性が高い画素は総スコア値が高くなり、逆に暗色領域の可能性が高い画素は総スコア値が低くなる。この場合、明色領域の可能性が高い高スコア画素が複数存在することとなり、これら各高スコア画素のうちの少なくとも一部とその近くに位置する暗色領域の可能性が高い低スコア画素とのそれぞれの中間位置での所定の閾値が、複数箇所設定される。このように設定される複数箇所の閾値は、周囲の画素のうち信頼性が高い画素の明暗が上記中間位置ごとに反映されて設定されるので、上記対象画像内での照度ムラ等の影響が緩和されて、複数箇所の閾値を高精度に設定することができる。
したがって、上述のように設定された複数箇所の閾値に基づいて、コード画像の各画素をそれぞれ明色領域および暗色領域のいずれかに区分けすることで、撮像した情報コードを複雑な処理を行うことなく高精度に二値化することができる。
【００１７】
請求項２の発明では、それぞれ囲う画素の数が異なる２種以上のスコア算出枠、例えば枠サイズが３×３の枠や５×５の枠などを用いて総スコア値をそれぞれ算出するため、１つの枠のみを移動させてスコア値を加算する場合と比較して、周囲の画素の明暗がより反映されて各閾値が設定されるので、二値化に関する精度をさらに向上させることができる。
【００１８】
請求項３の発明では、上述のように２種以上のスコア算出枠（枠サイズが３×３の枠や５×５の枠など）が設定されると、これら各スコア算出枠をそれぞれ移動させて、これらスコア算出枠内の中央に位置する１または２以上の画素のうち枠内平均値を基準に一方の領域に判定される画素に対して一定のスコア値が加算されて、総スコア値がそれぞれ算出される。このように、移動先のスコア算出枠内の全ての画素にスコア値を加算することなく中央に位置する１または２以上の画素にのみスコア値を加算するようにしてもよい。
【００１９】
請求項４の発明では、区分手段により、上記対象画像を構成する各画素が、当該対象画素の近くに位置する２以上の二値化基準点に基づいて設定される閾値に基づいて、明色領域および暗色領域のいずれかに区分けされるため、１つの閾値のみに基づいて区分けされる場合と比較して、二値化に関する精度を向上させることができる。
【００２０】
請求項５の発明では、閾値設定手段により、高スコア画素とこの画素の近くに位置する低スコア画素との中間位置での所定の閾値を、これら両画素の輝度値の平均値に等しくする設定を、全ての高スコア画素および全ての低スコア画素について実施することで、所定の閾値が複数箇所設定される。これにより、設定される閾値の数が多くなるので、二値化に関する精度をさらに向上させることができる。
【００２１】
請求項６の発明では、閾値設定手段により、高スコア画素とこの画素に対して所定の方向にて近くに位置する低スコア画素との中間位置での所定の閾値を、これら両画素の輝度値の平均値に等しくする設定を、少なくとも複数の高スコア画素のうちの一部について実施することで、所定の閾値が複数箇所設定される。これにより、設定される閾値の数を適度に限定して二値化に関する処理負荷を軽減することができる。
【００２２】
請求項７の発明では、閾値設定手段により、高スコア画素および低スコア画素の中間位置とその位置に設定される閾値とを関連付けた閾値マップが作成され、区分手段により、上記対象画像を構成する各画素が、上記閾値マップに基づいて、明色領域および暗色領域のいずれかに区分けされる。このように作成される閾値マップに基づいて、区分けすべき画素の位置から区分けに用いる閾値が採用されるので、多くの閾値が様々な位置に設定される場合でも、上記対象画像を構成する各画素を容易に明色領域および暗色領域のいずれかに区分けすることができる。
【図面の簡単な説明】
【００２４】
【図１】第１実施形態に係る光学的情報読取装置の電気的構成を示すブロック図である。
【図２】第１実施形態における読取処理の流れを例示するフローチャートである。
【図３】図２中の二値化処理のサブルーチンを例示するフローチャートである。
【図４】図４（Ａ）は、対象画像を示す説明図であり、図４（Ｂ）は、図４（Ａ）に示す対象画像を低解像度化した低解像度画像を示す説明図である。
【図５】図４（Ｂ）に示す低解像度画像を構成する各画素の輝度値を示す説明図である。
【図６】図６（Ａ）は、中心が画素（３，３）に位置するスコア算出枠を示す説明図であり、図６（Ｂ）は、図６（Ａ）に位置するスコア算出枠で算出したスコア値を示す説明図であり、図６（Ｃ）は、中心が画素（４，３）に位置するスコア算出枠を示す説明図であり、図６（Ｄ）は、図６（Ｃ）に位置するスコア算出枠で算出したスコア値を加算した状態を示す説明図である。
【図７】図４（Ｂ）に示す低解像度画像Ｐａを構成する各画素での総スコア値を示す説明図である。
【図８】総スコア値に重み付けるするための係数を説明する説明図である。
【図９】図７に示す低解像度画像の一部を高信頼度画素と低信頼度画素とに分類した状態を示す説明図である。
【図１０】図９に示す高信頼度画素から算出されるエッジを説明する説明図であり、図１０（Ａ）は、Ｘ方向のエッジが設定された状態を示し、図１０（Ｂ）は、Ｘ方向のエッジおよびＹ方向のエッジが設定された状態を示す。
【図１１】図１０（Ｂ）から求められる各基準位置をドットとして示す説明図である。
【図１２】図１１に示す二値化基準点に基づいて設定される各分割エリアの設定状態を説明する説明図である。
【図１３】低解像度画像に対して設定されるグリッドの一部を例示する説明図である。
【図１４】閾値が二値化基準点の基準輝度値に等しく設定される一部のブロックを示す説明図である。
【図１５】各二値化基準点に基づいてブロックの閾値を設定する設定方法を説明する説明図である。
【図１６】第２実施形態における二値化処理のサブルーチンを例示するフローチャートである。
【発明を実施するための形態】
【００２５】
［第１実施形態］
以下、本発明の第１実施形態に係る光学的情報読取装置について図を参照して説明する。図１は、第１実施形態に係る光学的情報読取装置１０の電気的構成を示すブロック図である。
【００２６】
図１に示すように、光学的情報読取装置１０は、物品に付されたバーコードなどの一次元コードや二次元コード等、複数の白色パターン（明色パターン）および黒色パターン（暗色パターン）が配列されてなる情報コードを光学的に読み取る装置として構成されている。この光学的情報読取装置１０は、図示しないケースの内部に回路部２０が収容されてなるものであり、回路部２０は、主に、照明光源２１、受光センサ２８、結像レンズ２７等の光学系と、メモリ３５、制御回路４０、トリガースイッチ４２等のマイクロコンピュータ（以下「マイコン」という）系と、から構成されている。
【００２７】
光学系は、投光光学系と、受光光学系とに分かれている。投光光学系を構成する照明光源２１は、照明光Ｌｆを発光可能な照明光源として機能するもので、例えば、赤色のＬＥＤとこのＬＥＤの出射側に設けられるレンズとから構成されている。なお、図１では、バーコードＣが付された読取対象Ｒに向けて照明光Ｌｆを照射する例を概念的に示している。
【００２８】
受光光学系は、受光センサ２８、結像レンズ２７、反射鏡（図示略）などによって構成されている。受光センサ２８は、バーコードＣ等に照射されて反射した反射光Ｌｒを受光可能に構成されるもので、例えば、Ｃ−ＭＯＳやＣＣＤ等の固体撮像素子である受光素子を２次元に配列したエリアセンサが、これに相当する。この受光センサ２８は、結像レンズ２７を介して入射する入射光を受光可能にプリント配線板（図示略）に実装されている。なお、受光センサ２８は、特許請求の範囲に記載の「撮像手段」の一例に相当し得る。
【００２９】
結像レンズ２７は、外部から読取口１３を介して入射する入射光を集光して受光センサ２８の受光面２８ａに像を結像可能な結像光学系として機能するものである。本実施形態では、照明光源２１から照射された照明光ＬｆがバーコードＣにて反射した後、この反射光Ｌｒを結像レンズ２７で集光し、受光センサ２８の受光面２８ａにコード像を結像させている。
【００３０】
マイコン系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、トリガースイッチ４２、キー操作部４３、液晶表示器４６、通信インタフェース４８等から構成されている。
【００３１】
光学系の受光センサ２８から出力される画像信号（アナログ信号）は、増幅回路３１に入力され所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ（画像情報）は、生成されてメモリ３５に入力されると、所定のコード画像情報格納領域に蓄積される。なお、同期信号発生回路３８は、受光センサ２８およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００３２】
メモリ３５は、半導体メモリ装置で、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ等）がこれに相当する。このメモリ３５のうちのＲＡＭには、上述したコード画像情報格納領域のほかに、制御回路４０が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またＲＯＭには、後述する読取処理や解析処理等を実行可能な所定プログラムやその他、照明光源２１、受光センサ２８等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【００３３】
制御回路４０は、光学的情報読取装置１０全体を制御可能なマイコンによって構成されており、ＣＰＵ、システムバス、入出力インタフェース等を有すると共に、情報処理機能を備えており、メモリ３５とともに情報処理装置を構成している。本実施形態では、制御回路４０に対し、トリガースイッチ４２、キー操作部４３、液晶表示器４６、通信インタフェース４８等が接続されている。
【００３４】
トリガースイッチ４２は、バーコード等の読取対象に対して照射光を照射する際に押圧操作されるスイッチであって、この押圧操作に応じた信号が制御回路４０に入力されるように構成されている。キー操作部４３は、複数個の操作ボタンを備えており、使用者のキー操作に応じた操作信号が制御回路４０に入力されるように構成されている。液晶表示器４６は、制御回路４０によって表示内容が制御されるように構成されている。通信インタフェース４８は、外部装置と通信するためのインタフェースであり、当該外部装置と有線通信を行う有線通信部、或いは無線通信を行う無線通信部、若しくはこれら両方を備えた構成をなしている。
【００３５】
次に、このように構成される光学的情報読取装置１０の制御回路４０にて実行される読取処理について、図を用いて説明する。図２は、第１実施形態における読取処理の流れを例示するフローチャートである。図３は、図２中の二値化処理のサブルーチンを例示するフローチャートである。図４（Ａ）は、対象画像Ｐｏを示す説明図であり、図４（Ｂ）は、図４（Ａ）に示す対象画像Ｐｏを低解像度化した低解像度画像Ｐａを示す説明図である。図５は、図４（Ｂ）に示す低解像度画像Ｐａを構成する各画素の輝度値を示す説明図である。図６（Ａ）は、中心が画素（３，３）に位置するスコア算出枠Ｓを示す説明図であり、図６（Ｂ）は、図６（Ａ）に位置するスコア算出枠Ｓで算出したスコア値を示す説明図であり、図６（Ｃ）は、中心が画素（４，３）に位置するスコア算出枠Ｓを示す説明図であり、図６（Ｄ）は、図６（Ｃ）に位置するスコア算出枠Ｓで算出したスコア値を加算した状態を示す説明図である。図７は、図４（Ｂ）に示す低解像度画像Ｐａを構成する各画素での総スコア値を示す説明図である。図８は、総スコア値に重み付けるするための係数Ｋｗを説明する説明図である。図９は、図７に示す低解像度画像Ｐａの一部を高信頼度画素と低信頼度画素とに分類した状態を示す説明図である。図１０は、図９に示す高信頼度画素から算出されるエッジを説明する説明図であり、図１０（Ａ）は、Ｘ方向のエッジＥｘが設定された状態を示し、図１０（Ｂ）は、Ｘ方向のエッジＥｘおよびＹ方向のエッジＥｙが設定された状態を示す。図１１は、図１０（Ｂ）から求められる各基準位置をドットとして示す説明図である。図１２は、図１１に示す二値化基準点に基づいて設定される各分割エリアの設定状態を説明する説明図である。図１３は、低解像度画像Ｐａに対して設定されるグリッドＧの一部を例示する説明図である。図１４は、閾値が二値化基準点の基準輝度値に等しく設定される一部のブロックを示す説明図である。図１５は、各二値化基準点に基づいてブロックＢ（ｘ，ｙ）の閾値Ｖａｌ（ｘ，ｙ）を設定する設定方法を説明する説明図である。
【００３６】
本実施形態では、例えば使用者が所定操作（例えば、トリガースイッチ４２のオン操作）を行うことで、図２に示す読取処理が開始され、ステップＳ１０１に示す撮像処理がなされる。この処理では、まず制御回路４０が同期信号を基準に照明光源２１に発光信号を出力し、当該発光信号を受けた照明光源２１が、ＬＥＤを発光させて照明光Ｌｆを照射する。すると、情報コードＣに照射された照明光Ｌｆが反射し、その反射光Ｌｒが読取口１３を介して結像レンズ２７に入射する。そして、受光センサ２８の受光面２８ａには結像レンズ２７によって情報コードＣの像、つまりコード画像が結像される。これにより、受光センサ２８を構成する各受光素子が露光され、それら各受光素子から情報コードＣを含めた像に応じた受光信号がそれぞれ出力される。これら受光信号は、情報コードＣ１を含めた撮像画像データを構成するものであり、この撮像画像データはメモリ３５に一時的に記憶される。
【００３７】
次に、ステップＳ１０３に示す二値化処理のサブルーチンが実行される。このサブルーチンでは、まず、図３のステップＳ２０１に示す低解像度画像生成処理がなされる。この処理では、ステップＳ１０１にて撮像された撮像画像のうち、情報コードと判定され得る領域を含めた対象画像が抽出されて、この対象画像に対して当該対象画像よりも低い解像度の画素から構成される低解像度画像が生成される。例えば、図４（Ａ）に例示するように画素数が４５０×４５０である対象画像Ｐｏが抽出されると、この対象画像Ｐｏよりも低い解像度の画素、例えば２８×２８の画素数から構成される低解像度画像Ｐａが生成される。なお、二値化処理のサブルーチンを実行する制御回路４０は、特許請求の範囲に記載の「二値化手段」の一例に相当し、低解像度画像生成処理を実行する制御回路４０は、特許請求の範囲に記載の「低解像度画像生成手段」の一例に相当し得る。
【００３８】
続いて、ステップＳ２０３に示す輝度値測定処理がなされ、上述のように生成された低解像度画像Ｐａを構成する各画素の輝度値がそれぞれ測定される。例えば、図４（Ｂ）に例示する低解像度画像Ｐａでは、各画素の輝度値は、図５に例示するように、それぞれ測定される。なお、本実施形態では、輝度値は、０〜２５５で示され、白色に近づくほど、すなわち、明色度合いが高くなるほど数値が高くなり、黒色に近づくほど、すなわち、暗色度合いが高くなるほど数値が低くなる。なお、輝度値測定処理を実行する制御回路４０は、特許請求の範囲に記載の「輝度値測定手段」の一例に相当し得る。
【００３９】
次に、ステップＳ２０５に示すスコア算出枠設定処理がなされ、低解像度画像Ｐａを構成する各画素のうち所定数を囲うスコア算出枠が、低解像度画像Ｐａの左上に設定される。例えば、図５に例示するように各輝度値が算出された低解像度画像Ｐａに対して、枠サイズが５×５からなるスコア算出枠Ｓが、低解像度画像Ｐａの左上に設定される。なお、スコア算出枠Ｓは、枠サイズが５×５の枠として設定されることに限らず、例えば、枠サイズが３×３の枠、９×９の枠などのように正方形状の枠として設定されてもよいし、例えば、枠サイズが５×７の枠などのように長方形状の枠として設定されてもよい。
【００４０】
続いて、ステップＳ２０７に示すスコア値加算処理がなされる。この処理では、スコア算出枠Ｓ内に位置する各画素の輝度値の枠内平均値が相加平均により算出され、この枠内平均値と当該スコア算出枠Ｓ内に位置する各画素の輝度値とがそれぞれ比較される。そして、枠内平均値よりも大きな輝度値の画素に対して、明色領域である可能性が高いとして一定のスコア値、例えば１が加算される。一方、残りの枠内平均値以下の輝度値の画素に対しては、暗色領域である可能性が高いことから、スコア値は加算されない。
【００４１】
具体的には、図６（Ａ）に例示するように、中心が画素（３，３）に位置するスコア算出枠Ｓ内に位置する各画素の輝度値の枠内平均値が１６２として算出されると、図６（Ｂ）に例示するように、この枠内平均値よりも大きな輝度値の画素のみに対して、一定のスコア値として１が加算される。この場合、枠内平均値以下の輝度値の画素には一定のスコア値が加算されずに、０のままとなる。
【００４２】
次に、ステップＳ２０９に示す判定処理によりスコア算出枠Ｓの移動が終了したか否かについて判定される。ここで、スコア算出枠Ｓが後述するように低解像度画像Ｐａの右下まで移動していない場合には、スコア算出枠Ｓの移動が終了していないとして（Ｓ２０９でＮｏ）、ステップＳ２１１に示すスコア算出枠移動処理がなされる。この処理では、スコア算出枠Ｓが所定画素、例えば１画素分だけ右方向に移動するように設定される。なお、スコア算出枠Ｓが右端まで移動すると、例えば、そこから左端に移動した後に１画素分だけ下方向に移動するように設定される。
【００４３】
そして、再び上記スコア値加算処理がなされ、移動後のスコア算出枠Ｓ内での枠内平均値と当該スコア算出枠Ｓ内に位置する各画素の輝度値とをそれぞれ比較し、枠内平均値よりも大きな輝度値の画素に対して上記一定のスコア値１が加算される。
【００４４】
具体的には、図６（Ｃ）に例示するように、移動したことで中心が画素（４，３）に位置するスコア算出枠Ｓ内に位置する各画素の輝度値の枠内平均値が１４１として算出されると、図６（Ｄ）に例示するように、この枠内平均値よりも大きな輝度値の画素のみに対して、一定のスコア値として１が加算される。このため、２度とも明色領域として判定される画素では、スコア値がさらに１加算されて総スコア値が２になり、２度とも暗色領域として判定される画素では、総スコア値が０になる。一方、２度のスコア値加算処理で異なる判定がなされる画素では、総スコア値が１になる。
【００４５】
そして、スコア算出枠Ｓの移動が終了していないことから（Ｓ２０９でＮｏ）、再び上記スコア算出枠移動処理がなされて、中心が画素（５，３）に位置するスコア算出枠Ｓについて、再び上記スコア値加算処理がなされる。このようなスコア算出枠Ｓの移動と移動先でのスコア値加算処理とを繰り返して当該スコア算出枠Ｓを満遍なく移動させて、最終移動先に位置するスコア算出枠Ｓについて、上記スコア値加算処理がなされると、低解像度画像Ｐａを構成する各画素についての総スコア値の算出が終了する。なお、スコア算出枠設定処理、スコア値加算処理およびスコア算出枠移動処理を実行する制御回路４０は、特許請求の範囲に記載の「総スコア値算出手段」の一例に相当し得る。
【００４６】
図７は、上述のように算出された各総スコア値を、対応する画素上に表示して示しており、総スコア値が２５に近い画素ほど明色領域の可能性が高い画素であり、総スコア値が０に近い画素ほど暗色領域の可能性が高い画素であることがわかる。一方、総スコア値が２５および０の中間値の値に近い画素は、スコア算出枠Ｓの位置によって明色領域と判定される場合や暗色領域と判定される場合がある画素であり、信頼性が低い画素であることがわかる。なお、５×５からなるスコア算出枠Ｓを採用するため、総スコア値の最大値が２５に設定されているが、異なる種類のスコア算出枠を採用する場合には、このスコア算出枠が囲う画素数に応じて、総スコア値の最大値が変化することとなる。
【００４７】
なお、単なるスコア算出枠Ｓの移動では、低解像度画像Ｐａを構成する各画素のうち上下左右の端部について、移動するスコア算出枠Ｓ内に入る回数が端部ほど低くなって総スコアの最大値が中央部に比べて低くなる。そこで、低解像度画像Ｐａを構成する全ての画素での総スコアの最大値が等しくなるように、画素位置によって重みを付ける。例えば、低解像度画像Ｐａが１５×１５の画素数から構成される場合には、図８に例示するように、低解像度画像Ｐａの上下左右の端部を構成するエリアＡ１〜Ａ８に対して、算出された総スコア値に対して乗算される係数Ｋｗが設定される。
【００４８】
具体的には、図８に示すエリアＡ１では、以下の式（１）により、係数Ｋｗが設定される。
Ｋｗ＝（Ｓｘ×Ｓｙ）／｛（ｘ＋１）×（ｙ＋１）｝              ・・・（１）
ここで、ＳｘおよびＳｙは、スコア算出枠Ｓの枠サイズであり、枠サイズが５×５に設定されている場合には、Ｓｘ＝５、Ｓｙ＝５に設定される。また、式（１）および以下に示す式（２）〜（４）にて示すｘは、横方向の座標を示す数値であって、図８の低解像度画像Ｐａの上側に示す数値であり、ｙは、縦方向の座標を示す数値であって、図８の低解像度画像Ｐａの左側に示す数値である。
【００４９】
また、エリアＡ２では、以下の式（２）により、係数Ｋｗが設定される。
Ｋｗ＝（Ｓｘ×Ｓｙ）／｛Ｓｘ×（ｙ＋１）｝                    ・・・（２）
また、エリアＡ３では、以下の式（３）により、係数Ｋｗが設定される。
Ｋｗ＝（Ｓｘ×Ｓｙ）／｛（ＷＩＤＴＨ−ｘ）×（ｙ＋１）｝      ・・・（３）
ここで、ＷＩＤＴＨは、低解像度画像Ｐａの横方向サイズであり、図８の例では、１５に設定される。
また、エリアＡ４では、以下の式（４）により、係数Ｋｗが設定される。
Ｋｗ＝（Ｓｘ×Ｓｙ）／｛（ｘ＋１）×Ｓｙ｝                    ・・・（４）
また、エリアＡ３では、以下の式（３）により、係数Ｋｗが設定される。
【００５０】
そして、低解像度画像Ｐａが正方形状の画素から構成されていることから、エリアＡ５の各係数Ｋｗは、エリアＡ４の各係数Ｋｗに対して対称となるようにそれぞれ設定される。また、エリアＡ６の各係数Ｋｗは、エリアＡ３の各係数Ｋｗに対して対称となるようにそれぞれ設定され、エリアＡ７の各係数Ｋｗは、エリアＡ２の各係数Ｋｗに対して対称となるようにそれぞれ設定され、エリアＡ８の各係数Ｋｗは、エリアＡ１の各係数Ｋｗに対して対称となるようにそれぞれ設定される。
【００５１】
上述のようにスコア算出枠Ｓの移動が終了して低解像度画像Ｐａを構成する各画素について総スコア値がそれぞれ算出されると（Ｓ２０９でＹｅｓ）、ステップＳ２１３に示す高信頼度画素設定処理がなされる。この処理では、明色領域とみなされる程度に総スコア値が高い画素（以下、高スコア画素という）と、暗色領域とみなされる程度に総スコア値が低い画素（以下、低スコア画素という）とが、高信頼度画素として設定される。
【００５２】
例えば、総スコア値が１８以上である画素を高スコア画素Ｐｗとし、総スコア値が７以下である画素を低スコア画素Ｐｂとする場合に、高スコア画素Ｐｗに白色を付し、低スコア画素Ｐｂに黒色を付し、高スコア画素Ｐｗおよび低スコア画素Ｐｂのいずれとも異なる画素にハッチングを付すと、図９に示すように分類される。図９からわかるように、白色が付される高スコア画素Ｐｗと黒色が付される低スコア画素Ｐｂが高信頼度画素として設定される画素であり、一方、ハッチングが付される残りの画素が信頼度の低い低信頼度画素Ｐｘとみなされる。
【００５３】
このように高信頼度画素が設定されると、ステップＳ２１５に示す二値化基準点設定処理がなされる。この処理では、上述のように設定された各高信頼度画素の位置とその輝度値とに基づいて、二値化判定に用いる閾値を求めるための二値化基準点（基準位置および基準輝度値）が設定される。
【００５４】
この二値化基準点設定処理について、図１０および図１１を用いて詳細に説明する。なお、図１０および図１１では、図中右方向をＸ方向、図中下方向をＹ方向として説明する。
まず、図１０（Ａ）のＹ方向に沿う太線にて示すように、高スコア画素Ｐｗとこの高スコア画素ＰｗからＸ方向にて最も近くに位置する低スコア画素Ｐｂとの中間に位置する辺と、低スコア画素Ｐｂとこの低スコア画素ＰｂからＸ方向にて最も近くに位置する高スコア画素Ｐｗとの中間に位置する辺とが、Ｘ方向のエッジＥｘとして算出される。このとき、各エッジＥｘを中間位置とする高スコア画素Ｐｗおよび低スコア画素Ｐｂの輝度値の平均値が、そのエッジＥｘの輝度値としてそれぞれ算出される。
【００５５】
次に、図１０（Ｂ）のＸ方向に沿う太線にて示すように、高スコア画素Ｐｗとこの高スコア画素ＰｗからＹ方向にて最も近くに位置する低スコア画素Ｐｂとの中間に位置する辺と、低スコア画素Ｐｂとこの低スコア画素ＰｂからＹ方向にて最も近くに位置する高スコア画素Ｐｗとの中間に位置する辺とがさらにエッジＥｙとして算出される。このとき、各エッジＥｙを中間位置とする高スコア画素Ｐｗおよび低スコア画素Ｐｂの輝度値の平均値が、そのエッジＥｙの輝度値としてそれぞれ算出される。
【００５６】
上述のように各エッジＥｘ，Ｅｙとその輝度値とがそれぞれ算出されると、図１１のドットにて示す各エッジの中間位置が、二値化基準点を構成する基準位置としてそれぞれ設定され、その基準位置での基準輝度値が当該エッジの輝度値に等しくなるように設定される。なお、エッジＥｘおよびエッジＥｙの双方が算出される画素（例えば、図１１の画素（２，２））では、その画素の中心が、二値化基準点を構成する基準位置として設定され、その基準位置での基準輝度値がエッジＥｘの輝度値とエッジＥｙの輝度値との平均値に等しくなるように設定される。これにより、二値化判定に用いる二値化基準点（基準位置および基準輝度値）が設定されることとなる。
【００５７】
続いて、ステップＳ２１７に示す閾値マップ作成処理がなされる。この処理では、上述のように設定された二値化基準点に基づいて、低解像度画像Ｐａの原画像である対象画像Ｐｏにおいて、当該対象画像Ｐｏを構成する各画素が白色パターン（明色パターン）および黒色パターン（暗色パターン）のいずれであるかを判定する閾値を求めるための閾値マップが作成される。
【００５８】
具体的には、まず、図１２に示すように、近傍の基準位置同士を結ぶことで各基準位置を頂点とする三角形状の分割エリアを複数設定する。このように複数の分割エリアを設定する理由は、対象画像Ｐｏの撮像状態や高信頼度画素の算出方法によって、基準位置がランダムに設定されることとなり、基準位置での基準輝度値を閾値としてそのまま使用することができないからである。なお、近傍の基準位置同士を結ぶことで各基準位置を頂点とする三角形状の分割エリアを複数分割する分割方法としては、例えば、ドロネー三角形分割法を採用することができる。
【００５９】
上述のように複数の分割エリアが設定されると、図１３に示すように、低解像度画像Ｐａを２倍精度にして各二値化基準点の基準位置が中央に位置するように、グリッドＧを設定する。このグリッドＧは、上述のように低解像度画像Ｐａが２８×２８の画素数から構成される場合には、５６×５６のブロックＢ（ｘ，ｙ）から構成されるグリッドとして設定される。そして、二値化基準点の基準位置が中央に位置するブロックの閾値は、図１４に示すように、その基準位置での基準輝度値に等しくなるように設定される。
【００６０】
そして、残りの各ブロックの閾値は、図１５に例示するようにして設定される。すなわち、図１５に示すように、閾値を設定すべきブロックＢ（ｘ，ｙ）が含まれる分割エリアを構成する３つの二値化基準点の基準輝度値をＶａｌａ、Ｖａｌｂ，Ｖａｌｃとし、これら各二値化基準点の基準位置からブロックＢ（ｘ，ｙ）の中心位置までの距離をＬａ，Ｌｂ，Ｌｃとすると、当該ブロックＢ（ｘ，ｙ）に設定される閾値Ｖａｌ（ｘ，ｙ）は、以下の式（５）により求められる。
Ｖａｌ（ｘ，ｙ）＝（Ｌａ×Ｖａｌａ＋Ｌｂ×Ｖａｌｂ＋Ｌｃ×Ｖａｌｃ）
／（Ｌａ＋Ｌｂ＋Ｌｃ）  ・・・（５）
このように、残りの各ブロックについて、各二値化基準点の基準輝度値とその基準位置とから上記式（５）に基づいて、閾値がそれぞれ求められることで、閾値マップの作成が完了する。なお、高信頼度画素設定処理、二値化基準点設定処理および閾値マップ作成処理を実行する制御回路４０は、特許請求の範囲に記載の「閾値設定手段」の一例に相当し得る。
【００６１】
上述のように各ブロックごとに閾値が設定された閾値マップが作成されると、ステップＳ２１９に示す区分処理がなされる。この処理では、対象画像Ｐｏを構成する各画素について、その輝度値と当該画素が含まれる閾値マップのブロックを求めてそのブロックに設定される閾値とが比較されることで、当該画素が白色パターン（明色パターン）および黒色パターン（暗色パターン）のいずれであるか二値化されるように区分される。
【００６２】
このような二値化処理では、周囲の画素のうち信頼性が高い高スコア画素や低スコア画素を反映して、各ブロックごとに閾値がそれぞれ設定されるため、上記対象画像Ｐｏ内での照度ムラ等の影響が緩和されて、各閾値を高精度に設定することができる。このようにして、対象画像Ｐｏを構成する各画素の全てが二値化されることで、二値化処理のサブルーチンが終了する。なお、区分処理を実行する制御回路４０は、特許請求の範囲に記載の「区分手段」の一例に相当し得る。
【００６３】
上述のように二値化処理のサブルーチンが終了すると、図２のステップＳ１０５に示すデコード処理がなされる。この処理では、二値化処理にて二値化された白色パターンおよび黒色パターンの配列等に基づいて公知のデコード処理が実施される。そして、上記デコード処理によるデコードが成功して、情報コードとして符号化された文字データ等が取得されると、ステップＳ１０７に示す判定処理にてＹｅｓと判定される。そして、ステップＳ１０９に示す出力処理がなされ、上記デコード処理により取得された文字データ等が通信インタフェース４８を介して外部機器等の上位システムに出力（送信）される。
【００６４】
以上説明したように、本実施形態に係る光学的情報読取装置１０では、撮像された撮像画像を構成する各画素を明色領域および暗色領域のいずれかに区分け可能な二値化処理は、上記対象画像Ｐｏに対して低解像度画像Ｐａが生成されその各画素の輝度値がそれぞれ測定されると、スコア算出枠Ｓを所定画素ずつ移動させてその移動ごとに当該スコア算出枠Ｓ内に位置する各画素のうち枠内平均値を基準に明色領域に判定される画素に対して一定のスコア値を加算することで、上記低解像度画像Ｐａを構成する全ての画素にて総スコア値をそれぞれ算出する。そして、近くに位置する高スコア画素Ｐｗおよび低スコア画素Ｐｂの中間位置での所定の閾値を、これら両画素の輝度値の平均値に等しくする設定を、Ｘ方向およびＹ方向について実施することで、所定の閾値がブロックごとに複数箇所設定されると、上記対象画像Ｐｏを構成する各画素が、設定された複数箇所の閾値に基づいて、明色領域および暗色領域のいずれかに区分けされる。
【００６５】
このように設定される複数箇所の閾値は、周囲の画素のうち信頼性が高い高スコア画素Ｐｗおよび低スコア画素Ｐｂの明暗が上記中間位置ごとに反映されて設定されるので、上記対象画像Ｐｏ内での照度ムラ等の影響が緩和されて、複数箇所の閾値を高精度に設定することができる。
したがって、上述のように設定された複数箇所の閾値に基づいて、コード画像の各画素をそれぞれ明色領域および暗色領域のいずれかに区分けすることで、撮像した情報コードを複雑な処理を行うことなく高精度に二値化することができる。
【００６６】
また、本実施形態では、近くに位置する高スコア画素Ｐｗおよび低スコア画素Ｐｂの中間位置での所定の閾値を、これら両画素の輝度値の平均値に等しくする設定を、Ｘ方向およびＹ方向、すなわち、複数の高スコア画素Ｐｗおよび複数の低スコア画素Ｐｂの全ての画素について実施することで、所定の閾値が複数箇所設定される。これにより、設定される閾値の数が多くなるので、二値化に関する精度をさらに向上させることができる。
【００６７】
なお、近くに位置する高スコア画素Ｐｗおよび低スコア画素Ｐｂの中間位置での所定の閾値を、これら両画素の輝度値の平均値に等しくする設定を、例えば、Ｘ方向のみまたはＹ方向のみなど、少なくとも高信頼度画素のうちの一部について実施することで、所定の閾値を複数箇所設定してもよい。これにより、設定される閾値の数を適度に限定して二値化に関する処理負荷を軽減することができる。
【００６８】
また、高スコア画素Ｐｗを基準に二値化基準点を設定してもよい。すなわち、高スコア画素Ｐｗとこの高スコア画素ＰｗからＸ方向にて最も近くに位置する低スコア画素Ｐｂとの中間に位置する辺をＸ方向のエッジＥｘとして算出し、高スコア画素Ｐｗとこの高スコア画素ＰｗからＹ方向にて最も近くに位置する低スコア画素Ｐｂとの中間に位置する辺をＹ方向のエッジＥｙとして算出して、二値化基準点を設定することができる。
【００６９】
また、低スコア画素Ｐｂを基準に二値化基準点を設定してもよい。すなわち、低スコア画素Ｐｂとこの低スコア画素ＰｂからＸ方向にて最も近くに位置する高スコア画素Ｐｗとの中間に位置する辺をＸ方向のエッジＥｘとして算出し、低スコア画素Ｐｂとこの低スコア画素ＰｂからＹ方向にて最も近くに位置する高スコア画素Ｐｗとの中間に位置する辺をＹ方向のエッジＥｙとして算出して、二値化基準点を設定することができる。
このようにしても、設定される閾値の数を適度に限定して二値化に関する処理負荷を軽減することができる。
【００７０】
さらに、本実施形態では、高スコア画素Ｐｗおよび低スコア画素Ｐｂの中間位置とその位置に設定される閾値とを関連付けた閾値マップが作成され、上記対象画像Ｐｏを構成する各画素が、上記閾値マップに基づいて、明色領域および暗色領域のいずれかに区分けされる。このように作成される閾値マップに基づいて、区分けすべき画素の位置から区分けに用いる閾値が採用されるので、多くの閾値が様々な位置に設定される場合でも、上記対象画像Ｐｏを構成する各画素を容易に明色領域および暗色領域のいずれかに区分けすることができる。
【００７１】
なお、上述したステップＳ２１７に示す閾値マップ作成処理では、二値化基準点に基づいて、複数の分割エリアを設定して上述した２倍精度のブロックごとに閾値を設定することに限らず、当該二値化処理における閾値の設定精度をさらに向上させるために、さらに小さなブロック（例えば、１１２×１１２のブロック）を設定しこのブロックごとに閾値を設定して閾値マップを作成してもよいし、対象画像Ｐｏを構成する各画素ごとに閾値を設定して閾値マップを作成してもよい。
【００７２】
また、当該閾値マップ作成処理では、上述のようにエッジＥｘおよびエッジＥｙや式（５）からブロックごとに閾値が求められると、全体の二値化結果を安定させるために、各閾値を、複数のブロック単位で移動平均等により平滑化してもよい。
【００７３】
また、上述したステップＳ２１９に示す区分処理では、対象画素の輝度値と上述のようにブロック単位で設定された閾値とを比較して区分することに限らず、高精度な閾値を算出するために、対象画素が属するブロックの閾値と当該対象画素の近くに位置する３ブロックの閾値とで４点線形補間を実施することで閾値を算出して、この算出した閾値と対象画素の輝度値とを比較して区分してもよい。
【００７４】
また、閾値マップを作成することなく、上述したステップＳ２１９に示す区分処理を実行する際に、対象画素の近くに位置する１または２以上の二値化基準点に基づいて閾値を設定し、この閾値に基づいて区分してもよい。このとき、対象画素の近くに位置する２以上の二値化基準点に基づいて閾値を設定することで、対象画素の近くに位置する１の二値化基準点に基づいて閾値を設定する場合と比較して、二値化に関する精度を向上させることができる。
【００７５】
また、ステップＳ２０１に示す低解像度画像生成処理では、コード画像を含めた対象画像Ｐｏについて低解像度画像を生成することに限らず、コード画像を事前に抽出し、このように抽出されたコード画像のみに対して、当該コード画像よりも低い解像度の画素から構成される低解像度画像を生成してもよい。これにより、デコードに必要な画像、すなわちコード画像に限定されて二値化がなされるので、二値化に関する処理負荷を軽減することができる。
【００７６】
［第２実施形態］
次に、本発明の第２実施形態に係る光学的情報読取装置について図１６を参照して説明する。図１６は、第２実施形態における二値化処理のサブルーチンを例示するフローチャートである。
本第２実施形態に係る光学的情報読取装置１０では、二値化に関する精度をさらに向上させるため、上述した二値化処理のサブルーチンについて図３に示すフローチャートに代えて図１６に示すフローチャートに基づいて演算処理している点が、上記第１実施形態に係る光学的情報読取装置と主に異なる。
【００７７】
本第２実施形態では、上述した二値化処理のサブルーチンにおいて、二値化に関する精度をさらに向上させるため、総スコア値を算出する際に、それぞれ囲う画素の数が異なる２種以上のスコア算出枠Ｓｋ、例えば３×３の枠や７×７の枠などを採用し、それぞれのスコア算出枠Ｓｋを移動させて、総スコア値をそれぞれ算出する。
【００７８】
以下、本第２実施形態における二値化処理のサブルーチンについて、図１６に示すフローチャートを用いて詳細に説明する。
上述した第１実施形態の二値化処理のサブルーチンと同様にステップＳ２０３に示す輝度値測定処理がなされると、図１６のステップＳ３０１に示すようにスコア算出枠のサイズを示すｋがｋ＝３に設定される。続いて、ステップＳ３０３に示すスコア算出枠設定処理がなされ、ｋ＝３に設定されていることから、３×３のスコア算出枠Ｓｋが設定される。
【００７９】
このようにスコア算出枠Ｓｋ（３×３）が設定されると、上述したステップＳ２０７に示すスコア値加算処理がなされ、移動終了となるまで、明色領域である可能性が高い画素に対して一定のスコア値が加算される。そして、スコア算出枠Ｓｋ（３×３）に関して低解像度画像Ｐａの右下まで移動したことからステップＳ２０９にてＹｅｓと判定されると、ステップＳ３０５に示す判定処理にて、スコア算出枠のサイズを示すｋがｎに等しいか否かについて判定される。
【００８０】
ここで、ｎは、総スコア値を算出するために採用されるスコア算出枠Ｓｋの種類数を設定するための値であり、例えば、ｎ＝５に設定されている。このように、ｎ＝５に設定されることで、本二値化処理では、スコア算出枠Ｓｋとして、３×３、４×４、５×５の３種類のスコア算出枠Ｓｋを用いて、明色領域である可能性が高い画素に対して一定のスコア値が加算されることとなる。
【００８１】
上述のようにｋ＝３に設定されていることから、ステップＳ３０５にてＮｏと判定されると、ステップＳ３０７に示すようにｋに１が加算されてｋ＝４となり、上述したステップＳ３０３に示すスコア算出枠設定処理がなされ、４×４のスコア算出枠Ｓｋが設定される。このようにスコア算出枠Ｓｋ（４×４）が設定されると、再びステップＳ２０７に示すスコア値加算処理がなされ、移動終了となるまで、明色領域である可能性が高い画素に対して一定のスコア値が加算される。そして、スコア算出枠Ｓｋ（４×４）に関して低解像度画像Ｐａの右下まで移動したことからステップＳ２０９にてＹｅｓと判定され、ｋ＝４であることからステップＳ３０５にてＮｏと判定されると、ステップＳ３０７に示すようにｋに１が加算されてｋ＝５となり、上述したステップＳ３０３に示すスコア算出枠設定処理がなされ、５×５のスコア算出枠Ｓｋが設定される。このようにスコア算出枠Ｓｋ（５×５）が設定されると、再びステップＳ２０７に示すスコア値加算処理がなされ、移動終了となるまで、明色領域である可能性が高い画素に対して一定のスコア値が加算される。
【００８２】
そして、スコア算出枠Ｓｋ（５×５）に関して低解像度画像Ｐａの右下まで移動したことからステップＳ２０９にてＹｅｓと判定され、ｋ＝５であることからステップＳ３０５にてＹｅｓと判定されると、上述したステップＳ２１３以降の処理がなされる。すなわち、本二値化処理では、３種類のスコア算出枠Ｓｋ（３×３、４×４、５×５）を用いて、明色領域である可能性が高い画素に対して一定のスコア値が加算されて総スコア値が算出されることとなる。なお、上述のように３種類のスコア算出枠Ｓｋ（３×３、４×４、５×５）を用いる場合には、総スコア値の最大値は、５０（＝９＋１６＋２５）に設定される。
【００８３】
以上説明したように、本実施形態に係る光学的情報読取装置１０では、それぞれ囲う画素の数が異なる２種以上のスコア算出枠Ｓｋを用いて総スコア値をそれぞれ算出するため、１つのスコア算出枠Ｓのみを移動させてスコア値を加算する場合と比較して、周囲の画素の明暗がより反映されて各閾値が設定されるので、二値化に関する精度をさらに向上させることができる。
【００８４】
なお、スコア算出枠Ｓｋは、３×３、４×４、５×５の３種類を採用することに限らず、ｎを適宜設定することで、複数種類のスコア算出枠Ｓｋを採用することができる。また、正方形状の枠として設定されてもよいし、例えば、５×７の枠などのように長方形状の枠として設定されてもよい。
【００８５】
また、上述のように２種以上のスコア算出枠Ｓｋが設定される場合には、これら各スコア算出枠Ｓｋをそれぞれ移動させたとき、これらスコア算出枠Ｓｋ内の中央に位置する１または２以上の一部の画素のみをスコア値加算対象とし、当該一部の画素のうち枠内平均値を基準に一方の領域に判定される画素に対して一定のスコア値を加算して、総スコア値を算出してもよい。すなわち、移動先のスコア算出枠Ｓｋ内の全ての画素にスコア値を加算することなく中央に位置する１または２以上の画素にのみスコア値を加算するようにしてもよい。このように、中央に位置する画素にのみスコア値を加算することで、その画素とスコア算出枠Ｓとの位置関係が一定に保たれやすくなり、周囲の画素の明暗をより正確に反映した閾値を設定することができる。
【００８６】
なお、本発明は上記各実施形態および変形例などに限定されるものではなく、以下のように具体化してもよい。
（１）上述したステップＳ２１１に示すスコア算出枠移動処理では、スコア算出枠Ｓ，Ｓｋが１画素分だけ移動するように設定されることに限らず、低解像度画像Ｐａ内を満遍なく移動することを前提に、例えば、２画素分だけ移動するように設定されてもよいし、所定方向に所定画素分だけ移動するように設定されてもよし、ランダムに移動するように設定されてもよい。
【００８７】
（２）スコア算出枠Ｓ，Ｓｋ内に位置する各画素の輝度値の枠内平均値は、上述したように相加平均により算出されることに限らず、例えば、中央ほど重みをつけて枠内平均値を算出してもよい。
【００８８】
（３）上述したステップＳ２１３に示す高信頼度画素設定処理では、総スコア値が１８以上である画素を高スコア画素Ｐｗと設定することに限らず、予め設定される所定の閾値以上である画素を高スコア画素Ｐｗと設定することができる。この所定の閾値は、撮像された対象画像Ｐｏの撮像状況等に応じて設定されるように構成されてもよい。また、高信頼度画素設定処理では、総スコア値が７以下である画素を低スコア画素Ｐｂと設定することに限らず、予め設定される所定の閾値以上である画素を低スコア画素Ｐｂと設定することができ、この所定の閾値は、撮像された対象画像Ｐｏの撮像状況等に応じて設定されるように構成されてもよい。
【符号の説明】
【００８９】
１０…光学的情報読取装置
２８…受光センサ（撮像手段）
４０…制御回路（二値化手段，デコード手段，低解像度画像生成手段，輝度値測定手段，総スコア値算出手段，閾値設定手段，区分手段）
Ｃ…情報コード
Ｐａ…低解像度画像
Ｐｏ…対象画像
Ｐｗ…高スコア画素
Ｐｂ…低スコア画素
Ｐｘ…低信頼度画素
Ｓ，Ｓｋ…スコア算出枠
【図１】
0005660465.tif 000002
【図２】
0005660465.tif 000003
【図３】
0005660465.tif 000004
【図８】
0005660465.tif 000005
【図９】
0005660465.tif 000006
【図１０】
0005660465.tif 000007
【図１１】
0005660465.tif 000008
【図１２】
0005660465.tif 000009
【図１３】
0005660465.tif 000010
【図１４】
0005660465.tif 000011
【図１５】
0005660465.tif 000012
【図１６】
0005660465.tif 000013
【図４】
0005660465.tif 000014
【図５】
0005660465.tif 000015
【図６】
0005660465.tif 000016
【図７】
0005660465.tif 000017