JP3799164B2 - 画像処理方法および画像処理装置 - Google Patents
画像処理方法および画像処理装置 Download PDFInfo
- Publication number
- JP3799164B2 JP3799164B2 JP20907298A JP20907298A JP3799164B2 JP 3799164 B2 JP3799164 B2 JP 3799164B2 JP 20907298 A JP20907298 A JP 20907298A JP 20907298 A JP20907298 A JP 20907298A JP 3799164 B2 JP3799164 B2 JP 3799164B2
- Authority
- JP
- Japan
- Prior art keywords
- point
- data
- vector
- coordinate
- stored
- 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
Images
Description
【産業上の利用分野】
本発明は、ディスプレイ装置の画面上に描いた図形を塗りつぶすための処理方法と装置に関するものである。
【0002】
【従来の技術】
従来より、マリンプロッター等のように海図を画面上に表示する場合には、海岸線を境として陸地の部分あるいは海の部分を特定色に塗りつぶすことが行われている。このような場合の塗りつぶしの手法としては種々の方式が存在するが、海図の場合、海岸線は常に交わることがなく、塗りつぶすべき閉領域の特定が比較的容易であることからシードペイント手法が用いられることが多い。
【0003】
このシードペイント手法は、輪郭線(海岸線)を描画し、輪郭線に囲まれた塗りつぶすべき閉領域の内部の点を与えることで、その点を塗りつぶし開始点(シードポイント)として、周知のベーシックフィルアルゴリズム等の手法を用いて、その閉領域を全て塗りつぶす方式である。
【0004】
ここで、従来のシードペイント手法を用いた海図の塗りつぶし方法を説明する。
まず、図5のような海岸線データが入力される。この海岸線データは、複数のベクトルからなるデータであり、各ベクトルは始点と終点を示す座標データとして表されている。
【0005】
次に、入力されたベクトルデータから海岸線を構成する点の座標をDDA(ディジタル・ディファレンシャル・アナライザ)等を用いて算出し、海岸線のイメージをビットマップメモリに描画する。このDDAは描画すべき直線の始点と終点との座標差から、直線を構成する点の座標を生成する周知の手段である。
【0006】
全ての海岸線が描画されると塗りつぶし処理を開始する。この場合、上述したシードペイント手法を用いるため、塗りつぶすべき閉領域の内部の1点をシードポイントとして指定してやればよい。
ここで、海岸線は交わることはなく、また、通常、ベクトルの方向に対して必ず何れかの側が陸地あるいは海になるように海岸線データが設定されているため、図5のAのような場合においては、海岸線のベクトル方向に対して例えば右隣の1点のみを適当に算出して、その点をシードポイントとして塗りつぶしを行うことによって、塗りつぶし処理が完成する。
【0007】
しかし、図5のBやCのように、塗りつぶすべき閉領域が2箇所以上の場合があるため、通常は各ベクトル毎にそのベクトル上の特定の点(例えば中点)を抽出し、その点の例えば右隣の点をシードポイントとして順に算出し、塗りつぶしを行うようにしている。
この場合、2回目以降は、既に塗りつぶしが完了している可能性があるので、算出したシードポイントが既にビットマップメモリ上に描画されていないかを確認し、既に描画されている場合は塗りつぶし処理を行わずに次のベクトルの処理に移行する。
【0008】
【発明が解決しようとする課題】
ところが、上述したような従来の画像処理方法は、上述したように、海岸線は交わることはないが、例えば、画面の縮小処理(図6のAから図6のBへの縮小処理)を行った場合、解像度の関係で、図6のBにおいて点Pで示したように、海岸線が重なってしまう場合がある。
【0009】
このような場合には、上述した方法で塗りつぶしを行うと、点Pのベクトル方向(下向き)に対して、例えば右隣である塗りつぶすべき閉領域外の点Qをシードポイントに指定してしまうため、誤った領域を塗りつぶしてしまうことになる。
そのため、上述した方法を用いて塗りつぶし処理を行う場合は、海岸線が重ならないように縮小率を制限する等の対策が必要になる。
【0010】
従って、自由に縮小表示することができないという問題があったのである。
【0011】
そこで、本発明は、表示すべき画面の縮小処理を行ったときに塗りつぶすべき図形の輪郭線が重なってしまうような場合においても、正しく塗りつぶし処理が行える技術の提供を目的としてなされたものである。
【0012】
【課題を解決するための手段】
本発明の画像処理方法によれば、複数のベクトルデータで構成された輪郭線で規定された閉領域の内部もしくは外部領域をシードペイント手法を用いて塗りつぶし処理する画像処理方法において、前記ベクトルデータに基づいて輪郭線を構成する各点の座標データを算出し、算出された各点の座標データに従って輪郭線をビットマップメモリに描画し、描画すべき点の座標データが、既に描画されている他の輪郭線を構成する点の座標データと一致した場合には、当該座標データを一致座標メモリに記憶し、塗りつぶし処理に際しては、輪郭線の各ベクトル上の点の座標データが、前記一致座標メモリに記憶されているか否かをチェックし、記憶されていないときは、当該点の、前記ベクトルの方向に対して予め設定された左右何れか側に隣接する点を決め、その点を塗りつぶし開始点として前記輪郭線に囲まれた閉領域を塗りつぶし処理し、記憶されているときは、当該点に基づいた塗りつぶし処理を行わずに、輪郭線の別のベクトル上の点に関して、その座標データが前記同様に前記一致座標メモリに記憶されているか否かをチェックするように構成したものである。
【0013】
本発明の画像処理装置によれば、ビットマップメモリ上で、複数のベクトルデータで構成された輪郭線で規定された閉領域の内部もしくは外部領域をシードペイント手法を用いて塗りつぶし処理する画像処理装置において、前記ベクトルデータに基づいて輪郭線をビットマップメモリ上に描画する輪郭線描画手段と、描画する輪郭線上の点が既に描画されている他の輪郭線と重なるか否かをチェックするチェック手段と、描画する輪郭線上の点が既に描画されている他の輪郭線と重なる場合に、重なる点の座標データを記憶する一致座標記憶手段と、輪郭線の各ベクトル上の点の座標データが、前記一致座標記憶手段に記憶されているか否かをチェックし、記憶されていないときは、当該点の、前記ベクトルの方向に対して予め設定された左右何れか側に、隣接する点の座標データを、塗りつぶし開始点座標データとして、その点を塗りつぶし開始点として輪郭線に囲まれた閉領域を塗りつぶし処理し、記憶されているときは、当該点に基づいた塗りつぶし処理を行わずに、輪郭線の別のベクトル上の点の座標データに関して、前記同様に前記一致座標メモリに記憶されているか否かをチェックするように処理する塗りつぶし処理手段と、を備えていることを特徴とするものである。
【0014】
【発明の実施の形態】
以下に、本発明にかかる画像処理方法に用いる画像処理装置を、その実施の形態を示した図面に基づいて詳細に説明する。
【0015】
図1は本発明にかかる画像処理装置のブロック構成図であり、CPU1と、システムメモリ2と、第1のビットマップメモリ3と、第2のビットマップメモリ4と、表示コントローラー5と、表示器6とを備えている。なお、このとき、第1のビットマップメモリ3と第2のビットマップメモリ4とは連続したアドレス空間の中に設定された領域であって、第1のビットマップメモリ3のアドレスと、それに対応した第2のビットマップメモリ4のアドレスとは、一定の差となっている。以下においては、第1のビットマップメモリ3の領域をM面と呼び、第2のビットマップメモリ4の領域をF面と呼ぶ。
【0016】
CPU1は前記システムメモリ2に書き込まれたプログラムに従って画像処理装置全体を制御する。その制御とは、前記M面への輪郭線画像の書き込みとその塗りつぶし処理、また、F面への一致座標データの書き込み、また、前記表示コントローラー5による前記M面上のデータに基づいた表示器6への表示処理の制御等である。
【0017】
図1の各構成を請求項2の構成と対応させると、CPU1は、輪郭線描画手段とチェック手段と塗りつぶし処理手段に対応し、第1のビットマップメモリ3はビットマップメモリに対応し、第2のビットマップメモリ4は一致座標記憶手段に対応している。
【0018】
上記構成の画像処理装置を用いて、図6のAに示したような海岸線の図形を、図6のBに示したように縮小して表示器6の画面に表示する場合を例にとって説明する。
なお、以下に例示して説明する実施の形態においては、海岸線を示す図形は次の規則を満足しているものとする。
(1)塗りつぶされる領域は、必ず海岸線で囲まれた閉領域であること。
(2)海岸線は複数のベクトルで構成され、そのベクトルの向きの左側が塗りつぶされるべき領域であること。
(3)海岸線は交差しないこと。
【0019】
以下に、本発明の画像処理方法を図2,図3のフローチャートに基づいて説明する。
まず、ステップS1において、CD−ROM等の外部記憶手段から海岸線を構成する複数のベクトルデータを取り込む。
ステップS2において、前記各ベクトルデータに基づいて、表示すべき海岸線を構成する各辺を構成する各点の座標データを算出し、
算出された各点の座標データに従って、図4のAのように、前記M面に描画する。この処理は、座標データが示すビットマップメモリ上のアドレスのデータを、海岸線を示すデータ(以下、このデータを例えば「1」とする。)に書き換える処理である。このとき表示範囲からはみ出す部分に関しては表示範囲の境界線に置き替えて、強制的に閉領域とする。
【0020】
ステップS3において、図4のAのP1やP2のように、M面に描画しようとした点の位置に既に海岸線を構成する点が描画されていた場合、即ち、描画しようとした点の座標データが示すビットマップメモリ上のデータが、海岸線を示すデータ「1」であった場合には、図4のBのように、F面の同じ位置にも点を描画する。この描画処理は、その座標データが示すF面上のデータを「1」とする処理である。このとき、処理対象のメモリをM面からF面へ切り替えるには、所定値の加算処理や所定の上位ビットを「1」とする等の処理だけで迅速に行える。
【0021】
以上の処理を表示範囲の全てのベクトルデータに関して行う。
このようにして、表示範囲の全海岸線を、図4のAに示すように、M面に描画する。このとき、図4のAのP1やP2の位置に対応するF面には、図4のBのように、重なり部分であることを示す点が描画されている。
【0022】
そして、塗りつぶし処理に際しては、
先ず、最初のベクトルデータを読み込み、ステップS4において、その始点と終点の座標データに基づいて中点の座標データを算出する。
ステップS5において、前記中点の座標データに対応する、F面の座標データを算出し、その点に対応したアドレスのデータが「1」となっているか否かをチェックする。
【0023】
「1」が書き込まれていなければステップS6に進み、「1」が書き込まれていればステップS7に進む。
ステップS6において、前記ベクトルの方向に対して左隣の点(以後、D点と呼ぶ。)の座標データを算出する。そして、M面のD点の座標データが示すアドレスのデータが「1」となっているか否かをチェックする。
【0024】
「1」となっていれば、隣接する海岸線が存在するか、既に塗りつぶし処理されている領域であると判断できるので、塗りつぶし処理は行わずに、ステップS7に進んで、全てのベクトルデータの処理が完了するまで、次のベクトルデータを読み込み、ステップS4からの処理を繰り返す。このようにして、離れた閉領域であっても漏れることなく塗りつぶし処理が行われるのである。
【0025】
M面のD点の座標データが示すアドレスのデータが「1」となっていなければ、ステップS8において、D点の座標データを塗りつぶし開始点座標データとして、ベーシックフィルアルゴリズム等のアルゴリズムに基づいて塗りつぶし処理を行う。
【0026】
このようにして、図4のAのように、海岸線が重なった部分があっても正しく塗りつぶし処理が行われるのである。
【0027】
なお、描画された点を示すデータとして「1」を例示したが、実際には、所定のビットを立てるか否かによって描画された点か描画されていないかを示す。
また、ビットマップメモリは、表示コントローラーとCPU1との両方からアクセス可能なVRAM上に配置してもよい。
また、ステップS4においては、ベクトルの中点の座標を算出したが、中点以外の点や、複数個の点の座標を用いてもよいことは当然である。
【0028】
また、ステップS6におけるD点は、ベクトルの方向に対して右隣に設定してもよい。いずれにしても、海岸線を右まわりのベクトルで構成するか、左回りのベクトルで構成するかの違いや、海岸線の内側を塗りつぶすか外側を塗りつぶすかの違いによって、設定すればよい。
さらには、M面に描画しようとした点に既に海岸線を構成する点が描画されていた場合には、その点の座標データのみを列記したデータテーブルを、第2のビットマップメモリに代えてもよい。
【0029】
【発明の効果】
以上のように、本発明の画像処理方法および装置によれば、輪郭線が重なる部分が存在しても、正しく塗りつぶし処理を行うことが可能となるので、海岸線等の表示を種々の縮尺で自由に表示することが可能になるのである。
【図面の簡単な説明】
【図1】本発明にかかる画像処理装置のブロック構成図である。
【図2】本発明にかかる画像処理方法の実施の形態のフローチャートである。
【図3】本発明にかかる画像処理方法の実施の形態のフローチャートである。
【図4】本発明にかかる画像処理方法による塗りつぶし処理の過程を説明する図である。
【図5】従来の画像処理方法による塗りつぶし処理を説明する図である。
【図6】従来の画像処理方法では不都合が生じる場合を説明する図である。
【符号の説明】
1 CPU,(輪郭線描画手段,確認手段,塗りつぶし処理手段)
2 システムメモリ
3 第1のビットマップメモリ,M面,(ビットマップメモリ)
4 第2のビットマップメモリ,F面,(一致座標記憶手段)
5 表示コントローラー
6 表示器
Claims (2)
- 複数のベクトルデータで構成された輪郭線で規定された閉領域の内部もしくは外部領域をシードペイント手法を用いて塗りつぶし処理する画像処理方法において、前記ベクトルデータに基づいて輪郭線を構成する各点の座標データを算出し、算出された各点の座標データに従って輪郭線をビットマップメモリに描画し、描画すべき点の座標データが、既に描画されている他の輪郭線を構成する点の座標データと一致した場合には、当該座標データを一致座標メモリに記憶し、塗りつぶし処理に際しては、輪郭線の各ベクトル上の点の座標データが、前記一致座標メモリに記憶されているか否かをチェックし、記憶されていないときは、当該点の、前記ベクトルの方向に対して予め設定された左右何れか側に隣接する点を決め、その点を塗りつぶし開始点として前記輪郭線に囲まれた閉領域を塗りつぶし処理し、記憶されているときは、当該点に基づいた塗りつぶし処理を行わずに、輪郭線の別のベクトル上の点に関して、その座標データが前記同様に前記一致座標メモリに記憶されているか否かをチェックするように構成したことを特徴とする画像処理方法。
- ビットマップメモリ上で、複数のベクトルデータで構成された輪郭線で規定された閉領域の内部もしくは外部領域をシードペイント手法を用いて塗りつぶし処理する画像処理装置において、前記ベクトルデータに基づいて輪郭線をビットマップメモリ上に描画する輪郭線描画手段と、描画する輪郭線上の点が既に描画されている他の輪郭線と重なるか否かをチェックするチェック手段と、描画する輪郭線上の点が既に描画されている他の輪郭線と重なる場合に、重なる点の座標データを記憶する一致座標記憶手段と、輪郭線の各ベクトル上の点の座標データが、前記一致座標記憶手段に記憶されているか否かをチェックし、記憶されていないときは、当該点の、前記ベクトルの方向に対して予め設定された左右何れか側に、隣接する点の座標データを、塗りつぶし開始点座標データとして、その点を塗りつぶし開始点として輪郭線に囲まれた閉領域を塗りつぶし処理し、記憶されているときは、当該点に基づいた塗りつぶし処理を行わずに、輪郭線の別のベクトル上の点の座標データに関して、前記同様に前記一致座標メモリに記憶されているか否かをチェックするように処理する塗りつぶし処理手段と、を備えていることを特徴とする画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20907298A JP3799164B2 (ja) | 1998-07-24 | 1998-07-24 | 画像処理方法および画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20907298A JP3799164B2 (ja) | 1998-07-24 | 1998-07-24 | 画像処理方法および画像処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000040157A JP2000040157A (ja) | 2000-02-08 |
JP3799164B2 true JP3799164B2 (ja) | 2006-07-19 |
Family
ID=16566799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20907298A Expired - Fee Related JP3799164B2 (ja) | 1998-07-24 | 1998-07-24 | 画像処理方法および画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3799164B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007143150A (ja) * | 2006-11-13 | 2007-06-07 | Make Softwear:Kk | 写真自動販売装置、写真自動販売方法、画像編集装置及び写真自動販売プログラム |
-
1998
- 1998-07-24 JP JP20907298A patent/JP3799164B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000040157A (ja) | 2000-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2621568B2 (ja) | 図形描画方法およびその装置 | |
US4855938A (en) | Hidden line removal method with modified depth buffer | |
US6768491B2 (en) | Barycentric centroid sampling method and apparatus | |
KR20050030595A (ko) | 화상 처리 장치 및 그 방법 | |
JPH01196675A (ja) | パターンデータ生成方式 | |
US5555356A (en) | System and method for generating a trimmed parametric surface for display on a graphic display device | |
US4837847A (en) | Image processing apparatus | |
KR20050030569A (ko) | 화상 처리 장치 및 그 방법 | |
JP3799164B2 (ja) | 画像処理方法および画像処理装置 | |
JP3264619B2 (ja) | 画像処理装置および方法 | |
JP2637905B2 (ja) | 垂直スパンを用いてポリゴン輪郭を描画する方法及びシステム | |
JP3872056B2 (ja) | 描画方法 | |
US11082585B1 (en) | Visual content proofing on multiple target devices | |
US11216994B2 (en) | Method and apparatus for rendering a visual representation of a font glyph | |
JPS60179877A (ja) | パターン太め装置及び方法 | |
JP2606176B2 (ja) | 図形処理装置 | |
JPS6175428A (ja) | 図形作描方法 | |
JPH0259871A (ja) | 画像処理装置および画像処理方法 | |
JPH04225480A (ja) | 図形描画方法および装置 | |
JPH04205484A (ja) | エッジ強調ポリゴンぬりつぶし方法およびその装置 | |
JPH11203489A (ja) | ベジェ曲線の描画方法、ベジェ曲線の描画装置およびベジェ曲線の描画プログラムを記録した記録媒体 | |
JPH06332437A (ja) | 画像再生方法および装置 | |
JPH08123956A (ja) | イメージ処理装置 | |
JPH04282785A (ja) | 外周線付き面塗り方式 | |
JPH07210707A (ja) | エッジ付き図形の描画方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060110 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060307 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060404 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060424 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090428 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100428 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100428 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110428 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110428 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110428 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120428 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120428 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120428 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130428 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130428 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130428 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140428 Year of fee payment: 8 |
|
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 |