(57)【要約】  実施形態によれば、電子機器は、ディスプレイと、手書きされるストロークに対応するストロークデータを入力する入力手段と、１以上の第１ストロークをディスプレイに表示する表示処理手段とを備える。表示処理手段は、１以上のストロークに対してディスプレイを介して第１回目の第１操作が検出される場合、１以上の第１ストロークの表示形態を第１表示形態から第２表示形態へ変更し、第１回目の第１操作に続いて、１以上の第１ストロークに対してディスプレイを介して第２回目の第１操作が検出される場合、１以上の第１ストロークの表示形態を第２表示形態から第３表示形態へ変更する。
2014147722.tif 000002
【特許請求の範囲】
【請求項１】
ディスプレイと、
手書きされるストロークに対応するストロークデータを入力する入力手段と、
１以上の第１ストロークを前記ディスプレイに表示する表示処理手段とを備え、
前記表示処理手段は、
前記１以上のストロークに対して前記ディスプレイを介して第１回目の第１操作が検出される場合、前記１以上の第１ストロークの表示形態を第１表示形態から第２表示形態へ変更し、
前記第１回目の第１操作に続いて、前記１以上の第１ストロークに対して前記ディスプレイを介して第２回目の第１操作が検出される場合、前記１以上の第１ストロークの表示形態を前記第２表示形態から第３表示形態へ変更する電子機器。
【請求項２】
前記表示処理手段は、前記１以上のストロークに対して前記ディスプレイを介して前記第１回目の第１操作が検出される場合、前記１以上の第１ストロークの表示形態を前記第１表示形態から、前記１以上の第１ストロークの種別に応じて異なる前記第２表示形態へ変更するものであって、
前記１以上の第１ストロークの種別は、文字、文字以外、図、表のうちの１つを少なくとも含む請求項１に記載の電子機器。
【請求項３】
前記表示処理手段は、前記１以上の第１ストロークの複数の属性のうちの第１属性を変更することで、前記第１表示形態を前記第２表示形態へ変更し、
前記１以上の第１ストロークの複数の属性のうちの第２属性を変更することで、前記第２表示形態を前記第３表示形態へ変更し、
前記１以上の第１ストロークの属性は、線の太さ、色、種別のうちの１つを少なくとも含む請求項１に記載の電子機器。
【請求項４】
前記第１回目の第１操作と、前記第２回目の第１操作とは、前記ディスプレイ上で実行可能な同種のジェスチャー操作である請求項１記載の電子機器。
【請求項５】
前記第１回目の第１操作と、前記第２回目の第１操作とは、前記ディスプレイ上で、前記ディスプレイ上の前記１以上の第１ストロークの表示領域の近傍の領域を囲む操作である請求項４記載の電子機器。
【請求項６】
前記表示処理手段は、前記第１回目の第１操作に続いて、前記１以上の第１ストロークに対して前記ディスプレイを介して第２回目の第１操作が検出される場合、前記第２回目の第１操作が開始するタイミングから前記第２回目の第１操作が終了するタイミングまでの期間で、前記第２回目の第１操作の実行状況に応じて、前記１以上の第１ストロークの表示形態を前記第２表示形態から前記第３表示形態へ段階的に変更する請求項１に記載の電子機器。
【請求項７】
前記表示処理手段は、前記第１回目の第１操作に続いて、前記１以上の第１ストロークに対して前記ディスプレイを介して前記第１操作とは方向が逆方向の第２操作が検出される場合、前記１以上の第１ストロークの表示形態を前記第２表示形態から前記第１表示形態へ変更する請求項１に記載の電子機器。
【請求項８】
前記第１回目の第１操作と、前記第２回目の第１操作とは、前記ディスプレイ上で、前記ディスプレイ上の前記１以上の第１ストロークの表示領域の近傍の領域で、タップ、ダブルタップ、フリック、スライド、スワイプ、ピンチアウト、ピンチイン、複数の個所における同時のタップ、のいずれかの操作である請求項４記載の電子機器。
【請求項９】
前記表示処理手段は、前記１以上の第１ストロークの種別が表である場合に、前記第１表示形態から前記第２表示形態への変更、又は前記第２表示形態から前記第３表示形態への変更の少なくとも一方を、前記１以上の第１ストロークに含まれる文字の認識、前記１以上の第１ストロークに含まれる線の整形、前記１以上の第１ストロークにかかる表の一部領域の着色のいずれかとする請求項１に記載の電子機器。
【請求項１０】
前記表示処理手段は、前記１以上の第１ストロークの種別が文字である場合に、前記第１回目の第１操作又は前記第２回目の第１操作が検出される場合に、前記１以上の第１ストロークに対応する文字を用いた検索結果を表示する請求項１に記載の電子機器。
【請求項１１】
前記表示処理手段は、前記１以上の第１ストロークの種別が画像である場合に、前記第
前記第１回目の第１操作または前記第２回目の第１操作によって指定される領域に図が含まれる場合に、図に対する画像処理を実施する請求項１記載の電子機器。
【請求項１２】
前記表示処理手段は、
前記１以上のストロークに対して前記ディスプレイを介して前記第１回目の第１操作が検出される場合、前記１以上の第１ストロークの表示形態を前記第１表示形態から異なる複数の第２表示形態へ変更するためのメニューを表示し、
前記第１回目の第１操作に続いて、前記メニュー上で前記複数の第２表示形態のいずれかが選択される場合に、前記１以上の第１ストロークの表示形態を前記第１表示形態から、選択された第２表示形態へ変更する請求項１に記載の電子機器。
【請求項１３】
手書きされるストロークに対応するストロークデータを入力し、
１以上の第１ストロークをディスプレイに表示する方法であって、
前記１以上のストロークに対して前記ディスプレイを介して第１回目の第１操作が検出される場合、前記１以上の第１ストロークの表示形態を前記第１表示形態から第２表示形態へ変更し、
前記第１回目の第１操作に続いて、前記１以上の第１ストロークに対して前記ディスプレイを介して第２回目の第１操作が検出される場合、前記１以上の第１ストロークの表示形態を前記第２表示形態から第３表示形態へ変更する方法。
【請求項１４】
コンピュータにより実行されるプログラムであって、前記プログラムは、コンピュータに、
手書きされるストロークに対応するストロークデータを入力する機能と、
１以上の第１ストロークをディスプレイに表示する機能と、を実現させるものであって、
前記表示する機能では、コンピュータに、
前記１以上のストロークに対して前記ディスプレイを介して第１回目の第１操作が検出される場合、前記１以上の第１ストロークの表示形態を前記第１表示形態から第２表示形態へ変更する機能と、
前記第１回目の第１操作に続いて、前記１以上の第１ストロークに対して前記ディスプレイを介して第２回目の第１操作が検出される場合、前記１以上の第１ストロークの表示形態を前記第２表示形態から第３表示形態へ変更する機能とを実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は手書き文書の処理に関する。
【背景技術】
【０００２】
近年、タブレット、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。【０００３】
ユーザは、タッチスクリーンディスプレイ上に表示されるメニューまたはオブジェクトを指などでタッチすることにより、これらメニューまたはオブジェクトに関連づけられた機能の実行を電子機器に指示することができる。ユーザは、例えば、ペンまたは指によってタッチスクリーンディスプレイ上に文書を手書き入力可能である。【０００４】
しかし、タッチスクリーンディスプレイを備える既存の電子機器の多くは、画像、音楽、他の各種メディアデータに対する操作性を追求したコンシューマ向け製品であり、会議、商談、商品開発などの文書情報を処理する必要があるビジネスシーンにおける利用については必ずしも適していない場合がある。文字入力に関しては、ハードウェアキーボードを用いる操作の方が手書き入力に優る。このため、ビジネスシーンにおいては、いまなお、紙の手帳が広く利用されている。さらに、入力された文書を編集することに関しても、タッチスクリーンディスプレイを備える既存の電子機器は不便な点があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2011-081651号公報
【特許文献２】特開2012-160171号公報
【特許文献３】特開平6-289983号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
手書き入力可能な従来の電子機器は入力した文書の編集の操作性が優れているとは言えなかったという課題があった。【０００７】
本発明の一形態の目的は、手書き入力した文書を容易に編集することができる文書手書き入力機能を備えた電子機器、方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００８】
実施形態によれば、電子機器は、ディスプレイと、手書きされるストロークに対応するストロークデータを入力する入力手段と、１以上の第１ストロークをディスプレイに表示する表示処理手段とを備える。表示処理手段は、１以上のストロークに対してディスプレイを介して第１回目の第１操作が検出される場合、１以上の第１ストロークの表示形態を第１表示形態から第２表示形態へ変更し、第１回目の第１操作に続いて、１以上の第１ストロークに対してディスプレイを介して第２回目の第１操作が検出される場合、１以上の第１ストロークの表示形態を前記第２表示形態から第３表示形態へ変更する。
【図面の簡単な説明】
【０００９】
【図１】図１は実施形態に係る電子機器の外観の一例を示す斜視図。
【図２】図２は実施形態の電子機器のタッチスクリーンディスプレイ上の手書き文書の例を示す図。
【図３】図３は図２の手書き文書に対応するストロークデータ（手書きページデータ）を説明するための図。
【図４】図４は実施形態の電子機器のシステム構成の一例を示すブロック図。
【図５】図５は実施形態の電子機器によって実行される手書きノートアプリケーションプログラムの機能構成の一例を示すブロック図。
【図６】図６は実施形態の電子機器によって実行される手書き入力文書の編集処理の一例の流れを示す図。
【図７】図７は実施形態の電子機器によって実行される手書き入力後の文書の編集処理の具体例を示す図。
【図８】図８は実施形態の電子機器によって実行される文字の編集処理の一例を示す図。
【図９】図９は実施形態の電子機器によって実行される表の編集処理の一例を示す図。
【図１０】図１０は実施形態の電子機器によって実行される表の編集処理の具体例を示す図。
【図１１】図１１は実施形態の電子機器によって実行される図の編集処理の一例を示す図。
【図１２】図１２は実施形態の電子機器によって実行されるアンドゥ／リドゥ処理の一例を示す図。
【図１３】図１３は実施形態の電子機器によって実行される文字の編集処理の他の例を示す図。
【図１４】図１４は実施形態の電子機器によって実行される文字の編集処理の他の例で表示される文字編集メニューの一例を示す図。
【実施形態】
【００１０】
図１は、一実施形態に係る電子機器の外観の一例を示す斜視図である。この電子機器は、例えば、ペンまたは指によって文書を手書き入力可能な入力部を有するペン・ベースの携帯型電子機器である。手書き入力された文書は編集可能である。この電子機器は、入力部に手書きされた文書をビットマップ画像データとしてではなく、文書を構成する文字、数字、記号、図形等の記号や、図形の手書き軌跡のサンプリング点の座標の時系列を示す１以上のストロークデータとして記憶し、ストロークデータに基づいて手書き文書を検索することができる（検索処理はサーバシステム２側で行ない、検索結果を電子機器で表示するだけでもよい）。さらに、この電子機器は、入力されたストロークデータグループ（１つの文字、数字、記号領域に対応するストロークデータ）に対して文字認識処理を行ない（認識処理もサーバシステム２側で行ってもよい）、手書き文書を文字コードからなるテキストとして記憶してもよい。あるいは、ストロークデータに基づく文字認識の代わりに、ストロークデータをビットマップ画像化してＯＣＲ処理により文字認識しても良い。手書き文字をテキスト化できるので、手書きした文字を整形してもよい。
【００１１】
この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、説明の便宜上、この電子機器がタブレットコンピュータ１０として実現されている場合を説明する。タブレットコンピュータ１０は、タブレットまたはスレートコンピュータとも称される携帯型電子機器であり、本体１１と、文書の手書き入力を可能とするタッチスクリーンディスプレイ１７とを備える。
【００１２】
本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を説明する。
【００１３】
デジタイザおよびタッチパネルタッチの各々は、フラットパネルディスプレイの画面を覆うように設けられる。タッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、専用のペン１００を使用した画面に対するタッチ操作も検出することができる。ペン１００は例えば電磁誘導ペンであってもよい。ユーザは、外部オブジェクト（ペン１００又は指）を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト（ペン１００又は指）の動きの軌跡、つまり手書き入力操作によって手書きされるストロークの軌跡がリアルタイムに描画され、これによって各ストロークの軌跡が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が１ストロークに相当する。手書きされたストロークの集合である文字、数字、記号等の記号、または図形等の集合が手書き文書を構成する。
【００１４】
手書き文書は、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報として記憶媒体に記憶される。この時系列情報の詳細は、図２、図３を参照して後述するが、この時系列情報は、複数のストロークが手書きされた順を示し、且つ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、この時系列情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
【００１５】
タブレットコンピュータ１０は、記憶媒体から既存の任意の時系列情報を読み出し、この時系列情報に対応する手書き文書、つまりこの時系列情報によって示される複数のストロークそれぞれに対応する軌跡を画面上に表示することができる。さらに、タブレットコンピュータ１０は手書き入力した文書のストロークデータの編集機能を有している。この編集機能は、ストロークデータの属性を変更する、表を整形する、手書き図の類似図を検索して手書き図を検索図に置き換える、削除、コピーまたは移動すること等を含む。さらに、この編集機能は、幾つかの手書き操作の履歴を取り消すundo機能、取り消した履歴を復活するredo機能等を含んでいる。
【００１６】
本実施形態では、時系列情報（手書き文書）は、１つまたは複数のページとして管理されうる。この場合、時系列情報を１つの画面に収まる面積単位で区切ることによって、１つの画面に収まる時系列情報のまとまりを１つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは１つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を一つのページとして扱うことができる。１つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小してするようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。
【００１７】
このように、時系列情報はページデータとして管理することができるので、以下では、時系列情報を手書きページデータあるいは単に手書きデータとも称する。
【００１８】
タブレットコンピュータ１０は、ネットワーク通信機能を有しており、他のパーソナルコンピュータやインターネット上のサーバシステム２などと連携することができる。すなわち、タブレットコンピュータ１０は、無線ＬＡＮなどの無線通信デバイスを備えており、他のパーソナルコンピュータとの無線通信を実行することができる。さらに、タブレットコンピュータ１０は、インターネット上のサーバシステム２との通信を実行することもできる。サーバシステム２は様々な情報を共有するためのシステムであり、オンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行する。サーバシステム２は１以上のサーバコンピュータから実現し得る。
【００１９】
サーバシステム２はハードディスクドライブ（ＨＤＤ）のような大容量の記憶媒体を備えている。タブレットコンピュータ１０は、手書きページデータをネットワーク越しにサーバシステム２に送信して、サーバシステム２の記憶媒体に格納することができる（アップロード）。タブレットコンピュータ１０とサーバシステム２との間のセキュアな通信を確保するために、通信開始時には、サーバシステム２がタブレットコンピュータ１０を認証するようにしてもよい。この場合、タブレットコンピュータ１０の画面上にユーザに対してＩＤまたはパスワードの入力を促すダイアログを表示してもよいし、タブレットコンピュータ１０のＩＤなどを自動的にタブレットコンピュータ１０からサーバシステム２に送信してもよい。
【００２０】
これにより、タブレットコンピュータ１０内のストレージの容量が少ない場合でも、タブレットコンピュータ１０が多数の手書きページデータあるいは大容量の手書きページデータを扱うことが可能となる。
【００２１】
さらに、タブレットコンピュータ１０は、サーバシステム２の記憶媒体に格納されている任意の１以上の手書きページデータを読み出し（ダウンロード）、その読み出した時系列情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。この場合、複数の手書きページデータそれぞれのページを縮小することによって得られるサムネイル（サムネイル画像）の一覧をディスプレイ１７の画面上に表示してもよいし、これらサムネイルから選ばれた１ページをディスプレイ１７の画面上に通常サイズで表示してもよい。
【００２２】
このように、本実施形態では、手書きページデータが格納される記憶媒体は、タブレットコンピュータ１０内のストレージ、サーバシステム２内のストレージのいずれであってもよい。タブレットコンピュータ１０のユーザは、任意の手書きページデータを、タブレットコンピュータ１０内のストレージおよびサーバシステム２内のストレージから選択される任意のストレージに格納することができる。
【００２３】
次に、図２および図３を参照して、ユーザによって手書きされたストローク（文字、数字、記号等の記号や、図形、表など）と手書きページデータとの関係について説明する。図２は、ペン１００などを使用してタッチスクリーンディスプレイ１７上に手書きされる手書き文書（手書き文字列）の例を示している。
【００２４】
手書き文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図２においては、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順番で手書きされ、この後に、手書き記号「↓」が、手書き文字「Ａ」のすぐ近くに手書きされている。
【００２５】
手書き文字「Ａ」は、ペン１００などを使用して手書きされる２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって、つまり２つの軌跡によって表現される。最初に手書きされる「∧」形状のペン１００の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…ＳＤ１ｎが得られる。同様に、次に手書きされる「−」形状のペン１００の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標を示すＳＤ２１、ＳＤ２１、…ＳＤ２ｎが得られる。
【００２６】
手書き文字「Ｂ」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。手書き文字「Ｃ」は、ペン１００などを使用して手書きされた手書きされた１つのストローク、つまり１つの軌跡によって表現される。手書きの「矢印」は、ペン１００などを使用して手書きされた手書きされた２つのストローク、つまり２つの軌跡によって表現される。
【００２７】
図３は、図２の手書き文書に対応する手書きページデータ２００を示している。手書きページデータは、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。手書きページデータ２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べている。
【００２８】
手書きページデータ２００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」を構成する２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き記号「矢印」を構成する２つのストロークをそれぞれ示している。
【００２９】
各ストロークデータは、一つのストロークに対応する座標データ系列（時系列座標）、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）、つまりｎ個の座標データＳＤ１１、ＳＤ１２、…ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりｎ個の座標データＳＤ２１、ＳＤ２２、…ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。外部オブジェクトが画面に接触されている期間中、一定の周期で座標データをサンプリングするので、座標データの数はストロークの長さに依存する。
【００３０】
各座標データは、対応する軌跡内のある１点に対応するＸ座標およびＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）およびＹ座標（Ｙ１１）を示す。ＳＤ１ｎは、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）およびＹ座標（Ｙ１ｎ）を示す。
【００３１】
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。
【００３２】
このように、各座標データにタイムスタンプ情報Ｔが追加されたストロークデータを使用することにより、ストローク間の時間的関係をより精度よく表すことができる。このため、１文字を構成する１つまたは複数のストロークデータからなるグループを文字認識する際の精度も向上しうる。
【００３３】
さらに、各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。グループを文字認識する精度は筆圧も考慮すると、さらに向上しうる。
【００３４】
さらに、各ストロークデータＳＤは、ストロークの色ｃ、ペンタイプｔ、線幅ｗの属性情報が付随している。これらの属性情報は、デフォルトで初期値が定まっており、編集操作により変更され得る。
【００３５】
図３で説明したような構造を有する手書きページデータ２００は、個々のストロークの軌跡だけでなく、ストローク間の時間的関係も表すことができる。したがって、手書きページデータ２００を使用することにより、図２に示すようにたとえ手書き記号「↓」の先端部が手書き文字「Ａ」上に重ねてまたは手書き文字「Ａ」に近接して書かれたとしても、手書き文字「Ａ」と手書き記号「↓」の先端部とを異なる文字または図形として扱うことが可能となる。
【００３６】
なお、ストロークデータＳＤ１のタイムスタンプ情報としては、ストロークデータＳＤ１の内の複数の座標それぞれに対応する複数のタイムスタンプ情報Ｔ１１からＴ１ｎから選択される任意の一つを、あるいはタイムスタンプ情報Ｔ１１からＴ１ｎの平均値などを使用してもよい。同様に、ストロークデータＳＤ２のタイムスタンプ情報としては、ストロークデータＳＤ２の内の複数の座標点それぞれに対応する複数のタイムスタンプ情報Ｔ２１からＴ２ｎから選択される任意の一つを、あるいはタイムスタンプ情報Ｔ２１からＴ２ｎの平均値などを使用してもよい。同様に、ストロークデータＳＤ７のタイムスタンプ情報としては、ストロークデータＳＤ７の内の複数の座標点それぞれに対応する複数のタイムスタンプ情報Ｔ７１からＴ７ｎから選択される任意の一つを、あるいはタイムスタンプ情報Ｔ７１からＴ７ｎの平均値などを使用してもよい。
【００３７】
本実施形態の手書きページデータ２００においては、上述したように、ストロークデータＳＤ１、ＳＤ２、…、ＳＤ７の並びは手書き文字の筆順を示す。例えば、ストロークデータＳＤ１およびＳＤ２の並びは、最初に「∧」形状のストロークが手書きされ、次に「−」形状のストロークが手書きされたことを表す。したがって、たとえ２つの手書き文字の筆跡同士が互いに類似していても、それら２つの手書き文字の筆順が互いに異なる場合には、それら２つの手書き文字を異なる文字として区別することができる。
【００３８】
さらに、本実施形態では、上述したように、手書き文書は複数のストロークに対応する複数のストロークデータの集合から構成される手書きページデータ２００として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の手書きページデータ２００の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
【００３９】
図４は、タブレットコンピュータ１０のシステム構成を示す図である。  
タブレットコンピュータ１０は、図４に示されるように、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０５、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８等を備える。
【００４０】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種モジュールの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム（ＯＳ）２０１、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、手書きノートアプリケーションプログラム２０２が含まれている。手書きノートアプリケーションプログラム２０２は、手書きされるストロークに対応するストロークデータを入力する機能、手書きページデータを作成および表示する機能、手書きページデータを編集する機能、文字認識機能等を有している。
【００４１】
ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００４２】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００４３】
グラフィクスコントローラ１０４は、タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。グラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。ＬＣＤ１７Ａ上にはタッチパネル１７Ｂおよびデジタイザ１７Ｃが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン１００が接触される画面上の接触位置および接触位置の動き等はデジタイザ１７Ｃによって検出される。
【００４４】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じてタブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００４５】
次に、図５を参照して、手書きノートアプリケーションプログラム２０２の機能構成について説明する。
【００４６】
手書きノートアプリケーションプログラム２０２は、軌跡表示処理部３０１、手書きページデータ生成部３０２、編集処理部３０３、ページ保存処理部３０４、ページ取得処理部３０５、手書き文書表示処理部３０６、処理対象ブロック選択部３０７及び処理部３０８等を備える。
【００４７】
手書きノートアプリケーションプログラム２０２は、タッチスクリーンディスプレイ１７を用いて入力されるストロークデータを使用することによって、手書きページデータの作成、表示、編集、文字認識等を行う。タッチスクリーンディスプレイ１７は、「タッチ」、「移動（スライド）」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動（スライド）」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
【００４８】
軌跡表示処理部３０１および手書きページデータ生成部３０２は、タッチスクリーンディスプレイ１７によって発生される「タッチ」または「移動（スライド）」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントにも、移動先の接触位置の座標が含まれている。したがって、軌跡表示処理部３０１および手書きページデータ生成部３０２は、タッチスクリーンディスプレイ１７から、接触位置の動きの軌跡に対応する座標列を受信することができる。
【００４９】
軌跡表示処理部３０１は、タッチスクリーンディスプレイ１７から座標列を受信し、この座標列に基づいて、ペン１００等を使用した手書き入力操作によって手書きされる各ストロークの軌跡をタッチスクリーンディスプレイ１７内のＬＣＤ１７Ａの画面上に表示する。軌跡表示処理部３０１により、画面にペン１００が接触している間のペン１００の軌跡、つまり各ストロークの軌跡がＬＣＤ１７Ａの画面上に描かれる。
【００５０】
手書きページデータ生成部３０２は、タッチスクリーンディスプレイ１７から出力される上述の座標列を受信し、この座標列に基づいて、図３で詳述したような構造を有する上述の手書きページデータを生成する。この場合、手書きページデータ、つまりストロークの各点に対応する座標およびタイムスタンプ情報は作業メモリ４０１に一時保存してもよい。
【００５１】
ページ保存処理部３０４は、生成された手書きページデータを記憶媒体４０２に保存する。記憶媒体４０２は手書きページデータを格納するためのローカルなデータベースである。なお、記憶媒体４０２はサーバシステム２内に設けても良い。
【００５２】
ページ取得処理部３０５は、記憶媒体４０２から既に格納されている任意の手書きページデータを読み出す。読み出された手書きページデータは手書き文書表示処理部３０６に送られる。手書き文書表示処理部３０６は、手書きページデータを解析し、この解析結果に基づいて、手書きページデータ内の各ストロークデータによって示される各ストロークの軌跡である筆跡を属性情報により指定される色、タイプ、太さで画面上に手書きページとして表示する。
【００５３】
編集処理部３０３は現在表示中の手書きページを編集するための処理を実行する。すなわち、編集処理部３０３は、タッチスクリーンディスプレイ１７上でユーザによって行われる編集操作に応じて、現在表示中の手書きページのストロークデータの文字の属性を変更する、文字を検索する、線を整形する、表の一部領域を着色する、手書き図に対する画像処理を行う、手書き図の類似図を検索して手書き図を検索図に置き換える、削除、コピーまたは移動すること、幾つかの手書き操作の履歴を取り消すこと(undo機能)、取り消した履歴を復活すること(redo機能)等を含んでいる。さらに、編集処理部３０３は、編集処理の結果を表示中の手書きページデータに反映するためにこの手書きページデータを更新する。
【００５４】
編集機能と別に、ユーザは、「消しゴム」ツール等を使用して、表示されている複数のストローク内の任意のストロークを削除することができる。ユーザは、画面上の任意の部分を丸または四角によって囲むための「範囲指定」ツールを使用して、表示中の手書きページデータ内の任意の部分を範囲指定することができる。この範囲指定操作によって指定される画面上の指定範囲に応じて、処理対象の手書きページデータ部分、つまり処理対象のストロークデータ群が処理対象ブロック選択部３０７によって選択される。すなわち、処理対象ブロック選択部３０７は、表示中の手書きページデータを使用して、指定範囲内に属するストロークそれぞれに対応する第１のストロークデータ群の中から、処理対象のストロークデータ群を選択する。
【００５５】
例えば、処理対象ブロック選択部３０７は、表示中の手書きページデータから、指定範囲内に属するストロークそれぞれに対応する第１のストロークデータ群を抽出し、この第１のストロークデータ群内の他のストロークデータと不連続である第２のストロークデータを除く、第１のストロークデータ群内の個々のストロークデータを処理対象のストロークデータ群に決定する。
【００５６】
処理部３０８は、処理対象の手書きページデータに対して様々な処理、例えば、筆跡検索処理、文字認識処理等を実行することができる。処理部３０８は、検索処理部３０９、認識処理部３１０を備える。
【００５７】
検索処理部３０９は、記憶媒体４０２内に既に格納されている複数の手書きページデータを検索してこれら複数の手書きページデータ内の特定のストロークデータ群（特定の手書き文字列等）を見つけ出す。検索処理部３０９は、特定のストロークデータ群を検索キーつまり検索クエリとして指定するように構成された指定モジュールを含んでいる。検索処理部３０９は、複数の手書きページデータの各々から、特定のストロークデータ群に対応するストロークの軌跡との類似度が基準値以上であるストロークの軌跡を有するストロークデータ群を見つけ出し、見つけ出されたストロークデータ群を含む手書きページデータを記憶媒体４０２から読み出し、見つけ出されたストロークデータ群に対応する軌跡が視認可能なように手書きページデータをＬＣＤ１７Ａの画面上に表示する。
【００５８】
検索クエリとして指定される特定のストロークデータ群は、特定の手書き文字、特定の手書き文字列、特定の手書き記号に限らず、特定の手書き図形等も使用しうる。例えば、タッチスクリーンディスプレイ１７上に手書きされる手書きオブジェクト（手書き文字、手書き記号、手書き図形）を構成する１以上のストロークそのものを検索キーとして使用することができる。
【００５９】
検索処理部３０９は、検索キーである１以上のストロークの特徴と類似する特徴を有するストロークを含む手書きページを記憶媒体４０２から検索する。各ストロークの特徴としては、筆画方向、形状、傾斜、等を使用し得る。この場合、検索キーである手書き文字のストロークとの類似度が基準値以上である手書き文字を含むヒット手書きページが記憶媒体４０２から検索される。手書き文字間の類似度の計算方法としては、様々な方法を使用することができる。例えば各ストロークの座標列をベクトルとして扱ってもよい。この場合、比較対象のベクトル同士の類似度を計算するために、それら比較対象のベクトル間の内積を比較対象のベクトル間の類似度として算出してもよい。他の例としては、各ストロークの軌跡を画像として扱い、比較対象の軌跡間の画像の重なりがもっとも多くなる部分の面積の大きさを上述の類似度として計算してもよい。さらに計算処理量を減らすための任意の工夫をしてもよい。手書き文字間の類似度の計算方法として、ＤＰ（Dynamic Programming）マッチングを使用してもよい。
【００６０】
このように、文字列を示すコード群ではなく、ストロークデータが検索キーとして使用されるので、言語に依存しない検索を行うことができる。
【００６１】
なお、検索処理は、記憶媒体４０２内の手書きページデータに対してのみならず、サーバシステム２の記憶媒体に格納されている手書きページデータに対しても行うことができる。この場合、検索処理部３０９は、検索キーとして使用すべき１以上のストロークに対応する１以上のストロークデータを含む検索要求をサーバシステム２に送信する。サーバシステム２は、１以上のストロークデータの特徴と類似する特徴を有するヒット手書きページを記憶媒体４０２から検索し、このヒット手書きページをタブレットコンピュータ１０に送信する。
【００６２】
検索処理部３０９内の上述の指定モジュールは、検索対象とすべき文字列または図形を手書きするための検索キー入力領域を画面上に表示してもよい。ユーザによって検索キー入力領域に手書きされた文字列等が検索クエリとして使用される。
【００６３】
あるいは、指定モジュールとして、上述の処理対象ブロック選択部３０７を使用してもよい。この場合、処理対象ブロック選択部３０７は、ユーザによって行われる範囲指定操作に応じて、表示中の手書きページデータ内の特定のストロークデータ群を、検索対象とすべき文字列または図形として選択することができる。ユーザは、表示中のページ内の一部の文字列を囲むように範囲指定してもよいし、表示中のページの余白などに検索クエリ用の文字列を新たに手書きし、この検索クエリ用の文字列を囲むように範囲指定してもよい。
【００６４】
例えば、ユーザは、表示中のページ内の一部を手書きの丸で囲むことによって範囲指定することができる。あるいは、ユーザは、あらかじめ用意されているメニューを用いて手書きノートアプリケーションプログラム２０２を「選択」モードに設定し、この後、表示中のページ内の一部をペン１００でなぞってもよい。
【００６５】
このように、本実施形態では、既に記録されている複数の手書きページから、検索クエリとして選択されたある手書き文字の特徴に類似する手書き文字を検索することができる。よって、過去に作成および保存した多数の手書きページから、ユーザの意図に合った手書きページを簡単に検索することができる。
【００６６】
本実施形態の筆跡検索においては、テキスト検索の場合とは異なり、文字認識を行う必要が無い。したがって、言語に依存しないため、あらゆる言語で手書きされた手書きページを検索対象とすることができる。さらに、図形等を筆跡検索のための検索クエリとして使用することもでき、また言語以外の記号、記号等を筆跡検索のための検索クエリとして使用することもできる。
【００６７】
認識処理部３１０は、表示中の手書きページデータに対して文字認識を実行する。認識処理部３１０は、認識処理対象の文字、数字、記号等に対応する１つまたは複数のストロークデータ（ストロークデータグループ）と、各文字、数字、記号等の辞書ストロークデータ（ストロークデータグループ）とのマッチングを行い、手書き文字、数字、記号等それぞれを文字コードに変換する。辞書ストロークデータとは、各文字、数字、記号等と１以上のストロークデータとの対応関係を示す情報であればどのようなものであっても良く、例えば、各文字、数字、記号等の識別情報と、それらに対応付けられた１以上のストロークデータである。グループ化では、互いに近傍に位置し且つ連続的に手書きされたストロークにそれぞれ対応するストロークデータ同士が同一ブロックに分類されるように、認識処理対象の手書きページデータによって示される１以上複数のストロークデータがグループ化される。なお、手書きページデータには筆跡（ビットマップ画像）以外にも筆順、タイムスタンプ情報、場合によっては筆圧情報も含まれているので、これらを利用することにより、認識の精度を高めることができる。
【００６８】
このように、手書きページデータから各文字に対応するグループ毎の文字コードが得られる。グループの配置に基づいて文字コードを配列すると、１ページの手書きページデータのテキストデータが得られ、両者は関連付けられて、記憶媒体４０２に保存される。
【００６９】
以下、実施形態の具体的な作用例を説明する。先ず、図６のフローチャートを参照して、手書きノートアプリケーションプログラム２０２によって実行される手書き入力文書の編集処理の手順の一例について説明する。
【００７０】
ユーザがペン１００、または指を使用して手書き入力操作を行うと、「タッチ」や「移動」のイベントが発生される。ブロックＢ１０２で、これらイベントに基づいて手書き操作の有無が判定される。手書き操作有りが検出されると（ブロックＢ１０２のＹＥＳ）、手書き操作はペンによる操作か否かブロックＢ１０４で判定される。本実施形態では、ペン１００で手書き入力されたものは文書であると見なし、指で手書き入力されたものは文書ではなく、編集操作の指示入力であると見なす。このため、ペンを用いて文書を手書き入力した直後に、引き続いて指で所定の手書き入力操作を行うことにより、直前に手書き入力され、現在表示されている文書に編集指示をすることができ、一連の操作で入力と編集ができるように構成されている。ブロックＢ１０４では、タッチパネル１７Ｂが「タッチ」や「移動」のイベントを検出した場合は、指により手書き操作されたと判定され、デジタイザ１７Ｃがイベントを検出した場合は、ペン１００により手書き操作されたと判定される。
【００７１】
ブロックＢ１０４でペン１００により手書き操作されたと判定された場合は、検出されたペン１００の動きの軌跡、すなわち手書き入力された文書がブロックＢ１０６でタッチスクリーンディスプレイ１７上に表示される。さらに、検出されたペン１００の動きの軌跡（手書きされるストローク）に対応する座標列に基づいて図３に示すような上述のストロークデータが生成され、そのストロークデータの集合が手書きページデータとして作業メモリ４０１に一時保存される（ブロックＢ１０８）。表示される文書は１以上のストロークに基づく。
【００７２】
手書き操作が終了したか否かブロックＢ１１０で判定される。手書き操作の終了は「リリース」イベントの発生に基づいて検出できる。終了した場合は、動作は終了し、終了していない場合は、ブロックＢ１０２に戻る。
【００７３】
ブロックＢ１０４で指により手書き操作されたと判定された場合は、検出された指の動きの軌跡がブロックＢ１１２でディスプレイに表示される。指で手書き入力されたものは編集操作の指示入力であると見なすので、指の軌跡からはストロークデータは生成されない。手書き文書の入力とは異なり、指でなぞった線を表示し続けるのではなく、古くなるほど徐々に消すようにしてもよい。また、タッチしている部分のみを強調表示するようにしてもよい。
【００７４】
ブロックＢ１１４で、手書き操作は「ある領域」を選択するジェスチャー操作であるか否か判定される。「ある領域」は手書き入力された文書内の編集対象領域となる。選択操作の一例は、図７（ａ）に示すように、文書中の文字列“Ｓｕｎｄａｙ”からなる編集対象領域を囲む操作である。終点が始点に厳密に一致しなくても、図７（ｂ）に示すように、予め設定した始点の近傍に終点が戻ってくれば、編集対象領域が囲まれたと判定する。選択操作の他の例は、編集対象領域の中心に２本の指を合わせて、選択指定領域全体を含むまで指を広げるピンチアウト操作や、ピンチイン操作、タップ操作、ダブルタップ操作、フリック操作、スライド操作、スワイプ操作、複数個所における同時のタップ操作等もある。一回タップ操作が実行されると、所定の円領域あるいは楕円領域が選択され、タップ操作を繰り返すことにより、円領域あるいは楕円領域が全体的、あるいは左右または上下に拡張し、選択指定領域全体を含むことができる。
【００７５】
ブロックＢ１１４で、編集対象領域が選択されたと判定されると、ブロックＢ１１６、Ｂ１２０、Ｂ１２４で、編集対象領域が文字からなる領域であるか、表からなる領域であるか、図・挿絵からなる領域であるか、あるいはいずれでもない空白の領域であるかが判定される。ブロックＢ１１６では、領域内に行がある（ストロークデータの時間情報を見て、１ストロークと別ストロークの時刻間に一定時間以上経過している、すなわちペンが一定時間以上タッチスクリーンディスプレイ１７から離れる期間がある場合、行があると判定できる）と、編集対象領域内の文書は文字であると判定される。領域内に行が無いと、編集対象領域内の文書は文字以外であると判定される。文字と判定されると、ブロックＢ１１８で文字のための編集処理（例えば、文字の色、タイプ、太さの変更、あるいは文字を用いた検索結果の表示等）が行われる。ブロックＢ１２０では、領域内に、縦横の一定以上の長さの長い線が交差していると、編集対象領域内の文書は表であると判定される。表と判定されると、ブロックＢ１２２で表のための編集処理（例えば、文字の認識、線の整形、一部領域の着色等）が行われる。ブロックＢ１２４では、編集対象領域内のストロークデータが文字でも表でもない場合、領域内の文書は図・挿絵であると判定され、編集対象領域内にストロークデータが存在しない場合、領域は空白領域であると判定される。図・挿絵と判定されると、ブロックＢ１２６で図・挿絵のための編集処理（例えば、図に対する画像処理等）が行われ、空白領域であると判定されると、ブロックＢ１２８でアンドゥ／リドゥ処理が行われる。
【００７６】
編集対象領域の判定結果に応じて、ブロックＢ１１８の文字処理、ブロックＢ１２２の表処理、ブロックＢ１２６の図・挿絵処理、ブロックＢ１２８のアンドゥ／リドゥ処理のいずれかが行われ、各処理が終了すると、ブロックＢ１０２の手書き操作の有無判定が行われる。
【００７７】
ブロックＢ１１８の文字処理の一例を図８に示す。ブロックＢ１１４で編集対象領域の選択操作が検出され、ブロックＢ１１６で編集対象領域が文字領域であることが検出されると、編集対象領域のストロークの表示形態が第１表示形態から第２表示形態に変更される。ここでは、編集対象領域の文字の線幅がブロックＢ１５２で一段階太くされる（図７（ｂ）参照）。すなわち、編集対象領域が１回囲まれると、文字が太くなる。
【００７８】
次に、２回目の操作が検出されると、編集対象領域のストロークの表示形態が第２表示形態から第３表示形態に変更される。ここでは、同じ操作を継続すると、文字がさらに太くなるように構成されている。例えば、編集対象領域を囲む操作を２回行うと、文字はさらに一段階太くなり、囲む回数が増えると、回数に応じて太くなる。ただし、無限に太くすると、文字が潰れて判読できなくなるので、文字の線幅に上限を設けることがある。この場合は、上限まで太くなると、いくら何周囲っても太さは変わらない。上限に達した場合、文字を点滅表示させる、アラーム(音、メッセージ)を発生する等して、ユーザに知らせてもよい。太さの上限は、例えば、その文字の縦幅の１／５程度が考えられる。
【００７９】
反対に、同じ操作であるが操作方向を反対にして継続すると、文字の線幅が細くなるように構成されている。ここでは、ブロックＢ１１４の領域選択操作は、編集対象領域を時計回りにほぼ一周するように囲む操作を想定している。そのため、時計回りの操作が文字を太くする操作、半時計回りの操作が文字を細くする操作に対応している。なお、回転の方向は問わず、逆方向であっても良い。
【００８０】
なお、上述の説明は、ブロックＢ１１４の領域選択操作は、編集対象領域を時計回りにほぼ一周するように囲む操作を想定している。そのため、最初の線幅の変更操作(すなわち、領域選択操作)と、２回目以降の線幅の変更操作とが同じ時計回りあるいは半時計回りの囲む操作であるが、２回目以降の線幅の変更操作が同じであれば、最初の線幅の変更操作と、２回目以降の線幅の変更操作とが同じでなくてもよい。すなわち、最初の線幅の変更操作がピンチアウト操作や、タップ操作であり、２回目以降の線幅の変更操作が領域を囲む操作であってもよい。
【００８１】
なお、編集対象領域の指定は、領域をほぼ囲むように指がほぼ一周移動することが必要としたが、２回目以降の線幅の変更操作は必ずしも一周しなくても、囲む操作の一部分（例えば、所定の長さ以上、あるいは所定の時間以上の動き軌跡）だけの操作でもよいとする。すなわち、囲み操作の一周の何分の一かが手書きされると、囲み操作が継続されたと判断するようにする。これにより、線幅を段階的に変えるために、領域を囲む操作を何周も行うことを省くことができ、迅速な操作が達成できる。
【００８２】
ブロックＢ１５４で領域を囲むジェスチャー操作が継続しているか否か判定される。上記したように、この判定は、所定の長さ以上、あるいは所定の時間以上の動き軌跡の検出に基づいてもよい。囲み操作が継続していると判定されると、ブロックＢ１５６で時計周りの囲み操作が継続しているか否か判定される。時計回りの囲み操作が継続している場合は、ブロックＢ１５２に戻り、編集対象領域の文字の線幅がさらに一段階太くなる（図７（ｃ）参照）。半時計回りの囲み操作が継続している場合は、ブロックＢ１５８で、編集対象領域の文字の線幅が一段階細くなる。その後、ブロックＢ１５４の囲み操作の継続判定が行われる。半時計回りに囲む操作回数が増えると、回数に応じてどんどん細くなり、初期以下にも細くなる。文字を細くする場合も、無限に細くすると、線が擦れて判読できなくなるので、文字の線幅に下限を設けることもある。この場合は、下限まで細くなると、いくら何周囲っても太さは変わらない。下限に達した場合も、文字を点滅表示させる、アラーム(音、メッセージ)を発生する等して、ユーザに知らせてもよい。
【００８３】
ブロックＢ１５４で囲み操作の継続性の判定では、１回目の囲み操作と全く同じ領域を囲まなくても、類似している小領域を囲む場合も、継続していると判定する。これは、編集対象領域が多数の文字からなる場合、全く同じ面積の領域を囲む操作はユーザに対して負担になるので、２回目以降は編集対象領域の内側の編集対象領域と類似する領域を囲めばよいようにするためである。
【００８４】
ブロックＢ１５４で囲み操作が中断したと判定されると、ブロックＢ１６０で、他の領域の囲み操作が行われているか否か判定される。他の領域とは、全く別の文字列等からなる領域（例えば、図７の例では“ｓｈｏｐ”からなる領域）の場合もあるし、編集対象領域の文字の一部分からなる子領域（例えば、図７（ｄ）に示すように、“ｓｕｎｄａｙ”の中の“ｓｕｎ”からなる領域）でもよい。他の領域の囲み操作が行われていると判定されると、ブロックＢ１５６に戻り、ブロックＢ１５２、Ｂ１５４、Ｂ１５６、Ｂ１５８で編集対象領域に対して行った文字の線幅の変更処理と同様な処理が他の領域に対しても行われる。ここで、他の領域の囲み操作も時計回りに行われるとする。
【００８５】
ブロックＢ１６０で他の領域の囲み操作が行われていないと判定されると、ブロックＢ１６２で、同じ領域（編集対象領域）に対して他の種類の囲み操作が行われているか否か判定される。図７に示すように、選択対象領域の囲み操作が略楕円により囲む操作の場合は、他の種類の囲み操作の一例は、矩形や菱形、台形、三角形等で囲む操作を含む。編集対象領域に対して他の種類の囲み操作が行われていると判定されると、ブロックＢ１６４で他の囲み操作の種類に応じた文字属性を一方向に一段階変更する。例えば、矩形で囲まれた場合は、色が変更され、菱形で囲まれた場合は、ペンタイプが変更され、三角形で囲まれた場合は、大きさが変更される。なお、編集対象領域を最初に囲んだ時に変更される文字属性を線幅として説明したが、この属性は、任意に設定でき、ユーザの都合に応じて変更できる。
【００８６】
ブロックＢ１６６で囲み操作が継続しているか否か判定される。囲み操作が継続していると判定されると、ブロックＢ１６８で時計周りの囲み操作か否かが判定される。時計回りの囲み操作が継続している場合は、ブロックＢ１６４に戻り、囲み操作の種類に応じた文字属性を一方向にさらに一段階変更する。半時計回りの場合は、ブロックＢ１７０で、囲み操作の種類に応じた文字属性を反対方向に一段階変更する。その後、ブロックＢ１６６の囲み操作の継続判定が行われる。
【００８７】
ブロックＢ１６６で囲み操作の中断が判定されると、ブロックＢ１７２で編集対象領域内のストロークデータに付随している属性情報（線幅、色あるいはペンタイプ）が修正され、保存される。
【００８８】
なお、変更する文字の属性は囲み操作の種類（例えば、楕円で囲む、矩形で囲む等）により変えられるとしたが、同じ種類の操作の継続により変えてもよい。例えば、同じ操作を継続して、太さが上限まで太くなった場合は、さらに同じ操作が継続されると、他の属性（例えば、色、タイプ等）を順次一段階ずつ最大限まで変更するようにしてもよい。
【００８９】
このように、ペンで手書き入力後、文字からなる領域を指で囲んだ場合、領域内の文字の所定の属性が変更される。その後、同じ操作を同じ方向に継続することにより、変更の度合いが大きくなる。変更の度合いは、逆の方向に同じ操作を行うと、小さくなる。このため、例えば、領域を囲むという同じ種類の動作を継続して実行することにより、文字の１つの属性を連続して変更することができるとともに、同じ種類の操作の向きを逆にすることにより、文字の属性を反対方向に変更することができ、直感的な操作により文字属性を変更できる。さらに、変更する文字属性を変えたい場合は、操作の種類を変えることにより、他の属性も同様に連続して変えることができる。
【００９０】
ブロックＢ１２２の表処理の一例を図９に示す。文字処理の場合は、変更する文字の属性が複数存在するので、領域の囲み方で文字属性を切り替え、操作の回数あるいは継続時間に応じて、属性を変更する度合いを調節したが、表処理は、変更の度合いという概念がなく、変更の種類だけであるので、操作を継続して実行する間に、予め決められた編集処理が順次実行されるものとする。先ず、ブロックＢ１８２で表内の線が直線化されるとともに、手書き文字がＯＣＲ処理、あるいは文字認識処理により、テキスト化される(図１０（ａ）、（ｂ）参照)。ブロックＢ１８４で、囲み操作が継続しているか否か判定される。囲み操作が継続していると判定されると、ブロックＢ１８６で表の各セルが着色される。着色は表の見やすさを向上する(図１０（ｃ）参照)。以下、同様に、ブロックＢ１８８で、囲み操作が継続しているか否か判定され、囲み操作が継続していると判定されると、ブロックＢ１９０で他の表編集処理（例えば、表の整形等）が行われる。囲み操作の中断が検出されると、ブロックＢ１９６で編集対象領域内のストロークデータが修正され、保存される。
【００９１】
図示していないが、この場合も、囲み操作の向きを変える、すなわち半時計回りに囲み操作を行うと、変更が元に戻されるように構成してもよい。また、ブロックＢ１８２、Ｂ１８６、１９０の表編集処理の順番は任意に設定でき、ユーザの都合に応じて変更できる。
【００９２】
このように、ペンで手書き入力後、表からなる領域を囲んだ場合、囲み操作を継続して実行することにより、種々の表編集処理が順次実行される。このため、領域を囲むという同じ種類の動作の継続実施により、表を種々編集することができる。
【００９３】
ブロックＢ１２６の図処理の一例を図１１に示す。ブロックＢ２０２で編集対象領域内の手書き図に対応するストロークデータを検索キーつまり検索クエリとして、インターネットで検索を行う。検索キーとの類似度が基準値以上である図が検出されると、ブロックＢ２０４で検索結果の一覧が表示される。ブロックＢ２０６でいずれかの検索結果(図)が選択されると、ブロックＢ２０８で手書き図を検索結果で置き換え、手書き図が整形されることとなる。ブロックＢ２１０で編集対象領域内のストロークデータが修正され、保存される。
【００９４】
このように、ペンで手書き入力後、図からなる領域を囲んだ場合、所定の一連の図編集処理が順次実行される。このため、領域を囲むという操作のみにより、図を編集することができる。
【００９５】
ブロックＢ１２８のアンドゥ／リドゥ処理の一例を図１２に示す。ブロックＢ２２２で、空白領域の囲み操作の方向が時計回りか否か判定される。時計回りの場合は、ブロックＢ２２４で、最後に入力した１ストロークデータが削除される（アンドゥ）。半時計回りの場合は、ブロックＢ２２６で、最近削除した１ストロークデータが復活される（リドゥ）。ブロックＢ２２２またはブロックＢ２２６の次にブロックＢ２２８で、空白領域の囲み操作が継続しているか否か判定される。囲み操作が継続していると判定されると、ブロックＢ２２２の時計回りの囲み操作か否かの判定に戻る。操作が中断した場合は、ブロックＢ２３０でストロークデータが修正され、保存される。
【００９６】
このように、ペンで手書き入力後、文字、表、図ではない空白領域を囲んだ場合、時計回りの囲み操作の場合はアンドゥ処理が、半時計回りの囲み操作の場合はリドゥ処理が行われる。囲み操作が継続されると、アンドゥ／リドゥ処理が繰り返される。このため、空白領域を囲むという同じ種類の動作の継続実施という直感的な操作により、アンドゥ／リドゥ処理を繰り返すことができる。
【００９７】
なお、ディスプレイ上に文書がぎっしり書かれている場合は、空白領域が無い可能性もある。この場合には、手書き場所には無関係に特定の囲み操作をアンドゥ／リドゥ処理の操作指示としてもよい。例えば、２本指の同時タッチで同じ箇所をぐるぐる囲った場合は、囲む方向に応じてアンドゥ／リドゥ処理が指示されるとする。  手書きされるストロークに対応するストロークデータが入力され、１以上の第１ストロークがディスプレイに表示される。ここで、１以上のストロークに対してディスプレイを介して第１回目の第１操作が検出されると、１以上の第１ストロークの表示形態が第１表示形態から第２表示形態へ変更される。第１回目の第１操作に続いて、１以の第１ストロークに対してディスプレイを介して第２回目の第１操作が検出されると、１以上の第１ストロークの表示形態が第２表示形態から第３表示形態へ変更される。
【００９８】
１以上のストロークに対して前記ディスプレイを介して第１回目の第１操作が検出されると、１以上の第１ストロークの表示形態が第１表示形態から、前記１以上の第１ストロークの種別に応じて異なる第２表示形態へ変更される。
【００９９】
１以上の第１ストロークの種別は、文字、文字以外、図、表のうちの１つを少なくとも含む。
【０１００】
１以上の第１ストロークの複数の属性のうちの第１属性を変更することで、第１表示形態が第２表示形態へ変更される。
【０１０１】
１以上の第１ストロークの複数の属性のうちの第２属性を変更することで、第２表示形態が第３表示形態へ変更される。
【０１０２】
１以上の第１ストロークの属性は、線の太さ、色、種別のうちの１つを少なくとも含む。
【０１０３】
第１回目の第１操作と、第２回目の第１操作とは、ディスプレイ上で実行可能な同種のジェスチャー操作である。
【０１０４】
第１回目の第１操作と、第２回目の第１操作とは、ディスプレイ上で、ディスプレイ上の１以上の第１ストロークの表示領域の近傍の領域を囲む操作である。
【０１０５】
第１回目の第１操作に続いて、１以上の第１ストロークに対してディスプレイを介して第２回目の第１操作が検出されると、第２回目の第１操作が開始するタイミングから第２回目の第１操作が終了するタイミングまでの期間で、第２回目の第１操作の実行状況に応じて、１以上の第１ストロークの表示形態が第２表示形態から第３表示形態へ段階的に変更される。
【０１０６】
第１回目の第１操作に続いて、１以上の第１ストロークに対してディスプレイを介して第１操作とは方向が逆方向の第２操作が検出されると、１以上の第１ストロークの表示形態が第２表示形態から第１表示形態へ変更される。
【０１０７】
第１回目の第１操作と、第２回目の第１操作とは、ディスプレイ上で、ディスプレイ上の１以上の第１ストロークの表示領域の近傍の領域で、タップ、ダブルタップ、フリック、スライド、スワイプ、ピンチアウト、ピンチイン、複数の個所における同時のタップ、のいずれかの操作である。  上記１以上の第１ストロークの種別が表である場合、第１表示形態から第２表示形態への変更、又は第２表示形態から第３表示形態への変更の少なくとも一方は、上記１以上の第１ストロークに含まれる文字の認識、１以上の第１ストロークに含まれる線の整形、１以上の第１ストロークにかかる表の一部領域の着色のいずれかである。
【０１０８】
上記１以上の第１ストロークの種別が文字である場合、第１回目の第１操作又は第２回目の第１操作が検出されると、上記１以上の第１ストロークに対応する文字を用いた検索結果が表示される。
【０１０９】
上記１以上の第１ストロークの種別が画像である場合、第１回目の第１操作または第２回目の第１操作によって指定される領域に図が含まれると、図に対する画像処理が実施される。
【０１１０】
上述の説明では、編集対象領域を指定すると、領域に含まれる内容の種類に基づいてデフォルトで決められた処理が実施され、操作を継続すると、処理の度合いが変化される。そして、異なる処理を実施するためには、同じ領域に異なる操作をする必要があった。異なる処理を実施するために、異なる処理の一覧である操作メニューを表示して、これから処理を選ぶことも可能である。
【０１１１】
次に、ブロックＢ１１８の文字処理、ブロックＢ１２２の表処理、ブロックＢ１２６の図処理の他の例として、編集対象領域を指定すると、領域に含まれる内容の種類に基づいた操作メニューを表示する例を説明する。
【０１１２】
図１３はブロックＢ１１８の文字処理の他の例を示す。先ず、ブロックＢ２５２で文字編集のためのメニューが表示される。図１４にメニューの一例を示す。図１４（ａ）に示すように、文書中の文字列“Ｔａｂｌｅｔ”からなる編集対象領域が囲まれると、図１４（ｂ）に示すように、文字列に応じた「色」、「ペンタイプ」、「太さ」項目を含む操作メニューが表示される。ユーザは、操作メニュー内の所望の項目を選択するためには、指を動かして項目を囲むことが要求されている。図１４（ｂ）の例は、編集対象領域を囲んだ後、「色」を囲む例を示している。
【０１１３】
ブロックＢ２５４で操作メニューの一項目が囲まれた場合、選択された項目に応じた編集処理がブロックＢ２５６で行われる。「色」の場合は、文字色が先ず「赤」に変わる。図８の処理と同様に、他の色に変えるためには、ユーザは同じ操作(ここでは、囲み操作)を継続することが要求される。ブロックＢ２５８で囲み操作が継続しているか否か判定される。囲み操作が継続していると判定されると、ブロックＢ２６０で時計周りの囲み操作が継続しているか否か判定される。時計回りの囲み操作が継続している場合は、ブロックＢ２５６に戻り、編集対象領域の文字の色がさらに変化する。例えば、赤、青、緑、黄、…の順番で色が変化するように構成されている。半時計回りの囲み操作が継続している場合は、ブロックＢ２６２で、色が１つ前の色に戻される。
【０１１４】
ブロックＢ２５８で囲み操作が中断したと判定されると、ブロックＢ２６４で、メニューの他の項目（例えば、タイプ、太さ）の囲み操作が行われているか否か判定される。他の項目の囲み操作が行われている場合は、ブロックＢ２５６に戻り、他の項目に対して上記と同様の変更処理が行われる。
【０１１５】
なお、図１４の例では、操作メニューは選択した編集対象領域の下に表示しているが、下に表示空きスペースが無い場合は、右側や上側など、空いているスペースに表示しても良い。また、編集対象領域が表示画面全体の場合は、画面中央付近に表示しても良い。
【０１１６】
ブロックＢ２５４で、他の項目の囲み操作が行われていない場合は、ブロックＢ２６６で編集対象領域内のストロークデータに付随している属性情報が修正され、保存される。
【０１１７】
このように、ペンで手書き入力後、文字からなる領域を指で囲んだ場合、文字編集項目からなる操作メニューを表示して、これから処理を選ぶために、項目を囲むと対応する項目が変化する。囲み操作を継続すると、項目を連続的に変更することも可能である。
【０１１８】
文字処理と同様に、ブロックＢ１２２の表処理の場合も、先ず、表処理のためのメニューが表示される。メニューの項目は、線の直線化・手書き文字のテキスト化、セルの着色等を含む。さらに、ブロックＢ１２６の図処理の場合も、先ず、図処理のためのメニューが表示される。メニューの項目は、検索一覧表示、検索結果との置換等を含む。
【０１１９】
このように、１以上のストロークに対してディスプレイを介して第１回目の第１操作が検出される場合、１以上の第１ストロークの表示形態を第１表示形態から異なる複数の第２表示形態へ変更するためのメニューが表示される。第１回目の第１操作に続いて、メニュー上で複数の第２表示形態のいずれかが選択される場合に、１以上の第１ストロークの表示形態を前記第１表示形態から、選択された第２表示形態へ変更される。
【０１２０】
このメニューの一項目がアンドゥ／リドゥ処理を含んでも良い。メニューにアンドゥ／リドゥ処理を追加することは、ディスプレイ上に文書がぎっしり書かれており、空白領域が無い場合に、有効である。
【０１２１】
なお、実施形態では、ペンで手書き入力されたものは文書とみなし、指で手書き入植されたものは編集操作指示と見なしたが、ペンのみで入力しても、別途動作モードを切り替えるメニューを設け、編集モード時に手書き入力されたものは編集操作指示と見なしてもよい。
【０１２２】
実施形態は、全ての処理をタブレットコンピュータ１０で行なったが、タッチスクリーンディスプレイ１７への手書き以外の処理はサーバシステム２側で行なってもよい。例えば、手書きノートアプリケーションの処理部３０８の機能をサーバシステム２側に移してもよい。また、記憶媒体４０２に保存する代わりに、サーバシステム２のデータベースに保存してもよい。
【０１２３】
なお、本実施形態の処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１２４】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図１】
2014147722.tif 000003
【図２】
2014147722.tif 000004
【図３】
2014147722.tif 000005
【図４】
2014147722.tif 000006
【図５】
2014147722.tif 000007
【図６】
2014147722.tif 000008
【図７】
2014147722.tif 000009
【図８】
2014147722.tif 000010
【図９】
2014147722.tif 000011
【図１０】
2014147722.tif 000012
【図１１】
2014147722.tif 000013
【図１２】
2014147722.tif 000014
【図１３】
2014147722.tif 000015
【図１４】
2014147722.tif 000016
【国際調査報告】
2014147722.tif 000017
2014147722.tif 000018