説明

文字ストローク判定装置及び方法、文字輪郭補正装置、並びにコンピュータ・プログラム

【課題】複数のベクタペアによって構成される文字輪郭のサイズ変更やウェイトなどが変換された場合であっても、文字ストロークを正確に判定する。
【解決手段】第1のベクタペアに含まれる、延長線方向の最大座標値と直交方向の最大座標値とがなす第1の端点と、第2のベクタペアに含まれる、延長線上またはその延長線に平行な線上の最小座標値と直交方向の最小座標値とがなす第2の端点とを結んだ直線と、第1のベクタペアに含まれる、延長線方向の最大座標値と直交方向の最小座標値とがなす第3の端点と、第2のベクタペアに含まれる、延長線上またはその延長線に平行な線上の最小座標値と直交方向の最大座標値とがなす第4の端点とを結んだ直線との交点を求め、その交点が、第1のベクタペアと第2のベクタペアとが含まれる文字輪郭の領域内に含まれる場合に、第1のベクタペアと第2のベクタペアとが同一ストロークを構成すると判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字輪郭を補正する技術分野に関する。特に本発明は、例えばプリンタ等の文字出力装置におけるアウトラインフォントの文字輪郭を補正する際に適用可能な文字画像処理の技術分野に関する。
【背景技術】
【0002】
アウトラインフォントを出力する装置において、文字は、その文字の輪郭を構成するベクタ(ベクトル)の集合として保持される。個々のベクタは、文字形状の外側(外形形状)をなぞるような態様で連続する。このため、係る連続するベクタは、文字の運筆(ストローク)を示すストローク情報を直接的には反映しなくなる。
【0003】
図15は、アウトラインフォントを出力する一般的な装置における文字サイズの変更(拡大、縮小)やウェイト(書体の太さ)などの変換を行った際に発生するストローク幅のばらつきを説明する図である。
【0004】
まず、図15(a)に例示する文字「三」に関してウェイト等の変換処理を施した場合を考える。この場合、この漢字を構成するストロークは互いに重ならないため、線幅情報に基づいて検出されたベクタペアは、1つのストロークを構成するベクタペアとして容易に検出できる。従って、図15(a)の場合、個々のストロークは、図15(a)下側に例示するように、変換処理後も3つの独立したストローク(水平ストローク)として適切に処理される。
【0005】
一方、図15(b)に例示する文字「亜」の場合を考える。この場合、同図に破線で囲った1つのストロークは、垂直方向の他のベクタが交差している。このため、文字サイズの変更やウェイトなどを変換する画像処理を行った結果としては、別々のペア(水平方向の3つの独立したベクタペア)として検出され、1つのストロークとしては検出されない。その結果、係る画像処理後の当該3つの独立したベクタペア(この場合は3つの水平ストローク)は、図15(b)下側の破線内に例示する処理結果の如く、ストローク幅がバラバラになってしまう。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平05−127650公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
不揃いのストローク幅を補正するには、ストロークを構成する水平線(水平方向)または垂直線(垂直方向)のベクタペアを検出すればよい。ストローク幅は、即ちそのストロークを構成するベクタペアをなす各ベクタ間の距離に等しい。このことから、この距離が適正になるように当該各ベクタの座標位置を調整すれば、適正なストローク幅を得ることができる。図15(a)に例示したように、一つのストロークが一つのベクタペアによって構成されている場合、ベクタペアの検出は容易である。しかしながら、図15(b)に例示した如く一つのストロークが複数のベクタペアから構成されている場合は、個々のベクタペアが共通(同一)のストロークに属しているかどうかを判定することは困難である。
【0008】
特開平05−127650公報は、文字の輪郭を拡大・縮小したときに線幅が変更されないようにストロークを認識する方法を提案している。当該方法によれば、水平方向及び垂直方向のベクタペアを検出し、その検出結果を利用して複数のベクタペアを一つのストロークとして検出できる。しかし、同公報に提案されている技術は、以下に説明するように、同一ストロークとして検出できない場合がある。
【0009】
図16は、関連技術におけるストローク判定の問題点を説明する図である。図16に例示するように、他のベクタ(垂直線ベクタペア)と交差することによって分断された水平線ベクタペア1乃至3が存在しており、且つ、これらのベクタペアの間において、2つ以上のベクタペアで互いに共通する同一の線分がない場合を考える。この場合、同公報に提案されている技術によれば、係る3つのベクタペアは本来は一つのストロークとして検出されるべきにも関わらず、ベクタペア2とベクタペア3とは互いに共通する同一の線分を含んでいるため同一ストロークとして判定されるのに対して、ベクタペア1は他のベクタペア(ベクタペア2、ベクタペア3)と共通する同一の線分を含まない。このため、これら3つのベクタペアは、図16に例示する如くストローク1とストローク2という異なるストロークとして検出されてしまうという課題がある。
【0010】
そこで、本発明は、複数のベクタペアによって構成される文字輪郭のサイズ変更やウェイト(書体の太さ)などが変換された場合であっても、文字ストロークを正確に判定する文字ストローク判定装置等の提供を主たる目的とする。
【課題を解決するための手段】
【0011】
上記の目的を達成すべく、本発明に係る文字ストローク判定装置は、以下の構成を備えることを特徴とする。
【0012】
即ち、判定対象の文字ストロークを構成する個々のベクタペアを処理対象として、
第1のベクタペアを構成する各ベクタの延長線上、またはその延長線の直交方向に該延長線から所定長さ離れた範囲内に該ベクタと同方向の第2のベクタペアが存在する場合に、前記第1のベクタペアに含まれるところの、前記延長線方向の最大座標値と前記直交方向の最大座標値とがなす第1の端点と、前記第2のベクタペアに含まれるところの、前記延長線上またはその延長線に平行な線上の最小座標値と前記直交方向の最小座標値とがなす第2の端点とを結んだ直線と、
前記第1のベクタペアに含まれるところの、前記延長線方向の最大座標値と前記直交方向の最小座標値とがなす第3の端点と、前記第2のベクタペアに含まれるところの、前記延長線上またはその延長線に平行な線上の最小座標値と前記直交方向の最大座標値とがなす第4の端点とを結んだ直線との交点を求め、
その交点が、前記判定対象の文字を構成する輪郭のうち、前記第1のベクタペアと前記第2のベクタペアとが含まれる輪郭の領域内に含まれる場合に、前記第1のベクタペアと前記第2のベクタペアとが同一ストロークを構成すると判定する文字ストローク判定手段を備えることを特徴とする。
【0013】
また例えば、前記文字ストローク判定装置は、
前記判定対象の文字の輪郭を構成するベクタのうち、検出対象方向の注目ベクタに関して、その注目ベクタが属する輪郭と同じ輪郭、またはその輪郭と包含関係にある輪郭に属しており、且つ該注目ベクタを基準として前記検出対象方向に垂直な方向に所定のしきい値の範囲内で離間した位置にある他のベクタを検出し、
前記注目ベクタと前記他のベクタとが、前記検出対象方向において互いに反対方向である場合に、それら2つのベクタを、前記文字ストローク判定手段が処理対象とすべきベクタペアであると判定するベクタペア検出手段を更に備えるとよい。
【0014】
尚、同目的は、上記の各構成の文字ストローク判定装置に対応する文字ストローク判定方法によっても達成される。
【0015】
また、同目的は、上記の各構成の文字ストローク判定装置を含む文字輪郭補正装置、及びその文字輪郭補正装置を備える文字出力装置によっても達成される。
【0016】
また、同目的は、上記の各構成を有する文字ストローク判定装置、並びに対応する方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【0017】
上記の本発明によれば、複数のベクタペアによって構成される文字輪郭のサイズ変更やウェイト(書体の太さ)などが変換された場合であっても、文字ストロークを正確に判定する文字ストローク判定装置等の提供が実現する。
【図面の簡単な説明】
【0018】
【図1】本発明の模範的な第1の実施形態に係る文字ストローク判定装置の構成を示すブロック図である。
【図2】本発明の模範的な第2の実施形態に係る文字輪郭補正装置の構成を示すブロック図である。
【図3】ツリー構造生成部11によって生成される文字のツリー構造を概念的に説明する図である。
【図4】ツリー構造生成部11によって生成される文字のツリー構造を概念的に説明する図である。
【図5】第2の実施形態に係るツリー構造生成処理による輪郭の包含関係の判断例を具体的に説明する図である。
【図6】第2の実施形態に係るツリー構造生成処理による輪郭の包含関係の判断例を具体的に説明する図である。
【図7】本発明の模範的な第2の実施形態に係る文字輪郭補正装置1000のツリー構造生成部12が行うツリー構造生成処理を示すフローチャートである。
【図8】本発明の模範的な第2の実施形態に係る文字輪郭補正装置1000の水平・垂直線検出部12が行う水平・垂直線検出処理を示すフローチャートである。
【図9】本発明の模範的な第2の実施形態に係る文字輪郭補正装置1000のベクタペア検出部13が行うベクタペア検出処理を示すフローチャートである。
【図10】本発明の模範的な第2の実施形態に係る文字輪郭補正装置1000のストローク判定部14が行うストローク判定処理を示すフローチャートである。
【図11】本発明の第1及び第2の実施形態に係る装置を実現可能なコンピュータのハードウェア構成を例示的に説明する図である。
【図12】本発明の模範的な第1の実施形態に係る文字ストローク判定装置の判定方法を例示的に説明する図である。
【図13】本発明の模範的な第1の実施形態に係る文字ストローク判定装置による同一ストロークの判定原理を説明する図である。
【図14】本発明の模範的な第4の実施形態に係る文字出力装置の構成を例示するブロック図である。
【図15】アウトラインフォントを出力する一般的な装置における文字サイズの変更(拡大、縮小)やウェイト(書体の太さ)などの変換を行った際に発生するストローク幅のばらつきを説明する図である。
【図16】関連技術におけるストローク判定の問題点を説明する図である。
【発明を実施するための形態】
【0019】
次に、本発明を実施する形態について図面を参照して詳細に説明する。
【0020】
<第1の実施形態>
図1は、本発明の模範的な第1の実施形態に係る文字ストローク判定装置の構成を示すブロック図である。図1に示す文字ストローク判定装置100は、ストローク判定部101を備える。ストローク判定部101は、注目ベクタペアと検出対象ベクタペアとに基づいて、その注目ベクタペアと、検出対象ベクタペアとが同一ストロークをなすか否かを判定し、その判定結果(ストローク判定結果)を出力する。
【0021】
以下、図12及び図13を参照して、文字ストローク判定装置100(ストローク判定部101)の動作を説明する。ここでは、一例として、図12及び図13に示す如く水平方向(横方向)のベクタペア(水平線ベクタペア)を基に横方向のストロークを判定する場合について説明する。但し、本実施形態に係る文字ストローク判定装置100は、同様な処理手順により、垂直方向(縦方向)のベクタペア(垂直線ベクタペア)を基に縦方向のストロークを判定することもできる(尚、重複する説明は省略する)。
【0022】
図12は、本発明の模範的な第1の実施形態に係る文字ストローク判定装置の判定方法を例示的に説明する図である。図13は、本発明の模範的な第1の実施形態に係る文字ストローク判定装置による同一ストロークの判定原理を説明する図である。
【0023】
文字ストローク判定装置100は、判定対象の文字ストロークを構成する個々のベクタペアを対象として、それらのベクタペアが同一ストロークを構成するか否かを以下に説明する手順によって判定する。
【0024】
即ち、文字ストローク判定装置100は、図12(a)及び図12(b)に示すように、複数の水平線ベクタペアのうち、注目ベクタペアi(第1のベクタペア)を構成する各ベクタの延長線上(x軸方向)、またはその延長線の直交方向(y軸方向)に、その延長線から所定長さ離れたしきい値の範囲内に、該ベクタと同方向の水平線ベクタペアが存在するか否かを判断する。この判断に合致する水平線ベクタペアが存在する場合、文字ストローク判定装置100は、当該水平線ベクタペアを、当該注目ベクタペアiに対する検出対象である特定の水平線ベクタペア(検出対象ベクタペアj:第2のベクタペア)と判断する。ここで、i及びjは自然数である(以下の説明に於いて同様)。
【0025】
次に、文字ストローク判定装置100は、注目ベクタペアiに含まれるところの、当該延長線方向の最大座標値と当該直交方向の最大座標値とがなす第1の端点(T1)を検出する。そして、文字ストローク判定装置100は、検出対象ベクタペアjに含まれるところの、当該延長線上またはその延長線に平行な線上の最小座標値と当該直交方向の最小座標値とがなす第2の端点(T2)を検出する。
【0026】
更に、文字ストローク判定装置100は、当該注目ベクタペアiに含まれるところの、当該延長線方向の最大座標値と当該直交方向の最小座標値とがなす第3の端点(T3)を検出する。そして、文字ストローク判定装置100は、当該検出対象ベクタペアjに含まれるところの、当該延長線上またはその延長線に平行な線上の最小座標値と当該直交方向の最大座標値とがなす第4の端点(T4)を検出する。
【0027】
そして、文字ストローク判定装置100は、第1の端点(T1)と第2の端点(T2)とを結んだ直線と、第3の端点(T3)と第4の端点(T4)とを結んだ直線との交点(Q)を求める。文字ストローク判定装置100は、その交点(Q)が、当該判定対象の文字を構成する輪郭のうち、当該注目ベクタペアiと当該検出対象ベクタペアjとが含まれる輪郭の領域内に含まれるか否かを判断する。
【0028】
図12(a)に示す例の場合、注目ベクタペアiと検出対象ベクタペアjとは共に輪郭OL1に含まれ、その輪郭OL1の領域内に交点(Q)が含まれる。従ってこの場合、文字ストローク判定装置100は、注目ベクタペアiと検出対象ベクタペアjとが同一ストロークを構成すると判定する。これに対して、図12(b)に示す例の場合、注目ベクタペアiと検出対象ベクタペアjとは共に輪郭OL3に含まれるものの、その輪郭OL3の領域内に交点(Q)は含まれない。従ってこの場合、文字ストローク判定装置100は、注目ベクタペアiと検出対象ベクタペアjとは同一ストロークを構成していないと判定する。
【0029】
そして文字ストローク判定装置100は、ある注目ベクタペアiを対象として、全ての検出対象ベクタペアjに同様な判定を行う。その結果、文字ストローク判定装置100は、当該注目ベクタペアiに関して最大長さの同一ストロークを検出する。
【0030】
即ち、文字ストローク判定装置100は、図13に例示するように、水平線(水平方向)のペアを複数検出した場合に、個々のペアの垂直方向の幅(ストローク幅)が異なっていても、所定のしきい値の範囲内であれば、それらの水平線のペア(ペア1乃至3)を、1つのストローク(ストローク1)として検出することができる。
【0031】
以上説明した本実施形態に係る文字ストローク判定装置100によれば、複数のベクタペアによって構成される文字輪郭のサイズ変更やウェイト(書体の太さ)などが変換された場合であっても、文字ストロークを正確に判定することができる。即ち、本実施形態に係る文字ストローク判定装置100においては、注目ベクタペアiと検出対象ベクタペアjとの間において、ストローク幅(上述した例では縦方向の長さ)にばらつきがあっても、所定のしきい値の範囲内であれば、係る注目ベクタペアiと検出対象ベクタペアjとを同一のストロークと判定することができる。
【0032】
<第2の実施形態>
次に、上述した第1の実施形態に係る文字ストローク判定装置100を基本とする第2の実施形態に係る文字輪郭補正装置1000について説明する。
【0033】
図2は、本発明の模範的な第2の実施形態に係る文字輪郭補正装置の構成を示すブロック図である。文字輪郭補正装置1000は、アウトラインデータのツリー構造生成部11、水平・垂直線検出部12、ベクタペア検出部13、ストローク判定部14、及び輪郭座標演算部15を備える。本実施形態において、水平・垂直線検出部12、ベクタペア検出部13、及びストローク判定部14は、ツリー構造生成部11によって生成されたツリー構造に従って、輪郭単位で処理を行う。
【0034】
尚、アウトラインデータを基に輪郭を検出する手順自体は、現在では一般的な手法を採用できるので、本実施形態における詳細な説明は省略する。
【0035】
アウトラインデータのツリー構造生成部11は、外部より取得したある文字に関するアウトラインフォントデータ(アウトラインフォント情報)に基づいて、その文字を構成するところの、輪郭を表すツリー構造を生成する。ここで、アウトラインフォントデータは、当該文字の輪郭(アウトライン)を構成するベクタ(ベクトル)の集合である。そしてツリー構造は、対象となる文字を構成する各輪郭の包含関係を表す。
【0036】
図3及び図4は、ツリー構造生成部11によって生成される文字のツリー構造を概念的に説明する図である。
【0037】
例えば、文字「亜」の場合、その漢字の輪郭を表すベクタ(アウトラインフォントデータ)は、図3(a)に示すように、最外郭の輪郭を表す輪郭Aと、その内部に包含(内包)される輪郭B,C,D,E,Fとによって構成される。そしてこの場合、ツリー構造生成部11は、文字「亜」の輪郭のツリー構造として、図3(b)に概念的に示すように、輪郭Aを親とし、輪郭B,C,D,E,Fをその親の子として関連付けしたツリー構造を生成する。
【0038】
例えば、文字「茴」の場合、その漢字の輪郭を表すベクタ(アウトラインフォントデータ)は、図4(a)に示すように、離間配置された2つの輪郭H及び輪郭Iと、その輪郭Iに包含される輪郭J、K、及びLとによって構成される。そしてこの場合、ツリー構造生成部11は、文字「茴」の輪郭のツリー構造として、図4(b)に概念的に示すツリー構造を生成する。即ち、係るツリー構造において、輪郭Hは、その内部に輪郭を含まないので子は無い。輪郭Iは、輪郭J、K、及びLを子として有する。但し、輪郭Jは輪郭K、及びLを子として有し、輪郭Kは輪郭Lを子として有する。この関係から、文字「茴」に関するツリー構造において、輪郭I、J、K、及びLは直列に並ぶ。また、輪郭Hと輪郭Iとは、互いに独立に存在しているため並列的な関係である。このため、輪郭Hと輪郭Iとは、文字「茴」に関するツリー構造において、輪郭無しという親を持つ。
【0039】
尚、ツリー構造生成部11の動作については、図5乃至図7を参照して後述する。
【0040】
水平・垂直線検出部12は、ツリー構造生成部11から入手した輪郭情報とそのツリー構造とに基づいて、注目する文字(補正対象の文字)を構成する水平線(横線)ベクタ及び垂直線(縦線)ベクタを検出する。尚、水平・垂直線検出部12の動作については、図8を参照して後述する。
【0041】
ベクタペア検出部13は、水平・垂直線検出部12によって検出された水平線ベクタ及び垂直線ベクタを対象として、ペア(組)をなすベクタを検出する。尚、ベクタペア検出部13の動作については、図9を参照して後述する。
【0042】
ストローク判定部14は、第1の実施形態において上述した文字ストローク判定装置100(ストローク判定部101)と同様な処理を行う。即ち、ストローク判定部14は、ベクタペア検出部13によって検出された個々のベクタペアのうち、互いに隣接した位置に存在し、且つ第1の実施形態において上述した条件を満足するベクタペアを同一ストロークと判定する。尚、ストローク判定部14の動作については、図10を参照して後述する。
【0043】
そして輪郭座標演算部(輪郭座標補正部)15は、ストローク判定部14による判定結果に基づいて、同一ストロークと判定されたストロークを構成する複数のベクタペアの座標情報(この場合、y座標値)を均一な値に補正することにより、それらベクタペアがなす輪郭の座標を補正する。これにより、輪郭座標演算部15は、文字輪郭のサイズ変更(拡大、縮小)やウェイトなどが変換された場合であっても、同一ストロークと判定されたストロークを構成する複数のベクタペア間において、ばらつきが生じたストローク幅を補正できるので、変更後の輪郭が不揃いになることを防止することができる。
【0044】
次に、上述したアウトラインデータのツリー構造生成部11、水平・垂直線検出部12、ベクタペア検出部13、及びストローク判定部14の動作の詳細について図7乃至図10に示すフローチャートを参照して詳述する。
【0045】
(ツリー構造生成部11)
図7は、本発明の模範的な第2の実施形態に係る文字輪郭補正装置1000のツリー構造生成部11が行うツリー構造生成処理を示すフローチャートである。
【0046】
ツリー構造生成部11は、外部から処理対象(輪郭補正対象)の文字に関してアウトラインデータと当該文字を構成する個々の輪郭(総輪郭数C)を表す情報(x−y座標値)とを入手し、ツリー構造(輪郭ツリー)の生成を開始すべく、輪郭番号i及びjを初期化する(ステップS11)。
【0047】
ツリー構造生成部11は、輪郭iが輪郭ツリーに登録されているか調べ(ステップS12)、登録されていない場合(ステップS12にてNO)は処理をステップS13に進め、登録されている場合(ステップS12にてYES)は処理をステップS19に進める。
【0048】
ツリー構造生成部11は、処理対象の文字に関して、輪郭iを構成する座標点(x−y座標値)のうち、最大の座標値及び最小の座標値(以下「BBoxi」と表現する)を求める(ステップS13)。次に、ツリー構造生成部11は、処理対象の文字に関して、輪郭jを構成する座標点(x−y座標値)のうち、最大の座標値及び最小の座標値(以下「BBoxj」と表現する)とを求める(ステップS14)。本実施形態において、BBoxは、輪郭の外接四角形(Bounding Box)を表す。BBoxn(nは自然数)は、輪郭の番号を表す。
【0049】
そしてツリー構造生成部11は、BBoxjがBBoxiに内包されているか否かを、それぞれの座標値に基づいて判断し(ステップS15)、内包されていない場合(ステップS15にてNO)には処理をステップS17に進める。一方、BBoxjがBBoxiに内包されている場合(ステップS15にてYES)、ツリー構造生成部11は、輪郭ツリーに輪郭jを登録する(ステップS16)。
【0050】
ツリー構造生成部11は、輪郭番号jが、ステップS11にて入手した処理対象の文字を構成する輪郭数C以下であるかを判断し(ステップS17)、輪郭番号jが輪郭数(上限値)Cより小さい場合(ステップS17にてYES)はjに1加算(ステップS20)してから処理をステップS14に戻す。これにより、ツリー構造生成部11は、ステップS14からステップS17までの処理を、輪郭数の上限数Cまで繰り返し行う。一方、現在注目している輪郭番号iの輪郭に対して全ての輪郭について包含関係を調べ終わった場合(j=C:ステップS17にてNO)、ツリー構造生成部11は、輪郭ツリーに輪郭iを登録する(ステップS18)。
【0051】
そしてツリー構造生成部11は、ステップS19において、上述した一連の処理を、輪郭ツリーに登録されていない輪郭iについて輪郭の上限数Cまで行ったかを判断し、i<C(ステップS19にてYES)の場合はiに1加算(ステップS21)してから処理をステップS12に戻し、i=Cの場合(ステップS19にてNO)は処理を終了する。
【0052】
ここで、輪郭の包含関係の判断方法について具体例を参照して説明する。図5及び図6は、第2の実施形態に係るツリー構造生成処理による輪郭の包含関係の判断例を具体的に説明する図である。
【0053】
図5(a)は、文字「茴」に関して、BBoxiとBBoxjとが包含関係を有しない場合を表す。即ち、BBox1の4つの頂点全ては、BBox2の領域に含まれていない。このため、BBox2は、BBox1を包含していない。そして、BBox2の4つの頂点全ては、BBox1の領域に含まれていない。このため、BBox1は、BBox2を包含していない。従って、BBox1とBBox2とは、互いに包含関係にはなく、並列な関係である。
【0054】
次に図5(b)は、文字「茴」に関して、BBoxiとBBoxjとが包含関係を有している場合を表す。即ち、BBox2の4つの頂点全ては、BBox3の領域に含まれていない。このため、BBox3は、BBox2を包含していない。そして、BBox3の4つの頂点全ては、BBox2の領域に含まれる。このため、BBox2は、BBox3を包含している。
【0055】
即ち、BBoxiがBBoxjを包含する条件は、BBoxiの領域がBBoxjの全ての頂点を含む場合だけである。一方、BBoxjがBBoxiを包含する条件は、BBoxjの領域がBBoxiの全ての頂点を含む場合だけである。
【0056】
次に、文字「宙」に関しての包含関係を示す図6の場合、BBox1の4つの頂点全ては、BBox2の領域に含まれていない。このため、BBox2は、BBox1を包含していない。但し、BBox2の4つの頂点のうち、2つの頂点(p1,p2)は、BBox1の領域に含まれる。一方、残る2つの頂点(p3,p4)は、BBox1の領域に含まれない。このため、BBox1は、BBox2を包含していない。即ち、BBox1とBBox2とは、互いに包含関係にはなく、並列な関係である。
【0057】
尚、本実施形態におけるツリー構造生成処理は一例であって、対象とする文字に関して、その文字を構成する各輪郭の包含関係を調べると共に、ツリー構造(輪郭ツリー)を生成できれば何れの方法を採用してもよい。
【0058】
(水平・垂直線検出部12)
図8は、本発明の模範的な第2の実施形態に係る文字輪郭補正装置1000の水平・垂直線検出部12が行う水平・垂直線検出処理を示すフローチャートである。水平線・垂直線検出部12(水平・垂直線検出処理)は、補正対象の文字輪郭を構成するベクタの中から、水平線ベクタまたは垂直線ベクタを検出する。ここでは、水平線ベクタを検出する場合を例に説明するが、垂直線ベクタを検出する場合についても同様な処理を行えばよい。
【0059】
水平線・垂直線検出部12は、水平線(垂直線)ベクタの検出を開始すべく、水平線ベクタの検出を開始する輪郭の端点である座標点(座標番号)i及びjを初期化する(ステップS51)。
【0060】
水平線・垂直線検出部12は、注目座標jに隣接する座標(j+1)が端点であるか否かを判断し(ステップS52)、端点である場合(ステップS52にてYES)には処理をステップS53に進める。一方、水平線・垂直線検出部12は、ステップS52の判断にて座標(j+1)が端点でないと判断した場合(ステップS52にてNO)、注目座標が端点になるまでjを移動する。
【0061】
水平線・垂直線検出部12は、注目座標jの座標値と、隣接する座標(j+1)の座標値との差分を算出することによって当該2つの座標を比較し(ステップS53)、x座標の差分が0以上且つy座標の差分が0の条件を満たすか否かを判断する(ステップS54)。
【0062】
水平線・垂直線検出部12は、注目座標jのx座標と隣接する座標(j−1)のx座標との大小関係を判断することにより、注目する水平線ベクタの向きを検出する(ステップS55)。そして水平線・垂直線検出部12は、注目する水平線ベクタの向きが右向きの場合(Xj≧X(j−1):ステップS55にてYES)は処理をステップS56に進め、ベクタの向きが左向きの場合(Xj>X(j−1):ステップS55にてNO)は処理をステップS57に進める。
【0063】
そして水平線・垂直線検出部12は、注目する水平線ベクタに関して、水平線抽出テーブルHTに登録する情報を作成し(ステップS56、ステップS57)、生成した情報を水平線抽出テーブルHTに登録する(ステップS58)。ここで、「水平線抽出テーブルHT」は、注目する文字の輪郭をなすベクタのうち、水平線(横線)をなすベクタ(線分)だけを保持するテーブル(尚、垂直線ベクタが処理対象の場合、「垂直線抽出テーブルVT」には、注目する文字の輪郭をなすベクタのうち、垂直線(縦線)をなすベクタ(線分)だけが保持される)。
【0064】
即ち、水平線・垂直線検出部12は、ステップS56及びステップS58において、当該注目する水平線ベクタに関して、水平線抽出テーブルHTに、x座標値の最大値をXj、最小値をX(j+1)、そして向きを右向きと設定する。或いは、水平線・垂直線検出部12は、ステップS57及びステップS58において、当該注目する水平線ベクタに関して、水平線抽出テーブルHTに、x座標値の最大値Xを(j+1)、最小値をXj、そして向きを左向きと設定する。
【0065】
水平線・垂直線検出部12は、処理対象の文字の輪郭をなす全ての座標値(座標点数N)に対してステップS52乃至ステップS58の検出処理を行ったかを判断する(ステップS59)。そして水平線・垂直線検出部12は、未処理の座標値がある場合(j≦N:ステップS59にてYES)はjに1加算(ステップS62)してから処理をステップS52に戻し、未処理の座標値がない場合(j>N:ステップS59にてNO)には処理をステップS60に進める。
【0066】
そして、水平線・垂直線検出部12は、処理対象の文字を構成する全ての輪郭(輪郭数C)に対してステップS52乃至ステップS59の検出処理を行ったかを判断する(ステップS60)。そして水平線・垂直線検出部12は、未処理の輪郭がある場合(i≦C:ステップS60にてYES)はiに1加算(ステップS63)してから処理をステップS52に戻し、未処理の輪郭がない場合(i>C:ステップS60にてNO)には処理をステップS61に進める。
【0067】
最後に水平線・垂直線検出部12は、処理対象の文字を構成する全ての輪郭(輪郭数C)に対して上記の如く水平線ベクタを保持した水平線検出テーブルHTを、y座標によってソートする(ステップS61)。
【0068】
尚、本実施形態における水平線・垂直線検出処理は一例であって、対象とする文字を構成する各輪郭に関して、水平線ベクタと垂直線ベクタとを検出できれば何れの方法を採用してもよい。
【0069】
(ベクタペア検出部13)
図9は、本発明の模範的な第2の実施形態に係る文字輪郭補正装置1000のベクタペア検出部13が行うベクタペア検出処理を示すフローチャートである。ベクタペア検出部13(ベクタペア検出処理)は、上述した水平線・垂直線ベクタ検出部43(水平線・垂直線ベクタ検出処理)によって生成された水平線検出テーブルHT(垂直線ベクタテーブルVT)を参照することにより、ペア(組)をなすベクタを検出をする。ここでは、水平線ベクタペアを検出する場合を例に説明するが、垂直線ベクタペアを検出する場合についても同様な処理を行えばよい。
【0070】
ベクタペア検出部13は、水平線ベクタペアの検出を開始すべく、水平線ベクタペアの検出を開始する水平線ベクタの番号(水平線番号)i及びjを初期化する(ステップS71)。
【0071】
ベクタペア検出部13は、検出対象の水平線ベクタに関して、ペアをなす水平線ベクタの検出が終了しているかどうかを、ペア検出フラグのオン・オフ状態によって判断し(ステップS72)、終了している場合(ステップS72にてYES:ペア検出フラグ=オン)、処理をステップS78に進め、終了していない場合(ステップS72にてNO:ペア検出フラグ=オフ)、処理をステップS73に進める。
【0072】
ベクタペア検出部13は、ペアの検出が終了していない水平線ベクタ(注目水平線、注目水平線ベクタ)iに関して、その注目水平線ベクタiが属する輪郭と同じ輪郭、またはその輪郭と包含関係にある輪郭に属する水平線ベクタであって、且つy座標が当該注目水平線ベクタiのy座標値を基準として、所定のしきい値(ストローク幅)の範囲内にある水平線ベクタjを、当該水平線ベクタiとベクタペアをなす候補として検出する(ステップS73)。
【0073】
そしてベクタペア検出部13は、ステップS73にて検出した水平線ベクタjの向きが、当該注目水平線ベクタiの向きと異なるか否かを、水平線・垂直線ベクタ検出部43によって生成された水平線検出テーブルHTを参照することによって判定する(ステップS74)。即ち、ベクタペア検出部13は、当該水平線ベクタi及びjの互いの向きが異なる場合(反対方向の場合)に、それら水平線ベクタi及びjがペア(組)をなすベクタ(ベクタペア)であると判定し(ステップS74にてYES)、互いの向きが同じ場合(ステップS74にてNO)には処理をステップS76に進める。
【0074】
ベクタペア検出部13は、ステップS74にて互いの向きが異なると判定された当該水平線ベクタi及びjを関連付けた状態で、ペアテーブルPTに登録する(ステップS75)。ここで、「ペアテーブル(水平線)ペアテーブル)PT」は、水平線ベクタの組を保持するテーブルである。そして、ベクタペア検出部13は、当該水平線ベクタiに関して、ペア検出フラグをオンに設定する(ステップS77)。
【0075】
一方、ベクタペア検出部13は、ステップS74にて当該水平線ベクタi及びjの互いの向きが同じと判定された場合、比較対象の水平線ベクタjがまだあるかを判断し(ステップS76)、まだ比較していない水平線ベクタがある場合(j≦L:ステップS76にてYES)はjに1加算(ステップS79)してから処理をステップS73に戻す。一方、ベクタペア検出部13は、比較対象の水平線ベクタjがもうない場合(j>L:ステップS76にてNO)は処理をステップS78に進める。ここで、Lは、水平線検出テーブルHTに登録されている水平線数を表す。
【0076】
そして、ベクタペア検出部13は、上述したステップS72からステップS76までの処理を、全ての注目水平線ベクタiに関して行ったか否かを判断し(ステップS78)、まだ処理対象としていない水平線ベクタiが存在する場合(j≦L:ステップS78にてYES)はiに1加算(ステップS80)してから処理をステップS72に戻す。一方、全ての水平線ベクタiについて上記一連の処理を完了した場合(i>L:ステップS78にてNO)、ベクタペア検出部13は処理を終了する。
【0077】
(ストローク判定部14)
図10は、本発明の模範的な第2の実施形態に係る文字輪郭補正装置1000のストローク判定部14が行うストローク判定処理を示すフローチャートである。ここでは、水平線ベクタペアを対象として同一ストロークを検出する場合を例に説明するが、垂直線ベクタペアを対象として同一ストロークを検出する場合についても同様な処理を行えばよい。
【0078】
ストローク判定部14は、ベクタペア検出部13によって検出された個々のベクタペアのうち、互いに隣接した位置に存在し、且つ第1の実施形態において上述した条件を満足するベクタペアを同一ストロークと判定すべく、ベクタペアの番号i及びjを初期化する(ステップS91)。ここで、ベクタペア番号iのベクタペアは、図12を参照して上述した説明における「注目ベクタペアi」であり、ベクタペア番号jのベクタペアは、「検出対象ベクタペアj」に相当する。
【0079】
ストローク判定部14は、ベクタペア検出部13によって検出された全てのベクタペア(ベクタペア数P)に関してストローク判定を終了したか否かを判定し(ステップS92)、終了していない場合(ステップS92にてNO)にはステップS94に処理を進め、終了した場合(ステップS92にてYES)には処理をステップS97に進める。
【0080】
ストローク判定部14は、ベクタペア番号iのベクタペアと、ベクタペア番号jのベクタペアとの交点Qを、図12を参照して上述した如く求める(ステップS93)。即ち、ステップS93において、ストローク判定部14は、複数の水平線ベクタペアのうち、注目ベクタペアi(第1のベクタペア)を構成する各ベクタの延長線上(x軸方向)、またはその延長線の直交方向(y軸方向)に、その延長線から所定長さ離れたしきい値の範囲内に、該ベクタと同方向の水平線ベクタペアが存在するか否かを判断する。
【0081】
この判断に合致する水平線ベクタペアが存在する場合、ストローク判定部14は、当該水平線ベクタペアを、当該注目ベクタペアiに対する検出対象ベクタペアj:第2のベクタペア)と判断する。そしてストローク判定部14は、注目ベクタペアiの(最大x座標値,最大y座標値:図12における端点T1)と、検出対象ベクタペアjの(最小x座標値,最小y座標値:図12における端点T2)とを結んだ直線を求める。次に、ストローク判定部14は、注目ベクタペアiの(最大x座標値,最小y座標値:図12における端点T3)と、検出対象ベクタペアjの(最小x座標値,最大y座標値:図12における端点T4)とを結んだ直線を求める。そしてストローク判定部14は、求めた当該2直線の交点Qを求める。平面上の2直線の交点を求める処理自体は現在では一般的な手順を採用することができるので、本実施形態における詳細な説明は省略する。
【0082】
次に、ストローク判定部14は、注目ベクタペアiと、検出対象ベクタペアjとが同一ストロークをなしているかを判断する(ステップS94)。即ち、ステップS94において、ストローク判定部14は、水平線(x軸)方向に関して、ステップS93において求めた交点Qが、現在注目している輪郭内に含まれており、且つ交点Qのy座標値が注目ベクタペアiの最小y座標より大きいか否かを判断する。同様に、垂直線(y軸)方向の場合、ストローク判定部14は、同ステップにおいて、交点Qが、現在注目している輪郭内に含まれており、且つ交点Qのx座標値が、注目ベクタペアiの最小x座標より大きいか否かを判断する。そしてストローク判定部14は、本ステップにて同一ストロークであると判定した場合(ステップS94にてYES)は処理をステップS95に進め、同一ストロークではないと判定した場合(ステップS94にてNO)は処理をステップS96に進める。
【0083】
ストローク判定部14は、ステップS94にて同一ストロークであると判定した注目ベクタペアiと検出対象ベクタペアjとを関連付けた状態で、同一ストロークを構成するベクタペアとして、ストロークテーブルに登録する(ステップS95)。
【0084】
ストローク判定部14は、ある注目ベクタペアiを対象として、ステップS92からステップS95までの一連の処理を、全てのベクタペア(ベクタペア数P)を検出対象ベクタペアjとして行ったか否かを判断する(ステップS96)。そしてストローク判定部14は、まだ判断していない検出対象ベクタペアjがある場合(ステップS96にてNO)はjに1加算(ステップS98)してから処理をステップS92に戻し、全てのベクタペアに関して終了した場合(ステップS96にてYES)はステップS97に進める。
【0085】
そしてストローク判定部14は、上述したステップS92からステップS96までの一連の処理を全てのベクタペア(ベクタペア数P)を注目ベクタペアiとして行ったか否かを判断する(ステップS97)。そしてストローク判定部14は、まだ判断していない注目ベクタペアiがある場合(ステップS97にてYES)はiに1加算(ステップS99)してから処理をステップS92に戻し、全てのベクタペアに関して終了した場合(ステップS97にてNO)は処理を終了する。
【0086】
本実施形態に係る文字輪郭補正装置1000によれば、アウトラインフォントのサイズ変更(拡大、縮小)、またはウェイト(書体の太さ)などの変換を行った際に発生するストローク幅のばらつきを的確に補正することができる。よって本実施形態に係る文字輪郭補正装置1000によれば、補正対象となる文字の輪郭の品質向上を実現することができる。
【0087】
尚、上述した第1の実施形態では、説明の便宜上から、文字ストローク判定装置100が本実施形態に係るストローク判定部14に相当するストローク判定部101だけを備える場合について説明した。しかしながら、本発明に係る文字ストローク判定装置は、第2の実施形態にて上述したベクタ検出部13を更に備えてもよい。また、同様な観点から、ストローク判定部101(14)及びベクタ検出部13に加えて、水平・垂直線検出部12、更にはアウトラインデータのツリー構造生成部11を備えて、本発明に係る文字ストローク判定装置を構成してもよい。
【0088】
<第3の実施形態>
次に、上述した第1の実施形態に係る文字ストローク判定装置100及び第2の実施形態に係る文字輪郭補正装置1000を、コンピュータ(情報処理装置)を利用して実現する場合について説明する。即ち、第1及び第2の実施形態に係る装置は、専用のハードウェアを利用して実現しても良いが、本実施形態の如くコンピュータを利用して実現しても良い。
【0089】
図11は、本発明の第1及び第2の実施形態に係る装置を実現可能なコンピュータのハードウェア構成を例示的に説明する図である。図11に示した文字輪郭補正装置(文字ストローク判定装置)200のハードウェアは、CPU201(Central Processing Unit)、ROM(Read Only Memory)202、RAM(Random Access Memory)203、及び通信インタフェース(I/F)204を備える。通信インタフェース204は、上述した各実施形態において、図1または図2には不図示の外部装置(外部ユニット)との間においてデータ通信を実現する一般的な通信手段である。
【0090】
そして、上述した第2の実施形態を例に説明した本発明は、その説明において参照したフローチャート(図7乃至図10)の機能を実現可能なコンピュータ・プログラムを、図11に示す文字輪郭補正装置200に対して供給した後、そのコンピュータ・プログラムを、当該コンピュータのCPU201に読み出して実行することによって達成される。また、第1の実施形態に係る文字ストローク判定装置100を例に説明した本発明は、第2の実施形態において参照した図10に示すストローク判定処理を実現可能なコンピュータ・プログラムを、CPU201に読み出して実行することによって達成される。また、当該文字輪郭補正装置(文字ストローク判定装置)200内に供給されたコンピュータ・プログラムは、読み書き可能な一時記憶メモリ(202)またはハードディスク装置(不図示)等の記憶デバイス(記憶媒体)に格納すれば良い。
【0091】
また、前記の場合において、当該各装置内へのコンピュータ・プログラムの供給方法は、CD−ROM等の各種記録媒体を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは係るコードが格納された記憶媒体によって構成される。
【0092】
<第4の実施形態>
次に、上述した第2の実施形態に係る文字輪郭補正装置1000、或いは第3の実施形態に係る文字輪郭補正装置200を基本とする文字出力装置について説明する。
【0093】
図14は、本発明の模範的な第4の実施形態に係る文字出力装置の構成を例示するブロック図である。係る文字出力装置は、例えば、プリンタ(印刷装置)である。図14において、記憶装置2は、アウトラインフォントデータ、各種パラメータ、処理すべき印刷情報、及び上述した第3の実施形態におけるコンピュータ・プログラムのコードなどを記憶するハードディスク装置等の記憶デバイスである。アウトラインデータ展開装置3は、出力すべき印刷情報を、アウトラインフォントデータに基づいて、指定されたサイズやウェイトに変換する処理等を行う。文字輪郭補正装置4は、上述した第2の実施形態に係る文字輪郭補正装置1000、或いは第3の実施形態に係る文字輪郭補正装置200に相当する。即ち、本実施形態において、文字輪郭補正装置4は、アウトラインデータ展開装置3が処理した変換後のアウトラインフォントデータに対して、上述した一連の手順によって輪郭補正を施す。出力装置5は、文字輪郭補正装置4によって輪郭補正が施されたアウトラインフォントデータに基づいて、例えばビットマップに展開した文字画像データを、一般的な機構を利用して紙媒体に印刷する。そして、制御装置1は、図14に示す文字出力装置の全体の動作制御を司る。即ち、制御装置1は、例えば外部のコンピュータ(不図示)からの指示に基づいて、図14に示した各装置の動作を制御することにより、係るコンピュータから入手した印刷情報を、指定されたサイズやウェイトに従って、紙媒体に印刷する。
【符号の説明】
【0094】
1 制御装置
2 記憶装置
3 アウトラインデータ展開装置
4,1000 文字輪郭補正装置
5 出力装置
11 アウトラインデータのツリー構造生成部
12 水平・垂直線検出部
13 ベクタペア検出部
14 ストローク判定部
15 輪郭座標演算部
100 文字ストローク判定装置
101 ストローク判定部
200 文字ストローク判定装置(文字輪郭補正装置)
201 CPU
202 RAM
203 ROM
204 入出力インタフェース(I/F)

