(57)【要約】【課題】手書き文書を容易に扱うことができる電子機器を実現する。【解決手段】実施形態によれば、電子機器は、表示処理手段と、決定手段と、保存処理手段とを具備する。表示処理手段は、手書きによって入力される複数のストロークを電子機器の画面上に表示する。前記決定手段は、前記複数のストロークの天地の向きを決定する。前記保存手段は、前記複数のストロークに対応する複数のストロークデータと前記複数のストロークの天地の向きに関する複数の向き情報とを含む手書きデータを記憶媒体に保存する。前記決定手段は、加速度センサの出力に応じて定められる前記電子機器の傾きの方向または、カメラモジュールによって取得される画像を使用した顔認識の結果に応じて定められる前記電子機器とユーザとの間の位置関係の少なくとも一方を使用して、前記複数のストロークの天地の向きを決定する。【選択図】図５
2014215752.tif 000002
【特許請求の範囲】
【請求項１】
手書きによって入力される複数のストロークを電子機器の画面上に表示する表示処理手段と、
前記複数のストロークの天地の向きを決定する決定手段と、
前記複数のストロークに対応する複数のストロークデータと前記複数のストロークの天地の向きに関する複数の向き情報とを含む手書きデータを記憶媒体に保存する保存処理手段とを具備し、
前記決定手段は、前記電子機器内の加速度センサの出力に応じて定められる前記電子機器の傾きの方向または、前記電子機器のカメラモジュールによって取得される画像を使用した顔認識の結果に応じて定められる前記電子機器とユーザとの間の位置関係の少なくとも一方を使用して、前記複数のストロークの天地の向きを決定するように構成されている、電子機器。
【請求項２】
前記電子機器の傾きが第１の傾き未満である場合、前記顔認識の結果に応じて定められる前記電子機器とユーザとの間の位置関係が、前記複数のストロークの天地の向きの決定のために使用される請求項１記載の電子機器。
【請求項３】
前記電子機器の傾きが第１の傾き以上である場合、前記電子機器の傾きの方向が、前記複数のストロークの天地の向きの決定のために使用される請求項１記載の電子機器。
【請求項４】
前記複数の向き情報の各々は、前記画面の天地の向きに整合する第１の向きまたは前記第１の向きと反対の第２の向きのいずれかを示す請求項１記載の電子機器。
【請求項５】
前記複数の向き情報の各々は、前記画面の天地の向きに整合する第１の向き、前記第１の向きと反対の第２の向き、前記画面の天地の向きに対して９０度回転した第３の向き、前記画面の天地の向きに対して２７０度回転した第４の向きのいずれかを示す請求項１記載の電子機器。
【請求項６】
前記表示処理手段は、その天地の向きが第１の向きである１以上の第１のストロークデータに対応する１以上のストロークと、その天地の向きが前記第１の向きと異なる第２の向きである１以上の第２のストロークデータに対応する１以上のストロークとを選択的に前記画面上に表示する請求項１記載の電子機器。
【請求項７】
前記表示処理手段は、その天地の向きが第１の向きである１以上の第１のストロークデータに対応する１以上のストロークと、その天地の向きが前記第１の向きと異なる第２の向きである１以上の第２のストロークデータから、その天地の向きが前記電子機器の現在の傾き方向に整合する一方のストロークデータを選択し、前記一方のストロークデータに対応する１以上のストロークを前記画面上に表示する請求項１記載の電子機器。
【請求項８】
その天地の向きが前記画面の向きに対して整合する第１の向きと異なる第２の向きである複数の第１のストロークを、座標変換によって、その天地の向きが前記第１の向きを有する複数の第２のストロークに変換し、前記複数の第２のストロークに対応する文字コードを出力する手段をさらに具備する請求項１記載の電子機器。
【請求項９】
その天地の向きが前記画面の向きに対して整合する第１の向きと異なる第２の向きである複数の第１のストロークを、座標変換によって、その天地の向きが前記第１の向きを有する複数の第２のストロークに変換し、検索キーである第３のストロークと前記複数の第２のストロークとの間のマッチングによって、前記複数の第１のストロークから前記検索キーである前記第３のストロークに類似するストロークを検索する手段をさらに具備する請求項１記載の電子機器。
【請求項１０】
手書きによって入力される複数のストロークを電子機器の画面上に表示する表示することと、
前記複数のストロークの天地の向きを決定することと、
前記複数のストロークに対応する複数のストロークデータと前記複数のストロークの天地の向きに関する複数の向き情報とを含む手書きデータを記憶媒体に保存することとを具備し、
前記決定することは、前記電子機器内の加速度センサの出力に応じて定められる前記電子機器の傾きの方向または、前記電子機器のカメラモジュールによって取得される画像を使用した顔認識の結果に応じて定められる前記電子機器とユーザとの間の位置関係の少なくとも一方を使用して、前記複数のストロークの天地の向きを決定する、手書きデータ処理方法。
【請求項１１】
前記電子機器の傾きが第１の傾き未満である場合、前記顔認識の結果に応じて定められる前記電子機器とユーザとの間の位置関係が、前記複数のストロークの天地の向きの決定のために使用される請求項１０記載の手書きデータ処理方法。
【請求項１２】
前記電子機器の傾きが第１の傾き以上である場合、前記電子機器の傾きの方向が、前記複数のストロークの天地の向きの決定のために使用される請求項１０記載の手書きデータ処理方法。
【請求項１３】
その天地の向きが前記画面の向きに対して整合する第１の向きと異なる第２の向きである複数の第１のストロークを、座標変換によって、その天地の向きが前記第１の向きを有する複数の第２のストロークに変換することと、
前記複数の第２のストロークに対応する文字コードを出力することとをさらに具備する請求項１０記載の手書きデータ処理方法。
【請求項１４】
その天地の向きが前記画面の向きに対して整合する第１の向きと異なる第２の向きである複数の第１のストロークを、座標変換によって、その天地の向きが前記第１の向きを有する複数の第２のストロークに変換することと、
検索キーである第３のストロークと前記複数の第２のストロークとの間のマッチングによって、前記複数の第１のストロークから前記検索キーである前記第３のストロークに類似するストロークを検索することとをさらに具備する請求項１０記載の手書きデータ処理方法。
【請求項１５】
コンピュータによって実行されるプログラムであって、
手書きによって入力される複数のストロークを前記コンピュータの画面上に表示する表示する手順と、
前記複数のストロークの天地の向きを決定する手順と、
前記複数のストロークに対応する複数のストロークデータと前記複数のストロークの天地の向きに関する複数の向き情報とを含む手書きデータを記憶媒体に保存する手順とを前記コンピュータに実行させ、
前記決定する手順は、前記コンピュータ内の加速度センサの出力に応じて定められる前記コンピュータの傾きの方向または、前記コンピュータのカメラモジュールによって取得される画像を使用した顔認識の結果に応じて定められる前記コンピュータとユーザとの間の位置関係の少なくとも一方を使用して、前記複数のストロークの天地の向きを決定する、プログラム。
【請求項１６】
前記コンピュータの傾きが第１の傾き未満である場合、前記顔認識の結果に応じて定められる前記コンピュータとユーザとの間の位置関係が、前記複数のストロークの天地の向きの決定のために使用される請求項１５記載のプログラム。
【請求項１７】
前記コンピュータの傾きが第１の傾き以上である場合、前記コンピュータの傾きの方向が、前記複数のストロークの天地の向きの決定のために使用される請求項１５記載のプログラム。
【請求項１８】
その天地の向きが前記画面の向きに対して整合する第１の向きと異なる第２の向きである複数の第１のストロークを、座標変換によって、その天地の向きが前記第１の向きを有する複数の第２のストロークに変換する手順と、
前記複数の第２のストロークに対応する文字コードを出力する手順とを前記コンピュータにさらに実行させる請求項１５記載のプログラム。
【請求項１９】
その天地の向きが前記画面の向きに対して整合する第１の向きと異なる第２の向きである複数の第１のストロークを、座標変換によって、その天地の向きが前記第１の向きを有する複数の第２のストロークに変換する手順と、
検索キーである第３のストロークと前記複数の第２のストロークとの間のマッチングによって、前記複数の第１のストロークから前記検索キーである前記第３のストロークに類似するストロークを検索する手順とを前記コンピュータにさらに実行させる請求項１５記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、手書きデータを処理する技術に関する。
【背景技術】
【０００２】
近年、タブレット端末、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
【０００３】
ユーザは、タッチスクリーンディスプレイ上に表示されるメニューまたはオブジェクトを指などでタッチすることにより、これらメニューまたはオブジェクトに関連づけられた機能の実行を電子機器に指示することができる。
【０００４】
しかし、タッチスクリーンディスプレイを備える既存の電子機器の多くは、画像、音楽、他の各種メディアデータに対する操作性を追求したコンシューマ向け製品であり、会議、商談、商品開発などのビジネスシーンにおける利用については必ずしも適していない場合がある。このため、ビジネスシーンにおいては、いまなお、紙の手帳が広く利用されている。
【０００５】
最近では、手書き文字の運筆方向からタブレット端末とユーザの着座位置との関係を判定する技術も開発されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−２８６９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、一般に、多くのタブレット端末は、画面イメージの向きをそのタブレット端末の向きに応じて自動的に回転させる機能を有している。
【０００８】
しかし、手書き文書を扱う手書きアプリケーションにおいては、もしタブレット端末の向きに応じてそのアプリケーションの画面イメージの向きを自動的に回転させてしまうと、本物の紙の手帳のような使用感覚が得られなくなる場合がある。なぜなら、画面イメージの向きを自動的に回転させてしまうと、手書きアプリケーションの表示画面上に自由な方向から文字などを手書きしずらくなるためである。
【０００９】
一方で、手書きアプリケーションにおいては、手書き文書をデジタルデータとして扱うためのデジタルツールとしての機能も要求される。
【００１０】
本発明の一形態の目的は、手書き文書を容易に扱うことができる電子機器および手書きデータ処理方法を提供することである。
【課題を解決するための手段】
【００１１】
実施形態によれば、電子機器は、表示処理手段と、決定手段と、保存処理手段とを具備する。前記表示処理手段は、手書きによって入力される複数のストロークを前記電子機器の画面上に表示する。前記決定手段は、前記複数のストロークの天地の向きを決定する。前記保存処理手段は、前記複数のストロークに対応する複数のストロークデータと前記複数のストロークの天地の向きに関する複数の向き情報とを含む手書きデータを記憶媒体に保存する。前記決定手段は、前記電子機器内の加速度センサの出力に応じて定められる前記電子機器の傾きの方向または、前記電子機器のカメラモジュールによって取得される画像を使用した顔認識の結果に応じて定められる前記電子機器とユーザとの間の位置関係の少なくとも一方を使用して、前記複数のストロークの天地の向きを決定するように構成されている。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係る電子機器の外観を示す斜視図。
【図２】同実施形態の電子機器と外部装置との連携動作を示す図。
【図３】同実施形態の電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書の例を示す図。
【図４】同実施形態の電子機器によって生成される、図３の手書き文書に対応する時系列情報を説明するための図。
【図５】同実施形態の電子機器によって表示されるノートビュー画面を説明するための図。
【図６】同実施形態の電子機器がノートビュー画面の向きが重力の向きに整合するように傾けられている状態で手書きされるストロークを表示する動作を説明するための図。
【図７】同実施形態の電子機器がノートビュー画面の向きが重力の向きと逆向きとなるように傾けられている状態で手書きされるストロークを表示する動作を説明するための図。
【図８】同実施形態の電子機器によって保存される、ストロークデータとストローク向き情報とを含む手書きデータを説明するための図。
【図９】同実施形態の電子機器がノートビュー画面の向きが重力の向きに対して左９０度傾くように傾けられている状態において手書きされるストロークを表示する動作を説明するための図。
【図１０】同実施形態の電子機器がノートビュー画面の向きが重力の向きに対して右９０度傾くように傾けられている状態において手書きされるストロークを表示する動作を説明するための図。
【図１１】ノートビュー画面の向きに整合する向きを有するストローク系列に対応するストローク向き情報を説明するための図。
【図１２】ノートビュー画面の向きと逆の向きを有するストローク系列に対応するストローク向き情報を説明するための図。
【図１３】同実施形態の電子機器内の加速度センサの３軸それぞれの方向の例を説明するための図。
【図１４】同実施形態の電子機器の傾き方向と加速度センサの検出出力との関係を説明するための図。
【図１５】顔認識結果を使用してストローク向き情報を決定する動作例を示す図。
【図１６】顔認識結果を使用してストローク向き情報を決定する別の動作例を示す図。
【図１７】顔認識結果を使用してストローク向き情報を決定するさらに別の動作例を示す図。
【図１８】顔認識結果を使用してストローク向き情報を決定するまたさらに別の動作例を示す図。
【図１９】同実施形態の電子機器のシステム構成を示すブロック図。
【図２０】同実施形態の電子機器によって実行されるデジタルノートブックアプリケーションプログラムの機能構成を示すブロック図。
【図２１】同実施形態の電子機器によって実行される、正方向の向きを有するストローク群に対する文字認識動作を説明するためのブロック図。
【図２２】同実施形態の電子機器によって実行される、正方向と逆の向きを有するストローク群に対する文字認識動作を説明するためのブロック図。
【図２３】同実施形態の電子機器によって実行される筆跡検索の概要を説明するための図。
【図２４】同実施形態の電子機器によって実行される、正方向の向きを有するストローク群に対する筆跡検索動作を説明するための図。
【図２５】同実施形態の電子機器によって実行される、正方向と逆の向きを有するストローク群に対する筆跡検索動作を説明するための図。
【図２６】同実施形態の電子機器によって表示される、正方向の向きを有するストローク群と正方向と逆の向きを有するストローク群とを含む手書き文書の例を説明するための図。
【図２７】同実施形態の電子機器の現在の傾き方向に応じて、正方向の向きを有するストローク群と正方向と逆の向きを有するストローク群とを選択的に表示する動作例を説明するための図。
【図２８】同実施形態の電子機器の現在の傾き方向に応じて、正方向の向きを有するストローク群と正方向と逆の向きを有するストローク群とを選択的に表示する別の動作例を説明するための図。
【図２９】同実施形態の電子機器によって実行される手書きデータ保存処理の手順を示すフローチャート。
【図３０】同実施形態の電子機器によって実行される手書きデータ表示処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、実施の形態について図面を参照して説明する。  
図１は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、この電子機器がタブレットコンピュータ１０として実現されている場合を想定する。タブレットコンピュータ１０は、タブレットまたはストレートコンピュータとも称される携帯型電子機器であり、図１に示すように、本体１１とタッチスクリーンディスプレイ１７とを備える。本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わせるように取り付けられている。また、本体１１の上面には、カメラモジュール（Ｗｅｂカメラ）１８が配置されている。カメラモジュール１８は、例えば、タッチスクリーンディスプレイ１７の上辺上に位置する本体１１の上端部に設けられている。このカメラモジュール１８は、タブレットコンピュータ１０の正面側近傍の画像（動画像または静止画）を取得（キャプチャ）することができる。ユーザは、カメラ１８を使用して、画像（動画像または静止画）の取得または写真の撮影を行うことができる。
【００１４】
タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を想定する。
【００１５】
デジタイザは、例えば、フラットパネルディスプレイの画面の下側に配置される。タッチパネルは、例えば、フラットパネルディスプレイの画面上に配置される。このタッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。ペン１００は例えば電磁誘導ペンであってもよい。ユーザは、外部オブジェクト（ペン１００又は指）を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト（ペン１００又は指）の動きの軌跡、つまり手書き入力操作によって手書きされるストロークの軌跡（筆跡）がリアルタイムに描画され、これによって各ストロークの軌跡が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が１ストロークに相当する。手書きされた文字または図形などに対応する多数のストロークの集合、つまり多数の軌跡（筆跡）の集合が手書き文書を構成する。
【００１６】
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報として記憶媒体に保存される。この時系列情報の詳細は図４を参照して後述するが、この時系列情報は、複数のストロークが手書きされた順を示し、且つ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、この時系列情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
【００１７】
タブレットコンピュータ１０は、記憶媒体から既存の任意の時系列情報（手書きデータ）を読み出し、この時系列情報に対応する手書き文書、つまりこの時系列情報によって示される複数のストロークそれぞれに対応する軌跡を画面上に表示することができる。さらに、タブレットコンピュータ１０は編集機能を有している。この編集機能は、「消しゴム」ツール、範囲指定ツール、および他の各種ツール等を用いたユーザによる編集操作に応じて、表示中の手書き文書内の任意のストロークまたは任意の手書き文字等を削除または移動することができる。さらに、この編集機能は、幾つかの手書き操作の履歴を取り消す機能も含んでいる。
【００１８】
本実施形態では、時系列情報（手書き文書）は、１つまたは複数のページとして管理されうる。この場合、時系列情報（手書き文書）を１つの画面に収まる面積単位で区切ることによって、１つの画面に収まる時系列情報のまとまりを１つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは１つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を一つのページとして扱うことができる。１つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小してするようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。
【００１９】
図２は、タブレットコンピュータ１０と外部装置との連携動作の例を示している。タブレットコンピュータ１０は、パーソナルコンピュータ１やクラウドと連携することができる。すなわち、タブレットコンピュータ１０は、無線ＬＡＮなどの無線通信デバイスを備えており、パーソナルコンピュータ１との無線通信を実行することができる。さらに、タブレットコンピュータ１０は、インターネット上のサーバ２との通信を実行することもできる。サーバ２はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
【００２０】
パーソナルコンピュータ１はハードディスクドライブ（ＨＤＤ）のようなストレージデバイスを備えている。タブレットコンピュータ１０は、時系列情報（手書きデータ）をネットワーク越しにパーソナルコンピュータ１に送信して、パーソナルコンピュータ１のＨＤＤに記録することができる（アップロード）。タブレットコンピュータ１０とパーソナルコンピュータ１との間のセキュアな通信を確保するために、通信開始時には、パーソナルコンピュータ１がタブレットコンピュータ１０を認証するようにしてもよい。この場合、タブレットコンピュータ１０の画面上にユーザに対してＩＤまたはパスワードの入力を促すダイアログを表示してもよいし、タブレットコンピュータ１０のＩＤなどを自動的にタブレットコンピュータ１０からパーソナルコンピュータ１に送信してもよい。
【００２１】
これにより、タブレットコンピュータ１０内のストレージの容量が少ない場合でも、タブレットコンピュータ１０が多数の時系列情報（手書きデータ）あるいは大容量の時系列情報（手書きデータ）を扱うことが可能となる。
【００２２】
さらに、タブレットコンピュータ１０は、パーソナルコンピュータ１のＨＤＤに記録されている任意の１以上の時系列情報を読み出し（ダウンロード）、その読み出した時系列情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。この場合、複数の時系列情報（手書きデータ）それぞれのページを縮小することによって得られるサムネイルの一覧をディスプレイ１７の画面上に表示してもよいし、これらサムネイルから選ばれた１ページをディスプレイ１７の画面上に通常サイズで表示してもよい。
【００２３】
さらに、タブレットコンピュータ１０が通信する先はパーソナルコンピュータ１ではなく、上述したように、ストレージサービスなどを提供するクラウド上のサーバ２であってよい。タブレットコンピュータ１０は、時系列情報（手書きデータ）をネットワーク越しにサーバ２に送信して、サーバ２のストレージデバイス２Ａに記録することができる（アップロード）。さらに、タブレットコンピュータ１０は、サーバ２のストレージデバイス２Ａに記録されている任意の時系列情報を読み出して（ダウンロード）、その時系列情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。
【００２４】
このように、本実施形態では、時系列情報が格納される記憶媒体は、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイスのいずれであってもよい。
【００２５】
次に、図３および図４を参照して、ユーザによって手書きされたストローク（文字、マーク、図形、表など）と時系列情報との関係について説明する。図３は、ペン１００などを使用してタッチスクリーンディスプレイ１７上に手書きされる手書き文書（手書き文字列）の例を示している。
【００２６】
手書き文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図３においては、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「Ａ」のすぐ近くに手書きされた場合が想定されている。
【００２７】
手書き文字「Ａ」は、ペン１００などを使用して手書きされる２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって、つまり２つの軌跡によって表現される。最初に手書きされる「∧」形状のペン１００の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…ＳＤ１ｎが得られる。同様に、次に手書きされる「−」形状のペン１００の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標ＳＤ２１、ＳＤ２２、…ＳＤ２ｎが得られる。
【００２８】
手書き文字「Ｂ」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。手書き文字「Ｃ」は、ペン１００などを使用して手書きされた１つのストローク、つまり１つの軌跡によって表現される。手書きの「矢印」は、ペン１００などを使用して手書きされた手書きされた２つのストローク、つまり２つの軌跡によって表現される。
【００２９】
図４は、図３の手書き文書に対応する時系列情報２００を示している。時系列情報は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。時系列情報２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べている。
【００３０】
時系列情報２００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き「矢印」を構成する２つのストロークをそれぞれ示している。
【００３１】
各ストロークデータは、一つのストロークに対応する座標データ系列（時系列座標）、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）、つまりｎ個の座標データＳＤ１１、ＳＤ１２、…ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりｎ個の座標データＳＤ２１、ＳＤ２２、…ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
【００３２】
各座標データは、対応する軌跡内のある１点に対応するＸ座標およびＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）およびＹ座標（Ｙ１１）を示す。ＳＤ１ｎは、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）およびＹ座標（Ｙ１ｎ）を示す。
【００３３】
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。
【００３４】
このように、各座標データにタイムスタンプ情報Ｔが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
【００３５】
さらに、各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。
【００３６】
図４で説明したような構造を有する時系列情報（手書き文書情報）２００は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。したがって、この手書き文書情報２００を使用することにより、図３に示すようにたとえ手書き「矢印」の先端部が手書き文字「Ａ」上に重ねてまたは手書き文字「Ａ」に近接して書かれたとしても、手書き文字「Ａ」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。
【００３７】
さらに、本実施形態では、上述したように、手書き文書情報は、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の手書き文書情報２００の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
【００３８】
図５は、タブレットコンピュータ１０のデジタルノートブックアプリケーションプログラムによってタッチスクリーンディスプレイ１７上に表示されるノートビュー画面５００の例を示す。ノートビュー画面５００は、手書きデータ（手書きページ）の新規作成、および既存の手書きページの閲覧および編集が可能な画面である。
【００３９】
ノートビュー画面５００の向きは予め決められており、ノートビュー画面５００の上辺がタブレットコンピュータ１０の上端２１側に位置し、ノートビュー画面５００の下辺がタブレットコンピュータ１０の下端２３側に位置する向きで、タッチスクリーンディスプレイ１７上に表示される。ノートビュー画面５００の向きは上述の予め決められた向きに固定されており、たとえ重力の向きに対するタブレットコンピュータ１０の傾き方向が変化してもノートビュー画面５００は回転されない。
【００４０】
ノートビュー画面５００は、さらに、黒ペンボタン５１１、赤ペンボタン５１２、マーカーボタン５１３、選択ボタン５１４、および消しゴムボタン５１５を表示する。黒ペンボタン５１１、赤ペンボタン５１２、マーカーボタン５１３はストロークの描画の形態をユーザに選択させるためのユーザインタフェースである。選択ボタン５１４は上述の範囲指定ツールとして使用されるボタンである。消しゴムボタン５１５は上述の消しゴムツールとして使用されるボタンである。
【００４１】
例えば、黒ペンボタン５１１がユーザによるタップジェスチャ等によって選択された状態で、ペン１００を用いた手書き入力操作がノートビュー画面５００上で行われると、デジタルノートブックアプリケーションプログラムは、ペン１００の動きに合わせて黒色のストローク（軌跡）をノートビュー画面５００上に表示する。ユーザは、任意の文字、マーク、図形、表をノートビュー画面５００上に手書きすることができる。上述したようにノートビュー画面５００の向きは固定されているので、ユーザは、タブレットコンピュータ１０の傾き方向を任意の方向に変更することにより、つまりノートビュー画面５００の向きを任意の向きに設定することにより、所望の方向からノートビュー画面５００上に手書きすることができる。
【００４２】
図５においては、その天地の向きがノートビュー画面５００の天地の向きに整合するストローク群５０１と、その天地の向きがノートビュー画面５００の天地の向きと逆向きであるストローク群５０２とが表示されている例が示されている。
【００４３】
ストローク群５０１は手書き文字列「ＡＢＣＤＥ」に対応するストローク系列である。ストローク群５０１内の各ストロークの天地の向きは、ノートビュー画面５００の天地の向き（タブレットコンピュータ１０の天地の向き）と一致している。換言すれば、ストローク群５０１内の各ストロークの上端は、タブレットコンピュータ１０の上端２１側に位置し、各ストロークの下端はタブレットコンピュータ１０の下端２３側に位置する。
【００４４】
ストローク群５０２は手書き文字列「ＦＧＨＩＪＫ」に対応するストローク系列である。ストローク群５０２内の各ストロークの天地の向きはノートビュー画面５００の天地の向き（タブレットコンピュータ１０の天地の向き）と逆である。換言すれば、ストローク群５０２内の各ストロークは上下反転されている。ストローク群５０２内の各ストロークの上端は、タブレットコンピュータ１０の下端２２側に位置し、各ストロークの下端はタブレットコンピュータ１０の上端２１側に位置する。
【００４５】
ストローク群５０１に対応する手書き文字列「ＡＢＣＤＥ」は、例えば、図６に示すように、ノートビュー画面５００の天地の向きが重力の向きに整合するようにタブレットコンピュータ１０が傾けられている状態でノートビュー画面５００上に手書きされた文字列である。図６に示すように、タブレットコンピュータ１０の上端２１が下端２３よりも重力の向きに関して上側に位置する状態が、ノートビュー画面５００の天地の向きが重力の向きに整合する向きになる、タブレットコンピュータ１０の傾き方向である。
【００４６】
ここで、タブレットコンピュータ１０の傾き方向は様々なパラメータを使用して定義しうる。例えば、タッチスクリーンディスプレイ１７（またはタブレットコンピュータ１０の本体１１）の左右の両辺に直交する第１の線とタッチスクリーンディスプレイ１７（またはタブレットコンピュータ１０の本体１１）の上下の両辺に直交する第２の線とを定義し、これら第１および第２の線のいずれか一方の線が重力の向きに関して下方に向かう方向を、タブレットコンピュータ１０の傾きの方向として定めても良い。
【００４７】
タブレットコンピュータ１０が図６の状態である期間中に手書きされる各ストロークは、ノートビュー画面５００の向きに整合する向きを有するストロークとして扱うことができる。換言すれば、タブレットコンピュータ１０が図６の状態である期間中に手書きされる各ストロークの天地の向きは、ノートビュー画面５００の天地の向きに整合する向きであると推定することができる。
【００４８】
ストローク群５０２に対応する手書き文字列「ＦＧＨＩＪＫ」は、例えば、図７に示すように、ノートビュー画面５００の天地の向きが重力の向きと反対の向きになるようにタブレットコンピュータ１０が傾けられている状態でノートビュー画面５００上に手書きされた文字列である。図７に示すように、タブレットコンピュータ１０の下端２３が上端２１よりも重力の向きに関して上側に位置する状態が、ノートビュー画面５００の天地の向きが重力の向きと反対の向きになるタブレットコンピュータ１０の傾き方向である。タブレットコンピュータ１０が図７の状態である期間中に手書きされる各ストロークは、ノートビュー画面５００の向きと反対の向きを有するストロークとして扱うことができる。換言すれば、タブレットコンピュータ１０が図７の状態である期間中に手書きされる各ストロークの天地の向きは、ノートビュー画面５００の天地の向きと反対の向きであると推定することができる。
【００４９】
このように、本実施形態では、ノートビュー画面５００の向きは固定されているので、ユーザは、タブレットコンピュータ１０の傾き方向を変えることにより、任意の方向からノートビュー画面５００上に手書きすることができる。したがって、ユーザは、タブレットコンピュータ１０を本物の紙の手帳と同様な感覚で利用することができる。しかし、この場合、ノートビュー画面５００（手書きページ）の天地と個々のストロークの天地との間の関係が分からなくなるため、手書きページ内の複数のストロークデータに対する様々な処理を正確に実行することが難しくなる場合がある。
【００５０】
そこで、本実施形態では、各ストロークに対応するストロークデータには、各ストロークの天地の向きを示すストローク向き情報が付加される。ストロークの天地の向きは、ノートビュー画面５００の向きを基準に定めても良い。この場合、あるストロークのストローク向き情報はノートビュー画面５００に対するこのストロークの天地の向きを示す。
【００５１】
図８は、ある１つのページに対応する手書きデータ（手書きページ）のデータ構造の例を示す。  
手書きデータは、ストローク毎に、「ストロークＩＤ」、「ストローク向き（天地）」、「ストロークデータ」を含む。「ストロークＩＤ」は対応する個々のストロークの識別子である。「ストローク向き（天地）」は、画面（ノートビュー画面５００）に対する個々のストロークの天地の向きを示す向き情報である。「ストローク向き（天地）」は、画面の天地の向きに対して整合する第１の向き（「正方向」）、または第１の向きと反対の第２の向き（「１８０度」）の一方を示し得る。
【００５２】
あるいは、「ストローク向き（天地）」は、画面の天地の向きに対して整合する第１の向き（「正方向」）、第１の向きと反対の第２の向き（「１８０度」）、画面の天地の向きに対して右回りに９０度回転した第３の向き（「９０度」）、または画面の天地の向きに対して右回りに２７０度回転した第４の向き（「２７０度」）のいずれか１つを示してもよい。
【００５３】
図９は、第３の向き（「９０度」）を有するストローク群５０３を示す。  
ストローク群５０３に対応する手書き文字列「ＸＹＺ」は、例えば、図９に示すように、ノートビュー画面５００の天地の向きが重力の向きに対して左に９０度回転されるようにタブレットコンピュータ１０が傾けられている状態でノートビュー画面５００上に手書きされた文字列である。図９に示すように、タブレットコンピュータ１０の右端２２が左端２４よりも重力の向きに関して上側に位置する状態が、ノートビュー画面５００の向きが重力の向きに対して左に９０度回転された向きになるタブレットコンピュータ１０の傾き方向である。タブレットコンピュータ１０が図９の状態である期間中に手書きされる各ストロークは、第３の向き（「９０度」）を有するストロークとして扱うことができる。換言すれば、タブレットコンピュータ１０が図９の状態である期間中に手書きされる各ストロークの天地の向きは、ノートビュー画面５００の天地の向きに対して「９０度」回転した向きであると推定することができる。
【００５４】
図１０は、第４の向き（「２７０度」）を有するストローク群５０４を示す。  
ストローク群５０４に対応する手書き文字列「１２３４５６７８９」は、例えば、図１０に示すように、ノートビュー画面５００の天地の向きが重力の向きに対して右に９０度回転されるようにタブレットコンピュータ１０が傾けられている状態でノートビュー画面５００上に手書きされた文字列である。図１０に示すように、タブレットコンピュータ１０の左端２４が右端２２よりも重力の向きに関して上側に位置する状態が、ノートビュー画面５００の向きが重力の向きに対して右に９０度回転された向きになるタブレットコンピュータ１０の傾き方向である。タブレットコンピュータ１０が図１０の状態である期間中に手書きされる各ストロークは、第４の向き（「２７０度」）を有するストロークとして扱うことができる。換言すれば、タブレットコンピュータ１０が図１０の状態である期間中に手書きされる各ストロークの天地の向きは、ノートビュー画面５００の天地の向きに対して「２７０度」回転した向きであると推定することができる。
【００５５】
図１１は、図５のストローク群５０１内の手書き文字「Ａ」に対応する手書きデータ部の例を示す。手書き文字「Ａ」は、ストロークＳＴ１とストロークＳＴ２とを含む。
【００５６】
ストロークＳＴ１に関しては、ストロークＩＤ＝１は、このストロークＳＴ１の識別子である。ストロークＳＴ１のストローク向き＝「正方向」は、ストロークＳＴ１の天地の向きが上述の「正方向」であること、つまり、ストロークＳＴ１の天地の向きが画面の向きに整合していることを示している。ストロークＳＴ１のストロークデータは、ストロークＳＴ１上の複数の点の複数の座標を示す。
【００５７】
ストロークＳＴ２に関しては、ストロークＩＤ＝２は、このストロークＳＴ２の識別子である。ストロークＳＴ２のストローク向き＝「正方向」は、ストロークＳＴ２の天地の向きが上述の「正方向」であること、つまり、ストロークＳＴ２の天地の向きが画面の向きに整合していることを示す。ストロークＳＴ２のストロークデータは、ストロークＳＴ２上の複数の点の複数の座標を示す。
【００５８】
図１２は、図５のストローク群５０２内の手書き文字「Ｆ」（図５においては逆Ｆと読める）に対応する手書きデータ部分の例を示す。手書き文字「Ｆ」は、ストロークＳＴ１３、ストロークＳＴ１４、およびストロークＳＴ１５を含む。
【００５９】
ストロークＳＴ１３に関しては、ストロークＩＤ＝１３は、このストロークＳＴ１３の識別子である。ストロークＳＴ１３のストローク向き＝「１８０度」は、ストロークＳＴ１３の天地の向きが上述の「１８０度」であること、つまり、ストロークＳＴ１３の天地の向きが画面の向きと反対であることを示している。ストロークＳＴ１３のストロークデータは、ストロークＳＴ１３上の複数の点の複数の座標を示す。
【００６０】
ストロークＳＴ１４に関しては、ストロークＩＤ＝１４は、このストロークＳＴ１４の識別子である。ストロークＳＴ１４のストローク向き＝「１８０度」は、ストロークＳＴ１４の天地の向きが上述の「１８０度」であること、つまり、ストロークＳＴ１４の天地の向きが画面の向きと反対であることを示している。ストロークＳＴ１４のストロークデータは、ストロークＳＴ１４上の複数の点の複数の座標を示す。
【００６１】
ストロークＳＴ１５に関しては、ストロークＩＤ＝１５は、このストロークＳＴ１５の識別子である。ストロークＳＴ１５のストローク向き＝「１８０度」は、ストロークＳＴ１５の天地の向きが上述の「１８０度」であること、つまり、ストロークＳＴ１５の天地の向きが画面の向きと反対であることを示している。ストロークＳＴ１５のストロークデータは、ストロークＳＴ１５上の複数の点の複数の座標を示す。
【００６２】
本実施形態においては、各ストロークの天地の向きは、タブレットコンピュータ１０内の加速度センサの出力に応じて定められるタブレットコンピュータ１０の傾きの方向または、カメラモジュール１８によって取得される画像を使用した顔認識の結果に応じて定められるタブレットコンピュータ１０とユーザとの間の位置関係の少なくとも一方を使用して決定される。
【００６３】
図１３は、加速度センサの３軸それぞれの方向の例を示す。  
Ｘ軸は例えばタッチスクリーンディスプレイ１４の短辺（左辺、右辺）と平行な軸であり、前方側が＋Ｘ、後方向側が−Ｘに設定されている。Ｙ軸は例えばタッチスクリーンディスプレイ１４の長辺（上辺、下辺）と平行な軸であり、左側が−Ｙ、右側が＋Ｙに設定されている。Ｚ軸は例えばタッチスクリーンディスプレイ１４の画面（タブレットコンピュータ１０の上面）に直交する軸であり、上端側が−Ｚ、底端側が＋Ｙに設定されている。
【００６４】
タブレットコンピュータ１０が図１３に示されているように机上のような水平面上に置かれている状態においては、加速度センサの出力（x，y，ｚ）は、（０，０，１）となる。
【００６５】
図１４は、タブレットコンピュータ１０の傾き方向（タブレットコンピュータ１０の向き）と加速度センサの検出出力との関係を示す。ここでは、説明を簡単にするために、タブレットコンピュータ１０の背面が水平軸に対してほぼ鉛直である場合を想定する。
【００６６】
図１４の（Ａ）は、手書きによって入力されるストロークの向きが「正方向」であると判定され得るタブレットコンピュータ１０の傾き方向を示している。加速度センサの出力（x，y，ｚ）は、（１，０，０）である。  
図１４の（Ｂ）は、手書きによって入力されるストロークの向きが「１８０度」であると判定され得るタブレットコンピュータ１０の傾き方向を示している。加速度センサの出力（x，y，ｚ）は、（−１，０，０）である。
【００６７】
図１４の（Ｃ）は、手書きによって入力されるストロークの向きが「９０度」であると判定され得るタブレットコンピュータ１０の傾き方向を示している。加速度センサの出力（x，y，ｚ）は、（０，−１，０）である。  
図１４の（Ｄ）は、手書きによって入力されるストロークの向きが「２７０度」であると判定され得るタブレットコンピュータ１０の傾き方向を示している。加速度センサの出力（x，y，ｚ）は、（０，１，０）である。
【００６８】
このように、加速度センサの出力により定められるタブレットコンピュータ１０の傾きの方向を使用することにより、手書きによって入力されるストロークそれぞれの天地の向きを決定することが出来る。
【００６９】
あるいは、加速度センサの出力により定められるタブレットコンピュータ１０の傾きの方向の代わりに、カメラモジュール１８によって取得される画像を使用した顔認識の結果に応じて定められるタブレットコンピュータ１０とユーザとの間の位置関係を使用して、手書きによって入力されるストロークの天地の向きを決定してもよい。
【００７０】
認識される顔画像が、例えば、顔を正方向から見た顔画像、上下反転された顔画像、右に９０度回転された顔画像、右に２７０度回転された顔画像のいずれであるかを判定することにより、タブレットコンピュータ１０とユーザとの間の位置関係を推定することが出来る。
【００７１】
またあるいは、加速度センサの出力により定められるタブレットコンピュータ１０の傾きの方向と、顔認識の結果に応じて定められるタブレットコンピュータ１０とユーザとの間の位置関係とを、状況に応じて選択的に使用して、手書きによって入力されるストロークの天地の向きを決定してもよい。
【００７２】
ところで、タブレットコンピュータ１０が図１３に示すように水平面上に置かれた状態で使用されている場合には、タブレットコンピュータ１０の傾きはほとんどない。
【００７３】
このため、加速度センサの出力のみを使用してストロークの向き（ストロークの天地の向き）を決定するという方法においては、もしタブレットコンピュータ１０が水平面上でユーザによって１８０度回転されてタブレットコンピュータ１０の上端２１側がユーザ側に向けられ、そしてユーザがタブレットコンピュータ１０の上端２１側から手書き操作を行ったならば、この手書き操作によって入力されるストロークの向き（ストロークの天地の向き）を正しく判定することができない可能性がある。
【００７４】
また、ユーザはタブレットコンピュータ１０を自身の膝の上に置いて使用する場合もある。この場合、タブレットコンピュータ１０の姿勢が不安定になるため、加速度センサの出力のみを使用してストロークの向き（ストロークの天地の向き）を決定するという方法においては、例えば、ユーザが「正方向」の向きでストロークを手書きしようとしているにもかかわらず、画面に対するストロークの天地の向きが誤って「９０度」、「１８０度」、または「２７０度」であると判定されてしまう可能性もある。
【００７５】
顔認識結果を使用してストロークの向きを決定する方法は、このような誤判定を防ぐことができる場合がある。
【００７６】
図１５は、顔認識結果を使用してストローク向き情報を決定する動作例を示す。  
図１５は、ユーザがタブレットコンピュータ１０の画面（ノートビュー画面５００）を正方向から見ながらタブレットコンピュータ１０を使用している場合を想定している。図１５の使用形態は、例えば、タブレットコンピュータ１０が水平面上に置かれ且つそのタブレットコンピュータ１０の下端側がユーザに向いている状態、あるいはノートビュー画面５００が正方向を向くようにユーザがタブレットコンピュータ１０を持っている状態に対応する。デジタルノートブックアプリケーションプログラムは、カメラモジュール１８によって取得される画像６００に含まれる人物（ユーザ）の顔画像を検出するための顔認識処理７００を実行する。デジタルノートブックアプリケーションプログラムは、顔認識処理７００の結果に基づき、画像６００内の顔画像の向きを特定することができる。したがって、この顔認識処理７００の結果に基づき、デジタルノートブックアプリケーションプログラムは、タブレットコンピュータ１０の下端側がユーザに向いていること、つまり、タブレットコンピュータ１０とユーザとの位置関係が、上述の「正方向」の向きでストロークが手書き可能な位置関係であることを、認識することができる。
【００７７】
図１６は、顔認識結果を使用してストローク向き情報を決定する動作の別の例を示す。  
図１６は、ユーザが上下反転されたタブレットコンピュータ１０の画面（ノートビュー画面５００）を見ながらタブレットコンピュータ１０を使用している場合を想定している。図１６の使用形態は、例えば、タブレットコンピュータ１０が水平面上に置かれ且つそのタブレットコンピュータ１０の上端側がユーザに向いている状態、あるいはノートビュー画面５００が上下反転されるようにユーザがタブレットコンピュータ１０を持っている状態に対応する。デジタルノートブックアプリケーションプログラムは、カメラモジュール１８によって取得される画像６０１に含まれる人物（ユーザ）の顔画像を検出するための顔認識処理７００を実行する。デジタルノートブックアプリケーションプログラムは、顔認識処理７００の結果に基づき、画像６０１内の顔画像の向きを特定することができる。したがって、この顔認識処理７００の結果に基づき、デジタルノートブックアプリケーションプログラムは、タブレットコンピュータ１０の上端側がユーザに向いていること、つまり、タブレットコンピュータ１０とユーザとの位置関係が、上述の「１８０度」の向きでストロークを手書き可能な位置関係であることを、認識することができる。
【００７８】
図１７は、顔認識結果を使用してストローク向き情報を決定する動作の別の例を示す。  
図１７は、ユーザが、右に９０度回転されたタブレットコンピュータ１０の画面（ノートビュー画面５００）を見ながらタブレットコンピュータ１０を使用している場合を想定している。図１７の使用形態は、例えば、タブレットコンピュータ１０が水平面上に置かれ且つそのタブレットコンピュータ１０の右端側がユーザに向いている状態、あるいはノートビュー画面５００が右９０度回転されるようにユーザがタブレットコンピュータ１０を持っている状態に対応する。デジタルノートブックアプリケーションプログラムは、カメラモジュール１８によって取得される画像６０２に含まれる人物（ユーザ）の顔画像を検出するための顔認識処理７００を実行する。デジタルノートブックアプリケーションプログラムは、顔認識処理７００の結果に基づき、画像６０２内の顔画像の向きを特定することができる。したがって、この顔認識処理７００の結果に基づき、デジタルノートブックアプリケーションプログラムは、タブレットコンピュータ１０の右端側がユーザに向いていること、つまり、タブレットコンピュータ１０とユーザとの位置関係が、上述の「２７０度」の向きでストロークが手書き可能な位置関係であることを、認識することができる。
【００７９】
図１８は、顔認識結果を使用してストローク向き情報を決定する動作の別の例を示す。  
図１８は、ユーザが、左に９０度回転されたタブレットコンピュータ１０の画面（ノートビュー画面５００）を見ながらタブレットコンピュータ１０を使用している場合を想定している。図１８の使用形態は、例えば、タブレットコンピュータ１０が水平面上に置かれ且つそのタブレットコンピュータ１０の左端側がユーザに向いている状態、あるいはノートビュー画面５００が左に９０度回転されるようにユーザがタブレットコンピュータ１０を持っている状態に対応する。デジタルノートブックアプリケーションプログラムは、カメラモジュール１８によって取得される画像６０３に含まれる人物（ユーザ）の顔画像を検出するための顔認識処理７００を実行する。デジタルノートブックアプリケーションプログラムは、顔認識処理７００の結果に基づき、画像６０３内の顔画像の向きを特定することができる。したがって、この顔認識処理７００の結果に基づき、デジタルノートブックアプリケーションプログラムは、タブレットコンピュータ１０の左端側がユーザに向いていること、つまり、タブレットコンピュータ１０とユーザとの位置関係が、上述の「９０度」の向きでストロークを手書き可能な位置関係であることを、認識することができる。
【００８０】
ところで、手書き文字等の天地の向きは、手書き文字の運筆方向に基づいて決定することもできる。しかし、運筆方向に基づいて天地の向きを決定するという方法では、その特性上、確実な天地判定が難しく、またＬＴＲ言語とＲＴＬ言語の双方に対応することができない。
【００８１】
本実施形態では、加速度センサの出力または顔認識結果の少なくとも一方を利用して各ストロークの天地の向きを決定しているので、手書き文字の言語がＬＴＲ言語／ＲＴＬ言語のいずれであっても、確実な天地判定を行うことができる。
【００８２】
図１９は、タブレットコンピュータ１０のシステム構成を示す図である。  
タブレットコンピュータ１０は、図１９に示されるように、上述のカメラモジュール１８に加え、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、加速度センサ１０８、エンベデッドコントローラ（ＥＣ）１０９等を備える。
【００８３】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種モジュールの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム（ＯＳ）２０１、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、デジタルノートブックアプリケーションプログラム２０２が含まれている。このデジタルノートブックアプリケーションプログラム２０２は、上述の手書きデータを作成および表示する機能、手書きデータを編集する機能、筆跡検索機能、および認識機能等を有している。
【００８４】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００８５】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００８６】
グラフィクスコントローラ１０４は、本タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。このグラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。このＬＣＤ１７Ａ上にはタッチパネル１７Ｂおよびデジタイザ１７Ｃが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン１００が接触される画面上の接触位置および接触位置の動き等はデジタイザ１７Ｃによって検出される。
【００８７】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。加速度センサ１０８は例えば３次元加速度センサであり、３つの軸方向それぞれに対応する動的／静的加速度を検知するように構成されている。ＥＣ１０９は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０９は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００８８】
次に、図２０を参照して、デジタルノートブックアプリケーションプログラム２０２の機能構成について説明する。
【００８９】
デジタルノートブックアプリケーションプログラム２０２は、ペン軌跡表示処理部３０１、時系列情報生成部３０２、編集処理部３０３、ページ保存処理部３０４、ページ取得処理部３０５、手書き文書表示処理部３０６、処理対象ブロック選択部３０７、処理部３０８、ストローク上下向き決定部３１２等を備える。
【００９０】
デジタルノートブックアプリケーションプログラム２０２は、タッチスクリーンディスプレイ１７を用いて入力されるストロークデータを使用することによって、手書き文書（手書きデータ）の作成、表示、編集等を行う。タッチスクリーンディスプレイ１７は、「タッチ」、「移動（スライド）」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動（スライド）」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
【００９１】
ペン軌跡表示処理部３０１および時系列情報生成部３０２は、タッチスクリーンディスプレイ１７によって発生される「タッチ」または「移動（スライド）」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントにも、移動先の接触位置の座標が含まれている。したがって、ペン軌跡表示処理部３０１および時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から、接触位置の動きの軌跡に対応する座標列を受信することができる。
【００９２】
ペン軌跡表示処理部３０１は、タッチスクリーンディスプレイ１７から座標列を受信し、この座標列に基づいて、ペン１００等を使用した手書き入力操作によって入力される複数のストロークの軌跡をタッチスクリーンディスプレイ１７内のＬＣＤ１７Ａの画面上に表示する。このペン軌跡表示処理部３０１により、画面にペン１００が接触している間のペン１００の軌跡、つまり各ストロークの軌跡がＬＣＤ１７Ａの画面上に描かれる。
【００９３】
ストローク上下向き決定部３１２は、複数のストロークの天地の向きを決定する。より詳しくは、ストローク上下向き決定部３１２は、（１）加速度センサ１０８の出力に応じて定められるタブレットコンピュータ１０の傾きの方向、（２）カメラモジュール１８によって取得される画像を使用した顔認識の結果に応じて定められるタブレットコンピュータ１０とユーザとの間の位置関係の少なくとも一方を使用して、手書きによって入力される複数のストロークの天地の向きを決定する。ストロークの天地の向きは、上述したように画面に対するストロークの天地の向きであり得る。
【００９４】
時系列情報生成部３０２は、タッチスクリーンディスプレイ１７から出力される上述の座標列を受信し、この座標列に基づいて、上述の複数のストロークに対応する複数のストロークデータ（時系列情報）を生成する。これらストロークデータ（時系列情報）、つまり各ストロークの各点に対応する座標および各ストロークのタイムスタンプ情報は作業メモリ４０１に一時保存してもよい。
【００９５】
ページ保存処理部３０４は、ストローク上下向き決定部３１２によって決定される各ストロークの上下の向きに基づいて、各ストロークデータに上述のストローク向き情報を付加する。そして、ページ保存処理部３０４は、複数のストロークに対応する複数のストロークデータ（時系列情報）と画面に対するこれら複数のストロークそれぞれの天地の向きを示す複数のストローク向き情報とを含む手書きデータ（手書きページ）を記憶媒体４０２に保存する。記憶媒体４０２は、上述したように、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイスのいずれであってもよい。
【００９６】
ページ取得処理部３０５は、記憶媒体４０２から既に格納されている任意の手書きデータを読み出す。読み出された手書きデータは手書き文書表示処理部３０６に送られる。手書き文書表示処理部３０６は、手書きデータを解析し、この解析結果に基づいて、手書きデータによって示される各ストロークの軌跡を画面上に手書きページとして表示する。
【００９７】
編集処理部３０３は現在表示中の手書きページを編集するための処理を実行する。すなわち、編集処理部３０３は、タッチスクリーンディスプレイ１７上でユーザによって行われる編集操作に応じて、表示されている複数のストローク内の１以上のストロークを削除または移動等するための編集処理を実行する。さらに、編集処理部３０３は、編集処理の結果を表示中の時系列情報に反映するためにこの時系列情報を更新する。
【００９８】
ユーザは、「消しゴム」ツール等を使用して、表示されている複数のストローク内の任意のストロークを削除することができる。また、ユーザは、画面上の任意の部分を丸または四角によって囲むための「範囲指定」ツールを使用して、表示されている手書きページ内の任意の部分を範囲指定することができる。この範囲指定操作によって指定される画面上の指定範囲に応じて、処理対象の手書きデータ部分、つまり処理対象のストロークデータ群が処理対象ブロック選択部３０７によって選択される。
【００９９】
編集処理部３０３は、ユーザによって編集メニューから「削除」または「移動」等のメニューが選択された場合、処理対象ブロック選択部３０７によって選択されているストロークデータ群に対する削除、移動等の処理を実行する。
【０１００】
処理部３０８は、処理対象の手書きデータに対して様々な処理、例えば、筆跡検索処理、認識処理等を実行することができる。この処理部３０８は、検索処理部３０９および認識処理部３１０を含む。
【０１０１】
検索処理部３０９は、筆跡検索（ストローク検索）を実行する。この筆跡検索は、検索キーである１以上のストローク（クエリーストローク）に類似する１以上のストロークを含む手書きページを記憶媒体４０２から検索する処理である。また、この筆跡検索は、１以上のクエリーストロークに類似する１以上のストロークを検索対象の手書きページから検索することもできる。
【０１０２】
筆跡検索では、クエリーストロークと検索対象の手書きページ内の複数のストロークとの間のマッチングによって、これら複数のストロークから、クエリーストロークに類似するストロークが検索される。クエリーストロークに類似するストロークは、クエリーストロークの筆跡特徴と類似する筆跡特徴を有するストロークである。筆跡特徴は、例えば、ストロークの形状、ストロークの筆画方向、等である。
【０１０３】
ストローク間の類似度の計算方法としては、様々な方法を使用することができる。例えば各ストロークの座標列をベクトルとして扱ってもよい。この場合、比較対象のベクトル同士の類似度を計算するために、それら比較対象のベクトル間の内積を算出してもよい。また検索キーは複数のストロークを含む場合が多い。この場合、検索キーである複数のストローク（クエリーストローク系列）に類似するストローク系列を含む手書きページが記憶媒体４０２から検索される。クエリーストローク系列の検索においては、ＤＰ（Dynamic Programming）マッチングを使用してもよい。
【０１０４】
認識処理部３１０は、表示されている手書きページに対して文字認識などの認識処理を実行する。いま、ある手書きページ全体あるいはその手書きページ内の一部分を文字認識する場合を想定する。手書きページ全体あるいはその手書きページ内の処理対象部分には、例えば、上述の「１８０度」の向きを有する複数のストロークが含まれている可能性がある。この場合、認識処理部３１０は、手書きページまたはその手書きページ内の処理対象部分から、「１８０度」の向きを有する複数のストロークを抜き出し、これら複数のストロークを、座標変換によって、「正方向」に対応する向きを有する別の複数のストロークに変換する。そして、認識処理部３１０は、別の複数のストロークを文字認識することによって、別の複数のストロークに対応する１以上の文字コードを出力する。これにより、手書きページ全体あるいはその手書きページ内の処理対象部分に、「１８０度」の向きを有するストローク群が含まれていても、それらストローク群に対する文字認識を正しく実行することができる。
【０１０５】
図２１は、「正方向」の向きを有する手書き文字列「ＡＢＣＤＥ」に対応するストローク群５０１に対する文字認識処理動作を示す。認識処理部３１０は、上述のストローク向き情報に基づいて、ストローク群５０１が「正方向」の向きを有するストローク群であるか否かを判定する。ストローク群５０１が「正方向」の向きを有するストローク群であるので、認識処理部３１０は、上述の座標変換を行わない。そして、認識処理部３１０は、ストローク群５０１を認識処理部３１０内の文字認識モジュールを使用して、ストローク群５０１を１以上の文字コード（ここでは、文字列「ＡＢＣＤＥ」に対応する複数の文字コード）に変換する文字認識を実行する。
【０１０６】
図２２は、「１８０度」の向きを有する手書き文字列「ＦＧＨＩＪＫ」に対応するストローク群５０２に対する文字認識処理動作を示す。認識処理部３１０は、上述のストローク向き情報に基づいて、ストローク群５０２が「正方向」の向きを有するストローク群であるか否かを判定する。ストローク群５０２が「正方向」の向きを有するストローク群ではなく、「１８０度」の向きを有するストローク群である。このため、認識処理部３１０は、上述の座標変換（１８０度回転／反転）を実行して、ストローク群５０２を「正方向」の向きを有するストローク群５０２’に変換する。そして、認識処理部３１０は、認識処理部３１０内の文字認識モジュールを使用して、ストローク群５０２’を１以上の文字コード（ここでは、文字列「ＦＧＨＩＪＫ」に対応する複数の文字コード）に変換する文字認識を実行する。
【０１０７】
なお、「９０度」の向きを有するストローク群を文字認識する場合にも、「９０度」の向きを有するストローク群を「正方向」の向きを有するストローク群に変換するための座標変換が実行される。同様に、「２７０度」の向きを有するストローク群を文字認識する場合にも、「２７０度」の向きを有するストローク群を「正方向」の向きを有するストローク群に変換するための座標変換が実行される。
【０１０８】
図２３は、筆跡検索の概要を示す。  
検索処理部３０９は、検索キー入力領域５２１および検索ボタン５２２を含む検索キー入力ダイアログを画面上に表示する。検索キー入力領域５２１は、検索キーとすべき文字列、図形、表などを手書きするための入力領域である。検索ボタン５２２は、検索処理の実行を要求するためのボタンである。図２３においては、検索キー入力領域５２１に手書き文字列「Ｍｅｅｔｉｎｇ」が検索キーとして入力された場合が例示されている。ユーザは、手書き文字列に限らず、手書き図形、手書き表などを検索キー入力領域５２１に手書きすることができる。
【０１０９】
検索ボタン５２２がタップされたことが検出されると、検索処理部３０９は、手書き文字列「Ｍｅｅｔｉｎｇ」に対応するストローク群をクエリーストローク系列に決定し、このクエリーストローク系列に類似するストローク系列を含む手書きページを検索する。いま、手書きページ６１１、６１２、６１３が、手書き文字列「Ｍｅｅｔｉｎｇ」に対応するストローク群を含む場合を想定する。この場合、検索処理部３０９は、手書きページ６１１、６１２、６１３それぞれのサムネイルを画面上に表示する。さらに、検索処理部３０９は、手書きページ６１１、６１２、６１３内のヒットワード（手書き文字列「Ｍｅｅｔｉｎｇ」）を強調表示してもよい。
【０１１０】
検索対象の手書きページには、例えば、上述の「１８０度」の向きを有する複数のストロークが含まれている可能性がある。この場合、検索処理部３０９は、手書きページから、「１８０度」の向きを有する複数のストロークを抜き出し、これら複数のストロークを、座標変換によって、「正方向」に対応する向きを有する別の複数のストロークに変換する。そして、検索処理部３０９は、クエリーストロークとこれら別の複数のストロークとの間のマッチングによって、これら別の複数のストロークからクエリーストロークに類似するストロークを検索する。これにより、手書きページ内に「１８０度」の向きを有するストローク群が含まれていても、それらストローク群に対する筆跡検索を正しく実行することができる。
【０１１１】
図２４は、筆跡検索の例を示す。ここでは、図５で説明した、ストローク群５０１、５０２を含む手書きページを検索対象とする場合を想定する。クエリーストローク系列は手書き文字列「ＡＢＣ」であるとする。
【０１１２】
検索処理部３０９は、上述のストローク向き情報に基づいて、ストローク群５０１が「正方向」の向きを有するストローク群であるか否かを判定する。ストローク群５０１は「正方向」の向きを有するストローク群であるので、検索処理部３０９は、上述の座標変換を実行しない。また、検索処理部３０９は、上述のストローク向き情報に基づいて、ストローク群５０２が「正方向」の向きを有するストローク群であるか否かを判定する。ストローク群５０２は「１８０度」の向きを有するストローク群であるので、検索処理部３０９は、上述の座標変換（１８０度回転／反転）を実行して、ストローク群５０２を「正方向」の向きを有するストローク群５０２’に変換する。そして、検索処理部３０９は、ストローク群５０１およびストローク群５０２’からクエリーストローク系列に類似するストローク系列を検索する。
【０１１３】
図２４においては、ストローク群５０１内の手書き文字列「ＡＢＣ」がクエリーストローク系列に類似するストローク系列として検索され、この手書き文字列「ＡＢＣ」が強調表示される。
【０１１４】
図２５は、手書き文字列「ＡＢＣ」の代わりに手書き文字列「ＦＧＨ」がクエリーストローク系列が入力された場合に実行される筆跡検索動作を示す。図２５においては、ストローク群５０２’とクエリーストローク系列との間のマッチングにより、ストローク群５０２’内の手書き文字列「ＦＧＨ」がクエリーストローク系列に類似するストローク系列として検索される。そして、ストローク群５０２内の手書き文字列「ＦＧＨ」が強調表示される。
【０１１５】
なお、検索対象のページ内に「９０度」の向きを有するストローク群が含まれている場合にも、「９０度」の向きを有するストローク群を「正方向」の向きを有するストローク群に変換するための座標変換が実行される。同様に、検索対象のページ内に「２７０度」の向きを有するストローク群が含まれている場合にも、「２７０度」の向きを有するストローク群を「正方向」の向きを有するストローク群に変換するための座標変換が実行される。
【０１１６】
図２６は、正方向の向きを有するストローク群と正方向と逆の向きを有するストローク群とを含む手書きページの例を示す。この手書きページは、「正方向」の向きを有するストローク群８０１と、「１８０度」の向きを有するストローク群８０２とを含む。手書き文書表示処理部３０６は、互いに向きの異なるこれらストローク群８０１、８０２を選択的にノートビュー画面５００上に表示することができる。
【０１１７】
例えば、手書き文書表示処理部３０６は、手書きページから「正方向」の向きを有するストローク群８０１に対応するストロークデータストロークのみを抽出し、これら「正方向」の向きを有するストローク群８０１のみをノートビュー画面５００上に表示することができる。あるいは、手書き文書表示処理部３０６は、「正方向」の向きを有するストローク群８０１または「１８０度」の向きを有するストローク群８０２のいずれか一方をノートビュー画面５００上に強調表示することもできる。
【０１１８】
さらに、手書き文書表示処理部３０６は、タブレットコンピュータ１０の現在の傾き方向に応じて、ストローク群８０１、８０２を選択的にノートビュー画面５００上に表示することができる。
【０１１９】
図２７は、タブレットコンピュータ１０の現在の傾き方向に応じて、正方向の向きを有するストローク群と正方向と逆の向きを有するストローク群とを選択的に表示する動作例を示す。ここでは、タブレットコンピュータ１０の現在の傾き方向が、ノートビュー画面５００の向きが重力の向きに整合する向きになる傾きの方向である場合を想定する。この場合、ユーザによって観察されるストローク群８０１の軌跡はその上下が反転されていない正常な状態であるが、ユーザによって観察されるストローク群８０２の軌跡はその上下が反転された状態である。したがって、この場合には、手書き文書表示処理部３０６は、ノートビュー画面５００の向きと整合する向きを有するストローク群８０１のみを表示しても良い。あるいは、手書き文書表示処理部３０６は、ノートビュー画面５００の向きと整合する向きを有するストローク群８０１を強調表示し、且つストローク群８０２を薄い色で表示してもよい。
【０１２０】
さらに、手書き文書表示処理部３０６は、ストローク群８０２を上下反転し、上下反転されたストローク群８０２をノートビュー画面５００上に表示することもできる。これにより、ストローク群８０１とストローク群８０２とをノートビュー画面５００の向きと整合する同じ向きでノートビュー画面５００上に表示することができる。
【０１２１】
図２８に示すように、もしタブレットコンピュータ１０の現在の傾き方向が、ノートビュー画面５００の向きが重力の向きと反対向きになる傾きの方向であるならば、手書き文書表示処理部３０６は、ストローク群８０２のみを表示しても良い。あるいは、手書き文書表示処理部３０６は、ストローク群８０２を強調表示し、且つストローク群８０１を薄い色で表示してもよい。
【０１２２】
図２９のフローチャートは、手書きデータ保存処理の手順を示す。  
ストローク上下向き決定部３１２は、まず、加速度センサ１０８の検出出力に基づいてタブレットコンピュータ１０の傾き方向を判定する（ステップＳ１１）。次いで、ストローク上下向き決定部３１２は、カメラモジュール１８によって取得される画像に含まれる人物（ユーザ）の顔画像を検出するための顔認識を実行し、この顔認識結果に基づいてタブレットコンピュータ１０とユーザとの間の現在の位置関係を推定する（ステップＳ１２）。そして、ストローク上下向き決定部３１２は、手書きによって入力される各ストロークの画面に対する天地の向きを、タブレットコンピュータ１０の現在の傾き方向または、タブレットコンピュータ１０とユーザとの間の現在の位置関係の少なくとも一方を使用して、決定する（ステップＳ１３）。
【０１２３】
ステップＳ１３では、ストローク上下向き決定部３１２は、例えば、タブレットコンピュータの現在の傾きが基準値未満であるか否かを判定しても良い。タブレットコンピュータ１０がその背面が水平面とほぼ水平な状態で使用されている場合には、タブレットコンピュータの現在の傾きが基準値未満となる。この場合、ストローク上下向き決定部３１２は、タブレットコンピュータ１０とユーザとの間の現在の位置関係を、加速度センサ１０８の出力によって定められるタブレットコンピュータ１０の現在の傾き方向よりも優先的に使用して、手書きによって入力される各ストロークの天地の向きを決定する。例えば、上述の顔認識によってタブレットコンピュータ１０とユーザとの間の現在の位置関係を判定できたならば、ストローク上下向き決定部３１２は、現在の位置関係のみに基づいて、画面に対するストロークの天地の向きを決定してもよい。これにより、加速度センサ１０８の出力によって定められるタブレットコンピュータ１０の現在の傾き方向を使用する場合よりも確実な天地判定が可能となる。
【０１２４】
一方、タブレットコンピュータの現在の傾きが基準値以上である場合には、ストローク上下向き決定部３１２は、タブレットコンピュータ１０の現在の傾き方向を、タブレットコンピュータ１０とユーザとの間の現在の位置関係よりも優先的に使用して、手書きによって入力される各ストロークの天地の向きを決定してもよい。この場合、ストローク上下向き決定部３１２は、タブレットコンピュータ１０の現在の傾き方向のみに基づいて、画面に対するストロークの天地の向きを決定してもよい。これにより、顔認識結果を使用する場合よりも少ない負荷で迅速にストロークの天地の向きを決定することができる。
【０１２５】
ページ保存処理部３０４は、手書きによって入力される各ストロークに対応するストロークデータと手書きによって入力される各ストロークの天地の向きを示すストローク向き情報とを含む手書きデータを記憶媒体に保存する（ステップＳ１４）。
【０１２６】
なお、上述したように、手書きによって入力される各ストロークの天地の向きは、タブレットコンピュータ１０の現在の傾き方向のみを、あるいはタブレットコンピュータ１０とユーザとの間の現在の位置関係ののみを使用して、決定しても良い。
【０１２７】
図３０のフローチャートは、手書きデータに基づいて複数のストロークを表示する処理の手順を示す。  
手書き文書表示処理部３０６は、記憶媒体から表示処理対象の手書きデータを読み出す。そして、手書き文書表示処理部３０６は、手書きデータ内の各ストロークデータに付加されているストローク向き情報に基づいて、手書きデータ内の複数のストロークを、複数のグループに分類する（ステップＳ２１）。ステップＳ２１では、複数のストロークは、４つのグループ、すなわち、「正方向」の向きを有するストロークのグループと、「９０度」の向きを有するストロークのグループと、「１８０度」の向きを有するストロークのグループと、「２７０度」の向きを有するストロークのグループ、に分類される。そして、手書き文書表示処理部３０６は、これら複数のグループを選択的に画面上に表示する（ステップＳ２２）。ステップＳ２２においては、例えば、手書き文書表示処理部３０６は、４つのグループから、タブレットコンピュータ１０の現在の傾き方向に整合する天地の向きを有するグループを選択し、選択されたグループに属するストロークそれぞれを画面上に描画してもよい。
【０１２８】
以上説明したように、本実施形態においては、複数のストロークに対応する複数のストロークデータと複数のストロークの天地の向きに関する複数の向き情報とを含む手書きデータが記憶媒体に格納される。したがって、個々のストロークデータをその天地方向を考慮した状態で処理することができる。また、複数のストロークの天地の向きは、加速度センサ１０８の出力に応じて定められるタブレットコンピュータ１０の傾きの方向または、カメラモジュール１８によって取得される画像を使用した顔認識の結果に応じて定められるタブレットコンピュータ１０とユーザとの間の位置関係の少なくとも一方を使用して、決定される。したがって、運筆方向を使用して天地の向きを決定する場合よりも確実な天地判定が可能となる。
【０１２９】
本実施形態の手書き文書に対する各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをタッチスクリーンディスプレイを備えた通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１３０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３１】
１０…タブレットコンピュータ、１８…カメラモジュール、１０８…加速度センサ、３０１…ペン軌跡表示処理部、３０２…時系列情報生成部、３０４…ページ保存処理部、３１２…ストローク上下向き決定部、３０８…処理部、３０９…検索処理部、３１０…認識処理部。
【図１】
2014215752.tif 000003
【図２】
2014215752.tif 000004
【図３】
2014215752.tif 000005
【図４】
2014215752.tif 000006
【図５】
2014215752.tif 000007
【図６】
2014215752.tif 000008
【図７】
2014215752.tif 000009
【図８】
2014215752.tif 000010
【図９】
2014215752.tif 000011
【図１０】
2014215752.tif 000012
【図１１】
2014215752.tif 000013
【図１２】
2014215752.tif 000014
【図１３】
2014215752.tif 000015
【図１４】
2014215752.tif 000016
【図１５】
2014215752.tif 000017
【図１６】
2014215752.tif 000018
【図１７】
2014215752.tif 000019
【図１８】
2014215752.tif 000020
【図１９】
2014215752.tif 000021
【図２０】
2014215752.tif 000022
【図２１】
2014215752.tif 000023
【図２２】
2014215752.tif 000024
【図２３】
2014215752.tif 000025
【図２４】
2014215752.tif 000026
【図２５】
2014215752.tif 000027
【図２６】
2014215752.tif 000028
【図２７】
2014215752.tif 000029
【図２８】
2014215752.tif 000030
【図２９】
2014215752.tif 000031
【図３０】
2014215752.tif 000032