以下、図面を参照して本発明の実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。また、以下の実施形態で説明されている特徴の組み合わせの全てが、本発明に必須のものとは限らない。
<第1の実施形態>
図1は、本実施形態に係る画像処理システムの全体構成を示すブロック図である。画像処理システムは、MFP(Multifunction Peripheral)101と、ファイルサーバ102とを有する。MFP101とファイルサーバ102は、ネットワーク(例えば、LAN:Local Area Network)100を介して互いに通信可能に接続されている。本実施形態では、MFP101とファイルサーバ102とで画像処理システムを構成しているが、ファイルサーバ102の機能をMFP101が併有する構成であってもよい。
MFP101は、スキャン機能、FAX機能、及びコピー機能などの複数の機能を有する複合機であり、画像処理装置の一例である。MFP101は、制御部210、操作部220、プリンタ221、スキャナ222、及びモデム223を有する。
制御部210は、MFP101全体の動作を制御する。CPU211は、ROM212に記憶された制御プログラムを読み出して、読取、印刷、通信などの各種制御を行う。RAM213は、CPU211の主メモリ、ワークエリア等の一時記憶領域として用いられる。なお、MFP101は、1つのCPU211が1つのメモリ(RAM213またはHDD214)を用いて後述するフローチャートに示す各処理を実行するものとするが、複数のCPUや複数のRAMまたはHDDを協働させて実行するようにしてもよい。
HDD214は、画像データや各種プログラムを記憶する。操作部I/F215は、操作部220と制御部210を接続するインタフェースである。操作部220は、タッチパネル機能を有する液晶表示部やボタンボードなどを備えており、ユーザによる操作、入力、指示を受け付ける受付手段としての役割を担う。
プリンタI/F216は、プリンタ221と制御部210を接続するインタフェースである。プリンタ221で印刷される画像データは、プリンタI/F216を介して制御部210からプリンタ221へ転送され、プリンタ221により記録媒体上に印刷される。
スキャナI/F217は、スキャナ222と制御部210を接続する。スキャナ222は、原稿(文書)を読み取って画像データ(すなわち、スキャン画像データ)を生成し、スキャナI/F217を介して制御部210に入力する。MFP101は、スキャナ222で生成された画像データを、プリンタ221で印刷する他に、ファイル送信またはメール送信することができる。
モデムI/F218は、モデム223と制御部210を接続するインタフェースである。モデム223は、PSTN(Public Switched Telephone Networks)110を介して、不図示のファクシミリ装置との間における画像データのファクシミリ通信を実行する。ネットワークI/F219は、制御部210(すなわち、MFP101)をネットワーク100に接続するインタフェースである。MFP101は、ネットワークI/F219を用いてネットワーク100上の外部装置(ファイルサーバ102など)に画像データや情報を送信したり、各種情報を受信したりする。
ファイルサーバ102は、電子化された文書ファイルの保存や管理を行う外部サーバの一例である。ファイルサーバ102は、制御部310を有する。制御部310は、ファイルサーバ102全体の動作を制御する。CPU311は、ROM312に記憶された制御プログラムを読み出して各種制御処理を実行する。RAM313は、CPU311の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD314は、画像データや各種プログラムを記憶する。
ネットワークI/F315は、制御部310(すなわち、ファイルサーバ102)をネットワーク100に接続するインタフェースである。ファイルサーバ102は、ネットワークI/F315を介してネットワーク100上の他の装置との間で各種情報を送受信する。
図2は、本実施形態に係るMFP101のソフトウェア構成図である。MFP101のソフトウェアは、ネイティブ機能部410と追加アプリケーション420の大きく2つに分けられる。ネイティブ機能部410に含まれる各部は、MFP101に標準的に備えられたものである。一方、追加アプリケーション420は、MFP101に追加インストールされたアプリケーションである。追加アプリケーション420は、Java(登録商標)をベースとしたアプリケーションであり、MFP101への機能追加を容易に実現できる。なお、MFP101には図示しない他の追加アプリケーションがインストールされていても良い。
アプリケーション表示部423は、MFP101の操作部220のタッチパネル機能を有する液晶表示部に、ユーザによる操作、入力、指示を受け付けるためのUI(User Interface)画面を表示する。表示するUI画面の詳細については後述する。
スキャン指示部421は、アプリケーション表示部423を介して入力されたユーザからの情報を受けて、入力情報に含まれるスキャン設定や転送設定と共に、スキャン部411にスキャン処理を要求する。また、後述するアプリケーション転送部424が、画像データの転送先であるファイルサーバ102のフォルダパスの情報を一時的に保存する。
スキャン部411は、スキャン指示部421からのスキャン設定を含んだスキャン要求を受けて、スキャン処理を実行する。スキャン部411は、スキャナI/F217を介してスキャナ222によって、原稿(文書)を読み取って画像データを生成し、画像データと転送設定を転送部412に渡す。
転送部412は、スキャン部411から受け取った画像データを、同じくスキャン部411から受け取った転送設定に従って転送する。画像データの転送先としては、ファイルサーバ102、ネットワーク100上のPC(不図示)等を設定可能である。なお、本実施形態では、スキャン部411が生成した画像データを一旦全て追加アプリケーション420に転送するように設定されているものとする。また、転送部412は、FTP(File Transfer Protocol)クライアント機能を有しており、FTPサーバ機能を有するアプリケーション受信部422に対してFTPで画像データを転送することができる。
アプリケーション受信部422は、転送部412から内部転送された画像データを受信し、アプリケーション転送部424に渡す。
アプリケーション転送部424は、受信した画像データを画像解析部425に渡す。
画像解析部425は、画像データを解析し、画像データ内の文字領域の判定、および文字列認識を行い、解析した情報をアプリケーション転送部424に渡す。
また、アプリケーション転送部424は、画像データ、解析した文字領域情報、及び、ユーザが選択した文字領域の選択領域情報を、アプリケーション表示部423に渡す。
アプリケーション表示部423は、アプリケーション転送部424から受信した画像データ、解析した文字領域情報、及び、選択領域情報を、プレビュー表示部426に渡す。
プレビュー表示部426は、操作部220のタッチパネル機能を有する液晶表示部に、ユーザによる操作、入力、指示を受け付けるためのファイル名設定に関するUI画面を表示する。表示するUI画面の詳細については後述する。
アップロード指示部427は、操作部220のタッチパネル機能を有する液晶表示部にユーザによる操作、入力、指示を受け付けるためのフォルダパス設定に関するUI画面を表示する。表示するUI画面の詳細については後述する。また、アップロード指示部427は、UI画面に入力されたフォルダパスを受け取り、アプリケーション転送部424に渡す。
また、アプリケーション転送部424は、アップロード指示部427が受け取ったフォルダパスに、プレビュー表示部426から受け取った文字列をフォルダやファイル名として追加する。そして、アプリケーション転送部424は、ファイルサーバ102に画像データを転送(送信)する。
アプリケーション転送部424は、転送が終了すると、アプリケーション表示部423に転送が終了したことを通知する。アプリケーション表示部423は、アプリケーション転送部424からの通知を受けて、表示内容を更新する。
また、アプリケーション転送部424は、SMB(Server Message Block)クライアント機能を有してもよい。これにより、アプリケーション転送部424は、SMBサーバ機能を有するファイルサーバ102に対してSMBを用いてファイル及びフォルダ操作を行うことができる。なお、SMBの他に、WebDAV(Distributed Authoring and Versioning protocol for the WWW)や、FTP(File Transfer Protocol)等を使用してもよい。また、SMTP(Simple Mail Transfer Protocol)等を使用してもよい。また、ファイル送信目的以外のSOAP(Simple Object Access Protocol)やREST(Representational State Transfer)等も使用可能である。
図3は、MFP101がスキャン画像データを生成してファイルサーバ102にアップロードする処理を示すフローチャートである。なお、フローチャートに示される一連の処理は、CPU211がHDD214等に記憶された制御プログラムをRAM213に展開し、実行することにより行われる。あるいはまた、フローチャートにおけるステップの一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。各処理の説明における記号「S」は、当該フローチャートにおけるステップを意味する。その他のフローチャートについても同様である。
まず、S301で、アプリケーション表示部423が操作部220にスキャン設定画面を表示する。ユーザは、スキャン設定画面を介して、スキャン部411に行わせるスキャン処理の設定を行う。
図4は、本実施形態に係るスキャン設定画面400の一例を示す。スキャン設定画面400は、5つのスキャン設定ボタン401乃至405を有する。[カラー設定]ボタン401は、原稿スキャン時のカラーまたはモノクロ設定を受け付ける。[解像度設定]ボタン402は、原稿スキャン時の解像度設定を受け付ける。[両面読み取り設定]ボタン403は、原稿スキャン時の両面読み取り設定を受け付ける。[原稿混載設定]ボタン404は、原稿スキャン時にサイズが異なる原稿をまとめてスキャンするかどうかの原稿混載の有無設定を受け付ける。[画像形式設定]ボタン405は、スキャン画像データの画像形式を受け付ける。ユーザがこれらのスキャン設定ボタン401乃至405を用いて設定を行う際には、MFP101がサポートしている範囲で設定項目の候補が表示される。ユーザは、表示された候補の中から所望の設定項目を選択する。なお、上述したスキャン設定ボタンは一例であって、これら全てのスキャン設定ボタンが存在しなくてもよいし、これら以外のスキャン設定ボタンが存在してもよい。ユーザは、このようなスキャン設定画面400を介して、スキャン処理についての詳細な設定を行なうことができる。[キャンセル]ボタン406は、スキャン設定を中止する場合に用いるボタンである。[スキャン開始]ボタン407は、原稿台等にセットした原稿に対するスキャン処理の開始を指示するためのボタンである。
図3に戻り、S302で、アプリケーション表示部423は、[スキャン開始]ボタン407が押されたか、[キャンセル]ボタン406が押されたかを判定する。[スキャン開始]ボタン407が押されたと判定すると、アプリケーション表示部423は、スキャン設定ボタン401乃至405で選択された設定項目を用いて、スキャン指示部421に対してスキャン処理を実行させる。[キャンセル]ボタン406が押されたと判定すると、処理を終了する。
S303で、スキャン指示部421は、スキャン部411にスキャン処理を指示し、原稿(文書)をスキャンする。原稿をスキャンして生成されたスキャン画像データは、S304において、転送部412を通じてアプリケーション受信部422にFTPで内部転送される。なお、図13に示す帳票1300を、スキャンされた原稿とする。
S305で、画像解析部425が、アプリケーション受信部422からの指示に従って、スキャン画像データの解析処理(レイアウト解析処理やOCR処理)を行う。画像解析部425は、例えば、スキャン画像データのヒストグラムを抽出したり、画素の塊を抽出したりして、文字領域や図形領域など、スキャン画像データのレイアウトを解析する。文字領域は、文字列と推認される領域である。文字領域は、一文字の領域も含む。
図5は、S305の画像解析処理の詳細を示すフローチャートである。
S501で、画像解析部425は、アプリケーション受信部422から受け取ったスキャン画像データを、解析できる形態にして読み込む。
S502で、画像解析部425は、読み込んだスキャン画像データを、領域判定や文字列解析しやすい状態に補正する。具体的には、画像解析部425は、スキャン時にずれた原稿の傾きがなくなるようにスキャン画像の傾きを補正したり、原稿の向きを検知してスキャン画像を回転させたりする。
S503で、画像解析部425は、S502で補正したスキャン画像データの内容を解析して領域を判定し、領域の情報(以下、領域情報ともいう)を生成する。領域判定では、画像解析部425は、スキャン画像データ内のどこにテキスト、イメージ、表、ライン等の領域が存在するかを判定する。
表1は、画像解析部425によって生成された領域情報の一例を示す。表1の領域情報は、図13に示す帳票1300をスキャンして得られたスキャン画像データを解析して得られたものとする。以下では、領域情報の「種類」が「テキスト」である領域のことを、「文字領域」と称する。
上記表1において、「番号」は、特定された各領域を一意に示す番号である。この例では、1から29までの通し番号が、領域が認識された順番に付けられている。「領域のX座標」は、特定された各領域の左上隅のX座標を示す。「領域のY座標」は、特定された各領域の左上隅のY座標を示す。以後、領域に対して“座標”と言う場合は、特に断らない限り、領域の左上隅の位置座標のことを意味するものとする。「領域の幅」は、特定された各領域の左辺から右辺までの距離を示す。「領域の高さ」は、特定された各領域の上辺から下辺までの距離を示す。「種類」は、特定された各領域が、「テキスト」、「イメージ」、「表」、「ライン」等のどの種類に該当する領域であるかを示す。本実施形態では、「領域のX座標」、「領域のY座標」、「領域の幅」、及び「領域の高さ」はいずれもピクセルで示すが、ポイントやインチ等で示してもよい。領域情報は、CSVまたはXMLのフォーマットで生成されるものとするが、他のフォーマットでもよい。
図3に戻り、S306で、アプリケーション転送部424は、画像解析部425がS503で生成した領域情報を取得する。アプリケーション転送部424は、画像解析部425がHDD214に一旦保存した領域情報を取得するようにしてもよい。
S307で、プレビュー表示部426が、アプリケーション表示部423を介してアプリケーション転送部424から取得したスキャン画像データ及び領域情報に基づいて、プレビュー画面を操作部220に表示する。後述するように、ユーザは、プレビュー画面を介して、スキャン画像データに関連する情報(例えば、スキャン画像データのファイル名)を設定することができる。
図6は、S307のプレビュー画面表示処理の詳細を示すフローチャートである。図6(a)は、プレビュー画面表示処理の全体的な流れを示し、図6(b)は、プレビュー画面における文字領域の拡大幅の決定処理の流れを示す。上述したように、S303でスキャンした原稿は、図13に示す帳票1300であり、S305で得た領域情報は、表1に示す領域情報であるものとして説明する。
S610で、プレビュー表示部426は、領域情報に基いて基準サイズを決定する。基準サイズとは、領域情報における文字領域の高さのうち、領域数が最も多い高さのことである。したがって、表1の例では、領域数が一番多い「13」(ピクセル)が基準サイズとなる。すなわち、基準サイズは、スキャン画像データに含まれる同じサイズの文字領域の数に応じて決定される。
S620で、プレビュー表示部426は、プレビュー画面における文字領域の拡大幅を決定する。具体的には、プレビュー表示部426は、図6(b)に示すS621乃至S623の処理を行い、文字領域の拡大幅を決定する。文字領域の拡大幅について、図7に示すプレビュー画面の例を用いて以下に説明する。
図7(a)は、S610乃至S650の処理(すなわち、文字領域の拡大処理及びプレビュー表示自体の拡大処理)を行わずに、後述するS660のプレビュー表示処理を行った場合のプレビュー画面700の一例を示す。プレビュー画面700は、スキャン画像データのファイル名表示領域701、ファイル名のフォーマット等を設定するためのボタン702、及びスキャン画像データをプレビュー表示するためのプレビュー表示領域710を有する。また、プレビュー画面700は、[戻る]ボタン730、及び[次へ]ボタン731を有する。
プレビュー表示領域710は、スキャン画像データを表示するとともに、スキャン画像データの表示状態を変更するボタン711乃至714、及びファイル名文字列設定領域715乃至726を表示する。
[画面上部スクロール]ボタン711がユーザによって押されると、プレビュー表示部426は、プレビュー表示領域710に表示されているスキャン画像データの領域を上に向かってスクロールする。[画面下部スクロール]ボタン712がユーザによって押されると、プレビュー表示部426は、プレビュー表示領域710に表示されているスキャン画像データの領域を下に向かってスクロールする。なお、プレビュー表示領域710は、領域を左に向かってスクロールする画面左部スクロールボタン、あるいは領域を右に向かってスクロールする右部スクロールボタン(いずれも不図示)を表示しても良い。
[画面拡大]ボタン713がユーザによって押されると、プレビュー表示部426は、プレビュー表示領域710に表示されているスキャン画像データの領域を拡大表示する。[画面縮小]ボタン714がユーザによって押されると、プレビュー表示部426は、プレビュー表示領域710に表示されているスキャン画像データの領域を縮小表示する。
プレビュー表示部426は、ファイル名文字列設定領域715乃至726を、画像解析部425が生成した領域情報に従って、プレビュー表示領域710に表示する。図7(a)のプレビュー画面700では、プレビュー表示部426は、表1に示す領域情報の座標をそのまま用いて、文字列設定領域として表示している。
領域情報は、表1に示すように、スキャン画像データ上での各領域の位置を示している。ユーザがプレビュー画面700上で文字領域をタッチすると、プレビュー表示部426は、選択された文字領域に対して文字認識処理(OCR処理:Optical Character Recognition処理)を行う。プレビュー表示部426は、文字認識処理によって、選択された文字領域(画像領域)に含まれている文字(テキストデータ)を抽出する。
文字認識処理は、例えば、文字領域に含まれている画素群と、予め登録されている辞書とをマッチング処理することで、文字(テキストデータ)を認識する処理である。かかる文字認識処理は、処理に時間を要する場合がある。そのため、本実施形態では、画像解析によって抽出された文字領域に逐次的に文字認識処理を行わずに、ユーザが所望する文字領域に対して文字認識処理を行うことで、処理の高速化を図っている。
プレビュー表示部426は、ユーザによって選択された文字領域から抽出した文字(テキストデータ)を、ファイル名表示領域701に設定する。ユーザが文字領域を選択する際、文字領域が小さいと、タッチ操作により認識した座標が、ユーザが意図した領域から外れてしまうことがある。そこで、後述する図7(b)のプレビュー画面700に示すように、プレビュー表示部426は、ファイル名文字列設定領域715乃至726を拡大して表示し、ユーザが意図した文字領域を選択しやすくする。
なお、ユーザが、ファイル名表示領域701の領域をタッチ(選択)すると、プレビュー表示部426は、ソフトウェアキーボード(不図示)を表示し、ユーザがソフトウェアキーボードを操作することによって、ファイル名の編集を可能にすることもできる。
図7(a)、(b)に示したプレビュー画面700では、どのファイル名文字列設定領域715乃至726も、ユーザによって選択された状態ではない。
次に、図6(b)を参照して、プレビュー画面における文字領域の拡大幅の決定処理の流れについて説明する。
S621で、プレビュー表示部426は、領域情報に基づいて、各文字領域間の間隔を算出し、そのうち最も小さい間隔の値を決定する。ここでは、番号7と番号9の領域間の間隔が最も小さく、値は10である。
S622で、プレビュー表示部426は、文字領域の拡大幅を算出する。プレビュー表示部426は、S610で決定した基準サイズの文字領域を、規定のサイズまで拡大するために必要な拡大幅を算出する。規定のサイズとは、文字領域がプレビュー画面にファイル名文字列設定領域として表示された際に、ユーザが選択しやすいサイズとして予め規定されたサイズである。ここでは、規定サイズを30として、基準サイズ13を規定サイズまで拡大するものとする。この場合、30と13の差分である17が、文字領域の拡大幅として算出される。なお、拡大幅には上限を設けても良い。
S623で、プレビュー表示部426は、文字領域の拡大幅の補正を行う。上述したように、S622で、文字領域の拡大幅は17と算出された。一方、S621で、文字領域間の最小間隔の値は10と算出された。つまり、全ての文字領域を拡大幅の分だけ拡大してしまうと、間隔が拡大幅より小さい文字領域同士が重なってしまうことがあり、ユーザが意図した文字領域の選択をしにくくしてしまうことがある。よって、この場合、文字領域同士が重ならないように、文字領域の拡大幅を17ではなく、文字領域間の最小間隔である10として決定し、図6(a)のS630に進む。
S630で、プレビュー表示部426は、S620で決定した拡大幅を用いて、各文字領域を拡大する。ここでは、S620で決定された拡大幅が10であるため、プレビュー表示部426は、各文字領域を上下左右に5ずつ拡大させる。なお、文字領域の拡大は、上下左右ではなく、上下のみを拡大するようにしてもよい。
図7(b)は、S640およびS650の処理(すなわち、プレビュー表示自体の拡大処理)を行わずに、後述するS660のプレビュー表示処理を行った場合のプレビュー画面700の一例を示す。図7(b)のプレビュー画面700は、図7(a)のプレビュー画面700と比較して、S620およびS630の処理(すなわち、文字領域の拡大処理)によって、ファイル名文字列設定領域が拡大されている点が異なる。
S640で、プレビュー表示部426は、プレビュー表示されるスキャン画像データの拡大率を算出する。プレビュー表示部426は、プレビュー画面における文字領域の拡大だけでなく、プレビュー表示されるスキャン画像データ自体を拡大するために、スキャン画像データの拡大率を算出する。上述した例では、S630までの処理で、各文字領域のサイズは10拡大されている。例えば、基準サイズである文字領域のサイズ13は、23に拡大されている。しかしながら、領域が拡大されても、前述したS623で文字領域の拡大幅が文字領域の最小間隔に合わせて補正されるため、最も数の多い基準サイズの領域は、規定サイズ30よりも小さいままである。そこで、本ステップで、プレビュー表示部426は、拡大した文字領域を、さらにその文字領域が規定サイズよりも大きく表示されるようにするために必要な、プレビュー表示されるスキャン画像データ自体の拡大率を算出する。具体的には、基準サイズの領域に基づいて、拡大した文字領域のサイズ23が規定サイズ30で表示されるようにするための拡大率を決定する。拡大した文字領域のサイズは規定サイズ以上になればよく、この場合、拡大率は、小数点以下第2位まで求めるとすると、30÷23≒1.31倍とすることができる。算出した拡大率は、後述するS660のスキャン画像データのプレビュー表示において、スキャン画像データの拡大表示に用いられる。
S650で、プレビュー表示部426は、初期表示座標を決定する。ここでは、各領域のうち、最小のY座標と最小のX座標を、最初にプレビュー画面の左上に表示する初期表示座標とする。各文字領域のうち、最小のY座標は番号1の領域で値は41、最小のX座標は番号3の領域で値は48である。S630で文字領域が拡大されていることを考慮して各座標を5減算し、Y座標は36、X座標は43となる。さらに若干の余白を設けるために各座標を2減算し、Y座標は34、X座標は41としても良い。
S660で、プレビュー表示部426は、S650で決定した初期表示座標と、S640で算出した拡大率とを用いて、スキャン画像データのプレビュー表示を行う。
図8(a)は、S660でプレビュー表示処理を行った場合のプレビュー画面800の一例を示す。図8(a)のプレビュー画面800は、文字領域を拡大した図7(b)のプレビュー画面700と比較して、さらに、プレビュー表示自体が拡大されている。そうすることで、ユーザは、意図した領域を選択しやすくなる。
図3に戻り、S308で、プレビュー表示部426は、プレビュー画面800を介してファイル名生成処理を実行する。
図9は、S308のファイル名生成処理の詳細を示すフローチャートである。
S901で、プレビュー表示部426は、ユーザが操作部220に表示されたプレビュー画面にタッチしたかどうかを判定する。タッチされたと判定すると、S902へ進み、プレビュー表示部426は、タッチされた位置の座標を取得する。タッチされていないと判定するとS901へ戻る。
S903で、プレビュー表示部426は、タッチされた位置の座標が文字領域と重なるか判定する。重なるか否かの判定は、タッチされた位置の座標が、プレビュー表示領域710に表示されているファイル名文字列設定領域715乃至726の座標領域内にあるかどうかで判定する。重なると判定すると、S904へ進み、重なっていないと判定するとS909へ進む。
S909で、プレビュー表示部426は、[次へ]ボタン731もしくは[戻る]ボタン730が押下されたか判定する。押下されたと判定すると、図9の処理(すなわち、S308の処理)を終了し、図3のS309へ進む。一方、押下されてないと判定するとS901へ戻る。
S904で、画像解析部425は、タッチされた位置の座標が重なった文字領域に対してOCR処理を行い、当該文字領域に含まれている文字列を取得する。画像解析部425は、取得した文字列を、解析結果としてプレビュー表示部426へ渡す。
S905で、プレビュー表示部426は、ファイル名表示領域701に表示中のファイル名を取得する。ファイル名表示領域701に何も表示されていない場合は、ファイル名を取得せずに、次に進む。
S906で、プレビュー表示部426は、S905で取得したファイル名の末尾に区切り文字を追加する。本実施形態では、区切り文字としてアンダーバー(“_”)を使用するが、その他の文字を使用してもよい。なお、S905でファイル名を取得できなかった場合は、区切り文字を追加せずに次に進む。
S907で、プレビュー表示部426は、S906で追加した区切り文字に続けて、S904で解析結果として取得した文字列を追加する。なお、S905でファイル名を取得できなかった場合には、S906で区切り文字も追加されないため、S904で取得した文字列が、ファイル名として最初の文字列となる。
S908で、プレビュー表示部426は、S907で生成した文字列をファイル名としてファイル名表示領域701に設定し、S901へ戻る。
なお、本実施形態では、S901乃至S908の処理を繰り返し、ファイル名文字列設定領域715、717、716の順に、文字領域が選択されたものとする。図8(b)は、ファイル名文字列設定領域715、717、716が選択された状態のプレビュー画面800を示す。図8(b)では、ファイル名表示領域701に、選択されたファイル名文字列設定領域715、717、716から取得した文字列が、区切り文字を介して連結されて設定されている。また、プレビュー画面800において、選択されたファイル名文字列設定領域715、717、716は、選択されていないファイル名文字列設定領域と区別可能なように表示される。
以上説明したように、プレビュー表示部426は、プレビュー画面800を介してファイル名生成処理を実行する。
次いで、図3に戻り、S309で、プレビュー表示部426は、上述したS909での操作内容を判定する。具体的には、プレビュー表示部426は、S909で[次へ]ボタン731が押されたのか、それとも[戻る]ボタン730が押下されたのかを判定する。[次へ]ボタン731が押されたと判定すると、S310へ進み、[戻る]ボタン730が押下されたと判定すると、S301へ戻る。
S310で、プレビュー表示部426は、ファイル名表示領域701に設定されたファイル名を取得する。プレビュー表示部426は、取得したファイル名をアップロード指示部427へ渡す。
S311で、アップロード指示部427は、アップロード設定画面を操作部220に表示する。ユーザは、アップロード設定画面を介して、アプリケーション転送部424に行わせるファイルサーバ102への外部転送(アップロード)に関する設定を行うことができる。
図10は、アップロード設定画面1000の一例を示す。アップロード設定画面1000において、フォルダパス入力欄1001は、外部転送先であるファイルサーバ102のフォルダパス設定を受け付ける。ユーザがフォルダパス入力欄1001をタップすると、アップロード指示部427は、ソフトウェアキーボード(不図示)を表示する。ユーザは、表示されたソフトウェアキーボードを介して、フォルダパス入力欄1001にフォルダパスを入力する。図10の例では、フォルダパス入力欄1001に文字列“2017_12_12”が入力されている。フォルダパスの設定の終了を受け付けると、アップロード指示部427は、設定されたフォルダパスを取得し、ソフトウェアキーボードを閉じる。なお、フォルダパスの設定は、フォルダパス入力欄1001以外から行えるようにしてもよい。例えば、MFP101が保持するアドレス帳からフォルダパスを設定可能なようにしても良い。
S312で、アップロード指示部427は、アップロード設定画面1000の[アップロード]ボタン1021が押下されたか、それとも、[戻る]ボタン1020が押下されたか判定する。[アップロード]ボタン1021が押下されたと判定すると、S313へ進み、[戻る]ボタン1020が押下されたと判定すると、S307へ戻る。
S313で、アップロード指示部427は、HDD214等のメモリに予め記憶されたファイルサーバ設定を取得する。ファイルサーバ設定には、ファイルサーバ102のホスト名、フォルダパスの起点、ファイルサーバ102にログインするためのユーザ名及びパスワードが含まれる。アップロード指示部427は、取得したファイルサーバ設定、S311で取得したフォルダパス設定、及びS310で取得したファイル名を、アプリケーション転送部424へ渡す。
S314で、アプリケーション転送部424は、スキャン画像データの格納先となる格納先パスを生成する。格納先パスは、ファイルサーバ設定に含まれるファイルサーバ102のホスト名とフォルダパスの起点に、S311で取得したフォルダパスを加えて生成される。これにより、例えば“\\server01\Share\2017_12_12”という格納先パスが生成される。
S315で、アプリケーション転送部424は、ファイルサーバ102にアクセスする。アプリケーション転送部424は、S313で取得したファイルサーバ設定に含まれるユーザ名とパスワードをファイルサーバ102に送信し、ファイルサーバ102によるユーザ認証の結果を受信する。
S316で、アプリケーション転送部424は、受信したユーザ認証の結果に基づいて、ユーザ認証が成功したか(ファイルサーバ102にログインできたか)否かを判定する。ユーザ認証が成功した場合はS317に進み、ユーザ認証が失敗した場合は処理を終了する。
S317で、アプリケーション転送部424は、S314で生成した格納先パスが示すフォルダに、スキャン画像データを外部転送(アップロード)する。
以上説明したように、MFP101は、スキャン画像データを生成し、ユーザがプレビュー画面上で選択した文字領域に基づいてファイル名を生成し、ファイル名が設定されたスキャン画像データをファイルサーバ102にアップロードする。また、ユーザが文字領域を選択する際には、文字領域を拡大してファイル名文字列設定領域として用い、さらにプレビュー表示の拡大を行うことで、ユーザが意図した文字領域の選択を行いやすいようにする。
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。本実施形態は、上述したS303のスキャン処理で図14に示す帳票1400をスキャンし、上述したS305の解析処理で、下記の表2に示す領域情報を得たものとして説明する。表2に示す領域情報を用いて第1の実施形態による処理を行うと、プレビュー表示が拡大され過ぎてしまい、かえってユーザによる文字領域の選択を行いにくくしてしまう。そこで、本実施形態では、帳票の表の中にある文字領域など、ファイル名の設定に使用しない文字領域を拡大の対象外とする。
まず、図11を参照して、帳票1400に第1の実施形態による処理を適用した場合の例を説明する。
S621の文字領域間の最小間隔を算出する処理では、番号18と番号22の領域間の間隔が一番小さく、値は0となる。したがって、S623の文字領域の拡大幅の補正処理では、文字領域の拡大幅が0に補正されるため、S630の文字領域の拡大処理では、各文字領域は拡大されない。
図11(a)は、S640およびS650の処理(すなわち、プレビュー表示自体の拡大処理)を行わずに、後述するS660のプレビュー表示処理を行った場合のプレビュー画面1100の一例を示す。図11(a)のプレビュー表示領域710は、帳票1400に対応するファイル名文字列設定領域1115乃至1126を含む。上述したように、第1の実施形態の処理によると、文字領域の拡大幅は0に補正されるため、図11(a)のプレビュー画面1100では、各文字領域は拡大されていない。なお、図11(a)のプレビュー画面1100は、帳票1400の上部を示し、図11(b)のプレビュー画面1100は、プレビュー表示を下方にスクロールし、帳票1400の中部を示している。図11(b)のプレビュー領域710は、帳票1400に対応する表1130を含む。
そして、S640のプレビュー表示の拡大率算出処理では、帳票1400の基準サイズ9の領域が、規定サイズ30以上で表示される拡大率が算出される。この場合、拡大率は、30÷9≒3.34倍(小数点以下第2位まで有効)と算出される。プレビュー表示部426は、算出した拡大率を用いてプレビュー表示を拡大し、基準サイズ9の領域が規定サイズ30以上で表示されるようにする。続いて、S650、およびS660の処理により、プレビュー表示部426は、図11(c)に示すようなプレビュー画面1100を表示する。図示されるように、第1の実施形態による処理では、プレビュー表示の拡大率が高くなってしまい、画面内に表示できるファイル名文字列設定領域が少なくなってしまう場合がある。この場合、ユーザは、意図したファイル名文字列設定領域を選択しにくくなってしまう。
次に、図12を参照して、第2の実施形態による処理について説明する。第2の実施形態では、ファイル名の設定に使用しない文字領域を拡大の対象外にすることで、ユーザが意図した文字領域を選択しやすいようにする。
まず、S621の文字領域間の最小間隔を算出する処理において、帳票の表内の文字領域を対象外とする。表2によると、文字領域間の間隔が一番小さいのは、番号18と番号22の文字領域間の間隔である。これらの文字領域は、番号13の領域内、すなわち表内の文字領域である。このような場合、さらに表以外に文字領域が存在する場合に、表内の文字領域を除いて、文字領域間の最小間隔を算出する。その結果、番号7と番号9の文字領域間の間隔が最も小さく、値は10である。そして、S623の拡大幅の補正処理では、まず、プレビュー表示部426は、S610の基準サイズ決定処理によって取得した基準サイズを修正する。表2によると、表内の文字領域を含めて決定した基準サイズは9であったが、表内の文字領域を除くと、基準サイズは13となり、拡大幅は17となる。さらに、文字領域の拡大幅は文字領域間の最小間隔に合わせて補正されるため、補正後の文字領域の拡大幅は10となる。
次いで、S630の文字領域の拡大処理では、S621の処理で対象外とした表内の文字領域以外の文字領域を拡大する。
図12(a)は、S640およびS650の処理(すなわち、プレビュー表示自体の拡大処理)を行わずに、後述するS660のプレビュー表示処理を行った場合のプレビュー画面1200の一例を示す。図12(b)は、プレビュー表示を下方にスクロールし、帳票1400の中部を表示しているプレビュー画面1200の一例を示す。両図に示されるように、本実施形態では、表内の文字領域を除く文字領域が拡大される。
そして、S640のプレビュー表示の拡大率算出処理では、基準サイズ13を拡大してサイズが23となった領域が、規定サイズ30以上で表示されるようになる拡大率を算出する。さらに、S650、およびS660の処理により、図12(c)に示すようなプレビュー画面1200が表示される。
ここでは、表内の文字領域を拡大対象から除外する例を説明したが、表以外から、ファイル名の設定に使用しない文字領域を除外するようにしてもよい。例えば、縦横比が所定値以上の文字領域を除くことで、ファイル名に使用されにくい長い文字列を含む文字領域を除外することができる。あるいは、原稿の下部にある文字領域を除外したり、サイズが所定値以下である文字領域を除外したりしてもよい。
<第3の実施形態>
上述した実施形態では、文字領域を拡大してファイル名文字列設定領域として表示する例を説明した。一方、本実施形態では、文字領域を拡大して表示せずに、ユーザが選択可能な領域自体を拡大することで、ユーザによる文字領域の選択を容易にする。本実施形態におけるプレビュー画面の例を、図7を参照して以下に説明する。
図7(a)は、上述したように、文字領域が拡大して表示されていないプレビュー画面700を示している。一方、図7(b)は、文字領域が拡大して表示されているプレビュー画面700を示す。本実施形態では、あくまで表示上は、図7(a)のプレビュー画面700のように、文字領域を拡大せずに表示するが、ユーザがタッチして選択可能な領域は、図7(b)のプレビュー画面700のように、拡大した領域を用いる。
このように、本発明におけるプレビュー画面では、文字領域を拡大して表示せずに、ユーザが選択可能な領域自体を拡大することで、ユーザによる文字領域の選択を容易にすることができる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。