JP2918465B2 - 画像処理方法 - Google Patents
画像処理方法Info
- Publication number
- JP2918465B2 JP2918465B2 JP6305387A JP30538794A JP2918465B2 JP 2918465 B2 JP2918465 B2 JP 2918465B2 JP 6305387 A JP6305387 A JP 6305387A JP 30538794 A JP30538794 A JP 30538794A JP 2918465 B2 JP2918465 B2 JP 2918465B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- image
- contour
- diagonal
- point
- 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.)
- Expired - Fee Related
Links
- 238000003672 processing method Methods 0.000 title claims description 48
- 239000013598 vector Substances 0.000 claims description 435
- 238000000034 method Methods 0.000 claims description 71
- 230000008569 process Effects 0.000 claims description 38
- 238000006243 chemical reaction Methods 0.000 claims description 30
- 230000009466 transformation Effects 0.000 claims description 25
- 230000009467 reduction Effects 0.000 claims description 17
- 238000000605 extraction Methods 0.000 claims description 10
- 238000002360 preparation method Methods 0.000 claims description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 68
- 238000006073 displacement reaction Methods 0.000 description 36
- 238000012937 correction Methods 0.000 description 35
- 239000003086 colorant Substances 0.000 description 6
- 230000003247 decreasing effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000010422 painting Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 101100087530 Caenorhabditis elegans rom-1 gene Proteins 0.000 description 1
- 101100305983 Mus musculus Rom1 gene Proteins 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/02—Affine transformations
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
【0001】
【産業上の利用分野】本発明は、画像に対し拡大、縮
小、回転などの画像処理を施す方法に関するものであ
る。
小、回転などの画像処理を施す方法に関するものであ
る。
【0002】
【従来の技術】一般に、所望の画像を記録する場合、ま
ず、入力スキャナ等の入力デバイスによってオリジナル
画像を入力し、次に、そのオリジナル画像に対し処理装
置によって拡大、縮小、回転などの画像処理を施し、最
後に、その画像をプリンタ等の出力デバイスによって出
力することが行われている。
ず、入力スキャナ等の入力デバイスによってオリジナル
画像を入力し、次に、そのオリジナル画像に対し処理装
置によって拡大、縮小、回転などの画像処理を施し、最
後に、その画像をプリンタ等の出力デバイスによって出
力することが行われている。
【0003】例えば、入力デバイスによって入力された
画像が、縦1000画素×横1000画素の画像であっ
て、その画像を、1mm当たり20画素の出力解像度を
持つ出力デバイスによって、縦100mm×横100m
mの大きさの画像として出力しようとする場合、処理装
置によって、縦1000画素×横1000画素の画像を
縦2000画素×横2000画素の画像に拡大する必要
がある。そのような画像の拡大を行う場合、従来では、
画素補間を行っており、すなわち、画像を画素の状態の
ままで取り扱っていた。
画像が、縦1000画素×横1000画素の画像であっ
て、その画像を、1mm当たり20画素の出力解像度を
持つ出力デバイスによって、縦100mm×横100m
mの大きさの画像として出力しようとする場合、処理装
置によって、縦1000画素×横1000画素の画像を
縦2000画素×横2000画素の画像に拡大する必要
がある。そのような画像の拡大を行う場合、従来では、
画素補間を行っており、すなわち、画像を画素の状態の
ままで取り扱っていた。
【0004】ここで、画素補間の方法としては、例え
ば、オーム社発行の「C言語で学ぶ実践画像処理」の第
148頁に記載されているように、補間すべき点から最
も近い位置にある画素をそのまま補間する最近傍法や、
補間すべき点の近傍にある4つの画素から線形補間する
線形補間法などがある。
ば、オーム社発行の「C言語で学ぶ実践画像処理」の第
148頁に記載されているように、補間すべき点から最
も近い位置にある画素をそのまま補間する最近傍法や、
補間すべき点の近傍にある4つの画素から線形補間する
線形補間法などがある。
【0005】
【発明が解決しようとする課題】画像に対し拡大、縮
小、回転などの画像処理を施す場合、オリジナル画像の
解像度は当然入力デバイスの解像度に依存しているが、
オリジナル画像に対し、従来のように、画像を画素の状
態のままで取り扱って画像処理を施すと、画像処理後の
画像の解像度がオリジナル画像の解像度に比べて劣化し
てしまうという問題があった。
小、回転などの画像処理を施す場合、オリジナル画像の
解像度は当然入力デバイスの解像度に依存しているが、
オリジナル画像に対し、従来のように、画像を画素の状
態のままで取り扱って画像処理を施すと、画像処理後の
画像の解像度がオリジナル画像の解像度に比べて劣化し
てしまうという問題があった。
【0006】例えば、画像の拡大を行う場合、画素補間
を行って画像の拡大を行うと、拡大後の画像の解像度も
入力デバイスの解像度に依存してしまい、画素補間によ
って、画像がぼけたり(例えば、線形補間法による場
合)、画像の曲線部や斜め直線部でギザギザ(いわゆる
ジャギー)が生じたり(例えば、最近傍法による場合)
して、画質が劣化してしまう。
を行って画像の拡大を行うと、拡大後の画像の解像度も
入力デバイスの解像度に依存してしまい、画素補間によ
って、画像がぼけたり(例えば、線形補間法による場
合)、画像の曲線部や斜め直線部でギザギザ(いわゆる
ジャギー)が生じたり(例えば、最近傍法による場合)
して、画質が劣化してしまう。
【0007】従って、本発明の目的は、上記した従来技
術の問題点を解決し、画像処理後の画像の解像度が画像
入力時の解像度に比べて劣化を起こすことの無い画像処
理方法を提供することにある。
術の問題点を解決し、画像処理後の画像の解像度が画像
入力時の解像度に比べて劣化を起こすことの無い画像処
理方法を提供することにある。
【0008】
【課題を解決するための手段及びその作用】上記した目
的を達成するために、請求項1に記載の発明は、画像に
所定の処理を施すための画像処理方法であって、処理す
べき画像を用意する画像用意工程と、用意された前記画
像から、該画像の輪郭を画素単位で表わし、かつ、水平
方向に延びる水平ベクトルと垂直方向に延びる垂直ベク
トルとを含む閉ループベクトルから成る第1の境界輪郭
ベクトルを抽出する境界輪郭線抽出工程と、抽出された
前記第1の境界輪郭ベクトル線のうち、水平ベクトルと
垂直ベクトルとが交わる角の部分を、前記水平ベクトル
と垂直ベクトルとで形成される三角形の面積が所定の範
囲にある場合に、斜め方向に延びる斜めベクトルに置き
換えることにより、斜め輪郭ベクトルを得る工程と、を
備えることを特徴としている。また、請求項2に記載の
発明は、画像に所定の処理を施すための画像処理方法で
あって、処理すべき画像を用意する画像用意工程と、用
意された前記画像から、該画像の輪郭を画素単位で表わ
し、かつ、水平方向に延びる水平ベクトルと垂直方向に
延びる垂直ベクトルとを含む閉ループベクトルから成る
第1の境界輪郭ベクトルを抽出する境界輪郭線抽出工程
と、抽出された前記第1の境界輪郭ベクトル線のうち、
水平ベクトルと垂直ベクトルとが交わる角の部分を、前
記水平ベクトルと垂直ベクトルとで形成される三角形の
面積が所定の範囲にあり、かつ、前記水平ベクトルと垂
直ベクトルのうちの少なくとも一方の長さが所定の範囲
にある場合に、斜め方向に延びる斜めベクトルに置き換
えることにより、斜め輪郭ベクトルを得る工程と、を備
えることを特徴としている。
的を達成するために、請求項1に記載の発明は、画像に
所定の処理を施すための画像処理方法であって、処理す
べき画像を用意する画像用意工程と、用意された前記画
像から、該画像の輪郭を画素単位で表わし、かつ、水平
方向に延びる水平ベクトルと垂直方向に延びる垂直ベク
トルとを含む閉ループベクトルから成る第1の境界輪郭
ベクトルを抽出する境界輪郭線抽出工程と、抽出された
前記第1の境界輪郭ベクトル線のうち、水平ベクトルと
垂直ベクトルとが交わる角の部分を、前記水平ベクトル
と垂直ベクトルとで形成される三角形の面積が所定の範
囲にある場合に、斜め方向に延びる斜めベクトルに置き
換えることにより、斜め輪郭ベクトルを得る工程と、を
備えることを特徴としている。また、請求項2に記載の
発明は、画像に所定の処理を施すための画像処理方法で
あって、処理すべき画像を用意する画像用意工程と、用
意された前記画像から、該画像の輪郭を画素単位で表わ
し、かつ、水平方向に延びる水平ベクトルと垂直方向に
延びる垂直ベクトルとを含む閉ループベクトルから成る
第1の境界輪郭ベクトルを抽出する境界輪郭線抽出工程
と、抽出された前記第1の境界輪郭ベクトル線のうち、
水平ベクトルと垂直ベクトルとが交わる角の部分を、前
記水平ベクトルと垂直ベクトルとで形成される三角形の
面積が所定の範囲にあり、かつ、前記水平ベクトルと垂
直ベクトルのうちの少なくとも一方の長さが所定の範囲
にある場合に、斜め方向に延びる斜めベクトルに置き換
えることにより、斜め輪郭ベクトルを得る工程と、を備
えることを特徴としている。
【0009】このように、請求項1または2に記載の発
明では、抽出された第1の境界輪郭ベクトルに対し斜め
ベクトル化を行って、画像を水平または垂直方向のみな
らず斜め方向にもベクトル化してベクトルの状態で取り
扱うようにしている。そのため、その後、その画像に対
し拡大、縮小、回転などの画像処理を行なう場合には、
ベクトル図形に対する座標変換によって処理することが
できるので、処理後の画像の解像度は画像入力時の解像
度に比べて劣化しない。
明では、抽出された第1の境界輪郭ベクトルに対し斜め
ベクトル化を行って、画像を水平または垂直方向のみな
らず斜め方向にもベクトル化してベクトルの状態で取り
扱うようにしている。そのため、その後、その画像に対
し拡大、縮小、回転などの画像処理を行なう場合には、
ベクトル図形に対する座標変換によって処理することが
できるので、処理後の画像の解像度は画像入力時の解像
度に比べて劣化しない。
【0010】また、請求項3に記載の発明は、請求項1
または2に記載の画像処理方法において、前記画像用意
工程は、処理すべき画像として多値の画像データにより
表わされる画像を用意する工程を備えると共に、前記境
界輪郭線抽出工程は、用意された前記画像を表わす前記
多値の画像データを複数の閾値でそれぞれ2値化するこ
とによって、複数の2値の画像データを求め、該複数の
2値の画像データにより表わされる複数の画像を得る工
程と、得られた前記複数の画像から前記第1の境界輪郭
ベクトルを抽出する工程と、を備えることを特徴として
いる。
または2に記載の画像処理方法において、前記画像用意
工程は、処理すべき画像として多値の画像データにより
表わされる画像を用意する工程を備えると共に、前記境
界輪郭線抽出工程は、用意された前記画像を表わす前記
多値の画像データを複数の閾値でそれぞれ2値化するこ
とによって、複数の2値の画像データを求め、該複数の
2値の画像データにより表わされる複数の画像を得る工
程と、得られた前記複数の画像から前記第1の境界輪郭
ベクトルを抽出する工程と、を備えることを特徴として
いる。
【0011】このように、請求項3に記載の発明では、
用意された画像が多値の画像データで表わされる場合、
その画像を複数の閾値でスライスして、複数の2値画像
を得て、それら2値画像から前記第1の境界輪郭ベクト
ルを得るようにしている。
用意された画像が多値の画像データで表わされる場合、
その画像を複数の閾値でスライスして、複数の2値画像
を得て、それら2値画像から前記第1の境界輪郭ベクト
ルを得るようにしている。
【0012】請求項4に記載の発明は、請求項1,2ま
たは3に記載の画像処理方法において、得られた前記斜
め輪郭ベクトルに対し、拡大,縮小,回転など所望の座
標変換を施す工程をさらに備えることを特徴としてい
る。
たは3に記載の画像処理方法において、得られた前記斜
め輪郭ベクトルに対し、拡大,縮小,回転など所望の座
標変換を施す工程をさらに備えることを特徴としてい
る。
【0013】請求項4に記載の発明では、斜めベクトル
化によって得られた斜め輪郭ベクトルに対して、拡大,
縮小,回転など所望の座標変換を施すようにしている。
化によって得られた斜め輪郭ベクトルに対して、拡大,
縮小,回転など所望の座標変換を施すようにしている。
【0014】請求項5に記載の発明は、請求項4に記載
の画像処理方法において、座標変換が施された斜め輪郭
ベクトルのうち、前記斜めベクトルの部分を水平ベクト
ル及び垂直ベクトルに置き換えることにより、第2の境
界輪郭ベクトルを得る工程をさらに備えることを特徴と
している。
の画像処理方法において、座標変換が施された斜め輪郭
ベクトルのうち、前記斜めベクトルの部分を水平ベクト
ル及び垂直ベクトルに置き換えることにより、第2の境
界輪郭ベクトルを得る工程をさらに備えることを特徴と
している。
【0015】このように、請求項5に記載の発明では、
座標変換が施された斜め輪郭ベクトルを、再び境界輪郭
ベクトル(第2の境界輪郭ベクトル)に戻すために、上
記工程をさらに備えるようにしている。
座標変換が施された斜め輪郭ベクトルを、再び境界輪郭
ベクトル(第2の境界輪郭ベクトル)に戻すために、上
記工程をさらに備えるようにしている。
【0016】請求項6に記載の発明は、請求項1乃至5
のうちの任意の一つに記載の画像処理方法において、前
記第1及び第2の境界輪郭ベクトルは、水平ベクトル及
び垂直ベクトルの始点または終点の集まりによって表わ
されると共に、前記斜め輪郭ベクトルは、水平ベクト
ル、垂直ベクトル及び斜めベクトルの始点または終点の
集まりによって表わされることを特徴としている。
のうちの任意の一つに記載の画像処理方法において、前
記第1及び第2の境界輪郭ベクトルは、水平ベクトル及
び垂直ベクトルの始点または終点の集まりによって表わ
されると共に、前記斜め輪郭ベクトルは、水平ベクト
ル、垂直ベクトル及び斜めベクトルの始点または終点の
集まりによって表わされることを特徴としている。
【0017】請求項6に記載の発明では、境界輪郭ベク
トル及び斜め輪郭ベクトルが上記した端点の集まりによ
って表わされるため、ベクトルを取り扱う際のデータ量
が少なくて済む。
トル及び斜め輪郭ベクトルが上記した端点の集まりによ
って表わされるため、ベクトルを取り扱う際のデータ量
が少なくて済む。
【0018】請求項7に記載の発明は、画像に所定の処
理を施すための画像処理方法であって、処理すべき画像
として多値の画像データにより表わされる画像を用意す
る工程と、用意された前記画像を表わす前記多値の画像
データを複数の閾値でそれぞれ2値化することによっ
て、複数の2値の画像データを求め、該複数の2値の画
像データにより表わされる複数の第1の画像を得る工程
と、得られた前記第1の画像から、該画像の輪郭を画素
単位で表わし、かつ、水平方向に延びる水平ベクトルと
垂直方向に延びる垂直ベクトルとを含む閉ループベクト
ルからなる第1の境界輪郭ベクトルを抽出する工程と、
抽出された前記第1の境界輪郭ベクトルのうち、水平ベ
クトルと垂直ベクトルとが交わる角の部分を、前記水平
ベクトルと垂直ベクトルとで形成される三角形の面積が
所定の範囲にある場合に、斜め方向に延びる斜めベクト
ルに置き換えることにより、斜め輪郭ベクトルを得る工
程と、前記斜め輪郭ベクトルに対し、拡大,縮小,回転
など所望の座標変換を施す工程と、前記座標変換が施さ
れた前記斜め輪郭ベクトルのうち、前記斜めベクトルの
部分を水平ベクトル及び垂直ベクトルに置き換えること
により、第2の境界輪郭ベクトルを得る直交化工程と、
前記第2の境界輪郭ベクトルで区切られる2つの領域の
うち、所定の側の領域を塗り潰して、2値の画像データ
により表わされる第2の画像を得る塗り潰し工程と、得
られた前記第2の画像を複数重ね合わせて、多値の画像
データにより表わされる画像を得る工程と、を備えるこ
とを特徴としている。また、請求項8に記載の発明は、
画像に所定の処理を施すための画像処理方法であって、
処理すべき画像として多値の画像データにより表わされ
る画像を用意する工程と、用意された前記画像を表わす
前記多値の画像データを複数の閾値でそれぞれ2値化す
ることによって、複数の2値の画像データを求め、該複
数の2値の画像データにより表わされる複数の第1の画
像を得る工程と、得られた前記第1の画像から、該画像
の輪郭を画素単位で表わし、かつ、水平方向に延びる水
平ベクトルと垂直方向に延びる垂直ベクトルとを含む閉
ループベクトルからなる第1の境界輪郭ベクトルを抽出
する工程と、抽出された前記第1の境界輪郭ベクトルの
うち、水平ベクトルと垂直ベクトルとが交わる角の部分
を、前記水平ベク トルと垂直ベクトルとで形成される三
角形の面積が所定の範囲にあり、かつ、前記水平ベクト
ルと垂直ベクトルのうちの少なくとも一方の長さが所定
の範囲にある場合に、斜め方向に延びる斜めベクトルに
置き換えることにより、斜め輪郭ベクトルを得る工程
と、前記斜め輪郭ベクトルに対し、拡大,縮小,回転な
ど所望の座標変換を施す工程と、前記座標変換が施され
た前記斜め輪郭ベクトルのうち、前記斜めベクトルの部
分を水平ベクトル及び垂直ベクトルに置き換えることに
より、第2の境界輪郭ベクトルを得る直交化工程と、前
記第2の境界輪郭ベクトルで区切られる2つの領域のう
ち、所定の側の領域を塗り潰して、2値の画像データに
より表わされる第2の画像を得る塗り潰し工程と、得ら
れた前記第2の画像を複数重ね合わせて、多値の画像デ
ータにより表わされる画像を得る工程と、を備えること
を特徴としている。
理を施すための画像処理方法であって、処理すべき画像
として多値の画像データにより表わされる画像を用意す
る工程と、用意された前記画像を表わす前記多値の画像
データを複数の閾値でそれぞれ2値化することによっ
て、複数の2値の画像データを求め、該複数の2値の画
像データにより表わされる複数の第1の画像を得る工程
と、得られた前記第1の画像から、該画像の輪郭を画素
単位で表わし、かつ、水平方向に延びる水平ベクトルと
垂直方向に延びる垂直ベクトルとを含む閉ループベクト
ルからなる第1の境界輪郭ベクトルを抽出する工程と、
抽出された前記第1の境界輪郭ベクトルのうち、水平ベ
クトルと垂直ベクトルとが交わる角の部分を、前記水平
ベクトルと垂直ベクトルとで形成される三角形の面積が
所定の範囲にある場合に、斜め方向に延びる斜めベクト
ルに置き換えることにより、斜め輪郭ベクトルを得る工
程と、前記斜め輪郭ベクトルに対し、拡大,縮小,回転
など所望の座標変換を施す工程と、前記座標変換が施さ
れた前記斜め輪郭ベクトルのうち、前記斜めベクトルの
部分を水平ベクトル及び垂直ベクトルに置き換えること
により、第2の境界輪郭ベクトルを得る直交化工程と、
前記第2の境界輪郭ベクトルで区切られる2つの領域の
うち、所定の側の領域を塗り潰して、2値の画像データ
により表わされる第2の画像を得る塗り潰し工程と、得
られた前記第2の画像を複数重ね合わせて、多値の画像
データにより表わされる画像を得る工程と、を備えるこ
とを特徴としている。また、請求項8に記載の発明は、
画像に所定の処理を施すための画像処理方法であって、
処理すべき画像として多値の画像データにより表わされ
る画像を用意する工程と、用意された前記画像を表わす
前記多値の画像データを複数の閾値でそれぞれ2値化す
ることによって、複数の2値の画像データを求め、該複
数の2値の画像データにより表わされる複数の第1の画
像を得る工程と、得られた前記第1の画像から、該画像
の輪郭を画素単位で表わし、かつ、水平方向に延びる水
平ベクトルと垂直方向に延びる垂直ベクトルとを含む閉
ループベクトルからなる第1の境界輪郭ベクトルを抽出
する工程と、抽出された前記第1の境界輪郭ベクトルの
うち、水平ベクトルと垂直ベクトルとが交わる角の部分
を、前記水平ベク トルと垂直ベクトルとで形成される三
角形の面積が所定の範囲にあり、かつ、前記水平ベクト
ルと垂直ベクトルのうちの少なくとも一方の長さが所定
の範囲にある場合に、斜め方向に延びる斜めベクトルに
置き換えることにより、斜め輪郭ベクトルを得る工程
と、前記斜め輪郭ベクトルに対し、拡大,縮小,回転な
ど所望の座標変換を施す工程と、前記座標変換が施され
た前記斜め輪郭ベクトルのうち、前記斜めベクトルの部
分を水平ベクトル及び垂直ベクトルに置き換えることに
より、第2の境界輪郭ベクトルを得る直交化工程と、前
記第2の境界輪郭ベクトルで区切られる2つの領域のう
ち、所定の側の領域を塗り潰して、2値の画像データに
より表わされる第2の画像を得る塗り潰し工程と、得ら
れた前記第2の画像を複数重ね合わせて、多値の画像デ
ータにより表わされる画像を得る工程と、を備えること
を特徴としている。
【0019】このように、請求項7または8に記載の発
明では、画像に対し拡大、縮小、回転などの画像処理を
施す場合、画像を水平または垂直方向のみならず斜め方
向にもベクトル化してベクトルの状態で取り扱うように
しているため、ベクトル図形の座標変換によって処理す
ることができるので、処理後の画像の解像度は画像入力
時の解像度に比べて劣化しない。
明では、画像に対し拡大、縮小、回転などの画像処理を
施す場合、画像を水平または垂直方向のみならず斜め方
向にもベクトル化してベクトルの状態で取り扱うように
しているため、ベクトル図形の座標変換によって処理す
ることができるので、処理後の画像の解像度は画像入力
時の解像度に比べて劣化しない。
【0020】請求項9に記載の発明は、請求項7または
8に記載の画像処理方法において、前記直交化工程及び
塗り潰し工程に代えて、前記座標変換が施された前記斜
め輪郭ベクトルで区切られる2つの領域のうち、所定の
側の領域を塗り潰して、2値の画像データにより表わさ
れる画像を得る工程を備えたことを特徴としている。
8に記載の画像処理方法において、前記直交化工程及び
塗り潰し工程に代えて、前記座標変換が施された前記斜
め輪郭ベクトルで区切られる2つの領域のうち、所定の
側の領域を塗り潰して、2値の画像データにより表わさ
れる画像を得る工程を備えたことを特徴としている。
【0021】このように、請求項9に記載の発明では、
斜め輪郭ベクトルから直接閉図形の画像を得ているた
め、直交化を行なう処理を省くことができる。
斜め輪郭ベクトルから直接閉図形の画像を得ているた
め、直交化を行なう処理を省くことができる。
【0022】請求項10に記載の発明は、請求項7,8
または9に記載の画像処理方法において、前記第1の境
界輪郭ベクトルのうち、曲線とみなせる部分をパラメト
リック関数データによって近似する工程と、前記パラメ
トリック関数データに対し、拡大、縮小、回転など所望
の座標変換を施す工程と、前記座標変換が施された前記
パラメトリック関数データをベクトル化する工程と、を
備えることを特徴としている。
または9に記載の画像処理方法において、前記第1の境
界輪郭ベクトルのうち、曲線とみなせる部分をパラメト
リック関数データによって近似する工程と、前記パラメ
トリック関数データに対し、拡大、縮小、回転など所望
の座標変換を施す工程と、前記座標変換が施された前記
パラメトリック関数データをベクトル化する工程と、を
備えることを特徴としている。
【0023】このように、請求項10に記載の発明で
は、抽出された境界輪郭線を直線とみなせる部分と曲線
とみなせる部分とに分割し、直線とみなせる部分につい
ては斜めベクトル化を行ない、曲線とみなせる部分につ
いては近似曲線に置き換えて、画像をベクトル及び近似
曲線の状態で取り扱うようにしている。
は、抽出された境界輪郭線を直線とみなせる部分と曲線
とみなせる部分とに分割し、直線とみなせる部分につい
ては斜めベクトル化を行ない、曲線とみなせる部分につ
いては近似曲線に置き換えて、画像をベクトル及び近似
曲線の状態で取り扱うようにしている。
【0024】
I.第1の実施例 A.実施例にかかる画像処理方法の概要 以下、本発明の実施例について図面を用いて説明する。
図1は本発明の第1の実施例としての画像処理方法を説
明するためのフローチャートであり、図2は図1に示す
画像処理方法を実現するための画像処理システムを示す
ブロック図である。
図1は本発明の第1の実施例としての画像処理方法を説
明するためのフローチャートであり、図2は図1に示す
画像処理方法を実現するための画像処理システムを示す
ブロック図である。
【0025】図2に示す画像処理システムはコンピュー
タ100とその周辺装置とで構成されている。そのう
ち、コンピュータ100はCPU(中央処理装置)11
0とROM(リード・オンリ・メモリ)120とRAM
(ランダム・アクセス・メモリ)130とI/Oポート
140とを備えており、内部バス150によって互いに
接続されている。なお、CPU110はROM120に
記憶されたプログラムに従って、等輝度スライス部11
1、境界輪郭線抽出部112、斜めベクトル化部11
3、変換部114、直交化部115及び塗り潰し・重ね
合わせ部116として、動作する。
タ100とその周辺装置とで構成されている。そのう
ち、コンピュータ100はCPU(中央処理装置)11
0とROM(リード・オンリ・メモリ)120とRAM
(ランダム・アクセス・メモリ)130とI/Oポート
140とを備えており、内部バス150によって互いに
接続されている。なお、CPU110はROM120に
記憶されたプログラムに従って、等輝度スライス部11
1、境界輪郭線抽出部112、斜めベクトル化部11
3、変換部114、直交化部115及び塗り潰し・重ね
合わせ部116として、動作する。
【0026】また、コンピュータ100の周辺装置とし
ては、キーボード,マウス200、CRT(陰極線管)
300、ハードディスク装置400、入力スキャナ50
0、及びプリンタ600などがあり、それぞれ、I/O
ポート140に接続されている。
ては、キーボード,マウス200、CRT(陰極線管)
300、ハードディスク装置400、入力スキャナ50
0、及びプリンタ600などがあり、それぞれ、I/O
ポート140に接続されている。
【0027】では、本実施例の画像処理方法について、
その概要を図1に示すフローチャートに従って説明す
る。まず、ステップ1において、原稿上の画像を入力ス
キャナ500によって読み込み、得られた画像データを
ハードディスク装置400に格納する。なお、得られる
画像データは多値の画像データであり、R(赤),G
(緑),B(青)の各色毎にそれぞれ得られる。次に、
ハードディスク装置400に格納された画像データを読
み出し、I/Oポート140,内部バス150を介して
RAM130に書き込む。
その概要を図1に示すフローチャートに従って説明す
る。まず、ステップ1において、原稿上の画像を入力ス
キャナ500によって読み込み、得られた画像データを
ハードディスク装置400に格納する。なお、得られる
画像データは多値の画像データであり、R(赤),G
(緑),B(青)の各色毎にそれぞれ得られる。次に、
ハードディスク装置400に格納された画像データを読
み出し、I/Oポート140,内部バス150を介して
RAM130に書き込む。
【0028】図3は図2のRAM130に書き込まれた
画像データの一例を示す説明図である。RAM130に
書き込まれた画像データは、R(赤),G(緑),B
(青)の各色毎に、各画素の輝度を示す輝度値で表わさ
れている。
画像データの一例を示す説明図である。RAM130に
書き込まれた画像データは、R(赤),G(緑),B
(青)の各色毎に、各画素の輝度を示す輝度値で表わさ
れている。
【0029】次に、ステップ2において、RAM130
に書き込まれた画像データを読み出して、CPU110
に転送し、CPU110の等輝度スライス部111で等
輝度スライスを行う。すなわち、等輝度スライス部11
1では、転送された画像データに対し、輝度値0〜25
5の各値をそれぞれ閾値として、その値に満たない場合
は「0」、その値と等しいかそれ以上の場合は「1」と
する2値化処理を行うことにより、画像データを輝度値
0〜255の各値でそれぞれスライスする。従って、転
送された画像データは輝度値0〜255の各々に対応す
る合計256個の2値の画像データに分割される。な
お、このような等輝度スライスは、R,G,Bの各色毎
にそれぞれ行われる。また、輝度値0を閾値として2値
化処理を行なった場合、得られる値は全て「1」になる
ので、輝度値0を閾値とする2値化処理は特に行なわな
くても良い。また、画像データを輝度値0〜255の全
ての値でスライスする必要は必ずしもなく、適当な輝度
値を選択してそれら輝度値でのみスライスするようにし
ても良い。さらに、画像データを輝度値0〜255の2
56階調で表わす代わりに、他の階調で表わしても実施
可能である。
に書き込まれた画像データを読み出して、CPU110
に転送し、CPU110の等輝度スライス部111で等
輝度スライスを行う。すなわち、等輝度スライス部11
1では、転送された画像データに対し、輝度値0〜25
5の各値をそれぞれ閾値として、その値に満たない場合
は「0」、その値と等しいかそれ以上の場合は「1」と
する2値化処理を行うことにより、画像データを輝度値
0〜255の各値でそれぞれスライスする。従って、転
送された画像データは輝度値0〜255の各々に対応す
る合計256個の2値の画像データに分割される。な
お、このような等輝度スライスは、R,G,Bの各色毎
にそれぞれ行われる。また、輝度値0を閾値として2値
化処理を行なった場合、得られる値は全て「1」になる
ので、輝度値0を閾値とする2値化処理は特に行なわな
くても良い。また、画像データを輝度値0〜255の全
ての値でスライスする必要は必ずしもなく、適当な輝度
値を選択してそれら輝度値でのみスライスするようにし
ても良い。さらに、画像データを輝度値0〜255の2
56階調で表わす代わりに、他の階調で表わしても実施
可能である。
【0030】図4は図2の等輝度スライス部111によ
る等輝度スライスの結果得られる画像データの一例を示
す説明図である。図4においては、図3に示した画像デ
ータを輝度値0,輝度値64,輝度値128及び輝度値
192の各値でそれぞれスライスした結果得られる画像
データを表わしており、斜線部分は値が「1」の画素を
示しており、それ以外の白色部分は値が「0」の画素を
示している。
る等輝度スライスの結果得られる画像データの一例を示
す説明図である。図4においては、図3に示した画像デ
ータを輝度値0,輝度値64,輝度値128及び輝度値
192の各値でそれぞれスライスした結果得られる画像
データを表わしており、斜線部分は値が「1」の画素を
示しており、それ以外の白色部分は値が「0」の画素を
示している。
【0031】次に、ステップ3において、CPU110
の境界輪郭線抽出部112で、等輝度スライスによって
得られた画像データから、境界輪郭線の抽出を行う。図
5は等輝度スライスによって得られた画像データの一例
を示す説明図であり、図6は図5の画像データから抽出
した境界輪郭線を示す説明図である。
の境界輪郭線抽出部112で、等輝度スライスによって
得られた画像データから、境界輪郭線の抽出を行う。図
5は等輝度スライスによって得られた画像データの一例
を示す説明図であり、図6は図5の画像データから抽出
した境界輪郭線を示す説明図である。
【0032】境界輪郭線抽出部112では、例えば、特
開平5−242246号公報に記載されているような境
界輪郭線の抽出方法を用いて、図5に示すような画像デ
ータから、図6に示すような境界輪郭線を抽出する。こ
こで、境界輪郭線とは、図5に示すように値が「1」の
画素(斜線部分)と値が「0」の画素(白色部分)との
間の境界線をいい、抽出される境界輪郭線は、図6に示
すように、上記境界線の各頂点(すなわち、角の点)を
始点または終点とするベクトルとして表わされる。但
し、本実施例においては、境界輪郭線を表わすベクトル
のデータとしては、ベクトルの始点座標または終点座標
のいずれか一方のみを採用している。無論、ベクトルの
始点座標及び終点座標を採用しても良いが、各ベクトル
の始点座標と、直前で連接するベクトルの終点座標とは
一致するため、一方のみを採用する方がデータ量の面で
効率がよい。また、境界輪郭線は、図6に示すように、
X方向(水平方向)またはY方向(垂直方向)に延びる
ベクトルで構成されている。また、本実施例において
は、図6に示すように、境界輪郭線は全て値が「1」の
画素を右手に見るように方向付けられる。以下では、こ
の方向付けによって、時計回りの境界輪郭線を「外側の
境界輪郭線」、反時計回りの境界輪郭線を「内側の境界
輪郭線」と称す。図6において、外側の境界輪郭線は、
時計回りの方向に点番号0〜17の順に並んだ18個の
点列によって表わされ、内側の境界輪郭線は、反時計回
りの方向に点番号0’〜3’の順に並んだ4個の点列に
よって表わされる。なお、図5に示すように、等輝度ス
ライスによって得られる画像データの輪郭は必ず閉図形
になるため、外側の境界輪郭線も内側の境界輪郭線も共
に、図6に示すように必ず閉曲線となる。
開平5−242246号公報に記載されているような境
界輪郭線の抽出方法を用いて、図5に示すような画像デ
ータから、図6に示すような境界輪郭線を抽出する。こ
こで、境界輪郭線とは、図5に示すように値が「1」の
画素(斜線部分)と値が「0」の画素(白色部分)との
間の境界線をいい、抽出される境界輪郭線は、図6に示
すように、上記境界線の各頂点(すなわち、角の点)を
始点または終点とするベクトルとして表わされる。但
し、本実施例においては、境界輪郭線を表わすベクトル
のデータとしては、ベクトルの始点座標または終点座標
のいずれか一方のみを採用している。無論、ベクトルの
始点座標及び終点座標を採用しても良いが、各ベクトル
の始点座標と、直前で連接するベクトルの終点座標とは
一致するため、一方のみを採用する方がデータ量の面で
効率がよい。また、境界輪郭線は、図6に示すように、
X方向(水平方向)またはY方向(垂直方向)に延びる
ベクトルで構成されている。また、本実施例において
は、図6に示すように、境界輪郭線は全て値が「1」の
画素を右手に見るように方向付けられる。以下では、こ
の方向付けによって、時計回りの境界輪郭線を「外側の
境界輪郭線」、反時計回りの境界輪郭線を「内側の境界
輪郭線」と称す。図6において、外側の境界輪郭線は、
時計回りの方向に点番号0〜17の順に並んだ18個の
点列によって表わされ、内側の境界輪郭線は、反時計回
りの方向に点番号0’〜3’の順に並んだ4個の点列に
よって表わされる。なお、図5に示すように、等輝度ス
ライスによって得られる画像データの輪郭は必ず閉図形
になるため、外側の境界輪郭線も内側の境界輪郭線も共
に、図6に示すように必ず閉曲線となる。
【0033】以上のような境界輪郭線の抽出は、R,
G,Bの各色毎に、等輝度スライスによって得られた全
ての画像データ(すなわち、輝度値0〜255の各々に
対応する合計256個の画像データ)について、それぞ
れ行われる。なお、以下に述べる各処理についても、同
様に、R,G,Bの各色毎に、等輝度スライスによって
得られた全ての画像データについて、それぞれ行われ
る。
G,Bの各色毎に、等輝度スライスによって得られた全
ての画像データ(すなわち、輝度値0〜255の各々に
対応する合計256個の画像データ)について、それぞ
れ行われる。なお、以下に述べる各処理についても、同
様に、R,G,Bの各色毎に、等輝度スライスによって
得られた全ての画像データについて、それぞれ行われ
る。
【0034】次に、ステップ4において、CPU110
の斜めベクトル化部113で、抽出された境界輪郭線に
対し、所定の条件に従って斜めベクトル化を行う。な
お、斜めベクトル化を行った結果得られる輪郭線を、以
下、斜めベクトル化輪郭線という。
の斜めベクトル化部113で、抽出された境界輪郭線に
対し、所定の条件に従って斜めベクトル化を行う。な
お、斜めベクトル化を行った結果得られる輪郭線を、以
下、斜めベクトル化輪郭線という。
【0035】図7は図6の境界輪郭線に対し斜めベクト
ル化を行った結果得られる斜めベクトル化輪郭線を示す
説明図である。斜めベクトル化部113では、図6に示
すような境界輪郭線のうち、所定の条件を満たす角の部
分を、図7に示すように斜めのベクトルに置き換えるよ
うにして、斜めベクトル化輪郭線を得る。このような斜
めベクトル化によって、外側の境界輪郭線を構成するベ
クトルは点番号0〜10の合計11個のベクトルとな
る。なお、内側の境界輪郭線を構成するベクトルは点番
号0’〜4’の合計4個のベクトルのままである。
ル化を行った結果得られる斜めベクトル化輪郭線を示す
説明図である。斜めベクトル化部113では、図6に示
すような境界輪郭線のうち、所定の条件を満たす角の部
分を、図7に示すように斜めのベクトルに置き換えるよ
うにして、斜めベクトル化輪郭線を得る。このような斜
めベクトル化によって、外側の境界輪郭線を構成するベ
クトルは点番号0〜10の合計11個のベクトルとな
る。なお、内側の境界輪郭線を構成するベクトルは点番
号0’〜4’の合計4個のベクトルのままである。
【0036】図8は図6の境界輪郭線を構成するベクト
ルの座標と図7の斜めベクトル化輪郭線を構成するベク
トルの座標をそれぞれ示す説明図である。図8におい
て、(a)は図6において、左上隅に位置する画素の左
上角を原点とした場合の、各点の座標(すなわち、X,
Y座標)をそれぞれ示し、(b)は図7において、左上
隅に位置する画素の左上角を原点とした場合の、各点の
座標をそれぞれ示している。斜めベクトル化部113の
斜めベクトル化によって、輪郭線を構成するベクトルは
図8(a)から図8(b)に示すように変化する。
ルの座標と図7の斜めベクトル化輪郭線を構成するベク
トルの座標をそれぞれ示す説明図である。図8におい
て、(a)は図6において、左上隅に位置する画素の左
上角を原点とした場合の、各点の座標(すなわち、X,
Y座標)をそれぞれ示し、(b)は図7において、左上
隅に位置する画素の左上角を原点とした場合の、各点の
座標をそれぞれ示している。斜めベクトル化部113の
斜めベクトル化によって、輪郭線を構成するベクトルは
図8(a)から図8(b)に示すように変化する。
【0037】次に、ステップ5において、CPU110
の変換部114で、斜めベクトル化を行った結果得られ
た斜めベクトル化輪郭線に対し、拡大,縮小,回転など
所望の座標変換(例えば、アフィン変換など)を施す。
例えば、拡大の変換を施す場合は、斜めベクトル化輪郭
線を構成するベクトルの全てについて、座標値に所望の
拡大倍率をそれぞれ乗じるようにする。その他の変換に
ついても同様に、斜めベクトル化輪郭線を構成するベク
トルの全てについて、座標値を変換するようにする。
の変換部114で、斜めベクトル化を行った結果得られ
た斜めベクトル化輪郭線に対し、拡大,縮小,回転など
所望の座標変換(例えば、アフィン変換など)を施す。
例えば、拡大の変換を施す場合は、斜めベクトル化輪郭
線を構成するベクトルの全てについて、座標値に所望の
拡大倍率をそれぞれ乗じるようにする。その他の変換に
ついても同様に、斜めベクトル化輪郭線を構成するベク
トルの全てについて、座標値を変換するようにする。
【0038】図9は図7の斜めベクトル化輪郭線を2倍
の大きさに拡大した結果を示す説明図であり、各点の座
標値は、後述の図10に示すように、図7に示す各点の
座標値の2倍になっている。すなわち、2倍の拡大の変
換を施す場合は、図7に示す斜めベクトル化輪郭線を構
成するベクトルの全てについて、座標値に2を乗じるこ
とにより、図9に示すような2倍の大きさに拡大された
斜めベクトル化輪郭線が得られる。
の大きさに拡大した結果を示す説明図であり、各点の座
標値は、後述の図10に示すように、図7に示す各点の
座標値の2倍になっている。すなわち、2倍の拡大の変
換を施す場合は、図7に示す斜めベクトル化輪郭線を構
成するベクトルの全てについて、座標値に2を乗じるこ
とにより、図9に示すような2倍の大きさに拡大された
斜めベクトル化輪郭線が得られる。
【0039】図10は図7の斜めベクトル化輪郭線を構
成するベクトルの座標と図9の2倍の大きさに拡大され
た斜めベクトル化輪郭線を構成するベクトルの座標をそ
れぞれ示す説明図である。
成するベクトルの座標と図9の2倍の大きさに拡大され
た斜めベクトル化輪郭線を構成するベクトルの座標をそ
れぞれ示す説明図である。
【0040】図10において、(a)は図7において、
左上隅に位置する画素の左上角を原点とした場合の、各
点の座標をそれぞれ示し、(b)は図9において、左上
隅に位置する画素の左上角を原点とした場合の、各点の
座標をそれぞれ示している。図10(b)に示すベクト
ルの座標値は全て図10(a)に示す点列の座標値の2
倍となっている。
左上隅に位置する画素の左上角を原点とした場合の、各
点の座標をそれぞれ示し、(b)は図9において、左上
隅に位置する画素の左上角を原点とした場合の、各点の
座標をそれぞれ示している。図10(b)に示すベクト
ルの座標値は全て図10(a)に示す点列の座標値の2
倍となっている。
【0041】次に、ステップ6において、CPU110
の直交化部115で、所望の座標変換を施した斜めベク
トル化輪郭線に対し、所定の手順に従って直交化を行
う。なお、直交化の行われた結果得られる輪郭線は、再
び境界輪郭線となる。
の直交化部115で、所望の座標変換を施した斜めベク
トル化輪郭線に対し、所定の手順に従って直交化を行
う。なお、直交化の行われた結果得られる輪郭線は、再
び境界輪郭線となる。
【0042】図11は図9の斜めベクトル化輪郭線に対
し直交化を行った結果得られる境界輪郭線を示す説明図
である。直交化部115では、図9に示すような斜めベ
クトル化輪郭線のうち、斜めベクトル化の行われた部分
を、図11に示すようにX方向とY方向に延びる輪郭線
に置き換えるようにして、境界輪郭線を得る。この際、
X方向の最小の長さ,Y方向の最小の長さは、プリンタ
600等の出力デバイスの出力解像度に応じた長さにな
る。例えば、出力デバイスの出力解像度が「100do
t/cm」であれば、X方向及びY方向の最小の長さ
は、実際の出力では、「0.01cm」に相当する。
し直交化を行った結果得られる境界輪郭線を示す説明図
である。直交化部115では、図9に示すような斜めベ
クトル化輪郭線のうち、斜めベクトル化の行われた部分
を、図11に示すようにX方向とY方向に延びる輪郭線
に置き換えるようにして、境界輪郭線を得る。この際、
X方向の最小の長さ,Y方向の最小の長さは、プリンタ
600等の出力デバイスの出力解像度に応じた長さにな
る。例えば、出力デバイスの出力解像度が「100do
t/cm」であれば、X方向及びY方向の最小の長さ
は、実際の出力では、「0.01cm」に相当する。
【0043】このような直交化によって、外側の斜めベ
クトル化輪郭線を構成するベクトルは点番号0〜33の
合計34個のベクトルとなる。なお、内側の斜めベクト
ル化輪郭線を構成するベクトルは点番号0’〜4’の合
計4個のベクトルのままである。
クトル化輪郭線を構成するベクトルは点番号0〜33の
合計34個のベクトルとなる。なお、内側の斜めベクト
ル化輪郭線を構成するベクトルは点番号0’〜4’の合
計4個のベクトルのままである。
【0044】図12は図9の斜めベクトル化輪郭線を構
成するベクトルの座標と図11の境界輪郭線を構成する
ベクトルの座標をそれぞれ示す説明図である。図12に
おいて、(a)は図9において、左上隅に位置する画素
の左上角を原点とした場合の、各点の座標をそれぞれ示
し、(b)は図11において、左上隅に位置する画素の
左上角を原点とした場合の、各点の座標をそれぞれ示し
ている。直交化部115の直交化によって、輪郭線を構
成するベクトルは図12(a)から図12(b)に示す
ように変化する。
成するベクトルの座標と図11の境界輪郭線を構成する
ベクトルの座標をそれぞれ示す説明図である。図12に
おいて、(a)は図9において、左上隅に位置する画素
の左上角を原点とした場合の、各点の座標をそれぞれ示
し、(b)は図11において、左上隅に位置する画素の
左上角を原点とした場合の、各点の座標をそれぞれ示し
ている。直交化部115の直交化によって、輪郭線を構
成するベクトルは図12(a)から図12(b)に示す
ように変化する。
【0045】次に、ステップ7において、CPU110
の塗り潰し・重ね合わせ部116で、外側の境界輪郭線
と内側の境界輪郭線との間を塗り潰して、2値の画像デ
ータを得る。
の塗り潰し・重ね合わせ部116で、外側の境界輪郭線
と内側の境界輪郭線との間を塗り潰して、2値の画像デ
ータを得る。
【0046】図13は図11の境界輪郭線の間を塗り潰
して得られる2値の画像データを示す説明図である。塗
り潰し・重ね合わせ部116では、外側の境界輪郭線と
内側の境界輪郭線との間にある画素に値「1」を与え
て、外側の境界輪郭線の外にある画素及び内側の境界輪
郭線の内にある画素にそれぞれ値「0」を与えて、図1
3に示すような2値の画像データを得る。なお、前述し
たように、外側の境界輪郭線は時計回りの方向に並んだ
ベクトルによって表わされ、内側の境界輪郭線は反時計
回りの方向に並んだベクトルによって表わされている。
そこで、今、1つの領域が或る境界輪郭線によって2つ
の領域に区分されている場合に、その境界輪郭線を構成
するベクトルの並び方向に対して常に右側の領域を、境
界輪郭線の「有効領域」と定義すると、上記した塗り潰
しの処理は、外側の境界輪郭線,内側の境界輪郭線と
も、境界輪郭線の「有効領域」を塗り潰していることに
なる。なお、内側の境界輪郭線を含まない境界輪郭線に
ついては、当該境界輪郭線の内部全てが「有効領域」と
なり、内部全てが塗り潰される。
して得られる2値の画像データを示す説明図である。塗
り潰し・重ね合わせ部116では、外側の境界輪郭線と
内側の境界輪郭線との間にある画素に値「1」を与え
て、外側の境界輪郭線の外にある画素及び内側の境界輪
郭線の内にある画素にそれぞれ値「0」を与えて、図1
3に示すような2値の画像データを得る。なお、前述し
たように、外側の境界輪郭線は時計回りの方向に並んだ
ベクトルによって表わされ、内側の境界輪郭線は反時計
回りの方向に並んだベクトルによって表わされている。
そこで、今、1つの領域が或る境界輪郭線によって2つ
の領域に区分されている場合に、その境界輪郭線を構成
するベクトルの並び方向に対して常に右側の領域を、境
界輪郭線の「有効領域」と定義すると、上記した塗り潰
しの処理は、外側の境界輪郭線,内側の境界輪郭線と
も、境界輪郭線の「有効領域」を塗り潰していることに
なる。なお、内側の境界輪郭線を含まない境界輪郭線に
ついては、当該境界輪郭線の内部全てが「有効領域」と
なり、内部全てが塗り潰される。
【0047】前述したように、以上の各処理は、R,
G,Bの各色毎に、等輝度スライスによって得られた全
ての画像データについて、それぞれ行われるため、図1
3に示すような閉図形の画像データも、R,G,Bの各
色毎に、それぞれ256個ずつ得られる。
G,Bの各色毎に、等輝度スライスによって得られた全
ての画像データについて、それぞれ行われるため、図1
3に示すような閉図形の画像データも、R,G,Bの各
色毎に、それぞれ256個ずつ得られる。
【0048】図14は図2の塗り潰し・重ね合わせ部1
16による塗り潰しの結果得られる画像データの一例を
示す説明図である。図14においては、輝度値0,輝度
値64,輝度値128及び輝度値192の各値にそれぞ
れ対応して、塗り潰しの結果得られた画像データを表わ
しており、斜線部分は値が「1」の画素を示しており、
それ以外の白色部分は値が「0」の画素を示している。
16による塗り潰しの結果得られる画像データの一例を
示す説明図である。図14においては、輝度値0,輝度
値64,輝度値128及び輝度値192の各値にそれぞ
れ対応して、塗り潰しの結果得られた画像データを表わ
しており、斜線部分は値が「1」の画素を示しており、
それ以外の白色部分は値が「0」の画素を示している。
【0049】さらに、CPU110の塗り潰し・重ね合
わせ部116で、輝度値0〜255の各々に対応して塗
り潰しの結果得られた256個の画像データを、輝度値
の順に重ね合わせて、多値の画像データを得る。このよ
うな重ね合わせは、R,G,Bの各色毎にそれぞれ行わ
れる。
わせ部116で、輝度値0〜255の各々に対応して塗
り潰しの結果得られた256個の画像データを、輝度値
の順に重ね合わせて、多値の画像データを得る。このよ
うな重ね合わせは、R,G,Bの各色毎にそれぞれ行わ
れる。
【0050】図15は重ね合わせの結果得られる画像デ
ータの一例を示す説明図である。塗り潰し・重ね合わせ
部116では、図14に示した輝度値0,輝度値64,
輝度値128及び輝度値192の各値に対応した画像デ
ータやその他の塗り潰しの結果得られた画像データなど
合計256個の画像データを、輝度値0から順に重ね合
わせて、図15に示すような多値の画像データをRAM
130上で得る。より具体的には、塗り潰しの結果得ら
れた各画像データの「有効領域」に含まれる画素に対し
て、輝度値「1」を累積することにより、最終的な画素
の輝度値を得る。すなわち、この画像データは、図3に
示した画像データと同様に、各画素の輝度を示す輝度値
で表わされる。
ータの一例を示す説明図である。塗り潰し・重ね合わせ
部116では、図14に示した輝度値0,輝度値64,
輝度値128及び輝度値192の各値に対応した画像デ
ータやその他の塗り潰しの結果得られた画像データなど
合計256個の画像データを、輝度値0から順に重ね合
わせて、図15に示すような多値の画像データをRAM
130上で得る。より具体的には、塗り潰しの結果得ら
れた各画像データの「有効領域」に含まれる画素に対し
て、輝度値「1」を累積することにより、最終的な画素
の輝度値を得る。すなわち、この画像データは、図3に
示した画像データと同様に、各画素の輝度を示す輝度値
で表わされる。
【0051】次に、ステップ8において、上記のように
得られた画像データをRAM130から読み出して、内
部バス150,I/Oポート140を介してプリンタ6
00に転送し、プリンタ600によって画像を記録す
る。
得られた画像データをRAM130から読み出して、内
部バス150,I/Oポート140を介してプリンタ6
00に転送し、プリンタ600によって画像を記録す
る。
【0052】以上説明したように、本実施例によれば、
画像に対し拡大、縮小、回転などの画像処理を施す場
合、予め境界輪郭線に対し斜めベクトル化を行って、画
像を水平または垂直方向(すなわち、X,Y方向)のみ
ならず斜め方向にもベクトル化してベクトルの状態で取
り扱う、すなわちベクトル図形に対する座標変換を行う
ため、座標変換後の画像の解像度が入力デバイスである
入力スキャナ500の解像度に依存しなくなり、画像処
理後の画像がぼけることがなく、画像の曲線部や斜め直
線部でのジャギーの発生も少なくて済み、画質が劣化す
ることがない。また、直交化部115では、X方向に延
びる輪郭線の最小の長さ及びY方向に延びる輪郭線の最
小の長さを、プリンタ600等の出力デバイスの出力解
像度に応じた長さにしているため、出力デバイスの能力
に満たない粗さのジャギーを発生させることがない。
画像に対し拡大、縮小、回転などの画像処理を施す場
合、予め境界輪郭線に対し斜めベクトル化を行って、画
像を水平または垂直方向(すなわち、X,Y方向)のみ
ならず斜め方向にもベクトル化してベクトルの状態で取
り扱う、すなわちベクトル図形に対する座標変換を行う
ため、座標変換後の画像の解像度が入力デバイスである
入力スキャナ500の解像度に依存しなくなり、画像処
理後の画像がぼけることがなく、画像の曲線部や斜め直
線部でのジャギーの発生も少なくて済み、画質が劣化す
ることがない。また、直交化部115では、X方向に延
びる輪郭線の最小の長さ及びY方向に延びる輪郭線の最
小の長さを、プリンタ600等の出力デバイスの出力解
像度に応じた長さにしているため、出力デバイスの能力
に満たない粗さのジャギーを発生させることがない。
【0053】B.斜めベクトル化の処理方法の説明 B−1)斜めベクトル化の処理方法の概略 図16は斜めベクトル化を行う方法を概略的に説明する
ための説明図である。図16において、(a)は境界輪
郭線に対し斜めベクトル化を行っている様子を示し、
(b)は(a)の境界輪郭線を構成するベクトルの座標
を示し、(c)は(a)の斜めベクトル化により得られ
る斜めベクトル化輪郭線を構成するベクトルの座標を示
している。図16(b)及び(c)から明らかなよう
に、本実施例においては、斜めベクトル化は、境界輪郭
線を構成するベクトルに基づいて、斜めベクトル化輪郭
線を構成するベクトルを新たに順次登録していくことに
より行う。無論、境界輪郭線を構成するベクトルの内容
を直接変更することにより、斜めベクトル化輪郭線の点
列を得てもよい。
ための説明図である。図16において、(a)は境界輪
郭線に対し斜めベクトル化を行っている様子を示し、
(b)は(a)の境界輪郭線を構成するベクトルの座標
を示し、(c)は(a)の斜めベクトル化により得られ
る斜めベクトル化輪郭線を構成するベクトルの座標を示
している。図16(b)及び(c)から明らかなよう
に、本実施例においては、斜めベクトル化は、境界輪郭
線を構成するベクトルに基づいて、斜めベクトル化輪郭
線を構成するベクトルを新たに順次登録していくことに
より行う。無論、境界輪郭線を構成するベクトルの内容
を直接変更することにより、斜めベクトル化輪郭線の点
列を得てもよい。
【0054】ここで、境界輪郭線は点番号0から点番号
i−1までの合計i個のベクトルによって構成されてい
るものとし、現在の始点(すなわち、X方向,Y方向ま
たは斜め方向のベクトルの始点となるべき、現在、着目
している点)の点番号をpとする。また、斜めベクトル
化輪郭線は点番号0から始まるベクトルによって構成さ
れており、現在登録されている点のうち、最も新しい点
の点番号をvとする。
i−1までの合計i個のベクトルによって構成されてい
るものとし、現在の始点(すなわち、X方向,Y方向ま
たは斜め方向のベクトルの始点となるべき、現在、着目
している点)の点番号をpとする。また、斜めベクトル
化輪郭線は点番号0から始まるベクトルによって構成さ
れており、現在登録されている点のうち、最も新しい点
の点番号をvとする。
【0055】また、(a)に示す境界輪郭線は外側の境
界輪郭線であり、(a)において、境界輪郭線を構成す
るベクトルの点番号は括弧無しの点番号で示し、斜めベ
クトル化輪郭線を構成するベクトルの点番号は括弧付き
の点番号で示している。なお、以下においては、例え
ば、点番号pの点を点pと略す場合がある。
界輪郭線であり、(a)において、境界輪郭線を構成す
るベクトルの点番号は括弧無しの点番号で示し、斜めベ
クトル化輪郭線を構成するベクトルの点番号は括弧付き
の点番号で示している。なお、以下においては、例え
ば、点番号pの点を点pと略す場合がある。
【0056】さて、斜めベクトル化を行う際には、境界
輪郭線を構成するベクトルのうち、現在の始点pを基準
とし次の点p+1とその次の点p+2を用いて、斜めベ
クトル化を行うか否か(すなわち、現在の始点pから斜
め方向に延びるベクトル(斜めベクトル)を水平または
垂直方向(X,Y方向)に延びるベクトル(水平または
垂直ベクトル)に代えて設定するか否)を決定する。つ
まり、点p,点p+1,点p+2で構成される三角形に
着目し、次の,で述べる条件を共に満たしたときに
斜めベクトル化を行うようにする。
輪郭線を構成するベクトルのうち、現在の始点pを基準
とし次の点p+1とその次の点p+2を用いて、斜めベ
クトル化を行うか否か(すなわち、現在の始点pから斜
め方向に延びるベクトル(斜めベクトル)を水平または
垂直方向(X,Y方向)に延びるベクトル(水平または
垂直ベクトル)に代えて設定するか否)を決定する。つ
まり、点p,点p+1,点p+2で構成される三角形に
着目し、次の,で述べる条件を共に満たしたときに
斜めベクトル化を行うようにする。
【0057】外側の境界輪郭線に対して斜めベクトル
化を行うときには、斜めベクトルが境界輪郭線の内側を
通るように、斜めベクトル化を行い、内側の境界輪郭線
に対して斜めベクトル化を行うときには、斜めベクトル
が境界輪郭線の外側を通るように斜めベクトル化を行う
(図6及び図7)。
化を行うときには、斜めベクトルが境界輪郭線の内側を
通るように、斜めベクトル化を行い、内側の境界輪郭線
に対して斜めベクトル化を行うときには、斜めベクトル
が境界輪郭線の外側を通るように斜めベクトル化を行う
(図6及び図7)。
【0058】具体的には、数1で定義される、上記三角
形の面積(+,−の符号も考慮した面積)Sが、正の場
合(すなわち、S>0)に斜めベクトル化を行う。 S={(xp−xp+2)・(yp+1−yp+2)-(xp+1−xp+2)・(yp−yp+2)}/2…数1 但し、xp,ypは点pの、xp+1,yp+1は点p+1の、
xp+2,yp+2は点p+2の、それぞれX,Y座標であ
る。
形の面積(+,−の符号も考慮した面積)Sが、正の場
合(すなわち、S>0)に斜めベクトル化を行う。 S={(xp−xp+2)・(yp+1−yp+2)-(xp+1−xp+2)・(yp−yp+2)}/2…数1 但し、xp,ypは点pの、xp+1,yp+1は点p+1の、
xp+2,yp+2は点p+2の、それぞれX,Y座標であ
る。
【0059】上記三角形の面積Sの絶対値が3以下で
ある(すなわち、|S|≦3)か、あるいは、上記三角
形における点pから点p+1もしくは点p+1から点p
+2へのX方向の変位(+,−の符号も考慮した変位)
△xの絶対値またはY方向の変位(+,−の符号も考慮
した変位)△yの絶対値が1である場合(すなわち、|
△x|=1または|△y|=1)に、斜めベクトル化を
行う。ここで、上記条件を採用する理由は、条件を
満たさない場合に斜めベクトル化を行うと、斜めベクト
ルを直交化する際に水平及び垂直ベクトルを一義的に定
めることができなくなり、元の境界輪郭線に復元できな
い場合があるからである。
ある(すなわち、|S|≦3)か、あるいは、上記三角
形における点pから点p+1もしくは点p+1から点p
+2へのX方向の変位(+,−の符号も考慮した変位)
△xの絶対値またはY方向の変位(+,−の符号も考慮
した変位)△yの絶対値が1である場合(すなわち、|
△x|=1または|△y|=1)に、斜めベクトル化を
行う。ここで、上記条件を採用する理由は、条件を
満たさない場合に斜めベクトル化を行うと、斜めベクト
ルを直交化する際に水平及び垂直ベクトルを一義的に定
めることができなくなり、元の境界輪郭線に復元できな
い場合があるからである。
【0060】図17は斜めベクトル化を行う場合の例と
行わない場合の例をそれぞれ示す説明図である。図17
(a)〜(c)は、境界輪郭線として、点pから点p+
1に水平ベクトル、点p+1から点p+2に垂直ベクト
ルがそれぞれ存在する場合を想定している。図17
(a)では、S=3,△x=3,△y=2となり、S>
0かつS≦3であるので、水平及び垂直ベクトルを点p
から点p+2の斜めベクトルに置き換え、斜めベクトル
化を行う。また、図17(b)では、S=4,△x=
4,△y=2となり、S>0であるが、S>3,|△x
|≠1,|△y|≠1であるので、斜めベクトル化を行
わず、水平及び垂直ベクトルがそのまま維持される。ま
た、図17(c)では、S=2.5,△x=5,△y=
1となり、S>0かつ|△y|=1であるので、水平及
び垂直ベクトルを点pから点p+2の斜めベクトルに置
き換え、斜めベクトル化を行う。
行わない場合の例をそれぞれ示す説明図である。図17
(a)〜(c)は、境界輪郭線として、点pから点p+
1に水平ベクトル、点p+1から点p+2に垂直ベクト
ルがそれぞれ存在する場合を想定している。図17
(a)では、S=3,△x=3,△y=2となり、S>
0かつS≦3であるので、水平及び垂直ベクトルを点p
から点p+2の斜めベクトルに置き換え、斜めベクトル
化を行う。また、図17(b)では、S=4,△x=
4,△y=2となり、S>0であるが、S>3,|△x
|≠1,|△y|≠1であるので、斜めベクトル化を行
わず、水平及び垂直ベクトルがそのまま維持される。ま
た、図17(c)では、S=2.5,△x=5,△y=
1となり、S>0かつ|△y|=1であるので、水平及
び垂直ベクトルを点pから点p+2の斜めベクトルに置
き換え、斜めベクトル化を行う。
【0061】 B−2)斜めベクトル化の処理手順の概要 図18は斜めベクトル化を行う手順を示すフローチャー
トである。図18に示すように、まず、ステップ1にお
いて、境界輪郭線を構成するベクトルの中から、始点と
なる始点pを選び、次に、ステップ2において、点を点
p+1,p+2と2つ進めて、3つの点p,p+1,p
+2によって三角形を形成する。
トである。図18に示すように、まず、ステップ1にお
いて、境界輪郭線を構成するベクトルの中から、始点と
なる始点pを選び、次に、ステップ2において、点を点
p+1,p+2と2つ進めて、3つの点p,p+1,p
+2によって三角形を形成する。
【0062】次に、ステップ3において、三角形の面積
S、変位△x,△yについて、S>0であり、かつ、|
S|≦3であるかまたは|△x|=1もしくは|△y|
=1であるかを判断し、yesであればステップ4へ、
noであればステップ5へ、それぞれ進む。ステップ4
では、始点pから2つ目の点p+2へ斜めベクトルを張
り(設定し)、ステップ5では、始点pから次の点p+
1へ水平または垂直ベクトルを張る。
S、変位△x,△yについて、S>0であり、かつ、|
S|≦3であるかまたは|△x|=1もしくは|△y|
=1であるかを判断し、yesであればステップ4へ、
noであればステップ5へ、それぞれ進む。ステップ4
では、始点pから2つ目の点p+2へ斜めベクトルを張
り(設定し)、ステップ5では、始点pから次の点p+
1へ水平または垂直ベクトルを張る。
【0063】ステップ4で斜めベクトルを張ったら、ス
テップ6において、その張った斜めベクトル(すなわ
ち、新ベクトル)とその直前のベクトルとを比較し、ベ
クトルのパターンが同一かどうかをチェックする(パタ
ーンチェック)。パターンチェックの結果、同一であれ
ば(すなわち、yesであれば)ステップ7へ、同一で
なければ(すなわち、noであれば)ステップ8へ、そ
れぞれ進む。ステップ7では、既に登録されている直前
のベクトルの終点(すなわち、新ベクトルの始点)に替
えて、新ベクトルの終点を登録し、ステップ8では、新
ベクトルの終点をそのまま登録する。
テップ6において、その張った斜めベクトル(すなわ
ち、新ベクトル)とその直前のベクトルとを比較し、ベ
クトルのパターンが同一かどうかをチェックする(パタ
ーンチェック)。パターンチェックの結果、同一であれ
ば(すなわち、yesであれば)ステップ7へ、同一で
なければ(すなわち、noであれば)ステップ8へ、そ
れぞれ進む。ステップ7では、既に登録されている直前
のベクトルの終点(すなわち、新ベクトルの始点)に替
えて、新ベクトルの終点を登録し、ステップ8では、新
ベクトルの終点をそのまま登録する。
【0064】また、前述のステップ5で水平または垂直
ベクトルを張った場合は、パターンチェックはしないで
直接ステップ8に進み、ステップ8で、その張った水平
または垂直ベクトル(新ベクトル)の終点を登録する。
ベクトルを張った場合は、パターンチェックはしないで
直接ステップ8に進み、ステップ8で、その張った水平
または垂直ベクトル(新ベクトル)の終点を登録する。
【0065】最後に、ステップ9では、登録した点(新
ベクトルの終点)が最終点(境界輪郭線を構成するベク
トルの最後の点i−1)であるかどうかを判断し、最終
点であれば(すなわち、yesであれば)全ての処理を
終了し、最終点でなければ(すなわち、noであれば)
ステップ1に進む。
ベクトルの終点)が最終点(境界輪郭線を構成するベク
トルの最後の点i−1)であるかどうかを判断し、最終
点であれば(すなわち、yesであれば)全ての処理を
終了し、最終点でなければ(すなわち、noであれば)
ステップ1に進む。
【0066】 B−3)斜めベクトル化の処理方法の詳細 斜めベクトル化の処理方法を、処理の開始段階,中間段
階,最終段階に分けて説明する。
階,最終段階に分けて説明する。
【0067】まずは開始段階についてである。斜めベク
トル化の処理を開始した場合、最初の1つ目のベクトル
(開始ベクトル)については、それ以前にベクトルが存
在しないため、パターンチェックを行わないで、そのま
まそのベクトルの始点と終点を登録する。
トル化の処理を開始した場合、最初の1つ目のベクトル
(開始ベクトル)については、それ以前にベクトルが存
在しないため、パターンチェックを行わないで、そのま
まそのベクトルの始点と終点を登録する。
【0068】次に中間段階についてである。中間段階に
おいて、点pから点p+2に斜めベクトルを張れる場合
(すなわち、斜めベクトル化を行える場合)は、以下の
ような場合である。
おいて、点pから点p+2に斜めベクトルを張れる場合
(すなわち、斜めベクトル化を行える場合)は、以下の
ような場合である。
【0069】図19及び図20はそれぞれ斜めベクトル
化処理の中間段階において斜めベクトル化を行える場合
を示す説明図である。これら図において、(a)は境界
輪郭線に対し斜めベクトルを張っている様子を示し、
(b)は(a)の境界輪郭線を構成するベクトルの座標
を示し、(c)は(a)の斜めベクトル化輪郭線を構成
するベクトルの座標を示している。また、(a)に示す
境界輪郭線は外側の境界輪郭線である。なお、これらの
図の説明は、以下の図(図21〜図28)についても同
様に対応する。
化処理の中間段階において斜めベクトル化を行える場合
を示す説明図である。これら図において、(a)は境界
輪郭線に対し斜めベクトルを張っている様子を示し、
(b)は(a)の境界輪郭線を構成するベクトルの座標
を示し、(c)は(a)の斜めベクトル化輪郭線を構成
するベクトルの座標を示している。また、(a)に示す
境界輪郭線は外側の境界輪郭線である。なお、これらの
図の説明は、以下の図(図21〜図28)についても同
様に対応する。
【0070】斜めベクトル化が行える場合は、前述した
ように、点p,p+1,p+2にて構成される三角形の
面積S、変位△x,△yについて、S>0であり、か
つ、|S|≦3であるかまたは|△x|=1もしくは|
△y|=1である場合である。そのような場合におい
て、前述したように、パターンチェックを行った結果、
直前のベクトル(vold)と新ベクトル(vnew)
のパターンが異なる場合(vold≠vnew)が図1
9に示す場合であり、パターンが同一の場合(vold
=vnew)が図20に示す場合である。
ように、点p,p+1,p+2にて構成される三角形の
面積S、変位△x,△yについて、S>0であり、か
つ、|S|≦3であるかまたは|△x|=1もしくは|
△y|=1である場合である。そのような場合におい
て、前述したように、パターンチェックを行った結果、
直前のベクトル(vold)と新ベクトル(vnew)
のパターンが異なる場合(vold≠vnew)が図1
9に示す場合であり、パターンが同一の場合(vold
=vnew)が図20に示す場合である。
【0071】図19に示すように、パターンが異なる場
合は、始点pから数えて2つ目の点p+2の座標(X,
Y座標)を、斜めベクトル化輪郭線を構成する点v+1
として登録することにより、新ベクトル(vnew)の
終点の登録を行う。
合は、始点pから数えて2つ目の点p+2の座標(X,
Y座標)を、斜めベクトル化輪郭線を構成する点v+1
として登録することにより、新ベクトル(vnew)の
終点の登録を行う。
【0072】また、図20に示すように、パターンが同
一の場合は、直前のベクトル(vold)の向きと新ベ
クトル(vnew)の向きが等しいため、それら2つの
ベクトルを1つのベクトルに置き換えることができる。
その際、置き換えたベクトルは直前のベクトル(vol
d)の始点である点p−2から新ベクトル(vnew)
の終点である点p+2へ張られることになる。そこで、
斜めベクトル化輪郭線を構成する点vとして直前に登録
した点pの座標による登録を一旦取り消して、点p+2
の座標を新たに点vとして登録し直すことにより、直前
のベクトル(vold)の終点に替えて新ベクトル(v
new)の終点の登録を行う。なお、図19,図20の
何れの場合も、登録した点p+2を次のベクトルの始点
に選ぶ。
一の場合は、直前のベクトル(vold)の向きと新ベ
クトル(vnew)の向きが等しいため、それら2つの
ベクトルを1つのベクトルに置き換えることができる。
その際、置き換えたベクトルは直前のベクトル(vol
d)の始点である点p−2から新ベクトル(vnew)
の終点である点p+2へ張られることになる。そこで、
斜めベクトル化輪郭線を構成する点vとして直前に登録
した点pの座標による登録を一旦取り消して、点p+2
の座標を新たに点vとして登録し直すことにより、直前
のベクトル(vold)の終点に替えて新ベクトル(v
new)の終点の登録を行う。なお、図19,図20の
何れの場合も、登録した点p+2を次のベクトルの始点
に選ぶ。
【0073】一方、中間段階において、点pから点p+
2にベクトルが張れない場合(すなわち、斜めベクトル
化が行えない場合)は、以下のような場合である。図2
1,図22及び図23はそれぞれ斜めベクトル化処理の
中間段階において斜めベクトル化を行えない場合を示す
説明図である。斜めベクトル化が行えない場合は、点
p,p+1,p+2にて構成される三角形の面積S、変
位△x,△yについて、S≦0であるか、または、|S
|>3,|△x|≠1かつ|△y|≠1である場合であ
る。このうち、S≦0である場合が図21に示す場合で
あり、|S|>3,|△x|≠1かつ|△y|≠1であ
る場合が図22または図23に示す場合である。
2にベクトルが張れない場合(すなわち、斜めベクトル
化が行えない場合)は、以下のような場合である。図2
1,図22及び図23はそれぞれ斜めベクトル化処理の
中間段階において斜めベクトル化を行えない場合を示す
説明図である。斜めベクトル化が行えない場合は、点
p,p+1,p+2にて構成される三角形の面積S、変
位△x,△yについて、S≦0であるか、または、|S
|>3,|△x|≠1かつ|△y|≠1である場合であ
る。このうち、S≦0である場合が図21に示す場合で
あり、|S|>3,|△x|≠1かつ|△y|≠1であ
る場合が図22または図23に示す場合である。
【0074】図21に示すように、S≦0である場合
は、始点pの次の点である点p+1の座標を、斜めベク
トル化輪郭線を構成する点v+1として登録することに
より、新ベクトルの終点の登録を行う。なお、図21の
場合は、登録した点p+1を次のベクトルの始点に選
ぶ。
は、始点pの次の点である点p+1の座標を、斜めベク
トル化輪郭線を構成する点v+1として登録することに
より、新ベクトルの終点の登録を行う。なお、図21の
場合は、登録した点p+1を次のベクトルの始点に選
ぶ。
【0075】また、図22に示すように、|S|>3,
|△x|≠1かつ|△y|≠1である場合であって、点
p+1と点p+2との間の長さαが3より長い場合は、
点pから点p+1へ垂直ベクトルを張るだけでなく、点
p+1から点p+2へも水平ベクトルを続けて張るよう
にする。この場合、点p+1と点p+2との間の長さα
が3より長く、かつ、点p+1,p+2,p+3にて構
成される三角形の面積Sの絶対値が3より大きい(|S
|>3)ため、点pの次の点である点p+1を始点とし
て、点p+3(図示せず)に対し斜めベクトルを張るこ
とは不可能であり、それゆえ、点p+1から点p+2へ
もベクトルを続けて張るようしている。そこで、点p+
1の座標を斜めベクトル化輪郭線を構成する点v+1と
して登録し、さらに、点p+2の座標を点v+2として
登録することにより、2つの新ベクトルの終点の登録を
行う。なお、図22の場合は、最後に登録した点p+2
を次のベクトルの始点に選ぶ。
|△x|≠1かつ|△y|≠1である場合であって、点
p+1と点p+2との間の長さαが3より長い場合は、
点pから点p+1へ垂直ベクトルを張るだけでなく、点
p+1から点p+2へも水平ベクトルを続けて張るよう
にする。この場合、点p+1と点p+2との間の長さα
が3より長く、かつ、点p+1,p+2,p+3にて構
成される三角形の面積Sの絶対値が3より大きい(|S
|>3)ため、点pの次の点である点p+1を始点とし
て、点p+3(図示せず)に対し斜めベクトルを張るこ
とは不可能であり、それゆえ、点p+1から点p+2へ
もベクトルを続けて張るようしている。そこで、点p+
1の座標を斜めベクトル化輪郭線を構成する点v+1と
して登録し、さらに、点p+2の座標を点v+2として
登録することにより、2つの新ベクトルの終点の登録を
行う。なお、図22の場合は、最後に登録した点p+2
を次のベクトルの始点に選ぶ。
【0076】一方、図23に示すように、|S|>3,
|△x|≠1かつ|△y|≠1である場合であって、点
pと点p+2との間の長さβが3より長い場合には、図
22の場合と異なり、点p+1を始点として点p+3
(図示せず)に対し斜めベクトルを張れる可能性があ
る。そのため、点pから点p+1へのベクトルのみを張
るようにする。そこで、点p+1の座標を斜めベクトル
化輪郭線を構成する点v+1として登録することによ
り、新ベクトルの終点の登録を行う。なお、図23の場
合は、登録した点p+1を次のベクトルの始点に選ぶ。
斜めベクトル化を行えない場合は上述のように処理を行
うが、図21、図22及び図23の(b)、(c)から
明かなように、それらの処理は境界輪郭線を構成するベ
クトルに変更を加えないのと等価である。
|△x|≠1かつ|△y|≠1である場合であって、点
pと点p+2との間の長さβが3より長い場合には、図
22の場合と異なり、点p+1を始点として点p+3
(図示せず)に対し斜めベクトルを張れる可能性があ
る。そのため、点pから点p+1へのベクトルのみを張
るようにする。そこで、点p+1の座標を斜めベクトル
化輪郭線を構成する点v+1として登録することによ
り、新ベクトルの終点の登録を行う。なお、図23の場
合は、登録した点p+1を次のベクトルの始点に選ぶ。
斜めベクトル化を行えない場合は上述のように処理を行
うが、図21、図22及び図23の(b)、(c)から
明かなように、それらの処理は境界輪郭線を構成するベ
クトルに変更を加えないのと等価である。
【0077】次に最終段階についてである。最終段階と
しては、ベクトルの始点pが境界輪郭線を構成するベク
トルの最終点i−1である場合と、最終点の1つ前の点
i−2である場合とが考えられる。
しては、ベクトルの始点pが境界輪郭線を構成するベク
トルの最終点i−1である場合と、最終点の1つ前の点
i−2である場合とが考えられる。
【0078】そこで、まず、ベクトルの始点pが最終点
の1つ前の点i−2である場合について説明する。ベク
トルの始点pが点i−2である場合において、始点pで
ある点i−2から点p+2である点0(境界輪郭線を構
成するベクトルの最初の点(開始点))にベクトルが張
れる場合(すなわち、斜めベクトル化を行える場合)
は、以下のような場合である。
の1つ前の点i−2である場合について説明する。ベク
トルの始点pが点i−2である場合において、始点pで
ある点i−2から点p+2である点0(境界輪郭線を構
成するベクトルの最初の点(開始点))にベクトルが張
れる場合(すなわち、斜めベクトル化を行える場合)
は、以下のような場合である。
【0079】図24及び図25はそれぞれ斜めベクトル
化処理の最終段階において斜めベクトル化を行える場合
を示す説明図である。斜めベクトル化が行える場合は、
点i−2,i−1,0にて構成される三角形の面積S、
変位△x,△yについて、S>0であり、かつ、|S|
≦3であるかまたは|△x|=1もしくは|△y|=1
である場合である。そのような場合において、パターン
チェックを行った結果、直前のベクトル(vold)と
新ベクトル(vnew)のパターンが異なる場合(vo
ld≠vnew)が図24に示す場合であり、パターン
が同一の場合(vold=vnew)が図25に示す場
合である。
化処理の最終段階において斜めベクトル化を行える場合
を示す説明図である。斜めベクトル化が行える場合は、
点i−2,i−1,0にて構成される三角形の面積S、
変位△x,△yについて、S>0であり、かつ、|S|
≦3であるかまたは|△x|=1もしくは|△y|=1
である場合である。そのような場合において、パターン
チェックを行った結果、直前のベクトル(vold)と
新ベクトル(vnew)のパターンが異なる場合(vo
ld≠vnew)が図24に示す場合であり、パターン
が同一の場合(vold=vnew)が図25に示す場
合である。
【0080】図24に示すように、パターンが異なる場
合は、直前のベクトル(vold)と新ベクトル(vn
ew)とを1つのベクトルに置き換えることはできな
い。しかも、新ベクトル(vnew)の始点である点i
−2の座標は、斜めベクトル化輪郭線を構成する点vと
して、新ベクトル(vnew)の終点である点0の座標
は、斜めベクトル化輪郭線を構成する点0として、それ
ぞれ既に登録されている。従って、この場合は、何もせ
ずにそのまま処理を終了する。
合は、直前のベクトル(vold)と新ベクトル(vn
ew)とを1つのベクトルに置き換えることはできな
い。しかも、新ベクトル(vnew)の始点である点i
−2の座標は、斜めベクトル化輪郭線を構成する点vと
して、新ベクトル(vnew)の終点である点0の座標
は、斜めベクトル化輪郭線を構成する点0として、それ
ぞれ既に登録されている。従って、この場合は、何もせ
ずにそのまま処理を終了する。
【0081】また、図25に示すように、パターンが同
一の場合は、図20に示す場合と同様に、直前のベクト
ル(vold)の向きと新ベクトル(vnew)の向き
が等しいため、それら2つのベクトルを1つのベクトル
に置き換えることができる。その際、置き換えたベクト
ルは直前のベクトル(vold)の始点p−2である点
i−4から新ベクトル(vnew)の終点p+2である
点0へ張られることになる。しかし、置き換えたベクト
ルの終点となる点0の座標は、斜めベクトル化輪郭線を
構成する点0として既に登録されている。従って、斜め
ベクトル化輪郭線を構成する点vとして直前に登録した
点i−2の座標による登録のみを取り消して、処理を終
了する。
一の場合は、図20に示す場合と同様に、直前のベクト
ル(vold)の向きと新ベクトル(vnew)の向き
が等しいため、それら2つのベクトルを1つのベクトル
に置き換えることができる。その際、置き換えたベクト
ルは直前のベクトル(vold)の始点p−2である点
i−4から新ベクトル(vnew)の終点p+2である
点0へ張られることになる。しかし、置き換えたベクト
ルの終点となる点0の座標は、斜めベクトル化輪郭線を
構成する点0として既に登録されている。従って、斜め
ベクトル化輪郭線を構成する点vとして直前に登録した
点i−2の座標による登録のみを取り消して、処理を終
了する。
【0082】一方、ベクトルの始点pが点i−2である
場合において、始点pである点i−2から点p+2であ
る点0にベクトルが張れない場合(すなわち、斜めベク
トル化を行えない場合)は、以下のような場合である。
場合において、始点pである点i−2から点p+2であ
る点0にベクトルが張れない場合(すなわち、斜めベク
トル化を行えない場合)は、以下のような場合である。
【0083】図26は斜めベクトル化処理の最終段階に
おいて斜めベクトル化を行えない場合を示す説明図であ
る。斜めベクトル化が行えない場合は、点i−2,i−
1,0にて構成される三角形の面積S、変位△x,△y
について、S≦0であるか、または、|S|>3,|△
x|≠1かつ|△y|≠1である場合である。このう
ち、S≦0である場合が図26(a1)に示す場合であ
り、|S|>3,|△x|≠1かつ|△y|≠1である
場合が図26(a2)に示す場合である。
おいて斜めベクトル化を行えない場合を示す説明図であ
る。斜めベクトル化が行えない場合は、点i−2,i−
1,0にて構成される三角形の面積S、変位△x,△y
について、S≦0であるか、または、|S|>3,|△
x|≠1かつ|△y|≠1である場合である。このう
ち、S≦0である場合が図26(a1)に示す場合であ
り、|S|>3,|△x|≠1かつ|△y|≠1である
場合が図26(a2)に示す場合である。
【0084】何れの場合も、図26に示すように、点i
−2の次の点である点i−1の座標を、斜めベクトル化
輪郭線を構成する点v+1として登録することにより、
新ベクトルの終点の登録を行う。
−2の次の点である点i−1の座標を、斜めベクトル化
輪郭線を構成する点v+1として登録することにより、
新ベクトルの終点の登録を行う。
【0085】続いてベクトルの始点pが最終点i−1で
ある場合について説明する。図27は斜めベクトル化処
理の最終段階において始点pが最終点i−1である場合
を示す説明図である。ベクトルの始点pが最終点i−1
である場合、そのベクトルは必ず点0を終点とするよう
に張られる。しかも、その点0の座標は斜めベクトル化
輪郭線を構成する点0として既に登録されている。従っ
て、この場合は、何もせずにそのまま処理を終了する。
ある場合について説明する。図27は斜めベクトル化処
理の最終段階において始点pが最終点i−1である場合
を示す説明図である。ベクトルの始点pが最終点i−1
である場合、そのベクトルは必ず点0を終点とするよう
に張られる。しかも、その点0の座標は斜めベクトル化
輪郭線を構成する点0として既に登録されている。従っ
て、この場合は、何もせずにそのまま処理を終了する。
【0086】以上のように、斜めベクトル化処理の最終
段階が終了すると、その終了時点では、斜めベクトル化
輪郭線を構成するベクトルとして、点番号0から点番号
s−1までの合計s個のベクトルが登録されているもの
とする。
段階が終了すると、その終了時点では、斜めベクトル化
輪郭線を構成するベクトルとして、点番号0から点番号
s−1までの合計s個のベクトルが登録されているもの
とする。
【0087】そこで、次に最終パターンチェックを行
う。すなわち、最後に張ったベクトル(最終ベクトル)
と最初に張ったベクトル(開始ベクトル)とを比較し、
ベクトルのパターンが同一かどうかをチェックする。そ
の結果、パターンが同一であった場合には、次のような
処理を行う。
う。すなわち、最後に張ったベクトル(最終ベクトル)
と最初に張ったベクトル(開始ベクトル)とを比較し、
ベクトルのパターンが同一かどうかをチェックする。そ
の結果、パターンが同一であった場合には、次のような
処理を行う。
【0088】図28は最終パターンチェックの結果パタ
ーンが同一であった場合を示す説明図である。図28に
おいて、(a)は境界輪郭線に対しベクトルを張ってい
る様子を示し、(b)は(a)の斜めベクトル化輪郭線
を構成するベクトルの座標を示している。
ーンが同一であった場合を示す説明図である。図28に
おいて、(a)は境界輪郭線に対しベクトルを張ってい
る様子を示し、(b)は(a)の斜めベクトル化輪郭線
を構成するベクトルの座標を示している。
【0089】図28に示すように、最終ベクトル(vl
ast)と開始ベクトル(vstart)のパターンが
同一である場合は、図20,図25の場合と同様に、最
終ベクトル(vlast)の向きと開始ベクトル(vs
tart)の向きが等しいため、それら2つのベクトル
を1つのベクトルに置き換えることができる。その際、
置き換えたベクトルは最終ベクトル(vlast)の始
点である点s−1から開始ベクトル(vstart)の
終点である点1(斜めベクトル化輪郭線を構成する点
1)へ張られることになる。そこで、既に登録されてい
る斜めベクトル化輪郭線を構成する点0と点s−1の登
録をそれぞれ取り消し、取り消した点s−1の座標を新
たに点0として登録し直す。一方、最終パターンチェッ
クの結果、パターンが異なった場合には、何ら処理をせ
ず、そのままとする。
ast)と開始ベクトル(vstart)のパターンが
同一である場合は、図20,図25の場合と同様に、最
終ベクトル(vlast)の向きと開始ベクトル(vs
tart)の向きが等しいため、それら2つのベクトル
を1つのベクトルに置き換えることができる。その際、
置き換えたベクトルは最終ベクトル(vlast)の始
点である点s−1から開始ベクトル(vstart)の
終点である点1(斜めベクトル化輪郭線を構成する点
1)へ張られることになる。そこで、既に登録されてい
る斜めベクトル化輪郭線を構成する点0と点s−1の登
録をそれぞれ取り消し、取り消した点s−1の座標を新
たに点0として登録し直す。一方、最終パターンチェッ
クの結果、パターンが異なった場合には、何ら処理をせ
ず、そのままとする。
【0090】さて、以上説明した斜めベクトル化の処理
においては、図18に示したように、ステップ6におい
て、毎回、パターンチェック、すなわち、直前のベクト
ルと新ベクトルのパターンが同一かどうかのチェックを
行なっていたが、次のようにしても良い。
においては、図18に示したように、ステップ6におい
て、毎回、パターンチェック、すなわち、直前のベクト
ルと新ベクトルのパターンが同一かどうかのチェックを
行なっていたが、次のようにしても良い。
【0091】すなわち、ステップ6を削除して毎回のパ
ターンチェックを行なわず、その代わりに、斜めベクト
ル化輪郭線を構成するベクトルとして、点番号0から点
番号s−1までの合計s個のベクトルが全て登録されて
から、最終パターンチェックの段階で、最終ベクトルと
開始ベクトルだけでなく、点番号0から点番号s−1ま
での登録された全てのベクトルについて、隣接する2つ
のベクトル、すなわち、前のベクトルと後のベクトルの
パターンが同一かどうかを順番にチェックして、パター
ンチェックを一括的に行なうようにすると共に、パター
ンチェックに伴う登録の取り消しや登録のし直しなどの
処理も一括して行なうようにしても良い。
ターンチェックを行なわず、その代わりに、斜めベクト
ル化輪郭線を構成するベクトルとして、点番号0から点
番号s−1までの合計s個のベクトルが全て登録されて
から、最終パターンチェックの段階で、最終ベクトルと
開始ベクトルだけでなく、点番号0から点番号s−1ま
での登録された全てのベクトルについて、隣接する2つ
のベクトル、すなわち、前のベクトルと後のベクトルの
パターンが同一かどうかを順番にチェックして、パター
ンチェックを一括的に行なうようにすると共に、パター
ンチェックに伴う登録の取り消しや登録のし直しなどの
処理も一括して行なうようにしても良い。
【0092】C.直交化の処理方法の説明 C−1)直交化の処理方法の概略 図29は直交化を行う方法を概略的に説明するための説
明図である。図29において、(a)は斜めベクトル化
輪郭線に対し直交化を行っている様子を示し、(b)は
(a)の斜めベクトル化輪郭線を構成するベクトルの座
標を示し、(c)は(a)の直交化により得られる境界
輪郭線を構成するベクトルの座標を示している。本実施
例においては、直交化は、斜めベクトル化輪郭線を構成
するベクトルに基づいて、境界輪郭線を構成するベクト
ルを新たに順次登録していくことにより行う。
明図である。図29において、(a)は斜めベクトル化
輪郭線に対し直交化を行っている様子を示し、(b)は
(a)の斜めベクトル化輪郭線を構成するベクトルの座
標を示し、(c)は(a)の直交化により得られる境界
輪郭線を構成するベクトルの座標を示している。本実施
例においては、直交化は、斜めベクトル化輪郭線を構成
するベクトルに基づいて、境界輪郭線を構成するベクト
ルを新たに順次登録していくことにより行う。
【0093】ここで、斜めベクトル化輪郭線は点番号0
から点番号s−1までの合計s個のベクトルによって構
成されているものとし、現在の始点(すなわち、現在、
着目しているベクトルの始点)の点番号をvとし、現在
の終点(すなわち、現在、着目しているベクトルの終
点)の点番号をv+1とする。また、直交化により得ら
れる境界輪郭線は点番号0から始まるベクトルによって
構成されており、現在登録されている点のうち、最も新
しい点の点番号をpとする。
から点番号s−1までの合計s個のベクトルによって構
成されているものとし、現在の始点(すなわち、現在、
着目しているベクトルの始点)の点番号をvとし、現在
の終点(すなわち、現在、着目しているベクトルの終
点)の点番号をv+1とする。また、直交化により得ら
れる境界輪郭線は点番号0から始まるベクトルによって
構成されており、現在登録されている点のうち、最も新
しい点の点番号をpとする。
【0094】また、(a)に示す斜めベクトル化輪郭線
は外側の斜めベクトル化輪郭線であり、(a)におい
て、斜めベクトル化輪郭線を構成するベクトルの点番号
は括弧付きの点番号で示し、直交化により得られた境界
輪郭線を構成するベクトルの点番号は括弧無しの点番号
で示している。
は外側の斜めベクトル化輪郭線であり、(a)におい
て、斜めベクトル化輪郭線を構成するベクトルの点番号
は括弧付きの点番号で示し、直交化により得られた境界
輪郭線を構成するベクトルの点番号は括弧無しの点番号
で示している。
【0095】さて、直交化を行う際には、斜めベクトル
化輪郭線を構成するベクトルのうち、現在、着目してい
るベクトルの始点v及び終点v+1に基づいて、どのよ
うに直交化を行うか(すなわち、どのように水平及び垂
直方向(X,Y方向)に輪郭線を延ばしていくか)を決
定する。なお、以下、水平方向(X方向)に延びる輪郭
線を水平の輪郭線、垂直方向(Y方向)に延びる輪郭線
を垂直の輪郭線という。
化輪郭線を構成するベクトルのうち、現在、着目してい
るベクトルの始点v及び終点v+1に基づいて、どのよ
うに直交化を行うか(すなわち、どのように水平及び垂
直方向(X,Y方向)に輪郭線を延ばしていくか)を決
定する。なお、以下、水平方向(X方向)に延びる輪郭
線を水平の輪郭線、垂直方向(Y方向)に延びる輪郭線
を垂直の輪郭線という。
【0096】直交化の方法としては、外側の斜めベクト
ル化輪郭線に対して直交化を行うときには、水平及び垂
直の輪郭線が斜めベクトル化輪郭線の外側を通るよう
に、直交化を行うようにし、内側の斜めベクトル化輪郭
線に対して直交化を行うときには、水平及び垂直の輪郭
線が斜めベクトル化輪郭線の内側を通るように、直交化
を行うようにする(図11)。
ル化輪郭線に対して直交化を行うときには、水平及び垂
直の輪郭線が斜めベクトル化輪郭線の外側を通るよう
に、直交化を行うようにし、内側の斜めベクトル化輪郭
線に対して直交化を行うときには、水平及び垂直の輪郭
線が斜めベクトル化輪郭線の内側を通るように、直交化
を行うようにする(図11)。
【0097】また、着目しているベクトルの始点vの
X,Y座標を(xv,yv)、終点v+1のX,Y座標を
(xv+1,yv+1)としたとき、始点vから終点v+1へ
のX方向の変位(+,−の符号も考慮した変位)△xと
Y方向の変位(+,−の符号も考慮した変位)△yは、
それぞれ、 △x=xv+1−xv ………数2 △y=yv+1−yv ………数3 と表わされる。
X,Y座標を(xv,yv)、終点v+1のX,Y座標を
(xv+1,yv+1)としたとき、始点vから終点v+1へ
のX方向の変位(+,−の符号も考慮した変位)△xと
Y方向の変位(+,−の符号も考慮した変位)△yは、
それぞれ、 △x=xv+1−xv ………数2 △y=yv+1−yv ………数3 と表わされる。
【0098】C−2)直交化の処理手順の概要 図30は直交化を行う手順を示すフローチャートであ
る。図30に示すように、まず、ステップ1において、
斜めベクトル化輪郭線を構成するベクトルの中の最初の
点、すなわち、開始点0を、境界輪郭線を構成するベク
トルの最初の点(開始点)0として登録する。そして、
斜めベクトル化輪郭線を構成するベクトルの開始点0
を、現在着目しているベクトルの始点vとする。次に、
ステップ2において、点を1つ進めて、現在着目してい
るベクトルの終点v+1を得る。
る。図30に示すように、まず、ステップ1において、
斜めベクトル化輪郭線を構成するベクトルの中の最初の
点、すなわち、開始点0を、境界輪郭線を構成するベク
トルの最初の点(開始点)0として登録する。そして、
斜めベクトル化輪郭線を構成するベクトルの開始点0
を、現在着目しているベクトルの始点vとする。次に、
ステップ2において、点を1つ進めて、現在着目してい
るベクトルの終点v+1を得る。
【0099】次に、ステップ3において、始点vのX,
Y座標(xv,yv)と終点v+1のX,Y座標
(xv+1,yv+1)から、始点vから終点v+1へのX方
向の変位(+,−の符号も考慮した変位)△xとY方向
の変位(+,−の符号も考慮した変位)△yを、前述の
数2及び数3により計算して求める。
Y座標(xv,yv)と終点v+1のX,Y座標
(xv+1,yv+1)から、始点vから終点v+1へのX方
向の変位(+,−の符号も考慮した変位)△xとY方向
の変位(+,−の符号も考慮した変位)△yを、前述の
数2及び数3により計算して求める。
【0100】次に、ステップ4〜ステップ9で、求めた
変位△x,△yに応じて処理を分岐する。すなわち、着
目しているベクトルの変位が0(つまり、△x=△y=
0)の場合はステップ10に進む。また、着目している
ベクトルが垂直ベクトル(つまり、△x=0)の場合は
サブルーチンRAの処理を、水平ベクトル(つまり、△
y=0)の場合はサブルーチンRBの処理を、それぞれ
行う。また、着目しているベクトルが斜めベクトルであ
って、その傾きが45゜(つまり、|△x|=|△y|
≠0)の場合はサブルーチンRCの処理を行う。さら
に、着目しているベクトルが斜めベクトルであって、そ
の傾きが45゜以外の場合は、そのX,Y方向の変位の
絶対値に応じて、|△x|>|△y|のときはサブルー
チンRDの処理を、|△x|<|△y|のときはサブル
ーチンREの処理を、それぞれ行う。なお、ベクトルの
変位△x及び△yが共に0になる場合は、理論上は有り
得ないが、本実施例においては、プログラム上のバグに
よる誤動作を回避するためにステップ4を設けている。
変位△x,△yに応じて処理を分岐する。すなわち、着
目しているベクトルの変位が0(つまり、△x=△y=
0)の場合はステップ10に進む。また、着目している
ベクトルが垂直ベクトル(つまり、△x=0)の場合は
サブルーチンRAの処理を、水平ベクトル(つまり、△
y=0)の場合はサブルーチンRBの処理を、それぞれ
行う。また、着目しているベクトルが斜めベクトルであ
って、その傾きが45゜(つまり、|△x|=|△y|
≠0)の場合はサブルーチンRCの処理を行う。さら
に、着目しているベクトルが斜めベクトルであって、そ
の傾きが45゜以外の場合は、そのX,Y方向の変位の
絶対値に応じて、|△x|>|△y|のときはサブルー
チンRDの処理を、|△x|<|△y|のときはサブル
ーチンREの処理を、それぞれ行う。なお、ベクトルの
変位△x及び△yが共に0になる場合は、理論上は有り
得ないが、本実施例においては、プログラム上のバグに
よる誤動作を回避するためにステップ4を設けている。
【0101】次に、ステップ10において、点v+1を
点vと置き換えて、着目していたベクトルの終点v+1
を次に着目するベクトルの始点vとする。次に、ステッ
プ11において、ステップ10で置き換えた点vが、斜
めベクトル化輪郭線を構成するベクトルの開始点0と一
致しているかどうかを判断し、一致していれば(すなわ
ち、yesであれば)処理を終了し、一致していなけれ
ば(すなわち、noであれば)ステップ2に進む。
点vと置き換えて、着目していたベクトルの終点v+1
を次に着目するベクトルの始点vとする。次に、ステッ
プ11において、ステップ10で置き換えた点vが、斜
めベクトル化輪郭線を構成するベクトルの開始点0と一
致しているかどうかを判断し、一致していれば(すなわ
ち、yesであれば)処理を終了し、一致していなけれ
ば(すなわち、noであれば)ステップ2に進む。
【0102】 C−3)直交化の処理手順における分岐処理の詳細 上記したサブルーチンRA〜REの各処理について説明
する。図31は図30におけるサブルーチンRAの処理
の流れを示すフローチャートである。図31において、
ステップ1では、境界輪郭線を構成する点として直前に
登録された点pとその1つ前に登録された点p−1とに
よって張られる輪郭線(以下、直前の輪郭線という)
が、垂直の輪郭線であるかどうかを判定し、垂直の輪郭
線でなければ(すなわち、noであれば)ステップ3
へ、垂直の輪郭線であれば(すなわち、yesであれ
ば)ステップ2へ、それぞれ進む。
する。図31は図30におけるサブルーチンRAの処理
の流れを示すフローチャートである。図31において、
ステップ1では、境界輪郭線を構成する点として直前に
登録された点pとその1つ前に登録された点p−1とに
よって張られる輪郭線(以下、直前の輪郭線という)
が、垂直の輪郭線であるかどうかを判定し、垂直の輪郭
線でなければ(すなわち、noであれば)ステップ3
へ、垂直の輪郭線であれば(すなわち、yesであれ
ば)ステップ2へ、それぞれ進む。
【0103】図32及び図33はそれぞれ図31のサブ
ルーチンRAによる処理を説明するための説明図であ
り、これらのうち、図32は直前の輪郭線が垂直の輪郭
線でない場合の処理を示しており、図33が垂直の輪郭
線である場合の処理を示している。これらの図におい
て、(a)は斜めベクトル化輪郭線に対し直交化を行っ
ている様子を示し、(b)は(a)の斜めベクトル化輪
郭線を構成するベクトルの座標を示し、(c)は(a)
の直交化により得られる境界輪郭線を構成するベクトル
の座標を示している。また、(a)に示す斜めベクトル
化輪郭線は外側の斜めベクトル化輪郭線である。なお、
これらの図の説明は、以下の図(図38,図39,図4
3)についても同様に対応する。
ルーチンRAによる処理を説明するための説明図であ
り、これらのうち、図32は直前の輪郭線が垂直の輪郭
線でない場合の処理を示しており、図33が垂直の輪郭
線である場合の処理を示している。これらの図におい
て、(a)は斜めベクトル化輪郭線に対し直交化を行っ
ている様子を示し、(b)は(a)の斜めベクトル化輪
郭線を構成するベクトルの座標を示し、(c)は(a)
の直交化により得られる境界輪郭線を構成するベクトル
の座標を示している。また、(a)に示す斜めベクトル
化輪郭線は外側の斜めベクトル化輪郭線である。なお、
これらの図の説明は、以下の図(図38,図39,図4
3)についても同様に対応する。
【0104】前述したように直前の輪郭線が垂直の輪郭
線であるかどうかを判定した結果、図32に示すよう
に、垂直の輪郭線でないと判定された場合には、着目し
ている垂直ベクトルの終点v+1の座標を、境界輪郭線
を構成する点p+1としてそのまま登録する(図31の
ステップ3)。
線であるかどうかを判定した結果、図32に示すよう
に、垂直の輪郭線でないと判定された場合には、着目し
ている垂直ベクトルの終点v+1の座標を、境界輪郭線
を構成する点p+1としてそのまま登録する(図31の
ステップ3)。
【0105】また、図33に示すように、直前の輪郭線
が垂直の輪郭線であると判定された場合は、直前の輪郭
線の方向と新たに延ばす輪郭線の方向(すなわち、現在
着目しているベクトルの方向)が等しいので、それら2
つの輪郭線を1つの輪郭線に置き換えることができる。
その際、置き換えた輪郭線は直前の輪郭線の始点p−1
と新たに延ばす輪郭線の終点(すなわち、着目している
ベクトルの終点v+1)との間に張られることになる。
そこで、境界輪郭線を構成する点pとして直前に登録し
た点vの座標による登録を一旦取り消して(図31のス
テップ2)、点v+1の座標を新たに点pとして登録し
直す(図31のステップ3)。
が垂直の輪郭線であると判定された場合は、直前の輪郭
線の方向と新たに延ばす輪郭線の方向(すなわち、現在
着目しているベクトルの方向)が等しいので、それら2
つの輪郭線を1つの輪郭線に置き換えることができる。
その際、置き換えた輪郭線は直前の輪郭線の始点p−1
と新たに延ばす輪郭線の終点(すなわち、着目している
ベクトルの終点v+1)との間に張られることになる。
そこで、境界輪郭線を構成する点pとして直前に登録し
た点vの座標による登録を一旦取り消して(図31のス
テップ2)、点v+1の座標を新たに点pとして登録し
直す(図31のステップ3)。
【0106】図34は図30におけるサブルーチンRB
の処理の流れを示すフローチャートである。図34に示
すように、サブルーチンRBの処理は図31に示したサ
ブルーチンRAの処理において、「垂直」を「水平」に
替えただけである。
の処理の流れを示すフローチャートである。図34に示
すように、サブルーチンRBの処理は図31に示したサ
ブルーチンRAの処理において、「垂直」を「水平」に
替えただけである。
【0107】すなわち、図34において、ステップ1で
は、直前の輪郭線が、水平の輪郭線であるかどうかを判
定し、水平の輪郭線でなければ(すなわち、noであれ
ば)ステップ3へ、水平の輪郭線であれば(すなわち、
yesであれば)ステップ2へ、それぞれ進む。
は、直前の輪郭線が、水平の輪郭線であるかどうかを判
定し、水平の輪郭線でなければ(すなわち、noであれ
ば)ステップ3へ、水平の輪郭線であれば(すなわち、
yesであれば)ステップ2へ、それぞれ進む。
【0108】そして、水平の輪郭線でないと判定された
場合には、ステップ3において、着目している水平ベク
トルの終点v+1の座標を、境界輪郭線を構成する点p
+1としてそのまま登録する。水平の輪郭線であると判
定された場合は、ステップ2において、境界輪郭線を構
成する点pとして直前に登録した点vの座標による登録
を一旦取り消し、その上で、ステップ3において、点v
+1の座標を新たに点pとして登録し直す。
場合には、ステップ3において、着目している水平ベク
トルの終点v+1の座標を、境界輪郭線を構成する点p
+1としてそのまま登録する。水平の輪郭線であると判
定された場合は、ステップ2において、境界輪郭線を構
成する点pとして直前に登録した点vの座標による登録
を一旦取り消し、その上で、ステップ3において、点v
+1の座標を新たに点pとして登録し直す。
【0109】図35は図30におけるサブルーチンRC
の処理の流れを示すフローチャートである。ここで、図
35のステップ1について説明する前に、着目している
ベクトルが斜めベクトルである場合、その斜めベクトル
に対し、水平及び垂直の輪郭線がどのように張られるか
について簡単に説明する。
の処理の流れを示すフローチャートである。ここで、図
35のステップ1について説明する前に、着目している
ベクトルが斜めベクトルである場合、その斜めベクトル
に対し、水平及び垂直の輪郭線がどのように張られるか
について簡単に説明する。
【0110】図36は水平及び垂直の輪郭線の張り方を
斜めベクトルの各タイプに応じて示した説明図である。
図36に示すように、斜めベクトル(一点鎖線)はその
向きによって4つのタイプ(A〜D)に分かれる。
斜めベクトルの各タイプに応じて示した説明図である。
図36に示すように、斜めベクトル(一点鎖線)はその
向きによって4つのタイプ(A〜D)に分かれる。
【0111】一方、前述したように、直交化の方法とし
て、外側の斜めベクトル化輪郭線に対しては、水平及び
垂直の輪郭線が斜めベクトル化輪郭線の外側を通るよう
に、内側の斜めベクトル化輪郭線に対しては、水平及び
垂直の輪郭線が斜めベクトル化輪郭線の内側を通るよう
に、直交化を行うことが定められている。なお、斜めベ
クトルに対して、水平及び垂直の輪郭線(実線)は、外
側の斜めベクトル化輪郭線であっても、内側の斜めベク
トル化輪郭線であっても、上記の各タイプに応じて図3
6に示す如く張られる。
て、外側の斜めベクトル化輪郭線に対しては、水平及び
垂直の輪郭線が斜めベクトル化輪郭線の外側を通るよう
に、内側の斜めベクトル化輪郭線に対しては、水平及び
垂直の輪郭線が斜めベクトル化輪郭線の内側を通るよう
に、直交化を行うことが定められている。なお、斜めベ
クトルに対して、水平及び垂直の輪郭線(実線)は、外
側の斜めベクトル化輪郭線であっても、内側の斜めベク
トル化輪郭線であっても、上記の各タイプに応じて図3
6に示す如く張られる。
【0112】図37は最初に延ばす輪郭線の方向を斜め
ベクトルの各タイプに応じて示した説明図である。ここ
で、上記の4つのタイプについて、斜めベクトルのX方
向の変位(+,−の符号も考慮した変位)△xとY方向
の変位(+,−の符号も考慮した変位)△yから、斜め
ベクトルの傾き△y/△xを求めると、その符号は図3
7に示すようにタイプB,Cについては+、タイプA,
Dについては−になる。
ベクトルの各タイプに応じて示した説明図である。ここ
で、上記の4つのタイプについて、斜めベクトルのX方
向の変位(+,−の符号も考慮した変位)△xとY方向
の変位(+,−の符号も考慮した変位)△yから、斜め
ベクトルの傾き△y/△xを求めると、その符号は図3
7に示すようにタイプB,Cについては+、タイプA,
Dについては−になる。
【0113】一方、上記4つのタイプについて水平及び
垂直の輪郭線の張り方は図36に示す如くであり、最初
に延ばす輪郭線の方向は、タイプB,Cについては水平
方向であり、タイプA,Dについては垂直方向である。
垂直の輪郭線の張り方は図36に示す如くであり、最初
に延ばす輪郭線の方向は、タイプB,Cについては水平
方向であり、タイプA,Dについては垂直方向である。
【0114】すなわち、図37に示すように、斜めベク
トルの傾き△y/△xの符号が+の場合、最初に延ばす
輪郭線の方向は水平方向となり、−の場合は垂直方向と
なる。従って、最初に延ばす輪郭線の方向は、斜めベク
トルの傾き△y/△xの符号によって求めることができ
る。
トルの傾き△y/△xの符号が+の場合、最初に延ばす
輪郭線の方向は水平方向となり、−の場合は垂直方向と
なる。従って、最初に延ばす輪郭線の方向は、斜めベク
トルの傾き△y/△xの符号によって求めることができ
る。
【0115】そこで、図35に示すように、サブルーチ
ンRCのステップ1においては、着目している斜めベク
トルの傾き△y/△xを計算により求め、その傾き△y
/△xの符号が+の場合には、最初に延ばす輪郭線の方
向を水平方向に決定し、−の場合には垂直方向に決定す
る。
ンRCのステップ1においては、着目している斜めベク
トルの傾き△y/△xを計算により求め、その傾き△y
/△xの符号が+の場合には、最初に延ばす輪郭線の方
向を水平方向に決定し、−の場合には垂直方向に決定す
る。
【0116】次に、ステップ2において、最初に延ばす
輪郭線の方向が水平方向であるかどうかを判定し、水平
方向であれば(すなわち、yesであれば)ステップ3
へ進み、水平方向でなければ(すなわち、noであれ
ば)ステップ8へ進む。
輪郭線の方向が水平方向であるかどうかを判定し、水平
方向であれば(すなわち、yesであれば)ステップ3
へ進み、水平方向でなければ(すなわち、noであれ
ば)ステップ8へ進む。
【0117】図38及び図39はそれぞれ図35のサブ
ルーチンRCによる処理を説明するための説明図であ
り、これらのうち、図38は最初に延ばす輪郭線の方向
が水平方向である場合の処理を示しており、図39が垂
直方向である場合の処理を示している。
ルーチンRCによる処理を説明するための説明図であ
り、これらのうち、図38は最初に延ばす輪郭線の方向
が水平方向である場合の処理を示しており、図39が垂
直方向である場合の処理を示している。
【0118】前述したように最初に延ばす輪郭線の方向
が水平方向であるかどうかを判定した結果、図38に示
す例のように、水平方向であると判定された場合には、
ステップ3において、境界輪郭線を構成する点pとして
直前に登録された点vの座標(すなわち、着目している
ベクトルの始点vの座標)のうち、X座標xvに1を図
40に従って加減算する。ここで、この「加減算」の意
味について説明する。
が水平方向であるかどうかを判定した結果、図38に示
す例のように、水平方向であると判定された場合には、
ステップ3において、境界輪郭線を構成する点pとして
直前に登録された点vの座標(すなわち、着目している
ベクトルの始点vの座標)のうち、X座標xvに1を図
40に従って加減算する。ここで、この「加減算」の意
味について説明する。
【0119】図40はX,Y座標に対する加減算の意味
を説明するための説明図である。図36に示したよう
に、斜めベクトルはその向きによって4つのタイプ(A
〜D)に分かれる。これら各タイプについて、斜めベク
トルの変位△x,△yの符号をそれぞれ導くと、図40
に示す如くになる。
を説明するための説明図である。図36に示したよう
に、斜めベクトルはその向きによって4つのタイプ(A
〜D)に分かれる。これら各タイプについて、斜めベク
トルの変位△x,△yの符号をそれぞれ導くと、図40
に示す如くになる。
【0120】一方、例えば、今、水平方向に輪郭線を延
ばすことを考えると、斜めベクトルのX方向の変位△x
の符号が+である場合は、X座標が増加する向きに延ば
すことになる。また、逆に、X方向の変位△xの符号が
−である場合は、X座標が減少する向きに延ばすことに
なる。
ばすことを考えると、斜めベクトルのX方向の変位△x
の符号が+である場合は、X座標が増加する向きに延ば
すことになる。また、逆に、X方向の変位△xの符号が
−である場合は、X座標が減少する向きに延ばすことに
なる。
【0121】従って、水平方向に輪郭線を延ばす際に
は、斜めベクトルのX方向の変位△xの符号を見て、そ
の符号が+の場合はX座標に所定の数値を加算してゆ
き、−の場合は減算してゆくようにする。このことは、
垂直方向に輪郭線を延ばす場合も同様である。
は、斜めベクトルのX方向の変位△xの符号を見て、そ
の符号が+の場合はX座標に所定の数値を加算してゆ
き、−の場合は減算してゆくようにする。このことは、
垂直方向に輪郭線を延ばす場合も同様である。
【0122】よって、上記した「加減算」とは、斜めベ
クトルのX方向の変位△xの符号が+のときはX座標に
所定の数値(=1)を加算し、−の場合は減算すること
を意味し、斜めベクトルのY方向の変位△yの符号が+
のときはY座標に所定の数値(=1)を加算し、−の場
合は減算することを意味する。すなわち、X座標または
Y座標に加算するか減算するかは、図40に示すよう
に、斜めベクトルの各タイプに応じて決定される。
クトルのX方向の変位△xの符号が+のときはX座標に
所定の数値(=1)を加算し、−の場合は減算すること
を意味し、斜めベクトルのY方向の変位△yの符号が+
のときはY座標に所定の数値(=1)を加算し、−の場
合は減算することを意味する。すなわち、X座標または
Y座標に加算するか減算するかは、図40に示すよう
に、斜めベクトルの各タイプに応じて決定される。
【0123】図38に示す例では、斜めベクトルのタイ
プがタイプBであるので、図40から明らかなように、
X,Y座標とも、所定の数値を加算することになる。従
って、図35のステップ3においては、点vの座標のX
座標xvに1を加算し、X座標をxv+1にすることにな
る。次に、ステップ4において、こうして点vの座標の
X座標に1を加算して得られた座標を、点p+1として
登録する。
プがタイプBであるので、図40から明らかなように、
X,Y座標とも、所定の数値を加算することになる。従
って、図35のステップ3においては、点vの座標のX
座標xvに1を加算し、X座標をxv+1にすることにな
る。次に、ステップ4において、こうして点vの座標の
X座標に1を加算して得られた座標を、点p+1として
登録する。
【0124】続いて、ステップ5において、点p+1と
して登録された座標のうち、Y座標yvに1を図40に
従って加減算する。すなわち、前述したように斜めベク
トルのタイプはタイプBであるので、Y座標yvに1を
加算し、Y座標をyv+1にする。次に、ステップ6に
おいて、点p+1の座標のY座標に1を加算して得られ
た座標を、点p+2として登録する。
して登録された座標のうち、Y座標yvに1を図40に
従って加減算する。すなわち、前述したように斜めベク
トルのタイプはタイプBであるので、Y座標yvに1を
加算し、Y座標をyv+1にする。次に、ステップ6に
おいて、点p+1の座標のY座標に1を加算して得られ
た座標を、点p+2として登録する。
【0125】続いて、ステップ7において、点p+2と
して登録された座標のうち、Y座標yv+1が、ベクト
ルの終点である点v+1のY座標yv+1と一致している
かどうかを判定し、一致していれば(すなわち、yes
であれば)、サブルーチンRCを脱出し、一致していな
ければ(すなわち、noであれば)、ステップ3に戻
る。図38に示す例では、点p+2のY座標yv+1は
点v+1のY座標yv+1と一致しないので、ステップ3
に戻ることになる。
して登録された座標のうち、Y座標yv+1が、ベクト
ルの終点である点v+1のY座標yv+1と一致している
かどうかを判定し、一致していれば(すなわち、yes
であれば)、サブルーチンRCを脱出し、一致していな
ければ(すなわち、noであれば)、ステップ3に戻
る。図38に示す例では、点p+2のY座標yv+1は
点v+1のY座標yv+1と一致しないので、ステップ3
に戻ることになる。
【0126】再び、ステップ3において、点p+2とし
て登録された座標のうち、X座標xv+1に1を加算し
てX座標をxv+2とし、得られた座標を、ステップ4
において、点p+3として登録する。
て登録された座標のうち、X座標xv+1に1を加算し
てX座標をxv+2とし、得られた座標を、ステップ4
において、点p+3として登録する。
【0127】続いて、ステップ5において、点p+3と
して登録された座標のうち、Y座標Yv+1に1を加算
してY座標をyv+2とし、得られた座標を、ステップ
6において、点p+4として登録する。
して登録された座標のうち、Y座標Yv+1に1を加算
してY座標をyv+2とし、得られた座標を、ステップ
6において、点p+4として登録する。
【0128】再び、ステップ7において、点p+4とし
て登録された座標のうち、Y座標yv+2が、ベクトル
の終点である点v+1のY座標yv+1と一致しているか
どうかを判定する。図38に示した例では、点p+4の
Y座標yv+2は点v+1のY座標yv+1と一致するの
で、サブルーチンRCを脱出する。
て登録された座標のうち、Y座標yv+2が、ベクトル
の終点である点v+1のY座標yv+1と一致しているか
どうかを判定する。図38に示した例では、点p+4の
Y座標yv+2は点v+1のY座標yv+1と一致するの
で、サブルーチンRCを脱出する。
【0129】一方、ステップ2において、最初に延ばす
輪郭線の方向が水平方向であるかどうかを判定した結
果、図39に示す例のように、水平方向でないと判定さ
れた場合には、ステップ8において、境界輪郭線を構成
する点pとして直前に登録された点vの座標のうち、Y
座標yvに1を図40に従って加減算する。図39に示
す例では、斜めベクトルのタイプがタイプAであるの
で、図40から明らかなように、X座標については所定
の数値を加算することになるが、Y座標については所定
の数値を減算することになる。従って、ステップ8にお
いては、点vの座標のY座標yvから1を減算し、Y座
標をyv−1にすることになる。
輪郭線の方向が水平方向であるかどうかを判定した結
果、図39に示す例のように、水平方向でないと判定さ
れた場合には、ステップ8において、境界輪郭線を構成
する点pとして直前に登録された点vの座標のうち、Y
座標yvに1を図40に従って加減算する。図39に示
す例では、斜めベクトルのタイプがタイプAであるの
で、図40から明らかなように、X座標については所定
の数値を加算することになるが、Y座標については所定
の数値を減算することになる。従って、ステップ8にお
いては、点vの座標のY座標yvから1を減算し、Y座
標をyv−1にすることになる。
【0130】なお、以下のステップ9〜12における処
理は、前述したステップ5〜7における処理と、X座標
とY座標が入れ替わるだけで、同じであるので、それら
の説明は省略する。
理は、前述したステップ5〜7における処理と、X座標
とY座標が入れ替わるだけで、同じであるので、それら
の説明は省略する。
【0131】図41は図30におけるサブルーチンRD
の処理の流れを示すフローチャートである。図41に示
すように、まず、サブルーチンRDのステップ1におい
ては、図35に示したサブルーチンRCと同様に、着目
しているベクトル(斜めベクトル)の傾き△y/△xを
計算により求め、その傾き△y/△xの符号が+の場合
には、最初に延ばす輪郭線の方向を水平方向に決定し、
−の場合には垂直方向に決定する。
の処理の流れを示すフローチャートである。図41に示
すように、まず、サブルーチンRDのステップ1におい
ては、図35に示したサブルーチンRCと同様に、着目
しているベクトル(斜めベクトル)の傾き△y/△xを
計算により求め、その傾き△y/△xの符号が+の場合
には、最初に延ばす輪郭線の方向を水平方向に決定し、
−の場合には垂直方向に決定する。
【0132】最初に延ばす輪郭線の方向が決定したら、
次に、ステップ2に進む。サブルーチンRDの場合、斜
めベクトルのX方向の変位の絶対値|△x|はY方向の
変位の絶対値よりも大きい(|△x|>|△y|)の
で、垂直の輪郭線は1回につき1ずつ延ばすのに対し、
水平の輪郭線は1回につき1以上の所定の数ずつ延ばす
ようにする。以下、この所定の数値をステップ幅ste
pという。
次に、ステップ2に進む。サブルーチンRDの場合、斜
めベクトルのX方向の変位の絶対値|△x|はY方向の
変位の絶対値よりも大きい(|△x|>|△y|)の
で、垂直の輪郭線は1回につき1ずつ延ばすのに対し、
水平の輪郭線は1回につき1以上の所定の数ずつ延ばす
ようにする。以下、この所定の数値をステップ幅ste
pという。
【0133】図42は水平,垂直の輪郭線の延ばし方を
説明するための説明図である。なお、図42において
は、△x=9、△y=6となっており、step=1と
なっている。
説明するための説明図である。なお、図42において
は、△x=9、△y=6となっており、step=1と
なっている。
【0134】図42(a)に示すように、斜めベクトル
(一点鎖線)の始点である点vより終点である点v+1
まで、垂直方向に1回につき1ずつ輪郭線を延ばしてゆ
き、水平方向には1回につきステップ幅stepずつ輪
郭線を延ばしていった場合、垂直の輪郭線が終点v+1
のY座標yv+1の位置まで達した際に、水平の輪郭線が
終点v+1のX座標xv+1の位置に達しているとは限ら
ない。すなわち、水平の輪郭線が終点v+1のX座標x
v+1の位置に達せず、そのX座標xv+1の位置との間に所
定の余り量addを生じる場合がある。図42(a)で
はadd=3となっている。
(一点鎖線)の始点である点vより終点である点v+1
まで、垂直方向に1回につき1ずつ輪郭線を延ばしてゆ
き、水平方向には1回につきステップ幅stepずつ輪
郭線を延ばしていった場合、垂直の輪郭線が終点v+1
のY座標yv+1の位置まで達した際に、水平の輪郭線が
終点v+1のX座標xv+1の位置に達しているとは限ら
ない。すなわち、水平の輪郭線が終点v+1のX座標x
v+1の位置に達せず、そのX座標xv+1の位置との間に所
定の余り量addを生じる場合がある。図42(a)で
はadd=3となっている。
【0135】そこで、本実施例では、垂直の輪郭線が終
点v+1のY座標yv+1の位置まで達した際に、水平の
輪郭線が終点v+1のX座標xv+1の位置に必ず達する
ように、水平の輪郭線の1回に延ばすステップ幅ste
pに補正を施すようにしている。すなわち、図42
(b)に示すように、所定の設定回数T(図42ではT
=2となっている)毎に補正時を設け、通常時は水平の
輪郭線をステップ幅stepずつ延ばすが、補正時には
ステップ幅stepに1を加算して得られる幅だけ延ば
すようにして、余り量addを均等に分散させる。
点v+1のY座標yv+1の位置まで達した際に、水平の
輪郭線が終点v+1のX座標xv+1の位置に必ず達する
ように、水平の輪郭線の1回に延ばすステップ幅ste
pに補正を施すようにしている。すなわち、図42
(b)に示すように、所定の設定回数T(図42ではT
=2となっている)毎に補正時を設け、通常時は水平の
輪郭線をステップ幅stepずつ延ばすが、補正時には
ステップ幅stepに1を加算して得られる幅だけ延ば
すようにして、余り量addを均等に分散させる。
【0136】そこで、図41に示すステップ2では、ま
ず、数4に従ってベクトルの変位△x,△yからステッ
プ幅stepを求める。 step=int(|△x|/|△y|) ………数4 但し、int()は()内の数の整数部である。
ず、数4に従ってベクトルの変位△x,△yからステッ
プ幅stepを求める。 step=int(|△x|/|△y|) ………数4 但し、int()は()内の数の整数部である。
【0137】次に、数5に従って、ベクトルの変位△
x,△yとステップ幅stepから余り量addを求め
る。 add=|△x|−step×|△y| ………数5
x,△yとステップ幅stepから余り量addを求め
る。 add=|△x|−step×|△y| ………数5
【0138】前述したように、補正時にはステップ幅s
tepに1を加算して得られる幅(step+1)だけ
延ばすようにして余り量addを分散させているため、
この余り量addは補正の回数に対応する。従って、求
めた余り量addは図示せざる補正回数カウンタに設定
する。
tepに1を加算して得られる幅(step+1)だけ
延ばすようにして余り量addを分散させているため、
この余り量addは補正の回数に対応する。従って、求
めた余り量addは図示せざる補正回数カウンタに設定
する。
【0139】さらに、数6に従って、ベクトルのY方向
の変位△yと余り量addから設定回数Tを求める。 T=|△y|/add ………数6 求めた設定回数Tは図示せざる補正タイミングカウンタ
に設定する。
の変位△yと余り量addから設定回数Tを求める。 T=|△y|/add ………数6 求めた設定回数Tは図示せざる補正タイミングカウンタ
に設定する。
【0140】次に、ステップ3において、最初に延ばす
輪郭線の方向が水平方向(X方向)であるかどうかを判
定し、水平方向であれば(すなわち、yesであれば)
ステップ4へ進み、水平方向でなければ(すなわち、n
oであれば)ステップ11へ進む。
輪郭線の方向が水平方向(X方向)であるかどうかを判
定し、水平方向であれば(すなわち、yesであれば)
ステップ4へ進み、水平方向でなければ(すなわち、n
oであれば)ステップ11へ進む。
【0141】図43は図41のサブルーチンRDによる
処理を説明するための説明図であり、最初に延ばす輪郭
線の方向が水平方向である場合の処理を示している。
処理を説明するための説明図であり、最初に延ばす輪郭
線の方向が水平方向である場合の処理を示している。
【0142】前述したように最初に延ばす輪郭線の方向
が水平方向であるかどうかを判定した結果、図43に示
す例のように、水平方向であると判定された場合には、
ステップ4において、境界輪郭線を構成する点pとして
直前に登録された点vの座標(すなわち、着目している
ベクトルの始点vの座標)のうち、X座標xvにステッ
プ幅stepを、前述した図40に従って加減算する。
ここで、前述したように、図43に示す例では、斜めベ
クトルのタイプが図36に示すタイプBであるので、図
40から明らかなように、「加減算」はX,Y座標とも
加算になる。従って、ステップ4においては、点vの座
標のX座標xvにステップ幅step、すなわち1を加
算し、X座標をxv+1にする。また、さらにステップ
4では、補正タイミングカウンタの値を1減少させる。
が水平方向であるかどうかを判定した結果、図43に示
す例のように、水平方向であると判定された場合には、
ステップ4において、境界輪郭線を構成する点pとして
直前に登録された点vの座標(すなわち、着目している
ベクトルの始点vの座標)のうち、X座標xvにステッ
プ幅stepを、前述した図40に従って加減算する。
ここで、前述したように、図43に示す例では、斜めベ
クトルのタイプが図36に示すタイプBであるので、図
40から明らかなように、「加減算」はX,Y座標とも
加算になる。従って、ステップ4においては、点vの座
標のX座標xvにステップ幅step、すなわち1を加
算し、X座標をxv+1にする。また、さらにステップ
4では、補正タイミングカウンタの値を1減少させる。
【0143】次に、ステップ5において、補正時かどう
かを判定し、補正時であれば(yesであれば)ステッ
プ6に進み、補正時でなければ(noであれば)ステッ
プ7に進む。なお、補正時かどうかの判定は補正回数カ
ウンタと補正タイミングカウンタの値に基づいて次のよ
うに行なう。
かを判定し、補正時であれば(yesであれば)ステッ
プ6に進み、補正時でなければ(noであれば)ステッ
プ7に進む。なお、補正時かどうかの判定は補正回数カ
ウンタと補正タイミングカウンタの値に基づいて次のよ
うに行なう。
【0144】すなわち、補正回数カウンタの値が0以外
の値であり、かつ、補正タイミングカウンタの値が0で
ある場合に、補正時であると判定し、補正回数カウンタ
の値が0であるか、または、補正タイミングカウンタの
値が0以外の値である場合には、補正時でなく通常時で
あると判定する。図43に示す例では、余り量add=
3,設定回数T=2であるので、ステップ2で補正回数
カウンタに3が、補正タイミングカウンタに2がそれぞ
れ設定され、その後、ステップ4で補正タイミングカウ
ンタの値が1減少するので、ステップ5では補正回数カ
ウンタの値は3のままで、補正タイミングカウンタの値
が1となっており、従って、補正時でないと判定されて
ステップ7に進む。ステップ7では、ステップ4にて点
vの座標のX座標に1を加算して得られた座標を、点p
+1として登録する。
の値であり、かつ、補正タイミングカウンタの値が0で
ある場合に、補正時であると判定し、補正回数カウンタ
の値が0であるか、または、補正タイミングカウンタの
値が0以外の値である場合には、補正時でなく通常時で
あると判定する。図43に示す例では、余り量add=
3,設定回数T=2であるので、ステップ2で補正回数
カウンタに3が、補正タイミングカウンタに2がそれぞ
れ設定され、その後、ステップ4で補正タイミングカウ
ンタの値が1減少するので、ステップ5では補正回数カ
ウンタの値は3のままで、補正タイミングカウンタの値
が1となっており、従って、補正時でないと判定されて
ステップ7に進む。ステップ7では、ステップ4にて点
vの座標のX座標に1を加算して得られた座標を、点p
+1として登録する。
【0145】続いて、ステップ8において、点p+1と
して登録された座標のうち、Y座標yvに1を図40に
従って加減算する。すなわち、前述したように斜めベク
トルのタイプはタイプBであるので、Y座標yvに1を
加算し、Y座標をyv+1にする。次に、ステップ9に
おいて、点p+1の座標のY座標に1を加算して得られ
た座標を、点p+2として登録する。
して登録された座標のうち、Y座標yvに1を図40に
従って加減算する。すなわち、前述したように斜めベク
トルのタイプはタイプBであるので、Y座標yvに1を
加算し、Y座標をyv+1にする。次に、ステップ9に
おいて、点p+1の座標のY座標に1を加算して得られ
た座標を、点p+2として登録する。
【0146】続いて、ステップ10において、点p+2
として登録された座標のうち、Y座標yv+1が、ベク
トルの終点である点v+1のY座標yv+1と一致してい
るかどうかを判定し、一致していれば(yesであれ
ば)、サブルーチンRDを脱出し、一致していなければ
(noであれば)、ステップ4に戻る。図43に示す例
では、点p+2のY座標yv+1は点v+1のY座標y
v+1と一致しないので、ステップ4に戻ることになる。
として登録された座標のうち、Y座標yv+1が、ベク
トルの終点である点v+1のY座標yv+1と一致してい
るかどうかを判定し、一致していれば(yesであれ
ば)、サブルーチンRDを脱出し、一致していなければ
(noであれば)、ステップ4に戻る。図43に示す例
では、点p+2のY座標yv+1は点v+1のY座標y
v+1と一致しないので、ステップ4に戻ることになる。
【0147】再び、ステップ4において、点p+2とし
て登録された座標のうち、X座標xv+1にステップ幅
step、すなわち1を加算してX座標をxv+2とす
ると共に、補正タイミングカウンタの値をさらに1減少
させる。
て登録された座標のうち、X座標xv+1にステップ幅
step、すなわち1を加算してX座標をxv+2とす
ると共に、補正タイミングカウンタの値をさらに1減少
させる。
【0148】次に、ステップ5において、前述した通り
補正回数カウンタと補正タイミングカウンタの値に基づ
いて補正時かどうかを判定する。図43に示す例では、
再びステップ4で補正タイミングカウンタの値が1減少
したので、今回のステップ5では補正回数カウンタの値
は3のままであるが、補正タイミングカウンタの値は0
となっており、従って、補正時であると判定されてステ
ップ6に進む。
補正回数カウンタと補正タイミングカウンタの値に基づ
いて補正時かどうかを判定する。図43に示す例では、
再びステップ4で補正タイミングカウンタの値が1減少
したので、今回のステップ5では補正回数カウンタの値
は3のままであるが、補正タイミングカウンタの値は0
となっており、従って、補正時であると判定されてステ
ップ6に進む。
【0149】ステップ6では、ステップ4にてステップ
幅stepを加算してxv+2となったX座標に、さら
に1を図40に従って加減算する(すなわち、1を加算
する)。この結果、点p+2として登録された座標のう
ち、X座標xv+1には、ステップ4とステップ6で合
計step+1(すなわち、2)が加算されたことにな
り、X座標はxv+3となる。また、さらにステップ6
では、補正回数カウンタの値を1減少させ、さらに補正
タイミングカウンタに設定回数Tを再設定する。
幅stepを加算してxv+2となったX座標に、さら
に1を図40に従って加減算する(すなわち、1を加算
する)。この結果、点p+2として登録された座標のう
ち、X座標xv+1には、ステップ4とステップ6で合
計step+1(すなわち、2)が加算されたことにな
り、X座標はxv+3となる。また、さらにステップ6
では、補正回数カウンタの値を1減少させ、さらに補正
タイミングカウンタに設定回数Tを再設定する。
【0150】次に、ステップ7において、点p+2の座
標のX座標に2を加算して得られた座標を、点p+3と
して登録する。
標のX座標に2を加算して得られた座標を、点p+3と
して登録する。
【0151】続いて、ステップ8において、点p+3と
して登録された座標のうち、Y座標yv+1に1を加算
し、Y座標をyv+2にする。次に、ステップ9におい
て、点p+3の座標のY座標に1を加算して得られた座
標を、点p+4として登録する。
して登録された座標のうち、Y座標yv+1に1を加算
し、Y座標をyv+2にする。次に、ステップ9におい
て、点p+3の座標のY座標に1を加算して得られた座
標を、点p+4として登録する。
【0152】以下同様にして登録を繰り返してゆく。例
えば、図42(b)に示す例では、3回目のステップ6
において補正回数カウンタの値が0になり、その直後の
6回目のステップ7及び8を介して、ステップ9におい
て座標(xv+9,yv+6)を点p+12として登録す
る。続いて、ステップ10において、点p+12として
登録された座標のうち、Y座標yv+6が、ベクトルの
終点である点v+1のY座標yv+1と一致しているかど
うかを判定するが、図43に示す例では、点p+12の
Y座標yv+6は点v+1のY座標yv+1と一致するの
で、サブルーチンRDを脱出する。
えば、図42(b)に示す例では、3回目のステップ6
において補正回数カウンタの値が0になり、その直後の
6回目のステップ7及び8を介して、ステップ9におい
て座標(xv+9,yv+6)を点p+12として登録す
る。続いて、ステップ10において、点p+12として
登録された座標のうち、Y座標yv+6が、ベクトルの
終点である点v+1のY座標yv+1と一致しているかど
うかを判定するが、図43に示す例では、点p+12の
Y座標yv+6は点v+1のY座標yv+1と一致するの
で、サブルーチンRDを脱出する。
【0153】一方、ステップ3において、最初に延ばす
輪郭線の方向が水平方向であるかどうかを判定した結
果、水平方向でないと判定された場合には、ステップ1
1において、境界輪郭線を構成する点pとして直前に登
録された点vの座標のうち、Y座標yvに1を図40に
従って加減算する。
輪郭線の方向が水平方向であるかどうかを判定した結
果、水平方向でないと判定された場合には、ステップ1
1において、境界輪郭線を構成する点pとして直前に登
録された点vの座標のうち、Y座標yvに1を図40に
従って加減算する。
【0154】なお、その後のステップ12〜17におけ
る処理は、前述したステップ4〜7,9,10における
処理と同様であるので、それらの説明は省略する。
る処理は、前述したステップ4〜7,9,10における
処理と同様であるので、それらの説明は省略する。
【0155】図44は図30におけるサブルーチンRE
の処理の流れを示すフローチャートである。図44に示
すように、サブルーチンREの処理は図41に示したサ
ブルーチンRDの処理において、「水平」と「垂直」,
「X」と「Y」をそれぞれ入れ替えただけであるので、
その説明は省略する。
の処理の流れを示すフローチャートである。図44に示
すように、サブルーチンREの処理は図41に示したサ
ブルーチンRDの処理において、「水平」と「垂直」,
「X」と「Y」をそれぞれ入れ替えただけであるので、
その説明は省略する。
【0156】上述の第1の実施例では、斜めベクトル化
においては、外側の境界輪郭線に対してはその内側、内
側の境界輪郭線に対してはその外側を通るように、斜め
ベクトルを生成し、一方、直交化においては、それに対
応して、外側の斜めベクトル化輪郭線に対してはその外
側、内側の斜めベクトル化輪郭線に対してはその内側を
通るように、水平および垂直ベクトルを生成している。
しかし、上記の対応関係を反転させることも可能であ
る。すなわち、斜めベクトル化においては、外側の境界
輪郭線に対してはその外側、内側の境界輪郭線に対して
はその内側を通るように、斜めベクトルを生成し、一
方、直交化においては、それに対応して、外側の斜めベ
クトル化輪郭線に対してはその内側、内側の斜めベクト
ル化輪郭線に対してはその外側を通るように、水平およ
び垂直ベクトルを生成しても良い。この対応関係で斜め
ベクトル化及び直交化を実施するには、第1の実施例を
次のように変更するのみでよい。第1に、斜めベクトル
化に関しては、三角形の面積符号判定を行うステップに
おいて、「S>0」を「S<0」に置き換え、第2に、
直交化に関しては、輪郭線を延ばす方向を決定する判定
基準、すなわち図36及び図37の内容をそれぞれ図4
9及び図50の内容に変更する。その他に関しては、第
1の実施例と同様に実行すれば良い。
においては、外側の境界輪郭線に対してはその内側、内
側の境界輪郭線に対してはその外側を通るように、斜め
ベクトルを生成し、一方、直交化においては、それに対
応して、外側の斜めベクトル化輪郭線に対してはその外
側、内側の斜めベクトル化輪郭線に対してはその内側を
通るように、水平および垂直ベクトルを生成している。
しかし、上記の対応関係を反転させることも可能であ
る。すなわち、斜めベクトル化においては、外側の境界
輪郭線に対してはその外側、内側の境界輪郭線に対して
はその内側を通るように、斜めベクトルを生成し、一
方、直交化においては、それに対応して、外側の斜めベ
クトル化輪郭線に対してはその内側、内側の斜めベクト
ル化輪郭線に対してはその外側を通るように、水平およ
び垂直ベクトルを生成しても良い。この対応関係で斜め
ベクトル化及び直交化を実施するには、第1の実施例を
次のように変更するのみでよい。第1に、斜めベクトル
化に関しては、三角形の面積符号判定を行うステップに
おいて、「S>0」を「S<0」に置き換え、第2に、
直交化に関しては、輪郭線を延ばす方向を決定する判定
基準、すなわち図36及び図37の内容をそれぞれ図4
9及び図50の内容に変更する。その他に関しては、第
1の実施例と同様に実行すれば良い。
【0157】II.第2の実施例 A.実施例にかかる画像処理方法の概要 図45は本発明の第2の実施例としての画像処理方法を
説明するためのフローチャートであり、図46は図45
に示す画像処理方法を実現するための画像処理システム
を示すブロック図である。
説明するためのフローチャートであり、図46は図45
に示す画像処理方法を実現するための画像処理システム
を示すブロック図である。
【0158】図46に示す画像処理システムが図2に示
した画像処理システムと異なる点は、CPU110が斜
めベクトル化部113として動作する代わりに、斜めベ
クトル化・ベジェ曲線化部117として動作する点であ
り、他の点は全て同じである。
した画像処理システムと異なる点は、CPU110が斜
めベクトル化部113として動作する代わりに、斜めベ
クトル化・ベジェ曲線化部117として動作する点であ
り、他の点は全て同じである。
【0159】では、本実施例の画像処理方法について、
その概要を図45に示すフローチャートに従って説明す
る。なお、図45に示すフローチャートのうち、ステッ
プ1からステップ3までの各処理は、図1に示したフロ
ーチャートのステップ1からステップ3までの各処理と
同じであり、また、図45に示すフローチャートのステ
ップ7からステップ9までの各処理は、図1に示したフ
ローチャートのステップ6からステップ8までの各処理
と同じである。従って、それら各処理についての説明は
省略する。
その概要を図45に示すフローチャートに従って説明す
る。なお、図45に示すフローチャートのうち、ステッ
プ1からステップ3までの各処理は、図1に示したフロ
ーチャートのステップ1からステップ3までの各処理と
同じであり、また、図45に示すフローチャートのステ
ップ7からステップ9までの各処理は、図1に示したフ
ローチャートのステップ6からステップ8までの各処理
と同じである。従って、それら各処理についての説明は
省略する。
【0160】さて、図45に示すフローチャートのステ
ップ4においては、CPU110の斜めベクトル化・ベ
ジェ曲線化部117で、ステップ3にて抽出された境界
輪郭線を直線部分と曲線部分に分割し、直線部分につい
ては斜めベクトル化を行ない、曲線部分についてはベジ
ェ曲線化を行なう。なお、斜めベクトル化とベジェ曲線
化を行なった結果得られる輪郭線を、以下、斜めベクト
ル化・ベジェ曲線化輪郭線という。
ップ4においては、CPU110の斜めベクトル化・ベ
ジェ曲線化部117で、ステップ3にて抽出された境界
輪郭線を直線部分と曲線部分に分割し、直線部分につい
ては斜めベクトル化を行ない、曲線部分についてはベジ
ェ曲線化を行なう。なお、斜めベクトル化とベジェ曲線
化を行なった結果得られる輪郭線を、以下、斜めベクト
ル化・ベジェ曲線化輪郭線という。
【0161】すなわち、斜めベクトル化・ベジェ曲線化
部117では、まず、境界輪郭線をマクロ的に見た場合
において直線とみなせる部分を直線部分とし、それ以外
の曲線とみなせる部分を曲線部分として、上記境界輪郭
線を直線部分と曲線部分とに分割する。この分割によっ
て、境界輪郭線を構成するベクトルは、直線部分を構成
するセグメントと曲線部分を構成するセグメントとに分
けられる。
部117では、まず、境界輪郭線をマクロ的に見た場合
において直線とみなせる部分を直線部分とし、それ以外
の曲線とみなせる部分を曲線部分として、上記境界輪郭
線を直線部分と曲線部分とに分割する。この分割によっ
て、境界輪郭線を構成するベクトルは、直線部分を構成
するセグメントと曲線部分を構成するセグメントとに分
けられる。
【0162】次に、斜めベクトル化・ベジェ曲線化部1
17では、分割により得られた直線部分のうち、所定の
角の部分を斜めベクトルに置き換えて、第1実施例と同
様に、斜めベクトル化を行なう。また、分割により得ら
れた曲線部分は、複数の制御点に基づいて表わされるベ
ジェ曲線にて近似して、ベジェ曲線化を行なう。なお、
ベジェ曲線化によって、曲線部分を構成するセグメント
はベジェ曲線を定義する制御点に置き換わる。
17では、分割により得られた直線部分のうち、所定の
角の部分を斜めベクトルに置き換えて、第1実施例と同
様に、斜めベクトル化を行なう。また、分割により得ら
れた曲線部分は、複数の制御点に基づいて表わされるベ
ジェ曲線にて近似して、ベジェ曲線化を行なう。なお、
ベジェ曲線化によって、曲線部分を構成するセグメント
はベジェ曲線を定義する制御点に置き換わる。
【0163】次に、ステップ5において、CPU110
の変換部114で、斜めベクトル化とベジェ曲線化を行
なった結果得られる斜めベクトル化・ベジェ曲線化輪郭
線に対し、拡大,縮小,回転など所望の座標変換(例え
ば、アフィン変換など)を施す。例えば、拡大の変換を
施す場合は、斜めベクトル化・ベジェ曲線化輪郭線を構
成するベクトル、制御点の全てについて、座標値に所望
の拡大倍率をそれぞれ乗じるようにする。その他の変換
についても同様に、斜めベクトル化・ベジェ曲線化輪郭
線を構成するベクトル、制御点の全てについて、座標値
を変換するようにする。
の変換部114で、斜めベクトル化とベジェ曲線化を行
なった結果得られる斜めベクトル化・ベジェ曲線化輪郭
線に対し、拡大,縮小,回転など所望の座標変換(例え
ば、アフィン変換など)を施す。例えば、拡大の変換を
施す場合は、斜めベクトル化・ベジェ曲線化輪郭線を構
成するベクトル、制御点の全てについて、座標値に所望
の拡大倍率をそれぞれ乗じるようにする。その他の変換
についても同様に、斜めベクトル化・ベジェ曲線化輪郭
線を構成するベクトル、制御点の全てについて、座標値
を変換するようにする。
【0164】次に、ステップ6において、CPU110
の斜めベクトル化・ベジェ曲線化部117で、所望の座
標変換を施した斜めベクトル化・ベジェ曲線化輪郭線の
うち、ベジェ曲線化の行なわれた部分についてベクトル
化を行ない、斜めベクトル化輪郭線を得る。
の斜めベクトル化・ベジェ曲線化部117で、所望の座
標変換を施した斜めベクトル化・ベジェ曲線化輪郭線の
うち、ベジェ曲線化の行なわれた部分についてベクトル
化を行ない、斜めベクトル化輪郭線を得る。
【0165】すなわち、斜めベクトル化・ベジェ曲線化
部117では、所望の座標変換を施した斜めベクトル化
・ベジェ曲線化輪郭線のうち、座標変換前に斜めベクト
ル化の行なわれた部分(直線部分)については何もせず
そのままで、座標変換前にベジェ曲線化の行なわれた部
分(曲線部分)については、例えば、特開平2−713
84号公報等に記載されている方法を用いてベジェ曲線
をベクトル化することにより、斜めベクトル化輪郭線を
得る。
部117では、所望の座標変換を施した斜めベクトル化
・ベジェ曲線化輪郭線のうち、座標変換前に斜めベクト
ル化の行なわれた部分(直線部分)については何もせず
そのままで、座標変換前にベジェ曲線化の行なわれた部
分(曲線部分)については、例えば、特開平2−713
84号公報等に記載されている方法を用いてベジェ曲線
をベクトル化することにより、斜めベクトル化輪郭線を
得る。
【0166】その後の各処理は、前述したように、図1
に示したフローチャートのステップ6からステップ8ま
での各処理と同じである。
に示したフローチャートのステップ6からステップ8ま
での各処理と同じである。
【0167】以上説明したように、本実施例によれば、
画像に対し拡大、縮小、回転などの画像処理を施す場
合、予め境界輪郭線を直線部分と曲線部分とに分割し、
直線部分については斜めベクトル化を行ない、曲線部分
についてはベジェ曲線化を行なって、画像をベクトル及
びベジェ曲線の状態で取り扱う、すなわちベジェ曲線を
含むベクトル図形に対する座標変換を行うため、座標変
換後の画像の解像度が入力デバイスである入力スキャナ
500の解像度に依存しなくなり、画像処理後の画像が
ぼけることがなく、画像の曲線部や斜め直線部でのジャ
ギーの発生も少なくて済み、画質が劣化することがな
い。また、ベジェ曲線化された部分については、斜めベ
クトル化された部分より、それらを構成する座標数が少
なくなるので、データ圧縮効果が得られる。さらに、画
像が高倍率で拡大されたとしても、輪郭の滑らかさを維
持することができる。
画像に対し拡大、縮小、回転などの画像処理を施す場
合、予め境界輪郭線を直線部分と曲線部分とに分割し、
直線部分については斜めベクトル化を行ない、曲線部分
についてはベジェ曲線化を行なって、画像をベクトル及
びベジェ曲線の状態で取り扱う、すなわちベジェ曲線を
含むベクトル図形に対する座標変換を行うため、座標変
換後の画像の解像度が入力デバイスである入力スキャナ
500の解像度に依存しなくなり、画像処理後の画像が
ぼけることがなく、画像の曲線部や斜め直線部でのジャ
ギーの発生も少なくて済み、画質が劣化することがな
い。また、ベジェ曲線化された部分については、斜めベ
クトル化された部分より、それらを構成する座標数が少
なくなるので、データ圧縮効果が得られる。さらに、画
像が高倍率で拡大されたとしても、輪郭の滑らかさを維
持することができる。
【0168】B.図45のステップ4の処理方法の説明 図47は図45のステップ4の処理を行なう手順を示す
フローチャートである。図47に示すように、まず、ス
テップ1において、境界輪郭線を構成するベクトルを、
曲率に応じて、複数のセグメントに分割する。具体的に
は図48に示すような手順で行なう。
フローチャートである。図47に示すように、まず、ス
テップ1において、境界輪郭線を構成するベクトルを、
曲率に応じて、複数のセグメントに分割する。具体的に
は図48に示すような手順で行なう。
【0169】図48は図47のステップ1の処理を行な
う手順を示すフローチャートである。図48に示すよう
に、ステップ1において、境界輪郭線を構成するベクト
ルのうち、開始点(境界輪郭線を構成するベクトルの最
初の点)から順番に所望の数だけ点を選び、選んだ点に
より構成される輪郭線について曲率を計算により求め
る。なお、境界輪郭線のような、離散している点列によ
って表わされる線の曲率を計算する方法としては、例え
ば、電子情報通信学会技術報告 IE93−74(19
93−11)の第7頁乃至第14頁に「離散点で表され
た曲線の曲率の計算について」として記載された技術を
用いれば良い。
う手順を示すフローチャートである。図48に示すよう
に、ステップ1において、境界輪郭線を構成するベクト
ルのうち、開始点(境界輪郭線を構成するベクトルの最
初の点)から順番に所望の数だけ点を選び、選んだ点に
より構成される輪郭線について曲率を計算により求め
る。なお、境界輪郭線のような、離散している点列によ
って表わされる線の曲率を計算する方法としては、例え
ば、電子情報通信学会技術報告 IE93−74(19
93−11)の第7頁乃至第14頁に「離散点で表され
た曲線の曲率の計算について」として記載された技術を
用いれば良い。
【0170】次に、ステップ2において点を3つ進め、
さらに、ステップ3においてそれら3つの点の何れかが
最終点(境界輪郭線を構成するベクトルの最後の点)で
あるかどうかを判断し、最終点であれば(すなわち、y
esであれば)全ての処理を終了し、最終点でなければ
(すなわち、noであれば)ステップ4に進む。
さらに、ステップ3においてそれら3つの点の何れかが
最終点(境界輪郭線を構成するベクトルの最後の点)で
あるかどうかを判断し、最終点であれば(すなわち、y
esであれば)全ての処理を終了し、最終点でなければ
(すなわち、noであれば)ステップ4に進む。
【0171】ステップ4では、上記3つの点を、曲率を
求めた上記輪郭線に加えて新たな輪郭線を生成し、その
新たな輪郭線について再度、曲率を計算により求める。
ここで、3つの点に着目するのは、境界輪郭線を構成す
るベクトルのうち、任意の連続する3つの点が、少なく
とも1組の、水平の輪郭線と垂直の輪郭線を構成するか
らである。
求めた上記輪郭線に加えて新たな輪郭線を生成し、その
新たな輪郭線について再度、曲率を計算により求める。
ここで、3つの点に着目するのは、境界輪郭線を構成す
るベクトルのうち、任意の連続する3つの点が、少なく
とも1組の、水平の輪郭線と垂直の輪郭線を構成するか
らである。
【0172】続いて、ステップ5において、新たな輪郭
線について求めた曲率と、上記3つの点を加える前の輪
郭線(以下、直前の輪郭線という)について求めた曲率
と、を比較し、両者がほぼ等しければ(すなわち、ye
sであれば)ステップ2に進み、両者が等しくなければ
(すなわち、noであれば)ステップ6に進む。
線について求めた曲率と、上記3つの点を加える前の輪
郭線(以下、直前の輪郭線という)について求めた曲率
と、を比較し、両者がほぼ等しければ(すなわち、ye
sであれば)ステップ2に進み、両者が等しくなければ
(すなわち、noであれば)ステップ6に進む。
【0173】ステップ6では、上記した直前の輪郭線を
1つのセグメントとして登録する。さらに、ステップ7
では、上記3つの点のうちの最初の点から順番に所望の
数だけ点を選び、選んだ点により構成される輪郭線につ
いて曲率を計算により求め、ステップ2に進む。以上の
ステップ2〜ステップ7の処理を繰り返すことにより、
境界輪郭線を構成するベクトルは複数のセグメントに分
割される。
1つのセグメントとして登録する。さらに、ステップ7
では、上記3つの点のうちの最初の点から順番に所望の
数だけ点を選び、選んだ点により構成される輪郭線につ
いて曲率を計算により求め、ステップ2に進む。以上の
ステップ2〜ステップ7の処理を繰り返すことにより、
境界輪郭線を構成するベクトルは複数のセグメントに分
割される。
【0174】再び、図47に戻り説明を続行する。図4
7のステップ2では、ステップ1で分割して得られた複
数のセグメントの中から1つを取り出す。続いて、ステ
ップ3では、取り出したセグメントが直線部分を構成す
るセグメントであるか否かを判定し、直線部分を構成す
るセグメントであると判定された場合(すなわち、ye
sの場合)はステップ4に進み、直線部分を構成するセ
グメントでない、つまり、曲線部分を構成するセグメン
トであると判定された場合(すなわち、noの場合)は
ステップ5に進む。
7のステップ2では、ステップ1で分割して得られた複
数のセグメントの中から1つを取り出す。続いて、ステ
ップ3では、取り出したセグメントが直線部分を構成す
るセグメントであるか否かを判定し、直線部分を構成す
るセグメントであると判定された場合(すなわち、ye
sの場合)はステップ4に進み、直線部分を構成するセ
グメントでない、つまり、曲線部分を構成するセグメン
トであると判定された場合(すなわち、noの場合)は
ステップ5に進む。
【0175】ここで、取り出したセグメントが直線部分
を構成するセグメントであるか否かは、その取り出した
セグメントについての曲率に基づいて判定する。すなわ
ち、その曲率がほぼ0ならば、そのセグメントは直線部
分を構成するセグメントであると判定し、そうでなけれ
ば、曲線部分を構成するセグメントであると判定する。
なお、上記の取り出したセグメントについての曲率は、
既に図47のステップ1(具体的には、図48のステッ
プ1あるいはステップ7)において求めてあるので、そ
れを用いる。
を構成するセグメントであるか否かは、その取り出した
セグメントについての曲率に基づいて判定する。すなわ
ち、その曲率がほぼ0ならば、そのセグメントは直線部
分を構成するセグメントであると判定し、そうでなけれ
ば、曲線部分を構成するセグメントであると判定する。
なお、上記の取り出したセグメントについての曲率は、
既に図47のステップ1(具体的には、図48のステッ
プ1あるいはステップ7)において求めてあるので、そ
れを用いる。
【0176】ステップ4では、取り出したセグメントの
始まりの点を斜めベクトルの始点として登録し、終わり
の点を斜めベクトルの終点として登録し、斜めベクトル
化を行なう。一方、ステップ5では、取り出したセグメ
ントについて、例えば、最小二乗法等を用いてベジェ曲
線の制御点を求め、ベジェ曲線化を行なう。
始まりの点を斜めベクトルの始点として登録し、終わり
の点を斜めベクトルの終点として登録し、斜めベクトル
化を行なう。一方、ステップ5では、取り出したセグメ
ントについて、例えば、最小二乗法等を用いてベジェ曲
線の制御点を求め、ベジェ曲線化を行なう。
【0177】さらに、ステップ6においては、取り出す
べきセグメントがあるかどうかを判定し、ある場合(y
esの場合)にはステップ2に進み、ない場合(noの
場合)には処理を終了する。
べきセグメントがあるかどうかを判定し、ある場合(y
esの場合)にはステップ2に進み、ない場合(noの
場合)には処理を終了する。
【0178】III.他の実施の態様 さて、以上説明した実施例のうち、第1の実施例におい
ては、図1に示したようにステップ6とステップ7にお
いて、また、第2の実施例においては、図45に示した
ようにステップ7とステップ8において、所望の座標変
換を施した斜めベクトル化輪郭線に対し直交化を行なっ
て境界輪郭線を得た後、その境界輪郭線に対し外側の境
界輪郭線と内側の境界輪郭線との間を塗り潰して閉図形
の画像データを得ていた。しかし、本願発明はこれに限
るものではなく、斜めベクトル化輪郭線から直接塗り潰
しを行なって閉図形の画像データを得るようにしても良
い。なお、このように、斜めベクトル化輪郭線から直接
塗り潰しを行ない閉図形の画像データを得る方法として
は、例えば、特公平4−31399号公報に記載の方法
などが挙げられる。
ては、図1に示したようにステップ6とステップ7にお
いて、また、第2の実施例においては、図45に示した
ようにステップ7とステップ8において、所望の座標変
換を施した斜めベクトル化輪郭線に対し直交化を行なっ
て境界輪郭線を得た後、その境界輪郭線に対し外側の境
界輪郭線と内側の境界輪郭線との間を塗り潰して閉図形
の画像データを得ていた。しかし、本願発明はこれに限
るものではなく、斜めベクトル化輪郭線から直接塗り潰
しを行なって閉図形の画像データを得るようにしても良
い。なお、このように、斜めベクトル化輪郭線から直接
塗り潰しを行ない閉図形の画像データを得る方法として
は、例えば、特公平4−31399号公報に記載の方法
などが挙げられる。
【0179】このように、斜めベクトル化輪郭線から直
接塗り潰しを行なって閉図形の画像データを得るように
した場合は、直交化を行なう処理を省くことができるの
で、処理時間を短くすることができる。
接塗り潰しを行なって閉図形の画像データを得るように
した場合は、直交化を行なう処理を省くことができるの
で、処理時間を短くすることができる。
【0180】また、以上説明した実施例のうち、第2の
実施例においては、境界輪郭線の曲線部分をベジェ曲線
にて近似していたが、本発明はこれに限定されるもので
はなく、他の近似曲線、例えば、スプライン曲線などの
パラメトリックな近似曲線で近似しても良い。
実施例においては、境界輪郭線の曲線部分をベジェ曲線
にて近似していたが、本発明はこれに限定されるもので
はなく、他の近似曲線、例えば、スプライン曲線などの
パラメトリックな近似曲線で近似しても良い。
【0181】
【発明の効果】以上説明したように、請求項1,2,
3,4,5,6,7または8に記載の発明によれば、抽
出された境界輪郭ベクトルに対し斜めベクトル化を行っ
て、画像を水平または垂直方向のみならず斜め方向にも
ベクトル化してベクトルの状態で取り扱うようにしてい
る。そのため、その後、その画像に対し拡大、縮小、回
転などの画像処理を行なう場合には、ベクトル図形に対
する座標変換によって処理することになるので、処理後
の画像の解像度が入力デバイスの解像度に依存しなくな
り、座標変換後の画像がぼけることがなく、画像の曲線
部や斜め直線部でのジャギーの発生も少なくて済み、画
質が劣化することがない。
3,4,5,6,7または8に記載の発明によれば、抽
出された境界輪郭ベクトルに対し斜めベクトル化を行っ
て、画像を水平または垂直方向のみならず斜め方向にも
ベクトル化してベクトルの状態で取り扱うようにしてい
る。そのため、その後、その画像に対し拡大、縮小、回
転などの画像処理を行なう場合には、ベクトル図形に対
する座標変換によって処理することになるので、処理後
の画像の解像度が入力デバイスの解像度に依存しなくな
り、座標変換後の画像がぼけることがなく、画像の曲線
部や斜め直線部でのジャギーの発生も少なくて済み、画
質が劣化することがない。
【0182】また、請求項9に記載の発明によれば、斜
め輪郭ベクトルから直接2値の画像を得ているため、直
交化を行なう処理を省くことができ、処理時間を短くす
ることができる。
め輪郭ベクトルから直接2値の画像を得ているため、直
交化を行なう処理を省くことができ、処理時間を短くす
ることができる。
【0183】さらに、請求項10に記載の発明によれ
ば、抽出された境界輪郭線を直線とみなせる部分と曲線
とみなせる部分とに分割し、直線とみなせる部分につい
ては斜めベクトル化を行ない、曲線とみなせる部分につ
いては近似曲線に置き換えて、画像をベクトル及び近似
曲線の状態で取り扱うようにしている。そのため、請求
項7または8に記載の発明による効果に加えて、近似曲
線化された部分については、斜めベクトル化された部分
より、それらを構成する座標数が少なくなるので、デー
タ圧縮効果が得られる。さらに、画像が高倍率で拡大さ
れたとしても、輪郭の滑らかさを維持することができ
る。
ば、抽出された境界輪郭線を直線とみなせる部分と曲線
とみなせる部分とに分割し、直線とみなせる部分につい
ては斜めベクトル化を行ない、曲線とみなせる部分につ
いては近似曲線に置き換えて、画像をベクトル及び近似
曲線の状態で取り扱うようにしている。そのため、請求
項7または8に記載の発明による効果に加えて、近似曲
線化された部分については、斜めベクトル化された部分
より、それらを構成する座標数が少なくなるので、デー
タ圧縮効果が得られる。さらに、画像が高倍率で拡大さ
れたとしても、輪郭の滑らかさを維持することができ
る。
【図1】本発明の第1の実施例としての画像処理方法を
説明するためのフローチャートである。
説明するためのフローチャートである。
【図2】図1に示す画像処理方法を実現するための画像
処理システムを示すブロック図である。
処理システムを示すブロック図である。
【図3】図2のRAM130に書き込まれた画像データ
の一例を示す説明図である。
の一例を示す説明図である。
【図4】図2の等輝度スライス部111による等輝度ス
ライスの結果得られる画像データの一例を示す説明図で
ある。
ライスの結果得られる画像データの一例を示す説明図で
ある。
【図5】等輝度スライスによって得られた画像データの
一例を示す説明図であ
一例を示す説明図であ
【図6】図5の画像データから抽出した境界輪郭線を示
す説明図である。
す説明図である。
【図7】図6の境界輪郭線に対し斜めベクトル化を行っ
た結果得られる斜めベクトル化輪郭線を示す説明図であ
る。
た結果得られる斜めベクトル化輪郭線を示す説明図であ
る。
【図8】図6の境界輪郭線を構成するベクトルの座標と
図7の斜めベクトル化輪郭線を構成するベクトルの座標
をそれぞれ示す説明図である。
図7の斜めベクトル化輪郭線を構成するベクトルの座標
をそれぞれ示す説明図である。
【図9】図7の斜めベクトル化輪郭線を2倍の大きさに
拡大した結果を示す説明図である。
拡大した結果を示す説明図である。
【図10】図7の斜めベクトル化輪郭線を構成するベク
トルの座標と図9の2倍の大きさに拡大された斜めベク
トル化輪郭線を構成するベクトルの座標をそれぞれ示す
説明図である。
トルの座標と図9の2倍の大きさに拡大された斜めベク
トル化輪郭線を構成するベクトルの座標をそれぞれ示す
説明図である。
【図11】図9の斜めベクトル化輪郭線に対し直交化を
行った結果得られる境界輪郭線を示す説明図である。
行った結果得られる境界輪郭線を示す説明図である。
【図12】図9の斜めベクトル化輪郭線を構成するベク
トルの座標と図11の境界輪郭線を構成するベクトルの
座標をそれぞれ示す説明図である。
トルの座標と図11の境界輪郭線を構成するベクトルの
座標をそれぞれ示す説明図である。
【図13】図11の境界輪郭線の間を塗り潰して得られ
る2値の画像データを示す説明図である。
る2値の画像データを示す説明図である。
【図14】図2の塗り潰し・重ね合わせ部116による
塗り潰しの結果得られる画像データの一例を示す説明図
である。
塗り潰しの結果得られる画像データの一例を示す説明図
である。
【図15】重ね合わせの結果得られる画像データの一例
を示す説明図である。
を示す説明図である。
【図16】斜めベクトル化を行う方法を概略的に説明す
るための説明図である。
るための説明図である。
【図17】斜めベクトル化を行う場合の例と行わない場
合の例をそれぞれ示す説明図である。
合の例をそれぞれ示す説明図である。
【図18】斜めベクトル化を行う手順を示すフローチャ
ートである。
ートである。
【図19】斜めベクトル化処理の中間段階において斜め
ベクトル化を行える場合を示す説明図である。
ベクトル化を行える場合を示す説明図である。
【図20】斜めベクトル化処理の中間段階において斜め
ベクトル化を行える場合を示す説明図である。
ベクトル化を行える場合を示す説明図である。
【図21】斜めベクトル化処理の中間段階において斜め
ベクトル化を行えない場合を示す説明図である。
ベクトル化を行えない場合を示す説明図である。
【図22】斜めベクトル化処理の中間段階において斜め
ベクトル化を行えない場合を示す説明図である。
ベクトル化を行えない場合を示す説明図である。
【図23】斜めベクトル化処理の中間段階において斜め
ベクトル化を行えない場合を示す説明図である。
ベクトル化を行えない場合を示す説明図である。
【図24】斜めベクトル化処理の最終段階において斜め
ベクトル化を行える場合を示す説明図である。
ベクトル化を行える場合を示す説明図である。
【図25】斜めベクトル化処理の最終段階において斜め
ベクトル化を行える場合を示す説明図である。
ベクトル化を行える場合を示す説明図である。
【図26】斜めベクトル化処理の最終段階において斜め
ベクトル化を行えない場合を示す説明図である。
ベクトル化を行えない場合を示す説明図である。
【図27】斜めベクトル化処理の最終段階において始点
pが最終点i−1である場合を示す説明図である。
pが最終点i−1である場合を示す説明図である。
【図28】最終パターンチェックの結果パターンが同一
であった場合を示す説明図である。
であった場合を示す説明図である。
【図29】直交化を行う方法を概略的に説明するための
説明図である。
説明図である。
【図30】直交化を行う手順を示すフローチャートであ
る。
る。
【図31】図30におけるサブルーチンRAの処理の流
れを示すフローチャートである。
れを示すフローチャートである。
【図32】図31のサブルーチンRAによる処理を説明
するための説明図である。
するための説明図である。
【図33】図31のサブルーチンRAによる処理を説明
するための説明図である。
するための説明図である。
【図34】図30におけるサブルーチンRBの処理の流
れを示すフローチャートである。
れを示すフローチャートである。
【図35】図30におけるサブルーチンRCの処理の流
れを示すフローチャートである。
れを示すフローチャートである。
【図36】水平及び垂直の輪郭線の張り方を斜めベクト
ルの各タイプに応じて示した説明図である。
ルの各タイプに応じて示した説明図である。
【図37】最初に延ばす輪郭線の方向を斜めベクトルの
各タイプに応じて示した説明図である。
各タイプに応じて示した説明図である。
【図38】図35のサブルーチンRCによる処理を説明
するための説明図である。
するための説明図である。
【図39】図35のサブルーチンRCによる処理を説明
するための説明図である。
するための説明図である。
【図40】X,Y座標に対する加減算の意味を説明する
ための説明図である。
ための説明図である。
【図41】図30におけるサブルーチンRDの処理の流
れを示すフローチャートである。
れを示すフローチャートである。
【図42】水平,垂直の輪郭線の延ばし方を説明するた
めの説明図である。
めの説明図である。
【図43】図41のサブルーチンRDによる処理を説明
するための説明図である。
するための説明図である。
【図44】図30におけるサブルーチンREの処理の流
れを示すフローチャートである。
れを示すフローチャートである。
【図45】本発明の第2の実施例としての画像処理方法
を説明するためのフローチャートである。
を説明するためのフローチャートである。
【図46】図45に示す画像処理方法を実現するための
画像処理システムを示すブロック図である。
画像処理システムを示すブロック図である。
【図47】図45のステップ4の処理を行なう手順を示
すフローチャートである。
すフローチャートである。
【図48】図47のステップ1の処理を行なう手順を示
すフローチャートである。
すフローチャートである。
【図49】水平及び垂直の輪郭線の張り方を斜めベクト
ルの各タイプに応じて示した説明図である。
ルの各タイプに応じて示した説明図である。
【図50】最初に延ばす輪郭線の方向を斜めベクトルの
各タイプに応じて示した説明図である。
各タイプに応じて示した説明図である。
100…コンピュータ 110…CPU 111…等輝度スライス部 112…境界輪郭線抽出部 113…斜めベクトル化部 114…変換部 115…直交化部 116…塗り潰し・重ね合わせ部 117…斜めベクトル化・ベジェ曲線化部 120…ROM 130…RAM 140…I/Oポート 150…内部バス 200…キーボード,マウス 300…CRT 400…ハードディスク装置 500…入力スキャナ 600…プリンタ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平6−4658(JP,A) 特開 平1−194755(JP,A) 特開 平5−323943(JP,A) 特開 平5−143046(JP,A) 特開 平7−210669(JP,A) 特開 昭62−145969(JP,A) 実開 平1−60253(JP,U) (58)調査した分野(Int.Cl.6,DB名) G06T 5/00 - 5/50 G06T 9/00 - 9/40 H04N 1/41 - 1/419 G09G 5/24 620
Claims (10)
- 【請求項1】 画像に所定の処理を施すための画像処理
方法であって、 処理すべき画像を用意する画像用意工程と、 用意された前記画像から、該画像の輪郭を画素単位で表
わし、かつ、水平方向に延びる水平ベクトルと垂直方向
に延びる垂直ベクトルとを含む閉ループベクトルから成
る第1の境界輪郭ベクトルを抽出する境界輪郭線抽出工
程と、 抽出された前記第1の境界輪郭ベクトル線のうち、水平
ベクトルと垂直ベクトルとが交わる角の部分を、前記水
平ベクトルと垂直ベクトルとで形成される三角形の面積
が所定の範囲にある場合に、斜め方向に延びる斜めベク
トルに置き換えることにより、斜め輪郭ベクトルを得る
工程と、 を備えることを特徴とする画像処理方法。 - 【請求項2】 画像に所定の処理を施すための画像処理
方法であって、 処理すべき画像を用意する画像用意工程と、 用意された前記画像から、該画像の輪郭を画素単位で表
わし、かつ、水平方向に延びる水平ベクトルと垂直方向
に延びる垂直ベクトルとを含む閉ループベクトルから成
る第1の境界輪郭ベクトルを抽出する境界輪郭線抽出工
程と、 抽出された前記第1の境界輪郭ベクトル線のうち、水平
ベクトルと垂直ベクトルとが交わる角の部分を、前記水
平ベクトルと垂直ベクトルとで形成される三角形の面積
が所定の範囲にあり、かつ、前記水平ベクトルと垂直ベ
クトルのうちの少なくとも一方の長さが所定の範囲にあ
る場合に、斜め方向に延びる斜めベクトルに置き換える
ことにより、斜め輪郭ベクトルを得る工程と、 を備えることを特徴とする画像処理方法。 - 【請求項3】 請求項1または2に記載の画像処理方法
において、 前記画像用意工程は、処理すべき画像として多値の画像
データにより表わされる画像を用意する工程を備えると
共に、 前記境界輪郭線抽出工程は、用意された前記画像を表わ
す前記多値の画像データを複数の閾値でそれぞれ2値化
することによって、複数の2値の画像データを求め、該
複数の2値の画像データにより表わされる複数の画像を
得る工程と、 得られた前記複数の画像から前記第1の境界輪郭ベクト
ルを抽出する工程と、 を備えることを特徴とする画像処理方法。 - 【請求項4】 請求項1,2または3に記載の画像処理
方法において、 得られた前記斜め輪郭ベクトルに対し、拡大,縮小,回
転など所望の座標変換を施す工程を、さらに備えること
を特徴とする画像処理方法。 - 【請求項5】 請求項4に記載の画像処理方法におい
て、 座標変換が施された斜め輪郭ベクトルのうち、前記斜め
ベクトルの部分を水平ベクトル及び垂直ベクトルに置き
換えることにより、第2の境界輪郭ベクトルを得る工程
を、 さらに備えることを特徴とする画像処理方法。 - 【請求項6】 請求項1乃至5のうちの任意の一つに記
載の画像処理方法において、 前記第1及び第2の境界輪郭ベクトルは、水平ベクトル
及び垂直ベクトルの始点または終点の集まりによって表
わされると共に、前記斜め輪郭ベクトルは、水平ベクト
ル、垂直ベクトル及び斜めベクトルの始点または終点の
集まりによって表わされることを特徴とする画像処理方
法。 - 【請求項7】 画像に所定の処理を施すための画像処理
方法であって、 処理すべき画像として多値の画像データにより表わされ
る画像を用意する工程と、 用意された前記画像を表わす前記多値の画像データを複
数の閾値でそれぞれ2値化することによって、複数の2
値の画像データを求め、該複数の2値の画像データによ
り表わされる複数の第1の画像を得る工程と、 得られた前記第1の画像から、該画像の輪郭を画素単位
で表わし、かつ、水平方向に延びる水平ベクトルと垂直
方向に延びる垂直ベクトルとを含む閉ループベクトルか
らなる第1の境界輪郭ベクトルを抽出する工程と、 抽出された前記第1の境界輪郭ベクトルのうち、水平ベ
クトルと垂直ベクトルとが交わる角の部分を、前記水平
ベクトルと垂直ベクトルとで形成される三角形の面積が
所定の範囲にある場合に、斜め方向に延びる斜めベクト
ルに置き換えることにより、斜め輪郭ベクトルを得る工
程と、 前記斜め輪郭ベクトルに対し、拡大,縮小,回転など所
望の座標変換を施す工程と、 前記座標変換が施された前記斜め輪郭ベクトルのうち、
前記斜めベクトルの部分を水平ベクトル及び垂直ベクト
ルに置き換えることにより、第2の境界輪郭ベクトルを
得る直交化工程と、 前記第2の境界輪郭ベクトルで区切られる2つの領域の
うち、所定の側の領域を塗り潰して、2値の画像データ
により表わされる第2の画像を得る塗り潰し工程と、 得られた前記第2の画像を複数重ね合わせて、多値の画
像データにより表わされる画像を得る工程と、 を備えることを特徴とする画像処理方法。 - 【請求項8】 画像に所定の処理を施すための画像処理
方法であって、 処理すべき画像として多値の画像データにより表わされ
る画像を用意する工程と、 用意された前記画像を表わす前記多値の画像データを複
数の閾値でそれぞれ2値化することによって、複数の2
値の画像データを求め、該複数の2値の画像データによ
り表わされる複数の第1の画像を得る工程と、 得られた前記第1の画像から、該画像の輪郭を画素単位
で表わし、かつ、水平方向に延びる水平ベクトルと垂直
方向に延びる垂直ベクトルとを含む閉ループベクトルか
らなる第1の境界輪郭ベクトルを抽出する工程と、 抽出された前記第1の境界輪郭ベクトルのうち、水平ベ
クトルと垂直ベクトルとが交わる角の部分を、前記水平
ベクトルと垂直ベクトルとで形成される三角形の面積が
所定の範囲にあり、かつ、前記水平ベクトルと垂直ベク
トルのうちの少なくとも一方の長さが所定の範囲にある
場合に、斜め方向に延びる斜めベクトルに置き換えるこ
とにより、斜め輪郭ベクトルを得る工程と、 前記斜め輪郭ベクトルに対し、拡大,縮小,回転など所
望の座標変換を施す工程と、 前記座標変換が施された前記斜め輪郭ベクトルのうち、
前記斜めベクトルの部分を水平ベクトル及び垂直ベクト
ルに置き換えることにより、第2の境界輪郭ベクトルを
得る直交化工程と、 前記第2の境界輪郭ベクトルで区切られる2つの領域の
うち、所定の側の領域を塗り潰して、2値の画像データ
により表わされる第2の画像を得る塗り潰し工程と、 得られた前記第2の画像を複数重ね合わせて、多値の画
像データにより表わされる画像を得る工程と、 を備えることを特徴とする画像処理方法。 - 【請求項9】 請求項7または8に記載の画像処理方法
において、 前記直交化工程及び塗り潰し工程に代えて、前記座標変
換が施された前記斜め輪郭ベクトルで区切られる2つの
領域のうち、所定の側の領域を塗り潰して、2値の画像
データにより表わされる画像を得る工程を、 備えたことを特徴とする画像処理方法。 - 【請求項10】 請求項7,8または9に記載の画像処
理方法において、 前記第1の境界輪郭ベクトルのうち、曲線とみなせる部
分をパラメトリック関数データによって近似する工程
と、 前記パラメトリック関数データに対し、拡大、縮小、回
転など所望の座標変換を施す工程と、 前記座標変換が施された前記パラメトリック関数データ
をベクトル化する工程と、 を備えたことを特徴とする画像処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6305387A JP2918465B2 (ja) | 1994-11-14 | 1994-11-14 | 画像処理方法 |
US08/551,860 US5920648A (en) | 1994-11-14 | 1995-11-07 | Image processing method and apparatus which replace horizontal and vertical vectors with an inclined vector |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6305387A JP2918465B2 (ja) | 1994-11-14 | 1994-11-14 | 画像処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08138044A JPH08138044A (ja) | 1996-05-31 |
JP2918465B2 true JP2918465B2 (ja) | 1999-07-12 |
Family
ID=17944512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6305387A Expired - Fee Related JP2918465B2 (ja) | 1994-11-14 | 1994-11-14 | 画像処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5920648A (ja) |
JP (1) | JP2918465B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289136B1 (en) | 1995-03-22 | 2001-09-11 | Canon Kabushiki Kaisha | Image processing method and apparatus |
JP3602659B2 (ja) * | 1996-08-05 | 2004-12-15 | 株式会社リコー | 濃淡値文書画像からの特徴抽出方法及び特徴抽出装置 |
EP0880108A1 (fr) * | 1997-05-23 | 1998-11-25 | Koninklijke Philips Electronics N.V. | Procédé de traitement d'une image incluant une étape de chainage, et appareil d'imagerie médicale incluant des moyens pour mettre en oeuvre ce procédé |
TWI228240B (en) * | 2003-11-25 | 2005-02-21 | Benq Corp | Image processing method for reducing jaggy-effect |
JP5089308B2 (ja) * | 2007-09-20 | 2012-12-05 | キヤノン株式会社 | 画像処理装置 |
JP5757293B2 (ja) * | 2010-12-28 | 2015-07-29 | 日本電気株式会社 | 物体形状認識方法、物体形状認識システム及びプログラム |
CN103473543B (zh) * | 2012-06-07 | 2016-10-05 | 富士通株式会社 | 用于提取图像中对象边界的装置、方法以及电子设备 |
US9076236B2 (en) | 2013-09-12 | 2015-07-07 | At&T Intellectual Property I, L.P. | Guided image upsampling using bitmap tracing |
JP6226206B2 (ja) * | 2015-05-22 | 2017-11-08 | 京セラドキュメントソリューションズ株式会社 | 画像処理装置、画像処理方法、および画像処理プログラム |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1517870A (en) * | 1976-12-20 | 1978-07-12 | Ibm | Apparatus for producing vectors from raster scanned data |
US4124871A (en) * | 1977-08-31 | 1978-11-07 | International Business Machines Corporation | Image data resolution change apparatus and process utilizing boundary compression coding of objects |
US4674058A (en) * | 1981-12-07 | 1987-06-16 | Dicomed Corporation | Method and apparatus for flexigon representation of a two dimensional figure |
US4853971A (en) * | 1985-03-18 | 1989-08-01 | Dainippon Screen Mfg. Co., Ltd. | Method and apparatus for processing image data |
US4979228A (en) * | 1986-09-30 | 1990-12-18 | At&T Bell Laboratories | Video signal enhancement by adaptive digital signal processing |
US5197108A (en) * | 1988-03-31 | 1993-03-23 | Ricoh Company, Ltd. | Smoothing method and apparatus for smoothing contour of character |
US5214754A (en) * | 1988-06-29 | 1993-05-25 | Fujitsu Limited | Method and apparatus for approximating polygonal line to curve |
US5007098A (en) * | 1988-12-30 | 1991-04-09 | Ezel, Inc. | Vectorizing method |
US5048099A (en) * | 1990-05-21 | 1991-09-10 | Eastman Kodak Company | Polygon-based method for automatic extraction of selected text in a digitized document |
JP3131996B2 (ja) * | 1990-11-20 | 2001-02-05 | 株式会社リコー | 画像の解像度変換方法 |
US5566003A (en) * | 1992-01-21 | 1996-10-15 | Canon Kabushiki Kaisha | Image processing system in which the transmitter and receiver have different data resolutions and data is transmitted at the receiver resolution |
JP2918383B2 (ja) * | 1992-02-27 | 1999-07-12 | 大日本スクリーン製造株式会社 | 画像の輪郭抽出方法および装置 |
-
1994
- 1994-11-14 JP JP6305387A patent/JP2918465B2/ja not_active Expired - Fee Related
-
1995
- 1995-11-07 US US08/551,860 patent/US5920648A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08138044A (ja) | 1996-05-31 |
US5920648A (en) | 1999-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8233745B2 (en) | Image processing apparatus and image processing method | |
US6768491B2 (en) | Barycentric centroid sampling method and apparatus | |
US6292192B1 (en) | System and method for the direct rendering of curve bounded objects | |
JPH05334427A (ja) | 画像の拡大縮小方法 | |
JP2918465B2 (ja) | 画像処理方法 | |
JPS62154179A (ja) | 多値画像処理装置および方法 | |
KR20020064350A (ko) | 이미지 데이터 압축방법 및 복원방법 | |
JP3471115B2 (ja) | 画像座標変換方法 | |
JPH09259290A (ja) | 描画方法 | |
US5454070A (en) | Pixel to spline based region conversion method | |
JP2012230668A (ja) | 画像処理装置、画像処理方法、及びプログラム | |
JP3266905B2 (ja) | 図形処理装置 | |
JP4325812B2 (ja) | ベクター画像描画回路およびベクター画像描画方法 | |
KR20070119482A (ko) | 이미지 리샘플링 방법 | |
CN111626935B (zh) | 像素图缩放方法、游戏内容生成方法及装置 | |
JP3015075B2 (ja) | 切抜きマスク作成方法 | |
JP2569049B2 (ja) | 文字の修正方法 | |
JP2008282187A (ja) | 画像処理装置 | |
AU2009222438A1 (en) | Anti-aliased polygon rendering | |
JP2002077622A (ja) | 画像処理装置および記録媒体 | |
JP2706711B2 (ja) | 画像データの位置歪み補正方法及び装置 | |
JPH0668247A (ja) | ディジタル画像データ変倍方法および装置 | |
JP3338484B2 (ja) | アウトラインフォント変形装置 | |
JP2001043357A (ja) | 画像処理方法、画像処理装置及び記録媒体 | |
JP3560124B2 (ja) | 画像データ補間装置、画像データ補間方法および画像データ補間プログラムを記録した媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |