(57)【要約】【課題】画像フィルタを用いずに毛筆フォントに掠れ滲みを付加した毛筆フォントを作成する。【解決手段】参照事例となるReferenceと処理対象とするTargetの双方の文字骨格をノードとノード間を繋ぐエッジの集合として表現したグラフとして獲得し、各グラフを構成するエッジ同士の対応関係を決める。図中の16，17に示すように、Reference Shape「天」の左払いのエッジを，Target「大」の左払いのエッジに割り当てる。この割当によってエッジ周辺の文字領域も対応づける。Reference上の対応する文字領域（「天」の左払い部分）をテクスチャとして取り出し，Targetの「大」の左払いである文字領域に貼付する。このように，Targetの各エッジに対応するReference  Shapeのエッジの割当，さらにReferenceの割当するエッジ周辺の文字領域の対応づけおよびテクスチャ貼付を，Targetを構成するすべてのエッジに対し実行し，出力フォントを得る。【選択図】図４
2011022429.tif 000002
【特許請求の範囲】
【請求項１】
参照事例となる毛筆文字の持つ掠れ滲み特徴を処理対象となる対象フォントに付加して毛筆フォントを作成する毛筆フォント作成方法であって，
前記参照事例と前記対象フォントの双方の文字骨格をノードとノード間を繋ぐエッジの集合として表現したグラフとして獲得するステップと，
前記参照事例と前記対象フォントの双方のグラフが持つエッジ同士を対応付けるステップと，
前記対象フォントのエッジにたいし，対応する前記参照事例のエッジ周辺の掠れ滲み特徴を貼りつけるステップと、を有することを特徴とする毛筆フォント作成方法。
【請求項２】
参照事例となる毛筆文字の持つ掠れ滲み特徴を処理対象となる対象フォントに付加して毛筆フォントを作成する毛筆フォント作成方法をコンピュータに実行させるためのプログラムあって，
前記参照事例と前記対象フォントの双方の文字骨格をノードとノード間を繋ぐエッジの集合として表現したグラフとして獲得するステップと，
前記参照事例と前記対象フォントの双方のグラフが持つエッジ同士を対応付けるステップと，
前記対象フォントのエッジにたいし，対応する前記参照事例のエッジ周辺の掠れ滲み特徴を貼りつけるステップと、をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、参照事例となる毛筆文字の持つ掠れ滲み特徴を処理対象の毛筆フォントに付加して毛筆フォントを作成する毛筆フォント作成方法および毛筆フォント作成プログラムに関するものである。
【背景技術】
【０００２】
これまでに，毛筆フォントの作成や加工に関する研究がいくつか報告されている．筆触カーソルや数理形態学を用いた毛筆フォントの掠れ滲み表現技術（特許文献１、非特許文献１，２）はその代表的な研究例であるが，処理対象である既存の毛筆フォントにたいし掠れ・滲みのデザインを付加し，手書き風の芸術特徴をフォントに付加するものである．この方法は画像フィルタを利用したアプローチに相当する。
【０００３】
他方，処理対象が毛筆フォントではないが，一般画像をテクスチャ合成によって絵画風に変換する等の手法が存在する。非特許文献３，４がその代表例であるが，これらは処理対象である一般画像のほかに，参照事例として著名画家の絵画画像等を用意し，それが持つ美術的特徴を利用して一般画像を処理し参照事例に類似した絵画風画像に変換するものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−８３１７７号公報
【非特許文献】
【０００５】
【非特許文献１】中村剛士，真野淳治，世木博久，伊藤 英則，``毛筆フォントの掠れ・滲み処理システムについて''，情報処理学会論文誌, vol.38, no.5, pp.1008--1015, May.1997.
【非特許文献２】市川孝之，井戸川知之，堤正義，``数理形態学を用いた毛筆体フォントの掠れ・滲み処理''，日本応用数理学会論文誌, vol.10, no.3, pp.263--272, Sept.2000.
【非特許文献３】A. Hertzmann, C. Jacobs, N. Oliver, B. Curless, and D. Salesin,``Image Analogies'', Proc. SIGGRAPH '01, pp.327--340, Aug.2001.
【非特許文献４】G. Ramanarayanan, and K. Bala,``Constrained Texture Synthesis via Energy Minimization'', IEEE Transactions on Visualization and Computer Graphics, vol.13, no.1, pp.167--178, Jan.2007.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１、非特許文献１、２に記載のものの問題点は，毛筆フォントに掠れ・滲みを付加する処理において，著名書家の作品画像などの参照事例となるものを使用せず，画像フィルタによって処理をすることにある。このため，画像フィルタの設計が，最終的に加工出力される毛筆フォントの質に大きく影響する。しかしながら，このフィルタの設計は容易ではなく，フィルタによってどのような出力が獲得されるかは予想することが難しく，そのため，デザインするユーザが期待する任意の掠れや滲み特徴をフォントに付加することはほぼ出来ないに等しい。
【０００７】
非特許文献３、４に記載のものは，参照事例を用いることでその美術特徴を，ユーザ自身が視覚によって確認した上で絵画風画像変換を実行できるため，ユーザが期待する出力画像を得ることが出来る。ただし，この方法は，毛筆文字のように筆の進む方向が明白な構造を持った処理対象については，その構造に基づいた処理をすることが出来ない。そのため，フォントの加工処理に利用しても，掠れや滲みの特徴が不自然となり，参照事例に類似した特徴を出力に反映させることが出来ない。
【０００８】
本発明は上記点に鑑みて、画像フィルタを用いずに毛筆フォントに掠れ滲みを付加した毛筆フォントを作成することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、請求項１に記載の発明では、参照事例となる毛筆文字の持つ掠れ滲み特徴を処理対象となる対象フォントに付加して毛筆フォントを作成する毛筆フォント作成方法であって，
前記参照事例と前記対象フォントの双方の文字骨格をノードとノード間を繋ぐエッジの集合として表現したグラフとして獲得するステップと，
前記参照事例と前記対象フォントの双方のグラフが持つエッジ同士を対応付けるステップと，
前記対象フォントのエッジにたいし，対応する前記参照事例のエッジ周辺の掠れ滲み特徴を貼りつけるステップと、を有することを特徴とする。
【００１０】
請求項２に記載の発明では、上記した毛筆フォント作成方法をコンピュータに実行させるためのプログラムを特徴とする。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る毛筆フォント作成方法の概要を示す図である。
【図２】Reference Shape，Referenceの文字骨格を示すグラフ構成を示す図である。
【図３】Targetの文字骨格を示すグラフ構成を示す図である。
【図４】毛筆フォント作成方法の概念図である。
【図５】本発明の一実施形態に係る毛筆フォント作成方法を実施するハードウェア構成を示す図である。
【図６】毛筆フォント作成方法を実行するためのプログラムを示すフローチャートある。
【図７】図６中のエッジ割当処理の概念図を示す図である。
【図８】エッジ割当処理のStyle評価部分を示すフローチャートである。
【図９】エッジ割当処理のLength，Direction評価部分を示すフローチャートである。
【図１０】テクスチャ貼付処理を示すフローチャートである。
【図１１】テクスチャ貼付処理の概念図である。
【図１２】本発明の入出力例および従来研究の出力例を示す図である。
【発明を実施するための形態】
【００１２】
図１に本発明の一実施形態に係る毛筆フォント作成方法の概要を示す。この毛筆フォント作成方法では，図１の1に示すReferenceを参照事例とし，図１の3に示すTargetを処理の対象とする。Referenceの持つ掠れ滲み特徴をTargetに付加することで，4に示す出力フォントOutputを得る。ただし，掠れ滲み加工処理の入力としては，ReferenceとTargetのほかに，図１の3に示すReference Shapeを入力する。Reference ShapeはReferenceの文字領域（筆が通った墨のついた部分と掠れた部分）を背景領域と区別するために別途用意する。
【００１３】
図１の３に示すReference Shapeと図１の２に示すTargetはそれぞれ細線化処理によってその文字骨格を獲得する。それぞれの文字骨格は図２，図３に示す無向グラフ構造で表すことができる。図２はReference Shape，図３はTargetの例である。図２の○で示す21はグラフの終端ノードを表し，□で示す22は非終端ノードを表す。また，図２の23に示すようにノード間を繋ぐ線をエッジとする。図３のTargetについても，24，25に示す○，□は図２で示すものと同じ終端ノード，非終端ノードであり，26はエッジを表す。これによって，Reference ShapeおよびTargetは元々，文字領域と背景領域で構成されるが，これに加えて文字領域の文字骨格を表すグラフが追加される。Reference Shapeの文字骨格とその無向グラフ構造は図１の１に示すReferenceの骨格にも相当する。
【００１４】
図４に本発明の処理の流れを示す。図４の13に示すinputは，Target, Reference, Reference Shapeの3画像であり，図４の14は細線化処理後に獲得したグラフ構造を持つReference Shape及びReferenceの文字骨格GRであり，図４の15は同様にして得たTargetの文字骨格GTである。
【００１５】
文字骨格を獲得した後，各グラフを構成するエッジ同士の対応関係を決める。すなわち，GTを構成するエッジにたいしGRを構成するエッジのいずれかを割り当てる。割当は重複しても構わない。図４の16，17は14に示すReference Shape「天」の左払いのエッジを，Target「大」の左払いのエッジに割り当てることを決定した例であり，割当によってエッジ周辺の文字領域も対応づける。16，17に対応するエッジとエッジ周辺の文字領域（灰色で示す領域）が対応付けられた様子を示す。図４の18はReferenceであり，図４の19は18のReference上の対応する文字領域（「天」の左払い部分）をテクスチャとして取り出し，Targetの「大」の左払いである文字領域に貼付した様子を示す。
【００１６】
このように，Targetの各エッジに対応するReference  Shapeのエッジの割当，さらにReferenceの割当するエッジ周辺の文字領域の対応づけおよびテクスチャ貼付を，Targetを構成するすべてのエッジに対し実行し，出力フォント（図４の20のoutput）を得る。
【００１７】
つぎに、上記した概要の具体的な構成について説明する。図１に示した概要をハードウェアとして構成した場合，たとえば図５のように構成される。すなわち，Target，Reference，Reference Shapeの３つを画像としてそれぞれスキャナ５等によってコンピュータ６に取り込み，それをコンピュータ６内部でプログラムによって処理し，Outputを画像としてディスプレイ，プリンタ７等に出力する。
【００１８】
コンピュータ６内部で実行されるプログラムのフローチャートを図６に示す。このフローチャートの処理の流れに沿って，各処理の概略を説明する。
【００１９】
まず，ステップ８に示すように，プログラムは，Target, Reference, Reference Shapeの3画像を入力として受取り，ステップ９に示す細線化処理（たとえばHilditchの細線化）Reference Shapeの2画像にたいし実行する。これによりステップ１０に示すようにTargetとReference Shapeの文字骨格をグラフ構造GT ，GRとしてそれぞれ獲得する。ここでいうグラフ構造とは文字骨格をノードとエッジの集合として表現したものをいう。また，Reference Shapeの文字骨格GRはReferenceの文字骨格としても扱うように設定する。
【００２０】
つぎに，j=1として初期化し，ステップ１１に示すように，Targetのj番目のエッジｅｊＴにたいしReferenceのエッジｅｊＲを割り当てる。エッジの割当が決まったら，ステップ１２に示すようにTargetのj番目のエッジｅｊＴ周辺の文字領域にたいしReferenceのエッジｅｊＲ周辺のテクスチャを加工して添付する。この割当，テクスチャ貼付の処理をTargetの総エッジ数ＭＴ分だけ繰り返しプログラムを終了する。
【００２１】
以下、上記した各ステップのうちステップ１０〜１２での処理の詳細について説明する。
（ステップ１０の処理）
ステップ１０において，Reference ShapeとTargetはそれぞれ細線化処理（たとえば，Hilditchの細線化法）によってその文字骨格を獲得する（グラフ構造GR ，GTの例については図２，図３参照）。グラフGR ，GTを構成するエッジ，ノードの各定義については次のとおりである。図２，図３に例示したように，GR ，GT は複数のノード及びノード間を結ぶエッジから構成される。
【００２２】
ここで，式（１）と式（２）に示すように，GRが持つノードの集合をＶＲ，GTが持つノードの集合をＶＴと表す。また式（１）と式（２）にあるように，ＶｊＲ，ＶｊＴをそれぞれGR を構成するi番目のノード，GT を構成するj番目のノードとする。
【００２３】
【数１】
2011022429.tif 000003
【００２４】
【数２】
2011022429.tif 000004
【００２５】
式（３）と式（４）に示すように，各ノードには，終端ノード（tn）と非終非終端ノード（ntn）の2種類を設定する。さらに，GRとGTのエッジの集合を式（５）と式（６）に示すように，それぞれＥＲ，ＥＴと表し，式（５）と式（６）に示すように，GR を構成するi番目のエッジ，GT を構成するj番目のノードをそれぞれｅｊＲ，ｅｊＴと表す。
【００２６】
【数３】
2011022429.tif 000005
【００２７】
【数４】
2011022429.tif 000006
【００２８】
【数５】
2011022429.tif 000007
【００２９】
【数６】
2011022429.tif 000008
【００３０】
また，式（７）と式（８）に示すように，各エッジには3種類の属性（Style，Direction，Length）を設定する。ここで，Styleはエッジの種類（tnまたはntn），Directionはエッジの近似ベクトル，Lengthはエッジの長さを表す。
【００３１】
【数７】
2011022429.tif 000009
【００３２】
【数８】
2011022429.tif 000010
【００３３】
エッジの種類Style については，式（９）に示すように，tnとtnを結ぶエッジ，tnとntnを結ぶエッジ，ntnとntnを結ぶエッジの3種類が存在する。なお，無向グラフを扱うため(tn,ntn)と(ntn,tn)は同じStyleとして扱いを区別しない。
【００３４】
【数９】
2011022429.tif 000011
【００３５】
エッジの近似ベクトルDirectionについてはエッジの近似ベクトルであり，エッジの方向を評価するための属性を表す。ここで，ｅｊＲのDirectionをｅｊＲベクトル（その表記については式１２参照），ｅｊＴのDirectionをｅｊＴベクトル（その表記については式１２参照）と表す。エッジ長さ Length については，エッジの長さを表すが，ここではエッジを構成する画素数とし，ｅｊＲのLengthを｜ｅｊＲ｜，ｅｊＴのLengthを｜ｅｊＴ｜と表す。
（ステップ１１の処理）
ステップ１１に示すエッジ割当処理の概念図を図７に示す。処理対象であるTargetのj番目のエッジｅｊＴにたいし，割り当てるｅｊＲを決定する。まず，ｅｊＴのStyle と全ての参照エッジの Style との類似度をハミング距離により評価する。式（１０）は，Style  をハミング距離で評価するため，tn =0, ntn = 1 と設定したものである。ｅｊＴの Style にたいしハミング距離最小となるｅｊＲについてのみ(ハミング距離最小となるｅｊＲは複数存在することもある) その後の処理の対象とする。
【００３６】
【数１０】
2011022429.tif 000012
【００３７】
そのｅｊＲにたいし，Direction と Length を式（１１）を使って評価し，評価値が最大となるｅｊＲをｅｊＴに割り当てる。式（１１）中のｒｉｊ，ｌｉｊはそれぞれ式（１２）と式（１３）で定義され，ｗｒ，ｗｌは式（１４）の関係を満たす。
【００３８】
【数１１】
2011022429.tif 000013
【００３９】
【数１２】
2011022429.tif 000014
【００４０】
【数１３】
2011022429.tif 000015
【００４１】
【数１４】
2011022429.tif 000016
【００４２】
図７の処理をフローチャートで示したものが図８，図９である。図８はStyleの類似度評価を実施する部分に相当する。
【００４３】
まず初期化として，Reference Shapeの番号を示すiを0とし，類似度評価として実施するハミング距離の最小値をDhに記録するため，Dhが取る得る最大値以上の値の3で初期化する。
【００４４】
つぎに，ｅｊＴとｅｊＲの間のStyle の類似度を評ハミング距離によって評価し，その距離をｅｊＲのｅｊＴにたいするハミング距離としてdiに記録する。diが現在の最小値Dhよりも小さいならばdiの値をDhに代入する以上の処理をReference Shapeの総エッジ数MR分だけ繰り返す。
【００４５】
図９は図８で示したフローチャートの続きである。Styleの類似度評価を実施後，i = n = 1, max = -1として初期化する。iはReference Shapeの番号を示し，nは式（１１）の評価値が最大となるiを記録する変数であり，maxは式（１１）の最大評価値を記録する変数である。初期化後，ｅｊＲのｅｊＴにたいするハミング距離として記録したdiが最小値Dhと一致するか否かチェックし，最小値Dhと一致するものだけをその後の処理の対象とする。
【００４６】
つぎに，ｅｊＴとｅｊＲの間の Length,Direction の評価を式（１１）によって実施し，評価値をdmaxに記録する。dmaxが現在の最大値maxよりも大きい場合にはdmaxに記録し，そのときのReference Shapeの番号iをnとして記録する。
【００４７】
以上の処理をReference Shapeの総エッジ数MR分だけ繰り返すことで，Targetのj番目のエッジｅｊＴにたいし，割り当てるReference Shapeのエッジ番号をnとして獲得する。すなわち，ｅｊＴにたいし割り当てるｅｉＲ（ｉ＝ｎ）が決定する。
（ステップ１２の処理）
ステップ１２に示すテクスチャ処理のフローチャートを図１０に示す。また，その概念図を図１１に示す。
【００４８】
ｅｊＴに割当ての決まったｅｊＲ周辺のReferenceの文字領域からテクスチャパッチ群を切り出しｅｊＴ周辺の文字領域に貼付処理する。
【００４９】
まず，Targetのエッジ上にサンプリング点を配置するが，その総数を｜ｅｊＴ｜＋１に設定し等間隔にサンプリング点を配置する。Reference Shape，Referenceにも同様にサンプリング点を配置するが，その総数を｜ｅｊＲ｜＋１に設定し，等間隔にサンプリング点を配置する。図１１の28，32は各エッジ（27，31）上に配置したサンプリング点の1つを示す。また，mをｅｊＴのm番目のサンプリング点を表すものとし，m=0として初期化する。
【００５０】
ｅｊＴのm番目のサンプリング点に対応するｅｊＲのk番目のサンプリング点を式（１５）により決定する。図１１の例では，m番目のサンプリング点が32であり，k番目のサンプリング点が28である。
【００５１】
【数１５】
2011022429.tif 000017
【００５２】
ｅｊＲのk番目のサンプリング点を中心とした長方形領域をReferenceのテクスチャパッチＰｋＲとして抽出する。図１１の例では，Reference Shapeで示す29の長方形領域に対応する30のReferenceの長方形領域がＰｋＲとして抽出される。
【００５３】
ＰｋＲを式（１６）によって拡大縮小回転処理しｅｊＴのm番目のサンプリング点を中心とした長方形領域の形状に合わせて貼付処理する。貼付処理にはテクスチャ合成を使用し，シームレスでテクスチャパッチ間の繋ぎ目が分かりにくくする処理をする。図１１の33の長方形領域のサイズに合わせて30のＰｋＲを拡大縮小回転処理することで変形し，貼付する。なお，式（１６）中のαは式（１７）によって定義される。式（１７）のｄｍＴ，ｄｋＲはそれぞれm番目のサンプリング点，k番目のサンプリング点から文字領域と背景領域の巨魁までの最短距離を表し，文字の太さを示す指標である。
【００５４】
【数１６】
2011022429.tif 000018
【００５５】
【数１７】
2011022429.tif 000019
【００５６】
以上の処理をだけ繰り返すことで，Targetのサンプリング点総数｜ｅｊＴ｜＋１分だけ繰り返しｅｊＴにたいするテクスチャ貼付処理を完了する。
【００５７】
以上述べた実施形態に係る毛筆フォント作成方法によれば、以下の特徴を有する。
【００５８】
まず，参照事例となる実際の毛筆文字（著名書道家の作品画像等）を利用し，それが持つ掠れ滲み特徴を出力に反映させる。これにより，ユーザは，処理対象の毛筆フォントに掠れ滲み処理加工する際，その参照事例の特徴を視覚的に確認できるため，出力フォントのデザインを予想でき，デザインが容易になる。
【００５９】
参照事例の持つ掠れ滲み特徴を対象フォントに付加するために，参照事例と対象フォントの双方の骨格構造を獲得する。この骨格構造は筆の進む方向と文字の太さの情報を持つ。この骨格をグラフ構造で表し，参照事例と対象フォント双方のグラフが持つエッジ同士を対応付け，対象フォントのエッジにたいし，対応する参照事例のエッジ周辺の掠れ滲み特徴を付加する。
【００６０】
この掠れ滲み特徴の付加は，テクスチャ合成（シームレスなテクスチャパッチの貼付）によって実現する。このテクスチャ合成で利用するテクスチャパッチ群は，参照事例の毛筆文字を骨格構造に沿って分解することで得られる。また，分解したテクスチャパッチの順序関係を，骨格に沿って連続する順序関係として保持し，テクスチャパッチ群を対応する対象フォントのエッジにたいし，その順序関係を保持しながら割当て貼りつける。これにより，参照事例の持つ掠れ滲み特徴を損なうことなく，掠れ滲みの加工処理が実現する。
【００６１】
図１２は本発明の入出力例である。34はTarget，35はReferenceである。Reference Shape は35から作成するため省略する。36は本発明によって作成した出力フォント例であり，37は従来手法によって作成した出力例である。
【図１】
2011022429.tif 000020
【図２】
2011022429.tif 000021
【図３】
2011022429.tif 000022
【図４】
2011022429.tif 000023
【図５】
2011022429.tif 000024
【図６】
2011022429.tif 000025
【図７】
2011022429.tif 000026
【図８】
2011022429.tif 000027
【図９】
2011022429.tif 000028
【図１０】
2011022429.tif 000029
【図１１】
2011022429.tif 000030
【図１２】
2011022429.tif 000031