説明

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

【課題】グラフモデルを生成し、開図形と閉図形とを別々に抽出することで、線図形の大きさのばらつき、接触又は交差の制限を緩和して、線図形の抽出をする画像処理装置を提供する。
【解決手段】画像処理装置の抽出手段は、線図形を含む画像内の点に関する特徴及び線分を抽出し、グラフモデル生成手段は、前記抽出手段による結果に基づいて、グラフモデルを生成し、開図形抽出手段は、前記グラフモデル生成手段によって生成されたグラフモデルを解析することによって、端点を有する開図形を抽出し、閉図形抽出手段は、前記グラフモデル生成手段によって生成されたグラフモデルを解析することによって、端点を有しない閉図形を抽出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及び画像処理プログラムに関する。
【背景技術】
【0002】
手書きされた文字を認識しようとする場合、複数の文字やその他図形等との接触があると認識率が低下するため、これらを分離することが求められている。
【0003】
これに関連する技術として、例えば、特許文献1には、文字列画像全体の構造的な情報を用いて、接触文字数、接触の仕方に関係なく文字列を容易に認識することを目的とし、文字列認識処理では、まず、抽出された文字列画像を細線化して骨格線図形を生成し、次に、骨格線図形を複数の単純な部分曲線に分割し、次に、部分曲線を組み合わせて文字列の部分図形を生成し、該部分図形について文字認識を行い、次に、文字に認識された部分図形をノードとし、該ノードを重み付きのリンクで多様に結んでネットワークを構成し、最後に、ネットワークから最適解の経路を選び、そのノードの組合せを出力することが開示されている。
【0004】
例えば、特許文献2には、文字画像から抽出したストロークが接触ストロークであるときの切断候補と切断回数を抑えて処理効率を向上させることを課題とし、文字列画像記憶部から入力した画像から初期ストローク抽出部で初期ストロークを抽出し、接触ストローク判断部で接触したストロークと判定したものだけ切断候補抽出部で切断候補箇所を抽出し、最適候補選択部で切断候補から切断箇所を選択し、ストローク情報更新部で接触ストロークを選択された箇所で切断して新しいストロークを生成し、文字切り出し候補生成部は、新しいストロークと非接触ストロークバッファに記憶されていた接触していないストロークとを組み合わせて文字切り出し候補を生成して出力することが開示されている。
【0005】
また、例えば、特許文献3には、ノイズや線幅の変動の影響を受けず、またストロークが完全に交差している接触箇所があっても高い確率で正解を含む文字切り出し候補を生成でき、しかも候補数の増大を防ぐことができる文字切り出し候補生成装置を提供することを課題とし、文字列画像記憶部は光学的に走査された文字列画像を格納し、線分素抽出部はこの格納された文字列画像から特定の方向成分を持つ部分である線分素をモルフォロジー演算を使用して抽出し、ストローク作成部はこの抽出された線分素をマージして或る程度滑らかにつながる曲線部分であるストロークを作成し、最後に、文字切り出し候補作成部は作成されたストロークを組み合わせて文字切り出し候補を作成することが開示されている。
【特許文献1】特開平06−076114号公報
【特許文献2】特開平11−149521号公報
【特許文献3】特開平09−288715号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ところで、文字画像の高さ又は接触位置を限定して線図形を抽出している場合は、それ以外の線図形の大きさ、接触又は交差がある場合は対処することができない。
本発明は、グラフモデルを生成し、開図形と閉図形とを別々に抽出することで、線図形の大きさのばらつき、接触又は交差の制限を緩和して、線図形の抽出をする画像処理装置及び画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項1記載の発明は、線図形を含む画像内の点に関する特徴及び線分を抽出する抽出手段と、前記抽出手段による結果に基づいて、グラフモデルを生成するグラフモデル生成手段と、前記グラフモデル生成手段によって生成されたグラフモデルを解析することによって、端点を有する開図形を抽出する開図形抽出手段と、前記グラフモデル生成手段によって生成されたグラフモデルを解析することによって、端点を有しない閉図形を抽出する閉図形抽出手段を具備することを特徴とする画像処理装置である。
【0008】
請求項2記載の発明は、前記抽出手段によって抽出された特徴点及び線分に基づいて、前記線分のうち偽線分を識別する偽線分識別手段を具備し、前記グラフモデル生成手段は、前記抽出手段及び前記偽線分識別手段による結果に基づいて、グラフモデルを生成することを特徴とする請求項1に記載の画像処理装置である。
【0009】
請求項3記載の発明は、前記閉図形抽出手段は、前記グラフモデルを解析することによって、閉図形を抽出し、多角形近似を行った後に、閉図形の形状を認識することを特徴とする請求項1に記載の画像処理装置である。
【0010】
請求項4記載の発明は、前記閉図形抽出手段は、抽出した閉図形のうち重複している図形を削除することを特徴とする請求項1又は3に記載の画像処理装置である。
【0011】
請求項5記載の発明は、前記開図形抽出手段によって抽出された開図形及び前記閉図形抽出手段によって抽出された閉図形の合計が、前記画像内に含まれている図形の数と異なるか否かを判断する判断手段と、前記判断手段によって異なると判断された場合は、前記画像内の線分の接触している箇所に応じて、前記グラフモデルを変更し、前記開図形抽出手段又は前記閉図形抽出手段による処理を行わせる再処理手段をさらに具備することを特徴とする請求項1に記載の画像処理装置である。
【0012】
請求項6記載の発明は、前記開図形抽出手段によって抽出された開図形又は前記閉図形抽出手段によって抽出された閉図形の形状が、前記画像内に含まれている図形の形状と異なるか否かを判断する判断手段と、前記判断手段によって異なると判断された場合は、前記画像内の線分の接触している箇所に応じて、前記グラフモデルを変更し、前記開図形抽出手段又は前記閉図形抽出手段による処理を行わせる再処理手段をさらに具備することを特徴とする請求項1に記載の画像処理装置である。
【0013】
請求項7記載の発明は、コンピュータを、線図形を含む画像内の点に関する特徴及び線分を抽出する抽出手段と、前記抽出手段による結果に基づいて、グラフモデルを生成するグラフモデル生成手段と、前記グラフモデル生成手段によって生成されたグラフモデルを解析することによって、端点を有する開図形を抽出する開図形抽出手段と、前記グラフモデル生成手段によって生成されたグラフモデルを解析することによって、端点を有しない閉図形を抽出する閉図形抽出手段として機能させることを特徴とする画像処理プログラムである。
【発明の効果】
【0014】
請求項1の画像処理装置によれば、線図形の大きさのばらつき、接触又は交差の制限を緩和して、線図形の抽出をすることができるようになる。
【0015】
請求項2の画像処理装置によれば、線分の太さによって交差部分に発生しやすい偽線分を識別することができ、より正確な線図形の抽出を行うことができるようになる。
【0016】
請求項3の画像処理装置によれば、形状を認識することによって、より正確な線図形の抽出をすることができるようになる。
【0017】
請求項4の画像処理装置によれば、余分な線図形を抽出することを抑制することができるようになる。
【0018】
請求項5の画像処理装置によれば、予め図形の数が判明している場合は、より正確に線図形を抽出することができるようになる。
【0019】
請求項6の画像処理装置によれば、予め図形の形状が判明している場合は、より正確に線図形を抽出することができるようになる。
【0020】
請求項7の画像処理プログラムによれば、線図形の大きさのばらつき、接触又は交差の制限を緩和して、線図形の抽出をすることができるようになる。
【発明を実施するための最良の形態】
【0021】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、コンピュータ・プログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させること、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能にほぼ一対一に対応しているが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。
【0022】
本実施の形態は、図1に示すように、前処理モジュール11、線追跡抽出モジュール12、形状解析抽出モジュール13、後処理モジュール14を有している。
前処理モジュール11は、線追跡抽出モジュール12と接続されており、対象となる画像を入力し、それに対して前処理を行い、線追跡抽出モジュール12にその画像を渡す。
ここで、対象となる画像は、手書きで記入した複数の線図形を含む画像である。なお、その線図形には、紙文書にペンで手書きされたものの他に、電子ペン等で電子的に記入された線図形を含む画像(軌跡としての位置データ)であってもよい。また、紙文書の画像はスキャナ等の画像入力装置によって入力されたものである。より具体的には、例えば、学生・生徒等に対するテストの判定済みの答案用紙、回答が記入済みのアンケート用紙等に追記された手書きの線図形等の画像が該当する。
前処理としては、ノイズ除去処理と細線化処理等がある。ノイズ除去処理としては、例えば、孤立点の除去、かすれ線の補間、傾き補正等がある。細線化処理は、二値画像を幅1画素の線画像に変換する処理をいい、パターン認識等の前処理として用いられている処理(予め定められたパターンとのマッチングを行い、一致すればそのうちの定められた画素を削除する等)を用いる。
【0023】
線追跡抽出モジュール12は、前処理モジュール11、形状解析抽出モジュール13と接続されており、前処理モジュール11から細線化処理された線図形の画像を受け取り、その中の線分を追跡して抽出することにより、開図形(端点がある図形)の抽出を行う。線追跡抽出モジュール12の処理については、図3等を用いて後述する。
形状解析抽出モジュール13は、線追跡抽出モジュール12、後処理モジュール14と接続されており、線追跡抽出モジュール12によって開図形が抽出された画像を受け取り、残った線図形である閉図形(端点がない図形)の形状を解析する。解析結果を後処理モジュール14へ渡す。形状解析抽出モジュール13の処理については、図10等を用いて後述する。
【0024】
後処理モジュール14は、形状解析抽出モジュール13と接続されており、形状解析抽出モジュール13から解析結果を受け取り、開図形及び閉図形の合計と予めわかっている線図形の数とを比較して、又は解析結果である線図形の形状と予めわかっている線図形の形状とを比較して、異なると判断した場合は、画像内の線分の接触している箇所に応じて、線追跡抽出モジュール12又は形状解析抽出モジュール13で用いるグラフモデルを変更し、線追跡抽出モジュール12又は形状解析抽出モジュール13による処理を再度行わせる制御を行う。なお、予めわかっている線図形の数又は形状とは、例えば、答案用紙、アンケート用紙等は、追記される手書きの記号の数、形状は予め定まっている場合があるので、これを利用するものである。後処理モジュール14の処理については、図13等を用いて後述する。なお、後処理モジュール14による処理は、必ずしも行われなくてもよい。
つまり、本実施の形態は、前処理モジュール11が受け付けた複数の線図形が含まれている画像を対象として、後処理モジュール14は個別の線図形(画像又は形状、位置、数等)を出力することになる。
【0025】
図2は、本実施の形態を含む全体の処理を示す説明図である。
本実施の形態は、例えば、学生・生徒等に対するテストの判定済みの答案用紙の採点、回答が記載済みのアンケート用紙の集計等に用いられるものである。そのために、手書きで追記された線図形を抽出する必要がある。
対象とする画像である受付画像21として、例えば、学生・生徒等に対するテストの判定済みの答案用紙、回答が記入済みのアンケート用紙等が該当する。受付画像21内には、追記された線図形として、例えば、図2に示すように円、三角形、チェック記号の手書き線図形が描画されており、それらは重なっている。
追記抽出モジュール22は、受付画像21から追記された線図形を抽出して追記画像23を生成する。例えば、受付画像21の原画像(つまり、追記されていない画像)との差分をとって追記画像23を生成する。
一筆線分図形分離モジュール24は、図1に示した構成を含んでおり、追記画像23から一筆書きの線図形である一筆線分画像25、26、27を分離する。なお、ここでは、一筆書きの線図形には、一筆書きされた線図形に限られず、これに類する線図形(例えば、「×」のように単純な図形等)も含まれる。また、逆に、たとえ一筆書きで描かれた2つの線図形(例えば円と三角形をつなげた線図形)であったとしても、これを分離した線図形(先の例では、円と三角形)として分離する。
【0026】
図3は、前処理モジュール11、線追跡抽出モジュール12の構成例についての概念的なモジュール構成図である。
前処理モジュール31は前処理モジュール11に該当し、線追跡抽出モジュール12は特徴点・線分抽出モジュール32、偽線分抽出モジュール33、グラフモデル構築モジュール34、ノード解析モジュール35、開図形抽出モジュール36を有している。
前処理モジュール31は、特徴点・線分抽出モジュール32と接続されており、図1を用いて説明した前処理モジュール11と同等のものである。
【0027】
特徴点・線分抽出モジュール32は、前処理モジュール31、偽線分抽出モジュール33と接続されており、前処理モジュール31によって前処理された画像(複数の線図形が含まれている画像)内の点に関する特徴点及び線分を抽出する。
例えば、点に関する特徴点として、周囲3×3の画素又は5×5の画素を取り出して、予め端点・交差点・分岐点として定めた3×3の画素又は5×5の画素のパターンと比較して、一致するパターンを検出した場合に、その画素を端点・交差点・分岐点とする。
そして、残った画素間を追跡して接続し、線分とする。
【0028】
偽線分抽出モジュール33は、特徴点・線分抽出モジュール32、グラフモデル構築モジュール34と接続されており、特徴点・線分抽出モジュール32によって抽出された特徴点及び線分に基づいて、線分のうち偽線分を抽出する。
【0029】
図5を用いて、偽線分抽出モジュール33の処理の例を説明する。
図5(A)は、前処理モジュール31が受け付けた画像であり、三角形と四角形とが交差している画像である。
図5(B)は、前処理モジュール31によって細線化処理を施した画像である。図5(B)に示す対象線分51の部分が、偽線分である。ここで、偽線分とは、線図形の接触又は交差の部分に発生する線分であって、本来は点で交わる部分が、細線化処理によって線分となっている部分のことをいう。
図5(C)は、図5(B)の対象線分51の部分を、図5(A)の対応する部分に重ね合わせて、かつ拡大して表示したものである。つまり、図5(C)内の交差している斜線で表されている幅のある線分(線分の輪郭52で囲まれている部分)は、図5(A)の線分であり、図5(C)内のその中心の線分(細線化線分53、注目線分54等)は、図5(B)の細線化処理した線分である。
【0030】
偽線分抽出モジュール33による処理の例は以下の通りである。
(1)細線化処理前の線分の線幅55の平均を求める。
(2)線幅の平均に対して短い線分を抽出する。図5(C)の例では、注目線分54が抽出される。これは、偽線分は、本来交差点等になるべき箇所に発生するものであるので、線分長が短いことを利用したものである。短い線分であるか否かの判断は、求めた線幅平均に定数を掛けたものとの比較等による。
(3)注目線分54内の各画素と線分の輪郭52との最短距離が大きい場合は、その線分を偽線分として抽出する。これは、偽線分は、線分が太い場所にできる傾向があることを利用したものである。最短距離が大きいか否かの判断は、閾値(予め定めたもの、平均の線幅の1/2等)との比較等による。
(4)さらに、線分の両端が奇数の分岐であり端点でない場合は、条件(閾値との比較等)をより厳しく(偽線分と判定しやすく)して、前記(2)、(3)の処理を行ってもよい。これは、交差点が偽線分となっている場合、偽線分の両端は分岐点となることを利用したものである。
(5)そして、抽出した偽線分の中心を、特徴点・線分抽出モジュール32によって抽出された特徴点として変更する。また、その特徴点で線分が交差するよう、細線化図形を修正する。
【0031】
グラフモデル構築モジュール34は、偽線分抽出モジュール33、ノード解析モジュール35と接続されており、特徴点・線分抽出モジュール32及び偽線分抽出モジュール33による結果に基づいて、グラフモデルを生成する。
なお、偽線分抽出モジュール33による処理を行わずに、グラフモデル構築モジュール34は、特徴点・線分抽出モジュール32による結果に基づいて、グラフモデルを生成するようにしてもよい。
グラフモデル構築モジュール34の処理については、図6〜図9を用いて後述する。
【0032】
ノード解析モジュール35は、グラフモデル構築モジュール34、開図形抽出モジュール36と接続されており、グラフモデル構築モジュール34によって生成されたグラフモデルに基づいて、各図形のノードを解析する。具体的には、図4に示したフローチャートのステップS412〜ステップS422で後述する。
【0033】
開図形抽出モジュール36は、ノード解析モジュール35と接続されており、閉じていない線図形を抽出する。
なお、開図形抽出モジュール36は、ノード解析モジュール35による処理を行わずに、グラフモデル構築モジュール34によって生成されたグラフモデルを解析することによって、開図形を抽出するようにしてもよい。
【0034】
開図形抽出モジュール36による処理の例は以下の通りである。
(1)奇数ノード(そのノードに接続している辺(エッジ)の数が奇数であるノード)を開始点とする。つまり、端点又は分岐点を開始点とする。
(2)細線化処理した画像上で追跡を行う。複数の分岐がある場合は、角度の変化が最も少ない(つまり、線分間によって構成される角が180度に近い)線分を追跡する。
(3)既に追跡を行った画素に到達したら終了する。開始点からこの終了した時点まで追跡した軌跡が開図形であり、これによって開図形を抽出する。
【0035】
図4は、前処理モジュール11と線追跡抽出モジュール12が行う処理例を示すフローチャートである。
ステップS402では、前処理モジュール31が、線図形が含まれている画像を受け付ける。
ステップS404では、前処理モジュール31が、前述したように前処理(ノイズ除去処理、細線化処理)を行う。
ステップS406では、特徴点・線分抽出モジュール32が、前述したように特徴点・線分の抽出処理を行う。
ステップS408では、偽線分抽出モジュール33が、前述したように偽線分を抽出する。
ステップS410では、グラフモデル構築モジュール34が、ステップS406、ステップS408による結果を用いてグラフモデルを生成する。この処理については、図6〜図9を用いて後述する。
【0036】
ステップS412からステップS422までの処理は、ノード解析モジュール35が行う処理である。
ステップS412では、ステップS410で生成したグラフモデルにおいて、各ノードに隣接する(辺によって接続する)ノード数を算出する。
ステップS414では、対象としているノードの隣接ノード数は3以上であるか否かを判断する。つまり、端点や屈曲点でないか否かを判断している。3以上である場合(分岐点や交差点である場合)はステップS418へ進み、3未満である場合(端点や屈曲点である場合)はステップS416へ進む。
ステップS416では、全てのノードを解析したか否かを判断する。全てのノードを解析した場合はS424へ進む。そうでない場合は、次のノードを対象としてステップS414へ戻る。
【0037】
ステップS418では、ノードの数は偶数であるか否かを判断する。偶数である場合はステップS420へ進み、奇数である場合はステップS422へ進む。
ステップS420では、偶数ノードの解析を行う。つまり、対となる辺を発見することになる。次にステップS416へ進む。
ステップS422では、奇数ノードの解析を行う。つまり、対となる辺に加え、対とはならない辺を発見することになる。次にステップS416へ進む。
ステップS424とステップS426の処理は、開図形抽出モジュール36が行う処理である。
ステップS424では、追跡を行っていない奇数ノードが存在するか否かを判断する。存在しない場合は終了(ステップS428)し、存在する場合はステップS426へ進む。
ステップS426では、開図形抽出モジュール36が、前述したように開図形を抽出する。
【0038】
図6〜図9を用いて、グラフモデル構築モジュール34の処理について説明する。
図6(A)は、前処理モジュール31によって細線化処理が施された結果の細線化線図形600を示している。この細線化線図形600は手書きの「4」という文字である。ここで、座標系として、画像の左上を原点(0,0)とし、右にX軸、下にY軸を規定する。
図6(B)は、特徴点・線分抽出モジュール32及び偽線分抽出モジュール33によって抽出された特徴点(図内のa、b、c、d、e)と線分であり、特徴点を頂点(ノード)ともいう。また、このノードをつなぐ線分を辺(エッジ)ともいう。
【0039】
図7は、グラフモデル構築モジュール34とノード解析モジュール35が行う処理例を示すフローチャートである。なお、フローチャートの右側に点線で囲まれたものは、各ステップで出力(又は入力)するデータを示している。例えば、頂点はステップS702によって出力され、ステップS704で用いられるデータである。
ここで、線図形の頂点(特徴点)についてのデータを記憶する頂点情報テーブル80、線図形の辺についてのデータを記憶する辺情報テーブル90について説明する。図7に示すフローチャートは、頂点情報テーブル80、辺情報テーブル90内のセルを埋める処理である。図8は、頂点情報テーブル80のデータ構造を示す説明図である。頂点情報テーブル80は、頂点欄81、X座標欄82、Y座標欄83、接続先の頂点欄84を有している。図9は、辺情報テーブル90のデータ構造を示す説明図である。辺情報テーブル90は、辺欄91、ac欄92〜ec欄95、選択した組となる辺欄96を有しており、頂点cに接続する辺の分析のためのものである。ただし、ac欄92〜ec欄95の数は、頂点cに接続する辺の数となる。
【0040】
ステップS702では、頂点を抽出する。前段のモジュールの結果から、特徴点の座標を頂点情報テーブル80のX座標欄82、Y座標欄83に記憶させる。例えば、頂点aのX座標は10であり、Y座標は100であるので、頂点aに対応するX座標欄82、Y座標欄83に、それぞれ10、100を記憶させる。
【0041】
ステップS704では、接続先を探索する。つまり、各頂点から線分を追跡して他の頂点を探索する。ここでは、ステップS702で抽出した頂点を用いて、そこに接続している線分を追跡して接続先の頂点を探索し、その結果を頂点情報テーブル80の接続先の頂点欄84に記憶させる。例えば、頂点aの接続先として図6(B)の線図形を追跡すると頂点b、cに辿り着くので、頂点aに対応する接続先の頂点欄84に、頂点b、cを記憶させる。
【0042】
ステップS706では、接続先を3つ以上持つ頂点の辺を抽出する。つまり、各頂点の接続先がステップS704で判明したので、これを利用して、辺を決定する。例えば、頂点cの接続先としては、頂点a、b、c、dがあるので、ac、bc、dc、ecの線分を辺として決定する。例えば、辺情報テーブル90のac欄92〜ec欄95(つまり、列の数)を決定することになる。
【0043】
ステップS708では、辺を3以上持つ頂点で辺同士によって構成される角度を求める。例えば、辺acと辺bcのなす角度は100度であるので、辺情報テーブル90の辺bcとacに対応するac欄92とbc欄93に100を記憶させる。
【0044】
ステップS710では、ステップS708で求めた角度を用いて、組となる辺を決定する。ここで組となる辺とは、対象としている辺と接続している辺であって、その辺とのなす角度が180度に近い辺(つまり、辺を追跡する場合に、対象としている辺から次の辺へと追跡すべき辺のことであり、手書きとして最も自然に接続していると考えられる辺のことである)のことである。例えば、辺acとなす角度が180度に最も近いものは、175度の辺dcであるので、これを辺情報テーブル90の辺acに対応する選択した組となる辺欄96に記憶させる。
【0045】
図10は、形状解析抽出モジュール13の構成例についての概念的なモジュール構成図である。
形状解析抽出モジュール13は、グラフモデル構築モジュール101、閉曲線検出モジュール102、図形判断モジュール103、重複図形除去モジュール104を有している。
グラフモデル構築モジュール101は、閉曲線検出モジュール102と接続されており、前述のグラフモデル構築モジュール34と同等のものである。
【0046】
閉曲線検出モジュール102は、グラフモデル構築モジュール101、図形判断モジュール103と接続されており、グラフモデル構築モジュール101によって生成されたグラフモデルを解析することによって、端点を有しない閉図形(閉曲線、複数の線分で閉じた図形を形成しているもの)を検出する。ここでの閉図形の検出は、頂点情報テーブル80を用いて、各点が閉曲線を構成するか否かについて、可能性のあるもの全てを探索して検出する。つまり、グラフの全探索によって、開始点から始めてその開始点に戻ってくる経路を求めることになる。
【0047】
図形判断モジュール103は、閉曲線検出モジュール102、重複図形除去モジュール104と接続されており、閉図形の形状を判断する。つまり、図形判断モジュール103は、閉曲線検出モジュール102によって検出された閉図形に対して、多角形近似を行った後に、閉図形の形状を認識する。なお、多角形近似の処理は、必ずしも行わなくてもよい。図形判断モジュール103の処理については、図11に示すフローチャートのステップS1106〜ステップS1118までの処理で説明する。
【0048】
重複図形除去モジュール104は、図形判断モジュール103と接続されており、図形判断モジュール103が抽出した閉図形のうち重複している図形を削除する。なお、重複図形除去モジュール104による処理は、必ずしも行わなくてもよい。
【0049】
重複図形除去モジュール104の処理について、図12を用いて説明する。
図12(A)は、細線化処理が施された線図形1201である。図12(B)は、図形判断モジュール103によって分離された線図形(円)1202、線図形(三角形(小))1203、線図形(三角形(大))1204である。図12(A)に示す線図形1201は、円と三角形が接触したものであるにもかかわらず、可能性のある閉図形をすべて抽出しているので、このように線図形(三角形(小))1203も抽出することになる。
【0050】
重複図形除去モジュール104による処理の例は以下の通りである。
(1)画素数の多い順に閉図形をソートする。例えば、図12(B)の場合、線図形(三角形(大))1204、線図形(円)1202、線図形(三角形(小))1203となる。
(2)順番に他図形と重複している画素数を調べ、重複した部分の割合が大きければ、その閉図形を削除する。割合が大であるか否かの判断は、閾値(予め定めたもの、その他の閉図形の重複率の平均等)との比較等による。例えば、図12(C)に示すように、線図形(三角形(小))1203は三角形の2辺の部分が線図形(三角形(大))1204と重複しているので、重複している部分(図12(C)の太線部分)が大きい。このとき、重複している図形同士の片方を削除するが、ソート順の低い方(全画素数が少ない方)を選択する。したがって、線図形(三角形(小))1203を削除の対象とする。
【0051】
図11は、形状解析抽出モジュール13が行う処理例を示すフローチャートである。
ステップS1102では、グラフモデル構築モジュール101が、前述のグラフモデル構築モジュール34と同様にグラフモデルを生成する。
ステップS1104では、閉曲線検出モジュール102が、前述したように閉図形を検出する。
【0052】
ステップS1106では、図形判断モジュール103が、曲線を複数の直線で表す処理を行う。例えば、角点を検出してその間を直線で結ぶ方法などを使う。
ステップS1108では、図形判断モジュール103が、閉図形の線分の数が3であるか否かを判断する。3であれば、ステップS1118へ進み、それ以外であればステップS1110へ進む。
ステップS1110では、図形判断モジュール103が、閉図形の線分の数が4であり、かつ全ての角度が90度に近いものであれば、ステップS1118へ進み、それ以外であればステップS1112へ進む。
【0053】
ステップS1112では、図形判断モジュール103が、ジャギー(線図形のギザギザのこと)を除去する。
ステップS1114では、図形判断モジュール103が、ジャギーが除去された図形に対し多角形近似の処理を行う。ステップS1106と同様の処理を行ってもよいし、閾値を変更して処理を行ってもよい。
また、多角形近似の処理として2分割法による処理を行ってもよい。2分割法による処理の例は以下の通りである(「ディジタル画像処理」CG−ARTS協会出版、奥富 正敏著を参照)。
(1)線分列の始点と終点をつないだ線分に対して、各画素から距離を計算する。
(2)最大距離がある閾値(予め定めたもの、距離の平均等)以下である場合、その線分を採用する。そうでない場合は、その画素で画素列を分割し、分割された画素列で前記(1)の処理を再帰的に繰り返す。
(3)画素列の分割がない場合は、処理を終了する。
【0054】
ステップS1116では、図形判断モジュール103が、閉図形の線分の数が6以上であり、かつ角(例えば、100度以下の角)の数が2以下である場合はステップS1118へ進み、それ以外の場合は終了する(ステップS1122)。
ステップS1118では、図形判断モジュール103が、ステップS1108から進んできた場合はその閉図形は三角形であると判断し、ステップS1110から進んできた場合はその閉図形は長方形であると判断し、ステップS1116から進んできた場合はその閉図形は円であると判断する。そして、その閉図形を抽出する。
ステップS1120では、重複図形除去モジュール104が、前述したように重複している閉図形を削除する。
なお、このフローチャートでは、三角形、長方形、円の判断を行っているが、その他の図形の特徴を用いて判断するようにしてもよい。
【0055】
図13は、入力画像に含まれる線図形の形状又は数が既知の場合の処理例を示すフローチャートである。つまり、主に後処理モジュール14の処理について説明する。後処理モジュール14は、ステップS1308〜ステップS1320の処理を行う。
ステップS1302では、前処理モジュール11が、前述したように前処理(ノイズ除去処理、細線化処理)を行う。
ステップS1304では、線追跡抽出モジュール12が、前述したように線追跡抽出処理(開図形の抽出処理)を行う。
ステップS1306では、形状解析抽出モジュール13が、前述したように形状解析抽出処理(閉図形の抽出処理)を行う。
ステップS1308では、ステップS1304及びステップS1306で抽出した図形の数の合計と予め設定されている図形の数との比較を行う。異なっていればステップS1310へ進み、それ以外の場合はステップS1320へ進む。さらに、ステップS1304及びステップS1306で抽出した図形の形状と予め設定されている図形の形状との比較を行う。異なっていればステップS1310へ進み、それ以外の場合はステップS1320へ進む。
【0056】
ステップS1310では、接触ノード候補があるか否かを判断する。ある場合はステップS1312へ進み、ない場合はステップS1318へ進む。接触ノードで処理を誤っている場合が多いので、このような判断を行う。なお、接触ノードか否かは、角度で判断する。つまり、角度が180度に近いものが2つ存在するか否かによって判断する。
ここで、接触ノードについて、図14を用いて説明する。図に示すように2つの円が接触したような図形の場合、4つの線分に分かれ、組となる線分の抽出(図7に示すフローチャートのステップS710)の際に、図に示す交差パス1402が選択される。この2つの線分のなす角度が180度に近いからである。しかし、この図形は本来2つの円が接触しているので、接触パス1401になるように、組となる辺を抽出すべきである。
【0057】
ステップS1312では、ステップS1310で対象となったノードにおいて、再解析を行い、接触が考えられる組(ペア)を探索する。ここで、探索する対象は180度に近い2番目の候補から行うようにする。ステップS1312の処理では、辺情報テーブル90の選択した組となる辺欄96を変更する。
ステップS1314では、ステップS1304、ステップS1306の処理(つまり、線追跡抽出モジュール12、形状解析抽出モジュール13の処理)を再度実行する。
ステップS1316では、ステップS1308の処理を行う。つまり、再実行の結果が正しかったか否かの判断を行う。未だ異なっている場合はステップS1318へ進み、一致する場合はステップS1320へ進む。
ステップS1318では、接触ノードがなかった場合、又は再度実行した場合にあっても、予め設定されている図形の数又は形状が異なった場合であるので、処理ができなかった旨のエラー報告を行う。
ステップS1320では、その他の後処理を行う。例えば、線分幅を回復すること、欠損部分を補間すること、本実施の形態による処理結果を他の装置で使用させるためのデータの加工等である。
【0058】
図15は、入力画像に含まれる線図形の数が既知の場合の処理例を示すフローチャートである。図13に示したフローチャートでは、数及び形状を予め設定した値と比較していたが(ステップS1308,S1316)、図15では、線図形の数だけを比較の対象としている場合である。つまり、ステップS1508,S1516はそれぞれステップS1308,S1316と異なり、線図形の数だけを比較の対象としている。その他の各ステップの処理は、図13に示したフローチャートにおける各ステップと同様である。
【0059】
図16は、後処理モジュール14による処理を行わなかった場合の処理例を示すフローチャートである。つまり、図13に示したフローチャートにおけるステップS1308以降を行わない場合である。ステップS1602〜ステップS1606の処理は、ステップS1302〜ステップS1306の処理と同様である。
【0060】
図17を参照して、本実施の形態のハードウェア構成例について説明する。図17に示す構成は、例えばパーソナルコンピュータ(PC)などによって構成されるものであり、スキャナ等のデータ読み取り部1717と、プリンタなどのデータ出力部1718を備えたハードウェア構成例を示している。
【0061】
CPU(Central Processing Unit)1701は、前述の実施の形態において説明した各種のモジュール、すなわち、前処理モジュール11、線追跡抽出モジュール12、形状解析抽出モジュール13、後処理モジュール14等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【0062】
ROM(Read Only Memory)1702は、CPU1701が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)1703は、CPU1701の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバスなどから構成されるホストバス1704により相互に接続されている。
【0063】
ホストバス1704は、ブリッジ1705を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス1706に接続されている。
【0064】
キーボード1708、マウス等のポインティングデバイス1709は、操作者により操作される入力デバイスである。ディスプレイ1710は、液晶表示装置又はCRT(Cathode Ray Tube)などから成り、各種情報をテキストやイメージ情報として表示する。
【0065】
HDD(Hard Disk Drive)1711は、ハードディスクを内蔵し、ハードディスクを駆動し、CPU1701によって実行するプログラムや情報を記録又は再生させる。ハードディスクは、受け付けられた画像、頂点情報テーブル80、辺情報テーブル90などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【0066】
ドライブ1712は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体1713に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース1707、外部バス1706、ブリッジ1705、及びホストバス1704を介して接続されているRAM1703に供給する。リムーバブル記録媒体1713も、ハードディスクと同様のデータ記録領域として利用可能である。
【0067】
接続ポート1714は、外部接続機器1715を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート1714は、インタフェース1707、及び外部バス1706、ブリッジ1705、ホストバス1704等を介してCPU1701等に接続されている。通信部1716は、ネットワークに接続され、外部とのデータ通信処理を実行する。データ読み取り部1717は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部1718は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【0068】
なお、図17に示すハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図17に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図17に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
【0069】
前記実施の形態において、図8、図9で示したデータ構造は、これらのデータ構造に限られず、他のデータ構造であってもよい。例えば、テーブル構造はリンク構造等であってもよい。また、データ項目は、これらに図示したものに限られず、他のデータ項目(例えば、線分長)を有していてもよい。
【0070】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM)、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組合せ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【図面の簡単な説明】
【0071】
【図1】本実施の形態の構成例についての概念的なモジュール構成図である。
【図2】本実施の形態を含む全体の処理を示す説明図である。
【図3】線追跡抽出モジュールの構成例についての概念的なモジュール構成図である。
【図4】線追跡抽出モジュールが行う処理例を示すフローチャートである。
【図5】偽線分抽出モジュールが行う処理例を示す説明図である。
【図6】グラフモデル構築モジュールとノード解析モジュールが行う処理例を示す説明図である。
【図7】グラフモデル構築モジュールとノード解析モジュールが行う処理例を示すフローチャートである。
【図8】頂点情報テーブルのデータ構造を示す説明図である。
【図9】辺情報テーブルのデータ構造を示す説明図である。
【図10】形状解析抽出モジュールの構成例についての概念的なモジュール構成図である。
【図11】形状解析抽出モジュールが行う処理例を示すフローチャートである。
【図12】重複図形除去モジュールが行う処理例を示す説明図である。
【図13】入力画像に含まれる線図形の形状又は数が既知の場合の処理例を示すフローチャートである。
【図14】線図形の接触の例を示す説明図である。
【図15】入力画像に含まれる線図形の数が既知の場合の処理例を示すフローチャートである。
【図16】後処理モジュールによる処理を行わなかった場合の処理例を示すフローチャートである。
【図17】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【符号の説明】
【0072】
11…前処理モジュール
12…線追跡抽出モジュール
13…形状解析抽出モジュール
14…後処理モジュール
21…受付画像
22…追記抽出モジュール
23…追記画像
24…一筆線分図形分離モジュール
25…一筆線分画像
26…一筆線分画像
27…一筆線分画像
31…前処理モジュール
32…特徴点・線分抽出モジュール
33…偽線分抽出モジュール
34…グラフモデル構築モジュール
35…ノード解析モジュール
36…開図形抽出モジュール
101…グラフモデル構築モジュール
102…閉曲線検出モジュール
103…図形判断モジュール
104…重複図形除去モジュール

