説明

画像処理装置、画像処理方法

【課題】 透かし情報に対応するパターンで文字を構成したことで得られる文字を含む文書画像からこの透かし情報を抽出する際、各文字の外接矩形を正確に求める為の技術を提供すること。
【解決手段】 文書解析部702は、文書画像中の文字領域中の、この文字領域に対して埋め込むものとして与えられた透かし情報に応じて決まる1以上の画素について、黒画素を白画素に変換した文書画像を二値化する。そしてこの二値画像における参照画素が白画素である場合、参照画素の2以上の近傍画素の画素値に基づいて、参照画素の画素値を変更しない若しくは黒画素に変更する。その後、この二値画像中の各文字の外接矩形を求める。透かし情報抽出部704は、外接矩形内の領域に対応する文書画像内の領域に埋め込まれた透かし情報を抽出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書画像中の文字領域に対して埋め込まれたビットの値を抽出するための技術に関するものである。
【背景技術】
【0002】
近年、プリンタ、複写機などのデジタル画像形成装置において、その画質の向上は著しく、容易に高画質の印刷物を手にすることができるようになってきている。つまり、誰もが高性能スキャナ、プリンタ、複写機、そしてコンピュータによる画像処理により、要求される印刷物を得ることが可能となってきている。そのため、文書の不正コピー、改ざん等の問題が発生し、それらを防止、あるいは抑止させるため、印刷物そのものにアクセス制御情報を透かし情報として埋め込もうという動きが近年活発となってきている。
【0003】
このような機能としては、印刷物にアクセス制御情報を目に見えないように埋め込む不可視タイプの電子透かしがある。一般的な実現方法として、英文字列のスペースの量をコントロールすることにより情報を埋め込むタイプがある(特許文献1を参照)。またその他にも、文字を回転することにより情報を埋め込むタイプ、文字を拡大縮小することで情報を埋め込むタイプ、文字を変形させることで情報を埋め込むタイプ等が提案されている。
【0004】
図16は、英単語間のスペースの間隔を制御することで情報を埋め込む処理を説明する図である。同図において1601は文章1650における単語「Modern」と単語「computer」との間の間隔を示しており、係る間隔をpとする。1602は、文章1650における単語「computer」と単語「networks」との間の間隔を示しており、係る間隔をsとする。
【0005】
1660は、文章1650に対して情報を埋め込んだ結果としての文章を示す。1603は、文章1660における単語「Modern」と単語「computer」との間の間隔を示しており、係る間隔をp1とする。1604は、文章1660における単語「computer」と単語「networks」との間の間隔を示しており、係る間隔をs1とする。
【0006】
ここで、文章1650に対して情報「0」を埋め込んだとき、p1,s1は次のようにして決まる。
【0007】
p1=(1+q)(p+s)/2
s1=(1−q)(p+s)/2
一方、文章1650に対して情報「1」を埋め込んだとき、p1,s1は次のようにして決まる。
【0008】
p1=(1−q)(p+s)/2
s1=(1+q)(p+s)/2
なお、qは0<q<1である。
【0009】
図17は、文字の大きさを拡大あるいは縮小することによって情報を埋め込む処理を説明する図である。
【0010】
同図では矩形1701内の文字「像」に対して情報「1」を埋め込むので、結果として矩形1702に示す如く、係る文字「像」のサイズが拡大されている。一方、矩形1703内の文字「再」に対しては情報「0」を埋め込むので、結果として矩形1704に示す如く、係る文字「再」のサイズは縮小されている。尚、埋め込みの対象となる文字は、連続する文字であっても、数文字間隔であっても、あらかじめ定められた位置の文字であってもよい。同図では、「像」の文字が拡大され、また「再」の文字が縮小されているので、「10」という情報が埋め込まれている。
【0011】
図18は、文字を回転させ、傾斜を変化させることにより情報を埋め込む処理を説明する図である。
【0012】
同図では矩形1801内の文字「像」に対して情報「1」を埋め込むので、結果として矩形1802に示す如く、係る文字「像」は時計回りに所定角度回転している。一方、矩形1803内の文字「構」に対しては情報「0」を埋め込むので、結果として矩形1804に示す如く、係る文字「構」は反時計回りに所定角度回転している。尚、埋め込みの対象となる文字は、連続する文字であっても、数文字間隔であっても、あらかじめ定められた位置の文字であってもよい。同図では、「像」の文字が時計回りに所定角度回転しており、また「構」の文字が反時計回りに所定角度回転しているので、「10」という情報が埋め込まれている。
【0013】
図6は、文字に対して埋め込むビットの値に対応するパターンでもってこの文字を構成することで係るビットの値を、この文字に対して埋め込む処理を説明する図である。
【0014】
同図において604は、文字に対して埋め込まれたビットの値が「0」である場合に用いるパターンである。605は、文字に対して埋め込むビットの値が「1」である場合に用いるパターンである。また、601は、ビットの値を埋め込む対象としての文字である。
【0015】
係る点、文字601に対して埋め込むビットの値が「0」であったとする。この場合、パターン604で文字601を構成することで、パターン604が示す白黒パターン(画素値パターン)で文字601を構成したパターン602を作成することができる。係るパターン602は、パターン601に対してビット値「0」を埋め込んだ結果としてのパターンである。
【0016】
一方、文字601に対して埋め込むビットの値が「1」であったとする。この場合、パターン605で文字601を構成することで、パターン605が示す白黒パターン(画素値パターン)で文字601を構成したパターン603を作成することができる。係るパターン603は、パターン601に対してビット値「1」を埋め込んだ結果としてのパターンである。
【特許文献1】米国特許第6086706号明細書
【発明の開示】
【発明が解決しようとする課題】
【0017】
図6に示した埋め込み処理でもって文字に埋め込んだビット値を抽出する際、各文字について外接矩形を求める必要がある。
【0018】
文字の外接矩形を求めるためには、例えば次のような方法がある。先ず、文書画像の各画素値を垂直座標軸に対して射影し、空白部分(黒色である文字のない部分)を探索して行を判別して行分割を行う。その後、行単位で文書画像を水平座標軸に対して射影し、空白部分を探索して文字単位に分割する。これによって、各文字を外接矩形で切り出すことが可能となる。
【0019】
図6に示す如く、文字601に対してビット値「0」若しくは「1」を目込むと、パターン602、603に示す如く、文字中にいくつかの空白部分が発生する。従って係る文字が配列された文書画像から各文字についての外接矩形を求める際、1個の文字が複数の文字とみなされ、1個の文字について複数の外接矩形が作成されてしまうことがある。
【0020】
情報の埋め込み側では文字毎に外接矩形を求め、求めた各外接矩形内の文字に対して情報を埋め込むので、1個の文字について複数の外接矩形が作成されてしまうというような問題が発生すると、埋め込み側と抽出側とで、外接矩形が一致しない。そしてこれにより、抽出した情報が正確なものではなくなる。
【0021】
本発明は以上の問題に鑑みてなされたものであり、透かし情報に対応するパターンで文字を構成したことで得られる文字を含む文書画像からこの透かし情報を抽出する際、各文字の外接矩形を正確に求める為の技術を提供することを目的とする。
【課題を解決するための手段】
【0022】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【0023】
即ち、文書画像中の文字領域を構成する複数の画素のうち、当該文字領域に対して埋め込むものとして与えられた透かし情報に応じて決まる1以上の画素について、その第1の画素値を第2の画素値に変換することで得られる第2の文書画像を取得する取得手段と、
前記第2の文書画像を二値化することで二値画像を作成する作成手段と、
前記二値画像を構成する各画素を順次参照し、参照画素の画素値が前記第2の画素値である場合には、当該参照画素の2以上の近傍画素の画素値に基づいて、当該参照画素の画素値を変更しない若しくは前記第1の画素値に変更することで、第2の二値画像を作成する第2の作成手段と、
前記第2の二値画像中の各文字の外接矩形を求める計算手段と、
前記計算手段が求めた外接矩形内の領域に対応する前記第2の文書画像内の領域に埋め込まれた透かし情報を抽出する抽出手段と
を備えることを特徴とする。
【0024】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【0025】
即ち、文書画像中の文字領域を構成する複数の画素のうち、当該文字領域に対して埋め込むものとして与えられた透かし情報に応じて決まる1以上の画素について、その第1の画素値を第2の画素値に変換することで得られる第2の文書画像を取得する取得工程と、
前記第2の文書画像を二値化することで二値画像を作成する作成工程と、
前記二値画像を構成する各画素を順次参照し、参照画素の画素値が前記第2の画素値である場合には、当該参照画素の2以上の近傍画素の画素値に基づいて、当該参照画素の画素値を変更しない若しくは前記第1の画素値に変更することで、第2の二値画像を作成する第2の作成工程と、
前記第2の二値画像中の各文字の外接矩形を求める計算工程と、
前記計算工程で求めた外接矩形内の領域に対応する前記第2の文書画像内の領域に埋め込まれた透かし情報を抽出する抽出工程と
を備えることを特徴とする。
【発明の効果】
【0026】
本発明の構成により、透かし情報に対応するパターンで文字を構成したことで得られる文字を含む文書画像からこの透かし情報を抽出する際、各文字の外接矩形を正確に求めることができる。
【発明を実施するための最良の形態】
【0027】
以下添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。
【0028】
[第1の実施形態]
<透かし情報の埋め込み処理について>
図1は、文書画像中のそれぞれの文字に対して、透かし情報を構成する各ビットを埋め込む処理を行う画像処理装置の機能構成を示すブロック図である。同図に示す如く、画像処理装置190は、画像入力部101、文書解析部102、埋め込み判定部103、透かし情報入力部105、埋め込み部106、画像出力部107により構成されている。
【0029】
複数の文字が記されており、且つ後述する透かし情報を埋め込む対象となる文書画像100は、画像入力部101に入力される。画像入力部101は係る文書画像100を後段の文書解析部102に送出する。
【0030】
文書解析部102は、文書画像100中の各文字について外接矩形を求める。係る処理については後述する。埋め込み判定部103は、文書解析部102が求めた各外接矩形のうち、電子透かしの埋め込みを行うことができる外接矩形を選択する処理を行う。
【0031】
一方、透かし情報入力部105は、複数のビット(各ビットのビット値は0若しくは1)で構成されている透かし情報104を入力するものであり、係る透かし情報104は後段の埋め込み部106に送出する。
【0032】
埋め込み部106は、透かし情報104からnビット毎に順次取り出し、取り出したnビットを、埋め込み判定部103で電子透かし埋め込み可能な外接矩形として選択された外接矩形内の文字部分に対して埋め込む処理を行う。本実施形態ではn=1とするが、以下説明する処理の本質はこれに限定するものではない。
【0033】
画像出力部107は、埋め込み部106により透かし情報が埋め込まれた文書画像を、透かし埋め込み画像108として出力する。
【0034】
図3は、画像処理装置190が行う、文書画像中のそれぞれの文字に対して、透かし情報を構成する各ビットを埋め込む処理のフローチャートである。
【0035】
ステップS301では、画像入力部101により文書画像100が本装置に入力される。ステップS302では、文書解析部102は、入力された文書画像100中に含まれるそれぞれの文字について外接矩形(文字領域)を求める。その際、文書画像100中における各外接矩形を示す情報(例えば外接矩形の左上隅の位置と縦横のサイズ)を求め、保持しておく。
【0036】
文字の外接矩形は、文字に外接する矩形であって、本来は、文字認識を行う領域を指す情報であるが、電子透かし技術においては、埋め込み操作の対象となる文字領域を示すものである。外接矩形を求める方法には例えば、以下のような方法がある。
【0037】
文書画像の各画素値を垂直座標軸に対して射影し、空白部分(黒色である文字のない部分)を探索して行を判別して行分割を行う。その後、行単位で文書画像を水平座標軸に対して射影し、空白部分を探索して文字単位に分割する。これにより、各文字を外接矩形で切り出すことが可能となる。
【0038】
次にステップS303では、透かし情報入力部105は、ステップS301で入力した文書画像100に対して埋め込む透かし情報104を取得する。透かし情報104は、「0」若しくは「1」の値を取るビットの列により構成されている。
【0039】
透かし情報104の取得形態については特に限定するものではない。例えば、本装置のユーザが、不図示のキーボードやマウス等を用いて入力しても良いし、予め作成された透かし情報104を本装置内のメモリ、若しくは外部メモリから取得するようにしても良い。
【0040】
次にステップS304では、埋め込み判定部103は、文書画像100中の各文字についてステップS302で作成した外接矩形のうち、未だ選択していない外接矩形を1つを選択する。選択順については特に限定するものではないが、後述する透かし情報の抽出側で、文書画像からどのような選択順で外接矩形を選択したのかが分かれば如何なる選択順を用いても良い。
【0041】
ステップS305では、埋め込み判定部103は、ステップS304で選択した外接矩形のサイズ(例えば外接矩形の縦の長さと横の長さ)を求め、求めたサイズが予め定めたサイズ以上であるか否かをチェックする。本実施形態では、サイズがある一定以上の外接矩形に対しては埋め込み処理を行い、一定以上のサイズを有していない外接矩形については埋め込み処理は行わない。即ち、サイズが小さい外接矩形内の文字は少しの外乱でも影響を受けやすく、そのため、この文字に埋め込んだ情報が抽出できないこともある。そこで本実施形態ではよりロバストに文字から情報を抽出すべく、ある一定以上のサイズを有する外接矩形のみを、情報の埋め込み対象として選択する。
【0042】
係るチェックの結果、ステップS304で選択した外接矩形がある一定以上のサイズを有している場合には処理を処理をステップS306に進める。一方、ステップS304で選択した外接矩形がある一定以上のサイズを有していない場合には処理をステップS304に戻し、他の未だ選択していない外接矩形を選択する。
【0043】
ステップS306では、埋め込み部106は、透かし情報104を構成する各ビットから1ビットを選択し、選択した1ビットを、ステップS304で選択した外接矩形内の文字部分に対して埋め込む処理を行う。
【0044】
ここで、埋め込み部106が行う電子透かしの埋め込み処理についてより詳細に説明する。本実施形態では、透かし情報104を構成するビットが取りうる全ての値(0、1)についてそれぞれ対応するパターンを予め作成しておく。そして、透かし情報104から1ビットを選択した場合に、選択した1ビットの値に対応するパターンを選択する。そして、ステップS304で選択した外接矩形内の文字部分を、この選択したパターンで再構成する。
【0045】
図6は、埋め込み処理を説明する図である。同図において604は、透かし情報104から選択した1ビットの値が「0」である場合に選択するパターンである、605は、透かし情報104から選択した1ビットの値が「1」である場合に選択するパターンである。また、同図において601は、透かし情報104を埋め込む文字である。
【0046】
従って、文字601に対してビット値「0」を埋め込む場合、ビット値「0」に対応するパターン604を用いて文字601を再構成する。すると、602に示す如く、文字の形としては文字601と同じではあるものの、その模様がパターン604の模様を有する文字を得ることができる。
【0047】
一方、文字601に対してビット値「1」を埋め込む場合、ビット値「1」に対応するパターン605を用いて文字601を再構成する。すると、603に示す如く、文字の形としては文字601と同じではあるものの、その模様がパターン605の模様を有する文字を得ることができる。
【0048】
このように、文字を構成する複数の画素のうち、この文字に対して埋め込むものとして与えられた透かし情報(この場合1ビットの情報)に応じて決まる1以上の画素について、元の画素値(同図では黒画素)を他の画素値(同図では白画素)に変換する。なお、以下の説明において白画素、黒画素という文言を用いるが、白画素とは、画素値(例えば輝度値)が8ビットで表現される場合には255の値を取る画素であり、黒画素とは、画素値が0の画素である。
【0049】
なおここで説明したパターンの大きさや模様については一例であり、目的に応じて適宜変更しても良い。
【0050】
図5は、ステップS306における埋め込み処理の詳細を示すフローチャートである。
【0051】
ステップS306aでは、透かし情報104を構成する各ビットから1ビットを選択する。選択順は特に限定するものではないが、ここでは、先頭から順に1ビットずつ選択する。
【0052】
ステップS306bでは、ステップS306aで選択した1ビットの値が「1」であるか否かをチェックする。係るチェックの結果、「1」である場合には処理をステップS306cに進め、「0」である場合には処理をステップS306dに進める。
【0053】
ステップS306cでは、ステップS304で選択した外接矩形内の文字部分を、ビット値「1」に対応するパターン(パターン605)で再構成する。一方、ステップS306dでは、ステップS304で選択した外接矩形内の文字部分を、ビット値「0」に対応するパターン(パターン604)で再構成する。
【0054】
そして、処理をステップS307に進める。
【0055】
図4は、ステップS306cの処理の詳細を示すフローチャートである。
【0056】
先ずステップS306c1では、ステップS304で選択した外接矩形を、パターン605のサイズに分割する。分割したそれぞれを分割パターンと呼称する。
【0057】
次にステップS306c2では、未だ選択されていない分割パターンを1つ選択する。
【0058】
次にステップS306c3では、ステップS306c2で選択した分割パターンと、パターン605とで位置的に対応する画素の画素値を比較する。ここで説明上、文字部分を構成している画素の画素値を「0」(黒いドット)、非文字部分を構成している画素の画素値を「255」(白いドット)とするが、係る画素値に限定するものではない。
【0059】
そして、分割パターン側で参照した画素の画素値が「0」で、パターン605上でこの参照した画素に位置的に対応する画素の画素値が「255」である場合、分割パターン側で参照したこの画素の画素値を「255」とする。即ち、分割パターンとパターン605とを完全に重ね合わせた場合に、パターン605上で画素値が「255」の画素の位置と同じ位置の分割パターン上の画素については全て画素値「255」を設定する。これにより、分割パターンをパターン605で再構成することになる。
【0060】
次にステップS306c4cでは、全ての分割パターンを選択したか否かをチェックする。係るチェックの結果、全ての分割パターンを選択した場合にはステップS307に進める。一方、未だ選択していない分割パターンが存在する場合には処理をステップS306c2に戻し、未だ選択していない分割パターンを1つ選択し、選択した分割パターンを用いて以降の処理を行う。
【0061】
なお、図5におけるステップS306dの処理は、パターン605の代わりにパターン604を用いること以外はステップS306cと同じである為、その詳細な説明は省略する。
【0062】
図3に戻って、全ての外接矩形をステップS304で選択している場合には処理をステップS307を介してステップS309に進む。一方、ステップS304で未だ選択していない外接矩形が存在する場合には処理をステップS307を介してステップS304に戻し、未だ選択していない外接矩形を1つ選択し、選択した外接矩形について以降の処理を行う。
【0063】
ステップS309では、画像出力部107は、埋め込み部106により透かし情報104が埋め込まれた透かし埋め込み画像108を出力する。出力形態については特に限定するものではなく、本装置内若しくは外部に設けているメモリに対して透かし埋め込み画像108を出力しても良いし、プリンタなどの印刷機能を有する装置に対してこの透かし埋め込み画像108を印刷出力させても良い。また、ネットワークを介して外部に対してこの透かし埋め込み画像108を送信しても良い。
【0064】
<透かし情報の抽出について>
図7は、画像処理装置190が上記の処理を行うことにより文書画像100に埋め込んだ透かし情報104を抽出する画像処理装置790の機能構成を示すブロック図である。本実施形態では、画像処理装置190と画像処理装置790とは別個の装置とするが、同じ装置内に含めるようにしても良い。
【0065】
図7において画像処理装置790は、画像入力部701、文書解析部702、埋め込み判定部703、透かし情報抽出部704により構成されている。
【0066】
上記透かし埋め込み画像108としての文書画像700は、画像入力部101によって本装置内に入力され、後段の文書解析部702に送出される。
【0067】
文書解析部702は、文書画像700中に含まれているそれぞれの文字について外接矩形を求める処理を行う。電子透かしの抽出は、この外接矩形毎に行われる。
【0068】
埋め込み判定部703は、それぞれの外接矩形のうち、電子透かしが埋め込まれているであろう外接矩形を判定する処理を行う。
【0069】
透かし情報抽出部704は、埋め込み判定部703により電子透かしが埋め込まれているであろうと判定された外接矩形から、埋め込まれた情報(ビット)を抽出する処理を行う。そして順次抽出したビットを順次繋げたものを透かし情報705として出力する。この透かし情報705は、上記透かし情報104と同じものである。
【0070】
図8は、画像処理装置790が行う、透かし埋め込み画像108から透かし情報705を抽出する処理のフローチャートである。
【0071】
先ずステップS801では、文書画像700が画像入力部701によって本装置内に入力される。文書画像700の本装置に対する入力形態については特に限定するものではない。例えば、原稿をスキャナなどで読み取ることで文書画像700を取得しても良いし、予め作成した文書画像700を本装置内のメモリ若しくは外部メモリから取得するようにしてもよい。
【0072】
次にステップS802では、文書解析部702は、画像入力部701によって本装置内に入力された文書画像700中に含まれている各文字について、外接矩形を求める処理を行う。
【0073】
図10は、ステップS802における処理の詳細を示すフローチャートである。
【0074】
先ずステップS802aでは、文書画像700をコピーした画像を作成する。そして、このコピーした画像を二値化した二値画像を作成する。なお、元の文書画像700が二値の画像であれば、これをコピーしたものをそのまま以下の処理で用いる。
【0075】
次にステップS802bでは、ステップS802aで取得した二値画像中の文字部分において、上記埋め込み処理で白画素に変更された画素を黒画素に戻す処理を行う。
【0076】
図11は、ステップS802bにおける処理の詳細を示すフローチャートである。
【0077】
先ずステップS802b1では、ステップS802aで取得した二値画像fから1画素の画素値f(x、y)を取得する。ここでf(x、y)は、二値画像f上の座標(x、y)の位置における画素(参照画素と呼称する)の画素値を示す。例えばf(0,0)は、二値画像fの左上隅の位置の画素の画素値を示す。
【0078】
次にステップS802b2では、画素値f(x、y)が白画素であるか否かをチェックする。係るチェックの結果、黒画素である場合には処理をステップS802b6に進める。
【0079】
ステップS802b6では、ステップS802b1で二値画像f上の全ての画素の画素値を取得したかを否かをチェックする。例えば、ステップS802b1で、二値画像fの左上隅から右下方向に順次1画素ずつ取得する場合に、現在の座標(x、y)が二値画像fの右下隅(最終画素)であるか否かをチェックする。係るチェックの結果、ステップS802b1で参照した画素が最終画素である場合には後述するステップS802cに処理を進める。一方、最終画素ではない場合には処理をステップS802b7に進める。
【0080】
ステップS802b7では、ステップS802b1で未だ取得していない画素の画素値を取得すべく、x、若しくはyを更新する。そして処理をステップS802b1に戻し、未だ取得していない画素の画素値を取得する。
【0081】
一方、ステップS802b2におけるチェックの結果、白画素である場合には処理をステップS802b3に進める。ステップS802b3では、画素値f(x−1,y)が黒画素であり、且つ画素値f(x+1,y)が黒画素であるか否かをチェックする。即ち係るチェックは、二値画像f上のx軸方向について参照画素と隣接する2つの画素が共に黒画素であるか否かをチェックしている。
【0082】
従って、ステップS802b3におけるチェックの結果、画素値f(x−1,y)が黒画素であり、且つ画素値f(x+1,y)が黒画素である場合には、処理をステップS802b5に進める。
【0083】
参照画素が白画素であり、且つ二値画像f上のx軸方向について参照画素と隣接する2つの画素が共に黒画素である場合、参照画素は、上記ステップS306c3で元々黒画素であったものを白画素に置き換えた画素であることになる。従ってステップS802b5では、係る参照画素を元の黒画素とすべく、f(x、y)を黒に更新する。
【0084】
一方、ステップS802b3におけるチェックの結果、画素値f(x−1,y)、画素値f(x+1,y)の少なくとも一方が白画素である場合には処理をステップS802b4に進める。
【0085】
ステップS802b4では、画素値f(x,y−1)が黒画素であり、且つ画素値f(x,y+1)が黒画素であるか否かをチェックする。即ち係るチェックは、二値画像f上のy軸方向について参照画素と隣接する2つの画素が共に黒画素であるか否かをチェックしている。
【0086】
従って、ステップS802b4におけるチェックの結果、画素値f(x,y−1)が黒画素であり、且つ画素値f(x,y+1)が黒画素である場合には、処理をステップS802b5に進める。
【0087】
参照画素が白画素であり、且つ二値画像f上のy軸方向について参照画素と隣接する2つの画素が共に黒画素である場合、参照画素は、上記ステップS306c3で元々黒画素であったものを白画素に置き換えた画素であることになる。従ってステップS802b5では、係る参照画素を元の黒画素とすべく、f(x、y)を黒に更新する。
【0088】
一方、ステップS802b4におけるチェックの結果、画素値f(x,y−1)、画素値f(x,y+1)の少なくとも一方が白画素である場合には処理をステップS802b6に進める。
【0089】
以上の処理により、参照画素が上記ステップS306c3で元々黒画素であったものを白画素に置き換えた画素である場合には、係る参照画素を元の黒画素に戻すことができる。なお、参照画素が上記ステップS306c3で元々黒画素であったものを白画素に置き換えた画素であるか否かの判定処理については図11に示したものに限定しない。例えば、埋め込み時に用いたパターン(本実施形態の場合、上記パターン604,パターン605)に応じて適宜変更しても良い。即ち、上記ステップS306c3で元々黒画素であったものを白画素に置き換えた画素が特定できるような判断基準を用いる。
【0090】
図10に戻って、次にステップS802cでは、二値画像f中の各文字について外接矩形を求める。その際、二値画像f中における各外接矩形を示す外接矩形情報(例えば外接矩形の左上隅の位置と縦横のサイズ)を求め、保持しておく。
【0091】
ここで、二値画像f上の文字領域と文書画像700上の文字領域とは対応しているので、二値画像fから求めた外接矩形は、文書画像700上における外接矩形としてそのまま使用することができる。
【0092】
そしてステップS802dでは、二値画像fを削除する。
【0093】
図12は、文書画像700中の文字について図11に示したフローチャートに従った処理を何等行うことなくこの文字の外接矩形を求める様子と、係る処理を行うことで文書画像700中の文字の外接矩形を求める様子とを示した図である。
【0094】
同図において1201は、文字「工」、「も」に対して上記ステップS306c3による処理を施すことで得られる文字を示す。それぞれの文字について従来通りに外接矩形を求める処理を行うと、1202に示す如く、文字「も」については正常に外接矩形が求められているものの、文字「工」については複数の外接矩形が求められるという誤った外接矩形計算処理がなされている。係る誤りが発生すると、この文字「工」から複数の透かし情報を抽出しようとすることになり、係る処理が破綻してしまう。
【0095】
一方、1203は、1201で示した2つの文字「工」、「も」について、図11に示したフローチャートに従った処理を行うことで得られる文字である。同図に示す如く、上記ステップS306c3による処理で文字部分中に発生した白画素が消去されている。係る文字について外接矩形を求めると、1204に示す如く、それぞれの文字に対して正常に外接矩形を求めることができる。
【0096】
そして処理をステップS803に進める。ステップS803では、埋め込み判定部703は、ステップS802で作成した外接矩形から未だ選択していない外接矩形を1つを選択する。選択順については特に限定するものではないが、上記ステップS304における選択順に合わせることが好ましい。
【0097】
ステップS804では、埋め込み判定部703は、ステップS803で選択した外接矩形のサイズ(例えば外接矩形の縦の長さと横の長さ)を求め、求めたサイズが予め定めたサイズ以上であるか否かをチェックする。係るチェックの結果、ステップS803で選択した外接矩形がある一定以上のサイズを有している場合には処理をステップS805に進める。一方、ステップS803で選択した外接矩形がある一定以上のサイズを有していない場合には処理をステップS803に戻し、他の未だ選択していない外接矩形を選択する。
【0098】
ステップS805では、透かし情報抽出部704は、ステップS803で選択した外接矩形に対応する文書画像700中の文字領域に埋め込まれているビット値を抽出する処理を行う。ステップS803で選択した外接矩形に対応する文書画像700中の文字領域を特定する処理では、文書画像700上で、上記外接矩形情報が示す位置、サイズの領域を文字領域として特定する。
【0099】
図9は、ステップS805における処理の詳細を示すフローチャートである。
【0100】
先ずステップS805aでは、ステップS803で選択した外接矩形に対応する文書画像700中の文字領域内の文字画像とパターン604との相互相関を取る。
【0101】
図15は、ステップS805aにおける処理を説明する図である。同図において1901は、ステップS803で選択した外接矩形に対応する文書画像700中の文字領域内の文字画像であり、1902はパターン604である。
【0102】
係る処理は例えば、文字画像1901の左上隅とパターン604の左上隅とを合わせ、文字画像1901においてパターン604と重なっている部分と、パターン604との類似度を計算する。ここで、文字画像上の座標(x、y)における画素の画素値をf(x、y)、パターン604上の座標(p、q)における画素の画素値をt(p、q)とすると、文字画像とパターン604との類似度gは以下の式に基づいて求めることができる。
【0103】
【数1】

