(57)【特許請求の範囲】
【請求項１】
２次元コードの存在する領域を抽出する２次元コード領域抽出方法であって、
２次元コードが含まれる画像データを縦・横に走査するステップと、
走査した画素の白黒階調を判定し、所定画素以上の白画素が続いた部分を余白部分として少なくとも２つ以上検出するステップと、
検出した前記余白部分の間に存在する非余白部分の距離とその中心座標を算出するステップと、
縦と横方向に存在する非余白部分の長さと中心座標を比較して２次元コードの存在を判定し、２次元コード候補領域として検出するステップと
を有することを特徴とする２次元コード領域抽出方法。
【請求項２】
前記２次元コード候補領域検出ステップでは、複数の２次元コード候補領域を検出し、これら２次元コード候補領域を比較して２次元コード候補領域に順位をつけることを特徴とする請求項１記載の２次元コード領域抽出方法。
【請求項３】
前記余白部分検出ステップでは、２次元コードの周囲に存在する余白部分を検出することを特徴とする請求項１記載の２次元コード領域抽出方法。
【請求項４】
前記走査ステップでは、画像データを一定間隔で走査することを特徴とする請求項１記載の２次元コード領域抽出方法。
【請求項５】
前記一定間隔は、画像データ上において取り得る最小の２次元コードを構成する一辺の長さの１／２以下であることを特徴とする請求項４記載の２次元コード領域抽出方法。
【請求項６】
２次元コードが含まれる画像データを縦・横に走査する走査手段と、
走査した画素の白黒階調を判定し、所定画素以上の白画素が続いた部分を余白部分として少なくとも２つ以上検出する余白部分検出手段と、
検出した前記余白部分の間に存在する非余白部分の距離とその中心座標を算出する非余白部分算出手段と、
縦と横方向に存在する非余白部分の長さと中心座標を比較して２次元コードの存在を判定し、２次元コード候補領域として検出する２次元コード候補領域抽出手段と
を備えることを特徴とする２次元コード領域抽出装置。
【請求項７】
前記２次元コード候補領域抽出手段により検出した複数の２次元コード候補領域を比較して２次元コード候補領域に順位をつける順位決定手段をさらに備えることを特徴とする請求項６記載の２次元コード領域抽出装置。
【請求項８】
２次元バーコードシンボルを読み込み可能な電子機器において、
請求項６又は７に記載の２次元コード領域抽出装置を備えることを特徴とする電子機器。
【請求項９】
２次元コードが含まれる画像データを縦・横に走査するステップと、走査した画素の白黒階調を判定し、所定画素以上の白画素が続いた部分を余白部分として少なくとも２つ以上検出するステップと、検出した前記余白部分の間に存在する非余白部分の距離とその中心座標を算出するステップと、縦と横方向に存在する非余白部分の長さと中心座標を比較して２次元コードの存在を判定し、２次元コード候補領域として検出するステップとをコンピュータに実行させるためのプログラム。
【請求項１０】
２次元コードが含まれる画像データを縦・横に走査するステップと、走査した画素の白黒階調を判定し、所定画素以上の白画素が続いた部分を余白部分として少なくとも２つ以上余白部分を検出するステップと、検出した前記余白部分の間に存在する非余白部分の距離とその中心座標を算出するステップと、縦と横方向に存在する非余白部分の長さと中心座標を比較して２次元コードの存在を判定し、２次元コード候補領域として検出するステップとをコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元コードの存在する領域を抽出する２次元コード領域抽出方法、２次元コード領域抽出装置、電子機器、２次元コード領域抽出プログラム及びそのプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
近年、小型で、低消費電力のイメージセンサが開発されたことに伴い、携帯電話機などの携帯型装置にカメラを内蔵することが可能となり、内蔵カメラにより撮影した画像を、電子メールで即座に送信できることが可能となっている。これらの内蔵カメラは、小型であることが優先され、一般的なデジタルカメラよりも解像度が低い。【０００３】
また、近年の携帯電話機は、インターネットに接続する機能を有している。インターネットに接続するには、ＵＲＬ（Uniform Resource Locator）をキーから入力する必要があり、携帯電話機のキーでは、長いＵＲＬを打ち込むために手間がかかっていた。そこで、ＵＲＬを一意の番号で管理し、その番号に対応するバーコードシンボル（以下、適宜バーコードと略称する）を印刷したものをバーコードリーダで読み込むことにより、ＵＲＬの入力の手間を省き、ユーザの使い勝手をよくする試みがなされている。このような装置では、別途バーコードリーダを携帯電話機に接続する必要がある。【０００４】
そこで、カメラを内蔵した携帯装置では、その内蔵カメラにより入力したバーコード画像に対してバーコードを認識できれば、別途バーコードリーダを用意しなくても、このようなサービスを利用することができる。【０００５】
バーコードや２次元コードを２次元画像検出手段にて２次元的な画像データとして検出し、その画像データを一時的に記憶した画像データメモリ上を走査してコード読み取りを行う手法が従来から考えられている。しかし、この手法は画像中のどこに２次元コードが存在するのかわからないため画像データ全て、もしくは所定の間隔で全画像領域を操作する必要があり、時間がかかる。【０００６】
この課題を解決する手段として、画像中に存在する２次元コードの領域を抽出する方法が提案されている。【０００７】
例えば、特許文献１には、走査を画像中の同じ方向からでなく、反対方向からも交互に行っているため、画像中の幅全てを走査する必要がなく、時間の短縮を図っている。また、走査中に画素値の変化点を検出すると一定幅の直線を検出し、２次元コードの特徴であるＬ字型を検出する。これにより２次元コードの存在領域を絞り込んでいる。【０００８】
また、特許文献２には、画像データを一定の小さいブロックに分割し、各ブロックの中で簡単に走査してその複雑度を算出している。複雑度とは、しきい値以上の階調差を検出した回数のことを示し、一般的に２次元コードの存在確立が高いブロックほど複雑度は増す。その観点から複雑度の高い順に各ブロックを走査して２次元コードを読み取っている。
【特許文献１】特開２０００−２９３６１５号公報
【特許文献２】特開２００１−２２８８１号公報
【発明の開示】
【０００９】
しかしながら、このような従来の２次元コード存在領域検出方法にあっては以下のような問題点があった。
【００１０】
特許文献１に記載の方法では、２次元コードのＬ字型を検出するため、アルファベット等幾何学模様の入った画像では、誤検出する場合がある。また、ＱＲコード（２次元バーコード）には実線となる辺がないため対応しない。
【００１１】
また、特許文献２に記載の方法では、画像中に２次元コード以外の文字や模様・テクスチャー等、データセルと同様の細かいノイズを含む場合、複雑度は上がってしまう。すなわち、この手法だけでは２次元コードの存在を判定することができず、複雑度の高いものから順にデータを抽出するため、ノイズも高順位で読み取る可能性もある。よって、結果的に時間の短縮にはならない。
【００１２】
本発明は、このような課題に鑑みてなされたものであって、画像データ中に存在する２次元コードをノイズ等に影響されることなく正確、かつ高速に読み取ることのできる２次元コード領域抽出方法、２次元コード領域抽出装置、電子機器、２次元コード領域抽出プログラム及びそのプログラムを記録した記録媒体を提供することを目的とする。
【００１３】
本発明の２次元コード領域抽出方法は、２次元コードの存在する領域を抽出する２次元コード領域抽出方法であって、２次元コードが含まれる画像データを縦・横に走査するステップと、走査した画素の白黒階調を判定し、所定画素以上の白画素が続いた部分を余白部分として少なくとも２つ以上検出するステップと、検出した前記余白部分の間に存在する非余白部分の距離とその中心座標を算出するステップと、縦と横方向に存在する非余白部分の長さと中心座標を比較して２次元コードの存在を判定し、２次元コード候補領域として検出するステップとを有することを特徴としている。また、候補に挙がった領域の位置・大きさをもとに類似する範囲の数を計算し領域候補の順位をつけるステップとを含むことが好ましい。
【００１４】
画像を一定の間隔（カメラ性能に依存した、２次元コードの構成し得る最小画素数から算出した間隔）で走査し、２次元コードの回りに存在する一定幅以上の余白部分（クワイエットゾーン）を検出する。２次元コードを含む座標上を走査した場合、その余白部分は２つ存在することになるので、その特徴を利用している。また、２次元コードはほぼ正方形の特徴を持つので、縦と横に走査し、余白部分の位置と距離の関係から、２次元コードの存在する領域の抽出を行うものである。画像中にある２次元コードの領域を絞り込むことによって認識にかかる時間を短縮することができ、結果的にノイズ等に影響されずに正確、かつ高速に読み取ることができる。また、画像中に複数個の２次元コードが存在した場合にそれらを効率よく読み取ることが可能になる。
【００１５】
前記２次元コード候補領域検出ステップでは、複数の２次元コード候補領域を検出し、これら２次元コード候補領域を比較して２次元コード候補領域に順位をつけることがより好ましい。
【００１６】
前記余白部分検出ステップでは、２次元コードの周囲に存在する余白部分を検出することがより好ましい。
【００１７】
前記走査ステップでは、画像データを一定間隔で走査するものであってもよい。
【００１８】
より好ましい具体的な態様として、前記一定間隔は、画像データ上において取り得る最小の２次元コードを構成する一辺の長さの１／２以下である。
【００１９】
本発明の２次元コード領域抽出装置は、２次元コードが含まれる画像データを縦・横に走査する走査手段と、走査した画素の白黒階調を判定し、所定画素以上の白画素が続いた部分を余白部分として少なくとも２つ以上検出する余白部分検出手段と、検出した前記余白部分の間に存在する非余白部分の距離とその中心座標を算出する非余白部分算出手段と、縦と横方向に存在する非余白部分の長さと中心座標を比較して２次元コードの存在を判定し、２次元コード候補領域として検出する２次元コード候補領域抽出手段とを備えることを特徴としている。
【００２０】
前記２次元コード候補領域抽出手段により検出した複数の２次元コード候補領域を比較して２次元コード候補領域に順位をつける順位決定手段をさらに備えることがより好ましい。
【００２１】
本発明の電子機器は、２次元バーコードシンボルを読み込み可能な電子機器において、上記２次元コード領域抽出装置を備えることを特徴としている。
【００２２】
別の観点から、本発明は、２次元コードが含まれる画像データを縦・横に走査するステップと、走査した画素の白黒階調を判定し、所定画素以上の白画素が続いた部分を余白部分として少なくとも２つ以上検出するステップと、検出した前記余白部分の間に存在する非余白部分の距離とその中心座標を算出するステップと、縦と横方向に存在する非余白部分の長さと中心座標を比較して２次元コードの存在を判定し、２次元コード候補領域として検出するステップとコンピュータに実行させるためのプログラムである。
【００２３】
また、本発明は、２次元コードが含まれる画像データを縦・横に走査するステップと、走査した画素の白黒階調を判定し、所定画素以上の白画素が続いた部分を余白部分として少なくとも２つ以上検出するステップと、検出した前記余白部分の間に存在する非余白部分の距離とその中心座標を算出するステップと、縦と横方向に存在する非余白部分の長さと中心座標を比較して２次元コードの存在を判定し、２次元コード候補領域として検出するステップとコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体である。
【００２４】
以上、詳述したように、本発明によれば、２次元的な画像データを一時的に記憶した画像データメモリ上において２次元コードの存在する領域を抽出する際、２次元コードを効率良く、かつ、正確に読み取ることができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施の形態の２次元コード領域抽出装置及び方法の画像データと走査線の関係を示す図である。
【００２６】
(1)〜(3)：(S1)の処理における走査線、(4)：(S3)の処理における走査線、(5)：(S30)の処理における走査線、Rx：(1)で検出した余白部分から算出した非余白部分(横)の長さ、Ry：(4)で検出した余白部分から算出した非余白部分(縦)の長さ、Rx’：(5)で検出した余白部分から算出した非余白部分(横)の長さ、Px：Rxの中心座標、Py：Ryの中心座標、Px’：Rx’の中心座標
【図２】本実施の形態の２次元コード領域抽出装置の一構成例を示すブロック図である。
【図３】本実施の形態の２次元コードの領域抽出装置及び方法のメインルーチン処理の概要を示すフローチャートである。
【図４】本実施の形態の２次元コード領域抽出装置及び方法がＱＲコードを走査する例を示す図である。
【図５】本実施の形態の２次元コードの領域抽出装置及び方法の２次元コード領域抽出方法の横方向の余白検出を行うルーチン処理を示すフローチャートである。
【図６】本実施の形態の２次元コードの領域抽出装置及び方法の２次元コード候補領域を検出するルーチン処理を示すフローチャートである。
【図７】本実施の形態の２次元コードの領域抽出装置及び方法の２次元コード候補領域を再比較するルーチン処理を示すフローチャートである。
【図８】本実施の形態の２次元コードの領域抽出装置及び方法の２次元コード候補領域の比較を示す図である。
【符号の説明】
【００２７】
１  ２次元コード領域抽出装置（電子機器）
１０  制御部
１１  走査部（走査手段）
１２  余白検出部（余白部分検出手段）
１３  非余白情報算出部（非余白部分算出手段）
１４  比較部（２次元コード候補領域抽出手段）
１５  順位決定部（順位決定手段）
１６  記憶部
Ｈ  入力画像データの高さ
Ｗ  入力画像データの幅
１Ａ、１Ｂ、１Ｃ、１Ｄ  ２次元コード候補領域１を構成する辺
２Ａ、２Ｂ、２Ｃ、２Ｄ  ２次元コード候補領域２を構成する辺
【発明を実施するための最良の形態】
【００２８】
以下、添付図面を参照しながら本発明の好適な２次元コード領域抽出方法、２次元コード領域抽出装置及び電子機器の実施の形態について詳細に説明する。【００２９】
図１は、本発明の実施の形態の２次元コード領域抽出装置及び方法の画像データと走査線の関係を示す図である。【００３０】
より具体的には、図１は、２次元コード領域抽出装置、又は２次元コード領域抽出方法が画像データ上にある２次元コード領域を抽出する際に用いる処理と画像データとの位置関係を示している。本実施の形態では、図１に示す縦Ｈ画素×横Ｗ画素の画像データを例にして説明する。また、画像データ上に存在する２次元コードはＱＲコードである。【００３１】
図２は、２次元コード領域抽出装置の一構成例を示すブロック図である。本実施の形態の２次元コード領域抽出装置及び方法は、カメラ付き携帯電話機／ＰＨＳ（Personal Handy-Phone System）の携帯通信端末に適用することができる。【００３２】
図２において、２次元コード領域抽出装置１は、装置全体を制御する制御部１０と、２次元コードが含まれる画像データを縦・横に走査する走査部１１（走査手段）と、走査した画素の白黒階調を判定し、所定画素以上の白画素が続いた部分を余白部分として少なくとも２つ以上検出する余白検出部１２（余白部分検出手段）と、検出した前記余白部分の間に存在する非余白部分の距離とその中心座標を算出する非余白情報算出部１３（非余白部分算出手段）と、縦と横方向に存在する非余白部分の長さと中心座標を比較して２次元コードの存在を判定し、２次元コード候補領域として検出する比較部１４（２次元コード候補領域抽出手段）と、検出した複数の２次元コード候補領域を比較して２次元コード候補領域に順位をつける順位決定部１５（順位決定手段）と、２次元的な画像データ及び演算データを一時的に記憶する画像データメモリからなる記憶部１６とを含んで構成される。【００３３】
走査部１１は、図１に示すように画像データ中を縦や横に走査し、階調値から白黒の判定を行う。またその走査する範囲、方向は、制御部１０によってその都度指定される。【００３４】
余白検出部１２は、制御部１０を介して、走査部１１で走査した画素が所定以上の長さを持った余白部分であるかどうかを判定し、所定以上の長さを持った余白部分であった場合は記憶部１６に情報を記録する。【００３５】
非余白情報算出部１３は、余白検出部１２で検出した余白情報をもとに非余白部分の長さと中心座標を算出する。【００３６】
比較部１４は、制御部１０を介して縦と横の走査で検出した余白情報をもとにして算出した非余白部分の長さや位置を比較し、２次元バーコードの存在を判定し、２次元コード候補領域を検出する。【００３７】
順位決定部１５は、比較部１４で複数検出した２次元コード候補領域を比較し、最も２次元コードの存在が高い領域を選出する。【００３８】
次に２次元コード領域抽出方法の手順について説明する。【００３９】
図３は、２次元コードの領域抽出装置及び方法のメインルーチン処理の概要を示すフローチャートである。図中、Ｓは本フローのステップを示す。【００４０】
まず、ステップＳ１でカメラ等の画像取り込み手段によって取り込まれた図１の画像データを所定の間隔Ｄごとに水平方向に走査し、一定幅以上の余白部分を検出する。２次元コードにはクワイエットゾーンや、マージンと呼ばれる一定幅以上の余白部分が２次元コードの周辺に必ず存在し、ＱＲコードの場合では余白部分が４セル以上なければならない。図１の(1)のようにＱＲコード上を走査した場合には両端にある２箇所の余白部分を検出することになる。よって、この条件から画像中の何も書かれていない部分や一色に染まっている部分と、２次元コードの存在する部分をおおまかに分けることができる。【００４１】
ところで、ここで述べている間隔Ｄは、『画像データ上において取り得る最小の２次元コードを構成する一辺の長さの１／２以下』で決定され、高速、かつ確実にＱＲコードの存在する領域の判定を可能にしている。検出対象の２次元コードが同じものであっても、２次元画像取り込み手段との位置関係によっては、画像データ中において取り得る２次元コードの画像サイズや位置が異なってくる。一般的に縮小光学系を用いた場合、結像レンズなどの光学系から遠ざかるにつれて検出される２次元コードの画像サイズも小さくなる。但し、焦点距離からのずれが大きくなると読み取れなくなるため、適切な状態で検出されるという条件の下で、画像データ中において取り得る２次元コードの最小サイズが決まってくる。そして『１／２以下』としたのは、２次元コードを大きさに関係なく少なくとも２回は横切らせ、２次元コードの領域抽出を確実に行うことを目的としている。間隔Ｄを『画像データ上において取り得る最小サイズの２次元コードを構成する一辺の長さ』とすると、小さなサイズの２次元コードとそれよりも小さなノイズを多く含んだ画像であった場合、１ライン上で検出する余白部分の数は増加し、本来検出すべき２次元コードの領域だけでなく多くのノイズ領域を２次元コードと誤り、候補として指定してしまう可能性がある。また、図４のように走査する位置が矢印の位置（走査するＱＲコード内に白画素が連続する位置）になってしまうと、後述する縦の余白部分を検出できなくなり、結果的にＱＲコードの形状ではないと判断して候補から外れてしまう可能性もある。【００４２】
このような現象を回避するために、本実施の形態では間隔Ｄを『画像データ中において取り得る最小サイズの２次元コードを構成する一辺の長さの１／２以下』とし、２次元コードの存在する範囲を少なくとも２箇所以上走査させ、２次元コードの大きさに関係なく２次元コードを確実・高速に検出できるようにした。なお、この例では、１セル＝２画素となっているため、画像データ中において取り得るＱＲコードの最小画像サイズは４０画素となる。また余白部分は４セル以上なので１２画素以上白画素が続いた場合を余白部分として検出し、間隔Ｄは２０画素となる。【００４３】
上記ステップＳ１の横方向の余白部分を検出する処理については図５のサブルーチンにより後述する。【００４４】
図３のメインフローに戻って、上記ステップＳ１の横方向の余白部分検出処理を終えると、ステップＳ２で見つかった２つの余白部分から、その間にある非余白部分の情報を算出する処理を行う。この処理では、記録された余白部分の情報（座標位置、長さ）を元に、図１に示すような非余白部分の長さＲｘと、その中心座標Ｐｘを演算し、記録する。また、この処理は上記ステップＳ１の処理で走査した各ライン上で検出された全ての余白部分に対して行われる。このような計算処理が以下の処理でも行われるが、本２次元コード領域抽出方法は全体を通して複雑な計算工程を含まないため、高速化を図れるのである。【００４５】
次いで、ステップＳ３で上記ステップＳ２の処理で算出した横方向の非余白部分の情報を用いて縦方向に走査する。横方向の非余白部分の中心座標Ｐｘを中心にして長さＲｘから求められる一定の範囲を図１の(4)のように垂直方向に走査し、一定幅以上の余白部分を検出する。縦に走査する範囲は２次元コードの両端に存在する２つの余白部分を検出する目的から、中心座標Ｐｘを中心にして横方向の非余白部分の長さＲｘ＋間隔Ｄ×２以上取らなければならない。しかし、前述したように、図４の矢印のような位置を走査してしまうとＲｘは極端に短くなり、縦方向の余白部分の検出はできない可能性がある。この対策として上記ステップＳ１の処理では間隔Ｄを『画像データ上において取り得る最小の２次元コードを構成する一辺の長さの１／２以下』とし、結果的に２次元コードの領域を抽出できるようにしている。また、縦方向の余白部分を検出できなくなる現象自体を解消するために、縦の走査する範囲を若干広く取り、縦方向の余白部分を検出できるようにしている。【００４６】
上記ステップＳ３の処理を行った後、ステップＳ４で余白部分を検出できたか否かを判定する。一定幅以上の余白部分を２つ以上検出しなかった場合、ステップＳ７に進み、検出した場合はステップＳ５に進む。ステップＳ５では、２つの余白部分の間に存在する非余白部分の長さＲｙと、その中心座標Ｐｙを求める。次いで、ステップＳ６で、上記ステップＳ２の処理及びステップＳ５の処理で算出した縦と横の非余白部分の情報を比較し、２次元コードの候補領域を検出する。【００４７】
上記ステップＳ６の２次元コードの候補領域を検出する処理については図６のサブルーチンにより後述する。【００４８】
ステップＳ７では、他の非余白部分（横）があるか否かを判定する。すなわち、ステップＳ７は、上記ステップＳ２の処理で算出した横方向に存在する非余白部分の中でまだ比較処理が行われていないものがあるかどうかを判定する。比較処理をされていない非余白部分がある場合は、ステップＳ８でその非余白部分を選択して上記ステップＳ３に戻り、ステップＳ３から一連の処理を繰り返す。比較処理されていない非余白部分がない場合は、ステップＳ９で２次元コードの候補として挙げられた領域同士を比較し、最も存在する可能性の高い領域を、例えば３つ選出して本フローを終了する。【００４９】
図５は、２次元コード領域抽出方法の横方向の余白検出を行うルーチン処理を示すフローチャートであり、図３のステップＳ１の横方向の余白部分を検出する処理の詳細フローである。【００５０】
入力画像を横方向に走査し余白部分を検出するには、まず、ステップＳ１０で入力画像の先頭から間隔Ｄだけ縦方向にずらした位置に走査位置を合わせる。そして、ステップＳ１１で水平方向に走査し、１画素ずつ白黒判定をして、一定幅以上の余白部分を検出する。間隔Ｄだけずらすのは、２次元コードが画像中の端付近にあったとしても間隔Ｄの設定上、最低２箇所は横切ることができるからである。【００５１】
次いで、ステップＳ１２で一定幅の余白部分が２つ以上検出したか否かを判定する。一定幅の余白部分を２つ以上検出しなかった場合は、ステップＳ１４へ進み、走査位置を縦方向に間隔Ｄ（＝２０画素）ずらす。検出しなかった場合は、ステップＳ１３でその余白部分の先頭の座標値と長さを記録した後、ステップＳ１４の処理を行う。【００５２】
ステップＳ１５では、走査位置と画像データの縦の長さＨを比較する。走査位置が画像データの縦の長さを超えた（走査位置＞縦の長さ）場合は、本横方向の余白検出処理を終了し、図３のメインルーチンのステップＳ１に戻る。また、走査位置が画像データの縦の長さを超えていない場合は、上記ステップＳ１１の処理に戻り、走査位置が画像データの縦の長さを超えるまで一連の処理は繰り返される。【００５３】
図６は、２次元コード領域抽出方法の２次元コード候補領域を検出するルーチン処理を示すフローチャートであり、図３のステップＳ６の２次元コードの候補領域を検出する処理の詳細フローである。【００５４】
まず、ステップＳ２０で横と縦の非余白部分を比較する。比較する項目は選択した縦・横の非余白部分の長さ｛Ｒｘ、Ｒｙ｝と中心座標｛Ｐｘ、Ｐｙ｝の座標のずれであり、この２つの条件から２次元コードの存在を判定する。２次元コードはほぼ正方形の形を成しているため、２次元コードの中心座標を通るように長さを計った場合、縦と横の長さはほぼ同じになる。この形状的な特徴を利用し、非余白部分の長さＲｘとＲｙの差が一定の範囲内であり、かつ、２つの中心座標ＰｘとＰｙの距離が一定の範囲内に存在した場合に、縦と横の非余白部分からなる範囲を２次元コードの存在する可能性がある領域（以下、２次元コード候補領域という）として候補に挙げる。この処理によって正方形のような形状をしたノイズ以外に影響されることなく２次元コードの領域を絞り込むことができる。【００５５】
なお、ここで定めている範囲の上限は、非余白部分の長さＲｘとＲｙの差が２０％以内、２つの中心座標ＰｘとＰｙの距離の差が間隔Ｄの１／２（＝１０画素）以下としている。非余白部分の長さの差は、カメラ等画像取り込み装置で２次元コードを撮影した場合、一般的に２次元コードの真上から撮るという経験則から、正方形の形状を持つ２次元コードは画像データ上でも縦と横の長さの比がそれほど変化しないことを利用した。また、非余白部分の中心座標の差は、間隔Ｄで走査し余白部分を検出しているため、２つの中心座標が間隔Ｄの１／２以上離れている場合は他の非余白部分に２次元コードが存在する可能性が高いことによる。【００５６】
次に、ステップＳ２１で２次元コードの可能性があるか否かを判定する。２次元コードの可能性があると判定した場合、ステップＳ２２で２次元コード候補領域として記録し、ステップＳ２４の判定に進む。また、上記ステップＳ２１の判定で２次元コードではないと判断された場合は、ステップＳ２３で再比較処理を行った後、ステップＳ２４の判定に進む。このステップＳ２３による再比較処理については図７により詳細に後述する。【００５７】
ステップＳ２４では、図３のステップＳ５により算出した縦方向に存在する非余白部分の中でまだ比較処理が行われていないものがないか否かを判定する。比較処理をされていない非余白部分がある場合は、ステップＳ２５でその非余白部分を選択し、ステップＳ２０に戻って一連の処理を繰り返す。比較処理されていない非余白部分がない場合は、比較処理ルーチンを終了し、図３のメインルーチンのステップＳ６に戻る。【００５８】
図７は、２次元コード領域抽出方法の２次元コード候補領域を再比較するルーチン処理を示すフローチャートであり、図６のステップＳ２３の再検出処理の詳細フローである。【００５９】
図６のステップＳ２１の判定で２次元コードではないと判断された場合、本ルーチンに移行し、ステップＳ３０で比較した縦方向の非余白部分の中心座標Ｐｙを中心にして横方向にＲｙから算出した一定の範囲内を走査する。次いで、ステップＳ３１で白黒判定を行って一定幅以上の余白部分を検出したか否かを判定する。このステップＳ３１では一定幅以上の余白部分が２つ以上見つかったかどうかを判定するものである。余白部分を２つ以上検出しなければ、縦の非余白部分には２次元コードがなかったと判断し、本再比較処理を終了して図６のルーチンに戻る。【００６０】
余白部分を２つ以上検出した場合は、ステップＳ３２で非余白部分の長さＲｘ’とＲｘ’の中心座標Ｐｘ’を算出して記録する。そして図６のルーチン同様、ステップＳ３３で横と縦の非余白部分の長さＲｙとＲｘ’、中心座標ＰｙとＰｘ’について比較を行う。【００６１】
ステップＳ３４では、２次元コード候補か否かを判定し、２次元コードの可能性があると判定された場合は、ステップＳ３５で２次元コード候補領域として挙げてステップＳ３６に進む。また、２次元コードではないと判断された場合は、そのままステップＳ３６に進む。【００６２】
ステップＳ３６では、算出した横方向に存在する非余白部分の中でまだ比較処理が行われていないものがないか否かを判定する。比較処理をされていない非余白部分がある場合は、ステップＳ３７でその非余白部分を選択して上記ステップＳ３３に戻って処理を繰り返す。上記ステップＳ３６で比較処理されていない非余白部分がない場合は、本比較処理ルーチンを終了して図６のルーチンに戻る。【００６３】
このように、本発明の走査方法は、画像中に存在する２次元コード上を処理（図３のステップＳ１）の横方向走査時に少なくとも２回横切る。また、処理（図３ステップＳ６）の中の処理（図６のステップＳ２０）で縦横の非余白部分の比較処理を行い、２次元コードの存在する条件に当てはまらなかった場合には再比較処理（図６ステップＳ２３及び図７のルーチン）を行うことで２次元コードを確実に検出できるようにしている。よって、図１に示した(1)の走査と(2)の走査ではそれぞれに２次元コード候補領域が見つかることになり、結果的に同じような大きさと位置の２次元コード候補領域が複数検出される。これにより、処理（図３のステップＳ９）では、２次元コードの存在する候補に挙がった領域の大きさや位置をそれぞれ比較し、同じ領域と見なされた２次元コード候補領域の数をカウントする。【００６４】
図８は、２次元コード領域抽出方法の２次元コード候補領域の比較を示す図である。【００６５】
具体的には図８に示すように、２次元コード候補領域１と２次元コード候補領域２の４辺の座標のずれを測定し、ずれが一定範囲内であれば同じ領域と見なして比較した領域の中間領域を２次元コード候補領域として求め、２つの２次元コード候補領域をまとめる。図８の１Ｂと２Ｂ、１Ｄと２Ｄは縦位置を比較し、１Ａと２Ａ、１Ｃと２Ｃは横位置を比較する。ここではずれを間隔Ｄの１／２（＝１０画素）以内としている。これは処理（図６のステップＳ２０）で述べた理由と同様の理由である。このようにして最終的にカウントした数が多かった２次元コード候補領域の上位３つを２次元コード領域として選択し、図３のメインルーチンを終了する。【００６６】
以上の処理により、画像データ上に存在する２次元コードの領域を高速、かつ確実に抽出することが可能となる。もし画像データ上にノイズが含まれていたとしても、処理（図３のステップＳ１）の余白部分の検出方法、処理（図３のステップＳ６）の２次元コード候補範囲の検出方法、処理（図３のステップＳ９）の２次元コード範囲の決定方法により、複合的にノイズを候補範囲から除去し２次元コードのみを抽出することができる。また、画像中に複数個の２次元コードが存在した場合でも、それらを効率よく読み取ることを可能にする。【００６７】
以上のように、本実施の形態の２次元コード領域抽出装置１は、２次元コードが含まれる画像データを縦・横に走査する走査部１１と、走査した画素の白黒階調を判定し、所定画素以上の白画素が続いた部分を余白部分として少なくとも２つ以上検出する余白検出部１２と、検出した前記余白部分の間に存在する非余白部分の距離とその中心座標を算出する非余白情報算出部１３と、縦と横方向に存在する非余白部分の長さと中心座標を比較して２次元コードの存在を判定し、２次元コード候補領域として検出する比較部１４と、検出した複数の２次元コード候補領域を比較して２次元コード候補領域に順位をつける順位決定部１５とを備える。２次元コード領域抽出方法は、まず２次元コードの形状的な特徴を元に２次元コードが含まれる画像データを縦・横に走査し、走査した画素の白黒階調を判定し余白部分を検出する。次いで、検出した余白部分の間に存在する非余白部分の距離とその中心座標を算出し、縦と横方向に存在する非余白部分の長さと中心座標を比較するとともに、前述した比較手段で候補に挙がった領域の位置・大きさをもとに類似する範囲の数を計算し領域候補の順位をつけるので、画像中にある２次元コードの領域を絞り込むことによって認識にかかる時間を短縮することができ、結果的にノイズ等に影響されずに正確、かつ高速に読み取ることができる。また、画像中に複数個の２次元コードが存在した場合にそれらを効率よく読み取ることができる。【００６８】
以上の説明は本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。【００６９】
なお、本発明の実施の形態は、上記の実施例に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。また、応用に関しても同様である。例えば、本実施の形態では、処理（図３のステップＳ１）で画像を横方向から走査し始めていたが、これを縦方向で走査し始め、一連の走査方向を縦横全く逆に設定しても構わない。より一般的に言うと、比較処理の段階で２つの非余白部分が直交関係にあれば、走査方向自体は特に問わない。また、間隔Ｄは『画像データ上において取り得る最小の２次元コードを構成する一辺の長さの１／２以下』であればどれだけ細かく走査しても構わず、処理速度は落ちても、２次元コード領域抽出装置を動作する上でのプラットホームの処理能力による２次元コード領域抽出方法の精度への影響はなんら生じない。【００７０】
また、２次元的な画像データを一時的に記憶した画像データメモリ上において２次元コードの存在する領域を抽出する２次元コード領域抽出装置及び方法を有する電子機器であればどのような装置にも適用できる。例えば、電子機器としてデジタルカメラやカメラ付き携帯電話装置、ＰＤＡ（Personal Digital Assistants）等の携帯情報端末、パソコン等の情報処理装置など、カメラ（内蔵／外付け）を備えた装置にも適用可能である。また、読み取り対象となるコードは、どのようなコードであってもよい。【００７１】
また、上記実施の形態では、２次元コード領域抽出装置及び方法という名称を用いたが、これは説明の便宜上であり、２次元バーコード表示装置及び方法、情報読取装置や２次元コード抽出方法等でもよいことは勿論である。【００７２】
また、上記実施の形態では、図１及び図８に示す走査線表示は一例であって他の例でもよいことは言うまでもない。【００７３】
また、余白部分を検出する際、画素の白黒階調を判定するようにしているが、余白部分が検出できればどのような方法でもよい。また、ここで白黒というのは説明の便宜上の表現であり、文字通りの白黒のほか、シンボルが特定のカラーで表示されているものや地色が白色以外のものも含む。例えば、印刷物や液晶表示部にシンボルが印刷又はカラー表示されている形態では、シンボルそのものが白黒以外に色分けされている場合がある。すなわち、余白検出部１２において、走査した画素の白黒階調を判定し、所定画素以上の画素が続いた部分を余白部分として少なくとも２つ以上検出するが、この場合、所定画素以上の画素が続いた部分は、白以外の画素（例えば、シンボルが黒地に白色で印刷されてる場合は、黒画素）も含む概念である。【００７４】
また、上記２次元コード領域抽出装置を構成する各回路部、例えば走査部や記憶部の種類、数及び接続方法などは前述した実施の形態に限られない。【００７５】
また、以上説明した２次元コード領域抽出装置及び方法は、これら２次元コード領域抽出装置及び方法を機能させるためのプログラムでも実現される。このプログラムはコンピュータで読み取り可能な記録媒体に格納されている。本発明では、この記録媒体として、図２に示されている制御部１０のメインメモリそのものがプログラムメディアであってもよいし、また外部記憶装置としてＣＤ−ＲＯＭドライブ等のプログラム読み取り装置が設けられ、そこに記録媒体を挿入することで読み取り可能なＣＤ−ＲＯＭ等のプログラムメディアであってもよい。いずれの場合でも、格納されているプログラムは制御部３１のＣＰＵがアクセスして実行させる構成であってもよいし、あるいはいずれの場合もプログラムを読み出し、読み出されたプログラムは、図示されていないプログラム記憶エリアにダウンロードされて、そのプログラムが実行される方式であってもよい。このダウンロード用のプログラムは予め各装置に格納されているものとする。【００７６】
ここで、上記プログラムメディアは、携帯端末装置又は情報処理装置と分離可能に構成される記録媒体であり、磁気テープやカセットテープ等の磁気ディスクやＣＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷ、ＭＯ、ＭＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ等の光ディスクのディスク系、ＰＣカード、コンパクトフラッシュカード（登録商標）、スマートメディア（登録商標）、ＩＣカード、ＳＤカード（登録商標）、メモリースティック（登録商標）等のカード系、あるいはマスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュＲＯＭ等による半導体メモリを含めた固定的にプログラムを担持する媒体であってもよい。【００７７】
さらに、インターネット接続プロバイダ又はサーバ端末等の外部の通信ネットワークとの接続が可能な通信接続手段を介して通信ネットワークからプログラムをダウンロードするように、流動的にプログラムを担持する媒体であってもよい。なお、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード用プログラムは予め格納しておくか、あるいは別な記録媒体からインストールされるものであってもよい。なお、記録媒体に格納されている内容としてはプログラムに限定されず、データであってもよい。
【図１】
0004415010.tif 000002
【図２】
0004415010.tif 000003
【図３】
0004415010.tif 000004
【図４】
0004415010.tif 000005
【図５】
0004415010.tif 000006
【図６】
0004415010.tif 000007
【図７】
0004415010.tif 000008
【図８】
0004415010.tif 000009