JPWO2015087379A1 - 手書き文書情報を処理するための電子機器および方法 - Google Patents

手書き文書情報を処理するための電子機器および方法 Download PDF

Info

Publication number
JPWO2015087379A1
JPWO2015087379A1 JP2015552216A JP2015552216A JPWO2015087379A1 JP WO2015087379 A1 JPWO2015087379 A1 JP WO2015087379A1 JP 2015552216 A JP2015552216 A JP 2015552216A JP 2015552216 A JP2015552216 A JP 2015552216A JP WO2015087379 A1 JPWO2015087379 A1 JP WO2015087379A1
Authority
JP
Japan
Prior art keywords
stroke
distance
input
screen
handwriting
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.)
Granted
Application number
JP2015552216A
Other languages
English (en)
Other versions
JP6054547B2 (ja
Inventor
小川 岳弘
岳弘 小川
瑠弥子 羽柴
瑠弥子 羽柴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Application granted granted Critical
Publication of JP6054547B2 publication Critical patent/JP6054547B2/ja
Publication of JPWO2015087379A1 publication Critical patent/JPWO2015087379A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction 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/0488Interaction 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/04883Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/171Editing, e.g. inserting or deleting by use of digital ink
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/36Matching; Classification
    • G06V30/387Matching; Classification using human interaction, e.g. selection of the best displayed recognition candidate

Abstract

実施形態によれば、電子機器は、手書きによって入力される第1ストロークに対応する第1ストローク列を、入力可能なストロークの候補として画面上に表示する。第1ストロークが手書きによって入力された後に第2ストロークが手書きによって入力される場合、第1ストローク列の表示の後、電子機器は、前記第1ストロークが表示される第1領域と前記2ストロークが表示される第2領域との間の距離に応じて、前記第1および第2ストロークの組に対応する第2ストローク列、または前記第2ストロークに対応する第3ストローク列のいずれかを、入力可能なストロークの候補として画面上に表示する。

Description

実施形態は、手書き文書情報を処理する技術に関する。
近年、タブレット、PDA、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
また最近では、手書き文字列を扱うことが可能な電子機器も開発されている。
特開2005−25566号公報
しかし、従来では、スムーズな手書き入力操作を実現するための技術については考慮されていないのが現状である。
本発明の一形態の目的は、スムーズな手書き入力操作を実現することができる電子機器および方法を提供することである。
実施形態によれば、電子機器は、表示処理手段と、処理手段とを具備する。前記表示処理手段は、手書きによって入力される第1ストロークを画面上に表示する。前記処理手段は、手書き文書情報から取得される、前記第1ストロークに対応する第1ストローク列を、入力可能なストロークの候補として前記画面上に表示するための処理を実行する。前記第1ストロークの入力の後に第2ストロークが手書きによって入力される場合、前記第1ストローク列の表示の後、前記処理手段は、前記第1ストロークが表示される第1領域と前記2ストロークが表示される第2領域との間の距離に応じて、手書き文書情報から取得される、前記第1ストロークと前記第2ストロークの組に対応する第2ストローク列、または手書き文書情報から取得される、前記第2ストロークに対応する第3ストローク列のいずれかを、入力可能なストロークの候補として前記画面上に表示するための処理を実行する。
図1は実施形態に係る電子機器の外観を示す例示的な斜視図である。 図2は図1の電子機器と外部装置との連携動作を示す例示的な図である。 図3は図1の電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書の例を示す図である。 図4は図1の電子機器によって生成される、図3の手書き文書に対応する時系列情報を説明するための例示的な図である。 図5は図1の電子機器のシステム構成を示す例示的なブロック図である。 図6は図1の電子機器によって実行される手書きノートアプリケーションプログラムの機能構成を示す例示的なブロック図である。 図7は図1の電子機器によって表示される候補ストロークの例を説明するための例示的な図である。 図8は図7の状態においてさらにストロークが入力された場合に図1の電子機器によって新たに表示される候補ストロークの例を説明するための例示的な図である。 図9は図1の電子機器によって実行される手書きストローク補完動作を説明するための例示的な図である。 図10は確定ボタン(キャンセルボタン)がタップされた時に図1の電子機器によって実行される動作を説明するための例示的な図である。 図11は既に入力されているストロークと新たに入力されたストロークとの間の距離が長い場合に図1の電子機器によって実行される動作を説明するための例示的な図である。 図12は既に入力されているストロークと新たに入力されたストロークとの間の距離が短い場合に図1の電子機器によって実行される動作を説明するための例示的な図である。 図13は入力された2つのストローク間の横方向の距離を算出するための動作を説明するための例示的な図である。 図14は入力された2つのストローク間の縦方向の距離を算出するための動作を説明するための例示的な図である。 図15は入力された2つのストローク間の横方向の距離を算出するための別の動作を説明するための例示的な図である。 図16は図1の電子機器によって実行される筆跡補完処理の手順を説明するための例示的なフローチャートである。
以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペン(スタイラス)または指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、この電子機器がタブレットコンピュータ10として実現されている場合を想定する。タブレットコンピュータ10は、タブレットまたはスレートコンピュータとも称される携帯型電子機器である。タブレットコンピュータ10は、図1に示すように、本体11とタッチスクリーンディスプレイ17とを備える。本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わさるように取り付けられている。
タッチスクリーンディスプレイ17には、フラットパネルディスプレイと、センサとが組み込まれている。センサは、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されている。フラットパネルディスプレイは、例えば、液晶表示装置(LCD)であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの2種類のセンサの双方がタッチスクリーンディスプレイ17に組み込まれている場合を想定する。
デジタイザは、例えば、フラットパネルディスプレイの画面の下側に配置される。タッチパネルは、例えば、フラットパネルディスプレイの画面上に配置される。このタッチスクリーンディスプレイ17は、指を使用した画面に対するタッチ操作のみならず、ペン100を使用した画面に対するタッチ操作も検出することができる。ペン100は例えばデジタイザペン(電磁誘導ペン)であってもよい。ユーザは、外部オブジェクト(ペン100又は指)を使用してタッチスクリーンディスプレイ17上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト(ペン100又は指)の動きの軌跡、つまり手書きによって入力されるストロークの軌跡がリアルタイムに描画され、これによって各ストロークの軌跡が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が1ストロークに相当する。手書きされた文字または図表などに対応する多数のストロークの集合、つまり多数の軌跡(筆跡)の集合が手書き文書を構成する。
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係とを示す時系列情報として記憶媒体に保存される。この時系列情報の詳細は図4を参照して後述するが、この時系列情報は、複数のストロークが手書きされた順を示し、且つ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、この時系列情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
タブレットコンピュータ10は、記憶媒体から既存の任意の時系列情報(手書き文書情報)を読み出し、この時系列情報に対応する手書き文書、つまりこの時系列情報によって示される複数のストロークそれぞれに対応する軌跡を画面上に表示することができる。さらに、タブレットコンピュータ10は編集機能を有している。この編集機能は、「消しゴム」ツール、「範囲指定」ツール、および他の各種ツール等を用いたユーザによる編集操作に応じて、表示中の手書き文書内の任意のストロークまたは任意の手書き文字等を削除または移動することができる。さらに、この編集機能は、幾つかの手書き操作の履歴を取り消す機能も含んでいる。
さらに、タブレットコンピュータ10は、筆跡補完(ストローク推薦)機能も有している。この筆跡補完機能は、多くの文字列を手書きによって容易に入力できるようにするために、ユーザの手書き入力操作を補助するための機能である。
図2は、タブレットコンピュータ10と外部装置との連携動作の例を示している。タブレットコンピュータ10は、パーソナルコンピュータ1やクラウドと連携することができる。すなわち、タブレットコンピュータ10は、無線LANなどの無線通信デバイスを備えており、パーソナルコンピュータ1との無線通信を実行することができる。さらに、タブレットコンピュータ10は、インターネット上のサーバ2との通信を実行することもできる。サーバ2はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
パーソナルコンピュータ1はハードディスクドライブ(HDD)のようなストレージデバイスを備えている。タブレットコンピュータ10は、時系列情報(手書き文書)をネットワーク越しにパーソナルコンピュータ1に送信して、パーソナルコンピュータ1のHDDに記録することができる(アップロード)。
これにより、タブレットコンピュータ10内のストレージの容量が少ない場合でも、タブレットコンピュータ10が多数の時系列情報(手書き文書)あるいは大容量の時系列情報(手書き文書)を扱うことが可能となる。
さらに、タブレットコンピュータ10は、パーソナルコンピュータ1のHDDに記録されている任意の1以上の手書き文書を読み出すことすができる(ダウンロード)。タブレットコンピュータ10は、この読み出した手書き文書によって示されるストロークそれぞれの軌跡をタブレットコンピュータ10のタッチスクリーンディスプレイ17の画面に表示することができる。この場合、複数の手書き文書それぞれのページを縮小することによって得られるサムネイルの一覧をタッチスクリーンディスプレイ17の画面上に表示してもよいし、これらサムネイルから選ばれた1ページをタッチスクリーンディスプレイ17の画面上に通常サイズで表示してもよい。
さらに、タブレットコンピュータ10が通信する先はパーソナルコンピュータ1ではなく、上述したように、ストレージサービスなどを提供するクラウド上のサーバ2であってよい。タブレットコンピュータ10は、手書き文書をネットワーク越しにサーバ2に送信して、サーバ2のストレージデバイス2Aに記録することができる(アップロード)。さらに、タブレットコンピュータ10は、サーバ2のストレージデバイス2Aに記録されている任意の手書き文書を読み出すことができる(ダウンロード)。タブレットコンピュータ10は、この読み出した手書き文書によって示されるストロークそれぞれの軌跡をタブレットコンピュータ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、SD22、…SD2nが得られる。
手書き文字「B」は、ペン100などを使用して手書きされた2つのストローク、つまり2つの軌跡によって表現される。手書き文字「C」は、ペン100などを使用して手書きされた1つのストローク、つまり1つの軌跡によって表現される。手書きの「矢印」は、ペン100などを使用して手書きされた手書きされた2つのストローク、つまり2つの軌跡によって表現される。
図4は、図3の手書き文字列に対応する時系列情報200を示している。時系列情報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を含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。すなわち、ペン100の軌跡は等時間間隔でリアルタイムにサンプリングされるので、ストロークの長さが長いほど、あるいはストロークの手書き速度が遅いほど、座標データの数は増加する。
各座標データは、対応する軌跡内のある1点に対応するX座標およびY座標を示す。例えば、座標データSD11は、「∧」形状のストロークの始点のX座標(X11)およびY座標(Y11)を示す。SD1nは、「∧」形状のストロークの終点のX座標(X1n)およびY座標(Y1n)を示す。
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Tを含んでいてもよい。手書きされた時点は、絶対時間(例えば、年月日時分秒)またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間(例えば、年月日時分秒)をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Tとして付加してもよい。
このように、各座標データにタイムスタンプ情報Tが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
さらに、各座標データには、筆圧を示す情報(Z)を追加してもよい。
図4で説明したような構造を有する時系列情報200は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。したがって、この時系列情報200を使用することにより、図3に示すようにたとえ手書き「矢印」の先端部が手書き文字「A」上に重ねてまたは手書き文字「A」に近接して書かれたとしても、手書き文字「A」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。なお、タイムスタンプ情報Tはオプション情報として使用してもよく、各々がタイムスタンプ情報Tを有さない複数のストロークデータを上述の時系列情報として使用しても良い。
さらに、本実施形態では、上述したように、手書き文書は、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の時系列情報200の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
図5は、タブレットコンピュータ10のシステム構成を示す。
タブレットコンピュータ10は、図5に示されるように、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ104、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は、ペン軌跡表示処理部301、時系列情報生成部302、編集処理部303、ページ保存処理部304、ページ取得処理部305、手書き文書表示処理部306、および筆跡補完処理部308等を備える。
手書きノートアプリケーションプログラム202は、タッチスクリーンディスプレイ17を用いて入力されるストロークデータを使用することによって、手書き文書(手書きデータ)の作成、表示、編集等を行う。タッチスクリーンディスプレイ17は、「タッチ」、「移動(スライド)」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動(スライド)」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
ペン軌跡表示処理部301および時系列情報生成部302は、タッチスクリーンディスプレイ17によって発生される「タッチ」または「移動(スライド)」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動(スライド)」イベントにも、移動先の接触位置の座標が含まれている。したがって、ペン軌跡表示処理部301および時系列情報生成部302は、タッチスクリーンディスプレイ17から、接触位置の動きの軌跡に対応する座標列を受信することができる。
ペン軌跡表示処理部301は、手書きによって入力されるストロークをタッチスクリーンディスプレイ17の画面上に表示するように構成された表示処理部として機能する。ペン軌跡表示処理部301は、タッチスクリーンディスプレイ17から座標列を受信する。そして、この座標列に基づいて、ペン軌跡表示処理部301は、ペン100等を使用した手書き入力操作によって入力される複数のストロークをタッチスクリーンディスプレイ17内のLCD17Aの画面上に表示する。
時系列情報生成部302は、タッチスクリーンディスプレイ17から出力される上述の座標列を受信する。この座標列に基づいて、時系列情報生成部302は、上述の複数のストロークに対応する複数のストロークデータ(時系列情報)を生成する。これらストロークデータ、つまり各ストロークの各点に対応する座標および各ストロークのタイムスタンプ情報は作業メモリ401に一時保存してもよい。
ページ保存処理部304は、複数のストロークに対応する複数のストロークデータを含む手書き文書情報を記憶媒体402内の手書きノートデータベース402Aに保存する。記憶媒体402は、上述したように、タブレットコンピュータ10内のストレージデバイス、パーソナルコンピュータ1内のストレージデバイス、サーバ2のストレージデバイスのいずれであってもよい。
ページ取得処理部305は、記憶媒体402から任意の手書き文書情報を読み出す。読み出された手書き文書情報は手書き文書表示処理部306に送られる。手書き文書表示処理部306は、手書き文書情報を解析し、この解析結果に基づいて、手書き文書情報内の複数のストロークデータによって示される複数のストロークの軌跡を画面上に手書きページとして表示する。
編集処理部303は現在表示中の手書き文書(手書きページ)を編集するための処理を実行する。すなわち、編集処理部303は、タッチスクリーンディスプレイ17上でユーザによって行われる編集操作に応じて、表示されている複数のストローク内の1以上のストロークを削除または移動等するための編集処理を実行する。さらに、編集処理部303は、編集処理の結果を表示中の手書き文書に反映するためにこの手書き文書を更新する。
ユーザは、「消しゴム」ツール等を使用して、表示されている複数のストローク内の任意のストロークを削除することができる。また、ユーザは、画面上の任意の部分を丸または四角によって囲むための「範囲指定」ツールを使用して、表示されている手書きページ内の任意の部分を範囲指定することができる。
筆跡補完処理部308は、上述の筆跡補完機能を実行するように構成された処理部である。筆跡補完処理においては、筆跡補完処理部308は、手書きによって入力されるストロークに対応する1以上のストローク列を、過去に入力されたストロークの集合(手書き文書情報)から取得する。そして、筆跡補完処理部308は、取得されたストローク列を、入力可能なストロークの候補(候補ストローク)として画面上に表示するための処理を実行する。
換言すれば、筆跡補完処理部308は、入力されるストロークと手書き文書情報とに基づいて、ユーザが手書きしようとしているストローク列(手書き文字列)を予測する。そして、筆跡補完処理部308は、予測によって得られる幾つかのストローク列を候補ストロークとしてユーザに提示する。
例えば、ストローク(手書き文字列)「a」が手書きによって入力された場合には、手書きの語「add」または「access」のような候補がユーザに提示されてもよい。もしユーザによって手書きの語「access」が選択されたならば、この手書きの語「access」が、入力された手書き文字列となる。よって、ユーザは、手書きの語「access」のストローク列を容易に入力することが出来る。
手書き文書情報に格納される手書き文字列の言語はどのような言語であってもよい。利用可能な言語の例は、英語、日本語、中国語、および他の様々な言語を含む。英語の文字列に関しては、ストローク列(手書き文字列)は、ブロック体の文字列に対応するストローク列であってもよいし、筆記体の文字列に対応するストローク列であってもよい。筆記体で手書きされた単語は1つのストロークから構成される場合がある。したがって、筆跡補完処理において手書き文書情報から取得されるストローク列は、必ずしも複数のストロークを含んでいる必要は無く、一つのストロークであってもよい。
入力されたストロークに対応するストローク列の例には、入力されたストロークに類似するストロークを含む複数のストロークや、入力されたストロークに類似するストローク部分を含む1つのストロークがある。例えば、先頭のストローク(または先頭のストローク部分)が、入力されたストロークに類似しているストローク列が手書き文書情報から取得される。
入力されたストロークに対応するストローク列を手書き文書情報から容易に取得できるようにするために、筆跡補完処理部308は、手書きノートデータベース402Aに格納されているストロークの集合(手書き文書情報)に基づいて、候補ストロークデータベース402Bを作成しても良い。
この候補ストロークデータベース402Bにおいては、例えば、単語のような意味のある文字列単位で、ストローク列(ストロークデータ群)と、このストロークデータ群に対応する文字認識結果(文字列)とが格納されていても良い。
この場合、筆跡補完処理部308は、まず、ユーザによって入力されたストロークを文字認識してもよい。そして、筆跡補完処理部308は、候補ストロークデータベース402Bを参照し、この入力されたストロークの文字認識結果(文字列)に前方一致する文字列を見つけ出す。筆跡補完処理部308は、見つけ出した文字列に対応するストローク列(ストロークデータ群)を、入力されたストロークに対応するストローク列として候補ストロークデータベース402Bから取得する。
あるいは、候補ストロークデータベース402Bにおいては、例えば、単語のような意味のある文字列単位で、ストローク列(ストロークデータ群)と、このストロークデータ群に対応する各ストロークの特徴量とが格納されていても良い。あるストロークの特徴量としては、このストロークの手書き特徴を表すことができる任意の特徴を使用することができる。例えば、特徴量としては、ストロークの形状、ストロークの筆画方向、ストロークの傾斜、等を表す特徴量データを使用しても良い。この場合、筆跡補完処理部308は、入力されたストロークの特徴量に類似する特徴量を有するストローク列を候補ストロークデータベース402Bから取得してもよい。
あるいは、候補ストロークデータベース402Bにおいては、例えば、単語のような意味のある文字列単位で、ストローク列(ストロークデータ群)と、このストロークデータ群に対応する文字認識結果(文字列)と、このストロークデータ群に対応する各ストロークの特徴量とが格納されていても良い。
筆跡補完処理部308は、入力されたストロークと、候補ストロークデータベース402Bとに基づいて、ユーザが入力しようとしているストローク列を予測する。この予測の処理では、筆跡補完処理部308は、入力されたストロークに対応する幾つかのストローク列(手書き文字列等)を候補ストロークデータベース402Bから取得する。そして、筆跡補完処理部308は、これらストローク列を、入力が予測される手書き文字列の候補(候補ストローク)として画面上に表示するための処理を実行する。
図7は、入力されるストロークに対応する候補ストロークの例を示す。
ここでは、編集画面600上で行われる手書き入力操作によって、手書き文字「a」に対応するストローク611が入力された場合が想定されている。編集画面600は、手書き文書(手書きページ)を作成および編集するための画面である。
ストローク611が手書きによって入力された場合、筆跡補完処理部308は、この入力されたストローク611(ここでは手書き文字「a」)に対応する幾つかのストローク列(候補ストローク)を候補ストロークデータベース402Bから取得する。そして、筆跡補完処理部308は、これらストローク列それぞれを編集画面600上の候補ストロークリスト501上に表示する。
入力されたストローク611は「未確定ストローク(または仮ストローク)」として扱われる。「未確定ストローク」は手書きページにまだ反映されていないストロークを意味する。「未確定ストローク」は筆跡補完対象のストロークであり、このストロークに基づき予測される候補ストロークがユーザに提示される。入力されたストローク611が「未確定ストローク(仮ストローク)」であることがユーザに分かるように、ストローク611は、現在選択されているペン色とは異なる色、例えば赤色、で表示されるようにしても良い。図7では、赤色のストロークは破線で図示されている。
図7においては、候補ストロークリスト501上に、4つのストローク列が候補ストロークとして提示された場合が想定されている。ここでは、4つのストローク列は、手書き文字列「ability」、手書き文字列「access」、手書き文字列「adaptor」、手書き文字列「add」を含む。
このように、先頭の手書き文字が「a」で始まる幾つかのストローク列がユーザに提示される。これらストローク列は、過去にユーザによって手書き入力されたストローク列である。
さらに、筆跡補完処理部308は、候補ストロークリスト501の近くに、「キャンセル」ボタン502を表示しても良い。「キャンセル」ボタン502は、入力されたストローク(仮ストローク)を「確定ストローク」にするための確定ボタンとして機能する。「確定ストローク」は、手書きページに反映されたストロークを意味する。「確定ストローク」になったストロークは、筆跡補完の対象から除外される。
図8は、入力されるストロークに対応する候補ストロークの別の例を示す。
ここでは、編集画面600上の手書き入力操作によって、手書き文字「a」に対応するストローク611が入力された後に、手書き文字「p」に対応するストローク612、613がさらに入力された場合が想定されている。この場合、候補ストロークリスト501の内容が更新される。
すなわち、筆跡補完処理部308は、入力されたストローク611、612、613(手書き文字列「ap」)に対応する幾つかのストローク列(候補ストローク)を候補ストロークデータベース402Bから取得する。そして、筆跡補完処理部308は、これらストローク列それぞれを編集画面600上の候補ストロークリスト501上に表示する。
図8では、候補ストロークリスト501上に、4つの手書きストローク列、つまり手書き文字列「application」、手書き文字列「aperture」、手書き文字列「apex」、手書き文字列「apology」が、候補ストロークとして提示された場合が想定されている。
このように、「ap」で始まる幾つかの手書き文字列がユーザに提示される。
ユーザによって候補ストロークリスト501上のある候補ストロークが選択された場合、筆跡補完処理部308は、選択された候補ストロークに対応するストローク列を編集画面600上に表示する。換言すれば、筆跡補完処理部308は、入力された手書きストロークを、選択された候補ストロークに対応するストローク列で補完する。これにより、ユーザは目的の単語の一部を手書きによって入力するだけで、目的の単語を容易に入力することができる。
また、漢字のように複数のストロークから構成される文字に関しては、ユーザは、これら複数のストロークの一部を手書きによって入力するだけで、この文字を入力することができる。
また筆記体の文字列に関しては、ユーザは、この文字列を構成する一つのストロークの先頭の一部分を手書きによって入力するだけで、この筆記体の文字列を入力することができる。
図9は、入力された手書きストロークを補完する動作を示している。
ここでは、候補ストロークリスト501上の手書き文字列「application」が選択された場合が想定されている。手書き文字列「application」がペン100または指によってタップされと、筆跡補完処理部308は、表示処理部(ペン軌跡表示処理部301または手書き文書表示処理部306)と協同して、手書き文字列「application」を編集画面600上に表示するための処理を実行する。この場合、入力されたストローク(図8のストローク611、612、613)は手書き文字列「application」で補完される。換言すれば、換言すれば、表示処理部は、入力されたストローク(図8のストローク611、612、613)の代わりに手書き文字列「application」を編集画面600上に表示する。
そして、手書き文字列「application」は確定ストロークとなり、編集中の手書きページに反映される。つまり、候補ストロークデータベース402Bから取得された「application」のストロークデータ群が手書きページに加えられる。なお、もし手書き文字列「application」が筆記体で記述されたストローク列である場合には、手書き文字列「application」に対応する1個のストロークデータが手書きページに加えられる。
図10は、「キャンセル」ボタン502がタップされた時に実行される動作を示している。
「キャンセル」ボタン502がペン100または指によってタップされと、筆跡補完処理部308は、入力されたストローク(ここでは、ストローク611、612、613)を確定ストロークにする。そして、筆跡補完処理部308は、この入力されたストロークを編集中の手書きページに反映する。この場合、ストローク611、612、613に対応する3つのストロークデータが手書きページに加えられる。また、候補ストロークリスト501は編集画面上から消える。
ストローク611、612、613は、現在選択されているペン色、例えば黒色で表示されても良い。図10では、黒色のストロークは実線で図示されている。
この後、さらに、新たなストロークが手書きによって入力されたならば、筆跡補完処理部308は、新たな筆跡補完処理を開始する。この新たな筆跡補完処理では、筆跡補完処理部308は、この新たに入力されたストロークに対応する幾つかのストローク列を候補ストロークデータベース402Bから取得する。そして、筆跡補完処理部308は、これらストローク列を示す候補ストロークリスト501を編集画面600上に表示する。
手書きによってメモを書いている最中においては、ユーザは、入力された1以上のストローク(1以上の仮ストローク)を確定ストロークにしたいと考える場合がある。例えば、ユーザは、最初の目的の文字列の入力が完了した時に、つまり次の目的の文字列の手書きを開始する前に、最初の目的の文字列を確定ストロークにしたいと考えるかもしれない。このようにすれば、ユーザは、次の目的の文字列に対応する候補ストロークの提示(推薦)を利用できるからである。
この場合、ユーザは「キャンセル」ボタン502をタップすればよい。しかし、手書き入力操作中に「キャンセル」ボタン502のタップのような特別な操作を行わなければならないことは、スムーズな手書き入力を妨げる要因となり得る。
そこで、本実施形態では、筆跡補完処理部308は、連続して入力される2つのストローク間の距離に応じて、以下の「処理A」、「処理B」の2つの処理を選択的に実行するように構成されている。
いま、あるストローク(第1ストローク)が手書きによって入力された後にさらにストローク(第2ストローク)が手書きによって入力された場合を想定する。最初に、第1ストロークの入力に応答して、第1ストロークに対応する候補ストロークが表示される。そして、第2ストロークが手書きによって入力された場合、筆跡補完処理部308は、これら2つのストローク間の距離、つまり第1ストロークと第2ストロークとの間の距離に基づき、「処理A」、「処理B」の2つの処理を選択的に実行する。ここで、ストローク間の距離は、第1ストロークが表示される第1領域と、第2ストロークが表示される第2領域との間の距離に相当する。
処理A: 第1ストロークと第2ストロークとの間の距離がある閾距離(第1距離)以下である場合、筆跡補完処理部308は、第1ストロークと第2ストロークの組に対応する幾つかのストローク列(候補ストローク)を候補ストロークデータベース402Bから取得する。そして、筆跡補完処理部308は、これらストローク列を編集画面600上の候補ストロークリスト501上に表示するための処理を実行する。
処理B: 第1ストロークと第2ストロークとの間の距離が上述の閾距離よりも長い場合、筆跡補完処理部308は、第1ストロークとは無関係に、第2ストロークに対応する幾つかのストローク列(候補ストローク)を候補ストロークデータベース402Bから取得する。そして、筆跡補完処理部308は、これらストローク列を編集画面600上の候補ストロークリスト501上に表示するための処理を実行する。この場合、第1ストロークは確定ストロークとなり、手書きページに反映される。
図11は、既に入力されているストロークと新たに入力されたストロークとの間の距離が閾距離よりも長い場合に筆跡補完処理部308によって実行される動作を示している。
ここでは、手書き文字列「ap」に対応するストローク611,612、613が手書きによって入力された後に、筆記体の手書き文字「l」に対応するストローク614が手書きによって入力された場合が想定されている。この場合、筆跡補完処理部308は、手書き文字列「ap」に対応するストローク列の最後のストロークと手書き文字「l」に対応するストローク614との間の距離が、閾距離よりも長いか否かを判定する。
この距離が閾距離よりも長い場合、筆跡補完処理部308は、ストローク611,612、613とは無関係に、ストローク614に対応する幾つかのストローク列(候補ストローク)を候補ストロークデータベース402Bから取得する。そして、筆跡補完処理部308は、これら候補ストロークを編集画面600上の候補ストロークリスト501上に表示する。
図11においては、候補ストロークリスト501上に、4つの手書きストローク列、つまり手書き文字列「language」、手書き文字列「layer」、手書き文字列「local」、手書き文字列「long」が、候補ストロークとして提示された場合が想定されている。このように、手書き文字列「ap」とは関係なく、先頭の手書き文字が「l」で始まる幾つかの手書き文字列がユーザに提示される。
図12は、既に入力されているストロークと新たに入力されたストロークとの間の距離が閾距離よりも長くない場合に筆跡補完処理部308によって実行される動作を示している。
ここでは、図11と同様に、手書き文字列「ap」に対応するストローク611,612、613が手書きによって入力された後に、手書き文字「l」に対応するストローク614が手書きによって入力された場合が想定されている。この場合、筆跡補完処理部308は、手書き文字列「ap」に対応するストローク列の最後のストロークと手書き文字「l」に対応するストローク614との間の距離が、閾距離よりも長いか否かを判定する。
この距離が閾距離よりも長くない場合、筆跡補完処理部308は、ストローク611,612、613、614に対応する幾つかのストローク列(候補ストローク)を候補ストロークデータベース402Bから取得する。そして、筆跡補完処理部308は、これら候補ストロークを編集画面600上の候補ストロークリスト501上に表示する。
図12においては、候補ストロークリスト501上に、2つの手書きストローク列、つまり手書き文字列「aplenty」、手書き文字列「aplomb」が、候補ストロークとして提示された場合が想定されている。
次に、ストローク間の距離を算出するための方法について説明する。
上述したように、第1ストロークが手書きによって入力された後に第2ストロークが手書きによって入力された場合、第1ストロークが表示される編集画面上の第1領域と第2ストロークが表示される編集画面上の第2領域との間の距離が、これらストローク間の距離に相当する。
第1領域と第2領域との間の距離としては、第1ストロークの終点と第2ストロークの始点との間の距離を使用しても良い。
第1領域と第2領域との間の距離を評価するための閾距離は、画面(ページ)のサイズ(幅、高さ)に応じて定めてもよい。画面(ページ)の幅はこのページの横方向(X方向)の長さであり、ページの高さはこのページの縦方向(Y方向)の長さである。例えば、ページの横方向(X方向)の長さの約半分の距離を、閾距離としてもよい。第1領域と第2領域との間の距離が閾距離(Xth)よりも長いか否かに応じて、上述の処理Aと処理Bが選択的に実行される。
あるいは、閾距離は、第1ストロークの外形のサイズに応じて定められてもよい。例えば、第1ストロークの外形のサイズは、第1ストロークに外接する矩形のサイズであってもよい。この場合、この矩形の幅または高さに応じて閾距離を定めても良い。矩形の幅はこの矩形の横方向(X方向)の長さであり、矩形の高さはこの矩形の縦方向(Y方向)の長さである。例えば、矩形の横方向(X方向)の長さの数倍の値を閾距離としてもよいし、この矩形の縦方向(Y方向)の長さに基づいて閾距離を定めても良い。
あるいは、閾距離は、画面(ページ)のサイズと第1ストロークの外形のサイズとの関係に基づいて定められてもよい。例えば、ページの横方向(X方向)の長さの約半分の距離をデフォルトの閾距離とし、第1ストロークの外形サイズに応じて、このデフォルトの閾距離を増減しても良い。
なお、第1ストロークが、1つの手書き文字を構成する複数のストロークの一つである場合には、この手書き文字の外形のサイズに応じて、閾距離を定めても良い。
さらに、閾距離として、2つの閾距離、つまり第1領域と第2領域との間の横方向の距離に関する閾距離(Xth)と、第1領域と第2領域との間の縦方向の距離に関する閾距離(Yth)とを使用しても良い。この場合、第1領域と第2領域との間の横方向の距離は横方向の閾距離(Xth)と比較され、第1領域と第2領域との間の縦方向の距離は縦方向の閾距離(Yth)と比較される。縦方向の閾距離(Yth)を使用することにより、筆跡補完処理部308は、第1ストロークが手書きされた行と異なる行に第2ストロークが手書きされたか否かを判定することが出来る。
閾距離(Yth)としては、閾距離(Xth)よりも小さい値を使用して良い。この場合、筆跡補完処理部308は、第1ストロークと第2ストロークとの間の横方向の距離が閾距離(Xth)よりも長い場合、または第1ストロークと第2ストロークとの間の縦方向の距離が、閾距離(Xth)よりも短い閾距離(Yth)よりも長い場合に、第1ストロークと第2ストロークとが互いに離されていると判定する。換言すれば、たとえ第1ストロークと第2ストロークとの間の横方向の距離が閾距離(Xth)以下であっても、第1ストロークと第2ストロークとの間の縦方向の距離が閾距離(Yth)よりも長い場合には、第1ストロークと第2ストロークとが互いに離されていると判定される。第1ストロークと第2ストロークとが互いに離されていると判定された場合、筆跡補完処理部308は、第1ストロークとは無関係に、第2ストロークに対応する幾つかのストローク列(候補ストローク)を候補ストロークデータベース402Bから取得し、これら候補ストロークを編集画面600上の候補ストロークリスト501上に表示する。
閾距離(Xth)は、上述した画面(ページ)のサイズ(例えばページの横方向サイズ)または上述した第1ストロークの外形サイズ(第1ストロークに外接する矩形の横方向または縦方向の長さ)の少なくとも一つを用いて決定してもよい。そして、この決定された閾距離(Xth)よりも短い距離を閾距離(Yth)に決定しても良い。
図13は、2つのストローク間の横方向の距離を算出するための動作の例を示している。
ここでは、図11で説明した状況と同様に、手書き文字列「ap」に対応するストローク611,612、613が手書きによって入力された後に、手書き文字「l」に対応するストローク614が手書きによって入力された場合が想定されている。ストローク613とストローク614との間の横方向の距離X1は、手書き文字列「ap」の最後のストロークの終点座標と手書き文字「l」の始点座標との間の差分を算出することによって得られる。より詳しくは、距離X1は、ストローク613の終点のX座標とストローク614の始点のX座標との間の差分の絶対値である。
図14は、2つのストローク間の縦方向の距離を算出するための動作の例を示している。
ストローク613とストローク614との間の横方向の距離Y1は、手書き文字列「ap」の最後のストロークの終点座標と手書き文字「l」の始点座標との間の差分を算出することによって得られる。より詳しくは、距離Y1は、ストローク613の終点のY座標とストローク614の始点のY座標との間の差分の絶対値である。
図15は、2つのストローク間の横方向の距離を算出するための動作の別の例を示している。
ストローク613は手書き文字「p」を構成する2つのストロークの内の一つである。この場合、手書き文字「p」に外接する矩形の中心X座標と手書き文字「l」に外接する矩形の中心X座標との間の差分の絶対値を、ストローク613とストローク614との間の横方向の距離X1として算出しても良い。
さらに、手書き文字「p」に外接する矩形のX方向の長さに基づいて、上述の閾距離(Xth)を定めても良い。
図16のフローチャートは、上述の筆跡補完処理の手順を示す。
ユーザの手書き入力操作によってストロークが入力されると、ペン軌跡表示処理部301は、この入力されたストローク(仮ストローク)を画面上に表示する(ステップS11)。筆跡補完処理部308は、この入力されたストロークに対応するストロークデータを時系列情報生成部302から受信する。
そして、筆跡補完処理部308は、この入力されたストロークに対応するストローク列(候補ストローク)を候補ストロークデータベース402Bから取得する(ステップS12)。このステップS12の処理は、入力されたストローク(仮ストローク)と候補ストロークデータベース402Bとに基づいて、ユーザが入力しようとしている手書きストローク列(手書き文字列)を予測する処理に相当する。そして、筆跡補完処理部308は、候補ストロークの一覧、つまり上述の候補ストロークリスト501を画面上に表示するための処理を実行する(ステップS13)。候補ストロークリスト501には、幾つかの候補ストロークが表示される。
筆跡補完処理部308は、ユーザによってある候補ストローク(ストローク列)が選択されたか否かを判定する(ステップS14)。ユーザによってある候補ストローク(ストローク列)が選択されたならば(ステップS14のYES)、筆跡補完処理部308は、上述の表示処理部と協同して、選択されたストローク列を画面上に表示する(ステップS15)。ステップS15では、表示処理部は、選択されたストローク列を、入力されたストローク(仮ストローク)に代えて表示する。つまり、入力されたストローク(仮ストローク)は、選択されたストローク列に置換される。さらに、選択されたストローク列は確定ストロークとなり、現在作成または編集されている手書きページに反映される。
どの候補ストローク(ストローク列)も選択されずに「キャンセル」ボタン502がユーザによってタップされたならば(ステップS16のYES)、筆跡補完処理部308は、入力されたストローク(仮ストローク)を「確定ストローク列」にする(ステップS17)。ステップS17では、筆跡補完処理部308は、候補ストロークリスト501を画面から消す。
どの候補ストローク(ストローク列)も選択されずに且つ「キャンセル」ボタン502がタップされることなく、ストローク(新仮ストローク)が手書きによってさらに入力されたならば(ステップS18のYES)、筆跡補完処理部308は、ステップS19に進む。そして、ステップS19において、筆跡補完処理部308は、仮ストロークと新仮ストロークとの間の距離を算出する。そして、筆跡補完処理部308は、仮ストロークと新仮ストロークとの間の距離が、閾距離よりも長いか否かを判定する。
仮ストロークと新仮ストロークとの間の距離が閾距離よりも長いならば(ステップS19のYES)、筆跡補完処理部308は、仮ストロークを確定ストロークにする(ステップS20)。ステップS20では、仮ストロークは手書きページに反映される。そして、筆跡補完処理部308は、新仮ストロークに対する新たな筆跡補完処理を開始する(ステップS21)。ステップS21では、筆跡補完処理部308は、新仮ストロークに対応するストローク列(候補ストローク)を候補ストロークデータベース402Bから取得する。そして、筆跡補完処理部308は、候補ストロークの一覧を画面上に表示する。
一方、仮ストロークと新仮ストロークとの間の距離が閾距離よりも長くないならば(ステップS19のNO)、筆跡補完処理部308は、ステップS12に進む。そして、ステップS12において、筆跡補完処理部308は、仮ストロークと新仮ストロークとを含むストローク列に対応するストローク列(候補ストローク)を候補ストロークデータベース402Bから取得する。そして、筆跡補完処理部308は、候補ストロークの一覧を画面上に表示する(ステップS13)。
以上説明したように、本実施形態においては、あるストローク(第1ストローク)が手書きによって入力された場合、第1ストロークに対応する第1ストローク列が、入力可能なストロークの候補(候補ストローク)として画面上に表示される。そして、第1ストロークの入力の後に第2ストロークが手書きによって入力された場合、第1ストローク列の表示の後、第1ストロークと第2ストロークの組に対応する第2ストローク列、または第2ストロークに対応する第3ストローク列のいずれかが、候補ストロークとして画面上に表示される。第2ストローク列または第3ストローク列のいずれが表示されるかは、第1ストロークが表示される第1領域と2ストロークが表示される第2領域との間の距離に応じて自動的に決定される。
したがって、例えば、第2ストロークが第1ストロークの近くに書かれた場合には第1ストロークと第2ストロークの組に対応する第2ストローク列が候補ストロークとしてユーザに提示される。一方、第2ストロークが第1ストロークからある距離を置いた位置に書かれた場合には、第2ストロークに対応する第3ストローク列が候補ストロークとしてユーザに提示される。
よって、ユーザは、手書き入力操作中に「キャンセル」ボタン502をタップするといった特別な操作を行うこと無く、候補ストロークの表示のベースとなるストロークを容易に変更することが出来る。よって、スムーズな手書き入力操作を実現することができる。
なお、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
このコンピュータプログラムがインストールされたコンピュータ内のCPUは上述の筆跡補完処理を実行するように構成されたプロセッサとして機能し得る。このコンピュータ内のGPUはストロークそれぞれを画面上に表示するように構成された表示プロセッサとして機能し得る。
また、本実施形態では、タブレットコンピュータを使用する場合を例示して説明したが、本実施形態の手書き文書処理機能は、通常のデスクトップパーソナルコンピュータに適用することもできる。この場合、手書き入力のための入力デバイスであるタブレット等をデスクトップパーソナルコンピュータに接続すれば良い。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
実施形態によれば、電子機器は、表示処理手段と、処理手段とを具備する。前記表示処理手段は、手書きによって入力される第1ストロークを画面上に表示する。前記処理手段は、手書き文書情報から取得される、前記第1ストロークに対応する第1ストローク列を、入力可能なストロークの候補として前記画面上に表示するための処理を実行する。前記第1ストロークの入力の後に第2ストロークが手書きによって入力される場合、前記第1ストローク列の表示の後、前記処理手段は、前記第1ストロークが表示される第1領域と前記第2ストロークが表示される第2領域との間の距離に応じて、手書き文書情報から取得される、前記第1ストロークと前記第2ストロークの組に対応する第2ストローク列、または手書き文書情報から取得される、前記第2ストロークに対応する第3ストローク列のいずれかを、入力可能なストロークの候補として前記画面上に表示するための処理を実行する。

Claims (15)

  1. 手書きによって入力される第1ストロークを画面上に表示する表示処理手段と、
    手書き文書情報から取得される、前記第1ストロークに対応する第1ストローク列を、入力可能なストロークの候補として前記画面上に表示するための処理を実行する処理手段とを具備し、
    前記第1ストロークの入力の後に第2ストロークが手書きによって入力される場合、前記第1ストローク列の表示の後、前記処理手段は、前記第1ストロークが表示される第1領域と前記2ストロークが表示される第2領域との間の距離に応じて、手書き文書情報から取得される、前記第1ストロークと前記第2ストロークの組に対応する第2ストローク列、または手書き文書情報から取得される、前記第2ストロークに対応する第3ストローク列のいずれかを、入力可能なストロークの候補として前記画面上に表示するための処理を実行する、電子機器。
  2. 前記処理手段は、前記距離が第1距離よりも長い場合に前記第3ストローク列を前記画面上に表示するための処理を実行し、前記距離が前記第1距離よりも長くない場合に前記第2ストローク列を前記画面上に表示するための処理を実行する請求項1記載の電子機器。
  3. 前記処理手段は、前記第1領域と前記第2領域との間の横方向の距離が第1距離よりも長い場合、または前記第1領域と前記第2領域との間の縦方向の距離が、前記第1距離よりも短い第2距離よりも長い場合に、前記第3ストローク列を前記画面上に表示するための処理を実行する請求項1記載の電子機器。
  4. 前記第1距離は、前記画面のサイズまたは前記第1ストロークの外形のサイズの少なくとも一つに応じて定められる請求項2記載の電子機器。
  5. 前記第1ストローク列、前記第2ストローク列、および前記第3ストローク列の各々は、1以上のストロークを含む請求項1記載の電子機器。
  6. 手書きによって入力される第1ストロークを画面上に表示することと、
    手書き文書情報から取得される、前記第1ストロークに対応する第1ストローク列を、入力可能なストロークの候補として前記画面上に表示するための処理を実行することと、
    前記第1ストロークの入力の後に第2ストロークが手書きによって入力される場合、前記第1ストローク列の表示の後、前記第1ストロークが表示される第1領域と前記2ストロークが表示される第2領域との間の距離に応じて、手書き文書情報から取得される、前記第1ストロークと前記第2ストロークの組に対応する第2ストローク列、または手書き文書情報から取得される、前記第2ストロークに対応する第3ストローク列のいずれかを、入力可能なストロークの候補として前記画面上に表示するための処理を実行することとを具備する方法。
  7. 前記第3ストローク列は、前記距離が第1距離よりも長い場合に前記画面上に表示され、前記第2ストローク列は、前記距離が前記第1距離よりも長くない場合に前記画面上に表示される請求項6記載の方法。
  8. 前記第3ストローク列は、前記第1領域と前記第2領域との間の横方向の距離が第1距離よりも長い場合、または前記第1領域と前記第2領域との間の縦方向の距離が、前記第1距離よりも短い第2距離よりも長い場合に前記画面上に表示される請求項6記載の方法。
  9. 前記第1距離は、前記画面のサイズまたは前記第1ストロークの外形のサイズの少なくとも一つに応じて定められる請求項7記載の方法。
  10. 前記第1ストローク列、前記第2ストローク列、および前記第3ストローク列の各々は、1以上のストロークを含む請求項6記載の方法。
  11. コンピュータによって実行されるプログラムであって、前記プログラムは、
    手書きによって入力される第1ストロークを画面上に表示することと、
    手書き文書情報から取得される、前記第1ストロークに対応する第1ストローク列を、入力可能なストロークの候補として前記画面上に表示するための処理を実行することと、
    前記第1ストロークの入力の後に第2ストロークが手書きによって入力される場合、前記第1ストローク列の表示の後、前記第1ストロークが表示される第1領域と前記2ストロークが表示される第2領域との間の距離に応じて、手書き文書情報から取得される、前記第1ストロークと前記第2ストロークの組に対応する第2ストローク列、または手書き文書情報から取得される、前記第2ストロークに対応する第3ストローク列のいずれかを、入力可能なストロークの候補として前記画面上に表示するための処理を実行すること
    の機能を実行するように前記コンピュータを制御するプログラム。
  12. 前記第3ストローク列は、前記距離が第1距離よりも長い場合に前記画面上に表示され、前記第2ストローク列は、前記距離が前記第1距離よりも長くない場合に前記画面上に表示される請求項11記載のプログラム。
  13. 前記第3ストローク列は、前記第1領域と前記第2領域との間の横方向の距離が第1距離よりも長い場合、または前記第1領域と前記第2領域との間の縦方向の距離が、前記第1距離よりも短い第2距離よりも長い場合に前記画面上に表示される請求項11記載のプログラム。
  14. 前記第1距離は、前記画面のサイズまたは前記第1ストロークの外形のサイズの少なくとも一つに応じて定められる請求項12記載のプログラム。
  15. 前記第1ストローク列、前記第2ストローク列、および前記第3ストローク列の各々は、1以上のストロークを含む請求項11記載のプログラム。
JP2015552216A 2013-12-09 2013-12-09 手書き文書情報を処理するための電子機器および方法 Active JP6054547B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/082975 WO2015087379A1 (ja) 2013-12-09 2013-12-09 手書き文書情報を処理するための電子機器および方法

Publications (2)

Publication Number Publication Date
JP6054547B2 JP6054547B2 (ja) 2016-12-27
JPWO2015087379A1 true JPWO2015087379A1 (ja) 2017-03-16

Family

ID=53370728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015552216A Active JP6054547B2 (ja) 2013-12-09 2013-12-09 手書き文書情報を処理するための電子機器および方法

Country Status (3)

Country Link
US (1) US20160139802A1 (ja)
JP (1) JP6054547B2 (ja)
WO (1) WO2015087379A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6430198B2 (ja) * 2014-09-30 2018-11-28 株式会社東芝 電子機器、方法及びプログラム
US10976918B2 (en) 2015-10-19 2021-04-13 Myscript System and method of guiding handwriting diagram input
JP7268479B2 (ja) * 2019-05-21 2023-05-08 株式会社リコー 表示装置、プログラム、表示方法
KR102578884B1 (ko) * 2020-12-18 2023-09-15 (주)알에프캠프 전자 장치, 점유 픽셀 및 비점유 픽셀을 고려하여 드로잉 데이터의 점유 레벨을 수치적으로 산출하는 방법 및 컴퓨터 프로그램
CN117519515A (zh) * 2024-01-05 2024-02-06 深圳市方成教学设备有限公司 一种用于记忆黑板的文字识别方法、装置和记忆黑板

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970599B2 (en) * 2002-07-25 2005-11-29 America Online, Inc. Chinese character handwriting recognition system
JP4312429B2 (ja) * 2002-07-09 2009-08-12 シャープ株式会社 手書き入力装置および方法、手書き入力プログラム、並びに、プログラム記録媒体
JP4393415B2 (ja) * 2005-04-01 2010-01-06 シャープ株式会社 手書き入力装置、手書き入力プログラム、および、プログラム記録媒体
JP4985724B2 (ja) * 2009-07-30 2012-07-25 富士通株式会社 単語認識プログラム、単語認識方法、単語認識装置
JP2013025390A (ja) * 2011-07-15 2013-02-04 Metamoji Corp 手書き入力方法
JP5857634B2 (ja) * 2011-10-31 2016-02-10 富士通株式会社 単語間空白検出装置、単語間空白検出方法及び単語間空白検出用コンピュータプログラム

Also Published As

Publication number Publication date
WO2015087379A1 (ja) 2015-06-18
JP6054547B2 (ja) 2016-12-27
US20160139802A1 (en) 2016-05-19

Similar Documents

Publication Publication Date Title
JP6189451B2 (ja) 手書き文書情報を処理するための電子機器および方法
JP6270565B2 (ja) 電子機器および方法
JP5458161B1 (ja) 電子機器および方法
JP5349645B1 (ja) 電子機器および手書き文書処理方法
JP2016071819A (ja) 電子機器および方法
JP6430197B2 (ja) 電子機器および方法
JP2015162088A (ja) 電子機器、方法及びプログラム
JP6010253B2 (ja) 電子機器、方法およびプログラム
US20150146986A1 (en) Electronic apparatus, method and storage medium
JP5395927B2 (ja) 電子機器および手書き文書検索方法
JP5925957B2 (ja) 電子機器および手書きデータ処理方法
JP5306528B1 (ja) 電子機器および手書き文書処理方法
WO2014147712A1 (ja) 情報処理装置、情報処理方法及びプログラム
JP6054547B2 (ja) 手書き文書情報を処理するための電子機器および方法
JP2014032632A (ja) 電子機器、方法、およびプログラム
JP5284523B1 (ja) 情報処理システム、プログラムおよび情報処理システムの処理方法
US20160147437A1 (en) Electronic device and method for handwriting
JP6342194B2 (ja) 電子機器、方法及びプログラム
JP6039066B2 (ja) 電子機器、手書き文書検索方法およびプログラム
JP6465414B6 (ja) 電子機器、方法及びプログラム
JP6499198B2 (ja) 手書きのための電子機器および方法
JP5355770B1 (ja) 電子機器および手書き文書処理方法
WO2014125654A1 (ja) 電子機器、方法、およびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161011

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161130

R151 Written notification of patent or utility model registration

Ref document number: 6054547

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313121

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350