(57)【要約】 【課題】手書き入力されたストロークの整形にあたってユーザの利便性を向上させる。【解決手段】実施形態によれば、電子機器は、表示処理手段と、分割手段とを有する。表示処理手段は、手書きされる複数のストロークを画面上に表示する。分割手段は、前記複数のストロークを予め決められたオブジェクトに対応する第１ストローク群と前記オブジェクトに対応しない第２ストローク群とに分割する。前記表示処理手段は、前記第１ストローク群を前記オブジェクトに代えて、前記画面上に、前記オブジェクトと前記第２ストローク群とを表示する。【選択図】図７
2014203393.tif 000002
【特許請求の範囲】
【請求項１】
手書きされる複数のストロークを画面上に表示する表示処理手段と、
前記複数のストロークを予め決められたオブジェクトに対応する第１ストローク群と前記オブジェクトに対応しない第２ストローク群とに分割する分割手段と、を具備し、
前記表示処理手段は、前記第１ストローク群を前記オブジェクトに代えて、前記画面上に、前記オブジェクトと前記第２ストローク群とを表示する電子機器。
【請求項２】
前記表示処理手段が、前記第１ストローク群を前記オブジェクトに代えて、前記画面上に、前記オブジェクトと前記第２ストローク群と表示する場合に、前記オブジェクトが表示される位置は、前記第１ストローク群の表示位置に応じて決定される請求項１記載の電子機器。
【請求項３】
前記第１ストローク群に含まれる各ストロークを表す第１ストロークデータを、予め決められたデータ形式による前記オブジェクトを表す第１データに変換し、前記第２ストローク群に含まれる各ストロークを表す第２ストロークデータを前記データ形式による第２データに変換する変換手段をさらに有する請求項１記載の電子機器。
【請求項４】
前記データ形式は、単一のアプリケーションによって処理可能なものであって、
前記オブジェクトは、前記アプリケーションで予め定義されたオブジェクトのうち、任意の形状の線を表現可能なオブジェクト以外のオブジェクトであって、
前記第２データは、前記アプリケーションで予め定義されたオブジェクトのうち、任意の形状の線を表現可能なオブジェクトである請求項３記載の電子機器。
【請求項５】
前記表示処理手段は、前記第１ストローク群を、前記オブジェクトに含まれる文字、図形、表の何れかに代える請求項１記載の電子機器。
【請求項６】
前記分割手段は、前記複数のストロークの配置関係に基づいて、前記複数のストロークを前記第１ストローク群と前記第２ストローク群とに分割する請求項１記載の電子機器。
【請求項７】
前記表示処理手段は、前記第１ストローク群と前記オブジェクトとの類似度が基準値以上である場合に、前記第１ストローク群を前記オブジェクトに代え、前記類似度が基準値以上でない場合に、前記第１ストローク群を前記第２ストローク群に変更する請求項１記載の電子機器。
【請求項８】
手書きされる複数のストロークを画面上に表示し、
前記複数のストロークを予め決められたオブジェクトに対応する第１ストローク群と前記オブジェクトに対応しない第２ストローク群とに分割し、
前記第１ストローク群を前記オブジェクトに代えて、前記画面上に、前記オブジェクトと前記第２ストローク群とを表示する手書き文書処理方法。
【請求項９】
コンピュータを、
手書きされる複数のストロークを画面上に表示する表示処理手段と、
前記複数のストロークを予め決められたオブジェクトに対応する第１ストローク群と前記オブジェクトに対応しない第２ストローク群とに分割する分割手段とに機能させるための手書き文書処理プログラムであって、
前記表示処理手段は、前記第１ストローク群を前記オブジェクトに代えて、前記画面上に、前記オブジェクトと前記第２ストローク群とを表示する手書き文書処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、手書きストロークの整形に関する。
【背景技術】
【０００２】
近年、タブレット、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
【０００３】
ユーザは、タッチスクリーンディスプレイ上に表示されるメニューまたはオブジェクトを指などでタッチすることにより、これらメニューまたはオブジェクトに関連づけられた機能の実行を電子機器に指示することができる。また、ユーザは、ペンを用いて、スクリーン上で手書きに入力操作をすることにより、任意の形状のストロークを入力することができる。例えば、ユーザは、手書き入力操作によって、文字、表、図などの複数種類のオブジェクトが混在する複数のストロークを入力することができる。
【０００４】
また従来の電子機器には、手書き入力された文字、表、図などを表すストロークを、それぞれのオブジェクトデータに変換するための認識機能が設けられたものがある。例えば、文字のストロークについては、テキストデータに変換し、図や表を表すストロークについては、歪んだ描画線を直線にするなど整形された図／表データに変換することができる。電子機器は、変換後のオブジェクトデータをもとに表示することで、手書き入力されたストロークを整形することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２８８６０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来技術では、手書き入力されたストロークを文字、表、図などのオブジェクトデータに変換することができるが、ユーザが意図しない他のオブジェクトに変換されたり、何れのオブジェクトにも変換されずに、オブジェクトデータが欠損したりすることがあった。この結果、手書き入力された複数のストロークを認識機能により変換した結果、ユーザが意図しないオブジェクトに整形されて表示されてしまう。
【０００７】
本発明の一形態が解決しようとする課題の目的は、手書き入力されたストロークの整形にあたってユーザの利便性を向上できる電子機器、手書き文書処理方法、及び手書き文書処理プログラムを提供することである。
【課題を解決するための手段】
【０００８】
実施形態によれば、電子機器は、表示処理手段と、分割手段とを有する。表示処理手段は、手書きされる複数のストロークを１画面中に表示する。分割手段は、前記複数のストロークを予め決められたオブジェクトに対応する第１ストローク群と前記オブジェクトに対応しない第２ストローク群とに分割する。前記表示処理手段は、前記第１ストローク群を前記オブジェクトに代えて、前記画面上に、前記オブジェクトと前記第２ストローク群とを表示する。
【図面の簡単な説明】
【０００９】
【図１】実施形態の電子機器の外観を示す斜視図。
【図２】実施形態のタブレットコンピュータと外部装置との連携動作の例を示す図。
【図３】実施形態のストロークと時系列情報との関係について説明するための図。
【図４】実施形態のストロークと時系列情報との関係について説明するための図。
【図５】実施形態のタブレットコンピュータのシステム構成の一例を示す図。
【図６】実施形態のノートビュー画面の一例を示す図。
【図７】実施形態の手書きノートアプリケーションプログラムの機能構成の一例について説明するための図。
【図８】実施形態の手書きノートアプリケーションプログラムと統合アプリケーションプログラムとの関係の一例を示すブロック図。
【図９】実施形態の手書きページ内の複数のストロークを管理するためのＸＭＬファイルの文書構造の一例を示す図。
【図１０】実施形態のタブレットコンピュータの動作の一例について示すフローチャート。
【図１１】実施形態のストローク群分割処理の一例を示すフローチャート。
【図１２】実施形態のストローク群分割処理の具体例を説明するための複数のストロークの一例を示す図。
【図１３】実施形態のストローク群分割処理の具体例を説明するための複数のストロークの一例を示す図。
【図１４】実施形態のストローク群分割処理の具体例を説明するための複数のストロークの一例を示す図。
【図１５】実施形態のフリーハンドオブジェクトとして分類されるストロークの一例を示す図。
【図１６】実施形態の２つのストロークが変換されたフリーハンドオブジェクトの一例を示す図。
【図１７】実施形態の２つのストロークを含むＯＯＸＭＬファイルの文書構造の一例を示す図。
【図１８】実施形態の統合アプリケーションプログラムによるストロークの表示例を示す図。
【図１９】実施形態のノートビュー画面に手書き入力されたストロークを整形した表示例を示す図。
【発明を実施するための形態】
【００１０】
以下、実施の形態について図面を参照して説明する。  
図１は、一実施形態に係る電子機器の外観を示す斜視図である。電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、電子機器がタブレットコンピュータ１０として実現されている場合を想定する。タブレットコンピュータ１０は、タブレットまたはストレートコンピュータとも称される携帯型電子機器であり、図１に示すように、本体１１とタッチスクリーンディスプレイ１７とを備える。タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わせるように取り付けられている。
【００１１】
本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を想定する。
【００１２】
タッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。ペン１００は例えば電磁誘導ペンであってもよい。ユーザは、外部オブジェクト（ペン１００又は指）を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト（ペン１００又は指）の動きの軌跡、つまり手書き入力操作によって手書きされるストローク（手書きストロークの軌跡）がリアルタイムに描画され、これによって手書きにより入力された複数のストロークが画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が１つのストロークに相当する。手書きされた文字および文字以外の手書きされたオブジェクト（手書きされた図形、手書きされた表、など）に対応する多数のストロークの集合が手書き文書を構成する。
【００１３】
本実施形態において、手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報（手書き文書情報）として記憶媒体に保存される。手書き文書情報の例は図４を参照して後述するが、この手書き文書情報は、複数のストロークが手書きされた順を示し、且つ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、手書き文書情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストロークの軌跡上の複数の点それぞれに対応する複数の座標データ（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序に相当する。
【００１４】
タブレットコンピュータ１０は、記憶媒体から既存の任意の手書き文書情報を読み出し、この手書き文書情報によって示される複数のストロークの軌跡を画面上に描画することができる。手書き文書情報によって示される複数のストロークも、手書きによって入力される複数のストロークである。
【００１５】
さらに、タブレットコンピュータ１０は編集機能を有している。この編集機能は、「消しゴム」ツール、範囲選択ツール、および他の各種ツール等を用いたユーザによる編集操作に応じて、範囲選択ツールによって選択される表示中の手書き文書内の任意の部分（手書き文字、手書きマーク、手書き図形、手書き表、等）を削除または移動することができる。またさらに、範囲選択ツールによって選択される手書き文書内の任意の部分を、手書き文書を検索するための検索キーとして指定することもできる。
【００１６】
本実施形態では、手書き文書は、１つまたは複数のページとして管理されうる。この場合、手書き文書情報を１つの画面に収まる面積単位で区切ることによって、１つの画面に収まる手書き文書情報のまとまりを１つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは１つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を一つのページとして扱うことができる。１つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小してするようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。
【００１７】
図２は、タブレットコンピュータ１０と外部装置との連携動作の例を示している。タブレットコンピュータ１０は、パーソナルコンピュータ１やクラウドと連携することができる。すなわち、タブレットコンピュータ１０は、無線ＬＡＮなどの無線通信デバイスを備えており、パーソナルコンピュータ１との無線通信を実行することができる。さらに、タブレットコンピュータ１０は、インターネット上のサーバ２との通信を実行することもできる。サーバ２はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
【００１８】
パーソナルコンピュータ１はハードディスクドライブ（ＨＤＤ）のようなストレージデバイスを備えている。タブレットコンピュータ１０は、手書き文書情報をネットワーク越しにパーソナルコンピュータ１に送信して、パーソナルコンピュータ１のＨＤＤに記録することができる（アップロード）。タブレットコンピュータ１０とパーソナルコンピュータ１との間のセキュアな通信を確保するために、通信開始時には、パーソナルコンピュータ１がタブレットコンピュータ１０を認証するようにしてもよい。この場合、タブレットコンピュータ１０の画面上にユーザに対してＩＤまたはパスワードの入力を促すダイアログを表示してもよいし、タブレットコンピュータ１０のＩＤなどを自動的にタブレットコンピュータ１０からパーソナルコンピュータ１に送信してもよい。
【００１９】
これにより、タブレットコンピュータ１０内のストレージの容量が少ない場合でも、タブレットコンピュータ１０が多数の手書き文書情報あるいは大容量の手書き文書情報を扱うことが可能となる。
【００２０】
さらに、タブレットコンピュータ１０は、パーソナルコンピュータ１のＨＤＤに記録されている任意の１以上の手書き文書情報を読み出し（ダウンロード）、その読み出した手書き文書情報によって示されるストロークをタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。この場合、複数の手書き文書情報それぞれのページを縮小することによって得られるサムネイルの一覧をディスプレイ１７の画面上に表示してもよいし、これらサムネイルから選ばれた１ページをディスプレイ１７の画面上に通常サイズで表示してもよい。
【００２１】
さらに、タブレットコンピュータ１０が通信する先はパーソナルコンピュータ１ではなく、上述したように、ストレージサービスなどを提供するクラウド上のサーバ２であってよい。タブレットコンピュータ１０は、手書き文書情報をネットワークを介してサーバ２に送信して、サーバ２のストレージデバイス２Ａに記録することができる（アップロード）。さらに、タブレットコンピュータ１０は、サーバ２のストレージデバイス２Ａに記録されている任意の手書き文書情報を読み出して（ダウンロード）、その手書き文書情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。
【００２２】
このように、本実施形態では、手書き文書情報が保存される記憶媒体は、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイスのいずれであってもよい。
【００２３】
次に、図３及び図４を参照して、ユーザによって手書きされたストローク（文字、マーク、図形、表など）と時系列情報との関係について説明する。図３は、ペン１００などを使用してタッチスクリーンディスプレイ１７上に手書きされる手書き文書（手書き文字列）の例を示している。
【００２４】
図３に示す手書き文書は、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「Ａ」のすぐ近くに入力された例を示す。
【００２５】
手書き文字「Ａ」は、ペン１００などを使用して手書きされる２つのストローク（第１ストローク、第２ストローク）によって表現される。最初に手書きされる第１ストロークは、ペン１００の軌跡を例えば等時間間隔でサンプリングすることにより検出される時系列座標ＳＤ１１、ＳＤ１２、…ＳＤ１ｎ（ストロークデータ）により表される。同様に、第２ストロークは、時系列座標ＳＤ２１、ＳＤ２１、…ＳＤ２ｎ（ストロークデータ）により表される。なお、１つのストロークを表す座標データの数は、ストロークデータ毎に異なっていてもよい。
【００２６】
手書き文字「Ｂ」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。手書き文字「Ｃ」は、ペン１００などを使用して手書きされた手書きされた１つのストローク、つまり１つの軌跡によって表現される。手書きの「矢印」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。
【００２７】
図４は、図３の手書き文書に対応する時系列情報２００を示している。時系列情報は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。時系列情報２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べている。
【００２８】
時系列情報２００において、先頭から２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークを示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークを示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き「矢印」を構成する２つのストロークを示している。
【００２９】
各ストロークデータは、一つのストロークに対応する座標データ系列（時系列座標）、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。
【００３０】
各座標データは、対応する軌跡内のある１点に対応するＸ座標及びＹ座標を示す。例えば、座標データＳＤ１１は、手書き文字「Ａ」の第１ストロークの始点のＸ座標（Ｘ１１）及びＹ座標（Ｙ１１）を示し、ＳＤ１ｎは、第１ストロークの終点のＸ座標（Ｘ１ｎ）及びＹ座標（Ｙ１ｎ）を示す。
【００３１】
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）またはある時点を基準とした相対時間の何れであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。
【００３２】
このように、各座標データにタイムスタンプ情報Ｔが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
【００３３】
さらに、各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。
【００３４】
図４で説明したような構造を有する時系列情報２００は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。従って、時系列情報２００を使用することにより、図３に示すようにたとえ手書き「矢印」の先端部が手書き文字「Ａ」上に重ねてまたは手書き文字「Ａ」に近接して書かれたとしても、手書き文字「Ａ」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。
【００３５】
例えば、図３に示す破線の矩形枠に含まれる時系列情報２００を解析することにより、手書き文字「Ａ」の２つのストローク（ストロークデータＳＤ１、ＳＤ２）については連続的に手書きされたものと判定し、さらに、手書き「矢印」の先端部（ストロークデータＳＤ７）については手書き文字「Ａ」の手書きタイミングと不連続であると判定することができる。従って、破線の矩形枠の手書き文字「Ａ」と手書き「矢印」の先端部（ストロークデータＳＤ７）は異なる文字または図形として扱うことができる。
【００３６】
なお、手書き「矢印」の先端部（ストロークデータＳＤ７）の手書きタイミングが手書き文字「Ａ」の手書きタイミングと不連続であるか否かの判定は、時系列情報内のストロークデータの並びに基づいて行うことができる。あるいは、この判定は、上述のタイムスタンプ情報Ｔを使用して実行してもよい。タイムスタンプ情報Ｔを使用することにより、より高精度に判定することができる。
【００３７】
また、時系列情報内のストロークデータの並びとタイムスタンプ情報Ｔの双方に基づいて、上述の判定を実行してもよい。例えば、ストロークデータＳＤ２とストロークデータＳＤ７との間に所定数以上のストロークデータが含まれている場合には、ストロークデータＳＤ７の書き込みタイミングがストロークデータＳＤ２の書き込みタイミングと不連続であると判定し、ストロークデータＳＤ２とストロークデータＳＤ７との間のストロークデータ数が所定数よりも少ない場合には、ストロークデータＳＤ２内のタイムスタンプ情報とストロークデータＳＤ７のタイムスタンプ情報とに基づいて、ストロークデータＳＤ７の書き込みタイミングがストロークデータＳＤ２の書き込みタイミングと不連続であるか否かを判定してもよい。この場合、ストロークデータＳＤ２内の最後の座標データに付加されたタイムスタンプ情報Ｔ２ｎとストロークデータＳＤ７内の先頭の座標データに付加されたタイムスタンプ情報Ｔ７１とを比較してもよい。
【００３８】
さらに、本実施形態の時系列情報２００においては、上述したように、ストロークデータＳＤ１、ＳＤ２、…、ＳＤ７の並びは手書き文字の筆順を示す。例えば、ストロークデータＳＤ１及びＳＤ２の並びは、手書き文字「Ａ」の第１ストロークが手書きされ、次に第２ストロークが手書きされたことを表す。従って、たとえ２つの手書き文字の筆跡同士が互いに類似していても、それら２つの手書き文字の筆順が互いに異なる場合には、それら２つの手書き文字を異なる文字として区別することができる。
【００３９】
図５は、タブレットコンピュータ１０のシステム構成を示す図である。  
タブレットコンピュータ１０は、図５に示されるように、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８等を備える。
【００４０】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種モジュールの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム（ＯＳ）２０１、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、手書きノートアプリケーションプログラム２０２、統合アプリケーションプログラム２０３が含まれている。手書きノートアプリケーションプログラム２０２は、上述の手書き文書情報を作成および表示する機能、手書き文書情報を編集する機能、所望の手書き部分を含む手書き文書情報や、手書き文書情報内の所望の手書き部分を検索するための手書き文書検索機能、手書き文書内のストロークを整形するストローク整形機能などを有している。ストローク整形機能では、手書き入力されたストロークを、例えば文字、図形、表などのオブジェクト種別に分割し、オブジェクト種別のそれぞれについて認識処理や整形処理をすることにより、統合アプリケーションプログラム２０３などの他のアプリケーションで利用可能なデータ（オブジェクトデータ）に変換する。統合アプリケーションプログラム２０３は、文字、図形、表などのオブジェクトデータを処理する機能を有する。
【００４１】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００４２】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００４３】
グラフィクスコントローラ１０４は、本タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。このグラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。このＬＣＤ１７Ａ上にはタッチパネル１７Ｂおよびデジタイザ１７Ｃが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン１００が接触される画面上の接触位置および接触位置の動き等はデジタイザ１７Ｃによって検出される。
【００４４】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００４５】
次に、手書きノートアプリケーションプログラム２０２によって提示される、手書き入力操作を受け付けるための画面の例を説明する。
【００４６】
図６は、ページ（手書きページ）の新規作成、および既存のページの閲覧および編集が可能なノートビュー画面の一例を示している。
【００４７】
ノートビュー画面には、黒ペンボタン５０１、赤ペンボタン５０２、マーカーボタン５０３、選択ボタン５０４、および消しゴムボタン５０５が表示される。
【００４８】
例えば、黒ペンボタン５０１がユーザによるタップジェスチャによって選択された状態で、ペン１００を用いた手書き入力操作がノートビュー画面上で行われると、手書きノートアプリケーションプログラム２０２は、ペン１００の動きに合わせて黒色のストローク（軌跡）をノートビュー画面上に表示する。
【００４９】
また、消しゴムボタン５０５がユーザによるタップジェスチャによって選択された状態で、ペン１００を用いた手書き入力操作がノートビュー画面上で行われると、手書きノートアプリケーションプログラム２０２は、ペン１００の動きに合わせて、ペン１００が通過した位置を基準とした所定範囲内にあるストローク（軌跡）を消去する。
【００５０】
図６に示すノートビュー画面では、複数のストロークが手書きによって入力された状態を示している。例えば、文字を表す複数のストローク５１３，５１８、図形を表す複数のストローク５１１，５１４，５１６，５１９、表を表す複数のストローク５１２，５１５、ユーザが意図しないで入力されたストローク５１７が含まれている。
【００５１】
また、ノートビュー画面には、ノートビュー画面において実行可能な機能に対応する複数のボタンアイコンが表示される（図示せず）。複数のボタンアイコンには、例えば、入力モードの切り換え（手書き入力モード、テキスト入力モード）、ページ送り、ページ挿入、手書き文書検索、ストローク整形などの各機能に対応するボタンが含まれる。ストローク整形に対応する整形ボタンがユーザによりタップ操作された場合、電子機器は、ノートビュー画面において手書き入力された複数のストロークを、ストローク整形機能により整形して表示する。
【００５２】
次に、図７を参照して、手書きノートアプリケーションプログラム２０２の機能構成について説明する。
【００５３】
手書きノートアプリケーションプログラム２０２は、手書き文書情報を扱うことが可能なＷＹＳＩＷＹＧアプリケーションであり、制御モジュール３００（表示処理モジュール３００Ａ）、ストローク管理モジュール３１２、ストローク分割モジュール３１３、整形モジュール３１４（認識モジュール３１５、整形モジュール３１６）、オブジェクト管理モジュール３１７、及び通信処理モジュール３１８を含む。
【００５４】
手書きノートアプリケーションプログラム２０２は、手書き文書情報（複数のストロークデータ）を含む、処理対象とする各種データを記録モジュール４１０に記録し、必要に応じて読み出す。記録モジュール４１０は、タブレットコンピュータ１０に設けられた不揮発性メモリ１０６により実現することができる。なお、記録モジュール４１０は、パーソナルコンピュータ１のストレージデバイス（ＨＤＤ）、サーバ２のストレージデバイス２Ａにより実現することもできる。
【００５５】
記録モジュール４１０は、手書きノート記録モジュール４１１、ストロークデータ記録モジュール４１２Ａ、オブジェクトデータ記録モジュール４１２Ｂを含む。手書きノート記録モジュール４１１は、ノートビュー画面において手書き入力される手書き文書情報（複数のストローク）のデータを記録する。ストロークデータ記録モジュール４１２Ａは、ノートビュー画面において手書き入力される複数のストロークを、予め決められたオブジェクト（例えば、文字、図形、表）に対応する第１ストローク群と、オブジェクトに対応しない第２ストローク群とに分割して記録する。オブジェクトデータ記録モジュール４１２Ｂは、第１ストローク群と第２ストローク群に含まれるストロークのデータを、予め決められたデータ形式に変換することにより生成されたオブジェクトデータを記録する。
【００５６】
本実施形態では、手書きノート記録モジュール４１１に記録される手書き文書情報（複数のストロークデータ）は、例えばマークアップ言語に対応するファイル形式で管理される。マークアップ言語に対応するファイル形式としては、例えば、ＸＭＬ（Extensible Markup Language）ファイルを使用することができる。この場合、手書き文書情報内の複数のストロークデータは、マークアップ言語によって記述される階層化された文書構造の形式によりＸＭＬファイルに保存される。例えば１つのＸＭＬファイルで１つの手書きページを管理しても良い。この場合、手書きページの数に対応する数のＸＭＬファイルが作成される。また、１つのＸＭＬファイルで複数の手書きページを管理しても良い。
【００５７】
また、オブジェクトデータ記録モジュール４１２Ｂに記録されるオブジェクトデータは、例えばマークアップ言語に対応するファイル形式で管理される。マークアップ言語に対応するファイル形式としては、例えば、ＯＯＸＭＬ（Office Open Extensible Markup Language）ファイルを使用することができる。ＯＯＸＭＬファイルは、例えば統合アプリケーションプログラム２０３などの他のアプリケーションにより処理可能なデータ形式（ファイルフォーマット）を有している。なお、１つのＯＯＸＭＬファイルで１つの手書きページを管理しても良いし、１つのＯＯＸＭＬファイルで複数の手書きページを管理しても良い。
【００５８】
以下、手書きノートアプリケーションプログラム２０２内の各モジュールの機能について説明する。  
制御モジュール３００は、表示処理モジュール３００Ａを有する。表示処理モジュール３００Ａは、タッチスクリーンディスプレイ１７（例えばデジタイザ１７Ｃ）からペン１００の動きの軌跡（ストローク）に対応する座標データ列を受信する。表示処理モジュール３００Ａは、座標データ列に基づいて、手書きによって入力される複数のストロークをＬＣＤ１７Ａの画面に表示する。例えば、図６に示すノートビュー画面が表示されている状態においては、表示処理モジュール３００Ａは、デジタイザ１７Ｃからの入力座標列に基づきストロークをノートビュー画面上に描画する。また、制御モジュール３００は、例えば、１ストローク単位で、ストローク上の複数の点に対応する座標データ列（ストロークデータ）をストローク管理モジュール３１２に送信する。
【００５９】
ストローク管理モジュール３１２は、手書き文書（手書きページ）に含まれる、複数のストロークに対応する複数のストロークデータを手書きノート記録モジュール４１１に記録する。より詳しくは、ストローク管理モジュール３１２は、デジタイザ１７Ｃから入力される座標データ列に基づいて、図４で詳述したような構造を有する時系列情報を生成し、この時系列情報を手書きページのストロークデータとして手書きノート記録モジュール４１１に記録する。さらに、ストローク管理モジュール３１２は、手書きノート記録モジュール４１１から任意の手書きページのストロークデータを読み出す。読み出されたページに対応するストロークデータは、表示処理モジュール３００Ａに送られる。表示処理モジュール３００Ａは、時系列情報を解析し、この解析結果に基づいて、時系列情報によって示される各ストローク（手書きによって入力された各ストローク）をＬＣＤ１７Ａの画面に表示する。実施形態のストローク管理モジュール３１２は、手書きページ（ノートビュー画面）に手書きされる複数のストロークに対応する複数のストロークデータを、ＸＭＬファイルのデータ形式により手書きノート記録モジュール４１１に記録する。
【００６０】
ストローク分割モジュール３１３は、ストローク群分割処理を実行して、手書きノート記録モジュール４１１に記録されたストロークデータをもとに、手書きページ（ノートビュー画面）に含まれるストロークを、予め決められたオブジェクトに対応する第１ストローク群とオブジェクトに対応しない第２ストローク群とに分割して、ストロークデータ記録モジュール４１２Ａに記録する。
【００６１】
まず、ストローク分割モジュール３１３は、例えばストロークデータが示す複数のストロークの配置関係に基づいて、少なくとも１つのストロークを含むストローク群に分割する。さらに、ストローク分割モジュール３１３は、オブジェクトの種類別に用意される、詳細なオブジェクトの分類の定義するデータをもとに、ストローク群が何れのオブジェクトに対応するかを判別し、何れかのオブジェクトに対応するストローク群を第１ストローク群、何れのオブジェクトにも対応しないストローク群を第２ストローク群として分類する。
【００６２】
詳細なオブジェクトの分類には、例えば文字列については言語別（英語、日本語など）のストロークの特徴、図形については丸、四角、矢印、直線などの各種図形パターンのストロークの特徴、表については、表を構成する複数の線状のストロークの組み合わせの特徴などを示すデータが含まれる。ストローク群を分類するためのデータは、前述した以外のデータが含まれていても良い。
【００６３】
例えば、文字列を表すストローク群は、ストロークの密度が手書き図形や手書き表よりも高く、また一定の幅内で横方向あるいは縦方向に配列されることが多い。図形を表すストローク群は、ストロークの密度が文字列よりも低く、何れかの図形パターンのストロークの特徴を有する。表を表すストロークは、線状のストロークが縦方向あるいは横方向に配列され、ストロークの端部が他のストロークと近接されている。
【００６４】
ストローク分割モジュール３１３は、第１ストローク群に含まれるストローク群について、それぞれ何れのオブジェクト（文字オブジェクト、図形オブジェクト、表オブジェクト）に対応するかを分類し、何れのオブジェクトにも対応しないストローク群を第２ストローク群として分類する。
【００６５】
整形モジュール３１４は、ストローク分割モジュール３１３によって第１ストローク群について、各ストロークをオブジェクトの種類に合わせて整形するための処理を実行する。整形モジュール３１４は、認識モジュール３１５と整形モジュール３１６とを含む。
【００６６】
認識モジュール３１５は、文字認識モジュール３１５Ａ、図形認識モジュール３１５Ｂ、表認識モジュール３１５Ｃとを含む。
【００６７】
文字認識モジュール３１５Ａは、ストローク分割モジュール３１３によって文字オブジェクトに対応すると判別されたストローク群について文字認識して、ストローク群が表す手書き文字それぞれを文字コードに変換する。
【００６８】
図形認識モジュール３１５Ｂは、ストローク分割モジュール３１３によって図形オブジェクトに対応すると判別されたストローク群について、予め決められた複数の図形オブジェクト（丸、四角、矢印など）の何れかに変換するための図形認識処理を実行する。図形認識モジュール３１５Ｂは、例えば、複数の図形オブジェクトそれぞれの特徴を示す図形情報を予め保持しており、手書き図形のストロークと複数の図形オブジェクトそれぞれとの間の類似度を算出する。図形認識モジュール３１５Ｂは、類似度が最も高い図形オブジェクトを、ストローク群に対する認識結果とする。類似度の計算においては、手書き図形のストロークの軌跡情報および各図形オブジェクトの軌跡情報の各々をベクトルの集合として扱い、ベクトルの集合同士の比較を行うことによって類似度を算出することができる。
【００６９】
類似度の算出においては、手書き図形（ストローク群）を必要に応じて回転、拡大、または縮小してもよく、回転、拡大、または縮小された後の手書き図形と複数の図形オブジェクトそれぞれとの間の類似度を求める。図形認識モジュール３１５Ｂは、手書き図形に関する類似度が最も高い図形オブジェクトを認識結果として選択し、手書き図形に対して施された回転、拡大、または縮小の処理内容を示す属性情報を付加する。図形オブジェクトを属性情報に応じて、回転、拡大、または縮小することにより、手書きされた図形を表すストロークを、整形された図形に変換して表示することができる。
【００７０】
表認識モジュール３１５Ｃは、ストローク分割モジュール３１３によって表オブジェクトに対応するストローク群と判別されたストローク群について、縦横方向の線状のストロークの組み合わせをもとに、表の形状を定義する行列数や各セルの大きさを決定する。
【００７１】
なお、ストローク分割モジュール３１３によって第１ストローク群に分類されたストローク群について、認識モジュール３１５により認識処理をした結果、何れのオブジェクトにも該当しないと判別された場合には、そのストローク群を第２ストローク群に分類する。すなわち、本実施形態の手書きノートアプリケーションプログラム２０２は、手書き入力されたストロークを強制的に何れかのオブジェクトに分類して認識すると誤認識が発生し易くなるため、何れかのオブジェクトに確実に認識できないストロークについては、整形しないで手書き入力されたストロークのままで出力できるようにする。
【００７２】
整形モジュール３１６は、文字整形モジュール３１６Ａ、図形整形モジュール３１６Ｂ、表整形モジュール３１６Ｃとを含む。
【００７３】
文字整形モジュール３１６Ａは、文字認識モジュール３１５Ａにより認識された文字を、ページ中の手書き入力された文字を表すストロークの位置に表示されるように、文字サイズや表示位置を定義するデータを決定する。
【００７４】
図形整形モジュール３１６Ｂは、図形認識モジュール３１５Ｂにより認識された図形を、ページ中の手書き入力された図形を表すストロークの位置に表示されるように、図形サイズや表示位置を定義するデータを決定する。
【００７５】
表整形モジュール３１６Ｃは、表認識モジュール３１５Ｃにより認識された表を、ページ中の手書き入力された表を表すストロークの位置に表示されるように、表サイズや表示位置を定義するデータを決定する。
【００７６】
オブジェクト管理モジュール３１７は、第１ストローク群に対応する、整形モジュール３１４により整形されたオブジェクト（文字、図形、表）と、第２ストローク群のデータを管理する。オブジェクト管理モジュール３１７は、第１ストローク群に含まれる各ストロークを表す第１ストロークデータを、予め決められたデータ形式によるオブジェクトを表す第１データに変換し、第２ストローク群に含まれる各ストロークを表す第２ストロークデータをデータ形式による第２データに変換する機能を有する。ここで、予め決められたデータ形式は、ＯＯＸＭＬファイルとして管理されるデータ形式とする。また、オブジェクト管理モジュール３１７は、第２ストローク群については、予め決められた特定のオブジェクトのデータではなく、ＯＯＸＭＬファイルにより管理可能な、不定形のストロークを定義するデータに変換する。以下、不定形のストロークをフリーハンドオブジェクトと称し、フリーハンドオブジェクトを示すデータをフリーハンドオブジェクトデータとする。オブジェクト管理モジュール３１７は、ＯＯＸＭＬファイルとして管理されるデータ形式に変換した、手書き入力されたストロークに対応するオブジェクト及び第２ストローク群（フリーハンドオブジェクト）を表すデータ（オブジェクトデータ）をオブジェクトデータ記録モジュール４１２Ｂに記録する。
【００７７】
オブジェクトデータ記録モジュール４１２Ｂに記録されたオブジェクトデータは、統合アプリケーションプログラム２０３によって処理可能である。
【００７８】
通信処理モジュール３１８は、制御モジュール３００の制御のもとで、サーバ２との通信を制御する。通信処理モジュール３１８は、例えば手書きページデータをサーバ２に送信（アップロード）する送信部として機能すると共に、サーバ２に記録された任意の手書きページデータをサーバ２から受信する受信部として機能する。なお、サーバ２にストローク分割モジュール３１３、整形モジュール３１４、及びオブジェクト管理モジュール３１７の機能を設けることにより、制御モジュール３００は、サーバ２において前述した処理を実行させて、処理結果を通信処理モジュール３１８を通じて受信することもできる。
【００７９】
図８は、手書きノートアプリケーションプログラム２０２と統合アプリケーションプログラム２０３との関係を示すブロック図である。  
実施形態の手書きノートアプリケーションプログラム２０２は、前述したように、タッチスクリーンディスプレイ１７上でペン１００を用いて手書きされると、手書き入力されたストロークをＬＣＤ１７Ａにおいて表示させる共に、ストロークを示すストロークデータをＸＭＬファイルとして手書きノート記録モジュール４１１に記録する。また、手書きノートアプリケーションプログラム２０２は、手書き入力されたストロークに対して整形処理をすることにより、何れかのオブジェクトに対応する第１ストローク群と、オブジェクトに対応しない第２ストローク群とに分割して、それぞれＯＯＸＭＬファイルにより管理されるデータ形式に変換してオブジェクトデータ記録モジュール４１２Ｂに記録する。
【００８０】
統合アプリケーションプログラム２０３は、ＯＯＸＭＬファイルにより管理されるデータを処理するプログラムを含む。統合アプリケーションプログラム２０３は、例えば文書の作成編集をするためのワードプロセッサプログラム２０３Ａ、図形作成編集をするための図形作成プログラム２０３Ｂ、表計算処理をする表計算プログラム２０３Ｃ、文書、図形、表などのオブジェクトを含むプレゼンテーション用のデータを作成するプレゼンテーション処理プログラム２０３Ｄなどを含む。各プログラムは、ＯＯＸＭＬファイルにより管理される文字、図形、表などの各種オブジェクトデータを処理することができる。
【００８１】
図９は、手書きページ内の複数のストロークを管理するためのＸＭＬファイルの文書構造の一例を示す。  
図９に示すＸＭＬファイルは、ＸＭＬファイルに含まれる手書きページのページＩＤ、手書きページの作成日時に関する時間情報、手書きページの更新日時に関する時間情報などの属性を含む。また、手書きページの幅を示す「幅」、手書きページの高さを示す「高さ」、手書きページのタイトルを示す「タイトル」属性などなどを含んでいても良い。
【００８２】
また、図９に示すＸＭＬファイルは、２本のストロークのストロークデータ５３１，５３２が含まれている。例えば、「ｓｔｒｏｋｅ＿ｃｏｕｎｔ」属性は、ＸＭＬファイルに現在含まれているストロークデータの数（総数）を示す。新たなストロークデータがＸＭＬファイルに保存される度に、「ｓｔｒｏｋｅ＿ｃｏｕｎｔ」属性の属性値は更新される。図９では、「ｓｔｒｏｋｅ＿ｃｏｕｎｔ」属性の属性値が"２"である場合を例示している。
【００８３】
「ｓｔｒｏｋｅ」要素は、例えば「ｓｔｒｏｋｅ＿ｉｄ」属性、「ｔｉｍｅ」属性、「ｃｏｌｏｒ」属性を含む。「ｓｔｒｏｋｅ＿ｉｄ」属性は、対応するストロークデータの識別情報（ストロークＩＤ）を示す。「ｔｉｍｅ」属性は、対応するストロークデータが手書きされた時間に関する時間情報である。「ｔｉｍｅ」属性は、対応するストロークデータが手書きされた絶対時間（年月日時分秒）であってもよい。「ｃｏｌｏｒ」属性は、対応するストロークデータに対応する軌跡の色を示す。さらに、「ｓｔｒｏｋｅ」要素は、このストロークデータに対応する軌跡の幅（線幅）を示す「幅」属性、このストロークデータに対応する軌跡の線種（例えば、実線、破線、等）を示す「タイプ」属性、等を有していても良い。
【００８４】
「ｐｏｉｎｔｓ」要素は、例えば「ｐｏｉｎｔ＿ｃｏｕｎｔ」属性を含む。「ｐｏｉｎｔ＿ｃｏｕｎｔ」属性は、「ｐｏｉｎｔｓ」要素に含まれる「ｐｏｉｎｔ」要素の総数、つまり座標データの総数を示す。
【００８５】
「ｐｏｉｎｔｓ」要素によってグループ化された複数の「ｐｏｉｎｔ」要素は、ストローク内の複数の座標データに対応する。一つの「ｐｏｉｎｔ」要素は、一つの座標データに対応する。
【００８６】
「ｐｏｉｎｔ」要素は、例えば「ｘ」属性、「ｙ」属性、「ｄｕｒａｔｉｏｎ」属性、「ｐｒｅｓｓｕｒｅ」属性を含む。「ｘ」属性は、対応する座標データのｘ座標を示す。「ｙ」属性は、対応する座標データのｙ座標を示す。「ｄｕｒａｔｉｏｎ」属性は、対応するストロークデータの手書き開始時間から対応する座標データが手書きされるまでの時間間隔に関する時間情報である。「ｐｒｅｓｓｕｒｅ」属性は、座標データの入力時の筆圧を示す。
【００８７】
次に、タブレットコンピュータ１０の動作について、図１０に示すフローチャートを参照しながら説明する。  
ここでは、図６に示すように、ノートビュー画面において、ユーザがペン１００を用いて複数のストロークを手書き入力したものとする。手書き入力された複数のストロークのストロークデータは、手書きノート記録モジュール４１１にＸＭＬファイルとして記録される。また、ノートビュー画面において表示される複数のボタンアイコンから整形ボタンがタップ操作され、ストローク整形処理の実行が指示されたものとする。
【００８８】
ストローク分割モジュール３１３は、ストローク管理モジュール３１２を通じて、手書きノート記録モジュール４１１に記録されたストロークデータを入力し（ステップＡ１）、ストローク群分割処理を実行する（ステップＡ２）。
【００８９】
図１１は、ストローク群分割処理の一例を示すフローチャートである。図１２、図１３、及び図１４は、ストローク群分割処理の具体例を説明するための複数のストロークの一例を示す図である。図１２に示す複数のストロークには、文字と図形を表すストロークが含まれている。  
まず、ストローク分割モジュール３１３は、処理対象とする複数のストロークについて第１次ストローク分割を実行する（ステップＢ１）。第１次ストローク分割では、例えばストロークデータが示す複数のストロークの配置関係に基づいて、少なくとも１つのストロークを含むストローク群（ブロック）に分割する。例えば、複数のストロークのそれぞれの間隔や、ストロークの接続関係に基づいて、ストローク群に分割する。そして、ストローク分割モジュール３１３は、第１次ストローク分割により分割されたストローク群（ブロック）について、オブジェクトの種別を判別する（ステップＢ２）。
【００９０】
図１３は、図１２に示す複数のストロークを第１次ストローク分割により複数のストローク群に分割した例を示している。図１３では、例えばストローク群（ブロック）６０５，６１０，６１１は、図形に対応するストローク群として分割され、その他のストローク群６０１〜６０４，６０６〜６０９，６１２は、文字に対応するストローク群として分割された例を示している。
【００９１】
次に、ストローク分割モジュール３１３は、第１次ストローク分割により分割されたストロークを、第２次ストローク分割によりブロック単位に分割する（ステップＢ３）。そして、ストローク分割モジュール３１３は、第２次ストローク分割により分割された各ブロックについて、オブジェクトの種別を判別する（ステップＢ４）。
【００９２】
図１４は、図１３に示す複数のストローク群を第２次ストローク分割により複数のブロックに分割した例を示している。図１４では、ストローク銀の配置関係に基づいて、ストローク群６０１〜６０５をブロック６２１、ストローク群６０６〜６１２をブロック６２２に分割した例を示している。
【００９３】
ブロック６２１では、図形オブジェクトと分類されたストローク６０５は、例えば、文字オブジェクトに分割されたストローク群６０１，６０２の並び、及びストローク群６０３，６０４の並びとは異なる位置に配置され、ストロークのサイズが大きく異なるため文字オブジェクトとは異なる図形オブジェクトとして判別それる。
【００９４】
また、ブロック６２２では、ストローク群６０６〜６１２が一定の幅内で同じ並び（横方向）に配置されているため、ストローク群（ブロック）６１０，６１１についても、前後に配置されたストローク群と同じように、文字オブジェクトと判別する。
【００９５】
このように、ストローク群分割処理では、第１次ストローク分割により分割されたストローク群について判別されたオブジェクト種類だけでなく、周辺の他のストローク群の配置関係やオブジェクト種類に基づいて、複数のストロークをオブジェクトの種類別のストローク群に分割することができる。ストローク分割モジュール３１３は、ストローク群分割処理によって何れかのオブジェクト（文字、図形、表）に対応するストローク群として判別された場合には、これらのストロークを第１ストローク群としてストロークデータ記録モジュール４１２Ａに記録する。
【００９６】
また、ストローク分割モジュール３１３は、何れのオブジェクトにも対応しないと分類されたストローク群については、第２ストローク群としてストロークデータ記録モジュール４１２Ａに記録する。
【００９７】
なお、ストローク群分割処理では、ストロークの配置関係だけでなく、ストロークが入力される時間（タイムスタンプ情報）を利用してストロークを分割することも可能である。例えば、ストロークを手書き入力する場合、文字、図形、表などの１つのオブジェクトを表す複数のストロークについては短時間内に入力し、他のオブジェクトのストロークについては比較的長い時間が経過した後に入力することが多い。従って、次のストロークが入力されるまでの時間が、規定値以上であった場合には、異なるオブジェクトのストロークが入力されと判別して、ストローク群を分割することができる。なお、ストロークの配置関係とストロークが入力される時間とを組み合わせて、オブジェクト毎のストローク群を判別するようにしても良い。
【００９８】
次に、整形モジュール３１４は、ストロークデータ記録モジュール４１２Ａに記録された、オブジェクトの種別が分類されたストローク群から、処理対象とするストローク群を選択し（ステップＡ３）、オブジェクト種類に応じた認識処理を実行する。
【００９９】
文字オブジェクトのストローク群の場合（ステップＡ４、Ｙｅｓ）、文字認識モジュール３１５Ａは、ストローク群について文字認識して、ストローク群が表す手書き文字それぞれを文字コード（テキストデータ）に変換する（ステップＡ７）。文字認識処理では、ストローク群が予め用意された文字認識用の辞書との類似度が最も高い文字を認識結果とし、類似度が規定値を越えない場合には認識不能と判別する。
【０１００】
図形オブジェクトのストローク群の場合（ステップＡ５、Ｙｅｓ）、図形認識モジュール３１５Ｂは、ストローク群について、予め決められた複数の図形オブジェクト（丸、四角、矢印など）の何れかに変換するための図形認識処理を実行する（ステップＡ８）。図形認識処理では、ストローク群が予め用意された認識用の図形オブジェクトとの類似度が最も高い図形オブジェクトを認識結果とし、類似度が規定値を越えない場合には認識不能と判別する。例えば、認識用の図形オブジェクトは、予め決められた数（例えば３４種類）が用意されており、この予め決められた図形オブジェクトの何れについても類似度が規定値を越えなければ認証不能とする。
【０１０１】
表オブジェクトのストローク群の場合（ステップＡ６、Ｙｅｓ）、表認識モジュール３１５Ｃは、ストローク群について、縦横方向の線状のストロークの組み合わせをもとに、表の形状を定義する行列数や各セルの大きさを決定する（ステップＡ９）。
【０１０２】
認識モジュール３１５は、認識処理によって認識不能と判別された場合（ステップＡ１０、Ｎｏ）、処理対象とするストローク群を第２ストローク群に変更して、ストロークデータ記録モジュール４１２Ａに記録する。
【０１０３】
整形モジュール３１４は、ストロークデータ記録モジュール４１２Ａに記録された第２ストロークを、フリーハンドオブジェクトに変換する。フリーハンドオブジェクトは、不定形のストロークを表現するオブジェクトであり、ストロークデータと同様に座標データ列を含むフリーハンドオブジェクトデータにより定義される。すなわち、フリーハンドオブジェクトは、手書き入力されたストロークと同じ形状を表現するデータにより定義される。
【０１０４】
なお、第２ストローク群は、ストローク分割モジュール３１３によるストローク群分割処理において、何れのオブジェクトに対応しないと判別されたストローク群、及び認識モジュール３１５による認識処理により何れかのオブジェクトとして認識されなかったストローク群を含む。
【０１０５】
一方、整形モジュール３１６は、処理対象とするストローク群が何れかのオブジェクトに認識された場合には、そのオブジェクトを手書き入力されたストロークに代えて表示できるように、オブジェクトを画面に表示する場合のサイズや表示位置を定義するデータを決定する（ステップＡ１１）。すなわち、手書き入力されたストロークを整形した、文字、図形、表などのオブジェクトを生成する。
【０１０６】
例えば、文字整形モジュール３１６Ａは、文字認識処理によって得られた文字コードに対応する文字フォントを、元の手書き入力されたストローク群と同程度のサイズで、画面（ページ）中のストローク群とほぼ同じ位置に表示されるように、文字フォントを拡大縮小すると共に表示位置を決定する。また、ページ中の文字列の配列が斜め方向である場合には、配列方向に応じて文字を回転させて表示されるようにしても良い。なお、ストローク群の表示位置とサイズは、例えばストローク群に対する外接矩形枠を検出し、この外接矩形枠の位置とサイズにより判別できる。
【０１０７】
なお、図形認識モジュール３１５Ｂは、図形認識モジュール３１５Ｂにより認識された図形オブジェクトについて、文字整形モジュール３１６Ａと同様にしてサイズや表示位置を決定する。
【０１０８】
また、表認識モジュール３１５Ｃは、表認識モジュール３１５Ｃにより認識された表オブジェクトについて、文字整形モジュール３１６Ａと同様にしてサイズや表示位置を決定する。
【０１０９】
整形モジュール３１４は、ストロークデータ記録モジュール４１２Ａに記録された全ての処理対象とするストローク群について処理が完了していなければ（ステップＡ１３、Ｎｏ）、前述と同様にして処理対象とするストローク群について整形処理を繰り返して実行する（ステップＡ３〜Ａ１２）。
【０１１０】
全てのストローク群について整形処理が完了すると（ステップＡ１３、Ｎｏ）、オブジェクト管理モジュール３１７は、整形モジュール３１６により整形された文字、図形、表などのオブジェクトを表すオブジェクトデータ、及びフリーハンドオブジェクトを表すフリーハンドオブジェクトデータに対してＯＯＸＭＬ出力処理を実行する（ステップＡ１４）。すなわち、オブジェクト管理モジュール３１７は、オブジェクトデータとフリーハンドオブジェクトデータとを、ＯＯＸＭＬファイルのファイルフォーマットに従うデータ形式に変換する。
【０１１１】
オブジェクト管理モジュール３１７は、オブジェクトデータとフリーハンドオブジェクトデータとが変換されたデータを含むＯＯＸＭＬファイルを、オブジェクトデータ記録モジュール４１２Ｂに記録する（ステップＡ１５）。
【０１１２】
ＯＯＸＭＬファイルは、例えば統合アプリケーションプログラム２０３などの他のアプリケーションにより処理可能なデータ形式を有している。すなわち、文字、図形、表などのオブジェクトについての処理を統合アプリケーションプログラム２０３により実行することができる。さらに、手書きノートアプリケーションプログラム２０２は、文字、図形、表などのオブジェクトとして認識できなかった手書き入力ストローク群（第２ストローク群）を、フリーハンドオブジェクトとして分類し、他のオブジェクトのオブジェクトデータと共にＯＯＸＭＬファイルに記録する。従って、統合アプリケーションプログラム２０３は、タブレットコンピュータ１０において手書き入力されたストロークと同じ形状を有するフリーハンドオブジェクトを処理することができる。
【０１１３】
図１５は、ノートビュー画面において手書き入力された、フリーハンドオブジェクトとして分類されるストロークの一例を示している。  
図１５に示すストロークは、曲線が連続する第１画目のストロークと、矢印の先端部分を表す第２画目のストロークが含まれている。図１５に示す２つのストロークは、ストローク群分割処理あるいは認識処理によって第２ストローク群に分類され、フリーハンドオブジェクトとしてＯＯＸＭＬファイルに記録される。
【０１１４】
図１６は、図１５に示す２つのストロークが変換されたフリーハンドオブジェクトの一例を示す図である。フリーハンドオブジェクトは、図１６に示すように、フリーハンドオブジェクトは、ストロークの形状を表す座標データ列と、ストロークの外接矩形を示す座標データ（例えば、矩形の対角の２点の座標データ）により定義される。
【０１１５】
図１６では、第１画目のストロークに対応するフリーハンドオブジェクトには、２点の座標データ（ｘ１，ｙ１）（ｃｘ１，ｃｙ１）によって定義される外接矩形Ｆ１が設定され、第２画目のストロークに対応するフリーハンドオブジェクトには、２点の座標データ（ｘ２，ｙ２）（ｃｘ２，ｃｙ２）によって定義される外接矩形Ｆ２が設定されている。
【０１１６】
図１７は、フリーハンドオブジェクトとする２つのストロークを含むＯＯＸＭＬファイルの文書構造の一例を示す。  
図１７に示すＯＯＸＭＬファイルには、第１画目のストロークに対応するフリーハンドオブジェクトのデータ７０１と、第１画目のストロークに対応するフリーハンドオブジェクトのデータ７０２とが含まれている。
【０１１７】
データ７０１には、オブジェクト種類がフリーハンドオブジェクトであることを示すデータ７１１（「ｎａｍｅ＝"ｆｒｅｅＦｏｒｍ１"  ｉｄ＝"１"」）が含まれる。「ｉｄ＝"１"」は、第１画目のフリーハンドオブジェクトであることを示す。また、第１画目のフリーハンドオブジェクトに対する外接矩形Ｆ１を定義する座標データ７１２が含まれる。
【０１１８】
さらに、データ７０１には、ストロークの形状を表す座標データ列７１３が含まれる。座標データ列７１３は、タブレットコンピュータ１０において手書き入力されたストロークのストロークデータ（座標データ列）が変換されたデータである。ストロークが長くなる程、多くの座標データが多くなる。なお、ストロークデータの全てをフリーハンドオブジェクトの座標データとして用いる必要は無く、ストロークデータから必要に応じて座標データを間引いてフリーハンドオブジェクトの座標データとして用いても良い。
【０１１９】
同様にして、データ７０２には、オブジェクト種類がフリーハンドオブジェクトであることを示すデータ７２１（「ｎａｍｅ＝"ｆｒｅｅＦｏｒｍ１"  ｉｄ＝"２"」）が含まれる。「ｉｄ＝"２"」は、第２画目のフリーハンドオブジェクトであることを示す。また、第２画目のフリーハンドオブジェクトに対する外接矩形Ｆ２を定義する座標データ７２２が含まれる。さらに、データ７０２には、ストロークの形状を表す座標データ列７２３が含まれる。
【０１２０】
なお、ＯＯＸＭＬファイルには、フリーハンドオブジェクト（ストローク）の形状を表す座標データ列７１３，７２３だけでなく、フリーハンドオブジェクトの属性情報が定義されていても良い。属性情報には、例えばストロークの色、線幅、線種（例えば、実線、破線、等）などを示す情報を含んでも良い。
【０１２１】
図１８は、統合アプリケーションプログラム２０３（プレゼンテーション処理プログラム２０３Ｄ）によるストロークの表示例を示す図である。図１８は、図１７に示すＯＯＸＭＬファイルを読み込み、ＯＯＸＭＬファイルの記述内容に応じて表示されるストロークの例を示している。
【０１２２】
このように、プレゼンテーション処理プログラム２０３Ｄは、タブレットコンピュータ１０において手書き入力されたストロークと同じ形状のフリーハンドオブジェクトを表示することができる。なお、プレゼンテーション処理プログラム２０３Ｄは、画面中に表示したフリーハンドオブジェクトの編集処理が指示されると、図１６に示すように制御点を設定した外接矩形をストロークと共に表示する。制御点は、例えば矩形枠の頂点、矩形枠を構成する線の中点などに設けられる。プレゼンテーション処理プログラム２０３Ｄは、制御点の位置を移動させる入力操作に応じて外接矩形を変形させると共に、ストロークの形状を外接矩形の変形に応じて変形する。
【０１２３】
図１９は、図６に示すノートビュー画面に手書き入力されたストロークを整形した表示例を示す図である。  
図１８では、プレゼンテーション処理プログラム２０３Ｄによる表示例を示しているが、ノートビュー画面において整形ボタンがタップ操作されると、図１９に示すように、手書き入力された複数のストロークが、それぞれのオブジェクト種類に応じた形状に一括して整形される。
【０１２４】
例えば、図６に示す複数のストローク５１２，５１５は、図１９に示すように、２×２のマトリクスの表オブジェクト５１２Ａ，５１５Ａに整形される。また、図形を表す複数のストローク５１１，５１４，５１６は、図１９に示すように、それぞれの図形種類に対応する図形オブジェクト５１１Ａ，５１４Ａ，５１６Ａに整形される。また、文字を表す複数のストローク５１３，５１８は、図１９に示すように、アルファベットの文字オブジェクト５１３Ａ、日本語用の文字オブジェクト５１８Ａにそれぞれ整形される。
【０１２５】
図６に示す図形を表すストローク５１９は、予め決められた図形オブジェクトに対応しないため、図１９に示すように、フリーハンドオブジェクト５１９Ａに変換される。図１９に示すように、フリーハンドオブジェクト５１９Ａは、手書き入力されたストロークと同じ形状のままで表示される。すなわち、何れのオブジェクトにも合致しないストロークを、強制的に何れかのオブジェクトに整形することがないので、ユーザが意図しないオブジェクトに整形されることがない。また、何れのオブジェクトにも合致しないストロークであっても、他のオブジェクトと共にフリーハンドオブジェクトとして残るため、データの欠損が発生することがない。
【０１２６】
また、フリーハンドオブジェクト５１９Ａは、文字、図形、表などの他のオブジェクトと同様に、他のアプリケーションにより編集などが可能なデータである。このため、整形処理を実行した後に、改めてストロークを手書き入力することなく、フリーハンドオブジェクト５１９Ａの形状などを容易に変更することも可能である。
【０１２７】
また、実施形態の手書きノートアプリケーションプログラム２０２は、図６に示すように、複数種類のオブジェクトに対応するストロークが混在している場合でも、一括して、図１９に示すように、複数のストロークをそれぞれに対応するオブジェクトに整形することができる。このため、手書き入力されたストロークの整形にあたって、ユーザの作業負担を軽減して、利便性を向上させることが可能となる。
【０１２８】
なお、前述した手書きノートアプリケーションプログラム２０２により実行される各種処理は、タブレットコンピュータ１０と連携して動作する、パーソナルコンピュータ１またはインターネット上のサーバ２によって実行してもよい。
【０１２９】
本実施形態の手書き文書に対する各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをタッチスクリーンディスプレイを備えた通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１３０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１３１】
また、前述した実施の形態において記載した処理は、コンピュータに実行させることのできるプログラムとして、例えば磁気ディスク（フレキシブルディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記録媒体に書き込んで各種装置に提供することができる。また、通信媒体により伝送して各種装置に提供することも可能である。コンピュータは、記録媒体に記録されたプログラムを読み込み、または通信媒体を介してプログラムを受信し、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【符号の説明】
【０１３２】
１０…タブレットコンピュータ、２０２…手書きノートアプリケーションプログラム、２０３…統合アプリケーションプログラム、３１２…ストローク管理モジュール、３１３…ストローク分割モジュール、３１４…整形モジュール、３１５…認識モジュール、３１６…整形モジュール、３１７…オブジェクト管理モジュール、４１０…記録モジュール。
【図１】
2014203393.tif 000003
【図２】
2014203393.tif 000004
【図３】
2014203393.tif 000005
【図４】
2014203393.tif 000006
【図５】
2014203393.tif 000007
【図６】
2014203393.tif 000008
【図７】
2014203393.tif 000009
【図８】
2014203393.tif 000010
【図９】
2014203393.tif 000011
【図１０】
2014203393.tif 000012
【図１１】
2014203393.tif 000013
【図１２】
2014203393.tif 000014
【図１３】
2014203393.tif 000015
【図１４】
2014203393.tif 000016
【図１５】
2014203393.tif 000017
【図１６】
2014203393.tif 000018
【図１７】
2014203393.tif 000019
【図１８】
2014203393.tif 000020
【図１９】
2014203393.tif 000021