情報処理装置及び情報処理方法
【課題】ユーザが所望する編集対象を容易に選択可能にすることを目的とする。
【解決手段】ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択手段を有することによって課題を解決する。
【解決手段】ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択手段を有することによって課題を解決する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【0002】
ディスプレイとデジタイザ等の入力装置とを組み合わせたデジタルホワイトボードシステムにおいて、ユーザは文字や絵をストロークとして手書きする。こうしたストロークを編集対象とする場合、デジタルホワイトボードシステムは、一本一本のストロークを選択しなければならない。
この選択操作を容易にすることを目的として、例えば特許文献1がある。特許文献1では、空間−時間の選択基準を用いることによって選択されたストロークの集合を変更する方法が提案されている。
【0003】
【特許文献1】特開平6−44021号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
特許文献1によって、時間的な選択の側面を空間的な選択の側面に組み合わせることができる。ところが、ユーザが手書きするストロークは必ずしも時間的に連続していない。例えば、ユーザが手書き文字の一部を消去して書き直した場合、既存のストロークと書き直したストロークとに時間的な連続性は存在せず、ユーザが意図したストローク(又はストロークの集合)を選択することができない問題があった。
【0005】
本発明はこのような問題点に鑑みなされたもので、ユーザが所望する編集対象を容易に選択可能にすることを目的とする。
【課題を解決するための手段】
【0006】
そこで、本発明の情報処理装置は、ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択手段を有することを特徴とする。
【0007】
また、本発明は、情報処理装置における情報処理方法であって、ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択ステップを有することを特徴とする。
【0008】
また、本発明は、プログラム及び記憶媒体としてもよい。
【発明の効果】
【0009】
本発明によれば、ユーザが所望する編集対象を容易に選択可能にすることができる。
【発明を実施するための最良の形態】
【0010】
以下、本発明の実施形態について図面に基づいて説明する。
【0011】
<実施形態1>
図1は、情報処理装置の構成を示すブロック図である。図1において、CPU10は、メモリ11等に格納された制御プログラムに従って情報処理装置の全体を制御する。CPU10は、メモリ11へのデータの格納や入力部12からの各種入力の処理への出力を行うことができる。また、メモリ11には、アプリケーションプログラムや表示データ等も保持される。なお、メモリ11は、アプリケーションプログラムや表示データ等を格納するROMやハードディスク等の他、CPU10によるプログラムの実行におけるワークエリアとして機能することが可能なRAM等を具備する。
【0012】
入力部12は、ユーザが入力を行うためのキーボードやマウス等であってもよいし、ペンや指による加圧式の入力手段であってもよい。表示制御部13は、ディスプレイ14への出力を制御する。ディスプレイ14は、情報処理装置のディスプレイモニタであり、表示制御部13の制御の下で、アプリケーションが提供するアプリケーションウインドウ等を表示する。
【0013】
なお、CPU10が、メモリ11に記憶されているプログラムに基づき、処理を実行することによって、後述するフローチャートに係る処理が実現される。
また、例えば入力部12がキーボードの場合、ボタンダウンとは、所定のキーのダウンであり、ボタンアップとは、所定のキーのアップである。また、例えば入力部12がマウスの場合、ボタンダウンとは、所定のボタンのダウンであり、ボタンアップとは、所定のボタンのアップである。また、例えば入力部12がペンの場合、ボタンダウンとは、ペンダウンであり、ボタンアップとは、ペンアップのことである。
【0014】
図2は、編集対象の選択処理の一例を示すフローチャートである。
例えばユーザが手書きしたストロークに関する選択操作が開始されると、ステップS100において、CPU10は、隣接するストロークのグルーピングを行い、オブジェクトの一例であるグループを作成する(オブジェクト作成)。ステップS100の処理の詳細は、後述する図3に示す。
ステップS101において、CPU10は、ステップS100で作成したグループのレイアウト解析を行う。レイアウト解析では、CPU10は、行や列、箇条書き、段組を考慮した解析を行う。また、CPU10は、レイアウト解析の結果を、先頭から末尾までのリストとして記録する。より具体的に説明すると、CPU10は、後述する経路順のグループを先頭から末尾までリストとして記録する。ステップS101の処理の詳細は、後述する図5に示す。
【0015】
ステップS102において、CPU10は、リスト内の各グループ間の関連度を算出する。CPU10は、関連度として、グループ間の距離を算出する。ステップS101の処理の詳細は、後述する図9に示す。
ステップS103において、CPU10は、ユーザのペンダウン位置(ペンダウンの入力操作に応じたペンダウン位置)に基づいて、最初に選択するグループ(始点となる編集対象のグループ)を特定する。ステップS104以降では、CPU10は、ペンダウンからペンアップまでの経過時間に従ってリスト内から順次、グループを編集対象に加えていく。
【0016】
ステップS104において、CPU10は、1つのグループを編集対象に加える。
ステップS105において、CPU10は、リスト内で次に位置するグループとの関連度からユーザのペンアップ操作を待機する時間を算出する。ステップS105の処理の詳細は、後述する図11に示す。
ステップS106において、CPU10は、ステップS105で算出した待機時間で作動するタイマーを設定する。
【0017】
ステップS107において、CPU10は、待機時間が経過するまで待機する。
ステップS108において、CPU10は、待機時間内にペンアップ操作が行われたか否かを判定し、ペンアップ操作が行われていない場合(S108−No)、ステップS104へ戻る。ペンアップ操作が行われた場合(S108−Yes)、CPU10は、編集対象を確定して、図2に示す処理を終了する。
【0018】
図3は、ストロークをグルーピングする処理の一例を示すフローチャートである。CPU10は、各ストロークの外接矩形を算出し、外接矩形と交差するストロークをグルーピングする。
ステップS200において、CPU10は、ストロークの外接矩形を算出する。図4に示すストローク40から外接矩形を算出すると、CPU10は、外接矩形群41を取得することができる。ここで、図4は、ストロークをグルーピングする一例を示す図である。
【0019】
ステップS201において、CPU10は、外接矩形の交差判定を行う。図4の例では、ストローク42とストローク43、及びストローク44とストローク45、の外接矩形が交差している。
ステップS202において、CPU10は、交差する外接矩形があったかを判定し、交差する外接矩形が無い場合(S202−No)、グルーピングを確定して、図3に示す処理を終了する。交差する外接矩形がある場合(S202−Yes)、CPU10は、ステップS203へ進む。
【0020】
ステップS203において、CPU10は、外接矩形が交差するストローク又はグループを一つのグループにする。図4の例では、CPU10は、グループ47及びグループ48を生成する。
ステップS204において、CPU10は、変更のあったグループの外接矩形を算出し、ステップS201へ戻る。
図4の例では、「ク」と濁点、「フ」と半濁点が、別のグループになっている。なお、CPU10は、上記グルーピングの他に、文字切り処理等により文字単位のグルーピングを行うようにしてもよい。
【0021】
図5は、グループのレイアウトを解析する処理の一例を示すフローチャートである。CPU10は、グループ間の距離を算出し、全てのグループを繋ぐ距離が短くなる経路を求める。
ステップS300において、CPU10は、横方向に隣接するグループを一つの行グループに置き換える。つまり、CPU10は、行方向に隣接するグループを一つの行グループとして連結し、隣接行グループ(隣接行オブジェクト)とする。例えば、図6に示したグループに対してCPU10が、ステップS300の処理を行うと、図7に示すような行単位の行グループが生成される。もちろん、縦方向に隣接するグループを一つの行グループに置き換えることで、縦書きの場合にも対応することができる。なお、ステップS300は経路を求めやすくするための処理であり、行単位のグループ化が困難な場合、CPU10は、ステップS300の処理を省略するようにしてもよい。ここで、図6は、グルーピング後の一例を示す図である。図7は、行グループの一例を示す図である。
【0022】
ステップS301において、CPU10は、各行グループから近隣の行グループへの距離(近隣行オブジェクト間の距離)を算出する。図7の例では、CPU10は、行グループ70と行グループ71との距離を距離72、行グループ70と行グループ73との距離を距離74として算出する。なお、CPU10は、算出に当たっては行グループ70と行グループ75と等、経路になりえない経路を予め省くようにしてもよい。例えば、CPU10は、行グループ70の外接矩形を大きくしながら最初に交差する5つの行グループとの距離だけを算出する。このようにすることで経路が求めやすくなる。
【0023】
ステップS302において、CPU10は、全ての行グループを繋ぐ距離が短くなる経路を算出する。全ての点を一度だけ通る経路を求める問題は、巡回セールスマン問題として知られている。例えば、図7に示した行グループに対してCPU10がステップS302の処理を行うと、図8に示すような経路が求められる。図8は、経路の一例を示す図である。なお、算出を省略した経路の距離を無限大とすることで解の範囲が狭くなるため、CPU10は、最適解を容易に求めることができる。
【0024】
なお、上述したように、例えば列方向に解析を行う場合、ステップS300において、CPU10は、縦方向に隣接するグループを一つの列グループに置き換えるようにしてもよい。つまり、CPU10は、列方向に隣接するグループを一つの列グループとして連結し、隣接列グループ(隣接列オブジェクト)とする。
ステップS301において、CPU10は、各列グループから近隣の列グループへの距離(近隣列オブジェクト間の距離)を算出する。
ステップS302において、CPU10は、全ての列グループを繋ぐ距離が短くなる経路を算出する。
【0025】
図9は、グループ間の関連度を算出する処理の一例を示すフローチャートである。CPU10は、グループ間の距離を算出し、関連度として記録する。
ステップS400において、CPU10は、最初のグループを取得する。
ステップS401において、CPU10は、次のグループを取得する。
ステップS402において、CPU10は、先のグループと次のグループとの距離を算出し、グループ間の関連度として記録する。
【0026】
ステップS403において、CPU10は、次のグループが存在するか否かを判定し、次のグループが無い場合(S403−No)、関連度の算出処理を終了する。次のグループがある場合(S403−Yes)、CPU10は、ステップS401へ戻る。
ステップS401からステップS403までの処理を繰り返すことで、CPU10は、図10に示す関連度100や関連度101等の各グループ間の関連度を求めることができる。ここで、図10は、関連度の一例を示す図である。
【0027】
なお、ここではグループ間の距離を関連度の基準として用いたが、CPU10は、距離の他にグループを文字認識した結果から関連度を求めることができる。例えば、CPU10は、文字認識の結果、グループ同士が同じ単語を形成する場合、グループ間の関連度を高くし、そうで無い場合、グループ間の関連度を低くする。
また、CPU10は、各グループの属性(属性値)に基づいて、関連度を求めるようにしてもよい。例えば、CPU10は、大きさや太さ、色等のグループの属性(属性値)に基づいて、関連度を求めるようにしてもよい。つまり、CPU10は、同じ大きさのグループ間の関連度を高くしたり、同じ太さのグループ間の関連度を高くしたり、同じ色のグループ間の関連度を高くしたりしてもよい。
【0028】
図11は、次のグループを選択するまでの待機時間を算出する処理の一例を示すフローチャートである。CPU10は、グループ間の関連度を両グループの幅で正規化した値を待機時間とする。
ステップS500において、CPU10は、選択済みのグループの中から最後尾のグループを取得する。
ステップS501において、CPU10は、最後尾のグループの次のグループを取得する。
【0029】
ステップS502において、CPU10は、両グループ間の関連度Dを取得する。
ステップS503において、CPU10は、両グループの幅を取得し、合計値Wを求める。
ステップS504において、CPU10は、待機時間の係数αを使用して関連度Dを幅の合計値Wで正規化し、待機時間Tを算出する。
T=α×(D/W)
【0030】
なお、CPU10は、待機時間をユーザの意図で増減できるような算出法を用いるようにしてもよい。例えば、CPU10は、ユーザのペンが、ステップS103におけるユーザのペンダウン位置から右方向に距離X移動した場合、距離の係数βを使用して待機時間Tを次式のように求めるようにしてもよい。
T=α×(D/W)×(X/β)
ここでペンが左方向にある場合、CPU10は、選択済みのグループを最後尾から順に選択解除していくようにしてもよい。
【0031】
以上説明したように、本実施形態によれば、ユーザがペン等で編集対象の先頭を指定し、所望の範囲が選ばれるまで待つことで、編集対象を指定することができる。従って、編集対象の選択を容易に行うことができる。
なお、CPU10は、待機時間により編集対象を増減させる他に、ペンの動きに応じて編集対象を増減させるようにしてもよい。
【0032】
例えば、CPU10は、ペンダウン位置から右方向への移動量に係数γを掛けた数だけグループを選択するようにしてもよい。また、CPU10は、ペンダウン位置から時計回りに移動した角度に係数θを掛けた数だけグループを選択するようにしてもよい。
また、CPU10は、ストロークの他に、テキストを編集対象とするようにしてもよい。より具体的に説明すると、CPU10は、図6に示したグループの一つをテキストの一文字として処理を行う。つまり、CPU10は、対象がテキストである場合、ステップS100の処理(又はステップS100及びステップS101の処理)を省略することができる。
【0033】
<その他の実施形態>
また、本発明の目的は、以下のようにすることによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(又は記録媒体)を、システム或いは装置に供給する。そして、そのシステム或いは装置の中央演算処理手段(CPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコードを記録した記憶媒体は本発明を構成することになる。
【0034】
また、システム或いは装置の前記中央演算処理手段が読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、システム或いは装置上で稼働しているオペレーティングシステム(OS)等が実際の処理の一部又は全部を行う。その処理によって上述した実施形態の機能が実現される場合も含まれる。
【0035】
更に、記憶媒体から読み出されたプログラムコードが、前記システム或いは装置に挿入された機能拡張カードや、接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【0036】
本発明を前記記憶媒体に適用する場合、その記憶媒体(コンピュータ読み取り可能な記憶媒体)には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0037】
以上、上述した各実施形態によれば、ユーザが所望する編集対象を容易に選択可能にすることができる。
【0038】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【0039】
【図1】情報処理装置の構成を示すブロック図である。
【図2】編集対象の選択処理の一例を示すフローチャートである。
【図3】ストロークをグルーピングする処理の一例を示すフローチャートである。
【図4】ストロークをグルーピングする一例を示す図である。
【図5】グループのレイアウトを解析する処理の一例を示すフローチャートである。
【図6】グルーピング後の一例を示す図である。
【図7】行グループの一例を示す図である。
【図8】経路の一例を示す図である。
【図9】グループ間の関連度を算出する処理の一例を示すフローチャートである。
【図10】関連度の一例を示す図である。
【図11】次のグループを選択するまでの待機時間を算出する処理の一例を示すフローチャートである。
【符号の説明】
【0040】
10 CPU
11 メモリ
12 入力部
13 表示制御部
14 ディスプレイ
【技術分野】
【0001】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【0002】
ディスプレイとデジタイザ等の入力装置とを組み合わせたデジタルホワイトボードシステムにおいて、ユーザは文字や絵をストロークとして手書きする。こうしたストロークを編集対象とする場合、デジタルホワイトボードシステムは、一本一本のストロークを選択しなければならない。
この選択操作を容易にすることを目的として、例えば特許文献1がある。特許文献1では、空間−時間の選択基準を用いることによって選択されたストロークの集合を変更する方法が提案されている。
【0003】
【特許文献1】特開平6−44021号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
特許文献1によって、時間的な選択の側面を空間的な選択の側面に組み合わせることができる。ところが、ユーザが手書きするストロークは必ずしも時間的に連続していない。例えば、ユーザが手書き文字の一部を消去して書き直した場合、既存のストロークと書き直したストロークとに時間的な連続性は存在せず、ユーザが意図したストローク(又はストロークの集合)を選択することができない問題があった。
【0005】
本発明はこのような問題点に鑑みなされたもので、ユーザが所望する編集対象を容易に選択可能にすることを目的とする。
【課題を解決するための手段】
【0006】
そこで、本発明の情報処理装置は、ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択手段を有することを特徴とする。
【0007】
また、本発明は、情報処理装置における情報処理方法であって、ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択ステップを有することを特徴とする。
【0008】
また、本発明は、プログラム及び記憶媒体としてもよい。
【発明の効果】
【0009】
本発明によれば、ユーザが所望する編集対象を容易に選択可能にすることができる。
【発明を実施するための最良の形態】
【0010】
以下、本発明の実施形態について図面に基づいて説明する。
【0011】
<実施形態1>
図1は、情報処理装置の構成を示すブロック図である。図1において、CPU10は、メモリ11等に格納された制御プログラムに従って情報処理装置の全体を制御する。CPU10は、メモリ11へのデータの格納や入力部12からの各種入力の処理への出力を行うことができる。また、メモリ11には、アプリケーションプログラムや表示データ等も保持される。なお、メモリ11は、アプリケーションプログラムや表示データ等を格納するROMやハードディスク等の他、CPU10によるプログラムの実行におけるワークエリアとして機能することが可能なRAM等を具備する。
【0012】
入力部12は、ユーザが入力を行うためのキーボードやマウス等であってもよいし、ペンや指による加圧式の入力手段であってもよい。表示制御部13は、ディスプレイ14への出力を制御する。ディスプレイ14は、情報処理装置のディスプレイモニタであり、表示制御部13の制御の下で、アプリケーションが提供するアプリケーションウインドウ等を表示する。
【0013】
なお、CPU10が、メモリ11に記憶されているプログラムに基づき、処理を実行することによって、後述するフローチャートに係る処理が実現される。
また、例えば入力部12がキーボードの場合、ボタンダウンとは、所定のキーのダウンであり、ボタンアップとは、所定のキーのアップである。また、例えば入力部12がマウスの場合、ボタンダウンとは、所定のボタンのダウンであり、ボタンアップとは、所定のボタンのアップである。また、例えば入力部12がペンの場合、ボタンダウンとは、ペンダウンであり、ボタンアップとは、ペンアップのことである。
【0014】
図2は、編集対象の選択処理の一例を示すフローチャートである。
例えばユーザが手書きしたストロークに関する選択操作が開始されると、ステップS100において、CPU10は、隣接するストロークのグルーピングを行い、オブジェクトの一例であるグループを作成する(オブジェクト作成)。ステップS100の処理の詳細は、後述する図3に示す。
ステップS101において、CPU10は、ステップS100で作成したグループのレイアウト解析を行う。レイアウト解析では、CPU10は、行や列、箇条書き、段組を考慮した解析を行う。また、CPU10は、レイアウト解析の結果を、先頭から末尾までのリストとして記録する。より具体的に説明すると、CPU10は、後述する経路順のグループを先頭から末尾までリストとして記録する。ステップS101の処理の詳細は、後述する図5に示す。
【0015】
ステップS102において、CPU10は、リスト内の各グループ間の関連度を算出する。CPU10は、関連度として、グループ間の距離を算出する。ステップS101の処理の詳細は、後述する図9に示す。
ステップS103において、CPU10は、ユーザのペンダウン位置(ペンダウンの入力操作に応じたペンダウン位置)に基づいて、最初に選択するグループ(始点となる編集対象のグループ)を特定する。ステップS104以降では、CPU10は、ペンダウンからペンアップまでの経過時間に従ってリスト内から順次、グループを編集対象に加えていく。
【0016】
ステップS104において、CPU10は、1つのグループを編集対象に加える。
ステップS105において、CPU10は、リスト内で次に位置するグループとの関連度からユーザのペンアップ操作を待機する時間を算出する。ステップS105の処理の詳細は、後述する図11に示す。
ステップS106において、CPU10は、ステップS105で算出した待機時間で作動するタイマーを設定する。
【0017】
ステップS107において、CPU10は、待機時間が経過するまで待機する。
ステップS108において、CPU10は、待機時間内にペンアップ操作が行われたか否かを判定し、ペンアップ操作が行われていない場合(S108−No)、ステップS104へ戻る。ペンアップ操作が行われた場合(S108−Yes)、CPU10は、編集対象を確定して、図2に示す処理を終了する。
【0018】
図3は、ストロークをグルーピングする処理の一例を示すフローチャートである。CPU10は、各ストロークの外接矩形を算出し、外接矩形と交差するストロークをグルーピングする。
ステップS200において、CPU10は、ストロークの外接矩形を算出する。図4に示すストローク40から外接矩形を算出すると、CPU10は、外接矩形群41を取得することができる。ここで、図4は、ストロークをグルーピングする一例を示す図である。
【0019】
ステップS201において、CPU10は、外接矩形の交差判定を行う。図4の例では、ストローク42とストローク43、及びストローク44とストローク45、の外接矩形が交差している。
ステップS202において、CPU10は、交差する外接矩形があったかを判定し、交差する外接矩形が無い場合(S202−No)、グルーピングを確定して、図3に示す処理を終了する。交差する外接矩形がある場合(S202−Yes)、CPU10は、ステップS203へ進む。
【0020】
ステップS203において、CPU10は、外接矩形が交差するストローク又はグループを一つのグループにする。図4の例では、CPU10は、グループ47及びグループ48を生成する。
ステップS204において、CPU10は、変更のあったグループの外接矩形を算出し、ステップS201へ戻る。
図4の例では、「ク」と濁点、「フ」と半濁点が、別のグループになっている。なお、CPU10は、上記グルーピングの他に、文字切り処理等により文字単位のグルーピングを行うようにしてもよい。
【0021】
図5は、グループのレイアウトを解析する処理の一例を示すフローチャートである。CPU10は、グループ間の距離を算出し、全てのグループを繋ぐ距離が短くなる経路を求める。
ステップS300において、CPU10は、横方向に隣接するグループを一つの行グループに置き換える。つまり、CPU10は、行方向に隣接するグループを一つの行グループとして連結し、隣接行グループ(隣接行オブジェクト)とする。例えば、図6に示したグループに対してCPU10が、ステップS300の処理を行うと、図7に示すような行単位の行グループが生成される。もちろん、縦方向に隣接するグループを一つの行グループに置き換えることで、縦書きの場合にも対応することができる。なお、ステップS300は経路を求めやすくするための処理であり、行単位のグループ化が困難な場合、CPU10は、ステップS300の処理を省略するようにしてもよい。ここで、図6は、グルーピング後の一例を示す図である。図7は、行グループの一例を示す図である。
【0022】
ステップS301において、CPU10は、各行グループから近隣の行グループへの距離(近隣行オブジェクト間の距離)を算出する。図7の例では、CPU10は、行グループ70と行グループ71との距離を距離72、行グループ70と行グループ73との距離を距離74として算出する。なお、CPU10は、算出に当たっては行グループ70と行グループ75と等、経路になりえない経路を予め省くようにしてもよい。例えば、CPU10は、行グループ70の外接矩形を大きくしながら最初に交差する5つの行グループとの距離だけを算出する。このようにすることで経路が求めやすくなる。
【0023】
ステップS302において、CPU10は、全ての行グループを繋ぐ距離が短くなる経路を算出する。全ての点を一度だけ通る経路を求める問題は、巡回セールスマン問題として知られている。例えば、図7に示した行グループに対してCPU10がステップS302の処理を行うと、図8に示すような経路が求められる。図8は、経路の一例を示す図である。なお、算出を省略した経路の距離を無限大とすることで解の範囲が狭くなるため、CPU10は、最適解を容易に求めることができる。
【0024】
なお、上述したように、例えば列方向に解析を行う場合、ステップS300において、CPU10は、縦方向に隣接するグループを一つの列グループに置き換えるようにしてもよい。つまり、CPU10は、列方向に隣接するグループを一つの列グループとして連結し、隣接列グループ(隣接列オブジェクト)とする。
ステップS301において、CPU10は、各列グループから近隣の列グループへの距離(近隣列オブジェクト間の距離)を算出する。
ステップS302において、CPU10は、全ての列グループを繋ぐ距離が短くなる経路を算出する。
【0025】
図9は、グループ間の関連度を算出する処理の一例を示すフローチャートである。CPU10は、グループ間の距離を算出し、関連度として記録する。
ステップS400において、CPU10は、最初のグループを取得する。
ステップS401において、CPU10は、次のグループを取得する。
ステップS402において、CPU10は、先のグループと次のグループとの距離を算出し、グループ間の関連度として記録する。
【0026】
ステップS403において、CPU10は、次のグループが存在するか否かを判定し、次のグループが無い場合(S403−No)、関連度の算出処理を終了する。次のグループがある場合(S403−Yes)、CPU10は、ステップS401へ戻る。
ステップS401からステップS403までの処理を繰り返すことで、CPU10は、図10に示す関連度100や関連度101等の各グループ間の関連度を求めることができる。ここで、図10は、関連度の一例を示す図である。
【0027】
なお、ここではグループ間の距離を関連度の基準として用いたが、CPU10は、距離の他にグループを文字認識した結果から関連度を求めることができる。例えば、CPU10は、文字認識の結果、グループ同士が同じ単語を形成する場合、グループ間の関連度を高くし、そうで無い場合、グループ間の関連度を低くする。
また、CPU10は、各グループの属性(属性値)に基づいて、関連度を求めるようにしてもよい。例えば、CPU10は、大きさや太さ、色等のグループの属性(属性値)に基づいて、関連度を求めるようにしてもよい。つまり、CPU10は、同じ大きさのグループ間の関連度を高くしたり、同じ太さのグループ間の関連度を高くしたり、同じ色のグループ間の関連度を高くしたりしてもよい。
【0028】
図11は、次のグループを選択するまでの待機時間を算出する処理の一例を示すフローチャートである。CPU10は、グループ間の関連度を両グループの幅で正規化した値を待機時間とする。
ステップS500において、CPU10は、選択済みのグループの中から最後尾のグループを取得する。
ステップS501において、CPU10は、最後尾のグループの次のグループを取得する。
【0029】
ステップS502において、CPU10は、両グループ間の関連度Dを取得する。
ステップS503において、CPU10は、両グループの幅を取得し、合計値Wを求める。
ステップS504において、CPU10は、待機時間の係数αを使用して関連度Dを幅の合計値Wで正規化し、待機時間Tを算出する。
T=α×(D/W)
【0030】
なお、CPU10は、待機時間をユーザの意図で増減できるような算出法を用いるようにしてもよい。例えば、CPU10は、ユーザのペンが、ステップS103におけるユーザのペンダウン位置から右方向に距離X移動した場合、距離の係数βを使用して待機時間Tを次式のように求めるようにしてもよい。
T=α×(D/W)×(X/β)
ここでペンが左方向にある場合、CPU10は、選択済みのグループを最後尾から順に選択解除していくようにしてもよい。
【0031】
以上説明したように、本実施形態によれば、ユーザがペン等で編集対象の先頭を指定し、所望の範囲が選ばれるまで待つことで、編集対象を指定することができる。従って、編集対象の選択を容易に行うことができる。
なお、CPU10は、待機時間により編集対象を増減させる他に、ペンの動きに応じて編集対象を増減させるようにしてもよい。
【0032】
例えば、CPU10は、ペンダウン位置から右方向への移動量に係数γを掛けた数だけグループを選択するようにしてもよい。また、CPU10は、ペンダウン位置から時計回りに移動した角度に係数θを掛けた数だけグループを選択するようにしてもよい。
また、CPU10は、ストロークの他に、テキストを編集対象とするようにしてもよい。より具体的に説明すると、CPU10は、図6に示したグループの一つをテキストの一文字として処理を行う。つまり、CPU10は、対象がテキストである場合、ステップS100の処理(又はステップS100及びステップS101の処理)を省略することができる。
【0033】
<その他の実施形態>
また、本発明の目的は、以下のようにすることによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(又は記録媒体)を、システム或いは装置に供給する。そして、そのシステム或いは装置の中央演算処理手段(CPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコードを記録した記憶媒体は本発明を構成することになる。
【0034】
また、システム或いは装置の前記中央演算処理手段が読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、システム或いは装置上で稼働しているオペレーティングシステム(OS)等が実際の処理の一部又は全部を行う。その処理によって上述した実施形態の機能が実現される場合も含まれる。
【0035】
更に、記憶媒体から読み出されたプログラムコードが、前記システム或いは装置に挿入された機能拡張カードや、接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【0036】
本発明を前記記憶媒体に適用する場合、その記憶媒体(コンピュータ読み取り可能な記憶媒体)には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0037】
以上、上述した各実施形態によれば、ユーザが所望する編集対象を容易に選択可能にすることができる。
【0038】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【0039】
【図1】情報処理装置の構成を示すブロック図である。
【図2】編集対象の選択処理の一例を示すフローチャートである。
【図3】ストロークをグルーピングする処理の一例を示すフローチャートである。
【図4】ストロークをグルーピングする一例を示す図である。
【図5】グループのレイアウトを解析する処理の一例を示すフローチャートである。
【図6】グルーピング後の一例を示す図である。
【図7】行グループの一例を示す図である。
【図8】経路の一例を示す図である。
【図9】グループ間の関連度を算出する処理の一例を示すフローチャートである。
【図10】関連度の一例を示す図である。
【図11】次のグループを選択するまでの待機時間を算出する処理の一例を示すフローチャートである。
【符号の説明】
【0040】
10 CPU
11 メモリ
12 入力部
13 表示制御部
14 ディスプレイ
【特許請求の範囲】
【請求項1】
ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択手段を有することを特徴とする情報処理装置。
【請求項2】
オブジェクト間の関連度を算出する算出手段を更に有し、
前記算出手段は、オブジェクト間の距離に基づいて、オブジェクト間の関連度として算出することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
隣接するストロークをグルーピングし、オブジェクトを作成するオブジェクト作成手段と、
前記オブジェクト作成手段で作成された行方向に隣接するオブジェクトを行オブジェクトとして連結し、近隣行オブジェクト間の距離を算出して、全ての行オブジェクトを繋ぐ距離が短くなる経路を求める解析手段と、
を更に有し、
前記算出手段は、前記経路におけるオブジェクト間の距離をオブジェクト間の関連度として算出することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
隣接するストロークをグルーピングし、オブジェクトを作成するオブジェクト作成手段と、
前記オブジェクト作成手段で作成された列方向に隣接するオブジェクトを列オブジェクトとして連結し、近隣列オブジェクト間の距離を算出して、全ての列オブジェクトを繋ぐ距離が短くなる経路を求める解析手段と、
を更に有し、
前記算出手段は、前記経路におけるオブジェクト間の距離をオブジェクト間の関連度として算出することを特徴とする請求項2に記載の情報処理装置。
【請求項5】
オブジェクト間の関連度を算出する算出手段を更に有し、
前記算出手段は、文字認識を行い、文字認識の結果に基づいて、オブジェクト間の関連度を算出することを特徴とする請求項1に記載の情報処理装置。
【請求項6】
オブジェクト間の関連度を算出する算出手段を更に有し、
前記算出手段は、オブジェクトの属性値に基づいて、オブジェクト間の関連度を算出することを特徴とする請求項1に記載の情報処理装置。
【請求項7】
情報処理装置における情報処理方法であって、
ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択ステップを有することを特徴とする情報処理方法。
【請求項8】
オブジェクト間の関連度を算出する算出ステップを更に有し、
前記算出ステップは、オブジェクト間の距離に基づいて、オブジェクト間の関連度として算出することを特徴とする請求項7に記載の情報処理方法。
【請求項9】
隣接するストロークをグルーピングし、オブジェクトを作成するオブジェクト作成ステップと、
前記オブジェクト作成ステップで作成された行方向に隣接するオブジェクトを行オブジェクトとして連結し、近隣行オブジェクト間の距離を算出して、全ての行オブジェクトを繋ぐ距離が短くなる経路を求める解析ステップと、
を更に有し、
前記算出ステップは、前記経路におけるオブジェクト間の距離をオブジェクト間の関連度として算出することを特徴とする請求項8に記載の情報処理方法。
【請求項10】
隣接するストロークをグルーピングし、オブジェクトを作成するオブジェクト作成ステップと、
前記オブジェクト作成ステップで作成された列方向に隣接するオブジェクトを列オブジェクトとして連結し、近隣列オブジェクト間の距離を算出して、全ての列オブジェクトを繋ぐ距離が短くなる経路を求める解析ステップと、
を更に有し、
前記算出ステップは、前記経路におけるオブジェクト間の距離をオブジェクト間の関連度として算出することを特徴とする請求項8に記載の情報処理方法。
【請求項11】
オブジェクト間の関連度を算出する算出ステップを更に有し、
前記算出ステップは、文字認識を行い、文字認識の結果に基づいて、オブジェクト間の関連度を算出することを特徴とする請求項7に記載の情報処理方法。
【請求項12】
オブジェクト間の関連度を算出する算出ステップを更に有し、
前記算出ステップは、オブジェクトの属性値に基づいて、オブジェクト間の関連度を算出することを特徴とする請求項7に記載の情報処理方法。
【請求項13】
コンピュータを、
ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択手段として機能させることを特徴とするプログラム。
【請求項14】
請求項13に記載のプログラムを記憶したコンピュータにより読み取り可能な記憶媒体。
【請求項1】
ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択手段を有することを特徴とする情報処理装置。
【請求項2】
オブジェクト間の関連度を算出する算出手段を更に有し、
前記算出手段は、オブジェクト間の距離に基づいて、オブジェクト間の関連度として算出することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
隣接するストロークをグルーピングし、オブジェクトを作成するオブジェクト作成手段と、
前記オブジェクト作成手段で作成された行方向に隣接するオブジェクトを行オブジェクトとして連結し、近隣行オブジェクト間の距離を算出して、全ての行オブジェクトを繋ぐ距離が短くなる経路を求める解析手段と、
を更に有し、
前記算出手段は、前記経路におけるオブジェクト間の距離をオブジェクト間の関連度として算出することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
隣接するストロークをグルーピングし、オブジェクトを作成するオブジェクト作成手段と、
前記オブジェクト作成手段で作成された列方向に隣接するオブジェクトを列オブジェクトとして連結し、近隣列オブジェクト間の距離を算出して、全ての列オブジェクトを繋ぐ距離が短くなる経路を求める解析手段と、
を更に有し、
前記算出手段は、前記経路におけるオブジェクト間の距離をオブジェクト間の関連度として算出することを特徴とする請求項2に記載の情報処理装置。
【請求項5】
オブジェクト間の関連度を算出する算出手段を更に有し、
前記算出手段は、文字認識を行い、文字認識の結果に基づいて、オブジェクト間の関連度を算出することを特徴とする請求項1に記載の情報処理装置。
【請求項6】
オブジェクト間の関連度を算出する算出手段を更に有し、
前記算出手段は、オブジェクトの属性値に基づいて、オブジェクト間の関連度を算出することを特徴とする請求項1に記載の情報処理装置。
【請求項7】
情報処理装置における情報処理方法であって、
ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択ステップを有することを特徴とする情報処理方法。
【請求項8】
オブジェクト間の関連度を算出する算出ステップを更に有し、
前記算出ステップは、オブジェクト間の距離に基づいて、オブジェクト間の関連度として算出することを特徴とする請求項7に記載の情報処理方法。
【請求項9】
隣接するストロークをグルーピングし、オブジェクトを作成するオブジェクト作成ステップと、
前記オブジェクト作成ステップで作成された行方向に隣接するオブジェクトを行オブジェクトとして連結し、近隣行オブジェクト間の距離を算出して、全ての行オブジェクトを繋ぐ距離が短くなる経路を求める解析ステップと、
を更に有し、
前記算出ステップは、前記経路におけるオブジェクト間の距離をオブジェクト間の関連度として算出することを特徴とする請求項8に記載の情報処理方法。
【請求項10】
隣接するストロークをグルーピングし、オブジェクトを作成するオブジェクト作成ステップと、
前記オブジェクト作成ステップで作成された列方向に隣接するオブジェクトを列オブジェクトとして連結し、近隣列オブジェクト間の距離を算出して、全ての列オブジェクトを繋ぐ距離が短くなる経路を求める解析ステップと、
を更に有し、
前記算出ステップは、前記経路におけるオブジェクト間の距離をオブジェクト間の関連度として算出することを特徴とする請求項8に記載の情報処理方法。
【請求項11】
オブジェクト間の関連度を算出する算出ステップを更に有し、
前記算出ステップは、文字認識を行い、文字認識の結果に基づいて、オブジェクト間の関連度を算出することを特徴とする請求項7に記載の情報処理方法。
【請求項12】
オブジェクト間の関連度を算出する算出ステップを更に有し、
前記算出ステップは、オブジェクトの属性値に基づいて、オブジェクト間の関連度を算出することを特徴とする請求項7に記載の情報処理方法。
【請求項13】
コンピュータを、
ボタンダウンの入力操作に基づいて始点となる編集対象のオブジェクトを選択し、前記ボタンダウンの入力操作からボタンアップの入力操作までの経過時間に従って、オブジェクト間の関連度に基づいてオブジェクトを順次、編集対象として選択して行く選択手段として機能させることを特徴とするプログラム。
【請求項14】
請求項13に記載のプログラムを記憶したコンピュータにより読み取り可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2010−9426(P2010−9426A)
【公開日】平成22年1月14日(2010.1.14)
【国際特許分類】
【出願番号】特願2008−169593(P2008−169593)
【出願日】平成20年6月27日(2008.6.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年1月14日(2010.1.14)
【国際特許分類】
【出願日】平成20年6月27日(2008.6.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]