(58)【調査した分野】(Int.Cl.,DB名)
前記判別手段は、前記線抽出手段の前回の処理による線の開始点又は末尾点と該線抽出手段の今回の処理による線の末尾点又は開始点とを比較することによって、前記反転手段による処理を行わせるか否かを判別する
ことを特徴とする請求項1に記載の画像処理装置。
【発明を実施するための形態】
【0022】
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
図1は、第1の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
【0023】
第1の実施の形態である画像処理装置は、対象とする画像から線であるパタン(画像)を抽出するものであって、
図1の例に示すように、線抽出モジュール110、往復判別モジュール120、反転処理モジュール130を有している。
【0024】
まず、第1の実施の形態の対象とする画像106について説明する。
図2は、対象とする画像の例を示す説明図である。この画像内には、線である画像(パタン)と線でない画像がある。
図3は、
図2に例示した画像をスキャナ等で読み取った画像(画素データ)の例を示す説明図である。このとき、スキャナ等での読み取りノイズ、点線、破線、線でないパタン等の影響により、抽出しようとする線は、対象としている画像において、必ずしも、直線とみなせる1つの領域として現れない。具体的には、線に対して、つぶれ、欠け等が発生する。
【0025】
図4は、線抽出の例を示す説明図である。
線を、線の方向と交差する方向(例えば、直交)に連なる画素ランに対応する領域の集合と捉える。以下では、この領域を線要素とよぶ。
第1の実施の形態は、
図4の例に示すように、抽出しようとする線に対応する画素ラン(すなわち、観測された線要素)を検出し、統合するものである。画素ランを統合した結果が線の画像となる。
また、これら画素ランに基づいて、真の線要素(すなわち、修正された線要素)を生成してもよい。例えば、
図4では、点線で示した観測線要素411〜428は画像内の観測された線要素であり、灰色の矩形で示した修正線要素451〜468は観測線要素411等に基づいて修正された線要素である。例えば、観測線要素411と修正線要素451は同じであるが、観測線要素412は下に移動して修正線要素452となり、観測線要素414は上に移動して修正線要素454となり、観測線要素422と観測線要素425の間に観測された線要素はないが、修正線要素463と修正線要素464を追加している。
【0026】
画像106には、線として抽出すべき画像であるが、その線には、曲り、欠け、つぶれ、線どうしの交差等が発生し得る。さらに、曲り、欠け等の位置は必ずしも既知でない。なお、点線、破線は欠けに含まれるとする。
図5は、ノイズがある線画像から線を抽出した例を示す説明図である。
図5(a)の例に示す線には交差がある。
いま、対象とする画像106として
図5(a)の例に示す線から、
図5(b)の例に示す線を抽出しようとする。
前述の特許文献1、特許文献2、非特許文献1に記載の技術を用いて
図5(a)の例から線を抽出するとき、開始点探索走査510の最初の黒画素を開始線要素520とした場合、線抽出の始点を誤って与えることとなってしまう。そして、
図5(c)の例に示すように、線抽出方向530に線追跡を行って線を抽出することになるので、
図5(d)の例に示すように、誤った線を抽出することになる。
【0027】
本実施の形態による処理の概要を説明する。
図6は、本実施の形態による往復処理の例を示す説明図である。
図6(a)の例に示す線は、
図5(a)の例に示した線と同じものであり、交差がある線である。線追跡の始点を開始点探索走査610A、610B、610Cと順に探索し、最初に発見した黒画素を始点とする。これは前述の方法と同じである。したがって、誤った始点(開始線要素620)から線追跡を行うことになる。したがって、
図6(b)の例に示すように、線抽出方向630に線追跡を行うので、いったんは誤った線抽出を行うことになる。ここで、
図6(b)における、抽出された線の終点(末尾線要素640)を始点として、再度線抽出を行う。すなわち、往復する。具体的には、
図6(b)の例に示す末尾線要素640を
図6(c)の例に示す開始線要素650とし、そこから線抽出方向660に線追跡を行う。なお、線追跡の処理において、交差が発生している場合は、それまでに追跡してきた線の方向に基づいて、その方向の線を選択して追跡を行うようにする。すると、この2回目の線抽出によって、
図6(c)の例に示すように、より直線である方向へ追跡が進むことから、分岐点670において誤りが修正されることになる。よって、正しい線抽出が行われ、結果として、
図6(d)の例に示すような正しい線が抽出されることになる。
【0028】
図7は、本実施の形態による往復処理の例を示す説明図である。
線抽出の始点の探索が
図6の例とは異なる。つまり、
図7(a)の例に示すように開始点探索走査710A、710B、710C、710Dの間隔が広い(走査が粗い、具体的には走査の間隔を予め定められた値とする)ため、線抽出の始点が開始線要素720となり、線の端点ではない。この点から線抽出方向730に線追跡を行うことになるため、
図7(b)の例に示すように、いったんは誤った線抽出を行うことになる。ここで、往復する。具体的には、
図7(b)の例に示す末尾線要素740を
図7(c)の例に示す開始線要素750とし、そこから線抽出方向760に線追跡を行う。すると、正しい線抽出が行われ、結果として
図7(d)の例に示すような正しい線が抽出されることになる。すなわち、
図7(a)の例に示すように、線抽出の始点の探索の精度が粗くなったとしても線抽出が行われる。なお、処理全体の高速化を図る場合に、このような処理(始点探索の間隔を予め定められた間隔以上にあけて行う処理)を行ってもよい。線抽出の始点の探索の高速化が図れるためである。また、線抽出の距離が長くなる(すなわち、線要素の個数が多くなる)ため、追跡が進むにつれ直進性が高まり、その直進性を利用して、前述したような交差に対応した線抽出を行い得るようになる。
【0029】
図8は、本実施の形態による往復処理の例を示す説明図である。
図8(a)の例に示す線は、2つの交差があり、欠けがある線である。
図8(a)の例に示すように、開始点探索走査810A、810B、810Cと開始点の探索を行って、誤った始点(開始線要素820)から線抽出を行う。この場合、始点が誤っており、
図8(b)の例に示すように線抽出方向830に線追跡を行う。また、欠けが発生している分岐点(欠け)840において、誤った方向へ線抽出を進め、末尾線要素850まで追跡している。これは、この時点の線抽出の直進性が、分岐点(欠け)840の欠けを直進するに足りないため発生した誤りである。ここで、往復する。具体的には、
図8(b)の例に示す末尾線要素850を
図8(c)の例に示す開始線要素860とし、そこから線抽出方向870に線追跡を行う。すると、
図8(c)の例に示すように、より直線である方向へ追跡が進むことから、分岐点880において誤りが修正される。ただし、分岐点(欠け)840の誤りが残るため、誤った線抽出を行っていることになる。ここで、
図8(d)の例に示すように、線抽出方向895へさらに往復を行う。すると、この時点の線抽出の直進性が、分岐点(欠け)840の欠けを直進するに足る場合(つまり、
図8(c)の例に示すように、分岐点880で直線方向に進み開始線要素890に到達することによって、分岐点880から開始線要素890までの分だけ直進性が増加していることになり、その直進性の値が分岐点(欠け)840の欠け部分を修正するだけの値以上である場合)、分岐点(欠け)840の誤りが修正されることとなる。すると、
図8(d)の例に示すような線抽出が行われ、
図8(e)の例に示すような線が抽出される。なお、ここで、直進性とは、追跡している直線部分の距離をいい、その距離が予め定められた値以上であれば、欠け部分があった場合は直進してその欠け部分を埋め、交差部分があった場合はその直線を延長する方向の線を選択する。また、直進性とは、追跡している線における直線部分の距離の割合としてもよく、その割合が予め定められた値以上であれば、欠け部分があった場合は直進してその欠け部分を埋め、交差部分があった場合はその直線を延長する方向の線を選択するようにしてもよい。
【0030】
次に、線要素について説明する。
図9は、受け付けた画像の例を示す説明図である。受け付けた画像900は、背景画素910、パタン画素920に分かれ、パタン画素920は画素ラン930等によって構成されている。この画像900から水平な線を抽出する例を示す。
図10は、受け付けた画像から抽出した線要素の例を示す説明図である。パタン画素920は、線要素1040等の集合によって構成されている。ここで、線要素とは、線を構成し得る矩形の画素塊、又は前述の画素ランに対応する領域である。「線要素を示す情報」としては、例えば、線要素を描画するための情報があり、具体的には、その線要素を描画する位置、その線要素の大きさである。
【0031】
図11は、線要素1110の例を示す説明図である。ここでの線要素は、線の方向(
図11では進行方向)と交差する方向(
図11では位置方向)に連なる画素ランに対応する領域の1つである。
ある線が、複数の線要素で構成されているとき、例えば、k番目の線要素は以下の情報を持つ。
s
k : 線要素のサイズ
P
k : 線要素の位置
s
kは、線要素の形状に関する情報であり、線の方向と交差(例えば、直交)する方向の長さである、つまり、線の太さに対応する情報である。
P
kは、位置に関する情報であり、水平方向の線であれば、画像上のy方向の位置に対応する情報である。必要によって、画像上のx方向の位置を含めるようにしてもよい。
追跡方向とは、水平方向の線であれば、x方向であり、正負のうちのいずれかで表せる。このとき、メモリ効率の改善を図るために、追跡方向と線要素のインデックス(k)を同じものとして処理してもよい。つまり、追跡方向に線要素のインデックスの順番が昇順に並んでいる場合は、インデックスの順番が増加する方向に進めば追跡方向に進むことになり、インデックスの順番が減少する方向に進めば追跡方向とは逆の方向に進むことになる。追跡方向に線要素のインデックスの順番が降順に並んでいる場合は、インデックスの順番が減少する方向に進めば追跡方向に進むことになり、インデックスの順番が増加する方向に進めば追跡方向とは逆の方向に進むことになる。
【0032】
図11の例にも示すように、実際に画像から観測される線要素は、1画素が最小単位となる。しかし、線要素の持つ情報の最小単位は、必ずしも1画素ではなく、1画素以下の単位であってもよい。例えば、得られた線要素に基づいて、1画素以下の単位で、真の線要素を求めるようにしてもよい。又は、途切れ部分の線要素を補完するといった、修正の処理を含む線抽出のように、観測された線要素がない状態から線要素を生成することをしてもよい。
図10の例では、左から10個目の線要素と11個目の線要素の間には、欠けが生じているが、これを埋めて修正することを行ってもよい。
【0033】
なお、線要素は、
図12の例に示すように、複数画素にまたがるものであってもよい。例えば、観測線要素は1画素であり、修正線要素は複数画素であってもよい。矩形内を斜線で示した観測線要素1211〜1228は画像内の観測された線要素であり、灰色の矩形で示した修正線要素1251〜1259は観測線要素1211等に基づいて修正された線要素である。例えば、観測線要素1211と観測線要素1212の組は上に延長して(この部分の線の太さを太くして)修正線要素1251となり、観測線要素1220と観測線要素1222の間に観測された線要素はないが、修正線要素1256として生成されている。
【0034】
線抽出モジュール110は、往復判別モジュール120、反転処理モジュール130と接続されている。線抽出モジュール110は、線の可能性がある画像106に関する情報であって、線を構成し得る矩形の画素塊である線要素を示す情報の集合を受け付け、その線要素を示す情報と線の追跡方向に基づいて、線の開始点から末尾点まで追跡を行うことによって線を抽出する。
例えば、線抽出モジュール110は、予測、観測との繰り返しにより、逐次、線要素を求め、これらを統合する。まず、始点に対応する線要素を含む線要素の集合と追跡方向である(線要素,追跡方向)108を受け付ける。線要素の集合内には、いずれが始点に対応する線要素であるかが判明するようになっている。例えば、線要素のインデックス(k)が0であるものを始点の線要素としてもよい。そして、その始点から始めて連続している線要素を辿ることによって、線追跡を行い、予測した線要素と観測した線要素が合致すれば統合(観測した線要素を線の一部とすること)し、合致しない場合は修正処理を行って、終点まで追跡したときは、抽出した線として線情報112を往復判別モジュール120に渡す。なお、ここでの合致とは、予測した線要素と観測した線要素の値が完全同一である場合のみならず、その値の差が予め定められた値未満である場合も含む。
【0035】
図13は、線抽出モジュール110が行う予測と観測による線要素の統合処理の例を示す説明図である。線要素のインデックスをkとして、k番目の線要素をe
kとする。そして、始点である線要素e
0とし、線要素の集合{e
0,・・・,e
k−1}と追跡方向を受け付ける。
そして、予測を行う。すなわち,e
kの予測値E
kを算出する。予測は、線要素の集合{e
0,・・・,e
k−1}(又は、その一部であってもよい)と追跡方向に基づいて、予測値E
kを算出する。なお、線要素が追跡方向の情報を保持してもよい。例えば、P
k=p
k−1+σp
k−1等の計算を行い、つづく線要素に対する変化量σp
k−1を用いてもよい。例えば、変化量σp
k−1として、s
kが±α、p
kが+β以下等がある。
次に、観測を行う。すなわち、e
kを抽出する。観測は、予測値E
kに基づいて、画像106からe
kを抽出する。すなわち、予測値E
kとの差異が十分に小さいe
kが観測されたとき、e
kを統合する。ここで差異とは、観測値e
kと予測値E
kの前述のs
kとp
kの値の差異が、予め定められた値未満であることを指す。線抽出は,以上の処理を終点(観測値の予め定められた範囲内に線要素がない場合の線要素)まで繰り返す。また、線抽出の処理として、非特許文献1に記載の技術を利用してもよい。
なお、線抽出モジュール110が受け付ける(線要素,追跡方向)108は、最初の抽出処理の場合は、開始点の探索処理によって抽出された始点における開始線要素と予め定められた追跡方向が少なくともあり、2回目以降の抽出処理(往復処理)の場合は、反転処理モジュール130から受け取った(線要素,追跡方向)108である。
【0036】
往復判別モジュール120は、線抽出モジュール110、反転処理モジュール130と接続されている。往復判別モジュール120は、線抽出モジュール110から線情報112を受け取って、反転処理モジュール130による処理を行わせるか否かを判別する。そして、予め定められた条件を満たす場合(反転処理モジュール130による処理を行わせない場合)は、抽出した線として線情報124を出力する。線情報124出力するとは、例えば、ハードディスク等の記憶媒体に記憶すること、他の画像処理装置へ渡すこと等が含まれる。他の画像処理装置は、例えば、線情報124により表される線を最終的に線として採用するか否かを判別するようにしてもよいし、線情報124を用いて線のみの画像を生成する等の処理を行ってもよいし、
図19、
図20の例を用いて後述する処理を行うようにしてもよい。
【0037】
また、往復判別モジュール120は、線抽出モジュール110又は反転処理モジュール130による処理の回数を計数し、その回数と予め定められた回数とを比較することによって、反転処理モジュール130による処理を行わせるか否かを判別するようにしてもよい。
また、往復判別モジュール120は、線抽出モジュール110の前回の処理による線の開始点又は末尾点と往復判別モジュール120の今回の処理による線の末尾点又は開始点とを比較することによって、反転処理モジュール130による処理を行わせるか否かを判別するようにしてもよい。比較対象の組み合わせは、前回の処理による線の開始点と今回の処理による線の末尾点、前回の処理による線の末尾点と今回の処理による線の開始点となる。そして、いずれか一方の組み合わせの比較をして判別してもよいし、両方の組み合わせの比較を行って判別するようにしてもよい。特に、前回の処理による線の開始点と今回の処理による線の末尾点とを比較することを採用すると、無駄な比較は発生しない。この判別処理のために、もちろんのことながら、前回の処理による線の開始点と末尾点を記憶する。
また、往復判別モジュール120は、線抽出モジュール110によって抽出された線の特徴量に基づいて、反転処理モジュール130による処理を行わせるか否かを判別するようにしてもよい。
なお、これらの判別処理の2つ以上を組み合わせて行ってもよい。
【0038】
往復判別モジュール120の処理について詳述する。
往復判別モジュール120は、線情報112が予め定められた条件を満たすか否かによって、反転処理モジュール130に反転処理を行わせるか否かを判別する。
この判別処理では、往復回数turnを参照する。往復回数turnとは、抽出している線について、過去に往復を行った回数である。具体的には、線抽出モジュール110又は反転処理モジュール130が行った処理の回数である。そして、予め定められた値に満たない場合、反転処理を行う。そのために、変数として往復回数turnを保持する。
【0039】
また、直前に抽出した線との関係を参照してもよい。なお、直前に抽出した線とは、現在抽出している線に、開始線要素を与えた線を指す。ゆえに、往復回数turn=0では、直前に抽出した線はないため、これを参照しない。具体的には、直前に抽出した線の始点である線要素の位置p
0preと、現在抽出している線の終点である線要素の位置p
N−1との距離が、予め定められた値以上であれば、反転処理を行う。このように端点の合致による往復判別の概要を
図14の例に示す。
図14(a)の例に示すように、開始点探索走査1410A、1410B、1410Cによって抽出された開始線要素P
01415から線抽出方向1420へ線追跡する。なお、このとき往復回数は0である。そして、
図14(b)の例に示すように、線抽出方向1420の末尾点である開始線要素P
01430を開始点として、線抽出方向1435へ線追跡し、末尾線要素P
N1−11440まで辿る。ここで、前回の開始線要素P
01415と今回の末尾線要素P
N1−11440の距離は予め定められた値以上であるので、反転処理を行う。なお、このとき往復回数は1である。次に、
図14(c)の例に示すように、
図14(b)の例における末尾線要素P
N1−11440を開始線要素P
01450として、前回開始線要素P
0pre1445へ線追跡し、末尾線要素P
N2−11460まで辿る。ここで、前回の開始線要素P
01430と今回の前回末尾線要素P
0pre1465の距離は予め定められた値以上であるので、反転処理を行う。なお、このとき往復回数は2である。次に、
図14(d)の例に示すように、
図14(c)の例における末尾線要素P
N2−11460を開始線要素P
01470として、線抽出方向1480へ線追跡し、末尾線要素P
N3−11485まで辿る。なお、このとき往復回数は3である。ここで、前回の開始線要素P
01450(前回開始線要素P
0pre1490)と今回の末尾線要素P
N3−11485の距離は予め定められた値未満であるので、反転処理は行わずに開始線要素P
01470から末尾線要素P
N3−11485までの線を線情報124として出力する。このように、始点と終点の一対一対応を検出することで、往復回数の閾値θ
turnによらずに、線抽出を行うことになる。この処理は、p
0preを保持する。ただし、N
nは、n回の往復による線抽出で得られた線要素の個数である。
【0040】
また、線の特徴量を参照してもよい。具体的には、線の長さ、太さ、線の傾き等がある。これら線の特徴量が予め定められた条件を満たさない場合、往復処理を行わず、線を出力する。特徴量の観点から、適切でない線を抽出した場合(予め定められた特徴量を満たす線でない場合)、往復処理を中断することで、誤った線抽出を回避するようにしてもよい。線の特徴量は、線抽出モジュール110又は往復判別モジュール120が算出すればよい。
【0041】
反転処理モジュール130は、往復判別モジュール120、線抽出モジュール110と接続されている。反転処理モジュール130は、線抽出モジュール110によって抽出された線の末尾点を開始点とし、前回の線抽出モジュール110が線を抽出するときに用いた線の追跡方向を反転させ、線抽出モジュール110へその開始点と線の追跡方向を渡す。反転処理モジュール130が渡す線の追跡方向は、もちろんのことながら、前回の線抽出モジュール110が線を抽出するときに用いた線の方向を反転させた方向である。つまり、次回の線抽出モジュール110が線を抽出するときは、前回の線を抽出するときの追跡方向とは逆の方向へ追跡することになり、線を往復することになる。ただし、ここでの往復とは、前回の開始点の方向へ追跡することにはなるが、その結果、必ずしも前回の開始点が末尾点になるとは限らないことは前述した通りである。
【0042】
反転処理モジュール130の処理について詳述する。
反転処理モジュール130は、今回の線抽出モジュール110の処理で抽出した線の終点である線要素を、次の線抽出モジュール110の処理の開始のための線要素として、線抽出モジュール110へ出力する。また、追跡方向を反転し、次の線抽出モジュール110での線抽出の追跡方向として、線抽出モジュール110へ出力する。
線がN個の線要素である集合{e
0,・・・,e
N−1}とする。この線に反転処理を行うとする。
反転処理は、線の終点である線要素e
N−1に基づいて、次の線抽出の開始のための線要素e’
0を出力する。
この具体例を
図15に示す。
図15の例は、左から右へ線要素1511、1512、1513、1514、1515(e
N−1)と追跡(追跡方向:d)し、反転処理を行った結果、線要素1515を始点(e’
0)として追跡方向を表す値dの正負が反転している。
【0043】
開始のための線要素の出力について、線要素の持つ情報に、つづく線要素への変化量がある場合、この値も反転する。この変化量とは追跡方向に該当する。
図15の例は全体の追跡方向であるが、個々の線要素に次の線要素への追跡方向を付加したものである。
具体的には、変化量が微分値であれば、値の正負を反転すればよい。また、変化量が角度であれば、π[rad]を加減算すればよい。これらの具体例を
図16、
図17に示す。
図16の例において、変化量δP
N−21621、変化量δP
N−11622、変化量δP’
01623はつづく線要素への変化量を表す。変化量δP’
01623に変化量δP
N−11622の正負を反転した−δP
N−1を設定することが、追跡方向の反転に対応する。また、
図17の例において、角度ω
N−21721、角度ω
N−11722、角度ω’
01723はつづく線要素への角度を表す。角度ω’
01723に角度ω
N−11722にπ[rad]を加算したもの(ω
N−1+π)を設定することが、追跡方向の反転に対応する。
また、反転した場合は、より対象の線に適応した線抽出を行うために、線抽出モジュール110の線抽出で参照するパラメータを更新してもよい。
【0044】
図18は、第2の実施の形態の構成例についての概念的なモジュール構成図である。第2の実施の形態である画像処理装置は、開始線要素の探索処理を含み、対象とする画像から線であるパタン(画像)を抽出するものであって、
図18の例に示すように、開始線要素探索モジュール1810、線抽出モジュール110、往復判別モジュール120、反転処理モジュール130を有している。なお、第1の実施の形態と同種の部位には同一符号を付し重複した説明を省略する。
【0045】
開始線要素探索モジュール1810は、線抽出モジュール110と接続されている。開始線要素探索モジュール1810は、画像106に基づいて(線要素,追跡方向)108を線抽出モジュール110へ出力するものである。もし、開始のための線要素が抽出されない場合、無効信号である無効情報1820を出力し、処理を終了する。
図7(a)の例に示したように、間隔を広くした(具体的には走査の間隔を予め定められた値とする)走査であってもよいし、連続する画素毎に走査するようにしてもよい。
また、開始線要素探索モジュール1810は、細線化処理、エッジ抽出処理等を行って、端点を抽出し、その端点を用いて線要素を抽出するようにしてもよい。
なお、線抽出モジュール110は、開始線要素探索モジュール1810、往復判別モジュール120、反転処理モジュール130と接続されており、最初の線追跡処理においては開始線要素探索モジュール1810から受け付けた(線要素,追跡方向)108を用い、2回目以降の線追跡処理において反転処理モジュール130から受け付けた(線要素,追跡方向)108を用いる。
【0046】
図19は、第3の実施の形態の構成例についての概念的なモジュール構成図である。
画像受付モジュール1910、文字列抽出モジュール1920、画像処理モジュール1930、文字認識モジュール1940、出力モジュール1950を有している。
画像受付モジュール1910は、文字列抽出モジュール1920と接続されており、文字列を含む画像を受け付ける。画像内には、下線、取り消し線等が含まれていてもよい。
文字列抽出モジュール1920は、画像受付モジュール1910、画像処理モジュール1930と接続されており、画像受付モジュール1910によって受け付けられた画像から文字列を抽出し、その文字列の方向と画像を画像処理モジュール1930に渡す。文字列の抽出は、既存の技術を用いてもよい。例えば、縦方向、横方向に黒画素のヒストグラムをとり、その分布から縦書き、横書きの方向を抽出してもよい。その文字列の方向を線の方向として、線の可能性がある画像を抽出する。
【0047】
画像処理モジュール1930は、文字列抽出モジュール1920、文字認識モジュール1940と接続されており、前述の第1の実施の形態の画像処理装置、第2の実施の形態の画像処理装置のいずれかが該当する。つまり、文字列抽出モジュール1920から渡された文字列の方向を線の追跡方向として、線を抽出する。
文字認識モジュール1940は、画像処理モジュール1930、出力モジュール1950と接続されており、画像処理モジュール1930によって画像から線として判別された画像を削除して、文字画像だけとなった画像を文字認識する。
出力モジュール1950は、文字認識モジュール1940と接続されており、文字認識モジュール1940による文字認識結果を出力する。
【0048】
図20は、第4の実施の形態の構成例についての概念的なモジュール構成図である。
画像受付モジュール2010、枠線方向指定モジュール2020、画像処理モジュール2030、帳票処理モジュール2040、出力モジュール2050を有している。
画像受付モジュール2010は、枠線方向指定モジュール2020と接続されており、枠線を含む画像を受け付ける。例えば、帳票の画像を受け付ける。
枠線方向指定モジュール2020は、画像受付モジュール2010、画像処理モジュール2030と接続されており、画像受付モジュール2010によって受け付けられた画像から枠線の方向を抽出し、その枠線の方向と画像を画像処理モジュール2030に渡す。例えば、帳票に主に用いられている垂直方向の線、水平方向の線をそれぞれ試すようにしてもよい。具体的には、垂直方向又は水平方向に連なる線のいずれが多いかによって、枠線の方向を抽出してもよい。また、垂直方向及び水平方向に連なる画素の数がいずれも予め定められた値以上である場合は、枠線の方向として垂直方向、水平方向の両方を抽出してもよい。
【0049】
画像処理モジュール2030は、枠線方向指定モジュール2020、帳票処理モジュール2040と接続されており、前述の第1の実施の形態の画像処理装置、第2の実施の形態の画像処理装置のいずれかが該当する。つまり、枠線方向指定モジュール2020によって抽出された枠線の方向を線の追跡方向として、線を抽出する。
帳票処理モジュール2040は、画像処理モジュール2030、出力モジュール2050と接続されており、画像処理モジュール2030によって画像から線として判別された線画像の位置から帳票内の欄を判別して、その欄内にある文字画像を文字認識して、欄と文字認識結果を対応付けるようにしてもよい。
出力モジュール2050は、帳票処理モジュール2040と接続されており、帳票処理モジュール2040による帳票処理結果を出力する。
【0050】
図21を参照して、本実施の形態の画像処理装置のハードウェア構成例について説明する。
図21に示す構成は、例えばパーソナルコンピュータ(PC)などによって構成されるものであり、スキャナ等のデータ読み取り部2117と、プリンタなどのデータ出力部2118を備えたハードウェア構成例を示している。
【0051】
CPU2101は、前述の実施の形態において説明した各種のモジュール、すなわち、線抽出モジュール110、往復判別モジュール120、反転処理モジュール130、開始線要素探索モジュール1810、文字列抽出モジュール1920、画像処理モジュール1930、文字認識モジュール1940、枠線方向指定モジュール2020、画像処理モジュール2030、帳票処理モジュール2040等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【0052】
ROM(Read Only Memory)2102は、CPU2101が使用するプログラムや演算パラメータ等を格納する。RAM2103は、CPU2101の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバスなどから構成されるホストバス2104により相互に接続されている。
【0053】
ホストバス2104は、ブリッジ2105を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス2106に接続されている。
【0054】
キーボード2108、マウス等のポインティングデバイス2109は、操作者により操作される入力デバイスである。ディスプレイ2110は、液晶表示装置又はCRT(Cathode Ray Tube)などがあり、各種情報をテキストやイメージ情報として表示する。
【0055】
HDD(Hard Disk Drive)2111は、ハードディスクを内蔵し、ハードディスクを駆動し、CPU2101によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、受け付けた画像、線要素の情報などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【0056】
ドライブ2112は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体2113に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース2107、外部バス2106、ブリッジ2105、及びホストバス2104を介して接続されているRAM2103に供給する。リムーバブル記録媒体2113も、ハードディスクと同様のデータ記録領域として利用可能である。
【0057】
接続ポート2114は、外部接続機器2115を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート2114は、インタフェース2107、及び外部バス2106、ブリッジ2105、ホストバス2104等を介してCPU2101等に接続されている。通信部2116は、ネットワークに接続され、外部とのデータ通信処理を実行する。データ読み取り部2117は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部2118は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【0058】
なお、
図21に示す画像処理装置のハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、
図21に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに
図21に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
【0059】
なお、前述の各種の実施の形態を組み合わせてもよく(例えば、ある実施の形態内のモジュールを他の実施の形態内に追加する、入れ替えをする等も含む)、また、各モジュールの処理内容として背景技術で説明した技術を採用してもよい。
【0060】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(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)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。