説明

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

【課題】罫線が含まれている画像を解析する場合にあって、ラベリング技術を用いた場合に比較して、少ない計算機資源の割り当てで、罫線ではないものを罫線として認識してしまう誤りを抑制するようにした画像処理装置を提供する。
【解決手段】画像処理装置の罫線抽出手段は、画像内の画素数を計数し、該計数した画素数を閾値と比較して罫線を抽出し、雑音成分識別手段は、前記罫線抽出手段によって抽出された罫線の太さ及び前記閾値に基づいて、前記罫線抽出手段によって抽出された罫線内の雑音成分を識別する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及び画像処理プログラムに関する。
【背景技術】
【0002】
紙の文書をスキャナ等で読み込み、レイアウトや構成オブジェクトを解析し、その記載情報の再利用や、記載情報に基づいた処理を行う技術がある。特に、文書の一種である帳票は業務において多用される。その帳票の多くは表で構成されており、表を解析する技術が求められている。
【0003】
これに関連する技術として、例えば、特許文献1には、枠の罫線を正しく抽出できる表罫線認識方法を提供することを課題とし、表領域を含む文書画像の表領域の罫線を認識する方法は、表領域に対して水平方向及び垂直方向に各々射影を取り水平方向及び垂直方向のヒストグラムを作成し、水平方向及び垂直方向の各ヒストグラムから所定の閾値より高くなる座標値を水平方向及び垂直方向の罫線候補とし、そして、領域の外接矩形を構成している周囲の線を罫線候補とし、水平方向及び垂直方向の2つの方向から得られる罫線候補の情報からマトリクスを作成して枠領域を算出して、枠と枠の間の罫線が真の罫線であるかどうかを予め定めた判定基準情報により調べ、調べた結果、真の罫線である場合は罫線の種類を判定し、一方真の罫線でない場合は対象となる枠と枠を合成して1つの枠とし、以上の工程を繰り返して表を構成する全ての枠と罫線の情報を得ることが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−048121号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、罫線が含まれている画像を解析する場合にあって、ラベリング技術を用いた場合に比較して、少ない計算機資源の割り当てで、罫線ではないものを罫線として認識してしまう誤りを抑制するようにした画像処理装置及び画像処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項1の発明は、画像内の画素数を計数し、該計数した画素数を閾値と比較して罫線を抽出する罫線抽出手段と、前記罫線抽出手段によって抽出された罫線の太さ及び前記閾値に基づいて、前記罫線抽出手段によって抽出された罫線内の雑音成分を識別する雑音成分識別手段を具備することを特徴とする画像処理装置である。
【0007】
請求項2の発明は、前記雑音成分識別手段は、前記罫線の太さ及び前記閾値に基づいて、雑音成分よりも大きな大きさを有する濾波器を生成し、該濾波器によって雑音成分を識別することを特徴とする請求項1に記載の画像処理装置である。
【0008】
請求項3の発明は、前記罫線抽出手段によって抽出された罫線を実線に変換する実線化手段をさらに具備し、前記雑音成分識別手段は、前記実線化手段によって実線に変換された罫線内の雑音成分を識別することを特徴とする請求項1又は2に記載の画像処理装置である。
【0009】
請求項4の発明は、前記雑音成分識別手段が生成する濾波器は矩形であり、該矩形の辺の長さは、前記罫線抽出手段によって抽出された罫線の太さに基づいて定めることを特徴とする請求項2又は3に記載の画像処理装置である。
【0010】
請求項5の発明は、前記雑音成分識別手段が生成する濾波器は矩形であり、該矩形の辺の長さは、前記閾値に基づいて定めることを特徴とする請求項2から4に記載の画像処理装置である。
【0011】
請求項6の発明は、コンピュータを、画像内の画素数を計数し、該計数した画素数を閾値と比較して罫線を抽出する罫線抽出手段と、前記罫線抽出手段によって抽出された罫線の太さ及び前記閾値に基づいて、前記罫線抽出手段によって抽出された罫線内の雑音成分を識別する雑音成分識別手段として機能させることを特徴とする画像処理プログラムである。
【発明の効果】
【0012】
請求項1の画像処理装置によれば、罫線が含まれている画像を解析する場合にあって、ラベリング技術を用いた場合に比較して、少ない計算機資源の割り当てで、罫線ではないものを罫線として認識してしまう誤りを抑制できる。
【0013】
請求項2の画像処理装置によれば、本構成を有さない場合に比べて、少ない計算機資源の割り当てで、罫線を抽出することができる。
【0014】
請求項3の画像処理装置によれば、罫線として点線、破線等が含まれている画像を解析する場合にあって、本構成を有さない場合に比べて、点線、破線等で構成されている罫線を罫線ではないと識別してしまうことを抑制できる。
【0015】
請求項4の画像処理装置によれば、雑音成分識別手段が生成する濾波器は矩形であり、該矩形の辺の長さは、罫線抽出手段によって抽出された罫線の太さに基づいて定めない場合に比べて、罫線ではないものを罫線として認識してしまう誤りを抑制できる。
【0016】
請求項5の画像処理装置によれば、雑音成分識別手段が生成する濾波器は矩形であり、該矩形の辺の長さは、前記閾値に基づいて定めない場合に比べて、罫線ではないものを罫線として認識してしまう誤りを抑制できる。
【0017】
請求項6の画像処理プログラムによれば、罫線が含まれている画像を解析する場合にあって、ラベリング技術を用いた場合に比較して、少ない計算機資源の割り当てで、罫線ではないものを罫線として認識してしまう誤りを抑制できる。
【図面の簡単な説明】
【0018】
【図1】本実施の形態の構成例についての概念的なモジュール構成図である。
【図2】本実施の形態を具現化する場合の画像処理装置全体の構成例についての概念的なモジュール構成図である。
【図3】本実施の形態による処理例を示すフローチャートである。
【図4】本実施の形態によるノイズ除去の処理例を示すフローチャートである。
【図5】本実施の形態が対象とする表画像の例を示す説明図である。
【図6】本実施の形態によるヒストグラム生成の処理例を示す説明図である。
【図7】文字等も誤って罫線として抽出された処理例を示す説明図である。
【図8】抽出された罫線を実線化する処理例を示す説明図である。
【図9】罫線の太さを抽出する処理例を示す説明図である。
【図10】本実施の形態によって生成されるフィルタの例を示す説明図である。
【図11】本実施の形態による罫線画像の生成処理例を示す説明図である。
【図12】上書きモジュールによって上書きされた表画像の例を示す説明図である。
【図13】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0019】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、コンピュータ・プログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能にほぼ一対一に対応しているが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
【0020】
本実施の形態である画像処理装置は、罫線が含まれている画像を解析するものであって、図1に示すように、罫線抽出モジュール110、実線化モジュール120、ノイズ識別・除去モジュール130、罫線画像生成モジュール160を有している。
【0021】
罫線抽出モジュール110は、実線化モジュール120、ノイズ識別・除去モジュール130と接続されている。対象としている画像内の画素数を計数し、その計数した画素数を閾値と比較して罫線を抽出する。そして、抽出結果を実線化モジュール120、ノイズ識別・除去モジュール130に渡す。例えば、水平方向及び垂直方向に各々射影を取り水平方向及び垂直方向のヒストグラムを作成し、水平方向及び垂直方向の各ヒストグラムから予め定められた閾値より大である位置の座標値を水平方向及び垂直方向の罫線として抽出する。
なお、ここで、抽出する罫線は罫線の候補であり、ノイズ識別・除去モジュール130によって、識別されて除去されるべき雑音成分(罫線ではないにもかかわらず、罫線として抽出されたもの)が含まれている場合がある。
【0022】
また、水平方向、垂直方向とは、画像における水平方向(走査方向)、垂直方向(副走査方向)であってもよいし、罫線にとっての水平方向、垂直方向であってもよい。
また、罫線抽出モジュール110が計数する対象の画素は、黒画素又は白画素のいずれか一方であるが、本実施の形態では、黒画素の数を計数する例を示す。つまり、罫線が黒である表を対象とする。
画素数と比較する閾値は、予め定められた値である。前述のように「予め定められた」とは、罫線を抽出するために閾値と比較する前であれば、いつでもよいが、特に、黒画素数を計数した後に、その計数した黒画素数に応じて閾値を定めるようにしてもよい。例えば、計数した黒画素数のうちの最大値に対して予め定められた割合を掛けて、閾値を定めるようにしてもよい。また、計数した黒画素数で大きいものから順に選択して、予め定められた数まで選択した場合における黒画素数から閾値を定めるようにしてもよい。また、黒画素数でソートし、対象の黒画素数と次の黒画素数が予め定められた数以上の差があったときに、その対象の黒画素数から閾値を定めるようにしてもよい。
【0023】
実線化モジュール120は、罫線抽出モジュール110、ノイズ識別・除去モジュール130と接続されている。罫線抽出モジュール110によって抽出された罫線を実線に変換する。つまり、罫線を構成している点線、破線等を実線に変換するものである。そして、実線化した罫線の画像をノイズ識別・除去モジュール130に渡す。例えば、縦又は横方向に膨張を行い、その後に収縮を行う。また、縦と横をそれぞれ別々に処理してもよい。つまり、縦罫線と判定された画像には、縦方向に膨張を行い、その後に収縮を行う。同様に、横罫線と判定された画像には、横方向に膨張を行い、その後に収縮を行う。これによって、点線、破線等の線に途切れがある罫線を実線化している。
なお、実線化モジュール120はなくてもよい。例えば、点線、破線等の罫線がない場合(罫線が実線だけで構成されている場合)は、実線化モジュール120による処理は不要である。
【0024】
ノイズ識別・除去モジュール130は、罫線抽出モジュール110、実線化モジュール120、罫線画像生成モジュール160と接続されており、フィルタ生成モジュール140、フィルタ処理モジュール150を有している。罫線抽出モジュール110によって抽出された罫線の太さ及び閾値に基づいて、罫線抽出モジュール110によって抽出された罫線内の雑音成分(以下、ノイズともいう)を識別して除去する。そして、処理結果であるノイズを除去した罫線画像を罫線画像生成モジュール160へ渡す。例えば、ノイズ識別・除去モジュール130は、フィルタ生成モジュール140、フィルタ処理モジュール150を制御して、罫線のノイズの識別と除去を行う。より具体的な例として、フィルタ生成モジュール140を制御して、罫線抽出モジュール110が抽出した罫線の太さ及び罫線抽出モジュール110が用いる閾値に基づいて、ノイズよりも大きな大きさを有する濾波器を生成する。そして、フィルタ処理モジュール150を制御して、その濾波器によって罫線からノイズを除去する。なお、濾波器とは、画像処理分野で一般にフィルタと呼ばれているものであり、以下、フィルタという。
【0025】
フィルタ生成モジュール140は、閾値取得モジュール142、罫線幅抽出モジュール144を有している。閾値取得モジュール142、罫線幅抽出モジュール144を制御して、ノイズ除去のためのフィルタを生成する。そして、その生成したフォルタをフィルタ処理モジュール150に渡す。例えば、閾値取得モジュール142から閾値、罫線幅抽出モジュール144から罫線の幅を得て、その閾値より小である値とその幅以上の値を用いてフィルタを生成する。より具体的な例として、罫線からノイズを除去するためのフィルタは矩形であり、その矩形の辺の長さは、罫線抽出モジュール110によって抽出された罫線の太さ以上の長さにしてもよい。また、その矩形の他方の辺の長さは、罫線抽出モジュール110が用いる閾値よりも短い長さにしてもよい。ただし、ノイズよりも短くすることはない。さらに具体的な例として、横罫線内のノイズを除去するためのフィルタとして矩形であり、そのフィルタの縦長は罫線の太さ以上であり、そのフィルタの横幅は閾値よりも短い長さとし、縦罫線内のノイズを除去するためのフィルタとして矩形であり、そのフィルタの縦長は閾値よりも短い長さであり、そのフィルタの横幅は罫線の太さ以上としてもよい。
【0026】
閾値取得モジュール142は、罫線抽出モジュール110から、その罫線抽出モジュール110が罫線を抽出するために用いた閾値を取得する。
罫線幅抽出モジュール144は、罫線抽出モジュール110が抽出した罫線の幅(縦罫線の場合は水平方向に計測した横幅、横罫線の場合は垂直方向に計測した縦幅)を抽出する。縦罫線又は横罫線の幅のうちからその幅の大きいものを抽出してもよい。例えば、その幅のうち最大値のものを抽出してもよい。また、縦罫線、横罫線のそれぞれの幅の最大値を抽出してもよい。
【0027】
フィルタ処理モジュール150は、フィルタ生成モジュール140が生成したフィルタを用いて、罫線抽出モジュール110によって抽出された罫線の画像又は実線化モジュール120によって罫線を実線化した画像に対して、罫線内のノイズを識別して除去するフィルタ処理をする。ここでのフィルタ処理とは、その画像内を走査し、フィルタの外枠の位置にある画素が全て白である場合は、そのフィルタ内の画像はノイズであるとして除去するものである。
また、前述のフィルタ処理モジュール150は、フィルタの外枠の位置にある画素が全て白である場合は、そのフィルタ内の画像はノイズであるとして除去しているが、除去するのではなく、ノイズの候補として識別するようにしてもよい。つまり、フィルタ処理モジュール150は、ノイズと決定するのではなくて、あくまでノイズの候補として残しておき、ノイズ候補であることを示すマークだけを行う(印(しるし)付けだけを行う)。そして、他のノイズ識別手法(例えば、単なるパタンマッチングによる短線分検出等)によるノイズ候補の識別結果を得て、両方の結果でノイズ候補と判断された箇所のみを最終的にノイズと決定するようにしてもよい。また、ノイズ識別手法の代わりに、公知の点線破線検出手法を用いて、点線破線として検出しなかったものをノイズ候補とし、両方の結果でノイズ候補と判断された箇所のみを最終的にノイズと決定するようにしてもよい。そして、この決定されたノイズを除去する。より正確なノイズ除去を行う場合に、ここで示した他のノイズ識別手法又は点線破線検出手法を併用する。以下、フィルタの外枠の位置にある画素が全て白である場合は、そのフィルタ内の画像はノイズであるとして除去する手法を用いて説明するが、他の手法を併用するようにしてもよい。
【0028】
罫線画像生成モジュール160は、ノイズ識別・除去モジュール130と接続されている。ノイズ識別・除去モジュール130によって罫線内のノイズを除去した画像を受け取って、罫線の画像を生成する。例えば、罫線抽出モジュール110、実線化モジュール120、ノイズ識別・除去モジュール130は、それぞれ縦罫線だけを扱って縦罫線の画像を生成した後に、横罫線だけを扱って横罫線の画像を生成し、罫線画像生成モジュール160が、その縦罫線の画像と横罫線の画像とを合成して罫線の画像を生成するようにしてもよい。
【0029】
図2は、本実施の形態を具現化する場合の画像処理装置全体の構成例についての概念的なモジュール構成図である。
画像処理装置全体は、画像受付モジュール210、オブジェクト分離モジュール220、表領域抽出モジュール230、表罫線補正モジュール240、上書きモジュール250、文字認識モジュール260、情報構成モジュール270、出力モジュール280を備えている。
【0030】
画像受付モジュール210は、オブジェクト分離モジュール220、上書きモジュール250と接続されている。画像を受け付けて、その画像をオブジェクト分離モジュール220、上書きモジュール250へ渡す。画像を受け付けるとは、例えば、スキャナ、カメラ等で画像を読み込むこと、ファックス等で通信回線を介して外部機器から画像を受信すること、ハードディスク(コンピュータに内蔵されているものの他に、ネットワークを介して接続されているもの等を含む)等に記憶されている画像を読み出すこと等が含まれる。画像は、2値画像、多値画像(カラー画像)であってもよい。なお、多値画像である場合は、2値化処理を行って、2値画像に変換する。受け付ける画像は、1枚であってもよいし、複数枚であってもよい。また、画像の内容として、表が含まれているような画像であれば、ビジネスに用いられる帳票等の文書、広告宣伝用のパンフレット等であってもよい。
また、画像受付モジュール210は、受け付けた画像に対して、ノイズ除去、傾き補正、正規化等の前処理を行うようにしてもよい。
【0031】
オブジェクト分離モジュール220は、画像受付モジュール210、表領域抽出モジュール230、情報構成モジュール270と接続されている。画像受付モジュール210が受け付けた画像を構成するオブジェクト(部分画像)に分離する。オブジェクトには、少なくとも表領域が含まれており、その他に、文字領域、図形領域、写真領域等がある。そして、その分離結果を表領域抽出モジュール230へ渡し、領域の構成情報(各領域の受け付けた画像内における位置等)を情報構成モジュール270へ渡す。
部分画像への分離は、画像から空白等で区切られた領域(部分画像)を抽出することによって行う。この部分画像に分離する処理は、例えば、画像受付モジュール210によって受け付けられた画像から白画素の領域が一定の長さ(あるいは面積)以上あるところによって区切る。そのように区切ると、黒画素の領域(例えば、矩形)を抽出することができる。さらに、その黒画素の領域の画像としての特徴(例えば、面積、縦又は横の大きさ、形状、黒画素塊の存在位置等)を抽出し、文字領域、図形領域、表領域、写真領域等の種別を判別することができる。もちろん他の既存の方法で部分画像を抽出してもよい。
【0032】
表領域抽出モジュール230は、オブジェクト分離モジュール220、表罫線補正モジュール240と接続されている。オブジェクト分離モジュール220から分離結果を受け取り、画像受付モジュール210が受け付けた画像内から表領域の画像を取り出す。そして、その表領域の画像を表罫線補正モジュール240へ渡す。
【0033】
表罫線補正モジュール240は、表領域抽出モジュール230、上書きモジュール250と接続されている。表罫線補正モジュール240は、前述した図1に示したモジュールによって構成されている。つまり、表領域抽出モジュール230から表領域の画像を受け取って、その中の線分から表を構成している罫線を取り出して、ノイズを除去した罫線だけの画像を生成する。そして、その生成した表画像を上書きモジュール250へ渡す。詳細については、図3の例に示すフローチャートを用いて後述する。
【0034】
上書きモジュール250は、画像受付モジュール210、表罫線補正モジュール240、文字認識モジュール260と接続されている。画像受付モジュール210が受け付けた画像に、表罫線補正モジュール240が生成した表画像を上書きする。そして、その表画像が上書きされた画像を文字認識モジュール260へ渡す。例えば、表画像を上書きすることによって、元の画像内の表を実線化した画像ができあがり、以降の処理では、その実線化された表を取り扱うこととなる。
【0035】
文字認識モジュール260は、上書きモジュール250、情報構成モジュール270と接続されている。上書きモジュール250によって表画像が上書きされた画像内の文字認識処理を行う。ここでの、文字認識処理は既存の文字認識処理を用いてもよい。そして、文字認識処理は、表構造の解析等を行うようにしてもよい。例えば、既存の文字認識プログラムをそのまま適用してもよく、その場合、表構造の解析等をするにあたって、点線等の罫線がある場合よりも実線の罫線で構成されている表の方が適している。そして、文字認識結果を情報構成モジュール270へ渡す。
【0036】
情報構成モジュール270は、オブジェクト分離モジュール220、文字認識モジュール260、出力モジュール280と接続されている。文字認識モジュール260から文字認識結果とオブジェクト分離モジュール220から領域の構成情報を受け取り、その画像の解析結果として構成情報を生成する。例えば、構成情報として、その画像内のある位置にどのような文字列があるか、表はどのような構造を有しており、その表内のセルにはどのような文字列があるか等を示す情報がある。そして、その構成情報を出力モジュール280へ渡す。
【0037】
出力モジュール280は、情報構成モジュール270と接続されている。情報構成モジュール270から構成情報を受け取って、ページ情報に変換して出力する。ページ情報として、例えば、XML(eXtensible Markup Language)等のフォーマットがある。また、出力として、例えば、文書データベース等への記憶、翻訳処理装置等の他の情報処理装置への送信があるが、この他に、画像の清書を提示することを目的として、プリンタ等の印刷装置で印刷すること、ディスプレイ等の表示装置に表示すること、ファックス等の画像送信装置で画像を送信すること等を行ってもよい。
【0038】
図3は、本実施の形態による処理例を示すフローチャートである。このフローチャートは、図2の例に示した表罫線補正モジュール240による処理例であり、図1の例に示したモジュールによる処理例である。
【0039】
ステップS300では、表罫線補正モジュール240が、表領域抽出モジュール230から表領域の画像を受け取る。その受け取った同じ画像に対して、ステップS310からの縦罫線(垂直方向の罫線)の処理とステップS350からの横罫線(水平方向の罫線)の処理が行われる。
例えば、図5の例に示す表画像500が該当する。表画像500は、横罫線520から526、縦罫線530から538によって構成されている。また、図5の例に示すように、表画像500内の各セルには文字が記載されている。
【0040】
ステップS310では、罫線抽出モジュール110が、ステップS300で受け付けた表領域画像の縦方向の投影分布を生成する。例えば、図6(a)の例に示すヒストグラムは、図5の例に示した表画像500の投影分布であり、横方向の各位置において、縦方向に黒画素数を計数したものである。なお、図6(b)の例には、図5の例に示す表画像500を示している。
【0041】
ステップS312では、罫線抽出モジュール110が、ステップS310で生成した投影分布から縦罫線を抽出する。例えば、図6(a)の例に示すヒストグラムから、閾値TH_V以上になっている箇所が縦罫線が存在している位置(横方向における位置)であるとして、縦罫線を抽出する。図7(b)の例に示す縦罫線が、ステップS312で抽出された縦罫線である。縦罫線730から738までは、表画像500内の縦罫線530から538にそれぞれ対応する。また、誤認識ノイズ740は、横罫線524、横罫線526、縦罫線532、縦罫線536によって囲まれたセル内の文字(ppp内の2番目の文字p)が、罫線の候補として抽出されてしまったものである。つまり、投影分布から閾値TH_V以上になっている箇所にある部分を縦罫線として抽出しているために発生するものである。
【0042】
ステップS314では、実線化モジュール120が、ステップS312で抽出した縦罫線を実線に変換する。例えば、縦方向に膨張、収縮処理を行って、点線、破線等を実線化する。例えば、図8(b)に示す例は、図7(b)に示す例を実線化したものである。縦罫線734、736の点線の罫線を実線に変換している。
ステップS316では、ノイズ識別・除去モジュール130が、実線化された縦罫線からノイズを除去する。詳細な処理については、図4の例に示すフローチャートを用いて後述する。
【0043】
ステップS350では、罫線抽出モジュール110が、ステップS300で受け付けた表領域画像の横方向の投影分布を生成する。例えば、図6(c)の例に示すヒストグラムは、図5の例に示した表画像500の投影分布であり、縦方向の各位置において、横方向に黒画素数を計数したものである。
【0044】
ステップS352では、罫線抽出モジュール110が、ステップS310で生成した投影分布から横罫線を抽出する。例えば、図6(c)の例に示すヒストグラムから、閾値TH_H以上になっている箇所が横罫線が存在している位置(縦方向における位置)であるとして、横罫線を抽出する。図7(a)の例に示す横罫線が、ステップS352で抽出された横罫線である。横罫線720から726までは、表画像500内の横罫線520から526にそれぞれ対応する。また、誤認識ノイズ728は、横罫線522、横罫線526、縦罫線536、縦罫線538によって囲まれたセル内の文字(文字列zz)が、罫線の候補として抽出されてしまったものである。つまり、投影分布から閾値TH_H以上になっている箇所にある部分を横罫線として抽出しているために発生するものである。
【0045】
ステップS354では、実線化モジュール120が、ステップS352で抽出した横罫線を実線に変換する。例えば、横方向に膨張、収縮処理を行って、点線、破線等を実線化する。例えば、図8(a)に示す例は、図7(a)に示す例を実線化したものである。なお、横罫線は全て実線であるので、ステップS354の処理によっても変化はない。
ステップS356では、ノイズ識別・除去モジュール130が、実線化された横罫線からノイズを除去する。詳細な処理については、図4の例に示すフローチャートを用いて後述する。
【0046】
ステップS380では、罫線画像生成モジュール160が、ステップS316、ステップS356でノイズが除去された罫線画像を合成する。例えば、図11は、ノイズが除去された縦罫線830から838と横罫線820から826とをOR(論理和)合成して、縦罫線830から838と横罫線820から826によって構成されている表画像1100を生成した例を示している。
ステップS382では、罫線画像生成モジュール160が、ステップS380で生成した罫線画像を上書きモジュール250に出力する。
そして、上書きモジュール250は、画像受付モジュール210が受け付けた元の画像に表罫線補正モジュール240から受け取った罫線画像(点線、破線等の罫線が実線化され、ノイズが除去されたもの)を上書きする。例えば、図5の例に示した表画像500は、図12の例に示すような表画像1200に変換されることになる。つまり、表のセル内の文字はそのままで、罫線は実線化されている。
【0047】
図4は、本実施の形態によるノイズ除去の処理例を示すフローチャートである。つまり、図1の例に示したノイズ識別・除去モジュール130による処理例であり、図3の例に示したステップS316、ステップS356での処理例である。
【0048】
ステップS402では、閾値取得モジュール142が、罫線抽出モジュール110が罫線を抽出するために用いた閾値を取得する。例えば、前述の例では、横罫線を抽出するために用いた閾値TH_H、縦罫線を抽出するために用いた閾値TH_Vを取得する。
ステップS404では、罫線幅抽出モジュール144が、罫線抽出モジュール110が抽出した罫線の幅を抽出する。例えば、図9の例に示すように、図9(a)に示す横罫線820から826と誤認識ノイズ828(図8(b)に示した例と同じものである)は、横方向に黒画素数を計数した数が閾値TH_H以上になっている箇所のそれぞれの画素幅(a画素幅920からd画素幅926まで)を抽出する。より具体的には、閾値TH_H以上になっている頻度分布(黒画素数)の連続している回数を計数して線幅を抽出する。なお、a画素幅920は横罫線820、b画素幅922は横罫線822、c画素幅924は横罫線824と誤認識ノイズ828、d画素幅926は横罫線826のそれぞれの線幅である。例えば、この中で、線幅が最も幅の広いものをフィルタを生成するための罫線幅として抽出してもよい。
【0049】
ステップS406では、フィルタ生成モジュール140が、ステップS402で取得した閾値とステップS404で抽出した罫線幅とを用いてフィルタを生成する。例えば、フィルタは、図10の例に示すような形状である。つまり、横幅M画素、縦長N画素の矩形である。
例えば、横罫線内のノイズを除去するためのフィルタの横幅M、縦長Nは次に示す数式(1)、(2)によって定めてもよい。
M=閾値×α (1)
N=罫線幅×β (2)
なお、α、βはフィルタサイズを調整するためのパラメータである。横罫線内のノイズを除去するためのフィルタの場合、α<1、β≧1である。つまり、横幅Mは横罫線を抽出するための閾値よりも小であり、縦長Nは罫線幅以上である。これは、ノイズは1つのセルに収まる大きさであり、その線幅は抽出された罫線幅を超えることはないことから、横罫線と認められる長さの最短の長さ(つまり閾値)よりも短い横幅Mの辺と、罫線幅よりも長い縦長Nの辺とで構成されるフィルタを生成するためである。ただし、αは、ノイズとして除去したいものの線長以上になるように定める。
【0050】
例えば、縦罫線内のノイズを除去するためのフィルタの横幅M、縦長Nは次に示す数式(3)、(4)によって定めてもよい。
M=罫線幅×β (3)
N=閾値×α (4)
なお、α、βはフィルタサイズを調整するためのパラメータである。縦罫線内のノイズを除去するためのフィルタの場合、α<1、β≧1である。つまり、横幅Mは罫線幅以上であり、縦長Nは縦罫線を抽出するための閾値よりも小である。これは、ノイズは1つのセルに収まる大きさであり、その線幅は抽出された罫線幅を超えることはないことから、罫線幅よりも長い横幅Mの辺と、縦罫線と認められる長さの最短の長さ(つまり閾値)よりも短い縦長Nの辺とで構成されるフィルタを生成するためである。ただし、αは、ノイズとして除去したいものの線長以上になるように定める。
【0051】
ステップS408では、フィルタ処理モジュール150が、ステップS406で生成されたフィルタを用いて、実線化されたそれぞれの罫線画像(横罫線の画像と縦罫線の画像)からノイズを除去する。例えば、フィルタを罫線画像上で走査して、フィルタ内であり外周に沿った枠(図10の例では、2つの点線の矩形に囲まれた領域)内が全て白である場合には、その枠内の画像を白に変換する処理を行う。なお、枠は1画素幅であってもよいし、複数画素の幅であってもよい。また、枠内の画像の判断をすることなく、白に変換するようにしてもよい。つまり、枠内の画像が全て白であったとしても、白に変換する。また、枠内に黒画素がある場合にそれを白に変換するようにしてもよい。
【0052】
図13を参照して、本実施の形態の画像処理装置のハードウェア構成例について説明する。図13に示す構成は、例えばパーソナルコンピュータ(PC)などによって構成されるものであり、スキャナ等のデータ読み取り部1317と、プリンタなどのデータ出力部1318を備えたハードウェア構成例を示している。
【0053】
CPU(Central Processing Unit)1301は、前述の実施の形態において説明した各種のモジュール、すなわち、罫線抽出モジュール110、実線化モジュール120、ノイズ識別・除去モジュール130、罫線画像生成モジュール160等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【0054】
ROM(Read Only Memory)1302は、CPU1301が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)1303は、CPU1301の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバスなどから構成されるホストバス1304により相互に接続されている。
【0055】
ホストバス1304は、ブリッジ1305を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス1306に接続されている。
【0056】
キーボード1308、マウス等のポインティングデバイス1309は、操作者により操作される入力デバイスである。ディスプレイ1310は、液晶表示装置又はCRT(Cathode Ray Tube)などがあり、各種情報をテキストやイメージ情報として表示する。
【0057】
HDD(Hard Disk Drive)1311は、ハードディスクを内蔵し、ハードディスクを駆動し、CPU1301によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、受け付けられた画像や黒画素の計数結果などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【0058】
ドライブ1312は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体1313に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース1307、外部バス1306、ブリッジ1305、及びホストバス1304を介して接続されているRAM1303に供給する。リムーバブル記録媒体1313も、ハードディスクと同様のデータ記録領域として利用可能である。
【0059】
接続ポート1314は、外部接続機器1315を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート1314は、インタフェース1307、及び外部バス1306、ブリッジ1305、ホストバス1304等を介してCPU1301等に接続されている。通信部1316は、ネットワークに接続され、外部とのデータ通信処理を実行する。データ読み取り部1317は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部1318は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【0060】
なお、図13に示す画像処理装置のハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図13に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図13に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
【0061】
前記実施の形態においては、罫線が途中で途切れる例として点線、破線を示したが、一点鎖線、二点鎖線等を用いた罫線であってもよい。
また、図3の例に示したフローチャートでは、ステップS300からステップS310とステップS350の処理に分かれたが、ステップS310からステップS316までの処理を行った後に、受け付けられた画像を90度回転して、再度ステップS310からステップS316までの処理を行うようにしてもよい。
また、前記実施の形態の説明において、「以上」、「以下」、「より大きい」、「より小さい(未満)」としたものは、その組み合わせに矛盾が生じない限り、それぞれ「より大きい」、「より小さい(未満)」、「以上」、「以下」としてもよい。
【0062】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(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)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【0063】
110…罫線抽出モジュール
120…実線化モジュール
130…ノイズ識別・除去モジュール
140…フィルタ生成モジュール
142…閾値取得モジュール
144…罫線幅抽出モジュール
150…フィルタ処理モジュール
160…罫線画像生成モジュール
210…画像受付モジュール
220…オブジェクト分離モジュール
230…表領域抽出モジュール
240…表罫線補正モジュール
250…上書きモジュール
260…文字認識モジュール
270…情報構成モジュール
280…出力モジュール

