JPH07262385A - アウトラインデータ生成装置 - Google Patents
アウトラインデータ生成装置Info
- Publication number
- JPH07262385A JPH07262385A JP6056070A JP5607094A JPH07262385A JP H07262385 A JPH07262385 A JP H07262385A JP 6056070 A JP6056070 A JP 6056070A JP 5607094 A JP5607094 A JP 5607094A JP H07262385 A JPH07262385 A JP H07262385A
- Authority
- JP
- Japan
- Prior art keywords
- segment
- contour line
- segments
- point
- monotonically
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Image Analysis (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
(57)【要約】
【目的】ドット幅が1以上で表現されたドット形式の文
字データから高品質な輪郭線を効率的に生成することが
できるアウトラインデータ生成方法及び装置を提供する
こと。 【構成】輪郭抽出部140が、記憶部12に記憶したド
ットデータの格子点を取り巻く隣接4画素の状態に基づ
いて輪郭を追跡して輪郭線データを作成し、平滑化処理
部141が、該輪郭線データを構成する複数のセグメン
トのそれぞれの中点を連結して平滑化し、曲線化処理部
が該平滑化した輪郭線のうちX及びY座標値及びセグメ
ントの傾きが単調増加又は単調減少する一連のセグメン
トを2つの制御点を有するベジェ曲線に置換する。
字データから高品質な輪郭線を効率的に生成することが
できるアウトラインデータ生成方法及び装置を提供する
こと。 【構成】輪郭抽出部140が、記憶部12に記憶したド
ットデータの格子点を取り巻く隣接4画素の状態に基づ
いて輪郭を追跡して輪郭線データを作成し、平滑化処理
部141が、該輪郭線データを構成する複数のセグメン
トのそれぞれの中点を連結して平滑化し、曲線化処理部
が該平滑化した輪郭線のうちX及びY座標値及びセグメ
ントの傾きが単調増加又は単調減少する一連のセグメン
トを2つの制御点を有するベジェ曲線に置換する。
Description
【0001】
【産業上の利用分野】本発明は、ドット形式のデータか
ら輪郭線データを作成するアウトラインデータ生成装置
に関する。
ら輪郭線データを作成するアウトラインデータ生成装置
に関する。
【0002】
【従来の技術】従来、ワークステーション及び文書処理
装置等で用いられるフォントには、ドットパターン方式
で利用されるドット形式のフォントだけでなく、アウト
ライン文字方式等で利用されるアウトラインフォントが
ある。
装置等で用いられるフォントには、ドットパターン方式
で利用されるドット形式のフォントだけでなく、アウト
ライン文字方式等で利用されるアウトラインフォントが
ある。
【0003】このアウトラインフォントは、ドット形式
で表現されたフォントの輪郭線を抽出することにより、
文字を形成することが多い。
で表現されたフォントの輪郭線を抽出することにより、
文字を形成することが多い。
【0004】例えば、特開昭63−231392号公報
には、ドット形式の文字データの各ドットをスキャンし
て、水平方向、垂直方向、右斜め方向及び左斜め方向に
対して、フラグのチェックを行いつつ、黒ドットのつな
がりを調べることにより、文字データをドット形式から
ベクトル形式に変換する文字データ形式変換方法が開示
されている。
には、ドット形式の文字データの各ドットをスキャンし
て、水平方向、垂直方向、右斜め方向及び左斜め方向に
対して、フラグのチェックを行いつつ、黒ドットのつな
がりを調べることにより、文字データをドット形式から
ベクトル形式に変換する文字データ形式変換方法が開示
されている。
【0005】また、特開昭63−188277号公報に
は、ベクトルフォント生成の対象ドットイメージから雑
音ドットを除去した後、同イメージのX軸方向の遷移点
ドット、及びY軸方向の遷移点ドットを抽出して、これ
ら抽出されたX軸方向及びY軸方向の各遷移点ドットを
合成しベクトルフォント生成のための輪郭ドットデータ
を得るよう構成した輪郭抽出方式が開示されている。
は、ベクトルフォント生成の対象ドットイメージから雑
音ドットを除去した後、同イメージのX軸方向の遷移点
ドット、及びY軸方向の遷移点ドットを抽出して、これ
ら抽出されたX軸方向及びY軸方向の各遷移点ドットを
合成しベクトルフォント生成のための輪郭ドットデータ
を得るよう構成した輪郭抽出方式が開示されている。
【0006】
【発明が解決しようとする課題】しかしながら、前者の
従来技術では、ドット形式で表現されたフォントの線幅
が1ドットである部分については、線分として抽出する
ことはできても、輪郭線として抽出することができな
い。
従来技術では、ドット形式で表現されたフォントの線幅
が1ドットである部分については、線分として抽出する
ことはできても、輪郭線として抽出することができな
い。
【0007】このため、かかる輪郭線を抽出したアウト
ラインフォントを拡大すると、輪郭線を抽出した部分に
ついては拡大されるが、輪郭線としては抽出できず線分
として抽出された部分については拡大されないため、フ
ォント形状がアンバランスとなる。
ラインフォントを拡大すると、輪郭線を抽出した部分に
ついては拡大されるが、輪郭線としては抽出できず線分
として抽出された部分については拡大されないため、フ
ォント形状がアンバランスとなる。
【0008】特に、フォントを形成するドット数が少な
い低ドット文字から輪郭線を抽出する場合には、1ドッ
ト幅で表現される線分が数多く登場するため上記問題が
顕在化する。
い低ドット文字から輪郭線を抽出する場合には、1ドッ
ト幅で表現される線分が数多く登場するため上記問題が
顕在化する。
【0009】また、後者の技術では、フォントの輪郭を
X軸及びY軸方向に走査し、輪郭線を構成する線分を直
線近似により抽出するため、このアウトラインデータを
ある程度以上拡大すると、例えば輪郭線の直線部分及び
連結部分が目立つようになり、文字品質の悪さが顕著と
なる。
X軸及びY軸方向に走査し、輪郭線を構成する線分を直
線近似により抽出するため、このアウトラインデータを
ある程度以上拡大すると、例えば輪郭線の直線部分及び
連結部分が目立つようになり、文字品質の悪さが顕著と
なる。
【0010】このため、特開平3−78888号公報に
は、折れ線を曲線化する際に、まず曲線化方程式を用い
て2つの端点の中点を曲線上に求め、該中点と両端点の
直線距離に応じて分割数を決定し、該分割数により端点
間の曲線を分割して分割点の座標を算出する図形データ
処理装置が開示されている。
は、折れ線を曲線化する際に、まず曲線化方程式を用い
て2つの端点の中点を曲線上に求め、該中点と両端点の
直線距離に応じて分割数を決定し、該分割数により端点
間の曲線を分割して分割点の座標を算出する図形データ
処理装置が開示されている。
【0011】しかしながら、この従来技術では、算出し
た一連の分割点を通る線分により輪郭線を形成するた
め、円滑な曲線に置換することはできない。
た一連の分割点を通る線分により輪郭線を形成するた
め、円滑な曲線に置換することはできない。
【0012】そこで、本発明では上記問題を解決し、ド
ット幅が1以上で表現されたドット形式の文字データか
ら高品質な輪郭線を効率的に生成することができるアウ
トラインデータ生成方法及び装置を提供することを目的
とする。
ット幅が1以上で表現されたドット形式の文字データか
ら高品質な輪郭線を効率的に生成することができるアウ
トラインデータ生成方法及び装置を提供することを目的
とする。
【0013】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、複数の画素を配置して構成されるドット
形式の画情報から複数のセグメントからなる輪郭線デー
タを生成するアウトライン生成装置において、互いに隣
接する4つの画素の接点に位置する各格子点における輪
郭線の連なり方向を前記4つの画素が持つ値に対応して
求め、各格子点が持つ輪郭線の連なり方向に基づいて輪
郭線を追跡して輪郭線データを抽出する輪郭抽出手段を
具備したことを特徴とする。
め、本発明は、複数の画素を配置して構成されるドット
形式の画情報から複数のセグメントからなる輪郭線デー
タを生成するアウトライン生成装置において、互いに隣
接する4つの画素の接点に位置する各格子点における輪
郭線の連なり方向を前記4つの画素が持つ値に対応して
求め、各格子点が持つ輪郭線の連なり方向に基づいて輪
郭線を追跡して輪郭線データを抽出する輪郭抽出手段を
具備したことを特徴とする。
【0014】また、本発明は、輪郭線を構成する複数の
セグメントのうち、連続したセグメントであって、各セ
グメントの端点におけるX座標値が単調増加又は単調減
少し、かつ該端点におけるY座標値が単調増加又は単調
減少し、さらに各セグメントの傾きが単調増加又は単調
減少する複数のセグメントを検出する検出手段と、前記
検出手段により検出された連続するセグメントの始点及
び終点の座標値及び各セグメントの傾きに基づいて、該
連続するセグメントを2つの制御点を有するベジェ曲線
に置換する曲線化手段とを具備したことを特徴とする。
セグメントのうち、連続したセグメントであって、各セ
グメントの端点におけるX座標値が単調増加又は単調減
少し、かつ該端点におけるY座標値が単調増加又は単調
減少し、さらに各セグメントの傾きが単調増加又は単調
減少する複数のセグメントを検出する検出手段と、前記
検出手段により検出された連続するセグメントの始点及
び終点の座標値及び各セグメントの傾きに基づいて、該
連続するセグメントを2つの制御点を有するベジェ曲線
に置換する曲線化手段とを具備したことを特徴とする。
【0015】また、本発明は、複数の画素を配置して構
成されるドット形式の画情報から複数のセグメントから
なる輪郭線データを生成するアウトライン生成装置にお
いて、互いに隣接する4つの画素の接点に位置する各格
子点における輪郭線の連なり方向を前記4つの画素が持
つ値に対応して求め、各格子点が持つ輪郭線の連なり方
向に基づいて輪郭線を追跡して輪郭線データを抽出する
輪郭抽出手段と、前記輪郭抽出手段により抽出された連
続するセグメントを、該セグメントの中点を連結した新
たなセグメントに置換する平滑化手段と、前記輪郭線を
構成する複数のセグメントのうち、連続したセグメント
であって、各セグメントの端点におけるX座標値が単調
増加又は単調減少し、かつ該端点におけるY座標値が単
調増加又は単調減少し、さらに各セグメントの傾きが単
調増加又は単調減少する複数のセグメントを検出する検
出手段と、前記検出手段により検出された連続するセグ
メントの始点及び終点の座標値及び各セグメントの傾き
に基づいて、該連続するセグメントを2つの制御点を有
するベジェ曲線に置換する曲線化手段とを具備したこと
を特徴とする。
成されるドット形式の画情報から複数のセグメントから
なる輪郭線データを生成するアウトライン生成装置にお
いて、互いに隣接する4つの画素の接点に位置する各格
子点における輪郭線の連なり方向を前記4つの画素が持
つ値に対応して求め、各格子点が持つ輪郭線の連なり方
向に基づいて輪郭線を追跡して輪郭線データを抽出する
輪郭抽出手段と、前記輪郭抽出手段により抽出された連
続するセグメントを、該セグメントの中点を連結した新
たなセグメントに置換する平滑化手段と、前記輪郭線を
構成する複数のセグメントのうち、連続したセグメント
であって、各セグメントの端点におけるX座標値が単調
増加又は単調減少し、かつ該端点におけるY座標値が単
調増加又は単調減少し、さらに各セグメントの傾きが単
調増加又は単調減少する複数のセグメントを検出する検
出手段と、前記検出手段により検出された連続するセグ
メントの始点及び終点の座標値及び各セグメントの傾き
に基づいて、該連続するセグメントを2つの制御点を有
するベジェ曲線に置換する曲線化手段とを具備したこと
を特徴とする。
【0016】
【作用】本発明によれば、ドットデータすなわち値を付
与された画素を格子状に配置して形成された画情報から
輪郭線データを生成する際に、輪郭抽出手段が、4つの
隣接画素の接点に位置する各格子点における輪郭線の連
なり方向を、前記4つの隣接画素の持つ値に対応して求
め、各格子点が有する方向性に基づいて格子点を追跡す
ることにより輪郭線データを抽出する。
与された画素を格子状に配置して形成された画情報から
輪郭線データを生成する際に、輪郭抽出手段が、4つの
隣接画素の接点に位置する各格子点における輪郭線の連
なり方向を、前記4つの隣接画素の持つ値に対応して求
め、各格子点が有する方向性に基づいて格子点を追跡す
ることにより輪郭線データを抽出する。
【0017】これにより、1ドット幅で構成される線分
からでもアウトラインデータを抽出することができる。
からでもアウトラインデータを抽出することができる。
【0018】また、本発明によれば、輪郭線を構成する
複数のセグメントのうち、連続したセグメントであっ
て、各セグメントの端点におけるX座標値が単調増加又
は単調減少し、かつ該端点におけるY座標値が単調増加
又は単調減少し、さらに各セグメントの傾きが単調増加
又は単調減少する複数のセグメントを、検出手段が曲線
化の対象となるセグメントとして検出し、曲線化手段
が、該検出された連続するセグメントの始点及び終点の
座標値及び各セグメントの傾きに基づいて、該連続する
セグメントを2つの制御点を有するベジェ曲線に置換す
る。
複数のセグメントのうち、連続したセグメントであっ
て、各セグメントの端点におけるX座標値が単調増加又
は単調減少し、かつ該端点におけるY座標値が単調増加
又は単調減少し、さらに各セグメントの傾きが単調増加
又は単調減少する複数のセグメントを、検出手段が曲線
化の対象となるセグメントとして検出し、曲線化手段
が、該検出された連続するセグメントの始点及び終点の
座標値及び各セグメントの傾きに基づいて、該連続する
セグメントを2つの制御点を有するベジェ曲線に置換す
る。
【0019】これにより、所定の連続するセグメントを
容易に曲線化することができる。
容易に曲線化することができる。
【0020】また、本発明では、複数の画素を配置して
構成されるドット形式の画情報から複数のセグメントか
らなる輪郭線データを生成する際に、輪郭抽出手段が、
互いに隣接する4つの画素の接点に位置する各格子点に
おける輪郭線の連なり方向を前記4つの画素が持つ値に
対応して求めるとともに、各格子点が持つ輪郭線の連な
り方向に基づいて輪郭線を追跡して輪郭線データを抽出
し、平滑化手段が、該抽出された輪郭線を構成する複数
のセグメントのうち、階段状に形成される連続するセグ
メントに対して、各セグメントの中点を連結した新たな
セグメントに置換する。そして、検出手段が、輪郭線を
構成する複数のセグメントのうち、連続したセグメント
であって、各セグメントの端点におけるX座標値が単調
増加又は単調減少し、かつ該端点におけるY座標値が単
調増加又は単調減少し、さらに各セグメントの傾きが単
調増加又は単調減少する複数のセグメントを検出し、曲
線化手段が、該検出された連続するセグメントの始点及
び終点の座標値及び各セグメントの傾きに基づいて、該
連続するセグメントを2つの制御点を有するベジェ曲線
に置換する。
構成されるドット形式の画情報から複数のセグメントか
らなる輪郭線データを生成する際に、輪郭抽出手段が、
互いに隣接する4つの画素の接点に位置する各格子点に
おける輪郭線の連なり方向を前記4つの画素が持つ値に
対応して求めるとともに、各格子点が持つ輪郭線の連な
り方向に基づいて輪郭線を追跡して輪郭線データを抽出
し、平滑化手段が、該抽出された輪郭線を構成する複数
のセグメントのうち、階段状に形成される連続するセグ
メントに対して、各セグメントの中点を連結した新たな
セグメントに置換する。そして、検出手段が、輪郭線を
構成する複数のセグメントのうち、連続したセグメント
であって、各セグメントの端点におけるX座標値が単調
増加又は単調減少し、かつ該端点におけるY座標値が単
調増加又は単調減少し、さらに各セグメントの傾きが単
調増加又は単調減少する複数のセグメントを検出し、曲
線化手段が、該検出された連続するセグメントの始点及
び終点の座標値及び各セグメントの傾きに基づいて、該
連続するセグメントを2つの制御点を有するベジェ曲線
に置換する。
【0021】これにより、ドット形式の画情報からベジ
ェ曲線を含むアウトラインデータを容易に生成すること
ができる。
ェ曲線を含むアウトラインデータを容易に生成すること
ができる。
【0022】
【実施例】以下、本発明の一実施例について図面を参照
して説明する。
して説明する。
【0023】図1は、本発明に係るアウトラインデータ
生成装置の構成を示すブロック図である。
生成装置の構成を示すブロック図である。
【0024】図1に示すように、このアウトラインデー
タ生成装置は、ドット形式のフォントからアウトライン
データを生成する装置であり、入力部10と、出力部1
1と、記憶部12と、メモリ13と、アウトラインデー
タ生成部14とから構成される。
タ生成装置は、ドット形式のフォントからアウトライン
データを生成する装置であり、入力部10と、出力部1
1と、記憶部12と、メモリ13と、アウトラインデー
タ生成部14とから構成される。
【0025】入力部10は、アウトラインデータの作成
指示等を行う入力部であり、マウス等のポインティング
デバイス又はキーボード等から構成される。
指示等を行う入力部であり、マウス等のポインティング
デバイス又はキーボード等から構成される。
【0026】出力部11は、アウトラインデータ生成部
14において生成したアウトラインデータが出力される
出力先であり、例えば該アウトラインデータを表示する
際の画像メモリ等が該当する。
14において生成したアウトラインデータが出力される
出力先であり、例えば該アウトラインデータを表示する
際の画像メモリ等が該当する。
【0027】記憶部12は、アウトラインデータ生成の
基となるドット形式で表現された各種フォントデータ
(以下「ドットデータ」と言う。)を記憶する記憶部で
あり、ハードディスク等により構成される。
基となるドット形式で表現された各種フォントデータ
(以下「ドットデータ」と言う。)を記憶する記憶部で
あり、ハードディスク等により構成される。
【0028】メモリ13は、記憶部12に記憶されたド
ットデータのうち、アウトラインデータの作成対象とし
て入力部10から指定されたドットデータを保持する記
憶デバイスであり、RAM等のメモリ素子から構成され
る。なお、このメモリ13内には、アウトラインデータ
作成途中のワークデータをマトリックス形式で格納する
ためのワークメモリ領域についても設けられる。
ットデータのうち、アウトラインデータの作成対象とし
て入力部10から指定されたドットデータを保持する記
憶デバイスであり、RAM等のメモリ素子から構成され
る。なお、このメモリ13内には、アウトラインデータ
作成途中のワークデータをマトリックス形式で格納する
ためのワークメモリ領域についても設けられる。
【0029】アウトラインデータ生成部14は、メモリ
13上に保持するドットデータからアウトラインデータ
を生成して、出力部11に出力する処理部であり、輪郭
抽出部140と、平滑化処理部141と、対象セグメン
ト抽出部142a及び制御点処理部142bを内在する
曲線化処理部142とから構成される。
13上に保持するドットデータからアウトラインデータ
を生成して、出力部11に出力する処理部であり、輪郭
抽出部140と、平滑化処理部141と、対象セグメン
ト抽出部142a及び制御点処理部142bを内在する
曲線化処理部142とから構成される。
【0030】輪郭抽出部140は、各画素が隣接する格
子点に着目し、該格子点を取り巻く各画素の状態を参酌
して後述する追跡処理を用うことにより、メモリ13上
に保持するドットデータに基づいて直線からなる輪郭線
データを抽出し、平滑化処理部141又は曲線化処理部
142に対して該輪郭線データを出力する処理部であ
る。
子点に着目し、該格子点を取り巻く各画素の状態を参酌
して後述する追跡処理を用うことにより、メモリ13上
に保持するドットデータに基づいて直線からなる輪郭線
データを抽出し、平滑化処理部141又は曲線化処理部
142に対して該輪郭線データを出力する処理部であ
る。
【0031】平滑化処理部141は、輪郭抽出部140
が抽出した輪郭線データに対して、後述する平滑化処理
を行う処理部であり、処理結果を曲線化処理部142又
は出力部11に出力する。
が抽出した輪郭線データに対して、後述する平滑化処理
を行う処理部であり、処理結果を曲線化処理部142又
は出力部11に出力する。
【0032】曲線化処理部142は、平滑化処理部14
1から受け取った輪郭線データを構成するセグメントの
うち所定の条件を満たすセグメントを、「ページ記述言
語POSTSCRIPTリファレンスマニュアル」(Adobe System
著、松村訳、アスキー出版社、1988年)等に開示され
るベジェ関数を用いて曲線化した輪郭線を、出力部11
に出力する処理部である。
1から受け取った輪郭線データを構成するセグメントの
うち所定の条件を満たすセグメントを、「ページ記述言
語POSTSCRIPTリファレンスマニュアル」(Adobe System
著、松村訳、アスキー出版社、1988年)等に開示され
るベジェ関数を用いて曲線化した輪郭線を、出力部11
に出力する処理部である。
【0033】また、この曲線化処理部142は、対象セ
グメント抽出部142a及び制御点処理部142bから
構成される。
グメント抽出部142a及び制御点処理部142bから
構成される。
【0034】対象セグメント抽出部142aは、輪郭線
を構成するセグメントのうち、セグメントの傾きが単調
増加又は単調減少であるセグメントを、曲線化対象セグ
メントとして抽出し、制御点処理部142bに出力する
処理部である。
を構成するセグメントのうち、セグメントの傾きが単調
増加又は単調減少であるセグメントを、曲線化対象セグ
メントとして抽出し、制御点処理部142bに出力する
処理部である。
【0035】制御点処理部142bは、対象セグメント
抽出部142aが抽出したセグメントを受け取り、該セ
グメントをベジェ曲線に置換するためにベジェ曲線の制
御点を求めるとともに、該セグメントを該制御点を用い
て曲線化した後出力部11に出力する処理部である。
抽出部142aが抽出したセグメントを受け取り、該セ
グメントをベジェ曲線に置換するためにベジェ曲線の制
御点を求めるとともに、該セグメントを該制御点を用い
て曲線化した後出力部11に出力する処理部である。
【0036】次に、上記構成を有するアウトラインデー
タ生成部14の処理手順について説明する。
タ生成部14の処理手順について説明する。
【0037】図2は、アウトラインデータ生成部14の
処理手順を示すフローチャートである。
処理手順を示すフローチャートである。
【0038】図2に示すように、入力部10からアウト
ラインデータの作成指示入力がなされたならば、アウト
ラインデータ作成部14は該当するドット形式のフォン
トを記憶部12から読み出し(ステップ201)、メモ
リ13に記憶する。
ラインデータの作成指示入力がなされたならば、アウト
ラインデータ作成部14は該当するドット形式のフォン
トを記憶部12から読み出し(ステップ201)、メモ
リ13に記憶する。
【0039】そして、輪郭抽出部140は、注目格子点
を取り巻く4画素のデータを調べ、該4画素のパターン
に対応する格子点を次の格子点として選択する処理を繰
り返すことにより輪郭線を抽出する(ステップ20
2)。
を取り巻く4画素のデータを調べ、該4画素のパターン
に対応する格子点を次の格子点として選択する処理を繰
り返すことにより輪郭線を抽出する(ステップ20
2)。
【0040】なお、本実施例では、次の格子点を選択す
る際に、現格子点の隣接4画素をサーチすることとした
が、近傍12画素又は近傍16画素というようにサーチ
する範囲を拡張することも可能である。
る際に、現格子点の隣接4画素をサーチすることとした
が、近傍12画素又は近傍16画素というようにサーチ
する範囲を拡張することも可能である。
【0041】次に、平滑化処理部141による平滑化処
理を行うか否かを確認し(ステップ141)、平滑化処
理を行わない場合にはステップ205に移行するのに対
して、平滑化処理を行う場合には、輪郭線抽出部140
は該輪郭線を平滑化処理部に出力する。
理を行うか否かを確認し(ステップ141)、平滑化処
理を行わない場合にはステップ205に移行するのに対
して、平滑化処理を行う場合には、輪郭線抽出部140
は該輪郭線を平滑化処理部に出力する。
【0042】そして、この輪郭線を受け取った平滑化処
理部141は、該輪郭線の直線部に生じる階段状の段差
をなくする直線化処理を行う(ステップ204)。
理部141は、該輪郭線の直線部に生じる階段状の段差
をなくする直線化処理を行う(ステップ204)。
【0043】次に、この平滑化処理部141は、曲線化
処理部142による曲線化処理を行うか否かを確認し
(ステップ205)、曲線化処理を行わない場合にはス
テップ208に移行するのに対して、曲線化処理を行う
場合には、平滑化した輪郭線を曲線化処理部142に出
力する。
処理部142による曲線化処理を行うか否かを確認し
(ステップ205)、曲線化処理を行わない場合にはス
テップ208に移行するのに対して、曲線化処理を行う
場合には、平滑化した輪郭線を曲線化処理部142に出
力する。
【0044】そして、この輪郭線を受け取った曲線化処
理部142では、対象セグメント抽出部142aが曲線
化対象となるセグメントを抽出した後(ステップ20
6)、制御点処理部142bが該セグメントに対応する
ベジェ曲線の制御点を求めてセグメントの曲線化を行い
出力部11に出力する(ステップ207、ステップ20
8)。
理部142では、対象セグメント抽出部142aが曲線
化対象となるセグメントを抽出した後(ステップ20
6)、制御点処理部142bが該セグメントに対応する
ベジェ曲線の制御点を求めてセグメントの曲線化を行い
出力部11に出力する(ステップ207、ステップ20
8)。
【0045】上記一連の処理を行うことにより、記憶部
12に記憶したドットデータのうち入力部10から指定
されたドットデータの輪郭線データを抽出し、必要に応
じて平滑化処理及び曲線化処理を行った後、該輪郭線デ
ータをアウトラインデータとして出力することが可能と
なる。
12に記憶したドットデータのうち入力部10から指定
されたドットデータの輪郭線データを抽出し、必要に応
じて平滑化処理及び曲線化処理を行った後、該輪郭線デ
ータをアウトラインデータとして出力することが可能と
なる。
【0046】次に、上記ステップ202に示す輪郭線抽
出処理、ステップ204に示す平滑化処理、及びステッ
プ207に示す制御点処理について、具体例を用いてさ
らに詳細に説明する。
出処理、ステップ204に示す平滑化処理、及びステッ
プ207に示す制御点処理について、具体例を用いてさ
らに詳細に説明する。
【0047】図3は、輪郭線抽出部140が行う輪郭線
抽出処理(ステップ202)の具体例を示す図である。
抽出処理(ステップ202)の具体例を示す図である。
【0048】図3(a)に示すように、線幅が1ドット
で構成されているドットデータ”J”から輪郭線データ
を抽出する際には、各ドットの交差点に位置する格子点
に着目し、該格子点が近傍格子点と連なる方向を示す0
〜Fの値(以下「方向値」と言う。)を各格子点ごとに
求め、この格子点を追跡することにより輪郭線を形成す
る。
で構成されているドットデータ”J”から輪郭線データ
を抽出する際には、各ドットの交差点に位置する格子点
に着目し、該格子点が近傍格子点と連なる方向を示す0
〜Fの値(以下「方向値」と言う。)を各格子点ごとに
求め、この格子点を追跡することにより輪郭線を形成す
る。
【0049】すなわち、本発明では、ドットデータで表
現されたフォントの輪郭線は、格子点の連続性により表
現できるという着想に基づき、各格子点を取り巻く隣接
画素の状態を参酌したうえで方向値を決定し、該格子点
の座標位置に対応づけたワークメモリWの座標位置に該
方向値を格納する。そして、このワークメモリW上の方
向値を追跡して輪郭線を抽出する。
現されたフォントの輪郭線は、格子点の連続性により表
現できるという着想に基づき、各格子点を取り巻く隣接
画素の状態を参酌したうえで方向値を決定し、該格子点
の座標位置に対応づけたワークメモリWの座標位置に該
方向値を格納する。そして、このワークメモリW上の方
向値を追跡して輪郭線を抽出する。
【0050】なお、本発明では、格子点の隣接画素の持
つデータを利用するため、ドットデータを構成するマト
リックスの範囲外についてもドット値を付与する必要が
ある。そこで、本実施例では、マトリックスの範囲外の
部分については、ドット値’0’を付与している。
つデータを利用するため、ドットデータを構成するマト
リックスの範囲外についてもドット値を付与する必要が
ある。そこで、本実施例では、マトリックスの範囲外の
部分については、ドット値’0’を付与している。
【0051】次に、ドットデータを構成する各格子点に
対する方向値の付与について説明する。
対する方向値の付与について説明する。
【0052】図3(b)に示すように、本実施例では、
マスクパターン30〜3fにそれぞれ対応する0〜Fと
いう16通りの方向値を用いている。
マスクパターン30〜3fにそれぞれ対応する0〜Fと
いう16通りの方向値を用いている。
【0053】すなわち、格子点を取り巻く4画素が、マ
スクパターン30に表されるように全て’0’である場
合には、ワークメモリWの該格子点に対応する画素位置
に、対応する方向値’0’を付与する。
スクパターン30に表されるように全て’0’である場
合には、ワークメモリWの該格子点に対応する画素位置
に、対応する方向値’0’を付与する。
【0054】同様に、格子点を取り巻く4画素が、マス
クパターン31〜3fのいずれかの状態にあれば、ワー
クメモリWの該格子点に対応する画素位置に、対応する
方向値1〜Fのいずれかを付与する。
クパターン31〜3fのいずれかの状態にあれば、ワー
クメモリWの該格子点に対応する画素位置に、対応する
方向値1〜Fのいずれかを付与する。
【0055】このようにして、ワークメモリWの該格子
点に対応する画素位置に方向値を格納することにより、
図4(a)に示す方向値から構成されるワークメモリW
が得られる。
点に対応する画素位置に方向値を格納することにより、
図4(a)に示す方向値から構成されるワークメモリW
が得られる。
【0056】次に、このワークメモリ内をサーチし、各
画素が持つ方向値に基づいて輪郭線の追跡処理を行うこ
とにより図4(b)に示す輪郭線データを得ることがで
きる。
画素が持つ方向値に基づいて輪郭線の追跡処理を行うこ
とにより図4(b)に示す輪郭線データを得ることがで
きる。
【0057】すなわち、図4(a)に示すワークメモリ
Wの画素4aから輪郭線追跡の開始(以下「追跡開始画
素」と言う。)画素を順次走査することにより、方向
値’8’を有する画素4bが追跡開始画素であることを
確認する。
Wの画素4aから輪郭線追跡の開始(以下「追跡開始画
素」と言う。)画素を順次走査することにより、方向
値’8’を有する画素4bが追跡開始画素であることを
確認する。
【0058】また、この追跡開始画素4bの方向値は’
8’であるため、図3(b)に示すテーブルから、この
画素では、下方(以下「−Y方向」よ言う。)から輪郭
線が到来して、右方向(以下「X方向」と言う。)に向
かっていると判断し、現画素の右隣に位置する画素4c
を次の追跡画素とする。
8’であるため、図3(b)に示すテーブルから、この
画素では、下方(以下「−Y方向」よ言う。)から輪郭
線が到来して、右方向(以下「X方向」と言う。)に向
かっていると判断し、現画素の右隣に位置する画素4c
を次の追跡画素とする。
【0059】以下、同様にして、追跡開始画素4aに戻
るまで画素追跡を行うことにより、図4(b)に示す輪
郭線データを得ることができる。
るまで画素追跡を行うことにより、図4(b)に示す輪
郭線データを得ることができる。
【0060】このように、本発明によれば、格子点の隣
接画素の状態を考慮して、方向値を付与するとともに、
該方向値に基づき輪郭線の追跡を行うことにより、1ド
ットの幅からなるドットデータからでも輪郭線を抽出す
ることができる。
接画素の状態を考慮して、方向値を付与するとともに、
該方向値に基づき輪郭線の追跡を行うことにより、1ド
ットの幅からなるドットデータからでも輪郭線を抽出す
ることができる。
【0061】次に、複数の閉曲線から輪郭線が構成され
る場合について説明する。
る場合について説明する。
【0062】図5は、ドットデータ’回’から輪郭線デ
ータを抽出する具体例を示す図である。
ータを抽出する具体例を示す図である。
【0063】図5(a)に示すドットデータ’回’の輪
郭線を抽出するためには、図4に示すドットデータ’
J’の場合と同様に、格子点の隣接画素に応じて図3
(b)に示す方向値をワークメモリWに格納することに
より、図5(b)に示すワークメモリWが得られる。
郭線を抽出するためには、図4に示すドットデータ’
J’の場合と同様に、格子点の隣接画素に応じて図3
(b)に示す方向値をワークメモリWに格納することに
より、図5(b)に示すワークメモリWが得られる。
【0064】そして、このワークメモリWを走査するこ
とにより、追跡開始画素5aから輪郭線の追跡を開始
し、輪郭線を構成する1つの閉曲線を得ることができ
る。
とにより、追跡開始画素5aから輪郭線の追跡を開始
し、輪郭線を構成する1つの閉曲線を得ることができ
る。
【0065】ところで、この具体例では、輪郭線を構成
する他の閉曲線が存在するため、前追跡開始画素5aか
ら、新たな追跡開始画素の走査を再開する。
する他の閉曲線が存在するため、前追跡開始画素5aか
ら、新たな追跡開始画素の走査を再開する。
【0066】すなわち、画素5bが次の追跡開始画素と
して選択され、同様の手順で追跡されることにより、別
の閉曲線を得ることができる。
して選択され、同様の手順で追跡されることにより、別
の閉曲線を得ることができる。
【0067】同様に、画素5c及び画素5dを追跡開始
画素とする追跡処理を行うことにより、図5(c)に示
す輪郭線を得ることができる。
画素とする追跡処理を行うことにより、図5(c)に示
す輪郭線を得ることができる。
【0068】ここで、本実施例では、追跡の重複を防止
するために、画素5aを追跡開始画素として追跡された
各画素は、0〜F以外のデータに置換することとする
が、輪郭データを確定する際に、新たなワークメモリに
書き込むよう構成することもできる。
するために、画素5aを追跡開始画素として追跡された
各画素は、0〜F以外のデータに置換することとする
が、輪郭データを確定する際に、新たなワークメモリに
書き込むよう構成することもできる。
【0069】次に、上記輪郭線抽出部140が行う輪郭
線抽出処理の流れを図6に示すフローチャートを用いて
説明する。
線抽出処理の流れを図6に示すフローチャートを用いて
説明する。
【0070】図6に示すように、まず最初にドットデー
タの各格子点を取り巻く近傍画素の状態を参酌して、該
格子点に対応する方向値を抽出し、ワークメモリWに格
納する(ステップ601)。
タの各格子点を取り巻く近傍画素の状態を参酌して、該
格子点に対応する方向値を抽出し、ワークメモリWに格
納する(ステップ601)。
【0071】そして、このワークメモリWを走査し、所
定の方向値を有する画素を追跡開始画素として選定する
(ステップ602)。そして、追跡開始画素が存在する
か否かを確認し(ステップ603)、追跡開始画素が存
在する場合には、該画素の有する方向値に基づいて順次
追跡処理を行う(ステップ604)とともに、追跡処理
済みの画素値を処理済みを示す値に置換する(ステップ
605)。
定の方向値を有する画素を追跡開始画素として選定する
(ステップ602)。そして、追跡開始画素が存在する
か否かを確認し(ステップ603)、追跡開始画素が存
在する場合には、該画素の有する方向値に基づいて順次
追跡処理を行う(ステップ604)とともに、追跡処理
済みの画素値を処理済みを示す値に置換する(ステップ
605)。
【0072】この際、ワークメモリW以外に処理結果を
格納するためのメモリが存在する場合には、追跡処理後
に画素値をクリアすれば良い。
格納するためのメモリが存在する場合には、追跡処理後
に画素値をクリアすれば良い。
【0073】また、上記ステップ604及び605の処
理は、追跡開始画素に戻るまで繰り返される(ステップ
606)。
理は、追跡開始画素に戻るまで繰り返される(ステップ
606)。
【0074】そして、ある追跡開始画素から開始した追
跡処理が終了したならば、他の追跡開始画素が存在する
か否かを調べる。
跡処理が終了したならば、他の追跡開始画素が存在する
か否かを調べる。
【0075】具体的には、前追跡開始画素位置から再度
新たな追跡開始画素のサーチを行い(ステップ60
2)、新たな追跡開始画素が存在する場合には同様の処
理を行い、新たな追跡開始画素が存在しない場合には処
理を終了する。
新たな追跡開始画素のサーチを行い(ステップ60
2)、新たな追跡開始画素が存在する場合には同様の処
理を行い、新たな追跡開始画素が存在しない場合には処
理を終了する。
【0076】上記一連の処理を行うことにより、1ドッ
ト幅からなるドットデータからでも輪郭線を抽出するこ
とができる。
ト幅からなるドットデータからでも輪郭線を抽出するこ
とができる。
【0077】次に、平滑化処理部141が行う平滑化処
理(ステップ204)について具体例を用いて説明す
る。
理(ステップ204)について具体例を用いて説明す
る。
【0078】図7は、輪郭線抽出部140が抽出した線
分の拡大図(図7(a))と、該線分に対して平滑化処
理を行った処理結果(図7(b))を示す図である。
分の拡大図(図7(a))と、該線分に対して平滑化処
理を行った処理結果(図7(b))を示す図である。
【0079】上記輪郭線抽出部140が抽出した輪郭線
は、単に境界線をトレースしたものにすぎないため、図
7(a)に示すように、斜め方向の輪郭線が階段状に形
成される場合が生じる。
は、単に境界線をトレースしたものにすぎないため、図
7(a)に示すように、斜め方向の輪郭線が階段状に形
成される場合が生じる。
【0080】このため、本実施例では、平滑化処理部1
41を用いて、かかる階段状に形成される線分の直線化
を行っている。
41を用いて、かかる階段状に形成される線分の直線化
を行っている。
【0081】すなわち、本実施例では、図7(a)に示
すように、輪郭線抽出部140が抽出した輪郭線を構成
する点列が、a0=(x0,y0),a1=(x1,y
1),〜,a7=(x7,y7)であり、各点列間を結
ぶ線分がl0,l1,〜,l7である場合には、始点が
(x0,y0)で、終点が(x7,y7)であり、各線
分l0〜l7の中点を通るように構成している。
すように、輪郭線抽出部140が抽出した輪郭線を構成
する点列が、a0=(x0,y0),a1=(x1,y
1),〜,a7=(x7,y7)であり、各点列間を結
ぶ線分がl0,l1,〜,l7である場合には、始点が
(x0,y0)で、終点が(x7,y7)であり、各線
分l0〜l7の中点を通るように構成している。
【0082】したがって、新たに設けられる点列b1〜
b7は、図7(b)に示すように、b0=(x0,y
0),b1=((x1+x2)/2,(y1+y2)/
2),〜,b6=(x7,y7)となる。
b7は、図7(b)に示すように、b0=(x0,y
0),b1=((x1+x2)/2,(y1+y2)/
2),〜,b6=(x7,y7)となる。
【0083】このように、点列を構成する各二点間の中
点を通るように構成することにより、階段状等に構成さ
れる線分を平滑化することができる。
点を通るように構成することにより、階段状等に構成さ
れる線分を平滑化することができる。
【0084】次に、平滑化処理部141が行う上記処理
手順について、図8に示すフローチャートを用いて説明
する。
手順について、図8に示すフローチャートを用いて説明
する。
【0085】図8に示すように、まず最初に、平滑化す
べき線分を構成する点列を保持するとともに、始点及び
終点を確定した後、変数iを初期化する(i=1)(ス
テップ801)。なお、本実施例では、線分はa0〜a
nの点列から構成され、変数iを線分の点列番号に対応
させている(1≦i≦n−1)。
べき線分を構成する点列を保持するとともに、始点及び
終点を確定した後、変数iを初期化する(i=1)(ス
テップ801)。なお、本実施例では、線分はa0〜a
nの点列から構成され、変数iを線分の点列番号に対応
させている(1≦i≦n−1)。
【0086】そして、点列数nが3以上であるか否かを
確認し(ステップ802)、nが3未満である場合には
処理を終了する。ここで、点列数nが3以上であるか否
かを確認したのは、点列数が2以下の場合には、線分が
階段状等に形成される場合がないので、平滑化処理を行
わないよう構成するためである。
確認し(ステップ802)、nが3未満である場合には
処理を終了する。ここで、点列数nが3以上であるか否
かを確認したのは、点列数が2以下の場合には、線分が
階段状等に形成される場合がないので、平滑化処理を行
わないよう構成するためである。
【0087】これに対して、点列数nが3以上であるこ
とが確認されたならば、 bi=((xi + xi+1)/2,(yi + yi
+1)/2) の算定式を用いて、各線分の終点biを計算するととも
に、変数iをインクリメントする(i=i+1)(ステ
ップ803)。
とが確認されたならば、 bi=((xi + xi+1)/2,(yi + yi
+1)/2) の算定式を用いて、各線分の終点biを計算するととも
に、変数iをインクリメントする(i=i+1)(ステ
ップ803)。
【0088】そして、変数iがn−2よりも小さい(i
>n−2)場合には、ステップ803に移行して上記処
理を繰り返す(ステップ804)とともに、変数iがn
−2となった場合には(i=n−2)、 b0 =(x0,y0)、 bn-1=(xn,yn) として、始点及び終点を確定した後(ステップ805)
処理を終了する。
>n−2)場合には、ステップ803に移行して上記処
理を繰り返す(ステップ804)とともに、変数iがn
−2となった場合には(i=n−2)、 b0 =(x0,y0)、 bn-1=(xn,yn) として、始点及び終点を確定した後(ステップ805)
処理を終了する。
【0089】上記一連の処理を行うことにより、線分が
階段状に形成される場合の線分を平滑化して直線化する
ことができることになる。
階段状に形成される場合の線分を平滑化して直線化する
ことができることになる。
【0090】次に曲線化処理部142が行う曲線化処理
(ステップ206〜ステップ207)について詳細に説
明する。
(ステップ206〜ステップ207)について詳細に説
明する。
【0091】図9は、平滑化処理部141が平滑化した
輪郭線の一部分を拡大した図である。
輪郭線の一部分を拡大した図である。
【0092】図9(a)に示すように、始点(x0,y
0)から終点(xn,yn)に至る点列からなる線分が
ある場合には、曲線化処理部142が該点列をベジェ曲
線制御点に置換する。
0)から終点(xn,yn)に至る点列からなる線分が
ある場合には、曲線化処理部142が該点列をベジェ曲
線制御点に置換する。
【0093】具体的には、まず対象セグメント抽出部1
42aが、連続するセグメントであって、X座標値が単
調増加又は単調減少であり、またY座標値も単調増加又
は単調減少であり、各セグメントの傾きが単調増加又は
単調減少であるものを曲線化対象として抽出する。
42aが、連続するセグメントであって、X座標値が単
調増加又は単調減少であり、またY座標値も単調増加又
は単調減少であり、各セグメントの傾きが単調増加又は
単調減少であるものを曲線化対象として抽出する。
【0094】例えば、図9(a)の場合には、座標原点
を左上隅に設けたとすると、各セグメントの端点におけ
るX座標値、すなわちx0、x1、x2、x3、x4、
xnが逐次単調に増加し、また、端点におけるY座標
値、すなわちy0、y1、y2、y3、y4、ynにつ
いても単調に増加している。
を左上隅に設けたとすると、各セグメントの端点におけ
るX座標値、すなわちx0、x1、x2、x3、x4、
xnが逐次単調に増加し、また、端点におけるY座標
値、すなわちy0、y1、y2、y3、y4、ynにつ
いても単調に増加している。
【0095】また、各セグメントの傾き、すなわち セグメント((x0,y0)−(x1,y1))、 セグメント((x1,y1)−(x2,y2))、 セグメント((x2,y2)−(x3,y3))、 セグメント((x3,y3)−(x4,y4))及び セグメント((x4,y4)−(xn,yn)) の傾きについても単調に増加しているため、図9(a)
に示す一連のセグメントは曲線化対象となる。
に示す一連のセグメントは曲線化対象となる。
【0096】なお、セグメントの端点におけるX座標及
びY座標がそれぞれ単調増加又は単調減少であり、かつ
各セグメントの傾きが単調増加又は単調減少であること
を曲線化対象の条件としたのは、X座標値及びY座標値
が単調である限り、連続するセグメントの始点(x0,
y0)〜P〜終点(xn,yn)の三角形内に各セグメ
ントが納まり、かつ、各セグメントの傾きが単調である
限り、上記三角形内で輪郭線が波打つことがないため、
この連続するセグメントを容易にベジェ曲線に置換でき
るからである。
びY座標がそれぞれ単調増加又は単調減少であり、かつ
各セグメントの傾きが単調増加又は単調減少であること
を曲線化対象の条件としたのは、X座標値及びY座標値
が単調である限り、連続するセグメントの始点(x0,
y0)〜P〜終点(xn,yn)の三角形内に各セグメ
ントが納まり、かつ、各セグメントの傾きが単調である
限り、上記三角形内で輪郭線が波打つことがないため、
この連続するセグメントを容易にベジェ曲線に置換でき
るからである。
【0097】また、制御点処理部142bは、上記対象
セグメント抽出部142aが抽出した一連のセグメント
に対応する制御点を算出して、曲線化を行う。
セグメント抽出部142aが抽出した一連のセグメント
に対応する制御点を算出して、曲線化を行う。
【0098】例えば、図9(a)に示すセグメントの場
合には、始点が(x0,y0)、終点が(xn,yn)
で、制御点が(s1,y0)及び(xn,t1)である
ベジェ曲線に置換される(図9(b))。なお、このs
1及びt1は、直線の傾き及び三角形の傾きの割合に基
づいて算定される。
合には、始点が(x0,y0)、終点が(xn,yn)
で、制御点が(s1,y0)及び(xn,t1)である
ベジェ曲線に置換される(図9(b))。なお、このs
1及びt1は、直線の傾き及び三角形の傾きの割合に基
づいて算定される。
【0099】次に、2つの極端な場合を捕らえて、この
s1及びt1の算定手順について説明する。なお、以下
では、制御点の座標を大文字X及びYで示すものとす
る。
s1及びt1の算定手順について説明する。なお、以下
では、制御点の座標を大文字X及びYで示すものとす
る。
【0100】まず、図10(a)に示すように、セグメ
ントの傾きがX軸方向である場合には、Y0=Y1=Y
2=Y3であるため、セグメントの始点(X0,Y0)
及び終点(X3,Y3)のみを用いてセグメントを表す
ことができる(ただし、X1=X2=X3とする。)。
ントの傾きがX軸方向である場合には、Y0=Y1=Y
2=Y3であるため、セグメントの始点(X0,Y0)
及び終点(X3,Y3)のみを用いてセグメントを表す
ことができる(ただし、X1=X2=X3とする。)。
【0101】ここで、X1について着目し、該X1から
X0の距離X1−X0は、X3からX0の距離X3−X
0に等しいことから、このX1はX3に比して長さが
1.00(100%)であるとする。
X0の距離X1−X0は、X3からX0の距離X3−X
0に等しいことから、このX1はX3に比して長さが
1.00(100%)であるとする。
【0102】また、図10(b)に示すように、セグメ
ントの傾きが終点(X3,Y3)方向である場合には、
X0=X1で表すことができるため、このX1に関して
はX3に比して長さが0.00(0%)であるとする。
ントの傾きが終点(X3,Y3)方向である場合には、
X0=X1で表すことができるため、このX1に関して
はX3に比して長さが0.00(0%)であるとする。
【0103】したがって、このX1を0(X1=X0)
から1(X1=X3)まで変化させ、またY1について
も同様に0から1まで変化させることにより、曲線を表
現することが可能となる。
から1(X1=X3)まで変化させ、またY1について
も同様に0から1まで変化させることにより、曲線を表
現することが可能となる。
【0104】すなわち、この制御点処理部142bで
は、上記両極端の場合を基準とし、X軸方向及びY軸方
向に影響を与えるセグメントの傾き及び該セグメントを
包含する三角形の傾きから、比例計算により制御点のX
座標及びY座標を算定しているのである。
は、上記両極端の場合を基準とし、X軸方向及びY軸方
向に影響を与えるセグメントの傾き及び該セグメントを
包含する三角形の傾きから、比例計算により制御点のX
座標及びY座標を算定しているのである。
【0105】次に、上記制御点処理部142bが行う制
御点算出処理を具体例を用いてさらに詳細に説明する。
御点算出処理を具体例を用いてさらに詳細に説明する。
【0106】図11は、単調に増加する2つのセグメン
トから制御点を算出して曲線化した場合を示す図であ
る。
トから制御点を算出して曲線化した場合を示す図であ
る。
【0107】図11(a)に示すように、始点(0,
0)から終点(7,1)に至るセグメントlと、始点
(7,1)から終点(8,10)に至るセグメントmが
存在する場合には、 三角形のX方向の長さ(X)=8 三角形のY方向の長さ(Y)=10 であり、 三角形の斜辺についてのX方向の傾き(Xd)=10/
8 となるので、X方向については、この傾きXdがしきい
値となる。
0)から終点(7,1)に至るセグメントlと、始点
(7,1)から終点(8,10)に至るセグメントmが
存在する場合には、 三角形のX方向の長さ(X)=8 三角形のY方向の長さ(Y)=10 であり、 三角形の斜辺についてのX方向の傾き(Xd)=10/
8 となるので、X方向については、この傾きXdがしきい
値となる。
【0108】そして、この傾き以下のセグメントが曲線
に影響を与えるため、セグメントl及びmのX方向の傾
きをそれぞれ求めると、 セグメントlの傾き(lx)=1/7 セグメントmの傾き(mx)=9/1 となる。
に影響を与えるため、セグメントl及びmのX方向の傾
きをそれぞれ求めると、 セグメントlの傾き(lx)=1/7 セグメントmの傾き(mx)=9/1 となる。
【0109】すなわち、X方向についてはセグメントl
が影響を与えることが分かるため、X1の座標は、 X1=(X3−X0)×(1−lx/Xd) =8×{1−(1/7)(10/8)} =216/35 となる。
が影響を与えることが分かるため、X1の座標は、 X1=(X3−X0)×(1−lx/Xd) =8×{1−(1/7)(10/8)} =216/35 となる。
【0110】同様に、 三角形の斜辺についてのY方向の傾き(Yd)=8/1
0 がしきい値となり、また、 セグメントlの傾き(ly)=7/1 セグメントmの傾き(my)=1/9 であるため、Y方向についてはセグメントmが影響を与
えることが分かる。
0 がしきい値となり、また、 セグメントlの傾き(ly)=7/1 セグメントmの傾き(my)=1/9 であるため、Y方向についてはセグメントmが影響を与
えることが分かる。
【0111】このため、Y1の座標は、 Y1=(Y3−Y0)×(my/Yd) =10×(5/36) =25/18 となる。
【0112】したがって、この場合のベジェ曲線の始
点、終点及び2つの制御点の座標値は、(0,0)、
(216/35,0)、(8,25/18),(8,1
0)となり、該セグメントは図11(b)に示す曲線に
置換される。
点、終点及び2つの制御点の座標値は、(0,0)、
(216/35,0)、(8,25/18),(8,1
0)となり、該セグメントは図11(b)に示す曲線に
置換される。
【0113】次に、4つのセグメントから構成される輪
郭線分を曲線に置換する場合について説明する。
郭線分を曲線に置換する場合について説明する。
【0114】図12は、単調に増加する4つのセグメン
トから制御点を算出して曲線化した場合を示す図であ
る。
トから制御点を算出して曲線化した場合を示す図であ
る。
【0115】図12(a)に示すように、始点(0,
0)から終点(3,1)に至るセグメントaと、始点
(3,1)から終点(5,2)に至るセグメントbと、
始点(5,2)から終点(6,4)に至るセグメントc
と、始点(6,4)から終点(8,10)に至るセグメ
ントdとが存在する場合には、 三角形のX方向の長さ(X)=8 三角形のY方向の長さ(Y)=10 であり、 三角形の斜辺についてのX方向の傾き(Xd)=10/
8 となるので、X方向については、この傾きXdがしきい
値となる。
0)から終点(3,1)に至るセグメントaと、始点
(3,1)から終点(5,2)に至るセグメントbと、
始点(5,2)から終点(6,4)に至るセグメントc
と、始点(6,4)から終点(8,10)に至るセグメ
ントdとが存在する場合には、 三角形のX方向の長さ(X)=8 三角形のY方向の長さ(Y)=10 であり、 三角形の斜辺についてのX方向の傾き(Xd)=10/
8 となるので、X方向については、この傾きXdがしきい
値となる。
【0116】そして、この傾き以下のセグメントが曲線
に影響を与えるため、セグメントa、b、c及びdのX
方向の傾きをそれぞれ求めると、 セグメントaの傾き(ax)=1/3 セグメントbの傾き(bx)=1/2 セグメントcの傾き(cx)=2/1 セグメントdの傾き(dx)=6/2 となる。
に影響を与えるため、セグメントa、b、c及びdのX
方向の傾きをそれぞれ求めると、 セグメントaの傾き(ax)=1/3 セグメントbの傾き(bx)=1/2 セグメントcの傾き(cx)=2/1 セグメントdの傾き(dx)=6/2 となる。
【0117】すなわち、X方向についてはセグメントa
及びセグメントbが影響を与えることが分かるため、X
1の座標は、 X1=(X3−X0)×(1−ax/Xd)×(1−b
x/Xd) =8×{1−(4/15)}×{1−(2/5)} =264/75 となる。
及びセグメントbが影響を与えることが分かるため、X
1の座標は、 X1=(X3−X0)×(1−ax/Xd)×(1−b
x/Xd) =8×{1−(4/15)}×{1−(2/5)} =264/75 となる。
【0118】同様に、 三角形の斜辺についてのY方向の傾き(Yd)=8/1
0 がしきい値となり、また、 セグメントaの傾き(ay)=3/1 セグメントbの傾き(by)=2/1 セグメントcの傾き(cy)=1/2 セグメントdの傾き(dy)=2/6 であるため、Y方向についてはセグメントc及びセグメ
ントdが影響を与えることが分かる。
0 がしきい値となり、また、 セグメントaの傾き(ay)=3/1 セグメントbの傾き(by)=2/1 セグメントcの傾き(cy)=1/2 セグメントdの傾き(dy)=2/6 であるため、Y方向についてはセグメントc及びセグメ
ントdが影響を与えることが分かる。
【0119】このため、Y1の座標は、 Y1=(Y3−Y0)×(cy/Yd)×(dy/Y
d) =10×(5/8)×(5/12) =125/48 となる。
d) =10×(5/8)×(5/12) =125/48 となる。
【0120】したがって、この場合のベジェ曲線の始
点、終点及び2つの制御点の座標値は、(0,0)、
(264/75,0)、(8,125/48),(8,
10)となり、該セグメントは図12(b)に示す曲線
に置換される。
点、終点及び2つの制御点の座標値は、(0,0)、
(264/75,0)、(8,125/48),(8,
10)となり、該セグメントは図12(b)に示す曲線
に置換される。
【0121】次に、この制御点処理部142bが行う処
理手順について、図13に示すフローチャートを用いて
説明する。
理手順について、図13に示すフローチャートを用いて
説明する。
【0122】図13に示すように、まず曲線に影響を与
えるセグメントを判断するために、X方向の傾きのしき
い値Xd及びY方向の傾きのしきい値Ydを求めるとと
もに、n個のセグメント(セグメントl0〜セグメント
lnー1)の設定を行う(i=0)(ステップ130
1)。
えるセグメントを判断するために、X方向の傾きのしき
い値Xd及びY方向の傾きのしきい値Ydを求めるとと
もに、n個のセグメント(セグメントl0〜セグメント
lnー1)の設定を行う(i=0)(ステップ130
1)。
【0123】この際、Xd及びYdについては、 Xd = Y/X Yd = X/Y により算定され、また各セグメントについては、 lj = {(xj,yj)−(xj+1,yj+1)} (ただし、0≦j≦n−1) により設定される。
【0124】次に、X方向及びY方向に対する各セグメ
ントの傾きを求める(ステップ1302〜ステップ13
03)。
ントの傾きを求める(ステップ1302〜ステップ13
03)。
【0125】この際、セグメントliのX方向の傾きl
ix及びY方向の傾きliyは、 lix = (yi+1−yi)/(xi+1−xi) liy = (xi+1−xi)/(yi+1−yi) により求めることができる。
ix及びY方向の傾きliyは、 lix = (yi+1−yi)/(xi+1−xi) liy = (xi+1−xi)/(yi+1−yi) により求めることができる。
【0126】次に、各セグメントについて、ステップ1
302で求めたセグメントのX方向の傾きlix及びY
方向の傾きliyが、それぞれステップ1301で求め
たしきい値Xd及びYdより小さいか否かを確認し、該
しきい値よりも小さな傾きを持つセグメントは曲線に影
響を与えるものとみなして保持する(ステップ1305
〜ステップ1308)。
302で求めたセグメントのX方向の傾きlix及びY
方向の傾きliyが、それぞれステップ1301で求め
たしきい値Xd及びYdより小さいか否かを確認し、該
しきい値よりも小さな傾きを持つセグメントは曲線に影
響を与えるものとみなして保持する(ステップ1305
〜ステップ1308)。
【0127】そして、ステップ1308で保持したセグ
メントの傾きと、しきい値から制御点の座標位置X1及
びY2を算定する(ステップ1309)。
メントの傾きと、しきい値から制御点の座標位置X1及
びY2を算定する(ステップ1309)。
【0128】上記一連の処理を行うことにより、一連の
セグメントを曲線化する際の制御点の座標位置を容易に
求めることができる。
セグメントを曲線化する際の制御点の座標位置を容易に
求めることができる。
【0129】上述してきたように、本実施例では、輪郭
抽出部140が、ドットデータの格子点に着目して、該
格子点に角を接する4画素の値によって方向値を格納す
るとともに、輪郭を追跡する方向を決定するよう構成し
たので、ドット幅が1以上で表現されたドット形式の文
字データから輪郭線データを生成することができる。
抽出部140が、ドットデータの格子点に着目して、該
格子点に角を接する4画素の値によって方向値を格納す
るとともに、輪郭を追跡する方向を決定するよう構成し
たので、ドット幅が1以上で表現されたドット形式の文
字データから輪郭線データを生成することができる。
【0130】また、平滑化処理部141が、複数のセグ
メントのそれぞれの中点を連結して輪郭線を平滑化する
よう構成したので、輪郭線を高品質化することができ
る。
メントのそれぞれの中点を連結して輪郭線を平滑化する
よう構成したので、輪郭線を高品質化することができ
る。
【0131】さらに、曲線化処理部142が、平滑化し
た連続するセグメントのうち、X座標値及びY座標値が
それぞれ単調増加又は単調減少し、各セグメントの傾き
が単調減少又は単調増加するものを検出し、該連続する
セグメントの始点及び終点の座標値に基づいて、該連続
するセグメントを2つの制御点を有するベジェ曲線に置
換するよう構成したので、直線成分で構成されるセグメ
ントをベジェ曲線に置換することができる。
た連続するセグメントのうち、X座標値及びY座標値が
それぞれ単調増加又は単調減少し、各セグメントの傾き
が単調減少又は単調増加するものを検出し、該連続する
セグメントの始点及び終点の座標値に基づいて、該連続
するセグメントを2つの制御点を有するベジェ曲線に置
換するよう構成したので、直線成分で構成されるセグメ
ントをベジェ曲線に置換することができる。
【0132】なお、本実施例では、輪郭線抽出部140
が抽出した輪郭線に対して平滑化処理部141が平滑化
を行い、さらに曲線化処理部142が曲線化する場合に
ついて説明したが、本発明はこれに限定されるものでは
なく、それぞれの処理部を独立に処理させることもでき
る。
が抽出した輪郭線に対して平滑化処理部141が平滑化
を行い、さらに曲線化処理部142が曲線化する場合に
ついて説明したが、本発明はこれに限定されるものでは
なく、それぞれの処理部を独立に処理させることもでき
る。
【0133】
【発明の効果】以上詳細に説明したように、本発明で
は、各格子点における輪郭線の連なり方向を、前記4つ
の隣接画素の持つ値に対応して求め、各格子点が有する
方向性に基づいて格子点を追跡して輪郭線データを抽出
するよう構成したので、1ドット幅で構成される線分か
らでもアウトラインデータを抽出することが可能であ
る。
は、各格子点における輪郭線の連なり方向を、前記4つ
の隣接画素の持つ値に対応して求め、各格子点が有する
方向性に基づいて格子点を追跡して輪郭線データを抽出
するよう構成したので、1ドット幅で構成される線分か
らでもアウトラインデータを抽出することが可能であ
る。
【0134】また、本発明では、連続したセグメントで
あって、各セグメントの端点におけるX座標値が単調増
加又は単調減少し、かつ該端点におけるY座標値が単調
増加又は単調減少し、さらに各セグメントの傾きが単調
増加又は単調減少する複数のセグメントを、曲線化の対
象となるセグメントとして検出し、該検出された連続す
るセグメントの始点及び終点の座標値及び各セグメント
の傾きに基づいて、該連続するセグメントを2つの制御
点を有するベジェ曲線に置換するよう構成したので、高
品質なアウトラインデータを効率良く取得することが可
能である。
あって、各セグメントの端点におけるX座標値が単調増
加又は単調減少し、かつ該端点におけるY座標値が単調
増加又は単調減少し、さらに各セグメントの傾きが単調
増加又は単調減少する複数のセグメントを、曲線化の対
象となるセグメントとして検出し、該検出された連続す
るセグメントの始点及び終点の座標値及び各セグメント
の傾きに基づいて、該連続するセグメントを2つの制御
点を有するベジェ曲線に置換するよう構成したので、高
品質なアウトラインデータを効率良く取得することが可
能である。
【0135】また、本発明では、連続するセグメントに
対して、各セグメントの中点を連結した新たなセグメン
トに置換するよう構成したので、輪郭線データの高品質
化を効率良く行うことが可能である。
対して、各セグメントの中点を連結した新たなセグメン
トに置換するよう構成したので、輪郭線データの高品質
化を効率良く行うことが可能である。
【図1】本発明に係るアウトラインデータ生成装置の構
成を示すブロック図。
成を示すブロック図。
【図2】図1に示すアウトラインデータ生成部の処理手
順を示すフローチャート。
順を示すフローチャート。
【図3】図1に示す輪郭線抽出部が処理するドットデー
タ及び処理に用いるマスクパターンを示す図。
タ及び処理に用いるマスクパターンを示す図。
【図4】図3に示すドットデータに対して輪郭線抽出処
理を行った処理結果を示す図。
理を行った処理結果を示す図。
【図5】図1に示す輪郭線抽出部が処理する別のドット
データ及び処理結果を示す図。
データ及び処理結果を示す図。
【図6】図1に示す輪郭線抽出部が行う処理手順を示す
フローチャート。
フローチャート。
【図7】図1に示す平滑化処理部が処理する折れ線デー
タ及び平滑化処理結果を示す図。
タ及び平滑化処理結果を示す図。
【図8】図1に示す平滑化処理部が行う処理手順を示す
フローチャート。
フローチャート。
【図9】図1に示す曲線化処理部が処理する一連のセグ
メント及び処理後に生じる制御点を示す図。
メント及び処理後に生じる制御点を示す図。
【図10】図1に示す曲線化処理部が曲線化を行う際の
極端な場合を示す図。
極端な場合を示す図。
【図11】図1に示す曲線化処理部が処理した具体例を
示す図。
示す図。
【図12】図1に示す曲線化処理部が処理した別の具体
例を示す図。
例を示す図。
【図13】図1に示す曲線化処理部が行う処理手順を示
すフローチャート。
すフローチャート。
10 入力部、 11 出力部、 12 記憶部、 1
3 メモリ、14 アウトラインデータ生成部、 14
0 輪郭抽出部、141 平滑化処理部、 142 曲
線化処理部、142a 対象セグメント抽出部、 14
2b 制御点処理部
3 メモリ、14 アウトラインデータ生成部、 14
0 輪郭抽出部、141 平滑化処理部、 142 曲
線化処理部、142a 対象セグメント抽出部、 14
2b 制御点処理部
Claims (3)
- 【請求項1】 複数の画素を配置して構成されるドット
形式の画情報から複数のセグメントからなる輪郭線デー
タを生成するアウトライン生成装置において、 互いに隣接する4つの画素の接点に位置する各格子点に
おける輪郭線の連なり方向を前記4つの画素が持つ値に
対応して求め、各格子点が持つ輪郭線の連なり方向に基
づいて輪郭線を追跡して輪郭線データを抽出する輪郭抽
出手段を具備したことを特徴とするアウトラインデータ
生成装置。 - 【請求項2】 輪郭線を構成する複数のセグメントのう
ち、連続したセグメントであって、各セグメントの端点
におけるX座標値が単調増加又は単調減少し、かつ該端
点におけるY座標値が単調増加又は単調減少し、さらに
各セグメントの傾きが単調増加又は単調減少する複数の
セグメントを検出する検出手段と、 前記検出手段により検出された連続するセグメントの始
点及び終点の座標値及び各セグメントの傾きに基づい
て、該連続するセグメントを2つの制御点を有するベジ
ェ曲線に置換する曲線化手段とを具備したことを特徴と
するアウトラインデータ生成装置。 - 【請求項3】 複数の画素を配置して構成されるドット
形式の画情報から複数のセグメントからなる輪郭線デー
タを生成するアウトライン生成装置において、 互いに隣接する4つの画素の接点に位置する各格子点に
おける輪郭線の連なり方向を前記4つの画素が持つ値に
対応して求め、各格子点が持つ輪郭線の連なり方向に基
づいて輪郭線を追跡して輪郭線データを抽出する輪郭抽
出手段と、 前記輪郭抽出手段により抽出された連続するセグメント
を、該セグメントの中点を連結した新たなセグメントに
置換する平滑化手段と、 前記輪郭線を構成する複数のセグメントのうち、連続し
たセグメントであって、各セグメントの端点におけるX
座標値が単調増加又は単調減少し、かつ該端点における
Y座標値が単調増加又は単調減少し、さらに各セグメン
トの傾きが単調増加又は単調減少する複数のセグメント
を検出する検出手段と、 前記検出手段により検出された連続するセグメントの始
点及び終点の座標値及び各セグメントの傾きに基づい
て、該連続するセグメントを2つの制御点を有するベジ
ェ曲線に置換する曲線化手段とを具備したことを特徴と
するアウトラインデータ生成装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6056070A JPH07262385A (ja) | 1994-03-25 | 1994-03-25 | アウトラインデータ生成装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6056070A JPH07262385A (ja) | 1994-03-25 | 1994-03-25 | アウトラインデータ生成装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07262385A true JPH07262385A (ja) | 1995-10-13 |
Family
ID=13016830
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6056070A Pending JPH07262385A (ja) | 1994-03-25 | 1994-03-25 | アウトラインデータ生成装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07262385A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10164436A (ja) * | 1996-12-04 | 1998-06-19 | Sony Corp | 輪郭抽出装置、輪郭抽出方法、キー信号生成装置及びキー信号生成方法 |
| JP2019526847A (ja) * | 2016-06-27 | 2019-09-19 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツングRobert Bosch Gmbh | 動的オクルージョン処理のためのシステム及び方法 |
| CN112419444A (zh) * | 2020-12-09 | 2021-02-26 | 北京维盛视通科技有限公司 | 服装板片绘制方法、装置、电子设备及存储介质 |
| CN114818181A (zh) * | 2022-04-21 | 2022-07-29 | 哈尔滨工程大学 | 一种基于齿廓线的直齿圆柱齿轮有限元网格自动生成方法和计算机设备 |
-
1994
- 1994-03-25 JP JP6056070A patent/JPH07262385A/ja active Pending
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10164436A (ja) * | 1996-12-04 | 1998-06-19 | Sony Corp | 輪郭抽出装置、輪郭抽出方法、キー信号生成装置及びキー信号生成方法 |
| JP2019526847A (ja) * | 2016-06-27 | 2019-09-19 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツングRobert Bosch Gmbh | 動的オクルージョン処理のためのシステム及び方法 |
| CN112419444A (zh) * | 2020-12-09 | 2021-02-26 | 北京维盛视通科技有限公司 | 服装板片绘制方法、装置、电子设备及存储介质 |
| CN112419444B (zh) * | 2020-12-09 | 2024-03-29 | 北京维盛视通科技有限公司 | 服装板片绘制方法、装置、电子设备及存储介质 |
| CN114818181A (zh) * | 2022-04-21 | 2022-07-29 | 哈尔滨工程大学 | 一种基于齿廓线的直齿圆柱齿轮有限元网格自动生成方法和计算机设备 |
| CN114818181B (zh) * | 2022-04-21 | 2023-08-25 | 哈尔滨工程大学 | 基于齿廓线直齿圆柱齿轮有限元网格自动生成方法和设备 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5959635A (en) | Character pattern generator | |
| JP2608571B2 (ja) | 入力走査画像データのベクトル化のための装置及び方法 | |
| JP2014167635A (ja) | 低解像度ディスプレイのためのストロークベースのフォント処理方法 | |
| JP5566158B2 (ja) | 画像処理方法、画像処理装置、及びプログラム | |
| JP4543675B2 (ja) | 文字・図形の認識方法 | |
| JP2006171675A (ja) | シルエット化グレーフォント発生方法 | |
| JP3416489B2 (ja) | フォント処理装置およびフォント処理用プログラムを記録した記録媒体 | |
| JP3606006B2 (ja) | 画像形成装置およびグラデーション描画方法 | |
| JPH07334648A (ja) | 画像処理方法及びその装置 | |
| JPH11175740A (ja) | 太線描画方法および装置 | |
| JP3344538B2 (ja) | 文字生成装置 | |
| JP2527187B2 (ja) | 曲線近似によるパタ−ンデ−タの圧縮方式 | |
| KR100871825B1 (ko) | 아웃라인 폰트 정보에 의거한 문자 처리 방법 및 그방법을 컴퓨터 시스템에 실행시키기 위한 컴퓨터소프트 웨어 프로그램 제품 | |
| JP2007121668A (ja) | 地形ポリゴン生成方法 | |
| JP2769673B2 (ja) | ビネット画像変換装置 | |
| JP2819961B2 (ja) | 印刷制御装置 | |
| JP2782753B2 (ja) | 文字パターン変倍装置 | |
| JP2005071243A (ja) | 画像処理装置、方法およびプログラム | |
| JP3536894B2 (ja) | 図形処理装置 | |
| JPH08102858A (ja) | デジタル画像の画像輪郭部の鮮鋭化方法 | |
| JP2782752B2 (ja) | 文字パターン出力装置 | |
| JP2755299B2 (ja) | 画像処理方法 | |
| JP3381326B2 (ja) | アウトラインフォントデータの座標正規化方法,及びアウトラインフォントデータ生成装置 | |
| JP2856704B2 (ja) | 文字発生装置 | |
| JP2776887B2 (ja) | フォントパターン処理方法 |