説明

画像処理装置及び画像処理プログラム

【課題】罫線として点線、破線等が含まれている画像を解析する場合にあって、ラベリング技術を用いた場合に比較して、少ない計算機資源の割り当てで、罫線として認識されずに文字として認識してしまう誤りを抑制するようにした画像処理装置を提供する。
【解決手段】画像処理装置の線分長計測手段は、画像内の線分長を計測し、線分長評価手段は、前記線分長計測手段によって計測された線分長と前記線分の位置に基づいて、該線分の評価を行い、類似性評価手段は、前記線分長計測手段によって計測された線分長の類似性と前記線分の位置に基づいて、該線分の評価を行い、罫線判定手段は、前記線分長評価手段による評価結果と前記類似性評価手段による評価結果に基づいて、罫線であるか否かを判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及び画像処理プログラムに関する。
【背景技術】
【0002】
紙の文書をスキャナ等で読み込み、レイアウトや構成オブジェクトを解析し、その記載情報の再利用や、記載情報に基づいた処理を行う技術がある。特に、文書の一種である帳票は業務において多用される。その帳票の多くは表で構成されており、表を解析する技術が求められている。
【0003】
これに関連する技術として、例えば、特許文献1には、長さがしきい値より短い短罫線を罫線として正しく抽出でき、表構造を正確に認識することができる信頼性に優れた表認識装置を提供することを目的とし、2値画像データ中のランのうち長さが実線しきい値以上のランを実線罫線要素として抽出しこれを連結して実線罫線を抽出する実線罫線抽出部と、ランのうち特定パターンのランが破線しきい値以上の長さより続くものを破線罫線要素として抽出しこれを連結して破線罫線を抽出する破線罫線抽出部と、実線罫線と破線罫線とで囲まれた部分をセルとして抽出して表構造を抽出する表構造抽出部と、を備えた表認識装置であって、表構造抽出部で抽出されたセルの内高さ、横幅がしきい値よりも小さいセルを検索する小セル検索部と、このセル内からランを抽出して短罫線を抽出する短罫線抽出部と、短罫線を用いて表構造を補正する表構造補正部と、を備えた構成からなることが開示されている。
【0004】
また、例えば、特許文献2には、印刷物・文書等から読み込まれた図形データから、文字・破線・点線、線種にかかわらず表構造及びセル内の文字を正確に認識できる表認識装置の提供を目的とし、図形データの連結黒画素の外接矩形リストを作成する黒画素ラベリング部と、外接矩形の辺の長さから矩形内が文字であるか否かを判断する文字矩形推定部と、文字であると推定された矩形内の黒画素を除いた部分の縮小画像を作成する縮小画像作成部と、縮小画像の縦・横2方向の黒画素のランのうち一定長さ以上のものを抽出するラン抽出部と、抽出されたランを連結することにより罫線を抽出する罫線抽出部と、抽出された罫線で囲まれた矩形を検索し表のセルとして抽出する表構造抽出部とを備えていることが開示されている。
【0005】
また、例えば、特許文献3には、任意の画像データから刺繍縫い目を形成する際、元の画像データの特徴を糸の刺繍縫い目方向に反映することができる刺繍データ処理装置及びミシン並びに記録媒体を提供することを課題とし、イメージスキャナによって、原画から図柄の読み込みを行い、その読み込んだ画像データの中で刺繍化する際に同じ縫い目方向にしたい領域を選択し、その選択した領域に対してテクスチャを演算し、そして、刺繍する領域をブロック化して、刺繍の縫い目データを作成することが開示されている。
【0006】
また、例えば、特許文献4には、任意の画像データから刺繍データを形成する際、トレース等の煩雑な操作をすることなく、操作者の望む刺繍領域を形成することができる刺繍データ処理装置及び刺繍ミシン並びに記録媒体を提供することを課題とし、原画から画像の読み込みを行い、その読み込んだ画像データに対して領域分割を行い、そして、図柄画像から領域抽出により輪郭線を求め、また、エッジ抽出によりエッジを求め、輪郭線又はエッジのうちの少なくともどちらか一方を操作者が選択できるようにすることで、操作者の望む刺繍領域に基づいて刺繍データを作成することが開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平07−013999号公報
【特許文献2】特開平05−012489号公報
【特許文献3】特開平11−076658号公報
【特許文献4】特開平11−123289号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
本発明は、罫線として点線、破線等が含まれている画像を解析する場合にあって、ラベリング技術を用いた場合に比較して、少ない計算機資源の割り当てで、罫線として認識されずに文字として認識してしまう誤りを抑制するようにした画像処理装置及び画像処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【0009】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項1の発明は、画像内の線分長を計測する線分長計測手段と、前記線分長計測手段によって計測された線分長と前記線分の位置に基づいて、該線分の評価を行う線分長評価手段と、前記線分長計測手段によって計測された線分長の類似性と前記線分の位置に基づいて、該線分の評価を行う類似性評価手段と、前記線分長評価手段による評価結果と前記類似性評価手段による評価結果に基づいて、罫線であるか否かを判定する罫線判定手段を具備することを特徴とする画像処理装置である。
【0010】
請求項2の発明は、前記線分長評価手段は、前記線分の位置毎に、予め定められた範囲内にある線分長を有する線分の累積画素数に基づいて、該線分の評価を行うことを特徴とする請求項1に記載の画像処理装置である。
【0011】
請求項3の発明は、前記類似性評価手段は、前記線分の位置毎に、線分長の出現頻度に基づいて、該線分の評価を行うことを特徴とする請求項1に記載の画像処理装置である。
【0012】
請求項4の発明は、前記線分長計測手段は、画像の縦方向における線分長及び横方向における線分長を計測し、前記線分長評価手段、前記類似性評価手段における線分の位置は、前記画像の縦方向における位置及び横方向における位置であり、前記罫線判定手段は、線分が縦罫線であるか否かの判定と線分が横罫線であるか否かの判定を行うことを特徴とする請求項1から3のいずれか一項に記載の画像処理装置である。
【0013】
請求項5の発明は、前記罫線判定手段によって罫線であると判定された線分を用いて表画像を生成する表画像生成手段と、前記表画像生成手段によって生成された表画像の罫線を実線に変換する実線変換手段をさらに具備することを特徴とする請求項1から4のいずれか一項に記載の画像処理装置である。
【0014】
請求項6の発明は、コンピュータを、画像内の線分長を計測する線分長計測手段と、前記線分長計測手段によって計測された線分長と前記線分の位置に基づいて、該線分の評価を行う線分長評価手段と、前記線分長計測手段によって計測された線分長の類似性と前記線分の位置に基づいて、該線分の評価を行う類似性評価手段と、前記線分長評価手段による評価結果と前記類似性評価手段による評価結果に基づいて、罫線であるか否かを判定する罫線判定手段として機能させることを特徴とする画像処理プログラムである。
【発明の効果】
【0015】
請求項1の画像処理装置によれば、罫線として点線、破線等が含まれている画像を解析する場合にあって、ラベリング技術を用いた場合に比較して、少ない計算機資源の割り当てで、罫線として認識されずに文字として認識してしまう誤りを抑制できる。
【0016】
請求項2の画像処理装置によれば、線分長評価手段が、線分の位置毎に、予め定められた範囲内にある線分長を有する線分の累積画素数に基づいて、該線分の評価を行わない場合に比べて、少ない計算機資源の割り当てで、画像を解析することができる。
【0017】
請求項3の画像処理装置によれば、類似性評価手段が、線分の位置毎に、線分長の出現頻度に基づいて、該線分の評価を行わない場合に比べて、少ない計算機資源の割り当てで、画像を解析することができる。
【0018】
請求項4の画像処理装置によれば、本構成を有さない場合に比べて、縦方向と横方向の罫線の解析を独立して行うことができる。
【0019】
請求項5の画像処理装置によれば、本構成を有さない場合に比べて、点線、破線等の罫線によって構成されていた表を実線の罫線によって構成される表に変換することができる。
【0020】
請求項6の画像処理プログラムによれば、罫線として点線、破線等が含まれている画像を解析する場合にあって、ラベリング技術を用いた場合に比較して、少ない計算機資源の割り当てで、罫線として認識されずに文字として認識してしまう誤りを抑制できる。
【図面の簡単な説明】
【0021】
【図1】本実施の形態の構成例についての概念的なモジュール構成図である。
【図2】本実施の形態を具現化する場合の画像処理装置全体の構成例についての概念的なモジュール構成図である。
【図3】本実施の形態による処理例を示すフローチャートである。
【図4】本実施の形態が対象とする表領域画像の例を示す説明図である。
【図5】黒画素数のヒストグラムの例を示す説明図である。
【図6】予め定められた範囲内にあるラン長の黒画素数のヒストグラムの例を示す説明図である。
【図7】類似性評価結果に基づいて作成したグラフの例を示す説明図である。
【図8】2つの処理結果を合成した例を示す説明図である。
【図9】表の罫線を抽出した例を示す説明図である。
【図10】表の点線、破線等の罫線を実線の罫線に変換した例を示す説明図である。
【図11】破線を含む罫線からなる表を対象とした実験結果例を示す説明図である。
【図12】点線を含む罫線からなる表を対象とした実験結果例を示す説明図である。
【図13】実線の罫線からなる表を対象とした実験結果例を示す説明図である。
【図14】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0022】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、コンピュータ・プログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能にほぼ一対一に対応しているが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。「予め定められた」とは、対象としている処理の前であることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
【0023】
本実施の形態である画像処理装置は、点線、破線等の線が途切れている罫線から構成されている表画像であっても、実線の罫線から構成される表画像に変換するものであって、図1に示すように、ラン長カウントモジュール110、ラン評価モジュール120、罫線判定モジュール130、罫線画像生成モジュール140、罫線画像補正モジュール150を有している。
【0024】
ラン長カウントモジュール110は、ラン評価モジュール120と接続されている。画像内のラン長(Run Length)を計測し、その計測結果をラン評価モジュール120に渡す。なお、画像は2値画像を対象とし、表画像内には文字等が含まれていてもよい。
ランとは、線分である。ラン長とは、横方向又は縦方向(走査方向又は副走査方向)の線分の画素数をいう。そのランの画素は黒であってもよいし、白であってもよい。なお、本実施の形態の説明においては、黒の画素を対象とする。したがって、ラン長の計測とは、画像内を横方向又は縦方向に走査して黒画素の連続している画素数を計数することである。これによって、横線又は縦線の長さを計測している。
【0025】
ラン評価モジュール120は、ラン長カウントモジュール110、罫線判定モジュール130と接続されており、ラン長評価モジュール122、ラン類似性評価モジュール124を有している。ラン評価モジュール120は、ラン長カウントモジュール110によって計測されたラン長に基づいて、ラン長評価モジュール122、ラン類似性評価モジュール124を制御して、ラン長の分布等から表を構成している罫線であるか否かの判定を行うためのデータを生成する。そして、その生成したデータを罫線判定モジュール130に渡す。
【0026】
ラン長評価モジュール122は、ラン長カウントモジュール110によって計測されたラン長と線分の位置に基づいて、その線分の評価を行う。例えば、線分の位置毎に、予め定められた範囲内にあるラン長を有する線分の累積画素数に基づいて、その線分の評価を行うようにしてもよい。より具体的な例として、対象画像の横方向の位置において、予め定められた範囲内にある線分長を有する縦線の黒画素数(ラン長の合計)を計数する。予め定められた範囲とは、例えば、閾値1より小である範囲又は閾値2より大である範囲であり、閾値1は閾値2よりも小である。これは、短い線分又は長い線分の黒画素数を計数することになり、その中間にある長さの線分は対象としないものである。計数されるものは点線又は実線を構成する線分となり、計数の対象外となるものはその中間にある長さのものとなる。この中間にある長さのものとして、文字、破線等を構成する線分が該当する。罫線である破線等は、ラン類似性評価モジュール124によって抽出する。なお、罫線である点線は、ラン長評価モジュール122、ラン類似性評価モジュール124の両方によって抽出するようにしてもよい。
このように、ラン長評価モジュール122は、線分は罫線を構成する短い線分又は長い線分であるかの評価を行う。そして、評価結果として、線分の位置毎に合計された黒画素数を罫線判定モジュール130に渡す。また、対象画像の縦方向の位置においても同様のことを行う。
【0027】
ラン類似性評価モジュール124は、ラン長カウントモジュール110によって計測されたラン長の類似性(本技術分野における「均一性」、「同一性」、「均質性」、「uniformity」を含む)と線分の位置に基づいて、その線分の評価を行う。例えば、線分の位置毎に、類似するラン長の出現頻度に基づいて、その線分の評価を行うようにしてもよい。より具体的な例として、対象画像の横方向又は縦方向の位置において、予め定められた範囲内にあるラン長を有する線分の個数に応じて決定するようにしてもよい。また、対象画像の横方向又は縦方向の位置において、類似する長さの線分が繰り返して出現することを示している類似性指数を算出するようにしてもよい。
【0028】
例えば、類似性指数の算出として、数1の計算を行う。
【数1】

