JP3351093B2 - 画像処理方法およびその装置 - Google Patents

画像処理方法およびその装置

Info

Publication number
JP3351093B2
JP3351093B2 JP7535694A JP7535694A JP3351093B2 JP 3351093 B2 JP3351093 B2 JP 3351093B2 JP 7535694 A JP7535694 A JP 7535694A JP 7535694 A JP7535694 A JP 7535694A JP 3351093 B2 JP3351093 B2 JP 3351093B2
Authority
JP
Japan
Prior art keywords
color
closed curve
dot
image
data
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
Application number
JP7535694A
Other languages
English (en)
Other versions
JPH07264472A (ja
Inventor
林  哲也
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP7535694A priority Critical patent/JP3351093B2/ja
Priority to US08/405,521 priority patent/US5611037A/en
Priority to DE69518180T priority patent/DE69518180T2/de
Priority to EP95104136A priority patent/EP0675461B1/en
Publication of JPH07264472A publication Critical patent/JPH07264472A/ja
Application granted granted Critical
Publication of JP3351093B2 publication Critical patent/JP3351093B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)
  • Studio Circuits (AREA)
  • Processing Of Color Television Signals (AREA)
  • Processing Or Creating Images (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、画像処理方法およびそ
の装置に係わり、詳しくはアニメーション、似顔絵等を
作成する際に、閉曲線データ、その内部を塗りつぶすカ
ラーデータ、部分的に画面上のドット毎に色に関するビ
ットマップデータを有することにより、少量のデータに
よってカラー画像の作成を可能にした画像処理方法およ
びその方法を実現する装置に関する。
【0002】
【従来の技術】従来、アニメーション、ゲーム等ではビ
ット配列形式の画像データを用いることが多く、この画
像データによりキャラクターや背景データを表示してい
る。そして、このビット配列形式の画像データはドット
で構成され、かつ各ドット毎に表示色番号あるいはパレ
ット番号を持つようになっている。すなわち、コンピュ
ータ画面上などにおいて、似顔絵やアニメーション画像
をカラー表示させるために、ピクセル毎にカラーデータ
を持っている。
【0003】
【発明が解決しようとする課題】ところで、従来の画像
処理装置の場合、コンピュータ画面上あるいはテレビ画
面上において、似顔絵やアニメーション画像をカラー表
示させるためには、ピクセル毎にカラーデータを持たな
ければならず、必然的に大量のデータが必要であるとい
う問題点があった。また、大量のデータを処理するため
のメモリ装置の容量が多くなって、この点でコスト高に
もなっていた。一方、直線又はベジェ曲線などを用いた
閉曲線データと、その内部を塗りつぶすためのカラーデ
ータという少量のデータによって似顔絵あるいはアニメ
ーション画像をカラー作成することも考えられる。しか
しながら、この場合には目などの細かい部位を表すため
には、細かい線や色使いが必要になり、繊細に似顔絵等
を作成することが困難であるという新たな問題点があっ
た。
【0004】そこで本発明は、少ないデータで、低コス
トに、しかもカラーの似顔絵やアニメーション画像等を
繊細に作成することができる画像処理方法およびその装
置を提供することを目的としている。
【0005】
【課題を解決するための手段】上記目的達成のため、請
求項1記載の発明による画像処理方法は、閉曲線作成デ
ータ、当該閉曲線の境界及び内部を塗りつぶす色を指定
するための色データ及び優先順位データからなる閉曲線
データを複数個有すると共に、ドット単位で色を指定し
たドット画像とを有し、 前記複数の閉曲線作成データに
基づいて前記画面上に複数の閉曲線を作成し、 前記画面
上の各ドットにおいて、前記ドット画像上に存在するか
否か、及び前記複数の閉曲線のうちいずれの閉曲線の中
に存在するか否かを判定し、 前記ドットが前記ドット画
像上に存在せず、いずれかの閉曲線の中に存在すると判
定された場合は、当該閉曲線の夫々に割当てられた優先
順位の中から最も優先順位の高い閉曲線を選択し、 当該
選択された閉曲線に割当てられた色データで指定される
色にて前記ドットを表示し、前記ドットが前記ドット画
像上に存在すると判定された場合には、前記ドットを前
記ドット画像で指定される色で表示することにより、
定のカラー画像を作成することを特徴とする。
【0006】また、好ましい態様として、例えば請求項
2記載のように、前記閉曲線は、直線あるいはベジェ曲
線のうちの1つ以上によって作成されるようにしてもよ
い。例えば請求項3記載のように、前記閉曲線を直線に
よって作成する処理は、直線を多数のドットによって形
成するものであり、直線の両端を形成する2つのドット
位置を決定するとともに、そのドット位置の傾きを算出
する処理と、この傾きに応じてx座標又はy座標を1単
位ずつ増加させた場合の誤差を累積する処理と、この誤
差が所定値を超えるときのみ、次のドットのx座標又は
y座標の位置を変更するとともに、前記累算された誤差
から一定値を減算する処理と、を有するようにしてもよ
【0007】請求項記載の画像処理装置は、閉曲線作
成データ、当該閉曲線の境界及び内部を塗りつぶす色を
指定するための色データ及び優先順位データからなる閉
曲線データを複数個記憶すると共に、ドット単位で色を
指定したドット画像とを記憶する記憶手段と、 この記憶
手段に記憶された複数の閉曲線作成データに基づいて画
面上に複数の閉曲線を作成する閉曲線作成手段と、 前記
画面上の各ドットにおいて、前記ドット画像上に存在す
るか否か、及び前記閉曲線作成手段にて作成された複数
の閉曲線のうちいずれの閉曲線の中に存在するか否かを
判定する判定手段と、 この判定手段により、前記ドット
画像上に存在せず、前記ドットがいずれかの閉曲線の中
に存在すると判定された場合は、当該閉曲線の夫々に割
当てられた優先順位の中から最も優先順位の高い閉曲線
を選択する選択手段と、 この選択手段で選択された閉曲
線に割当てられた色データで指定される色にて前記ドッ
トを表示すると共に、前記ドットがいずれの閉曲線の中
にも存在しないと判定された場合には、前記ドットを前
記ドット画像で指定された色で表示することにより、
定のカラー画像を作成するカラー画像作成手段と、を備
えたことを特徴とする。
【0008】また、例えば請求項記載のように、前記
閉曲線作成手段は、直線あるいはベジェ曲線のうちの1
つ以上によって閉曲線を構成するようにしてもよい。例
えば請求項記載のように、前記カラー画像作成手段に
よって作成された所定のカラー画像を表示する表示手段
を、さらに有するようにしてもよい。例えば請求項7記
載のように、前記カラー画像作成手段によって作成され
た所定のカラー画像を印刷する印刷手段を、さらに有す
るようにしてもよい。
【0009】例えば請求項記載のように、前記閉曲線
作成手段は、閉曲線を多数のドットからなる直線によっ
て作成する場合、直線の両端を形成する2つのドット位
置を決定するとともに、そのドット位置の傾きを算出す
る手段と、この傾きに応じてx座標又はy座標を1単位
ずつ増加させた場合の誤差を累積する手段と、この誤差
が所定値を超えるときのみ、次のドットのx座標又はy
座標の位置を変更するとともに、前記累算された誤差か
ら一定値を減算する手段とを有するようにしてもよい。
【0010】
【作用】本発明では、カラーの画像(例えば、似顔絵あ
るいはアニメーション画像)を作成する場合、まず複数
の閉曲線作成データに基づいて画面上に複数の閉曲線を
作成する。そして、前記画面上の各ドットにおいて、前
記ドット画像上に存在するか否か、及び作成された複数
の閉曲線のうちいずれの閉曲線の中に存在するか否かを
判定し、前記ドット画像上に存在せず、前記ドットがい
ずれかの閉曲線の中に存在すると判定された場合は、当
該閉曲線の夫々に割当てられた優先順位の中から最も優
先順位の高い閉曲線を選択し、この選択された閉曲線に
割当てられた色データで指定される色にて前記ドットを
表示する。そして前記ドットが前記ドット画像上に存在
すると判定された場合には、前記ドットを記憶されたド
ット画像で指定された色で表示することにより、所定の
カラー画像を作成する。したがって、例えば似顔絵のう
ち、目などの細かい部位についてはドット単位の画像で
作成され、細かい線や色使いが可能になって繊細な表情
を出すことができる。また、カラー画像の作成に際して
従来のようにピクセル毎にカラーデータを持つ必要がな
く、単に閉曲線データ、カラーデータおよびカラーの
ット画像を持てば画像をカラーで作成することが可能に
なる。その結果、少ないデータ量で、低コストに、しか
もカラーの似顔絵やアニメーション画像等を作成するこ
とが可能となる。
【0011】
【実施例】以下、図面を参照して本発明の実施例につい
て説明する。似顔絵作成装置の構成 図1は本発明に係る画像処理方法を実現する似顔絵作成
装置(画像処理装置に相当)の一実施例を示す構成図で
ある。図1において、似顔絵作成装置は大きく分けてC
PU1、ROM2、RAM3、スイッチ部4、表示部
5、カラープリンタ6および各部を結ぶバス7によって
構成されている。CPU1は装置全体を制御するもの
で、スイッチ部4から描画指令が入力されると、その指
令情報に対応すべくROM2に格納されている制御プロ
グラムに基づいて似顔絵を作成するために必要な処理
(例えば、似顔絵の輪郭や各部位の描画に必要な直線又
はベジェ曲線のデータ計算および塗りつぶしの処理)を
行う。また、CPU1は内部レジスタを有しており、内
部レジスタにフラグやポインタの値を格納する。
【0012】ROM2はCPU1の制御プログラムを格
納しているとともに、後述の図3に示すように似顔絵の
輪郭や顔の各部位を表す閉曲線作成データ、閉曲線カラ
ーデータ、ビットマップデータ等のパラメータを予め格
納している。RAM3はCPU1が演算処理を行う際の
ワークエリアとして用いられ、データを一時的に記憶す
る。スイッチ部4はオペレータによって操作されるもの
で、似顔絵を選択するときに操作される似顔絵選択スイ
ッチおよび似顔絵作成処理を開始するときに操作される
スタートスイッチを有している。なお、各操作スイッチ
は単独操作のプッシュスイッチでもよいし、あるいは複
数のスイッチからなるスイッチボード、キーボード等で
もよい。また、スイッチ部4としてスイッチボード等の
他に、マウス、トラックボール等を用いてもよい。
【0013】表示部(表示手段)5はCPU1の演算処
理によって作成される似顔絵をそのプロセスごとに表示
するもので、例えば画像信号発生回路(Video Display
Processor:以下VDPという)、VRAM、TVディ
スプレイを含んで構成される。なお、画面の表示はTV
ディスプレイではなく、カラー表示が可能なものであれ
ば、LCDでもよい。カラープリンタ(印刷手段)6は
所定の用紙に画像を印刷するもので、例えば表示部に表
示された似顔絵をカラーで印刷することが可能である。
上記CPU1、ROM2およびRAM3は全体として
憶手段21、閉曲線作成手段22、判定手段23、選択
手段24、カラー画像作成手段25を構成する。
【0014】次に、作用を説明する。メインプログラム 図2は似顔絵作成処理のメインプログラムを示すフロー
チャートである。このプログラムがスタートすると、ま
ずステップS10でイニシャライズ(初期化処理)を行
う。これにより、例えばCPU1内の各種レジスタのイ
ニシャライズ、RAM3のワークエリアのクリア、サブ
ルーチンのイニシャライズ、フラグのリセット等が行わ
れる。次いで、ステップS12でスイッチ部4の似顔絵
選択スイッチがオンしているか否かを判別する。似顔絵
選択スイッチがオンしていなければ、ステップS26の
表示処理にジャンプする。これにより、最初のルーチン
では、例えば初期画面が表示部5に表示される。また、
既に似顔絵が表示されている場合には、以前の似顔絵が
変更されずに表示されることになる。
【0015】似顔絵選択スイッチがオンしている場合に
は、ステップS14に進んで似顔絵番号を変更する。こ
こで、ROM2には図3に示すように(1)から(n)
までのn種類の似顔絵データが格納されており、これら
の似顔絵データは似顔絵の輪郭や顔の各部位を表す閉曲
線作成データA〜Eと、これらの閉曲線の色を指定する
閉曲線カラーデータA〜Eと、似顔絵の一部で目等の繊
細な表示を必要とする部分を表すビットマップデータF
とに区分されて所定のエリアに格納されている。なお、
閉曲線カラーデータA〜Eは、閉曲線作成データA〜E
のそれぞれの色(閉曲線の境界および内部を塗りつぶす
色)を指定するものである。また、似顔絵の一部で目等
の繊細な表示を必要とする部分を表すビットマップデー
タFは、その画像部分をドット単位で作成するもので、
かつ各ドット毎に色を指定する色データを有している。
なお、色データに限らず、各ドット毎に色番号を有する
ようにしてもよい。例えば、似顔絵(1)〜(n)のデ
ータは男の似顔絵や女の似顔絵に対応させて、自由に設
定しておくことが可能である。
【0016】ステップS14で、例えば似顔絵番号=
(2)が選択された場合には、後述のようにROM2に
格納されている似顔絵番号(2)に対応する似顔絵デー
タ(すなわち、閉曲線作成データ、閉曲線カラーデータ
およびビットマップデータ)が読み出されることにな
る。次いで、ステップS16でスイッチ部4のスタート
スイッチがオンしたか否かを判別する。スタートスイッ
チがオンしていなければ、ステップS26の表示処理に
ジャンプする。これにより、最初のルーチンでは、例え
ば初期画面が表示部5に表示されたままの状態となる。
また、既に似顔絵が表示されている場合には、以前の似
顔絵が変更されずに表示されたままである。スタートス
イッチがオンした場合には、ステップS18に進んで表
示部5の表示をクリアする。これにより、最初のルーチ
ンでは初期画面がクリアされる。また、既に似顔絵が表
示されている場合には、以前の似顔絵がクリアされる。
次いで、ステップS20で似顔絵番号に対応する閉曲線
作成データA〜E、閉曲線カラーデータA〜Eおよびビ
ットマップデータFをROM2から読み出して、RAM
3にロードする。
【0017】ここで、RAM3には図4に示すような各
種のワークエリアが設けられており、ROM2から読み
出されたデータは対応するエリアにロードされる。RA
M3のワークエリアを説明すると、以下のようになって
いる。 似顔絵選択NO.……似顔絵選択スイッチによって選択
された似顔絵番号を格納するエリア 閉曲線A作成データ……閉曲線Aを作成するためのデー
タを格納するエリア 閉曲線B作成データ……閉曲線Bを作成するためのデー
タを格納するエリア 閉曲線C作成データ……閉曲線Cを作成するためのデー
タを格納するエリア 閉曲線D作成データ……閉曲線Dを作成するためのデー
タを格納するエリア 閉曲線E作成データ……閉曲線Eを作成するためのデー
タを格納するエリア
【0018】閉曲線Aカラーデータ……閉曲線Aを塗り
つぶす色(カラー)を指定するデータを格納するエリア 閉曲線Bカラーデータ……閉曲線Bを塗りつぶす色(カ
ラー)を指定するデータを格納するエリア 閉曲線Cカラーデータ……閉曲線Cを塗りつぶす色(カ
ラー)を指定するデータを格納するエリア 閉曲線Dカラーデータ……閉曲線Dを塗りつぶす色(カ
ラー)を指定するデータを格納するエリア 閉曲線Eカラーデータ……閉曲線Eを塗りつぶす色(カ
ラー)を指定するデータを格納するエリア
【0019】カラー状態フラグ(A)……閉曲線Aをカ
ラー設定エリアに指定(つまり、色で塗りつぶす)する
か否かを決定するフラグを格納するエリア カラー状態フラグ(B)……閉曲線Bをカラー設定エリ
アに指定(つまり、色で塗りつぶす)するか否かを決定
するフラグを格納するエリア カラー状態フラグ(C)……閉曲線Cをカラー設定エリ
アに指定(つまり、色で塗りつぶす)するか否かを決定
するフラグを格納するエリア カラー状態フラグ(D)……閉曲線Dをカラー設定エリ
アに指定(つまり、色で塗りつぶす)するか否かを決定
するフラグを格納するエリア カラー状態フラグ(E)……閉曲線Eをカラー設定エリ
アに指定(つまり、色で塗りつぶす)するか否かを決定
するフラグを格納するエリア ドットデータカラー状態フラグ……目を含む顔の中心部
分(顔の中心パーツ)でドットによって表示される部分
をカラー設定エリアに指定(つまり、色で塗りつぶす)
するか否かを決定するフラグを格納するエリア バックグラウンドカラー番号……背景となる部分を塗り
つぶす色(カラー)を指定するデータを格納するエリア ビットマップデータF……目を含む顔の中心部分(顔の
中心パーツ)でドットによって表示される部分Fを作成
するためのデータを格納するエリア
【0020】また、その他に作成した似顔絵の各部位に
対応する閉曲線を格納するエリア11〜15がある。例
えば、エリア11は前髪を格納するエリア、エリア12
は髪型を格納するエリア、エリア13は髪における光沢
部分を格納するエリア、エリア14は顔の輪郭を格納す
るエリア、エリア15は首を格納するエリアである。次
いで、ステップS22でロードした閉曲線作成データA
〜Eに基づいて閉曲線A〜Eをそれぞれ作成する処理
(詳細はサブルーチンで後述)を行うとともに、ビット
マップデータFに基づいて目を含む顔の中心部分をドッ
トによって作成する。
【0021】次いで、ステップS24では作成した閉曲
線A〜Eをカラーで塗りつぶす処理および目を含む顔の
中心部分の画像をカラードットによって塗りつぶす処理
(詳細はサブルーチンで後述)を行う。これにより、選
択された似顔絵番号に対応する閉曲線A〜Eの画像が作
成されるとともに、作成された各閉曲線A〜Eが所定の
色で塗りつぶされるとともに、このとき同時に目を含む
顔の中心部分の画像がカラーのドット処理で作成されて
似顔絵が作成される。次いで、ステップS26で表示処
理を行う。これにより、作成された似顔絵が表示部5に
表示される。ステップS26を経ると、ステップS12
に戻って同様のループを繰り返す。このように、似顔絵
選択スイッチによって選択された似顔絵番号に対応する
似顔絵が作成されて表示される。
【0022】閉曲線A〜Eの作成処理のサブルーチン 図5はメインプログラムの閉曲線A〜Eの作成処理(ス
テップS22)のサブルーチンを示すフローチャートで
ある。このサブルーチンに移行すると、ステップS50
で閉曲線Aを作成する処理を行う。例えば、閉曲線Aが
前髪に相当する場合には、前髪の閉曲線(図4のエリア
11に格納される画像)が作成される。次いで、ステッ
プS52で閉曲線Bを作成する処理を行う。例えば、閉
曲線Bが髪型に相当する場合には、髪型の閉曲線(図4
のエリア12に格納される画像)が作成される。
【0023】次いで、ステップS54で閉曲線Cを作成
する処理を行う。例えば、閉曲線Cが髪における光沢部
分に相当する場合には、光沢部分の閉曲線(図4のエリ
ア13に格納される画像)が作成される。次いで、ステ
ップS56で閉曲線Dを作成する処理を行う。例えば、
閉曲線Dが顔の輪郭に相当する場合には、輪郭の閉曲線
(図4のエリア14に格納される画像)が作成される。
次いで、ステップS58で閉曲線Eを作成する処理を行
う。例えば、閉曲線Eが首に相当する場合には、首の閉
曲線(図4のエリア15に格納される画像)が作成され
る。ステップS58を経ると、メインプログラムにリタ
ーンする。このようにして、似顔絵を作成するための各
閉曲線A〜Eが作成される。なお、顔のパーツについて
は閉曲線で作成せず、ビットマップデータに基づいて後
述のカラー設定処理によってドット処理で作成する。顔
のパーツとしては、眉毛、目、鼻、口がある。
【0024】ドット算出処理のサブルーチン 図6、図7は閉曲線A〜Eを作成する場合のドット算出
処理のサブルーチンを示すフローチャートである。この
処理は、2点間を結ぶ直線を表示部5のTVディスプレ
イ(例えば、コンピュータ画面やテレビ画面に相当)に
表示させるために行うもので、2点間を結ぶ直線は多数
のドットを算出して結ぶことによって表示される。な
お、この技術はコンピュータの直線描画に用いられてい
るいわゆる「整数型Bresenham」のアルゴリズムを応用
したものである。通常の「Bresenham」のアルゴリズム
では、直線の傾きや誤差用の判定に、浮動小数点の加減
算と除算を行う必要があるが、整数計算を用いるととも
に、さらに除算を無くしてアルゴリズムの処理速度を高
めたのが、「整数型Bresenham」のアルゴリズムであ
る。なお、以下のフローチャートの説明では、コンピュ
ータで使用される「C言語」の記述方式を用いており、
各ステップの内容は必要に応じて「C言語」の記述で表
すこととする。これは、後述の各フローチャートについ
ても、同様である。
【0025】このサブルーチンでは、まずステップS1
00で直線の始点、終点の座標の差(すなわち、傾き)
を演算する。直線の始点、終点はx座標およびy座標を
用いて表される。例えば、直線の始点、終点をそれぞれ
(x1、y1)および(x2、y2)とし、互いに等しくな
いものとする。また、全ての変数は整数とする。そし
て、 x=x1 y=y1 Δx=x2−x1 Δy=y2−y1とし、アルゴリズムの誤差項eに対して
e=2eΔx(初期値=−1/2)として演算を進め、
直線の傾きが1/2以上の場合は1単位だけ離れた次の
ポイントに変数yを増加させ、直線の傾きが1/2未満
の場合は次のポイントに変数yを増加させないようにす
る。なお、1単位だけ離れた次のポイントに変数yを増
加させた場合には、次のピクセルを決定する前に誤差項
eを再度初期化するために、誤差項eから「1」を減算
する。
【0026】さて、ステップS100では直線の始点、
終点の座標の差として、x座標については、gainxを算
出し、y座標については、gainyを算出する。この場
合、開始点のx座標はfromx、開始点のy座標はfromy、
終点のx座標はto.x、終点のy座標はto.yで表してい
る。そして、x座標についての差の演算式は、終点のx
座標to.xから開始点のx座標fromxを減算したもの、つ
まり(to.x−fromx)として表される。同様に、y座標
についての差の演算式は、終点のy座標to.yから開始点
のy座標fromyを減算したもの、つまり(to.y−fromy)
として表される。次いで、ステップS102で直線の始
点、終点の座標の差(すなわち、傾き)の絶対値Δ(de
lta)をそれぞれx座標およびy座標について演算す
る。例えば、x座標ではdeltax=abs(gainx)として
演算する。deltaxはΔx=x2−x1に相当する。y座
標ではdeltay=abs(gainy)として演算する。delta
yはΔy=y2−y1に相当する。
【0027】次いで、ステップS104で直線の始点、
終点の座標のx座標の差gainxの符号を判別する。gain
xが正のときはステップS106に進んでratex=1に
セットし、gainxが「0」のときはステップS108に
進んでratex=0にセットし、さらにgainxが負のとき
はステップS110に進んでratex=−1にセットす
る。ステップS106〜ステップS110の何れかを経
ると、ステップS112に進む。ステップS112では
同様に直線の始点、終点の座標のy座標の差gainyの符
号を判別する。gainyが正のときはステップS114に
進んでratey=1にセットし、gainyが「0」のときは
ステップS116に進んでratey=0にセットし、さら
にgainyが負のときはステップS118に進んでratey
=−1にセットする。ステップS114〜ステップS1
18の何れかを経ると、ステップS120に進む。
【0028】ステップS120では直線のx座標方向の
傾きの絶対値deltaxと、y座標方向の傾きの絶対値del
tayとを比較し、deltaxがdeltayより大きいか否かを
判別する。これは、x座標方向とy座標方向のどちらを
メインの誤差項にするかを決定するためである。delta
x>deltayのとき(すなわち、TRUEのとき、いわ
ゆるYESに相当)は、ステップS122に進んでメイ
ン誤差項(main delta)をdeltaxにする。なお、図面
上では(main_delta)としてアンダーバーを付加してい
るが、本文中では繁雑になるので、このアンダーバーを
省略する。次いで、ステップS124でサブ誤差項(su
b delta)をdeltayにする。なお、図面上では(sub_de
lta)としてアンダーバーを付加しているが、本文中で
は繁雑になるので、このアンダーバーを省略する。
【0029】次いで、ステップS126でメイン決定フ
ラグ(flag)をTRUEにして図7のステップS134
に進む。メイン決定フラグ(flag)はメイン誤差項(ma
in delta)をdeltaxにしたか、あるいはdeltayにした
かを示すものである。一方、deltax≦deltayのとき
(すなわち、FALSEのとき、いわゆるNOに相当)
は、ステップS128に進んでメイン誤差項(main del
ta)をdeltayにする。次いで、ステップS130でサ
ブ誤差項(sub delta)をdeltaxにする。次いで、ステ
ップS132でメイン決定フラグ(flag)をFALSE
にして図7のステップS134に進む。
【0030】図7に移り、ステップS134では直線の
始点のx座標に相当するドットdotx[0]を開始点のx座
標fromxにセットするとともに、直線の始点のy座標に
相当するドットdoty[0]を開始点のy座標fromyにセッ
トする。これにより、始点のドットの各座標が決定され
る。次いで、ステップS136で同じくx座標方向のパ
ラメータpxを開始点のx座標fromxにセットするとと
もに、y座標方向のパラメータpyを開始点のy座標fr
omyにセットする。次いで、ステップS138で誤差項
eをerror=2×(sub delta)−(main delta)なる式
から求める。この式によると、例えばe=2*Δy−Δ
xのようになる。
【0031】次いで、ステップS140でポインタiを
初期値[0]にセットする。ポインタiは直線を形成す
るドットを順次指定していくもので、[1]なる整数に
よってインクリメントされる。次いで、ステップS14
2でポインタiがメイン誤差項(main delta)より小さ
いか否かを判別する。TRUEのときはステップS14
4に進んで誤差項errorがerror≧0であるか否かを判別
する。error≧0のときは、ステップS146でメイン
決定フラグ(flag)を判別する。メイン決定フラグ(fl
ag)がTRUEであればx座標の方がメイン誤差項(ma
in delta)に設定されているから、ステップS148に
進んで今回のルーチンのy座標方向のパラメータpyを
次式に従って演算する。 py=py+ratey
【0032】次いで、ステップS150で今回のルーチ
ンの誤差項eを次式に従って演算する。 error=error−2×(main delta) これにより、誤差項eがメインの誤差によって変化す
る。次いで、再びステップS144に戻って同様のルー
プを繰り返す。一方、ステップS146でメイン決定フ
ラグ(flag)の判別結果がFALSEであれば、y座標
の方がメイン誤差項(main delta)に設定されていると
判断して、ステップS144からステップS152に分
岐し、今回のルーチンのx座標方向のパラメータpxを
次式に従って演算する。 px=px+ratex 次いで、ステップS150に進み、今回のルーチンの誤
差項eを前記演算式に従って演算する。その後、ステッ
プS144に戻って同様のループを繰り返す。そして、
ステップS144で誤差項errorがerror<0になると、
ステップS154に抜ける。以上のステップS144〜
ステップS152の処理により、メイン誤差項(main d
elta)の処理が行われる。
【0033】次いで、サブ誤差項(sub delta)の処理
に移る。まず、ステップS154でメイン決定フラグ
(flag)を判別し、メイン決定フラグ(flag)がTRU
Eであれば、x座標の方がメイン誤差項(main delta)
に設定されているから、ステップS156に進んで今回
のルーチンのx座標方向のパラメータpxを次式に従っ
て演算する。 px=px+ratex 次いで、ステップS160で今回のルーチンの誤差項e
を次式に従って演算する。 error=error+2×(sub delta) これにより、誤差項eがサブ誤差sub deltaによって変
化する。次いで、ステップS162でx座標方向の今回
のルーチンのパラメータpxの値を直線のx座標に対応
するドットdotx[i+1]とする。最初のルーチンでは
i=0であるから、dotx[i+1]=dotx[1]となる。
つまり、始点から1ドットだけ離れたx座標のドットdo
txが算出される。次いで、ステップS164でポイン
タiを整数[1]だけインクリメントし、再びステップ
S142に戻ってループを繰り返す。
【0034】一方、ステップS154でメイン決定フラ
グ(flag)の判別結果がFALSEであれば、y座標の
方がメイン誤差項(main delta)に設定されていると判
断して、ステップS154からステップS158に分岐
し、今回のルーチンのy座標方向のパラメータpyを次
式に従って演算する。 py=py+ratey その後、ステップS160に進み、今回のルーチンのサ
ブ誤差項eを前記演算式に従って演算し、次いで、ステ
ップS162、ステップS164を経て、再びステップ
S142に戻ってループを繰り返す。
【0035】そして、順次ポインタiをインクリメント
して、上記ループを繰り返し、ステップS142でポイ
ンタiがメイン誤差項(main delta)以上になると、こ
のサブルーチンを終了する。このようにして、2点間を
結ぶ直線のドットが算出され、これらのドットを結ぶこ
とによって、2点間を結ぶ直線を表示させる処理が行わ
れる。この場合、本実施例では「整数型Bresenham」の
アルゴリズムを用いて、整数計算を主に行っているた
め、アルゴリズムの処理速度が速い。
【0036】ベジェ曲線データ計算処理のサブルーチン 図8、図9はベジェ曲線を作成する場合のデータ計算処
理のサブルーチンを示すフローチャートである。ベジェ
曲線は2点のコントロールポイント(P2、P3)と、2
点のアンカーポイント(P1、P4)によって定義され、
一般的には次式のように表される。ここで、アンカーポ
イント(P1、P4)とは曲線の両端の2点で、各点の座
標は、例えばP1(x1、y1)、P4(x4、y4)のよう
に表される。また、コントロールポイント(P2、P3
とは曲線の曲がり方を制御する2点のことで、各点の座
標は、例えばP2(x2、y2)、P3(x3、y3)のよう
に表される。 B(t)=(1−t)3・P1+3t・(1−t)2・P2
+3t2・(1−t)・P3+t3・P4 ただし、0≦t≦1
【0037】tは0から1の間の任意に変化するため、
0から1の間を細かく分けることによって、ベジェ曲線
上の点が精度良く算出される。なお、計算の回数が多く
なるため、そこで適当な個数の曲線上の点を算出した後
に、それらを直線によって補間する方法を採るようにし
ている。なお、例えばt=0を上式に代入すると、P1
(x1、y1)となり、これは一方の端点を表す。また、
t=1を上式に代入すると、P4(x4、y4)となり、
これは他方の端点を表す。なお、直線は幅の無い真っ直
ぐなベジェ曲線として表示することも可能である。
【0038】まず、ステップS200でポインタiを
[0]にセットし、ステップS202で変数tをt=i
/nとして算出する。ポインタiは[1]毎にインクリ
メントされるものであるため、変数tをnによって除算
することで、0から1の間に細かく分けるものである。
次いで、ステップS204で偏差tnをtn=1.0−
tなる式によって演算する。次いで、ステップS206
でベジェ曲線B(t)の変数tの0乗の項(すなわち、
t=1)のx座標について次式に従って演算する。 sx[0]=tn×tn×tn×px[0] =(1−t)3・px[0] =(1−t)3・P1(x)
【0039】px[0]はアンカーポイントP1のx座標で
ある。次いで、ステップS208でベジェ曲線B(t)
の変数tの1乗の項(すなわち、t)のx座標について
次式に従って演算する。 sx[1]=3.0×t×tn×tn×px[1] =3t・(1−t)2・px[1] =3t・(1−t)2・P2(x) px[1]はコントロールポイントP2のx座標である。
【0040】次いで、ステップS210でベジェ曲線B
(t)の変数tの2乗の項(すなわち、t2)のx座標
について次式に従って演算する。 sx[2]=3.0×t×t×tn×px[2] =3t2・(1−t)・px[2] =3t2・(1−t)・P3(x) px[2]はコントロールポイントP3のx座標である。次
いで、ステップS212でベジェ曲線B(t)の変数t
の3乗の項(すなわち、t3)のx座標について次式に
従って演算する。 sx[3]=t×t×t×px[3] =t3・px[3] =t3・P4(x) px[3]はアンカーポイントP4のx座標である。
【0041】次いで、ステップS214〜ステップS2
20において、ベジェ曲線B(t)の変数tのy座標に
ついて上記同様の演算を行う。すなわち、ステップS2
14でベジェ曲線B(t)の変数tの0乗の項(すなわ
ち、t=1)のy座標について次式に従って演算する。 sy[0]=tn×tn×tn×py[0] =(1−t)3・py[0] =(1−t)3・P1(y) py[0]はアンカーポイントP1のy座標である。次い
で、ステップS216でベジェ曲線B(t)の変数tの
1乗の項(すなわち、t)のy座標について次式に従っ
て演算する。 sy[1]=3.0×t×tn×tn×py[1] =3t・(1−t)2・py[1] =3t・(1−t)2・P2(y) py[1]はコントロールポイントP2のy座標である。
【0042】次いで、ステップS218でベジェ曲線B
(t)の変数tの2乗の項(すなわち、t2)のy座標
について次式に従って演算する。 sy[2]=3.0×t×t×tn×py[2] =3t2・(1−t)・py[2] =3t2・(1−t)・P3(y) py[2]はコントロールポイントP3のy座標である。次
いで、ステップS220でベジェ曲線B(t)の変数t
の3乗の項(すなわち、t3)のy座標について次式に
従って演算する。 sy[3]=t×t×t×py[3] =t3・py[3] =t3・P4(y) py[3]はアンカーポイントP4のy座標である。
【0043】図9に移り、ステップS222でベジェ曲
線B(t)上のポイントとポイント間を直線によって補
間する場合の補間定数のx座標bx[i]、y座標by
[i]を最初は共に、bx[i]=by[i]=0にセ
ットする。次いで、ステップS224でポインタjを初
期値[0]におき、続くステップS226で補間定数の
x座標bx[i]およびy座標by[i]をそれぞれ次
式に従って演算する。 bx[i]=bx[i]+sx[j] by[i]=by[i]+sy[j] 次いで、ステップS228でポインタjが[4]以上に
なったか否かを判別し、[4]未満のときはステップS
230に進んでポインタjを[1]だけインクリメント
し、ステップS226に戻り、ループを繰り返す。そし
て、ステップS228でポインタjが[4]以上になる
と、ステップS232に抜ける。
【0044】次いで、ステップS232でポインタiが
n以上になったか否かを判別し、n未満のときはステッ
プS234に進んでポインタiを[1]だけインクリメ
ントし、図8のステップS202に戻り、同様のループ
を繰り返す。そして、ステップS232でポインタiが
n以上になると、本サブルーチンを終了する。このよう
にして、ポインタiを[0]からnまでインクリメント
することによって2点のコントロールポイント(P2
3)と、2点のアンカーポイント(P 1、P4)によっ
て定義されるベジェ曲線B(t)上の点を算出し、この
ときtを0から1の間に分けて細かく変化させることに
より、ベジェ曲線上の点を精度良く算出することができ
る。また、ベジェ曲線B(t)上のポイントとポイント
間を4つの点で適切に補間することにより、一層精度が
高められる。
【0045】カラー設定処理のサブルーチン 図10、図11はメインプログラムにおけるステップS
24の塗りつぶし処理のうち、カラー設定処理のサブル
ーチンを示すフローチャートである。この処理は、作成
された閉曲線に対して指定された色を塗っていくととも
に、読み出したビットマップデータ(顔の中心パーツの
データ)の貼り付け(色も同時に付ける)を行うもので
ある。このサブルーチンでは、まずステップS300で
カラーエリアをクリアする。これにより、最初は色を塗
る対象となる全てのエリアが一旦クリアされ、無色にな
る。次いで、ステップS302でカラー状態フラグCfl
agを初期設定する。カラー状態フラグCflagとは、対応
する閉曲線をカラー設定エリアに指定(つまり、色で塗
りつぶす)するか否かを決定するフラグであり、初期設
定されると、図12に示すように、閉曲線に対応するオ
ブジェクトのカラー状態フラグがすべて[−1]にな
る。カラー状態フラグ=[−1]とは、カラーを指定す
るカラー番号で取り得ない番号に設定することである。
ただし、オブジェクトのうち、ビットマップ(顔の中心
パーツに相当)であるときは、初期設定でカラー状態フ
ラグがすべて[−2]になる。そして、カラー状態フラ
グ=[−2]という状況から後述のステップでオブジェ
クトがビットマップであることを判断する。
【0046】図12の例では、オブジェクト1のカラー
〜オブジェクトn(各オブジェクトは、例えば似顔絵の
各部位に相当)のカラーが全て初期状態に設定され、バ
ックグラウンドのカラーだけ何等かのカラー番号が入
り、色で塗られるようになっている。そして、各オブジ
ェクトのカラー切替フラグが[1]になるたびに、それ
に対応するカラー状態フラグが反転(例えば、[−1]
から[1]になる)するようになっている。ステップS
304ではポインタiを[0]にクリアし、ステップS
306でポインタjを[0]にクリアする。ポインタi
は画面上のライン(例えば、0から524までのライン
がある)を順次指定するもので、ポインタjはライン上
のドットを順次指定するものである。ポインタi=
[0]にすることによりライン0が指定され、ポインタ
j=[0]にすることによりライン0上のドット0が指
定される。
【0047】次いで、ステップS308でラインカラー
lcolorを[−1]に設定するとともに、ラインナンバー
(ライン番号)lnumを[−1]に設定する。ラインカラ
ーlcolorは閉曲線のカラーを指定するものである。ま
た、ラインナンバーlnumは閉曲線の境界線の番号を指定
するものである。何れも、[−1]に設定されることに
より、初期状態となる。次いで、ステップS310で閉
曲線ナンバーkを(n−1)に設定する。例えば、閉曲
線が5個あるとすると、閉曲線ナンバーkを[4]に設
定する。閉曲線ナンバーkは値が小さい程、優先度が高
くなるものである。したがって、k=0が最も優先度が
高く、以下、順次低くなる。これにより、ステップS3
10では2番目に優先度の低い状態に設定されることに
なる。
【0048】次いでステップS312で閉曲線関数C
[k][i][j]を判断する。閉曲線関数C[k]
[i][j]は、画面上のラインiのドットjが閉曲線
ナンバーkを有する閉曲線上にあるか(つまり、何れか
の閉曲線の境界線が検出されたか)否かを判断可能なも
のである。閉曲線関数C[k][i][j]の判断結果
がTRUEのときは、ステップS314に進んでカラー
状態フラグCflag[k]を設定する。これにより、今回
の閉曲線ナンバーkによって指定された閉曲線のカラー
状態フラグ[−1]であるときはカラー番号が設定さ
れ、一方、カラー番号であるときは[−1]が設定され
る。また、オブジェクトがビットマップである場合、カ
ラー番号を設定するとき、その値が[−2]になる。し
たがって、対応する閉曲線およびビットマップに対して
色が塗られることになる。
【0049】次いで、ステップS316でラインカラー
lcolorにカラー番号を入れるとともに、ラインナンバー
lnumに閉曲線ナンバーkを入れる。これにより、今回の
閉曲線に対してカラー番号(塗るべき色を指定するも
の)が与えられるとともに、その閉曲線の優先度が付与
される。次いで、ステップS318で閉曲線ナンバーk
を[1]だけデクリメントする。これにより、1つだけ
優先度が高くなる。一方、ステップS312で閉曲線関
数C[k][i][j]の判断結果がFALSEのとき
は、ステップS314、ステップS316をジャンプし
てステップS318に進む。したがって、このときは直
ちに閉曲線ナンバーkが[1]だけデクリメントされ、
1つ上の優先度に移行することになる。
【0050】ステップS318を経ると、続くステップ
S320で閉曲線ナンバーkが[0]未満である(つま
り、未だ一番高い優先度にはなっていない状態である)
か否かを判別する。k=0でなければ(最初のルーチン
では優先度は最高になっていない)、TRUEに分岐し
てステップS312に戻ってループを繰り返す。そし
て、ループの繰り返しにより、閉曲線ナンバーkが4か
ら3、2、1というように順次上がって、k=0になる
と、一番高い優先度になったと判断して図11のステッ
プS322に抜ける。このようにして、各閉曲線および
ビットマップに対してカラー状態フラグCflag[k]を
設定することにより、色を塗る許可が与えられるととも
に、カラー番号によって塗るべき色が指定され、その閉
曲線の優先度が付与される。
【0051】図11に移り、閉曲線のラインに対して今
度はドット毎に処理するプロセスを実行する。まず、ス
テップS322では閉曲線ナンバーkを[0]に設定す
る。例えば、閉曲線が5個ある場合に閉曲線ナンバーk
を[0]に設定すると、優先度は一番高くなる。すなわ
ち、閉曲線ナンバーkは値が小さい程、優先度が高くな
るものであるから、ステップS322では一番優先度の
高い状態に設定されることになる。次いで、ステップS
324でカラー状態フラグCflag[k]が[−1]に等
しくない状態であるか、すなわち閉曲線が色で塗りつぶ
される状態になった否かを判別する。なお、この判別は
フローチャートではCflag[k]!=−1として表さ
れ、「!」の符号は「C言語」で否定(not)を示す
ものである。ステップS324の判別は優先度の高い閉
曲線からカラー状態フラグCflag[k]を判断すること
を意味している。
【0052】カラー状態フラグCflag[k]が[−1]
に等しくない状態(TRUE)であれば、ステップS3
26に進んで閉曲線ナンバーkを[1]だけ大きくす
る。これにより、次に優先度の低い閉曲線に移る。次い
で、ステップS328で閉曲線ナンバーkが(n+1)
未満である(つまり、未だ一番低い優先度にはなってい
ない状態である)か否かを判別する。k≧(n+1)で
あれば(最初のルーチンでは優先度は最低になっていな
い)、TRUEに分岐してステップS324に戻ってル
ープを繰り返す。そして、ループの繰り返しにより、閉
曲線ナンバーkが0から1、2、3というように順次大
きくなって(優先度が下がって)、k=(n+1)にな
ると、一番低い優先度になったと判断してステップS3
30に抜ける。例えば、閉曲線が5個あるとすると、k
=(n+1)=6になったようなケースである。一方、
ステップS324でカラー状態フラグCflag[k]が
[−1]に等しい状態(FALSE)であれば、ステッ
プS326、ステップS328をジャンプしてステップ
S330に進む。したがって、このときは次の閉曲線に
移行して優先度を変えるという処理が行われない。この
ようにして、優先度の高い閉曲線から順次カラー状態フ
ラグCflag[k]のチェックが行われる。
【0053】ステップS330ではラインカラーlcolor
が[−1]に等しくない状態であるか、すなわち閉曲線
のカラーが指定されたか否かを判別する。なお、この判
別はフローチャートではlcolor!=−1として表され
る。ラインカラーlcolorが[−1]に等しくない状態で
あれば(閉曲線のカラーが指定されていれば)、ステッ
プS332に進んでラインナンバー(ライン番号)lnum
が閉曲線ナンバーkより小さいか否かを判別する。閉曲
線ナンバーkには優先度の高い閉曲線の番号が入るか
ら、ラインナンバー(ライン番号)lnumが閉曲線ナンバ
ーkよりも小さければ、TRUEに分岐してステップS
334に進み、ポインタi、jによって指定されるライ
ンおよびドットのカラーcolor[i][j](以下、ポ
インタ指定カラーという)を優先度の高いラインカラー
lcolorにセットし、その後、ステップS336に進む。
これにより、優先度の高い曲線の色がその閉曲線に塗ら
れることになる。
【0054】一方、ステップS330でラインカラーlc
olorが[−1]に等しい状態(閉曲線のカラーが指定さ
れていない状態)であれば、ステップS338に分岐し
てカラー状態フラグCflag[k]が[−2]に等しいか
否か、すなわちビットマップの部分であるか(ビットマ
ップを作成しながら同時に色で塗りつぶす状態になった
か)否かを判別する。ステップS338の判別はビット
マップか閉曲線かをカラー状態フラグCflag[k]で判
断することを意味している。また、ステップS332で
ラインナンバー(ライン番号)lnumが閉曲線ナンバーk
以上であるときも、FALSEに分岐してステップS3
38に進み、同様の判別を行う。
【0055】A.ビットマップでないとき(閉曲線のと
き) ステップS338の判別結果がFALSEとなり、続く
ステップS340に進んでポインタ指定カラーcolor
[i][j]をカラー状態フラグCflag[k]にセット
してステップS336に移行する。カラー状態フラグC
flag[k]は対応する閉曲線kに対してバックグラウン
ドの色を塗ることを決定するフラグである。したがっ
て、この場合にはその閉曲線kにバックグラウンドの色
が塗られる。ステップS340を経ると、次いで、ステ
ップS336に進む。また、ステップS332でライン
ナンバー(ライン番号)lnumが閉曲線ナンバーk以上で
あるときも、FALSEに分岐してステップS338に
進み、上記同様の処理を行う。したがって、この場合も
ビットマップでなければ、その閉曲線にバックグラウン
ド(背景)の色が塗られる。
【0056】B.ビットマップのとき ステップS338の判別結果がTRUEとなり、ステッ
プS342に進んでビットマップカラーが透明であるか
否かを判別する。ビットマップカラーが透明であるとき
はステップS324に戻ってループを繰り返す。したが
って、この場合は透明の下地にある次の色を塗ることに
なる。一方、ステップS342でビットマップカラーが
透明でなければ、ステップS344に分岐してポインタ
i、jによって指定されるラインおよびドットのカラー
color[i][j]をビットマップカラーにセットし、
その後、ステップS336に進む。これにより、ビット
マップの部分については、カラーのドット単位で画像が
作成され、このとき同時に色が塗られていくことにな
る。例えば、目を含む顔の中心部分(顔の中心パーツ)
はカラーのドット単位で画像が作成され、繊細な表情が
表示される。このようにして、今回のポインタi、jに
よって指定されたラインおよびドットに対して優先度の
高い閉曲線の色が塗られたり、あるいはバックグラウン
ド(背景)の色が塗られたりするとともに、ビットマッ
プの部分ではカラーのドット単位で繊細な画像が作成さ
れる。
【0057】次いで、ステップS336でポインタjを
[1]だけインクリメントして次のドットに移行する。
次いで、ステップS346でインクリメント後のポイン
タjがndot(例えば、1ラインの最大値でndot=25
6ドット)まで到達したか否かを判別し、到達していな
ければ図10のステップS308に戻って同様のルーチ
ンを繰り返す。これにより、次回のルーチンでは同じラ
イン上の次のドットに対して同様の処理が行われる。そ
して、ステップS346でポインタjがndot(例え
ば、256ドット)まで到達すると、1ラインの全ての
ドットについてカラー設定処理が終了したと判断してス
テップS348に抜ける。
【0058】ステップS348ではポインタiを[1]
だけインクリメントして次のラインに移行する。次い
で、ステップS350でインクリメント後のポインタi
がnline(例えば、1画面の最大値でnline=525
本)まで到達したか否かを判別し、到達していなければ
図10のステップS306に戻って再びドットを指定す
るポインタjを[0]に戻して同様のルーチンを繰り返
す。これにより、次回のルーチンでは次のラインに移行
して同様の処理が行われる。そして、ステップS350
でポインタiがnline(例えば、525本)まで到達す
ると、全てのラインについてカラー設定処理が終了した
と判断して本ルーチンを終了する。
【0059】このように、1画面をラインとドットに分
けて、カラー設定処理が行われ、このとき描画する全て
の閉曲線(例えば、似顔絵の各部位に対応する閉曲線)
についてのフラグ設定を終了した後、全ての閉曲線のフ
ラグを参考にしてカラー設定エリアにカラー番号が設定
される。このとき、ビットマップデータの貼り付けも同
時に行われる。そして、この場合、何れかの閉曲線の境
界線が検出されたときには、その境界線がいま属してい
る閉曲線よりも優先度の高い閉曲線又はビットマップの
内部にあるときには、優先度の高い内部カラー又はビッ
トマップの色データ(あるいは色番号でもよい)をカラ
ー設定エリアに設定するようにカラー状態フラグが制御
される。したがって、常に優先度の高い閉曲線又はビッ
トマップのカラーで塗りつぶされることになり、似顔絵
を簡単なデータ構成で作成することができる。また、作
成されるオブジェクトがビットマップのときに、その位
置のドットのカラーが透明である場合には、その次に優
先度の高いオブジェクトに対して同様の判断がなされ
る。なお、このような処理では、ビットマップも閉曲線
の1つとして考えカラー設定エリアに同時にカラーを書
き込むものであり、全てのオブジェクトに対するフラグ
設定エリアを確保できるメモリが備えられる。
【0060】以上の処理により、本実施例では、例えば
図13に示すように、似顔絵100の各部位(前髪、髪
型、髪の光沢、顔の輪郭、首)に対応する閉曲線を作成
するとともに、顔のパーツについてはカラーのドット単
位で作成される。そして、各部位のカラー設定エリアに
カラー番号を設定していき、画面に表示するときには、
優先度の高い各部位のカラーでその閉曲線又はビットマ
ップを塗りつぶす処理が行われる。これにより、同図に
示すような似顔絵100の完成画面が表示部5に表示さ
れる。この場合、本実施例では似顔絵のうち目などの細
かい部位についてはドット単位で作成されるとともに、
同時にカラーのビットマップデータによって色が塗られ
るから、細かい線や色使いが可能になって繊細な表情を
出すことができる。また、カラー画像の作成に際して従
来のようにピクセル毎にカラーデータを持つ必要がな
く、単に閉曲線データ、カラーデータおよびカラーのビ
ットマップデータを持てば、画像をカラーで作成するこ
とができる。その結果、少ないデータ量で、低コスト
に、似顔絵の画像をカラーで作成することができる。似
顔絵でなく、アニメーション画像をカラーで作成する場
合にも本実施例と同様の効果を得ることができる。
【0061】なお、上記実施例では閉曲線を作成する場
合の曲線パラメータとしてベジェ曲線のパラメータを使
用しているが、これに限るものではなく、例えばBスプ
ライン曲線等の任意の曲線を用いることも可能である。
また、この他に放物線、双曲線、三角関数等のようなパ
ラメータを適宜使用することも可能である。この場合、
作成する閉曲線の形状に応じて放物線、双曲線、三角関
数等の適切な数式を用いればよい。このようにすると、
その時々に応じた適切な閉曲線を作成することができ
る。また、繊細な表情を出す部分として上記実施例では
顔の中心パーツをビットマップデータにしているが、ビ
ットマップデータで作成する部分は顔の中心パーツに限
るものではなく、作成対象の画像によって選択が可能で
ある。作成するカラー画像は似顔絵やアニメーション画
像に限らず、ゲーム等で使用する各種の画像、キャラク
ターや背景データであってもよい。さらに、本発明はコ
ンピュータ画面上あるいはテレビ画面上において、似顔
絵やアニメーション画像をカラーで作成させる場合に限
らず、他の分野、他の画像の作成にも適用できる。
【0062】
【発明の効果】本発明によれば、カラーの画像(例え
ば、似顔絵あるいはアニメーション画像)を作成する場
合、まず複数の閉曲線作成データに基づいて画面上に複
数の閉曲線を作成する。そして、前記画面上の各ドット
において、前記ドット画像上に存在するか否か、及び作
成された複数の閉曲線のうちいずれの閉曲線の中に存在
するか否かを判定し、前記ドットが前記ドット画像上に
存在せず、かついずれかの閉曲線の中に存在すると判定
された場合は、当該閉曲線の夫々に割当てられた優先順
位の中から最も優先順位の高い閉曲線を選択し、この選
択された閉曲線に割当てられた色データで指定される色
にて前記ドットを表示する。前記ドットが前記ドット画
像上に存在すると判定された場合には、前記ドットを記
憶されたドット画像で指定された色で表示することによ
り、所定のカラー画像を作成しているので、以下の効果
を得ることができる。例えば似顔絵の画像であれば、
その目などの細かい部位についてはドット単位の画像で
作成され、細かい線や色使いが可能になって繊細な表情
を出すことができる。カラー画像の作成に際して、単
に閉曲線データ、カラーデータおよびカラーのドット画
を持つことにより、従来のようにピクセル毎にカラー
データを持つ必要がなく、画像をカラーで作成すること
ができる。その結果、少ないデータ量で、低コスト
に、しかもカラーの似顔絵やアニメーション画像等を作
成することができる。
【図面の簡単な説明】
【図1】本発明による似顔絵作成装置の一実施例を示す
構成図である。
【図2】同実施例の似顔絵作成処理のメインプログラム
を示すフローチャートである。
【図3】同実施例のROMに格納されているデータを示
す図である。
【図4】同実施例のRAMに格納されるデータを示す図
である。
【図5】同実施例の閉曲線A〜Eの作成処理のサブルー
チンを示すフローチャートである。
【図6】同実施例のドット算出処理のサブルーチンを示
すフローチャートである。
【図7】同実施例のドット算出処理のサブルーチンを示
すフローチャートである。
【図8】同実施例のベジェ曲線を作成する場合のデータ
計算処理のサブルーチンを示すフローチャートである。
【図9】同実施例のベジェ曲線を作成する場合のデータ
計算処理のサブルーチンを示すフローチャートである。
【図10】同実施例のカラー設定処理のサブルーチンを
示すフローチャートである。
【図11】同実施例のカラー設定処理のサブルーチンを
示すフローチャートである。
【図12】同実施例のカラー状態フラグを説明する図で
ある。
【図13】同実施例の似顔絵の一例を示す図である。
【符号の説明】
1 CPU 2 ROM 3 RAM 4 スィッチ部 5 表示部(表示手段) 6 印刷部(印刷手段)21 記憶手段 22 閉曲線作成手段 23 判定手段 24 選択手段 25 カラー画像作成手段
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平3−174666(JP,A) 特開 平5−67185(JP,A) 特開 平5−189501(JP,A) Claris Coporatio n,マックドローPro ユーザーズガ イド,日本,Claris Copor ation,3−23〜3−26 2−22〜 2−29 3−75〜3−78 (58)調査した分野(Int.Cl.7,DB名) G06T 11/80 H04N 5/262 H04N 9/64

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 閉曲線作成データ、当該閉曲線の境界及
    び内部を塗りつぶす色を指定するための色データ及び優
    先順位データからなる閉曲線データを複数個有すると共
    に、ドット単位で色を指定したドット画像とを有し、 前記複数の閉曲線作成データに基づいて前記画面上に複
    数の閉曲線を作成し、 前記画面上の各ドットにおいて、前記ドット画像上に存
    在するか否か及び前記複数の閉曲線のうちいずれの閉曲
    線の中あるいは否かを判定し、 前記ドットが前記ドット画像上に存在せず、いずれかの
    閉曲線の中に存在すると判定された場合は、当該閉曲線
    の夫々に割当てられた優先順位の中から最も優先順位の
    高い閉曲線を選択し、 当該選択された閉曲線に割当てられた色データで指定さ
    れる色にて前記ドットを表示し、 前記ドットが前記ドット画像上にあると判定された場合
    には、前記ドットを前記ドット画像で指定される色で表
    示することにより、 所定のカラー画像を作成することを
    特徴とする画像処理方法。
  2. 【請求項2】 前記閉曲線は、直線あるいはベジェ曲線
    のうちの1つ以上によって作成されることを特徴とする
    請求項1記載の画像処理方法。
  3. 【請求項3】 前記閉曲線を直線によって作成する処理
    は、直線を多数のドットによって形成するものであり、 直線の両端を形成する2つのドット位置を決定するとと
    もに、そのドット位置の傾きを算出する処理と、 この傾きに応じてx座標又はy座標を1単位ずつ増加さ
    せた場合の誤差を累積する処理と、 この誤差が所定値を超えるときのみ、次のドットのx座
    標又はy座標の位置を変更するとともに、前記累算され
    た誤差から一定値を減算する処理と、 を有する ことを特徴とする請求項1記載の画像処理方
    法。
  4. 【請求項4】 閉曲線作成データ、当該閉曲線の境界及
    び内部を塗りつぶす色を指定するための色データ及び優
    先順位データからなる閉曲線データを複数個記憶すると
    共に、ドット単位で色を指定したドット画像とを記憶す
    る記憶手段と この記憶手段に記憶された複数の閉曲線作成データに基
    づいて画面上に複数の閉曲線を作成する閉曲線作成手段
    と、 前記画面上の各ドットにおいて、前記ドット画像上に存
    在するか否か及び前記閉曲線作成手段にて作成された複
    数の閉曲線のうちいずれの閉曲線の中に存在するか否か
    を判定する判定手段と、 この判定手段により、前記ドット画像上に存在せず、前
    記ドットがいずれかの閉曲線の中に存在すると判定され
    た場合は、当該閉曲線の夫々に割当てられた優先順位の
    中から最も優先順位の高い閉曲線を選択する選択手段
    と、 この選択手段で選択された閉曲線に割当てられた色デー
    タで指定される色にて前記ドットを表示すると共に、前
    記ドットが前記ドット画像上に存在すると判定された場
    合には、前記ドットを前記ドット画像で指定された色で
    表示することにより、所定のカラー画像を作成するカラ
    ー画像作成手段と、 を備えたことを特徴とする画像処理装置。
  5. 【請求項5】 前記閉曲線作成手段は、直線あるいはベ
    ジェ曲線のうちの1つ以上によって閉曲線を構成するこ
    とを特徴とする請求項4記載の画像処理装置。
  6. 【請求項6】 前記カラー画像作成手段によって作成さ
    れた所定のカラー画像を表示する表示手段を、さらに有
    することを特徴とする請求項4記載の画像処理装置。
  7. 【請求項7】 前記カラー画像作成手段によって作成さ
    れた所定のカラー画像を印刷する印刷手段を、さらに有
    することを特徴とする請求項4記載の画像処理装置。
  8. 【請求項8】 前記閉曲線作成手段は、閉曲線を多数の
    ドットからなる直線によって作成する場合、 直線の両端を形成する2つのドット位置を決定するとと
    もに、そのドット位置の傾きを算出する手段と、 この傾きに応じてx座標又はy座標を1単位ずつ増加さ
    せた場合の誤差を累積する手段と、 この誤差が所定値を超えるときのみ、次のドットのx座
    標又はy座標の位置を変更するとともに、前記累算され
    た誤差から一定値を減算する手段とを有することを特徴
    とする請求項4記載の画像処理装置。
JP7535694A 1994-03-22 1994-03-22 画像処理方法およびその装置 Expired - Fee Related JP3351093B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP7535694A JP3351093B2 (ja) 1994-03-22 1994-03-22 画像処理方法およびその装置
US08/405,521 US5611037A (en) 1994-03-22 1995-03-16 Method and apparatus for generating image
DE69518180T DE69518180T2 (de) 1994-03-22 1995-03-21 Verfahren und Gerät zur Bilderzeugung
EP95104136A EP0675461B1 (en) 1994-03-22 1995-03-21 Method and apparatus for generating image

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7535694A JP3351093B2 (ja) 1994-03-22 1994-03-22 画像処理方法およびその装置

Publications (2)

Publication Number Publication Date
JPH07264472A JPH07264472A (ja) 1995-10-13
JP3351093B2 true JP3351093B2 (ja) 2002-11-25

Family

ID=13573877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7535694A Expired - Fee Related JP3351093B2 (ja) 1994-03-22 1994-03-22 画像処理方法およびその装置

Country Status (1)

Country Link
JP (1) JP3351093B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002245478A (ja) * 2001-02-16 2002-08-30 Riverhillsoft:Kk 似顔絵作成プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Claris Coporation,マックドローPro ユーザーズガイド,日本,Claris Coporation,3−23〜3−26 2−22〜2−29 3−75〜3−78

Also Published As

Publication number Publication date
JPH07264472A (ja) 1995-10-13

Similar Documents

Publication Publication Date Title
JP4385524B2 (ja) ポリゴンデータの生成方法及び、これを用いた画像表示装置
US5786822A (en) Method and apparatus for mapping texture on an object displayed at a varying view angle from an observer
US5745666A (en) Resolution-independent method for displaying a three-dimensional model in two-dimensional display space
US5611037A (en) Method and apparatus for generating image
EP1203351B1 (en) System for rapidly performing scan conversion with anti-aliasing upon outline fonts and other graphic elements
US5640589A (en) Method and device for generating graphic data using a writing motion model
US5870107A (en) Character and symbol pattern generator based on skeleton data including thickness calculation
US5642476A (en) Computer generated variable line width of a vector graphic
JP3351093B2 (ja) 画像処理方法およびその装置
US5850488A (en) Character generating method and apparatus using discrimination of stored font data
US5351315A (en) Apparatus for smoothing outlines of images
US5499324A (en) Graphic display apparatus with improved shading capabilities
JPH07262399A (ja) 画像処理方法およびその装置
JPH07262391A (ja) 画像処理方法およびその装置
JPH07262398A (ja) 画像処理方法およびその装置
US5377316A (en) Line image generating apparatus
JPS63303477A (ja) ベクトル文字もしくはベクトル図形の処理方法
JP2713265B2 (ja) 画像表示装置
JP2538631B2 (ja) ベクトル文字の処理方法
JP2748787B2 (ja) 曲線発生装置
JP2792299B2 (ja) パラメトリック3次曲線描画用ステップ間隔決定方式
JP2666552B2 (ja) アウトライン文字における線幅制御方法
JP2000338959A (ja) 画像処理装置
JP3034391B2 (ja) 文字数を算出する電子組版装置
JPH08190635A (ja) 直線発生方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070920

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080920

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090920

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100920

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100920

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110920

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120920

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130920

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees