(57)【特許請求の範囲】
【請求項１】
コンピュータのプロセッサが、プログラムを実行することにより、入力形状から制御点によりパラメータ化された出力形状を形成する方法であって、
前記プロセッサが、複数のセグメントにより形成された前記入力形状を受信する工程と、
前記プロセッサが、前記入力形状を複数の予め定義されたテンプレート形状のうちの１つに分類する工程と、
前記プロセッサが、前記入力形状と前記分類されたテンプレート形状との類似度が所定の閾値以上であるか否か判定する工程と、
前記プロセッサが、前記類似度が前記所定の閾値以上であると判定した場合は、前記分類されたテンプレート形状を、前記入力形状に対する代表形式として作成し、前記類似度が前記所定の閾値以上でないと判定した場合は、前記入力形状の前記複数のセグメントに基づいて、前記分類されたテンプレート形状の制御点から得られる少なくとも１つの制御点を有する非テンプレート形状を、前記入力形状に対する代表形式として作成する工程と、
前記プロセッサが、前記作成された前記代表形式を前記出力形状としてメモリに格納する工程と、
を有することを特徴とする方法。
【請求項２】
前記非テンプレート形状を作成する工程は、
前記分類されたテンプレート形状の制御点と関連付けられた複数の領域のうちのいずれかに、前記入力形状の前記セグメントそれぞれを割り当てる工程と、
前記セグメントの幾何学的な変更に対応するように、前記セグメントを、前記割り当てられた領域に関連付けられた制御点に基づく関数表現に変換する工程と、
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記非テンプレート形状を作成する工程は、
前記入力形状を単位正方形に正規化する工程と、
前記正規化された形状の末端の点を識別する工程と、
前記識別された末端の点に基づいて、前記入力形状の前記セグメントを、前記非テンプレート形状の制御点に基づく関数表現に変換する工程と、
を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記非テンプレート形状を作成する工程は、
前記入力形状の対称軸と関連付けられた角度を判定する工程と、
前記判定された角度及び対称軸を使用して前記セグメント上の点の対称対を識別する工程と、
前記識別された対象対の１つの点を制御点として設定する工程と、
前記入力形状の前記セグメントを、前記設定された制御点に基づく関数表現に変換する工程と、
を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記対称軸と前記テンプレート形状との交点において少なくとも１つの固定点を追加し、前記非テンプレート形状のセグメントを分割する工程を更に有することを特徴とする請求項４に記載の方法。
【請求項６】
前記非テンプレート形状を作成する工程は、
前記入力形状に一致する複数の更なる形状を識別する工程と、
前記識別された更なる形状のうちの１つの中心点を制御点として選択する工程と、
前記更なる形状の前記制御点を前記非テンプレート形状に対する制御点として割り当てる工程と、
前記更なる形状の残りの形状の位置を前記割り当てられた制御点の関数になるように変換する工程と、
を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記プロセッサが、入力画像をセグメント化し、前記入力画像の領域に対応するオブジェクトの集合を形成する工程と、
前記プロセッサが、前記入力画像のコンテンツを解析し、前記入力画像中の図要素に対応するオブジェクトを選択する工程と、
前記プロセッサが、前記選択されたオブジェクトから各々が少なくとも１つのラインセグメント又は曲線セグメントを有する入力形状を形成する工程と、
前記プロセッサが、請求項１乃至６のいずれか一項に記載の方法に従って、前記少なくとも１つのラインセグメント又は曲線セグメントを有する入力形状に対応する出力形状を作成する工程と、
前記プロセッサが、前記出力形状を文書に書き込む工程と、
を有することを特徴とする出力文書を作成する方法。
【請求項８】
入力形状から制御点によりパラメータ化された出力形状を形成するように、コンピュータを機能させるためのプログラムを記録したコンピュータ可読記憶媒体であって、前記プログラムは、前記コンピュータを、
複数のセグメントにより形成された前記入力形状を受信する手段、
前記入力形状を複数の予め定義されたテンプレート形状のうちの１つとして分類する手段、
前記入力形状と前記分類されたテンプレート形状との類似度が所定の閾値以上であるか否か判定する手段、
前記類似度が前記所定の閾値以上であると判定した場合は、前記分類されたテンプレート形状を、前記入力形状に対する代表形式として作成し、前記類似度が前記所定の閾値以上でないと判定した場合は、前記入力形状の前記複数のセグメントに基づいて、前記分類されたテンプレート形状の制御点から得られる少なくとも１つの制御点を有する非テンプレート形状を、前記入力形状に対する代表形式として作成する手段、
前記作成された前記代表形式を前記出力形状としてメモリに格納する手段、
として機能させるためのプログラムであることを特徴とするコンピュータ可読記憶媒体。
【請求項９】
入力形状から制御点によりパラメータ化された出力形状を形成するように構成された、少なくとも１つのプロセッサを有するコンピュータ装置であって、
複数のセグメントにより形成された前記入力形状を受信する手段と、
前記入力形状を複数の予め定義されたテンプレート形状のうちの１つとして分類する手段と、
前記入力形状と前記分類されたテンプレート形状との類似度が所定の閾値以上であるか否か判定する手段と、
前記類似度が前記所定の閾値以上であると判定した場合は、前記分類されたテンプレート形状を、前記入力形状に対する代表形式として作成し、前記類似度が前記所定の閾値以上でないと判定した場合は、前記入力形状の前記複数のセグメントに基づいて、前記分類されたテンプレート形状の制御点から得られる少なくとも１つの制御点を有する非テンプレート形状を、前記入力形状に対する代表形式として作成する手段と、
前記作成された前記代表形式を前記出力形状としてメモリに格納する手段と、
を備えることを特徴とするコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理に関し、特に編集可能な文書を作成するために形状パラメータ及び制御点を見つけるように入力形状を処理することに関する。
【背景技術】
【０００２】
計算処理能力の継続的な向上と組み合わされた映像技術の普及により、文書解析の分野は大いに進歩してきた。かなりの割合の事務文書は、Ｕ．Ｓ．Ａ．のＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐ．により製造されたＭｉｃｒｏｓｏｆｔＴＭ  ＷｏｒｄＴＭ及びＭｉｃｒｏｓｏｆｔＴＭ  ＰｏｗｅｒｐｏｉｎｔＴＭ等の構造化されたテキスト／グラフィックス編集アプリケーションを使用して生成される。書式付きテキスト編集に加え、これらのテキスト／グラフィックス編集アプリケーションは、基本の図形描画ツール及び図形描画オプションを含む。「スキャントゥエディタブル(scan-to-editable)」アプリケーションと呼ばれる文書解析のために使用されるアプリケーションの重要な類は、そのような編集アプリケーションを使用して表示及び編集される電子バージョンの文書を生成するように文書のビットマップ表現を処理する。
【０００３】
一般に構造化されたテキスト／グラフィックス編集アプリケーションにおける図形描画オプションは、フリーフォーム線画、テンプレート形状及び結合子（すなわち、文書内のテンプレート形状に結合し且つ／あるいはテンプレート形状間で結合する動的線オブジェクト）を含む。テキスト／グラフィックス編集アプリケーションは、オブジェクトの集合に対して着色オプション、塗りつぶしオプション、階層化オプション及びグループ化オプションを更に含んでもよい。一般に使用される多くの幾何学的形状は、テンプレート形状を使用して作成されてもよい。このオプションがより速く、所望の形状の表現に関してより正確であり且つ後で編集するのがより簡単であるため、ユーザは、フリーフォーム線を使用して形状を描画するのではなく、テンプレート形状を使用することを好むだろう。フリーフォーム形状とテンプレート形状との決定的な違いは、テンプレート形状をより速く変形できるようにする制御点である。既知のＭｉｃｒｏｓｏｆｔＴＭ  ＡｕｔｏＳｈａｐｅｓの集合は、ＭｉｃｒｏｓｏｆｔＴＭ  ＷｏｒｄＴＭ及びＭｉｃｒｏｓｏｆｔＴＭ  ＰｏｗｅｒｐｏｉｎｔＴＭ等の編集環境内で操作されてもよいテンプレート形状の複数の例を含む。他のテンプレート形状は、ＷｒｉｔｅｒＴＭアプリケーション及びＩｍｐｒｅｓｓＴＭアプリケーション等のＯｐｅｎＯｆｆｉｃｅ．ｏｒｇＴＭ編集アプリケーションで見つけられるだろう。
【０００４】
テンプレート形状に対する構成を検出し、テンプレートのパラメータを判定し、且つ出力のために判定されたパラメータにより構成されたテンプレート形状を生成するようにスキャンされたページを処理する方法が存在する。しかし、テンプレート形状がアプリケーション間で異なるため、一般に特定のシステムは、限定されたテンプレート形状の集合のみを処理する。特定のオブジェクトがテンプレート形状のうちの１つに正確に一致しない場合、オブジェクトは一致しない。不一致のオブジェクトは、ビットマップオブジェクトとして存続し続けることができるが、伸張等のためにベクトル化されてもよい。従って、構成可能な形状として出力されるように、システムによりテンプレート形状に正確に一致しないオブジェクトを処理する方法が必要である。
【発明の概要】
【０００５】
本発明の一態様によると、入力形状から制御点によりパラメータ化された出力形状を形成する方法が提供される。方法は、複数のセグメントにより形成された入力形状を受信することと、入力形状を複数の事前定義されたテンプレート形状のうちの１つとして分類することと、入力形状と分類されたテンプレート形状との類似度に基づいて入力形状に対して代表的な形式を判定することであり、代表的な形式が分類されたテンプレート形状から構成されるグループから類似度に従って選択され、非テンプレート形状が入力形状のセグメントに基づき且つ分類されたテンプレート形状の少なくとも１つの制御点から導出された少なくとも１つの制御点を有することと、判定された代表的な形式を導出された制御点によりパラメータ化された出力形状として格納することとを含む。
【０００６】
制御点を含む非テンプレート形状は、各々が対応する分類されたテンプレート形状の制御点のうちの１つに割り当てられる分類されたテンプレート形状の複数の領域のうちの１つに入力形状の各セグメントを割り当てるステップと、セグメントの幾何学的変更に対する少なくとも１つの制御点と関連付けられた領域に関してセグメントを記述するステップと、各領域及び少なくとも１つの制御点の記述により入力形状の表現を形成するステップとにより形成されるのが望ましい。
【０００７】
あるいは、制御点を含む非テンプレート形状は、入力形状を単位正方形に正規化するステップと、正規化された形状の末端の点を識別するステップと、識別された末端の点に基づいて非テンプレート形状の制御パラメータを算出するステップと、入力形状の各セグメント上の点を算出された制御パラメータの関数になるように変換するステップとにより形成される。
【０００８】
更に別の方法において、制御点を含む非テンプレート形状は、関連付けられた入力形状の対称軸と関連付けられた角度を判定するステップと、判定された角度及び対称軸を使用してセグメント上の点の対称対を識別するステップと、識別された点を制御点として設定するステップと、入力形状の各セグメント上の点を導出された制御点に対応する制御パラメータの関数になるように変換するステップとにより形成される。この手法は、対称軸とテンプレート形状との交点において少なくとも１つの固定点を追加し、非テンプレート形状のセグメントを分割することを更に備えるのが好ましい。
【０００９】
更に別の方法において、制御点を含む非テンプレート形状は、入力形状に一致する複数の更なる形状を識別するステップと、識別された更なる形状のうちの１つの中心点を制御点として選択するステップと、更なる形状の制御点を非テンプレート形状に対する制御点として割り当てるステップと、更なる形状のあらゆる残りの形状の位置を割り当てられた制御点の関数になるように変換するステップとにより形成される。
【００１０】
他の態様が更に開示される。
【００１１】
次に、以下の図面を参照して本発明の少なくとも１つの実施形態を説明する。付録Ａは、対応する図中符号と共に図２Ａ及び図２ＢのＭｉｃｒｏｓｏｆｔＴＭ  ＡｕｔｏＳｈａｐｅｓの各々の名前を一覧表示する表である。
【図面の簡単な説明】
【００１２】
【図１】図１は、説明される構成が実現されてもよいシステムを示す図である。
【図２Ａ】図２Ａは、ＭｉｃｒｏｓｏｆｔＴＭ  Ａｕｔｏｓｈａｐｅｓの選択を示す図である。
【図２Ｂ】図２Ｂは、ＭｉｃｒｏｓｏｆｔＴＭ  Ａｕｔｏｓｈａｐｅｓの別の選択を示す図である。
【図３】図３は、各々が個々に変形する方法を示す１つのテンプレートパラメータを含むＡｕｔｏｓｈａｐｅｓの集合を示す図である。
【図４】図４は、形状パラメータ化を使用して編集可能な文書を生成する第１の手法を示すフローチャートである。
【図５】図５は、入力フリーフォーム集合が処理される方法を示すフローチャートである。
【図６】図６は、個々の入力フリーフォーム各々が処理される方法を示すフローチャートである。
【図７】図７は、制御点を含む非テンプレート形状が作成されてもよい方法を示すフローチャートである。
【図８Ａ】図８Ａは、入力フリーフォームオブジェクト、最も近いテンプレートマッチング及び制御点が作成されてもよい方法の一例を示す図である。
【図８Ｂ】図８Ｂは、入力フリーフォームオブジェクト、最も近いテンプレートマッチング及び制御点が作成されてもよい方法の一例を示す図である。
【図８Ｃ】図８Ｃは、入力フリーフォームオブジェクト、最も近いテンプレートマッチング及び制御点が作成されてもよい方法の一例を示す図である。
【図８Ｄ】図８Ｄは、入力フリーフォームオブジェクト、最も近いテンプレートマッチング及び制御点が作成されてもよい方法の一例を示す図である。
【図８Ｅ】図８Ｅは、フリーフォーム矢印形状のセグメント化を示す図である。
【図８Ｆ】図８Ｆは、制御点の操作により図８Ｅの形状を編集することを示す図である。
【図９Ａ】図９Ａは、一致したテンプレート形状に基づいて入力フリーフォーム及び種々の領域の一例を示す図である。
【図９Ｂ】図９Ｂは、一致したテンプレート形状に基づいて入力フリーフォーム及び種々の領域の一例を示す図である。
【図９Ｃ】図９Ｃは、一致したテンプレート形状に基づいて入力フリーフォーム及び種々の領域の一例を示す図である。
【図９Ｄ】図９Ｄは、一致したテンプレート形状に基づいて入力フリーフォーム及び種々の領域の一例を示す図である。
【図９Ｅ】図９Ｅは、一致したテンプレート形状に基づいて入力フリーフォーム及び種々の領域の一例を示す図である。
【図１０】図１０は、制御点を含む非テンプレート形状の一例を示す図である。
【図１１】図１１は、形状パラメータ化の第２の手法を示すフローチャートである。
【図１２】図１２は、形状パラメータ化の第３の手法を示すフローチャートである。
【図１３Ａ】図１３Ａは、入力フリーフォームオブジェクト及び制御点が見つけられてもよい方法の例を示す図である。
【図１３Ｂ】図１３Ｂは、入力フリーフォームオブジェクト及び制御点が見つけられてもよい方法の例を示す図である。
【図１３Ｃ】図１３Ｃは、入力フリーフォームオブジェクト及び制御点が見つけられてもよい方法の例を示す図である。
【図１３Ｄ】図１３Ｄは、入力フリーフォームオブジェクト及び制御点が見つけられてもよい方法の例を示す図である。
【図１４】図１４は、制御点を含む非テンプレート形状の一例を示す図である。
【図１５】図１５は、形状パラメータ化の第４の手法を示すフローチャートである。
【図１６】図１６は、制御点を含む非テンプレート対称形状の一例を示す図である。
【図１７】図１７は、形状パラメータ化の第５の手法を示すフローチャートである。
【図１８Ａ】図１８Ａは、制御点を含むテンプレート多輪郭形状及び非テンプレート多輪郭形状の一例を示す図である。
【図１８Ｂ】図１８Ｂは、制御点を含むテンプレート多輪郭形状及び非テンプレート多輪郭形状の一例を示す図である。
【図１８Ｃ】図１８Ｃは、制御点を含むテンプレート多輪郭形状及び非テンプレート多輪郭形状の一例を示す図である。
【図１９Ａ】図１９Ａは、説明された構成が実施される汎用コンピュータシステムの概略ブロック図表現を総合的に形成する図である。
【図１９Ｂ】図１９Ｂは、説明された構成が実施される汎用コンピュータシステムの概略ブロック図表現を総合的に形成する図である。
【図２０Ａ】図２０Ａは、更なる固定点を含む非テンプレート形状の一例を示す図である。
【図２０Ｂ】図２０Ｂは、更なる固定点を含む非テンプレート形状の一例を示す図である。
【発明を実施するための形態】
【００１３】
図１は、説明される構成が実施できる環境を表すシステム１００を示す。文書１１０は、スキャナ１２０によりスキャンされ、ビットマップ画像としてメモリに格納されてもよい入力スキャン文書画像１３０を形成する。入力スキャン文書画像１３０は、本明細書において説明される１または複数の構成に従って処理モジュール１４０において処理される。処理モジュール１４０は、出力幾何学的オブジェクトの品質を向上することを含む複数のビットマップ画像解析処理段階を実行してもよい。ファイル記述又はビットマップ画像１３０（すなわち、スキャン文書）のオブジェクト表現１５０は、テンプレート形状、結合子、並びに線種、塗りつぶし方法及び矢じり等の種々の様式を含むフリーフォーム要素の形式の図形内容を含む処理モジュール１４０により生成される。ファイル１５０は、ファイル１５０が入力されてもよいコンピュータ１６０等の適切なデバイス上で実行する構造化されたテキスト／グラフィックス編集アプリケーションを使用して編集するのに適する図要素１６１及び１６２（グラフィカルオブジェクト）を含んでもよい。
【００１４】
文書１１０は、種々のコンテンツタイプを含む複合文書であってもよい。コンテンツは、テンプレート形状要素１１４及びチャート１１５、並びにテキスト１１１、テーブル１１２及び（ビットマップ）画像１１３等の図ではない要素を含んでもよいが、それらに限定されない。文書１１０は、プリンタ、ファックス装置、プロジェクタ、あるいは用紙又はホワイトボード上のペン等のより従来の媒体を使用して生成されてもよく、元の電子文書の不完全な表現であってもよい。スキャナ１２０は、スタンドアロンスキャナ、ハンドヘルドスキャナ又は多機能プリンタ等のより大きなシステムに組み込まれたスキャナであってもよい。更にスキャナ１２０は、カメラ、移動電話又はパーソナルオーガナイザ等の他の何らかの撮像デバイスであってもよい。更にスキャナ１２０は、入力ビットマップ画像１３０にノイズを与える可能性がある。処理モジュール１４０の例には、コンピュータ、多機能プリンタ、移動電話又はパーソナルオーガナイザが含まれる。
【００１５】
図１９Ａ及び図１９Ｂは、説明される種々の構成が実施される汎用コンピュータシステム１９００を示す。
【００１６】
図１９Ａに示されるように、コンピュータシステム１９００は、コンピュータモジュール１９０１、キーボード１９０２、マウスポインタデバイス１９０３、スキャナ１２０、カメラ１９２７及びマイク１９８０等の入力デバイス、並びにプリンタ１９１５、表示装置１９１４及びスピーカ１９１７を含む出力デバイスを備える。一般に、処理モジュール１４０及びコンピュータ１６０の機能は、種々の入力デバイス及び出力デバイスと関連付けてコンピュータモジュール１９０１により実行される。外部変復調器（モデム）送受信機デバイス１９１６は、例えば文書画像１３０のソースとして接続１９２１を介して通信ネットワーク１９２０と通信するためにコンピュータモジュール１９０１により使用されてもよい。通信ネットワーク１９２０は、インターネット、セルラ電気通信ネットワーク等のワイドエリアネットワーク（ＷＡＮ）又は専用ＷＡＮであってもよい。接続１９２１が電話線である場合、モデム１９１６は従来の「ダイヤルアップ」モデムであってもよい。あるいは、接続１９２１が大容量（例えば、ケーブル）接続である場合、モデム１９１６はブロードバンドモデムであってもよい。無線モデムは、通信ネットワーク１９２０に無線接続するために更に使用されてもよい。
【００１７】
コンピュータモジュール１９０１は、一般に、少なくとも１つのプロセッサユニット１９０５及びメモリユニット１９０６を含む。例えばメモリユニット１９０６は、半導体ランダムアクセスメモリ（ＲＡＭ）及び半導体読み出し専用メモリ（ＲＯＭ）を有してもよい。コンピュータモジュール１９０１は、ビデオディスプレイ１９１４、スピーカ１９１７及びマイク１９８０に結合するオーディオ／ビデオインタフェース１９０７、キーボード１９０２、マウス１９０３、スキャナ１２０、カメラ１９２７及びオプションとしてジョイスティック又はヒューマンインタフェースデバイス（不図示）に結合するＩ／Ｏインタフェース１９１３、並びに外部モデム１９１６及びプリンタ１９１５用のインタフェース１９０８を含む複数の入出力（Ｉ／Ｏ）インタフェースを更に含む。いくつかの実現例において、モデム１９１６は、インタフェース１９０８等のコンピュータモジュール１９０１内に組み込まれてもよい。コンピュータモジュール１９０１は、接続１９２３を介してコンピュータシステム１９００がローカルエリアネットワーク（ＬＡＮ）として既知であるローカルエリア通信ネットワーク１９２２に接続できるようにするローカルネットワークインタフェース１９１１を更に有する。図１９Ａに示されるように、ローカル通信ネットワーク１９２２は、一般にいわゆる「ファイアウォール」デバイス又は同様の機能性を備えたデバイスを含むワイドネットワーク１９２０に接続１９２４を介して更に結合してもよい。ローカルネットワークインタフェース１９１１は、ＥｔｈｅｒｎｅｔＴＭ回路カード、ＢｌｕｅｔｏｏｔｈＴＭ無線装置又はＩＥＥＥ８０２．１１無線装置を備えてもよいが、多数の他の種類のインタフェースがインタフェース１９１１に対して実施されてもよい。
【００１８】
Ｉ／Ｏインタフェース１９０８及び１９１３は、直列接続性及び並列接続性のいずれか一方又は双方を提供してもよい。一般に直列接続性は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に従って実現され且つ対応するＵＳＢコネクタ（不図示）を有する。記憶装置１９０９が提供され、一般に記憶装置１９０９は、例えば文書画像１３０及び出力ファイル１５０が格納されてもよいハードディスクドライブ（ＨＤＤ）１９１０を含む。フロッピディスクドライブ及び磁気テープドライブ（不図示）等の他の記憶装置が更に使用されてもよい。オプションのディスクドライブ１９１２は、一般に、データの不揮発性ソースとして動作するように提供される。例えば、光ディスク（例えば、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙ  ＤｉｓｃＴＭ）、ＵＳＢ−ＲＡＭ、取り外し可能な外部ハードドライブ及びフロッピディスク等のポータブルメモリ装置は、システム１９００に対する適当なデータのソースとして使用されてもよい。
【００１９】
コンピュータモジュール１９０１の構成要素１９０５〜１９１３は、一般に、相互接続バス１９０４を介して通信し、且つ結果として当業者に既知であるコンピュータシステム１９００の動作の従来のモードから得られる方法で通信する。例えばプロセッサ１９０５は、接続１９１８を使用してシステムバス１９０４に結合される。同様に、メモリ１９０６及び光ディスクドライブ１９１２は、接続１９１９によりシステムバス１９０４に結合される。説明する構成が実施されるコンピュータの例には、ＩＢＭのＰＣ及び互換性のあるもの、Ｓｕｎ  Ｓｐａｒｃｓｔａｔｉｏｎｓ、Ａｐｐｌｅ  ＭａｃＴＭ又は同様のコンピュータシステムが含まれる。
【００２０】
形状のパラメータ化を使用して編集可能な文書を生成する方法は、コンピュータシステム１９００を使用して実現されてもよい。説明される図２〜図１８の処理は、コンピュータシステム１９００内で実行可能な１または複数のソフトウェアアプリケーションプログラム１９３３として実現されてもよい。特に、編集可能な文書生成の方法のステップは、コンピュータシステム１９００内で実行されるソフトウェア１９３３で命令１９３１（図１９Ｂを参照）により実施される。ソフトウェア命令１９３１は、各々が１または複数の特定のタスクを実行する１または複数のコードモジュールとして形成されてもよい。ソフトウェアは２つの別個の部分に更に分割されてもよく、第１の部分及び対応するコードモジュールは編集可能な文書生成方法を実行し、第２の部分及び対応するコードモジュールは、第１の部分とユーザとの間のユーザインタフェースを管理する。
【００２１】
例えばソフトウェアは、以下に説明する記憶装置を含むコンピュータ可読媒体に格納されてもよい。ソフトウェアは、コンピュータ可読媒体からシステム１９００にロードされ、コンピュータシステム１９００により実行される。コンピュータ可読媒体上に記録されたそのようなソフトウェア又はコンピュータプログラムを有するコンピュータ可読媒体は、コンピュータプログラムプロダクトである。コンピュータシステム１９００においてコンピュータプログラムプロダクトを使用することにより、編集可能な文書を生成するために形状パラメータ及び制御点を見つけるように入力形状を処理する有利な装置を好ましい。
【００２２】
一般にソフトウェア１９３３は、ＨＤＤ１９１０又はメモリ１９０６に格納される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム１９００にロードされ、コンピュータシステム１９００により実行される。従って、例えばソフトウェア１９３３は、光ディスクドライブ１９１２により読み出される光学的に読み出し可能なディスク記憶装置媒体（例えば、ＣＤ−ＲＯＭ）１９２５上に格納されてもよい。コンピュータ可読媒体上に記録されたそのようなソフトウェア又はコンピュータプログラムを有するコンピュータ可読媒体は、コンピュータプログラムプロダクトである。コンピュータシステム１９００においてコンピュータプログラムを使用することにより、編集可能な文書を生成する装置を実施するのが好ましい。
【００２３】
いくつかの例において、アプリケーションプログラム１９３３は、１または複数のＣＤ−ＲＯＭ１９２５上で符号化されてユーザに供給され且つ対応するドライブ１９１２を介して読み出されてもよく、あるいはユーザによりネットワーク１９２０又は１９２２から読み出されてもよい。更にソフトウェアは、他のコンピュータ可読媒体からコンピュータシステム１９００にロードされてもよい。コンピュータ可読記憶媒体は、実行及び／又は処理するために記録された命令及び／又はデータをコンピュータシステム１９００に提供するあらゆる非一過性の有形記憶媒体を示す。そのような記憶媒体の例には、フロッピディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙ  Ｄｉｓｃ、ハードディスクドライブ、ＲＯＭ又は集積回路、ＵＳＢメモリ、光磁気ディスク、あるいは例えばＰＣＭＣＩＡカード等のコンピュータ可読カードが含まれ、そのようなデバイスは、コンピュータモジュール１９０１の内部又は外部にある。ソフトウェア、アプリケーションプログラム、命令及び／又はデータをコンピュータモジュール１９０１に提供することに更に関係してもよい一過性又は非一過性のコンピュータ可読伝送媒体の例には、無線送信チャネル又は赤外線送信チャネル及び別のコンピュータ又はネットワーク化されたデバイスへのネットワーク接続、並びに電子メール送信及びウェブサイト上等に記録された情報を含むインターネット又はイントラネットが含まれる。
【００２４】
上述したアプリケーションプログラム１９３３の第２の部分及び対応するコードモジュールは、ディスプレイ１９１４上にレンダリングされるか、あるいは表される１または複数のグラフィカルユーザインタフェース（ＧＵＩ）を実現するように実行されてもよい。一般にキーボード１９０２及びマウス１９０３を操作することにより、コンピュータシステム１９００及びアプリケーションのユーザは、ＧＵＩと関連付けられたアプリケーションに制御コマンド及び／又は入力を提供するように機能的に適応可能な方法でインタフェースを操作してもよい。他の形式の機能的に適応可能なユーザインタフェース、例えばスピーカ１９１７を介して出力された音声プロンプト及びマイク１９８０を介して入力されたユーザボイスコマンドを利用するオーディオインタフェースが更に実現されてもよい。
【００２５】
図１９Ｂは、プロセッサ１９０５及び「メモリ」１９３４を示す詳細な概略ブロック図である。メモリ１９３４は、図１９Ａのコンピュータモジュール１９０１によりアクセスされる全てのメモリモジュール（ＨＤＤ１９１０及び半導体メモリ１９０６を含む）の論理的な集合体を示す。
【００２６】
コンピュータモジュール１９０１の電源が最初に投入される場合、自己診断（ＰＯＳＴ）プログラム１９５０が実行する。一般にＰＯＳＴプログラム１９５０は、図１９Ａの半導体メモリ１９０６のＲＯＭ１９４９に格納される。ソフトウェアを格納するＲＯＭ１９４９等のハードウェアデバイスは、ファームウェアと呼ばれる場合もある。ＰＯＳＴプログラム１９５０は、コンピュータモジュール１９０１内のハードウェアを調査して適切に機能することを保証し、一般に、正しく動作するためにＲＯＭ１９４９に更に格納されたプロセッサ１９０５、メモリ１９３４（１９０９、１９０６）及び基本入出力システム（ＢＩＯＳ）ソフトウェアモジュール１９５１をチェックする。ＰＯＳＴプログラム１９５０が正常に実行したら、ＢＩＯＳ１９５１は図１９Ａのハードディスクドライブ１９１０を起動する。ハードディスクドライブ１９１０を起動することにより、ハードディスクドライブ１９１０上に常駐するブートストラップローダプログラム１９５２がプロセッサ１９０５を介して実行する。これにより、オペレーティングシステム１９５３は、ＲＡＭメモリ１９０６にロードされると動作を開始する。オペレーティングシステム１９５３は、プロセッサ１９０５により実行可能なシステムレベルのアプリケーションであり、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、ソフトウェアアプリケーションインタフェース及び汎用ユーザインタフェースを含む種々のハイレベルな機能を遂行する。
【００２７】
オペレーティングシステム１９５３は、メモリ１９３４（１９０９、１９０６）を管理し、コンピュータモジュール１９０１上で実行する処理又はアプリケーションの各々が別の処理に割り当てられたメモリと衝突することなく実行する十分なメモリを有することを保証する。また、図１９Ａのシステム１９００で使用可能な種々のメモリは、各処理が効率的に実行するように適切に使用される必要がある。従って、集約メモリ１９３４は、メモリの特定の部分が割り当てられる方法を示すことを意図せず（明示的に記載されない限り）、コンピュータシステム１９００によりアクセス可能なメモリの概略図及びそのようなメモリが使用される方法を提供する。
【００２８】
図１９Ｂに示されるように、プロセッサ１９０５は、制御ユニット１９３９、演算論理装置（ＡＬＵ：Arithmetic Logic Unit）１９４０及びキャッシュメモリと呼ばれることもあるローカルメモリ又は内部メモリ１９４８を含む多数の機能モジュールを含む。一般にキャッシュメモリ１９４８は、レジスタ部に複数の記憶レジスタ１９４４〜１９４６を含む。１または複数の内部バス１９４１は、これらの機能モジュールを機能的に相互接続する。一般にプロセッサ１９０５は、接続１９１８を使用してシステムバス１９０４を介して外部デバイスと通信する１つ以上のインタフェース１９４２を更に有する。メモリ１９３４は、接続１９１９を使用してバス１９０４に結合される。
【００２９】
アプリケーションプログラム１９３３は、条件付き分岐命令及びループ命令を含んでもよい一連の命令１９３１を含む。プログラム１９３３は、プログラム１９３３を実行するのに使用されるデータ１９３２を更に含んでもよい。命令１９３１及びデータ１９３２は、それぞれ、記憶場所１９２８、１９２９、１９３０及び１９３５、１９３６、１９３７に格納される。命令１９３１及び記憶場所１９２８〜１９３０の相対的な大きさに依存して、特定の命令は、記憶場所１９３０に示された命令により表現されたように単一の記憶場所に格納されてもよい。あるいは、命令は、記憶場所１９２８及び１９２９に示された命令部分により表現されたように、各々が別個の記憶場所に格納される多数の部分に分割されてもよい。
【００３０】
一般にプロセッサ１９０５は、そこで実行される命令の集合を与えられる。プロセッサ１９０５は、命令の別の集合を実行することにより自身が対応する後続の入力を待つ。各入力は、入力デバイス１９０２、１９０３の１または複数により生成されたデータ、ネットワーク１９２０、１９０２のうちの一方を介して外部ソースから受信したデータ、記憶装置１９０６、１９０９のうちの一方から検索したデータ又は対応する読み取り装置１９１２に挿入された記憶媒体１９２５から検索したデータを含む多数のソースのうちの１つまたは複数から提供されてもよく、その全てが図１９Ａに示されたものである。いくつかの例において、命令の集合を実行した結果、データが出力されてもよい。実行することは、データ又は変数をメモリ１９３４に格納することを更に含んでもよい。
【００３１】
開示される構成は、対応する記憶場所１９５５、１９５６、１９５７においてメモリ１９３４に格納される入力変数１９５４を使用する。構成は、対応する記憶場所１９６２、１９６３、１９６４においてメモリ１９３４に格納される出力変数１９６１を生成する。中間変数１９５８は、記憶場所１９５９、１９６０、１９６６及び１９６７に格納されてもよい。
【００３２】
図１９Ｂのプロセッサ１９０５を参照すると、レジスタ１９４４、１９４５、１９４６、演算論理装置（ＡＬＵ）１９４０及び制御ユニット１９３９は、プログラム１９３３を構成する命令集合において命令毎に「取り込み(fetch)、復号化(decode)、及び実行(execute)」サイクルを実行するのに必要なマイクロ動作のシーケンスを実行するように共に動作する。取り込み、復号化、及び実行サイクルの各々は、以下を含む。
【００３３】
（ａ）記憶場所１９２８、１９２９、１９３０からの命令１９３１を取り込むかあるいは読み取る取り込み動作。
【００３４】
（ｂ）制御ユニット１９３９が取り込まれた命令を判定する復号化動作。
【００３５】
（ｃ）制御ユニット１９３９及び／又はＡＬＵ１９４０が命令を実行する命令動作。
【００３６】
その後、次の命令に対する更なる取り込み、復号化及び実行サイクルが実行されてもよい。同様に、制御ユニット１９３９が値を記憶場所１９３２に格納するかあるいは書き込むことにより、格納サイクルが実行されてもよい。
【００３７】
図２〜図１８の処理におけるステップ又はサブ処理の各々は、プログラム１９３３の１または複数の部分と関連付けられ、プログラム１９３３の示された部分に対して命令集合において命令毎に取り込み、復号化、及び実行サイクルを実行するようにプロセッサ１９０５のレジスタ部１９４４、１９４５、１９４７、ＡＬＵ１９４０及び制御ユニット１９３９が共に動作することにより実行される。
【００３８】
本明細書において使用されるような「テンプレート形状」という用語は、特定の編集環境又は表示環境内で閉じた外側境界線を含む変更可能な非テキスト形状オブジェクトの形式を規定する所定のモデルを示す。従って、本明細書において説明されるテンプレート形状は、「変更可能な閉形式非テキストテンプレート形状」である。多くのテンプレート形状は、単一の閉じた外側境界線から形成されるが、図２Ｂに示される「ｃａｎ」テンプレート形状２７０７７等のいくつかは他の内線を含む。図２Ｂの「太陽」テンプレート形状２７１０４等の他のいくつかのテンプレート形状は、２つ以上の閉じた外側境界線から作られ、本明細書において「解体テンプレート形状」と呼ばれる。テンプレート形状は複数のパラメータにより規定され、その解釈はテンプレート形状に対するモデル内で規定される。複数のパラメータは、アフィンパラメータ、制御パラメータ及び線幅パラメータを含んでもよい。テンプレート形状を規定するパラメータを以下に更に詳細に説明する。
【００３９】
図２Ａ及び図２Ｂは、テンプレート形状の集合である１０４個のＭｉｃｒｏｓｏｆｔＴＭ  Ａｕｔｏｓｈａｐｅｓ２７００１〜２７１０４の選択を示す。更に付録Ａは、図２Ａ及び図２Ｂの図中符号と共に図２Ａ及び図２ＢのＭｉｃｒｏｓｏｆｔＴＭ  ＡｕｔｏＳｈａｐｅｓの各々の名前を一覧表示する表である。
【００４０】
テンプレート形状のアフィンパラメータは、閉形式非テキストテンプレート形状に対する変更を規定する。そのような変更はアフィン変換により説明されてもよい。変更は、変倍、回転及びオフセットを含む。それぞれｘ軸及びｙ軸に沿うｓｘ及びｓｙの変倍、θの回転、並びにそれぞれｘ軸及びｙ軸に沿うΔｘ及びΔｙのオフセットに対して、アフィン変換は、以下の式１
0005340441.tif 000002
・・・（１）
に従って示されてもよい。
【００４１】
制御パラメータは、一般にテンプレート形状のアフィン変換に関して規定されないテンプレート形状に対する更なる幾何学的変更を規定する。各テンプレート形状は規定のＮ個の制御パラメータの集合を有し、Ｎはモデルにより規定され、ゼロであってもよい。テンプレート形状は、全体的に直定規（すなわち、多角形）又は曲線により規定されてもよく、あるいは頂点の集合間で直定規部分と曲線部分との混合を含んでもよい。一般に各制御パラメータは、複数の頂点、複数の曲線部分、あるいは複数の頂点及び曲線部分の双方を変更する。一般に制御パラメータは、１または複数の制御点を移動させることにより変化する。形状がグラフィカルユーザインタフェース（ＧＵＩ）内で選択される場合、一般に制御点は可視である。多くのＧＵＩにおいて、制御点は、例えば小さな黄色のひし形として現れる。本明細書の一部を形成する図面において、制御点は、小さな固定の黒色の正方形として示される。ユーザは、ＧＵＩ内でマウス又は他の形態のユーザ入力を使用して制御されている形状に対して制御点の位置を選択及び変更してもよい。制御点は、開始及び終了の境界等の制御点に適用された種々の異なる制約を有してもよく、あるいはｘ軸又はｙ軸においてのみ移動可能であってもよい。制御パラメータは、１または複数の制御点のテンプレート形状のバウンディングボックス(bounding box)に対するｘ軸及びｙ軸の位置の関数である。１つの制御点は、複数の制御パラメータへの入力であってもよい。
【００４２】
テンプレート形状の制御点（すなわち、制御パラメータ）を変更する効果は、テンプレート形状に対するテンプレートモデルにより規定される。制御パラメータは、非アフィン方法で閉形式非テキストテンプレート形状を変更するために使用されてもよい。１つの制御点を含む例示的なテンプレート形状３０１〜３２４の集合３００を図３に示す。各テンプレート形状３０１〜３２４に隣接するのは、制御点を示す黒色の正方形であり、そのｘ座標は対応する制御パラメータの値を示す。図３は、制御パラメータが丸みのある隅の曲率の半径を変更する丸みのある四角形（すなわち、３０１〜３０４）の集合を含む。図３は、制御パラメータが上部水平部分でテンプレート形状の左側の線の交点を規定する、台形（すなわち、３０５〜３０８）、六角形（すなわち、３０９〜３１２）及び八角形（すなわち、３１３〜３１６）を更に含む。図３は、制御パラメータ（例えば、３２６）が内部頂点及び外部頂点の相対半径を規定する１６個の先端を有する印（すなわち、３１７〜３２０）を更に含む。最後に、図３は、制御パラメータ（例えば、３２７）が月形状（すなわち、３２１〜３２４）の位相を規定する月形状を含む。
【００４３】
制御パラメータに対して使用される一般的な尺度は最大０〜１の範囲を有し、例えば六角形３０９〜３１２において使用されるような水平パラメータは、左端上で０であり、変更可能な点が真ん中になる場合は０．５である。従って、０．５はこの形状に対する最大値であるが、図２Ａの平方四辺形２７００７等の範囲が左から右の全域にわたる制御パラメータは、０〜１の値の全集合を取るであろう。
【００４４】
図４は、処理モジュール１４０により出力文書ファイル１５０を作成するために使用された第１の手法４００を示す。一般に方法４００は、ＨＤＤ１９１０上に格納され且つプロセッサ１９０５により実行可能なソフトウェアアプリケーションプログラムとして実現される。ステップ４１０において、入力画像１３０は、プロセッサ１９０５によりＨＤＤ１９１０から検索され、セグメント化される。セグメント化の間、プロセッサ１９０５は、入力画像１３０の画素値を検査し、略一定の領域又は場合によっては略平滑に変動する色の領域を見つける。識別された領域は、メモリ１９０６に一時的に格納されてもよい。次に領域は、入力画像１３０の領域に対応する固定色又は平滑な勾配オブジェクトの集合であるセグメント化処理４１０の出力との近接に基づいて共に接合される。一般に元の文書１１０の各形状は、線領域に対する１つのオブジェクト及び塗りつぶし領域に対する１つのオブジェクトにより示される。いくつかのオブジェクトは、フローチャート等において共に接続された複数の形状を含んでもよい。
【００４５】
ステップ４２０において、セグメンテーション４１０により生成されたオブジェクトは、ページレイアウト解析を使用して解析される。この処理４２０において、プロセッサ１９０５は、テキスト１１１、テーブル１１２、画像１１３、並びに図要素１１４及び１１５等のコンテンツタイプを区別して各オブジェクトが対応するコンテンツの種類を識別する。処理４２０は、ベクトル化ステップ４３０に関連して以下に説明される更なる処理のために、図要素に対応するオブジェクトを選択する。いくつかのアプリケーションにおいて、全ページレイアウト解析が使用されなくてもよいが、代わりに全てのオブジェクト又は少数の不適当な大きさのものを除くほぼ全てのオブジェクトが選択され、潜在的な図要素として解析されてもよい。
【００４６】
ベクトル化ステップ４３０において、形状作成方法は、プロセッサ１９０５により、画像コンテンツの解析ステップ４２０により潜在的な図オブジェクトとして選択されたオブジェクトに適用される。この形状作成方法は、選択されたオブジェクトの画素をゼロ以上の（直線）ラインセグメント及びゼロ以上の曲線セグメントの適当なベクトル表現に変換し、少なくとも１つのラインセグメント又は１つの曲線セグメントがある。これらのセグメントは、オブジェクトの適当なベクトル表現であり、本明細書においてフリーフォーム形状又は非テンプレート形状と呼ばれる。各入力形状は、少なくとも１つのそのようなセグメントにより規定される。形状を規定するセグメントは、格納又は管理しやすくするためにリストとして形成されてもよい。多くの既存のベクトル化技術は、ベクトル化ステップ４３０を実行するために使用されてもよい。
【００４７】
一般に元の文書１１０の各形状が線領域に対する１つのオブジェクト及び塗りつぶし領域に対する１つのオブジェクトにより示されるため、線フリーフォームは、輪郭一致又は変換による技術が後続するオブジェクトの細線化、ポリゴン化等の種々の既知のベクトル化方法により作成されてもよい。線フリーフォームは、閉じていなくてもよいが、依然としてその多くが閉じたテンプレート形状に殆ど類似してもよい。開線フリーフォームは、線の端を他の隣接する線の端に連結することにより、閉フリーフォーム形状と同一の方法で処理されてもよい。
【００４８】
図８Ｄは、線の端８３２及び８３４を共に連結することにより閉線フリーフォームとして処理されることができる例示的な開線フリーフォーム８３０を示す。一般に、線幅、並びに線及び塗りつぶしの色等の種々のパラメータと共に、塗りつぶしオブジェクトを線オブジェクトと関連付け、線及び塗りつぶしの双方を有するフリーフォーム形状を作成することが可能であってもよい。図２Ａ及び図２Ｂに示される全ての例示的なテンプレート形状は、所定の太さ及びホワイト塗りつぶし又はグレー塗りつぶしを含む黒線を有する線フリーフォームである。
【００４９】
図８Ｅは、スキャンされ且つベクトル化されたフリーフォーム矢印８２０を示す。矢印８２０の外形は、セグメント８５１等の一連の直線ラインセグメントに分解されている。各セグメントは、セグメント８５１を規定する点８５２及び８５３、並びにその上の全ての点等の始点及び終点により規定される。矢印８２０のベクトル表現は、セグメントの再構成を可能にするためにリストに始点及び終点を格納することにより保存されてもよい。始点及び終点は、例えば上述したようにＧＵＩを介して制御点をクリックし且つドラッグするユーザ等により、ベクトル化された形状の潜在的な変更に対する制御点として使用されてもよい。そのような変更の一例を図８Ｆに示す。図８Ｆにおいて、制御点８５２はＧＵＩを介して点８５２’になるように手動で移動されているため、セグメント８５１をセグメント８５１’になるように変更することにより、形状８２０を所定の新しい形状８２０’に編集する。
【００５０】
図４に戻り、ステップ４４０において、パラメータ化された形状を形成する処理は、プロセッサ１９０５により、ステップ４３０で作成されたフリーフォーム形状（セグメント）に適用される。形成されたパラメータ化された形状は、上述したようなテンプレート形状であってもよく、あるいは１または複数のテンプレート形状から導出される制御点を含むフリーフォーム形状であってもよい。特にステップ４４０は、入力形状と分類されたテンプレート形状との類似度に基づいて入力形状に対する代表的な形式を判定する。代表的な形式は、分類されたテンプレート形状の制御点から導出された代表的な形式の少なくとも１つの制御点を有するセグメントに基づいて、分類されたテンプレート形状及び非テンプレート形状から構成されるグループから類似度に従って選択される。以下、図５を参照してこの処理を更に詳細に説明する。
【００５１】
最後に、ステップ４５０において、出力文書ファイル１５０はプロセッサ１９０５により作成される。この文書は、ステップ４４０により生成されたような制御点（代表的な形式）を含むステップ４３０のテンプレート形状及びフリーフォーム形状の表現を含む。この出力ファイル１５０は、ＭｉｃｒｏｓｏｆｔＴＭ  ＷｏｒｄＴＭ又はＰｏｗｅｒＰｏｉｎｔＴＭ用のＭｉｃｒｏｓｏｆｔＴＭ（ＯＯＸＭＬ）Ｏｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬ形式に書き込まれてもよく、あるいはＯｐｅｎＤｏｃｕｍｅｎｔ  ｆｉｌｅ  ｆｏｒｍａｔ（ＯＤＦ）等に代わりに書き込まれてもよい。種々の他のファイル形式が更に適していてもよい。出力文書は、テキスト等の他の種類のコンテンツの解析結果を更に含んでもよい。
【００５２】
図５は、図４においてステップ４４０のパラメータ化された形状を形成するために使用される処理５００を示す。ステップ５１０において、次に未処理のフリーフォーム形状が選択される。ステップ５２０において、パラメータ化された形状は、図６を参照して説明される処理を使用してプロセッサ１９０５により形成される。ステップ５３０において、テストがプロセッサ１９０５により実施され、更なる未処理のフリーフォーム形状があるかを判定する。更なる未処理のフリーフォーム形状がない場合、処理５００は終了する。さもなければ、ステップ５１０で次のフリーフォーム形状が選択される。
【００５３】
図６は、ステップ５２０で説明したように、フリーフォーム形状からパラメータ化された形状を形成するために使用される処理６００を示す。受信ステップ６１０において、少なくとも１つのラインセグメント及び／又は少なくとも１つの曲線セグメントを含む入力フリーフォーム形状は、フリーフォーム形状生成ステップ４３０から受信される。ラインセグメント及び曲線セグメントは、分類ステップ６２０でフリーフォーム形状を分類するために使用されてもよい。分類ステップ６２０において、プロセッサ１９０５は、メモリ１９０６に一時的に格納されてもよく、且つ入力フリーフォーム形状が類似する１または複数のテンプレート形状を選択する。分類ステップ６２０を実行するために使用されてもよい１つの方法は、フリーフォーム形状のラインセグメント及び曲線セグメントから導出された入力に基づく機械学習分類機である。多数の訓練テンプレート形状は、種々の制御パラメータ値、１（単位正方形）に正規化されているテンプレート形状の領域、ゼロに正規化された（１，１）中心モーメント、および同等に正規化された（２，０）及び（０，２）中心モーメントで作成されてもよい。単位円からの垂直距離のサンプリングは、フーリエ変換され、サポートベクタマシン（ＳＶＭ）等の機械分類機に対して特徴訓練データを生成してもよい。これにより複数のＳＶＭを生成し、入力形状が一方のテンプレート形状又は他方のテンプレート形状であるかを判断するために使用されるテンプレート訓練形状の対毎に１つ生成する。次に正規化手順は、入力フリーフォーム形状及び結果に適用された全てのＳＶＭに適用されてもよい。これによりテンプレート形状毎にスコアを生成し、スコアが最も高いテンプレート形状は、類似するものとして選択されてもよい。あるいは、少数のテンプレート形状のみがある場合、それら全ては分類ステップ６２０で選択されてもよい。
【００５４】
分類ステップ６２０において、類似するテンプレート形状のパラメータが更に算出される。上述したように、テンプレート形状のパラメータは、変倍及び回転、並びに特にテンプレート形状に対するあらゆる制御パラメータを含む。フリーフォーム形状の制御パラメータに厳密に一致するようにテンプレート形状の制御パラメータを算出する１つの方法は、領域が単一であり、（１，１）中心モーメントがゼロであり、且つ（２，０）及び（０，２）中心モーメントが同等であるようにフリーフォーム形状をアフィン正規化する方法である。Zernikeモーメントは、制御パラメータの初期集合を含む入力フリーフォーム形状及びテンプレート形状に対して算出されてもよい。滑降シンプレックス法（downhill simplex method）等の多次元関数最小化は、フリーフォーム形状のZernikeモーメントとテンプレート形状のZernikeモーメントとの距離を最小化する制御パラメータの集合を見つけるために使用されてもよい。入力形状に対する縮尺推定値を算出する１つの方法は、入力フリーフォーム形状に対して（２，０）及び（０，２）中心モーメントを使用し、且つテンプレート形状（適用された制御パラメータを含む）の（２，０）及び（０，２）中心モーメントと比較する方法である。回転推定値を算出する１つの方法は、テンプレート形状（適用された変倍パラメータ及び制御パラメータを含む）、並びに入力フリーフォーム形状を各形状を中心とした複数の同じ大きさのくさび形（例えば、６４個）に分解する方法である。各くさび形内部の形状の領域は２つの形状間で相関されてもよく、相関関数のピークが回転角度推定値を与える。
【００５５】
ステップ６３０において、類似度、すなわち一致スコアは、プロセッサ１９０５により算出され、先の分類６２０ステップで見つけられたパラメータを適用されたテンプレート形状がどれ程適切にフリーフォーム形状に一致するかを評価する。種々の技術は、正規化された領域による不一致、ハウスドルフ距離又はｅａｒｔｈ−ｍｏｖｅｒｓ  ｄｉｓｔａｎｃｅ等の類似度を算出するために使用されてもよい。一般に、ステップ６３０に対して有用である技術に対して、テンプレート形状及び入力フリーフォーム形状の融合と交点との間の差が不利益をもたらすようにされるべきである。類似度は、より高い類似度又はスコアがより低い類似度より厳密な視覚一致を示すように算出されてもよい。判断ステップ６４０において、類似度が最も高いテンプレート形状に対して類似度が所定の閾値以上である場合、テンプレート形状はステップ６５０で作成される。ステップ６５０で作成されたテンプレート形状は、分類されたテンプレート形状である適用されたステップ６２０で見つけられた全てのパラメータを有するため、ステップ６３０で一致スコアにより測定されたような入力フリーフォーム形状に類似する。これは、フリーフォーム形状又は制御パラメータを含むフリーフォーム形状より小さい出力文書の記述を使用して特定のテンプレート形状を表現できる場合にも当てはまるだろう。
【００５６】
ステップ６４０の類似度判断閾値は、類似度範囲に対して最大で設定されてもよく、その場合、テンプレート形状と全く同一を探し且つ挙動するステップ６６０にて制御点を含むフリーフォーム形状を出力することが可能であるが、これは有用ではなくあるいは望ましくないだろう。ステップ６３０で一致したテンプレート形状が特定の出力ファイル１５０において表現されるようなテンプレート形状ではないことが更に可能である。この場合、判断ステップ６４０はスキップされてもよく、破線６３５で示されるように処理はステップ６６０に進む。
【００５７】
類似度が類似度閾値を下回り且つ一致したテンプレート形状が制御点を有さないとステップ６４０で判断される場合、入力フリーフォームは出力形状として変更されずに出力される。その後フローは図５のステップ５３０で継続する。ステップ６４０で類似度が類似度閾値を下回ると判断される場合、ステップ６６０で制御点を含む非テンプレート形状が作成される。図７の方法７００は、ステップ６６０で処理を実行するために使用されてもよい。生成された非テンプレート形状は、制御パラメータを含むパラメータの集合の関数である幾何学的記述から構成される。幾何学的記述は、セグメント、すなわち関連付けられたオブジェクトの幾何学的変更に対応する。フリーフォーム形状セグメントに従ってそれを構成する非テンプレート形状に対するパラメータの集合が更に返送される。双方の場合において、ここで入力フリーフォーム形状は、テンプレートバージョン又は非テンプレートバージョンのいずれかの制御点を含む形状としてステップ６７０で出力される。この段階において、判定された代表的な形式を含む出力形状は、ＨＤＤ１９１０に格納されてもよい。
【００５８】
図７は、ステップ６６０のような制御点を含む非テンプレート形状を作成する処理７００を示す。ステップ６２０でマッチングテンプレート形状に対して見つけられた制御パラメータ及び関連付けられた制御点は、非テンプレート形状に対する制御パラメータとしてステップ７１０でプロセッサ１９０５により割り当てられる。ステップ７２０において、フリーフォーム形状のセグメントを構成する全ての点は、プロセッサ１９０５により、制御パラメータ、並びに変倍及び回転を含むテンプレートパラメータの関数になるように変換される。フリーフォーム形状のあらゆる曲線セグメントをマッピングする関数を生成するために、曲線は、２つの端点及び曲線を規定する１または複数の他の点により表されると仮定する。この表現の一例は３次ベジェ曲線である。変倍パラメータ及び回転パラメータはアフィンであり、フリーフォーム形状セグメントからこれらのパラメータへの単純なマッピングがある。制御パラメータは、マッピングをより複雑にする非アフィンであってもよい。しかし、これは、制御パラメータの変更がアフィンである２つ以上の領域にテンプレート形状を分割できる場合にも当てはまるだろう。この場合、アフィンマッピング関数は、セグメントの一部であるテンプレート形状の分割された領域に依存してフリーフォーム形状の各セグメントに対して構成されてもよい。
【００５９】
ステップ７２０の一例を図８Ａ〜図８Ｄに示す。図８Ａ〜図８Ｄは、図８Ｅを参照して上述し且つ図８Ａに更に示された入力フリーフォーム形状８２０に一致している左矢印テンプレート形状８１０を示す。８００で図８Ａに示された２つの形状の重複により示されるように、形状マッチングは、フリーフォーム形状に類似する矢印形状の構成を選択している。矢印テンプレート形状８１０の２つの制御点８０１及び８０２の場所が丸で囲まれるが、制御点に対する指標（黄色のひし形、黒色の正方形）は、明確にするために示されない。制御点８０１及び８０２の各々は、矢じり領域の外観及びテンプレート形状８１０の矢幹領域をそれぞれ制御するように個々に操作可能である。この例の類似度は、例示的な閾値９５を下回る１００のうちの８６．２６であってもよい。図８Ｂに示されるように、一致した矢印テンプレート形状８１０は、一致した矢印形状の制御点８１３及び８１４、並びに水平軸８１１及び垂直軸８１２に従って作成された幾何学的形状の複数の領域を示す。領域境界線８１５、８１６、８１７及び８１８を破線で示す。領域境界線８１５は、制御点８１４を介して一致した矢印テンプレート形状８１０の垂直軸に平行に線を拡張することにより形成される。領域境界線８１６は、制御点８１３を介して一致した矢印テンプレート形状８１０の水平軸に平行に線を拡張することにより形成される。領域境界線８１７は、一致した矢印テンプレート形状８１０の水平中線である。領域境界線８１８は、水平中線８１７を介した境界線８１６の反射である。移動制御点８１４はテンプレート形状８１０に対してｘ座標のみを変更するため、制御点８１４のｘ座標は制御パラメータである。移動制御点８１４は、それぞれ各領域を変倍する境界線８１５を移動させる。移動制御点８１３はテンプレート形状８１０に対してｙ座標のみを変更するため、制御点８１３のｙ座標は別の制御パラメータである。移動制御点８１３は、境界線８１６及び８１８が境界線８１７から常に等距離であるようにそれらを移動させる。これらの境界線により規定された４つの領域は、それぞれ変倍される。
【００６０】
一致したテンプレート形状８１０からの領域は、入力フリーフォーム形状８２０に重ね合わされて図８Ｃに示される。制御点８２１及び８２２は丸で示され、領域境界は線８２３、８２４、８２５及び８２６で示される。フリーフォーム形状の各領域は、制御パラメータからセグメントをマッピングする異なる関数及び非テンプレート形状の出力値への変倍を有する。
【００６１】
図９Ａ〜図９Ｅは、領域境界（ラベルの付いていない）と共に入力フリーフォーム形状８２０の５つの異なる領域９００、９１０、９２０、９３０及び９４０を示す。
【００６２】
領域９００においてフリーフォーム形状のセグメントを規定する点を非テンプレート形状に対する出力座標ｘ及びｙにマッピングする関数を式（２）に示す。関数は、制御点の新しい位置に基づいて作成された非テンプレート形状のセグメントを規定する点を変換し、新しい制御パラメータ値、すなわち作成された非テンプレート形状のｘ変倍及びｙ変倍を与える。式（２）に示される関数は、作成された非テンプレート形状の第１の制御パラメータの変化により領域９００において全ての点を変倍する変倍演算である。式（２）において、
−変数ｘｃｐ１は、テンプレート形状の第１の制御点８２２の第１の制御パラメータ及びｘ座標である
−変数ｙｃｐ２は、テンプレート形状の第２の制御パラメータ及び第２の制御点８２１のｙ座標である
−定数ｆｆｃｐ１は、フリーフォーム形状の第１の制御点８２２に対するｘ座標の元の値である
−定数ｆｆｃｐ２は、フリーフォーム形状の第２の制御点８２１のｙ座標の元の値である
−変数ｓｘ及びｓｙは、それぞれ、作成された非テンプレート形状の水平変倍及び垂直変倍である
−定数ｆｆｓｘ及びｆｆｓｙは、フリーフォーム形状の元の水平変倍及び垂直変倍である
−定数ｘｓｅｇ及びｙｓｅｇは、フリーフォーム形状のセグメントを規定する点のｘ座標及びｙ座標である。
0005340441.tif 000003
・・・（２）
【００６３】
領域９４０においてフリーフォーム形状のセグメントを規定する点を非テンプレート形状に対する出力値にマッピングする関数を式（３）に示す。領域９３０においてフリーフォーム形状のセグメントを規定する点を非テンプレート形状に対する出力値にマッピングする関数を式（４）に示す。領域９２０においてフリーフォーム形状のセグメントを規定する点を非テンプレート形状に対する出力値にマッピングする関数を式（５）に示す。領域９１０においてフリーフォーム形状のセグメントを規定する点を非テンプレート形状に対する出力値にマッピングする関数を式（６）に示す。
0005340441.tif 000004
・・・（３）
0005340441.tif 000005
・・・（４）
0005340441.tif 000006
・・・（５）
0005340441.tif 000007
・・・（６）
【００６４】
フリーフォーム形状の点を作成された非テンプレート形状の点にマッピングする式（２）〜（６）はアフィンであり、変倍項及びオフセットから構成される。式（３）〜（６）に対するｘ変倍項及びオフセット項は全て同一であり、変倍ｓｘ及びｓｙ、並びに第１の制御パラメータｘｃｐ１のみに依存する。ｘ変倍及びオフセットは、領域９００に対する式（２）に対するそれとは逆の変倍、並びに領域８２３の最初の場所及び最後の場所に依存するオフセットを必要とする領域８２３における移動により、点を変倍する。式（３）〜（６）に対するｙ変倍項及びオフセット項は、領域８２４及び８２６の移動に基づく。式（６）及び（３）に対応する領域９１０及び９４０に対する変倍項は、それらが常に同一の大きさを有するため同一である。同様に、式（５）及び（４）に対応する領域９２０及び９３０に対する変倍項は、それらが常に同一の大きさを有するため同一である。式（３）の場合は常にゼロであり且つ式（６）の場合は領域８２４の場所に基づく種々のオフセットのために、式（３）と（６）とは異なる。式（５）の場合は制御パラメータに依存しない領域８２５であり且つ式（４）の場合は領域８２６である種々のオフセットのために、式（４）と（５）とは異なる。
【００６５】
式（２）〜（６）の各関数は、出力ファイル記述１５０において表現可能な形式である必要があるため、入力形状の表現は、対応する領域及び制御点の記述により形成されてもよい。例えばＭｉｃｒｏｓｏｆｔＴＭ  ＯＯＸＭＬ標準は、加算、減算、乗算、除算、多くの三角関数及びｉｆ−ｔｈｅｎ−ｅｌｓｅ演算子を含む関数に合成されてもよい演算の集合を有する。式（２）〜（６）は、ラインセグメント又は曲線セグメントの各点が点を算出するために別個の関数を必要とする演算子のＯＯＸＭＬ集合で表されてもよい。図８Ｄに示された入力線フリーフォーム８３０は、線の２つの端を共に連結して入力フリーフォーム形状を作成することにより、制御点を含む非テンプレート形状を生成するように処理されてもよい、閉じていない入力線フリーフォームの一例を示す。
【００６６】
図１０は、左矢印テンプレートの２つの制御点に基づいてそれらを含む非テンプレート形状の一例を示す。非テンプレート形状は、１２個の異なる幾何学的変更１００１〜１００６及び１０１１〜１０１６で示される。２つの制御点は、１０００及び１０１０として示される。形状１００１〜１００６は、制御点１０００の種々の位置より発生する幾何学的変更を示す。形状１０１１〜１０１６は、制御点１０１０の種々の位置より発生する幾何学的変更を示す。尚、各制御点は他の制御点に関係なく移動してもよい。
【００６７】
制御点を含む非テンプレート形状の作成は、入力フリーフォーム形状と同様の又は同一の線幅、線の色又は塗りつぶしの色を有する作成された形状の機能に全く影響を及ぼさない。多くの入力に対して、制御点を含む出力非テンプレート形状が入力フリーフォーム形状の画像と同一の画像を生成することが可能である。
【００６８】
入力フリーフォーム形状の領域分割、並びに制御点１０００及び１０１０の識別及び操作の正味の影響は、フリーフォーム形状のフリーフォーム外観を保持しつつ、入力フリーフォーム形状をテンプレート形状として処理し且つテンプレート形状のように編集可能にするのを許可することである。図１０において、制御点１０００及び１０１０の操作は、ユーザが操作でき、例えば全てがフリーフォーム外観を保持するフリーフォーム形状１００１〜１００６及び１０１１〜１０１６を誘発できるように、フリーフォーム形状の２つの分解可能な制御可能な領域（矢じり及び矢幹）の長さ及び幅に対処する。そのようなことは、図８Ｅと図８Ｆとを比較することにより示された制御点操作から更に区別可能である。制御点操作は、おそらく形状の領域を考慮せずに形状、単なる個々の点及び付属のセグメントを大幅に変更するような方法でフリーフォーム形状を変更する。
【００６９】
フリーフォーム形状の領域分割及び操作の大きな利点は、ユーザがフリーフォーム形状の緩やかな外観（厳密なテンプレート形状と比較して）を所望してもよいが、元の外観から大幅に逸脱せずに大きさ及び一般的な特徴（長さ、幅等）を変更できると共に、一貫して文書においてその形状を再現するのを希望してもよいことである。
【００７０】
次に、図１１を参照して、編集可能な文書出力ファイル１５０を生成するように入力文書画像１１０を処理する第２の手法１１００を説明する。方法１１００は、再度コンピュータシステム１９００のプロセッサ１９０５により実行可能なソフトウェアにより実現されるのが好ましく、制御点を含むテンプレート形状又は非テンプレート形状のいずれかであらゆるフリーフォーム形状を置換するように既存の文書を変更するために動作する。ステップ１１１０において、フリーフォーム形状は文書から取り出される。ステップ１１１０は、本質的に図４のステップ４１０、４２０及び４３０に等しい。ステップ１１２０において、入力フリーフォーム形状は、制御点を含むテンプレート形状又は非テンプレート形状のいずれかに変換される。このステップは、図４を参照して上述したステップ４４０と同一である。ステップ１１３０において、入力フリーフォーム形状は、文書において制御点を含むテンプレート形状又は非テンプレート形状で置換され、これは図４のステップ４５０に代わるものである。あるいは、この手法は、形状が切り取られ且つテンプレート形状の異なる集合を含む別のプログラムに貼り付けられるように、テンプレート形状をクリップボード上にコピーするために使用されてもよい。
【００７１】
次に、図７にて詳述された制御点を含む非テンプレート形状作成処理６６０が、図１２を参照して以下に説明される処理１２００に従って代わりに実行されるという点を除いて図４の第１の手法に類似する第３の手法を説明する。ステップ１２１０において、入力フリーフォーム形状は、アフィン変換により単位正方形に正規化される。アフィン変換は、例えば正規化されたフリーフォーム形状のバウンディングボックスが（０，０）−（１，０）−（１，１）−（０，１）であるように選択される。アフィン変換は回転構成要素を含み、その角度は、ステップ６２０で最適なテンプレート形状一致から算出された負の角度である。あるいは、中心モーメントから算出された主軸角度等の角度を判定する別の方法が使用されてもよい。いくつかの例において、主軸は有用な角度を与える。あるいは、特定のテンプレート形状は回転対称であってもよく、回転構成要素は必要ない。ステップ１２２０において、１つ以上の末端の点が見つけられる。どの末端の点が見つけられるかは、フリーフォーム形状がステップ６２０で最近接するものとして分類された特定のテンプレート形状に依存する。例えば末端の点は、単位正方形の特定の縁部、単位正方形の特定の隅又は単位正方形の中心に最近接する点であってもよい。
【００７２】
図１３Ａは、図２Ａの形状２７０２１等の８点の星の最も近いテンプレートマッチングを有する入力フリーフォーム形状１３００の一例を示す。図１３Ｂは、単位正方形１３１２にアフィン正規化され且つフリーフォーム形状１３１０として示されたフリーフォーム形状１３００を示す。円は、単位正方形の中心に対して最近接点１３１１を示す単位正方形を中心とする。点１３１１は、この種のテンプレート形状に対する末端の点として考えられてもよい。
【００７３】
別の例として、テンプレート形状が図８等に示されるような左矢印８１０である場合、末端の点は、図１３Ｃに示されるような一番左上の点１３２３及び一番右上の点１３２２として判定される。一番左上の点は、ある許容内で最も大きなｙ座標を含む点の中で最も小さなｘ座標を有する点である。一番右上の点は、ある許容内で最も大きなｘ座標を含む点の中で最も大きなｙ座標を有する点である。末端の点１３２２及び１３２３を含むフリーフォーム形状１３２０として単位正方形１３２１にアフィン正規化された左矢印８１０を示す。
【００７４】
ステップ１２２０で末端の点が見つけられると、制御パラメータは、ステップ１２３０で末端の点の値からプロセッサ１９０５により算出される。この計算は、ステップ６６０で分類されたような特定のテンプレート形状に依存し、見つけられた全ての末端の点のｘ座標及びｙ座標の関数である。一般にそれは、ｘ座標又はｙ座標のいずれか、あるいは見つけられた双方の末端の点である。例えば左矢印テンプレート形状８１０の場合、最も左上の末端の点のｘ座標は１つの制御パラメータであり、最も右上の末端の点のｙ座標は第２の制御パラメータである。複数の点の星の例１３００において、単位正方形の中心から最近接点１３１１までの距離は、制御パラメータであり、図１３Ｂにおいて円として示される。図１４は、制御点を含む非テンプレート形状に変換された際の複数の点の星の入力フリーフォーム形状１３００に対するいくつかの例示的な制御点の位置を示す。
【００７５】
ステップ１２３０で制御パラメータが算出されると、入力フリーフォーム形状のセグメント上の全ての点は、ステップ１２４０で制御パラメータの関数になるように変換される。このステップは、上述したステップ７２０と同一である。処理１２００は、上述したようにステップ６７０に戻るステップ１２５０で終了する。
【００７６】
次に、図６に示された制御点を含む非テンプレート形状作成処理６６０が、図１５を参照して以下に説明される処理１５００に従って代わりに実行されるという点を除いて第１の手法４００に類似する第４の手法を説明する。ステップ１５１０において、入力フリーフォーム形状の対称の角度はプロセッサ１９０５により算出される。この構成において有用な対称が反射対称であるため、オブジェクトの対称の角度は、描画された任意の垂直な線が両側の対称軸から等しい距離のところでオブジェクトに交差するように対称軸が見つけられるｘ軸に対する角度である。本明細書において対称テンプレートと呼ばれるテンプレート形状が規定されることができる。対称テンプレートにおいて、対称軸の上側の任意の点は制御点であり、対称軸の上側の制御点への任意の移動は、対称軸の下側の同等の点に対して同等の対称効果を及ぼす。この種のテンプレート形状の一例を図１６に示す。図１６は、種々の異なる位置において制御点を含む対称矢印タイプを示す。各例において、オブジェクトの略水平軸に沿って反射対称がある。
【００７７】
ステップ１５１０で見つけられた対称の角度は、画像モーメントを使用して見つけられてもよい。スキャン又は粗末な手描き又は完全なミラー軸を有さない形状（例えば、図８Ｅ）等からの非テンプレート形状において考えられるノイズのため、不完全な対称のある程度の許容誤差は、対称の角度を判定する際に許される。ステップ１５２０において、対称点の対は、入力フリーフォーム形状のセグメントから見つけられる。対における１つの点は、対称軸の上側及び下側にある。一般に、生成された非テンプレート形状が複雑になりすぎないように且つ制御パラメータの変更に対する挙動が直感的に分かるように、限られた数のそのような対が選択されるべきである。ステップ１５３０において、各対からの１つの点は制御点になる。全ての制御点が対称軸の片側にあってもよいが、これは必要条件ではない。代わりに各制御点が２つの制御パラメータ、すなわちｘ座標位置及びｙ座標位置を有してもよいため、制御点の移動に対する制約はない。
【００７８】
ステップ１５４０において、より多くの固定点は、プロセッサ１９０５により算出された制御点を含む新しい非テンプレート形状に追加され、その場合対称軸が入力フリーフォーム形状と交差する。これらの点は、これらの場所に既存の点がない場合のみ追加されればよい。非テンプレート形状作成に追加された固定点は、非テンプレートの単一のセグメントを２つに分割する。次に制御点は、対称に基づいて２つのセグメントを変更できる。図２０Ａは、対称軸２００２を横断するセグメント２００５を含む非テンプレート形状２０００を示す。形状２０００は制御点２０１５を有する。固定点２０１０は、対称軸において追加され、セグメント２００５を２つのセグメントに分割又は分類することができる。２つのセグメント２０３０及び２０３５は、図２０Ｂに明確に示される。図２０Ｂにおいて、制御点２０１５は、例えば図２０Ｂに示されるように、ｘ方向及びｙ方向のいずれか又はそれら双方に移動し、２つのセグメントを操作してもよい。点２０１０は、軸２００２上に固定されたままである。
【００７９】
ステップ１５４０で制御パラメータが算出されると、入力フリーフォーム形状のセグメント上の全ての点は、ステップ１５５０で制御パラメータの関数になるように変換される。このステップは、上述したステップ７２０と同一である。ステップ１５６０のこの処理の終了時、処理は第１の実施形態のステップ６７０で継続する。
【００８０】
処理１５００の一例を図１３Ｄに示す。対称軸１３３４を含む入力フリーフォーム形状１３３０を示す。対称軸がフリーフォーム形状１３３０に交差する場所に既に点があるため、余分な点が追加される必要はない。点１３３２及び１３３３は対称対であるため、点１３３２が制御点になる場合、点１３３２は点１３３３の位置を制御する。従って、双方の点１３３２及び１３３３は対称対であり続ける。
【００８１】
次に、制御点を含む非テンプレート形状作成処理６６０が、図１７を参照して以下に説明される処理１７００に従って代わりに実行されるという点を除いて第１の手法４００に類似する第５の手法を説明する。
【００８２】
ステップ１７１０において、入力フリーフォーム形状及び多輪郭テンプレート形状と一致する１または複数の余分な形状が見つけられる。多輪郭形状は、単一の形状として挙動する２つ以上の形状の集合である。雲１８２０として示された主形状の輪郭、並びに円１８２１、１８２２及び１８２３として示された３つの余分な形状の輪郭を含む「雲形吹き出し」と呼ばれる多輪郭テンプレート形状の一例を図１８Ｃに示す。
【００８３】
余分な形状はフリーフォーム形状であってもよく、あるいは制御点を含むテンプレート形状又は非テンプレート形状は、メモリ１９０６又はＨＤＤ１９１０に格納されたデータベースから識別されてもよい。多輪郭テンプレートは、入力フリーフォーム形状及び余分な形状の領域の比に基づく一致、あるいは入力フリーフォーム形状の中心と余分な形状の中心との間の距離の比等の他の何らかのモーメント又は幾何学的形状に基づく方法を規定してもよい。
【００８４】
ステップ１７２０において、余分な形状のうちの１つの中心点は、多輪郭形状の制御点として選択され且つ割り当てられる。制御点が自由に移動することは実用的であってもよく、その場合、制御パラメータは制御点のｘ座標及びｙ座標に基づく。
【００８５】
ステップ１７３０において、余分な形状の位置は、ステップ１７２０で算出された制御パラメータ及び多輪郭形状に対する主な輪郭になる入力フリーフォーム形状の関数により与えられる。関数は、初期制御パラメータ値が余分な形状の初期の位置を与えるように作成され、制御点から主な輪郭の中心までの距離の比であってもよい。尚、入力フリーフォーム形状又は余分な形状のうちのいずれかは、自身の制御パラメータを更に有してもよい。処理１７００の間に追加された制御パラメータは、一般に、余分な形状の他のパラメータのうちのいずれかではなく、入力フリーフォーム形状に対する余分な形状の場所のみを制御する。
【００８６】
ステップ１７３０で制御パラメータが算出されると、入力フリーフォーム形状のセグメント上の全ての点は、制御パラメータの関数になるように変換される。このステップは、上述したようなステップ７２０と同一である。処理１７００を終了するステップ１７４０において、処理は第１の手法のステップ６７０に戻る。
【００８７】
雲１８２０として示された主形状の輪郭、並びに円１８２１、１８２２及び１８２３として示された３つの余分な形状の輪郭を含む「雲形吹き出し」と呼ばれる多輪郭テンプレート形状の一例を図１８Ｃに示す。この多輪郭テンプレートの典型的な特徴は、主な形状の中心までの３つの余分な形状の距離の比であり、３つの余分な形状の中心は、主な形状の中心を通過する線上に置かれる。多輪郭テンプレート形状の制御点は、自由に移動する形状１８２３の中心であり、主形状の輪郭１８２０に対して３つの余分な輪郭１８２１〜１８２３の位置を変化させる。
【００８８】
図１８Ａに示されるように、処理１７００に対する入力フリーフォーム形状の一例を星形の形状１８００として示す。１８０１、１８０２及び１８０３として処理１７００の間に見つけられることができる３つの他の形状がある。尚、星形の形状１８００、１８０１及び１８０２は、自身の制御パラメータを有してもよい。形状１８０３の制御点は、形状１８００〜１８０３から構成される多輪郭形状の制御点として選択されてもよく、主な輪郭形状１８００に対して３つの余分な形状１８０１〜１８０３の位置を制御してもよい。図１８Ｂに示されるように、形状１８０３の中心で制御パラメータを調整することにより形状１８１０が得られてもよい。
【００８９】
説明した構成は、コンピュータ業界及びデータ処理業界、並びに特にビットマップ文書画像から編集可能な文書を生成するために適用可能である。
【００９０】
上記の記述は本発明のいくつかの実施形態のみを説明し、本発明の範囲及び趣旨から逸脱せずに、変形及び／又は変更がいくつかの実施形態に対して行なわれてもよい。実施形態は、限定するものではなく例示するものである。
【００９１】
［付録Ａ］
［表１］
形状名                            図中符号
正方形／長方形                    ２７００１
丸型四角形                        ２７００２
円／楕円                          ２７００３
ひし形                            ２７００４
二等辺三角形                      ２７００５
直角三角形                        ２７００６
平行四辺形                        ２７００７
台形                              ２７００８
六角形                            ２７００９
八角形                            ２７０１０
十字形                            ２７０１１
星                                ２７０１２
矢印                              ２７０１３
太矢印                            ２７０１４
ホームベース                      ２７０１５
吹き出し                          ２７０１６
印                                ２７０１７
プローチ                          ２７０１８
山形                              ２７０１９
五角形                            ２７０２０
印８                              ２７０２１
印１６                            ２７０２２
印３２                            ２７０２３
くさび形の四角形吹き出し          ２７０２４
くさび形の角丸四角形吹き出し      ２７０２５
くさび形の円形吹き出し            ２７０２６
大波                              ２７０２７
左矢印                            ２７０２８
下矢印                            ２７０２９
上矢印                            ２７０３０
左右矢印                          ２７０３１
上下矢印                          ２７０３２
いびつな印１                      ２７０３３
いびつな印２                      ２７０３４
稲妻                              ２７０３５
ハート                            ２７０３６
四方向矢印                        ２７０３７
左矢印吹き出し                    ２７０３８
右矢印吹き出し                    ２７０３９
上矢印吹き出し                    ２７０４０
下矢印吹き出し                    ２７０４１
左右矢印吹き出し                  ２７０４２
上下矢印吹き出し                  ２７０４３
四方向矢印吹き出し                ２７０４４
二方向矢印                        ２７０４５
屈折矢印                          ２７０４６
曲折矢印                          ２７０４７
印２４                            ２７０４８
Ｖ字型右矢印                      ２７０４９
アーチ                            ２７０５０
環状矢印                          ２７０５１
Ｕターン矢印                      ２７０５２
フローチャート：処理              ２７０５３
フローチャート：判断              ２７０５４
フローチャート：データ            ２７０５５
フローチャート：書類              ２７０５６
フローチャート：ターミネータ      ２７０５７
フローチャート：準備              ２７０５８
フローチャート：手操作入力        ２７０５９
フローチャート：手作業            ２７０６０
フローチャート：結合子            ２７０６１
フローチャート：せん孔カード      ２７０６２
フローチャート：せん孔テープ      ２７０６３
フローチャート：抜出し            ２７０６４
フローチャート：組合せ            ２７０６５
フローチャート：記憶データ        ２７０６６
フローチャート：順次アクセス記憶  ２７０６７
フローチャート：表示              ２７０６８
フローチャート：論理積ゲート      ２７０６９
フローチャート：代替処理          ２７０７０
フローチャート：オフページ結合子  ２７０７１
三方向矢印                        ２７０７２
月                                ２７０７３
印４                              ２７０７４
小波                              ２７０７５
直方体                            ２７０７６
円柱                              ２７０７７
ドーナツ                          ２７０７８
リボン                            ２７０７９
リボン２                          ２７０８０
禁止                              ２７０８１
メモ                              ２７０８２
額縁                              ２７０８３
ストライプ右矢印                  ２７０８４
縦巻き                            ２７０８５
横巻き                            ２７０８６
右カーブ矢印                      ２７０８７
左カーブ矢印                      ２７０８８
上カーブ矢印                      ２７０８９
下カーブ矢印                      ２７０９０
雲形吹き出し                      ２７０９１
上カーブリボン                    ２７０９２
上カーブリボン２                  ２７０９３
フローチャート：定義済み処理      ２７０９４
フローチャート：内部記憶          ２７０９５
フローチャート：複数書類          ２７０９６
フローチャート：和接合            ２７０９７
フローチャート：論理和            ２７０９８
フローチャート：照合              ２７０９９
フローチャート：分類              ２７１００
フローチャート：オフライン記憶    ２７１０１
フローチャート：磁気ディスク      ２７１０２
フローチャート：直接アクセス記憶  ２７１０３
太陽                              ２７１０４
【図１】
0005340441.tif 000008
【図２Ａ】
0005340441.tif 000009
【図２Ｂ】
0005340441.tif 000010
【図３】
0005340441.tif 000011
【図４】
0005340441.tif 000012
【図５】
0005340441.tif 000013
【図６】
0005340441.tif 000014
【図７】
0005340441.tif 000015
【図８Ａ】
0005340441.tif 000016
【図８Ｂ】
0005340441.tif 000017
【図８Ｃ】
0005340441.tif 000018
【図８Ｄ】
0005340441.tif 000019
【図８Ｅ】
0005340441.tif 000020
【図８Ｆ】
0005340441.tif 000021
【図９Ａ】
0005340441.tif 000022
【図９Ｂ】
0005340441.tif 000023
【図９Ｃ】
0005340441.tif 000024
【図９Ｄ】
0005340441.tif 000025
【図９Ｅ】
0005340441.tif 000026
【図１０】
0005340441.tif 000027
【図１１】
0005340441.tif 000028
【図１２】
0005340441.tif 000029
【図１３Ａ】
0005340441.tif 000030
【図１３Ｂ】
0005340441.tif 000031
【図１３Ｃ】
0005340441.tif 000032
【図１３Ｄ】
0005340441.tif 000033
【図１４】
0005340441.tif 000034
【図１５】
0005340441.tif 000035
【図１６】
0005340441.tif 000036
【図１７】
0005340441.tif 000037
【図１８Ａ】
0005340441.tif 000038
【図１８Ｂ】
0005340441.tif 000039
【図１８Ｃ】
0005340441.tif 000040
【図１９Ａ】
0005340441.tif 000041
【図１９Ｂ】
0005340441.tif 000042
【図２０Ａ】
0005340441.tif 000043
【図２０Ｂ】
0005340441.tif 000044