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