【特許請求の範囲】
【請求項1】
判定対象の文字ストロークを構成する個々のベクタペアを処理対象として、
第1のベクタペアを構成する各ベクタの延長線上、またはその延長線の直交方向に該延長線から所定長さ離れた範囲内に該ベクタと同方向の第2のベクタペアが存在する場合に、前記第1のベクタペアに含まれるところの、前記延長線方向の最大座標値と前記直交方向の最大座標値とがなす第1の端点と、前記第2のベクタペアに含まれるところの、前記延長線上またはその延長線に平行な線上の最小座標値と前記直交方向の最小座標値とがなす第2の端点とを結んだ直線と、
前記第1のベクタペアに含まれるところの、前記延長線方向の最大座標値と前記直交方向の最小座標値とがなす第3の端点と、前記第2のベクタペアに含まれるところの、前記延長線上またはその延長線に平行な線上の最小座標値と前記直交方向の最大座標値とがなす第4の端点とを結んだ直線との交点を求め、
その交点が、前記判定対象の文字を構成する輪郭のうち、前記第1のベクタペアと前記第2のベクタペアとが含まれる輪郭の領域内に含まれる場合に、前記第1のベクタペアと前記第2のベクタペアとが同一ストロークを構成すると判定する文字ストローク判定手段を備える
ことを特徴とする文字ストローク判定装置。
【請求項2】
前記判定対象の文字の輪郭を構成するベクタのうち、検出対象方向の注目ベクタに関して、その注目ベクタが属する輪郭と同じ輪郭、またはその輪郭と包含関係にある輪郭に属しており、且つ該注目ベクタを基準として前記検出対象方向に垂直な方向に所定のしきい値の範囲内で離間した位置にある他のベクタを検出し、
前記注目ベクタと前記他のベクタとが、前記検出対象方向において互いに反対方向である場合に、それら2つのベクタを、前記文字ストローク判定手段が処理対象とすべきベクタペアであると判定するベクタペア検出手段を更に備える
ことを特徴とする請求項1記載の文字ストローク判定装置。
【請求項3】
請求項1または請求項2記載の文字ストローク判定装置と、
前記文字ストローク判定装置によって同一ストロークをなすと判定された複数のベクタペアの座標情報を補正する補正手段とを備える
ことを特徴とする文字輪郭補正装置。
【請求項4】
前記判定対象の文字のアウトラインフォント情報に基づいて、その文字をなす輪郭の包含関係を表す構造情報を生成する構造情報生成手段を更に備える
ことを特徴とする請求項3記載の文字輪郭補正装置。
【請求項5】
請求項3または請求項4記載の文字輪郭補正装置と、
前記文字輪郭補正装置による補正結果を反映した文字画像を出力する出力手段とを備える
ことを特徴とする文字出力装置。
【請求項6】
判定対象の文字ストロークを構成する個々のベクタペアを対象として、
第1のベクタペアを構成する各ベクタの延長線上、またはその延長線の直交方向に該延長線から所定長さ離れた範囲内に該ベクタと同方向の第2のベクタペアが存在する場合に、前記第1のベクタペアに含まれるところの、前記延長線方向の最大座標値と前記直交方向の最大座標値とがなす第1の端点と、前記第2のベクタペアに含まれるところの、前記延長線上またはその延長線に平行な線上の最小座標値と前記直交方向の最小座標値とがなす第2の端点とを結んだ第1の直線を求め、
前記第1のベクタペアに含まれるところの、前記延長線方向の最大座標値と前記直交方向の最小座標値とがなす第3の端点と、前記第2のベクタペアに含まれるところの、前記延長線上またはその延長線に平行な線上の最小座標値と前記直交方向の最大座標値とがなす第4の端点とを結んだ第2の直線を求め、
前記第1及び第2の直線の交点を求め、そして
前記交点が、前記判定対象の文字を構成する輪郭のうち、前記第1のベクタペアと前記第2のベクタペアとが含まれる輪郭の領域内に含まれる場合に、前記第1のベクタペアと前記第2のベクタペアとが同一ストロークを構成すると判定する
ことを特徴とする文字ストローク判定方法。
【請求項7】
前記判定対象の文字の輪郭を構成するベクタのうち、検出対象方向の注目ベクタに関して、その注目ベクタが属する輪郭と同じ輪郭、またはその輪郭と包含関係にある輪郭に属しており、且つ該注目ベクタを基準として前記検出対象方向に垂直な方向に所定のしきい値の範囲内で離間した位置にある他のベクタを検出し、
前記注目ベクタと前記他のベクタとが、前記検出対象方向において互いに反対方向である場合に、それら2つのベクタを、前記対象とすべきベクタペアと判定する
ことを特徴とする請求項6記載の文字ストローク判定方法。
【請求項8】
文字ストローク判定装置の動作制御のためのコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
判定対象の文字ストロークを構成する個々のベクタペアを処理対象として、
第1のベクタペアを構成する各ベクタの延長線上、またはその延長線の直交方向に該延長線から所定長さ離れた範囲内に該ベクタと同方向の第2のベクタペアが存在する場合に、前記第1のベクタペアに含まれるところの、前記延長線方向の最大座標値と前記直交方向の最大座標値とがなす第1の端点と、前記第2のベクタペアに含まれるところの、前記延長線上またはその延長線に平行な線上の最小座標値と前記直交方向の最小座標値とがなす第2の端点とを結んだ直線と、
前記第1のベクタペアに含まれるところの、前記延長線方向の最大座標値と前記直交方向の最小座標値とがなす第3の端点と、前記第2のベクタペアに含まれるところの、前記延長線上またはその延長線に平行な線上の最小座標値と前記直交方向の最大座標値とがなす第4の端点とを結んだ直線との交点を求め、
その交点が、前記判定対象の文字を構成する輪郭のうち、前記第1のベクタペアと前記第2のベクタペアとが含まれる輪郭の領域内に含まれる場合に、前記第1のベクタペアと前記第2のベクタペアとが同一ストロークを構成すると判定する文字ストローク判定機能を、コンピュータに実現させる
ことを特徴とするコンピュータ・プログラム。
【請求項9】
前記判定対象の文字の輪郭を構成するベクタのうち、検出対象方向の注目ベクタに関して、その注目ベクタが属する輪郭と同じ輪郭、またはその輪郭と包含関係にある輪郭に属しており、且つ該注目ベクタを基準として前記検出対象方向に垂直な方向に所定のしきい値の範囲内で離間した位置にある他のベクタを検出し、
前記注目ベクタと前記他のベクタとが、前記検出対象方向において互いに反対方向である場合に、それら2つのベクタを、前記文字ストローク判定手段が処理対象とすべきベクタペアであると判定するベクタペア検出機能を、コンピュータに更に実現させる
ことを特徴とする請求項8記載のコンピュータ・プログラム。

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


【公開番号】特開2012−103431(P2012−103431A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−251069(P2010−251069)
【出願日】平成22年11月9日(2010.11.9)
【出願人】(390001395)NECシステムテクノロジー株式会社 (438)
【Fターム(参考)】