(57)【特許請求の範囲】
【請求項１】
図を構成する要素の位置関係に応じて、上記要素に割り当てる色を決定する複数の配色規則に関する情報を記憶する記憶手段と、
上記配色規則に応じた配色パターンを表示する手段と、
作図対象の図に対して配色規則を指定する手段と、
指定された上記配色規則に基づいて上記記憶手段を参照し、上記作図対象の図の要素の色を決定する手段と、
上記作図対象の図の要素について決定された色に応じて、色付けの施された上記作成対象の図を表す画像情報を生成する手段とを有し、
上記配色規則により位置関係に応じて色を割り当てられる上記図の要素は、所定の種類の要素とし、
上記記憶手段は、上記所定の種類の要素について、上記配色規則に関する情報を記憶し、さらに上記配色規則により位置関係によらず一意の色を割り当てられる種類の要素について、その種類毎に割り当てる色に関する情報を記憶することを特徴とする作図装置。
【請求項２】
上記配色規則に応じた配色パターンを表示する手段は、上記配色規則に対応する図の特徴を表示する請求項１記載の作図装置。
【請求項３】
上記記憶手段は、上記配色規則と、上記要素の形状との対応関係を規定するデータを記憶する請求項１または２記載の作図装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、図形を扱えるワードブロセッサや、ディジタル複写機など、ディジタル画像情報を加工する電子的な作図を行うための作図装置に関するものである。
【０００２】
【従来の技術】
近年、ワードプロセツサなどでグラフィカルＵＩ（ユーザインタフェース）を利用して、エンドユーザが電子的に作図をすることが一般的になった。また、カラースキャナやカラープリンタを含むコンピュータシステムの普及により、グラフィックデザイナだけではなく、一般ユーザでもカラーの図が作成できる環境ができつつある。カラーの図は白黒に較べて訴求力が高いので、顧客への提案書やプレゼンテーションのために、美しく分かりやすい図を容易に作成したいというユーザのニーズは高い。
【０００３】
美しく分かりやすい図を作る場合、図のどの部分にどのような色を用いるかが重要になる。適切な配色が行われないと、カラーにすることでかえって見づくなるからである。
【０００４】
ワードプロセッサやグラフィックソフトウェア、あるいは、カラー編集機能を持つディジタル複写機などにおいて、電子的にカラーの作図をするため用いられてきた従来の手法では、ユーザが図の要素や領域を直接指定し、それに対してどのような色を用いるかを直接指示するという操作を繰り返すことで、配色が行われる。従来の手法に基づくシステムで用意される編集操作系は、個々の図の要素の位置や大きさや色を直接的にユーザが指定するものになっている。
【０００５】
しかしながら、グラフィックデザイナではない一般ユーザの場合、従来の手法を用いて図の配色を決めるのは困難である。なぜなら、配色は、ある部分の色と他の部分の色との関係によって決まるものであり、全体のバランスを考えて個々の部分の色を決めなければならないからである。一般ユーザの場合、仕上がりの配色を色づけ作業の前にイメージすることは困難であるため、従来の手法を用いると、個々の部分の色を場当たり的に決めてしまい、最終的に見づらい配色にしてまうことが多い。特に、多様に配置される図の要素の配色を従来の手法で行うことは、一般ユーザにとって著しく困難であった。
【０００６】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、ユーザが電子的に作図する際に、あるいは、白黒の図からカラーの図を電子的に生成する際に、適切な配色が施された図を簡易に生成できる作図装置を提供することを目的とするものである。
【０００７】
【課題を解決する手段】
本発明では、以上の目的を達成するために、図を構成する要素の位置関係に応じて、上記要素に割り当てる色を決定する複数の配色規則に関する情報を記憶する記憶手段と、上記配色規則に応じた配色パターンを表示する手段と、作図対象の図に対して配色規則を指定する手段と、指定された上記配色規則に基づいて上記記憶手段を参照し、上記作図対象の図の要素の色を決定する手段と、上記作図対象の図の要素について決定された色に応じて、色付けの施された上記作成対象の図を表す画像情報を生成する手段とを、作図装置に設けている。
【０００８】
この構成によれば、ユーザは配色パターンを実際に見ながら、配色規則を決定することができ、よりユーザの目的に合致した図を生成することができる。この場合、作図目標等と配色パターンとを対応づけて表示すれば、ユーザは、より一層配色の選択を容易に行える。
【０００９】
また上記配色パターンを割り当てる上記図の要素は、所定の種類の要素のみとし、他の種類の要素は位置関係に係わらず所定の色を割り当てるようにしてもよい。そして上記記憶する手段が、上記配色規則の情報の他に、上記配色パターンを割り当てない種類の要素の色を規定するデータをも記憶し、作図目標等、図の特徴に応じて、一部の種類の要素の配色パターンと他の種類の要素の色とを決定するようにしてもよい。
【００１０】
また上記記憶する手段が、上記配色規則と、上記要素の形状との対応関係を規定するデータをも記憶し、作図目標等、図の特徴に応じて、要素の形状が自動的に決定するようにしてもよい。
【００１１】
また、この発明では、上述目的を達成するために、図を構成する要素の位置関係に応じて、上記要素に割り当てる色を決定する複数の配色規則に関する情報を記憶する記憶手段と、作図対象の図に対して配色規則を指定する手段と、上記作図対象の図の原図となる無彩色または単一色の原図画像であって、所定の要素に色マークの付されたものを光学的に読み取り、原図画像情報を生成する手段と、指定された上記配色規則に基づいて上記記憶手段を参照し、上記原図画像情報に基づいて、上記原図画像の上記色マークの付された要素の色を決定する手段と、上記作図対象の図の要素について決定された色および上記原図画像情報に応じて、色付けの施された上記作成対象の図を表す画像情報を生成する手段とを、作図装置に設けている。
【００１２】
この構成によれば、たとえば白黒の画像に色マークを付して処理するだけで、適切に配色の施されたカラー画像を簡易に得ることができる。
【００１３】
【発明の実施の形態】
以下、この発明の実施例の作図装置について図面を説明する。
［実施例１］
まず実施例１について説明する。この実施例では、入力用紙にラフなスケッチを描き、これを光学的に読み込ませ、合わせて配色を指定し、これにより、配色バランスのとれた見栄えのよい図を生成するものである。ここでは、この作図装置の構成や動作を説明する前に、この作図装置を用いてどのように作図を行うかにその操作の全体の流れを説明しておく。
【００１４】
この実施例では、格子が印刷された紙（入力用紙１１１）に、カラーマーカーペンで図を描く。図を描いてある入力用紙を光学的に読み込む。これと同時に、タッチパネル上の選択肢から図の配色を選択すると、これに基づいて配色が施されたカラー原稿が出力される。
【００１５】
この実施例では、図の要素として「囲み」、「矢印」、「テキスト」の３種類がある。「囲み」は、丸や四角など、ユーザが入力用紙の上で閉曲線で描いたものである。「矢印」は、−＞の形に描かれるものである。「テキスト」は、図に書き込んだ文字列である。
【００１６】
この実施例では、図を描くためのカラーマーカーペンが与えられている。カラーマーカーペンは、「囲み用」、「矢印用」、「テキスト用」といった図の要素の種類ごとに与えられており、用途ごとに色が違う。システムは、この色の違いを利用して、要素の種類を検出する。
【００１７】
入力用紙に印刷された格子の色も、カラーマーカーペンの色とは異なる。ユーザには、格子を基準にしてカラーマーカーペンで図を描いてもらう。図の要素と格子の色が違うことを利用して、要素と格子とを個別に認識し、要素の位置関係を格子を基準にして検出する。
【００１８】
つぎに、実施例の作図装置の構成を説明する。なお、この作図装置は、専用のワードプロセッサ、デジタル複写機や、汎用のパーソナルコンピュータ、ワークステーション、あるいはホストのソフトウェアとして実現できる。
【００１９】
図１はこの作図装置を全体として示すもので、この図において、作図装置は、原稿読み取り部１１２および配色選択部１０９を有し、ユーザの各種指示を受け付けるようになっている。原稿読み取り部１１２は入力用紙１１１にマーキング操作を行って作成した原稿を読みとるものである。ユーザの指示は、実行部、すなわち、要素データ変更部１０２、座標データ変更部１２１、図印刷部１２３、格子検出部１１４、囲み検出部１１５、矢印検出部１１６、テキスト検出部１１７、色設定部１１８、形状設定部１１９、向き変更部１２０等で実行される。処理制御部１２４は全体の制御を統括する。
【００２０】
各部の実行に際しては、記憶部すなわち要素データ保持部１０１、座標データ保持部１０３、方位距離設定ルール保持部１０４、色設定ルール保持部１０５、形状設定ルール保持部１０６、配色選択肢保持部１０７、選択肢−設定ルール対応保持部１０８、処理対象画像保持部１１３が各種データを記憶する。そして生成中の図はその都度、画面表示部１２２に表示され、最終的に生成された図が図印刷部１２３により印刷される。
【００２１】
以下、各部の構成を詳細に説明する。
【００２２】
［要素データ保持部１０１］
要素データ保持部１０１は、図の要素ごとに、その形状、色、配置に関する情報を保持する機能を持つ。この実施例では、図の要素に関する属性データを表形式で保持する。表は、属性と属性値の組を対応づけたものである。要素毎に一つの表が作られ、その表をシステム内で一意に識別するためのＩＤがふられる。以下、各属性について説明する。
【００２３】
属性には、「位置」、「色」、「形状」、「テキスト」および「表示順序」がある。属性「位置」は、その要素の２次元平面上の位置を示す。属性値として、後述する配置可能座標の座標ＩＤをとる。属性「色」は、その要素の色を示す。属性値として、国際照明学会が定めたスケールであるＬ＊ａ＊ｂ＊でその要素の色を表現した値をとる。属性「形状」は、その要素の形状を示す。属性値として、ページ記述言語のＰｏｓｔＳｃｒｉｐｔ（米国アドビ・システムズ社の商標）でその要素の形状を記述した値をとる。属性「テキスト」は、要素種類がテキストの場合に、その内容を示す。属性値として、カラービットマップデータをとる。属性「表示順序」は、その要素が何番目に表示されるかを示す。この実施例では、描画は上書きで行われるので、要素が重なった場合は表示順序が後のものが手前に見える。属性値として、一意の正数値をとる。
【００２４】
［要素データ変更部１０２］
要素データ変更部１０２は、他の機能部からの命令に応じて、要素データ保持部が保持する情報を変更する機能を持つ。図の要素の生成、すなわち新たな表の生成は、他の機能部から送られる命令によって行われる。この命令を受けると、まず新たな一つの表を要素データ保持部１０１中に作る。この時点での各属性の値は、次のようになる。
＊属性「色」、「形状」、「テキスト」はｎｉｌ。
＊属性「表示順序」は、この時点で要素データ保持部１０１に存在する表が持つ、この属性値の最大値に１を加えた値。
【００２５】
生成命令の結果として、新たに作った表のＩＤを返す。
【００２６】
属性「色」、「形状」、「テキスト」の属性値設定については、直接代入命令が用意されている。この代入命令は、引数として、表のＩＤと代入する属性と、代入する値とを取る。この命令を受け取ると、この機能部は、要素データ保持部１０１に保持された表から、引数で渡されたＩＤを持つものを探し、その表の属性値を渡された値に従って置き換える。
【００２７】
属性「色」については、属性値を変更する命令として、明度／彩度／色相の相対的変更命令が用意されている。この変更命令は、引数として、表のＩＤと現在の値に対する変化量を取る。表のＩＤは、前述の属性値設定と同様に、代入先を調べるために用いる。変化量は実数値で、色相変更のみ単位がラジアンの値である。明度の変更は、現在のＬ＊値に対して変化量が加算される。彩度および色相の変更は、現在のａ＊値とｂ＊値から彩度および色相を計算し、これに変化量を加算した後、加算後の値をａ＊値とｂ＊値に割り振る計算を行う。なお、色相の変化量に関して、ａ−ｂ座標系（ａを機軸、ｂを縦軸）で時計回りを「プラス変化」の向きとする。
【００２８】
属性「形状」については、属性値を変更する命令として、大きさ／向きの変更命令が用意されている。この変更命令は、引数として、表のＩＤと実数値を取る。表のＩＤは、前述の属性値設定と同様に、代入先を調べるために用いる。大きさの変更は、与えられた実数値を、単位をパーセントとした長さに対する倍率として扱い、この値に応じた大きさになるように現在の属性値を変更する。向きの変更は、与えられた実数値を、度を単位とした回転量として扱い、この値に応じて向きが変わるように現在の属性値を変更する。なお、向きの変更は相対的な変更であり、原稿の上に対する時計回りを「プラス変化」の向きとする。
【００２９】
なお、前記の変更命令の指定方法として、表のＩＤの代わりに要素種類を指定すると、もう一つの引数の値に基づく変更がその種類の要素すべてに対して行われる。
【００３０】
［座標データ保持部１０３］
座標データ保持部１０３は、図の要素を配置可能な、２次元平面上の座標に関する情報を保持する機能を持つ。この実施例では、配置可能な座標の数は、入力用紙に印刷された格子の格子点の数に一致する。ある座標のデータは、座標ＩＤと、その座標の２次元上での位置を示す値とからなる。座標ＩＤは、座標を一意に識別するためものである。この実施例では、｛１，１｝といった、２元の正数値の組で表わす。
【００３１】
位置を示す値は、他の座標点を測定対象として、これに対する方位と距離で示される。測定対象となる座標点は一点であり、これを座標ＩＤで示す。方位は、測定対象が自身からみてどの方向にあるかを示すものであり、印刷時に上になる方向を０度として時計回りの角度で示される。距離は、印刷の単位である、ポイントを単位とした非負の整数値で示される。位置を示す値の概念図を図２に示す。例えば、図２の左上の座標点｛１，２｝は座標点｛１，１｝を測定対象（基準）として、１３５度の方位であり、距離は１０２ポイントである。
【００３２】
［方位距離初期化ルール保持部１０４］
方位距離初期化ルール保持部１０４は、座標データを初期化するルールを保持する。この実施例では、Ｃ言語に似た文法を持つプログラムにより、逐次的手順として記述されている。この初期化ルールは、座標の配置が等間隔となり、全体として格子状の構図をなすものである。初期化のルール（ｒｕｌｅ＿１（ｄｉｓ＿ｖａｌ））では、すべての座標で、隣の格子点との距離がｄｉｓ＿ｖａｌの値に設定される。初期化ルールは以下のように記述される（Ｃ言語に類する態様で）。初期化ルールにより実行される動作を図３に示す。図の記述は容易に理解できるためとくに説明は行わない。
【００３３】
【表１】
0003617145.tif 000002
ここで、関数ｐｏｉｎｔ＿ｄａｔａ（｛ｉ，ｊ｝）はシステム定義であり、座標ＩＤが｛ｉ，ｊ｝の座標データヘアクセスするためのポインタを返す。これにより、ｐ−＞ｐｏｓｉｔｉｏｎ−＞ａｎｇｌｅのように、座標データの各属性値を参照／代入することができる。また、ＸＰＯＩＮＴＭＡＸ，ＹＰＯＩＮＴＭＡＸは、配置可能座標の第１元、第２元の最大数を示すマクロである。また、関数ｒｅｓｅｔ＿ｒｅｆｅｒｅｎｃｅ（｛ｉ，ｊ｝）は、方位／距離設定の基準点となる座標を座標ＩＤ｛ｉ，ｊ｝にし、この座標から測定対象の繋がりを木状に展開するシステム定義関数である。測定対象の変更に従って、距離と方位は、座標の配置がこの関数が適用される前と変わらないように、適切に設定される。座標ＩＤ｛ｌ，ｍ｝での「測定対象」の設定は次の通り。
＊ｌ＜ｉかつｍ＝ｊのとき、「測定対象」は座標ＩＤ｛ｌ＋１，ｍ｝
＊ｌ＞ｉかつｍ＝ｊのとき、「測定対象」は座標ＩＤ｛ｌ−１，ｍ｝
＊ｍ＞ｊのとき、「測定対象」は座標ＩＤ｛ｌ，ｍ−１｝
＊ｍ＜ｊのとき、「測定対象」は座標ＩＤ｛ｌ，ｍ＋１｝
これらのシステム定義関数とマクロは、後述する座標データ変更部１２１で定義されている。
【００３４】
［色設定ルール保持部１０５］
色設定ルール保持部１０５は、要素の配色に関する規則を保持する機能を持つ。この実施例では、要素の属性「色」に設定されるＬ＊ａ＊ｂ＊の値と、その色を表わす言葉（赤や青など）とを対応づけた組からなる表によって、ルールを保持している。
【００３５】
［形状設定ルール保持部１０６］
形状設定ルール保持部１０６は、要素の形状に関する規則を保持する機能を持つ。「形状」については、要素属性「形状」に設定されるＰｏｓｔＳｃｒｉｐｔプログラムと、その形状が示す言葉（円柱や鏃など）とを対応づけた組からなる表を持つ。各ＰｏｓｔＳｃｒｉｐｔプログラムで記述されている画像の大ささには、基準が設けられている。ここでは、１４４ポイント×１４４ポイント（すなわち２インチ四方）の正方形に収まるものに規定されている。個々の図の要素の実際の大きさは、入力用紙の格子の間隔と選択された規則に応じて、この正方形を拡大または縮小することで決まる。
【００３６】
また、各ＰｏｓｔＳｃｒｉｐｔプログラムで記述されている、矢印要素として用いられる画像については、上向きに矢が指しているように規定されている。個々の矢印要素の矢印方向は、選択された規則に応じて、この画像を回転させることで決まる。
【００３７】
［配色選択肢保持部１０７］
配色選択肢保持部１０７は、配色の選択肢を保持する機能を持つ。この実施例では、ある配色は、ＩＤと文字列と画像（ビットマップデータ）の組で表現される。ＩＤは、各配色を各機能部が一意に識別するためのものであり、配色を示す文字列ＣＣに一意な正数値を続けたものである（例えば、ＣＣ３）。文字列および画像は、ユーザがその配色を他のものと区別できる言葉および色づけパターンを示している。
【００３８】
この実施例では、配色の選択肢を表形式のデータによって保持している。図４に、このデータの例を示す。
【００３９】
［選択肢−設定ルール対応保持部１０８］
選択肢−設定ルール対応保持部１０８は、配色選択肢保持部１０７に保持された配色と、色設定ルール保持部１０５および形状設定ルール保持部１０６に保持される言葉との対応関係を保持する機能を持つ。
【００４０】
この実施例では、配色のＩＤと言葉とを対応づけた表形式のデータを用いることで、対応関係を保持している。この実施例では、ある配色に対して、要素の種類ごとに異なった色づけや形状を取ることができるように、種類ごとに言葉が対応づけられている。また、「囲み」要素については、要素ごとに異なった色づけができるように、４種類の色が対応づけられている。図５に、図４の例に基づいた、このデータの例を示す。
【００４１】
［配色選択部１０９］
配色選択部１０９は、ユーザの指示により、配色選択肢保持部１０７に保持された選択肢のうちから一つを選び、この結果を記憶する機能を持つ。また、他の機能部からの問合せに対して、指示の結果を知らせる機能を持つ。
【００４２】
この実施例では、図６に示すような形式で、配色選択肢保持部１０７に保持された配色を画面表示部１２２へ表示させることができる。複数の選択肢は、スクロール可能なウインドウの中に表示される。
【００４３】
ユーザが画面表示された配色の中から一つを選んだ場合、すなわち、図６において、配色を示す文字列と画像の組を選び（選ばれたものは太線で囲われる）、この後「ＯＫ」の領域を選択した場合、この機能部は、選ばれた配色のＩＤを調べる。
【００４４】
［マーキング操作１１０］
原稿読み取り部１１２に読み取らせる入力用紙１１１に、図を描く操作である。この実施例では、複数の、互いに色が異なるカラーマーカーペンを用いる。カラーマーカーペンの色（以下、マーカー色と呼ぶ）は、「囲み用」、「矢印用」、「文字用」というように、図の要素の種類に一意に対応するように割当てられている。なお、この実施例ではマーカー色は白以外のものを用いている。
【００４５】
［入力用紙１１１］
入力用紙１１１は、原稿読み取り部１１２に読み取らせる図を描くためのメディアの機能を持つ。入力用紙１１１上には、図の要素の位置関係を検出する際に用いられる格子が印刷されている。格子は、碁盤の目と同様に、直線が等間隔かつ直交して並んでいるものである。格子の色は、マーカー色とは異なる色である。なお、この実施例では、紙の色は白であり、格子の色は白以外のものを用いている。
【００４６】
［原稿読み取り部１１２］
原稿読み取り部１１２は、処理対象となる白黒原稿を光学的にスキャンして、光の三原色であるＲ（赤）、Ｇ（緑）、Ｂ（青）に分解し、２５６階調のデジタルカラー画像データを生成して、処理対象画像保持部１１３にこのデータを保持させる。
【００４７】
生成されるデジタルカラー画像データの１画素は、原稿上の０．０６２５ｍｍ四方（ｌｍｍ２あたり１６×１６画素；解像度約４００ｄｐｉ）に相当する。一つの画素データは、２４ビット（連続した３バイトデータ）で表わされる。２４ビットの最初８ビットがＲの２５６階調データ、真ん中の８ビットがＧの２５６階調データ、最後の８ビットがＢの２５６階調データを示す。すべてのビットが立っている時が白色、すべてのビットが立っていないときが黒色を示す（図７参照）。
【００４８】
一回のスキャンで得られるデジタルカラー画像データは、Ａ４一枚分に相当するもので、（３３６０×４７５２）個の連続した画素データで表わされる。画素データの順序は、画素データの原稿上の位置から一意に決まる。データの順序は、原稿の短辺方向に沿ったスキャンライン（ＣＣＤで実現）を長辺方向に動かすという、光学的スキャンに合わせたものである。Ａ４を縦長に置いたときの言葉を使えば、先頭から３３６０番目までの画素データは、原稿の上端の画素を左から右に順番に並べたものであり、以下３３６０個のデータをー組にして、原稿の上から下に順番に４７５２組の画素データが並ぶ。
【００４９】
［処理対象画像保持部１１３］
処理対象画像保持部１１３は、処理対象となるデジタルカラー画像データ（以下、処理対象画像と呼ぶ）を保持する。処理対象画像のデータサイズは、約４６Ｍｂｙｔｅである。
【００５０】
［格子検出部１１４］
格子検出部１１４は、処理対象画像から格子を検出し、これに基づいて座標データ変更部１２１へ座標データの初期化を命令する機能を持つ。また、他の機能部からの命令により、処理対象画像中の特定の画素データ群に含まれる格子の情報を返す機能を持つ。この機能部は、入力用紙１１１に印刷された格子の色をあらかじめ測色して、画素データ形式に変換したものを記憶している。また、この色に対して、許容範囲にある値も記憶している。この情報を利用して、格子の検出を行う。
【００５１】
一つの格子線は、原稿入力時のスキャンラインに平行か、直行する。したがって、図７に示した処理対象画像のデータ構造において、格子の色（許容値を含む）に一致する画素データ群について、そのアドレスの規則性を調べれば格子を抽出できる。
【００５２】
この機能部は、原稿の左右方向の格子点の数、原稿の上下方向の格子点の数、格子点の間隔（単位はポイント）を検出することができる。また、ある画素データ群に対して、その画素データ群に含まれる格子点の数、および、縦または横の格子線の何番目から何番目までがその画素データ群に含まれるかを検出することができる。
【００５３】
［囲み検出部１１５］
囲み検出部１１５は、処理対象画像から要素種類が「囲み」である要素を検出し、検出した要素に関わる情報を要素データ保持部１０１に新たに保持させる機能を持つ。要素の検出は処理制御部１２４からの命令によって行われる。一回の命令で、処理対象画像から、未検出の「囲み」要素をーつ検出する。後述のアルゴリズムで示すように、要素を検出した場合はｎｉｌ以外の値を返し、未検出のものがない場合はｎｉｌを返す。
【００５４】
この機能部は、「囲み用」のマーカー色をあらかじめ測色して、画素データ形式に変換したものを記憶している。また、この色に対して、許容範囲にある値も記憶している。この情報を利用して、「囲み」要素の検出を行う。
【００５５】
この機能部では、次のアルゴリズムで処理が行われる。
［ステップ１］  処理対象画像の画素データに、色が「囲み用」のマーカー色（許容範囲を含む）に一致するものを、処理対象画像の先頭の画素データ（すなわち、原稿左上隅の画素）から順番に調べる。もし一致するものがあれば、この画素データのアドレスを「輪郭画素データアドレス」として記憶する。もしなければ、ｎｉｌを返してこの機能部の処理を終了する。
［ステップ２］  要素データ変更部１０２へ、要素の生成命令を送る。返ってきた値を「新規要素ＩＤ」として記憶する。
［ステップ３］  ステップ１で見つけた画素データに対して、原稿上でこれとつながって閉曲線をなしている、「囲み用」のマーカー色の画素データすべてを処理対象画像から探しだし、これらのアドレスを「輪郭画素データアドレス」に追加して記憶させる。
［ステップ４］  原稿上で「輪郭画素データアドレス」が示す閉曲線の内側にあたるすべての画素データを処理対象画像から探しだし、これらのアドレスと「輪郭画素データアドレス」のアドレスとを「囲み領域画素データアドレス」として記憶する。
［ステップ５］  格子検出部１１４に「囲み領域画素データアドレス」を渡して、原稿上でこれらが示す領域に縦の格子線が何番目から何番目まで入っているかを調べさせ、結果を「縦線範囲」として記憶する。
［ステップ６］  格子検出部１１４に「囲み領域画素データアドレス」を渡して、原稿上でこれらが示す領域に横の格子線が何番目から何番目まで入っているかを調べさせ、結果を「横線範囲」として記憶する。
［ステップ７］  「縦線範囲」と「横線範囲」が原稿上で示す長方形の中心点に最も近い格子点を一つ見つける。この格子点が、左からＸ番目の縦線と、下からＹ番目の横線の交差点であるとする。このとき、「新規要素ＩＤ」が示す要素の属性「位置」の値を｛Ｘ，Ｙ｝に設定するように、要素データ変更部へ命令を送る。
［ステップ８］  「輪郭画素データアドレス」の画素データの色をすべて白に設定する。
［ステップ９］  結果として、「新規要素ＩＤ」と「縦線範囲」と「横線範囲」を一組にして返し、この機能部の処理を終了する。
【００５６】
［矢印検出部１１６］
矢印検出部１１６は、処理対象画像から要素種類が「矢印」である要素を検出し、検出した要素に関わる情報を要素データ保持部１０１に新たに保持させる機能を持つ。
【００５７】
要素の検出は処理制御部からの命令によって行われる。一回の命令で、処理対象画像から、未検出の「矢印」要素を一つ検出する。後述のアルゴリズムで示すように、要素を検出した場合はｎｉｌ以外の値を返し、未検出のものがない場合はｎｉｌを返す。この機能部は、「矢印用」のマーカー色をあらかじめ測色して、画素データ形式に変換したものを記憶している。また、この色に対して、許容範囲にある値も記憶している。この情報を利用して、「矢印」要素の検出を行う。
【００５８】
この機能部では、次のアルゴリズムで処理が行われる。
［ステップ１］  処理対象画像の画素データに、色が「矢印用」のマーカー色（許容範囲を含む）に一致するものを、処理対象画像の先頭の画素データ（すなわち、原稿左上隅の画素）から順番に調べる。もし一致するものがあれば、この画素データのアドレスを「輪郭画素データアドレス」として記憶する。もしなければ、ｎｉｌを返してこの機能部の処理を終了する。
［ステップ２］  要素データ変更部１０２へ、図の要素の生成命令を送る。返ってきた値を「新規要素ＩＤ」として記憶する。
［ステップ３］  ステップ１で見つけた画素データに対して、原稿上でこれとつながって線をなしている、「矢印用」のマーカー色の画素データすべてを処理対象画像から探しだし、これらのアドレスを「輪郭画素データアドレス」に追加して記憶させる。
［ステップ４］  原稿上で「輪郭画素データアドレス」が示す線に対して、これを内包する最小の長方形にあたるすべての画素データを処理対象画像から探しだし、これらを「矢印領域画素データアドレス」として記憶する。
［ステップ５］  格子検出部１１４に「矢印領域画素データアドレス」を渡して、原稿上でこれらが示す領域に縦の格子線が何番目から何番目まで入っているかを調べさせ、結果を「縦線範囲」として記憶する。
［ステップ６］  格子検出部１１４に「矢印領域画素データアドレス」を渡して、原稿上でこれらが示す領域に横の格子線が何番目から何番目まで入っているかを調べさせ、結果を「横線範囲」として記憶する。
［ステップ７］  「縦線範囲」と「横線範囲」が原稿上で示す長方形の中心点に最も近い格子点を一つ見つける。この格子点が、左からＸ番目の縦線と、下からＹ番目の横線の交差点であるとする。このとき、「新規要素ＩＤ」が示す要素の属性「位置」の値を｛Ｘ，Ｙ｝に設定するように、要素データ変更部１０２へ命令を送る。
［ステップ８］  「輪郭画素データアドレス」から矢がどの方位を向いているかを調べる。これはまず、矢じり部分、すなわち、原稿上で線が３分岐している画素データを探しだす。次に、３分岐している中で最も線が長いものをさがす。その線を構成する画素データ群のアドレスパターンから矢印の方向が分かり、失じり部分がその線のどちらの端点であるかで矢の方位が分かる。この結果を「矢の方位」として記憶する。なお、方位の基準のとりかたは、座標データの方位と同じである。
［ステップ９］  「輪郭画素データアドレス」の画素データの色をすべて白に設定する。
［ステップ１０］  結果として、「新規要素ＩＤ」と「縦線範囲」と「横線範囲」と「矢の方位」を一組にして返し、この機能部の処理を終了する。
【００５９】
［テキスト検出部１１７］
テキスト検出部１１７は、処理対象画像から要素種類が「テキスト」である要素を検出し、検出した要素に関わる情報を要素データ保持部１０１に保持させる機能を持つ。要素の検出は処理制御部１２４からの命令によって行われる。一回の命令で、処理対象画像から、未検出の「テキスト」要素を一つ検出する。後述のアルゴリズムで示すように、要素を検出した場合はｎｉｌ以外の値を返し、未検出のものがない場合はｎｉｌを返す。
【００６０】
この機能部は、「テキスト用」のマーカー色をあらかじめ測色して、画素データ形式に変換したものを記憶している。また、この色に対して、許容範囲にある値も記憶している。この情報を利用して、「テキスト」要素の検出を行う。
【００６１】
この機能部では、次のアルゴリズムで処理が行われる。
［ステップ１］  処理対象画像の画素データに、色が「テキスト用」のマーカー色（許容範囲を含む）に一致するものを、処理対象画像の先頭の画素データ（すなわち、原稿左上隅の画素）から順番に調べる。もし一致するものがあれば、この画素データのアドレスを「輪郭画素データアドレス」として記憶する。もしなければ、ｎｉｌを返してこの機能部の処理を終了する。
［ステップ２］  要素データ変更部１０２へ、図の要素の生成命令を送る。返ってきた値を「新規要素ＩＤ」として記憶する。
［ステップ３］  ステップ１で見つけた画素データに対して、原稿上でこれとつながって線をなしているすべての画素データを処理対象画像から探しだし、これらのアドレスを「輪郭画素データアドレス」に追加して記憶させる。
［ステップ４］  「輪郭画素データアドレス」の画素データ群から、原稿上で５ｍｍ以内に、「テキスト用」のマーカー色を持つ画素データがないか処理対象画像を調べる。あればステップ５へ、なければステップ６へ制御を渡す。。
［ステップ５］  ステップ４で見つけた画素データに対して、原稿上でこれとつながって線をなしているすべての画素データを処理対象画像から探しだし、これらのアドレスを「輪郭画素データアドレス」に追加して記憶させる。この後、ステップ４へ制御を戻す。
［ステップ６］  「輪郭画素データアドレス」に対して、原稿上でこれを内包する最小の長方形にあたるすべての画素データを処理対象画像から探しだし、これらを「テキスト領域画素データアドレス」として記憶する。
［ステップ７］  格子検出部１１４に「テキスト領域画素データアドレス」を渡して、原稿上でこれらが示す領域に縦の格子線が何番目から何番目まで入っているかを調べさせ、結果を「縦線範囲」として記憶する。
［ステップ８］  格子検出部１１４に「テキスト領域画素データアドレス」を渡して、原稿上でこれらが示す領域に横の格子線が何番目から何番目まで入っているかを調べさせ、結果を「横線範囲」として記憶する。
［ステップ９］  「縦線範囲」と「横線範囲」が原稿上で示す長万形の中心点に最も近い格子点をーつ見つける。この格子点が、左からＸ番目の縦線と、下からＹ番目の横線の交差点であるとする。このとき、「新規要素ＩＤ」が示す要素の属性「位置」の値を｛Ｘ，Ｙ｝に設定するように、要素データ変更部１０２へ命令を送る。
［ステップ１０］  「テキスト領域画素データアドレス」が示す部分の画像だけを処理対象画像からコピーしたような画像データを生成する。この画像データで、テキストに相当する部分の画素を黒、それ以外を白にするように画素の色を変更する。変更後の画像データが、「新規要素ＩＤ」が示す要素の属性「テキスト」の属性に設定されるように、要素データ変更部１０２へ命令を送る。
［ステップ１１］  「輪郭画素データアドレス」の画素データの色をすべて白に設定する。
［ステップ１２］  結果として、「新規要素ＩＤ」を返し、この機能部の処理を終了する。
【００６２】
［色設定部１１８］
色設定部１１８は、他の機能部からの命令により、要素の配置と種類、選択された配色に応じて、要素の色を設定する機能を持つ。設定命令の引数は、要素データ保持部中の表のＩＤと、要素種類である。
【００６３】
この実施例では、要素種類が「囲み」のものに対して、渡されたＩＤが示す表の属性「位置」に設定された座標から、どの色を割当てるかを決める。この機能部では、次のアルゴリズムで処理が行われる。このアルゴリズムでは、属性「位置」に設定された座標の第２元の値に基づいて、「囲み」要素の色を割当てている。すなわちこのアルゴリズムでは、原稿上で、同じ横の格子線に位置する囲み要素には、同じ色が割当てられている。
［ステップ１］  引数として渡された表のＩＤと要素種類を、各々、「新規要素ＩＤ」と「新規要素種類」として記憶する。
［ステップ２］  ユーザが選択した配色のＩＤを、配色選択部に問合せて調べ、その結果を「配色ＩＤ」として記憶する。
［ステップ３］  「新規要素種類」が「囲み」かどうかを調べる。「囲み」であれば、ステップ４へ進む。それ以外は、ステップ６へ進む。
［ステップ４］  「新規要素ＩＤ」が示す表の属性「位置」に設定された座標値を調べ、その第２元の値を「Ｙ座標値」として記憶する。
［ステップ５］  「Ｙ座標値」を４で割った余りをＭとして、Ｍ＝０ならばＮ＝４、そうでなければＮ＝Ｍとする。このとき、選択肢・設定ルール対応保持部中の情報で、「配色ＩＤ」に対応づけられた色設定ルールで、「囲み」要素としてＮ番目に対応づけられている色（図５において、Ｎ＝１なら「囲み１」の列の色）を「色適用ルール」として記憶する。ステップ７へ進む。
［ステップ６］  選択肢−設定ルール対応保持部１０８中の情報で、「配色ＩＤ」に対応づけられた色設定ルールで、「新規要素種類」要素のものを探し、これを「色適用ルール」として記憶する。
［ステップ７］  色設定ルール保持部１０５中の情報で「色適用ルール」と対応づけられているＬ＊ａ＊ｂ＊値を探し、この値が「新規要素ＩＤ」の要素の属性「色」に設定されるように要素データ変更部１０２へ変更命令を送る。
【００６４】
［形状設定部１１９］
形状設定部１１９は、他の機能部からの命令により、要素の種類と選択された配色に応じて、要素の形状を設定する機能を持つ。設定命令の引数は、要素データ保持部１０１中の表のＩＤと、要素種類と、左右方向の格子点数と、上下方向の格子点数である。左右方向の格子点数とは、値を設定する対象となる要素が、原稿上で、縦の格子線を何本含んでいたかを示すものである。つまり、囲み検出部１１５または矢印検出部１１６が検出結果として返す「縦線範囲」から得ることができる値である。上下方向の格子点数も、これと同様である。
【００６５】
この機能部では、次のアルゴリズムで処理が行われる。
［ステップ１］  引数として渡された表のＩＤと要素種類と左右方向の格子点数と上下万向の格子点数を、各々、「新規要素ＩＤ」、「新規要素種類」、「Ｘ数」、「Ｙ数」として記憶する。
［ステップ２］  ユーザが選択した配色のＩＤを、配色選択部１０９に問合せて調べ、その結果を「配色ＩＤ」として記憶する。
［ステップ３］  選択肢−設定ルール対応保持部１０８中の情報で、「配色ＩＤ」に対応づけられた形状設定ルールで、「新規要素種類」要素のものを探し、これを「形状適用ルール」として記憶する。
［ステップ４］  形状設定ルール保持部１０６中の情報で「形状適用ルール」と対応づけられているＰｏｓｔＳｃｒｉｐｔプログラムを探し、この値が「新規要素ＩＤ」の要素の属性「形状」に設定されるように要素データ変更部１０２へ変更命令を送る。
［ステップ５］  「Ｘ数」が１以外の場合、「Ｘ数」に１００をかけたものを拡大倍率（単位はパーセント）として、「新規要素ＩＤ」の要素が示す画像の左右方向の長さが拡大倍率だけ拡大されるように、要素データ変更部へ変更命令を送る。
［ステップ６］  「Ｙ数」が１以外の場合、「Ｙ数」に１００をかけたものを拡大倍率（単位はパーセント）として、「新規要素ＩＤ」の要素が示す画像の上下方向の長さが拡大倍率だけ拡大されるように、要素データ変更部１０２へ変更命令を送る。
【００６６】
［向き変更部１２０］
向き変更部１２０は他の機能部からの命令により、矢印要素について、矢の原稿上の方位と選択された配色に応じて、矢印の向きを変更する機能を持つ。
【００６７】
形状設定部１１９による設定では、形状設定ルールの規定から、矢印要素は出力画像で上を向いている。この機能部は、形状設定部１１９による設定後に、矢印の向きを適切なものにする。設定命令の引数は、要素データ保持部中の表のＩＤと、矢の原稿上の方位である。ここで、矢の原稿上の方位は、矢印検出部１１６が、検出結果として「矢の方位」で返すものである。これは、原稿上で上向きを０度として、時計方向に何度の角度をなすかを示している。この変更部１２０は、要素データ変更部１０２を用いて、引数で渡された表のＩＤが示す要素を矢の原稿上の方位だけ回転させる。
【００６８】
［座標データ初期化部１２１］
座標データ初期化部１２１は、格子検出部１１４から送られた命令により、座標データ保持部１０３の座標データを初期化する機能を持つ。また、配色選択部１０９から送られた命令により、方位距離初期化ルール保持部１０４に保持されたルールを用いて、座標データ保持部１０３の座標データを変更する機能を持つ。この機能部は、前述のｒｅｓｔ＿ｒｅｆｅｒｅｎｃｅ（）といった、マクロやシステム定義関数を保持しており、ルールを解釈する際にこれらを利用する。
【００６９】
初期化の命令は、引数として、原稿の左右方向の格子点の数、原稿の上下方向の格子点の数、格子点の間隔（単位はポイント）を取る。初期化が命令されると、この機能部は、まず、原稿の左右方向の格子点の数をＸＰＯＩＮＴＭＡＸ、原稿の上下方向の格子点の数をＹＰＯＩＮＴＭＡＸとして記憶する。次に、（ＸＰＯＩＮＴＭＡＸ  ×  ＹＰＯＩＮＴＭＡＸ）個の配置可能座標データを座標データ保持部に生成させる。そして、各座標データに対して、座標ＩＤを｛１，１｝から｛ＸＰＯＩＮＴＭＡＸ，ＹＰＯＩＮＴＭＡＸ｝まで一意に割当てる。最後に、座標データの方位距離の初期化をするために、ｒｅｆｓｔ＿ｒｅｆｅｒｅｎｃｅ（｛１，１｝）を実行した後、渡された格子点の間隔を引数としてｒｕｌｅ＿１（）を実行する。
【００７０】
例えば、原稿の左右方向の格子点の数を５、原稿の上下方向の格子点の数を８、格子点の間隔を１４４として初期化が命令されると、この機能部は図８のように座標配置を設定する。
【００７１】
［画面表示部１２２］
画面表示部１２２は、前述の各種指示／選択に運動して、選択肢や値の入力要請などを画面に表示させる機能を持つ。
【００７２】
［図印刷部１２３］
図印刷部１２３は、ユーザの指示により、要素データ保持部１０１に保持された要素のデータを解釈してＣＭＹＫラスタ画像に変換し、変換後の画像を紙／ＯＨＰシートに印刷する機能を持つ。図の要素を描画する際は、属性「表示順序」の値の小さいものから順次上書きで描画する。また、方位０が必ず紙／ＯＨＰシートで上を向くように描画する。ある要素が属性「テキスト」に値を持つ場合は、まず属性「色」と「形状」にしたがって描画し、そのあとで属性「テキスト」の値に基づいてテキストを上書きで描画する。
【００７３】
［処理制御部１２４］
処理制御部１２４は、処理全体の流れを統括する機能を持つ。また、システム全体の起動と終了のユーザ指示を受ける機能を持つ。
【００７４】
実施例における処理の流れを図９に示す。この処理の流れは、処理制御部１２４によって統括され、実行される。図９では、まず、配色の選択および入力が行われると（Ｓ１およびＳ２）、格子検出部１１４が格子を検出し、座標データを初期化する（Ｓ３）。つぎに、囲み検出部１１５により囲みが検出されるたびに色設定と、形状設定を行う（Ｓ４、Ｓ５、Ｓ６およびＳ７）。つぎに、矢印検出部１１６により矢印が検出されるたびに、矢印の色、形状、および向きを設定する（Ｓ８、Ｓ９、Ｓ１０、Ｓ１１、およびＳ１２）。つぎにテキスト検出部１１７によりテキストが検出されるたびにテキストの色を設定する。最後に図印刷部１２３で画像を生成して印刷を行う（Ｓ１６）。
【００７５】
この実施例において、例えば、「ビジネス標準」を選択し、図１０のようなスケッチを入力すると、図１１のような画像を生成する。
【００７６】
以上、実施例１について説明した。なお、この実施例１ではつぎに示す変更等種々の変形が可能である。
【００７７】
実施例１では、「囲み」要素だけが配置に応じて配色を変えているが、他の種類の要素も「囲み」要素と同様に配置に応じて配色を変えるように変形できる。また、どの種類は配置に応じて配色を変えるかを選択肢に用意し、選択に応じて配色を変えるように変形できる。
【００７８】
また、実施例１では、要素データの属性「位置」に設定された座標値の第２元の値だけを利用して配色を変えているが、第１元の値だけ利用する、あるいは、第１元と第２元の値両方を利用するように変形できる。
【００７９】
また、実施例１では、何番目の格子線にある要素はこの色、というように色の割当てが固定的に決まったが、要素が配置されていない格子線には色を割当てず、色の割当てを要素が配置されている格子線に対してだけ行う、といったように動的な割当てをするようにも変形できる。
【００８０】
また、実施例１では、格子線一本ごとに色の割当てを順次変えているが、何本かまとめて割当てるように変形できる。
【００８１】
また、実施例１では、各種ルールの設定は固定であったが、ルールをユーザが差し替え可能のように変形できる。これにより、ユーザの職種や好み、あるいは流行に合わせて、図の構図を用意することが可能となる。
【００８２】
［実施例２］
つぎにこの発明の実施例２について説明する。
【００８３】
この実施例は、ワードプロセッサ、デジタル複写機、作図ソフトウェアを用いて画面上で対話的に作図を行う環境で利用する。この実施例では、ユーザが対話的に図の要素を生成し、配置する。その後、ユーザが配色を指定すると、図の要素の配置から個々の要素の色を自動的に設定する。
【００８４】
図１２は実施例２の作図装置の構成を全体として示す。なお図１０において図１と対応する箇所には対応する符号を付す。同一の構成の場合にはその旨を期して説明を繰り返さない。
【００８５】
図１２において、作図装置は、配色選択部２０９、要素生成指示部２２５、要素配置指示部２２６、要素削除指示部２２７、方位距離変更指示部２２８および中心座標指示部２２９を有し、ユーザの各種指示を受け付けるようになっている。ユーザの指示は、実行部、すなわち、要素データ変更部２０２、座標データ変更部２２１、図印刷部２２３、色設定部２１８、形状設定部２１９等で実行される。処理制御部２２４は全体の制御を統括する。
【００８６】
各部の実行に際しては、記憶部すなわち要素データ保持部２０１、座標データ保持部２０３、方位距離初期化ルール保持部２０４、色設定ルール保持部２０５、形状設定ルール保持部２０６、配色選択肢保持部２０７、選択肢−設定ルール対応保持部２０８が各種データを記憶する。そして生成中の図はその都度、画面表示部２２２に表示され、最終的に生成された図が図印刷部２２３により印刷される。
【００８７】
以下、各部の構成を詳細に説明する。
【００８８】
［要素データ保持部２０１］
要素データ保持部２０１は実施例１の要素データ保持部１０１と同じであるので、説明を省略する。
【００８９】
［要素データ変更部２０２］
要素データ変更部２０２は、他の機能部からの命令に応じて、要素データ保持部２０１が保持する情報を変更する機能を持つ。また、変更する命令を受けた場合、その変更処理を行った後、画面書き換え命令を画面表示部２２２へ送る機能を持つ。
【００９０】
図の要素の生成、すなわち新たな表の生成は、要素生成指示部２２５から送られる命令によって行われる。この命令を受けると、まず新たな一つの表を要素データ保持部中に作り、次にその表の各属性値に値を代入する。属性「形状」と「テキスト」は、その命令の引数として渡されるので、その値を属性値として表に代入する。属性「位置」は、デフォルトとして、座標ＩＤ｛１，１｝を属性値として用いる。
【００９１】
属性「表示順序」は、この機能部に保持された表のその属性値としてその時点で最も大きな値を調べ、その値に１を加えた正数値を新しい要素の属性「表示順序」の属性値とする。
【００９２】
図の要素の配置は、要素配置指示部２２６から送られる命令によって行われる。まず、配置の変更対象となる要素を特定する。これは、その命令の引数として渡される、移動元の座標ＩＤを属性「位置」の値として持つもののうち、属性「表示順序」の値が最も大きいものである。要素が特定できれば、その要素の属性「位置」の値を、引き数として渡された移動先の座標ＩＤで置き換える。また、引き数としてＰｏｓｔＳｃｒｉｐｔプログラムが渡された場合は、これを属性「テキスト」の値としてその表に代入する。属性「表示順序」は、この機能部に保持された表のその属性値としてその時点で最も大きな値を調べ、その値に１を加えた正数値を新しい要素の属性「表示順序」の属性値とする。
【００９３】
図の要素の削除、すなわちある表の削除は、要素削除指示部２２７から送られる命令によって行われる。削除されるものは、その命令の引数として渡される座標ＩＤを属性「位置」の値として持つもののうち、属性「表示順序」の値が最も大きいものである。
【００９４】
［色設定ルール保持部２０５］
色設定ルール保持部２０５は、実施例１の色設定ルール保持部１０５と同じであるので、説明を省略する。
【００９５】
［形状設定ルール保持部２０６］
形状設定ルール保持部２０６は、実施例１の形状設定ルール保持部１０６と同じであるので、説明を省略する。
【００９６】
［要素生成指示部２２５］
要素生成指示部２２５は、ユーザの指示を受け、形状設定ルール保持部２０６を用いて新たな図の要素を生成し、これを要素データ変更部２０２を介して要素データ保持部２０１に記憶させる機能を持つ。また、テキスト入力を受け付ける機能を持つ。
【００９７】
ユーザの指示は、要素の属性「形状」に関して、形状設定ルール保持部２０６が保持する表のうちから、形状を示す言葉をそれぞれ選択することで行われる。このとき、テキストを入力すると、そのテキストを新たに作った図の要素が表わすもの、すなわちその要素の内側に表示されるテキストにできる。
【００９８】
選択が行われた後、要素生成指示部２２５は、要素データ変更部２０２に新たな表を作成する命令を送る。この命令の引き数として、次のものが要素データ変更部２０２に渡される。
＊ユーザが選択した形状を表わす言葉と対応づけられたＰｏｓｔＳｃｒｉｐｔプログラム。（属性「形状」の値になる）
＊入力されたテキストが、できるだけ前記のＰｏｓｔＳｃｒｉｐｔプログラムが表示上占める領域の内側にはいるように、フォント／行数／行間隔が設定された、入力されたテキストを描画するためのＰｏｓｔＳｃｒｉｐｔプログラム（属性「テキスト」の値になる）。
【００９９】
［要素配置指示部２２６］
要素配置指示部２２６は、ユーザの指示を受け、ある座標に配置されている図の要素を、別の座標に移動する機能を持つ。また、テキスト入力を受け付ける機能を持つ。
【０１００】
ユーザの指示は、まず移動元の座標を選択することで行われる。この座標に配置された図の要素のうち、最も手前に表示されているものが移動の対象となる。このときテキストを入力すると、移動対象となる図の要素の属性「テキスト」の値として、入力したテキストを設定することができる。この後、移動先となる座標が選択される。
【０１０１】
選択が行われた後、要素配置指示部２２６は、要素データ変更部２０２に属性値の変更の命令を送る。この命令の引き数として、次のものが要素データ変更部２０２に渡される。
＊はじめに選択した座標のＩＤ。（移動元を示す）
＊あとで選択した座標のＩＤ。（移動先を示す）
＊入力されたテキストが、できるだけ前記のＰｏｓｔｓｃｒｉｐｔプログラムが表示上占める領域の内側にはいるように、フォント／行数／行間隔が設定された、入力されたテキストを描画するためのＰｏｓｔＳｃｒｉｐｔプログラム（属性「テキスト」の値になる）。
【０１０２】
［要素削除指示部２２７］
要素削除指示部２２７は、ユーザの指示を受け、任意の座標に配置された図の要素を削除する機能を持つ。ユーザの指示は、座標を選択することで行われる。この座標に配置された図の要素のうち、最も手前に表示されているものが削除の対象となる。ユーザの指示後、選択された座標のＩＤを引数として、削除命令を要素データ変更部２０２へ送る。
【０１０３】
［座標データ保持部２０３］
座標データ保持部２０３は、図の要素を配置可能な、２次元平面上の座標に関する情報を保持する機能を持つ。この実施例では、配置可能な座標の数は固定であり、全部で１６個である。座標データの定義は実施例１と同じであるので、この機能部に関する説明を省略する。
【０１０４】
［方位距離初期化ルール保持部２０４］
方位距離初期化ルール保持部２０４は、実施例１の方位距離初期化ルール保持部１０４と同じであるので、説明を省略する。
【０１０５】
［方位距離変更指示部２２８］
方位距離変更指示部２２８は、ユーザが任意の座標データに対して、その方位および距離の変更を指示できる機能を持つ。ユーザの指示は、まず変更する座標を選択することで行われる。次に、画面上で、この座標をどの位置に置くかを選択する。選択が行われた後、この機能部は、座標データ変更部に属性値の変更の命令を送る。この命令の引き数として、次のものが座標データ変更部に渡される。
＊選択した座標のＩＤ。
＊選択した座標の画面上の元の位置と、新たに指定された位置との距離。
＊新たに指定された位置からみた、選択した座標の画面上の元の位置の方位。
【０１０６】
［座標データ変更部２２１］
座標データ変更部２２１は、実施例１の座標データ変更部２２１と同様に、座標データを初期化する機能を持つ。また、方位距離変更指示部２２８から送られた命令により、座標データ保持部２０３の座標データを変更する。この機能部は、座標データを変更後、画面表示部２２２へ画面書き換え命令を送る。
【０１０７】
方位距離変更の変更が指示された場合、この機能部は、その命令の引数に応じて
その座標の属性値を変更する。同時に、その座標を観測対象とするすべての座標に対して、画面上の位置が変化しないように、これらの属性値を変更する。ある座標の新たな方位と距離は、これを表すベクトルをＶｎｅｗとし、その座標の現在の距離と方位の属性値から得られるベクトルｖと、変更命令の引数である距離と方位から得られるベクトルＶｄｅｌｔａによって次のように計算できる。
【０１０８】
変更命令の引数で指定された座標について：  Ｖｎｅｗ＝Ｖ＋Ｖｄｅｌｔａ
観測対象とする座標について：Ｖｎｅｗ＝Ｖ−Ｖｄｅｌｔａ
例えば、図１３のように座標配置が初期化された後、方位距離変更命令が、座標ＩＤが｛２，３｝、距離が７２、方位が３１５を引数としてこの機能部に渡された場合、図１４のように座標配置を設定する。
【０１０９】
［中心座標指定部２２９］
中心座標指定部２２９は、配色の中心点となる座標をユーザが指定できる機能をもつ。また、指定された座標を記憶い他の機能部からの問合せに対してこの座標を返す機能を持つ。
【０１１０】
座標の初期状態として、この機能部は、座標｛１，１｝を記憶している。ユーザによる指定は画面上の座標を選択することで行われる。
【０１１１】
［配色選択肢保持部２０７］
配色選択肢保持部２０７は、実施例１の配色選択肢保持部２０７と同じであるので、説明を省略する。
【０１１２】
［選択肢−設定ルール対応保持部２０８］
選択肢−設定ルール対応保持部２０８は、配色選択肢保持部２０７に保持された配色と、色設定ルール保持部１０５に保持される言葉との対応関係を保持する機能を持つ。この実施例では、配色のＩＤと言葉とを対応づけた表形式のデータを用いることで、対応関係を保持している。この実施例では、中心座標からの距離に応じて要素の色を変えるように、ある配色に対して複数の色が対応づけられている。図１５に、このデータの例を示す。
【０１１３】
［配色選択部２０９］
配色選択部２０９は、ユーザの指示により、配色選択肢保持部に保持された選択肢のうちから一つを選び、この結果を引数として色設定部へ色設定命令を送る機能を持つ。配色選択部による選択肢の画面表示は、実施例１と同様である。
【０１１４】
［色設定部２１８］
色設定部２１８は、配色選択部２０９からの命令により、要素の配置と選択された配色に応じて、要素データ保持部２０１中の要素の色を設定する機能を持つ。この実施例では、要素の属性「位置」に設定された座標値をもとに、各要素の色を設定する。ある要素の色の決定は、その要素の位置が、中心座標指定部が記憶する座標からどれだけ離れているかに応じて決まる。
【０１１５】
この機能部では、次のアルゴリズムで処理が行われる。
［ステップ１］  引数として渡された配色のＩＤを、「配色ＩＤ」として記憶する。
［ステップ２］  要素データ保持部２０１中のすべての表に対して、属性「色」の値をｎｉｌにする。
［ステップ３］  要素データ保持部２０１中の表に、属性「色」の値がｎｉｌのものがあるかを調べる。もしなければ、この機能部の処理を終了する。
［ステップ４］  ステップ３で見つけた表のＩＤを「処理対象ＩＤ」として記憶する。
［ステップ５］  「処理対象ＩＤ」が示す表の属性「位置」に設定された座標値を調べ、その値を「処理対象座標」として記憶する。
［ステップ６］  中心座標指定部２２９に中心座標を問合せ、その結果を「中心座標」として記憶する。
［ステップ７］  「処理対象座標」の第１元、第２元の値を各々ｘ，ｙ、「中心座標」の第１元、第２元の値を各々Ｘ，Ｙとした時、次の値Ｎを計算する。
Ｎ＝｜Ｘ−ｘ｜＋｜Ｙ−ｙ｜  （ここで、｜ａ｜はａの絶対値を示す。）
［ステップ８］  ステップ７のＮを４で割った余りをＭとする。このとき、選択肢−設定ルール対応保持部２０８中の情報で、「配色ＩＤ」の行で、Ｍの値の列を「色適用ルール」として記憶する。
［ステップ９］  色設定ルール保持部１０５中の情報で「色適用ルール」と対応づけられているＬ＊ａ＊ｂ＊値を探し、この値が「新規要素ＩＤ」の要素の属性「色」に設定されるように要素データ変更部２０２へ変更命令を送る。ステップ３へ進む。
【０１１６】
［形状設定部２１９］
形状設定部２１９は実施例１の形状設定部１１９と同じであるため説明を繰り返さない。
【０１１７】
［画面表示部２２２］
画面表示部２２２は、画面書き換え命令により、要素データ保持部２０１に保持された要素のデータを解釈してＲＧＢラスタ画像に変換し、変換後の画像をディスプレイに表示する機能を持つ。また、ポインティングデバイスに運動するカーソルを画面上に表示し、前述の各種指示／選択の際に座標点や図の要素を直接選択する操作を可能にする機能を持つ。
【０１１８】
図の要素を描画する際は、属性「表示順序」の値の小さいものから順次上書きで描画する。また、方位０が必ず画面で上を向くように描画する。ある要素が属性「テキスト」に値を持つ場合は、まず属性「色」と「形状」にしたがって描画し、そのあとで属性「テキスト」の値に基づいてテキストを上書きで描画する。
【０１１９】
［図印刷部２２３］
図印刷部２２３は、ユーザの指示により、要素データ保持部２０１に保持された要素のデータを解釈してＣＭＹＫラスタ画像に変換し、変換後の画像を紙／ＯＨＰシートに印刷する機能を持つ。
【０１２０】
図の要素を描画する際は、属性「表示順序」の値の小さいものから順次上書きで描画する。また、方位０が必ず紙／ＯＨＰシートで上を向くように描画する。ある要素が属性「テキスト」に値を持つ場合は、まず属性「色」と「形状」にしたがって描画し、そのあとで属性「テキスト」の値に基づいてテキストを上書きで描画する。
【０１２１】
［処理制御部２２４］
処理制御部２２４は、処理全体の流れを統括する機能を持つ。また、システム全体の起動と終了のユーザ指示を受ける機能を持つ。
【０１２２】
ユーザ指示が行える各機能部へ、指示入力受け付けの時間を順次割り当てる。時間が割り当てられた機能部でユーザからの入力があった場合、その要求による処理が終了するまで他の機能部への割り当てを中断する。
【０１２３】
実施例における処理の流れを図１６に示す。この処理の流れは、処理制御部２２４によって統括され、実行される。図１６では、ステップＳ１０１で処理の終了を監視し、また、ステップＳ１０２、Ｓ１０２、Ｓ１０４、Ｓ１０６、Ｓ１０８、Ｓ１１０、Ｓ１１２およびＳ１１５でユーザの指示が何かを判別し、これに基づいて、処理の終了や、各機能部の動作を実行するようになっている（Ｓ１０３、Ｓ１０５、Ｓ１０７、Ｓ１０９、Ｓ１１１、Ｓ１１３およびＳ１１４）。各機能部についてはすでに説明した。
【０１２４】
この実施例では、例えば、図１７に示されるように図の要素が配置されている場合に、中心座標を｛２，４｝として、配色としてメリハリを選択すると、図１８のような配色を得ることができる。
【０１２５】
［実施例３］
つぎに、この発明の実施例３について説明する。この実施例は、白黒原稿に所定の配色で色づけを行うものである。この実施例では、白黒原稿中の色をつけたい閉領域の内側に、カラーマーカーペンでマーキングした後、その原稿を読み込ませ、それに基づいて、マークされている閉領域にその位置に応じた配色が施されたカラー原稿を出力する。
【０１２６】
図１９はこの実施例の作図装置を全体として示す。この作図装置は、専用のワードプロセッサ、デジタル複写機や、汎用のパーソナルコンピュータ、ワークステーション、あるいはホストのソフトウェアとして実現できる。なお図１９において図１または図１２と対応する箇所には対応する符号を付す。同一の構成の場合にはその旨を期して説明を繰り返さない。
【０１２７】
この図において、作図装置は、グラデーション選択部３３６を有し、ユーザの指示を受け付けるようになっている。原稿読み取り部１１２は白黒原稿にマーキング操作を行って作成した原稿を読みとるものである。ユーザの指示は、実行部、すなわち、図印刷部３２３、マーク検出部３３０、閉領域検出部３３１、閉領域上端検出部３３３、閉領域左端検出部３３４、閉領域色決定部３３７、色変更部３３８等で実行される。処理制御部１２４は全体の制御を統括する。
【０１２８】
各部の実行に際しては、記憶部すなわち処理対象画像保持部３１３、グラデーションルール保持部３３４、グラデーション方向選択肢保持部３３５が各種データを記憶する。生成された図が図印刷部１２３により印刷される。
【０１２９】
以下、各部の構成を詳細に説明する。
【０１３０】
［マーキング操作３１０］
マーキング操作３１０は、原稿読み取り部３１２に読み取らせる白黒原稿上に、マークをつけるための機能をもつ。一色のカラーマーカーペンで実現される。このペンは、色をつけたい閉領域の内側の任意の場所に、マークをするように用いられる。
【０１３１】
［原稿読み取り部３１２］
原稿読み取り部３１２は、実施例１の原稿読み取り部１１２と同じであるので、説明を省略する。
【０１３２】
［処理対象画像保持部３１３］
処理対象画像保持部３１３は、実施例１の処理対象画像保持部３１３と同じであるので、説明を省略する。
【０１３３】
［マーク検出部３３０］
マーク検出部３３０は、処理対象画像から、一つのマークに相当する画素データの組を一つ検出し、これを記憶する機能を持つ。この機能部は、マーキング操作３１０に用いる部のカラーマーカーの色を測色し、画素データの形式でその色を表現したデータを保持している。また、その色に対する許容値も同時に保持している。
【０１３４】
マークに相当する画素データの組とは、原稿上で連続し、かつ、この機能部が保持するマーカー色（許容値を含む）を持つ画素データ群である。検出された画素データの組は、画素データのアドレスを要素とする集合（以下、マーク画素集合と呼ぶ）として記憶される。これを記憶する機構は、集合の要素が重複しない（すなわち、要素であるアドレスはすべて異なる）ように、要素の追加を制御する。この機能部では、次のアルゴリズムで処理が行われる。なお、このアルゴリズムは再帰的である。
［ステップ１］  記憶されたマーク画素集合に要素があ机ま、これをすべて削除する。
［ステップ２］  処理対象画像中の画素データから、この機能部に保持されたマーカー色に一致するものを一つ選び、画素データのアドレスをカレントアドレスとして記憶する。
［ステップ３］  カレントアドレスが指す画素データの示すマーカー色とその許容色を、対象色として記憶する。
［ステップ４］  カレントアドレスをマーク画素集合に加える。
［ステップ５］  カレントアドレスが指す画素データに対して、原稿で上下左右に位置する画素データを探す。これらの中に、その値が対象色に一致し、かつ、その画素データのアドレスがマーク画素集合にないものがあれば、これらの画素データのアドレスを記憶する。
［ステップ６］  ステップ５で記憶された画素データのアドレスに対して、これらを順次カレントアドレスとして、ステップ４から６を実行する。
【０１３５】
［閉領域検出部３３１］
閉領域検出部３３１は、マーク検出部３１０で検出されたマークに対して、原稿上でそのマークを内包する最も内側の閉領域に相当する画素群を検出し、これのアドレスを記憶する機能を持つ。
【０１３６】
閉領域の輪郭に相当する画素は、白黒原稿を入力しているので、黒色である。したがって、閉領域の探索は、原稿上で閉じた曲線を成す黒色の画素群を、マーク検出部が保持するアドレスを探索開始点として、原稿上で外側に向かって探索を行えばよい。この探索で見つかった画素群に対して、原稿上内側にある画素群（見つかった画素群は含まない）が求める閉領域である。
【０１３７】
この機能部で記憶されるデータは、画素データのアドレスの範囲を示すものである。具体的には、アドレスの開始点と終点を示す組を要素とする集合になる。ある組は、同一のラインスキャンライン（原稿短辺方向に並ぶ３３６０画素）上に並ぶものになっている。
【０１３８】
［閉領域上端検出部３３２］
閉領域上端検出部３３２は、検出された閉領域の上端が、スキャンラインで数えて、上から何番目にあるかを調べて記憶する機能を持つ。この機能部は、閉領域検出部３３１が検出したデータに対して、そのアドレスから原稿上最も上に存在する画素を探しだす。そして、その画素のアドレスから、その画素が何番目のスキヤンラインにあるかを調べる。この「何番目」という数字を、この機能部は記憶する。
【０１３９】
［閉領域左端検出部３３３］
閉領域左端検出部３３３は、検出された閉領域の左端が、１スキヤンラインを示す画素群の組で数えて、左から何番目にあるかを調べて記憶する機能を持つ。この機能部は、閉領域検出部３３１が検出したデータに対して、そのアドレスから原稿上最も左に存在する画素を探しだす。そして、その画素のアドレスから、その画素が１スキヤンラインを示す画素群の組で数えて、左から何番目にあるかを調べる。この「何番目」という数字を、この機能部は記憶する。
【０１４０】
［グラデーションルール保持部３３４］
グラデーションルール保持部３３４は、要素の配色として、連続的な色変化をつけるための複数のルールを保持する機能を持つ。この機能部は、各ルールごとに、ルールのＩＤと色変化の始点の色と色変化の終点の色とを記憶している。これらの色は、画素データと同じ形式で表現されている。なお、この機能部が保持するルールでは、ルールに従って色をつけた時に、マーカー色と同じ色にならないようになっている。これは、閉領域検出部３３１による検出が正しく行われるようにするためである。
【０１４１】
［グラデーション方向選択肢保持部３３５］
グラデーション方向選択肢保持部３３５は、色変化をつける方向の選択肢を保持する機能を持つ。この実施例では、選択肢は「左から右」、「上から下」の２つである。
【０１４２】
［グラデーション選択部３３６］
グラデーションルール保持部３３４中のルールと、グラデーション方向選択肢保持部３３５中の選択肢をそれぞれユーザが選択し、その選択結果を記憶する機能を持つ。また、他の機能部の問合せに対して、記憶した選択結果を返す機能を持つ。問合せに対して、ルールのＩＤと方向の値とを組にした結果を返す。
【０１４３】
［閉領域色決定部３３７］
閉領域色決定部３３７は、グラデーション選択部３３６による選択結果に基づいて、閉領域検出部３３１が検出した閉領域の色を決め、色変更部３３８を用いてその閉領域の色を変更する機能を持つ。この機能部の処理は、次のアルゴリズムに従う。
［ステップ１］  グラデーション選択部３３６に、選択されたグラデーションルールとグラデーション方向とを問合せ、帰ってきた結果をそれぞれ「ルールＩＤ」、「指定方向」として記憶する。
［ステップ２］  指定方向が「左から右」であれば閉領域左端検出部３３３に、「上から下」であれば閉領域上端検出部３３２に、検出命令を送る。返ってきた結果を「線番号」として記憶する。
［ステップ３］  指定方向が「左から右」であれば「線数」として３３６０を記憶し、「上から下」であれば「線数」として４７５２を記憶する。
［ステップ４］  「線番号」を「線数」で割った値（実数値）を「変化率」として記憶する。
［ステップ５］  グラデーションルール保持３３４で「ルールＩＤ」と対応づけられている「始点の色」を探す。探しだされた２４ピツトデータのＲＧＢごと８ビットデータから、各々を１０進数にした値を計算し、これらを「Ｒ初期値」、「Ｇ初期値」、「Ｂ初期値」として記憶する。
［ステップ６］  グラデーションルール保持部３３４で「ルールＩＤ」と対応づけられている「終点の色」を探す。探しだされた２４ビットデータのＲＧＢごと８ビットデータから、各々を１０進数にした値を計算し、これらを「Ｒ終端値」、「Ｇ終端値」、「Ｂ終端値」として記憶する。
［ステップ７］  ＲＧＢ各々の終端値から初期値を引いた値に対して、変化率をかけた値を、各々「Ｒ変化値」、「Ｇ変化値」、「Ｂ変化値」として記憶する。
［ステップ８］  ＲＧＢ各々の初期値に変化値を加算する。加算後の各々の値に対して、小数点以下を四捨五入にして整数化する。整数化した各々の値を２進数８ビットにした値を計算し、これらからＲＧＢ２４ビットデータをつくる。
［ステップ９］  ステップ８で最後に得られた２４ビットデータを引数として、色変更部３３８に色の変更を命令する。色変更部による色の変更が終了した後、この機能部の処理を終える。
【０１４４】
［色変更部３３８］
色変更部３３８は、閉領域色決定部３３７の命令により、閉領域検出部３３１が検出して記憶する閉鎖域に対して、引数として渡された色に変更する機能を持つ。この機能部は、閉領域検出部３３１が記憶するアドレスの画素データに対して、その画素の色が白またはマーカー色であれば、引数として渡された色に一致するように２４ビット値を変更する。これにより、領域内の色が塗られていない部分、および、マークされていた部分に色が付くことになる。また、文字など、入力原稿で黒の部分は、色が変わらないことになる。
【０１４５】
［図印刷部３２３］
図印刷部３２３は、実施例１の図印刷部１２３と同じ機能を有するのに加え、処理制御部からの命令により、複数枚のコピーを出力する機能を持つ。
【０１４６】
［処理制御部３２４］
全体の処理を統括し、実行する機能を持つ。また、この機能部は、コピーの開始やコピー枚数をユーザが指示できる機能を持つ。
【０１４７】
実施例３における処理の流れを図２０に示す。図２０において、グラデーションルールと方向が選択され、さらにコピーが指示されると（ステップＳ２０１〜Ｓ２０３）、原稿が読みとられ、マークの有無が検出される（ステップＳ２０４〜Ｓ２０６）。マークが検出されると閉領３３１域検出部がマークを内包する閉領域を検出し、閉領域色決定部３３７がその色を決定していく（ステップＳ２０８およびＳ２０９）。マークが検出されないとき、または閉領域の色がすべて決定されたときに、指定枚数だけコピーを生成する（ステップＳ２０７）。
【０１４８】
以上でこの発明の実施例の説明を終える。
【０１４９】
【発明の効果】
以上説明したように、この発明によれば、配色規則を指定するだけで配色バランスのとれた図を簡易に生成できる。とくに配色規則に応じた配色パターンを表示させ、またこれに作図目標等をあわせて表示すれば、ユーザは目的に合致し、しかも配色上問題のない図を特別のスキルなしに作成できる。また白黒画像、単一色画像に色マークを付して配色を行いたい要素を指定し、あわせて配色規則を指定すれば、白黒画像から配色バランスのとれたカラーの図を簡易に生成できる。
【図面の簡単な説明】
【図１】この発明の実施例１を全体として示すブロック図である。
【図２】上述実施例１における座標のデータの記述を説明する図である。
【図３】上述実施例の方位距離設定ルール保持部１０４に記憶されたルール１の動作を説明するフローチャートである。
【図４】上述実施例１の配色選択肢保持部１０７のデータを説明する図である。
【図５】上述実施例１の選択肢−設定ルール対応保持部１０８のデータを説明する図である。
【図６】上述実施例１の配色選択部１０９が提供する配色の選択画面を示す図である。
【図７】上述実施例１の原稿読み取り部１１２の動作を説明する図である。
【図８】上述実施例１の座標データ初期化部１２１により初期化された格子の座標を示す図である。
【図９】上述実施例１の動作を説明するフローチャートである。
【図１０】上述実施例１で用いる入力用しに描いたラフな原画を示す図である。
【図１１】図１０の入力用紙を用い、「ビジネス標準」の配色で生成した図面のデザインを示す図である。
【図１２】この発明の実施例２を全体として示すブロック図である。
【図１３】上述実施例２の座標データ変更部２２１による座標の状態を説明する図である。
【図１４】上述実施例２の座標データ変更部２２１による座標の他の状態を説明する図である。
【図１５】上述実施例２の選択肢−設定ルール対応保持部２０８のデータを説明する図である。
【図１６】上述実施例２の動作を説明するフローチャートである。
【図１７】上述実施例２の配色前のデザインを示す図である。
【図１８】図１７のデザインに配色を施した状態を示す図である。
【図１９】この発明の実施例３を全体として示すブロック図である。
【図２０】上述実施例３の動作を説明するフローチャートである。
【符号の説明】
１０１、２０１、３０１  要素データ保持部
１０２、２０２  要素データ変更部
１０３、２０３  座標データ保持部
１０７、２０７  配色選択肢保持部
１０８、２０８  選択肢−設定ルール対応保持部
１０９、２０９  配色選択部
１１１  入力用紙
１１２  原稿読み取り部
１１８  色設定部
３３１  閉領域検出部
３３４  グラデーションルール保持部
３３５  グラデーション方向選択肢保持部
３３６  グラデーション選択部
３３７  閉領域色決定部
【図１】
0003617145.tif 000003
【図２】
0003617145.tif 000004
【図３】
0003617145.tif 000005
【図４】
0003617145.tif 000006
【図５】
0003617145.tif 000007
【図６】
0003617145.tif 000008
【図７】
0003617145.tif 000009
【図８】
0003617145.tif 000010
【図９】
0003617145.tif 000011
【図１０】
0003617145.tif 000012
【図１１】
0003617145.tif 000013
【図１２】
0003617145.tif 000014
【図１３】
0003617145.tif 000015
【図１４】
0003617145.tif 000016
【図１５】
0003617145.tif 000017
【図１６】
0003617145.tif 000018
【図１７】
0003617145.tif 000019
【図１８】
0003617145.tif 000020
【図１９】
0003617145.tif 000021
【図２０】
0003617145.tif 000022