(57)【要約】【課題】画像編集に不慣れな利用者が簡単に取り扱うことができる画像編集装置を提供する。【解決手段】表示手段に表示される画像を編集する際、画像中の物体の輪郭上の点を指定し、指定された第１の点と前記第１の点に続いて指定された第２の点との間の輪郭線を前記画像のエッジ情報に基づき抽出する。前記第１の点と前記第２の点との距離が所定値以上であるか否かを判別し、前記第１の点と前記第２の点との距離が所定の値以上であると判別された場合には、抽出した輪郭線を保持し、前記第１の点と前記第２の点との距離が所定の値以上でないと判別された場合には、前記第１の点と前記第２の点との間を結ぶ直線を前記輪郭線として保持する。【選択図】図１７
2007207264.tif 000002
【特許請求の範囲】
【請求項１】
表示手段に表示される画像を編集する画像編集装置において、
前記画像中の物体の輪郭上の点を指定する指定手段と、
前記指定手段により指定された第１の点と前記第１の点に続いて指定された第２の点との間の輪郭線を前記画像のエッジ情報に基づき抽出する抽出手段と、
前記第１の点と前記第２の点との距離が所定値以上であるか否かを判別する判別手段と、
前記判別手段により前記第１の点と前記第２の点との距離が所定の値以上であると判別された場合には、前記抽出手段により抽出した輪郭線を保持し、前記第１の点と前記第２の点との距離が所定の値以上でないと判別された場合には、前記第１の点と前記第２の点との間を結ぶ直線を前記輪郭線として保持する保持手段とを有する画像編集装置。
【請求項２】
表示手段に表示される画像を編集する画像編集装置の制御方法であって、
前記画像中の物体の輪郭上の点を指定する工程と、
前記指定された第１の点と前記第１の点に続いて指定された第２の点との間の輪郭線を前記画像のエッジ情報に基づき抽出する工程と、
前記第１の点と前記第２の点との距離が所定値以上であるか否かを判別する工程と、
前記判別により前記第１の点と前記第２の点との距離が所定の値以上であると判別された場合には、前記抽出により得られた輪郭線を保持し、前記第１の点と前記第２の点との距離が所定の値以上でないと判別された場合には、前記第１の点と前記第２の点との間を結ぶ直線を前記輪郭線として保持する工程とからなる制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像編集装置及びその制御方法に関する。
【背景技術】
【０００２】
従来の文書編集システムでは、テキストデータのみならずテキストデータ中に画像データを混在させた文書を編集することができる。現在、このような文書編集システムはパーソナルコンピュータ上で画像データを混在させることが可能な文書編集用アプリケーションソフトウェアを稼動させることにより実現されている。
【０００３】
図２７は従来の文書編集システムのハードウェアの構成を示すブロック図である。図において、３０４はＣＲＴやビデオボード等から構成される表示装置である。３０６はマウス、キーボード等から構成される入力装置、３０７はＤＲＡＭ等から構成される主記憶装置である。３０８はハードディスクドライブやハードディスクなどから構成される不揮発性の二次記憶装置である。
【０００４】
３０２は文書編集システムにおいてハードウェア３０１およびアプリケーションソフトウェア群３０３を有効に利用するための総合的管理を行うオペレーティングシステムである。このオペレーティングシステム３０２では、Ｍｉｃｒｏｓｏｆｔ社のオペレーティングシステムであるウインドウズ９５に代表されるように複数のアプリケーションソフトウェアを同時に実行することが可能であり、表示装置３０４には各アプリケーションのユーザインターフェースとしてのウィンドウを複数同時に表示することができる。
【０００５】
オペレーティングシステム３０２の内、３１４はアプリケーションソフトウェア群３０３に含まれるアプリケーションソフトウェアからの要求に応じて表示装置３０４に要求される文字、図形、画像等を表示する描画管理システムである。３１５は入力装置３０６を介して入力されるユーザーズイベントを文書編集システムの適切なソフトウェアモジュールに配送するための入力デバイス管理システムである。
【０００６】
３１６は主記憶装置３０７へのデータの読み書きを管理するメモリ管理システムである。３１７は二次記憶装置３０８のファイルを管理するファイルシステムである。３１８はアプリケーション間通信手段であり、アプリケーションソフトウェア群３０３内におけるアプリケーション間のデータ送受信や他のアプリケーションの起動などを可能にする。このようなアプリケーション間通信技術の代表的なものとしては、Ｍｉｃｒｏｓｏｆｔ社のＯＬＥ２テクノロジーが挙げられる（ＯＬＥ２テクノロジーのより詳しい内容については、非特許文献１を参照）。
【０００７】
アプリケーションソフトウェア群３０３のうち、３１９は文書編集アプリケーションである。文書編集アプリケーション３１９は、利用者によって編集された文書データの保存や読み込みを行うデータ保存読み込み手段３２２、画像編集アプリケーション３２１から画像編集アプリケーション３２１上で編集された画像の表示データをアプリケーション間通信により受信し、受信した表示データを描画管理システム３１４に依頼して表示装置３０４に表示する画像編集結果表示手段３２３、利用者からのコマンド入力に従って、アプリケーション間通信により画像編集アプリケーション３２１を起動する画像編集アプリケーション起動手段３２４、およびテキストデータの編集など図２７に示さない他の手段から構成される。
【０００８】
３２０は画像ファイリングアプリケーションであり、二次記憶装置３０８にファイルとして記憶されている多数のファイルの検索を容易にするアプリケーションである。画像ファイリングアプリケーション３２０は画像データファイル群３３０の中から利用者が指定する画像データファイルの画像データを利用者の指定に応じてアプリケーション間通信により文書編集アプリケーション３１９や画像編集アプリケーション３２１に送信することができる。
【０００９】
画像編集アプリケーション３２１は、オリジナル画像に対して、ぼかし、色調整などの画像処理を行ったり、オリジナル画像に対して図形を描き入れるなどの画像編集を行うアプリケーションである。画像編集アプリケーション３２１は、画像ファイリングアプリケーション３２０から受信した画像と現在の画像とを入れ替える機能を提供する画像データ貼り付け手段３２５、二次記憶装置３０８に対して画像データの読み書きを行うデータ保存読み込み手段３２６、画像、メニュー、アプリケーションのフレームワークなどの表示装置３０４に対する表示および入力装置３０６からのユーザーズイベントを管理するユーザインターフェース管理手段３２７、ぼかし、輝度調整、色調整などの各種画像処理フィルタや線の付与、文字の付与などのドローイングツールを含む画像編集手段を複数包含する画像編集手段群３２８、利用者の入力コマンドに応じて画像編集手段群３２８の中から画像編集手段を実行する画像編集実行手段３３１、および図２７に示さない他の手段から構成される。
【００１０】
ここで、ＯＬＥ２テクノロジーでは、アプリケーション間通信によりデータを供給する側である画像編集アプリケーション３２１をＯＬＥサーバといい、アプリケーション間通信によりデータを受信する側である文書編集アプリケーション３１９をＯＬＥコンテナという。
【００１１】
３２９は文書編集アプリケーション３１９によって編集された文書データファイルである。図２８は文書データのデータ構造を示す説明図である。図において、４０１はヘッダーデータ格納部であり、テキストのフォント、色、印刷する際の用紙の大きさ、縦書きか横書きかなどの情報を格納する。４０２はテキストデータ格納部であり、利用者によって入力されたテキストデータを格納する。
【００１２】
４０３は画像編集アプリケーション用データ格納部（ＯＬＥ２テクノロジーにおける「オブジェクト」を格納する）であり、画像データをアプリケーション間通信により供給する画像編集アプリケーション３２１を一意に認識するための画像編集アプリケーション識別情報格納部４０４、文書データ中での画像データの位置と大きさに関する情報が格納されている画像位置データ格納部４０５、表示装置３０４上に表示すべき画像データを格納する表示データ格納部４０６（ＯＬＥ２テクノロジーではメタファイル形式の画像データ）、及び画像編集アプリケーション識別情報格納部４０４で指定される画像編集アプリケーション３２１が使用するための画像データ（文書編集アプリケーション３１９がサポートしていない画像データのフォーマットであっても構わない。ＯＬＥ２テクノロジーにおいてはネイティブデータとも呼ばれ、画像データに限らない）を格納する画像データ格納部４０７を有する。
【００１３】
４０８は本発明を説明する上で重要でないその他のデータを含むその他のデータ格納部であるが、文書中に複数の画像が埋め込まれている場合にはその数に応じた画像編集アプリケーション用データ格納部を包含している。
【００１４】
尚、Ｍｉｃｒｏｓｏｆｔ社のＷＯＲＤ  ｖｅｒ．６．０に代表される昨今の文書編集アプリケーションでは文書データファイルのサンプルをアプリケーションソフトウェアに添付することが多い。利用者はこのようなサンプル文書中のテキストを修正したり、画像を入れ替えたりすることによって、全体のデザインを一から創造することなしに簡単に高品位な文書を作成することができる。
【００１５】
図２９は表示装置３０４に表示される従来の文書編集アプリケーション３１９のユーザインターフェース画面を示す説明図である。図において、５０１は文書編集アプリケーション３１９のフレームとなるウィンドウである。５０２は文書１ドキュメントであり、利用者によりキーボード入力されたテキストと、ＯＬＥサーバとして起動している画像編集アプリケーション３２１からアプリケーション間通信により受信した画像が画像表示領域５０３に表示されている。
【００１６】
５０４は編集された文書データをファイルとして保存するためのコマンドを入力するＳａｖｅボタンである。５０５は文書ファイルをウィンドウ５０１上に開き編集可能状態にするためのＯｐｅｎボタンである。５０６は文書中に他のＯＬＥサーバアプリケーションが提供するデータを表示するためのコマンドを入力するＩｎｓｅｒｔＯｂｊｅｃｔボタンである。
【００１７】
図３０は表示装置３０４に表示される画像ファイリングアプリケーション３２０のユーザインターフェース画面を示す説明図である。二次記憶装置３０８に記憶されている画像データファイル群３３０の中からキーワード検索などにより検索された画像ファイルの一覧が表示装置３０４に表示される。６０１は画像ファイリングアプリケーションのフレームとなるウィンドウである。６０２は検索された画像ファイルの縮小画像表示エリアである。
【００１８】
図３１は文書編集システムにおいて他のアプリケーションにＯＬＥサーバとして画像データを供給する画像編集アプリケーション３２１のユーザインターフェース画面を示す説明図である。図において、７０１は画像編集アプリケーションのフレームウィンドウである。
【００１９】
７０２は現在編集中の画像データを表示するウィンドウである。７０３〜７１３はそれぞれ画像編集手段群３２８を構成する各画像編集手段の実行命令を入力するボタンである。７０３はぼかし処理の実行要求ボタンであり、このボタンを利用者がマウスによりクリックすると、画像編集アプリケーション３２１はウィンドウ７０２に表示されている画像データに対してぼかし処理（画像の空間的な解像度を落とす処理）を施す。
【００２０】
７０４はシャープ処理の実行要求ボタンであり、このボタンを利用者がマウスによりクリックすると、画像編集アプリケーション３２１はウィンドウ７０２に表示されている画像データに対してシャープ処理（画像のエッジをはっきりとさせる処理）を施す。７０５は輝度調整処理の実行要求ボタンであり、このボタンを利用者がマウスによりクリックすると、画像編集アプリケーション３２１はウィンドウ７０２に表示されている画像データに対して輝度調整処理（画像の輝度を適正に補正する処理）を施す。
【００２１】
７０６は色調整処理の実行要求ボタンであり、このボタンを利用者がマウスによりクリックすると、画像編集アプリケーション３２１はウィンドウ７０２に表示されている画像データに対して色調整処理（画像の色を適正に補正する処理）を施す。
【００２２】
７０７は背景消し処理の実行要求ボタンであり、このボタンを利用者がマウスによりクリックすると、画像編集アプリケーション３２１はウィンドウ７０２に表示されている画像データに対して背景消し処理（人物像などの背景を除去する処理）を施す。７０９はロゴ処理の実行要求ボタンであり、このボタンを利用者がマウスによりクリックすると、画像編集アプリケーション３２１はウィンドウ７０２に表示されている画像データに対してロゴ処理（被写体に文字を含む画像から文字部分を切り出して、文字に対して装飾を加えることによりロゴを作成する処理）を施す。
【００２３】
７１０はノイズ付与処理の実行要求ボタンであり、このボタンを利用者がマウスによりクリックすると、画像編集アプリケーション３２１はウィンドウ７０２に表示されている画像データに対してノイズ付与処理（画像にノイズを付与して絵画的にする処理）を施す。
【００２４】
７１１は変形処理の実行要求ボタンであり、このボタンを利用者がマウスによりクリックすると、画像編集アプリケーション３２１はウィンドウ７０２に表示されている画像データに対して変形処理（画像を変形させる処理）を施す。７１２は反転処理の実行要求ボタンであり、このボタンを利用者がマウスによりクリックすると、画像編集アプリケーション３２１はウィンドウ７０２に表示されている画像データに対して反転処理（画像の明暗を反転する処理）を施す。
【００２５】
上記構成を有する従来の文書編集システムにおいて、利用者が文書中の画像５０３をマウスによりダブルクリックすると、文書編集アプリケーション３１９の画像編集アプリケーション起動手段３２４は、画像編集アプリケーション識別情報格納部４０４の内部を参照し、ＯＬＥサーバアプリケーションとして画像データを供給する画像編集アプリケーション３２１を一意に認識して画像編集アプリケーション３２１を起動し、画像表示領域５０３を画像編集アプリケーション３２１のユーザインターフェース領域とする。
【００２６】
また、画像編集アプリケーション３２１はＯＬＥコンテナアプリケーションによりＯＬＥサーバとして起動すると、ユーザインターフェース管理手段３２７により画像表示領域５０３を自身のユーザインターフェース領域としてユーザからのマウス入力を受け付ける状態にするとともに、画像編集に必要な予め定められたメニューをメニュー表示領域５０７に追加する。
【００２７】
ＯＬＥ２テクノロジーにおいては、このように画像編集アプリケーション３２１がＯＬＥコンテナアプリケーション内で起動している状態をインプレイスアクティブ状態と呼んでいる。図３２は画像編集アプリケーション３２１が文書編集アプリケーション３１９内でインプレイスアクティブ状態で起動している様子を示す説明図である。
【００２８】
インプレイスアクティブ状態では、画像表示領域５０３の周辺に斜線が表示されると共に、予め定められた画像編集アプリケーション３２１に対するコマンド入力用のメニューがメニュー表示領域５０７に表示され、コマンド入力待ち状態となる。
【００２９】
一方、画像編集アプリケーション３２１がインプレイスアクティブ状態であるとき、画像ファイリングアプリケーション３２０の任意の画像の縮小画像表示エリアでマウスボタンを押すことによって任意の画像を選択し、そのままマウスをドラッグして文書編集アプリケーション３１９の画像表示領域５０３でドロップすると、画像ファイリングアプリケーション３２０が選択されたファイルの画像データをインプレイスアクティブ状態で起動中の画像編集アプリケーション３２１に送信し、この画像データを受信した画像編集アプリケーション３２１の画像データ貼り付け手段３２５は、今まで画像表示領域５０３に表示していた画像の上に受信した画像を貼り付ける。
【００３０】
図３３は図３０に示すＦｉｌｅ２．ｂｍｐの画像が貼り付けられた状態を示す説明図である。この状態で、利用者がメニュー表示領域５０７に表示されている画像編集メニュー７０３〜７１２の中から任意のメニューをマウスクリックすると、画像編集アプリケーション３２１の画像編集実行手段３３１はマウスクリックされたメニューに対応した画像編集手段を画像編集手段群３２８から選択し、画像表示領域５０３に表示されている画像データに対して画像編集を実行する。そして、画像編集の実行後、利用者が文書１ドキュメントのウィンドウ５０１内で画像表示領域５０３以外の任意の位置をマウスクリックすると、画像編集アプリケーション３２１はインプレイスアクティブ状態から非アクティブ状態となる。このとき、画像編集アプリケーション３２１は編集結果の画像データを文書編集アプリケーション３１９に送信する。
【００３１】
一方、文書編集アプリケーション３１９は受信した編集結果の画像データを画像表示領域５０３に表示する。文書編集アプリケーション３１９では、利用者がデータ保存要求コマンドを入力する際、データ保存の必要性が生じた場合、文書編集アプリケーション３１９のデータ保存読み込み手段３２２は、ヘッダーデータ格納部４０１、テキストデータ格納部４０２に対応する文書のデータを保存すると共に、画像編集アプリケーション３２１に対して画像編集アプリケーション用データ格納部４０３内にデータ保存を行うよう要求する。これを受けて、画像編集アプリケーション３２１のデータ保存読み込み手段３２６は図２８に示すデータ形式で画像編集アプリケーション用データ格納部４０３にデータを保存する。
【非特許文献１】Ｍｉｃｒｏｓｏｆｔ  ＰＲＥＳＳ出版のｉｎｓｉｄｅ  ＯＬＥ２
【発明の開示】
【発明が解決しようとする課題】
【００３２】
しかしながら、上記従来の文書編集システムには以下に掲げる問題があり、画像編集に不慣れな利用者にとって取扱いが困難であった。
【００３３】
即ち、文書編集アプリケーション３１９から起動された画像編集アプリケーション３２１は、予め定められたメニューを表示するためにあらゆる文書データのあらゆる画像に対応するたくさんのメニューを表示しなくてはならなかった（図３２の７０３〜７１２参照）。たくさんのメニューの中から、現在編集中の文書の画像に適した画像編集手段を選択することは、画像編集に不慣れな利用者にとって負担が大きかった。特に、画像中の物体を切り抜いて文書中に貼り付ける場合、画像編集に不慣れな利用者にとってその取扱いが困難であった。
【００３４】
また一方では、画像データは情報量が多く、記憶媒体の記憶領域を大きく占有したり、記憶媒体からのリードライトに多くの時間を費やしてしまうという問題があった。この問題を回避するために、画像データをできる限り小さいサイズで保持する必要がある。用途が明確でないときには必要とする画像解像度がわからないので、画像サイズを小さくすることはできないが、文書中の画像データは文書中でどのように画像が使われるのか明確であるので、必要とする解像度に基づいて最適なサイズに画像の縮小を行うことは可能である。しかしながら、従来の文書編集システムでは、画像を縮小するか否か、あるいは画像を縮小する際に選択する画像サイズについては利用者が自分で判断するしかなく、画像編集に不慣れな利用者にとって困難な作業であった。
【００３５】
そこで、本発明は画像編集に不慣れな利用者が簡単に取り扱うことができる画像編集装置及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００３６】
上記目的を達成するために、本発明の画像編集装置は、表示手段に表示される画像を編集する画像編集装置において、前記画像中の物体の輪郭上の点を指定する指定手段と、前記指定手段により指定された第１の点と前記第１の点に続いて指定された第２の点との間の輪郭線を前記画像のエッジ情報に基づき抽出する抽出手段と、前記第１の点と前記第２の点との距離が所定値以上であるか否かを判別する判別手段と、前記判別手段により前記第１の点と前記第２の点との距離が所定の値以上であると判別された場合には、前記抽出手段により抽出した輪郭線を保持し、前記第１の点と前記第２の点との距離が所定の値以上でないと判別された場合には、前記第１の点と前記第２の点との間を結ぶ直線を前記輪郭線として保持する保持手段とを有する。
【００３７】
本発明の画像編集装置の制御方法は、表示手段に表示される画像を編集する画像編集装置の制御方法であって、前記画像中の物体の輪郭上の点を指定する工程と、前記指定された第１の点と前記第１の点に続いて指定された第２の点との間の輪郭線を前記画像のエッジ情報に基づき抽出する工程と、前記第１の点と前記第２の点との距離が所定値以上であるか否かを判別する工程と、前記判別により前記第１の点と前記第２の点との距離が所定の値以上であると判別された場合には、前記抽出により得られた輪郭線を保持し、前記第１の点と前記第２の点との距離が所定の値以上でないと判別された場合には、前記第１の点と前記第２の点との間を結ぶ直線を前記輪郭線として保持する工程とからなる制御方法。
【発明の効果】
【００３８】
本発明に係る画像編集装置によれば、画像中の物体を切り抜いて文書中に貼り付ける場合、画像編集に不慣れな利用者が簡単に取り扱うことができる。また、本発明に係る画像編集方法によれば、画像中の物体を切り抜いて文書中に貼り付ける場合、画像編集に不慣れな利用者が簡単に取り扱うことができる。
【発明を実施するための最良の形態】
【００３９】
本発明の画像編集装置及びその制御方法の実施の形態について説明する。
【００４０】
［第１の実施の形態］
図１は第１の実施の形態における文書編集システムの構成を示すブロック図である。文書編集システムは、大略、アプリケーションソフトウェア１０１、オペレーティングシステム３０２およびハードウェア３０１から構成される。アプリケーションソフトウェア１０１には文書編集アプリケーション３１９、画像ファイリングアプリケーション３２０、画像編集アプリケーション１０２などが設けられている。尚、従来の技術の項で説明した文書編集システムと同一の構成要素については同一の符号を付してその説明を省略する。図２は文書データの構造を示す説明図である。
【００４１】
文書編集アプリケーション３１９のユーザインターフェース画面を示す図２９において、文書編集アプリケーション３１９で文書１を編集中に画像表示領域５０３をマウスポインタによりダブルクリックすると、画像編集アプリケーション起動手段３２４は画像編集アプリケーション１０２を起動する。図５は文書編集アプリケーション３１９による画像編集アプリケーション１０２起動時の処理手順を示すフローチャートである。図４は主記憶装置３０７内で画像編集アプリケーション１０２が使用するメモリ領域内のメモリマップを示す説明図である。図において、１１０１は画像編集アプリケーション１０２の各手段の実行形式のコードを含む各手段実行コード保持領域である。１１０２は推奨画像サイズのデータを保持する推奨画像サイズデータ保持領域である。１１０３は処理スクリプトデータを保持する処理スクリプトデータ保持領域である。１１０４は現在の画像データを保持する画像データ保持領域である。１１０５は画像編集手段群３２８の画像編集手段による画像編集の結果として得られる画像データを記憶保持するための編集結果画像データ保持領域である。１１０６は画像編集アプリケーション１０２によって使用されるその他のデータを保持するためのその他のデータ保持領域である。
【００４２】
画像編集アプリケーション１０２が起動する際、文書編集システムの処理を上記図４のメモリマップおよび図５のフローチャートを用いて詳しく説明する。画像編集アプリケーション１０２が起動すると、まず、データ保存読み込み手段１０５により画像データ格納部４０７から画像データ保持領域１１０４に画像データを読み込む（ステップＳ１）。画像データ保持領域１１０４には予め画像１．ｂｍｐの画像データが格納されている。
【００４３】
データ保存読み込み手段１０５により処理スクリプト格納部２０２から処理スクリプトデータ保持領域１１０３に処理スクリプトデータを読み込む（ステップＳ２）。データ保存読み込み手段１０５は推奨画像サイズ格納部２０３から推奨画像サイズデータ保持領域１１０２に推奨画像サイズを読み込む（ステップＳ３）。ユーザインターフェース管理手段１０８は文書中の画像表示領域５０３に画像データ保持領域１１０４に格納されている画像データを表示して（ステップＳ４）起動時の処理を終了する。
【００４４】
画像編集アプリケーション１０２は起動時の処理を終了すると、文書編集アプリケーション３１９のインプレイスアクティブ状態で利用者からのイベント待ち（コマンド入力待ち）となる。
【００４５】
図６はインプレイスアクティブ状態で利用者からのイベント待ち状態にある表示装置３０４の表示画面を示す説明図である。画像編集アプリケーション１０２のユーザインターフェース管理手段１０８は、図３２に示す従来の場合と異なり、文書編集アプリケーション３１９のメニュー表示領域５０７に画像編集コマンドを入力するためのメニューを追加していない。
【００４６】
図７は画像ファイリングアプリケーション３２０から画像編集アプリケーション１０２にアプリケーション間通信により画像データを送信するためのコマンドの入力を示す説明図である。文書編集システムでは、画像ファイリングアプリケーション３２０の送信したい画像（例えば、図７のＦｉｌｅ２．ｂｍｐ）の上にマウスカーソルを移動してマウスボタンを押し、ボタンを押し続けたまま、マウスカーソルを画像表示領域５０３の上まで移動してマウスボタンを離す。このような操作は一般にドラッグアンドドロップと呼ばれる。文書編集システムでは、画像ファイリングアプリケーション３２０の縮小画像から文書編集アプリケーション３１９内でインプレイスアクティブ状態にある画像編集アプリケーション１０２にドラッグアンドドロップ操作を行うことによりアプリケーション間通信手段３１８に対して画像データ送信コマンドを入力することができる。
【００４７】
具体的にＦｉｌｅ２．ｂｍｐの画像データを画像編集アプリケーション１０２によりドラッグアンドドロップした場合を例にとって説明する。図８はドラッグアンドドロップ操作によって利用者から画像データ送信コマンドが入力された場合における文書編集システムの処理手順を示すフローチャートである。
【００４８】
利用者がドラッグアンドドロップ操作により画像データ送信コマンドを入力すると、処理を開始する。まず、画像データ入れ替え手段１０３が画像データ保持領域１１０４に格納されている画像１．ｂｍｐの画像データを消去して、代わりにアプリケーション間通信により受信したＦｉｌｅ２．ｂｍｐの画像データを画像データ保持領域１１０４に格納することによって画像データ保持領域１１０４の画像データの入れ替えを行う（ステップＳ５１）。
【００４９】
画像サイズ変換手段１１２は画像データ保持領域１１０４に格納されているＦｉｌｅ２．ｂｍｐの画像データを推奨画像サイズデータ保持領域１１０２に記憶されている推奨画像サイズにリサイズする（ステップＳ５２）。
【００５０】
処理スクリプト解析手段１０６は処理スクリプトデータ保持領域１１０３に格納されている処理スクリプトデータを解析する（ステップＳ５３）。
【００５１】
図３は処理スクリプトデータを示す説明図である。同図（Ａ）には処理手順１および処理手順２の２つの処理手順が記述されている。処理手順１には、Ｐａｒａｍｅｔｅｒ１を値１０に設定してオリジナル画像に対してぼかし処理を施し、さらにＰａｒａｍｅｔｅｒ１を値２０に設定してぼかし処理の結果画像に対してイラスト化処理を施すことを内容とする処理スクリプトが記述されている。
【００５２】
また、処理手順２には、Ｐａｒａｍｅｔｅｒ１を値１０に設定してオリジナル画像に対してシャープ処理を施し、さらにＰａｒａｍｅｔｅｒ１０を値１５、Ｐａｒａｍｅｔｅｒ２を値３０に設定してシャープ処理の結果画像に対してノイズ処理を施すことを内容とする処理スクリプトが記述されている。同図（Ａ）の処理スクリプトデータには、複数の処理手順が記述されている。ここでは、このような処理スクリプトを選択型の処理スクリプトと呼ぶこととする。
【００５３】
また、同図（Ｂ）の処理スクリプトデータには処理手順が１つのみ記述されている。このような処理スクリプトをここでは非選択型の処理スクリプトと呼ぶこととする。
【００５４】
ステップＳ５３の解析結果を基に処理スクリプトが選択型であるか非選択型であるかを判別する（ステップＳ５４）。処理スクリプトデータ保持領域１１０３に記憶されている処理スクリプトデータが同図（Ａ）のように選択型である場合にはステップＳ５７に処理を進め、非選択型である場合にはステップＳ５５に処理を進める。
【００５５】
ステップＳ５５では、画像編集自動実行手段１０７は画像データ保持領域１１０４に格納されている画像データ（ステップＳ５２でリサイズされたｆｉｌｅ２．ｂｍｐの画像データ）に対して、処理スクリプトデータに記述されている処理手順に対応した画像編集手段を画像編集手段群３２８から検索して実行する。各画像編集手段を実行する際のパラメータも処理スクリプトデータの記述に従う。
【００５６】
そして、ユーザインターフェース管理手段１０８が画像データ保持領域１１０４に格納されている、処理スクリプトに準じた編集結果の画像データを画像表示領域５０３に表示して（ステップＳ５６）、処理を終了する。
【００５７】
一方、ステップＳ５４で処理スクリプトが選択型である場合、カウンタｋに値１を代入する（ステップＳ５７）。画像データ保持領域１１０４に格納されている画像データ（ステップＳ５２でリサイズされたｆｉｌｅ２．ｂｍｐの画像データ）を処理手順ｋによる編集結果画像データ保持領域１１０５にコピーする。
【００５８】
図９は処理手順ｋによる編集結果画像データ保持領域１１０５のメモリマップを示す説明図である。画像編集自動実行手段１０７は、編集結果画像データ保持領域１１０５に格納されている画像データに対して処理スクリプトデータに記述されている処理手順ｋを実行する（ステップＳ５９）。処理の実行に際し、処理手順ｋに対応した画像編集手段を画像編集手段３２８から検索する。ここで、画像編集手段を実行する際のパラメータも処理手順ｋの記述に従う。
【００５９】
処理手順ｋが処理スクリプトデータにおいて最後の処理手順であるか否かを判別する（ステップＳ６０）。例えば、処理スクリプトデータが図３（Ａ）の場合、処理手順２が処理スクリプトの最後の処理手順であるので、ｋ＝２の場合にステップＳ６０での判断がｙｅｓとなり、ステップＳ６２に処理を進める。処理手順ｋが処理スクリプトの最後の処理手順でない場合、判断はｎｏとなり、ステップＳ６１に移行してカウンタｋの値をインクリメントした後、再びステップＳ５８の処理を行う。
【００６０】
ステップＳ６２では候補画像表示ウィンドウを表示する。図１０は候補画像表示ウィンドウを示す説明図である。候補画像表示ウィンドウには編集結果画像データ保持領域１１０５に格納された処理手順１〜処理手順ｎの編集結果の画像が表示される。利用者は候補画像表示ウィンドウから所望の編集結果の画像を選択することができる。
【００６１】
本実施の形態では、マウスカーソルを所望の画像の上に移動しマウスボタンをクリックすることによって編集結果の画像を選択するコマンドを入力する。
【００６２】
利用者によって選択コマンドが入力されたか否かを判別する（ステップＳ６３）。選択コマンドが入力されるまではステップＳ６３の判断はｎｏとなり、ステップＳ６３の判断を繰り返す。利用者がマウスクリックにより選択コマンドを入力すると、ステップＳ６３の判断はｙｅｓとなる。そして、画像データ保持領域１１０４に格納されている画像データを消去する（ステップＳ６４）。利用者によって選択された処理手順による編集結果の画像データを編集結果画像データ保持領域１１０５から画像データ保持領域１１０４にコピーする（ステップＳ６５）。
【００６３】
図１０に示された候補画像表示ウィンドウを閉じる（ステップＳ６６）。編集結果画像データ保持領域１１０５に格納されている処理手順１〜処理手順ｎによる編集結果の画像データを全て消去し（ステップＳ６７）、編集結果の画像データを画像表示領域５０３に表示して（ステップＳ５６）、処理を終了する。
【００６４】
画像編集アプリケーション１０２による画像編集処理が終了した後、利用者がドキュメント文書１のウィンドウ５０２内の画像表示領域５０３以外の部分をマウスクリックすることにより、画像編集アプリケーション１０２はインプレイスアクティブ状態から非アクティブ状態となる。画像編集アプリケーション１０２は非アクティブ状態となる前に、推奨画像サイズデータ、処理スクリプトデータ、編集結果画像データをそれぞれ、推奨画像サイズ格納部２０３、処理スクリプト格納部２０２および画像データ格納部４０７に保存するとともに、表示データを作成して表示データ格納部４０６に格納する。
【００６５】
一方、文書編集アプリケーション３１９の画像編集結果表示手段３２３は表示データ格納部４０６に格納された表示データを画像表示領域５０３に表示する。
【００６６】
本実施の形態における文書編集システムでは、利用者がドラッグアンドドロップ操作によって画像入れ替えコマンドを入力した際、処理スクリプトが非選択型である場合、完全自動で画像編集が行われるので、画像編集に不慣れな利用者が画像編集のコマンドやパラメータをいくつも入力する負担を軽減できる。また、処理スクリプトが選択型であっても、自動的に編集されたいくつかの処理結果画像を眺めながら所望の画像を選択する操作だけで利用者にとって好ましい画像編集を簡単に行うことができる。したがって、たくさんのメニューの中から、現在編集中の文書の画像に適した画像編集手段を選択するといった負担の係る操作をしなくて済み、画像編集に不慣れな利用者でも簡単に取り扱うことができる。
【００６７】
［第２の実施の形態］
第２の実施の形態における文書編集システムについて説明する。本実施の形態における文書編集システムは前記実施の形態における文書編集システムと同一のハードウェアの構成を有するので、その説明を省略する。図１１は第２の実施の形態における文書編集システムの処理手順を示すフローチャートである。インプレイスアクティブ状態で利用者がドラッグアンドドロップ操作により画像データ送信コマンドを入力すると（図７参照）、処理が開始される。
【００６８】
画像データ入れ替え手段１０３は画像データ保持領域１１０４に格納されている画像１．ｂｍｐの画像データを消去し、代わりにアプリケーション間通信により受信したＦｉｌｅ２．ｂｍｐの画像データを画像データ保持領域１１０４に格納することにより画像データ保持領域１１０４の画像データを入れ替える（ステップＳ８１）。画像サイズ変換手段１１２は画像データ保持領域１１０４に格納されているＦｉｌｅ２．ｂｍｐの画像データを推奨画像サイズデータ保持領域１１０２に記憶されている推奨画像サイズにリサイズする（ステップＳ８２）。処理スクリプト解析手段１０６が処理スクリプトデータ保持領域１１０３に格納されている処理スクリプトデータを解析する（ステップＳ８３）。
【００６９】
図１２は第２の実施の形態における処理スクリプトデータを示す説明図である。本実施の形態における処理スクリプトデータには画像編集において使用すべきテンプレートの名称が記述されている。テンプレートとは画像編集手段群３２８に含まれる画像編集手段の内、画像編集の目的毎に必要とされる画像編集手段のユーザインターフェースだけをコンパクトにまとめたウィンドウのことである。図１２の処理スクリプトデータに記述されている「ポートレイトエフェクトテンプレート」は「人物が撮影された画像をレタードキュメントの送信者の顔写真として貼り付けるのに好ましい画像へと画像編集を行う」という画像編集の目的を達成するための最小限のユーザインターフェースを有したウィンドウである。
【００７０】
ユーザインターフェース選択手段１０９はステップＳ８３での解析結果に応じて処理スクリプトに記述されているテンプレートを選択し、各テンプレート用ウィンドウを表示する（ステップＳ８４）。例えば、処理スクリプトデータが図１２のポートレイトエフェクトテンプレートを指定している場合、文書編集システムの表示装置３０４には図１３に示すウィンドウが表示される。図１３はポートレイトエフェクトテンプレートのユーザインターフェースを示す説明図である。ポートレイトエフェクトテンプレートにより行われる画像編集の詳細については後述する。このように目的に合致した最小限のユーザインターフェースをユーザインターフェース選択手段１０９が選択的に表示するので、ユーザはどのメニューを選べばよいかを即座に判断することができ、画像編集に不慣れな利用者の操作性を向上できる。
【００７１】
テンプレートのウィンドウを介して各テンプレート毎のユーザ対話処理を実行し（ステップＳ８５）、画像データ保持領域１１０４に格納されている画像に対して画像編集を行う。利用者が対話処理による画像編集を終了し、テンプレート上のＯＫボタンをマウスクリックした場合、テンプレートのウィンドウが閉じる（ステップＳ８６）。ユーザインターフェース管理手段１０８は画像データ保持領域１１０４に格納されている編集結果画像データを画像表示領域５０３に表示して（ステップＳ８７）、処理を終了する。
【００７２】
本実施の形態における文書編集システムでは、予め定められたメニューやツールを表示するのではなく、処理スクリプトの記述にしたがって画像編集の目的を達成するために最少限のユーザインターフェースを選択的に表示するので、画像編集に不慣れな利用者が沢山の画像編集メニューの中から目的に見合ったメニューを選択しないで済み、利用者の負担を軽減できる。
【００７３】
図１３のポートレートエフェクトテンプレートのユーザインターフェースについて詳述する。ポートレートエフェクトは、ドキュメント上での執筆者の顔写真、あるいは議事録での出席者の顔写真などに使われる画像編集である。ポートレートエフェクトにおいて最も大切な処理は、顔写真に不要な背景を除去することである。この機能を実現するために、ポートレートエフェクトでは大きく２つのモードを有する。
【００７４】
その１つは同図（Ａ）の２０００で示す切り抜きモードであり、楕円２００９で指定される形で切り抜きを行う。この場合、楕円２００９からはみ出す部分はＯＫボタン２００４を押した時点で消去される。利用者は楕円２００９を残したい部分（顔を中心にした部分）に移動し、大きさを調節した後、ＯＫボタン２００４で消去する。これにより、完全に背景を除去することはできないが、非常に簡単に背景として写っている余計な部分をカットでき、紙の写真を楕円で切り抜いてアルバムに貼り付けた場合と同等の効果を得ることができる。
【００７５】
他の一つは同図（Ｂ）の２００１で示す背景消しモードであり、このモードの切り替えはラジオボタン２００２を選択することによって行う。利用者は被写体の輪郭を指定し、Ｅｒａｓｅボタン２００６を押すことによって輪郭外の画像を消去する。この場合、切り抜きモードに較べて利用者の作業量は多くなるが、完全に背景を除去できる。
【００７６】
図１４は切り抜きモードの処理手順を示す説明図である。２１０２はラジオボタン２００２で切り抜きを選択し、ラジオボタン２００３で四角形を選択したときの画像表示画面２０１０を表している。２１００はデフォルトで画面に表示される矩形であり、画面の中央に位置しそれぞれ画面の半分の長さに等しい縦横の長さを有する。２１０１は矩形の長さ、大きさを変えるためのポイントであり、利用者はポイント２１０１上でマウスダウンし、そのままドラッグすることで操作を行う。２１０４は矩形２１００の中心を示しており、矩形を大きさをそのままで移動するときに使用する。同様に利用者は矩形２１００の中心２１０４でマウスダウンし、ドラッグすることで移動が行える。利用者が移動と大きさを変える操作を行うことにより２１０３に示す画像表示画面のように切り抜きたい所望の位置を指定する。
【００７７】
そして、ＯＫボタン２００４を押すことにより矩形外の画像は消去され、切り抜き画像２１０５が得られる。図１５は切り抜きモードの処理手順を示すフローチャートである。図において、ステップＳ１００はイベントループであり、マウスボタンが押されたり、メニューの選択やボタンが押された等のイベントが発生すると、そのメッセージがアプリケーションソフトウェアに渡される。
【００７８】
イベントが発生した場合、マウスボタンが押されたというメッセージであるか否かを判別し（ステップＳ１０１）、マウスボタンが押されたというメッセージである場合、矩形の角のポイント２１０１上であるかどうかをチェックする（ステップＳ１０２）。矩形の角のポイント２１０１上である場合、矩形の角のポイント２１０１上をマウスダウンしたということを変数にしておく（ステップＳ１０５）。ステップＳ１０２で矩形の角のポイント２１０１上でない場合、矩形の中心２１０４上であるかどうかをチェックし（ステップＳ１０３）、矩形の中心２１０４上である場合、矩形の中心２１０４上であることを変数にしておく（ステップＳ１０４）。
【００７９】
一方、ステップＳ１０１でマウスボタンが押されていない場合、マウスボタンが離されたか否かを判別する（ステップＳ１０６）。マウスボタンが離されると、先の変数を参照し、矩形のリサイズ中であるかどうかをチェックする（ステップＳ１０７）。リサイズ中であれば、マウスボタンが離された位置から、新たな矩形の大きさ、位置を計算する（ステップＳ１０８）。これを保持し新たな矩形に従って描画を行う（ステップＳ１０９）。
【００８０】
そして、ＯＫボタン２００４が押されたか否かをチェックし（ステップＳ１１０）、ＯＫボタン２００４が押されたときはこの矩形に対応した画像領域をメモリ上に別に確保する（ステップＳ１１１）。この領域に矩形内に位置する画像データをコピーする（ステップＳ１１２）。元の画像データをメモリ上から消去し（ステップＳ１１３）、図１３のウィンドウ２０００を消去する。この結果、利用者の操作はドキュメント上に復帰し、ドキュメント上に図１４の画像２１０５が貼り付けられることになる。
【００８１】
図１６は背景消しモードの動作処理手順を示す説明図である。背景消しモードは、図１３の画面２００１に示すようにラジオボタン２００２を背景消しに選択したときの状態である。画面２３００では、まず、利用者は人の輪郭上に始点２３０４をマウスクリックすることによって指定する。つづいて、次点２３０６をマウスクリックすると、自動的にその間の輪郭線をトレースして輪郭線２３０５を表示する。
【００８２】
この背景消しモード処理の詳細については後述する。さらに、画面２３０１で次点２３０７を指定すると、先の輪郭線２３０５は確定してグレー（破線で図示）の線から黒の線に変わる。点２３０６と次点２３０７との間をトレースし、その結果、輪郭線２３０８が表示される。以上の操作を繰り返していくことで、画面２３０２の閉じた輪郭線２３０９を作成する。輪郭線２３０９で下側が水平になっているのは、利用者がダブルクリックするとこれが最終点の意味となり、開始点と最終点との距離が所定値以上離れているときは、この間を水平になるように結ぶ。この詳細についても後述するが、ポートレートの場合、下側が水平に切られていることが望ましく、そのための処理を自動的に行うようにしている。そして、図１３のＥｒａｓｅボタン２００６が押されたことにより輪郭線の外側を消去し、画面２３０３の背景が完全にない被写体だけの画像を取得できる。
【００８３】
図１７は背景消しモードの操作方法を示す説明図である。図において、輪郭線２４００がこの時点での確定部分であり、輪郭線２４０１は前回の指定部分であり、まだ編集可能な状態である。尚、これらの輪郭線は背景となる画像の輪郭の上に表示されるわけであるが、ここでは画像は省略されている。
【００８４】
操作時のマウスポインタの形状は十字形２４０３か二重丸２４０５のいずれかである。マウスポインタの形状は最終点２４０９からの距離に応じて自動的に変更される。最終点２４０９とマウスポインタとの距離２４０２が所定値以下である場合、マウスポインタの形状は十字形２４０３になる。そして、距離２４０４が所定値より大きい場合、マウスポインタの形状は二重丸になる。そして、二重丸２４０５の時にマウスをクリックすると、最終点２４０９とクリックされた点との間を画像のエッジ情報を基にしたエッジ追跡処理により輪郭線を抽出する。この処理の詳細については後述する。
【００８５】
一方、十字形２４０３のときは、単純に最終点とクリックされた点との間を直線で結ぶ。このように２つモードをもつ理由は以下の通りである。後述するエッジ追跡処理では、必ず利用者の望む輪郭のみを抽出するとは限らず、誤った結果になることもあり得る。例えば、人の背景に強いエッジを持ったものが写っている場合、そのエッジを輪郭線としてトレースしてしまう場合が起こる。この場合、人の輪郭として正しく抽出しているところまでを保持し、誤りの部分を短い直線で切ってスキップしてしまう方法を提供するために、長い距離では輪郭線抽出処理を行い、短い距離では直線で切って誤りの部分をスキップし、利用者にボタン切り替え等の面倒な操作をさせないで済む。距離の長短のしきい値としては１６画素程度が適当である。
【００８６】
また、輪郭線抽出結果２４０１が利用者にとって満足のいくものでない場合、マウスの右ボタンもしくは図１３のＵｎｄｏボタン２００７を押すことによってキャンセルできる。その結果、確定部分２４０６だけが残ることになり、利用者は再度操作をやり直すことになる。また、輪郭線抽出２４０１の結果に対して、途中までは保持し、それ以降はキャンセルしたい場合、保持したい箇所２４０７までをマウスでクリックする。すると輪郭線２４０８のように、保持したい箇所２４０７までが確定される。以上の操作を繰り返して人の部分の輪郭を完成させる。また、途中でそれまでの結果、全てをキャンセルしたい場合、図１３のＣｌｅａｒボタン２００８を押すと全ての輪郭線が消去される。
【００８７】
上記操作により得られた輪郭データを管理するデータ構造について示す。図１８は輪郭データを管理するデータ構造を示す説明図である。ポイント列（ｘ，ｙ座標を格納する配列）ｐｏｉｎｔ［］２５００は確定したポイント列（図１７の２４００、２４０６、２４０８のように黒で確定した輪郭線部分）を格納し、ポイント列ｓｕｂｐｏｉｎｔ［］２５０１は、未確定のポイント列（図１７の２４０１のように未確定で表示している輪郭線部分）を格納する配列である。最初、トレース結果のポイント列はｓｕｂｐｏｉｎｔ［］に格納され、操作により確定するとｐｏｉｎｔ［］に移される。図１３のＣｌｅａｒボタン２００８が押されたときは、ｐｏｉｎｔ［］、ｓｕｂｐｏｉｎｔ［］ともに中味全てをクリアする。
【００８８】
マウスの右ボタンが押されたとき、あるいはＵｎｄｏボタン２００７が押されたとき、ｓｕｂｐｏｉｎｔ［］の中味をクリアし、ｓｕｂｐｏｉｎｔ［］の先端に、ｐｏｉｎｔ［］の最後の値を格納しておく。そして、描画はｐｏｉｎｔ［］の値を黒で表示し、ｓｕｂｐｏｉｎｔ［］の値をグレーで表示することによって確定、未確定を利用者に明示する。
【００８９】
図１９は輪郭データを管理する手順を示すフローチャートである。図において、ステップＳ１３０はイベントループである。イベントが発生してマウスボタンがクリックされたと判断されたとき（ステップＳ１３１）、まず、ポイント列ｐｏｉｎｔ［］、ポイント列ｓｕｂｐｏｉｎｔ［］ともに中味が空であるかどうかをチェックする（ステップＳ１３２）。ともに中味が空であるのは、ユーザが一番最初にクリックした場合である。クリックしたポイントの近傍（クリックしたポイントからｘ、ｙ方向±２画素の範囲）を調べ、所定値以上で最もエッジの強いポイントを新たに指定ポイントとして設定する（ステップＳ１３３）。これは、利用者がある程度ラフに輪郭上をクリックしても自動的に最適な位置に変換するための処理である。所定値以上のエッジの強さがない場合、クリックしたポイントをそのまま指定ポイントとする。指定ポイントをｓｕｂｐｏｉｎｔ［］の頭（第１要素）に入れる（ステップＳ１３４）。
【００９０】
ステップＳ１３２でポイント列ｐｏｉｎｔ［］、ポイント列ｓｕｂｐｏｉｎｔ［］ともに中味が空でない場合、ｓｕｂｐｏｉｎｔ［］に１つだけ値が入っているかどうかを調べる（ステップＳ１３５）。ｓｕｂｐｏｉｎｔ［］に１つだけ値が入っているのは、利用者が右ボタンでキャンセルして新たに次の点をクリックしたとき、または前回に輪郭線の途中までを確定してその後新たに次の点をクリックしたときである。このとき、ｓｕｂｐｏｉｎｔ［］の最初の値を始点、クリックされたポイントを終点としてトレースを行い、その間のポイントをｓｕｂｐｏｉｎｔ［］に格納する（ステップＳ１４０）。
【００９１】
ｓｕｂｐｏｉｎｔ［］に１つより多くの値が入っている場合、前回の未確定部分（グレーの部分）はＯＫで、さらに次のトレースを行う場合と、前回の未確定部分のうち、途中までを確定にして残りはキャンセルする場合のどちらかである。クリックしたポイントの近傍（クリックしたポイントからｘ、ｙ方向±２画素の範囲）にｓｕｂｐｏｉｎｔ［］中のポイント群のいずれかがあるかどうかを調べる（ステップＳ１３６）。ある場合、途中まで確定で残りはキャンセルする場合とし、ない場合、前回の未確定部分（グレーの部分）はＯＫで、さらに次のトレースを行う場合とする。
【００９２】
前回の未確定部分（グレーの部分）はＯＫで、さらに次のトレースを行う場合、ｓｕｂｐｏｉｎｔ［］の値をｐｏｉｎｔ［］の末尾に加えることで未確定を確定の状態にする（ステップＳ１３８）。そして、ｓｕｂｐｏｉｎｔ［］の値をクリアし、ｐｏｉｎｔ［］の最後の値をｓｕｂｐｏｉｎｔ［］の第１要素に入れる（ステップＳ１３９）。この後、ステップＳ１４０の処理を行う。
【００９３】
一方、途中まで確定で残りをキャンセルする場合、見つけたｓｕｂｐｏｉｎｔ中の値までの要素を、ｐｏｉｎｔ［］の末尾に加える（ステップＳ１３７）。そして、前述と同様にステップＳ１３９、Ｓ１４０の処理を行う。
【００９４】
上記操作の繰り返しで輪郭線を抽出していくが、最後に利用者がダブルクリックした場合の処理について説明する。図２０は底辺を水平にカットする処理手順を示すフローチャートである。尚、利用者が輪郭線を途中まででＥｒａｓｅボタン２００６を押した場合も、背景を消す処理に先立って図２０のステップＳ１７１以降の処理を行う。
【００９５】
イベントが発生し（ステップＳ１６９）、発生したイベントがマウスボタンのダブルクリックであると判別されると（ステップＳ１７０）、ｐｏｉｎｔ［］の第１要素（最始点）と最終要素（最終点）との距離が所定値以上であるか否かを調べる（ステップＳ１７１）。
【００９６】
距離が所定値以上である場合、自動的に下側を水平にカットする処理を行う。これによって、利用者が明示的に指示する手間を省くことができる。最始点と最終点とで上に位置する方（ｙ座標が上の方）のポイントを取得する（ステップＳ１７２）。もし、最始点が上の場合、最始点とｘ座標は同じでｙ座標は最終点のｙ座標である新たなポイントを作り、これをｐｏｉｎｔ［］の第１要素として加える（ステップＳ１７３）。そして、ｐｏｉｎｔ［］の最終要素にこのポイントを追加することによって、下側は水平で閉じた輪郭線を形成する。
【００９７】
ステップＳ１７１でｐｏｉｎｔ［］の第１要素（最始点）と最終要素（最終点）との距離が所定値未満のとき、最始点の値を最終点としてｐｏｉｎｔ［］に追加し（ステップＳ１７４）、閉じた輪郭線を形成する。
【００９８】
図２１は図１９のステップＳ１４０の処理手順を示すフローチャートである。まず、始点（ｓｕｂｐｏｉｎｔ［］の第１要素の値）とクリックされたポイントとの距離が所定値以上であるか否かを調べる（ステップＳ１９０）。距離が所定値以下（例えば１６画素以下）のとき、クリックしたポイントをポイント列ｓｕｂｐｏｉｎｔ［］に追加して（ステップＳ１９８）終了する。これにより、２点間の距離が近いときは単純に直線で切ることを実現する。所定距離より大きいときは以下の処理を行う。
【００９９】
クリックされたポイントの近傍（ｘ、ｙ方向±２画素）をサーチし、最もエッジ値の強いポイントを終点とする（ステップＳ１９１）。これは、図１９のステップＳ１３３と同様の処理である。最初に始点を注目点とし（ステップＳ１９２）、終点までたどりついていない場合（ステップＳ１９３）、次の注目点を求める（ステップＳ１９４）。次の注目点とは、終点方向に向かって１画素分終点方向に近づく点のことであり、これを求める処理の詳細については後述する。求めた注目点をポイント列ｓｕｂｐｏｉｎｔ［］に加える（ステップＳ１９５）。求めた注目点が先の注目点より近づいていない場合をカウントする（ステップＳ１９６）。このカウント値が所定回数（例えば数百回）以上を越える場合（ステップＳ１９７）、誤った方向にトレースしている可能性があるので、処理を中止する。一方、注目点が終点までたどりついた場合（ステップＳ１９３）、処理を終了する。
【０１００】
図２２は図２１のステップＳ１９４の処理動作を示す説明図である。図２３は次の注目点を求める処理手順を示すフローチャートである。図２２において、２９０１が現在の注目点であり、２９００が終点である。現在の注目点２９０１の周辺の８画素に対して終点方向に最も距離の近い順から係数ａ０〜ａ７を割り振る（ステップＳ２００、Ｓ２０１）。ａ０が最も大きい値であり、以降順次小さくなる。係数ａ５〜ａ７は値０である。この係数と対応した画素のエッジの値を掛けて（ステップＳ２０２）、所定値以上で最も大きい値を持つ画素を次の注目点として設定する（ステップＳ２０３、Ｓ２０４、Ｓ２０５）。
【０１０１】
これにより、次第に終点に近づいて行けることになる。全ての画素が所定値未満であるとき、最も終点に近い画素（図２２の場合、ａ０の係数を保持する画素）を次の注目点とし（ステップＳ２０６）、この回数をカウントする。エッジの弱い部分はとりあえず終点に近づいていくことになる。
【０１０２】
以上で輪郭線を抽出する全ての処理について説明したが、この応用として以下に示す方法はさらに有効である。図２１、図２２、図２３では始点から終点に向かって注目点を追跡していく方法であったが、全く同じ方法で終点から始点に向かって輪郭線を抽出することができる。この処理は図２１、図２２、図２３で説明した内容で始点から終点を目指す方向が終点から始点を目指す方向となる点を除いて変わらないので、図示による説明を省略する。この場合、図２３のステップＳ２０７で次の注目点を決めるときにエッジが弱くて所定値以下であった場合の回数をカウントしておくことにより、始点から終点を目指した場合と、終点から始点を目指した場合とを較べ、このフォルト回数の少ない方を採択して輪郭線とする。
【０１０３】
図２４は双方向で輪郭抽出を行う場合を示す説明図である。図において、３１００はトレースしたいエッジが途切れ途切れになっており、かつ途中から異なるより強いエッジが分岐している画像の場合を示す。
【０１０４】
自然画像の場合、エッジが連続している場合よりこのように途切れ途切れになっている場合の方が実際には多い。このとき、３１０１のように始点から終点に向かってトレースしていくと、途中でより強いエッジに引っ張られてしまい、これが途切れたところで終点にたどり着くという経路をとる。しかし、終点から始点に向かったトレースでは３１０２に示すように正しくトレースされる。これのどちらがより適切であるかを判断する有効な尺度として、先のフォルト回数を使うわけである。３１０１では強いエッジに引っ張られてから、これが途切れたところで終点にたどり着くまでの間がフォルト状態であり、その回数も多いが、３１０２では正しいエッジの途中途切れている所だけがフォルトになり、結果として３１０２の結果が選択されることになる。
【０１０５】
図２５は背景を消す処理手順を示すフローチャートである。求めた輪郭線に外接する矩形を求める（ステップＳ２２０）。輪郭線内の画像データをこの矩形内にコピーする（ステップＳ２２１）。そして、輪郭線上の画素を図２６に示す係数でぼかし処理を加える（ステップＳ２２２）。図２６はぼかし処理のフィルタを示す説明図である。これは、画像の切り取り部分をぼかした方が、ドキュメント上で違和感なく貼り付いて見える効果と、多少の輪郭抽出の誤りをごまかすことができるという２重の効果を生む。あくまでドキュメント上で使用する画像であり、かつドキュメントの一部分のポートレート写真として使うものであるから、それに求められる品位は、デザイン用や高精細な画像処理の品位より低くても十分である。この求められる品位に対して上述してきた処理は十分な結果を提供することができ、また、従来の切り出し方法よりもずっと簡単な操作で実現できる。
【０１０６】
以上示したように、本実施の形態における文書編集システムでは、ある目的を持ったドキュメントサンプル上に、それにふさわしい位置と大きさでサンプル画像が用意されている。この画像を新たに入れ替えた場合、ドキュメント上の画像の目的に合致した処理用ウィンドウが起動し、利用者は簡単な操作のみで効果的なエフェクトをかけることができる。結果として、利用者は特に画像を含んだドキュメントに対するレイアウトなどのセンスや画像に効果的なエフェクトをかける知識がなくても高品位のドキュメントを作成することができる。
【０１０７】
上記効果的なエフェクトのうちポートレートエフェクトは、楕円等の形に切り抜くモードと、輪郭に沿って背景を消す２つのモードを持ち、簡単にポートレート画像を作ることができる。輪郭に沿って背景を消すモードの場合、簡単に下側を水平にカットする機能、どうしても誤って輪郭を抽出してしまう箇所は、その分岐点を直線で切ってスキップしてしまう機能、および指定ポイント間を両方からトレースして結果のいい方を自動的に選択する機能により、使いやすく利用者の負担が軽い操作方法を提供できる。
【０１０８】
尚、本発明は複数の機器から構成されるシステムに適用してもよいし、１つの機器からなる装置に適用してもよい。また、本発明はシステムあるいは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体をシステムあるいは装置に読み出すことによってそのシステムあるいは装置が本発明の効果を享受することが可能となる。
【図面の簡単な説明】
【０１０９】
【図１】第１の実施の形態における文書編集システムの構成を示すブロック図である。
【図２】文書データの構造を示す説明図である。
【図３】処理スクリプトデータを示す説明図である。
【図４】主記憶装置３０７内で画像編集アプリケーション１０２が使用するメモリ領域内のメモリマップを示す説明図である。
【図５】文書編集アプリケーション３１９による画像編集アプリケーション１０２起動時の処理手順を示すフローチャートである。
【図６】インプレイスアクティブ状態で利用者からのイベント待ち状態にある表示装置３０４の表示画面を示す説明図である。
【図７】画像ファイリングアプリケーション３２０から画像編集アプリケーション１０２にアプリケーション間通信により画像データを送信するためのコマンドの入力を示す説明図である。
【図８】ドラッグアンドドロップ操作によって利用者から画像データ送信コマンドが入力された場合における文書編集システムの処理手順を示すフローチャートである。
【図９】処理手順ｋによる編集結果画像データ保持領域１１０５のメモリマップを示す説明図である。
【図１０】候補画像表示ウィンドウを示す説明図である。
【図１１】第２の実施の形態における文書編集システムの処理手順を示すフローチャートである。
【図１２】第２の実施の形態における処理スクリプトデータを示す説明図である。
【図１３】ポートレイトエフェクトテンプレートのユーザインターフェースを示す説明図である。
【図１４】切り抜きモードの処理手順を示す説明図である。
【図１５】切り抜きモードの処理手順を示すフローチャートである。
【図１６】背景消しモードの動作処理手順を示す説明図である。
【図１７】背景消しモードの操作方法を示す説明図である。
【図１８】輪郭データを管理するデータ構造を示す説明図である。
【図１９】輪郭データを管理する手順を示すフローチャートである。
【図２０】底辺を水平にカットする処理手順を示すフローチャートである。
【図２１】図１９のステップＳ１４０の処理手順を示すフローチャートである。
【図２２】図２１のステップＳ１９４の処理動作を示す説明図である。
【図２３】次の注目点を求める処理手順を示すフローチャートである。
【図２４】双方向で輪郭抽出を行う場合を示す説明図である。
【図２５】背景を消す処理手順を示すフローチャートである。
【図２６】ぼかし処理のフィルタを示す説明図である。
【図２７】従来の文書編集システムのハードウェアの構成を示すブロック図である。
【図２８】文書データのデータ構造を示す説明図である。
【図２９】表示装置３０４に表示される従来の文書編集アプリケーション３１９のユーザインターフェース画面を示す説明図である。
【図３０】表示装置３０４に表示される画像ファイリングアプリケーション３２０のユーザインターフェース画面を示す説明図である。
【図３１】文書編集システムにおいて他のアプリケーションにＯＬＥサーバとして画像データを供給する画像編集アプリケーション３２１のユーザインターフェース画面を示す説明図である。
【図３２】画像編集アプリケーション３２１が文書編集アプリケーション３１９内でインプレイスアクティブ状態で起動している様子を示す説明図である。
【図３３】図３０に示すＦｉｌｅ２．ｂｍｐの画像が貼り付けられた状態を示す説明図である。
【符号の説明】
【０１１０】
１０１  アプリケーションソフトウェア
１０２  画像編集アプリケーション
３０１  ハードウェア
３０２  オペレーティングシステム
３１９  文書編集アプリケーション
【図１】
2007207264.tif 000003
【図２】
2007207264.tif 000004
【図３】
2007207264.tif 000005
【図４】
2007207264.tif 000006
【図５】
2007207264.tif 000007
【図６】
2007207264.tif 000008
【図７】
2007207264.tif 000009
【図８】
2007207264.tif 000010
【図９】
2007207264.tif 000011
【図１０】
2007207264.tif 000012
【図１１】
2007207264.tif 000013
【図１２】
2007207264.tif 000014
【図１３】
2007207264.tif 000015
【図１４】
2007207264.tif 000016
【図１５】
2007207264.tif 000017
【図１６】
2007207264.tif 000018
【図１７】
2007207264.tif 000019
【図１８】
2007207264.tif 000020
【図１９】
2007207264.tif 000021
【図２０】
2007207264.tif 000022
【図２１】
2007207264.tif 000023
【図２２】
2007207264.tif 000024
【図２３】
2007207264.tif 000025
【図２４】
2007207264.tif 000026
【図２５】
2007207264.tif 000027
【図２６】
2007207264.tif 000028
【図２７】
2007207264.tif 000029
【図２８】
2007207264.tif 000030
【図２９】
2007207264.tif 000031
【図３０】
2007207264.tif 000032
【図３１】
2007207264.tif 000033
【図３２】
2007207264.tif 000034
【図３３】
2007207264.tif 000035