なお、RLU(θ)(RLU:Run Length Uniformity)は、ラン長が類似した線分の出現頻度が多くなると、大きくなる値である。aは画素濃度を表すが、2値画像であるので1又は0であるが、この場合は黒画素のラン長を対象としているので1である。Rは、横方向の位置におけるラン長カウントモジュール110によって計測されたラン長を表す。θは走査(スキャン)方向を表しており、この場合は0(横方向)又は90(縦方向)である。M(x)は出現頻度を表す。数1は、一般に「ランレングス行列」と呼ばれる5つの指標のうちの1つであり、ランレングス行列は2次元画像の解析で用いられており、主にテクスチャ解析、衛星写真の解析等に活用されているものである。
【0029】
このように、ラン類似性評価モジュール124は、線分は罫線を構成する点線、破線等であるかの評価を行う。そして、評価結果として、線分の位置毎に計算された類似性指数を罫線判定モジュール130に渡す。
【0030】
罫線判定モジュール130は、ラン評価モジュール120、罫線画像生成モジュール140と接続されている。ラン長評価モジュール122による評価結果とラン類似性評価モジュール124による評価結果に基づいて、罫線であるか否かを判定する。つまり、前述の例で示せば、ラン長評価モジュール122から線分の位置毎に合計された黒画素数、ラン類似性評価モジュール124から線分の位置毎に計算された類似性指数を受け取って、線分は罫線を構成しているか否かの判定(線分が縦罫線であるか否かの判定と線分が横罫線であるか否かの判定)を行う。そして、その判定結果を罫線画像生成モジュール140に渡す。
【0031】
罫線画像生成モジュール140は、罫線判定モジュール130、罫線画像補正モジュール150と接続されている。罫線判定モジュール130によって罫線であると判定された線分を用いて表画像を生成する。そして、その表画像を罫線画像補正モジュール150へ渡す。
罫線であると判定された線分は、横線又は縦線であり、その線種は、実線、点線、破線等が含まれている。つまり、元の画像内の文字等は削除されて、罫線だけからなる画像を生成する。
【0032】
罫線画像補正モジュール150は、罫線画像生成モジュール140と接続されている。罫線画像生成モジュール140によって生成された表画像の罫線を実線に変換する。つまり、以降の画像解析(表構造の解析等)を行いやすいようにするために、点線、破線等も実線に変換するものである。例えば、縦又は横方向に膨張を行い、その後に収縮を行う。また、縦と横をそれぞれ別々に処理してもよい。つまり、縦罫線と判定された画像には、縦方向に膨張を行い、その後に収縮を行う。同様に、横罫線と判定された画像には、横方向に膨張を行い、その後に収縮を行う。これによって、点線、破線等の線に途切れがある罫線を実線化している。
【0033】
図2は、本実施の形態を具現化する場合の画像処理装置全体の構成例についての概念的なモジュール構成図である。
画像処理装置全体は、画像受付モジュール210、オブジェクト分離モジュール220、表領域抽出モジュール230、表罫線補正モジュール240、上書きモジュール250、文字認識モジュール260、情報構成モジュール270、出力モジュール280を備えている。
【0034】
画像受付モジュール210は、オブジェクト分離モジュール220、上書きモジュール250と接続されている。画像を受け付けて、その画像をオブジェクト分離モジュール220、上書きモジュール250へ渡す。画像を受け付けるとは、例えば、スキャナ、カメラ等で画像を読み込むこと、ファックス等で通信回線を介して外部機器から画像を受信すること、ハードディスク(コンピュータに内蔵されているものの他に、ネットワークを介して接続されているもの等を含む)等に記憶されている画像を読み出すこと等が含まれる。画像は、2値画像、多値画像(カラー画像)であってもよい。なお、多値画像である場合は、2値化処理を行って、2値画像に変換する。受け付ける画像は、1枚であってもよいし、複数枚であってもよい。また、画像の内容として、表が含まれているような画像であれば、ビジネスに用いられる帳票等の文書、広告宣伝用のパンフレット等であってもよい。
また、画像受付モジュール210は、受け付けた画像に対して、ノイズ除去、傾き補正、正規化等の前処理を行うようにしてもよい。
【0035】
オブジェクト分離モジュール220は、画像受付モジュール210、表領域抽出モジュール230、情報構成モジュール270と接続されている。画像受付モジュール210が受け付けた画像を構成するオブジェクト(部分画像)に分離する。オブジェクトには、少なくとも表領域が含まれており、その他に、文字領域、図形領域、写真領域等がある。そして、その分離結果を表領域抽出モジュール230へ渡し、領域の構成情報(各領域の受け付けた画像内における位置等)を情報構成モジュール270へ渡す。
部分画像への分離は、画像から空白等で区切られた領域(部分画像)を抽出することによって行う。この部分画像に分離する処理は、例えば、画像受付モジュール210によって受け付けられた画像から白画素の領域が一定の長さ(あるいは面積)以上あるところによって区切る。そのように区切ると、黒画素の領域(例えば、矩形)を抽出することができる。さらに、その黒画素の領域の画像としての特徴(例えば、面積、縦又は横の大きさ、形状、黒画素塊の存在位置等)を抽出し、文字領域、図形領域、表領域、写真領域等の種別を判別することができる。もちろん他の既存の方法で部分画像を抽出してもよい。
【0036】
表領域抽出モジュール230は、オブジェクト分離モジュール220、表罫線補正モジュール240と接続されている。オブジェクト分離モジュール220から分離結果を受け取り、画像受付モジュール210が受け付けた画像内から表領域の画像を取り出す。そして、その表領域の画像を表罫線補正モジュール240へ渡す。
【0037】
表罫線補正モジュール240は、表領域抽出モジュール230、上書きモジュール250と接続されている。表領域抽出モジュール230は、前述した図1に示したモジュールによって構成されている。つまり、表領域抽出モジュール230から表領域の画像を受け取って、その中の線分から表を構成している罫線を取り出して、その罫線を実線化した表だけの画像を生成する。そして、その生成した表画像を上書きモジュール250へ渡す。詳細については、図3の例を用いて後述する。
【0038】
上書きモジュール250は、画像受付モジュール210、表罫線補正モジュール240、文字認識モジュール260と接続されている。画像受付モジュール210が受け付けた画像に、表罫線補正モジュール240が生成した表画像を上書きする。そして、その表画像が上書きされた画像を文字認識モジュール260へ渡す。表画像を上書きすることによって、元の画像内の表を実線化した画像ができあがり、以降の処理では、その実線化された表を取り扱うこととなる。
【0039】
文字認識モジュール260は、上書きモジュール250、情報構成モジュール270と接続されている。上書きモジュール250によって表画像が上書きされた画像内の文字認識処理を行う。ここでの、文字認識処理は既存の文字認識処理を用いてもよい。そして、文字認識処理は、表構造の解析等を行うようにしてもよい。例えば、既存の文字認識プログラムをそのまま適用してもよく、その場合、表構造の解析等をするにあたって、点線等の罫線がある場合よりも実線の罫線で構成されている表の方が適している。そして、文字認識結果を情報構成モジュール270へ渡す。
【0040】
情報構成モジュール270は、オブジェクト分離モジュール220、文字認識モジュール260、出力モジュール280と接続されている。文字認識モジュール260から文字認識結果とオブジェクト分離モジュール220から領域の構成情報を受け取り、その画像の解析結果として構成情報を生成する。例えば、構成情報として、その画像内のある位置にどのような文字列があるか、表はどのような構造を有しており、その表内のセルにはどのような文字列があるか等を示す情報がある。そして、その構成情報を出力モジュール280へ渡す。
【0041】
出力モジュール280は、情報構成モジュール270と接続されている。情報構成モジュール270から構成情報を受け取って、ページ情報に変換して出力する。ページ情報として、例えば、XML(eXtensible Markup Language)等のフォーマットがある。また、出力として、例えば、文書データベース等への記憶、翻訳処理装置等の他の情報処理装置への送信があるが、この他に、画像の清書を提示することを目的として、プリンタ等の印刷装置で印刷すること、ディスプレイ等の表示装置に表示すること、ファックス等の画像送信装置で画像を送信すること等を行ってもよい。
【0042】
図3は、本実施の形態による処理例を示すフローチャートである。このフローチャートは、図2の例に示した表罫線補正モジュール240による処理例であり、図1の例に示したモジュールによる処理例である。
【0043】
ステップS302では、表罫線補正モジュール240が、表領域抽出モジュール230から表領域の画像を受け取る。同じ画像に対して、ステップS310からの横罫線(水平方向の罫線)の処理とステップS350からの縦罫線(垂直方向の罫線)の処理が行われる。
例えば、図4の例に示す表領域画像400が該当する。表領域画像400内には、横罫線420から424、縦罫線430から440によって構成されている表410がある。また、図4の例に示すように、表410内の各セルには文字が記載されている。ここで、表領域画像400に対して、例えば、垂直方向に黒画素数をその位置(横方向)毎に計数したもの(ヒストグラム)を示すと、図5の例に示すようになる。この波形から罫線とその他の部分(文字がある部分)とを、閾値を用いて分離することは困難である。図5の例に示すように、点線、破線部分の罫線の黒画素数と文字部分の黒画素数とは区別がつかないからである。
【0044】
ステップS310では、ラン長カウントモジュール110が、水平方向に各ランのラン長を計測する。
ステップS312では、ラン長評価モジュール122が、ラン長が閾値1Hよりも小又はラン長が閾値2Hよりも大(run<th1H or run>th2H)である範囲にあるランを抽出する。
【0045】
ステップS314では、ラン長評価モジュール122が、ステップS312で抽出したランの黒画素数を位置毎に計数(カウント)する。ここでの「位置毎に」とは、対象のランを水平方向に投影した場合の位置毎をいい、例えば、図6(a)の例に示すような縦軸上のヒストグラムが該当する。これは、ラン長が閾値1Hよりも小又は閾値2Hよりも大であるものの黒画素数を計数したものである。
【0046】
ステップS316では、罫線判定モジュール130が、ステップS314での計数値が閾値4Hよりも大であるか否かを判断する。大である場合(Yes)はステップS322へ進み、それ以外の場合(No)はステップS324へ進む。例えば、図6(a)の例に示すような場合、黒画素数が閾値4Hよりも大である部分(投影波形621、622、623)が3つあることを示しており、それぞれ横罫線420、422、424に対応する。
【0047】
ステップS318では、ラン類似性評価モジュール124が、水平方向におけるランの類似性の計算を行う。計算結果として、例えば、図7(a)の例に示すグラフが該当する。これは、数1の例で示した数式にしたがって計算した値を、水平方向毎の位置(縦軸上)にプロットしたものである。
ステップS320では、罫線判定モジュール130が、ステップS318でのRLUが閾値3Hよりも大であるか否かを判断する。大である場合(Yes)はステップS322へ進み、それ以外の場合(No)はステップS324へ進む。例えば、図7(a)の例に示すような場合、閾値3Hよりも大である部分はない。
【0048】
ステップS322では、ステップS316又はステップS320でYesと判断された場合、罫線画像生成モジュール140が、対象としている表領域画像からその水平方向の画素を残すようにする。図6(a)の例では、該当箇所として投影波形621、622、623の部分があり、図7(a)の例では、該当箇所はない。したがって、ステップS322による処理終了時点では、表領域画像400から投影波形621、622、623の部分を残すこととなる。
ステップS324では、ステップS316かつステップS320でNoと判断された場合、罫線画像生成モジュール140が、対象としている表領域画像からその水平方向の画素を消すようにする。図6(a)の例では、該当箇所として投影波形621、622、623以外の部分があり、図7(a)の例では、全て該当箇所である。したがって、ステップS324による処理終了時点では、表領域画像400から投影波形621、622、623以外の部分を削除することとなる。
ステップS326では、罫線画像生成モジュール140が、ステップS322の処理によって残された画像とステップS324の処理によって削除された画像から、罫線である横線だけを残したマスク画像を生成する。また、図8(a)の例に示すように、図6(a)に示した例と図7(a)に示した例とを合成したものから、マスク画像を生成するようにしてもよい。
【0049】
ステップS350では、ラン長カウントモジュール110が、垂直方向に各ランのラン長を計測する。
ステップS352では、ラン長評価モジュール122が、ラン長が閾値1Vよりも小又はラン長が閾値2Vよりも大(run<th1V or run>th2V)である範囲にあるランを抽出する。
【0050】
ステップS354では、ラン長評価モジュール122が、ステップS352で抽出したランの黒画素数を位置毎に計数(カウント)する。ここでの「位置毎に」とは、対象のランを垂直方向に投影した場合の位置毎をいい、例えば、図6(b)の例に示すような横軸上のヒストグラムが該当する。これは、ラン長が閾値1Vよりも小又は閾値2Vよりも大であるものの黒画素数を計数したものである。
【0051】
ステップS356では、罫線判定モジュール130が、ステップS354での計数値が閾値4Vよりも大であるか否かを判断する。大である場合(Yes)はステップS362へ進み、それ以外の場合(No)はステップS364へ進む。例えば、図6(b)の例に示すような場合、黒画素数が閾値4Vよりも大である部分(投影波形611、612、613、614)が4つあることを示しており、それぞれ縦罫線430、432、434、440に対応する。
【0052】
ステップS358では、ラン類似性評価モジュール124が、垂直方向におけるランの類似性の計算を行う。計算結果として、例えば、図7(b)の例に示すグラフが該当する。これは、数1の例で示した数式にしたがって計算した値を、垂直方向毎の位置(横軸上)にプロットしたものである。
ステップS360では、罫線判定モジュール130が、ステップS358でのRLUが閾値3Vよりも大であるか否かを判断する。大である場合(Yes)はステップS362へ進み、それ以外の場合(No)はステップS364へ進む。例えば、図7(b)の例に示すような場合、閾値3Vよりも大である部分(投影波形711、712、713)が3つあることを示しており、それぞれ縦罫線434、436、438に対応する。
【0053】
ステップS362では、ステップS356又はステップS360でYesと判断された場合、罫線画像生成モジュール140が、対象としている表領域画像からその垂直方向の画素を残すようにする。図6(b)の例では、該当箇所として投影波形611、612、613、614の部分があり、図7(b)の例では、該当箇所として投影波形711、712、713の部分がある。したがって、ステップS362による処理終了時点では、表領域画像400から投影波形611、612、613(711)、712、713、614の部分を残すこととなる。
ステップS364では、ステップS356かつステップS360でNoと判断された場合、罫線画像生成モジュール140が、対象としている表領域画像からその垂直方向の画素を消すようにする。図6(b)の例では、該当箇所として投影波形611、612、613、614以外の部分があり、図7(b)の例では、該当箇所として投影波形711、712、713以外の部分がある。したがって、ステップS364による処理終了時点では、表領域画像400から投影波形611、612、613(711)、712、713、614以外の部分を削除することとなる。
ステップS366では、罫線画像生成モジュール140が、ステップS362の処理によって残された画像とステップS364の処理によって削除された画像から、罫線である縦線だけを残したマスク画像を生成する。また、図8(b)の例に示すように、図6(b)に示した例と図7(b)に示した例とを合成したものから、マスク画像を生成するようにしてもよい。
【0054】
なお、ステップS310からステップS326までの処理において、閾値1H、閾値2H、閾値3H、閾値4Hは、横罫線用の閾値であるが、ステップS350からステップS366までの処理において用いている閾値1V、閾値2V、閾値3V、閾値4Vは、縦罫線用の閾値であり、横罫線用の閾値とそれぞれ同じ値であってもよいし、異なる値であってもよい。
【0055】
ステップS380では、罫線画像生成モジュール140が、ステップS326で生成された横線だけからなる罫線の画像とステップS366で生成された縦線だけからなる罫線の画像を合成する。例えば、図4の例に示した表410は、図9の例に示したようになる。つまり、図4の例に示した表410内から文字が削除されて、罫線だけの表410が抽出されることとなる。
ステップS382では、罫線画像補正モジュール150が、膨張、収縮処理を行って、点線、破線等を実線化する。例えば、図9の例に示した表410は、図10の例に示したようになる。つまり、図4の例に示した表410内から文字が削除されて、実線化された罫線の表1010が生成されることとなる。
【0056】
図11は、破線を含む罫線からなる表を対象とした実験結果例(縦罫線の抽出処理)を示す説明図である。図11(a)の例に示す表1100を処理対象とする。図11(b)の例は、単純に黒画素のヒストグラムを示しており、破線と文字部分とは閾値のみでは区別が困難であることがわかる。図11(c)の例に示すヒストグラムは、垂直方向のラン長が閾値1Vよりも小又は閾値2Vよりも大であるものの黒画素数を投影したものであり(図6(b)に対応)、実線部分だけが突出した値を示している。図11(d)の例に示すグラフは、数1の式でランの類似性を算出した例であり(図7(b)に対応)、破線部分だけが突出した値を示している。
【0057】
図12は、点線を含む罫線からなる表を対象とした実験結果例(縦罫線の抽出処理)を示す説明図である。図12(a)の例に示す表1200を処理対象とする。図12(b)の例は、単純に黒画素のヒストグラムを示しており、点線と文字部分とは閾値のみでは区別が困難であることがわかる。図12(c)の例に示すヒストグラムは、垂直方向のラン長が閾値1Vよりも小又は閾値2Vよりも大であるものの黒画素数を投影したものであり(図6(b)に対応)、実線及び点線部分が突出した値を示している。図12(d)の例に示すグラフは、数1の式でランの類似性を算出した例であり(図7(b)に対応)、点線部分だけが突出した値を示している。
【0058】
図13は、実線の罫線からなる表を対象とした実験結果例(縦罫線の抽出処理)を示す説明図である。図13(a)の例に示す表1300を処理対象とする。図13(b)の例は、単純に黒画素のヒストグラムを示している。図13(c)の例に示すヒストグラムは、垂直方向のラン長が閾値1Vよりも小又は閾値2Vよりも大であるものの黒画素数を投影したものであり(図6(b)に対応)、実線部分が突出した値を示している。図13(d)の例に示すグラフは、数1の式でランの類似性を算出した例であり(図7(b)に対応)、突出した箇所はないことを示している。なお、図13(d)の例に示すレンジは、図11(d)等の例とは異なっており、変動が拡張されて示されている。
【0059】
図14を参照して、本実施の形態の画像処理装置のハードウェア構成例について説明する。図14に示す構成は、例えばパーソナルコンピュータ(PC)などによって構成されるものであり、スキャナ等のデータ読み取り部1417と、プリンタなどのデータ出力部1418を備えたハードウェア構成例を示している。
【0060】
CPU(Central Processing Unit)1401は、前述の実施の形態において説明した各種のモジュール、すなわち、ラン長カウントモジュール110、ラン評価モジュール120、罫線判定モジュール130、罫線画像生成モジュール140、罫線画像補正モジュール150、オブジェクト分離モジュール220、表領域抽出モジュール230等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【0061】
ROM(Read Only Memory)1402は、CPU1401が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)1403は、CPU1401の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバスなどから構成されるホストバス1404により相互に接続されている。
【0062】
ホストバス1404は、ブリッジ1405を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス1406に接続されている。
【0063】
キーボード1408、マウス等のポインティングデバイス1409は、操作者により操作される入力デバイスである。ディスプレイ1410は、液晶表示装置又はCRT(Cathode Ray Tube)などがあり、各種情報をテキストやイメージ情報として表示する。
【0064】
HDD(Hard Disk Drive)1411は、ハードディスクを内蔵し、ハードディスクを駆動し、CPU1401によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、画像受付モジュール210が受け付けた画像、表罫線補正モジュール240が補正した表画像などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【0065】
ドライブ1412は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体1413に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース1407、外部バス1406、ブリッジ1405、及びホストバス1404を介して接続されているRAM1403に供給する。リムーバブル記録媒体1413も、ハードディスクと同様のデータ記録領域として利用可能である。
【0066】
接続ポート1414は、外部接続機器1415を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート1414は、インタフェース1407、及び外部バス1406、ブリッジ1405、ホストバス1404等を介してCPU1401等に接続されている。通信部1416は、ネットワークに接続され、外部とのデータ通信処理を実行する。データ読み取り部1417は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部1418は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【0067】
なお、図14に示す画像処理装置のハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図14に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図14に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
【0068】
前記実施の形態においては、罫線が途中で途切れる例として点線、破線を示したが、一点鎖線、二点鎖線等を用いた罫線であってもよい。
また、図3の例に示したフローチャートでは、ステップS302からステップS310とステップS350の処理に分かれたが、ステップS310からステップS326までの処理を行った後に、受け付けられた画像を90度回転して、再度ステップS310からステップS326までの処理を行うようにしてもよい。
【0069】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray Disc(登録商標))、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM)、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【0070】
110…ラン長カウントモジュール
120…ラン評価モジュール
122…ラン長評価モジュール
124…ラン類似性評価モジュール
130…罫線判定モジュール
140…罫線画像生成モジュール
150…罫線画像補正モジュール
210…画像受付モジュール
220…オブジェクト分離モジュール
230…表領域抽出モジュール
240…表罫線補正モジュール
250…上書きモジュール
260…文字認識モジュール
270…情報構成モジュール
280…出力モジュール