【特許請求の範囲】
【請求項1】
画像内の画素数を計数し、該計数した画素数を閾値と比較して罫線を抽出する罫線抽出手段と、
前記罫線抽出手段によって抽出された罫線の太さ及び前記閾値に基づいて、前記罫線抽出手段によって抽出された罫線内の雑音成分を識別する雑音成分識別手段
を具備することを特徴とする画像処理装置。
【請求項2】
前記雑音成分識別手段は、前記罫線の太さ及び前記閾値に基づいて、雑音成分よりも大きな大きさを有する濾波器を生成し、該濾波器によって雑音成分を識別する
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記罫線抽出手段によって抽出された罫線を実線に変換する実線化手段
をさらに具備し、
前記雑音成分識別手段は、前記実線化手段によって実線に変換された罫線内の雑音成分を識別する
ことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記雑音成分識別手段が生成する濾波器は矩形であり、該矩形の辺の長さは、前記罫線抽出手段によって抽出された罫線の太さに基づいて定める
ことを特徴とする請求項2又は3に記載の画像処理装置。
【請求項5】
前記雑音成分識別手段が生成する濾波器は矩形であり、該矩形の辺の長さは、前記閾値に基づいて定める
ことを特徴とする請求項2から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


【公開番号】特開2010−182052(P2010−182052A)
【公開日】平成22年8月19日(2010.8.19)
【国際特許分類】
【出願番号】特願2009−24443(P2009−24443)
【出願日】平成21年2月5日(2009.2.5)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】