JP6430197B2 - 電子機器および方法 - Google Patents

電子機器および方法 Download PDF

Info

Publication number
JP6430197B2
JP6430197B2 JP2014200230A JP2014200230A JP6430197B2 JP 6430197 B2 JP6430197 B2 JP 6430197B2 JP 2014200230 A JP2014200230 A JP 2014200230A JP 2014200230 A JP2014200230 A JP 2014200230A JP 6430197 B2 JP6430197 B2 JP 6430197B2
Authority
JP
Japan
Prior art keywords
handwritten
cell
cells
stroke
combined
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.)
Active
Application number
JP2014200230A
Other languages
English (en)
Other versions
JP2016071621A (ja
JP2016071621A5 (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
Priority to JP2014200230A priority Critical patent/JP6430197B2/ja
Priority to US14/663,873 priority patent/US20160092728A1/en
Publication of JP2016071621A publication Critical patent/JP2016071621A/ja
Publication of JP2016071621A5 publication Critical patent/JP2016071621A5/ja
Application granted granted Critical
Publication of JP6430197B2 publication Critical patent/JP6430197B2/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/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/04886Interaction 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 by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/412Layout analysis of documents structured with printed lines or input boxes, e.g. business forms or tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Multimedia (AREA)
  • Character Discrimination (AREA)
  • Processing Or Creating Images (AREA)

Description

ここに記載される実施形態は、手書きのための技術に関する。
近年、タブレット、PDA、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
また最近では、文書画像に含まれる表を認識するための表認識技術も開発されている。
特開2008−108114号公報
しかし、従来では、手書きの表の認識結果を活用しやすくするための技術については考慮されていないのが現状である。
本発明の一形態の目的は、手書きの表の認識結果を活用しやすくすることができる電子機器および方法を提供することである。
実施形態によれば、電子機器は、タッチスクリーンディスプレイと、手書きアプリケーションプログラムを実行するプロセッサと、を具備する。前記プロセッサは、前記タッチスクリーンディスプレイ上から入力され、長さが閾値以上で傾きが水平/垂直に近い線分を含むストロークを横罫線/縦罫線と判定し、前記横罫線のストロークと前記縦罫線のストロークが一定以上の割合で交差している領域を手書きの表であると判断し、前記手書きの表の行数、列数、およびセル数を認識し、前記手書きの表内の隣接する複数の列、又は隣接する複数の行の少なくとも一方に跨る領域を結合セルとして変換し、前記手書きの表内の隣接する複数の列、又は隣接する複数の行に跨がらない領域を単一セルとして変換する。
実施形態に係る電子機器の外観を示す例示的な斜視図。 図1の電子機器と外部装置との連携動作を示す例示的な図。 図1の電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書の例を示す図。 図3の手書き文書に対応する時系列情報を説明するための例示的な図。 図1の電子機器の構成を示す例示的なブロック図。 図1の電子機器によって実行される手書きノートアプリケーションプログラムの機能構成を示す例示的なブロック図。 複数の列または複数の行の少なくとも一方に跨がり且つ矩形形状を有する領域を含む手書きの表の例を示す図。 図7の手書きの表に対応するデジタル表オブジェクトの例を示す図。 複数の列または複数の行の少なくとも一方に跨がり且つ非矩形形状を有する領域(L字領域)を含む手書きの表の例を示す図。 L字領域を含むデジタル表オブジェクトの例を示す図。 L字領域を構成する2つの矩形結合セルを含むデジタル表オブジェクトの例を示す図。 L字領域を構成する2つの矩形結合セルを含むデジタル表オブジェクトの別の例を示す図。 手書きの表内のストローク(セル内ストローク)の場所を考慮したL字領域分割方法の例を説明するための図。 手書きの表内のストローク(セル内ストローク)の場所を考慮したL字領域分割方法の他の例を説明するための図。 図1の電子機器によって実行される手書きの表/デジタル表オブジェクト変換処理の手順を示すフローチャート。 手書きの表/デジタル表オブジェクト変換処理内で実行される結合セル分割処理の手順を示すフローチャート。 ワークセルが設定されるL字領域内の位置の例を示す図。 ワークセルが設定されるL字領域内の別の位置の例を示す図。 ワークセルのセル範囲を広げる処理を説明するための図。 ワークセルを結合セルとすることによってL字領域を分割する処理を説明するための図。 L字領域を含むデジタル表オブジェクトの例を示す図。 L字領域を構成する複数の矩形結合セルを含むデジタル表オブジェクトの例を示す図。
以下、実施の形態について図面を参照して説明する。
図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は、パーソナルコンピュータ1のHDDに記録されている任意の1以上の手書き文書を読み出すことすができる(ダウンロード)。タブレットコンピュータ10は、この読み出した手書き文書によって示されるストロークそれぞれをタブレットコンピュータ10のタッチスクリーンディスプレイ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つのストローク(「∧」形状のストローク、「−」形状のストローク)によって表現される。最初に手書きされる「∧」形状のストロークは例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標SD11、SD12、…SD1nが得られる。同様に、次に手書きされる「−」形状のストロークも等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標SD21、SD22、…SD2nが得られる。
手書き文字「B」は、ペン100などを使用して手書きされた2つのストロークによって表現される。手書き文字「C」は、ペン100などを使用して手書きされた1つのストロークによって表現される。手書きの「矢印」は、ペン100などを使用して手書きされた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を含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
各座標データは、対応するストローク上のある1点に対応するX座標およびY座標を示す。例えば、座標データSD11は、「∧」形状のストロークの始点のX座標(X11)およびY座標(Y11)を示す。SD1nは、「∧」形状のストロークの終点のX座標(X1n)およびY座標(Y1n)を示す。
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Tを含んでいてもよい。手書きされた時点は、絶対時間(例えば、年月日時分秒)またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間(例えば、年月日時分秒)をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Tとして付加してもよい。
さらに、各座標データには、筆圧を示す情報(Z)を追加してもよい。
図5は、タブレットコンピュータ10の構成を示す。
タブレットコンピュータ10は、図5に示されるように、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ104、BIOS−ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108、カメラ(Webcam)109等を備える。
CPU101は、タブレットコンピュータ10内の様々なコンポーネントの動作を制御するプロセッサである。プロセッサは処理回路を含む。CPU101は、ストレージデバイスである不揮発性メモリ106から主メモリ103にロードされる各種コンピュータプログラムを実行する。これらプログラムには、オペレーティングシステム(OS)201、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、手書きノートアプリケーションプログラム202が含まれている。この手書きノートアプリケーションプログラム202は、メモをとることが可能なデジタルノートブックアプリケーションである。この手書きノートアプリケーションプログラム202は、手書き文書を作成および表示する機能、手書き文書を編集する機能、および手書き文書を認識する機能等を有している。
また、CPU101は、BIOS−ROM105に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
システムコントローラ102は、CPU101のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ102は、PCI EXPRESS規格のシリアルバスなどを介してグラフィクスコントローラ104との通信を実行する機能も有している。
グラフィクスコントローラ104は、タブレットコンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御するグラフィクスプロセッシングユニットである。グラフィクスコントローラ104は、表示制御回路を含む。手書きノートアプリケーションプログラム202が実行された時、グラフィクスコントローラ104は、手書きノートアプリケーションプログラム202の制御の下、複数のストロークを含む手書き文書をLCD17Aの画面上に表示することができる。このグラフィクスコントローラ104によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて画面イメージを表示する。このLCD17A上にはタッチパネル17Bが配置されている。グラフィクスコントローラ104はCPU101に内蔵されていてもよい。
無線通信デバイス107は、無線LANまたは3G移動通信などの無線通信を実行するように構成されたデバイスである。無線通信デバイス107は、信号を送信するように構成された送信機、および信号を受信するように構成された受信機を含む。
EC108は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。EC108は、ユーザによるパワーボタンの操作に応じてタブレットコンピュータ10を電源オンまたは電源オフする機能を有している。
カメラ(Web cam)109は任意の被写体のイメージ(静止画像、動画像)を取り込むキャプチャデバイスである。タブレットコンピュータ10は、他の入力デバイス(マウス、キーボード等)と通信するため周辺インタフェースも備えていてもよい。
以下、手書きノートアプリケーションプログラム202の幾つかの特徴について説明する。
手書きノートアプリケーションプログラム202は、ペン100によってストロークを描画することができる。手書きノートアプリケーションプログラム202は、タッチ入力モードにおいてはタッチ(指ジェスチャ)またはマウスによってストロークを描画することができる。タッチ入力モードは、指またはマウスによってストロークを描画するモードである。ユーザはタッチ入力モードをオンまたはオフすることができる。
次に、ページ入力/編集機能について説明する。
手書きノートアプリケーションプログラム202は、「選択(範囲選択)」ツールによって、ページ内の任意の手書きオブジェクト(1以上のストローク)またはページ全体を選択することができる。
手書きノートアプリケーションプログラム202は、コピー/カット/ペースト機能をサポートする。これらコピー/カット/ペースト機能はOSのクリップボード機能を使用してもよい。クリップボードはアプリケーションプログラム間でデータを交換するための一時記憶領域である。手書きノートアプリケーションプログラム202は、以下の4種類のコピーを実行することができる。
「コピー」: 手書きノートアプリケーションプログラム202は、選択された手書きオブジェクトをストロークデータとしてクリップボードにコピー(格納)する。ストロークデータは、ストロークに対応する複数の点の座標を含む。ペースト対象アプリケーションは、この手書きノートアプリケーションプログラム202である。
「イメージとしてコピー」: 手書きノートアプリケーションプログラム202は、選択された手書きオブジェクトをイメージ(画像データ)としてクリップボードにコピー(格納)する。イメージはたとえばビットマップである。手書きノートアプリケーションプログラム202は、選択された手書きオブジェクトを画像データに変換し、この画像データをクリップボードにコピー(格納)する。ペースト対象アプリケーションは、画像を扱うアプリケーションである。
「オフィスデータとしてコピー」: 手書きノートアプリケーションプログラム202は、選択された手書きオブジェクト(手書き文字列、手書きの表、手書きの図形、等)をデジタルオブジェクトとしてクリップボードにコピー(格納)する。このデジタルオブジェクトは、フォーマットされたデジタルオブジェクト、つまり他のアプリケーションプログラムが扱うことが可能なファイルフォーマットを有するデータファィル、であってもよい。手書きノートアプリケーションプログラム202は、選択された手書きオブジェクトをデジタルオブジェクトに変換し、このデジタルオブジェクトをフォーマットされたデジタルオブジェクトとしてクリップボードにコピー(格納)する。ペースト対象アプリケーションは、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション等である。
選択された手書きオブジェクトをデジタルオブジェクトに変換する処理は、文字認識、図形認識、表認識を使用して実行される。文字認識は、手書き文字列に対応するストロークの集合を、認識されたテキスト(文字コード)に変換する。図形認識は、手書きの図形に対応するストロークの集合を、図形オブジェクト(デジタル図形オブジェクト)に変換する。表認識は、手書きの表に対応するストロークの集合を、表オブジェクト(デジタル表オブジェクト)に変換する。
手書きノートアプリケーションプログラム202は、インポート/エクスポート機能もまたサポートする。手書きノートアプリケーションプログラム202は、選択された手書きオブジェクト(手書き文字列、手書きの表、手書きの図形、等)に対応するデジタルオブジェクトを他のアプリケーションプログラムに出力することができる(エクスポート)。「オフィスデータとしてコピー」の場合と同様に、選択された手書きオブジェクトをデジタルオブジェクトに変換する処理は、文字認識、図形認識、表認識を使用して実行される。
次に、図6を参照して、手書きノートアプリケーションプログラム202の機能構成について説明する。
手書きノートアプリケーションプログラム202は、手書き文書を扱うための機能実行モジュールとして、手書き入力部300、表示処理部301、ストロークデータ生成部302、ページ保存処理部303、ページ取得処理部304、および処理部305等を含む。
手書きノートアプリケーションプログラム202は、タッチスクリーンディスプレイ17を用いて入力されるストロークデータを使用することによって、手書きページデータの作成、表示、編集等を行う。タッチスクリーンディスプレイ17(タッチパネル17B、デジタイザ17C)は、「タッチ」、「移動(スライド)」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上にペンまたは指が接触したことを示すイベントである。「移動(スライド)」は、画面上にペンまたは指が接触されている間に画面とペンまたは指との間の接触位置が移動されたことを示すイベントである。「リリース」は、画面からペンまたは指が離されたことを示すイベントである。
手書き入力部300は、タッチスクリーンディスプレイ17から「タッチ」または「移動(スライド)」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動(スライド)」イベントにも、移動先の接触位置の座標が含まれている。したがって、手書き入力部300は、タッチスクリーンディスプレイ17から、手書きによって入力されるストロークに対応する座標列を受信することができる。
表示処理部301は、複数のストロークを含む手書きページ(手書き文書)をLCD17Aの画面上に表示する。すなわち、表示処理部301は、手書き入力部300から座標列を受信し、この座標列に基づいて、手書き入力される各ストロークをLCD17Aの画面上に表示する。さらに、表示処理部301は、記憶媒体402から読み出された手書き文書に含まれる各ストロークをLCD17Aの画面上に表示することができる。
ストロークデータ生成部302は、手書き入力部300から上述の座標列を受信し、この座標列に基づいて、図4で詳述したような構造を有する時系列情報を生成する。この場合、時系列情報は作業メモリ401に一時的に格納されてもよい。
ページ保存処理部303は、時系列情報(ストロークデータ)を記憶媒体402に保存する。ページ保存処理部303は、編集中の手書きページを周期的に自動的に記憶媒体402に保存してもよい。手書きノートアプリケーションプログラム202が停止/終了される時、ページ保存処理部303は、編集中の手書きページを自動的に記憶媒体402に保存してもよい。
ページ取得処理部304は、閲覧または編集されるべき手書き文書を記憶媒体402から取得する。
処理部305は、文字認識、図形認識、表認識のような、手書きページに対する様々な機能を実行する。この処理部305は、閲覧/編集中の手書きページに含まれる手書きの表の認識結果を出力するための処理を実行する。手書きの表は、縦横の罫線に対応するストロークの集合によって規定される複数の領域を含む。処理部305は、手書きの表内の複数の領域に対応する複数のセルを含むデジタル表オブジェクトを、手書きの表の認識結果として出力する。
処理部305は、複数の列または複数の行の少なくとも一方に跨がる領域(手書きの結合セル)を含む手書きの表を扱うことができる。この領域は矩形形状の領域であってもよいし、非矩形形状の領域であってもよい。非矩形形状の領域は、通常、「L字領域」または「L字結合セル」と称される。
通常のスプレッドシートアプリケーションは、非矩形形状の結合セル(L字結合セル)をサポートしてない。通常のスプレッドシートアプリケーションは、L字結合セルを作成するためのユーザインタフェースも有していない。しかし、タブレットコンピュータ10においては、ユーザは、任意の構造を有する表を手書きによって自由に描画することができる。このため、手書きの表は、L字領域のような非矩形形状の領域を含む場合がある。
処理対象の手書きの表に含まれる領域(手書きの結合セル)が矩形形状/非矩形形状のどちらであっても、処理部305は、通常のスプレッドシートアプリケーションによって扱うことが可能なデジタル表オブジェクトを、この手書きの表の認識結果として出力することができる。換言すれば、処理部305は、処理対象の手書きの表に含まれる領域(手書きの結合セル)が矩形形状/非矩形形状のどちらであるかに応じて、手書きの表の認識結果として出力されるべき表のオブジェクト(デジタル表オブジェクト)の構造を変更することができる。
この領域(手書きの結合セル)が矩形形状に対応するならば、この領域(手書きの結合セル)に対応するデジタル表オブジェクト内の矩形形状領域は、矩形形状の1つの結合セルから構成される。つまり、デジタル表オブジェクト内の矩形形状領域内の複数のセル(複数の単一セル)は、結合されて上述の矩形形状の一つの結合セルとなる。
一方、この領域(手書きの結合セル)が非矩形形状(例えば、L字形状)に対応するならば、この領域(手書きの結合セル)に対応するデジタル表オブジェクト内の非矩形形状領域は、矩形形状の複数の結合セルから、あるいは矩形形状の1以上の結合セルと1以上の単一セルとの組み合わせから構成される。つまり、デジタル表オブジェクト内の非矩形形状領域の複数のセル(複数の単一セル)は、各々が矩形形状の幾つかの結合セルに分類される。
処理部305は、例えば、表認識部311、結合セル分割部312、および認識結果表示処理部313を含む。
表認識部311は、手書きページ内の手書きの表を認識するための表認識処理を実行する。この表認識処理は、手書き文書内の手書きの表に対応するストロークの集合を複数のセルを含む表のオブジェクト(デジタル表オブジェクト)に変換する。デジタル表オブジェクトは、手書きの表内の領域(セル)の数と同数の複数の領域(セル)を含む。デジタル表オブジェクト内の各セルは、単一セルまたは結合セルから構成される。結合セルは、隣接する複数の列または隣接する複数の行の少なくとも一方に跨がるセルである。
表認識処理では、以下の処理が実行される。
(1)表認識部311は、縦横の罫線に対応するストロークの集合を検出する。換言すれば、表認識部311は、直線に近いストロークを検出し、これらストロークを罫線(罫線ストローク)とする。この場合、表認識部311は、長さが閾値以上で傾きが水平/垂直に近い線分を含むストロークを、罫線ストロークに決定してもよい。例えば、図7の手書きの表の場合には、水平方向に延びるストロークRLS1、RLS2、RLS3、RLS4が4つの横罫線に対応するストローク(横罫線ストローク)として手書きページから検出される。さらに、垂直方向に延びるストロークRLS11、RLS12、RLS13が3つの縦罫線に対応するストローク(縦罫線ストローク)として手書きページから検出される。
(2)表認識部311は、縦横の罫線ストロークが、お互いにある一定以上の割合で交差している領域を、手書きの表であると判断する。
(3)表認識部311は、縦横の罫線ストロークがどのように接続されているかに基づいて、手書きの表の構造(行数、列数、領域(セル))を認識する。例えば、図7の手書きの表においては、RLS11、RLS1、RLS13、RLS4が手書きの表の外周の罫線として扱われる。このため、この手書きの表は、基本的には、行数が3で、列数が2の表として認識される。さらに、縦罫線ストロークRLS12は他の縦罫線ストロークRLS11、RLS13よりも短く、領域21は縦罫線ストロークRLS12によって区切られていない。このことから、領域21は2つの列に跨がる領域(手書きの結合セル)であると認識される。
(4)表認識部311は、手書きの表を、手書きの表内の領域(セル)の数と同数の複数の領域(セル)を含むデジタル表オブジェクトに変換する。手書きの表内の隣接する複数の列または隣接する複数の行の少なくとも一方に跨がる領域(手書きの結合セル)は、デジタル表オブジェクト内の結合セルに変換されてもよい。手書きの表内の隣接する複数の列または隣接する複数の行に跨がらない領域(セル)は、デジタル表オブジェクト内の単一セルに変換されてもよい。
たとえば、図7の手書きの表は、図8に示されるデジタル表オブジェクトに変換される。図7の手書きの表は、2つの列に跨がる矩形形状の領域(手書きの結合セル)21を含んでいる。この領域21は、図8に示されるデジタル表オブジェクト内の矩形形状の領域(結合セル)31に変換される。結合セル31は、横方向に並んだ2つのセルを結合することによって得られる矩形形状の結合セルである。
図7の手書きの表内の他の領域(セル)22、23、24、25は、図8に示されるデジタル表オブジェクト内のセル32、33、34、35にそれぞれ変換される。これらセル32、33、34、35の各々は単一セルから構成される。
このように、手書きの表が、複数の列または複数の行の少なくとも一方に跨がる領域を含み、且つこの領域が矩形形状に対応する場合、例えば、手書きの表が、図7の領域21を含む場合、この手書きの表の認識結果は、この領域に対応するデジタル表オブジェクト内の矩形形状領域が、一つの結合セル(例えば、図8の結合セル31)によって構成されるデジタル表オブジェクトである。
さらに、手書きの表内の各領域内のストローク(セル内ストローク)は、文字認識によって文字列(テキスト)に変換される。テキストは、デジタル表オブジェクト内の対応するセルに割り当てられる。
図9は、L字領域を含む手書きの表を示している。L字領域は、複数の列および複数の行に跨がり且つ非矩形形状に対応する領域である。この手書きの表は、4つの横罫線ストロークRLS21〜RLS24と4つの縦罫線ストロークRLS31〜RLS34とによって規定される5つの領域(セル)41〜45を含む。領域(セル)41は、L字領域である。
図9の手書きの表は、図10に示されるデジタル表オブジェクトに変換されてもよい。図9の手書きの表は、3つの列と3つの行に跨がるL字領域41を含んでいる。この領域41は、図10に示されるデジタル表オブジェクト内のL字領域(L字結合セル)51に変換される。L字結合セル51は、L字領域に含まれる5つのセルを結合することによって得られる非矩形形状の結合セルである。図9の手書きの表内の他の領域(セル)42、43、44、45は、図10に示されるデジタル表オブジェクト内のセル52、53、54、55にそれぞれ変換される。これらセル52、53、54、55の各々は単一セルから構成される。
しかし、図10に示されるデジタル表オブジェクトは通常のスプレッドシートアプリケーションによって正常に表示することができない。図10に示されるデジタル表オブジェクトは、通常のスプレッドシートアプリケーションによって扱うことができないL字結合セル51を含んでいるためである。
そこで、本実施形態では、処理部305は、図9の手書きの表の認識結果として図11に示されるデジタル表オブジェクトを出力する。図11のデジタル表オブジェクトにおいては、手書きの表のL字領域41は、デジタル表オブジェクト内の2つの結合セル51A、51Bに変換される。結合セル51Aは、横方向に並んだ3つのセルを結合することによって得られる矩形形状の結合セルである。結合セル51Bは、縦方向に並んだ2つのセルを結合することによって得られる矩形形状の結合セルである。図9の手書きの表内の他の領域(セル)42、43、44、45は、図11に示されるデジタル表オブジェクト内のセル52、53、54、55にそれぞれ変換される。これらセル52、53、54、55の各々は単一セルから構成される。
このように、手書きの表内のL字領域41に対応するデジタル表オブジェクト内の非矩形形状の領域は、各々が矩形形状の2つの結合セルの組み合わせによって構成される。
図11のデジタル表オブジェクトは、図9の手書きの表から直接的に生成されてもよいし、図10のデジタル表オブジェクト内のL字結合セル51を分割することによって生成されてもよい。
後者の場合は、結合セル分割部312は、非矩形形状の結合セルであるL字結合セル51を、各々が矩形形状の複数のセルに分割する。これら複数のセル(分割セル)は、矩形形状の複数の結合セルのみを含んでいてもよい。あるいは、これら複数のセル(分割セル)は、矩形形状の少なくとも1つの結合セルと、1以上の単一セルとを含んでいてもよい。単一セルも矩形形状のセルの1つである。
たとえば、図10のL字結合セル(非矩形形状の結合セル)51は、結合セル分割部312によって、図11に示されているように、3つの列に跨がる矩形形状の結合セル511Aと、2つの行に跨がる矩形形状の結合セル51Bに分割されてもよい。これにより、デジタル表オブジェクトに含まれる全ての結合セルは矩形形状の結合セルとなる。よって、通常のスプレッドシートアプリケーションが正常に表示および編集可能なデジタル表オブジェクトを得ることができる。
さらに、結合セル分割部312は、分割セル間の境界に非表示属性の罫線を設定してもよい。この場合、たとえば、図11に示されているように、結合セル51Aと結合セル51Bとの間に非表示属性の罫線51Cが設定される。非表示属性の罫線としては、視認できない任意の属性を有する罫線を使用できる。たとえば、非表示属性の罫線は、透明の罫線、または分割セルの背景色と同じ色の罫線であってもよい。分割セル間の境界に非表示属性の罫線を設定することにより、非矩形形状の領域(L字結合セル)を、見た目は、その非矩形形状を維持しながら、各々が矩形形状の複数の結合セルに分割することができる。
なお、図10のL字結合セル51は、図12に示されているように、2つの列に跨がる矩形形状の結合セル51Aと、3つの行に跨がる矩形形状の結合セル51Bに分割されてもよい。
このように、手書きの表が、複数の列または複数の行の少なくとも一方に跨がる領域を含み、且つこの領域が非矩形形状に対応する場合、例えば、手書きの表が、図9の領域41を含む場合、この手書きの表の認識結果は、この領域41に対応するデジタル表オブジェクト内の非矩形形状領域が、各々が矩形形状の複数の結合セル(例えば、図11の結合セル51A、51B)の組み合わせ、または各々が矩形形状の1以上の結合セルと1以上の単一セルとの組み合わせによって構成されるデジタル表オブジェクトとなる。
さらに、手書きの表内の各領域内のストローク(セル内ストローク)は、文字認識によって文字列(テキスト)に変換される。テキストは、デジタル表オブジェクト内の対応するセルに割り当てられる。結合セルにおいては、この結合セル内の文字列(テキスト)は、通常、センタリングされる。
デジタル表オブジェクト内のL字領域を分割するための方法としては、図11に示すように、L字領域内の横方向成分(3つの列に跨がる領域)全体が1つの結合セルとなるように分割する方法と、図12に示すように、L字領域内の縦方向成分(3つの行に跨がる領域)全体が1つの結合セルとなるように分割する方法とがある。
どちらの方法を使用するかは、手書きの表内のストローク(セル内ストローク)の場所に応じて決定してもよい。
換言すれば、本実施形態では、デジタル表オブジェクト内のL字領域内の複数のセルの内、一つの結合セルに結合させるべきセルの集合は、手書きの表のL字領域内に書かれているセル内ストロークの場所に応じて決定されてもよい。簡単に説明すれば、L字領域内の横方向成分にストロークが書かれている場合には、横方向成分に含まれる複数のセルが優先的に1つの結合セルに結合される。一方、L字領域内の縦方向成分にストロークが書かれている場合には、縦方向成分に含まれる複数のセルが優先的に1つの結合セルに結合される。
次に、図13、図14を参照して、手書きの表内のストローク(セル内ストローク)の場所を考慮したL字領域分割方法について説明する。
図13、図14において、列を表す記号C1〜C3および行を表す記号R1、R2は説明のためのものであり、実際に表示されるわけではない。
図13において、手書きの表は、L字領域(L字結合セル)61、2つの矩形領域(セル)62、63を含む。L字領域(L字結合セル)61は、セル(R1,C1)、セル(R1,C2)、セル(R1,C3)、セル(R2,C1)を含む。セル内ストローク(手書き文字列“ABC”)は、セル(R1,C1)、セル(R1,C2)上に書かれている。
この場合、図13の右上に示すように、L字領域61に対応するデジタル表オブジェクト内のL字領域においては、横方向に並ぶ3つのセル、つまりセル(R1,C1)、セル(R1,C2)、セル(R1,C3)、が優先的に一つの結合セルに結合される。これにより、デジタル表オブジェクト内のL字領域は、結合セル71Aと、単一セル71Bとから構成される。結合セル71Aは、セル(R1,C1)とセル(R1,C2)と(R1,C3)とを結合することによって得られる矩形形状の結合セルである。手書きの表の領域62、63は、デジタル表オブジェクト内のセル72、73に変換される。
手書き文字列“ABC”は手書きの表のセル(R1,C1)とセル(R1,C2)に書かれているため、手書き文字列“ABC”の認識結果は、セル(R1,C1)とセル(R1,C2)と(R1,C3)とを結合することによって得られる結合セル71A内に置かれる。この場合、手書き文字列“ABC”の認識結果は結合セル71A内でセンタリングされ、結合セル71Aの中央部に表示される。
図13の右下に示すように、もし、縦方向に並ぶ2つのセルが一つの結合セルに結合され、且つ横方向に並ぶ残りの2つのセルが別の一つの結合セルに結合されたならば、手書き文字列“ABC”が2つに分割されてしまう可能性がある。
つまり、手書き文字“A”は手書きの表のセル(R1,C1)に書かれているため、手書き文字“A”の認識結果は、セル(R1,C1)とセル(R2,C1)とを結合することによって得られる結合セル71Bの中央部に表示される。同様に、手書き文字列“BC”は手書きの表のセル(R1,C2)に書かれているため、手書き文字列“BC”の認識結果は、セル(R1,C2)とセル(R1,C3)とを結合することによって得られる結合セル71Aの中央部に表示される。このため、手書き文字列“ABC”が2つに分割されてしまう。
よって、本実施形態においては、手書きの表のL字領域に書かれているストロークの場所がデジタル表オブジェクト内で水平方向に並んだ幾つかのセルに対応する場合には、少なくともこれら水平方向に並んだ幾つかのセルが優先的に一つの結合セルに結合される。
図14において、手書きの表は、L字領域(L字結合セル)61と、2つの矩形領域(セル)62、63を含む。L字領域(L字結合セル)61は、セル(R1,C1)、セル(R1,C2)、セル(R1,C3)、セル(R2,C1)を含む。セル内ストローク(手書き文字列“ABC”)は、セル(R1,C1)、セル(R2,C1)上に書かれている。
この場合、図14の右上に示すように、L字領域61に対応するデジタル表オブジェクト内のL字領域においては、縦方向に並ぶ2つのセルが優先的に一つの結合セルに結合される。つまり、デジタル表オブジェクト内のL字領域は、結合セル71Aと、結合セル71Bとから構成される。結合セル71Bは、セル(R1,C1)とセル(R2,C1)とを結合することによって得られる。デジタル表オブジェクト内のL字領域の残りの2つのセルは結合されて結合セル71Aとなる。手書きの表の領域62、63は、デジタル表オブジェクト内のセル72、73に変換される。
手書き文字列“ABC”は手書きの表のセル(R1,C1)とセル(R2,C1)に書かれているため、手書き文字列“ABC”の認識結果は、セル(R1,C1)とセル(R2,C1)とを結合することによって得られる結合セル71Bの中央部に表示される。
図14の右下に示すように、もし、横方向に並ぶ3つのセルが一つの結合セルに結合されたならば、手書き文字列“ABC”が2つに分割されてしまう可能性がある。
つまり、手書き文字“A”は手書きの表のセル(R1,C1)に書かれているため、手書き文字“A”の認識結果は、セル(R1,C1)とセル(R1,C2)とセル(R1,C3)と結合することによって得られる結合セル71Aの中央部に表示される。同様に、手書き文字列“BC”は手書きの表のセル(R2,C1)に書かれているため、手書き文字列“BC”の認識結果は、1つのセル(R2,C1)から構成されるセル71Bに表示される。このため、手書き文字列“ABC”が2つに分割されてしまう。
よって、本実施形態においては、手書きの表のL字領域に書かれているストロークの場所がデジタル表オブジェクト内で垂直方向に並んだ幾つかのセルに対応する場合には、少なくともこれら垂直方向に並んだ幾つかのセルが優先的に一つの結合セルに結合される。
図6の認識結果表示処理部313は、手書きの表に対応するデジタル表オブジェクトをLCD17Aの画面上に表示する。認識結果表示処理部313は、デジタル表オブジェクトを表示するために、デジタル表オブジェクトをクリップボードにコピーしてもよい。この場合、デジタル表オブジェクトは、スプレッドシートアプリケーションが扱うことが可能なフォーマットされたデジタル表オブジェクト(データファイル)としてクリップボードにコピーされてもよい。
あるいは、認識結果表示処理部313は、デジタル表オブジェクトを表示するために、スプレッドシートアプリケーションのようなオフィスアプリケーションにデジタル表オブジェクトを出力(エクスボート)してもよい。この場合、デジタル表オブジェクトは、スプレッドシートアプリケーションが扱うことが可能なフォーマットされたデジタル表オブジェクト(データファイル)としてエクスボートされてもよい。
上述の処理部305の表認識に関する機能の全てはまたは一部は、サーバ2によって実行されても良い。
図15のフローチャートは、手書きの表/デジタル表オブジェクト変換処理の手順を示す。
CPU101は、手書きノートアプリケーションプログラム202を実行することによって、以下の処理を行う。
CPU101は、手書き入力されるストロークそれぞれをタッチスクリーンディスプレイ17から受け取る(ステップS201)。CPU101は、グラフィクスコントローラ104と共同して、手書き入力される各ストロークをタッチスクリーンディスプレイ17の画面上に表示するための処理を実行する。これにより、複数のストロークを含む手書き文書(手書きページ)がタッチスクリーンディスプレイ17の画面上に表示される。なお、ストロークを入力するための入力デバイスはタッチスクリーンディスプレイ17に限定されない。たとえば、ストロークを入力するための入力デバイスはカメラ109であってもよい。この場合、ホワイトボードや紙に書かれたストロークの集合のイメージがカメラ109によってキャプチャされてもよい。CPU101は、カメラ109によってキャプチャされたストロークの集合のイメージを手書きページとしてタッチスクリーンディスプレイ17の画面上に表示するための処理を実行してもよい。
手書きページの認識が必要な機能、たとえば、「オフィスデータとしてコピー」、「エクスポート」などが、ユーザによって選択された時、CPU101は、手書きページ内の手書きの表を認識するための表認識処理を行う(ステップS202)。表認識処理では、CPU101は、手書き文書内の縦横の罫線に対応するストローク(罫線ストローク)の集合を検出する。そして、CPU101は、縦横の罫線に対応するストローク(罫線ストローク)の集合に基づいて、手書きの表の構造を認識する。そして、CPU101は、手書きの表を、手書きの表に含まれる複数の領域(セル)と同数の複数の領域(セル)を含むデジタル表オブジェクトに変換する。デジタル表オブジェクト内の各領域(セル)は、単一セルまたは結合セルから構成されてもよい。CPU101は、手書きの表内の隣接する複数の列/行に跨がらない領域(セル)を単一セルとして認識する。そして、手書きの表内の隣接する複数の列/行に跨がらない領域(セル)は、デジタル表オブジェクト内の単一セルに変換される。また、CPU101は、手書きの表内の隣接する複数の列または隣接する複数の行の少なくとも一方に跨がる領域(セル)を、結合セルとして認識する。手書きの表内の隣接する複数の列または隣接する複数の行の少なくとも一方に跨がる領域(セル)は、デジタル表オブジェクト内の結合セルに変換される。
表認識処理では、CPU101は、さらに、文字認識処理によって、各セル内のストロークを認識してもよい。これにより、手書きの表内の各セル内の手書き文字列がテキスト(文字コード)に変換される。テキスト(文字コード)は、デジタル表オブジェクト内の対応するセルに挿入される。
CPU101は、デジタル表オブジェクト内の非矩形形状の領域(非矩形形状の結合セル)を特定するために、デジタル表オブジェクト(表認識結果)内の個々の結合セルを評価する。まず、CPU101は、未評価の結合セルから1つの結合セルを選択する(ステップS203)。CPU101は、選択した結合セルの形状が矩形(長方形)形状または非矩形形状のいずれであるかを判定する(ステップS204)。
選択した結合セルの形状が矩形形状に対応するならば(ステップS204のYES)、CPU101は、全ての結合セルを評価したか否かを判定する(ステップS206)。未評価の結合セルが存在するならば(ステップS206のNO)、CPU101は、ステップ203からの処理を再び実行する。
選択した結合セルの形状が非矩形形状に対応するならば(ステップS204のNO)、CPU101は、選択した結合セルを各々が矩形形状の複数のセル(複数の分割セル)に分割するための結合セル分割処理を実行する(ステップS205)。結合セル分割処理では、選択した結合セルは、基本的には、各々が矩形形状の2以上の結合セルに分割される。しかし、選択した結合セルの形状によっては、この選択した結合セルは、1以上の矩形形状の結合セルと1以上の単一セルとの組み合わせに分割される場合もある。いずれの場合においても、「複数の分割セル」の少なくとも一つは矩形形状の結合セルである。そして、CPU101は、全ての結合セルを評価したか否かを判定する(ステップS206)。未評価の結合セルが存在するならば(ステップS206のNO)、CPU101は、ステップ203からの処理を再び実行する。
全ての結合セルの評価が完了したならば(ステップS206のYES)、CPU101は、グラフィクスコントローラ104と共同して、認識結果(つまり、結合セル分割処理が施されたデジタル表オブジェクト)を、タッチスクリーンディスプレイ17の画面上に表示する(ステップS207)。ステップS207では、CPU101は、スプレッドシートアプリケーションのようなオフィスアプリケーションにデジタル表オブジェクトを出力してもよい。この場合、CPU101は、デジタル表オブジェクトをクリップボードにコピーしてもよい。あるいは、CPU101は、デジタル表オブジェクトをスプレッドシートアプリケーションのようなオフィスアプリケーションに直接的に出力(エクスポート)してもよい。デジタル表オブジェクトは非矩形形状の結合セル(例えば、L字結合セル)を含んでいないので、スプレッドシートアプリケーションのようなオフィスアプリケーションは、デジタル表オブジェクトを正常に表示することができる。
図16のフローチャートは、結合セル分割処理の手順を示す。
以下では、デジタル表オブジェクト内の非矩形形状の領域(非矩形形状の結合セル)内に含まれる個々の単一セルを結合候補セルと称する。CPU101は、非矩形形状の結合セルを矩形形状の幾つかのセル(矩形形状の幾つかの結合セル、または矩形形状の幾つかの結合セルと幾つかの単一セルとの組み合わせ)に分割するために、全ての結合候補セルを評価する。
まず、CPU101は、未評価の結合候補セルから最も左上の1つの結合候補セルをワークセルとして選択する(ステップS301)。最も左の結合候補セルと最も上の結合候補セルとが互いに異なる単一セルである場合には、最も上の結合候補セルが優先して選択されてもよい。非矩形形状の結合セルが図17のような形状を有している場合には、図17に示されるように、最も左上の1つの結合候補セルが最初にワークセル(WS)として選択される。非矩形形状の結合セルが図18のような形状を有している場合には、図18に示されるように、最も上の1つの結合候補セルが最初にワークセル(WS)として選択される。
CPU101は、結合候補セル群の範囲の中で、ワークセルの範囲を右に広げる(ステップS302)。ステップS302では、ワークセルの範囲は、図19に示すように、広げられるところまでいっぱいに広げられる。
CPU101は、結合候補セルの範囲の中で、ワークセルの範囲を下に広げる。この場合、CPU101は、まず、ワークセルの矩形(長方形)が維持されている状態で、ワークセルを下に広げることができるか否かを判定する(ステップS303)。
ワークセルの矩形が維持されている状態で、ワークセルの範囲を下に広げることができるならば(ステップS303のYES)、CPU101は、ワークセルの範囲を下に広げる(ステップS304)。
ワークセルの矩形が維持されている状態で、ワークセルの範囲を下に広げることができないならば(ステップS303のNO)、CPU101は、現在のワークセルの範囲内の全ての単一セルを結合することによって結合セルを生成し、この結合セルとこの結合セルに隣接する他の結合候補セルとの間に非表示の罫線を作る(ステップS305)。これにより、たとえば、図20に示されているように、現在のワークセル(WS)が独立した結合セルとなる。そして、この結合セルと他の結合候補セルとの間の境界に非表示属性の罫線が設定される。
CPU101は、全ての結合候補セルの評価が完了したか否かを判定する(ステップS306)。未評価の結合候補セルが存在するならば(ステップS306のNO)、CPU101は、ステップS301からの処理を再び実行する。
なお、ここでは、最も左の結合候補セルと最も上の結合候補セルとが互いに異なる単一セルである場合には、最も上の結合候補セルを優先して選択する場合を例示したが、最も左の結合候補セルを優先して選択してもよい。またワークセルの範囲を下よりも先に右に広げる例を説明したが、ワークセルの範囲を右よりも先に下に広げてもよい。あるいは、手書き文字列が書かれている場所に応じて、ワークセルの範囲を優先的に広げる方向を決定しても良い。
以上の結合セル分割処理により、デジタル表オブジェクト内の非矩形形状の領域(非矩形形状の結合セル)を、各々が矩形形状の複数の結合セルに分割することができる。さらに非矩形形状の結合セルを分割する時に新たに作成した罫線を非表示属性の罫線とすることで、各々が矩形形状の複数の結合セルを、手書きの表と同様の非矩形形状の結合セルであるかのように表示することができる。
次に、図21、図22を参照して、デジタル表オブジェクト内の非矩形形状の領域に対する結合セル分割処理の例を説明する。
図21は手書きの表の認識結果であるデジタル表オブジェクトの例を示し、図22は結合セル分割処理の結果を示す。ここで、図21のA〜D,1〜6,A1〜D6や、図21、図22のハッチングは説明のための記号であり、実際に表示されるわけではない。
S301において、セルB1がワークセルとして選択される。S302において、ワークセルの範囲が右に広げられる。セルC1,D1がワークセルに追加され、ワークセルの範囲はセルB1,C1,D1を含む。
S303において、ワークセルの範囲を下に広げようとする。しかし、セルC2は結合候補セルでないため、ワークセルの範囲を下に広げるとワークセルの矩形を維持できなくなる。このため、処理はS305へ進む。
S305において、現在のワークセルの範囲(セルB1,C1,D1)が結合セルとなる。この結合セルとこの結合セルに隣接する結合候補セルとの間(ここでは、セルB1とセルB2との間、およびセルD1とセルD2との間)に非表示の罫線(図22の91a、91b)が作られ、この結合セルとこの結合セルに隣接する結合候補セルとが互いに分割される。これにより、図22の結合セル81が得られる。結合セル81に属する結合候補セル以外の結合候補セルはまだ評価していない。
S306において、まだ評価していない結合候補セルがあると判定されるため、処理はS301に戻る。
S301において、セルA2がワークセルとして選択される。S302において、ワークセルの範囲が右に広げられ、ワークセルの範囲はセルA2,B2を含む。
S303において、ワークセルを下に広げても矩形が維持できると判定されるため、処理はS304に進む。
S304において、ワークセルの範囲はセルA2,B2,A3,B3を含む範囲にまで広げられ、そして処理はS303に進む。
S303において、ワークセルを下に広げるとワークセルの矩形が維持できないと判定されるため、処理はS305に進む。
S305において、現在のワークセルの範囲(セルA2,B2,A3,B3)が結合セルとなる。この結合セルとこの結合セルに隣接する結合候補セルとの間(ここでは、セルB3とセルB4との間)に非表示の罫線(図22の92)が作られ、この結合セルとこの結合セルに隣接する結合候補セルとが互いに分割される。これにより、図22の結合セル82が得られる。図22の結合セル81、82に属する結合候補セル以外の結合候補セルはまだ評価していない。
S306において、まだ評価していない結合候補セルがあると判定されるため、処理はS301に戻る。
同様にして、図22の結合セル83,84,85が作成される。S306において、全ての結合候補セルの評価が完了したと判定されるため、処理は終了する。結合セル84と結合セル85との間には非表示の罫線93が作られる。
なお、もし図21においてハッチングで示されている領域がセルA6を含んでいない場合には、ハッチングで示されている領域は、4つの結合セル81、82、83,84と単一セルB6との組み合わせに分割される。
以上説明したように、本実施形態においては、手書きの表が複数の列または複数の行の少なくとも一方に跨がる第1領域を含み、且つこの第1領域が矩形形状に対応する場合には、この手書きの表の認識結果は、手書きの表内の複数の領域に対応する複数のセルを含む第1表のオブジェクトであって、第1領域に対応する第1表のオブジェクト内の矩形形状領域が結合セルによって構成される第1表のオブジェクトである。一方、第1領域がL字形状のような非矩形形状に対応する場合には、この手書きの表の認識結果は、手書きの表内の複数の領域に対応する複数のセルを含む第2表のオブジェクトであって、第1領域に対応する第2表のオブジェクト内の非矩形形状領域が、各々が矩形形状の複数の結合セルの組み合わせ、または各々が矩形形状の1以上の結合セルと1以上の単一セルとの組み合わせによって構成される第2表のオブジェクトである。
よって、複数の列または複数の行の少なくとも一方に跨がる領域(結合セル)を含む手書きの表の表構造に類似した表のオブジェクト(デジタル表オブジェクト)を出力することができる。さらに、手書きの表がL字領域(L字結合セル)を含む場合であっても、L字結合セルを含まない表のオブジェクト(デジタル表オブジェクト)を出力することができる。よって、手書きの表の認識結果(デジタル表オブジェクト)を様々なアプリケーションプログラムで活用することが可能となる。
さらに、デジタル表オブジェクト内の非矩形形状領域内の複数のセルの内、一つの結合セルに結合させるべきセルの集合は、手書きの表の非矩形形状領域内に書かれているストロークの場所に応じて決定される。したがって、手書きの表の非矩形形状領域内に書かれている手書き文字列が、デジタル表オブジェクト内の異なる場所に分散されてしまうという不具合を防止することができる。
なお、本実施形態に記載された様々な機能の各々は、処理回路によって実現されてもよい。処理回路の例には、中央処理装置(CPU)のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム(命令群)を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたCPU以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
また、本実施形態では、タブレットコンピュータを使用する場合を例示して説明したが、本実施形態の各機能は、通常のデスクトップパーソナルコンピュータに適用することもできる。この場合、手書き入力のための入力デバイスであるタブレット等をデスクトップパーソナルコンピュータに接続すれば良い。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (9)

  1. タッチスクリーンディスプレイと、
    手書きアプリケーションプログラムを実行するプロセッサと
    を具備し、
    前記プロセッサは、
    前記タッチスクリーンディスプレイ上から入力され、長さが閾値以上で傾きが水平/垂直に近い線分を含むストロークを横罫線/縦罫線と判定し、
    前記横罫線のストロークと前記縦罫線のストロークが一定以上の割合で交差している領域を手書きの表であると判断し、
    前記手書きの表の行数、列数、およびセル数を認識し、
    前記手書きの表内の隣接する複数の列、又は隣接する複数の行の少なくとも一方に跨る領域を結合セルとして変換し、
    前記手書きの表内の隣接する複数の列、又は隣接する複数の行に跨がらない領域を単一セルとして変換する
    電子機器。
  2. 前記プロセッサは、前記手書きの表が、複数の列および複数の行に跨り、且つ非矩形形状に対応するL字領域であると認識した場合、各々が矩形形状の2つの結合セルの組み合わせとして構成する請求項1記載の電子機器。
  3. 前記2つの結合セル間の境界には、非表示属性の罫線が設定されている請求項記載の電子機器。
  4. 前記プロセッサは、
    前記手書きの表に複数の列および複数の行に跨り、且つ非矩形形状に対応するL字領域を有し、前記L字領域内の横方向に手書きストロークが入力される場合、前記横方向に含まれる複数のセルが優先的に1つの結合セルに結合し、
    前記L字領域内の縦方向に手書きストロークが入力される場合、前記縦方向に含まれる複数のセルが優先的に1つの結合セルに結合する
    請求項記載の電子機器。
  5. タッチスクリーンディスプレイ上から入力され、長さが閾値以上で傾きが水平/垂直に近い線分を含むストロークを横罫線/縦罫線と判定し、
    前記横罫線のストロークと前記縦罫線のストロークが一定以上の割合で交差している領域を手書きの表であると判断し、
    前記手書きの表の行数、列数、およびセル数を認識し、
    前記手書きの表内の隣接する複数の列、又は隣接する複数の行の少なくとも一方に跨る領域を結合セルとして変換し、
    前記手書きの表内の隣接する複数の列、又は隣接する複数の行に跨がらない領域を単一セルとして変換する
    方法。
  6. コンピュータによって実行されるプログラムであって、
    タッチスクリーンディスプレイ上から入力され、長さが閾値以上で傾きが水平/垂直に近い線分を含むストロークを横罫線/縦罫線と判定する手順と、
    前記横罫線のストロークと前記縦罫線のストロークが一定以上の割合で交差している領域を手書きの表であると判断する手順と、
    前記手書きの表の行数、列数、およびセル数を認識する手順と、
    前記手書きの表内の隣接する複数の列、又は隣接する複数の行の少なくとも一方に跨る領域を結合セルとして変換する手順と、
    前記手書きの表内の隣接する複数の列、又は隣接する複数の行に跨がらない領域を単一セルとして変換する手順と、
    を実行させるプログラム。
  7. 前記手書きの表が、複数の列および複数の行に跨り、且つ非矩形形状に対応するL字領域であると認識した場合、各々が矩形形状の2つの結合セルの組み合わせとして構成する請求項記載のプログラム。
  8. 前記2つの結合セル間の境界には、非表示属性の罫線が設定されている請求項記載のプログラム。
  9. 前記手書きの表に複数の列および複数の行に跨り、且つ非矩形形状に対応するL字領域を有し、前記L字領域内の横方向に手書きストロークが入力される場合、前記横方向に含まれる複数のセルが優先的に1つの結合セルに結合する手順と、
    前記L字領域内の縦方向に手書きストロークが入力される場合、前記縦方向に含まれる複数のセルが優先的に1つの結合セルに結合する手順と
    さらに実行させる請求項記載のプログラム。
JP2014200230A 2014-09-30 2014-09-30 電子機器および方法 Active JP6430197B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014200230A JP6430197B2 (ja) 2014-09-30 2014-09-30 電子機器および方法
US14/663,873 US20160092728A1 (en) 2014-09-30 2015-03-20 Electronic device and method for processing handwritten documents

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014200230A JP6430197B2 (ja) 2014-09-30 2014-09-30 電子機器および方法

Publications (3)

Publication Number Publication Date
JP2016071621A JP2016071621A (ja) 2016-05-09
JP2016071621A5 JP2016071621A5 (ja) 2017-11-02
JP6430197B2 true JP6430197B2 (ja) 2018-11-28

Family

ID=55584785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014200230A Active JP6430197B2 (ja) 2014-09-30 2014-09-30 電子機器および方法

Country Status (2)

Country Link
US (1) US20160092728A1 (ja)
JP (1) JP6430197B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3072039B1 (en) * 2013-11-19 2019-08-14 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US11644949B2 (en) * 2016-06-27 2023-05-09 Oracle International Corporation Autotagging a template of a reporting workbook
US10613666B2 (en) * 2016-07-15 2020-04-07 Apple Inc. Content creation using electronic input device on non-electronic surfaces
US10679049B2 (en) * 2017-09-29 2020-06-09 Konica Minolta Laboratory U.S.A., Inc. Identifying hand drawn tables
AU2018206708B2 (en) * 2017-10-06 2021-07-22 Adobe Inc. Project faces
US10761719B2 (en) * 2017-11-09 2020-09-01 Microsoft Technology Licensing, Llc User interface code generation based on free-hand input
KR102054747B1 (ko) * 2018-06-14 2019-12-11 연세대학교 산학협력단 이미지에서 기울어진 사각 영역 인식 방법 및 장치
US11946996B2 (en) 2020-06-30 2024-04-02 Apple, Inc. Ultra-accurate object tracking using radar in multi-object environment
CN112926421B (zh) * 2021-02-07 2024-01-09 杭州睿胜软件有限公司 图像处理方法和装置、电子设备和存储介质
US11614806B1 (en) 2021-05-12 2023-03-28 Apple Inc. Input device with self-mixing interferometry sensors
CN113298082B (zh) * 2021-07-28 2021-11-09 北京猿力未来科技有限公司 听写数据的处理方法、装置、电子设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0863610A (ja) * 1994-08-18 1996-03-08 Mitsubishi Electric Corp 文書処理装置
US6112216A (en) * 1997-12-19 2000-08-29 Microsoft Corporation Method and system for editing a table in a document
US6442575B2 (en) * 1998-06-17 2002-08-27 Microsoft Corporation Method and system for merging cells in a table and for adding an integrated header and a nested table to a table in an electronic document
JP4235286B2 (ja) * 1998-09-11 2009-03-11 キヤノン株式会社 表認識方法及び装置
JP2014127188A (ja) * 2012-12-27 2014-07-07 Toshiba Corp 整形装置及び方法
JP2015049618A (ja) * 2013-08-30 2015-03-16 株式会社東芝 手書き文書処理装置、手書き文書処理方法及び手書き文書処理プログラム

Also Published As

Publication number Publication date
JP2016071621A (ja) 2016-05-09
US20160092728A1 (en) 2016-03-31

Similar Documents

Publication Publication Date Title
JP6430197B2 (ja) 電子機器および方法
JP5248696B1 (ja) 電子機器、手書き文書作成方法、及び手書き文書作成プログラム
JP6189451B2 (ja) 手書き文書情報を処理するための電子機器および方法
US9025879B2 (en) Electronic apparatus and handwritten document processing method
JP6109625B2 (ja) 電子機器およびデータ処理方法
JP5349645B1 (ja) 電子機器および手書き文書処理方法
JP2016071819A (ja) 電子機器および方法
JP2015162088A (ja) 電子機器、方法及びプログラム
US20150146986A1 (en) Electronic apparatus, method and storage medium
US20140129931A1 (en) Electronic apparatus and handwritten document processing method
JP5395927B2 (ja) 電子機器および手書き文書検索方法
JP5925957B2 (ja) 電子機器および手書きデータ処理方法
JP2014032632A (ja) 電子機器、方法、およびプログラム
JP6054547B2 (ja) 手書き文書情報を処理するための電子機器および方法
JP2015049604A (ja) 電子文書を表示するための電子機器および方法
JP6100013B2 (ja) 電子機器および手書き文書処理方法
US9927971B2 (en) Electronic apparatus, method and storage medium for generating chart object
JP5284523B1 (ja) 情報処理システム、プログラムおよび情報処理システムの処理方法
JP2015138494A (ja) 電子機器および方法
JP2014203393A (ja) 電子機器、手書き文書処理方法、及び手書き文書処理プログラム
JP2015032279A (ja) 電子機器、方法、およびプログラム
US20140145928A1 (en) Electronic apparatus and data processing method
JP6465414B6 (ja) 電子機器、方法及びプログラム
JP6202997B2 (ja) 電子機器、方法及びプログラム
JP5355770B1 (ja) 電子機器および手書き文書処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170920

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180926

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: 20181002

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181031

R151 Written notification of patent or utility model registration

Ref document number: 6430197

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