[第1実施例]
図1を参照して、この発明の第1実施例である情報処理装置10はCPU12を含む。CPU12には、バス30を介してメモリ14およびタッチパネル16が接続され、さらにバス30および描画コントローラ18を介してディスプレイ20が接続される。
この第1実施例では、情報処理装置10が電子黒板に適用される場合について説明するが、電子黒板のみならず、タブレット端末、スマートフォン、PCなどの各種の情報機器ないし電子機器に適用され、手書き入力に応じて、手書きの文字、図形、記号等がディスプレイ20に描画(表示)される。
また、この第1実施例では、入力手段の一例として、タッチパネル16が用いられる場合について説明するが、タッチパネル16以外の入力手段として、たとえばコンピュータマウス、タッチパッド、ペンタブレットなどのポインティングデバイスを用いてもよい。また、情報処理装置10には、他の入力手段として、操作パネルのようなハードウェアキーが設けられたり、ハードウェアのキーボードが接続されたりすることがある。
図1に戻って、CPU12は、情報処理装置10の全体的な制御を司る。メモリ14は、CPU12のワーク領域およびバッファ領域として用いられる。タッチパネル16は、ユーザのタッチ入力を検出して、このタッチ入力で指示されるディスプレイ20の表示面上の位置の座標(タッチ座標)についてのデータ(タッチ座標データ)をCPU12に出力する。タッチパネル16は、汎用のタッチパネルであり、静電容量方式、電磁誘導方式、抵抗膜方式、赤外線方式など、任意の方式のものを用いることができる。この第1実施例では、タッチパネル16としては、静電容量方式のタッチパネルがディスプレイ20の表示面上に設けられる。描画コントローラ18は、GPU,VRAMなどを含み、CPU12の指示の下で、ディスプレイ20の画面に各種の画像を描画する。
このような構成の描画装置10では、手書き入力モードにおいて、ユーザがタッチパネル16を利用して文字、図形、記号など(以下、「文字等」ということがある。)を手書き入力(タッチ入力)すると、手書き入力に従ってタッチパネル16はタッチ位置に対応するタッチ座標データをCPU12に出力する。CPU12は、タッチパネル16から出力されたタッチ座標データに基づいてディスプレイ20に手書きの文字等を描画(表示)する。つまり、CPU12の指示の下、描画コントローラ18において手書きの文字等がVRAM上に描画され、VRAM上に描画された手書きの文字等を含む画像に対応する画像データがディスプレイ20に出力される。したがって、ユーザが手書きした文字等を含む画像がディスプレイ20に表示される。以下、この明細書においては、ユーザが文字を手書きすることを前提とし、手書き文字を含む画像を「手書き画像」と呼ぶことにする。
たとえば、手書き入力モードでは、図2に示すような画面(タッチ画面)100がディスプレイ20に表示される。タッチ画面100の左端部には、ボタン画像102a、102b、…が表示される。また、タッチ画面100の中央下端部には、ボタン画像104aおよび104bが表示される。ボタン画像102aは、手書きツールから範囲指定ツールに変更するために設けられる範囲ボタンである。ボタン画像102bは、手書き画像に対応する画像データを保存するために設けられる保存ボタンである。ボタン画像104aは、ページ送りのために設けられるページ送りボタンである。ボタン画像104bはページ戻しのために設けられるページ戻しボタンである。
図示は省略するが、タッチ画面100には、線種、線色、線幅を選択するためのパレットや上記以外のツールや機能(新規ページを開く、手書き、消しゴム、取り消しなど)を選択するためのボタン画像なども表示される。
たとえば、ユーザは、専用のペン120でタッチパネル16を操作する。ただし、ユーザは、手指で操作することもできる。タッチパネル16を用いた操作(入力)としては、タップ(短押し)、スライド(ドラッグ)、フリック、ロングタッチ(長押し)などがあり、この第1実施例では、これらを「タッチ入力」または単に「入力」のように総称する。また、タッチパネル16をタッチしていない状態からタッチしている状態に変化することをタッチオン(ペンダウン)と言い、タッチパネル16をタッチしている状態からタッチしていない状態に変化することをタッチオフ(ペンアップ)と言う。継続的なタッチ入力つまりスライドやフリックによる入力に対しては、タッチパネル16は、現在のタッチ位置に対応するタッチ座標データを所定周期よりも短い周期で出力する。たとえば、所定周期は、1〜数フレームであり、1フレームは1/30秒または1/60秒である。
一般的な電子黒板では、手書き画像に対応する画像データを保存する場合、ユーザは、ソフトウェアまたはハードウェアのキーボードを利用して、ファイル名を入力することがある。
しかし、手書き入力を行っている場合に、ディスプレイ20にソフトウェアのキーボードを表示したり、ペン120に代えてハードウェアのキーボードを用いたりするのは面倒であり、使い勝手が悪い。
そこで、この第1実施例では、ユーザに煩わしい操作をさせることなく、簡単にファイル名を設定できるようにしてある。
たとえば、電子黒板を利用して会議の議事録を板書する場合、ユーザは、最初に、タイトルとしてその会議の議題をディスプレイ20の表示面の上部ないし左上部に書くことが多い。また、板書後に議事録のデータ(画像データ)を保存する場合には、その議題をファイル名として入力する可能性が高い。
そこで、この第1実施例では、手書き入力モードで手書きを開始すると、ファイル名(タイトル)を入力するための枠(106)を表示面の上部の所定位置に表示し、この枠(106)内に手書きされた文字(手書き文字)を所定のタイミングで文字認識して、手書き画像の画像データを保存するときのファイル名として使用するようにしてある。この明細書においては、手書き文字は、手書きされた一文字または文字列を意味する。
図3および図4は、タッチ画面100に文字を手書きして、その手書き画像を保存する場合のタッチ画面100の遷移例を示す図解図である。図3(A)は、手書き入力モードで手書きを開始する場合にディスプレイ20に表示されたタッチ画面100の一例である。このタッチ画面100には、上述したように、その左端部にボタン画像102a、102b、…が表示され、その下端部の中央に、ボタン画像104aおよび104bが表示される。また、タッチ画面100の上部には、点線の枠106が表示される。この第1実施例では、枠106はタッチ画面100(ディスプレイ20の表示面)の所定位置および大きさで表示される。たとえば、図3(A)に示すように、ディスプレイ20には2次元の座標系(スクリーン座標系)が設定されており、ディスプレイ20の表示面の左下の頂点が原点Oに設定される。そして、枠106は、点P1および点P2の2点でその位置および大きさが決定される。
なお、図3(A)に示す座標系の文字や点P1およびP2は情報処理装置10の内部処理に用いられるだけであり、ディスプレイ20に表示されることはない。また、座標系は実施例の態様に限定される必要は無く、任意に設定することができる。
また、図3(A)に示すように、枠106の中には、「ファイル名」の文字が表示され、枠106内に手書きされた文字をファイル名に設定できることが示される。ただし、これは一例であり、限定されるべきではない。たとえば、枠106内に文字が手書きされるまで、枠106を点滅させたり、枠106の近傍に「枠内にファイル名を入力してください」のようなメッセージを表示したりしてもよい。
したがって、ユーザは、ペン120を用いて枠106内にファイル名として設定するべき文字や文字列を手書きする。たとえば、図3(B)に示すタッチ画面100では、ファイル名として「検討会」の文字列が手書きされた様子が示される。
ユーザは、議題に続いて、議事録を手書き(板書)する。このとき、図4(A)に示すように、ユーザは、枠106外に文字を手書きする。この第1実施例では、枠106外を指示するタッチ座標データが入力されると、枠106外への文字の手書きが開始されたと判断し、このタイミングで枠106内に手書きされた文字が文字認識される。上述したように、点P1と点P2で枠106の範囲は既定されるため、たとえば、点P1および点P2の座標を、(x1,y1)および(x2,y2)とすると、これらで決定される範囲外の点が指示されたときに、枠106外への入力が検出される。そして、点P1および点P2の範囲内で検出された複数の点に基づいて、枠106内に手書きされた文字が文字認識される。たとえば、文字認識が実行されると、タッチ画面100の右上部に表示領域110が表示され、文字認識の認識結果、すなわち認識された文字(一文字または文字列)が表示領域110内に表示される。ただし、これは一例であり、文字認識に成功した旨のメッセージを表示してもよい。または、文字認識に成功したことを、枠106を点滅させたり、枠106の色を変えたりすることにより、ユーザに報知してもよい。
なお、手書きされた文字の文字認識は既に周知であり、文字認識自体は本願発明の本質的な内容ではないため、文字認識の具体的な処理の説明は省略する。
文字認識に成功すると、適宜のタイミングで、枠106および表示領域110はタッチ画面100から消去される。したがって、議事録の板書を続けると、図4(B)に示すようなタッチ画面100がディスプレイ20に表示される。その後、議事録の板書を終了し、ボタン画像102bをタッチ(オン)すると、図5に示すように、タッチ画面100の前面に保存画面200が表示される。
図5を参照して、保存画面200には、その上部に、手書き画像を保存することが表記され、その下側にファイル名の表示領域202が設けられ、さらにその下に、ボタン画像204aおよび204bが設けられる。ファイル名の表示領域202には、上述のようにして設定されたファイル名、ここでは、“議事録.***”がデフォルト設定として表示される。ただし、“***”は拡張子である。ボタン画像204aは、保存を実行するために設けられ、ボタン画像204bは、ファイル名を変更するために設けられる。
したがって、ボタン画像204aがタッチ(オン)されると、ファイル名の表示領域202に表示されたファイル名で手書き画像の画像データがハードディスクやSDカードのような不揮発性のメモリに保存される。このような不揮発性のメモリは、情報処理装置10に設けられても良いし、情報処理装置10に着脱自在に設けられても良い。
また、ボタン画像204bがタッチされると、ファイル名を変更することが指示され、たとえば、ソフトウェアキーボードがディスプレイ20に表示され、このソフトウェアキーボードを用いて、新たなファイル名を入力することができる。ただし、ハードウェアキーボードを用いても良い。
図3−図5では、文字認識に成功した場合について説明したが、図6に示すように、枠106内に文字以外の記号や図形などが記載された場合には、文字認識に失敗し、たとえば、文字認識に失敗した旨のメッセージが表示される。かかる場合には、たとえば、図6に示すタッチ画面100を適宜の時間表示した後に、枠106内に手書きされた内容が消去され、表示領域110に初めからファイル名を入力する旨のメッセージが表示される。このとき、直前までに検出されたタッチ座標データはすべて消去される。そして、図3(A)に示したタッチ画面100がディスプレイ20に表示される。
なお、手書き入力が枠106の外から開始された場合には、枠106内に文字が手書きされていないため、上記の場合と同様に、文字認識に失敗する。
情報処理装置10の上記のような動作は、CPU12がメモリ14に記憶された情報処理プログラムを実行することにより実現される。この第1実施例では、情報処理プログラムの一例として、手書き文字を描画したり保存したりするプログラム(手書き制御処理プログラム)が実行される。具体的な処理については、後でフロー図を用いて説明する。
図7はメモリ14のメモリマップ40を示す。この図7を参照して、メモリ14は、プログラム記憶領域50およびデータ記憶領域70を含む。プログラム記憶領域50には、手書き制御処理プログラムが記憶される。手書き制御処理プログラムは、入力検出プログラム52、描画プログラム54、表示プログラム56、文字認識プログラム58、ファイル名作成プログラム60および保存プログラム62を含む。
入力検出プログラム52は、タッチパネル16から出力されたタッチ座標データを取得し、データ記憶領域70に時系列に従って記憶するためのプログラムである。ただし、入力検出プログラム52は、情報処理装置10に接続されたハードウェアのキーボードや情報処理装置10に設けられたハードウェアの操作パネルないし操作ボタンからの入力を検出するためのプログラムでもある。
描画プログラム54は、入力検出プログラム52に従って検出されたタッチ座標データが示す手書き文字を描画するためのプログラムである。具体的には、描画プログラム54が実行されると、CPU12の指示の下、描画コントローラ18において、GPUが手書き文字を含む手書き画像をVRAMに描画する。つまり、手書き画像に対応する画像データが生成される。表示プログラム56は、描画プログラム54に従って生成された画面データをディスプレイ20に出力するためのプログラムである。したがって、手書き画像がディスレプイ20の表示面に表示される。
文字認識プログラム58は、手書き入力に応じて、タッチパネル16から出力されたタッチ座標データに基づいて手書き文字を文字認識し、認識文字を記憶するためのプログラムである。この第1実施例では、枠データ76に従って既定される枠106内の手書き文字を文字認識するためのプログラムである。ファイル名作成プログラム60は、文字認識プログラム58の認識結果が示す文字列(認識文字)を用いてファイル名を作成したり、認識文字が記憶されていない場合に、自動的にファイル名を作成したりするためのプログラムである。保存プログラム62は、手書き画像に対応する画像データに、ファイル名作成プログラム60に従って作成されたファイル名またはユーザによって変更されたファイル名を付して、ハードディスクやSDカードなどの不揮発性のメモリに保存するためのプログラムである。
データ記憶領域70には、タッチ座標データ72、手書き入力データ74、枠データ76、認識文字データ78および画像生成データ80などが記憶される。
タッチ座標データ72は、タッチパネル16から出力された現在のタッチ座標データである。手書き入力データ74は、手書き文字についてのタッチ座標データを時系列に従って記憶したデータである。なお、タッチパネル16から出力されたタッチ座標データのうち、手書き文字についてのタッチ座標データ以外のタッチ座標データは、CPU12の処理に使用された後、消去される。つまり、タッチ画面100に表示されたボタン画像102a、102b、104a、104bが押されたことを判断された後、削除される。
枠データ76は、枠106の位置および範囲を既定するためのデータである。つまり、点P1および点P2の座標データである。認識文字データ78は、文字認識プログラム58に従って認識および記憶された認識文字についてのデータ(テキストデータ)である。画像生成データ84は、タッチ画面100についての画面データを生成するためのポリゴンデータやテクスチャデータなどである。この画像生成データ84は、タッチ画面100やファイル保存画面200などの画面データを生成するために、描画コントローラ18によって実行される。
なお、データ記憶領域には、情報処理プログラムの実行に必要な他のデータが記憶されたり、情報処理プログラムの実行に必要なタイマ(カウンタ)やレジスタが設けられたりする。
図8は図1に示したCPU12の手書き制御処理を示すフロー図である。図8を参照して、CPU12は、手書き制御処理を開始すると、手書き入力モードを設定し、ステップS1で、初期処理を実行する。初期処理では、データ記憶領域70のタッチ座標データ72や認識文字データ78を消去したり、枠データ76をデフォルト値に設定したり、画像生成データ80を不揮発性のメモリから読み出したりする。
次のステップS3では、初期のタッチ画面100をディスプレイ20の表示面に表示する。つまり、CPU12の指示の下、描画コントローラ18によって、図3(A)に示したような初期のタッチ画面100がディスプレイ20の表示面に表示される。このとき、枠データ76に従ってタッチ画面100の所定の位置に所定の範囲の枠106が表示され、その中に「ファイル名」の文字列が表示される。
続くステップS5では、後述する文字認識処理(図9参照)を実行する。詳細は後述するが、文字認識処理では、タッチ画面100に設けられた枠106内の手書き文字が文字認識され、文字認識の結果(認識文字)がファイル名として保存される。
続いて、ステップS7では、保存ボタンが押された(オンされた)かどうかを判断する。つまり、CPU12は、タッチパネル16から入力されたタッチ座標データに対応するタッチ位置が、ボタン画像102bが表示された領域を指示するかどうかを判断する。以下、ボタン画像が押されたかどうかを判断する場合について同様である。
ステップS7で“NO”であれば、つまり保存ボタンが押されていなければ、ステップS9で、手書き入力中であるかどうかを判断する。つまり、CPU12は、タッチパネル16からタッチ座標データが出力され、ボタン画像102a、102b、104a、104bがオンされていない状態であるかどうかを判断する。
ステップS9で“NO”であれば、つまり手書き入力中でなければ、そのままステップS7に戻る。一方、ステップS9で“YES”であれば、つまり手書き入力中であれば、ステップS11で、タッチパネル16から出力された現在のタッチ座標データをデータ記憶領域70に書き込む。つまり、手書き入力データ74としてタッチ座標データが時系列に従って記憶される。そして、ステップS13で、手書き文字を描画して、ステップS7に戻る。ここでは、CPU12の指示の下、描画コントローラ18は、タッチ座標データが示す位置に点を描画する。したがって、手書き入力中では、複数の点によって線(軌跡)が描画され、一本または複数の線によって文字が描画される。
また、ステップS7で“YES”であれば、つまり保存ボタンが押されれば、ステップS15で、後述する保存処理(図10参照)を実行して、手書き制御処理を終了する。
図9は図8に示したステップS5の文字認識処理のフロー図である。以下、文字認識処理について説明するが、図8の手書き制御処理で説明した処理と同じ内容の処理については簡単に説明することにする。
図9に示すように、CPU12は、文字認識処理を開始すると、ステップS31で、手書き入力中かどうかを判断する。ステップS31で“NO”であれば、つまり手書き入力中でなければ、そのままステップS31に戻る。一方、ステップS31で“YES”であれば、ステップS33で、タッチ座標を記憶し、ステップS35で、手書き文字を描画して、ステップS37に進む。
なお、枠106内の手書き入力が検出された場合に、適宜のタイミングで、枠106の中の「ファイル名」の文字は消去される。
ステップS37では、手書き入力が枠106内であるかどうかを判断する。ここでは、CPU12は、枠データ76を参照して、現在のタッチ座標データに対応するタッチ座標が枠106内であるかどうかを判断する。ステップS37で“YES”であれば、手書き入力が枠106内であると判断して、そのままステップS31に戻る。
一方、ステップS37で“NO”であれば、つまり手書き入力が枠106外であれば、ステップS39で、枠内の手書き文字を文字認識する。そして、ステップS41で、文字認識に成功したかどうかを判断する。ステップS39で“YES”であれば、つまり文字認識に成功すれば、ステップS43で、認識文字を表示領域110に表示し、ステップS45で、認識文字をファイル名として保存し、文字認識処理をリターンする。ステップS43では、図4(A)に示したように、表示領域110に認識結果(認識文字)が表示される。また、ステップS45では、CPU12は、認識文字に対応するテキストデータを認識文字データ78としてデータ記憶領域70に記憶される。
一方、ステップS41で“NO”であれば、つまり文字認識に失敗すれば、ステップS47で、表示領域110にエラーメッセージを表示して、文字認識処理をリターンする。つまり、ステップS47では、図6に示したように、CPU12は、文字認識に失敗した旨のメッセージが表示される。
なお、ステップS47の処理が実行されたときに、直前までに検出されたタッチ座標データはすべて消去される。
図10は図8に示したステップS15の保存処理のフロー図である。図10に示すように、CPU12は、保存処理を開始すると、ステップS61で、認識文字が保存されているかどうかを判断する。つまり、CPU12は、認識文字データ78がデータ記憶領域70に記憶されているかどうかを判断する。
ステップS61で“YES”であれば、つまり認識文字が保存されていれば、ステップS63で、認識文字を用いてファイル名を作成し、ステップS67に進む。したがって、ステップS63においては、認識文字に、ピリオドと拡張子(たとえば、“***”)の文字列を付加したファイル名が作成される。
一方、ステップS61で“NO”であれば、つまり認識文字が保存されていなければ、ステップS65で、自動的に設定された文字列でファイル名を作成し、ステップS67に進む。たとえば、ステップS65では、日付および時刻についての数値により、ファイル名が自動的に作成される。具体的には、2013年9月19日の19時59分にファイル名を作成する場合には、“20130919_1959.***”のようなファイル名が作成される。なお、CPU12は、日付および時刻を、情報処理装置10内部に設けられたRTCから取得する。
ステップS67では、図5に示したように、タッチ画面100の前面に保存画面200を表示する。このとき、表示領域202に、ステップS63またはS65で作成されたファイル名が表示される。続いて、ステップS69では、保存の実行かどうかを判断する。ここでは、CPU12は、保存画面200のボタン画像204aが押されたかどうかを判断する。ステップS69で“NO”であれば、つまり保存の実行でなければ、ステップS71で、ファイル名の変更かどうかを判断する。ここでは、CPU12は、保存画面200のボタン画像204bが押されたかどうかを判断する。
ステップS71で“NO”であれば、つまりファイル名の変更でなければ、そのままステップS69に戻って、保存またはファイル名の変更などの指示を待機する。一方、ステップS71で“YES”であれば、つまりファイル名の変更であれば、ステップS73で、ファイル名を変更して、ステップS69に戻る。たとえば、ステップS73では、タッチ画面100の前面であって、保存画面200が表示されていない領域に、ソフトウェアのキーボードをディスプレイ20に表示し、ユーザの操作に従って、ファイル名を変更する処理が実行される。
また、ステップS69で“YES”であれば、つまり保存の実行であれば、ステップS75で、手書き画像を保存して、手書き制御処理にリターンする。ステップS75では、CPU12は、タッチ画面100に描画された手書き画像に対応する画像データに保存画面200の表示領域202に表示されたファイル名を付して、不揮発性のメモリに保存する。
この第1実施例によれば、手書き文字を含む手書き画像の画像データを保存する場合に、所定の枠内に手書きした文字を用いたファイル名を付けるので、別にファイル名を入力する必要が無く、簡単にファイル名を付すことができる。
また、第1実施例によれば、所定の枠内にファイル名に使用する文字を手書きし、続いて枠外に文字を手書きする場合に、自動的に枠内の文字が文字認識されるので、ユーザの手を煩わすことが無い。つまり、使い勝手が良い。
さらに、第1実施例によれば、議題のような最初に手書きされる文字ないし文字列をファイル名として付すことができるので、後の管理や検索に適したファイル名を付すことができる。
なお、この第1実施例では、枠外へのタッチ入力を検出したときに、枠内の手書き文字を文字認識するようにしたが、これに限定される必要はない。たとえば、現在のページとは異なるページ(ページ送り、ページ戻し)に移動したり、新規のページを開いたりする場合に、枠内の手書き文字を文字認識するようにしてもよい。かかる場合にも、ページ送り、ページ戻し、または、新規ページを開くような通常の操作に応じて文字認識されるので、ユーザの手を煩わすことがない。また、この場合には、別のページを表示するタイミングで枠内の文字が文字認識されるため、枠内から文字を書き始める必要が無い。したがって、たとえば、ページを送るタイミングまでに枠内に文字が書かれていれば良く、ファイル名を書くタイミングの自由度が増す。
このような場合には、図11に示すように、図9に示した文字認識処理の一部が変更される。簡単に説明すると、CPU12は、ステップS35で手書き文字を描画すると、ステップS37aで、別のページを表示するかどうかを判断する。ここでは、CPU12は、ボタン104aまたはボタン104bが押されたり、新規ページを開くことが指示されたりしたかどうかを判断する。
ステップS37aで“NO”であれば、つまり別のページを表示しない場合には、そのままステップS31に戻る。一方、ステップS37aで“YES”であれば、つまり別のページを表示する場合には、ステップS39で、枠内の手書き文字を文字認識する。
なお、別のページを表示することが指示された場合には、図8に示すステップS5の処理の後に、当該別のページについてのタッチ画面100がディスプレイ20に表示される。
また、この第1実施例では、枠外への手書き入力や別のページの表示の指示が入力された場合に、枠内の手書き文字を文字認識するようにしたが、枠内への手書き入力が無くなった状態が所定時間(たとえば、30秒〜1分)を経過した場合に、枠内の手書き文字を文字認識するようにしてもよい。
[第2実施例]
第2実施例の情報処理装置10は、枠106の位置および大きさをタッチ画面100の範囲内で任意に指定できる以外は、第1実施例の情報処理装置10と同じであるため、異なる内容について説明し、重複した説明については省略することにする。なお、この第2実施例の情報処理装置10では、ユーザが枠106を指定するため、手書き制御処理が開始されたときに表示される初期のタッチ画面100には枠106は表示されない。
図12(A)に示すように、第2実施例では、タッチ画面100において、ボタン画像102a、102b、…の下側に、ボタン画像108aがさらに表示される。このボタン画像108aは、ファイル名に使用する文字を手書き入力するために用いられる。具体的には、図12(A)に示すように、ボタン画像108aがタッチされると、ファイル名に使用する文字を手書きすることが指示され、図12(B)に示すように、ペン120を用いて枠106を指定することができる。図12(B)からも分かるように、ペン120を右斜め下方向に移動させるようにドラッグすると、タッチオンの位置とタッチオフの位置とで枠106が指定(設定)され、タッチ画面100に、枠106が表示される。このとき、ボタン画像108aに代えてボタン画像108bがタッチ画面100に表示される。このボタン画像108bは、枠106内の手書き文字を文字認識し、認識文字を記憶するために用いられる。
なお、この第2実施例では、ファイル名ボタン108aに代えて変換ボタン108bを表示するようにしたが、変換ボタン108bを追加的に表示してもよい。
ユーザは、枠106を指定すると、図13(A)に示すように、枠106内に文字を手書きする。ただし、ボタン画像108bが押されると、枠106内の文字が文字認識されるため、枠106を指定した直後に枠106内に文字を手書きする必要はない。枠106内に文字を手書きした後に、ボタン画像108bが押されると、図13(B)に示すように、枠106内の手書き文字が文字認識され、認識結果が表示領域110に表示される。なお、文字認識に失敗した場合については、第1実施例で示した場合と同様である。
図14は、この第2実施例におけるCPU12の手書き制御処理を示すフロー図である。以下、図14に示す手書き制御処理について説明するが、第1実施例の手書き制御処理で説明した処理と同じ処理については簡単に説明する。
図14に示すように、CPU12は、手書き制御処理を開始すると、ステップS111で初期処理を実行する。ただし、ここでは、枠データ76も消去される。次に、ステップS113で、初期のタッチ画面100をディスプレイ20に表示する。ただし、この初期のタッチ画面100では、枠106は表示されないが、ファイル名ボタン、すなわちボタン画像108aがボタン画像102a、102b、…の下側に表示される。
続くステップS115では、ファイル名ボタンが押されたかどうかを判断する。ステップS115で“NO”であれば、つまりファイル名ボタンが押されていなければ、そのままステップS123に進む。
一方、ステップS115で“YES”であれば、つまりファイル名ボタンが押されれば、ステップS117で、ファイル名ボタンに代えて変換ボタンを表示し、ステップS119で、後述する枠指定処理(図15参照)を実行し、ステップS121で、後述する文字認識処理(図16参照)を実行してからステップS123に進む。
ステップS123では、保存ボタンが押されたかどうかを判断する。ステップS123で“NO”であれば、ステップS125で、タッチ入力中かどうかを判断する。ステップS125で“NO”であれば、そのままステップS115に戻る。一方、ステップS125で“YES”であれば、ステップS127で、タッチ座標を記憶し、ステップS129で、手書き文字を描画して、ステップS115に戻る。
また、ステップS123で“YES”であれば、ステップS131で、保存処理を実行して、手書き制御処理を終了する。このステップS131の保存処理は、第1実施例において図10を用いて説明した内容と同じであるため、重複した説明は省略する。
図15は、図14に示したステップS119の枠指定処理のフロー図である。図15に示すように、CPU12は、枠指定処理を開始すると、ステップS131で、始点が指定されたか否かを判断する。つまり、CPU12は、タッチパネル16からタッチ座標データが出力されていない状態からタッチ座標データが出力される状態に変化したかどうかを判断する。
ステップS131で“NO”であれば、つまり始点が指示されていなければ、そのまま同じステップS131に戻る。一方、ステップS131で“YES”であれば、つまり始点が指示されると、ステップS133で、指示された始点の座標を記憶する。ここでは、枠データ76における一点の座標データが記憶される。次のステップS135では、終点が指定されたかどうかを判断する。ここでは、CPU12は、タッチパネル16からタッチ座標が出力されている状態からタッチ座標データ出力されていない状態に変化したかどうかを判断する。
ステップS135で“NO”であれば、つまり終点が指示されていなければ、ステップS137で、始点と現在のタッチ位置で規定される枠106をタッチ画面100上に表示して、ステップS135に戻る。一方、ステップS135で“YES”であれば、つまり終点が指示されれば、ステップS139で、指示された終点の座標を記憶する。ここでは、枠データ76における他の点の座標データが記憶される。したがって、枠データ76が決定(指定)される。そして、ステップS141で、始点と終点で規定される枠106を表示して、手書き制御処理にリターンする。
図16は、図14に示したステップS121の文字認識処理のフロー図である。この文字認識処理は、第1実施例において図9を用いて説明した内容と同じであるため、重複した説明は省略する。図16に示すように、この第2実施例の文字認識処理では、ステップS37に代えてステップS37bが設けられる。つまり、CPU12は、ステップS35で手書き画像を描画すると、ステップS37bで、変換ボタンが押されたかどうかを判断する。
ステップS37bで“NO”であれば、つまり変換ボタンが押されていなければ、そのままステップS31に戻る。したがって、文字の手書きが続行される。一方、ステップS37で“YES”であれば、つまり変換ボタンが押されれば、ステップS39で、枠106内の手書き文字を文字認識する。
この第2実施例によれば、ユーザが枠を指定し、変換ボタンが押されたタイミングで枠内の手書き文字を文字認識して、ファイル名に使用するので、ファイル名に使用する文字を入力するタイミング、位置および範囲を任意に設定することができる。
また、第2実施例によれば、第1実施例と同様に、手書き文字を含む手書き画像の画像データを保存する場合に、所定の枠内に手書きした文字を用いたファイル名を付けるので、別にファイル名を入力する必要が無く、簡単にファイル名を付すことができる。
なお、この第2実施例では、変換ボタンが押されたタイミングで枠内の文字を文字認識するようにしたが、これに限定される必要はない。たとえば、枠を指定した後、直ぐに、当該枠内に文字を手書きさせ、枠内の文字を文字認識するようにした場合には、第1実施例と同様に、枠内に文字を手書きした後に、枠外に手書きしたり、別のページを表示することを指示したりしたタイミングで、文字認識するようにしてもよい。
また、枠を指定した後、直ぐに、当該枠内に文字を手書きさせ、枠内の文字を文字認識するようにした場合には、枠内への手書き入力が無くなった状態が所定時間(たとえば、30秒〜1分)を経過した場合に、枠内の手書き文字を文字認識するようにしてもよい。
[第3実施例]
この第3実施例の情報処理装置10は、タッチ画面100に枠106を表示せず、手書き入力を検出しなくなり、この状態が継続している時間が所定時間を超えた場合に、それまでに手書き入力されたすべての手書き文字を文字認識するようにした以外は、第1実施例の情報処理装置10と同じであるため、異なる内容について説明し、重複した説明については省略することにする。
図17(A)は、タッチ画面100が表示され、文字が手書きされた様子の一例を示す。ユーザが文字を手書きし、手書き入力が無くなった状態が所定時間(たとえば、30秒〜1分)を経過すると、それまでに手書きされたすべての手書き文字が文字認識される。文字認識に成功すると、図17(B)に示すように、文字認識の認識結果が表示領域110に表示される。
この第3実施例の情報処理装置10では、タッチ画面100に枠106が表示されない点と文字認識処理の一部が異なる以外は、第1実施例の手書き制御処理(図8)と同じである。したがって、ここでは、第3実施例の文字認識処理について図面を用いて説明することにする。ただし、既に説明した処理と同じ処理については、簡単に説明することにする。
図18は、第3実施例における文字認識処理を示すフロー図である。図18に示すように、CPU12は、文字認識処理を開始すると、ステップS30で、タイマをリセットする。つまり、タイマ値を0に設定する。なお、タイマとしては、データ記憶領域70に設けられるタイマを使用することができる。次のステップS31では、手書き入力中かどうかを判断し、“YES”であれば、ステップS33で、タッチ座標を記憶し、ステップS35で、手書き文字を描画して、ステップS30に戻る。
一方、ステップS31で“NO”であれば、ステップS32で、タイマをカウントアップし、ステップS34で、カウント値が所定時間を超えたかどうかを判断する。ステップS34で“NO”であれば、つまりカウント値が所定時間を超えていなければ、手書き入力が無くなってから所定時間を経過していないと判断し、ステップS31に戻る。一方、ステップS34で“YES”であれば、つまりカウント値が所定時間を超えると、手書き入力が無くなってから所定時間を経過したと判断し、ステップS39aで、すべての手書き文字を文字認識する。
なお、ステップS41以降の処理は、第1実施例の文字認識処理と同じであるため、重複した説明は省略する。
この第3実施例によれば、手書き入力がされた後に、所定時間を超えて手書き入力の無い状態が継続した場合に、それまでに入力されたすべての手書き文字を文字認識するので、ユーザの手を煩わすことなく、簡単にファイル名を付すことができる。
たとえば、会議において、議題を電子黒板に手書きし、その後、議論が開始されるまでの間に所定時間を経過すれば、先に手書きしておいた議題を議事録のデータを保存するときのファイル名に使用することができる。
なお、第3実施例では、第1実施例および第2実施例とは異なり、枠を表示せず、また所定時間を経過したときに文字認識が開始されるため、文字認識中では、文字認識中であることをテキストで表示したり、手書き文字の色を変化させたり、手書き文字を点滅させたりしてもよい。
[第4実施例]
第4実施例の情報処理装置10は、手書き文字を囲むように枠106を指定し、手書き画像の画像データを保存する際に枠106内の手書き文字を文字認識するようにした以外は、第2実施例と同様であるため、異なる内容について説明し、重複した説明については省略することにする。
この第4実施例では、第2実施例の場合と同様に、手書き制御処理が開始されたときには、枠106は表示されない。したがって、図19(A)に示すように、枠106が表示されていないタッチ画面100に手書き画像が描画される。手書き入力が或る程度進んだ段階で、ユーザが範囲ボタン(ボタン画像102a)を押すと、図19(B)に示すように、ペン120を用いて枠106を指定することができる。この第4実施例では、手書き文字を囲むようにペン120を用いて枠106を指定する。枠106の指定の方法は、第2実施例の場合と同じである。
続いて、図20に示すように、ユーザは、保存ボタン(ボタン画像102b)を押すと、枠106内の手書き文字が文字認識される。そして、認識結果を用いてファイル名が作成され、図5に示したのと同様の保存画面200がタッチ画面100の前面に表示される。保存処理については、第1実施例の場合と同じである。
したがって、たとえば、この第4実施例では、議事録を板書する場合のように、文字を手書きし、議事録についてのデータ(手書き画像の画像データ)を保存する段階において、手書き文字からファイル名に使用する手書き文字を選択(指定)することができるのである。
なお、この第4実施例では、枠106を指定すると、直ぐにデータを保存するようにしてあるが、データを保存せずに、手書き入力を続けた場合には、指定した枠106を解除(消去)して、指定し直すことができるようにしてもよい。
図21は、第4実施例におけるCPU12の手書き制御処理を示すフロー図である。以下、第4実施例の手書き制御処理について説明するが、既に説明した処理と同じ処理については簡単に説明することにする。
図21に示すように、CPU12は、手書き制御処理を開始すると、ステップS201で初期処理を実行する。ただし、ここでは、枠データ76も消去される。次に、ステップS203で、初期のタッチ画面100をディスプレイ20に表示する。ただし、枠106は表示されない。
続くステップS205では、手書き入力中かどうかを判断し、ここで“NO”であれば、同じステップS205に戻る。一方、ステップS205で“YES”であれば、ステップS207で、タッチ座標を記憶し、ステップS209で、手書き文字を描画する。
そして、ステップS211で、範囲ボタンが押されたかどうかを判断する。つまり、CPU12は、ボタン画像102aがタッチされたかどうかを判断する。ステップS211で“NO”であれば、つまり範囲ボタンが押されていなければ、ステップS205に戻る。一方、ステップS211で“YES”であれば、つまり範囲ボタンが押されれば、ステップS213で、枠指定処理を実行する。つまり、ユーザの指示に従って枠データ76がデータ記憶領域70に記憶される。上述したように、この枠指定処理は、第2実施例で図15を用いて説明した場合と同じであるため、詳細な説明は省略する。
そして、ステップS215で、保存ボタンが押されたかどうかを判断する。つまり、CPU12は、ボタン画像102bがタッチされたかどうかを判断する。ステップS215で“NO”であれば、つまり保存ボタンが押されなければ、同じステップS215に戻って、保存ボタンが押されるのを待機する。一方、ステップS215で“YES”であれば、つまり保存ボタンが押されれば、ステップS217で、後述する文字認識処理(図22)を実行し、ステップS219で、保存処理を実行し、手書き制御処理を終了する。上述したように、ステップS219の保存処理は、第1実施例で図10を用いて説明した場合と同じであるため、詳細な説明は省略する。
図22は、図21に示したステップS217の文字認識処理のフロー図である。この文字認識処理は、第1実施例において図9を用いて説明したステップS39−S47の内容と同じであるため、詳細な説明を省略する。なお、この第4実施例では、手書き入力済みの文字に対して枠指定を行った後に文字認識を行うため、ステップS31−S37は省略される。
この第4実施例によれば、ユーザは、文字を手書きした後に、すべての手書き文字のうちから所望の文字を指定して、手書き画像の画像データを保存する際のファイル名に使用することができるので、手書き文字を利用して、簡単にファイル名を付すことができる。
なお、第4実施例では、枠を指定した後に、保存ボタンを操作するようにしたが、枠を指定した後に、何ら操作が無い状態で所定時間(たとえば、30秒〜1分)を経過した場合に、枠内の手書き文字を自動的に文字認識して、保存画面を表示するようにしてもよい。
また、上述の実施例で挙げた具体的な数値、座標系、画面構成等は一例であり、実際の製品に応じて適宜変更することが可能である。