(57)【要約】【課題】行間透かしを用いた文書画像から埋め込まれた情報を効率的に抽出する。【解決手段】文書画像を画像データとして入力する入力手段と、文書画像を画像データとして入力する入力手段と、入力した前記画像データから第１の方向に対して縮小された第１の縮小画像データを生成する画像縮小手段と、前記第１の縮小画像データにおける文字列存在領域の端点を検出する検出手段と、前記端点を用いた四角形の対向する２辺上に走査の始点と終点を設定する設定手段と、前記設定手段で設定した始点と終点を結ぶ線分に沿って、前記縮小画像データを走査し、文字列行間隔を検出し、透かし情報を抽出する抽出手段とを備える。【選択図】図１０
2008301282.tif 000002
【特許請求の範囲】
【請求項１】
文書画像を入力し、当該文書画像中の文字列の行間隔から、埋め込まれた透かし情報を抽出する画像処理装置であって、
文書画像を画像データとして入力する入力手段と、
入力した前記画像データから第１の方向に対して縮小された第１の縮小画像データを生成する画像縮小手段と、
前記第１の縮小画像データにおける文字列存在領域の端点を検出する検出手段と、
前記端点を用いた四角形の対向する２辺上に走査の始点と終点を設定する設定手段と、
前記設定手段で設定した始点と終点を結ぶ線分に沿って、前記縮小画像データを走査し、文字列の行間隔を検出し、透かし情報を抽出する情報抽出手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記画像縮小手段は、更に、前記画像データから前記第１の方向と直交した第２の方向に対して縮小した第２の縮小画像データを生成し、
前記情報抽出手段で有効な文字列の行間隔が検出されなかった場合、
前記検出手段は、前記第２の縮小画像データにおける文字列存在領域の端点を検出し、
前記設定手段は、該端点を用いた四角形の対向する２辺上に走査の始点と終点を設定し、
前記抽出手段は、前記設定手段で設定した始点と終点を結ぶ線分に沿って、前記第２の縮小画像データを走査し、文字列の行間隔を検出し、透かし情報を抽出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記設定手段は、を用いた四角形の対向する２辺の中点を走査の始点と終点を設定することを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記画像縮小手段は、更に、前記第１の方向及び前記第２の方向にそれぞれ予め決められた縮小率で縮小された第３の縮小画像データを生成し、
前記検出手段は、前記第３の縮小画像データにおける文字列存在領域の端点を検出し、前記画像縮小手段における縮小率と、該端点の座標とを用いて、前記第１の縮小画像データにおける文字列存在領域の端点を検出することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
文書画像を入力し、当該文書画像中の文字列の行間隔から、埋め込まれた透かし情報を抽出する画像処理装置の制御方法であって、
文書画像を画像データとして入力する入力工程と、
入力した前記画像データから第１の方向に対して縮小された第１の縮小画像データを生成する画像縮小工程と、
前記第１の縮小画像データにおける文字列存在領域の端点を検出する検出工程と、
前記端点を用いた四角形の対向する２辺上に走査の始点と終点を設定する設定工程と、
前記設定工程で設定した始点と終点を結ぶ線分に沿って、前記縮小画像データを走査し、文字列の行間隔を検出し、透かし情報を抽出する情報抽出工程と、
を備えることを特徴とする画像処理装置の制御方法。
【請求項６】
更に、入力された前記画像データから前記第１の方向と直交した第２の方向に対して縮小した第２の縮小画像データを生成する工程と、
前記情報抽出工程で有効な文字列の行間隔が検出されなかった場合、
前記第２の縮小画像データにおける文字列存在領域の端点を検出する工程と、
該端点を用いた四角形の対向する２辺上に走査の始点と終点を設定する工程と、
該設定された始点と終点を結ぶ線分に沿って、前記第２の縮小画像データを走査し、文字列の行間隔を検出し、透かし情報を抽出する工程と、
を備えることを特徴とする請求項４に記載の画像処理装置の制御方法。
【請求項７】
請求項５または請求項６に記載の画像処理装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書画像中の文字列の行間隔に基づき当該文書画像に埋め込まれた透かし情報を抽出する画像処理技術に関するものである。
【背景技術】
【０００２】
文書画像に著作権や複写制御等の情報を持たせるため、非特許文献１の１９８ページ〜１９９ページの記載に示されるように、行間隔を利用して情報を埋め込む方法（以下、行間透かしと呼ぶ。）が知られている。図２は、行間透かしの概念を示す図である。行間透かしを用いた文書画像から埋め込まれた情報を抽出する場合には、まず当該文書画像内の文字列間の行間隔を求めることになる。行間隔を求めるため、一般的には文書画像に対して全走査を行いヒストグラムを求め、当該ヒストグラムから行間隔を導出する。そして、導出された行間隔と埋め込み時に使用した規則とに従って情報を抽出する。規則とは、例えば、図２に示すように、２値情報の「０」を埋め込みたい場合は行間隔Ｕ，Ｄに対しＵ＞Ｄとなるよう設定することである。一方、２値情報の「１」を埋め込みたい場合は行間隔Ｕ，Ｄに対しＵ＜Ｄとなるよう設定する。
【非特許文献１】松井甲子雄著  「電子透かしの基礎」  森北出版株式会社  １９９８年
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述の行間透かしを用いた文書画像から埋め込まれた情報を抽出する方法においては以下の問題点がある。すなわち、行間隔を測定するために、文書画像に対して全走査を行い、ヒストグラムを求める必要があり、情報抽出処理に時間がかかる。特に埋め込む情報が複製制御情報の場合、複写機内で複写制御情報を抽出し、抽出した情報から複写可能か否かの判断を行い、その後、複写処理を行うため、一枚の文書を複写する一連の処理にかなりの時間を有することになる。また、入力された文書画像の文字列方向と走査方向が傾いているとヒストグラムから行間隔を導出できない。そのため、文書画像を入力しなおすか、あるいは入力された文書画像に対し回転操作等の画像処理を行うなどの煩雑な操作が必要であった。
【課題を解決するための手段】
【０００４】
上述の問題点の少なくとも１つを解決するため、本発明の画像処理装置は以下の構成を備える。すなわち、文書画像を入力し、当該文書画像中の文字列の行間隔から、埋め込まれた透かし情報を抽出する画像処理装置であって、文書画像を画像データとして入力する入力手段と、入力した前記画像データから第１の方向に対して縮小された第１の縮小画像データを生成する画像縮小手段と、前記第１の縮小画像データにおける文字列存在領域の端点を検出する検出手段と、前記端点を用いた四角形の対向する２辺上に走査の始点と終点を設定する設定手段と、前記設定手段で設定した始点と終点を結ぶ線分に沿って、前記縮小画像データを走査し、文字列行間隔を検出し、透かし情報を抽出する抽出手段とを備えることを特徴とする。
【０００５】
上述の問題点の少なくとも１つを解決するため、本発明の画像処理装置の制御方法は以下の構成を備える。すなわち、文書画像を入力し、当該文書画像中の文字列の行間隔から、埋め込まれた透かし情報を抽出する画像処理装置の制御方法であって、文書画像を画像データとして入力する入力工程と、入力した前記画像データから第１の方向に対して縮小された第１の縮小画像データを生成する画像縮小工程と、前記第１の縮小画像データにおける文字列存在領域の端点を検出する検出工程と、前記端点を用いた四角形の対向する２辺上に走査の始点と終点を設定する設定工程と、前記設定工程で設定した始点と終点を結ぶ線分に沿って、前記縮小画像データを走査し、文字列行間隔を検出し、透かし情報を抽出する情報抽出工程とを有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、文書画像中の文字列の行間隔に基づいて文書画像に埋め込まれた透かし情報をより効率的に抽出可能とする技術を提供することができる。
【発明を実施するための最良の形態】
【０００７】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【０００８】
（第１実施形態）
本発明に係る画像処理装置の第１実施形態として、紙の文書原稿を画像読取装置（スキャナ）で読み込み、読み込んだ文書画像データに対し透かし情報の抽出を行う画像処理装置を例に挙げて以下に説明する。
【０００９】
＜装置構成＞
図１は、第１実施形態における画像処理装置１１の主要な機能構成を示すブロック図である。図１に示すように、画像処理装置１１は、画像入力部１０１、画像縮小部１０２、情報抽出部１０３、傾き検出部１０４、制御部１１０、操作部１１１から構成される。
【００１０】
画像入力部１０１は、上述の透かし情報の埋め込まれた文書画像に対応する画像データを入力する機能部である。具体的には、外部のスキャナにより読み取られ生成された紙の文書原稿に基づいた画像データをＵＳＢなどの外部機器接続用インタフェースにより入力する。もちろん、イーサネット（登録商標）などのネットワークを介して画像データを入力するよう構成してもよい。
【００１１】
画像縮小部１０２は、画像入力部１０１により入力された画像データに対し、第１の方向（たとえば画像の水平方向）と、第１の方向と直交する第２の方向（たとえば画像の垂直方向）へそれぞれ縮小する機能部である。入力された画像データがビットマップ（ラスタ）形式である場合、一般的には、上述の第１および第２の方向は画像データを構成する画素の配列方向と一致する。なお、ここでは直交する２つの方向に縮小する構成であると説明したが、後述するように、１つの方向のみに縮小する構成としてもよい。
【００１２】
傾き検出部１０４は、画像入力部１０１により入力された画像データにおいて、文字が記録された領域の傾きを検出する機能部である。具体的には、画像縮小部１０２で生成された縮小画像データから、画像データ上の有意画素の存在領域のエッジ部分（当該存在領域を構成する辺あるいは頂点）を検出する。
【００１３】
情報抽出部１０３は、画像縮小部１０２により生成された縮小画像データから、透かし情報に対応するバイナリ（２値）情報を抽出する機能部である。具体的には、画像縮小部１０２により生成された縮小画像データに対し、有意画素の有無を検出することにより実行される。そして、有意画素が検出された部分を文字列領域として判定し、有意画素が検出されない領域を行間部分として判定する。そして、行間部分として判定された複数の行間それぞれに対応する長さ（連続する画素数）に基づいて、各行間に対応する２値（０または１）を決定する。なお、行間部分の長さと２値との対応や情報量（ビット数）などの、透かし情報の埋め込みアルゴリズムについては、予め情報抽出部１０３に設定されているものとする。
【００１４】
制御部１１０は、上述の各機能部が連係して動作するよう制御するための機能部である。また、操作部１１１はユーザからの指示を受け付けるための機能部である。なお、上述の各機能部の動作の詳細については後述する。
【００１５】
＜透かし情報の埋め込まれた画像データ＞
第１実施形態では、透かし情報の埋め込みアルゴリズムは以下の通りであるとして説明する。もちろん、文字列の行間隔に基づいて透かし情報を埋め込むものであれば、他のアルゴリズムであっても適用可能である。
【００１６】
図２は、透かし情報が埋め込まれた文書原稿を例示的に示す図である。図２においては、白色の用紙に黒色で文字が記録されている。また、複数の行からなる文字列のそれぞれの間隔（行間隔）についてＵ，Ｄの２種類を用いて、２値情報を埋め込んでいる。具体的には、連続する２つの行間（ＵｎおよびＤｎ：ｎは自然数）に対して、以下のように行間を設定する。
【００１７】
「０」を埋め込む場合：  Ｕｎ＞Ｄｎ
「１」を埋め込む場合：  Ｕｎ＜Ｄｎ
そして、当該透かし情報入り文書原稿は、電荷結合素子（ＣＣＤ）などの光学センサを有するスキャナにより読み取られ、画像データＩが生成される。ここでは、生成された文書画像データＩは、紙原稿の文字部分が黒、背景部分が白である２値画像であるとして説明する。なお、以降では文字部分に対応する”黒画素”のことを”有意画素”と呼ぶこともある。
【００１８】
図３は、透かし情報の埋め込まれた２値画像データを例示的に示す図である。ここで、図３（ａ）は、横書きの文字原稿が正しい方向で記録された画像データを示している。一方、図３（ｂ）と図３（ｃ）とは傾きのある文書画像である。上述のように紙の文書原稿をスキャナにより読み取る際には、基準方向とのずれやユーザによる紙原稿配置のミスなどにより、図３（ｂ）と図３（ｃ）のような画像データが入力されることがある。
【００１９】
＜装置の動作＞
以下、画像処理装置１１が、画像データＩから透かし情報を抽出する動作をフローチャートを参照して詳細に説明する。
【００２０】
図１０は、第１実施形態に係る画像処理装置１１の動作フローチャートである。なお、以下のフローはたとえばユーザによる操作部１１１を介した画像読取指示をトリガに実行される。
【００２１】
ステップＳ１００１では、画像入力部１０１は、透かし情報入り文書画像に対応する画像データＩをスキャナから受信し、画像データＩを画像縮小部１０２に供給する。
【００２２】
ステップＳ１００２では、画像縮小部１０２は、画像入力部１０１より供給された画像データＩを水平方向と垂直方向へそれぞれ縮小し、水平方向の縮小画像データＩｓｈ、垂直方向の縮小画像データＩｓｖを生成する。また、水平・垂直各方向に予め決められた縮小率で等倍縮小した画像である縮小画像データＩｓｖｈを生成する。そして、縮小画像データＩｓｈ（第１の縮小画像データ）、縮小画像データＩｓｖ（第２の縮小画像データ）および縮小画像データＩｓｖｈ（第３の縮小画像データ）を情報抽出部１０３に供給する。
【００２３】
図４は、画像データＩを水平方向に縮小した縮小画像データＩｓｈ、および、垂直方向へ縮小した縮小画像データＩｓｖの例を示す図である。なお、図４（ａ）は図３（ａ）の文書画像、図４（ｂ）は図３（ｂ）の文書画像、図４（ｃ）は図３（ｃ）の文書画像のそれぞれに基づいて生成した縮小画像データである。
【００２４】
なお、ここで、水平・垂直の２つの方向に対して縮小画像を生成するのは、図３（ｃ）に示すように９０度傾きのある画像データＩが入力された場合に対応するためである。このような状況は、スキャナによる読み取りではしばしば発生する。そのため、あらかじめ画像データＩの入力方向が保障されている場合は、文字列方向に対応する１方向のみに縮小を行うよう構成してもよい。
【００２５】
図４から、画像縮小部１０２による縮小により、文字列方向に縮小した縮小画像に対しては、複数の文字列が複数の有意画素の固まり（オブジェクト）として表現されることがわかる。以下、当該縮小画像の生成についてさらに詳しく説明する。
【００２６】
画像縮小部１０２が実行する縮小処理の具体的な計算手法としては、入力された画像データに対し単に一定周期での画素の間引きによる縮小が考えられる。しかし、文字列部分と行間部分とをより正確に識別するために、以下のようなバイリニア法を利用した計算を行うとよい。
【００２７】
バイリニア法では、画像データＩの中の近接する４つの画素の画素値に基づいて、対応する縮小画像データの画素の画素値を算出する。この場合、４つの画素の少なくとも１つが黒である場合計算結果は中間調（グレー）となる（図５左）。具体的には、白を０、黒を１として演算した結果が０より大きく１より小さい値となる。
【００２８】
行間部分には有意画素である黒画素は存在しないため、１つでも黒画素が存在する場合、当該近接する４つの画素の存在する部分は文字列領域であると推定できる。そのため、中間調として算出された部分を有意画素である黒へと変換させる（図５右）ことにより、文字列領域と行間領域とをより高精度に分割することができる。つまり、文字列領域には有意画素が存在しない場合がある（画数の少ない文字など）が、行間領域には有意画素は一般に存在することは無いことを利用しているのである。
【００２９】
なお、画像縮小部１０２による水平・垂直方向への縮小率は、オブジェクトが認識できる程度の大きさとなる縮小率であればよい。具体的な縮小率の値は予め指定した固定値としてもよいし、入力された画像データの付加データ（スキャナによる読取解像度情報など）に基づいて随時決定してもよい。また、ここでは縮小画像を生成するアルゴリズムの一例としてバイリニア法を適用したが、本発明はこれに限定されることはない。ニアレストレイバー、バイキュービックなど、種々の計算手法を利用して縮小可能である。
【００３０】
ステップＳ１００３では、傾き検出部１０４は、画像縮小部１０２で生成された縮小画像データＩｓｖｈから文書画像における文書領域（文字列存在領域）の端点４つを検出する。以下、具体的な方法について説明する。
【００３１】
図８は、文書領域の端点（頂点）を検出する方法の概念図である。傾き検出部１０４は、縮小画像データＩｓｖｈを図８（ａ）に示すように、水平方向（図中Ｈ１，Ｈ２，Ｈ３・・・）と垂直方向（図中Ｖ１，Ｖ２，Ｖ３・・・）に順に走査する。そのとき、有意画素が最初に検出されるラインと、最後に検出されるラインに基づいて端点を決定する。例えば、図８（ａ）では、水平方向のラインであるＨ１とＨ３０、および、垂直方向のラインであるＶ１とＶ２５から丸印（●）部分が端点として決定される。
【００３２】
なお、文書領域のレイアウトにより、縮小画像データＩｓｖｈが図８（ｃ）に示すようになる場合があるが、この場合も同様に端点（図中の丸印部分）を得ることができる。また、ここでは縮小画像データＩｓｖｈより端点を検出したが、画像データＩを用いて文書領域のエッジを抽出し、端点を検出してもよい。
【００３３】
端点を検出する他の方法として、画像データＩの作成時、つまり、スキャナでの読み取り時に、紙の文書原稿と背景（押圧版など）との差を利用し端点を検出しても良い。
【００３４】
ステップＳ１００４では、傾き検出部１０４は、ステップＳ１００３で決定した縮小画像データＩｓｖｈの端点、および、ステップＳ１００２で用いた縮小率Ｒから縮小画像データＩｓｈにおける端点を算出する。そして、算出した結果を端点データＣとして縮小画像データＩｓｈとともに情報抽出部１０３に供給する。
【００３５】
例えば、ステップＳ１００２において、画像データＩを水平・垂直方向に縮小率Ｒ＝１／１００で行ったとする。また、縮小画像データＩｓｖｈにおける端点が図８（ｂ）に示すように座標（１０，１０），（３０，２０），（０，９０），（２０，１００）であったとする。この場合、縮小画像データＩｓｈは水平方向にのみ縮小率Ｒ＝１／１００で縮小しているので、縮小画像データＩｓｈの端点は、垂直方向の座標Ｙを１００倍すればよい。つまり、縮小画像データＩｓｈにおける端点は（１０，１０００），（３０，２０００），（０，９０００），（２０，１００００）と算出される。
【００３６】
ここで、縮小画像データＩｓｈの端点を算出する際に、縮小画像データＩｓｈよりもデータ量の小さい縮小画像データＩｓｖｈを用いることで、少メモリで、かつ、高速に算出できるという効果がある。
【００３７】
ステップＳ１００５では、情報抽出部１０３は、傾き検出部１０４から供給された端点データＣを用いて、各端点との中点を算出する。なお、文書領域が矩形領域として検出されている場合（図８（ａ））、算出される中点は矩形の各辺上に存在することになる。
【００３８】
ステップＳ１００６では、情報抽出部１０３は、画像縮小部１０２より供給された縮小画像データの１つを用いて各文字列領域間の長さ（行間隔）を計測する。
【００３９】
図１２は、文書画像の傾きを例示的に示す図である。図に示すように、画像データＩが図中の白で示された方向に傾いていれば、水平方向の縮小である縮小画像データＩｓｈを用いるのが望ましい。一方、グレーで示された方向に傾いていれば、垂直方向の縮小である縮小画像データＩｓｖを用いることが望ましい。しかし、文字列存在領域内における文字列の並び方向を判定することは、一般的に煩雑な処理が必要である。そのため、ここでは、まず、水平方向に縮小した縮小画像データＩｓｈに対して計測するものとする。具体的な計測方法は以下の通りである。
【００４０】
情報抽出部１０３は、縮小画像データＩｓｈおよび算出された中点に基づいて、有意画素の走査を実行し、オブジェクト間の距離（行間隔）を計測する。
【００４１】
図９は、ステップＳ１００６における走査方向を例示的に示す図である。図９（ａ）に示すように、対向する２辺の上に存在する中点間（図中の四角印（◆）間）を結んだ線方向に走査する。図９（ａ）において、走査方向が２つ（（１）および（３））記されている。これは、図１２に示した画像データＩの傾きの方向（（１）および（３））に対応させた走査方向を示している。
【００４２】
ここで、文書画像が（１）と（３）のどちらが正しい方向か判定することは困難である。そのため、ここでは、まず２つの方向に走査させるのである。なお、ここでは走査方向が２つあるが、後述するように透かし情報の埋め込みアルゴリズムによっては走査方向を１つとする構成としてもよい。
【００４３】
図６は、縮小画像データＩｓｈの拡大図である。まず、情報抽出部１０３は、縮小画像データＩｓｈに対し縮小方向（ここでは水平方向）と直交する方向（ここでは垂直方向）へ、走査を行うことにより有意画素の有無を検出する。そして、有意画素の有無が反転する位置を、文字列領域と行間領域との境界として決定する。
【００４４】
たとえば、図６における矢印に沿って反転位置を検出した場合、ｘ１〜ｘ１０の各画素位置が検出されることになる。このとき、行間隔であるＵ１、Ｄ１、Ｕ２、Ｄ２のそれぞれの長さは、Ｕ１＝ｘ３−ｘ２、Ｄ１＝ｘ５−ｘ４、Ｕ２＝ｘ７−ｘ６、Ｄ２＝ｘ９−ｘ８である（単位は画素（ｐｉｘ））。
【００４５】
前述のように、ステップＳ１００２における縮小処理の結果、文字列領域が文字の並び方向に縮小されると同時に、中間調部分が有意画素に変換されている。そのため、文字列領域における有意画素（ここでは黒）の密度が結果的に高くなっている。その結果、情報抽出部１０３は、文字列領域と行間領域との境界をより高精度に検出可能であり、行間隔を高精度に計測可能である。
【００４６】
なお、ここでは、４つの端点を用いた四角形の対向する２辺上の中点を、それぞれ、始点、終点として、その間を結ぶ方向に走査を実行したが、厳密に中点の間を結ぶ線分でなくてもよい。例えば、図９（ｂ）に示す文書領域の場合、端点の間の一箇所を、傾き方向（図中の矢印）に走査してもよい。
【００４７】
なお、上述のバイリニア法を利用した縮小画像データを利用する場合、一般的には１回の走査で十分である。しかし、より高精度に検出を行うときには、縮小した画像に対して、複数の走査を行い、複数箇所における平均値を行間隔としてもよい。また、縮小画像データを間引きにより生成した場合にも、複数箇所の走査は有効である。  図７は、縮小画像データＩｓｈに対し複数箇所の走査を実行する様子を例示的に示す図である。図７では、黒色オブジェクトで示される文字列部分が、より現実の縮小画像データに近いものとして示している。つまり、図６のような理想的な矩形オブジェクトではなく、非有意画素（白色画素）を含んだものとして示されている。そのため、走査位置によってオブジェクト間（行間隔）の計測値が微妙に異なることになる。
【００４８】
例えば、図中に示すように走査位置を３箇所（矢印（１）（２）（３））行った値がそれぞれ、
矢印（１）：  Ｕ１＝１０［ｐｉｘ］、Ｄ１＝４［ｐｉｘ］、Ｕ２＝４［ｐｉｘ］、Ｄ２＝１２［ｐｉｘ］
矢印（２）：  Ｕ１＝  ８［ｐｉｘ］、Ｄ１＝５［ｐｉｘ］、Ｕ２＝６［ｐｉｘ］、Ｄ２＝１０［ｐｉｘ］
矢印（３）：  Ｕ１＝  ６［ｐｉｘ］、Ｄ１＝３［ｐｉｘ］、Ｕ２＝５［ｐｉｘ］、Ｄ２＝  ８［ｐｉｘ］
であったとする。その場合、例えばそれぞれの長さの平均値である、
Ｕ１＝８［ｐｉｘ］、Ｄ１＝  ４［ｐｉｘ］、Ｕ２＝５［ｐｉｘ］、Ｄ２＝１０［ｐｉｘ］
をオブジェクト間の距離（行間隔）と決定するとよい。
【００４９】
ステップＳ１００７では、情報抽出部１０３は、ステップＳ１００６で導出した行間隔に基づいて透かし情報を導出する。具体的には、情報抽出部１０３に予め設定された埋め込みアルゴリズムに対応させて透かし情報を算出する。例えば、図６では、Ｕ１＜Ｄ１、Ｕ２＞Ｄ２であることから透かし情報は「１０（２進）」として導出される。
【００５０】
なお、図９（ａ）に示したように、走査方向２つ（（１）および（３））に対して、上述した、オブジェクト間の距離（行間隔）の計測と透かし情報の導出を行うが、この時点ではどちらの情報が正しいか否かは判定できない。そこで、導出した透かし情報から判定する。これは、透かし情報の埋め込みアルゴリズムに関係するが、埋め込む情報の他にスタートビット、ストップビットを用い、これが反転しているか否かにより判定する。
【００５１】
例えば、スタートビット、ストップビットを同じ「０」としておけば、透かし情報を算出した場合、どちらか一方のスタートビットが「１」となっているため、スタートビットが「０」となっている透かし情報が正しいと判定する。
【００５２】
また、透かし情報の埋め込みアルゴリズムとして読取開始方向に依存しないよう構成したアルゴリズムを用いることも好適である。例えば、埋め込む情報が「１０１（２進）」や「１１０１０（２進）」で、スタートビットを「０」、ストップビットを「１１」とした場合、情報は、「０１０１１１（２進）」、「０１１０１０１１（２進）」となる。さらに、どちらからでも読み取りが可能なように「０１０１１１０００１０１（２進）」、「０１１０１０１１００１０１００１（２進）」のようにした情報を埋め込めば、（１）の上から下の走査１回のみで情報の抽出が可能である。なお、上記情報の後半部分がビット反転しているのは、判定条件が
「０」を埋め込む場合：  Ｕｎ＞Ｄｎ
「１」を埋め込む場合：  Ｕｎ＜Ｄｎ
の場合、反対方向から読むとＵｎとＤｎの順序が反対となり、ビット反転するためである。
また、上記とは別に、スタートビット、ストップビットを同じ「０」としておけば、埋め込む情報が「１０１（２進）」の場合は「００１０１０（２進）」となる。そして、反対方向から読むと「１０１０１１（２進）」で、スタートビットが「１」となっている。そのため、情報部分を反転させ「０１０１００（２進）」さらに反対方向に並べかえることにより「００１０１０（２進）」となり、抽出することができる。
このような方法を用いれば、走査方向２つ行わずに１つだけで透かし情報を導出することも可能である。
【００５３】
ただし、ステップＳ１００６において、すでに図１２を参照して説明したように、図４（ｃ）に示す縮小画像データＩｓｈに対して計測した場合、オブジェクト間の距離を計測することができない場合がある。そのため、ステップＳ１００７で、透かし画像を抽出することができない場合がある。
【００５４】
ステップＳ１００８では、制御部１１０は、ステップＳ１００７において情報が抽出できたか否かを判定する。情報が抽出できたか否かの判断は、例えば、Ｕｎ，Ｄｎが計測できた場合は、情報が抽出できたとし、Ｕｎ，Ｄｎが計測できなかった場合は抽出ができなかったと判定する。あるいは、予め設定された埋め込みアルゴリズムで規定された値以外の値が検出された場合に情報が抽出できなかったとする。また、読み取り結果に対して、予め指定された誤検出／未検出の判定を行うことにより決定してもよい。
【００５５】
ステップＳ１００９では、傾き検出部１０４は、ステップＳ１００３で決定した縮小画像データＩｓｖｈの端点、および、ステップＳ１００２で用いた縮小率Ｒから縮小画像データＩｓｖにおける端点を算出する。そして、算出した結果を端点データＣとして縮小画像データＩｓｈとともに情報抽出部１０３に供給する。
【００５６】
ステップＳ１０１０では、情報抽出部１０３は、傾き検出部１０４から供給された端点データＣを用いて、各端点との中点を算出する。
【００５７】
ステップＳ１０１１では、情報抽出部１０３は、画像縮小部１０２より供給された縮小画像データＩｓｖを用いて各文字列領域間の長さ（行間隔）を計測する。具体的な計測方法はステップＳ１００６と同様である。ただし、情報抽出部１０３は、縮小画像データＩｓｖに対しステップＳ１００６での走査方向とほぼ直交する方向へ、走査を行うことにより有意画素の有無を検出することに注意する。
【００５８】
ステップＳ１０１２では、情報抽出部１０３は、ステップＳ１０１１で導出した行間隔に基づいて透かし情報を導出する。具体的な計測方法はステップＳ１００７と同様である。
【００５９】
以上のような動作フローを経て、画像処理装置１１は、画像データＩから透かし情報を抽出する。
【００６０】
なお、第１実施形態では、図２に示したような、透かし情報を１組（２つ）の行間隔の相対的長さに対応させて埋め込むアルゴリズムを用いて説明を行った。しかし、最初に述べたように本発明は、この埋め込みアルゴリズムに限定されることない。例えば、最初の行間隔（文字列の１行目と２行目との間）を基準として、２つ目（文字列の２行目と３行目との間）以降の行間隔を最初の行間隔との相対的長さに対応させて情報を埋め込むアルゴリズムなどでもよい。また、相対的行間隔による２値情報ではなく、行間隔に基づくより多値の情報を埋め込むようにしてもよい。つまり、行間隔を使用した任意の埋め込みアルゴリズム全般に対し有効な手法である。
【００６１】
以上説明したように、第１実施形態に係る画像処理装置によれば、より高精度にあるいはより高速に、透かし情報を抽出することが可能となる。また、入力された画像データ内における文字列方向が、当該画像データの方向に対して傾きを有していた場合であっても、煩雑な操作を行うことなく情報を抽出可能となる。
【００６２】
（第２実施形態）
第２実施形態として、縮小画像データを用いて文字列領域の端点（頂点）検出を行う形態について説明する。端点検出の動作以外の動作については第１実施形態と同様であるため説明は省略する。
【００６３】
傾き検出部１０４は、例えば図１３に示すように縮小画像データＩｓｈを水平方向（図中Ｈ１，Ｈ２，Ｈ３・・・）と垂直方向（図中Ｖ１，Ｖ２，Ｖ３・・・）に順に走査していき、黒画素がはじめに検出される箇所と、黒画素が終わる箇所を端点とする。ここでは、水平方向におけるＨ１とＨ１００００、および、垂直方向におけるＶ１とＶ２５に基づいて、丸印（●）部分で示される端点が検出される。このように構成することにより、縮小画像データＩｓｈから直接傾き検出を行うことが出来る。そのため、第１実施形態における水平・垂直各方向に等倍縮小した画像である縮小画像データＩｓｖｈの生成と、ステップＳ１００３の端点算出処理を省略できる。
【００６４】
なお、第１実施形態においては、ステップＳ１００２において縮小画像データＩｓｈ、Ｉｓの双方を同時に生成している。しかし、まず、水平方向の縮小画像データＩｓｈのみを生成し、この縮小画像データＩｓｈから端点を検出して情報を抽出するよう構成してもよい。そして、もし、情報が抽出出来なかった場合にのみ、垂直方向の縮小画像データＩｓｖを生成し、縮小画像データＩｓｖから端点を検出して情報を抽出してもよい。
【００６５】
（第３実施形態）
第３実施形態では、スキャナなどで読み取った文書画像をコンピュータ（ＰＣ）上で動作するプログラムにより、透かし情報の抽出を実行する形態について説明する。
【００６６】
＜機器構成＞
図１１は、ＰＣの内部構成を示す図である。
【００６７】
同図において、１１０１はＣＰＵで、ＲＡＭ１１０２やＲＯＭ１１０３に格納されているプログラムやデータに基づいて、図１に示した、機能ブロックの各部を実現する。
【００６８】
１１０２はＲＡＭで、外部記憶装置１１０８からロードされたプログラムやデータを記憶する。また、他のコンピュータシステム１１１４からＩ／Ｆ（インターフェース）１１１５を介してダウンロードしたプログラムやデータを一時的に記憶する。さらに、ＣＰＵ１１０１が各種の処理を行うために必要とするエリアを備える。
【００６９】
１１０３はＲＯＭで、コンピュータの機能プログラムや設定データなどを記憶する。１１０４はディスプレイ制御装置で、画像や文字等をディスプレイ１１０５に表示させるための制御処理を行う。１１０５はディスプレイで、画像や文字などを表示する。なお、ディスプレイとしてはＣＲＴや液晶画面などが適用可能である。
【００７０】
１１０６は操作入力デバイスで、キーボードやマウスなど、ＣＰＵ１１０１に各種の指示を入力することのできるデバイスにより構成されている。１１０７は操作入力デバイス１１０６を介して入力された各種の指示等をＣＰＵ１１０１に通知するためのＩ／Ｏである。
【００７１】
１１０８はハードディスクなどの大容量情報記憶装置として機能する外部記憶装置で、ＯＳ（オペレーティングシステム）や各種アプリケーションプログラム、さらに、入出力原稿画像などを記憶する。外部記憶装置１１０８への情報の書き込みや外部記憶装置１１０８からの情報の読み出しはＩ／Ｏ１１０９を介して行われる。
【００７２】
１１１０は文書や画像を出力する為のプリンタで、出力データはＩ／Ｏ１１１１を介してＲＡＭ１１０２、もしくは外部記憶装置１１０８から送られる。なお、文書や画像を出力する為のプリンタとしては、例えばインクジェットプリンタ、レーザビームプリンタ、熱転写型プリンタ、ドットインパクトプリンタなどが挙げられる。
【００７３】
１１１２は文書や画像を読み取るためのスキャナで、入力データはＩ／Ｏ１１１３を介してＲＡＭ１１０２、もしくは外部記憶装置１１０８に送られる。
【００７４】
１１１６は、ＣＰＵ１１０１、ＲＯＭ１１０３、ＲＡＭ１１０２、Ｉ／Ｏ１１１１、Ｉ／Ｏ１１０９、ディスプレイ制御装置１１０４、Ｉ／Ｆ１１１５、Ｉ／Ｏ１１０７、Ｉ／Ｏ１１１３を繋ぐバスである。
【００７５】
＜装置の動作＞
外部記憶装置１１０８には、アプリケーションプログラムとして、第１実施形態で説明した各機能部および動作フローを実現するための、画像処理プログラムが記憶されている。ユーザによる、操作入力デバイス１１０６を介した、当該画像処理プログラムの起動指示に基づき、第１実施形態で説明した動作フローが開始される。なお、詳細動作は第１実施形態とほぼ同様であるため省略する。
【００７６】
（他の実施形態）
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００７７】
なお、本発明は、前述した実施形態の機能を実現するプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置が、供給されたプログラムコードを読み出して実行することによっても達成される。従って、本発明の機能処理をコンピュータで実現するために、コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。
【００７８】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００７９】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭなどがある。
【００８０】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００８１】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００８２】
【図１】第１実施形態における画像処理装置１１の主要な機能構成を示すブロック図である。
【図２】透かし情報が埋め込まれた文書原稿を例示的に示す図である。
【図３】透かし情報の埋め込まれた２値画像データを例示的に示す図である。
【図４】画像データＩを水平方向に縮小した縮小画像データＩｓｈ、および、垂直方向へ縮小した縮小画像データＩｓｖの例を示す図である。
【図５】中間調として算出された部分の有意画素である黒への変換を例示的に示す図である。
【図６】縮小画像データＩｓｈの拡大図である。
【図７】縮小画像データＩｓｈに対し複数回の走査を実行する様子を例示的に示す図である。
【図８】文書領域の端点（頂点）を検出する方法の概念図である。
【図９】有意画素検出の走査方向を例示的に示す図である。
【図１０】第１実施形態に係る画像処理装置１１の動作フローチャートである。
【図１１】ＰＣの内部構成を示す図である。
【図１２】文書画像の傾きを例示的に示す図である。
【図１３】縮小画像データＩｓｈを利用した端点検出を例示的に示す図である。
【符号の説明】
【００８３】
１１      画像処理装置
１０１    画像入力部
１０２    画像縮小部
１０３    情報抽出部
１０４    傾き検出部
１１０    制御部
１１１    操作部
【図１】
2008301282.tif 000003
【図２】
2008301282.tif 000004
【図３】
2008301282.tif 000005
【図４】
2008301282.tif 000006
【図５】
2008301282.tif 000007
【図６】
2008301282.tif 000008
【図７】
2008301282.tif 000009
【図８】
2008301282.tif 000010
【図９】
2008301282.tif 000011
【図１０】
2008301282.tif 000012
【図１１】
2008301282.tif 000013
【図１２】
2008301282.tif 000014
【図１３】
2008301282.tif 000015