(57)【特許請求の範囲】
【請求項１】
タッチスクリーンディスプレイと、
手書きアプリケーションプログラムを実行するプロセッサと
を具備し、
前記プロセッサは、
前記タッチスクリーンディスプレイ上から入力され、長さが閾値以上で傾きが水平／垂直に近い線分を含むストロークを横罫線／縦罫線と判定し、
前記横罫線のストロークと前記縦罫線のストロークが一定以上の割合で交差している領域を手書きの表であると判断し、
前記手書きの表の行数、列数、およびセル数を認識し、
前記手書きの表内の隣接する複数の列、又は隣接する複数の行の少なくとも一方に跨る領域を結合セルとして変換し、
前記手書きの表内の隣接する複数の列、又は隣接する複数の行に跨がらない領域を単一セルとして変換する
電子機器。
【請求項２】
前記プロセッサは、前記手書きの表が、複数の列および複数の行に跨り、且つ非矩形形状に対応するＬ字領域であると認識した場合、各々が矩形形状の２つの結合セルの組み合わせとして構成する請求項１記載の電子機器。
【請求項３】
前記２つの結合セル間の境界には、非表示属性の罫線が設定されている請求項２記載の電子機器。
【請求項４】
前記プロセッサは、
前記手書きの表に複数の列および複数の行に跨り、且つ非矩形形状に対応するＬ字領域を有し、前記Ｌ字領域内の横方向に手書きストロークが入力される場合、前記横方向に含まれる複数のセルが優先的に１つの結合セルに結合し、
前記Ｌ字領域内の縦方向に手書きストロークが入力される場合、前記縦方向に含まれる複数のセルが優先的に１つの結合セルに結合する
請求項１記載の電子機器。
【請求項５】
タッチスクリーンディスプレイ上から入力され、長さが閾値以上で傾きが水平／垂直に近い線分を含むストロークを横罫線／縦罫線と判定し、
前記横罫線のストロークと前記縦罫線のストロークが一定以上の割合で交差している領域を手書きの表であると判断し、
前記手書きの表の行数、列数、およびセル数を認識し、
前記手書きの表内の隣接する複数の列、又は隣接する複数の行の少なくとも一方に跨る領域を結合セルとして変換し、
前記手書きの表内の隣接する複数の列、又は隣接する複数の行に跨がらない領域を単一セルとして変換する
方法。
【請求項６】
コンピュータによって実行されるプログラムであって、
タッチスクリーンディスプレイ上から入力され、長さが閾値以上で傾きが水平／垂直に近い線分を含むストロークを横罫線／縦罫線と判定する手順と、
前記横罫線のストロークと前記縦罫線のストロークが一定以上の割合で交差している領域を手書きの表であると判断する手順と、
前記手書きの表の行数、列数、およびセル数を認識する手順と、
前記手書きの表内の隣接する複数の列、又は隣接する複数の行の少なくとも一方に跨る領域を結合セルとして変換する手順と、
前記手書きの表内の隣接する複数の列、又は隣接する複数の行に跨がらない領域を単一セルとして変換する手順と、
を実行させるプログラム。
【請求項７】
前記手書きの表が、複数の列および複数の行に跨り、且つ非矩形形状に対応するＬ字領域であると認識した場合、各々が矩形形状の２つの結合セルの組み合わせとして構成する請求項６記載のプログラム。
【請求項８】
前記２つの結合セル間の境界には、非表示属性の罫線が設定されている請求項７記載のプログラム。
【請求項９】
前記手書きの表に複数の列および複数の行に跨り、且つ非矩形形状に対応するＬ字領域を有し、前記Ｌ字領域内の横方向に手書きストロークが入力される場合、前記横方向に含まれる複数のセルが優先的に１つの結合セルに結合する手順と、
前記Ｌ字領域内の縦方向に手書きストロークが入力される場合、前記縦方向に含まれる複数のセルが優先的に１つの結合セルに結合する手順と、
さらに実行させる請求項６記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに記載される実施形態は、手書きのための技術に関する。
【背景技術】
【０００２】
近年、タブレット、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
【０００３】
また最近では、文書画像に含まれる表を認識するための表認識技術も開発されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１０８１１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来では、手書きの表の認識結果を活用しやすくするための技術については考慮されていないのが現状である。
【０００６】
本発明の一形態の目的は、手書きの表の認識結果を活用しやすくすることができる電子機器および方法を提供することである。
【課題を解決するための手段】
【０００７】
実施形態によれば、電子機器は、タッチスクリーンディスプレイと、手書きアプリケーションプログラムを実行するプロセッサと、を具備する。前記プロセッサは、前記タッチスクリーンディスプレイ上から入力され、長さが閾値以上で傾きが水平／垂直に近い線分を含むストロークを横罫線／縦罫線と判定し、前記横罫線のストロークと前記縦罫線のストロークが一定以上の割合で交差している領域を手書きの表であると判断し、前記手書きの表の行数、列数、およびセル数を認識し、前記手書きの表内の隣接する複数の列、又は隣接する複数の行の少なくとも一方に跨る領域を結合セルとして変換し、前記手書きの表内の隣接する複数の列、又は隣接する複数の行に跨がらない領域を単一セルとして変換する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る電子機器の外観を示す例示的な斜視図。
【図２】図１の電子機器と外部装置との連携動作を示す例示的な図。
【図３】図１の電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書の例を示す図。
【図４】図３の手書き文書に対応する時系列情報を説明するための例示的な図。
【図５】図１の電子機器の構成を示す例示的なブロック図。
【図６】図１の電子機器によって実行される手書きノートアプリケーションプログラムの機能構成を示す例示的なブロック図。
【図７】複数の列または複数の行の少なくとも一方に跨がり且つ矩形形状を有する領域を含む手書きの表の例を示す図。
【図８】図７の手書きの表に対応するデジタル表オブジェクトの例を示す図。
【図９】複数の列または複数の行の少なくとも一方に跨がり且つ非矩形形状を有する領域（Ｌ字領域）を含む手書きの表の例を示す図。
【図１０】Ｌ字領域を含むデジタル表オブジェクトの例を示す図。
【図１１】Ｌ字領域を構成する２つの矩形結合セルを含むデジタル表オブジェクトの例を示す図。
【図１２】Ｌ字領域を構成する２つの矩形結合セルを含むデジタル表オブジェクトの別の例を示す図。
【図１３】手書きの表内のストローク（セル内ストローク）の場所を考慮したＬ字領域分割方法の例を説明するための図。
【図１４】手書きの表内のストローク（セル内ストローク）の場所を考慮したＬ字領域分割方法の他の例を説明するための図。
【図１５】図１の電子機器によって実行される手書きの表／デジタル表オブジェクト変換処理の手順を示すフローチャート。
【図１６】手書きの表／デジタル表オブジェクト変換処理内で実行される結合セル分割処理の手順を示すフローチャート。
【図１７】ワークセルが設定されるＬ字領域内の位置の例を示す図。
【図１８】ワークセルが設定されるＬ字領域内の別の位置の例を示す図。
【図１９】ワークセルのセル範囲を広げる処理を説明するための図。
【図２０】ワークセルを結合セルとすることによってＬ字領域を分割する処理を説明するための図。
【図２１】Ｌ字領域を含むデジタル表オブジェクトの例を示す図。
【図２２】Ｌ字領域を構成する複数の矩形結合セルを含むデジタル表オブジェクトの例を示す図。
【発明を実施するための形態】
【０００９】
以下、実施の形態について図面を参照して説明する。  
図１は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペン（スタイラス）または指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、この電子機器がタブレットコンピュータ１０として実現されている場合を想定する。タブレットコンピュータ１０は、タブレットまたはスレートコンピュータとも称される携帯型電子機器である。タブレットコンピュータ１０は、図１に示すように、本体１１とタッチスクリーンディスプレイ１７とを備える。本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わさるように取り付けられている。
【００１０】
タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、センサとが組み込まれている。センサは、ペンまたは指とフラットパネルディスプレイの画面との間の接触位置を検出する。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、限定されないが、デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を想定する。
【００１１】
デジタイザは、例えば、フラットパネルディスプレイの画面の下側に配置される。タッチパネルは、例えば、フラットパネルディスプレイの画面上に配置される。このタッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。ペン１００の例には、デジタイザペン（電磁誘導ペン）、アクティブペン、パッシブペン等が含まれる。
【００１２】
ユーザは、外部オブジェクト（ペン１００又は指）を使用して、タッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト（ペン１００又は指）の動きの軌跡、つまりストロークがリアルタイムに描画される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が１ストロークに相当する。手書き文字、手書きの表、または手書きの図形などに対応する多数のストロークの集合が手書き文書を構成する。
【００１３】
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係とを示す時系列情報として記憶媒体に保存される。この時系列情報の詳細は図４を参照して後述するが、この時系列情報は、複数のストロークにそれぞれ対応する複数のストロークデータを含む。各ストロークデータは、ある一つのストロークに対応し、このストローク上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
【００１４】
タブレットコンピュータ１０は、記憶媒体から既存の任意の時系列情報を読み出し、この時系列情報に対応する手書き文書、つまりこの時系列情報によって示される複数のストロークを画面上に表示することができる。さらに、タブレットコンピュータ１０は編集機能を有している。この編集機能は、「消しゴム」ツール、「選択（範囲選択）」ツール、および他の各種ツール等によって、表示中の手書き文書内の任意のストロークまたは任意の手書き文字等を削除、コピー、カット、または移動することができる。さらに、この編集機能は、幾つかの手書き操作を取り消す機能、および幾つかの手書き操作をやり直す機能を含んでいる。
【００１５】
さらに、タブレットコンピュータ１０は、手書き文書を認識するための認識機能も有している。この認識機能は、文字認識機能、表認識機能、および図形認識機能を含む。これら認識機能は、手書きのオブジェクト（手書き文字、手書きの表、手書きの図形）をデジタルオブジェクト（デジタルグラフィカルオブジェクト）に変換することを可能にする。デジタルオブジェクトは、フォーマットされたデジタルデータとして出力されてもよい。フォーマットされたデジタルデータは、オフィスアプリケーションのような他のアプリケーションプログラムによって扱うことが可能なファイルフォーマットを有するデータファィルである。
【００１６】
図２は、タブレットコンピュータ１０と外部装置との連携動作の例を示している。タブレットコンピュータ１０は、パーソナルコンピュータ１やクラウドと連携することができる。すなわち、タブレットコンピュータ１０は、無線ＬＡＮなどの無線通信デバイスを備えており、パーソナルコンピュータ１との無線通信を実行することができる。さらに、タブレットコンピュータ１０は、インターネット上のサーバ２との通信を実行することもできる。サーバ２はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
【００１７】
パーソナルコンピュータ１はハードディスクドライブ（ＨＤＤ）のようなストレージデバイスを備えている。タブレットコンピュータ１０は、時系列情報（手書き文書）をネットワーク越しにパーソナルコンピュータ１に送信して、パーソナルコンピュータ１のＨＤＤに記録することができる（アップロード）。
【００１８】
さらに、タブレットコンピュータ１０は、パーソナルコンピュータ１のＨＤＤに記録されている任意の１以上の手書き文書を読み出すことすができる（ダウンロード）。タブレットコンピュータ１０は、この読み出した手書き文書によって示されるストロークそれぞれをタブレットコンピュータ１０のタッチスクリーンディスプレイ１７の画面に表示することができる。
【００１９】
さらに、タブレットコンピュータ１０が通信する先はパーソナルコンピュータ１ではなく、上述したように、ストレージサービスなどを提供するクラウド上のサーバ２であってよい。タブレットコンピュータ１０は、手書き文書をネットワーク越しにサーバ２に送信して、サーバ２のストレージデバイス２Ａに記録することができる（アップロード）。さらに、タブレットコンピュータ１０は、サーバ２のストレージデバイス２Ａに記録されている任意の手書き文書を読み出すことができる（ダウンロード）。タブレットコンピュータ１０は、この読み出した手書き文書によって示されるストロークそれぞれをタブレットコンピュータ１０のタッチスクリーンディスプレイ１７の画面に表示することができる。
【００２０】
このように、本実施形態では、手書き文書が格納される記憶媒体は、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイスのいずれであってもよい。
【００２１】
次に、図３および図４を参照して、ユーザによって手書きされたストロークと手書き文書との関係について説明する。図３は、ペン１００などを使用してタッチスクリーンディスプレイ１７上に手書きされる手書き文字列の例を示している。
【００２２】
手書き文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図３においては、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「Ａ」のすぐ近くに手書きされた場合が想定されている。
【００２３】
手書き文字「Ａ」は、ペン１００などを使用して手書きされる２つのストローク（「∧」形状のストローク、「−」形状のストローク）によって表現される。最初に手書きされる「∧」形状のストロークは例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…ＳＤ１ｎが得られる。同様に、次に手書きされる「−」形状のストロークも等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標ＳＤ２１、ＳＤ２２、…ＳＤ２ｎが得られる。
【００２４】
手書き文字「Ｂ」は、ペン１００などを使用して手書きされた２つのストロークによって表現される。手書き文字「Ｃ」は、ペン１００などを使用して手書きされた１つのストロークによって表現される。手書きの「矢印」は、ペン１００などを使用して手書きされた２つのストロークによって表現される。
【００２５】
図４は、図３の手書き文字列に対応する時系列情報２００を示している。時系列情報２００は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。時系列情報２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べられている。
【００２６】
時系列情報２００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き「矢印」を構成する２つのストロークをそれぞれ示している。
【００２７】
各ストロークデータは、一つのストローク上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストローク上の点それぞれに対応する座標データ系列（時系列座標）、つまりｎ個の座標データＳＤ１１、ＳＤ１２、…ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストローク上の点それぞれに対応する座標データ系列、つまりｎ個の座標データＳＤ２１、ＳＤ２２、…ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
【００２８】
各座標データは、対応するストローク上のある１点に対応するＸ座標およびＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）およびＹ座標（Ｙ１１）を示す。ＳＤ１ｎは、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）およびＹ座標（Ｙ１ｎ）を示す。
【００２９】
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。
【００３０】
さらに、各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。
【００３１】
図５は、タブレットコンピュータ１０の構成を示す。  
タブレットコンピュータ１０は、図５に示されるように、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８、カメラ（Ｗｅｂｃａｍ）１０９等を備える。
【００３２】
ＣＰＵ１０１は、タブレットコンピュータ１０内の様々なコンポーネントの動作を制御するプロセッサである。プロセッサは処理回路を含む。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種コンピュータプログラムを実行する。これらプログラムには、オペレーティングシステム（ＯＳ）２０１、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、手書きノートアプリケーションプログラム２０２が含まれている。この手書きノートアプリケーションプログラム２０２は、メモをとることが可能なデジタルノートブックアプリケーションである。この手書きノートアプリケーションプログラム２０２は、手書き文書を作成および表示する機能、手書き文書を編集する機能、および手書き文書を認識する機能等を有している。
【００３３】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００３４】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００３５】
グラフィクスコントローラ１０４は、タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御するグラフィクスプロセッシングユニットである。グラフィクスコントローラ１０４は、表示制御回路を含む。手書きノートアプリケーションプログラム２０２が実行された時、グラフィクスコントローラ１０４は、手書きノートアプリケーションプログラム２０２の制御の下、複数のストロークを含む手書き文書をＬＣＤ１７Ａの画面上に表示することができる。このグラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。このＬＣＤ１７Ａ上にはタッチパネル１７Ｂが配置されている。グラフィクスコントローラ１０４はＣＰＵ１０１に内蔵されていてもよい。
【００３６】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。無線通信デバイス１０７は、信号を送信するように構成された送信機、および信号を受信するように構成された受信機を含む。
【００３７】
ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じてタブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００３８】
カメラ（Ｗｅｂ  ｃａｍ）１０９は任意の被写体のイメージ（静止画像、動画像）を取り込むキャプチャデバイスである。タブレットコンピュータ１０は、他の入力デバイス（マウス、キーボード等）と通信するため周辺インタフェースも備えていてもよい。
【００３９】
以下、手書きノートアプリケーションプログラム２０２の幾つかの特徴について説明する。
【００４０】
手書きノートアプリケーションプログラム２０２は、ペン１００によってストロークを描画することができる。手書きノートアプリケーションプログラム２０２は、タッチ入力モードにおいてはタッチ（指ジェスチャ）またはマウスによってストロークを描画することができる。タッチ入力モードは、指またはマウスによってストロークを描画するモードである。ユーザはタッチ入力モードをオンまたはオフすることができる。
【００４１】
次に、ページ入力／編集機能について説明する。
【００４２】
手書きノートアプリケーションプログラム２０２は、「選択（範囲選択）」ツールによって、ページ内の任意の手書きオブジェクト（１以上のストローク）またはページ全体を選択することができる。
【００４３】
手書きノートアプリケーションプログラム２０２は、コピー／カット／ペースト機能をサポートする。これらコピー／カット／ペースト機能はＯＳのクリップボード機能を使用してもよい。クリップボードはアプリケーションプログラム間でデータを交換するための一時記憶領域である。手書きノートアプリケーションプログラム２０２は、以下の４種類のコピーを実行することができる。
【００４４】
「コピー」：  手書きノートアプリケーションプログラム２０２は、選択された手書きオブジェクトをストロークデータとしてクリップボードにコピー（格納）する。ストロークデータは、ストロークに対応する複数の点の座標を含む。ペースト対象アプリケーションは、この手書きノートアプリケーションプログラム２０２である。
【００４５】
「イメージとしてコピー」：  手書きノートアプリケーションプログラム２０２は、選択された手書きオブジェクトをイメージ（画像データ）としてクリップボードにコピー（格納）する。イメージはたとえばビットマップである。手書きノートアプリケーションプログラム２０２は、選択された手書きオブジェクトを画像データに変換し、この画像データをクリップボードにコピー（格納）する。ペースト対象アプリケーションは、画像を扱うアプリケーションである。
【００４６】
「オフィスデータとしてコピー」：  手書きノートアプリケーションプログラム２０２は、選択された手書きオブジェクト（手書き文字列、手書きの表、手書きの図形、等）をデジタルオブジェクトとしてクリップボードにコピー（格納）する。このデジタルオブジェクトは、フォーマットされたデジタルオブジェクト、つまり他のアプリケーションプログラムが扱うことが可能なファイルフォーマットを有するデータファィル、であってもよい。手書きノートアプリケーションプログラム２０２は、選択された手書きオブジェクトをデジタルオブジェクトに変換し、このデジタルオブジェクトをフォーマットされたデジタルオブジェクトとしてクリップボードにコピー（格納）する。ペースト対象アプリケーションは、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション等である。
【００４７】
選択された手書きオブジェクトをデジタルオブジェクトに変換する処理は、文字認識、図形認識、表認識を使用して実行される。文字認識は、手書き文字列に対応するストロークの集合を、認識されたテキスト（文字コード）に変換する。図形認識は、手書きの図形に対応するストロークの集合を、図形オブジェクト（デジタル図形オブジェクト）に変換する。表認識は、手書きの表に対応するストロークの集合を、表オブジェクト（デジタル表オブジェクト）に変換する。
【００４８】
手書きノートアプリケーションプログラム２０２は、インポート／エクスポート機能もまたサポートする。手書きノートアプリケーションプログラム２０２は、選択された手書きオブジェクト（手書き文字列、手書きの表、手書きの図形、等）に対応するデジタルオブジェクトを他のアプリケーションプログラムに出力することができる（エクスポート）。「オフィスデータとしてコピー」の場合と同様に、選択された手書きオブジェクトをデジタルオブジェクトに変換する処理は、文字認識、図形認識、表認識を使用して実行される。
【００４９】
次に、図６を参照して、手書きノートアプリケーションプログラム２０２の機能構成について説明する。
【００５０】
手書きノートアプリケーションプログラム２０２は、手書き文書を扱うための機能実行モジュールとして、手書き入力部３００、表示処理部３０１、ストロークデータ生成部３０２、ページ保存処理部３０３、ページ取得処理部３０４、および処理部３０５等を含む。
【００５１】
手書きノートアプリケーションプログラム２０２は、タッチスクリーンディスプレイ１７を用いて入力されるストロークデータを使用することによって、手書きページデータの作成、表示、編集等を行う。タッチスクリーンディスプレイ１７（タッチパネル１７Ｂ、デジタイザ１７Ｃ）は、「タッチ」、「移動（スライド）」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上にペンまたは指が接触したことを示すイベントである。「移動（スライド）」は、画面上にペンまたは指が接触されている間に画面とペンまたは指との間の接触位置が移動されたことを示すイベントである。「リリース」は、画面からペンまたは指が離されたことを示すイベントである。
【００５２】
手書き入力部３００は、タッチスクリーンディスプレイ１７から「タッチ」または「移動（スライド）」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントにも、移動先の接触位置の座標が含まれている。したがって、手書き入力部３００は、タッチスクリーンディスプレイ１７から、手書きによって入力されるストロークに対応する座標列を受信することができる。
【００５３】
表示処理部３０１は、複数のストロークを含む手書きページ（手書き文書）をＬＣＤ１７Ａの画面上に表示する。すなわち、表示処理部３０１は、手書き入力部３００から座標列を受信し、この座標列に基づいて、手書き入力される各ストロークをＬＣＤ１７Ａの画面上に表示する。さらに、表示処理部３０１は、記憶媒体４０２から読み出された手書き文書に含まれる各ストロークをＬＣＤ１７Ａの画面上に表示することができる。
【００５４】
ストロークデータ生成部３０２は、手書き入力部３００から上述の座標列を受信し、この座標列に基づいて、図４で詳述したような構造を有する時系列情報を生成する。この場合、時系列情報は作業メモリ４０１に一時的に格納されてもよい。
【００５５】
ページ保存処理部３０３は、時系列情報（ストロークデータ）を記憶媒体４０２に保存する。ページ保存処理部３０３は、編集中の手書きページを周期的に自動的に記憶媒体４０２に保存してもよい。手書きノートアプリケーションプログラム２０２が停止／終了される時、ページ保存処理部３０３は、編集中の手書きページを自動的に記憶媒体４０２に保存してもよい。
【００５６】
ページ取得処理部３０４は、閲覧または編集されるべき手書き文書を記憶媒体４０２から取得する。
【００５７】
処理部３０５は、文字認識、図形認識、表認識のような、手書きページに対する様々な機能を実行する。この処理部３０５は、閲覧／編集中の手書きページに含まれる手書きの表の認識結果を出力するための処理を実行する。手書きの表は、縦横の罫線に対応するストロークの集合によって規定される複数の領域を含む。処理部３０５は、手書きの表内の複数の領域に対応する複数のセルを含むデジタル表オブジェクトを、手書きの表の認識結果として出力する。
【００５８】
処理部３０５は、複数の列または複数の行の少なくとも一方に跨がる領域（手書きの結合セル）を含む手書きの表を扱うことができる。この領域は矩形形状の領域であってもよいし、非矩形形状の領域であってもよい。非矩形形状の領域は、通常、「Ｌ字領域」または「Ｌ字結合セル」と称される。
【００５９】
通常のスプレッドシートアプリケーションは、非矩形形状の結合セル（Ｌ字結合セル）をサポートしてない。通常のスプレッドシートアプリケーションは、Ｌ字結合セルを作成するためのユーザインタフェースも有していない。しかし、タブレットコンピュータ１０においては、ユーザは、任意の構造を有する表を手書きによって自由に描画することができる。このため、手書きの表は、Ｌ字領域のような非矩形形状の領域を含む場合がある。
【００６０】
処理対象の手書きの表に含まれる領域（手書きの結合セル）が矩形形状／非矩形形状のどちらであっても、処理部３０５は、通常のスプレッドシートアプリケーションによって扱うことが可能なデジタル表オブジェクトを、この手書きの表の認識結果として出力することができる。換言すれば、処理部３０５は、処理対象の手書きの表に含まれる領域（手書きの結合セル）が矩形形状／非矩形形状のどちらであるかに応じて、手書きの表の認識結果として出力されるべき表のオブジェクト（デジタル表オブジェクト）の構造を変更することができる。
【００６１】
この領域（手書きの結合セル）が矩形形状に対応するならば、この領域（手書きの結合セル）に対応するデジタル表オブジェクト内の矩形形状領域は、矩形形状の１つの結合セルから構成される。つまり、デジタル表オブジェクト内の矩形形状領域内の複数のセル（複数の単一セル）は、結合されて上述の矩形形状の一つの結合セルとなる。
【００６２】
一方、この領域（手書きの結合セル）が非矩形形状（例えば、Ｌ字形状）に対応するならば、この領域（手書きの結合セル）に対応するデジタル表オブジェクト内の非矩形形状領域は、矩形形状の複数の結合セルから、あるいは矩形形状の１以上の結合セルと１以上の単一セルとの組み合わせから構成される。つまり、デジタル表オブジェクト内の非矩形形状領域の複数のセル（複数の単一セル）は、各々が矩形形状の幾つかの結合セルに分類される。
【００６３】
処理部３０５は、例えば、表認識部３１１、結合セル分割部３１２、および認識結果表示処理部３１３を含む。
【００６４】
表認識部３１１は、手書きページ内の手書きの表を認識するための表認識処理を実行する。この表認識処理は、手書き文書内の手書きの表に対応するストロークの集合を複数のセルを含む表のオブジェクト（デジタル表オブジェクト）に変換する。デジタル表オブジェクトは、手書きの表内の領域（セル）の数と同数の複数の領域（セル）を含む。デジタル表オブジェクト内の各セルは、単一セルまたは結合セルから構成される。結合セルは、隣接する複数の列または隣接する複数の行の少なくとも一方に跨がるセルである。
【００６５】
表認識処理では、以下の処理が実行される。
【００６６】
（１）表認識部３１１は、縦横の罫線に対応するストロークの集合を検出する。換言すれば、表認識部３１１は、直線に近いストロークを検出し、これらストロークを罫線（罫線ストローク）とする。この場合、表認識部３１１は、長さが閾値以上で傾きが水平／垂直に近い線分を含むストロークを、罫線ストロークに決定してもよい。例えば、図７の手書きの表の場合には、水平方向に延びるストロークＲＬＳ１、ＲＬＳ２、ＲＬＳ３、ＲＬＳ４が４つの横罫線に対応するストローク（横罫線ストローク）として手書きページから検出される。さらに、垂直方向に延びるストロークＲＬＳ１１、ＲＬＳ１２、ＲＬＳ１３が３つの縦罫線に対応するストローク（縦罫線ストローク）として手書きページから検出される。
【００６７】
（２）表認識部３１１は、縦横の罫線ストロークが、お互いにある一定以上の割合で交差している領域を、手書きの表であると判断する。
【００６８】
（３）表認識部３１１は、縦横の罫線ストロークがどのように接続されているかに基づいて、手書きの表の構造（行数、列数、領域（セル））を認識する。例えば、図７の手書きの表においては、ＲＬＳ１１、ＲＬＳ１、ＲＬＳ１３、ＲＬＳ４が手書きの表の外周の罫線として扱われる。このため、この手書きの表は、基本的には、行数が３で、列数が２の表として認識される。さらに、縦罫線ストロークＲＬＳ１２は他の縦罫線ストロークＲＬＳ１１、ＲＬＳ１３よりも短く、領域２１は縦罫線ストロークＲＬＳ１２によって区切られていない。このことから、領域２１は２つの列に跨がる領域（手書きの結合セル）であると認識される。
【００６９】
（４）表認識部３１１は、手書きの表を、手書きの表内の領域（セル）の数と同数の複数の領域（セル）を含むデジタル表オブジェクトに変換する。手書きの表内の隣接する複数の列または隣接する複数の行の少なくとも一方に跨がる領域（手書きの結合セル）は、デジタル表オブジェクト内の結合セルに変換されてもよい。手書きの表内の隣接する複数の列または隣接する複数の行に跨がらない領域（セル）は、デジタル表オブジェクト内の単一セルに変換されてもよい。
【００７０】
たとえば、図７の手書きの表は、図８に示されるデジタル表オブジェクトに変換される。図７の手書きの表は、２つの列に跨がる矩形形状の領域（手書きの結合セル）２１を含んでいる。この領域２１は、図８に示されるデジタル表オブジェクト内の矩形形状の領域（結合セル）３１に変換される。結合セル３１は、横方向に並んだ２つのセルを結合することによって得られる矩形形状の結合セルである。
【００７１】
図７の手書きの表内の他の領域（セル）２２、２３、２４、２５は、図８に示されるデジタル表オブジェクト内のセル３２、３３、３４、３５にそれぞれ変換される。これらセル３２、３３、３４、３５の各々は単一セルから構成される。
【００７２】
このように、手書きの表が、複数の列または複数の行の少なくとも一方に跨がる領域を含み、且つこの領域が矩形形状に対応する場合、例えば、手書きの表が、図７の領域２１を含む場合、この手書きの表の認識結果は、この領域に対応するデジタル表オブジェクト内の矩形形状領域が、一つの結合セル（例えば、図８の結合セル３１）によって構成されるデジタル表オブジェクトである。
【００７３】
さらに、手書きの表内の各領域内のストローク（セル内ストローク）は、文字認識によって文字列（テキスト）に変換される。テキストは、デジタル表オブジェクト内の対応するセルに割り当てられる。
【００７４】
図９は、Ｌ字領域を含む手書きの表を示している。Ｌ字領域は、複数の列および複数の行に跨がり且つ非矩形形状に対応する領域である。この手書きの表は、４つの横罫線ストロークＲＬＳ２１〜ＲＬＳ２４と４つの縦罫線ストロークＲＬＳ３１〜ＲＬＳ３４とによって規定される５つの領域（セル）４１〜４５を含む。領域（セル）４１は、Ｌ字領域である。
【００７５】
図９の手書きの表は、図１０に示されるデジタル表オブジェクトに変換されてもよい。図９の手書きの表は、３つの列と３つの行に跨がるＬ字領域４１を含んでいる。この領域４１は、図１０に示されるデジタル表オブジェクト内のＬ字領域（Ｌ字結合セル）５１に変換される。Ｌ字結合セル５１は、Ｌ字領域に含まれる５つのセルを結合することによって得られる非矩形形状の結合セルである。図９の手書きの表内の他の領域（セル）４２、４３、４４、４５は、図１０に示されるデジタル表オブジェクト内のセル５２、５３、５４、５５にそれぞれ変換される。これらセル５２、５３、５４、５５の各々は単一セルから構成される。
【００７６】
しかし、図１０に示されるデジタル表オブジェクトは通常のスプレッドシートアプリケーションによって正常に表示することができない。図１０に示されるデジタル表オブジェクトは、通常のスプレッドシートアプリケーションによって扱うことができないＬ字結合セル５１を含んでいるためである。
【００７７】
そこで、本実施形態では、処理部３０５は、図９の手書きの表の認識結果として図１１に示されるデジタル表オブジェクトを出力する。図１１のデジタル表オブジェクトにおいては、手書きの表のＬ字領域４１は、デジタル表オブジェクト内の２つの結合セル５１Ａ、５１Ｂに変換される。結合セル５１Ａは、横方向に並んだ３つのセルを結合することによって得られる矩形形状の結合セルである。結合セル５１Ｂは、縦方向に並んだ２つのセルを結合することによって得られる矩形形状の結合セルである。図９の手書きの表内の他の領域（セル）４２、４３、４４、４５は、図１１に示されるデジタル表オブジェクト内のセル５２、５３、５４、５５にそれぞれ変換される。これらセル５２、５３、５４、５５の各々は単一セルから構成される。
【００７８】
このように、手書きの表内のＬ字領域４１に対応するデジタル表オブジェクト内の非矩形形状の領域は、各々が矩形形状の２つの結合セルの組み合わせによって構成される。
【００７９】
図１１のデジタル表オブジェクトは、図９の手書きの表から直接的に生成されてもよいし、図１０のデジタル表オブジェクト内のＬ字結合セル５１を分割することによって生成されてもよい。
【００８０】
後者の場合は、結合セル分割部３１２は、非矩形形状の結合セルであるＬ字結合セル５１を、各々が矩形形状の複数のセルに分割する。これら複数のセル（分割セル）は、矩形形状の複数の結合セルのみを含んでいてもよい。あるいは、これら複数のセル（分割セル）は、矩形形状の少なくとも１つの結合セルと、１以上の単一セルとを含んでいてもよい。単一セルも矩形形状のセルの１つである。
【００８１】
たとえば、図１０のＬ字結合セル（非矩形形状の結合セル）５１は、結合セル分割部３１２によって、図１１に示されているように、３つの列に跨がる矩形形状の結合セル５１１Ａと、２つの行に跨がる矩形形状の結合セル５１Ｂに分割されてもよい。これにより、デジタル表オブジェクトに含まれる全ての結合セルは矩形形状の結合セルとなる。よって、通常のスプレッドシートアプリケーションが正常に表示および編集可能なデジタル表オブジェクトを得ることができる。
【００８２】
さらに、結合セル分割部３１２は、分割セル間の境界に非表示属性の罫線を設定してもよい。この場合、たとえば、図１１に示されているように、結合セル５１Ａと結合セル５１Ｂとの間に非表示属性の罫線５１Ｃが設定される。非表示属性の罫線としては、視認できない任意の属性を有する罫線を使用できる。たとえば、非表示属性の罫線は、透明の罫線、または分割セルの背景色と同じ色の罫線であってもよい。分割セル間の境界に非表示属性の罫線を設定することにより、非矩形形状の領域（Ｌ字結合セル）を、見た目は、その非矩形形状を維持しながら、各々が矩形形状の複数の結合セルに分割することができる。
【００８３】
なお、図１０のＬ字結合セル５１は、図１２に示されているように、２つの列に跨がる矩形形状の結合セル５１Ａと、３つの行に跨がる矩形形状の結合セル５１Ｂに分割されてもよい。
【００８４】
このように、手書きの表が、複数の列または複数の行の少なくとも一方に跨がる領域を含み、且つこの領域が非矩形形状に対応する場合、例えば、手書きの表が、図９の領域４１を含む場合、この手書きの表の認識結果は、この領域４１に対応するデジタル表オブジェクト内の非矩形形状領域が、各々が矩形形状の複数の結合セル（例えば、図１１の結合セル５１Ａ、５１Ｂ）の組み合わせ、または各々が矩形形状の１以上の結合セルと１以上の単一セルとの組み合わせによって構成されるデジタル表オブジェクトとなる。
【００８５】
さらに、手書きの表内の各領域内のストローク（セル内ストローク）は、文字認識によって文字列（テキスト）に変換される。テキストは、デジタル表オブジェクト内の対応するセルに割り当てられる。結合セルにおいては、この結合セル内の文字列（テキスト）は、通常、センタリングされる。
【００８６】
デジタル表オブジェクト内のＬ字領域を分割するための方法としては、図１１に示すように、Ｌ字領域内の横方向成分（３つの列に跨がる領域）全体が１つの結合セルとなるように分割する方法と、図１２に示すように、Ｌ字領域内の縦方向成分（３つの行に跨がる領域）全体が１つの結合セルとなるように分割する方法とがある。
【００８７】
どちらの方法を使用するかは、手書きの表内のストローク（セル内ストローク）の場所に応じて決定してもよい。
【００８８】
換言すれば、本実施形態では、デジタル表オブジェクト内のＬ字領域内の複数のセルの内、一つの結合セルに結合させるべきセルの集合は、手書きの表のＬ字領域内に書かれているセル内ストロークの場所に応じて決定されてもよい。簡単に説明すれば、Ｌ字領域内の横方向成分にストロークが書かれている場合には、横方向成分に含まれる複数のセルが優先的に１つの結合セルに結合される。一方、Ｌ字領域内の縦方向成分にストロークが書かれている場合には、縦方向成分に含まれる複数のセルが優先的に１つの結合セルに結合される。
【００８９】
次に、図１３、図１４を参照して、手書きの表内のストローク（セル内ストローク）の場所を考慮したＬ字領域分割方法について説明する。
【００９０】
図１３、図１４において、列を表す記号Ｃ１〜Ｃ３および行を表す記号Ｒ１、Ｒ２は説明のためのものであり、実際に表示されるわけではない。
【００９１】
図１３において、手書きの表は、Ｌ字領域（Ｌ字結合セル）６１、２つの矩形領域（セル）６２、６３を含む。Ｌ字領域（Ｌ字結合セル）６１は、セル（Ｒ１，Ｃ１）、セル（Ｒ１，Ｃ２）、セル（Ｒ１，Ｃ３）、セル（Ｒ２，Ｃ１）を含む。セル内ストローク（手書き文字列“ＡＢＣ”）は、セル（Ｒ１，Ｃ１）、セル（Ｒ１，Ｃ２）上に書かれている。
【００９２】
この場合、図１３の右上に示すように、Ｌ字領域６１に対応するデジタル表オブジェクト内のＬ字領域においては、横方向に並ぶ３つのセル、つまりセル（Ｒ１，Ｃ１）、セル（Ｒ１，Ｃ２）、セル（Ｒ１，Ｃ３）、が優先的に一つの結合セルに結合される。これにより、デジタル表オブジェクト内のＬ字領域は、結合セル７１Ａと、単一セル７１Ｂとから構成される。結合セル７１Ａは、セル（Ｒ１，Ｃ１）とセル（Ｒ１，Ｃ２）と（Ｒ１，Ｃ３）とを結合することによって得られる矩形形状の結合セルである。手書きの表の領域６２、６３は、デジタル表オブジェクト内のセル７２、７３に変換される。
【００９３】
手書き文字列“ＡＢＣ”は手書きの表のセル（Ｒ１，Ｃ１）とセル（Ｒ１，Ｃ２）に書かれているため、手書き文字列“ＡＢＣ”の認識結果は、セル（Ｒ１，Ｃ１）とセル（Ｒ１，Ｃ２）と（Ｒ１，Ｃ３）とを結合することによって得られる結合セル７１Ａ内に置かれる。この場合、手書き文字列“ＡＢＣ”の認識結果は結合セル７１Ａ内でセンタリングされ、結合セル７１Ａの中央部に表示される。
【００９４】
図１３の右下に示すように、もし、縦方向に並ぶ２つのセルが一つの結合セルに結合され、且つ横方向に並ぶ残りの２つのセルが別の一つの結合セルに結合されたならば、手書き文字列“ＡＢＣ”が２つに分割されてしまう可能性がある。
【００９５】
つまり、手書き文字“Ａ”は手書きの表のセル（Ｒ１，Ｃ１）に書かれているため、手書き文字“Ａ”の認識結果は、セル（Ｒ１，Ｃ１）とセル（Ｒ２，Ｃ１）とを結合することによって得られる結合セル７１Ｂの中央部に表示される。同様に、手書き文字列“ＢＣ”は手書きの表のセル（Ｒ１，Ｃ２）に書かれているため、手書き文字列“ＢＣ”の認識結果は、セル（Ｒ１，Ｃ２）とセル（Ｒ１，Ｃ３）とを結合することによって得られる結合セル７１Ａの中央部に表示される。このため、手書き文字列“ＡＢＣ”が２つに分割されてしまう。
【００９６】
よって、本実施形態においては、手書きの表のＬ字領域に書かれているストロークの場所がデジタル表オブジェクト内で水平方向に並んだ幾つかのセルに対応する場合には、少なくともこれら水平方向に並んだ幾つかのセルが優先的に一つの結合セルに結合される。
【００９７】
図１４において、手書きの表は、Ｌ字領域（Ｌ字結合セル）６１と、２つの矩形領域（セル）６２、６３を含む。Ｌ字領域（Ｌ字結合セル）６１は、セル（Ｒ１，Ｃ１）、セル（Ｒ１，Ｃ２）、セル（Ｒ１，Ｃ３）、セル（Ｒ２，Ｃ１）を含む。セル内ストローク（手書き文字列“ＡＢＣ”）は、セル（Ｒ１，Ｃ１）、セル（Ｒ２，Ｃ１）上に書かれている。
【００９８】
この場合、図１４の右上に示すように、Ｌ字領域６１に対応するデジタル表オブジェクト内のＬ字領域においては、縦方向に並ぶ２つのセルが優先的に一つの結合セルに結合される。つまり、デジタル表オブジェクト内のＬ字領域は、結合セル７１Ａと、結合セル７１Ｂとから構成される。結合セル７１Ｂは、セル（Ｒ１，Ｃ１）とセル（Ｒ２，Ｃ１）とを結合することによって得られる。デジタル表オブジェクト内のＬ字領域の残りの２つのセルは結合されて結合セル７１Ａとなる。手書きの表の領域６２、６３は、デジタル表オブジェクト内のセル７２、７３に変換される。
【００９９】
手書き文字列“ＡＢＣ”は手書きの表のセル（Ｒ１，Ｃ１）とセル（Ｒ２，Ｃ１）に書かれているため、手書き文字列“ＡＢＣ”の認識結果は、セル（Ｒ１，Ｃ１）とセル（Ｒ２，Ｃ１）とを結合することによって得られる結合セル７１Ｂの中央部に表示される。
【０１００】
図１４の右下に示すように、もし、横方向に並ぶ３つのセルが一つの結合セルに結合されたならば、手書き文字列“ＡＢＣ”が２つに分割されてしまう可能性がある。
【０１０１】
つまり、手書き文字“Ａ”は手書きの表のセル（Ｒ１，Ｃ１）に書かれているため、手書き文字“Ａ”の認識結果は、セル（Ｒ１，Ｃ１）とセル（Ｒ１，Ｃ２）とセル（Ｒ１，Ｃ３）と結合することによって得られる結合セル７１Ａの中央部に表示される。同様に、手書き文字列“ＢＣ”は手書きの表のセル（Ｒ２，Ｃ１）に書かれているため、手書き文字列“ＢＣ”の認識結果は、１つのセル（Ｒ２，Ｃ１）から構成されるセル７１Ｂに表示される。このため、手書き文字列“ＡＢＣ”が２つに分割されてしまう。
【０１０２】
よって、本実施形態においては、手書きの表のＬ字領域に書かれているストロークの場所がデジタル表オブジェクト内で垂直方向に並んだ幾つかのセルに対応する場合には、少なくともこれら垂直方向に並んだ幾つかのセルが優先的に一つの結合セルに結合される。
【０１０３】
図６の認識結果表示処理部３１３は、手書きの表に対応するデジタル表オブジェクトをＬＣＤ１７Ａの画面上に表示する。認識結果表示処理部３１３は、デジタル表オブジェクトを表示するために、デジタル表オブジェクトをクリップボードにコピーしてもよい。この場合、デジタル表オブジェクトは、スプレッドシートアプリケーションが扱うことが可能なフォーマットされたデジタル表オブジェクト（データファイル）としてクリップボードにコピーされてもよい。
【０１０４】
あるいは、認識結果表示処理部３１３は、デジタル表オブジェクトを表示するために、スプレッドシートアプリケーションのようなオフィスアプリケーションにデジタル表オブジェクトを出力（エクスボート）してもよい。この場合、デジタル表オブジェクトは、スプレッドシートアプリケーションが扱うことが可能なフォーマットされたデジタル表オブジェクト（データファイル）としてエクスボートされてもよい。
【０１０５】
上述の処理部３０５の表認識に関する機能の全てはまたは一部は、サーバ２によって実行されても良い。
【０１０６】
図１５のフローチャートは、手書きの表／デジタル表オブジェクト変換処理の手順を示す。
【０１０７】
ＣＰＵ１０１は、手書きノートアプリケーションプログラム２０２を実行することによって、以下の処理を行う。
【０１０８】
ＣＰＵ１０１は、手書き入力されるストロークそれぞれをタッチスクリーンディスプレイ１７から受け取る（ステップＳ２０１）。ＣＰＵ１０１は、グラフィクスコントローラ１０４と共同して、手書き入力される各ストロークをタッチスクリーンディスプレイ１７の画面上に表示するための処理を実行する。これにより、複数のストロークを含む手書き文書（手書きページ）がタッチスクリーンディスプレイ１７の画面上に表示される。なお、ストロークを入力するための入力デバイスはタッチスクリーンディスプレイ１７に限定されない。たとえば、ストロークを入力するための入力デバイスはカメラ１０９であってもよい。この場合、ホワイトボードや紙に書かれたストロークの集合のイメージがカメラ１０９によってキャプチャされてもよい。ＣＰＵ１０１は、カメラ１０９によってキャプチャされたストロークの集合のイメージを手書きページとしてタッチスクリーンディスプレイ１７の画面上に表示するための処理を実行してもよい。
【０１０９】
手書きページの認識が必要な機能、たとえば、「オフィスデータとしてコピー」、「エクスポート」などが、ユーザによって選択された時、ＣＰＵ１０１は、手書きページ内の手書きの表を認識するための表認識処理を行う（ステップＳ２０２）。表認識処理では、ＣＰＵ１０１は、手書き文書内の縦横の罫線に対応するストローク（罫線ストローク）の集合を検出する。そして、ＣＰＵ１０１は、縦横の罫線に対応するストローク（罫線ストローク）の集合に基づいて、手書きの表の構造を認識する。そして、ＣＰＵ１０１は、手書きの表を、手書きの表に含まれる複数の領域（セル）と同数の複数の領域（セル）を含むデジタル表オブジェクトに変換する。デジタル表オブジェクト内の各領域（セル）は、単一セルまたは結合セルから構成されてもよい。ＣＰＵ１０１は、手書きの表内の隣接する複数の列／行に跨がらない領域（セル）を単一セルとして認識する。そして、手書きの表内の隣接する複数の列／行に跨がらない領域（セル）は、デジタル表オブジェクト内の単一セルに変換される。また、ＣＰＵ１０１は、手書きの表内の隣接する複数の列または隣接する複数の行の少なくとも一方に跨がる領域（セル）を、結合セルとして認識する。手書きの表内の隣接する複数の列または隣接する複数の行の少なくとも一方に跨がる領域（セル）は、デジタル表オブジェクト内の結合セルに変換される。
【０１１０】
表認識処理では、ＣＰＵ１０１は、さらに、文字認識処理によって、各セル内のストロークを認識してもよい。これにより、手書きの表内の各セル内の手書き文字列がテキスト（文字コード）に変換される。テキスト（文字コード）は、デジタル表オブジェクト内の対応するセルに挿入される。
【０１１１】
ＣＰＵ１０１は、デジタル表オブジェクト内の非矩形形状の領域（非矩形形状の結合セル）を特定するために、デジタル表オブジェクト（表認識結果）内の個々の結合セルを評価する。まず、ＣＰＵ１０１は、未評価の結合セルから１つの結合セルを選択する（ステップＳ２０３）。ＣＰＵ１０１は、選択した結合セルの形状が矩形（長方形）形状または非矩形形状のいずれであるかを判定する（ステップＳ２０４）。
【０１１２】
選択した結合セルの形状が矩形形状に対応するならば（ステップＳ２０４のＹＥＳ）、ＣＰＵ１０１は、全ての結合セルを評価したか否かを判定する（ステップＳ２０６）。未評価の結合セルが存在するならば（ステップＳ２０６のＮＯ）、ＣＰＵ１０１は、ステップ２０３からの処理を再び実行する。
【０１１３】
選択した結合セルの形状が非矩形形状に対応するならば（ステップＳ２０４のＮＯ）、ＣＰＵ１０１は、選択した結合セルを各々が矩形形状の複数のセル（複数の分割セル）に分割するための結合セル分割処理を実行する（ステップＳ２０５）。結合セル分割処理では、選択した結合セルは、基本的には、各々が矩形形状の２以上の結合セルに分割される。しかし、選択した結合セルの形状によっては、この選択した結合セルは、１以上の矩形形状の結合セルと１以上の単一セルとの組み合わせに分割される場合もある。いずれの場合においても、「複数の分割セル」の少なくとも一つは矩形形状の結合セルである。そして、ＣＰＵ１０１は、全ての結合セルを評価したか否かを判定する（ステップＳ２０６）。未評価の結合セルが存在するならば（ステップＳ２０６のＮＯ）、ＣＰＵ１０１は、ステップ２０３からの処理を再び実行する。
【０１１４】
全ての結合セルの評価が完了したならば（ステップＳ２０６のＹＥＳ）、ＣＰＵ１０１は、グラフィクスコントローラ１０４と共同して、認識結果（つまり、結合セル分割処理が施されたデジタル表オブジェクト）を、タッチスクリーンディスプレイ１７の画面上に表示する（ステップＳ２０７）。ステップＳ２０７では、ＣＰＵ１０１は、スプレッドシートアプリケーションのようなオフィスアプリケーションにデジタル表オブジェクトを出力してもよい。この場合、ＣＰＵ１０１は、デジタル表オブジェクトをクリップボードにコピーしてもよい。あるいは、ＣＰＵ１０１は、デジタル表オブジェクトをスプレッドシートアプリケーションのようなオフィスアプリケーションに直接的に出力（エクスポート）してもよい。デジタル表オブジェクトは非矩形形状の結合セル（例えば、Ｌ字結合セル）を含んでいないので、スプレッドシートアプリケーションのようなオフィスアプリケーションは、デジタル表オブジェクトを正常に表示することができる。
【０１１５】
図１６のフローチャートは、結合セル分割処理の手順を示す。
【０１１６】
以下では、デジタル表オブジェクト内の非矩形形状の領域（非矩形形状の結合セル）内に含まれる個々の単一セルを結合候補セルと称する。ＣＰＵ１０１は、非矩形形状の結合セルを矩形形状の幾つかのセル（矩形形状の幾つかの結合セル、または矩形形状の幾つかの結合セルと幾つかの単一セルとの組み合わせ）に分割するために、全ての結合候補セルを評価する。
【０１１７】
まず、ＣＰＵ１０１は、未評価の結合候補セルから最も左上の１つの結合候補セルをワークセルとして選択する（ステップＳ３０１）。最も左の結合候補セルと最も上の結合候補セルとが互いに異なる単一セルである場合には、最も上の結合候補セルが優先して選択されてもよい。非矩形形状の結合セルが図１７のような形状を有している場合には、図１７に示されるように、最も左上の１つの結合候補セルが最初にワークセル（ＷＳ）として選択される。非矩形形状の結合セルが図１８のような形状を有している場合には、図１８に示されるように、最も上の１つの結合候補セルが最初にワークセル（ＷＳ）として選択される。
【０１１８】
ＣＰＵ１０１は、結合候補セル群の範囲の中で、ワークセルの範囲を右に広げる（ステップＳ３０２）。ステップＳ３０２では、ワークセルの範囲は、図１９に示すように、広げられるところまでいっぱいに広げられる。
【０１１９】
ＣＰＵ１０１は、結合候補セルの範囲の中で、ワークセルの範囲を下に広げる。この場合、ＣＰＵ１０１は、まず、ワークセルの矩形（長方形）が維持されている状態で、ワークセルを下に広げることができるか否かを判定する（ステップＳ３０３）。
【０１２０】
ワークセルの矩形が維持されている状態で、ワークセルの範囲を下に広げることができるならば（ステップＳ３０３のＹＥＳ）、ＣＰＵ１０１は、ワークセルの範囲を下に広げる（ステップＳ３０４）。
【０１２１】
ワークセルの矩形が維持されている状態で、ワークセルの範囲を下に広げることができないならば（ステップＳ３０３のＮＯ）、ＣＰＵ１０１は、現在のワークセルの範囲内の全ての単一セルを結合することによって結合セルを生成し、この結合セルとこの結合セルに隣接する他の結合候補セルとの間に非表示の罫線を作る（ステップＳ３０５）。これにより、たとえば、図２０に示されているように、現在のワークセル（ＷＳ）が独立した結合セルとなる。そして、この結合セルと他の結合候補セルとの間の境界に非表示属性の罫線が設定される。
【０１２２】
ＣＰＵ１０１は、全ての結合候補セルの評価が完了したか否かを判定する（ステップＳ３０６）。未評価の結合候補セルが存在するならば（ステップＳ３０６のＮＯ）、ＣＰＵ１０１は、ステップＳ３０１からの処理を再び実行する。
【０１２３】
なお、ここでは、最も左の結合候補セルと最も上の結合候補セルとが互いに異なる単一セルである場合には、最も上の結合候補セルを優先して選択する場合を例示したが、最も左の結合候補セルを優先して選択してもよい。またワークセルの範囲を下よりも先に右に広げる例を説明したが、ワークセルの範囲を右よりも先に下に広げてもよい。あるいは、手書き文字列が書かれている場所に応じて、ワークセルの範囲を優先的に広げる方向を決定しても良い。
【０１２４】
以上の結合セル分割処理により、デジタル表オブジェクト内の非矩形形状の領域（非矩形形状の結合セル）を、各々が矩形形状の複数の結合セルに分割することができる。さらに非矩形形状の結合セルを分割する時に新たに作成した罫線を非表示属性の罫線とすることで、各々が矩形形状の複数の結合セルを、手書きの表と同様の非矩形形状の結合セルであるかのように表示することができる。
【０１２５】
次に、図２１、図２２を参照して、デジタル表オブジェクト内の非矩形形状の領域に対する結合セル分割処理の例を説明する。
【０１２６】
図２１は手書きの表の認識結果であるデジタル表オブジェクトの例を示し、図２２は結合セル分割処理の結果を示す。ここで、図２１のＡ〜Ｄ，１〜６，Ａ１〜Ｄ６や、図２１、図２２のハッチングは説明のための記号であり、実際に表示されるわけではない。
【０１２７】
Ｓ３０１において、セルＢ１がワークセルとして選択される。Ｓ３０２において、ワークセルの範囲が右に広げられる。セルＣ１，Ｄ１がワークセルに追加され、ワークセルの範囲はセルＢ１，Ｃ１，Ｄ１を含む。
【０１２８】
Ｓ３０３において、ワークセルの範囲を下に広げようとする。しかし、セルＣ２は結合候補セルでないため、ワークセルの範囲を下に広げるとワークセルの矩形を維持できなくなる。このため、処理はＳ３０５へ進む。
【０１２９】
Ｓ３０５において、現在のワークセルの範囲（セルＢ１，Ｃ１，Ｄ１）が結合セルとなる。この結合セルとこの結合セルに隣接する結合候補セルとの間（ここでは、セルＢ１とセルＢ２との間、およびセルＤ１とセルＤ２との間）に非表示の罫線（図２２の９１ａ、９１ｂ）が作られ、この結合セルとこの結合セルに隣接する結合候補セルとが互いに分割される。これにより、図２２の結合セル８１が得られる。結合セル８１に属する結合候補セル以外の結合候補セルはまだ評価していない。
【０１３０】
Ｓ３０６において、まだ評価していない結合候補セルがあると判定されるため、処理はＳ３０１に戻る。
【０１３１】
Ｓ３０１において、セルＡ２がワークセルとして選択される。Ｓ３０２において、ワークセルの範囲が右に広げられ、ワークセルの範囲はセルＡ２，Ｂ２を含む。
【０１３２】
Ｓ３０３において、ワークセルを下に広げても矩形が維持できると判定されるため、処理はＳ３０４に進む。
【０１３３】
Ｓ３０４において、ワークセルの範囲はセルＡ２，Ｂ２，Ａ３，Ｂ３を含む範囲にまで広げられ、そして処理はＳ３０３に進む。
【０１３４】
Ｓ３０３において、ワークセルを下に広げるとワークセルの矩形が維持できないと判定されるため、処理はＳ３０５に進む。
【０１３５】
Ｓ３０５において、現在のワークセルの範囲（セルＡ２，Ｂ２，Ａ３，Ｂ３）が結合セルとなる。この結合セルとこの結合セルに隣接する結合候補セルとの間（ここでは、セルＢ３とセルＢ４との間）に非表示の罫線（図２２の９２）が作られ、この結合セルとこの結合セルに隣接する結合候補セルとが互いに分割される。これにより、図２２の結合セル８２が得られる。図２２の結合セル８１、８２に属する結合候補セル以外の結合候補セルはまだ評価していない。
【０１３６】
Ｓ３０６において、まだ評価していない結合候補セルがあると判定されるため、処理はＳ３０１に戻る。
【０１３７】
同様にして、図２２の結合セル８３，８４，８５が作成される。Ｓ３０６において、全ての結合候補セルの評価が完了したと判定されるため、処理は終了する。結合セル８４と結合セル８５との間には非表示の罫線９３が作られる。
【０１３８】
なお、もし図２１においてハッチングで示されている領域がセルＡ６を含んでいない場合には、ハッチングで示されている領域は、４つの結合セル８１、８２、８３，８４と単一セルＢ６との組み合わせに分割される。
【０１３９】
以上説明したように、本実施形態においては、手書きの表が複数の列または複数の行の少なくとも一方に跨がる第１領域を含み、且つこの第１領域が矩形形状に対応する場合には、この手書きの表の認識結果は、手書きの表内の複数の領域に対応する複数のセルを含む第１表のオブジェクトであって、第１領域に対応する第１表のオブジェクト内の矩形形状領域が結合セルによって構成される第１表のオブジェクトである。一方、第１領域がＬ字形状のような非矩形形状に対応する場合には、この手書きの表の認識結果は、手書きの表内の複数の領域に対応する複数のセルを含む第２表のオブジェクトであって、第１領域に対応する第２表のオブジェクト内の非矩形形状領域が、各々が矩形形状の複数の結合セルの組み合わせ、または各々が矩形形状の１以上の結合セルと１以上の単一セルとの組み合わせによって構成される第２表のオブジェクトである。
【０１４０】
よって、複数の列または複数の行の少なくとも一方に跨がる領域（結合セル）を含む手書きの表の表構造に類似した表のオブジェクト（デジタル表オブジェクト）を出力することができる。さらに、手書きの表がＬ字領域（Ｌ字結合セル）を含む場合であっても、Ｌ字結合セルを含まない表のオブジェクト（デジタル表オブジェクト）を出力することができる。よって、手書きの表の認識結果（デジタル表オブジェクト）を様々なアプリケーションプログラムで活用することが可能となる。
【０１４１】
さらに、デジタル表オブジェクト内の非矩形形状領域内の複数のセルの内、一つの結合セルに結合させるべきセルの集合は、手書きの表の非矩形形状領域内に書かれているストロークの場所に応じて決定される。したがって、手書きの表の非矩形形状領域内に書かれている手書き文字列が、デジタル表オブジェクト内の異なる場所に分散されてしまうという不具合を防止することができる。
【０１４２】
なお、本実施形態に記載された様々な機能の各々は、処理回路によって実現されてもよい。処理回路の例には、中央処理装置（ＣＰＵ）のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム（命令群）を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたＣＰＵ以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
【０１４３】
また、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【０１４４】
また、本実施形態では、タブレットコンピュータを使用する場合を例示して説明したが、本実施形態の各機能は、通常のデスクトップパーソナルコンピュータに適用することもできる。この場合、手書き入力のための入力デバイスであるタブレット等をデスクトップパーソナルコンピュータに接続すれば良い。
【０１４５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【図１】
0006430197.tif 000002
【図２】
0006430197.tif 000003
【図３】
0006430197.tif 000004
【図４】
0006430197.tif 000005
【図５】
0006430197.tif 000006
【図６】
0006430197.tif 000007
【図７】
0006430197.tif 000008
【図８】
0006430197.tif 000009
【図９】
0006430197.tif 000010
【図１０】
0006430197.tif 000011
【図１１】
0006430197.tif 000012
【図１２】
0006430197.tif 000013
【図１３】
0006430197.tif 000014
【図１４】
0006430197.tif 000015
【図１５】
0006430197.tif 000016
【図１６】
0006430197.tif 000017
【図１７】
0006430197.tif 000018
【図１８】
0006430197.tif 000019
【図１９】
0006430197.tif 000020
【図２０】
0006430197.tif 000021
【図２１】
0006430197.tif 000022
【図２２】
0006430197.tif 000023