(57)【要約】【課題】追記線を書き込まれた文書からも文字外接矩形を抽出することを可能にし、もって追記線を書き込まれた文書からも文字の間の空白長を変化させて用いて埋め込んだ透かし情報の抽出を可能にする。【解決手段】文字間距離を制御することで埋め込み情報が埋め込まれた文書画像を取得する。文書画像における文字間領域内で、隣接する黒画素群で構成されている第１のオブジェクトを検出する。第１のオブジェクトの線幅を、第１のオブジェクトに対するパラメータ値として求める。第１のオブジェクトに対するパラメータ値が閾値以下の場合には、第１のオブジェクトを、白画素群で構成されている領域として見なした後、文書画像を構成する各文字部の外接矩形を求め、文書画像に対して埋め込まされた埋め込み情報を抽出する。【選択図】図１
2010258627.tif 000002
【特許請求の範囲】
【請求項１】
埋め込み情報に応じて文字間距離を制御することでこの埋め込み情報を埋め込む埋め込み方法に従って埋め込み情報が埋め込まれた文書画像を取得する手段と、
前記文書画像中に記されている文字の並び方向を行方向、行方向と直交する方向を列方向とする場合に、前記文書画像における空白行領域を特定する手段と、
前記文書画像において前記空白行領域以外の領域を文字列領域として特定する手段と、  前記文字列領域において文字間領域を特定する手段と、
前記文書画像において文字部を構成する画素と同じ画素値を有する画素を黒画素、黒画素以外の画素を白画素とする場合に、前記文字間領域内で、隣接する黒画素群で構成されている第１のオブジェクトを検出する手段と、
前記第１のオブジェクトの線幅を、前記第１のオブジェクトに対するパラメータ値として求める手段と、
前記文書画像の行方向、列方向のそれぞれについて射影を求め、求めた射影に基づいて前記文書画像を構成する各文字部の外接矩形を求める計算手段と、
それぞれの外接矩形間の距離に基づいて、前記文書画像に対して埋め込まれた埋め込み情報を抽出する手段とを備え、
前記計算手段は、前記第１のオブジェクトに対するパラメータ値が第１の閾値以下の場合には、前記第１のオブジェクトを、白画素群で構成されている領域として見なした後、前記文書画像の行方向の射影を求め、その結果得られる密度によって行を求め、続いて各行毎に行と直交する方向の射影を求める事により前記文書画像を構成する各文字部の外接矩形を求めることを特徴とする画像処理装置。
【請求項２】
前記空白行領域内で、隣接する黒画素群で構成されている第２のオブジェクトを検出する手段をさらに備え、
前記第２のオブジェクトの線幅を、前記第２のオブジェクトに対するパラメータ値として求める手段と、
前記計算手段は、前記第１のオブジェクトに対するパラメータ値が第１の閾値以下の場合には、前記第１のオブジェクトを、白画素群で構成されている領域として見なし、前記第２のオブジェクトに対するパラメータ値が第２の閾値以下の場合には、前記第２のオブジェクトを、白画素群で構成されている領域として見なした後、前記文書画像の行方向の射影を求め、その結果得られる密度によって行を求め、続いて各行毎に行と直交する方向の射影を求める事により前記文書画像を構成する各文字部の外接矩形を求めることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記計算手段は、前記第１のオブジェクトからなる線の長さが第３の閾値以上の場合に、前記第１のオブジェクトを白画素群で構成されている領域として見なし、前記第２のオブジェクトからなる線の長さが第４の閾値以上の場合に、前記第２のオブジェクトを白画素群で構成されている領域として見なすことを特徴とする、請求項２に記載の画像処理装置。
【請求項４】
前記文書画像内で、隣接する黒画素群で構成されている第３のオブジェクトを検出する手段をさらに備え、
前記計算手段は、前記第１のオブジェクトを包含する前記第３のオブジェクトの大きさが閾値以下である場合に、前記第１のオブジェクトを白画素群で構成されている領域として見なすことを特徴とする請求項２又は３の何れか１項に記載の画像処理装置。
【請求項５】
前記第１のオブジェクトを構成する黒画素の数を、前記第１のオブジェクトの行方向の長さで除した値を、前記第１のオブジェクトの線幅として求め、
前記第２のオブジェクトを構成する黒画素の数を、前記第２のオブジェクトの列方向の長さで除した値を、前記第２のオブジェクトの線幅として求めることを特徴とする、請求項２乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記第１の閾値及び前記第２の閾値は、前記文書画像中の文字の線幅に基づいて定められることを特徴とする、請求項２乃至５の何れか１項に記載の画像処理装置。
【請求項７】
画像処理装置が行う画像処理方法であって、
埋め込み情報に応じて文字間距離を制御することでこの埋め込み情報を埋め込む埋め込み方法に従って埋め込み情報が埋め込まれた文書画像を取得する工程と、
前記文書画像中に記されている文字の並び方向を行方向、行方向と直交する方向を列方向とする場合に、前記文書画像における空白行領域を特定する工程と、
前記文書画像において前記空白行領域以外の領域を文字列領域として特定する工程と、
前記文字列領域において文字間領域を特定する工程と、
前記文書画像において文字部を構成する画素と同じ画素値を有する画素を黒画素、黒画素以外の画素を白画素とする場合に、前記文字間領域内で、隣接する黒画素群で構成されている第１のオブジェクトを検出する工程と、
前記第１のオブジェクトの線幅を、前記第１のオブジェクトに対するパラメータ値として求める工程と、
前記文書画像の行方向、列方向のそれぞれについて射影を求め、求めた射影に基づいて前記文書画像を構成する各文字部の外接矩形を求める計算工程と、
それぞれの外接矩形間の距離に基づいて、前記文書画像に対して埋め込まれた埋め込み情報を抽出する工程とを備え、
前記計算工程では、前記第１のオブジェクトに対するパラメータ値が第１の閾値以下の場合には、前記第１のオブジェクトを、白画素群で構成されている領域として見なした後、前記文書画像の行方向の射影を求め、その結果得られる密度によって行を求め、続いて各行毎に行と直交する方向の射影を求める事により前記文書画像を構成する各文字部の外接矩形を求めることを特徴とする画像処理方法。
【請求項８】
コンピュータを、請求項１乃至６の何れか１項に記載の画像処理装置が有する各手段として機能させるためのコンピュータプログラム。
【請求項９】
請求項８に記載のコンピュータプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子透かしの読取精度を向上させる技術に関する。
【背景技術】
【０００２】
印刷文書に情報を密かに埋め込む技術として、例えば特許文献１に示すように、文書中の文字の間の空白長を利用した電子透かし（以下、「文字間電子透かし」と呼ぶ。）がある。文字間電子透かしは、文字の間の空白長を微小に変更し、人間が気付き難いように情報を埋め込む技術である。そのために、文字認識技術の要素技術である文字外接矩形抽出技術が用いられる。ここで、文字間電子透かしという用語には、行間の空白長を変更して埋め込む電子透かしと、文字間の空白長を変更して埋め込む電子透かしの双方を含む。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２３２６７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
文字間電子透かしを埋め込まれた印刷文書に手書きの追記をする際には、下線や訂正線を含む線を追記することが考えられる。線が追記された場合、何も対策を施さないと、埋め込み時の外接矩形抽出結果とは異なる結果が生じてしまい、埋め込まれた情報を確実に抽出出来ない場合がある。例えば、図５（ａ）に示すような追記線の一例を示すサンプルでは、文字の中を追記線が貫通している。このような場合、一文字一文字を確実に切り出して、埋め込まれた透かし情報を抽出することは困難である。
【０００５】
本発明は、追記線を書き込まれた文書からも文字外接矩形を抽出することを可能にし、もって追記線を書き込まれた文書からも、文字の間の空白長を変化させることによって埋め込んだ透かし情報の抽出を容易にし、抽出率の向上に寄与することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。すなわち、
埋め込み情報に応じて文字間距離を制御することでこの埋め込み情報を埋め込む埋め込み方法に従って埋め込み情報が埋め込まれた文書画像を取得する手段と、
前記文書画像中に記されている文字の並び方向を行方向、行方向と直交する方向を列方向とする場合に、前記文書画像における空白行領域を特定する手段と、
前記文書画像において前記空白行領域以外の領域を文字列領域として特定する手段と、
前記文字列領域において文字間領域を特定する手段と、
前記文書画像において文字部を構成する画素と同じ画素値を有する画素を黒画素、黒画素以外の画素を白画素とする場合に、前記文字間領域内で、隣接する黒画素群で構成されている第１のオブジェクトを検出する手段と、
前記第１のオブジェクトの線幅を、前記第１のオブジェクトに対するパラメータ値として求める手段と、
前記文書画像の行方向、列方向のそれぞれについて射影を求め、求めた射影に基づいて前記文書画像を構成する各文字部の外接矩形を求める計算手段と、
それぞれの外接矩形間の距離に基づいて、前記文書画像に対して埋め込まれた埋め込み情報を抽出する手段とを備え、
前記計算手段は、前記第１のオブジェクトに対するパラメータ値が第１の閾値以下の場合には、前記第１のオブジェクトを、白画素群で構成されている領域として見なした後、前記文書画像の行方向の射影を求め、その結果得られる密度によって行を求め、続いて各行毎に行と直行する方向の射影を求める事により前記文書画像を構成する各文字部の外接矩形を求めることを特徴とする。
【０００７】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。すなわち、
画像処理装置が行う画像処理方法であって、
埋め込み情報に応じて文字間距離を制御することでこの埋め込み情報を埋め込む埋め込み方法に従って埋め込み情報が埋め込まれた文書画像を取得する工程と、
前記文書画像中に記されている文字の並び方向を行方向、行方向と直交する方向を列方向とする場合に、前記文書画像における空白行領域を特定する工程と、
前記文書画像において前記空白行領域以外の領域を文字列領域として特定する工程と、
前記文字列領域において文字間領域を特定する工程と、
前記文書画像において文字部を構成する画素と同じ画素値を有する画素を黒画素、黒画素以外の画素を白画素とする場合に、前記文字間領域内で、隣接する黒画素群で構成されている第１のオブジェクトを検出する工程と、
前記第１のオブジェクトの線幅を、前記第１のオブジェクトに対するパラメータ値として求める工程と、
前記文書画像の行方向、列方向のそれぞれについて射影を求め、求めた射影に基づいて前記文書画像を構成する各文字部の外接矩形を求める計算工程と、
それぞれの外接矩形間の距離に基づいて、前記文書画像に対して埋め込まれた埋め込み情報を抽出する工程とを備え、
前記計算工程では、前記第１のオブジェクトに対するパラメータ値が第１の閾値以下の場合には、前記第１のオブジェクトを、白画素群で構成されている領域として見なした後、前記文書画像の行方向の射影を求め、その結果得られる密度によって行を求め、続いて各行毎に行と直行する方向の射影を求めることにより前記文書画像を構成する各文字部の外接矩形を求めることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、追記線を書き込まれた文書からも、文字外接矩形をより確実に抽出することが可能となる。もって、追記線を書き込まれた文書からも文字の間の空白長を変化させて用いて埋め込んだ透かし情報の抽出を容易とし、その抽出率の向上に寄与することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】文字間電子透かし抽出装置の構成を示すブロック図である。
【図２】文字間電子透かし抽出装置の動作フローチャートである。
【図３】(ａ)追記線消去部０１０２、(ｂ) 識別部０３０３の詳細を示す図である。
【図４】ステップＳ０２０２の追記線消去部の動作フローチャートである。
【図５】追記線、及び追記線消去方法を説明する図である。
【図６】追記線消去を説明する図である。
【図７】ステップＳ０４０５の行間追記線消去処理のフローチャートである。
【図８】ステップＳ０４０８の文字間追記線消去処理のフローチャートである。
【図９】文字サイズの推定、及び連結黒画素領域を説明する図である。
【図１０】コンピュータの電気的構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施例を図面に基づいて説明する。ただし、発明の範囲は以下の実施例に限定されるものではない。以下の実施例において、「行間」は文字列行の間を、「文字間」は文字列行内で２つの文字の間を、「文字の間」は行間と文字間の双方を示す。また、文字の並び方向を行方向、行方向に直交する方向を列方向とする。
【００１１】
［実施例１］
以下で、文字の間に追記された線を消去してから文字間電子透かしを抽出する画像処理装置について説明する。以下では、文書に対して追記された線を追記線と呼ぶ。図１は本実施例に係る画像処理装置である電子透かし抽出装置である。以下に、電子透かし抽出装置の各部について説明する。
【００１２】
入力部０１０１は、透かし埋め込み済み画像を入力画像として取得する。追記線消去部０１０２は、印刷物に付された追記線のうち、文字間電子透かしの抽出に障害となる部分、即ち追記線若しくは追記線の一部分を取り除く。文字矩形抽出部０１０３は、文字に外接する矩形の抽出を行って、外接矩形の位置座標を出力する。電子透かし抽出部０１０４は、文字矩形抽出部０１０３から取得した位置座標から外接矩形間の空白長、すなわち文字間距離を計算し、埋め込まれた電子透かしの抽出を行う。
【００１３】
この電子透かし抽出装置の処理について、図２を用いて説明する。まず、透かし埋め込み済み画像を入力する（ステップＳ０２０１）。そして、追記線若しくは追記線の障害部分の消去を行う（ステップＳ０２０２）。次に、文字矩形抽出（ステップＳ０２０３）を行い、最後に、電子透かし抽出（ステップＳ０２０４）を行う。
【００１４】
図３(ａ)は、図１で示された追記線消去部０１０２の詳細を示す図である。入力部０１０１は、入力画像（文字間電子透かし埋め込み済み画像）を取得する。入力画像は黒画素と白画素とからなる２値画像である。本実施例では、入力画像中の文字部は黒画素により構成されるものとし、黒画素以外の画素を白画素とする。そして入力部０１０１は、後述する射影部０３０２及び連結画素領域抽出部０３０４に２値画像である入力画像を提供する。入力部０１０１は、２値画像ではない入力画像、例えばグレースケール又はフルカラーの入力画像を取得した後に、２値化を行ってから射影部０３０２及び連結画素領域抽出部０３０４に２値化後の画像を提供してもよい。
【００１５】
射影部０３０２は、文書画像中の黒画素密度が閾値以下である低密度領域を検出する（低密度領域検出手段）。具体的には、入力画像に対して行方向（横書きの場合は水平方向であり、縦書きの場合は垂直方向である。）の射影を行い、黒画素数が閾値以上の行を高密度行、黒画素数が閾値以下の行を低密度行として判別すればよい。ここで射影とは、水平方向であれば、ピクセル単位の各ライン毎に各ライン上にある黒画素の個数を集計することである。（垂直方向であれば、ピクセル単位で各コラム毎に各コラム上にある黒画素の個数を集計することである。）そして、その結果得られる密度によって、どの行が高密度行であって、どの行が低密度行であるかを示す情報を、行情報として記憶部０３０８に格納する。さらに、連続する低密度行である低密度行領域の位置を示す行間低密度部分情報を、識別部０３０３に提供する。低密度行領域は、文書画像中の空白行領域に相当する。また射影部０３０２は、記憶部０３０８に格納された行情報を用いて、連続する高密度行を高密度行領域として取得する。高密度行領域は、文書画像中における空白行領域以外の部分であり、文字列領域に相当する。さらに、高密度行領域のそれぞれに対して、すなわち文字列の各行毎に、各行に直交する方向に射影を行い、黒画素数が閾値以上の部分を高密度列、黒画素数が閾値以下の部分を低密度列として判別する。そして、連続する低密度列である低密度文字間領域の位置を示す文字間低密度部分情報を、識別部０３０３に提供する。低密度部分情報とは、射影を行った結果を基に、密度が予め定めた閾値より低い部分の位置を表す情報である。つまり行間低密度部分情報は行間の空白の位置を示し、文字間低密度部分情報は文字間の空白の位置を示す。
【００１６】
識別部０３０３は、行間低密度部分情報又は文字間低密度部分情報で示される領域内、すなわち低密度領域内の黒画素が追記線若しくは追記線の一部分であるか否かを判断する。判断には、低密度領域内の連結黒画素群により求められるパラメータ値を用いる。そして、追記線若しくは追記線の一部分を構成する画素の座標を線情報として比較部０３０５及び消去部０３０７に提供する。
【００１７】
図３(ｂ)は、識別部０３０３の詳細を示す図である。識別部０３０３は、積算値計算部１６０１と、線幅計算部１６０２と、条件判定部１６０３とを備える。積算値計算部１６０１は、行間低密度部分情報で示される低密度行領域内の連結黒画素群からなる線のおおよその長さに対応するパラメータ値を求める。また、文字間低密度部分情報で示される低密度文字間領域内の連結黒画素群からなる線のおおよその長さに対応するパラメータ値を求める。このパラメータ値を、連結黒画素群の長さと呼ぶことにする。連結黒画素群とは、縦又は横又は斜めに互いに連結した2つ以上の黒画素の集合である。ただし、斜めに隣接する、即ち角と角が隣接する2つの画素は、基本的に連結していないとみなすことも可能である。解像度が低い場合には連結していないとみなす方が望ましい場合もある。（解像度を落とした場合に、元の解像度においては、実際に連結していない場合も考えられるため。）線幅計算部１６０２は、連結黒画素群からなる線のおおよその幅に対応するパラメータ値を求める。このパラメータ値を、連結黒画素群の幅又は線幅と呼ぶことにする。条件判定部１６０３は、求めた長さと線幅が、所定の条件を満たすかどうかを判定し、条件を満たす連結黒画素群に関する線情報を出力する。線情報とは、連結黒画素群に含まれる黒画素の、入力画像中での座標を示す情報である。識別部０３０３の具体的な処理については後述する。
【００１８】
連結画素領域抽出部０３０４は、文書画像内の連結黒画素群（第３のオブジェクト）の抽出を行う（連結黒画素群検出手段）。比較部０３０５は、識別部０３０３から線情報を、文字サイズ推定部０３０６から文字サイズ情報を、及び連結画素領域抽出部０３０４から連結黒画素群情報を取得する。そして、線情報が示す線が追記された線、すなわち追記線若しくは追記線の一部分であるかどうかを、連結黒画素群の大きさと、文字サイズ情報を比較して判断する。その結果、追記線若しくは追記線の一部分であると判断した場合には、識別部０３０３から取得した線情報を、追記線情報として消去部０３０７に提供する。例えば、図９(ｅ)に示される密度が低いと判断される部分にある線は、追記線若しくは追記線の一部分であり、これらを表す情報が追記線情報である。具体的な処理については後述する。
【００１９】
文字サイズ推定部０３０６は、連結画素領域抽出部０３０４から取得した連結黒画素群情報を用いて、文字サイズの推定を行う。文字サイズの推定にあたっては、予め決められた方法で区切ったブロック毎に文字サイズの推定を行う。例えば、入力画像を、縦方向と横方向でそれぞれ半分に区切って４つのブロックとし、それぞれのブロックについて文字サイズの推定を行えばよい。ブロックの数はもっと多くてもよく、ブロックセレクション技術を用いて文字オブジェクト毎に区切ってもよい。そして、ブロック毎に推定された文字サイズの情報を含む文字サイズ情報を生成し、比較部０３０５に提供する。
【００２０】
図９(ａ)は、連結黒画素群の重なる文字矩形を統合する方法を示す図である。図９(ｂ)、(ｃ)は、文字サイズ推定で用いるヒストグラムを示す図である。文字サイズの推定方法としては次の方法がある。まず、複数の連結黒画素群の各々について、その外接矩形が重なる場合には、それらを統合する（図９(ａ)参照）。そして、ブロック内の統合処理を行った後の外接矩形について、それぞれの面積、幅、若しくは高さについてヒストグラムを取り（図９(ｂ)(ｃ)参照）、最頻値に相当する値を取ることによって、文字のサイズを推定する。最頻値に相当する値としては、正規分布のパターンとヒストグラムのグラフの畳み込み積分の結果から抽出されるピーク値を用いればよい。というのも、文字サイズに関しては最頻値が一つに定まる事が現実的でないからである。面積に関する最頻値相当の値の場合は、その平方根をとった値を推定文字サイズとし、幅に関しての場合には、その最頻値相当の値を推定文字サイズとする。推定文字サイズの単位はｐｉｘｅｌである。
【００２１】
代わりの文字サイズ推定方法として、一般的な文書から得られる文字サイズとヒストグラムのパターンとの関係を示すテーブルを使用する方法がある。この場合、ブロック内の統合処理を行った後の連結黒画素群についてのヒストグラムに最も近いテーブル中のパターンを判断し、対応する文字サイズを推定文字サイズとしてもよい。また、半角文字や全角文字が混在する場合には、ヒストグラムは双峰性を持つものと考えられる。この場合に対応して、ブロック内の統合処理を行った後の連結黒画素群についてのヒストグラムが、部分的にテーブル内のパターンを含むような場合を検出する事によっても、文字サイズは推定可能である。また、日本語の場合は、全角文字についてはほとんど正方形に近いものとみなせるが、半角文字や英数字の場合は、幅と高さの差が大きいので、幅と高さの夫々について、別個にその長さを推定し、それぞれの結果を文字のサイズとして扱ってもよい。
【００２２】
消去部０３０７は、入力部０１０１から取得した入力画像について、比較部０３０５から取得した追記線情報が示す黒画素を白画素に変換することで修正を行う。バッファとして記憶部０３０８を用い、記憶部０３０８との間で修正途中の修正画像を入出力する。また、修正が終わった画像も、記憶部０３０８に格納する。
【００２３】
記憶部０３０８は、射影部０３０２との間で行情報の入出力を行い、行情報を保持しておく。また、消去部０３０７との間で修正画像を入出力し、修正画像を保持しておく。出力部０３０９は、記憶部０３０８から全ての修正を終えた修正画像を取得し、出力画像として出力する。
【００２４】
次に、ステップＳ０２０２の追記線消去処理、すなわち追記線消去部０１０２の処理の詳細を、図４を用いて説明する。まず、連結画素領域抽出部０３０４は、入力画像に対して連結黒画素群の抽出（ステップＳ０４０１）を行う。そして、文字サイズ推定部０３０６は、その抽出結果を基に、文字サイズの推定（ステップＳ０４０２）を行う。次に、射影部０３０２は、入力画像に対して水平方向の射影を行い（ステップＳ０４０３）、低密度行領域（矩形領域）を特定（ステップＳ０４０４）する。そして、識別部０３０３は低密度行領域内の追記線の特定を行い、消去部０３０７が追記線の消去を行う（ステップＳ０４０５）。ステップＳ０４０５の詳細については後述する。
【００２５】
次に、射影部０３０２は高密度行領域のそれぞれについて、行に直交する方向の射影を行い（ステップＳ０４０６）、低密度文字間領域（矩形領域）を特定（ステップＳ０４０７）する。この２つの処理は、図３(ａ)の射影部０３０２で行われる。そして、識別部０３０３は低密度文字間領域内の追記線や追記線の一部分の特定を行い（追記線特定手段）、消去部０３０７が追記線や追記線の一部分の消去を行う（ステップＳ０４０８）。ステップＳ０４０５の詳細についても後述する。最後に出力部０３０９は、修正された画像を出力する（ステップＳ０４０９）。
【００２６】
続けて、ステップＳ０４０５の行間追記線若しくは追記線の一部分の消去処理の詳細を、図７を用いて説明する。まずステップＳ１０００−１において、識別部０３０３は行間低密度領域のうち１つを選択する。例えば、先頭行から最終行へと向かう方向に順番に選択していけばよい。ステップ１０００−２においては、識別部０３０３はステップＳ１０００−１において選択した行間低密度領域に対して、連結黒画素群抽出処理を行う。すなわち、空白行領域内の黒画素群（第２のオブジェクト）を検出する。抽出した連結黒画素群を行間連結黒画素群と呼ぶ。ステップＳ１０００−２の連結黒画素群抽出処理は、ステップＳ０４０１と同様に行えばよい。しかし、ステップＳ０４０１の処理は入力画像全体に対して行うのに対して、ステップＳ１０００−２の処理は行間低密度領域に対して行うことに注意する。識別部０３０３は、抽出した連結黒画素群を構成する黒画素のそれぞれの座標を、線情報として比較部０３０５に提供する。ステップＳ１０００−３では、積算値計算部１６０１はステップＳ１０００−２で抽出した連結黒画素群の１つを選択する。
【００２７】
ステップＳ１００１からステップＳ１００６では、ステップＳ１０００−３で選択した連結黒画素群の長さを求める。ステップＳ１００１からステップＳ１００６の処理は、長さを求める処理の一例である。ステップＳ１００１からステップＳ１００６までの処理は、積算値計算部１６０１が行う。
【００２８】
まず、変数ｉを１で初期化し、変数Ｌを０で初期化する（ステップＳ１００１）。横書きの文書の場合、ｉは連結黒画素群の上端を１とするｙ座標を示す。続けて、連結黒画素群のｉ行目の黒ランの１つを選択する（ステップＳ１００２）。黒ランとは、行方向に連続する黒画素群を示す。１行に黒ランが複数存在する場合も考えられ、この場合は黒ランを１つずつ順番に、例えば左から、黒ランを選択すればよい。
【００２９】
ステップＳ１００３ａ〜ステップＳ１００３ｅでは、黒ランに積算値というパラメータ値を割り当てる。積算値は以下のように計算する。まず、ステップＳ１００２で選択した黒ランにｉ−１行目の黒ランが隣接して存在するか否かを調べる（ステップＳ１００３ａ）。ステップＳ１００３ａでは、黒ラン同士が斜めに接していても隣接しているものと判断する。ｉ−１行目の黒ランが隣接して存在する場合はステップＳ１００３ｂに進み、隣接して存在しない場合はステップＳ１００３ｃに進む。ステップＳ１００３ｂに進んだ場合は、ステップＳ１００２で選択した黒ランの重心と、ｉ−１行目の隣接する黒ランの重心との間の距離に、ｉ−１行目の隣接する黒ランの積算値を加えたものを、ステップＳ１００２で選択した黒ランの積算値とする。ステップＳ１００２で選択した黒ランに、ｉ−１行目の黒ランが２つ以上接している場合には、それぞれのｉ−１行目の黒ランに対応する積算値を求め、合計した値をステップＳ１００２で選択した黒ランＡの積算値とする。例えば、ｉ行目の黒ランＡにｉ−１行目の黒ランＢ及びＣが接している場合を考える。この場合、黒ランＡの重心と黒ランＢの重心との間の距離に黒ランＢの積算値を足した値と、黒ランＡの重心と黒ランＣの重心との間の距離に黒ランＣの積算値を足した値とを合計して、黒ランＡの積算値とする。ステップＳ１００３ｃに進んだ場合は、ステップＳ１００２で選択した黒ランの積算値を１とする。
【００３０】
次にステップＳ１００３ｄで、ステップＳ１００２で選択した黒ランにｉ＋１行目の黒ランが隣接して存在するか否かを調べる（ステップＳ１００３ｄ）。ステップＳ１００３ｄでも、黒ラン同士が斜めに接していても隣接しているものと判断する。ｉ＋１行目の黒ランが隣接して存在する場合には、ステップＳ１００４に進む。ｉ＋１行目の黒ランが隣接して存在しない場合は、ステップＳ１００３ｅに進み、変数ＬにステップＳ１００２で選択した黒ランの積算値を加えてから、ステップＳ１００４に進む。
【００３１】
ステップＳ１００４では、ｉ行目にステップＳ１００２で選択していない黒ランがまだ残っているか否かを判断する。まだ残っている場合は、ステップＳ１００２に戻って次の黒ランを選択する。もう残っていない場合は、ステップＳ１００５に進む。次にｉをインクリメントし（ステップＳ１００５）、ｉがステップＳ１０００−３で選択した連結黒画素群中の画素行の数以下であるか否かを、判断する（ステップＳ１００６）。ｉが連結黒画素群中の画素行の数以下であれば、ステップＳ１００３に戻り、ｉが連結黒画素群中の画素行の数以下でなければ、ステップＳ１００７へ進む。ステップＳ１００７へ進む時の、変数Ｌの値が、連結黒画素群の長さに対応するパラメータ値である。
【００３２】
線幅計算部１６０２はステップＳ１００７で、ステップＳ１０００−３で選択した連結黒画素群の幅に対応するパラメータ値（線幅）を求める。線幅は、連結黒画素群の黒画素数を、ステップＳ１００１からステップＳ１００６で求めた連結黒画素群の長さで割った数とする。ここで、図９(ｄ)に示すような表が得られる。図９(ｄ)は、線分積算値計算で使用されるテーブルを示す図であり、図５(ｂ)に示される図を基に、各画素行の黒ランの積算値と、各画素行の黒画素数とを計算したものである。各画素行の黒画素数の合計が、線に含まれる黒画素数と一致する。尚、図５(ｂ)は、行間の追記線消去方法を示す図である。
【００３３】
ステップＳ１００１からステップＳ１００７までの代わりに、線幅を求める他の方法を採用することも可能である。例えばより簡易な方法として、ステップＳ１０００−３で選択した連結黒画素群の外接矩形を用いて推定する方法がある。ステップＳ１０００−３で選択した連結黒画素群の外接矩形の、列方向の幅を連結黒画素群の長さに対応するパラメータ値として用いる。そして、ステップＳ１０００−３で選択した連結黒画素群の黒画素数を、外接矩形の列方向の幅で除した値を、連結黒画素群の線幅として用いてもよい。
【００３４】
ステップＳ１００８では、条件判定部１６０３はステップＳ１０００−３で選択した連結黒画素群の幅と長さとが条件に合致するか否かを調べる。ここで条件とは、連結黒画素群の幅が入力画像中の文字の線幅（第２の閾値）以下である事と、連結黒画素群の長さが予め定められた値以上（第４の閾値以上）である事と、の２つとする。条件に合致する場合は、ステップＳ１０００−３で選択した連結黒画素群は消去対象の追記線若しくは追記線の一部分であると判断する。そして、連結黒画素群を構成する黒画素の位置情報を、追記線情報として消去部０３０７に提供し、ステップＳ１００９に進む。条件に合致しない場合は、ステップＳ１０００−３で選択した連結黒画素群は消去対象ではないと判断し、ステップＳ１０１０−１に進む。
【００３５】
連結黒画素群の幅が入力画像中の文字の線幅以下であることを消去の条件とすることで、入力画像中の文字の線幅以下の細さの追記線若しくは追記線の一部分のみを消去し、最初から印刷されている文字や文字の部分を誤って消去することを防止する。また連結黒画素群の長さがあまりに短い場合には、入力画像中の文字末端の細い部分であることが考えられる。ただし、図５(ｄ)のように、低密度行領域途中で連結黒画素群が終わっているような場合にも、消去対象とできることが好ましい。このため、連結黒画素群の長さが予め定められた値以下の場合は消去対象としない。入力画像中の文字の線幅は既知の検出手段によって、又は文字サイズ推定部０３０６が推定した文字サイズに基づいて、決定することができる。但し、連結黒画素群を消去対象とするか否かは、国や言語・文化・商習慣等によって異なる印刷文書の慣例にも依るので、ここで示した条件のみには限定されない。少なくとも連結黒画素群の幅が閾値以下（第２の閾値以下）であることが条件であればよい。尚、図５(ｃ)、(ｄ)は、文字間の追記線消去方法を示す図である。
【００３６】
ステップＳ１００９で、消去部０３０７は、比較部０３０５から取得した追記線情報に示される、消去対象の黒画素の位置情報を取得する。また、入力部０１０１から入力画像を取得する。そして、入力画像中の、追記線情報に示される位置の黒画素の画素値を操作し、白画素に変換する。
【００３７】
ステップＳ１０１０−１で識別部０３０３は、ステップＳ１０００−２で抽出した連結黒画素群を全て選択したか否かを判断する。全て選択していればステップＳ１０１０−２へ進み、選択していない連結黒画素群が残っていればステップＳ１０００−３に戻ってまだ選択していない連結黒画素群を選択する。ステップＳ１０１０−２で識別部０３０３は、全ての行間低密度領域を選択したか否かを判断する。全て選択していればステップＳ０４０５の処理を終了する。まだ選択していない行間低密度領域が残っていればステップＳ１０００−１に戻って次の行間低密度領域を選択する。これらの処理によって図６(ａ)、(ｂ)に示すように、行の間にある追記線若しくは追記線の一部分が消去される。図６(ａ)、(ｂ)は、行間の線分消去の一例を示す図であり、(ａ)が処理前、(ｂ)が処理後の一例である。
【００３８】
図８は、ステップＳ０４０８の文字間追記線消去処理のフローチャートである。基本的にステップＳ０４０８の処理はステップＳ０４０５と概ね同じである。しかし、ステップＳ０４０５の処理が行間の追記線や追記線の一部分を消去することを目的としているのに対し、ステップＳ０４０８の処理は文字間にある追記線や追記線の一部分を消去しているという違いがある。
【００３９】
まずステップＳ１１００−１において、識別部０３０３は低密度文字間領域のうち１つを選択する。ステップ１１００−２においては、識別部０３０３はステップＳ１１００−１において選択した低密度文字間領域に対して、ステップＳ１０００−２と同様に連結黒画素群抽出処理を行う。抽出した連結黒画素群を文字間連結黒画素群（第１のオブジェクト）と呼ぶ。識別部０３０３は、抽出した連結黒画素群を構成する黒画素のそれぞれの座標を、線情報として比較部０３０５に提供する。ステップＳ１１００−３では、積算値計算部１６０１はステップＳ１１００−２で抽出した連結黒画素群の１つを選択する。
【００４０】
ステップＳ１１０１からステップＳ１１０６では、ステップＳ１１００−３で選択した連結黒画素群の長さを求める。ステップＳ１１０１からステップＳ１１０６の処理は、長さを求める処理の一例である。ステップＳ１１０１からステップＳ１１０６までの処理は、積算値計算部１６０１が行う。
【００４１】
まず、変数ｉを１で初期化し、変数Ｌを０で初期化する（ステップＳ１１０１）。横書きの文書の場合、ｉは連結黒画素群の左端を１とするｘ座標を示す。続けて、連結黒画素群のｉ列目の黒ランの１つを選択する（ステップＳ１１０２）。黒ランとは、列方向に連続する黒画素群を示す。１列に黒ランが複数存在する場合も考えられ、この場合は黒ランを１つずつ順番に、例えば上から、黒ランを選択すればよい。
【００４２】
ステップＳ１１０３ａ〜ステップＳ１１０３ｅでは、黒ランに積算値というパラメータ値を割り当てる。積算値は以下のように計算する。まず、ステップＳ１１０２で選択した黒ランにｉ−１列目の黒ランが隣接して存在するか否かを調べる（ステップＳ１１０３ａ）。ステップＳ１１０３ａでは、黒ラン同士が斜めに接していても隣接しているものと判断する。ｉ−１列目の黒ランが隣接して存在する場合はステップＳ１１０３ｂに進み、隣接して存在しない場合はステップＳ１１０３ｃに進む。ステップＳ１１０３ｂに進んだ場合は、ステップＳ１１０２で選択した黒ランの重心と、ｉ−１列目の隣接する黒ランの重心との間の距離に、ｉ−１列目の隣接する黒ランの積算値を加えたものを、ステップＳ１１０２で選択した黒ランの積算値とする。ステップＳ１１０２で選択した黒ランに、ｉ−１列目の黒ランが２つ以上接している場合には、それぞれのｉ−１列目の黒ランに対応する積算値を求め、合計した値をステップＳ１１０２で選択した黒ランＡの積算値とする。例えば、ｉ列目の黒ランＡにｉ−１列目の黒ランＢ及びＣが接している場合を考える。この場合、黒ランＡの重心と黒ランＢの重心との間の距離に黒ランＢの積算値を足した値と、黒ランＡの重心と黒ランＣの重心との間の距離に黒ランＣの積算値を足した値とを合計して、黒ランＡの積算値とする。ステップＳ１１０３ｃに進んだ場合は、ステップＳ１１０２で選択した黒ランの積算値を１とする。
【００４３】
次にステップＳ１１０３ｄで、ステップＳ１１０２で選択した黒ランにｉ＋１列目の黒ランが隣接して存在するか否かを調べる（ステップＳ１１０３ｄ）。ステップＳ１１０３ｄでも、黒ラン同士が斜めに接していても隣接しているものと判断する。ｉ＋１列目の黒ランが隣接して存在する場合には、ステップＳ１１０４に進む。ｉ＋１列目の黒ランが隣接して存在しない場合は、ステップＳ１１０３ｅに進み、変数ＬにステップＳ１１０２で選択した黒ランの積算値を加えてから、ステップＳ１１０４に進む。
【００４４】
ステップＳ１１０４では、ｉ列目にステップＳ１１０２で選択していない黒ランがまだ残っているか否かを判断する。まだ残っている場合は、ステップＳ１１０２に戻って次の黒ランを選択する。もう残っていない場合は、ステップＳ１１０５に進む。次にｉをインクリメントし（ステップＳ１１０５）、ｉがステップＳ１１００−３で選択した連結黒画素群中の画素列の数以下であるか否かを、判断する（ステップＳ１１０６）。ｉが連結黒画素群中の画素列の数以下であれば、ステップＳ１１０３に戻り、ｉが連結黒画素群中の画素列の数以下でなければ、ステップＳ１１０７へ進む。ステップＳ１１０７へ進む時の、変数Ｌの値が、連結黒画素群の長さに対応するパラメータ値を示す。
【００４５】
線幅計算部１６０２はステップＳ１１０７で、ステップＳ１１００−３で選択した連結黒画素群の幅に対応するパラメータ値（線幅）を求める。線幅は、連結黒画素群の黒画素数を、ステップＳ１１０１からステップＳ１１０６で求めた連結黒画素群の長さで割った数とする。
【００４６】
低密度行領域における場合と同様、ステップＳ１１０１からステップＳ１１０７までの代わりに、線幅を求める他の方法を採用することも可能である。例えば、ステップＳ１１００−３で選択した連結黒画素群の外接矩形を用いて推定する方法がある。ステップＳ１１００−３で選択した連結黒画素群の外接矩形の、行方向の幅を連結黒画素群の長さに対応するパラメータ値として用いる。そして、ステップＳ１１００−３で選択した連結黒画素群の黒画素数を、外接矩形の行方向の幅で除した値を、連結黒画素群の幅に対応するパラメータ値としてもよい。
【００４７】
ステップＳ１１０８では、条件判定部１６０３はステップＳ１１００−３で選択した連結黒画素群の幅と長さとが条件に合致するか否かを調べる。ここで条件とは、連結黒画素群の幅が入力画像中の文字の線幅（第１の閾値）以下である事と、連結黒画素群の長さが予め定められた値以上（第３の閾値以上）である事と、の２つとする。条件に合致する場合は、条件判定部１６０３は、ステップＳ１１００−３で選択した連結黒画素群を、消去対象の追記線候補とする（ステップＳ１１０９）。条件に合致しない場合は、ステップＳ１１００−３で選択した連結黒画素群は消去対象ではないと判断する。ただし、前述の通り条件はこれには限定されず、少なくとも連結黒画素群の幅が閾値以下（第１の閾値以下）であることが条件であればよい。
【００４８】
次に、その追記線若しくは追記線の一部分の候補を包含する連結黒画素群の幅が、領域毎に異なる、推定文字サイズに基づく計算値以上か否かを、条件判定部１６０３は判断する（ステップＳ１１１０）。この時、追記線若しくは追記線の一部分の候補を包含する連結黒画素群とは、ステップＳ１１００−２で抽出した連結黒画素群のことではなく、ステップＳ０４０１で検出した連結黒画素群のことである。
【００４９】
図９(ｅ)は、連結黒画素領域の幅を示す図である。図９(ｅ)の場合、「密度が低いと判断される部分」の追記線若しくは追記線の一部分の候補を包含する連結黒画素群とは、図９(ｅ)の黒画素全体となる。「密度が低いと判断される部分」に存在する黒画素だけではないことに注意する。密度が低いと判断される部分（文字間）にある線は、ただ単に密度と線の幅のみから判断すると、文字の部分である可能性を否定しきれない。しかし、ステップＳ１１１０で追記線若しくは追記線の一部分の候補が属する連結黒画素群の幅を調べる事により、文字の部分である可能性を除外することが出来る。例えば、追記線によって文字が連結されている場合には、連結黒画素群が大きくなり、追記線若しくは追記線の一部分の候補が属する連結黒画素群の幅は推定文字サイズよりも大きくなる。それに対して、追記線を付されていない文字の部分が追記線若しくは追記線の一部分の候補となっている場合、追記線若しくは追記線の一部分の候補が属する連結黒画素群は、文字１文字程度の幅を持ち、およそ推定文字サイズ程度と考えられる。よって、追記線若しくは追記線の一部分の候補を包含する連結黒画素群の幅と、推定文字サイズに基づく計算値とを比較することで、追記線若しくは追記線の一部分の候補を包含する連結黒画素群が追記線を付されていない文字の部分かどうか、を確認できる。
【００５０】
具体的には、文字サイズ推定部０３０６が推定した推定文字サイズに、予め定められた値を乗算して得た値を計算値とする。例えば、推定文字サイズが６０ｐｉｘｅｌで、予め定められた値が２であれば、６０×２＝１２０ピクセルが、推定文字サイズに基づく計算値となる。推定文字サイズはブロック毎に計算されるから、当然計算値もブロック毎に違う値であってよい。
【００５１】
ステップＳ１１１０で、追記線若しくは追記線の一部分の候補が属する連結黒画素群の幅が計算値以上であれば、条件判定部１６０３は追記線若しくは追記線の一部分の候補は追記線若しくは追記線の一部分であると判断する。そして、追記線若しくは追記線の一部分の候補の線情報を追記線若しくは追記線の一部分の情報として消去部０３０７に提供する。続けてステップＳ１１１１で消去部０３０７は、比較部０３０５から取得した追記線情報に示される、消去対象の黒画素の位置情報を取得する。また、入力部０１０１から入力画像を取得する。そして、入力画像中の、追記線情報に示される位置の黒画素の画素値を操作し、白画素に変換し、ステップＳ１１１２−１に進む。また、ステップＳ１１１０で、追記線候補が属する連結黒画素群の幅が計算値以上ではなければ、追記線候補は追記線若しくは追記線の一部分ではないと判断し、ステップＳ１１１２−１に進む。
【００５２】
ステップＳ１１１２−１で識別部０３０３は、ステップＳ１１００−２で抽出した連結黒画素群を全て選択したか否かを判断する。全て選択していればステップＳ１１１２−２へ進み、選択していない連結黒画素群が残っていればステップＳ１１００−３に戻ってまだ選択していない連結黒画素群を選択する。ステップＳ１１１２−２で識別部０３０３は、全ての低密度文字間領域を選択したか否かを判断する。全て選択していればステップＳ０４０８の処理を終了する。まだ選択していない低密度文字間領域が残っていればステップＳ１１００−１に戻って次の低密度文字間領域を選択する。これらの処理によって、図６(ｃ)、(ｄ)に示すように、文字の間の追記線や追記線の一部分が消去される。図６(ｃ)、(ｄ)は、文字間の線分消去の一例を示す図であり、図６(ｃ)が処理前、図６(ｄ)が処理後の一例である。
【００５３】
図６(ｅ)は、文字間の線分消去と連結画素領域との関係を示す図である。図６(ｅ)を用いて、垂直方向の射影により得られる低密度部分にある線と、その線が属する連結黒画素群の関係について一例を示す。この図で示される連結黒画素領域の部分でもある追記線や追記線の一部分が消去され、文字間の情報が適切に抽出されるようになる。
【００５４】
以上の処理によって、文字間電子透かし検出性能を向上する前処理である、追記線や追記線の一部分の消去が可能となる。本実施例の方法は、特に文字間又は行間に２本以上の追記線や追記線の一部分が、交わらずに引かれている場合に有効である。射影を行った結果のみから判断すると、追記線は文字の部分と判断される可能性が高くなるが、線の太さを判別することにより、より正確に文字と追記線とを区別することができる。低密度領域を検出する際の閾値は、追記線や追記線の一部分を消去した後に文字矩形を抽出する際の閾値よりも高くすることが好ましい。閾値を高くすることで、文字か追記線、若しくはその部分か判断が難しい部分を低密度領域として太さの判別対象にできる。追記線消去処理によって判断の難しい追記線を消去することができるので、文字矩形を抽出する際に閾値を低くすると、追記線を除外しつつ判断の難しい文字を認識することができる。誤り訂正符号を用いて電子透かしを埋め込む事は、よく行われる事であるが、本実施例の処理は、この誤り訂正符号の技術を用いる事と相反するものではなく、むしろ相互補完的に機能するものである。
【００５５】
本実施例では、文字の間の空白部分に付された追記線を消去することにより、文字間電子透かしの読取精度を向上させる方法について述べた。しかし、電子透かしを読み取るためには文字間に付された追記線若しくは追記線の一部分、のみを消去すれば十分であることが多い。この場合、行間の処理に関するステップＳ０４０４及びステップＳ０４０５の処理を省略しても、文字間の追記線若しくは追記線の一部分を消去して文字間電子透かしの読取精度を向上させることが可能である。
【００５６】
また、追記線候補を含む連結黒画素群の幅が一定以上であるかどうかを判断するステップＳ１１１０の処理はあることが好ましいが、文字の線幅よりも十分に細い追記線を消去することが目的であれば、省略することも可能である。この場合、ステップＳ１１０９及びステップＳ１１１０の処理を省略することができる。また、連結画素領域抽出部０３０４及び文字サイズ推定部０３０６を省くこともできる。反対に、本実施例では追記線候補を含む連結黒画素群の幅が一定以上であるかどうかを判断する処理は文字間の追記線候補についてのみ行ったが、行間の追記線若しくは追記線の一部分を検出する際に同様に行ってもよい。
【００５７】
本実施例では、入力画像から、文字の間の空白部分に付された追記線若しくは追記線の一部分を消去した画像を出力し、この画像から電子透かしを読み取る装置について述べた。しかし、文字間電子透かしの読取精度を向上させるという目的に照らせば、必ずしも追記線を消去した画像を出力する必要はない。すなわち、追記線若しくは追記線の一部分であると判断された画素の座標を記憶しておく。そして、文字の間の空白長を検出する際、すなわち外接矩形を検出する際に、追記線若しくは追記線の一部分であると判断された画素群を白画素群であると見なす構成をとれば十分である。この構成においては、出力部０３０９は必要なく、比較部０３０５が提供する追記線情報を記憶部０３０８に格納し、ステップＳ０２０３の文字矩形抽出処理において記憶部０３０８に格納された追記線情報を利用すればよい。
【００５８】
また、本実施例では、テキスト領域のみからなる画像が入力されることが前提となっているが、前段として、画像や、表、グラフ、テキストといった属性を持つ領域に分割する、領域分割の手段を用いることもできる。領域分割の手段を用いた後に、本実施例で示される構成のシステムに対して、テキスト領域のみを画像として入力する事も、当然のことながら考える事が出来る。また、行間のほぼ水平な線は行の高さを見て除去可能であり、文字間のほぼ垂直な線は、幅を他の文字幅との比較で区別出来る。従って、上述の実施例中において除去する線の対象は、必要ならば、連結要素の外接矩形のパラメータ（幅や高さ）を用いて除去することも可能であることはいうまでもない。
【００５９】
なお、上述した実施例においては、文字の線幅の計算方法として以下のような計算手順(１．〜７．)が挙げられる。下にいくほど厳密で、計算量の増大が見込まれる。どの手順を用いるかは、適用対象と実際に運用されるシステムの非機能要件（抽出速度等）に依る。
１．文字の外接矩形内をラスタースキャン（若しくは、その９０度単位での回転）して、黒ランを求め、そのヒストグラムを求めて、頻度の高い黒ランの長さを、文字幅とする。
２．文字サイズ及び文字密度を計算し、テーブルから概算値を計算する。（文字サイズ推定部0306とも関連しその結果を利用してもよい。）
３．文字認識、文字サイズ及び文字密度を計算し、テーブルから概算値を計算する。
４．細線化の後、画素数を数え上げ、(細線化前文字画素数/画素数)を計算する。
５．細線化の後、画素間距離を計測し、(細線化前文字画素数/画素間距離合計)を計算する。
６．細線化の後、2次Spline曲線化し、距離計算をして、(細線化前文字画素数又は文字黒い領域面積/文字骨格長さ)を計算する。
７．細線化の後、3次Spline曲線化し、距離計算をして、(細線化前文字画素数又は文字黒い領域面積/文字骨格長さ)を計算する。
８．文字のベクトル化の後、文字のアウトラインの長さを計算(結果をaとする)し、文字の面積を計算(結果をbとする)し、(b/a)×2を文字の線幅として計算する。
【００６０】
・２．及び３．について
ここで用いるテーブルとは、文字の密度、サイズ、若しくは文字認識結果から、対応する文字線幅を決定するための表である。このテーブルは予め人間が作成してもよいし、機械学習の方法を用いて統計的に作成してもよい。また、このテーブルの部分は、機械学習によって若しくは人間によって、作成された関数であってもよい。また、文字線幅は、文字を幅のない線として表した文字の骨格の長さで、文字の面積を割ったものとする。また、テーブルの作成にあたっては、後述する文字線幅の計算の利用も考えられる。こうした方法は、予め使われる文字フォントが既知であり、限定される場合、特に高速化と結果の信頼性の両立が要求される際に、有効である。
【００６１】
また、追記線若しくは追記線の一部分の線幅計算方法は、上述した方法の替わりに下記のような手順(１．〜５．)を用いる事も考えられる。（上の方が概算で、下にいくほど厳密だが計算量が多くなる。）これについても、実際にどの手順を用いるかは、適用対象と、実際に運用されるシステムの非機能要件（抽出速度等）による。
１．細線化の後、画素数を数え上げ、(細線化前文字画素数/画素数)を計算する。
２．細線化の後、画素間距離を計測し、 (細線化前文字画素数/画素間距離合計)を計算する。
３．細線化の後、2次Spline曲線化し、線の長さを計算して、(細線化前文字画素数or候補線の黒い領域面積/細線化した線の長さ)を計算する。
４．細線化の後、3次Spline曲線化し、線の長さを計算して、(細線化前文字画素数 or 候補線の黒い領域面積/細線化した線の長さ)を計算する。
５．ベクトル化の後、アウトラインの長さを計算(結果をaとする)し、線の面積を計算(結果をbとする)して、(b/a)×2を線幅として計算する。
【００６２】
以上で用いられる細線化の処理は、「画像処理の基本技法」＜技法入門編＞長谷川、輿水、中山、横井共著（技術評論社）のp.68〜に記載されている、横井の８連結細線化アルゴリズムを用いてもよい。また、「C言語による画像処理入門」（昭晃堂）に書かれているHildithの細線化法等を用いてもよい。また、何か他の細線化のための処理でもよい。
【００６３】
[実施例２]
実施例１では、図１に示した各部はハードウェアで実装しているものとしているが、記憶部０３０８以外の各部をソフトウェアで実装してもよい。この場合、係るソフトウェアは、コンピュータが有する各種記憶装置内に保持されており、ＣＰＵがこのソフトウェアを実行することで、コンピュータは、図１に示した各部の機能を実現することになる。また、記憶部０３０８は、主記憶装置又はハードディスク等の記憶装置を用いて実現することができる。
【００６４】
図１０は、本実施形態適用可能なコンピュータのハードウェア構成を示すブロック図である。コンピュータ１８０１は、一般に普及しているパーソナルコンピュータ等の汎用の情報処理装置である。コンピュータ１８０１の内部では、バス１８０７により後述する各ブロックが接続され、種々のデータの受け渡しが可能である。
【００６５】
なお、本コンピュータ１８０１を適用する装置によっては、図１０に示した全ての構成要素は必須なものではないので、適宜省略してもよい。また、同種の機能を有するハードウェアで置換してもよいし、複数のコンピュータ機体によってコンピュータ１８０１が構成されていてもよい。
図１０において１８０２はＣＰＵで、主記憶装置１８０３にロードされているプログラムやデータを用いて本コンピュータ１８０１全体の制御を行うとともに、本コンピュータ１８０１を適用した画像処理装置が行う上述の各処理を実行する。
【００６６】
１８０３はＲＡＭに代表される主記憶装置である。主記憶装置１８０３は、各種記憶装置から読み込んだプログラムやデータを一時的に記憶する為のエリアを有する。記憶装置には、ＨＤＤ（ハードディスクドライブ）１８０４、ＣＤドライブ１８０９、ＤＶＤドライブ１８１０、ＦＤＤ（フロッピー（登録商標）ディスクドライブ）１８１１等を含む。さらに主記憶装置１８０３は、スキャナ１８１７から、Ｉ／Ｆ（インターフェース）２１５を介して取得した画像のデータを一時的に記憶するためのエリアも有する。さらに主記憶装置１８０３は、ＣＰＵ１８０２が各種の処理を実行する際に用いるワークエリアも有する。以上を含め、主記憶装置１８０３は、各種の情報記録場所を適宜提供することができる。
【００６７】
１８０４はＨＤＤで、ここにはＯＳ（オペレーティングシステム）や、各種の画像（文書画像を含む）を保持している。さらにＨＤＤ１８０４には、図１０が示す各部の機能をＣＰＵ１８０２に制御させるための、あるいはコンピュータ１８０１を適用した装置が行う上述の各処理をＣＰＵ１８０２に実行させるためのプログラムやデータも保存されている。ＨＤＤ１８０４が保持しているプログラムやデータは、ＣＰＵ１８０２による制御に従って主記憶装置１８０３に適宜ロードされ、ＣＰＵ１８０２による処理対象となる。なお、主記憶装置１８０３に記憶するものとして説明した情報の幾つかについてはＨＤＤ１８０４に保存するようにしてもよい。
【００６８】
１８０５はビデオコントローラで、主記憶装置１８０３やＨＤＤ１８０４等から受けた画像データや文字データといった表示データを信号としてモニタ１８０６に送出するものである。モニタ１８０６はＣＲＴや液晶画面等により構成されており、ビデオコントローラ１８０５から受けた信号に基づいた画像や文字等を表示する。１８０８は、コンピュータ１８０１にプリンタ１８１６を接続するためのＩ／Ｆである。コンピュータ１８０１はこのＩ／Ｆ１８０８を介してプリンタ１８１６に対して印刷データを送信し、プリンタ１８１６が送信するプリンタ１８１６の状態情報を受信できる。
【００６９】
１８０９はＣＤドライブで、記憶媒体としてのＣＤに記録されているプログラムやデータを読み出し、読み出したプログラムやデータをＨＤＤ１８０４や主記憶装置１８０３等に送出する。１８１０はＤＶＤドライブで、記憶媒体としてのＤＶＤに記録されているプログラムやデータを読み出し、読み出したプログラムやデータをＨＤＤ１８０４や主記憶装置１８０３等に送出する。１８１１はＦＤＤで、記憶媒体としてのフロッピー（登録商標）ディスクに記録されているプログラムやデータを読み出し、読み出したプログラムやデータをＨＤＤ１８０４や主記憶装置１８０３等に送出する。
【００７０】
１８１３、１８１４はそれぞれ、操作入力装置としてのマウス、キーボードである。本コンピュータ１８０１のユーザは、このマウス１８１３やキーボード１８１４を操作することで、各種の指示をＣＰＵ１８０２に対して入力することができる。１８１２は、キーボード１８１４、マウス１８１３をバスに接続するためのＩ／Ｆである。マウス１８１３やキーボード１８１４からユーザが入力した操作指示は信号としてＩ／Ｆ１８１２を介してＣＰＵ１８０２に送出される。
【００７１】
１８１５は、原稿やフィルム等を読み取ることで画像データを生成するスキャナ１８１７を本コンピュータ１８０１に接続するためのものである。スキャナ１８１７が生成した画像データはこのＩ／Ｆ１８１５を介してＨＤＤ１８０４や主記憶装置１８０３等に送出される。
【００７２】
１８１８は、他のコンピュータ等の電子機器との情報をやりとりするためのＩ／Ｆである。ＣＰＵ１８０２の指示によりネットワーク１８１９から取得された画像データを含む情報は、このＩ／Ｆ１８１８を介してＨＤＤ１８０４や主記憶装置１８０３等に送出される。
【００７３】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによっても達成されることは言うまでもない。即ち、前述した実施形態の機能を実現するコンピュータプログラムのコードを記録した記録媒体（又は記憶媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード、及びそれを記録した記録媒体は本発明を構成することになる。
【００７４】
また、コンピュータが読み出したコンピュータプログラムのコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）等が実際の処理の一部又は全部を行う場合がある。その処理によって前述した実施形態の機能が実現される場合も本発明に含まれることは言うまでもない。
【００７５】
さらに、記録媒体から読み出されたコンピュータプログラムのコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も本発明に含まれることも言うまでもない。
【図１】
2010258627.tif 000003
【図２】
2010258627.tif 000004
【図３】
2010258627.tif 000005
【図４】
2010258627.tif 000006
【図５】
2010258627.tif 000007
【図６】
2010258627.tif 000008
【図７】
2010258627.tif 000009
【図８】
2010258627.tif 000010
【図９】
2010258627.tif 000011
【図１０】
2010258627.tif 000012