以下、本発明の実施の形態について図面を参照しながら詳述する。
〔第1の実施の形態〕
図1は、本発明の実施の形態に係るカメラスキャナ101を含むスキャナシステム100の概略構成を示す図である。
図1において、カメラスキャナ101はネットワーク104にてホストコンピュータ102、及びプリンタ103に接続されている。そして、ホストコンピュータ102からの指示により、カメラスキャナ101から画像を読み取るスキャン機能や、スキャンデータをプリンタ103により出力するプリント機能の実行が可能である。
また、ホストコンピュータ102を介さずとも、カメラスキャナ101への直接の指示により、スキャン機能、及びプリント機能の実行が可能である。
図2は、図1におけるカメラスキャナ101の外観を示す図である。
図2において、カメラスキャナ101は、大きく分けて、コントローラ部201、カメラ202、腕部203、及びプロジェクタ207で構成される。
図2では、カメラスキャナ101が書画台204に設置されている様子を表している。撮像装置であるカメラ202のレンズは書画台204方向に向けられており、原稿を置くことが可能な撮像領域である、破線で囲まれた読み取り領域205の画像を読み取り、撮像可能である。図2の例では読み取り領域205に原稿206が置かれている。
そして、カメラスキャナ101の本体であるコントローラ部201と、カメラ202は、腕部203により連結されている。腕部203は関節を用いて自由に曲げ伸ばしが可能である。表示装置であるプロジェクタ207は、書画台204などに、操作を補助する画像を投影することで画像を表示する。このプロジェクタ207の代わりにLCDタッチパネルを用いてもよい。
図3は、図2におけるコントローラ部201の概略構成を示す図である。
図3において、コントローラ部201は、主にシステムバス301に接続されたCPU302、記憶デバイス、各種コントローラ、及び各種インタフェースで構成される。
CPU302はコントローラ部201全体の動作を制御する中央演算装置である。RAM303は揮発性メモリである。ROM304は不揮発性メモリであり、CPU302の起動用プログラムコードなどが記憶されている。
HDD305はRAM303の記憶容量と比較して大容量なハードディスクドライブである。HDD305にはコントローラ部201の実行するカメラスキャナ101の制御用及び各種プログラムコードなどが記憶されている。
CPU302は電源ONなどの起動時、ROM304に記憶されている起動用プログラムコードを実行する。この起動用プログラムコードは、HDD305に記憶されている制御用プログラムコードを読み出し、RAM303に展開するためのコードである。
CPU302は起動用プログラムコードを実行すると、続けてRAM303に展開した制御用プログラムコードを実行することで各種制御を行う。後述するフローチャートの処理は、HDD305に記憶され、RAM303に展開されたプログラムコードをCPU302が実行することで実現される。
また、CPU302は制御用プログラムの動作に用いるデータをRAM303に記憶したり、またデータをRAM303から読み取ったりする。HDD305にはさらに、制御用プログラムの動作に必要な各種設定や、カメラ入力によって生成した画像データなどの各種データを記憶することができ、それらの各種データは、CPU302によって読み書きされる。
CPU302はネットワークインタフェース306を介してネットワーク104の他の機器との通信を行う。
画像処理プロセッサ307はRAM303に記憶された画像データを読み出して処理し、RAM303へ書き戻す。画像処理プロセッサ307が実行する画像処理は、回転、変倍、色変換などである。
カメラインタフェース308はカメラ202と接続され、CPU302からの指示に応じてカメラ202から画像データを取得してRAM303へ書き込む。また、CPU302からの制御コマンドをカメラ202へ送信し、カメラ202の設定や制御を行う。
ディスプレイコントローラ309はプロジェクタ207とLCDタッチパネル330が接続され、CPU302の指示に応じてそれらに画像を表示させる。
シリアルインタフェース310はシリアル信号の入出力する。ここではLCDタッチパネル330に接続され、CPU302はLCDタッチパネル330が押下されたときに、シリアルインタフェース310を介して押下された座標を取得する。
オーディオコントローラ311はスピーカ340に接続され、CPU302の指示に応じて音声データをアナログ音声信号に変換し、スピーカ340を通じて音声を出力する。
USBコントローラ312はCPU302の指示に応じて外付けのUSBデバイスを制御する。ここではUSBメモリやSDカードなどの外部メモリ350がUSBコントローラ312に接続され、外部メモリへのデータの読み書きを行うようになっている。
図4は、図1におけるカメラスキャナ101の制御用プログラムのブロック図である。
図4において、カメラスキャナ101の制御用プログラムは前述のようにHDD305に記憶され、CPU302が起動時にRAM303に展開することで実行される。
カメラスキャナ101の制御用プログラムは、メイン制御部402、操作表示部403、ネットワーク通信部404、データ管理部405、撮像処理部406、画像認識部407、表示処理部408、及び出力ファイル生成部409を備える。
メイン制御部402はプログラムの本体であり、プログラム内の各モジュールを制御して、カメラスキャナ制御用プログラムを実行する。操作表示部403は、メイン制御部402からの描画要求を受け、ディスプレイコントローラ309を介して、プロジェクタ207またはLCDタッチパネル330へ描画する。
また、操作表示部403は、LCDタッチパネル330が押下されたときにシリアルインタフェース310を介して押下座標を受信し、描画中の操作画面の内容と押下座標を対応させて、押下されたボタンなどの操作内容を判断する。この操作内容をメイン制御部402へ通知する。以上説明した操作表示部403は、抽出された原稿画像データから生成され、原稿が置かれた位置に原稿を示す画像である残像画像を表示装置に表示させる。また、操作表示部403は、後述するように、原稿が検出領域に侵入したことが検出された場合に、検出領域に侵入した原稿と重ならないように残像画像のサムネイル画像を表示装置に表示させる。
ネットワーク通信部404は、ネットワークインタフェース306を介して、ネットワーク104の他の機器とTCP/IPによる通信を行う。
データ管理部405は、制御用プログラム401の実行において必要な設定データなどをHDD305の所定の領域へ記憶し、管理する。
撮像処理部406は、カメラインタフェース308を介してカメラ202を制御し、撮像処理部406のタイミング検出部410で検出されたタイミングで撮像したカメラ画像を画像認識部407へ送信する。
また、動き認識部412が生成したカメラ画像の動きに対応するコマンドを、表示処理部408へ送信する。
タイミング検出部410は、原稿がフレームインしたタイミング、静止したタイミング、及びフレームアウトするタイミングを検出する。これらのタイミングは、カメラ202から受信したカメラ画像に基づいて検出することができる。
ここで、フレームアウトタイミングは、原稿が読み取り領域205からフレームアウトする直前のタイミング、フレームアウトし始めるタイミング、またはその間の任意のタイミングとしてもよい。
動き認識部412は、カメラ202から受信した1フレームごとのカメラ画像のフレーム間差分を計算することで、原稿台の手や原稿の動きを認識する。また、検出した動きを、予め対応づけられたコマンドに変換する。
これにより、原稿台でカメラに向けた手振り操作などのジェスチャ操作を行うことによるカメラスキャナ101への指示が可能となる。以上説明した撮像処理部406は、原稿を検出するための検出領域に原稿が侵入したことを検出する。
画像認識部407は、カメラ202からカメラ画像を受信し、受信したカメラ画像の内容を認識する。
画像認識部407に含まれる原稿画像データ抽出部411は、タイミング検出部410が検出した静止タイミングで撮像され送信されてきたカメラ画像から、原稿画像データを抽出する。抽出された原稿画像データは、RAM303に記憶されるとともに、データ管理部405によってHDD305の所定の領域へ記憶され、管理される。この原稿画像データ抽出部411は、原稿が置かれた撮像領域を撮像装置により撮像することで得られた画像から原稿の画像を示す原稿画像データを抽出する。
表示処理部408は、RAM303に記憶された原稿画像データを表示するタイミングを司る。動き認識部412や画像認識部407から受信した指示に従って、原稿画像データを指定された位置に表示または非表示にするように、操作表示部403に対して指示を行う。
出力ファイル生成部409は、データ管理部405が記録した原稿画像データを変換し、適切な画像に整えたうえで、所定のデータ出力形式の出力ファイルを生成する。
図5は、図3におけるHDD305で、図2で示した読み取り領域205を撮像して得られた読み取り領域背景画像が記憶される記録領域の構造を示す図である。
図5(A)は、読み取り領域205を撮像して得られた読み取り領域背景画像1901が記憶される記憶領域を示す図である。
図5(A)において、読み取り領域背景画像1901は、IMGDIRというディレクトリに記憶される。
後述するように、読み取り領域205の撮像は繰り返し行われ、読み取り領域205を撮像して得られた最新の画像は最新静止画像として記憶され、その1つ前に撮像して得られた画像は直前静止画像として記憶される。なお、最初に読み取り領域205を撮像して得られた画像には、1つ前に撮像して得られた画像が存在しないため、最初は最新静止画像のみが記憶されることとなる。
図5(B)は、上述した最新静止画像1902が記憶される記憶領域を示す図である。同図に示されるように、最新静止画像1902は、読み取り領域背景画像1901が記憶されているディレクトリと同じIMGDIRに記憶される。
図5(C)は、上述した最新静止画像1903及び直前静止画像1902が記憶される記憶領域を示す図である。同図に示されるように、最新静止画像1903及び直前静止画像1902は、読み取り領域背景画像1901が記憶されているディレクトリと同じIMGDIRに記憶される。
なお、図5(B)における最新静止画像1902の次に撮像して得られた新たな画像が最新静止画像となるため、そのときは最新静止画像1902は直前静止画像1902となる。
原稿画像データ抽出部411は、読み取り領域背景画像1901と最新静止画像との差分を原稿画像データとする。
図6は、図3におけるHDD305で、原稿画像データが記憶される記録領域の構造を示す図である。
図6において、原稿画像データは、DOCDIRというディレクトリに記憶される。そして、図6(A)は、1枚目の原稿を示す原稿画像データ2001がIMG_0001として記憶されていることを示している。
図6(B)は、2枚目の原稿を示す原稿画像データ2001がIMG_0002として新たに記憶されていることを示し、図6(C)は、3枚目の原稿を示す原稿画像データ2003がIMG_0003として新たに記憶されていることを示している。
図7は、図3におけるRAM303に記憶される文書属性情報及び画像属性情報を示す図である。図7(A)(B)(C)は、それぞれ図6(A)(B)(C)に対応している。
図7(A)は、1枚目の原稿を示す原稿画像データの文書属性及び画像属性情報2011を示す。図7(B)は、1、2枚目の原稿を示す原稿画像データの文書属性及び画像属性情報2011,2012を示す。図7(C)は、1、2、3枚目の原稿を示す原稿画像データの文書属性及び画像属性情報2011,2012,2013を示す。
図7において、文書属性情報は、原稿数及びディレクトリ名で構成される。原稿数は原稿を読み取った枚数を示し、ディレクトリ名は、記憶先を示している。
また、画像属性情報は、原稿画像データごとに作成され、No、表示座標、表示中情報、幅、高さ、format、色空間、及びファイル名で構成される。
このうち、Noは、原稿画像データの番号を示す。表示座標は、原稿画像データをプロジェクタ207で表示する位置を示す値である。
図18(A)は、原稿画像データの座標を示す図である。
図18(A)に示されるように、本実施の形態では、原稿画像データを表示する位置を3点P11(X1,Y2)、P12(X2,Y1)、P13(X3,Y3)の3点で示すことで一意的に表示する位置を特定できる。なお、2点と一辺のなす角、Q1、Q2、θを用いても、位置を一意に特定できる。
図7の説明に戻り、表示中情報は、falseまたはtrueで示され、falseはプロジェクタ207で表示されていないことを示し、trueはプロジェクタ207で表示されていることを示している。
幅、及び高さは、原稿画像データの幅、及び高さを示す。formatは、画像データ形式を示し、図の場合はrawとなっている。色空間は、原稿画像データの色空間を示し、図の場合はRGBとなっている。ファイル名は、原稿画像データのファイル名を示す。
図8は、原稿の操作例、及び表示画像例を示す図である。
図8(A)は、読み取り領域205で原稿501の静止が検出され、撮像が実行された様子を示す図である。
撮像が実行されると、プロジェクタ207により、原稿があった位置と同じ位置に、原稿と重ねるようにして、読み取った原稿の画像が投影される。
図8(B)は、原稿501を手503で取り除くと、原稿のあった位置に読み取った原稿の画像である残像画像502が投影される様子を示す図である。
図8(C)は、読み取り領域205に残像画像502が表示されている様子を示す図である。
図8(D)は、カメラ202からの画像から手を認識することにより、手504による残像画像502の移動、拡大、縮小、印刷、及び記憶などの操作をする様子を示す図である。なお、これらの操作は、以下では主に手を用いて行うこととして説明しているが、手に限ったものではなく、ペンなどの特定の物理媒体を認識するようにして操作を行うようにしてもよい。
図8(E)は、残像画像502が表示されている読み取り領域205に、新たな原稿505をフレームインさせた瞬間の様子を示す図である。
図8(F)は、新たな原稿505のフレームインが検出され、表示していた残像画像502が非表示となった様子を示す図である。
この状態で読み取り領域205に新たな原稿505を置けば、再び図5(A)で説明した状態に戻って、原稿を読み込むことができる。これらを繰り返すことで、操作できる残像画像を残しつつ、原稿の連続読み込みを行った際に、残像画像が新たな原稿に重なることによる認識率の低下を防ぐことができる。
図9は、カメラ202により撮像して得られた画像と射影変換後の画像とを示す図である。
カメラ202は厳密に読み取り領域205の真上にあるわけではないため、図に示されるように、撮像された画像701の形状は歪んでいる。そこで、撮像処理部406は、撮像された画像701を矩形に変換する射影変換のパラメータを算出する。
そして、撮像処理部406は、算出した射影変換パラメータを使用して、画像701を画像702のように矩形に補正する。
図10は、図4における撮像処理部406により実行される初期化設定処理の手順を示すフローチャートである。
図10において、撮像処理部406は、背景画像として、原稿がない状態の書画台204の読み取り領域205を撮像し(ステップS601)、画像認識部407へ送信する。
次いで、撮像処理部406は、図9で説明した射影変換パラメータを算出し(ステップS602)、算出した射影変換パラメータを使用して、撮像した読み取り領域205の画像を射影変換することで、矩形に補正する(ステップS603)。
そして、撮像処理部406は、補正された画像である読み取り領域背景画像を、データ管理部405を介してHDD305へ記憶する(ステップS604)。
次いで、撮像処理部406は、状態管理フラグを初期化して(ステップS605)、本処理を終了する。
この状態管理フラグは、原稿がフレームインしたことを検出したか否かを示すフレームイン状態フラグと、原稿がフレームアウトしたことを検出したか否かを示すフレームアウト状態フラグとを含んでいる。
さらに状態管理フラグは、手がフレームインしたことを検出したか否かを示すフレームイン状態フラグと、手がフレームアウトしたことを検出したか否かを示すフレームアウト状態フラグとを含んでいる。
従って、状態管理フラグは、フレームイン状態フラグを2つ、フレームアウト状態フラグを2つ含んでいる。
そして、上記ステップS605での初期化は、原稿と手に対するフレームイン状態フラグをfalseに、フレームアウト状態フラグをtrueにそれぞれ初期化する。
本実施の形態では読み取り領域205で読み取る物理オブジェクトとして、原稿と手を扱うため、この2つに対応させて上記フラグを用意しているが、その他の物理オブジェクトに対するフラグを設定することも可能である。
さらに、読み取り領域205で読み取るオブジェクトの数が増える毎に、そのオブジェクトに対する状態管理フラグが増えてもよいものとする。
以上の初期化処理が終了すると、撮像処理部406のタイミング検出部410は、読み取り領域205に新たに入ってきた原稿が予め定められた時間静止したときに、自動で撮像し、残像画像を投影する残像画像投影処理を実行する。
図11は、主として図4における撮像処理部406及びタイミング検出部410により実行される残像画像投影処理の手順を示すフローチャートである。
図11において、撮像処理部406は、カメラ202から読み取り領域205を1フレームだけ撮像し(ステップS610)、撮像することで得られたカメラ画像をタイミング検出部410へ送信する。
次いで、タイミング検出部410は、カメラ202から受信したカメラ画像に基づいて、読み取り領域205への物理オブジェクトのフレームインまたはアウトを検出したか否か判別する(ステップS611)。フレームインまたはアウトの検出方法については後述する。
ステップS611の判別の結果、フレームインまたはアウトを検出した場合には(ステップS611でYES)、タイミング検出部410は、フレームインまたはアウトした物理オブジェクトが手かどうかを判断し、その判断結果をRAM303に記憶しておく。
次いで、タイミング検出部410は、後述する残像画像処理を実行する(ステップS623)。この残像画像処理は、残像画像が表示されている場合、その残像画像を非表示にするタイミングが到来した場合には、非表示にする処理である。
そして、タイミング検出部410は、ステップS611でフレームインまたはアウトが検出されたことを受け、状態管理フラグを更新する(ステップS612)。
具体的には、ステップS611で判断した物理オブジェクトのフレームインが検出された場合、物理オブジェクトに対応するフレームイン状態フラグをtrueにし、フレームアウト状態フラグをfalesに設定する。フレームアウトが検出された場合は、その逆に設定する。
次いで、メイン制御部402は、全原稿のスキャンが終了したか否か判別する(ステップS619)。これは、ネットワークインタフェース306を介してホストコンピュータ102から送信されるスキャン終了命令、LCDタッチパネル330から入力される終了命令、またはタイマー設定などにより判別される。
ステップS619の判別の結果、スキャンが終了していない場合には(ステップS619でNO)、上記ステップS610に戻る。
一方、ステップS619の判別の結果、スキャンが終了した場合には(ステップS619でYES)、後述する出力ファイル生成処理を行い(ステップS620)、本処理を終了する。
上記ステップS611に戻り、ステップS611の判別の結果、フレームインまたはアウトを検出していない場合には(ステップS611でNO)、タイミング検出部410は、予め定められた時間だけ変化がない状態か否か判別する(ステップS613)。
この処理は、原稿が静止または除去されたか否かを判別する処理である。また、判別方法は、新たに撮像することで得られたカメラ画像が、前回撮像したときのカメラ画像から、どれくらい変化したかを示す画像変化量を用いる方法である。
具体的には、予め定められた時間だけ画像変化量が予め定められた範囲内に収まっていれば変化がないと判別される。
ステップS613の判別の結果、予め定められた時間内に変化があった場合には(ステップS613でNO)、原稿や手が移動している状態であるので、撮像処理部406は、ジェスチャ処理を実行して(ステップS624)、上記ステップS619に進む。
ジェスチャ処理では原稿や手の移動の仕方に応じた処理を実行する。処理内容は、手を移動させて残像画像を拡大、縮小、移動、操作、編集、及び印刷したりする内容となっている。
ステップS613の判別の結果、予め定められた時間だけ変化がない場合には(ステップS613でYES)、タイミング検出部410は、ステップS610で撮像したカメラ画像と、前回この残像画像投影処理を行った際に、ステップS617で撮像して得られた静止画像との差分量を算出する(ステップS615)。なお、今回の残像画像投影処理の開始後に初めてステップS615を実行した場合は、ステップS601で撮像して得られた読み取り領域205の画像との差分量を算出する。
次いで、タイミング検出部410は、算出された差分量が予め定められた値より大きいか否か判別する(ステップS616)。ここでの予め定められた値は、同一の被写体を撮像して得られた2つの画像を同一の画像と判別できる程度の値であり、例えばほぼゼロである。
ステップS616の判別の結果、算出された差分量が予め定められた値未満の場合には(ステップS616でNO)、前回の状態から変化がないため、上記ステップS619に進む。
一方、ステップS616の判別の結果、算出された差分量が予め定められた値より大きい場合には(ステップS616でYES)、タイミング検出部410は、ステップS610で撮像して得られたカメラ画像を静止画像として取得する(ステップS617)。なお、この段階においては、原稿の静止及び除去については区別することなく静止画像を取得する。
次いで、撮像処理部406は、取得した静止画像を、ステップS602で算出した射影変換パラメータを使用して射影変換する(ステップS618)。
そして、撮像処理部406は、射影変換した静止画像を画像認識部407へ送信する。画像認識部407の原稿画像データ抽出部411は、この静止画像を受信すると後述する原稿画像データを抽出する原稿画像データ抽出処理を実行する(ステップS621)。このステップS621は、原稿が置かれた撮像領域を撮像装置により撮像することで得られた画像から原稿の画像を示す原稿画像データを抽出する。
次いで、画像認識部407は、抽出した原稿画像データを、表示処理部408へ送信する。表示処理部408は、図7で説明した文書属性情報及び画像属性情報を更新し、表示中情報をtrueに変更する。表示座標は、ステップS621で原稿画像データを抽出した際に、文書属性情報の表示座標に示されている。
表示処理部408は、上記表示座標と、ステップS621で抽出され、HDD305に記憶されている原稿画像データから生成した表示画像とを、操作表示部403に対して送信する。図18(B)は表示画像の一例である。読み取り領域205の領域は何も表示しない黒画像2103であり、黒画像2103の上に、残像画像2104を表示座標の情報に基づいて重畳するように作成している。
その後、操作表示部403は、プロジェクタ207を用いて、受け取った表示画像を投影することで、残像画像表示を更新し(ステップS622)、上記ステップS612に進む。これにより残像画像が読み取り領域205に表示される。上記処理によれば、読み取り領域205上に置かれた原稿に重ねるようにして残像画像の投影が実行される。投影はこのタイミングに限ったものではなく、撮影を実行した後、原稿が読み取り領域205上に置かれている間は投影を行わないで、原稿が取り除かれてから、原稿が元あった場所に投影するようにしてもよい。
上記の処理を繰り返し行うことにより、撮像処理部406は、新しく読み取り領域205に入った原稿が静止したときに、静止画像を自動で取得し、画像認識部407の原稿画像データ抽出部411へ送信することができる。
上記ステップS611におけるフレームインまたはアウトの検出方法について説明する。
図12は、フレームインまたはアウトの検出方法を説明するための図である。
図12(A)は原稿の置かれる前の書画台204を示す図であり、図12(C)は読み取り領域205を撮像して得られた背景画像または1つ前の静止画像を示す図である。
また、図12(B)は原稿206が読み取り領域205からフレームインまたはアウトする直後または直前の書画台204を示す図であり、図12(D)はフレームインまたはアウト直前のタイミングで撮像された読み取り領域205のカメラ画像を示す図である。
画像認識部407のタイミング検出部410は、図12(C)(D)に示される2枚の撮像画像より図12(E)に示す差分画像を生成する。
差分画像の黒画素領域801は差分のなかった部分、白画素領域802は差分を示し、フレームインまたはアウトしていく原稿206の端部を表している。このカメラ画像と背景画像との差分値である白画素領域802の画素数を基に、フレームインまたはアウトのタイミングを検出する。
フレームインまたはアウトのいずれの状態であるかは、今回の差分量と直前に算出された差分量とを比較することで判断できる。すなわち、今回の差分量が直前の差分量よりも増加している場合にはフレームインの過程、減少している場合にはフレームアウトの過程であると判断することができる。
そして、フレームインの過程において、画素数に対する差分量の割合が予め定められた割合以上となったタイミングをフレームインとして検出する。
同様にフレームアウトの過程において、画素数に対する差分量の割合が予め定められた割合以下となったタイミングをフレームアウトとして検出する。
なお、原稿を素早く抜き取ったことで、図8(C)の次に図8(E)が撮像された場合など、カメラ画像に原稿端部が映らなかった場合に関しても、差分量が減少し、画素数に対する差分量(ここでは0)の割合が予め定められた割合以下となることから、フレームアウトを検出できる。
以上のように、背景画像とカメラ画像の差分量及び差分量の変化を算出することで、フレームインまたはアウトのタイミングを検出できる。
また、図12(B)〜(E)を用いて、原稿のフレームインまたはアウトのタイミングを検出する方法を説明したが、その他の物理オブジェクトのフレームインまたはアウトも同様にして検出できる。
図12(F)〜(H)は、手803のフレームアウトの様子を示す図である。ここで、手803は原稿206に対応している。フレームインまたはアウトの検出後、白画素領域805に存在する物体の色が肌色か否か判断することにより、フレームインまたはアウトした物理オブジェクトが、手か否か判断することができる。今回は原稿と手しか扱わないため、手でないと判断されたものは原稿であると判断することとなる。このように、手が検出領域に侵入したことを検出可能となっている。
また、差分抽出の際に、現在の撮像画像と背景画像との差分を利用する方法ではなく、1つ前に撮像して得られた静止画像を用いることで、読み取り領域205に原稿が置かれていても、手や新たな原稿のフレームインまたはアウトを検出できる。
図13は、図11のステップS621の原稿画像データ抽出処理の手順を示すフローチャートである。
図13において、原稿画像データ抽出部411は、撮像処理部406より射影変換された最新静止画像を受信する(ステップS901)。
次いで、原稿画像データ抽出部411は、図5(B)で説明したように、受信した最新静止画像を、データ管理部405を介してHDD305へ記憶する(ステップS902)。
次いで、原稿画像データ抽出部411は、読み取り領域背景画像1901と最新静止画像との差分量を算出する(ステップS903)。
そして、原稿画像データ抽出部411は、算出された差分量が予め定められた値よりも大きいか否か判別する(ステップS904)。ここでの予め定められた値は、同一の被写体を撮像して得られた2つの画像を同一の画像と判別できる程度の値であり、例えばほぼゼロである。
ステップS904の判別の結果、算出された差分量が予め定められた値以下の場合には(ステップS904でNO)、原稿は置かれていないと判断して、抽出結果を返し(ステップS907)、本処理を終了する。この抽出結果とは、原稿画像データが抽出できた場合にはtrueであり、抽出できなかった場合にはfalseである。ステップS904でNOの場合には、抽出結果は、falseである。
一方、ステップS904の判別の結果、算出された差分量が予め定められたより大きい場合には(ステップS904でYES)、新たな原稿が置かれたと判断し、原稿画像データ抽出部411は、最新静止画像から原稿画像データを抽出する(ステップS905)。この原稿画像データの抽出では、ステップS903で生成した差分画像よりエッジを検出し、それを矩形近似するなど既存の方法を用いればよい。
次いで、原稿画像データ抽出部411は、抽出された原稿画像データを、図6(A)で説明したように、データ管理部405を介してHDD305へ記憶して(ステップS906)、trueを返し(ステップS907)、本処理を終了する。
図14は、図11のステップS620の出力ファイル生成処理の手順を示すフローチャートである。
図14において、出力ファイル生成部409は、RAM303より1枚目の画像属性情報2011(図7参照)を取得する(ステップS1801)。
次いで、出力ファイル生成部409は、HDD305より1枚目の原稿画像データ2001を取得する(ステップS1802)。
そして、出力ファイル生成部409は、出力ファイル用のヘッダ記述を生成する(ステップS1804)。ここでは、画像属性のNoより原稿番号を取得し、出力ファイル名を作成する。また、出力原稿サイズには、画像属性の幅や高さを用いる。
次いで、出力ファイル生成部409は、出力ファイルの画像データとして、ステップS1802でHDD305から取得した原稿画像データ2001を記憶する(ステップS805)。このとき、画像処理プロセッサ307で、傾き補正、回転などの補正処理や、下地飛ばし、エッジ強調などの補正処理を行って画像を鮮鋭化しても構わない。
次いで、出力ファイル生成部409は、フッタ記述を生成する(ステップS1806)。そして、データ管理部405は、HDD305に記憶されたオリジナルの原稿画像データ2001を破棄する(ステップS1807)。
次いで、全原稿画像データに対する処理が終了したか否か判別する(ステップS1808)。ステップS1808の判別の結果、未処理の原稿画像データが残っている場合には(ステップS1808でNO)、ステップS1801に戻る。
一方、ステップS1808の判別の結果、全原稿画像データに対する処理が終了した場合には(ステップS1808でYES)、本処理を終了する。
図15は、図11のステップS623の残像画像処理の手順を示すフローチャートである。
図15において、タイミング検出部410は、図11のステップS611でフレームインを検出したか否か判別する(ステップS1001)。
ステップS1001の判別の結果、フレームインを検出した場合には(ステップS1001でYES)、タイミング検出部410は、フレームインが検出された物理オブジェクトが手のみであるか否か判別する(ステップS1002)。
ステップS1002の判別の結果、物理オブジェクトが手のみの場合には(ステップS1002でYES)、本処理を終了する。こうして、手のみだった場合に処理を終了することで、ステップS624での手だけによるジェスチャ処理が行えるようになる。また、このとき、後述するステップS1005の残像画像を消去する処理が行われないため、そのまま残像画像が表示されたままとなる。従って、手が検出領域に侵入したことが検出された場合には、残像画像を変更しない。
一方、ステップS1002の判別の結果、物理オブジェクトが手のみでない、すなわち原稿を含む場合には(ステップS1002でNO)、タイミング検出部410は、現在残像画像を読み取り領域205に表示中か否か判別する(ステップS1003)。
残像画像を表示中か否かは、上述した図7の画像属性情報の表示中情報が示す内容で判別できる。ここで表示中の画像がある場合、基本的に最後に記憶されたデータが表示中となる。例えば、図7(A)であればNo1、(B)であればNo2、(C)であればNo3の画像が表示中となる。
ステップS1003の判別の結果、現在残像画像を読み取り領域205に表示中ではない場合には(ステップS1003でNO)、本処理を終了する。
一方、ステップS1003の判別の結果、現在残像画像を読み取り領域205に表示中の場合には(ステップS1003でYES)、タイミング検出部410は、読み取り領域205に現在原稿が置かれているか否か判別する(ステップS1004)。
ここでの判別では、原稿に対するフレームイン状態フラグを確認すればよい。読み取り領域205に原稿が置かれている場合は、現在フレームインしたばかりの原稿によるフラグはtrueにはなっていない。従って、原稿に対するフレームイン状態フラグが1つだけtrueになっている。
ステップS1004の判別の結果、読み取り領域205に現在原稿が置かれている場合には(ステップS1004でYES)、本処理を終了する。
一方、ステップS1004の判別の結果、読み取り領域205に現在原稿が置かれていない場合には(ステップS1004でNO)、つまり原稿に関するフレームイン状態フラグが1つもtrueになっていない場合、タイミング検出部410は、表示処理部408に対して、現在表示中の残像画像の消去指示を出すことで、残像画像を消去して(ステップS1005)、本処理を終了する。
具体的に、表示処理部408は、残像画像の消去指示を受けると、記憶されている画像属性データのうち、最後に記憶された画像に対する表示中情報を、falseへと変更する。それと同時に、表示処理部408は、falseに変更した画像の残像を非表示とした表示画像を生成し、操作表示部403へ送信する。操作表示部403は、送られてきた表示画像を、プロジェクタ207を用いて読み取り領域205に投影する。これにより、表示されていた残像画像を消去できる。
上記ステップS1001に戻り、ステップS1001の判別の結果、フレームインが検出されなかった場合、すなわちフレームアウトが検出された場合には(ステップS1001でNO)、タイミング検出部410は、フレームアウトが検出された物理オブジェクトが手のみであるか否か判別する(ステップS1007)。
ステップS1007の判別の結果、物理オブジェクトが手のみである場合には(ステップS1007でYES)、本処理を終了する。
一方、ステップS1007の判別の結果、物理オブジェクトが手のみでない、すなわち原稿を含む場合には(ステップS1007でNO)、タイミング検出部410は、読み取り領域205に残像画像が表示されていないか否か判別する(ステップS1008)。
ここで、残像画像が表示されているときにフレームアウトが検出されるタイミングとは、読み取り領域205に原稿を置き、残像画像が投影された後、原稿を取り除いた瞬間を指す。
ステップS1008の判別の結果、読み取り領域205に残像画像が表示されている場合には(ステップS1008でNO)、本処理を終了する。
一方、ステップS1008の判別の結果、読み取り領域205に残像画像が表示されていない場合には(ステップS1008でYES)、タイミング検出部410は、表示処理部408に対して、直近の残像画像があれば、直近の残像画像の再表示処理指示を出すことで、直近の残像画像を再表示して(ステップS1009)、本処理を終了する。
上記直近の残像画像のデータは、最後に記憶された原稿画像データのことである。従って、表示処理部408は、図7の画像属性情報において最後に記憶された画像の表示中情報を、Trueに変更する。
同時に、最後に記憶された画像を、座標情報で指定される位置に描画した形の表示画像を生成し、操作表示部403へ送信する。操作表示部403は、プロジェクタ207を用いて読み取り領域205へ残像画像を表示する。このように、残像画像が変更された後に、検出領域で原稿が検出されなくなった場合には、変更される前の残像画像である直近の残像画像を表示装置に表示させるようになっている。
以上の処理を繰り返すことで、読み取り領域205へ原稿がフレームインしたことを検出して、残像画像を消去することが可能となる。
フレームインにより消去された残像画像は、原稿が静止する前にフレームアウトすることで再表示することが可能である。また、フレームインした物理オブジェクトが手のみか否か判別することにより、残像画像に対するジェスチャ操作を行うことも可能となる。
なお、読み取り領域205に原稿や手の影が落ちたとき、フレームインしたと判別される可能性がある。従って、上記ステップS1002では、フレームインした物理オブジェクトが影か否か判別して、影であった場合は処理を終了するようにしてもよいし、図11のステップS611において影であると判別された場合は、フレームインまたはアウトを未検出としてもよい。なお、影を検出する方法は、第2の実施の形態において詳しく述べる。
〔第2の実施の形態〕
第1の実施の形態は、原稿がカメラの読み取り領域205にフレームインしたか否かによって、表示中の残像画像を消去する形態であった。第2の実施の形態は、原稿が残像画像の表示領域に侵入したか否かによって、その残像画像を消去する形態となっている。
第1の実施の形態で説明したネットワーク構成、外観図、コントローラ構成、及びソフトウェア構成は第2の実施の形態でも同じであるので説明を省略する。
図16は、原稿の操作例、及び表示画像例を示す図である。
図16(A)は、読み取り領域205で原稿1101の静止が検出され、撮像が実行された様子を示す図である。
撮像が実行されると、プロジェクタ207により、原稿があった位置と同じ位置に、原稿と重ねるようにして、読み取った原稿の画像が投影される。本実施の形態では、原稿と重ねるように読み取った原稿の画像を投影する処理を行っているが、原稿が取り除かれた後で、原稿が元あった場所と同じ場所に、読み取った原稿の画像を投影するようにしてもよい。
図16(B)は、原稿1101を手1103で取り除くと、原稿のあった位置に読み取った原稿の画像である残像画像1102が投影表示される様子を示す図である。
図16(C)は、読み取り領域205に残像画像1102が表示されている様子を示す図である。
図16(D)は、カメラ202からの画像から手を認識することにより、手1104による残像画像1102の移動、拡大、縮小、印刷、及び記憶などの操作をする様子を示す図である。なお、これらの操作は、以下では主に手を用いて行うこととして説明しているが、手に限ったものではなく、ペンなどの特定の物理媒体を認識するようにして操作を行うようにしてもよい。
図16(E)は、新たな原稿1105が、残像画像1102の領域に侵入した瞬間を示す図である。本実施の形態では、この新たな原稿1105の残像画像領域への侵入を検出すると、表示していた残像画像1102を非表示にする。
図16(F)新たな原稿1105が残像画像1102の領域に侵入したので、表示していた残像画像1102が非表示となった様子を示す図である。
この状態で読み取り領域205に新たな原稿1105を置けば、再び図16(A)の状態に戻ってスキャンすることができる。
上記を繰り返すことで、操作できる残像画像を残しつつ、原稿の連続読み込みを行った際に、残像画像が新たな原稿に重なることによる認識率の低下を防ぐことができる。
また、残像画像領域への侵入を検出して残像画像を消去することで、誤って原稿等を読み取り領域にフレームインさせてしまった場合にも、残像画像領域に侵入していなければ、残像画像が消去されることはない。
これにより、残像画像の横に原稿を並べて置くことも可能となり、より自由な操作が可能となる。
図17は、主として図4における撮像処理部406及びタイミング検出部410により実行される残像画像投影処理の手順を示すフローチャートである。
図17に示される処理のうち、ステップS610〜ステップS622は、図11の処理と同じであるため、説明を省略する。
図17が図11と異なる点は、ステップS611でフレームインまたはアウトが検出された後に、ステップS623の残像画像の処理がないこと、ステップS624のジェスチャ処理がないこと、及びステップS625の動き認識処理とステップS626の残像画像領域の画像記憶処理があることである。従って、以下の説明では上記ステップに関する内容を説明する。
ステップS611の判別の結果、フレームインまたはアウトを検出した場合には(ステップS611でYES)、撮像処理部406は、原稿のフレームアウトが検出されたタイミングで、残像画像が投影されている場合、カメラ画像から、その残像画像領域の残像画像をRAM303に記憶する(ステップS626)。
この残像画像領域は、この処理が実行されるたびに更新される。またRAM303に記憶された残像画像は、残像画像領域への物体の侵入を検出する際に利用するための基準となる画像である。
図18(C)は、読み取り領域205の画像から、残像画像領域2101の残像画像2102を示す図である。
残像画像が投影中か否かと、残像画像の投影位置については、図7で示した画像属性情報の表示座標を調べればよい。この処理が終了すると、ステップS612へ進む。
次に、ステップS625の説明をする。撮像処理部406は、動き認識部412に対して、現在のフレームと1つ前のフレームを送信し、動き認識の指示を出すことによって動き認識部412は動き認識処理を実行する(ステップS625)。この動き認識処理が終了すると、ステップS619へ進む。
図19は、図17のステップS625の動き認識処理の手順を示すフローチャートである。
図19において、動き認識部412は、ステップS613で検出した画像変化量を発生させる物理オブジェクトが、手のみであるか否か判別する(ステップS1201)。
ここで、動き認識部412は、各フレームで画像の特徴量を抽出し、肌色や矩形を検出して手または原稿を識別し、それらの重心位置が、フレーム間で予め定められた範囲以上動いているか否か調べることで、物理オブジェクトが手のみであるか、または手以外も含むかを判別できる。
また、現在のフレームと1つ前のフレームとの差分をとり、その差分の色を調べることでも、物理オブジェクトが手のみであるか、または手以外を含むか否かを調べることができる。さらに、ステップS611で手や原稿のフレームインを検出した時点で、公知の技術を用いて、それらをトラッキングしてもよい。
ステップS1201の判別の結果、物理オブジェクトが、手のみである場合には(ステップS1201でYES)、動き認識部412は、ジェスチャ処理を実行する。これには手がどのような形をし、どのような動きをしたかを認識して、その動きが何を意味するかを予め定めたコマンドに対応づければよい。
一方、ステップS1201の判別の結果、物理オブジェクトが、手のみでない場合には(ステップS1201でNO)、動き認識部412は、読み取り領域205に読み取り後の原稿があるか否か判別する(ステップS1224)。
ここでは、状態フラグを用いて判別される。具体的に、読み取り領域205に読み取り後の原稿がある場合、読み取り領域205に読み取り後の原稿と、現在物理オブジェクトとして読み取り領域205に存在する原稿との2つの原稿に関する状態フラグがtrueとなるので、これらを用いて判別することができる。
一方、読み取り後の原稿がない場合には、現在物理オブジェクトとして読み取り領域205に存在する原稿に対する状態フラグのみがtrueとなる。
ステップS1224の判別の結果、読み取り領域205に読み取り後の原稿がある場合には(ステップS1224でYES)、本処理を終了する。
一方、ステップS1224の判別の結果、読み取り領域205に読み取り後の原稿がない場合には(ステップS1224でNO)、動き認識部412は、画像属性から、現在、残像画像が表示中であるか否か判別する(ステップS1202)。
ステップS1202の判別の結果、残像画像が表示中の場合には(ステップS1202でYES)、動き認識部412は、物理オブジェクトが残像画像領域2101にあるか否か判別する(ステップS1203)。ここでは、ステップS626でRAM303に記憶しておいた残像画像と、現在の残像画像領域2101の画像とを比べることで判別ことができる。
ステップS1203の判別の結果、物理オブジェクトが残像画像領域2101にある場合には(ステップS1203でYES)、動き認識部412は、現在表示中の残像画像を消去し(ステップS1204)、本処理を終了する。このとき、RAM303に記憶されている表示中情報はfalseに変更される。
上記ステップS1202に戻り、ステップS1202の判別の結果、残像画像が表示中ではない場合には(ステップS1202でNO)、動き認識部412は、物理オブジェクトが残像画像領域2101にあるか否か判別する(ステップS1205)。
ステップS1205の判別の結果、物理オブジェクトが残像画像領域2101にある場合には(ステップS1205でYES)、本処理を終了する。
一方、ステップS1205の判別の結果、物理オブジェクトが残像画像領域2101にない場合には(ステップS1205でNO)、動き認識部412は、直近の残像画像を再表示して(ステップS1206)、本処理を終了する。
この処理は、図15のステップS1009と同じ処理である。この処理によって、残像画像領域2101に誤って原稿を侵入させてしまい、残像画像が消去されてしまっても、残像画像領域2101から原稿を引き抜くことで、残像画像を再表示することが可能となる。
図20は、影が発生した場合の処理について説明するための図である。
図20(A)は、原稿1703と残像画像領域2101との位置関係を示す図であり、図20(B)は、影2000が残像画像領域に侵入した例を示す図である。
図20(A)に示されるように、実際の残像画像1701と原稿1703の位置関係は残像画像領域2101に侵入していないにも関わらず、図20(B)に示されるように、手や原稿の影2000が残像画像領域に侵入する場合が考えられる。
このように影が残像画像領域に侵入した場合は、フレームインを検出していないとして、ステップS1201の時点で処理を終了するようにしてもよいし、ステップS611の時点でフレームインまたはアウトを未検出としてもよい。
影の検出方法としては、フレームインした部分の明度を測定し、所定の値より明度が低い部分を影であると判断する方法がある。このように、影が検出領域に侵入したことを検出可能となっている。そして、上述したように、影が検出領域に侵入したことが検出された場合には、残像画像を変更しないようにしてもよい。
以上説明したように、第2の実施の形態では、残像画像が表示されている領域に原稿が侵入することにより、残像画像を消去することが可能となり、原稿の連続スキャン時に原稿の認識率が下がることを防げる。
また、動体に手以外を含むか否かを区別することで、連続スキャンで残像画像を残しつつ、その残像画像を手で操作することが可能となり、操作性が向上する。
〔第3の実施の形態〕
第1,2の実施の形態において、読み取り領域205や残像画像領域などの予め定められた領域に原稿が侵入した際、直ちに残像画像を消去することで、次の画像読み取り精度の向上を図った。
第3の実施の形態は、第2の実施の形態をベースに、予め定められた領域への原稿侵入後、予め定められた時間が経過した後に残像画像を消去することで、誤って原稿を侵入させてしまった場合に、直ちに残像画像を消去しない形態となっている。
第1の実施の形態で説明したネットワーク構成、外観図、コントローラ構成、及びソフトウェア構成は第3の実施の形態でも同じであるので説明を省略する。
本実施の形態では、上述したように予め定められた時間が経過すると残像画像を消去する処理が図19の処理に追加され、その他の部分は、第2の実施の形態と同じである。
図21は、図17のステップS625の動き認識処理の手順を示すフローチャートである。
図21に示される処理のうち、ステップS1211〜S1217は、図19のステップS1201〜S1207と同じであるため、説明を省略する。
ステップS1213の判別の結果、物理オブジェクトが残像画像領域2101にある場合には(ステップS1213でYES)、動き認識部412は、タイマーがまだ動作していない場合はタイマーをスタートさせ、または既にスタートしている場合には何もしないタイマー処理を実行する(ステップS1220)。
次いで、動き認識部412は、物理オブジェクトが残像画像領域2101に侵入してから、予め定められた時間が経過したか否か判別する(ステップS1218)。ここでの物理オブジェクトは原稿である。
ステップS1218の判別の結果、予め定められた時間が経過していない場合には(ステップS1218でNO)、本処理を終了する。
一方、ステップS1218の判別の結果、予め定められた時間が経過した場合には(ステップS1218でYES)、現在表示中の残像画像を消去し(ステップS1214)、タイマーをリセットし(ステップS1221)、本処理を終了する。
ステップS1215の判別の結果、物理オブジェクトが残像画像領域2101にない場合には(ステップS1215でNO)、動き認識部412は、タイマーがまだ動作していない場合はタイマーをスタートさせ、または既にスタートしている場合には何もしないタイマー処理を実行する(ステップS1222)。
次いで、動き認識部412は、物理オブジェクトが残像画像領域2101に侵入してから、予め定められた時間が経過したか否か判別する(ステップS1219)。ここでの物理オブジェクトは原稿である。
ステップS1219の判別の結果、予め定められた時間が経過していない場合には(ステップS1219でNO)、本処理を終了する。
一方、ステップS1219の判別の結果、予め定められた時間が経過した場合には(ステップS1219でYES)、直近の残像画像を再表示し(ステップS1216)、タイマーをリセットし(ステップS1223)、本処理を終了する。このように、第3の実施の形態では、検出領域に原稿が侵入してから予め定められた時間が経過すると、残像画像を消去するように変更する。
以上説明した第3の実施の形態によって、原稿が残像画像領域に侵入してから予め定められた時間経過後に残像画像を消去することが可能になり、誤って原稿を残像画像領域に侵入させてしまった場合でも、直ちに残像画像が消えることはない。
〔第4の実施の形態〕
第3の実施の形態は、残像画像領域へ原稿が侵入してから予め定められた時間が経過したタイミングで、残像画像を消去する形態であった。これと同様に、誤って残像画像を消去してしまわないようにするために、第4の実施の形態は、第2の実施の形態をベースに、残像画像と原稿の重なり具合によって残像画像の濃度を変え、予め定められた値以上の割合で重なった場合に残像画像を消去する形態となっている。
第1の実施の形態で説明したネットワーク構成、外観図、コントローラ構成、及びソフトウェア構成は第4の実施の形態でも同じであるので説明を省略する。
図22は、残像画像領域への原稿の侵入により、残像画像が徐々に薄くなっていく様子を説明するための図である。
図22(A)は、読み取り領域205に残像画像1301が表示されており、手1302が持っている新しい原稿1304が、残像画像1301の残像画像領域に侵入した瞬間の様子を示す図である。
図22(B)は、原稿1304が残像画像1301の残像画像領域に、図22(A)に示される状態よりも深く侵入し、さらに残像画像1301が図22(A)に示される状態と比較して薄く表示されている様子を示す図である。
図22(C)は、原稿1304が、残像画像1301の残像画像領域に、図22(B)に示される状態よりもさらに深く侵入し、残像画像1301が図22(B)に示される状態と比較して薄く表示されている様子を示す図である。
図22(D)は、原稿1304が、残像画像1301の残像画像領域と、予め定められた割合以上で重なったため、残像画像1301が非表示になっている様子を示す図である。
図23は、図17のステップS625の動き認識処理の手順を示すフローチャートである。
図23に示される処理のうち、ステップS1401〜S1407までは、第2の実施の形態における図19で示した動き認識処理のステップS1201〜S1207と同じであるため、説明を省略する。
ステップS1403の判別の結果、物理オブジェクトが残像画像領域にある場合には(ステップS1403でYES)、動き認識部412は、原稿と残像画像領域の重なりの割合を計算する(ステップS1408)。
ここでは、ステップS626でRAM303に記憶しておいた残像画像と、現在の残像画像領域の画像とから、両画像の差分の残像画像領域に対する割合を求めればよい。
次いで、動き認識部412は、原稿と残像画像領域の重なりの割合が、予め定められた割合以上か否か判別する(ステップS1409)。
ステップS1409の判別の結果、原稿と残像画像領域の重なりの割合が、予め定められた割合以上ではない場合には(ステップS1409でNO)、動き認識部412は、表示処理部408に指示し、残像画像の濃度を、重なりの割合に応じて変更し(ステップS1410)、本処理を終了する。
具体的に、動き認識部412は、重なりの割合に対応づけた濃度を表示処理部に408に指示する。表示処理部408は、残像画像の部分の濃度指示と、HDD305に記憶された原稿画像データより、残像画像部分の濃度を変更した表示画像を生成し、操作表示部403に対して表示を指示する。このように、第4の実施の形態では、検出領域に侵入した原稿と検出領域との重なりの割合が大きくなるほど、残像画像の濃度を薄くしていくことで、残像画像を消去するように変更する。
以上説明したように、第4の実施の形態では、原稿の重なりの割合に応じて残像画像の濃度を薄くしていき、予め定められた割合以上で重なった場合に残像画像を消去することができる。
これにより、誤って残像画像領域に原稿を侵入させてしまった場合でも、直ちには消えず、少し薄くなるだけである。また、原稿を残像画像領域から除くともとの濃度で表示される。
〔第5の実施の形態〕
第3,4の実施形態は、誤って残像画像に原稿を侵入させてしまった場合に、直ちに残像画像を消去しないようにする形態であった。
第5の実施の形態は、第2の実施形態をベースに、残像画像と原稿の重なった部分のみ残像画像を欠けたように消去し、予め定められた割合以上で重なった場合に残像画像を消去する形態となっている。
第1の実施の形態で説明したネットワーク構成、外観図、コントローラ構成、及びソフトウェア構成は第5の実施の形態でも同じであるので説明を省略する。
図24は、残像画像領域への原稿の侵入により、残像画像が徐々に欠けていく様子を説明するための図である。
図24(A)と(E)、(B)と(F)、(C)と(G)、(D)と(H)はそれぞれ対応しており、(A)(B)(C)(D)が読み取り領域205の原稿と残像画像の両方の状態を表したものであり、(E)(F)(G)(H)はその状態のときに表示される残像画像の様子を表したものである。
図24(A)、(E)は、読み取り領域205に残像画像1501が表示されており、手1502が持っている新しい原稿1504が、残像画像1501の残像画像領域に侵入した瞬間の様子を示す図である。
図24(E)はその瞬間に投影されている残像画像を表しており、原稿1504が侵入した左下の部分が欠けた残像画像1501が表示されていることを示す図である。
図24(B)は原稿1504が残像画像1505の残像画像領域に、(A)で示した状態よりも深く侵入している状態を示し、図24(F)は、(E)に示される状態と比較して残像画像の欠けた部分が大きくなった残像画像1505が表示されている様子を示す図である。
図24(C)は、原稿1504が、残像画像1506の残像画像領域に(B)で示した状態よりもさらに深く侵入している状態を示し、より大きくかけた残像画像1506を示す図である。図24(G)はその状態で表示している残像画像1506を示す図である。
図24(D)は、原稿1504が、残像画像領域と、予め定められた割合以上で重なったため、残像画像が非表示になっている様子を示す図である。図24(H)は残像画像が非表示になった読み取り領域205の様子を示す図である。
図25は、図17のステップS625の動き認識処理の手順を示すフローチャートである。
図25に示される処理のうち、ステップS1601〜S1607は、第2の実施形態における図19で示した動き認識処理のステップS1201〜S1207と同じであるため、説明を省略する。
また、ステップS1608、S1609は、図23のステップS1408、S1409のそれぞれと同じであるため、説明を省略する。
ステップS1609の判別の結果、原稿と残像画像領域の重なりの割合が、予め定められた割合以上ではない場合には(ステップS1609でNO)、動き認識部412は、表示処理部408に指示し、原稿が重なった部分を欠けさせた残像画像を表示して(ステップS1610)、本処理を終了する。
具体的に、動き認識部412は、表示処理部408に対し、欠けた残像画像を表示する指示を出す。表示処理部408は、ステップS626でRAM303に記憶しておいた残像画像領域の画像と、現在の残像画像領域の画像から、差分がない部分のマスク画像を生成する。
表示処理部408は、マスク画像と、HDD305に記憶された原稿画像データより、原稿が重なった部分が欠けた残像画像を含む表示画像を生成し、操作表示部403に対して表示を指示する。
一方、ステップS1609の判別の結果、原稿と残像画像領域の重なりの割合が、予め定められた割合以上の場合には(ステップS1609でYES)、残像画像を消去して(ステップS1604)、本処理を終了する。このように、第5の実施の形態では、残像画像が表示されている残像画像領域に侵入した原稿に重なっている部分を残像画像から除いた残像画像に変更した画像に残像画像を変更していくことで、残像画像を消去するように変更する。
以上説明したように、第5の実施の形態では、残像画像と原稿の重なった部分のみ残像画像を欠けたように消去し、予め定められた割合以上で重なった場合に残像画像を消去することができる。
これにより、誤って残像画像に原稿を侵入させてしまった場合にも、直ちに残像画像が消去されることはない。
〔第6の実施の形態〕
第6の実施の形態は、原稿が読み取り領域205にフレームインしたことを検出して表示画像を予め定められた領域に移動する形態である。
第1の実施の形態で説明したネットワーク構成、外観図、コントローラ構成、及びソフトウェア構成は第6の実施の形態でも同じであるので説明を省略する。
図26は、原稿の操作例、及び表示画像例を示す図である。
図26おいては、第1の実施の形態における図8(A)〜(D)、第2の実施の形態における図16(A)〜(D)と同様に、原稿の撮像が行われ、残像画像が残っているものとする。
図26(A)において、残像画像2201が示された状態で、新たな原稿2203がフレームインしたときの様子を示す図である。このように、図26の場合の原稿を検出するための検出領域は、撮像領域である読み取り領域205となっている。
そして、図26の(A)→(B)→(C)の流れは、新たな原稿2203がフレームインしてからの残像画像の移動の流れを示している。
本実施の形態では、新たな原稿2203がフレームインしたことを検出すると、表示中の残像画像2201を読み取りの邪魔にならない予め定められた領域2208に移動する。
図26(B)は、予め定められた領域2208に移動する際に表示される遷移画像2204〜2207を示す図である。
図26(B)に示されるように、残像画像2201は予め定められた領域2208に徐々に移動する。このとき、遷移画像2204〜2207に示されるように、サイズを小さくしながら、予め定められた領域2208へ移動している。
図26(C)は、予め定められた領域2208に、移動後の残像画像としてサムネイル画像2207が収まった様子を示す図である。
この状態で空いた領域に新たな原稿2203を置けば、残像画像に邪魔されることなく原稿を読み取ることができ、原稿認識精度を確保できる。
なお、図26(B)では、残像画像2201が移動する様子を、遷移画像2204〜2207で表示するように表したが、必ずしも遷移画像を表示する必要はなく、図26(B)に示される状態をとばして、図26(A)→(C)のように遷移するようにしてもよい。
また、図26(C)では分かりやすくするため領域2208を図示しているが、実際の読み取り領域205に領域2208を表示してもしなくてもよい。上記予め定められた領域2208は、サムネイル画像を表示するために予め定められたサムネイル画像表示領域に対応する。
図27は、図3におけるRAM303に記憶されるサムネイル画像を生成した場合の文書属性情報及び画像属性情報を示す図である。
図27において、文書属性情報及び画像属性情報は、2枚の原稿がスキャンされ、2枚目の残像画像がまだ読み取り領域205に投影されている場合の情報を示している。
各原稿画像データに対して、画像属性情報には、サムネイル画像の座標を表すSMN座標、サムネイル表示中か否かを表すSMN表示中情報、サムネイルを一意に決める名前であるSMN名が含まれている。
図27の場合、No1の管理データ2401では、生成されたサムネイル画像が表示されているため、SMN名、及びSMN座標には値が入り、SMN表示中情報はtrueとなる。
No2の管理データ2402では、残像画像の表示中情報はtrueであるが、未だサムネイル画像は表示されていない。従って、SMN座標とSMN名は空であり、SMN表示中情報はfalseである。
SMN座標は、本実施の形態の場合、サムネイル画像の矩形の対角をなす2頂点の座標としたが、サムネイル画像の表示位置を一意に決められる情報であればよい。
図28は、サムネイル画像の座標及び表示画像を示す図である。
図28(A)は、残像画像2501が読み取り領域205に表示されている様子を示す図である。図28(B)は、(A)で示される状態のとき、表示処理部408で生成された表示画像を示す図である。
図28(C)は、サムネイル画像2504を表示している様子を示す図である。図28(D)は、(C)で示される状態のとき、表示処理部408で生成された表示画像を示す図である。
図28(C)において、領域2506内のサムネイル画像2504の表示位置は、座標P11(XS11,YS11)、P12(XS12,YS12)で表現されている。
これらの座標は、例えば読み取り領域205の左上の点を原点とし、ピクセル単位で一意に決められる。この座標を用いて、図28(D)に示される表示画像が生成される。
図28(E)は、2枚目のサムネイル画像が表示されている様子を示す図である。図28(F)は、(E)で示される状態のとき、表示処理部408で生成された表示画像を示す図である。座標YS12とYS21の間は、予め決められた距離だけあけておけばよい。
図29は、図11のステップS623の残像画像処理の手順を示すフローチャートである。
図29に示される処理のうち、ステップS1001〜S1004は、図15の処理と同じであるため、説明を省略する。
そして、今回の場合は、ステップS1001〜S1004までの処理で、タイミング検出部410は、フレームインが検出され、物理オブジェクトが原稿を含み、残像画像が表示中であり、読み取り領域205に原稿がないと判別された(ステップS1004でNO)ものとする。
タイミング検出部410は、残像画像からサムネイル画像を生成する(ステップS2301)。このとき、現在表示中の残像画像の元データである原稿画像データをHDD305から取得し、サムネイル用に所定の方法で縮小処理してサムネイル画像を生成する。生成されたサムネイル画像はRAM303に記憶される。サムネイル画像は、原稿画像データと、図27で説明した文書属性情報及び画像属性情報とともに記憶される。
次いで、タイミング検出部410は、表示処理部408に対して、原稿画像データのNoを伝え、その原稿画像データのサムネイル画像を表示するよう指示する。表示処理部408は、サムネイル画像の表示指示を受けると、指示を受けた番号の画像属性データの、SMN表示情報をtrueに変更し、RAM303からサムネイル画像を取得する。
そして、取得したサムネイル画像を予め定められた領域に表示する(ステップS2302)。
次いで、表示処理部408は、ステップS2302で指示を受けた残像画像である原稿画像データの表示中情報をfalseに変更する。
その後、残像画像は非表示、サムネイル画像をSMN座標の領域のデータで指定された位置に描画した表示画像データを生成し、操作表示部403へ送信する。操作表示部403は、送られてきた表示画像を、プロジェクタ207を用いて読み取り領域205に投影することで、残像画像を消去して(ステップS2303)、本処理を終了する。
以上説明したように、第6の実施の形態では、読み取り領域205への原稿のフレームインしたことを検出して、残像画像をサムネイル画像として予め定められた領域まで移動することが可能となる。
〔第7の実施の形態〕
第7の実施の形態は、原稿が読み取り領域205ではなく残像画像領域にフレームインしたことを検出して表示画像を予め定められた領域に移動する形態である。
第1の実施の形態で説明したネットワーク構成、外観図、コントローラ構成、及びソフトウェア構成は第7の実施の形態でも同じであるので説明を省略する。
図30は、原稿の操作例、及び表示画像例を示す図である。
図30おいては、第1の実施の形態における図8(A)〜(D)、第2の実施の形態における図16(A)〜(D)と同様に、原稿の撮像が行われ、残像画像が残っているものとする。
図30(A)は、残像画像2601が示された状態で、新たな原稿2603が残像画像領域に侵入したときの様子を示す図である。このように、図30の場合の原稿を検出するための検出領域は、残像画像が表示されている残像画像領域となっている。
そして、図30(A)→(B)→(C)の流れは、新たな原稿2603が残像画像領域に侵入してからの残像画像の移動の流れを示している。
本実施の形態では、新たな原稿2603が残像画像領域に侵入したことを検出すると、表示中の残像画像2601を読み取りの邪魔にならない予め定められた領域2608に移動する。
図30(B)は、予め定められた領域に移動する際に表示される遷移画像2604〜2607を示す図である。
図30(C)は、予め定められた領域2608に、移動後の残像画像としてサムネイル画像2607が収まった様子を示す図である。
図31は、図17のステップS625の動き認識処理の手順を示すフローチャートである。
図31に示される処理のうち、ステップS1201〜S1203までは、第2の実施形態における図19で示した動き認識処理のステップS1201〜S1203と同じであり、ステップS2701〜ステップS2703は、図29で示したステップS2301〜S2303と同じであり、ステップS2705は図11のステップS624と同じあるため、図31に示される処理は既に説明されている。
なお、本実施の形態の場合、ステップS2705のジェスチャ処理において、残像画像をサムネイル画像に変更し、予め定められた領域へ移動する指示を与えるジェスチャや、逆に予め定められた領域に存在するサムネイル画像の元の残像画像を、再表示するジェスチャを新たなジェスチャとして加えてもよい。
以上説明したように、第7の実施の形態では、残像画像領域への原稿の侵入を検出して、残像画像をサムネイル画像として予め定められた領域まで移動することが可能となる。
〔第8の実施の形態〕
第6,7の実施の形態は、残像を残しつつ高い認識精度を保って、連続読み込みを行うために、残像画像をサムネイル画像として、予め定められた領域まで移動する形態であった。
本実施の形態では、主に、予め定められた領域のサムネイル画像に新しい原稿が重なって置かれた場合の対処方法として、サムネイル画像を移動させる方法について説明する。
さらに、複数の原稿を連続読み込みしたために、予め定められた領域がサムネイル画像で埋め尽くされた場合や、読み取り領域205に対して原稿が大きいために、予め用意された領域に原稿が重なってしまう場合などに対処する方法について説明する。
第1の実施の形態で説明したネットワーク構成、外観図、コントローラ構成、及びソフトウェア構成は第8の実施の形態でも同じであるので説明を省略する。
図32(A)は、読み取り領域205においてサムネイル画像が表示される予め定められた領域を示す図である。
図32(A)において、予め定められた領域3001〜3004が示されている。図32(A)の例では、4つの領域が存在し、この領域にサムネイル画像が表示される。
各領域を実際に読み取り領域205に表示してもしなくてもよい。また、各領域の初期位置は予め定められており、それらの位置は起動時にRAM303に展開される。
本実施の形態では、領域を4つとしているが、4つに限定されるものではなく、位置も図32(A)に示されるように両端と上下に限定されるものではない。
図32(B)は、領域3001に表示されているサムネイル画像3102に、原稿3101が重なった様子を示す図であり、図32(C)はサムネイル画像の配置位置を変更した様子を示す図である。
図32(B)に示される状態の場合、領域3001の下の部分はサムネイル画像3102を配置する広さが残っている。この広さが残っているか否かは、領域のうちの原稿が重なっていない部分の画像に、サムネイルのサイズの画像が配置可能か否か調べることで判別できる。
配置位置を変更可能であれば、図32(C)のように、原稿3101に重ならないようにサムネイル画像3102の配置位置を変更する。
上述した配置位置の変更は、まずRAM303に記憶されている予め定められた領域の位置を用いて、図10のステップS604でHDD305に記憶された背景画像から領域の画像を切り出す。
こうして切り出した背景画像の領域の画像と、現在の領域の画像からサムネイル画像領域の部分を差し引いた画像を比較することで、予め定められた領域のうち、原稿が重なっていない領域が分かる。
その領域を用いて、予め定められた領域内にサムネイル画像配置可能な領域が残されているかどうかを確認することができる。
また、サムネイル画像のサイズは、図27の画像属性情報の表示座標などを用いれば得ることができる。
図33は、予め定められた領域がサムネイル画像で埋め尽くされている場合に原稿が重なったときの様子を示す図である。
図33(A)は、領域3001にサムネイル画像3202〜3204が表示されており、それに原稿3201が重なった様子を示す図である。
図33(B)は、領域3001以外の他の領域3002〜3004に空きがあることを示す図である。
図33(B)に示されるように、領域3001には全てのサムネイル画像3202〜3204を配置することはできないが、他の領域3002〜3004であれば全てのサムネイル画像3202〜3204を配置することができる。
そこで、例えば領域3002にサムネイル画像3202〜3204を配置することで、全てのサムネイル画像を表示することができる。
図33(C)は、領域3002に全てのサムネイル画像3202〜3204を配置した様子を示す図である。
なお、4つの領域に優先順位を設け、その優先順位に従って全てのサムネイル画像が配置できる領域を順に探していってもよい。このように、サムネイル画像表示領域は複数存在し、複数のサムネイル画像表示領域のうち、検出領域に侵入した原稿とサムネイル画像とが重ならない位置を含むサムネイル画像表示領域にサムネイル画像を表示させる。
さらに、複数のサムネイル画像を表示させる場合に、複数のサムネイル画像の全てを表示可能な1つのサムネイル画像表示領域に複数のサムネイル画像を表示させる。
図34は、サムネイル画像を再配置する様子を示す図である。
図34(A)は、3つのサムネイル画像3302〜3304が、領域3001に表示されており、原稿3301がサムネイル画像3303,3304に重なっている様子を示す図である。
同図に示されるように、領域3001には、1つのサムネイル画像しか配置することができない。
図34(B)は、領域3001以外の他の領域3002〜3004に空きがあることを示す図である。
同図に示されるように、領域3002,3003にも、1つずつサムネイル画像を配置可能な領域が存在する。
このような場合は、領域にまたがってサムネイル画像を再配置すれば、原稿3301と重ならないようにサムネイル画像を配置できる。
図34(C)(D)は、サムネイル画像3302〜3304の再配置例を示す図である。
図34(C)は、領域3002にサムネイル画像3303を配置し、領域3003にサムネイル画像3304を配置し、領域3001にサムネイル画像3302を配置した例を示している。
図34(D)は、領域3002にサムネイル画像3302を配置し、領域3003にサムネイル画像3303を配置し、領域3001にサムネイル画像3304を配置した例を示している。
上述した優先順位が高い順に領域3001、領域3002、領域3003、領域3004となっているとする。
このとき、図34(A)→(C)への変化は、上述した優先順位に従って、サムネイル画像を上から順番に割り振っていった結果を示している。
しかし図34(C)において、サムネイル画像の順番は守られず、ユーザにとって分かりづらいものになってしまう可能性もある。
その場合を考慮して、今回のように横一列に並びなおす場合は、図34(D)に示されるように、左から順番にサムネイル画像3302、サムネイル画像3303、サムネイル画像3304となるように並べ直して表示してもよい。
また、元のサムネイルの移動先をユーザに直感的に理解させるために、移動の際は移動の過程をアニメーションで表示してもよい。このように、複数のサムネイル画像を表示させる場合に、複数のサムネイル画像の全てを表示可能な1つのサムネイル画像表示領域が存在しないときは、複数のサムネイル画像を複数のサムネイル画像表示領域にまたがって表示させる。
図35は、サムネイル画像をまとめて表示する様子を示す図である。
図35(A)は、3つのサムネイル画像3402,3403,3404が、領域3001に表示されており、原稿3401がサムネイル画像3402,3403に重なっている様子を示す図である。
同図に示されるように、領域3001には、1つのサムネイル画像しか配置することができない。
図35(B)は、領域3001以外の他の領域3002〜3004には、サムネイル画像を配置できないことを示す図である。この場合、図34で示したような領域にまたがって配置することもできない。
図35(C)は、サムネイル画像をまとめて表示する様子を示す図である。
このように、1つのサムネイル画像しか配置することができない場合には、動き認識部412は、複数のサムネイル画像をまとめた表示画像を作成するように、表示処理部408に対して指示を出す。
まとめた表示画像は、表示中の全てのサムネイル画像を重ねたような画像であり、その大きさはサムネイル画像のほぼ1つ分の大きさである。このとき、動き認識部412は、全ての表示中のサムネイル画像のSMN座標の値を、1つのサムネイル画像なら表示可能な領域の座標に変更する。つまり全てのサムネイル画像のSMN座標の値は同じものとなる。このように、複数のサムネイル画像を表示させる場合に、1つのサムネイル画像を表示することしかできないときは、複数のサムネイル画像を略1つのサムネイル画像の大きさにまとめた画像を表示させる。
図36は、サムネイル画像を縮小して表示する様子を示す図である。
図36(A)は、3つのサムネイル画像3502〜3504が、領域3001に表示されており、原稿3501がサムネイル画像3502〜3504に重なっている様子を示す図である。
図36(B)は、図36(A)に示される図から原稿3501を取り除いて、各領域とサムネイル画像を示す図である。
これらの図に示されるように、いずれの領域3001〜3004においても1つのサムネイル画像でさえ表示することができない。
図36(C)は、領域のサイズを縮小してサムネイル画像を表示した様子を示す図である。
図36(D)は、図36(C)に示される図から原稿3501を取り除き、各領域とサムネイル画像を示す図である。
図36(A)に示される状態となったとき、動き認識部412は、領域のサイズを縮小する処理を実行することにより、図36(C)に示される状態になる。領域のサイズの初期値は、RAM303に記憶されている座標によって定められている。
このサイズを縮小することで、そのサイズにあうサムネイル画像ならば表示することができる。しかし、あまり縮小すると画像を確認できなくなるため、サイズの下限を予め定めておくようにする。このように、サムネイル画像を表示させる場合に、サムネイル画像を表示可能なサムネイル画像表示領域が存在しないときは、サムネイル画像を縮小したサムネイル画像を表示させる。また、サムネイル画像を縮小して表示させる場合に、縮小したサムネイル画像のサイズが予め定められたサイズ以下となるときには、サムネイル画像を非表示とする。
図37は、サムネイル画像を縮小した場合に小さくなりすぎたときの様子を示す図である。
図37(A)は、3つのサムネイル画像3602〜3604が、領域3001に表示されており、原稿3601がサムネイル画像3602〜3604に重なっている様子を示す図である。
図37(B)は、サイズを縮小すると小さくなりすぎるので、3つのサムネイル画像3602〜3604を非表示とした様子を示す図である。
図37(C)は、サムネイル画像3602〜3604を非表示とした様子を示す図である。図37(D)は、非表示とされたサムネイル画像3602〜3604を示す図である。
図37(E)は、(D)に示される状態で、手3605を検出することで、サムネイル画像3602〜3604を表示する様子を示す図である。
このように、動き認識部412は、サイズが予め定められたサイズ以下となる場合には、表示しているサムネイル画像すべてを非表示とする。そして、それらサムネイル画像のSMN表示中情報をfalseに変更する。
図38,39は、図17のステップS625の動き認識処理の手順を示すフローチャートである。
図38に示される処理のうち、ステップS1201〜S1203、S1224の処理は、図19の処理と同じであるため、説明を省略する。また、ステップS2801〜S2803の処理は、図29のステップS2301〜S2303の処理と同じであるため、説明を省略する。
そこで、まずステップS2803の次のステップS2804を説明する。動き認識部412は、サムネイル画像表示領域の画像をRAM303に記憶する。この記憶の方法は、第2の実施の形態の図18(C)に示されるように、残像画像領域の画像を切り出して記憶する方法と同様の方法である。
サムネイル画像の投影位置については、サムネイル画像の画像属性情報を調べればよい。また、複数のサムネイル画像が存在する場合には、全てのサムネイル画像表示領域について、画像を記憶する。この処理が終わると、本処理を終了する。
ステップS1202の判別の結果、残像画像が表示中でない場合には(ステップS1202でNO)、動き認識部412は、物理オブジェクトがサムネイル画像に重なっているか否か判別する(ステップS2806)。同じく、ステップS1203の判別の結果、物理オブジェクトが残像画像領域2101にない場合には(ステップS1203でNO)、動き認識部412は、物理オブジェクトがサムネイル画像に重なっているか否か判別する(ステップS2806)。ここでの物理オブジェクトは原稿である。
この処理は図19で説明したステップS1203の処理と同じ方法で判別することができる。つまり、ステップS2804でRAM303に記憶しておいたサムネイル画像領域の画像と、現在のサムネイル画像領域の画像を比べることで判別できる。このとき、ステップS2804で記憶した全てのサムネイル画像領域に対して判別する。
ステップS2806の判別の結果、物理オブジェクトがサムネイル画像に重なっていない場合には(ステップS2806でNO)、本処理を終了する。
一方、ステップS2806の判別の結果、物理オブジェクトがサムネイル画像に重なっている場合には(ステップS2806でYES)、動き認識部412は、原稿に重なったサムネイル画像を領域内で移動させるサムネイル移動処理を実行し、本処理を終了する。このサムネイル移動処理については後述する。
次に、ステップS2817から説明する。動き認識部412は、読み取り領域205に読み取り後の原稿が置かれているか否か判別する(ステップS2817)。
ステップS2817の判別の結果、読み取り領域205に読み取り後の原稿が置かれている場合には(ステップS2817でYES)、動き認識部412は、ジェスチャ処理を実行し(ステップS2818)、本処理を終了する。
一方、ステップS2817の判別の結果、読み取り領域205に読み取り後の原稿が置かれていない場合には(ステップS2817でNO)、図39に移り、動き認識部412は、サムネイル移動処理によって非表示にされた領域があるか否か判別する(図37(D)参照)(ステップS2809)。
ここでは、サムネイル画像のSMN座標の値が存在するにも関わらず、SMN表示中情報がfalseになっているか否かで判別できる。
ステップS2809の判別の結果、非表示にされた領域がある場合には(ステップS2809でYES)、非表示にされた領域のサムネイル画像ごとに再表示して(ステップS2810)、ステップS2811に進む。このとき、領域自体は表示してもしなくてもよい。このように、サムネイル画像を非表示とされた後に、検出領域で原稿が検出されなくなった場合には、非表示とされたサムネイル画像を表示させる。
この処理により、一旦サムネイル画像が非表示にされても、手を検出することで再表示することが可能となる。
一方、ステップS2809の判別の結果、非表示にされた領域がない場合には(ステップS2809でNO)、動き認識部412は、サムネイル画像が縮小されているか否か判別する(図36(C)参照)(ステップS2811)。
ここでは、SMN座標から、サムネイル画像の現在のサイズを計算し、初期値として定められているムネイル画像のサイズと比較することで判別できる。
ステップS2811の判別の結果、サムネイル画像が縮小されている場合には(ステップS2811でYES)、動き認識部412は、縮小された領域やサムネイル画像のサイズを初期値に戻して表示して(ステップS2812)、ステップS2813に進む。このように、縮小されたサムネイル画像が表示された後に、検出領域で原稿が検出されなくなった場合、または手が検出領域に侵入したことが検出された場合には、縮小される前のサイズのサムネイル画像である初期値のサイズに戻したサムネイル画像を表示させる。
一方、ステップS2811の判別の結果、サムネイル画像が縮小されていない場合には(ステップS2811でNO)、動き認識部412は、複数のサムネイル画像がまとめられているか否か判別する(図35(C)参照)(ステップS2813)。
ここでは、SMN座標が、全てのサムネイル画像において同じになっているか否か判別すればよい。
ステップS2813の判別の結果、複数のサムネイル画像がまとめられている場合には(ステップS2813でYES)、動き認識部412は、まとめられたサムネイル画像を別々に展開して表示して(ステップS2814)、ステップS2815に進む。このように、まとめた画像が表示された後に、手が検出領域に侵入したことが検出された場合には、まとめた画像を別々のサムネイル画像に展開して表示する。
一方、ステップS2813の判別の結果、複数のサムネイル画像がまとめられていない場合には(ステップS2813でNO)、動き認識部412は、サムネイル画像が複数の領域にまたがって表示されているか否か判別する(図34(C)(D)参照)(ステップS2815)。ここでは、SMN座標を確認することで判別できる。
ステップS2815の判別の結果、サムネイル画像が複数の領域にまたがって表示されていない場合には(ステップS2815でNO)、ステップS2805に進む。
一方、ステップS2815の判別の結果、サムネイル画像が複数の領域にまたがって表示されている場合には(ステップS2815でYES)、動き認識部412は、サムネイル画像を1か所の領域に集めて表示する(ステップS2816)。仮に1か所の領域に表示できない場合には、複数の領域に表示する。次いで、ジェスチャ処理を実行し(ステップS2805)、本処理を終了する。
上述した図39の処理により、複数の領域にまたがって表示されたり、まとめられたり、縮小されたりされたサムネイル画像も、初期値の大きさで元の位置に表示することが可能となる。また、ユーザは手を読み取り領域205にかざすだけで再表示することが可能となる。
図40は、図38のステップS2807のサムネイル移動処理の手順を示すフローチャートである。
図40において、動き認識部412は、図32(A)で示した予め定められた領域3001〜3004のうち、1つの領域に全てのサムネイル画像を配置できるか否か判別する(図32(B)(C)、図33参照)(ステップS2901)。例えば、図32(B)の場合には、ここでは肯定判別されることとなる。
ステップS2901の判別の結果、1つの領域に全てのサムネイル画像を配置できる場合には(ステップS2901でYES)、動き認識部412は、サムネイル画像を上記1つの領域に配置して(ステップS2902)、本処理を終了する。
例えば、図32(C)に示されるようにサムネイル画像3102を移動する。また図33(C)に示されるようにサムネイル画像3202〜3204を移動する。
このとき、動き認識部412は、表示処理部408に対して、サムネイル画像の移動指示を出す。その際、ステップS2901で明らかになった領域の表示可能位置の情報も一緒に伝える。この表示可能位置の情報は、領域内に含まれる矩形領域を表す座標など、その領域を一意に決められるものであればよい。
表示処理部408は、移動指示を受けると、指示された表示可能領域にサムネイル画像を張り付けた表示画像を生成して操作表示部403に描画指示を出す。
ステップS2901の判別の結果、1つの領域に全てのサムネイル画像を配置できない場合には(ステップS2901でNO)、動き認識部412は、複数の領域にまたがって全てのサムネイル画像を配置できるか否か判別する(図34参照)(ステップS2903)。
ステップS2903の判別の結果、複数の領域にまたがって全てのサムネイル画像を配置できる場合には(ステップS2903でYES)、動き認識部412は、複数の領域にまたがって全てのサムネイル画像を配置して(ステップS2904)、本処理を終了する。
具体的に、動き認識部412は、表示処理部408に対して、サムネイル画像の移動指示を出す。その際、ステップS2903で明らかになった複数の領域にまたがる表示可能位置の情報の情報も一緒に伝える。表示処理部408は、移動指示を受けると、サムネイル移動後の表示画像を作成して表示する。
ステップS2903の判別の結果、複数の領域にまたがって全てのサムネイル画像を配置できない場合には(ステップS2903でNO)、動き認識部412は、領域に1つのサムネイル画像を配置できるか否か判別する(図35参照)(ステップS2905)。
なお、サムネイル画像の数が1つの場合には、ステップS2901で肯定判別されるため、このステップS2905に到達している場合には、サムネイル画像は複数存在することとなる。
ステップS2905の判別の結果、領域に1つのサムネイル画像を配置できる場合には(ステップS2905でYES)、動き認識部412は、複数のサムネイル画像をまとめた表示画像を作成するように、表示処理部408に対して指示を出すことで、複数のサムネイル画像をまとめる(ステップS2906)。
次いで、表示処理部408は、全てのサムネイル画像をまとめた画像を配置して(ステップS2907)、本処理を終了する。これにより、全てのサムネイル画像が、まとめられる形で1か所に移動し、原稿と重なることはなくなる。
ステップS2905の判別の結果、領域に1つのサムネイル画像を配置できない場合には(ステップS2905でNO)、動き認識部412は、領域を縮小する(ステップS2908)。
次いで、動き認識部412は、縮小した領域に合うように、サムネイル画像を縮小する(ステップS2909)。これには、サムネイル画像の座標、SMN座標を調整すればよい。
次いで、動き認識部412は、サムネイル画像のサイズが予め定められたサイズ以下か否か判別する(ステップS2910)。ここでの予め定められたサイズは、サムネイル画像を確認可能な下限となるサイズであり、予め定めておく。
ステップS2910の判別の結果、サムネイル画像のサイズが予め定められたサイズ以下ではない場合には(ステップS2910でNO)、ステップS2901に戻る。
一方、ステップS2910の判別の結果、サムネイル画像のサイズが予め定められたサイズ以下の場合には(ステップS2910でYES)、サムネイル画像を非表示として(ステップS2911)、本処理を終了する。
上記ステップS2902で縮小されたサムネイル画像が配置されるまでの流れについて詳細に説明する。まず、上述したステップS2909でサムネイル画像が縮小された後、ステップS2910からステップS2901へ戻り、縮小された領域3508(図36(D)参照)にサムネイル画像をすべて配置できるとステップS2901で判別されることで、ステップS2902で縮小されたサムネイル画像が配置されて表示される。
そして、図37に示されるように、縮小したサムネイル画像3602〜3604に原稿3601がさらに重なり、領域3001を繰り返し縮小していった場合、ステップS2910でサムネイル画像のサイズが予め定められたサイズ以下になると判別される。その場合は、図37(B)のようにサムネイル画像を非表示とする。
以上説明したように、第8の実施の形態では、予め定められた領域のサムネイル画像に新しい原稿が重なって置かれた場合に、サムネイル画像を移動することが可能となる。これにより、原稿にサムネイル画像が重なって原稿認識率が低下することを防ぐことができる。
〔第9の実施の形態〕
第8の実施の形態は、サムネイル画像に原稿が重なった際、サムネイル画像が移動することで、サムネイル画像と原稿が重なることを防止する形態であった。本実施の形態は、移動や非表示にしたサムネイルを再表示する際、第8の実施の形態のようにユーザの手を認識する方法ではなく、フレームアウトを検出してサムネイル画像を再表示する形態である。
第1の実施の形態で説明したネットワーク構成、外観図、コントローラ構成、及びソフトウェア構成は第9の実施の形態でも同じであるので説明を省略する。
図41は、主として図4における撮像処理部406及びタイミング検出部410により実行される残像画像投影処理の手順を示すフローチャートである。
図41に示される残像画像投影処理と図17で説明した残像画像投影処理とが異なる点は、図17のステップS626とステップS612との間に、サムネイル画像処理が挿入された点と、動き認識処理の処理内容である。
図41のステップS624の動き認識処理では、残像画像の移動、サムネイル画像の移動、及びジェスチャ処理が実行される。また、ステップS627のサムネイル画像処理では、主にサムネイル画像の再表示処理などが実行される。これは動き認識処理で、サムネイル画像が非表示にされる場合があるからである。まず、ステップS624の動き認識処理から説明する。
図42は、図41のステップS624の動き認識処理の手順を示すフローチャートである。
図42に示される動き認識処理の各ステップは、図38で説明した動き認識処理に全て含まれているため、説明を省略する。なお、図42に示される動き認識処理では、図39に示される動き認識処理のように、サムネイル画像を表示する処理は含まれない。
図43は、図41のステップS627のサムネイル画像処理の手順を示すフローチャートである。この処理はタイミング検出部410で実行される。
図43において、タイミング検出部410は、フレームインを検出したか否か判別する(ステップS1001)。ステップS1001の判別の結果、フレームインを検出した場合には(ステップS1001でYES)、本処理を終了する。
一方、ステップS1001の判別の結果、フレームインが検出されなかった場合、すなわちフレームアウトが検出された場合には(ステップS1001でNO)、タイミング検出部410は、フレームアウトが検出された物理オブジェクトが手のみであるか否か判別する(ステップS1002)。
ステップS1002の判別の結果、物理オブジェクトが手のみである場合には(ステップS1002でYES)、本処理を終了する。
一方、ステップS1002の判別の結果、物理オブジェクトが手のみでない、すなわち手以外に原稿を含む場合には(ステップS1002でNO)、ステップS3701に進む。
このステップS3701〜S3708の処理は、図39のステップS2809〜S2816と同じであるので、説明を省略する。
以上説明したように、第9の実施の形態では、フレームアウトのタイミングでステップS3701〜S3708を実行することにより、サムネイル画像を非表示にしたり、原稿をフレームアウトしたりしたことをトリガーとして、サムネイル画像の再表示処理を実行することが可能となる。これにより、ユーザの操作性が向上する。
〔第10の実施の形態〕
第8.9の実施の形態は、残像を残しつつ高い認識精度を保って、連続読み込みを行うために、サムネイル画像に原稿が重なった際に、予め定められた領域でサムネイル画像を移動する形態であった。本実施の形態は、できるだけサムネイル画像を大きく保ったまま移動する形態である。
第1の実施の形態で説明したネットワーク構成、外観図、コントローラ構成、及びソフトウェア構成は第10の実施の形態でも同じであるので説明を省略する。
第10の実施の形態では、第9の実施の形態で説明した図41のステップS627のサムネイル画像処理が実行されるが、フレームアウトを検出した場合に限らず、第8の実施の形態のように、手を認識した場合にも図39のステップS2809〜S2816を実行するようにしてもよい。
また、第10の実施の形態では、第9の実施の形態で説明した図42のステップS2807の処理内容が異なるので、この処理について説明する。まず、できるだけサムネイル画像を大きく保ったまま移動することについて説明する。
図44は、サムネイル画像を配置可能な領域を探す様子を示す図である。
図44(A)は、原稿3801が、領域3001のサムネイル画像3802と重なっている様子を示す図である。
この場合、領域3001でサムネイル画像を移動させる場合は、いずれの領域のいずれの場所にサムネイル画像を移動しても原稿3801と重なるため、領域及びサムネイル画像を縮小する必要がある。
しかし、領域内という制限を設けなければ、原稿3801とサムネイル画像3802とが重ならないように配置できる可能性がある。例えば、図44の場合、後述するように読み取り領域205の右下部分にサムネイル画像3802を移動すると原稿3801と重ならないようにサムネイル画像3802を配置できるようになっている。
図44(B)〜(F)は、サムネイル画像3802が配置可能な領域を探す様子を示す図である。
図44(B)〜(F)において、探索領域3803のサイズはサムネイル画像と同じサイズであり、その位置にサムネイル画像が配置可能かどうか確かめるためのものである。
動き認識部412は、現在のフレームの画像から探索領域3808を取得し、HDD305に記憶している読み取り領域の背景画像の同じ領域の画像と比較する。
この比較により、差分が予め定められた値以下であった場合は、その領域には何も置かれていないものとして、配置可能領域とする。一方、差分が予め定められた値より大きかった場合は、その領域は配置可能領域ではないとする。
図44(B)→(C)→(D)→(E)に示されるように、探索領域3803を微小画素数ずつ移動させ、読み取り領域205全体で配置可能領域を探索する。配置可能領域の情報は、それを一意に特定できる座標情報などの情報を、探索のたびに順次更新し、RAM303に記憶しておく。
図44(F)に示される探索領域3804は、最終的に見つかった配置可能領域を示している。
図44(G)は、探索領域3804の中心部分にサムネイル画像3802を配置した様子を示す図である。
図45は、図42のステップS2807のサムネイル移動処理の手順を示すフローチャートである。
図45において、動き認識部412は、図44で説明したように、配置可能領域を探索する(ステップS3901)。
次いで、動き認識部412は、見つかった1つの配置可能領域に全てのサムネイル画像を配置できるか否か判別する(ステップS3902)。ここでは、RAM303に記憶されている配置可能領域の座標情報と、RAM303に記憶されているSMN座標、幅、高さなどから、配置可能領域とサムネイル画像の総面積や縦横の長さを比較することで判別できる。
ステップS3902の判別の結果、1つの配置可能領域に全てのサムネイル画像を配置できる場合には(ステップS3902でYES)、動き認識部412は、サムネイル画像を上記1つの配置可能領域に移動して(ステップS3903)、本処理を終了する。
上記ステップS3903では、SMN座標を書き換え、表示処理部408にサムネイル画像移動の指示を出す。表示処理部408は、移動指示を受けると、表示画像を生成して操作表示部403に描画指示を出す。
一方、ステップS3902の判別の結果、1つの配置可能領域に全てのサムネイル画像を配置できない場合には(ステップS3902でNO)、動き認識部412は、複数の配置可能領域にまたがって全てのサムネイル画像を配置できるか否か判別する(ステップS3904)。
なお、複数の配置領域が見つからなかった場合には、ステップS3904では否定判別される。
ステップS3904の判別の結果、複数の配置可能領域にまたがって全てのサムネイル画像を配置できる場合には(ステップS3904でYES)、動き認識部412は、複数の配置可能領域にまたがって全てのサムネイル画像を配置して(ステップS3905)、本処理を終了する。
ステップS3904の判別の結果、複数の配置可能領域にまたがって全てのサムネイル画像を配置できない場合には(ステップS3904でNO)、動き認識部412は、配置可能領域に1つのサムネイル画像を配置できるか否か判別する(ステップS3906)。
ステップS3906の判別の結果、配置可能領域に1つのサムネイル画像を配置できる場合には(ステップS3906でYES)、動き認識部412は、複数のサムネイル画像をまとめた表示画像を作成するように、表示処理部408に対して指示を出すことで、複数のサムネイル画像をまとめる(ステップS3907)。
次いで、表示処理部408は、全てのサムネイル画像をまとめた画像を配置して(ステップS3908)、本処理を終了する。
ステップS3906の判別の結果、領域に1つのサムネイル画像を配置できない場合には(ステップS3906でNO)、動き認識部412は、サムネイル画像を縮小する(ステップS3909)。これには、サムネイル画像の座標、SMN座標を調整すればよい。
次いで、動き認識部412は、サムネイル画像のサイズが予め定められたサイズ以下か否か判別する(ステップS3910)。ここでの予め定められたサイズは、サムネイル画像を確認可能な下限となるサイズである。
ステップS3910の判別の結果、サムネイル画像のサイズが予め定められたサイズ以下ではない場合には(ステップS3910でNO)、ステップS3901に戻る。
一方、ステップS3910の判別の結果、サムネイル画像のサイズが予め定められたサイズ以下の場合には(ステップS3910でYES)、サムネイル画像を非表示として(ステップS3911)、本処理を終了する。
上記処理において、本実施の形態では領域内という制限がないので、図40のステップS2908の領域を縮小する処理に対応する処理はない。
以上説明したように、第10の実施の形態では、領域内という制限を設けずに、空いている領域に、サムネイル画像の大きさをできるだけ大きく保ったままで、サムネイル画像を移動して配置することができる。
これにより、サムネイル画像をより大きなサイズで見ることができ、サムネイル画像の判読性がよくなる。
移動の際は、ユーザに直感的に理解させるために、移動の際は移動の過程をアニメーションで表示してもよい。
以上説明したように、本実施の形態に係るカメラスキャナ101によれば、原稿台での静止検知を用いて原稿の連続読み込みを実現しつつ、原稿台に確認用の原稿を示す残像画像を表示し、操作することを可能とし、なおかつ、原稿の認識率を下げずに、ユーザの操作性を向上することができる。
また、物理媒体が検出領域へ侵入したことを検知して残像画像を移動してサムネイル画像として表示することで、カメラスキャンによる連続読み込みを行う際に、確認用の表示画像を毎回表示しつつ、残像画像と次の原稿が重なることによる原稿認識率の低下を防ぐことができる。
さらに、検出領域へ侵入した物理媒体が手かどうかを判断することで、表示画像を直接手で操作することを可能とする。
以上説明した各実施の形態によれば、原稿が置かれた位置に原稿を示す画像である残像画像を表示させ(ステップS622)、検出領域に原稿が侵入したことが検出された場合に、検出領域に侵入した原稿と重ならないように残像画像のサムネイル画像を表示させる(ステップS2303)。このように、確認用の残像画像としてのサムネイル画像が自動的に毎回表示されるので、原稿を撮像し、撮像した原稿を示す画像を表示する画像処理装置を利用するユーザの操作性を向上させることができる。
(他の実施の形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。