JP2015038670A - 電子機器および方法 - Google Patents
電子機器および方法 Download PDFInfo
- Publication number
- JP2015038670A JP2015038670A JP2012260101A JP2012260101A JP2015038670A JP 2015038670 A JP2015038670 A JP 2015038670A JP 2012260101 A JP2012260101 A JP 2012260101A JP 2012260101 A JP2012260101 A JP 2012260101A JP 2015038670 A JP2015038670 A JP 2015038670A
- Authority
- JP
- Japan
- Prior art keywords
- handwritten
- strokes
- stroke
- executing
- selection range
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/18—Extraction of features or characteristics of the image
- G06V30/182—Extraction of features or characteristics of the image by coding the contour of the pattern
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/32—Digital ink
- G06V30/333—Preprocessing; Feature extraction
- G06V30/347—Sampling; Contour coding; Stroke extraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/32—Digital ink
- G06V30/36—Matching; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Character Discrimination (AREA)
Abstract
【課題】手書き文書を容易に扱うことができる電子機器を実現する。【解決手段】実施形態によれば、電子機器は、表示処理手段と、判定処理手段と、提示処理手段とを具備する。前記表示処理手段は、手書きにより入力された複数のストロークを画面上に表示する。前記判定処理手段は、前記画面上の選択範囲により指定される複数の第1ストロークの少なくとも一部分に第1処理を実行可能なストロークが存在するか否かを判定する。前記提示処理手段は、前記複数の第1ストロークの少なくとも一部分に前記第1処理を実行可能なストロークが存在すると判定される場合、前記第1処理が実行可能であることをユーザに提示する。【選択図】図11
Description
本発明の実施形態は、手書きデータを処理する技術に関する。
近年、タブレット、PDA、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
ユーザは、タッチスクリーンディスプレイ上に表示されるメニューまたはオブジェクトを指などでタッチすることにより、これらメニューまたはオブジェクトに関連づけられた機能の実行を携帯型電子機器に指示することができる。
しかし、タッチスクリーンディスプレイを備える既存の電子機器の多くは、画像、音楽、他の各種メディアデータに対する操作性を追求したコンシューマ向け製品であり、会議、商談、商品開発などのビジネスシーンにおける利用については必ずしも適していない場合がある。このため、ビジネスシーンにおいては、いまなお、紙の手帳が広く利用されている。
最近では、手書き文字のような手書きオブジェクトを扱うための技術も開発されている。
しかし、従来では、手書きデータを容易に扱うことができるようにするためのユーザインタフェースについては考慮されていないのが現状である。
本発明の一形態の目的は、手書きデータを容易に扱うことができる電子機器およびデータ処理方法を提供することである。
実施形態によれば、電子機器は、表示処理手段と、判定処理手段と、提示処理手段とを具備する。前記表示処理手段は、手書きにより入力された複数のストロークを画面上に表示する。前記判定処理手段は、前記画面上の選択範囲により指定される複数の第1ストロークの少なくとも一部分に第1処理を実行可能なストロークが存在するか否かを判定する。前記提示処理手段は、前記複数の第1ストロークの少なくとも一部分に前記第1処理を実行可能なストロークが存在すると判定される場合、前記第1処理が実行可能であることをユーザに提示する。
以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、この電子機器がタブレットコンピュータ10として実現されている場合を想定する。タブレットコンピュータ10は、タブレットまたはストレートコンピュータとも称される携帯型電子機器であり、図1に示すように、本体11とタッチスクリーンディスプレイ17とを備える。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わせるように取り付けられている。
図1は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、この電子機器がタブレットコンピュータ10として実現されている場合を想定する。タブレットコンピュータ10は、タブレットまたはストレートコンピュータとも称される携帯型電子機器であり、図1に示すように、本体11とタッチスクリーンディスプレイ17とを備える。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わせるように取り付けられている。
本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置(LCD)であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの2種類のセンサの双方がタッチスクリーンディスプレイ17に組み込まれている場合を想定する。
デジタイザおよびタッチパネルタッチの各々は、フラットパネルディスプレイの画面を覆うように設けられる。このタッチスクリーンディスプレイ17は、指を使用した画面に対するタッチ操作のみならず、ペン100を使用した画面に対するタッチ操作も検出することができる。ペン100は例えば電磁誘導ペンであってもよい。ユーザは、外部オブジェクト(ペン100又は指)を使用してタッチスクリーンディスプレイ17上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト(ペン100又は指)の動きの軌跡、つまり手書き入力操作によって手書きされるストローク(手書きストロークの軌跡)がリアルタイムに描画され、これによって手書きにより入力された複数の手書きストローク(各手書きストロークの軌跡)が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が1つの手書きストロークに相当する。手書きされた文字、マーク、図形、表などに対応する多数の手書きストロークの集合、つまり多数の軌跡(筆跡)の集合が手書き文書を構成する。以下では、手書きストロークは単にストロークとも称する。
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報として記憶媒体に保存される。この時系列情報の詳細は図4を参照して後述するが、この時系列情報は、複数のストロークが手書きされた順を示し、且つ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、この時系列情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
タブレットコンピュータ10は、記憶媒体から既存の任意の時系列情報を読み出し、この時系列情報に対応する手書き文書、つまりこの時系列情報によって示される複数のストロークを画面上に表示することができる。時系列情報によって示される複数のストロークも、手書きによって入力される複数のストロークである。
さらに、タブレットコンピュータ10は編集機能を有している。この編集機能は、「消しゴム」ツール、範囲選択ツール、および他の各種ツール等を用いたユーザによる編集操作に応じて、表示中の手書き文書内の任意のストロークまたは任意の手書きオブジェクト部分(手書き文字、手書きマーク、手書き図形、手書き表、等)を削除または移動することができる。さらに、この編集機能は、選択範囲内に属する手書きオブジェクト部分に対して各種機能、例えば、図整形機能、表整形機能、手書き文字認識・整形機能、等を実行することができる。
本実施形態では、時系列情報(手書き文書)は、1つまたは複数のページとして管理されうる。この場合、時系列情報(手書き文書)を1つの画面に収まる面積単位で区切ることによって、1つの画面に収まる時系列情報のまとまりを1つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは1つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を一つのページとして扱うことができる。1つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小してするようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。
図2は、タブレットコンピュータ10と外部装置との連携動作の例を示している。タブレットコンピュータ10は、パーソナルコンピュータ1やクラウドと連携することができる。すなわち、タブレットコンピュータ10は、無線LANなどの無線通信デバイスを備えており、パーソナルコンピュータ1との無線通信を実行することができる。さらに、タブレットコンピュータ10は、インターネット上のサーバ2との通信を実行することもできる。サーバ2はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
パーソナルコンピュータ1はハードディスクドライブ(HDD)のようなストレージデバイスを備えている。タブレットコンピュータ10は、時系列情報(手書き文書)をネットワーク越しにパーソナルコンピュータ1に送信して、パーソナルコンピュータ1のHDDに記録することができる(アップロード)。タブレットコンピュータ10とパーソナルコンピュータ1との間のセキュアな通信を確保するために、通信開始時には、パーソナルコンピュータ1がタブレットコンピュータ10を認証するようにしてもよい。この場合、タブレットコンピュータ10の画面上にユーザに対してIDまたはパスワードの入力を促すダイアログを表示してもよいし、タブレットコンピュータ10のIDなどを自動的にタブレットコンピュータ10からパーソナルコンピュータ1に送信してもよい。
これにより、タブレットコンピュータ10内のストレージの容量が少ない場合でも、タブレットコンピュータ10が多数の時系列情報(手書き文書)あるいは大容量の時系列情報(手書き文書)を扱うことが可能となる。
さらに、タブレットコンピュータ10は、パーソナルコンピュータ1のHDDに記録されている任意の1以上の時系列情報を読み出し(ダウンロード)、その読み出した時系列情報によって示されるストロークをタブレットコンピュータ10のディスプレイ17の画面に表示することができる。この場合、複数の時系列情報(手書き文書)それぞれのページを縮小することによって得られるサムネイルの一覧をディスプレイ17の画面上に表示してもよいし、これらサムネイルから選ばれた1ページをディスプレイ17の画面上に通常サイズで表示してもよい。
さらに、タブレットコンピュータ10が通信する先はパーソナルコンピュータ1ではなく、上述したように、ストレージサービスなどを提供するクラウド上のサーバ2であってよい。タブレットコンピュータ10は、時系列情報(手書き文書)をネットワーク越しにサーバ2に送信して、サーバ2のストレージデバイス2Aに記録することができる(アップロード)。さらに、タブレットコンピュータ10は、サーバ2のストレージデバイス2Aに記録されている任意の時系列情報を読み出して(ダウンロード)、その時系列情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ10のディスプレイ17の画面に表示することができる。
このように、本実施形態では、時系列情報が格納される記憶媒体は、タブレットコンピュータ10内のストレージデバイス、パーソナルコンピュータ1内のストレージデバイス、サーバ2のストレージデバイスのいずれであってもよい。
次に、図3および図4を参照して、ユーザによって手書きされたストローク(文字、マーク、図形、表など)と時系列情報との関係について説明する。図3は、ペン100などを使用してタッチスクリーンディスプレイ17上に手書きされる手書き文書(手書き文字列)の例を示している。
手書き文書では、一旦手書きによって入力される文字や図形などの上に、さらに別の文字や図形などが手書きによって入力されるというケースが多い。図3においては、「ABC」の手書き文字列が「A」、「B」、「C」の順番で手書きによって入力され、この後に、手書きの矢印が、手書き文字「A」のすぐ近くに手書きによって入力された場合が想定されている。
手書き文字「A」は、ペン100などを使用して手書きされる2つのストローク(「∧」形状の軌跡、「−」形状の軌跡)によって、つまり2つの軌跡によって表現される。最初に手書きされる「∧」形状のペン100の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標SD11、SD12、…SD1nが得られる。同様に、次に手書きされる「−」形状のペン100の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標SD21、SD21、…SD2nが得られる。
手書き文字「B」は、ペン100などを使用して手書きされた2つのストローク、つまり2つの軌跡によって表現される。手書き文字「C」は、ペン100などを使用して手書きされた手書きされた1つのストローク、つまり1つの軌跡によって表現される。手書きの「矢印」は、ペン100などを使用して手書きされた手書きされた2つのストローク、つまり2つの軌跡によって表現される。
図4は、図3の手書き文書に対応する時系列情報200を示している。時系列情報は、複数のストロークデータSD1、SD2、…、SD7を含む。時系列情報200内においては、これらストロークデータSD1、SD2、…、SD7は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べている。
時系列情報200において、先頭の2つのストロークデータSD1、SD2は、手書き文字「A」の2つのストロークをそれぞれ示している。3番目と4番目のストロークデータSD3、SD4は、手書き文字「B」を構成する2つのストロークをそれぞれ示している。5番目のストロークデータSD5は、手書き文字「C」を構成する1つのストロークを示している。6番目と7番目のストロークデータSD6、SD7は、手書き「矢印」を構成する2つのストロークをそれぞれ示している。
各ストロークデータは、一つのストロークに対応する座標データ系列(時系列座標)、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「A」に関しては、ストロークデータSD1は、手書き文字「A」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)、つまりn個の座標データSD11、SD12、…SD1nを含む。ストロークデータSD2は、手書き文字「A」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりn個の座標データSD21、SD22、…SD2nを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
各座標データは、対応する軌跡内のある1点に対応するX座標およびY座標を示す。例えば、座標データSD11は、「∧」形状のストロークの始点のX座標(X11)およびY座標(Y11)を示す。SD1nは、「∧」形状のストロークの終点のX座標(X1n)およびY座標(Y1n)を示す。
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Tを含んでいてもよい。手書きされた時点は、絶対時間(例えば、年月日時分秒)またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間(例えば、年月日時分秒)をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Tとして付加してもよい。
このように、各座標データにタイムスタンプ情報Tが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
さらに、各座標データには、筆圧を示す情報(Z)を追加してもよい。
図4で説明したような構造を有する時系列情報200は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。したがって、この時系列情報200を使用することにより、図3に示すようにたとえ手書き「矢印」の先端部が手書き文字「A」上に重ねてまたは手書き文字「A」に近接して書かれたとしても、手書き文字「A」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。
さらに、本実施形態の時系列情報200においては、上述したように、ストロークデータSD1、SD2、…、SD7の並びは手書き文字の筆順を示す。例えば、ストロークデータSD1およびSD2の並びは、最初に「∧」形状のストロークが手書きされ、次に「−」形状のストロークが手書きされたことを表す。したがって、たとえ2つの手書き文字の筆跡同士が互いに類似していても、それら2つの手書き文字の筆順が互いに異なる場合には、それら2つの手書き文字を異なる文字として区別することができる。
さらに、本実施形態では、上述したように、手書き文書は、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合から構成される時系列情報200として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の時系列情報200の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
図5は、タブレットコンピュータ10のシステム構成を示す図である。
タブレットコンピュータ10は、図5に示されるように、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ105、BIOS−ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108等を備える。
タブレットコンピュータ10は、図5に示されるように、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ105、BIOS−ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108等を備える。
CPU101は、タブレットコンピュータ10内の各種モジュールの動作を制御するプロセッサである。CPU101は、ストレージデバイスである不揮発性メモリ106から主メモリ103にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム(OS)201、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、デジタルノートブックアプリケーションプログラム202が含まれている。このデジタルノートブックアプリケーションプログラム202は、上述の手書き文書を作成および表示する機能、手書き文書を編集する機能(整形機能、認識機能、等を含む)等を有している。
また、CPU101は、BIOS−ROM105に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
システムコントローラ102は、CPU101のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ102は、PCI EXPRESS規格のシリアルバスなどを介してグラフィクスコントローラ104との通信を実行する機能も有している。
グラフィクスコントローラ104は、本タブレットコンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示コントローラである。このグラフィクスコントローラ104によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて画面イメージを表示する。このLCD17A上にはタッチパネル17Bおよびデジタイザ17Cが配置されている。タッチパネル17Bは、LCD17Aの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル17Bによって検出される。デジタイザ17CはLCD17Aの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン100が接触される画面上の接触位置および接触位置の動き等はデジタイザ17Cによって検出される。
無線通信デバイス107は、無線LANまたは3G移動通信などの無線通信を実行するように構成されたデバイスである。EC108は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。EC108は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ10を電源オンまたは電源オフする機能を有している。
次に、図6を参照して、デジタルノートブックアプリケーションプログラム202の機能構成について説明する。
デジタルノートブックアプリケーションプログラム202は、手書きデータを扱うことが可能なWYSIWYGアプリケーションであり、ペン軌跡表示処理部301、時系列情報生成部302、ページ保存処理部304、ページ取得処理部305、手書き文書表示処理部306、機能表示処理部307、および処理部308等を備える。
デジタルノートブックアプリケーションプログラム202は、タッチスクリーンディスプレイ17を用いて入力されるストロークデータを使用することによって、手書き文書の作成、表示、編集等を行う。タッチスクリーンディスプレイ17は、「タッチ」、「移動(スライド)」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動(スライド)」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
ペン軌跡表示処理部301および時系列情報生成部302は、タッチスクリーンディスプレイ17によって発生される「タッチ」または「移動(スライド)」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動(スライド)」イベントにも、移動先の接触位置の座標が含まれている。したがって、ペン軌跡表示処理部301および時系列情報生成部302は、タッチスクリーンディスプレイ17から、接触位置の動きの軌跡に対応する座標列を受信することができる。
ペン軌跡表示処理部301は、手書きによって入力される複数のストロークをタッチスクリーンディスプレイ17内のLCD17Aの画面上に表示する。より詳しくは、ペン軌跡表示処理部301は、タッチスクリーンディスプレイ17から座標列を受信し、この座標列に基づいて、ペン100等を使用した手書き入力操作によって書かれる手書きオブジェクトに対応する各ストロークをタッチスクリーンディスプレイ17内のLCD17Aの画面上に表示する。このペン軌跡表示処理部301により、画面にペン100が接触している間のペン100の軌跡、つまり各ストロークの軌跡がLCD17Aの画面上に描かれる。
時系列情報生成部302は、タッチスクリーンディスプレイ17から出力される上述の座標列を受信し、この座標列に基づいて、図4で詳述したような構造を有する上述の時系列情報(ストロークデータの集合)を生成する。この場合、時系列情報、つまりストロークの各点に対応する座標およびタイムスタンプ情報は作業メモリ401に一時保存してもよい。
ページ保存処理部304は、生成された時系列情報を手書き文書(手書きページ)として記憶媒体402に保存する。記憶媒体402は、上述したように、タブレットコンピュータ10内のストレージデバイス、パーソナルコンピュータ1内のストレージデバイス、サーバ2のストレージデバイスのいずれであってもよい。
ページ取得処理部305は、記憶媒体402から既に格納されている任意の時系列情報を読み出す。読み出された時系列情報は手書き文書表示処理部306に送られる。手書き文書表示処理部306は、時系列情報を解析し、この解析結果に基づいて、時系列情報によって示される各ストローク(手書きによって入力された各ストローク)を画面上に手書きページとして表示する。
機能表示処理部307は、グラフィカルユーザインタフェースを使用して、ユーザによって行われる範囲選択操作を支援する。範囲選択操作は、画面上の手書きページ内の任意の部分、つまり手書きオブジェクト内の任意の部分を選択するための操作である。ユーザは、例えば「範囲選択」ツールを使用することにより、ペン100の操作によって画面上の任意の部分を四角の枠または丸の枠によって囲むことができる。処理部308は、四角の枠または丸の枠によって囲まれた選択範囲内に属する手書きオブジェクト部分に対して上述の整形、認識等の様々な機能を実行することができる。
機能表示処理部307は、ユーザによる範囲選択操作を支援するために、範囲選択操作中に、画面上の選択範囲により指定される複数の第1ストロークの少なくとも一部分に、ある特定の処理(第1の処理)を実行可能なストロークが存在するか否かを判定エンジン309を使用して判定する。第1の処理を実行可能なストロークは、有意なオブジェクト部分として認識され得る。
範囲選択操作中に、選択範囲によって指定される複数の第1ストロークの少なくとも一部分に、第1の処理を実行可能なストロークが存在することが判定された場合、機能表示処理部307は、グラフィカルユーザインタフェースを通じて、第1の処理を実行可能であることをユーザに提示する。
上述の複数の第1ストロークの少なくとも一部分に、第1処理を実行可能なストロークが存在すると判定される場合、機能表示処理部307は、第1の処理を実行するための機能が割り当てられる第1のグラフィカルユーザインタフェース部(例えば、ボタン)を選択可能状態(有効状態)にしてもよい。この場合、このボタンの表示形式を、選択不可能なグレーアウト状態から、選択可能な有効状態に遷移させても良い。
あるいは、機能表示処理部307は、上述の複数の第1ストロークの少なくとも一部分に、第1処理を実行可能なストロークが存在すると判定される場合、複数の第1ストロークの少なくとも一部分に対して適用可能な機能が割り当てられる第1のグラフィカルユーザインタフェース部(例えば、ボタン)を画面上に表示してもよい。
この機能表示処理部307の動作により、手書きによって入力される複数のストロークのある一部分、つまり手書きオブジェクトのある一部分を選択する場合においては、どの部分まで選択範囲を広げればデジタルノートブックアプリケーションプログラム202の機能(整形等の編集機能)を実行できるようになるかをユーザに分かり易く提示することができる。ユーザは、例えば、グラフィカルユーザインタフェースを見ながら選択範囲を広げていくことにより、効率よく範囲選択操作を行うことができる。
上述の第1処理を実行可能なストロークが存在するか否かの判定する処理、つまり、上述の有意な手書きオブジェクト部分が存在するか否かの判定する処理においては、上述したように、選択範囲によって指定される複数の第1のストロークが使用される。選択範囲に全体的に含まれるストロークのみならず、選択範囲に一部分が含まれるストロークも、上述の第1のストロークとして使用される。換言すれば、選択範囲に全体的にまたは部分的に属する複数のストロークが、選択範囲によって指定される上述の複数の第1のストロークとして使用しうる。
上述の判定処理においては、複数の第1ストローク間の位置関係に基づいて、複数の第1ストロークの少なくとも一部分に、第1処理を実行可能なストロークが存在するか否かを判定することができる。さらに、選択範囲内において複数の第1のストロークが閉形状の手書きオブジェクト部分を形成するか否かに基づいて、複数の第1ストロークの少なくとも一部分に、第1処理を実行可能なストロークが存在するか否かを判定してもよい。
上述の判定処理として別の方法も使用し得る。例えば、機能表示処理部307は、選択範囲によって指定される複数の第1の手書きストロークから、この選択範囲に含まれる複数の第1の手書きストローク部分をまず選択し、これら複数の第1の手書きストローク部分に、第1の処理を実行可能なストロークが存在するか否か、つまり有意なオブジェクト部分が存在するか否かを判定してもよい。
いま、選択範囲内に一部分が属する3つのストロークA,B,Cが存在する場合を想定する。この場合、ストロークAの内で選択範囲内に含まれる一部分(ストロークAのストローク部分A1)のデータと、ストロークBの内で選択範囲内に含まれる一部分(ストロークBのストローク部分B1)のデータと、ストロークCの内で選択範囲内に含まれる一部分(ストロークCのストローク部分C1)のデータとが上述の判定に使用し得る。例えば、ストローク部分A1のデータは、ストロークAに対応するストロークデータから抽出される。つまり、ストロークAに対応するストロークデータ内の座標系列の一部分が、ストローク部分A1に対応するストロークデータとして使用される。
そして、これらストローク部分A1、B1、C1間の位置関係に基づいて、選択範囲によって指定される上述の複数の第1ストロークの少なくとも一部分に、第1処理を実行可能なストロークが存在するか否か、つまり有意な手書きオブジェクト部分が存在するか否かを判定してもよい。
このように、本実施形態では、選択範囲によって指定される複数の第1ストロークの少なくとも一部分に、第1処理を実行可能なストロークが存在するか否かが判定される。したがって、選択範囲内に全体的に属するストロークのみならず、選択範囲内に部分的に属するストロークをも考慮して、第1処理を実行可能なストロークが存在するか否か、つまり有意なオブジェクト部分が存在するか否かを判定できる。よって、選択範囲が比較的小さい場合であっても、換言すれば選択範囲をある一以上のストローク全体を含むような大きなサイズにまで広げること無く、第1処理を実行可能なストロークが存在するか否かを判定することができる。
例えば、2行×2列の4つの要素(4つのセル)を含む手書きの表は、3本の横線と3本の縦線を手書きすることによって書くことができる。この場合、もし現在の選択範囲内に全体的に属するストロークのみを使用して有意な手書きオブジェクト部分があるか否かを判定するという方法を採用したならば、2行×2列の4つの要素を含む手書きの表全体を選択範囲で囲まない限り、この手書きの表内の3本の横線と3本の縦線に対応する6つのストロークの存在を考慮することができない。本実施形態では、2行×2列の4つの要素の内の1つの要素(第1の要素)を選択範囲で囲むだけで、この第1の要素を構成する例えば4つのストロークの少なくとも一部分に、有意な手書きオブジェクト部分が存在するか否かを判定することができる。ここでは、第1の要素は、整形機能を実行可能な要素(手書きの表の1つのセル)であるので、第1の要素が有意な手書きオブジェクト部分であるとして決定される。
処理部308は、上述したように、選択範囲内に属する手書きオブジェクト部分に対して様々な機能、例えば、整形機能、認識機能等を実行することができる。この処理部308は、上述の判定エンジン309と、整形処理部310とを備える。
判定エンジン309は、選択範囲によって指定される上述の複数の第1のストロークに対応する複数のストロークデータを機能表示処理部307から取得する。そして、判定エンジン309は、これら複数の第1のストロークに対応する複数のストロークデータに基づいて、現在の選択範囲によって指定される複数の第1のストロークの少なくとも一部分に、第1処理を実行可能なストロークが存在するか否かを判定する。例えば、判定エンジン309は、選択範囲内において、これに複数の第1のストロークが閉形状の手書きオブジェクト部分(例えば、手書き表内の1つのセル、手書き図形内の矩形形状部分、手書き図形内の円形形状部分、等)を形成するか否かに基づいて、これら複数の第1ストロークの少なくとも一部分に、第1処理を実行可能なストロークが存在するか否かを判定してもよい。
なお、判定エンジン309は、選択範囲によって指定される上述の複数の第1のストロークに対応する複数のストロークデータの代わりに、選択範囲に含まれる上述の複数の第1の手書きストローク部分のストロークデータのみを機能表示処理部307から取得してもよい。上述したように、各ストロークデータは多数の座標を含むので、これら多数の座標の内で選択範囲内に含まれる複数の座標列が第1の手書きストローク部分に対応するストロークデータとなる。そして、判定エンジン309は、これら複数の第1の手書きストローク部分それぞれのストロークデータに基づいて、現在の選択範囲内によって指定される手書きオブジェクトの一部分内に、有意な手書きオブジェクト部分が存在するか否かを判定してもよい。例えば、判定エンジン309は、現在の選択範囲内において、これら複数の第1の手書きストローク部分によって形成される手書きオブジェクト部分が上述の閉形状の手書きオブジェクト部分を含む場合、この閉形状の手書きオブジェクト部分を上述の有意な手書きオブジェクト部分であると判定してもよい。
整形処理部310は、上述の整形および認識の機能を実行する。すなわち、整形処理部310は、選択範囲によって指定される上述の複数の第1のストロークが第1の処理が実行可能な手書きオブジェクト部分を形成する場合、この手書きオブジェクト部分を整形して該整形の結果を出力する手書きオブジェクト処理部として機能する。さらに、整形処理部310は、第1の処理が実行可能な上述の手書きオブジェクト部分に含まれる手書き文字を認識してこの手書き文字の認識結果を出力することもできる。
なお、上述したように、画面に表示される手書きオブジェクトの中から、選択範囲に含まれる手書きオブジェクト部分を選択し、この手書きオブジェクト部分内に上述の有意な手書きオブジェクト部分があるか否かを判定してもよい。この場合には、整形処理部310は、選択範囲内の有意な手書きオブジェクト部分を整形してこの有意な手書きオブジェクト部分に対応する整形結果を出力する。
図7は、範囲選択操作中に実行されるグラフィカルユーザインタフェース表示動作の例を示す。上述したように、デジタルノートブックアプリケーションプログラム202は、ユーザによって指定された選択範囲によって指定される複数の第1のストロークの少なくとも一部分に、第1処理(整形処理、認識処理、または他の各種処理)を実行可能なストロークが存在するか否かを判定し、第1の処理が実行可能であれば、このことをグラフィカルユーザインタフェースを介してユーザに提示することができる。
図7の左側に示されているように、手書きデータを構成する複数の手書きストロークは、画面上の描画領域110に表示される。描画領域110は手書きストロークを書くことが可能な領域である。もちろん、記憶媒体からリードした手書きデータ内の複数のストロークデータに基づいて複数のストロークを描画領域110上に表示しても良い。ここでは、手書きによって入力される複数のストロークが手書きの表を表しており、この手書きの表が描画領域110に表示されている場合を想定する。手書きの表の場合には、この表の1つのセルが有意な手書きオブジェクト部分となり得る。
ユーザによる範囲選択操作が行われると、現在の選択範囲が矩形状の選択枠100によって画面上に表示される。選択枠100は矩形状に限らず、例えば円形状であってもよい。ユーザは、例えばペン100を画面上のある一点から他の点に向けて移動させることにより、範囲選択操作を行うことができる。ペン100の動きの始点が選択枠100の一頂点となり、ペン100の移動先の点が選択枠100の上述の一頂点に対して対角の頂点となる。ペン100の移動量が増えるにつれ、選択枠100のサイズは大きくなる。ペン100が画面から離されると、範囲選択操作は終了される。
図7の左側は、選択枠100の範囲(選択範囲)内に特定の機能(第1の処理)を実行するために必要なデータが存在しない状態を示している。この時、デジタルノートブックアプリケーションプログラム202の上述の特定の機能(第1の処理)が割り当てられている「Button1」120は、この「Button1」120が選択実行できないように無効な状態として、グレーアウトしてユーザに提示されている。なお、特定の機能(第1の処理)を実行させないためのユーザインタフェースとして、グレーアウト以外を用いても良い。
図7の右側は、図7の左側の状態よりも選択枠100の範囲(選択範囲)をさらに広げた場合であり、選択範囲内に特定の機能(第1の処理)を実行するために必要なデータ(表の1つのセルに対応する手書きオブジェクト部分、つまり、表の1つのセルに対応するストローク群)が存在する状態を示している。この時、図7の右側に示すように、特定の機能(第1の処理)が割り当てられている「Button1」120は図7左のグレーアウト状態が解除されて選択実行可能な状態に遷移する。なお、特定の機能を実行させるためのユーザインタフェースとして、グレーアウトの解除以外の方法をとっても良い。
図8は、範囲選択操作中に実行されるグラフィカルユーザインタフェース表示動作の別の例を示す。上述したように、デジタルノートブックアプリケーションプログラム202は、選択範囲内に、例えば手書きの表内のセル、手書き図形内の特定形状の図形部分、手書き文字といった有意なデータがある場合に、選択範囲内にある手書きデータに対して処理できる機能の内容をグラフィカルユーザインタフェースを介してユーザに提示することができる。
図8の左側では、選択枠100の範囲(選択範囲)内に機能を実行するために必要なデータが存在しない状態を示している。この時、実行可能な機能が無いため、機能を表示していない。その他の方法によってユーザに対して、当該の選択範囲では実行する機能が無いことを示しても良い。図8の右側は、図8の左の状態からさらに選択範囲を広げた場合であり、選択範囲内の手書きオブジェクトの一部を使うことで実行可能な機能が存在する状態を示している。ここでは、選択範囲内にある手書きオブジェクトの一部に対して実行可能な第1の機能が割り当てられた「Button2」120が画面上に表示される。「Button2」120上には、第1の機能の名前が表示されても良い。
なお、図8では、実行可能な機能が割り当てられたボタンを一つだけ提示する例が示されているが、複数個の実行可能な機能がある場合にはこれら機能が割り当てられた複数のボタンをユーザに提示しても良い。また、たとえばメニューのようなボタン以外のユーザインタフェースによって実行可能な1以上の機能をユーザに提示しても良い。
図7、図8では、手書きの表内の1つのセルを認識・整形するパターンを示したが、図9に示すように手書きの図形の一部を整形する実施形態も考えられる。図9の手書きの図形の上部(四角状の図形部分と三角状の図形部分が繋がった形状の図形)は1以上のストロークで書かれたものである。図9の右側に示すように、選択枠100の範囲(選択範囲)が四角形状の図形部分を囲むと、この四角形状の図形部分に対応するストロークが、第1の処理を実行可能なストロークとして、つまり、整形機能等を実行可能な有意な手書きオブジェクト部分として判定することができる。そして、例えば、整形機能等が割り当てられた「Button2」120が有効状態とされるか、あるいは整形機能等が割り当てられた「Button2」120が新たに画面上に表示される。
図10のフローチャートは、ユーザによって行われる範囲選択操作中にデジタルノートブックアプリケーションプログラム202によって実行されるグラフィカルユーザインタフェース表示処理の手順を示す。
このフローチャートは、ユーザによって行われる範囲選択操作に応じて手書きデータの中から処理対象部分を選択するための範囲選択処理サブルーチンである。まず、初めに、デジタルノートブックアプリケーションプログラム202は、範囲選択処理の初期化を行う(ステップS101)。次に、デジタルノートブックアプリケーションプログラム202は、ユーザによって手書きのオブジェクト(1本以上のストロークデータ)の範囲選択操作が行われていることを検知する。この場合、デジタルノートブックアプリケーションプログラム202の機能表示処理部307は、その選択範囲を取得する(ステップS102)。機能表示処理部307は、現在の選択範囲よって指定される複数の第1のストローク(第1の手書きストローク)に対応する複数のストロークデータを判定エンジンに309に送る(ステップS103)。この場合、機能表示処理部307は、現在の選択範囲内に全体的にまたは部分的に属する複数の第1の手書きストロークの各々の少なくとも一部分を判定エンジンに309に送り得る(ステップS103)。このステップS103では、機能表示処理部307は、複数の第1の手書きストロークから、現在の選択範囲に含まれる複数の第1の手書きストローク部分を選択し、これら複数の第1の手書きストローク部分のストロークデータを判定エンジンに309に送ってもよい。選択範囲内に全体的に属するストロークデータ、つまり選択範囲内に全体が含まれているストロークについては、そのストロークのストロークデータ全てが判定エンジンに309に送られる。選択範囲内に一部分のみが属しているストロークデータ、つまり選択範囲内に部分的に含まれているストロークについては、選択範囲内に含まれている部分のストロークデータ部のみが判定エンジンに309に送られる。
なお、機能表示処理部307が、選択範囲に少なくとも一部が属する全てのストロークのストロークデータと上述の選択範囲を示す情報とを判定エンジンに309に送ってもよい。この場合、判定エンジンに309が、これら全てのストロークから、上述の複数の第1の手書きストローク部分を選択してもよい。
判定エンジン309は、受信される上述の複数の第1の手書きストロークに対応する複数のストロークデータに基づき、選択範囲によって指定される上述の複数の第1の手書きストロークの少なくとも一部分に、第1の処理が実行可能なストローク(有意な手書きオブジェクト部分)が存在するか否かを判定し(ステップS104)、その結果を機能表示処理部307に返す。ステップS104では、判定エンジン309は、複数の第1の手書きストローク同士が交差する各箇所の座標等を判定し、これによって複数の第1の手書きストローク同士によって選択範囲内において形成されるオブジェクト部分の形状を特定しても良い。
このステップS104では、判定エンジン309は、例えば、受信される上述の複数の第1の手書きストローク部分のストロークデータに基づき、選択範囲によって指定される手書きオブジェクトの一部分内に、デジタルノートブックアプリケーションプログラム202の機能が実行可能な有意な手書きオブジェクト部分が存在するか否か、換言すれば、選択範囲内の手書きオブジェクト部分に対して実行可能な機能があるか否かを判定してもよい。この場合、判定エンジン309は、第1の手書きストローク部分同士が交差する各箇所の座標等を判定し、これによって第1の手書きストローク部分同士によって選択範囲内において形成されるオブジェクト部分の形状を特定しても良い。
上述の複数の第1の手書きストロークの少なくとも一部分に第1の処理が実行可能なストローク(有意な手書きオブジェクト部分)が存在する場合は、例えば、選択範囲内に有意な手書きオブジェクト部分がある場合は(ステップS105のYES)、機能表示処理部307は、次のステップS106に進む。一方、上述の複数の第1の手書きストロークの少なくとも一部分に、あるいは選択範囲内に、有意な手書きオブジェクト部分が無い場合には(ステップS105のNO)、機能表示処理部307は、範囲選択処理を継続し、新たな選択範囲を取得する(ステップS102)。これにより、ユーザによって行われる範囲選択操作中に、上述の判定が繰り返し実行される。
ステップS106では、機能表示処理部307は、無効状態にあるアプリケーションプログラム202の機能を有効化するか、または複数の第1の手書きストロークの少なくとも一部分(有意な手書きオブジェクト部分)に対して実行可能な機能をユーザインタフェースを介してユーザに提示する(ステップS106)。範囲選択処理が継続中であれば(ステップS107のNO)、機能表示処理部307は、範囲選択処理を継続し、新たな選択範囲を取得する(ステップS102)。これにより、ユーザによって行われる範囲選択操作中に、上述の判定が繰り返し実行される。
範囲選択処理が終了していれば(ステップS107のYES)、機能表示処理部307は、範囲選択処理の終了処理を行う(ステップS108)。
図11は、範囲選択操作中に実行されるグラフィカルユーザインタフェース表示動作の例と選択範囲内の手書きオブジェクト部分に対する処理の結果を示す。
ここでは、アプリケーションプログラム202の機能の例として「整形機能」を取り上げる。手書きのストロークを書くことができる描画領域(VIWE110)上でユーザによる範囲選択操作が行われる。選択枠100の形状は上述したように、矩形に限らず、特定の範囲を囲めるような閉じた形状であれば良い。以下の処理は、範囲選択操作によって、なんらかの閉じた形状の選択枠100が形成された時点から開始され、範囲選択操作中に発生するイベントやタイミングによって都度、実行されるものである。
アプリケーションプログラム202の機能表示処理部307は、選択枠100によって囲まれた選択範囲によって指定される複数の第1のストロークを取得し、これら複数の第1のストロークに対応する複数のストロークデータを判定エンジンに309に送る。この場合、機能表示処理部307は、選択範囲内に全体的に属する全てのストロークとこの選択範囲内に部分的に属する全てのストロークとを上述の複数の第1のストロークとして取得し得る。
あるいは、機能表示処理部307は、選択範囲内に全体的に属する全てのストロークのストロークデータとこの選択範囲内に部分的に属する全てのストロークのストロークデータとを取得し、これらストロークデータから、選択範囲に含まれる複数の第1の手書きストローク部分を選択してもよい。そして、機能表示処理部307は、複数の第1の手書きストローク部分を判定エンジンに309に送ってもよい。
図11の例では、機能表示処理部307は、選択枠100によって囲まれた選択範囲内に含まれる手書きストローク(図11の例では「apple」と読むことができる手書き文字列)に対応する複数のストロークに対応する複数のストロークデータと、選択範囲内に部分的に含まれる4つの手書きストローク(STOROKE101、STOROKE102、STOROKE103、STOROKE104)に対応する4つのストロークデータを判定エンジン309に送り、そして判定エンジン309に対して、これらストロークの少なくとも一部に、第1の処理が実行可能なストロークが存在するか否か判定を要求する。
なお、4つの手書きストローク(STOROKE101、STOROKE102、STOROKE103、STOROKE104)に対応する4つのストロークデータの各々の全てを判定エンジン309に送る代わりに、機能表示処理部307は、4つの手書きストローク(STOROKE101、STOROKE102、STOROKE103、STOROKE104)の各々の内、選択範囲に属するストローク部分に対応するストロークデータ部分のみを判定エンジン309に送ってもよい。この場合、機能表示処理部307は、判定エンジン309に対して、選択範囲内に有意な手書きオブジェクトがあるか否かの判定を要求すればよい。
選択枠100によって囲まれた選択範囲内においては、4つの手書きストローク(STOROKE101、STOROKE102、STOROKE103、STOROKE104)に対応する4つのストローク部分は、選択範囲に含まれる手書きストローク(図11の例では「apple」と読むことができる手書き文字列)を囲むように位置している。つまり、STOROKE101、STOROKE102、STOROKE103、STOROKE104は、選択範囲内において、手書きストローク(図11の例では「apple」と読むことができる手書き文字列)を囲むように位置している。したがって、判定エンジン309は、4つのストローク部分によって形成される手書きの4角部分(閉じた形状の部分)、つまりSTOROKE101、STOROKE102、STOROKE103、STOROKE104が選択範囲内において形成する手書きの4角部分(閉じた形状の部分)を、整形機能を実行可能な有意なオブジェクト部分として判定することができる。換言すれば、判定エンジン309は、整形機能を使うことによって、「apple」と書かれた、表のセル部分が、整形可能であると判定することができる。
機能表示処理部307は、判定エンジン309から実行可能な機能である「整形機能」を示す機能IDを受け取る。機能表示処理部307は、「整形機能」が割り当てられたボタン(BUTTON120)を画面に表示もしくは、グレーアウトによって無効化していたボタンを有効化してユーザに対して「整形機能」が使えることを提示する。なお、「整形機能」をユーザに提示する方法はこれらの方法に限定されるものではない。
この時点で、ユーザによる範囲選択操作が終了していれば、さらに繰り返して判定処理が実行されることはなく、一連の処理は完了となる。なお、一連の処理によって、手書きのストロークデータに変更が加えられることはなく、判定結果によって、「整形機能」を使用した場合においても手書きのストロークデータが変化することはない。ただし、判定結果によって、手書きストロークデータの削除や変形を伴う機能が実行された場合は、この限りではない。
以下、どのように判定結果が用いられるのかについて説明する。ユーザが実行可能になった「整形機能」を使用すると、例えば、ユーザが整形機能が割り当てられたボタン120を押すと、整形処理部310は、選択範囲内の有意なオブジェクト部分に対して整形処理を実行する。そして、整形処理部310は、整形結果(RESULT120)を描画するための領域(VIEW111)に、整形結果である、表の一部である「apple」の文字が含まれるセル(RESULT120)を表示する。RESULT120においては、4つの手書きストローク(STOROKE101、STOROKE102、STOROKE103、STOROKE104)に対応する4つのストローク部分によって形成される手書きの4角部分(閉じた形状の部分)が表の1つのセル(整形された4角)に整形されると共に、手書き文字列「apple」がその文字認識結果(文字コード列)に対応する文字フォント列に整形される。そして、表の1つのセル(整形された4角)がVIEW111に描画されると共に、この文字フォント列が表の1つのセル(整形された4角)上に描画される。このようにして、選択枠100によって囲まれた選択範囲内の手書きオブジェクト部分は、表の1つのセルに変換される。
図12は、図11で説明した処理の後に手書き文字「orange」を含む手書きの表のセルを囲むエリアが新たに範囲選択された場合に実行される処理を示している。
アプリケーションプログラム202の機能表示処理部307は、例えば、選択枠100によって囲まれた選択範囲内に全体的に属する全てのストロークのストロークデータとこの選択範囲内に部分的に属する全てのストロークのストロークデータとを取得し、これらストロークデータから、選択範囲に含まれる複数の第1の手書きストローク部分を選択する。そして、機能表示処理部307は、複数の第1の手書きストローク部分を判定エンジンに309に送る。
図12の例では、機能表示処理部307は、選択枠100によって囲まれた選択範囲内に含まれる手書きストローク(図12の例では「orange」と読むことができる手書き文字列)に対応するストロークデータ群と、選択範囲内に部分的に含まれる4つの手書きストローク(STOROKE101、STOROKE102、STOROKE104、STOROKE105)に対応する4つのストローク部分のストロークデータとを判定エンジン309に送り、判定エンジン309に対して、選択範囲内に有意な手書きオブジェクトがあるか否かの判定を要求する。
選択枠100によって囲まれた選択範囲内においては、4つの手書きストローク(STOROKE101、STOROKE102、STOROKE104、STOROKE105)に対応する4つのストローク部分は、選択範囲に含まれる手書きストローク(図12の例では「orange」と読むことができる手書き文字列)を囲むように位置している。したがって、判定エンジン309は、整形機能を使うことによって、「orange」と書かれた、表のセルの一つに、整形が可能であると判定することができる。
機能表示処理部307は、判定エンジン309から実行可能な機能である「整形機能」を示す機能IDを受け取る。機能表示処理部307は、「整形機能」が割り当てられたボタン(BUTTON120)を画面に表示もしくは、グレーアウトによって無効化していたボタンを有効化してユーザに対して「整形機能」が使えることを提示する。
ユーザがボタン120を押すと、整形処理部310は、選択範囲内の有意なオブジェクト部分に対して整形処理を実行する。この場合、STOROKE104のストロークデータに基づき、整形処理部310は、STOROKE104に対応するストローク部分が、「apple」と書かれた手書きの表のセルと「orange」と書かれた手書きの表のセルとの間の境界線であることを認識することができる。
このように、整形対象の手書きオブジェクト部分(「orange」と書かれた表のセル)の一部である第1のストローク部分(STOROKE104に対応するストローク部分)が既に整形された手書きオブジェクト部分(「apple」と書かれた表のセル)の1つのストローク部分である場合、整形処理部310は、「orange」と書かれた表のセルの整形結果(result121)と「apple」と書かれた表のセルの整形結果(result120)との間で、STOROKE104に対応する第1のストローク部分の整形結果が共用されるように、「orange」と書かれた表のセルの整形結果(result121)を出力する。したがって、図12に示すように、result120とresult121との間の境界線を1つのみにすることができる。もしSTOROKE104の部分ストローク(第1のストローク部分)が既に整形された手書きオブジェクトの部分ストローク群の一部であることを考慮しなければ、図13に示すように、互いに独立した2つの整形結果(result120、result121)が表示される可能性がある。
以上説明したように、本実施形態においては、手書きによって入力される複数のストロークが画面上に表示される。そして、画面上の選択範囲によって指定される複数の第1のストロークの少なくとも一部分に、第1の処理が実行可能なストロークが存在するか否かが判定される。そして、複数の第1のストロークの少なくとも一部分に、第1の処理が実行可能なストロークが存在すると判定される場合には、第1の処理が実行可能であることがユーザに提示される。したがって、表示中の手書きページ内のある手書きオブジェクト内の一部を選択するような場合においても、どの部分まで選択範囲を広げれば機能が実行できるようになるかをユーザに分かり易く提示することができ、手書きデータを容易に扱うことが可能となる。
さらに、上述したように、選択範囲によって指定される複数の第1ストロークの少なくとも一部分に、第1処理を実行可能なストロークが存在するか否かが判定される。したがって、選択範囲内に全体的に属するストロークのみならず、選択範囲内に部分的に属するストロークをも考慮して、第1処理を実行可能なストロークが存在するか否か、つまり有意なオブジェクト部分が存在するか否かを判定できる。よって、選択範囲が比較的小さい場合であっても、換言すれば選択範囲をある一以上のストローク全体を含むような大きなサイズにまで広げること無く、第1処理を実行可能なストロークが存在するか否かを判定することができる。よって、選択範囲内にある有意な手書きオブジェクト部分が存在するか否かを精度良く判定でき、かつ選択範囲内の有意な手書きオブジェクト部分を効率よく見つけ出すことができる。よって、手書きの表の一部のセルなどに対して効率よく整形等の処理を施すことができる。
なお、本実施形態の処理は、筆記体の文字列のようなストロークに対して適用してもよい。この場合、選択範囲によって指定される複数の第1のストロークの少なくとも一部分に、筆記体の文字列のようなストローク、例えば、認識可能な文字等、があるか否かを判定しても良い。あるいは、筆記体の文字列のようなストロークから選択範囲内に属するストローク部分を選択し、そのストローク部分内に有意な手書きオブジェクト部分、例えば、認識可能な文字等、があるか否かを判定しても良い。
また、図3で説明した手書きの「矢印」のような、選択範囲内に全体的又は部分的に属する全てのストロークの中から他のストロークとの手書きタイミングの関連性が低いと判定されるストローク群(手書きオブジェクト部分)を特定し、このストローク群を除外した状態で整形機能のような機能を実行しても良い。これにより、選択範囲内に所望の手書きオブジェクト部分のみならず、不所望の手書きオブジェクト部分が含まれている場合であっても、意図した整形処理結果を得ることができる。
また、図11、図12の説明では、整形処理の結果をVIEW111に表示したが、整形処理の結果をVIEW110に表示しても良い。この場合、図11のVIEW110においては、「apple」と読むことができる手書き文字列を囲む手書きの4角部分(閉じた形状の部分)が、整形結果(RESULT120)に置き換えられてもよい。
なお、本実施形態の手書き文書に対する各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
また、判定エンジン309の機能、および整形、認識のような機能は、サーバ2によって実行するようにしてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…タブレットコンピュータ、200…時系列情報、301…ペン軌跡表示処理部、302…時系列情報生成部、304…ページ保存処理部、305…ページ取得処理部、306…手書き文書表示処理部、307…機能表示処理部、309…判定エンジン、310…整形処理部。
実施形態によれば、電子機器は、表示処理手段と、処理手段とを具備する。前記表示処理手段は、手書きにより入力された複数のストロークを画面上に表示する。前記処理手段は、前記画面上の選択範囲より指定される複数の第1ストロークに基づいて、前記選択範囲内に第1処理を実行可能な手書きのオブジェクトが存在するか否かを判定する。前記表示処理手段は、前記選択範囲内に前記第1処理を実行可能な手書きのオブジェクトが存在すると判定される場合、前記第1処理が実行可能であることを識別可能に表示する。前記選択範囲に部分的に属する1以上の第2ストロークが存在する場合に、前記複数の第1ストロークは、少なくとも、前記1以上の第2ストロークを含む。
Claims (11)
- 手書きにより入力された複数のストロークを画面上に表示する表示処理手段と、
前記画面上の選択範囲により指定される複数の第1ストロークの少なくとも一部分に第1処理を実行可能なストロークが存在するか否かを判定する判定処理手段と、
前記複数の第1ストロークの少なくとも一部分に前記第1処理を実行可能なストロークが存在すると判定される場合、前記第1処理が実行可能であることをユーザに提示する提示処理手段と
を具備する電子機器。 - 前記判定処理手段は、前記複数の第1ストローク間の位置関係に基づいて、前記複数の第1ストロークの少なくとも一部分に前記第1処理を実行可能なストロークが存在するか否かを判定する請求項1記載の電子機器。
- 前記判定処理手段は、前記選択範囲内において前記複数の第1のストロークが閉形状の手書きオブジェクト部分を形成するか否かに基づいて、前記複数の第1ストロークの少なくとも一部分に前記第1処理を実行可能なストロークが存在するか否かを判定する請求項1記載の電子機器。
- 前記提示処理手段は、前記複数の第1ストロークの少なくとも一部分に前記第1処理を実行可能なストロークが存在すると判定される場合、前記第1処理を実行するための第1の機能が割り当てられる第1のグラフィカルユーザインタフェース部を選択可能状態にする請求項1記載の電子機器。
- 前記提示処理手段は、前記複数の第1ストロークの少なくとも一部分に前記第1処理を実行可能なストロークが存在すると判定される場合、前記複数の第1ストロークの少なくとも一部分に対して適用可能な機能が割り当てられる第1のグラフィカルユーザインタフェース部を前記画面上に表示する請求項1記載の電子機器。
- 前記判定処理手段は、ユーザによって行われる範囲選択操作中に前記判定を繰り返し実行し、
前記提示処理手段は、前記複数の第1ストロークの少なくとも一部分に前記第1処理を実行可能なストロークが存在すると判定される場合、前記第1処理が実行可能であることをユーザに提示する請求項1記載の電子機器。 - 前記選択範囲内において前記複数の第1のストロークが前記第1の処理が実行可能な手書きオブジェクト部分を形成する場合、前記手書きオブジェクト部分を整形して該整形の結果を出力する手書きオブジェクト処理手段をさらに具備する請求項1記載の電子機器。
- 前記手書きオブジェクト処理手段は、さらに、前記手書きオブジェクト部分に含まれる手書き文字を認識して該認識の結果を出力するように構成されている請求項7記載の電子機器。
- 前記手書きオブジェクト処理手段は、前記手書きオブジェクト部分の一部である第1のストローク部分が既に整形された別の手書きオブジェクト部分の一つのストローク部分である場合、前記手書きオブジェクト部分に対応する第1の整形結果であって、前記別の手書きオブジェクト部分の整形結果との間で前記第1のストローク部分の整形結果を共用する第1の整形結果を出力する請求項7記載の電子機器。
- 手書きにより入力された複数のストロークを画面上に表示し、
前記画面上の選択範囲により指定される複数の第1ストロークの少なくとも一部分に第1処理を実行可能なストロークが存在するか否かを判定し、
前記複数の第1ストロークの少なくとも一部分に前記第1処理を実行可能なストロークが存在すると判定される場合、前記第1処理が実行可能であることをユーザに提示する、データ処理方法。 - 手書きにより入力された複数のストロークを画面上に表示する手順と、
前記画面上の選択範囲により指定される複数の第1ストロークの少なくとも一部分に第1処理を実行可能なストロークが存在するか否かを判定する手順と、
前記複数の第1ストロークの少なくとも一部分に前記第1処理を実行可能なストロークが存在すると判定される場合、前記第1処理が実行可能であることをユーザに提示する手順とをコンピュータに実行させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012260101A JP2015038670A (ja) | 2012-11-28 | 2012-11-28 | 電子機器および方法 |
US13/765,226 US20140145928A1 (en) | 2012-11-28 | 2013-02-12 | Electronic apparatus and data processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012260101A JP2015038670A (ja) | 2012-11-28 | 2012-11-28 | 電子機器および方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015038670A true JP2015038670A (ja) | 2015-02-26 |
Family
ID=50772808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012260101A Pending JP2015038670A (ja) | 2012-11-28 | 2012-11-28 | 電子機器および方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140145928A1 (ja) |
JP (1) | JP2015038670A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12014038B2 (en) | 2020-05-08 | 2024-06-18 | Brother Kogyo Kabushiki Kaisha | Storage medium storing editing program and information processing apparatus |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9927971B2 (en) * | 2014-12-05 | 2018-03-27 | Kabushiki Kaisha Toshiba | Electronic apparatus, method and storage medium for generating chart object |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001005599A (ja) * | 1999-06-22 | 2001-01-12 | Sharp Corp | 情報処理装置及び情報処理方法並びに情報処理プログラムを記録した記録媒体 |
JP2006155424A (ja) * | 2004-11-30 | 2006-06-15 | Fujitsu Ltd | 手書き情報入力装置 |
JP2006277092A (ja) * | 2005-03-28 | 2006-10-12 | Fuji Xerox Co Ltd | 文字画像切出装置、文字画像切出方法およびプログラム |
-
2012
- 2012-11-28 JP JP2012260101A patent/JP2015038670A/ja active Pending
-
2013
- 2013-02-12 US US13/765,226 patent/US20140145928A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001005599A (ja) * | 1999-06-22 | 2001-01-12 | Sharp Corp | 情報処理装置及び情報処理方法並びに情報処理プログラムを記録した記録媒体 |
JP2006155424A (ja) * | 2004-11-30 | 2006-06-15 | Fujitsu Ltd | 手書き情報入力装置 |
JP2006277092A (ja) * | 2005-03-28 | 2006-10-12 | Fuji Xerox Co Ltd | 文字画像切出装置、文字画像切出方法およびプログラム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12014038B2 (en) | 2020-05-08 | 2024-06-18 | Brother Kogyo Kabushiki Kaisha | Storage medium storing editing program and information processing apparatus |
Also Published As
Publication number | Publication date |
---|---|
US20140145928A1 (en) | 2014-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5284524B1 (ja) | 電子機器および手書き文書処理方法 | |
JP5458161B1 (ja) | 電子機器および方法 | |
JP5248696B1 (ja) | 電子機器、手書き文書作成方法、及び手書き文書作成プログラム | |
JP5349645B1 (ja) | 電子機器および手書き文書処理方法 | |
JP6189451B2 (ja) | 手書き文書情報を処理するための電子機器および方法 | |
JP6109625B2 (ja) | 電子機器およびデータ処理方法 | |
JP6430197B2 (ja) | 電子機器および方法 | |
JP5395927B2 (ja) | 電子機器および手書き文書検索方法 | |
JP5355769B1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2015162088A (ja) | 電子機器、方法及びプログラム | |
US20150146986A1 (en) | Electronic apparatus, method and storage medium | |
JP2014032632A (ja) | 電子機器、方法、およびプログラム | |
WO2014162604A1 (ja) | 電子機器および手書きデータ処理方法 | |
JPWO2014192126A1 (ja) | 電子機器および手書き入力方法 | |
JP5634617B1 (ja) | 電子機器および処理方法 | |
JPWO2014147719A1 (ja) | 電子機器および手書き文書処理方法 | |
JP6100013B2 (ja) | 電子機器および手書き文書処理方法 | |
JP5377743B1 (ja) | 電子機器および手書き文書処理方法 | |
JPWO2015087379A1 (ja) | 手書き文書情報を処理するための電子機器および方法 | |
WO2014192156A1 (ja) | 電子機器および処理方法 | |
JP5284523B1 (ja) | 情報処理システム、プログラムおよび情報処理システムの処理方法 | |
US20140300629A1 (en) | Electronic device, handwritten document processing method, and storage medium | |
JP2015138494A (ja) | 電子機器および方法 | |
JP5330576B1 (ja) | 情報処理装置および筆跡検索方法 | |
JP2015038670A (ja) | 電子機器および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140318 |