【特許請求の範囲】
【請求項1】
画像内の線分長を計測する線分長計測手段と、
前記線分長計測手段によって計測された線分長と前記線分の位置に基づいて、該線分の評価を行う線分長評価手段と、
前記線分長計測手段によって計測された線分長の類似性と前記線分の位置に基づいて、該線分の評価を行う類似性評価手段と、
前記線分長評価手段による評価結果と前記類似性評価手段による評価結果に基づいて、罫線であるか否かを判定する罫線判定手段
を具備することを特徴とする画像処理装置。
【請求項2】
前記線分長評価手段は、前記線分の位置毎に、予め定められた範囲内にある線分長を有する線分の累積画素数に基づいて、該線分の評価を行う
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記類似性評価手段は、前記線分の位置毎に、線分長の出現頻度に基づいて、該線分の評価を行う
ことを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記線分長計測手段は、画像の縦方向における線分長及び横方向における線分長を計測し、
前記線分長評価手段、前記類似性評価手段における線分の位置は、前記画像の縦方向における位置及び横方向における位置であり、
前記罫線判定手段は、線分が縦罫線であるか否かの判定と線分が横罫線であるか否かの判定を行う
ことを特徴とする請求項1から3のいずれか一項に記載の画像処理装置。
【請求項5】
前記罫線判定手段によって罫線であると判定された線分を用いて表画像を生成する表画像生成手段と、
前記表画像生成手段によって生成された表画像の罫線を実線に変換する実線変換手段
をさらに具備することを特徴とする請求項1から4のいずれか一項に記載の画像処理装置。
【請求項6】
コンピュータを、
画像内の線分長を計測する線分長計測手段と、
前記線分長計測手段によって計測された線分長と前記線分の位置に基づいて、該線分の評価を行う線分長評価手段と、
前記線分長計測手段によって計測された線分長の類似性と前記線分の位置に基づいて、該線分の評価を行う類似性評価手段と、
前記線分長評価手段による評価結果と前記類似性評価手段による評価結果に基づいて、罫線であるか否かを判定する罫線判定手段
として機能させることを特徴とする画像処理プログラム。

【図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


【公開番号】特開2010−176414(P2010−176414A)
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願番号】特願2009−18577(P2009−18577)
【出願日】平成21年1月29日(2009.1.29)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】