(57)【要約】【課題】ユーザが所望する編集対象を容易に選択可能にすることを目的とする。【解決手段】ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択手段を有することによって課題を解決する。【選択図】図２
2010009426.tif 000002
【特許請求の範囲】
【請求項１】
ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択手段を有することを特徴とする情報処理装置。
【請求項２】
オブジェクト間の関連度を算出する算出手段を更に有し、
前記算出手段は、オブジェクト間の距離に基づいて、オブジェクト間の関連度として算出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
隣接するストロークをグルーピングし、オブジェクトを作成するオブジェクト作成手段と、
前記オブジェクト作成手段で作成された行方向に隣接するオブジェクトを行オブジェクトとして連結し、近隣行オブジェクト間の距離を算出して、全ての行オブジェクトを繋ぐ距離が短くなる経路を求める解析手段と、
を更に有し、
前記算出手段は、前記経路におけるオブジェクト間の距離をオブジェクト間の関連度として算出することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
隣接するストロークをグルーピングし、オブジェクトを作成するオブジェクト作成手段と、
前記オブジェクト作成手段で作成された列方向に隣接するオブジェクトを列オブジェクトとして連結し、近隣列オブジェクト間の距離を算出して、全ての列オブジェクトを繋ぐ距離が短くなる経路を求める解析手段と、
を更に有し、
前記算出手段は、前記経路におけるオブジェクト間の距離をオブジェクト間の関連度として算出することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
オブジェクト間の関連度を算出する算出手段を更に有し、
前記算出手段は、文字認識を行い、文字認識の結果に基づいて、オブジェクト間の関連度を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
オブジェクト間の関連度を算出する算出手段を更に有し、
前記算出手段は、オブジェクトの属性値に基づいて、オブジェクト間の関連度を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
情報処理装置における情報処理方法であって、
ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択ステップを有することを特徴とする情報処理方法。
【請求項８】
オブジェクト間の関連度を算出する算出ステップを更に有し、
前記算出ステップは、オブジェクト間の距離に基づいて、オブジェクト間の関連度として算出することを特徴とする請求項７に記載の情報処理方法。
【請求項９】
隣接するストロークをグルーピングし、オブジェクトを作成するオブジェクト作成ステップと、
前記オブジェクト作成ステップで作成された行方向に隣接するオブジェクトを行オブジェクトとして連結し、近隣行オブジェクト間の距離を算出して、全ての行オブジェクトを繋ぐ距離が短くなる経路を求める解析ステップと、
を更に有し、
前記算出ステップは、前記経路におけるオブジェクト間の距離をオブジェクト間の関連度として算出することを特徴とする請求項８に記載の情報処理方法。
【請求項１０】
隣接するストロークをグルーピングし、オブジェクトを作成するオブジェクト作成ステップと、
前記オブジェクト作成ステップで作成された列方向に隣接するオブジェクトを列オブジェクトとして連結し、近隣列オブジェクト間の距離を算出して、全ての列オブジェクトを繋ぐ距離が短くなる経路を求める解析ステップと、
を更に有し、
前記算出ステップは、前記経路におけるオブジェクト間の距離をオブジェクト間の関連度として算出することを特徴とする請求項８に記載の情報処理方法。
【請求項１１】
オブジェクト間の関連度を算出する算出ステップを更に有し、
前記算出ステップは、文字認識を行い、文字認識の結果に基づいて、オブジェクト間の関連度を算出することを特徴とする請求項７に記載の情報処理方法。
【請求項１２】
オブジェクト間の関連度を算出する算出ステップを更に有し、
前記算出ステップは、オブジェクトの属性値に基づいて、オブジェクト間の関連度を算出することを特徴とする請求項７に記載の情報処理方法。
【請求項１３】
コンピュータを、
ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択手段として機能させることを特徴とするプログラム。
【請求項１４】
請求項１３に記載のプログラムを記憶したコンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
ディスプレイとデジタイザ等の入力装置とを組み合わせたデジタルホワイトボードシステムにおいて、ユーザは文字や絵をストロークとして手書きする。こうしたストロークを編集対象とする場合、デジタルホワイトボードシステムは、一本一本のストロークを選択しなければならない。
この選択操作を容易にすることを目的として、例えば特許文献１がある。特許文献１では、空間−時間の選択基準を用いることによって選択されたストロークの集合を変更する方法が提案されている。
【０００３】
【特許文献１】特開平６−４４０２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１によって、時間的な選択の側面を空間的な選択の側面に組み合わせることができる。ところが、ユーザが手書きするストロークは必ずしも時間的に連続していない。例えば、ユーザが手書き文字の一部を消去して書き直した場合、既存のストロークと書き直したストロークとに時間的な連続性は存在せず、ユーザが意図したストローク（又はストロークの集合）を選択することができない問題があった。
【０００５】
本発明はこのような問題点に鑑みなされたもので、ユーザが所望する編集対象を容易に選択可能にすることを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明の情報処理装置は、ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択手段を有することを特徴とする。
【０００７】
また、本発明は、情報処理装置における情報処理方法であって、ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択ステップを有することを特徴とする。
【０００８】
また、本発明は、プログラム及び記憶媒体としてもよい。
【発明の効果】
【０００９】
本発明によれば、ユーザが所望する編集対象を容易に選択可能にすることができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態について図面に基づいて説明する。
【００１１】
＜実施形態１＞
図１は、情報処理装置の構成を示すブロック図である。図１において、ＣＰＵ１０は、メモリ１１等に格納された制御プログラムに従って情報処理装置の全体を制御する。ＣＰＵ１０は、メモリ１１へのデータの格納や入力部１２からの各種入力の処理への出力を行うことができる。また、メモリ１１には、アプリケーションプログラムや表示データ等も保持される。なお、メモリ１１は、アプリケーションプログラムや表示データ等を格納するＲＯＭやハードディスク等の他、ＣＰＵ１０によるプログラムの実行におけるワークエリアとして機能することが可能なＲＡＭ等を具備する。
【００１２】
入力部１２は、ユーザが入力を行うためのキーボードやマウス等であってもよいし、ペンや指による加圧式の入力手段であってもよい。表示制御部１３は、ディスプレイ１４への出力を制御する。ディスプレイ１４は、情報処理装置のディスプレイモニタであり、表示制御部１３の制御の下で、アプリケーションが提供するアプリケーションウインドウ等を表示する。
【００１３】
なお、ＣＰＵ１０が、メモリ１１に記憶されているプログラムに基づき、処理を実行することによって、後述するフローチャートに係る処理が実現される。
また、例えば入力部１２がキーボードの場合、ボタンダウンとは、所定のキーのダウンであり、ボタンアップとは、所定のキーのアップである。また、例えば入力部１２がマウスの場合、ボタンダウンとは、所定のボタンのダウンであり、ボタンアップとは、所定のボタンのアップである。また、例えば入力部１２がペンの場合、ボタンダウンとは、ペンダウンであり、ボタンアップとは、ペンアップのことである。
【００１４】
図２は、編集対象の選択処理の一例を示すフローチャートである。
例えばユーザが手書きしたストロークに関する選択操作が開始されると、ステップＳ１００において、ＣＰＵ１０は、隣接するストロークのグルーピングを行い、オブジェクトの一例であるグループを作成する（オブジェクト作成）。ステップＳ１００の処理の詳細は、後述する図３に示す。
ステップＳ１０１において、ＣＰＵ１０は、ステップＳ１００で作成したグループのレイアウト解析を行う。レイアウト解析では、ＣＰＵ１０は、行や列、箇条書き、段組を考慮した解析を行う。また、ＣＰＵ１０は、レイアウト解析の結果を、先頭から末尾までのリストとして記録する。より具体的に説明すると、ＣＰＵ１０は、後述する経路順のグループを先頭から末尾までリストとして記録する。ステップＳ１０１の処理の詳細は、後述する図５に示す。
【００１５】
ステップＳ１０２において、ＣＰＵ１０は、リスト内の各グループ間の関連度を算出する。ＣＰＵ１０は、関連度として、グループ間の距離を算出する。ステップＳ１０１の処理の詳細は、後述する図９に示す。
ステップＳ１０３において、ＣＰＵ１０は、ユーザのペンダウン位置（ペンダウンの入力操作に応じたペンダウン位置）に基づいて、最初に選択するグループ（始点となる編集対象のグループ）を特定する。ステップＳ１０４以降では、ＣＰＵ１０は、ペンダウンからペンアップまでの経過時間に従ってリスト内から順次、グループを編集対象に加えていく。
【００１６】
ステップＳ１０４において、ＣＰＵ１０は、１つのグループを編集対象に加える。
ステップＳ１０５において、ＣＰＵ１０は、リスト内で次に位置するグループとの関連度からユーザのペンアップ操作を待機する時間を算出する。ステップＳ１０５の処理の詳細は、後述する図１１に示す。
ステップＳ１０６において、ＣＰＵ１０は、ステップＳ１０５で算出した待機時間で作動するタイマーを設定する。
【００１７】
ステップＳ１０７において、ＣＰＵ１０は、待機時間が経過するまで待機する。
ステップＳ１０８において、ＣＰＵ１０は、待機時間内にペンアップ操作が行われたか否かを判定し、ペンアップ操作が行われていない場合（Ｓ１０８−Ｎｏ）、ステップＳ１０４へ戻る。ペンアップ操作が行われた場合（Ｓ１０８−Ｙｅｓ）、ＣＰＵ１０は、編集対象を確定して、図２に示す処理を終了する。
【００１８】
図３は、ストロークをグルーピングする処理の一例を示すフローチャートである。ＣＰＵ１０は、各ストロークの外接矩形を算出し、外接矩形と交差するストロークをグルーピングする。
ステップＳ２００において、ＣＰＵ１０は、ストロークの外接矩形を算出する。図４に示すストローク４０から外接矩形を算出すると、ＣＰＵ１０は、外接矩形群４１を取得することができる。ここで、図４は、ストロークをグルーピングする一例を示す図である。
【００１９】
ステップＳ２０１において、ＣＰＵ１０は、外接矩形の交差判定を行う。図４の例では、ストローク４２とストローク４３、及びストローク４４とストローク４５、の外接矩形が交差している。
ステップＳ２０２において、ＣＰＵ１０は、交差する外接矩形があったかを判定し、交差する外接矩形が無い場合（Ｓ２０２−Ｎｏ）、グルーピングを確定して、図３に示す処理を終了する。交差する外接矩形がある場合（Ｓ２０２−Ｙｅｓ）、ＣＰＵ１０は、ステップＳ２０３へ進む。
【００２０】
ステップＳ２０３において、ＣＰＵ１０は、外接矩形が交差するストローク又はグループを一つのグループにする。図４の例では、ＣＰＵ１０は、グループ４７及びグループ４８を生成する。
ステップＳ２０４において、ＣＰＵ１０は、変更のあったグループの外接矩形を算出し、ステップＳ２０１へ戻る。
図４の例では、「ク」と濁点、「フ」と半濁点が、別のグループになっている。なお、ＣＰＵ１０は、上記グルーピングの他に、文字切り処理等により文字単位のグルーピングを行うようにしてもよい。
【００２１】
図５は、グループのレイアウトを解析する処理の一例を示すフローチャートである。ＣＰＵ１０は、グループ間の距離を算出し、全てのグループを繋ぐ距離が短くなる経路を求める。
ステップＳ３００において、ＣＰＵ１０は、横方向に隣接するグループを一つの行グループに置き換える。つまり、ＣＰＵ１０は、行方向に隣接するグループを一つの行グループとして連結し、隣接行グループ（隣接行オブジェクト）とする。例えば、図６に示したグループに対してＣＰＵ１０が、ステップＳ３００の処理を行うと、図７に示すような行単位の行グループが生成される。もちろん、縦方向に隣接するグループを一つの行グループに置き換えることで、縦書きの場合にも対応することができる。なお、ステップＳ３００は経路を求めやすくするための処理であり、行単位のグループ化が困難な場合、ＣＰＵ１０は、ステップＳ３００の処理を省略するようにしてもよい。ここで、図６は、グルーピング後の一例を示す図である。図７は、行グループの一例を示す図である。
【００２２】
ステップＳ３０１において、ＣＰＵ１０は、各行グループから近隣の行グループへの距離（近隣行オブジェクト間の距離）を算出する。図７の例では、ＣＰＵ１０は、行グループ７０と行グループ７１との距離を距離７２、行グループ７０と行グループ７３との距離を距離７４として算出する。なお、ＣＰＵ１０は、算出に当たっては行グループ７０と行グループ７５と等、経路になりえない経路を予め省くようにしてもよい。例えば、ＣＰＵ１０は、行グループ７０の外接矩形を大きくしながら最初に交差する５つの行グループとの距離だけを算出する。このようにすることで経路が求めやすくなる。
【００２３】
ステップＳ３０２において、ＣＰＵ１０は、全ての行グループを繋ぐ距離が短くなる経路を算出する。全ての点を一度だけ通る経路を求める問題は、巡回セールスマン問題として知られている。例えば、図７に示した行グループに対してＣＰＵ１０がステップＳ３０２の処理を行うと、図８に示すような経路が求められる。図８は、経路の一例を示す図である。なお、算出を省略した経路の距離を無限大とすることで解の範囲が狭くなるため、ＣＰＵ１０は、最適解を容易に求めることができる。
【００２４】
なお、上述したように、例えば列方向に解析を行う場合、ステップＳ３００において、ＣＰＵ１０は、縦方向に隣接するグループを一つの列グループに置き換えるようにしてもよい。つまり、ＣＰＵ１０は、列方向に隣接するグループを一つの列グループとして連結し、隣接列グループ（隣接列オブジェクト）とする。
ステップＳ３０１において、ＣＰＵ１０は、各列グループから近隣の列グループへの距離（近隣列オブジェクト間の距離）を算出する。
ステップＳ３０２において、ＣＰＵ１０は、全ての列グループを繋ぐ距離が短くなる経路を算出する。
【００２５】
図９は、グループ間の関連度を算出する処理の一例を示すフローチャートである。ＣＰＵ１０は、グループ間の距離を算出し、関連度として記録する。
ステップＳ４００において、ＣＰＵ１０は、最初のグループを取得する。
ステップＳ４０１において、ＣＰＵ１０は、次のグループを取得する。
ステップＳ４０２において、ＣＰＵ１０は、先のグループと次のグループとの距離を算出し、グループ間の関連度として記録する。
【００２６】
ステップＳ４０３において、ＣＰＵ１０は、次のグループが存在するか否かを判定し、次のグループが無い場合（Ｓ４０３−Ｎｏ）、関連度の算出処理を終了する。次のグループがある場合（Ｓ４０３−Ｙｅｓ）、ＣＰＵ１０は、ステップＳ４０１へ戻る。
ステップＳ４０１からステップＳ４０３までの処理を繰り返すことで、ＣＰＵ１０は、図１０に示す関連度１００や関連度１０１等の各グループ間の関連度を求めることができる。ここで、図１０は、関連度の一例を示す図である。
【００２７】
なお、ここではグループ間の距離を関連度の基準として用いたが、ＣＰＵ１０は、距離の他にグループを文字認識した結果から関連度を求めることができる。例えば、ＣＰＵ１０は、文字認識の結果、グループ同士が同じ単語を形成する場合、グループ間の関連度を高くし、そうで無い場合、グループ間の関連度を低くする。
また、ＣＰＵ１０は、各グループの属性（属性値）に基づいて、関連度を求めるようにしてもよい。例えば、ＣＰＵ１０は、大きさや太さ、色等のグループの属性（属性値）に基づいて、関連度を求めるようにしてもよい。つまり、ＣＰＵ１０は、同じ大きさのグループ間の関連度を高くしたり、同じ太さのグループ間の関連度を高くしたり、同じ色のグループ間の関連度を高くしたりしてもよい。
【００２８】
図１１は、次のグループを選択するまでの待機時間を算出する処理の一例を示すフローチャートである。ＣＰＵ１０は、グループ間の関連度を両グループの幅で正規化した値を待機時間とする。
ステップＳ５００において、ＣＰＵ１０は、選択済みのグループの中から最後尾のグループを取得する。
ステップＳ５０１において、ＣＰＵ１０は、最後尾のグループの次のグループを取得する。
【００２９】
ステップＳ５０２において、ＣＰＵ１０は、両グループ間の関連度Ｄを取得する。
ステップＳ５０３において、ＣＰＵ１０は、両グループの幅を取得し、合計値Ｗを求める。
ステップＳ５０４において、ＣＰＵ１０は、待機時間の係数αを使用して関連度Ｄを幅の合計値Ｗで正規化し、待機時間Ｔを算出する。
Ｔ＝α×（Ｄ／Ｗ）
【００３０】
なお、ＣＰＵ１０は、待機時間をユーザの意図で増減できるような算出法を用いるようにしてもよい。例えば、ＣＰＵ１０は、ユーザのペンが、ステップＳ１０３におけるユーザのペンダウン位置から右方向に距離Ｘ移動した場合、距離の係数βを使用して待機時間Ｔを次式のように求めるようにしてもよい。
Ｔ＝α×（Ｄ／Ｗ）×（Ｘ／β）
ここでペンが左方向にある場合、ＣＰＵ１０は、選択済みのグループを最後尾から順に選択解除していくようにしてもよい。
【００３１】
以上説明したように、本実施形態によれば、ユーザがペン等で編集対象の先頭を指定し、所望の範囲が選ばれるまで待つことで、編集対象を指定することができる。従って、編集対象の選択を容易に行うことができる。
なお、ＣＰＵ１０は、待機時間により編集対象を増減させる他に、ペンの動きに応じて編集対象を増減させるようにしてもよい。
【００３２】
例えば、ＣＰＵ１０は、ペンダウン位置から右方向への移動量に係数γを掛けた数だけグループを選択するようにしてもよい。また、ＣＰＵ１０は、ペンダウン位置から時計回りに移動した角度に係数θを掛けた数だけグループを選択するようにしてもよい。
また、ＣＰＵ１０は、ストロークの他に、テキストを編集対象とするようにしてもよい。より具体的に説明すると、ＣＰＵ１０は、図６に示したグループの一つをテキストの一文字として処理を行う。つまり、ＣＰＵ１０は、対象がテキストである場合、ステップＳ１００の処理（又はステップＳ１００及びステップＳ１０１の処理）を省略することができる。
【００３３】
＜その他の実施形態＞
また、本発明の目的は、以下のようにすることによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（又は記録媒体）を、システム或いは装置に供給する。そして、そのシステム或いは装置の中央演算処理手段（ＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコードを記録した記憶媒体は本発明を構成することになる。
【００３４】
また、システム或いは装置の前記中央演算処理手段が読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、システム或いは装置上で稼働しているオペレーティングシステム（ＯＳ）等が実際の処理の一部又は全部を行う。その処理によって上述した実施形態の機能が実現される場合も含まれる。
【００３５】
更に、記憶媒体から読み出されたプログラムコードが、前記システム或いは装置に挿入された機能拡張カードや、接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【００３６】
本発明を前記記憶媒体に適用する場合、その記憶媒体（コンピュータ読み取り可能な記憶媒体）には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【００３７】
以上、上述した各実施形態によれば、ユーザが所望する編集対象を容易に選択可能にすることができる。
【００３８】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００３９】
【図１】情報処理装置の構成を示すブロック図である。
【図２】編集対象の選択処理の一例を示すフローチャートである。
【図３】ストロークをグルーピングする処理の一例を示すフローチャートである。
【図４】ストロークをグルーピングする一例を示す図である。
【図５】グループのレイアウトを解析する処理の一例を示すフローチャートである。
【図６】グルーピング後の一例を示す図である。
【図７】行グループの一例を示す図である。
【図８】経路の一例を示す図である。
【図９】グループ間の関連度を算出する処理の一例を示すフローチャートである。
【図１０】関連度の一例を示す図である。
【図１１】次のグループを選択するまでの待機時間を算出する処理の一例を示すフローチャートである。
【符号の説明】
【００４０】
１０  ＣＰＵ
１１  メモリ
１２  入力部
１３  表示制御部
１４  ディスプレイ
【図１】
2010009426.tif 000003
【図２】
2010009426.tif 000004
【図３】
2010009426.tif 000005
【図４】
2010009426.tif 000006
【図５】
2010009426.tif 000007
【図６】
2010009426.tif 000008
【図７】
2010009426.tif 000009
【図８】
2010009426.tif 000010
【図９】
2010009426.tif 000011
【図１０】
2010009426.tif 000012
【図１１】
2010009426.tif 000013