【0104】
ここで、g(u,v)は、パターン604の左上隅が文字画像上の座標(u、v)に位置しているときに、文字画像においてパターン604と重なっている部分と、パターン604との類似度を示す。また、sはパターン604の面積を示す。
【0105】
そしてその後、パターン604を1画素移動させ、同様に類似度を計算する。このように、パターン604を文字画像1901上でx、y方向に1画素ずつシフトさせる毎に類似度を計算する。そして求めた類似度の中で最大の類似度をMaxp0として保持する。換言すれば本ステップでは、文字画像上でパターン604と最も類似するであろう領域と、このパターン604との類似度をMaxp0として求める。
【0106】
次にステップS805bでは、ステップS803で選択した外接矩形に対応する文書画像700中の文字領域内の文字画像とパターン605との相互相関を取る。係る処理は、用いるパターンがパターン604ではなくパターン605であること以外はステップS805aと同じである。即ち、本ステップでは、文字画像上でパターン605と最も類似するであろう領域と、このパターン605との類似度をMaxp1として求める。
【0107】
なお、ステップS805aでは、値の大きいものから上位10個の類似度の平均値をMaxp0として求めても良い。これはステップS805bについても同様である。
【0108】
そして次にステップS805cでは、Maxp0とMaxp1との大小比較を行う。係る大小比較の結果、Maxp1>Maxp0である場合には処理をステップS805dに進め、Maxp1≦Maxp0である場合には処理をステップS805eに進める。
【0109】
ステップS805dでは、ステップS803で選択した外接矩形に対応する文書画像700中の文字領域内の文字部分を構成しているパターンはパターン605であるとし、この文字領域に埋め込まれているビット値として「1」を出力する。
【0110】
一方、ステップS805eでは、ステップS803で選択した外接矩形に対応する文書画像700中の文字領域内の文字部分を構成しているパターンはパターン604であるとし、この文字領域に埋め込まれているビット値として「0」を出力する。
【0111】
ステップS805d、ステップS805eの何れの処理の後にも、処理は図8のステップS806に進める。
【0112】
全ての外接矩形をステップS803で選択している場合には処理をステップS806を介してステップS807に進む。一方、ステップS803で未だ選択していない外接矩形が存在する場合には処理をステップS806を介してステップS803に戻し、未だ選択していない外接矩形を1つ選択し、選択した外接矩形について以降の処理を行う。
【0113】
ステップS807では、透かし情報抽出部704は、各外接矩形について抽出したビット値を、ステップS803で外接矩形を選択した順に出力する。これにより、結果として透かし情報抽出部704からは、透かし情報705が出力されることになる。なお、出力形態については特に限定するものではなく、本装置内若しくは外部に設けているメモリに対して透かし情報705を出力しても良いし、ネットワークを介して外部に対してこの透かし情報705を送信しても良い。
【0114】
<変形例>
本変形例では、上記参照画素が上記ステップS306c3で元々黒画素であったものを白画素に置き換えた画素であるか否かの判断基準の他の例について説明する。
【0115】
第1の実施形態で説明した埋め込み処理によれば、文字部分には白画素が加わっており、文字の画質は劣化している。ここで、白画素が加わっている文字を印刷し、その後この印刷結果をスキャンすると、この文字には更にスキャンノイズが加わることもあり、この文字の画質は更に劣化する。
【0116】
このような文字について外接矩形を求める際、第1の実施形態で説明した方法では、このスキャンノイズは考慮されていないため、元の文字を復元することは困難である。そこで本変形例では、係る問題に対処すべく、上記参照画素が上記ステップS306c3で元々黒画素であったものを白画素に置き換えた画素であるか否かの判断基準を変更する。
【0117】
なお、本変形例の場合、ステップS802bにおける処理のみが第1の実施形態とは異なる。図14は、本変形例におけるステップS802bの処理の詳細を示すフローチャートである。
【0118】
先ずステップS802b0では、上記ステップS802b1と同様、ステップS802aで取得した二値画像fから1画素(参照画素)の画素値f(x、y)を取得する。
【0119】
次にステップS802b8では、上記ステップS802b2と同様、画素値f(x、y)が白画素であるか否かをチェックする。係るチェックの結果、黒画素である場合には処理をステップS802b11に進める。
【0120】
ステップS802b11では、ステップS802b0で二値画像f上の全ての画素の画素値を取得したかを否かをチェックする。係るチェックの結果、ステップS802b0で参照した画素が最終画素である場合にはステップS803cに処理を進める。一方、最終画素ではない場合には処理をステップS802b12に進める。
【0121】
ステップS802b12では、ステップS802b0で未だ取得していない画素の画素値を取得すべく、x、若しくはyを更新する。そして処理をステップS802b0に戻し、未だ取得していない画素の画素値を取得する。
【0122】
一方、ステップS802b8におけるチェックの結果、白画素である場合には処理をステップS802b9に進める。ステップS802b9では、参照画素に隣接する8画素のうち少なくとも4画素以上が黒画素であるか否かをチェックする。係るチェックの結果、参照画素に隣接する8画素のうち少なくとも4画素以上が黒画素である場合には処理をステップS802b10に進め、参照画素に隣接する8画素のうち黒画素が4画素未満である場合には、処理をステップS802b11に進める。
【0123】
ステップS802b10では、係る参照画素を元の黒画素とすべく、f(x、y)を黒に更新する。
【0124】
図13は、スキャンノイズが付加された文字と、これを除去した文字とを示す図である。同図において1301はスキャンノイズが付加された文字を示す。1302は文字1301に対して図14のフローチャートに従った処理を行うことで得られる文字を示す。
【0125】
なお、スキャンノイズに対応するためには、ローパス・フィルタを用いても良い。また、埋め込む幾つかのパターンの周波数を調べ、調べた幾つかの周波数だけをフィルタすれば、文字を復元することもできる。
【0126】
[第2の実施形態]
第1の実施形態では、図1,7に示した各装置を構成する各部はハードウェアで実装しているものとしているが、ソフトウェアで実装しても良い。この場合、係るソフトウェアは、一般のコンピュータが有するメモリ内に保持されており、このコンピュータが有するCPUがこのソフトウェアを実行することで、本コンピュータは、図1,7に示した各装置を構成する各部の機能を実現することになる。
【0127】
図2は、画像処理装置190、790に適用可能なコンピュータのハードウェア構成を示すブロック図である。コンピュータ201は、一般に普及しているパーソナルコンピュータ等の汎用の情報処理装置であり、スキャナや複写機等の画像入力装置217から読み取られた画像を入力し、編集や保管を行うことが可能である。また、画像入力装置217で得られた画像をプリンタや複写機等の画像形成装置216から印刷させることができる。尚、ユーザからの各種指示等は、マウス213やキーボード214からの入力操作により行われる。コンピュータ201の内部では、バス207により後述する各ブロックが接続され、種々のデータの受け渡しが可能である。
【0128】
なお、本コンピュータ201を適用する装置によっては、図2に示した全ての構成要素は必須なものではないので、適宜省略しても良い。
【0129】
図2において202はCPUで、主記憶装置203にロードされているプログラムやデータを用いて本コンピュータ201全体の制御を行うと共に、本コンピュータ201を適用した画像処理装置190,790が行う上述の各処理を実行する。
【0130】
203はRAMに代表される主記憶装置である。主記憶装置203は、HDD(ハードディスクドライブ)204、CD−ROMドライブ209、DVD−ROMドライブ210、FDD(フロッピー(登録商標)ディスクドライブ)からロードされたプログラムやデータを一時的に記憶する為のエリアを有する。更に主記憶装置203は、画像入力装置217から、I/F(インターフェース)215を介して取得した画像のデータを一時的に記憶するためのエリアも有する。更に主記憶装置203は、CPU202が各種の処理を実行する際に用いるワークエリアも有する。即ち、主記憶装置203は、各種のエリアを適宜提供することができる。
【0131】
204はHDDで、ここにはOS(オペレーティングシステム)や、各種の画像(文書画像を含む)が保存されている。更にHDD204には、本コンピュータ201を適用した画像処理装置190,790が行う上述の各処理をCPU202に実行させるためのプログラムやデータも保存されている。HDD204に保存されているプログラムやデータは、CPU202による制御に従って適宜主記憶装置203にロードされ、CPU202による処理対象となる。なお、主記憶装置203に記憶するものとして説明した情報の幾つかについてはHDD204に保存するようにしても良い。
【0132】
205はビデオコントローラで、主記憶装置203やHDD204等から受けた画像データや文字データといった表示データを信号としてモニタ206に送出するものである。モニタ206はCRTや液晶画面などにより構成されており、ビデオコントローラ205から受けた信号に基づいた画像や文字などを表示する。
【0133】
208は、本コンピュータ201に画像形成装置216を接続するためのI/Fである。本コンピュータ201はこのI/F208を介して画像形成装置216に対して印刷データを送信したり、画像形成装置216から送信される画像形成装置216の状態情報を受信したりする。
【0134】
209はCD−ROMドライブで、記憶媒体としてのCD−ROMに記録されているプログラムやデータを読み出し、読み出したプログラムやデータをHDD204や主記憶装置203に送出する。
【0135】
210はDVD−ROMドライブで、記憶媒体としてのDVD−ROMに記録されているプログラムやデータを読み出し、読み出したプログラムやデータをHDD204や主記憶装置203に送出する。
【0136】
211はFDDで、記憶媒体としてのフロッピー(登録商標)ディスクに記録されているプログラムやデータを読み出し、読み出したプログラムやデータをHDD204や主記憶装置203に送出する。
【0137】
213,214はそれぞれ、操作入力装置としてのマウス、キーボードである。本コンピュータ201のユーザは、このマウス213やキーボード214を操作することで、各種の指示をCPU202に対して入力することができる。
【0138】
212は、キーボード214、マウス213をバスに接続するためのI/Fである。マウス213やキーボード214から入力された操作指示は信号としてI/F212を介してCPU202に送出される。
【0139】
215は、原稿やフィルムなどを読み取ることで画像データを生成する画像入力装置217を本コンピュータ201に接続するためのものである。画像入力装置217が生成した画像データはこのI/F215を介してHDD204や主記憶装置203に送出される。
【0140】
[その他の実施形態]
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0141】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0142】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0143】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【0144】
【図1】文書画像中のそれぞれの文字に対して、透かし情報を構成する各ビットを埋め込む処理を行う画像処理装置の機能構成を示すブロック図である。
【図2】画像処理装置190、790に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【図3】画像処理装置190が行う、文書画像中のそれぞれの文字に対して、透かし情報を構成する各ビットを埋め込む処理のフローチャートである。
【図4】ステップS306cの処理の詳細を示すフローチャートである。
【図5】ステップS306における埋め込み処理の詳細を示すフローチャートである。
【図6】文字に対して埋め込むビットの値に対応するパターンでもってこの文字を構成することで係るビットの値を、この文字に対して埋め込む処理を説明する図である。
【図7】画像処理装置190が上記の処理を行うことにより文書画像100に埋め込んだ透かし情報104を抽出する画像処理装置790の機能構成を示すブロック図である。
【図8】画像処理装置790が行う、透かし埋め込み画像108から透かし情報705を抽出する処理のフローチャートである。
【図9】ステップS805における処理の詳細を示すフローチャートである。
【図10】ステップS802における処理の詳細を示すフローチャートである。
【図11】ステップS802bにおける処理の詳細を示すフローチャートである。
【図12】文書画像700中の文字について図11に示したフローチャートに従った処理を何等行うことなくこの文字の外接矩形を求める様子と、係る処理を行うことで文書画像700中の文字の外接矩形を求める様子とを示した図である。
【図13】スキャンノイズが付加された文字と、これを除去した文字とを示す図である。
【図14】変形例におけるステップS802bの処理の詳細を示すフローチャートである。
【図15】ステップS805aにおける処理を説明する図である。
【図16】英単語間のスペースの間隔を制御することで情報を埋め込む処理を説明する図である。
【図17】文字の大きさを拡大あるいは縮小することによって情報を埋め込む処理を説明する図である。
【図18】文字を回転させ、傾斜を変化させることにより情報を埋め込む処理を説明する図である。

