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