(57)【要約】【課題】写真等の画像情報やテキスト情報が混在する印刷物が斜めにスキャンされた場合であっても、印刷物から１次元バーコードや２次元コードを簡単かつ確実に検出することができるコード検出プログラム及びコード検出方法並びに画像形成装置の提供。【解決手段】基準線特定部で、スキャン画像に１レベルの二項ウェーブレット変換を行ってエッジを抽出し、抽出したエッジの中から高周波強度が所定値以上のエッジを選別し、選別したエッジに対してハフ変換を行って直線を抽出し、抽出した直線の中から基準線を特定し、候補領域特定部で、その基準線に対して特定の向きの直線が所定数以上含まれる領域を候補領域として特定し、コード検出部で、その候補領域に対してパターンマッチングを行ってコード３１を検出するか、若しくは、基準線に対して特定の向きでパターンマッチングを行ってコード３１を検出する。【選択図】図７
2008282339.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
少なくとも１次元バーコード又は２次元コードが印刷された印刷物をスキャンして得られたスキャン画像からエッジを抽出し、抽出したエッジから直線を抽出し、抽出した直線の内、最も長い直線を基準線として特定する基準線特定部、
前記基準線に対して特定の向きで前記スキャン画像に対してパターンマッチングを行い、前記１次元バーコード又は前記２次元コードを検出するコード検出部、として機能させることを特徴とするコード検出プログラム。
【請求項２】
コンピュータを、
少なくとも１次元バーコード又は２次元コードが印刷された印刷物をスキャンして得られたスキャン画像からエッジを抽出し、抽出したエッジから直線を抽出し、抽出した直線の内、最も長い直線を基準線として特定する基準線特定部、
前記スキャン画像を分割した領域の内、前記基準線に対して特定の向きの直線が所定数以上含まれる領域を候補領域として特定する候補領域特定部、
前記スキャン画像の前記候補領域に対してパターンマッチングを行い、前記１次元バーコード又は前記２次元コードを検出するコード検出部、として機能させることを特徴とするコード検出プログラム。
【請求項３】
前記特定の向きは、前記基準線に対して略平行及び／又は略直角の方向であることを特徴とする請求項１又は２に記載のコード検出プログラム。
【請求項４】
前記基準線特定部は、前記スキャン画像に１レベルの二項ウェーブレット変換を行ってエッジを抽出し、抽出したエッジの中から高周波強度が所定値以上のエッジを選別し、選別したエッジにハフ変換を行って直線を抽出し、抽出した直線の中からハフ変換の投票数が最も多い直線を前記基準線として特定することを特徴とする請求項１乃至３のいずれか一に記載のコード検出プログラム。
【請求項５】
印刷物に印刷された１次元バーコード又は２次元コードを検出するコード検出方法であって、
前記印刷物をスキャンして、スキャン画像を取得するステップと、
前記スキャン画像からエッジを抽出するステップと、
抽出したエッジから直線を抽出するステップと、
抽出した直線の内、最も長い直線を基準線として特定するステップと、
前記基準線に対して特定の向きで前記スキャン画像に対してパターンマッチングを行い、前記１次元バーコード又は前記２次元コードを抽出するステップと、を少なくとも有することを特徴とするコード検出方法。
【請求項６】
印刷物に印刷された１次元バーコード又は２次元コードを検出するコード検出方法であって、
前記印刷物をスキャンして、スキャン画像を取得するステップと、
前記スキャン画像からエッジを抽出するステップと、
抽出したエッジから直線を抽出するステップと、
抽出した直線の内、最も長い直線を基準線として特定するステップと、
前記スキャン画像を複数の領域に分割するステップと、
前記複数の領域の内、前記基準線に対して特定の向きの直線が所定数以上含まれる領域を候補領域として特定するステップと、
前記スキャン画像の前記候補領域に対してパターンマッチングを行い、前記１次元バーコード又は前記２次元コードを抽出するステップと、を少なくとも有することを特徴とするコード化情報検出方法。
【請求項７】
前記特定の向きは、前記基準線に対して略平行及び／又は略直角の方向であることを特徴とする請求項５又は６に記載のコード検出方法。
【請求項８】
前記エッジを抽出するステップでは、前記スキャン画像に１レベルの二項ウェーブレット変換を行ってエッジを抽出し、
前記直線を抽出するステップでは、抽出したエッジの中から高周波強度が所定値以上のエッジを選別し、選別したエッジにハフ変換を行って直線を抽出し、
前記基準線を特定するステップでは、抽出した直線の中からハフ変換の投票数が最も多い直線を前記基準線として特定することを特徴とする請求項５乃至７のいずれか一に記載のコード検出方法。
【請求項９】
少なくともスキャナ部を備える画像形成装置であって、
少なくとも１次元バーコード又は２次元コードが印刷された印刷物をスキャンして得られたスキャン画像からエッジを抽出し、抽出したエッジから直線を抽出し、抽出した直線の内、最も長い直線を基準線として特定する基準線特定部と、
前記基準線に対して特定の向きで前記スキャン画像に対してパターンマッチングを行い、前記１次元バーコード又は前記２次元コードを検出するコード検出部と、を備えることを特徴とする画像形成装置。
【請求項１０】
少なくともスキャナ部を備える画像形成装置であって、
少なくとも１次元バーコード又は２次元コードが印刷された印刷物をスキャンして得られたスキャン画像からエッジを抽出し、抽出したエッジから直線を抽出し、抽出した直線の内、最も長い直線を基準線として特定する基準線特定部と、
前記スキャン画像を分割した領域の内、前記基準線に対して特定の向きの直線が所定数以上含まれる領域を候補領域として特定する候補領域特定部と、
前記スキャン画像の前記候補領域に対してパターンマッチングを行い、前記１次元バーコード又は前記２次元コードを検出するコード検出部と、を備えることを特徴とする画像形成装置。
【請求項１１】
前記特定の向きは、前記基準線に対して略平行及び／又は略直角の方向であることを特徴とする請求項９又は１０に記載の画像形成装置。
【請求項１２】
前記基準線特定部は、前記スキャン画像に１レベルの二項ウェーブレット変換を行ってエッジを抽出し、抽出したエッジの中から高周波強度が所定値以上のエッジを選別し、選別したエッジにハフ変換を行って直線を抽出し、抽出した直線の中からハフ変換の投票数が最も多い直線を前記基準線として特定することを特徴とする請求項９乃至１１のいずれか一に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１次元バーコードや２次元コードなどのコードを検出するプログラム及び方法並びにコードを検出する機能を備えた画像形成装置に関する。
【背景技術】
【０００２】
近年の雑誌やフリーペーパー等の印刷物は、店舗等のＵＲＬ（Uniform Resource Locator）情報を記録したＱＲコード（登録商標）等の２次元コードが印刷されているものが多く、ユーザは、携帯電話機の撮影機能を用いて２次元コードを読み込み、ネットワーク接続機能を用いて２次元コードに記録されたＵＲＬにアクセスすることにより、割引券等を入手するなどのサービスを受けることができる。しかしながら、例えば、操作を容易にするために機能を簡略化した携帯電話機やビジネス用途の携帯電話機には撮影機能が搭載されていない機種もあり、このような携帯電話機を利用するユーザは上記サービスを受けることができない。
【０００３】
一方、インターネット等の通信ネットワークに接続する機能を備えた画像形成装置が普及しており、様々な場所に設置されていることから、撮影機能の無い携帯電話機を利用するユーザは、コンビニエンスストア等に設置された画像形成装置でフリーペーパー等をスキャンして２次元コードを抽出することにより、上記サービスを受けることが可能となる。この場合、確実に２次元コードを抽出するためには画像形成装置で適切な画像処理を行う必要があり、このような画像処理の例として、例えば、下記特許文献１には、画像エッジを抽出し、ハフ変換、最小２乗近似で交差する２直線を探し、候補領域を決定する方法が開示されている。
【０００４】
【特許文献１】特開平０７−２２００８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
一般的に、スキャン画像からＱＲコードを抽出する方法としては、ＱＲコードの角に設けられた「切り出しシンボル」をパターンマッチングで探す方法が用いられるが、ＱＲコードが印刷される領域は一定ではないため、スキャン画像の全ての領域に対してパターンマッチングを実施しなければならず、画像処理に時間がかかるという問題があった。
【０００６】
また、印刷物をスキャナ上に置いてスキャンする際、印刷物が斜めにセットされる場合もあり、スキャン画像の画角に対してＱＲコードが必ずしも平行、直角であるとは限らないため、ＱＲコードを確実に抽出するためには、あらゆる角度でパターンマッチングを実施しなければならず、更に、画像処理に時間がかかるという問題があった。
【０００７】
このような問題に対して、上記特許文献１の画像処理方法を用いることも考えられるが、雑誌やフリーペーパー等の印刷物には写真等の画像情報が印刷されている場合が多く、画像情報には大量のエッジが存在するため、ハフ変換により膨大な量の直線が抽出されてしまい、その結果、解析ができなくなってしまったり、画像処理に膨大な時間がかかってしまうという問題が生じる。
【０００８】
本発明は上記問題点に鑑みてなされたものであり、その主たる目的は、写真等の画像情報やテキスト情報が混在する印刷物が斜めにスキャンされた場合であっても、印刷物から１次元バーコードや２次元コードを簡単かつ確実に検出することができるコード検出プログラム及びコード検出方法並びに画像形成装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明のコード検出プログラムは、コンピュータを、少なくとも１次元バーコード又は２次元コードが印刷された印刷物をスキャンして得られたスキャン画像からエッジを抽出し、抽出したエッジから直線を抽出し、抽出した直線の内、最も長い直線を基準線として特定する基準線特定部、前記基準線に対して特定の向きで前記スキャン画像に対してパターンマッチングを行い、前記１次元バーコード又は前記２次元コードを検出するコード検出部、として機能させるものである。
【００１０】
また、本発明のコード検出プログラムは、コンピュータを、少なくとも１次元バーコード又は２次元コードが印刷された印刷物をスキャンして得られたスキャン画像からエッジを抽出し、抽出したエッジから直線を抽出し、抽出した直線の内、最も長い直線を基準線として特定する基準線特定部、前記スキャン画像を分割した領域の内、前記基準線に対して特定の向きの直線が所定数以上含まれる領域を候補領域として特定する候補領域特定部、前記スキャン画像の前記候補領域に対してパターンマッチングを行い、前記１次元バーコード又は前記２次元コードを検出するコード検出部、として機能させるものである。
【００１１】
本発明においては、前記特定の向きは、前記基準線に対して略平行及び／又は略直角の方向とすることができる。
【００１２】
また、本発明においては、前記基準線特定部は、前記スキャン画像に１レベルの二項ウェーブレット変換を行ってエッジを抽出し、抽出したエッジの中から高周波強度が所定値以上のエッジを選別し、選別したエッジにハフ変換を行って直線を抽出し、抽出した直線の中からハフ変換の投票数が最も多い直線を前記基準線として特定する構成とすることができる。
【００１３】
また、本発明は、印刷物に印刷された１次元バーコード又は２次元コードを検出するコード検出方法であって、前記印刷物をスキャンして、スキャン画像を取得するステップと、抽出したエッジから直線を抽出するステップと、抽出した直線の内、最も長い直線を基準線として特定するステップと、変換した直線の内、最も長い直線を基準線として特定するステップと、前記基準線に対して特定の向きで前記スキャン画像に対してパターンマッチングを行い、前記１次元バーコード又は前記２次元コードを抽出するステップと、を少なくとも有するものである。
【００１４】
また、本発明は、印刷物に印刷された１次元バーコード又は２次元コードを検出するコード検出方法であって、前記印刷物をスキャンして、スキャン画像を取得するステップと、前記スキャン画像からエッジを抽出するステップと、抽出したエッジから直線を抽出するステップと、抽出した直線の内、最も長い直線を基準線として特定するステップと、前記スキャン画像を複数の領域に分割するステップと、前記複数の領域の内、前記基準線に対して特定の向きの直線が所定数以上含まれる領域を候補領域として特定するステップと、前記スキャン画像の前記候補領域に対してパターンマッチングを行い、前記１次元バーコード又は前記２次元コードを抽出するステップと、を少なくとも有するものである。
【００１５】
本発明においては、前記エッジを抽出するステップでは、前記スキャン画像に１レベルの二項ウェーブレット変換を行ってエッジを抽出し、前記直線を抽出するステップでは、抽出したエッジの中から高周波強度が所定値以上のエッジを選別し、選別したエッジにハフ変換を行って直線を抽出し、前記基準線を特定するステップでは、抽出した直線の中からハフ変換の投票数が最も多い直線を前記基準線として特定する構成とすることができる。
【００１６】
また、本発明は、少なくともスキャナ部を備える画像形成装置であって、少なくとも１次元バーコード又は２次元コードが印刷された印刷物をスキャンして得られたスキャン画像からエッジを抽出し、抽出したエッジから直線を抽出し、抽出した直線の内、最も長い直線を基準線として特定する基準線特定部と、前記基準線に対して特定の向きで前記スキャン画像に対してパターンマッチングを行い、前記１次元バーコード又は前記２次元コードを検出するコード検出部と、を備えるものである。
【００１７】
また、本発明は、少なくともスキャナ部を備える画像形成装置であって、少なくとも１次元バーコード又は２次元コードが印刷された印刷物をスキャンして得られたスキャン画像からエッジを抽出し、抽出したエッジから直線を抽出し、抽出した直線の内、最も長い直線を基準線として特定する基準線特定部と、前記スキャン画像を分割した領域の内、前記基準線に対して特定の向きの直線が所定数以上含まれる領域を候補領域として特定する候補領域特定部と、前記スキャン画像の前記候補領域に対してパターンマッチングを行い、前記１次元バーコード又は前記２次元コードを検出するコード検出部と、を備えるものである。
【００１８】
このように、本発明では、基準線に対して特定の向きでパターンマッチングを行うか、若しくは、その基準線に対して特定の向きの直線が所定数以上含まれる候補領域に対してパターンマッチングを行えばよいため、印刷物から１次元バーコードや２次元コードを簡単かつ確実に検出することができる。
【発明の効果】
【００１９】
本発明のコード検出プログラム及びコード検出方法並びに画像形成装置によれば、写真等の画像情報やテキスト情報が混在している印刷物が斜めにスキャンされた場合であっても、印刷物から１次元バーコードや２次元コードを簡単かつ確実に検出することができる。
【００２０】
その理由は、１次元バーコードや２次元コード等のコードが印刷された印刷物をスキャンして得たスキャン画像に二項ウェーブレット変換を行ってエッジを抽出し、抽出したエッジの中から高周波強度が所定値以上のエッジを選別し、選別したエッジに対してハフ変換を行って直線を抽出し、抽出した直線の中から基準線を特定し、その基準線に対して特定の向き（例えば、基準線に平行及び／又は直角）でスキャン画像に対してパターンマッチングを行ってコードを検出するため、あらゆる方向に対してパターンマッチングを行う従来方法に比べて、処理を容易にすることができるからである。
【００２１】
また、スキャン画像に二項ウェーブレット変換を行ってエッジを抽出し、抽出したエッジの中から高周波強度が所定値以上のエッジを選別し、選別したエッジに対してハフ変換を行って直線を抽出し、抽出した直線の中から基準線を特定し、その基準線に対して特定の向き（例えば、基準線に平行及び／又は直角）の直線が所定数以上含まれる領域を候補領域として特定し、スキャン画像の候補領域に対してパターンマッチングを行ってコードを検出するため、全ての領域に対してパターンマッチングを行う従来方法に比べて、処理を容易にすることができるからである。
【発明を実施するための最良の形態】
【００２２】
従来技術で示したように、雑誌やフリーペーパーなどの印刷物に印刷された１次元バーコードや２次元コード等のコードを読み取る用途に画像形成装置が利用されているが、上記印刷物にはコードの他に、画像情報やテキスト情報など、様々な情報が印刷されており、また、印刷物がスキャナ台に斜めにセットされてしまう場合もあるため、画像形成装置では、印刷物をスキャンして得たスキャン画像に対して、あらゆる方向から全領域に対してパターンマッチングを実施する必要が生じ、画像処理に時間がかかってしまうという問題があった。
【００２３】
一方、雑誌やフリーペーパーなどの印刷物には、通常、デザインや見やすさ等を考慮して、境界を示す枠線や仕切り線などの長い直線が印刷されており、１次元バーコードや２次元コードなどは、その直線に対して平行及び／又は直角に印刷されている。従って、スキャンデータに対して適切な画像処理を行って枠線や仕切り線などを検出することができれば、その線を基準にして容易にコードを検出することが可能になる。
【００２４】
そこで、本実施形態では、後述する二項ウェーブレット変換及びハフ変換を利用して、スキャン画像に二項ウェーブレット変換を行ってエッジを抽出し、抽出したエッジの中から高周波強度が所定値以上のエッジを選別し、選別したエッジに対してハフ変換を行って直線を抽出し、抽出した直線の中から基準線を特定し、その基準線に対して特定の向きでスキャン画像に対してパターンマッチングを行ってコードを検出する方法、若しくは、スキャン画像に二項ウェーブレット変換を行ってエッジを抽出し、抽出したエッジの中から高周波強度が所定値以上のエッジを選別し、選別したエッジに対してハフ変換を行って直線を抽出し、抽出した直線の中から基準線を特定し、その基準線に対して特定の向きの直線が所定数以上含まれる領域を候補領域として特定し、スキャン画像の候補領域に対してパターンマッチングを行ってコードを検出する方法を採用し、印刷物から簡単かつ確実にコードを検出できるようにする。以下、基準線の特定に利用する二項ウェーブレット変換及びハフ変換について概説する。
【００２５】
［二項ウェーブレット］
ウェーブレット変換とは図８に示すような有限範囲で振動するウェーブレット関数（式（１））を用いて、入力信号ｆ（ｘ）に対するウェーブレット変換係数〈ｆ，ψａ，ｂ〉を式（２）で求める事により、入力信号を式（３）のようなウェーブレット関数の総和に分解する変換である。
【００２６】
2008282339.tif 000003
【００２７】
2008282339.tif 000004
【００２８】
2008282339.tif 000005
【００２９】
上式で、ａはウェーブレット関数のスケールを表し、ｂはウェーブレット関数の位置を示す。図８に例示するように、スケールａの値が大きいほどウェーブレット関数ψａ，ｂ（ｘ）の周波数は小さくなり、また、位置ｂの値に従ってウェーブレット関数ψａ，ｂ（ｘ）が振動する位置が移動する。従って式（３）は、入力信号ｆ（ｘ）を種々のスケールと位置を持つウェーブレット関数ψａ，ｂ（ｘ）の総和に分解する事を意味している。
【００３０】
上記のような変換を可能にするウェーブレット関数は多くのものが知られているが、画像処理分野では計算が高速な直交ウェーブレット（Orthogonal Wavelet）・双直交ウェーブレット（Biorthogonal Wavelet）が広く用いられている。直交ウェーブレット・双直交ウェーブレットのウェーブレット関数は式（４）のように定義される。
【００３１】
2008282339.tif 000006
【００３２】
式（４）と式（１）を比べると、直交ウェーブレット・双直交ウェーブレットではスケールａの値が２のｉ乗で離散的に定義され、また、位置ｂの最小移動単位が２ｉで離散的に定義されている事が判る。このｉの値はレベルと呼ばれる。
【００３３】
一方、本発明で利用する二項ウェーブレット（Dyadic Wavelet）のウェーブレット関数は式（５）のように定義される（例えば、特開平９−２１２６２３号公報）。
【００３４】
2008282339.tif 000007
【００３５】
ここで、直交ウェーブレット・双直交ウェーブレットのウェーブレット関数は前述のようにレベルｉにおける位置の最小移動単位が２ｉで離散的に定義されていたのに対し、二項ウェーブレットはレベルｉにかかわらず位置の最小移動単位が一定である。この相違により、二項ウェーブレット変換には下記の特徴が生じる。
【００３６】
特徴１：式（６）に示す１レベルの二項ウェーブレット変換で生成する、高周波数帯域成分Ｗｉと低周波数帯域成分Ｓｉの各々の信号量は、変換前の信号Ｓｉ−１と同一である。
【００３７】
2008282339.tif 000008
【００３８】
特徴２：スケーリング関数φｉ，ｊ（ｘ）とウェーブレット関数ψｉ，ｊ（ｘ）の間に式（７）の関係が成立する。
【００３９】
2008282339.tif 000009
【００４０】
従って二項ウェーブレット変換で生成する、高周波数帯域成分Ｗｉは、低周波数帯域成分Ｓｉの一次微分（勾配）を表す。
【００４１】
特徴３：ウェーブレット変換のレベルｉに応じて定められた係数γｉを高周波数帯域成分に乗じたＷｉ・γｉ（以下、これを補正済高周波数帯域成分と呼ぶ。）について、入力信号の信号変化の特異性（singularity）に応じて、前記変換後の補正済高周波数帯域成分Ｗｉ・γｉの信号強度のレベル間の関係が一定の法則に従う。すなわち、なだらかな（微分可能な）信号変化に対応する補正済高周波数帯域成分Ｗｉ・γｉはレベル数ｉが増大するほど信号強度が増大するのに対して、ステップ状の信号変化に対応する補正済高周波数帯域成分Ｗｉ・γｉはレベル数ｉに関わらず信号強度が一定となり、δ関数状の信号変化に対応する補正済高周波数帯域成分Ｗｉ・γｉはレベル数ｉが増大するほど信号強度が減少する。
【００４２】
特徴４：画像信号のような２次元信号における１レベルの二項ウェーブレット変換の方法は、前述の直交ウェーブレット・双直交ウェーブレットの方法と異なり、１レベルのウェーブレット変換により、低周波数帯域成分Ｓｎ−１は２つの高周波数帯域成分Ｗｘｎ，Ｗｙｎと１つの低周波数帯域成分Ｓｎに分解される。２つの高周波数帯域成分は低周波数帯域成分Ｓｎの２次元における変化ベクトルＶｎのｘ成分とｙ成分に相当する。変化ベクトルＶｎの大きさＭｎと偏角Ａｎは式（８）、式（９）で与えられる。
【００４３】
2008282339.tif 000010
【００４４】
2008282339.tif 000011
【００４５】
以上の特徴より、処理の対象となる情報の種類に応じて補正済高周波数帯域成分Ｗｉ・γｉの信号強度の大きさが異なるため、スキャナ画像の中から、なだらかな曲線で構成される画像情報を除外することが可能となる。
【００４６】
［ハフ変換］
ハフ変換とは、特定の点を通る直線の中から、画像の特徴点を最も多く通る直線を決定する処理であり、標準的なハフ変換では、式（１０）に示すように、１つの直線は２つのパラメータ（その直線に引いた法線の長さと角度、ｒとθ）で表される。
【００４７】
2008282339.tif 000012
【００４８】
ここで、θ∈［０、π］かつｒ∈Ｒとするか、若しくは、θ∈［０、２π］かつｒ≧０とすると、ある直線に対する（ｒ、θ）の組は一意に決定する。いいかえれば、θに対して直角で、原点からｒの距離にあるものとして直線が表現される。
【００４９】
そこで、二項ウェーブレット変換で抽出したエッジに対してハフ変換を行い、ハフ変換したデータ上で投票数が少ないデータをカットし、その後、逆変換することにより、特定のエッジを直線として抽出することができ、投票数が最も多いデータを最も長い直線と見なすことにより、二項ウェーブレット変換で抽出したエッジの中から枠線や仕切り線などを基準線として特定することができ、この基準線に基づいてパターンマッチングの方向を設定したり、候補領域を特定することにより、パターンマッチングを迅速且つ容易に実行することが可能となる。
【実施例１】
【００５０】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係るコード検出プログラム及びコード検出方法並びに画像形成装置について、図１乃至図７を参照して説明する。図１は、本実施例の情報提供システムの構成を模式的に示す図であり、図２は、本実施例の画像形成装置の構成を示すブロック図、図３は、画像形成装置の制御部の構成を示すブロック図である。また、図４は、本実施例の印刷物の構成例を示す図であり、図５は、本実施例の情報提供システムを用いた情報提供方法を示すフローチャート図である。また、図６は、本実施例のコード検出方法における候補領域の特定手順を示すフローチャート図であり、図７は、その具体例を示す図である。
【００５１】
図１（ａ）に示すように、本実施例の情報提供システムは、雑誌やフリーペーパーのように、紙やプラスチックなどの印刷媒体に各種情報が印刷された印刷物３０をスキャンして、印刷物３０に印刷された１次元バーコードや２次元コード、カラー２次元コードなど（以下、これらを総称してコードと呼ぶ。）を検出する、スキャナ機能を備えたコピー機やプリンタなど（以下、これらを総称して画像形成装置１０と呼ぶ。）で構成される。また、コードにＵＲＬが記録されており、そのＵＲＬにアクセスして情報を取得する場合は、図１（ｂ）に示すように、画像形成装置１０とユーザに提供する情報を記憶したサーバ２０とがＷＡＮ（Wide Area Network）やＬＡＮ（Local Area Network）などの通信ネットワークで接続されて構成される。
【００５２】
なお、上記１次元バーコードは、JAN、CODE39、ITF、NW-7、CODE128、CODE93などがあり、また、上記２次元コードはスタック型２次元コードとマトリクス型２次元コードに分類され、スタック型２次元コードは、PDF417、CODE49、CODE16Kなどがあり、マトリクス型２次元コードは、ＱＲコード、DATA MATRIX、VERI CODE、MAXI CODE、CP CODE、CODE1、ボックス図形コード、ULTRA CODE、AZTECH CODEなどがあるが、本実施例におけるコードは情報をコード化して記録したものであればよく、その規格は特に限定されない。また、本実施例のコードには、情報を光学的に記録するホログラムなども含むものとする。
【００５３】
また、図２に示すように、本実施例の画像形成装置１０は、制御部１１と、操作・表示部１２と、スキャナ部１３と、画像処理部１４と、プリンタ部１５と、記憶部１６と、ネットワーク接続部１７などを備え、各部はバスにより接続されている。
【００５４】
制御部１１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）などにより構成される。ＣＰＵは、操作・表示部１２の操作により、ＲＯＭに記憶されている各種プログラムを読み出してＲＡＭに展開し、展開されたプログラムに従って、画像形成装置１０の各部の動作を制御する。
【００５５】
操作・表示部１２は、ＬＣＤ（Liquid Crystal Display）等の表示部上に、透明電極が格子状に配置された感圧式の操作部（タッチパネル）を設けたものであり、制御部１１からの表示信号に従って表示部上に各種操作ボタンや装置の状態表示、各機能の動作状況等の表示を行う。また、手指やタッチペン等で押下された力点のＸＹ座標を電圧値で検出し、検出された位置信号を操作信号として制御部１１に出力する。なお、ここでは操作・表示部１２を表示部と操作部とが一体となった構成としているが、表示部とは別に各種操作ボタンを配置した操作部を設けてもよい。
【００５６】
スキャナ部１３は、印刷物３０を載置するガラスの下部に配置され、印刷物３０に記録された情報を読み取るものであり、印刷物３０を走査する光源と、印刷物３０で反射された光を電気信号に変換するＣＣＤ（Charge Coupled Devices）と、電気信号をＡ／Ｄ変換するＡ／Ｄ変換器等により構成される。
【００５７】
画像処理部１４は、スキャナ部１３で読み取った画像（以下、スキャン画像と呼ぶ。）に対して、拡大／縮小、回転、周波数変換、ＲＧＢデータからＹＭＣＫデータへの色変換、階調補正等の各種画像処理を施してプリンタ部１５へ出力する。
【００５８】
プリンタ部１５は、転写紙に印刷する画像を形成する画像形成部、形成した画像を転写紙に転写する転写部、転写した画像を定着させる定着部、転写紙を搬送する搬送部、画像形成部や転写部、定着部をクリーニングするクリーニング部などを備え、電子写真方式により、入力されたデータに基づいて、転写紙上に画像を形成して出力する。
【００５９】
記憶部１６は、フラッシュメモリやハードディスク等により構成され、各種データや設定条件等を記憶する。
【００６０】
ネットワーク接続部１７は、ＮＩＣ（Network Interface Card）、モデム、ＬＡＮアダプタ、ルータ、ＴＡ（Terminal Adapter）等により構成され、通信ネットワークを介して接続されたサーバ２０等との通信制御を行う。
【００６１】
なお、図１は本実施例の画像形成装置１０の一例であり、少なくとも印刷物３０を読み取ってコードを検出する機能を備えていればよく、印刷機能のないスキャナ装置としてもよいし、自動原稿送り装置（ＡＤＦ：Auto Document Feeder）や後処理装置（フィニッシャ）などを備えた複合機（ＭＦＰ：Multi Function Peripheral）としてもよい。
【００６２】
ここで、図４（ａ）に示すように、雑誌やフリーペーパー等の印刷物３０（１枚であっても複数枚を冊子状に綴じたものでもよい。）には、写真やイラスト、図形などの画像情報３２と、ひらがなやカタカナ、漢字、アルファベット、記号などのテキスト情報３３とが配置されると共に、所定の場所に特定のマーク（ＱＲコードの場合は左上、右上及び左下に配置された切り出しシンボル３１ａ、DATA MATRIXの場合は左及び下に配置されたＬ型のガイドセル、以下、切り出しシンボル３１ａとして説明する。）を備え、切り出しシンボル３１ａで特定される領域にＵＲＬ情報などをコード化して記録したパターンが配置されたコード３１が印刷され、更に、デザインや見やすさなどを考慮して、これらの周囲に枠線３４ａが印刷されている。また、図４（ｂ）に示すように、枠線３４ａに変えて又は枠線３４ａと共に、仕切り線３４ｂが印刷されている。
【００６３】
そのため、これらの様々な情報が印刷された印刷物３０の中からコード３１を検出するのは容易ではなく、また、コード３１の配置も一定ではないため、確実にコード３１を検出するためには、スキャン画像の全ての領域に対してパターンマッチングを行わなければならない。特に、印刷物３０がスキャナ部１３に斜めにセットされた場合には、スキャン画像の画角に対してコード３１が斜めに配置されるため、様々な角度からパターンマッチングを行わなければならず、コード３１の検出に時間がかかってしまうという問題があった。
【００６４】
そこで、本実施例では、様々な情報が印刷された印刷物３０が斜めにスキャンされた場合であってもコード３１を簡単且つ確実に検出できるようにするために、上記枠線３４ａや仕切り線３４ｂを基準線として特定し、その基準線に対して平行及び／又は直角等の特定の向きでのみパターンマッチングを行う構成、又は、その基準線に対して平行及び／又は直角等の特定の向きの直線が所定数以上含まれる領域を候補領域として特定し、候補領域に対してのみパターンマッチングを行う構成とする。
【００６５】
具体的には、図３に示すように、制御部１１に、上述した二項ウェーブレット変換及びハフ変換を用いて、スキャン画像から基準線を特定する基準線特定部１１ａと、スキャン画像を複数の領域に分割し、それらの領域の中から基準線に対してほぼ平行やほぼ直角（以下、単に平行及び／又は直角と称す。）等の特定の向きの直線が所定数以上含まれる領域を候補領域として特定する候補領域特定部１１ｂと、スキャン画像の候補領域に対してパターンマッチングを行ったり、基準線に対して平行及び／又は直角等の特定の向きでスキャン画像に対してパターンマッチングを行って切り出しシンボル３１ａを検出し、コード３１に記録された情報を読み取るコード検出部１１ｃとを設ける。
【００６６】
なお、上記基準線特定部１１ａ、候補領域特定部１１ｂ及びコード検出部１１ｃはハードウェアとして構成してもよいし、コンピュータを、基準線特定部１１ａ、候補領域特定部１１ｂ及びコード検出部１１ｃ、又は、基準線特定部１１ａ及びコード検出部１１ｃとして機能させるコード検出プログラムとして構成し、該コード検出プログラムを制御部１１上で動作させる構成としてもよい。
【００６７】
次に、上記構成の画像形成装置１０を用いて、印刷物３０を読み取って割引券等をプリントするまでの手順について、図５及び図６のフローチャート図並びに図７の模式図を参照して説明する。
【００６８】
まず、図５のステップＳ１０１で、コード３１が印刷された印刷物３０を画像形成装置１０にセットし、操作・表示部１２を操作してスキャンを指示すると、スキャナ部１３は、光源で印刷物３０を走査し、印刷物３０で反射された光をＣＣＤで受光して電気信号に変換し、その電気信号をＡ／Ｄ変換して印刷物３０の情報が記録されたスキャン画像を作成する。このスキャンはモノクロ又はカラーのいずれでもよいが、上記枠線３４ａや仕切り線３４ｂは通常、黒で印刷されており、また、スキャン画像の処理はモノクロの方が簡易であるため、コード３１がカラー２次元コードでなければ、モノクロでスキャンする方が好ましい。
【００６９】
次に、ステップＳ１０２で、制御部１１は、コード３１が印刷されていると判断される候補領域を検出する。この候補領域の検出手順について、図６及び図７を参照して詳述する。
【００７０】
まず、ステップＳ１０２ａで、制御部１１は、スキャナ部１３からスキャン画像を取得する。このスキャン画像は、輝度、濃度、明度データ等、明るさを表す画像であれば特に限定されず、スキャナ部１３で得た画像としてもよいし、画像処理部１４で処理した画像としてもよい。
【００７１】
次に、ステップＳ１０２ｂで、基準線特定部１１ａは、スキャン画像に対して、１レベルのみの二項ウェーブレット変換を行って、水平高周波成分（Ｗｘ）、垂直高周波成分（Ｗｙ）を取得し、上述した式（８）、（９）に従って、高周波強度（すなわち、変化ベクトルＶｎの大きさＭｎ）、エッジ角度（すなわち、偏角Ａｎ）を演算する。
【００７２】
具体的に説明すると、図７（ａ）はスキャン画像の構成を模式的に示しており、このスキャン画像に対して二項ウェーブレット変換を行うとエッジが検出されて、図７（ｂ）に示すようなエッジ画像が生成される。その際、枠線３４ａや仕切り線３４ｂ、コード３１はほとんど変化しないが、テキスト情報３３は、様々な傾きの短い直線群となり、画像情報３２はなだらかな曲線となる。
【００７３】
次に、ステップＳ１０２ｃで、基準線特定部１１ａは、二項ウェーブレット変換で得られるエッジの内、高周波強度（すなわち、濃度変動）が所定値以上のエッジを選別する。ここで、画像情報は通常なだらかな曲線であり、上述した二項ウェーブレット変換の特徴により、１レベルの二項ウェーブレット変換では、なだらかな曲線の高周波強度は小さくなるため、図７（ｃ）に示すように、スキャン画像から画像情報３２が除外される。
【００７４】
次に、ステップＳ１０２ｄで、基準線特定部１１ａは、特定強度以上のエッジに対してハフ変換を行う。このハフ変換において投票数が少ないエッジをカットし、その後、逆変換して直線を抽出すると、図７（ｄ）に示すように、枠線３４ａや仕切り線３４ｂは長い直線として抽出され、テキスト情報３３及びコード３１のエッジの内、投票数が規定値以上のエッジは短い直線として抽出される。そして、これらの直線の中から最も長い直線（すなわち、最も投票数が多い直線）を選択することによって枠線３４ａや仕切り線３４ｂが基準線３５として特定される。
【００７５】
次に、ステップＳ１０２ｅで、候補領域特定部１１ｂは、ハフ変換で抽出された複数の直線の中から、上記ステップで特定した基準線３５に対して、特定の方向（ここでは、基準線３５に平行及び／又は直角）の直線のみを抽出する。この処理により、テキスト情報３３の中の斜めの直線が除外されてスキャン画像は図７（ｅ）のようになる。
【００７６】
次に、ステップＳ１０２ｆで、候補領域特定部１１ｂは、スキャン画像を縦横の線で複数の領域に分割し、ステップＳ１０２ｇで、分割した複数の領域の中から、エッジが所定数以上の領域を選別し、その領域を候補領域として特定する。具体的には、図７（ｆ）に示すように、縦横線で分割した領域の内、網掛けで示した領域が、基準線３５に平行及び／又は直角の直線が所定数以上含まれる候補領域となる。なお、候補領域はいくつかの領域の集合となるので、その集合と非候補領域との境目で切り出しシンボル３１ａを探すことになる。
【００７７】
次に、図５に戻って、ステップＳ１０３で、制御部１１は、スキャン画像から候補領域が検出されたかを判断し、候補領域が無い場合は、ユーザは印刷物３０にコード３１が印刷されているか、印刷物３０がスキャナ部１３に適切にセットされているかを調べ、ステップＳ１０４で再スキャンを指示したら、ステップＳ１０２に戻って同様の処理を繰り返す。
【００７８】
一方、候補領域がある場合は、ステップＳ１０５で、制御部１１のコード検出部３１ｃは、公知の手法を用いてスキャン画像の候補領域近傍でパターンマッチングを行い、予め設定された図形と切り出しシンボル３１ａとを比較することによって切り出しシンボル３１ａを検出する。なお、DATA MATRIXの場合はＬ型のガイドセルを検出すればよく、他のマークを使用するコードの場合はそのマークを検出すればよい。
【００７９】
なお、図５及び図６のフローチャート図では、候補領域を特定し、スキャン画像の候補領域に対してパターンマッチングを行っているが、図６のステップＳ１０２ｄで基準線３５を特定した後、その基準線３５に対して特定の向き（例えば、基準線３５に平行及び／又は直角）でスキャン画像に対してパターンマッチングを行う構成とすることもでき、特定の向きでのみパターンマッチングを行うことにより、コード３１を簡単且つ迅速に検出することができる。
【００８０】
そして、ステップＳ１０６で、コード検出部３１ｃは、パターンマッチングの結果を判断し、パターンマッチングで切り出しシンボル３１ａが検出できない場合は、ユーザは印刷物３０にコード３１が印刷されているか、印刷物３０がスキャナ部１３に適切にセットされているかを調べ、ステップＳ１０４で再スキャンを指示したら、ステップＳ１０２に戻って同様の処理を繰り返す。
【００８１】
一方、パターンマッチングで切り出しシンボル３１ａが検出できた場合は、ステップＳ１０７で、コード検出部３１ｃは、コード３１に記録された情報を読み取る。そして、コード３１にＵＲＬ情報が記録されている場合は、ステップＳ１０８で、制御部１１は、ネットワーク接続部１７を用いて通信ネットワークに接続し、ＵＲＬ情報で特定されるサーバ２０にアクセスして、サーバ２０から割引券等の情報を取得する。なお、コード３１に割引券等の情報が記録されている場合は、ステップＳ１０８の処理を省略することができる。
【００８２】
そして、ステップＳ１０９で、制御部１１はユーザの指示を待ち、割引券等をプリントしないで終了する指示がされた場合（例えば、ユーザが希望する割引券等でない場合）は、一連の処理を終了し、割引券等をプリントする指示がされた場合は、コード３１に記録された情報又はサーバ２０から取得した情報をプリンタ部１５に転送し、ステップＳ１１０で、プリンタ部１５は割引券等のプリントを実行して処理を終了する。
【００８３】
このように、画像形成装置１０の制御部１１に、ハードウェア又はソフトウェアとして基準線特定部１１ａ、候補領域特定部１１ｂ及びコード検出部１１ｃを設け、スキャナ部１３で印刷物３０をスキャンして得たスキャン画像に対して、二項ウェーブレット変換及びハフ変換を行って基準線３５を特定し、その基準線３５に対して平行及び／又は直角等の特定の向きの直線が所定数以上含まれる領域を候補領域として特定し、スキャン画像の候補領域に対してパターンマッチングを行ってコード３１を検出するため、様々な角度で全領域に対してパターンマッチングを行う従来方法に比べて、パターンマッチングに要する時間を格段に短縮し、コード３１を簡単且つ確実に検出することができる。
【００８４】
また、画像形成装置１０の制御部１１に、ハードウェア又はソフトウェアとして基準線特定部１１ａ及びコード検出部１１ｃを設け、スキャナ部１３で印刷物３０をスキャンして得たスキャン画像に対して、二項ウェーブレット変換及びハフ変換を行って基準線３５を特定し、その基準線３５に対して平行及び／又は直角等の特定の向きでスキャン画像に対してパターンマッチングを行ってコード３１を検出する方法によっても、パターンマッチングに要する時間を格段に短縮し、コード３１を簡単且つ確実に検出することができる。
【００８５】
なお、本実施例では、印刷物３０に枠３４ａや仕切り線３４ｂを備える構成を示したが、これらが印刷されていないものであっても、スキャナ部１３で印刷物３０をスキャンする際に、用紙のエッジを抽出することができることから、用紙のエッジを基準線３５として利用することもできる。
【００８６】
また、上記実施例では、印刷物３０に印刷されたコード３１を検出する場合について説明したが、本発明は上記実施例に限定されるものではなく、画像情報３２やテキスト情報３３などが混在するスキャン画像から、基準線３５に対して平行及び／又は直角な成分を多く含む図形などを検出する場合に対しても同様に適用することができる。
【産業上の利用可能性】
【００８７】
本発明は、印刷物から１次元バーコードや２次元コードなどのコードを検出するプログラム、方法及び画像形成装置に利用可能である。
【図面の簡単な説明】
【００８８】
【図１】本発明の一実施例に係る情報提供システムの構成を模式的に示す図である。
【図２】本発明の一実施例に係る画像形成装置の構成を示すブロック図である。
【図３】本発明の一実施例に係る画像形成装置の制御部の構成を示すブロック図である。
【図４】本発明の一実施例に係る印刷物の構成例を示す図である。
【図５】本発明の一実施例に係る情報提供システムを用いた情報提供方法を示すフローチャート図である。
【図６】本発明の一実施例に係るコード検出方法における候補領域の特定手順を示すフローチャート図である。
【図７】本発明の一実施例に係るコード検出方法における候補領域の特定手順の具体例を示す図である。
【図８】ウェーブレット変換関数を示す図である。
【符号の説明】
【００８９】
１０  画像形成装置
１１  制御部
１１ａ  基準線特定部
１１ｂ  候補領域特定部
１１ｃ  コード検出部
１２  操作・表示部
１３  スキャナ部
１４  画像処理部
１５  プリンタ部
１６  記憶部
１７  ネットワーク接続部
２０  サーバ
３０  印刷物
３１  コード
３１ａ  切り出しシンボル
３２  画像情報
３３  テキスト情報
３４ａ  枠線
３４ｂ  仕切り線
３５  基準線
【図１】
2008282339.tif 000013
【図２】
2008282339.tif 000014
【図３】
2008282339.tif 000015
【図４】
2008282339.tif 000016
【図５】
2008282339.tif 000017
【図６】
2008282339.tif 000018
【図７】
2008282339.tif 000019
【図８】
2008282339.tif 000020