【特許請求の範囲】
【請求項1】
文書画像中の文字領域を構成する複数の画素のうち、当該文字領域に対して埋め込むものとして与えられた透かし情報に応じて決まる1以上の画素について、その第1の画素値を第2の画素値に変換することで得られる第2の文書画像を取得する取得手段と、
前記第2の文書画像を二値化することで二値画像を作成する作成手段と、
前記二値画像を構成する各画素を順次参照し、参照画素の画素値が前記第2の画素値である場合には、当該参照画素の2以上の近傍画素の画素値に基づいて、当該参照画素の画素値を変更しない若しくは前記第1の画素値に変更することで、第2の二値画像を作成する第2の作成手段と、
前記第2の二値画像中の各文字の外接矩形を求める計算手段と、
前記計算手段が求めた外接矩形内の領域に対応する前記第2の文書画像内の領域に埋め込まれた透かし情報を抽出する抽出手段と
を備えることを特徴とする画像処理装置。
【請求項2】
前記第2の作成手段は、前記参照画素の画素値が前記第2の画素値である場合、
当該参照画素の2以上の近傍画素の画素値が前記第1の画素値を有する場合には、当該参照画素の画素値を前記第1の画素値に変更し、当該2以上の近傍画素の画素値が前記第1の画素値を有しない場合には、当該参照画素の画素値は変更しない
ことを特徴とする請求項1に記載の画像処置装置。
【請求項3】
文書画像中の文字領域を構成する複数の画素のうち、当該文字領域に対して埋め込むものとして与えられた透かし情報に応じて決まる1以上の画素について、その第1の画素値を第2の画素値に変換することで得られる第2の文書画像を取得する取得工程と、
前記第2の文書画像を二値化することで二値画像を作成する作成工程と、
前記二値画像を構成する各画素を順次参照し、参照画素の画素値が前記第2の画素値である場合には、当該参照画素の2以上の近傍画素の画素値に基づいて、当該参照画素の画素値を変更しない若しくは前記第1の画素値に変更することで、第2の二値画像を作成する第2の作成工程と、
前記第2の二値画像中の各文字の外接矩形を求める計算工程と、
前記計算工程で求めた外接矩形内の領域に対応する前記第2の文書画像内の領域に埋め込まれた透かし情報を抽出する抽出工程と
を備えることを特徴とする画像処理方法。
【請求項4】
コンピュータに請求項3に記載の画像処理方法を実行させるためのプログラム。
【請求項5】
請求項4に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2008−98947(P2008−98947A)
【公開日】平成20年4月24日(2008.4.24)
【国際特許分類】
【出願番号】特願2006−278104(P2006−278104)
【出願日】平成18年10月11日(2006.10.11)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】