【特許請求の範囲】
【請求項1】
線図形を含む画像内の点に関する特徴及び線分を抽出する抽出手段と、
前記抽出手段による結果に基づいて、グラフモデルを生成するグラフモデル生成手段と、
前記グラフモデル生成手段によって生成されたグラフモデルを解析することによって、端点を有する開図形を抽出する開図形抽出手段と、
前記グラフモデル生成手段によって生成されたグラフモデルを解析することによって、端点を有しない閉図形を抽出する閉図形抽出手段
を具備することを特徴とする画像処理装置。
【請求項2】
前記抽出手段によって抽出された特徴点及び線分に基づいて、前記線分のうち偽線分を識別する偽線分識別手段
を具備し、
前記グラフモデル生成手段は、前記抽出手段及び前記偽線分識別手段による結果に基づいて、グラフモデルを生成する
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記閉図形抽出手段は、前記グラフモデルを解析することによって、閉図形を抽出し、多角形近似を行った後に、閉図形の形状を認識する
ことを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記閉図形抽出手段は、抽出した閉図形のうち重複している図形を削除する
ことを特徴とする請求項1又は3に記載の画像処理装置。
【請求項5】
前記開図形抽出手段によって抽出された開図形及び前記閉図形抽出手段によって抽出された閉図形の合計が、前記画像内に含まれている図形の数と異なるか否かを判断する判断手段と、
前記判断手段によって異なると判断された場合は、前記画像内の線分の接触している箇所に応じて、前記グラフモデルを変更し、前記開図形抽出手段又は前記閉図形抽出手段による処理を行わせる再処理手段
をさらに具備することを特徴とする請求項1に記載の画像処理装置。
【請求項6】
前記開図形抽出手段によって抽出された開図形又は前記閉図形抽出手段によって抽出された閉図形の形状が、前記画像内に含まれている図形の形状と異なるか否かを判断する判断手段と、
前記判断手段によって異なると判断された場合は、前記画像内の線分の接触している箇所に応じて、前記グラフモデルを変更し、前記開図形抽出手段又は前記閉図形抽出手段による処理を行わせる再処理手段
をさらに具備することを特徴とする請求項1に記載の画像処理装置。
【請求項7】
コンピュータを、
線図形を含む画像内の点に関する特徴及び線分を抽出する抽出手段と、
前記抽出手段による結果に基づいて、グラフモデルを生成するグラフモデル生成手段と、
前記グラフモデル生成手段によって生成されたグラフモデルを解析することによって、端点を有する開図形を抽出する開図形抽出手段と、
前記グラフモデル生成手段によって生成されたグラフモデルを解析することによって、端点を有しない閉図形を抽出する閉図形抽出手段
として機能させることを特徴とする画像処理プログラム。

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


【公開番号】特開2009−69953(P2009−69953A)
【公開日】平成21年4月2日(2009.4.2)
【国際特許分類】
【出願番号】特願2007−235260(P2007−235260)
【出願日】平成19年9月11日(2007.9.11)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】