(57)【要約】【課題】本発明の課題は、グラデーションの方向や濃淡が非均一に変化するような文字や図形などに対して、文字や図形の濃淡やかすれを再現したベクトル表現を生成することである。【解決手段】上記課題を解決するために、本発明に係る画像処理装置は、入力画像から類似色領域の輪郭線を取得し、輪郭線に基づいて、複数の特徴点を設定する。そして、特徴点間ごとに輪郭線を分割し、当該分割された輪郭線内の複数のサンプリングポイントの画素値を取得する。そして、当該取得した画素値に基づいてグラデーションの方向と属性を定義し、分割された特徴点間ごとの輪郭線を表すベクトル表現の塗り潰し色として指定することにより、ベクトル表現を生成する。【選択図】図１
2010028429.tif 000002
【特許請求の範囲】
【請求項１】
入力画像から類似色領域の輪郭線を取得する、輪郭線の取得手段と、
前記輪郭線に基づいて、複数の特徴点を設定する、特徴点の設定手段と、
特徴点間ごとに前記輪郭線を分割し、当該分割された輪郭線内の複数のサンプリングポイントの画素値を取得する、画素値の取得手段と、
前記取得した画素値に基づいてグラデーションの方向と属性を定義し、前記分割された特徴点間ごとの輪郭線を表すベクトル表現の塗り潰し色として指定することにより、ベクトル表現を生成する生成手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記特徴点の設定手段は、前記輪郭線の中心線を取得し、当該中心線に基づいて前記特徴点を設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記特徴点の設定手段は、前記中心線の端点と、曲率が高い点と、線が交差している点と、中心線の画素値の変化が大きい点とを、前記特徴点として設定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記画素値の取得手段で取得する画素値は、前記特徴点の画素値を含むことを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記画素値の取得手段で取得する画素値は、更に、前記輪郭線上または前記輪郭線内の複数の点を含むことを特徴とする請求項１乃至４のいずれかに記載の画像処理装置。
【請求項６】
前記特徴点が、線が交差している点である場合、前記画素値の取得手段は、当該交差している点に隣接する位置の画素値に基づいて、前記画素値を取得することを特徴とする請求項３に記載の画像処理装置。
【請求項７】
前記生成手段は、前記特徴点間ごとの輪郭線を表すベクトル表現を、オブジェクト単位でまとめて表現することを特徴とする請求項１乃至６のいずれかに記載の画像処理装置。
【請求項８】
輪郭線の取得手段が、入力画像から類似色領域の輪郭線を取得する、輪郭線の取得ステップと、
特徴点の設定手段が、前記輪郭線に基づいて、複数の特徴点を設定する、特徴点の設定ステップと、
画素値の取得手段が、特徴点間ごとに前記輪郭線を分割し、当該分割された輪郭線内の複数のサンプリングポイントの画素値を取得する、画素値の取得ステップと、
生成手段が、前記取得した画素値に基づいてグラデーションの方向と属性を定義し、前記分割された特徴点間ごとの輪郭線を表すベクトル表現の塗り潰し色として指定することにより、ベクトル表現を生成する生成ステップと、
を有することを特徴とする画像処理方法。
【請求項９】
前記特徴点の設定ステップでは、前記輪郭線の中心線を取得し、当該中心線に基づいて前記特徴点を設定することを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記特徴点の設定ステップでは、前記中心線の端点と、曲率が高い点と、線が交差している点と、中心線の画素値の変化が大きい点とを、前記特徴点として設定することを特徴とする請求項９に記載の画像処理方法。
【請求項１１】
前記画素値の取得ステップで取得する画素値は、前記特徴点の画素値を含むことを特徴とする請求項８に記載の画像処理方法。
【請求項１２】
前記画素値の取得ステップで取得する画素値は、更に、前記輪郭線上または前記輪郭線内の複数の点を含むことを特徴とする請求項８乃至１１のいずれかに記載の画像処理方法。
【請求項１３】
前記特徴点が、線が交差している点である場合、前記画素値の取得ステップは、当該交差している点に隣接する位置の画素値に基づいて、前記画素値を取得することを特徴とする請求項１０に記載の画像処理方法。
【請求項１４】
前記生成ステップでは、前記特徴点間ごとの輪郭線を表すベクトル表現を、オブジェクト単位でまとめて表現することを特徴とする請求項８乃至１３のいずれかに記載の画像処理方法。
【請求項１５】
請求項８乃至１４のいずれかに記載の画像処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法およびプログラムに関するものである。
【背景技術】
【０００２】
従来のグラデーションの再現手法が、特許文献１に開示されている。特許文献１に係る手法では、ビットマップ画像を水平方向のライン毎に画素が連なる方向にグラデーション領域があるかが判定され、一定の条件を満たす場合に、その領域に含まれる画素の濃度の平均変化率を算出して、グラデーション表現画像が作成される。
【０００３】
【特許文献１】特開２００７−６６０７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の手法では、手書き文字のストローク内部の濃淡表現の様に、そのベクトル化後の閉領域内においてグラデーションのパラメータが非均一な箇所を検出できない。
【０００５】
また、グラデーションのパターンを検出した後に、グラデーションをベクトル化記述することができない。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る画像処理装置は、入力画像から類似色領域の輪郭線を取得する、輪郭線の取得手段と、輪郭線に基づいて、複数の特徴点を設定する、特徴点の設定手段と、特徴点間ごとに輪郭線を分割し、当該分割された輪郭線内の複数のサンプリングポイントの画素値を取得する、画素値の取得手段と、取得した画素値に基づいてグラデーションの方向と属性を定義し、分割された特徴点間ごとの輪郭線を表すベクトル表現の塗り潰し色として指定することにより、ベクトル表現を生成する生成手段と、を有することを特徴とする。
【発明の効果】
【０００７】
グラデーションの方向や濃淡が非均一に変化するような文字や図形などに対して、文字や図形の濃淡やかすれを再現したベクトル表現を生成することが可能になる。
【発明を実施するための最良の形態】
【０００８】
＜実施形態１＞
以下、本発明を、図面を参照して詳細に説明する。
【０００９】
図１は、本実施形態１の、入力画像中の手書き文字領域のグラデーション検出とベクトル化記述に関する処理のフローチャートである。
【００１０】
図６は、手書きで文字を記入したホワイトボードを、デジタルカメラで撮影することにより得た画像である。
【００１１】
本実施形態１に係る画像処理装置では、図６のような画像を入力画像として用いて、手書き文字領域のグラデーション検出とベクトル化記述が行われる。
【００１２】
本実施形態１から得られるグラデーション検出の結果が、図９に示されている。図９は、図６に示されている入力画像の領域Ｇに対応する部分の拡大図である。グラデーション検出の結果からは、手書き文字のストロークに強弱のある領域について、滑らかに画素値が変化する画像を取得することができる。図９では、ストロークに強弱のある部分は、強弱に沿って滑らかに画素値が変化しているものとする。
【００１３】
以下で、図１の処理の内容を説明する。なお、図１に示されている処理は、本実施形態に係る画像処理装置のＣＰＵによって実行される。
【００１４】
まず、図１のステップＳ１０１で、画像の入力が行われる。
【００１５】
次に、ステップＳ１０２で、色が類似する領域が、まとめて類似色領域として、取得される。類似色領域を取得する際は、近傍の画素（例えば、隣接する画素）と類似した色であれば、同一類似色領域としてまとめていくので、グラデーションがかかっている領域も１つの領域としてまとめられるものとする。図７は、ステップＳ１０２の処理の結果を示している。図７からわかるように、色が類似する領域をまとめることで、入力画像から手書き文字領域と背景領域を分離することができる。
【００１６】
次に、図１のステップＳ１０３で、ステップＳ１０２で得られた類似色領域から、その類似色領域の輪郭が、取得される。図８は、ステップＳ１０３の処理の結果を示している。図８に示されているように、ステップ１０３では、ステップＳ１０２で得られた類似色領域の輪郭が抽出される。
【００１７】
次に、図１のステップＳ１０４で、ステップＳ１０３で得られた輪郭を用いて特徴点が設定される。ステップＳ１０４の処理の詳細については、図２を用いて後述する。
【００１８】
次に、図１のステップＳ１０５で、ステップＳ１０４で設定された特徴点に対して、各特徴点の画素値が取得される。ステップＳ１０５の詳細については、図３を用いて後述する。
【００１９】
次に、図１のステップＳ１０６で、ステップＳ１０３で取得された輪郭と、ステップＳ１０５で取得された各特徴点の画素値とを用いて、ベクトルデータを生成する。
【００２０】
図２は、図１のステップＳ１０４の特徴点を設定する処理の詳細を示している。なお、図２に示されている処理は、本実施形態に係る画像処理装置のＣＰＵによって実行される。
【００２１】
また、図１０は、具体的な特徴点の設定例を示している。ここで、図１０の特徴点の具体例を用いながら、図２の処理フローについて説明する。
【００２２】
まず、図２のステップＳ２０１で、輪郭の中心線が取得される。ここで、中心線とは輪郭に囲まれた領域を通る代表的な線のことである。本実施形態１では、中心線とは、細線化によって求められる線である。細線化処理は公知の技術を利用することが可能であり、輪郭に基づいて中心線とその線幅の情報を得ることができる。
【００２３】
以下で説明する、ステップＳ２０２〜Ｓ２０５は、いずれも特徴点の設定に関するものであり、特徴点は全てステップＳ２０１によって得られる中心線上に設定される。
【００２４】
ステップＳ２０２で、ステップＳ２０１によって求まる中心線の端点が特徴点とされる。図１０の例では、端点の個所として特徴点に設定される位置が四角の記号（□）で示されている。
【００２５】
次に、ステップＳ２０３で、中心線の曲率が高い箇所が特徴点とされる。
【００２６】
図１０では、曲率が高い箇所として特徴点に設定される領域が丸記号（〇）で示されている。
【００２７】
次に、ステップＳ２０４で、中心線が交差する箇所が特徴点とされる。
【００２８】
図１０では、交差する箇所として特徴点に設定される領域がバツ記号（×）で示されている。
【００２９】
次に、ステップＳ２０５で、中心線の画素値の変化が急に変わる個所に基づき特徴点が求められる。
【００３０】
図１０では、画素値の変化に基づき特徴点に設定された箇所が三角記号（△）で示されている。
【００３１】
以下では、画素値の変化に基づく特徴点の設定手法についての一例を、図１１を用いて説明する。
【００３２】
図１１は、縦軸に明度、横軸に端点から中心線に沿った距離を示すグラフの例である。上記端点とは、中心線の端点のことであり、明度が急激に変化している箇所を特徴点として設定する。明度の急激な変化は、図１１に示すグラフの二階微分を計算したときに、閾値以上となる個所、もしくはグラフが極値１１００を持つ個所を検出することで求められる。
【００３３】
図３は、図１のステップＳ１０５の特徴点における画素値を取得する処理の詳細を示している。なお、図３に示されている処理は、本実施形態に係る画像処理装置のＣＰＵによって実行される。
【００３４】
特徴点の画素値を取得する場合には、中心線が交差していない個所の特徴点の場合には、入力画像における対応する位置の画素値を取得する。中心線が交差している個所の特徴点の場合には、交差点の画素値は濃い色になることが多いため、入力画像における対応する位置の画素値をそのまま用いるのは望ましくない。そこで、本発明では、各中心線に沿って隣接する位置にある画素値を取得するものとする。
【００３５】
まず、図３のステップＳ３０１で、特徴点が、ステップＳ２０４によって設定された中心線が交差する箇所の特徴点か、それ以外かが判定される。
【００３６】
ステップＳ３０１で、特徴点が、ステップＳ２０４によって設定された中心線が交差する箇所の特徴点であると判定された場合には、ステップＳ３０３に処理が進む。
【００３７】
一方、ステップＳ３０１で、特徴点が、ステップＳ２０４によって設定された中心線が交差する箇所の特徴点でないと判定された場合には、ステップＳ３０２に処理が進む。
【００３８】
ステップＳ３０２では、該特徴点の位置に対応する入力画像の画素値を取得し、当該特徴点の画素値とする。
【００３９】
ステップＳ３０３で、特徴点を含む中心線上の画素値の変化が連続になるように特徴点の画素値が推測して求められる。例えば、２つの線が交差している場合、交差位置からは３〜４本の線が伸びていることになるので、それぞれの方向について画素値を求める。すなわち、中心線に沿って各方向に数画素隣の画素値を取得し、それぞれの方向についての画素値として得る。また、入力画像上において交差位置に対応する位置の画素値も取得しておく。よって、本実施形態では、交差位置に対応する入力画像上の画素値と、中心線が伸びている各方向における隣接する３つまたは４つの画素値とが得られるものとする。
【００４０】
図４は、図１中のステップＳ１０６の処理を、詳細に説明したものである。なお、図４に示されている処理は、本実施形態に係る画像処理装置のＣＰＵによって実行される。
【００４１】
まず、図４のステップＳ４０１は、全ての中心線について処理が終わるまで、ステップＳ４０２〜Ｓ４０５までの処理を繰り返すためのループ端である。ステップＳ４０１では、未処理の中心線の１つを処理対象としてステップＳ４０２に進む。
【００４２】
ステップＳ４０２は、全ての特徴点間について処理が終わるまで、ステップＳ４０３の処理を繰り返すためのループ端である。ステップＳ４０２では、未処理の特徴点間の１つを処理対象として、ステップＳ４０３に進む。なお、ここで、特徴点間とは、中心線で繋がっている２つの隣接する特徴点の間を示す。
【００４３】
ステップＳ４０３では、隣接する特徴点と特徴点の間を、グラデーションを用いたベクトル表現で記述する処理を行う。この処理の詳細は図５を用いて後述する。
【００４４】
ステップＳ４０４は、ステップＳ４０２のループ端の終端である。
【００４５】
ステップＳ４０５では、当該処理対象としている１つの中心線について、ステップＳ４０２〜Ｓ４０４の処理で得られた複数の特徴点間のベクトル表現を、当該１つの中心線を表すベクトル表現として列挙する。すなわち、特徴点間毎の複数のベクトル表現に分離しているので、これらを１つの中心線でつながったオブジェクトとして扱えるように、オブジェクト単位で、まとめる処理を行う。例えば、ＸＭＬ表記を行う場合、当該オブジェクトを表すタグを定義し、中心線ごと（すなわち、文字や単語などのオブジェクトごと）に、特徴点間ごとのベクトル表記をまとめて表記する。
【００４６】
ステップＳ４０６は、ステップＳ４０１のループ端の終端であり、全ての中心線についてＳ４０２〜Ｓ４０５の処理が終了すると、当該ループ処理を終了する。
【００４７】
図５は、図４のステップＳ４０３における処理の詳細を示している。なお、図５に示されている処理は、本実施形態に係る画像処理装置のＣＰＵによって実行される。
【００４８】
まず、図５のステップＳ５０１では、図１のステップＳ１０３で得られた輪郭線について、ステップＳ４０３で処理対象としている２つの特徴点で分割することにより、当該２つの特徴点間の輪郭線を取得する。図１２は、特徴点Ｔ１，Ｔ２の間の中心線と、当該２つの特徴点によって分割された輪郭線を示している。なお、輪郭線の分割処理は、例えば、特徴点から中心線と垂直な方向に延ばした直線を分割線として全体の輪郭線を分割していくことにより、特徴点間ごとの輪郭（分割線と輪郭線によって囲まれる領域の輪郭）を得ることができる。
【００４９】
ステップＳ５０２では、当該輪郭線内に複数のサンプリングポイントを設定する。例えば、本実施形態では、当該中心線上の特徴点（図１２の白丸の点）をサンプリングポイントとするが、更に輪郭線上の点（例えば図１２の黒丸で示した点）や、それらの中間点をサンプリングポイントとしてもよい。中間点は、例えば、２つの特徴点中点や輪郭線上の中間点など、複数設定することが可能であるが、多すぎると後述するグラデーションの近似に時間がかかるため、サンプリングポイントは２〜１２個程度にするのが望ましい。
【００５０】
ステップＳ５０３では、各サンプリングポイントにおける画素値を取得する。ただし、交差による特徴点の画素値については、図３のＳ３０３で求めた当該特徴点間の方向における画素値を用いるものとする。
【００５１】
ステップＳ５０４では、各サンプリングポイントにおける画素値に基づいて、線形のグラデーションで近似を行う。すなわち、ＳＶＧ記法を用いて表現する場合、ｌｉｎｅａｒＧｒａｄｉｅｎｔのタグを用いて、グラデーションの方向と属性を定義する。グラデーションの傾きと方向は、開始座標と終了座標を指定することで指定できる。更に、ｓｔｏｐタグで使用する色をｓｔｏｐ−ｃｏｌｏｒ属性で表し、その色の位置をｏｆｆｓｅｔ属性で定義する。
【００５２】
ステップＳ５０５では、ステップＳ５０１で得た当該特徴点間の輪郭線をベクトル表現にする。本実施形態では、当該特徴点間の中心線と線幅で近似することによりベクトル表現に変換するものとするが、輪郭線そのものを近似するようにしても構わない。そして、そのベクトル表現の塗り潰し色として、ステップＳ５０４で定義したｌｉｎｅａｒＧｒａｄｉｅｎｔを指定する。
【００５３】
このように図５の処理を行うことにより、特徴点間のグラデーションをベクトル表現にすることができる。また、このようにして作成された特徴点間のグラデーションのベクトル表現は、図４のステップＳ４０５で、オブジェクト毎にまとめられる。なお、交差による特徴点は複数のストロークが混合した色（例えば濃い色）になることが多いので、交差点の特徴点の画素値は入力画像から得た画素値で表現するのが好適である。
【００５４】
上記で説明した処理により、入力画像から輪郭を取得し、その内部をグラデーション記述することができる。本実施形態では、一例として、ホワイトボード上の手書き文字をデジタルカメラで撮影した画像を入力画像としたが、これに限るものではなく、紙に記載された手書き文字や手書き図形をスキャナで読み取ることにより得た画像を入力画像としてもよい。また、本発明は、手書きに限るものではなく、グラデーションしている文字や図形に対して適用可能である。
【００５５】
＜その他の実施形態＞
本発明は、さらに、複数の機器（例えばコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用することも、一つの機器からなる装置（複合機、プリンタ、ファクシミリ装置など）に適用することも可能である。
【００５６】
また本発明の目的は、上述した実施形態で示したフローチャートの手順を実現するプログラムコードを記憶した記憶媒体から、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が、そのプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになる。そのため、このプログラムコード及びプログラムコードを記憶／記録したコンピュータ読み取り可能な記憶媒体も本発明の一つを構成することになる。
【００５７】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００５８】
また、前述した実施形態の機能は、コンピュータが、読み出したプログラムを実行することによって実現される。また、このプログラムの実行とは、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行う場合も含まれる。
【００５９】
さらに、前述した実施形態の機能は、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットによっても実現することもできる。この場合、まず、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行う。こうした機能拡張ボードや機能拡張ユニットによる処理によっても前述した実施形態の機能が実現される。
【００６０】
また、前述した実施形態のフローチャートの各ステップは、ソフトウェア（コンピュータ）を用いて実現するものに限るものではなく、ハードウェア（電子回路）を用いて実現してもよい。
【図面の簡単な説明】
【００６１】
【図１】手書き文字領域のグラデーション検出とベクトル化記述に関する処理のフローチャートである。
【図２】特徴点を設定する処理のフローチャートである。
【図３】特徴点における画素値を取得する処理のフローチャートである。
【図４】輪郭及びグラデーションをベクトルデータに変換する処理のフローチャートである。
【図５】中心線を単一のストロークとしてベクトル表記する処理のフローチャートである。
【図６】入力画像を示す図である。
【図７】類似色領域画像を示す図である。
【図８】輪郭抽出画像を示す図である。
【図９】グラデーション検出結果画像を示す図である。
【図１０】特徴点設定画像を示す図である。
【図１１】画素値の変化に基づく特徴点の設定を説明するための図である。
【図１２】外接矩形から特徴点までの距離の割合の計算方法を説明するための図である。
【符号の説明】
【００６２】
１１００  極値
【図１】
2010028429.tif 000003
【図２】
2010028429.tif 000004
【図３】
2010028429.tif 000005
【図４】
2010028429.tif 000006
【図５】
2010028429.tif 000007
【図６】
2010028429.tif 000008
【図７】
2010028429.tif 000009
【図８】
2010028429.tif 000010
【図９】
2010028429.tif 000011
【図１０】
2010028429.tif 000012
【図１１】
2010028429.tif 000013
【図１２】
2010028429.tif 000014