JP2018191094A - 原稿読取装置、原稿読取装置の制御方法、及びプログラム - Google Patents
原稿読取装置、原稿読取装置の制御方法、及びプログラム Download PDFInfo
- Publication number
- JP2018191094A JP2018191094A JP2017090932A JP2017090932A JP2018191094A JP 2018191094 A JP2018191094 A JP 2018191094A JP 2017090932 A JP2017090932 A JP 2017090932A JP 2017090932 A JP2017090932 A JP 2017090932A JP 2018191094 A JP2018191094 A JP 2018191094A
- Authority
- JP
- Japan
- Prior art keywords
- document
- floating
- area
- user
- reading apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Facsimile Scanning Arrangements (AREA)
Abstract
【課題】適切な原稿の押さえ方をユーザに提示して、原稿のエッジがユーザの手や指で隠れた状態で読み取られてしまうといった事態の発生を抑えた原稿読取装置を提供する。【解決手段】カメラスキャナの浮き領域検出部は、距離画像取得部を用いて原稿が載置されている領域の距離画像を取得しS500、取得した距離画像に基づいて、書画台に載置された原稿の浮き領域を検出しS501)、検出した浮き領域ごとに、原稿の浮きの種類を特定しS503及びS509〜S515、原稿の浮きの種類に応じて、原稿の浮きを補正するための原稿の押さえ方をプロジェクタによって画書台に投影するS504〜S507。【選択図】図5
Description
本発明は、カメラスキャナ等で原稿を読み取る技術に関する。
従来、書画台に載せられたA4用紙のような一枚の紙(以降「原稿」という)や書籍等を読み取るフラットベット型の読取装置が知られている。フラットベット型の読取装置で書籍の見開きページを読み取る際、書籍の綴じ部付近が書画台から浮き上がり、読み取られた画像データにおいて、綴じ部付近の画像が暗くなったり、歪んだり、ぼけたりして十分な品質の画像データが得られないことがある。これを防ぐため、ユーザは書籍を直接手で押さえ付けながらスキャンすることが考えられる。
特許文献1において、ユーザが書籍の適切な押さえ方を把握するため、書画台に対して書籍が浮いている方向を提示する技術が検討されている。
また、上述したフラットベット型の読取装置の他に、スタンド型スキャナ(カメラスキャナ)も知られている。スタンド型スキャナは、書画台に原稿を上向きに置き、書画台上方に配置されたカメラにより撮像し、原稿をスキャン処理する読取装置である。スタンド型スキャナは、フラットベット型とは異なり、操作者の影や照明などに影響を受けやすいため、エッジベースの四辺検出手法を用いることによって原稿や書籍のページ領域のみを切り出すことができる。
スタンド型スキャナで原稿を読み取る際、原稿を圧板で押さえることはできない。そのため、スタンド型スキャナでは、フラットベット型とは異なり、書籍だけでなく原稿も浮き上がりが生じることがある。これを防ぐために、ユーザが原稿の浮いた個所(例えば、原稿の辺や角)を手や指で押さえながらスキャンすることが考えられる。
上述したスタンド型スキャナでは、スキャン時、エッジベースの四辺検出手法で原稿の四辺を切り出すため、原稿のみを過不足なく抽出するためには、ユーザは原稿のエッジがなるべく手や指で隠れないように押さえる必要がある。
しかし、従来の技術では、原稿における浮きの位置や浮きに対する適切な押さえ方をユーザに提示することは実現できていない。そのため、スタンド型スキャナで原稿の読み取りを行う場合に、原稿のエッジがユーザの手や指で隠れた状態で読み取られてしまう場合があった。
しかし、従来の技術では、原稿における浮きの位置や浮きに対する適切な押さえ方をユーザに提示することは実現できていない。そのため、スタンド型スキャナで原稿の読み取りを行う場合に、原稿のエッジがユーザの手や指で隠れた状態で読み取られてしまう場合があった。
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、原稿の浮きに対して適切な押さえ方をユーザに提示し、原稿のエッジがユーザの手や指で隠れた状態で読み取られてしまうといった事態の発生を抑えることができる仕組みを提供することである。
本発明は、載置される原稿から画像データを読み取る原稿読取装置であって、前記原稿が載置されている領域の距離情報を取得する取得手段と、前記取得手段により取得された距離情報に基づいて、前記領域に載置された原稿の浮き領域を検出する検出手段と、前記検出手段により検出された浮き領域ごとに、前記原稿の浮きの種類を特定する特定手段と、前記原稿の浮きの種類に応じて、前記原稿の浮きを補正するための原稿の押さえ方を提示する提示手段と、を有することを特徴とする。
本発明によれば、原稿の浮きに対して適切な押さえ方をユーザに提示することができる。この結果、原稿のエッジがユーザの手や指で隠れた状態で読み取られてしまうといった事態の発生を抑えることができる。
以下、本発明を実施するための形態について図面を参照して説明する。
図1は、本発明の原稿読取装置の一実施例を示すスタンド型スキャナを含むネットワーク構成の一例を示す図である。
カメラスキャナ101は、本実施例のスタンド型スキャナである。カメラスキャナ101は、イーサネット(登録商標)等のネットワーク104を介して、ホストコンピュータ102およびプリンタ103と通信可能に接続されている。
カメラスキャナ101は、本実施例のスタンド型スキャナである。カメラスキャナ101は、イーサネット(登録商標)等のネットワーク104を介して、ホストコンピュータ102およびプリンタ103と通信可能に接続されている。
カメラスキャナ101は、ホストコンピュータ102からの指示により、カメラスキャナ101から画像を読み取るスキャン機能や、スキャンデータをプリンタ103により出力するプリント機能の実行が可能である。また、カメラスキャナ101は、ホストコンピュータ102を介さず、カメラスキャナ101への直接の指示により、スキャン機能、プリント機能の実行も可能である。
<カメラスキャナ101の構成>
図2は、カメラスキャナ101の構成の一例を説明する図である。
図2(a)に示すように、カメラスキャナ101は、コントローラ部201、カメラ部202、腕部203、短焦点プロジェクタ207、距離画像センサ部208を含む。
図2は、カメラスキャナ101の構成の一例を説明する図である。
図2(a)に示すように、カメラスキャナ101は、コントローラ部201、カメラ部202、腕部203、短焦点プロジェクタ207、距離画像センサ部208を含む。
カメラスキャナの本体であるコントローラ部201と、撮像を行うためのカメラ部202、短焦点プロジェクタ207および距離画像センサ部208は、腕部203により連結されている。腕部203は、関節を用いて曲げ伸ばしが可能である。
図2(a)には、カメラスキャナ101が設置されている書画台204も示している。カメラスキャナ101のカメラ部202および距離画像センサ部208のレンズは、書画台204方向に向けられている。カメラスキャナ101は、破線で囲まれた読み取り領域205内の画像を読み取り可能である。図2の例では、読み取り領域205内に原稿206が置かれている。よって、カメラスキャナ101は、この原稿206を読み取り可能である。
また、書画台204内にはターンテーブル209が設けられている。ターンテーブル209は、コントローラ部201からの指示によって回転することが可能である。ターンテーブル209を回転することにより、ターンテーブル209上に置かれた物体とカメラ部202との角度を変えることができる。
なお、カメラ部202は、単一解像度で画像を撮像するものとしてもよいが、高解像度画像撮像と低解像度画像撮像が可能なものとすることが好ましい。
また、図2には示していないが、カメラスキャナ101は、図3に示すように、LCDタッチパネル330およびスピーカ340、人物検出用RGBカメラ360をさらに備えることもできる。人物検出用RGBカメラ360は、カメラスキャナ101周辺にいる人物を検出するためのものである。
図2(b)は、カメラスキャナ101における座標系について表している。
カメラスキャナ101では、各ハードウェアデバイスに対して、「カメラ座標系」、「距離画像センサ座標系」、「プロジェクタ座標系」という座標系が定義されている。これらの座標系は、カメラ部202および距離画像センサ部208のRGBカメラ363が撮像する画像平面、あるいはプロジェクタ207が投影する画像平面をXY平面とし、画像平面に直交する方向をZ方向として定義したものである。
カメラスキャナ101では、各ハードウェアデバイスに対して、「カメラ座標系」、「距離画像センサ座標系」、「プロジェクタ座標系」という座標系が定義されている。これらの座標系は、カメラ部202および距離画像センサ部208のRGBカメラ363が撮像する画像平面、あるいはプロジェクタ207が投影する画像平面をXY平面とし、画像平面に直交する方向をZ方向として定義したものである。
さらに、本実施例では、これらの独立した座標系の3次元データを統一的に扱えるようにするために「直交座標系」が定義されている。直交座標系では、書画台204を含む平面をXY平面とし、このXY平面から上方に垂直な向きをZ軸とする。
以下、座標系を変換する場合の例を、図2(c)を用いて説明する。
図2(c)は、直交座標系とカメラ座標系とを用いて表現された空間と、カメラ部202が撮像する画像平面との関係を示す。
直交座標系における3次元点P[X,Y,Z]は、(1)式によって、カメラ座標系における3次元点Pc[Xc,Yc,Zc]へ変換できる。
図2(c)は、直交座標系とカメラ座標系とを用いて表現された空間と、カメラ部202が撮像する画像平面との関係を示す。
直交座標系における3次元点P[X,Y,Z]は、(1)式によって、カメラ座標系における3次元点Pc[Xc,Yc,Zc]へ変換できる。
ここで、Rcおよびtcは、直交座標系に対するカメラの姿勢(回転)と位置(並進)によって求まる外部パラメータによって構成され、Rcを3×3の回転行列、tcを並進ベクトルと呼ぶ。
逆に、カメラ座標系で定義された3次元点Pc[Xc,Yc,Zc]は(2)式によって、直交座標系における3次元点P[X,Y,Z]への変換することができる
さらに、カメラ部202で撮影される2次元のカメラ画像平面は、カメラ部202によって3次元空間中の3次元情報が2次元情報に変換されたものである。すなわち、カメラ座標系上での3次元点Pc[Xc,Yc,Zc]を、(3)式によってカメラ画像平面での2次元座標pc[xp,yp]に透視投影変換することによて変換することができる。
ここで、Aは、カメラの内部パラメータと呼ばれ、焦点距離と画像中心などで表現される3×3の行列である。
以上のように、(1)式と(3)式を用いることで、直交座標系で表された3次元点群を、カメラ座標系での3次元点群座標やカメラ画像平面に変換することができる。なお、各ハードウェアデバイスの内部パラメータおよび直交座標系に対する位置姿勢(外部パラメータ)は、公知のキャリブレーション手法により予めキャリブレーションされているものとする。以後、特に断りがなく3次元点群と表記した場合は、直交座標系における3次元データを表しているものとする。
<カメラスキャナ101のコントローラ部201のハードウェア構成>
図3は、カメラスキャナ101の本体であるコントローラ部201のハードウェア構成の一例を示す図である。
図3は、カメラスキャナ101の本体であるコントローラ部201のハードウェア構成の一例を示す図である。
図3に示すように、コントローラ部201は、システムバス301に接続されたCPU302、RAM303、ROM304、HDD305及びネットワークI/F306を有する。さらに、コントローラ部201は、画像処理プロセッサ307、カメラI/F308、ディスプレイコントローラ309、シリアルI/F310、オーディオコントローラ311及びUSBコントローラ312を有する。
CPU302は、コントローラ部201全体の動作を制御する中央演算装置である。RAM303は、揮発性メモリである。ROM304は不揮発性メモリであり、CPU302の起動用プログラム等が格納されている。HDD305は、RAM303と比較して大容量なハードディスクドライブ(HDD)である。HDD305には、コントローラ部201の実行する、カメラスキャナ101の制御用プログラム等が格納されている。
CPU302は、電源ON等の起動時、ROM304に格納されている起動用プログラムを実行する。この起動用プログラムは、HDD305に格納されている制御用プログラムを読み出し、RAM303上に展開するためのものである。CPU302は、起動用プログラムを実行すると、続けてRAM303上に展開した制御用プログラムを実行し、制御を行う。また、CPU302は、制御用プログラムによる動作に用いるデータもRAM303上に格納して読み書きを行う。HDD305には、さらに制御用プログラムによる動作に必要な各種設定や、カメラ入力によって生成された画像データ等を格納することができる。HDD305は、CPU302によって読み書き可能である。CPU302は、ネットワークI/F306を介してネットワーク104上の他の機器との通信を行う。
画像処理プロセッサ307は、RAM303に格納された画像データを読み出して処理し、またRAM303へ書き戻す。なお、画像処理プロセッサ307が実行する画像処理は、回転、変倍、色変換等を含む。
カメラI/F308は、カメラ部202、距離画像センサ部208および人物検出用RGBカメラ360と接続される。カメラI/F308は、CPU302からの指示に応じて、カメラ部202や人物検出用RGBカメラ360から画像データを、距離画像センサ部208から距離画像データ(距離情報)を取得して、RAM303へ書き込む。また、カメラI/F308は、CPU302からの制御コマンドを、カメラ部202、距離画像センサ部208及び人物検出用RGBカメラ360へ送信し、カメラ部202、距離画像センサ部208及び人物検出用RGBカメラ360の設定を行う。距離画像センサ部208の構成については後述する。
なお、コントローラ部201は、ディスプレイコントローラ309、シリアルI/F310、オーディオコントローラ311およびUSBコントローラ312のうち少なくとも1つを備える。
ディスプレイコントローラ309は、CPU302の指示に応じて、ディスプレイへの画像データの表示を制御する。ここで、ディスプレイコントローラ309は、短焦点プロジェクタ207およびLCDタッチパネル330に接続されており、これらの表示を制御する。
シリアルI/F310は、シリアル信号の入出力を行う。ここでは、シリアルI/F310はターンテーブル209に接続され、CPU302の回転開始・終了および回転角度の指示をターンテーブル209へ送信する。また、シリアルI/F310はLCDタッチパネル330に接続され、CPU302はLCDタッチパネル330が押下されたときに、シリアルI/F310を介して押下された座標を取得する。
オーディオコントローラ311はスピーカ340に接続され、CPU302の指示に応じて音声データをアナログ音声信号に変換し、スピーカ340を通じて音声を出力する。
USBコントローラ312は、CPU302の指示に応じて外付けのUSBデバイスの制御を行う。ここでは、USBコントローラ312は、USBメモリやSDカードなどの外部メモリ350と接続され、外部メモリ350へのデータの読み書きを行う。
<カメラスキャナ101の制御用プログラムの機能構成>
図4は、CPU302が実行するカメラスキャナ101の制御用プログラムの機能構成401の一例を示す図である。カメラスキャナ101の制御用プログラムは前述のようにHDD305に格納され、CPU302が起動時にRAM303上に展開して実行する。すなわち、図4に示す機能構成401は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。
図4は、CPU302が実行するカメラスキャナ101の制御用プログラムの機能構成401の一例を示す図である。カメラスキャナ101の制御用プログラムは前述のようにHDD305に格納され、CPU302が起動時にRAM303上に展開して実行する。すなわち、図4に示す機能構成401は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。
機能構成401において、メイン制御部402は制御の中心であり、機能構成401内の他の各モジュールを制御する。
画像取得部416は、画像入力処理を行うモジュールである。画像取得部416は、カメラ画像取得部407、距離画像取得部408を有する。
画像取得部416は、画像入力処理を行うモジュールである。画像取得部416は、カメラ画像取得部407、距離画像取得部408を有する。
カメラ画像取得部407は、カメラI/F308を介してカメラ部202が出力する画像データを取得し、RAM303へ格納する。
距離画像取得部408は、カメラI/F308を介して距離画像センサ部208が出力する距離画像データを取得し、RAM303へ格納する。距離画像取得部408の処理の詳細は、後述する図5で説明する領域検出処理の中で説明する。
距離画像取得部408は、カメラI/F308を介して距離画像センサ部208が出力する距離画像データを取得し、RAM303へ格納する。距離画像取得部408の処理の詳細は、後述する図5で説明する領域検出処理の中で説明する。
認識処理部417は、カメラ画像取得部407、距離画像取得部408が取得する画像データから書画台204上の物体の動きを検知して認識するモジュールである。認識処理部417は、ジェスチャ認識部409、物体検知部410を有する。
ジェスチャ認識部409は、画像取得部416から書画台204上の画像を取得し続け、タッチなどのジェスチャを検知するとメイン制御部402へ通知する。
物体検知部410は、メイン制御部402から物体載置待ち処理あるいは物体除去待ち処理の通知を受けると、画像取得部416から書画台204を撮像した画像を取得する。また、物体検知部410は、書画台204上に物体が置かれて静止するタイミングあるいは物体が取り除かれるタイミングを検知する処理を行う。
物体検知部410は、メイン制御部402から物体載置待ち処理あるいは物体除去待ち処理の通知を受けると、画像取得部416から書画台204を撮像した画像を取得する。また、物体検知部410は、書画台204上に物体が置かれて静止するタイミングあるいは物体が取り除かれるタイミングを検知する処理を行う。
スキャン処理部418は、実際に対象物のスキャンを行うモジュールである。スキャン処理部418は、浮き領域検出部411、画像処理部412、コンテンツ有無判定部413を有する。
浮き領域検出部411は、後述する図5に示す浮き領域検出処理を行う。
画像処理部412は、カメラ画像取得部407から取得する画像データに対して色味など見栄えがよくなるよう調整した色調整済み画像を生成する。
画像処理部412は、カメラ画像取得部407から取得する画像データに対して色味など見栄えがよくなるよう調整した色調整済み画像を生成する。
コンテンツ有無判定部413は、指定された画像の指定された領域にコンテンツが存在するか否かの判定(コンテンツ有無判定)を行う。このコンテンツ有無判定は、以下のように行う。まず、コンテンツ有無判定部413は、指定された画像から、指定された領域以外をマスクする。続いて、コンテンツ有無判定部413は、キャニー法によるエッジ検出を行う。続いて、コンテンツ有無判定部413は、エッジとして検出された画素数の、指定された領域の画素数に対する割合を調べる。さらに、コンテンツ有無判定部413は、該割合が所定値より大きい場合、コンテンツが存在すると判定し、該割合が所定値より小さい場合コンテンツが存在しないと判定する。なお、コンテンツの対象を文字のみと限定してもよい、その場合、コンテンツ有無判定部413は、公知の属性判定技術を適用し、文字が含まれればコンテンツが存在すると判定する。もし、画像のみである場合は、コンテンツ有無判定部413は、コンテンツでないと判断する。コンテンツの対象を文字のみと限定することは、視認性の低下を容認できてもOCRの精度低下を防ぐ必要がある場合に有用である。
ユーザインターフェイス部403は、GUI部品生成表示部414、投射領域検出部415を有する。
GUI部品生成表示部414は、メイン制御部402からの要求を受け、メッセージやボタン等のGUI部品を生成し、生成したGUI部品の表示を表示部406へ要求する。なお、書画台204上のGUI部品の表示場所は、投射領域検出部415により検出される。
GUI部品生成表示部414は、メイン制御部402からの要求を受け、メッセージやボタン等のGUI部品を生成し、生成したGUI部品の表示を表示部406へ要求する。なお、書画台204上のGUI部品の表示場所は、投射領域検出部415により検出される。
表示部406は、ディスプレイコントローラ309を介して、短焦点プロジェクタ207もしくはLCDタッチパネル330へ要求されたGUI部品の表示を行う。プロジェクタ207は、書画台204に向けて設置されているため、書画台204上にGUI部品を投射することが可能となっている。
また、ユーザインターフェイス部403は、ジェスチャ認識部409が認識したタッチ等のジェスチャ操作、あるいはシリアルI/F310を介したLCDタッチパネル330からの入力操作、そしてさらにそれらの座標を受信する。そして、ユーザインターフェイス部403は、描画中の操作画面の内容と操作座標を対応させて操作内容(押下されたボタン等)を判定する。ユーザインターフェイス部403は、この操作内容をメイン制御部402へ通知することにより、操作者の操作を受け付ける。
ネットワーク通信部404は、ネットワークI/F306を介して、ネットワーク104上の他の機器とTCP/IP等による通信を行う。
データ管理部405は、制御用プログラム401の実行において生成した作業データなど様々なデータをHDD305上の所定の領域へ保存し、管理する。
データ管理部405は、制御用プログラム401の実行において生成した作業データなど様々なデータをHDD305上の所定の領域へ保存し、管理する。
<距離画像センサ部208および距離画像取得部408の説明>
距離画像センサ部208は、赤外線によるパターン投射方式の距離画像センサである。図3に示すように、距離画像センサ部208は、赤外線パターン投射部361、赤外線カメラ362、RGBカメラ363を有する。
距離画像センサ部208は、赤外線によるパターン投射方式の距離画像センサである。図3に示すように、距離画像センサ部208は、赤外線パターン投射部361、赤外線カメラ362、RGBカメラ363を有する。
赤外線パターン投射部361は、対象物に対して、人の目には不可視である赤外線によって3次元測定パターンを投射する。赤外線カメラ362は、対象物に投射した3次元測定パターンを読みとるカメラである。RGBカメラ363は、人の目に見える可視光をRGB信号で撮影するカメラである。
なお、本実施例では上述したように、距離画像センサ部208として赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、距離画像センサ部208として、2つのRGBカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するTOF(Time of Flight)方式を用いてもよい。
<ジェスチャ認識部409の説明>
ジェスチャ認識部409の処理の詳細を説明する。
ジェスチャ認識部409は、距離画像取得部408から距離画像と3次元点群を取得する。続いて、ジェスチャ認識部409は、書画台204を含む平面から所定の高さ以上にある、肌色の3次元点群を抽出することで、手の3次元点群を得る。続いて、ジェスチャ認識部409は、抽出した手の3次元点群を、書画台204の平面に射影した2次元画像を生成して、その手の外形を検出する。この時、手の3次元点群の各点が、書画台204の平面に投影した2次元画像の各座標のどれに対応するかの対応関係を記憶しておくものとする。続いて、ジェスチャ認識部409は、検出した手の外形上の各点について、その点での外形の曲率を算出し、算出した曲率が所定値より小さい点を指先として検出する。続いて、ジェスチャ認識部409は、それぞれの指先検出した指先の書画台204を含む平面との距離を、先の対応関係を用いて3次元点群から算出する。ジェスチャ認識部409は、算出した距離が微小な所定値以下である場合、タッチジェスチャありと判定し、メイン制御部402へ通知する。
ジェスチャ認識部409の処理の詳細を説明する。
ジェスチャ認識部409は、距離画像取得部408から距離画像と3次元点群を取得する。続いて、ジェスチャ認識部409は、書画台204を含む平面から所定の高さ以上にある、肌色の3次元点群を抽出することで、手の3次元点群を得る。続いて、ジェスチャ認識部409は、抽出した手の3次元点群を、書画台204の平面に射影した2次元画像を生成して、その手の外形を検出する。この時、手の3次元点群の各点が、書画台204の平面に投影した2次元画像の各座標のどれに対応するかの対応関係を記憶しておくものとする。続いて、ジェスチャ認識部409は、検出した手の外形上の各点について、その点での外形の曲率を算出し、算出した曲率が所定値より小さい点を指先として検出する。続いて、ジェスチャ認識部409は、それぞれの指先検出した指先の書画台204を含む平面との距離を、先の対応関係を用いて3次元点群から算出する。ジェスチャ認識部409は、算出した距離が微小な所定値以下である場合、タッチジェスチャありと判定し、メイン制御部402へ通知する。
なお、指先検出について、ここでは3次元点群から2次元画像に投影した画像から指先を検出する方法を説明したが、指先検出の対象とする画像は、これに限定されるものではない。例えば、距離画像の背景差分や、RGB画像の肌色領域から手の領域を抽出し、上に述べたのと同様の方法(外形の曲率計算等)で、手領域のうちの指先を検出してもよい。
<浮き領域検出部411の説明>
浮き領域検出部411による浮き領域検出処理の詳細を図5及び図6を用いて説明する。
図5は、実施例1において原稿の浮き領域を検出する処理(浮き領域検出処理)の一例を説明するフローチャートである。図5(a)及び図5(b)のフローチャートに示す処理は、浮き領域検出部411により実行される。すなわち、図5(a)及び図5(b)に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。
浮き領域検出部411による浮き領域検出処理の詳細を図5及び図6を用いて説明する。
図5は、実施例1において原稿の浮き領域を検出する処理(浮き領域検出処理)の一例を説明するフローチャートである。図5(a)及び図5(b)のフローチャートに示す処理は、浮き領域検出部411により実行される。すなわち、図5(a)及び図5(b)に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。
図6は、浮き領域を検出する処理の一例を説明するための図である。
図6(a)は浮きのない原稿600を示す。図6(b)は角が浮いている原稿601を示す。図6(c)は辺が浮いている原稿602を示す。図6(d)は中央が浮いている原稿603を示す。
図6(a)は浮きのない原稿600を示す。図6(b)は角が浮いている原稿601を示す。図6(c)は辺が浮いている原稿602を示す。図6(d)は中央が浮いている原稿603を示す。
まず、図5(a)のS500において、浮き領域検出部411は、距離画像取得部408を用いて距離画像(距離情報)を取得する。例えば、図6(a)〜図6(d)の原稿600,601,602,603を書画台204にそれぞれ置いた場合、取得される距離画像はそれぞれ図6(e)〜図6(h)の距離画像604,605,606,607となる。
続いてS501において、浮き領域検出部411は、上記S500で取得した距離画像を用いて、浮き領域を検出する。浮き領域の検出は以下のようにして行う。まず、浮き領域検出部411は、上記S500で得た距離画像と、事前に取得している書画台204に何も置かれていない状態の距離画像との差分画像を取得する。続いて、浮き領域検出部411は、該差分画像において事前に決定した所定値を閾値とし、閾値以上の値を持つピクセルを特定し、該ピクセルが連続している領域の外接矩形を検出する。次に、浮き領域検出部411は、該検出された外接矩形を原稿における浮き領域とする。さらに、浮き領域検出部411は、原稿の複数箇所に浮きがある場合、互いに隣接しない複数の外接矩形をそれぞれ浮き領域として検出する。
ここで、浮き領域の検出について、図6(f)の角が浮いた原稿の距離画像605から、図6(i)の浮き領域608を検出するまでの具体例を、図7(a)を用いて説明する。
図7は、浮きの種類を特定する処理を説明するための図である。
図7(a)は、図6(f)の角が浮いた原稿の距離画像605における座標系を示す図である。ここでは、距離画像はXY座標系で表され、画像サイズは640×480ピクセルである。図6(f)の距離画像605に対して、図5(a)のS501を実行すると、図7(a)のような浮き領域608が検出される。浮き領域608の座標は、領域の左上の座標から幅w、高さhの矩形で検出される。具体的には、浮き領域608の座標は、領域の左上の座標が(500,400)、幅50、高さ50の矩形として検出される。以上のように、図6(f)の角が浮いた原稿の距離画像605から、図6(i)の浮き領域608を検出する。
図7(a)は、図6(f)の角が浮いた原稿の距離画像605における座標系を示す図である。ここでは、距離画像はXY座標系で表され、画像サイズは640×480ピクセルである。図6(f)の距離画像605に対して、図5(a)のS501を実行すると、図7(a)のような浮き領域608が検出される。浮き領域608の座標は、領域の左上の座標から幅w、高さhの矩形で検出される。具体的には、浮き領域608の座標は、領域の左上の座標が(500,400)、幅50、高さ50の矩形として検出される。以上のように、図6(f)の角が浮いた原稿の距離画像605から、図6(i)の浮き領域608を検出する。
同様に、図6(e)〜図6(h)の距離画像604,605,606,607において、図5(a)のS501でそれぞれ浮き領域を検出する。これにより、図6(i)〜図6(k)の浮き領域608,609,610,611が検出され、それぞれ浮き領域の座標と幅、高さが算出される。
なお、図6(a)のように原稿に浮きがない場合、図6(e)の距離画像604から、浮き領域は検出されない。また、図6(c)のように原稿に複数の浮きがある場合、図6(j)のように複数の浮き領域609,610が検出される。
<浮き領域における浮きの種類を特定する>
以下、図5(a)のフローチャートの説明に戻る。
S502において、浮き領域検出部411は、上記S501で検出した浮き領域から浮きの種類を特定していない浮き領域を一つ取得する。
次に、S503において、浮き領域検出部411は、上記S502で取得した浮き領域における浮きの種類を特定する。ここで、S503の詳細を、図5(b)を用いて説明する。
以下、図5(a)のフローチャートの説明に戻る。
S502において、浮き領域検出部411は、上記S501で検出した浮き領域から浮きの種類を特定していない浮き領域を一つ取得する。
次に、S503において、浮き領域検出部411は、上記S502で取得した浮き領域における浮きの種類を特定する。ここで、S503の詳細を、図5(b)を用いて説明する。
図5(b)は、浮きの種類を特定する処理を示すフローチャートである。
S509において、浮き領域検出部411は、浮き領域における重心位置を特定する。重心位置は、浮き領域内で特に浮いている箇所を特定するために用いる。浮き領域の各画素の座標を(x,y)、浮き領域における全画素数をMとすると、重心位置(X,Y)は以下の式(4)を用いて算出する。
S509において、浮き領域検出部411は、浮き領域における重心位置を特定する。重心位置は、浮き領域内で特に浮いている箇所を特定するために用いる。浮き領域の各画素の座標を(x,y)、浮き領域における全画素数をMとすると、重心位置(X,Y)は以下の式(4)を用いて算出する。
重心位置によって浮き領域内で特に浮いている箇所を特定するため、重心位置を特定する際に用いる閾値は、図5(a)のS501で用いた閾値よりも大きい閾値を用いるのが望ましい。
続いてS510において、浮き領域検出部411は、浮き領域を複数の領域に分割する。例えば、浮き領域の幅と高さをそれぞれ3等分することによって、浮き領域を9つの領域に分割する(例えば図7(c))。
S511において、浮き領域検出部411は、重心が分割した領域の辺に含まれるか否か判定する。浮き領域検出部411が、重心が分割した領域の辺に含まれると判定した場合(S511でYesの場合)、浮き領域検出部411は、S515に処理を進め。S515において、浮き領域検出部411は、浮きの種類を「辺」として、図5(b)の処理を終了する。
一方、上記S511において、浮き領域検出部411が、重心が分割した領域の辺に含まれないと判定した場合(S511でNOの場合)、浮き領域検出部411は、S512に処理を進め。
S512において、浮き領域検出部411が、重心が分割した領域の角に含まれるか否か判定する。浮き領域検出部411が、重心が分割した領域の角に含まれると判定した場合(S512でYesの場合)、浮き領域検出部411は、S514に処理を進め。S514において、浮き領域検出部411は、浮きの種類を「角」として、図5(b)の処理を終了する。
一方、上記S512において、浮き領域検出部411が、重心が分割した領域の角に含まれないと判定した場合(S512でNOの場合)、浮き領域検出部411は、S513に処理を進め。S513において、浮き領域検出部411は、浮きの種類を「中央」として、図5(b)の処理を終了する。以上が、S503の浮きの種類を特定する処理である。
ここで、浮きの種類を特定する処理について、図6(i)の浮き領域608から浮きの種類を特定するまでの具体例を、図7(b)と図7(c)を用いて説明する。
図7(b)は、浮き領域608を示す図である。
まず図5(b)のS509において、浮き領域検出部411は、浮き領域608の重心位置gを特定する。前述した(4)式を用いることによって、重心位置gは例えば、(x、y)=(548,448)として算出される。
まず図5(b)のS509において、浮き領域検出部411は、浮き領域608の重心位置gを特定する。前述した(4)式を用いることによって、重心位置gは例えば、(x、y)=(548,448)として算出される。
続いてS510において、浮き領域検出部411は、浮き領域608を複数の領域に分割する。一例として、浮き領域608を9つの領域に分割する。
図7(c)は浮き領域608を9つの領域に分割した例を示す図である。
分割した領域はそれぞれ角、辺、中央に分類される。浮き領域608における重心位置gは、図7(c)のように、分割した領域の内、右下の角の領域に含まれる。
図7(c)は浮き領域608を9つの領域に分割した例を示す図である。
分割した領域はそれぞれ角、辺、中央に分類される。浮き領域608における重心位置gは、図7(c)のように、分割した領域の内、右下の角の領域に含まれる。
続いてS511において、浮き領域検出部411は、重心gが分割した領域の辺に含まれるか否か判定する。図7(c)において、重心gは分割した領域の辺に含まれていないため、判定はNoとなり、S512に進む。S512において、浮き領域検出部411は、重心が分割した領域の角に含まれるか否か判定する。図7(c)において、重心gは分割した領域の角に含まれているため、判定はYesとなり、S514に進む。S514において、浮き領域608における浮きの種類は、「角」となる。以上のように、図6(i)の浮き領域608から浮きの種類が特定される。
同様に、図6(j)、(k)の浮き領域609,610,611は、図7(d)と図7(e)のようにそれぞれ領域が分割され、浮き領域609,610における浮きの種類は「辺」となる。また、浮き領域611の浮きの種類は「中央」となる。
<押さえ方の表示例>
以下、図5(a)のフローチャートの説明に戻る。
上記S503の処理の後、浮き領域検出部411は、S504に処理を進める。
S504において、浮き領域検出部411は、上記S503で特定された浮き領域における浮きの種類を判定する。浮き領域検出部411は、浮きの種類が「辺」であると判定した場合(S504で「辺」の場合)、S505に処理を進める。S505において、浮き領域検出部411は、原稿の辺を指で押さえるために適切な押さえ方をプロジェクタ207によって書画台204に表示(投影)し、S508に処理を進める。
以下、図5(a)のフローチャートの説明に戻る。
上記S503の処理の後、浮き領域検出部411は、S504に処理を進める。
S504において、浮き領域検出部411は、上記S503で特定された浮き領域における浮きの種類を判定する。浮き領域検出部411は、浮きの種類が「辺」であると判定した場合(S504で「辺」の場合)、S505に処理を進める。S505において、浮き領域検出部411は、原稿の辺を指で押さえるために適切な押さえ方をプロジェクタ207によって書画台204に表示(投影)し、S508に処理を進める。
また、浮き領域検出部411は、浮きの種類が「角」であると判定した場合(S504で「角」の場合)、S506に処理を進める。S506において、浮き領域検出部411は、原稿の角を指で押さえるために適切な押さえ方をプロジェクタ207によって書画台204に表示(投影)し、S508に処理を進める。
また、浮き領域検出部411は、浮きの種類が「中央」であると判定した場合(S504で「中央」の場合)、S507に処理を進める。S507において、浮き領域検出部411は、原稿の中央を指で押さえるために適切な押さえ方をプロジェクタ207によって書画台204に表示(投影)し、S508に処理を進める。
ここで、適切な押さえ方の表示例について具体的に示す。ここでは、図6(a)の角が浮いた原稿601を書画台204に置いた場合を例として図8で説明する。
図8は、書画台204上に角が浮いた原稿601を置いた場合の押さえ方の表示例の一例を示す図である。なお、書画台204は、XY座標系で左上を原点として幅640、高さ480とする。また、書画台204の幅や高さはこの値に限定せず、別の値を用いてもよい。
図8は、書画台204上に角が浮いた原稿601を置いた場合の押さえ方の表示例の一例を示す図である。なお、書画台204は、XY座標系で左上を原点として幅640、高さ480とする。また、書画台204の幅や高さはこの値に限定せず、別の値を用いてもよい。
押さえ方の表示例として、メッセージ800やアイコン801の表示を含む表示例を示す。メッセージ800は、原稿601の角の辺を隠さないよう促す文言を書画台204の上側に表示するものである。メッセージ800の表示位置は、図8の例に限定されるものではなく、例えば書画台204の下側や左側、右側等でもよい。また、アイコン801は、ユーザが実際の押さえ方をイメージしやすいよう、指のアイコンを表示するものである。表示する指のアイコンは、右手と左手の指のアイコンを浮き領域の位置に応じて、切替えて表示してもよい。例えば図8では、右下の角が浮いているため右手の指アイコンを表示する例を示しているが、左下の角が浮いている場合には左手の指アイコンを左下の角の位置に表示するようにしてもよい。
また、アイコン801は、図8のように、図5(b)のS509で求めた重心位置に、アイコン801の矩形の頂点が一致するように表示される。アイコン801の表示位置はこれに限定されるものではなく、例えば重心位置から所定距離以上離れた位置に表示したり、浮き領域の近辺に表示したりしてもよい。また、アイコン801が指アイコンの場合、右手の指先や左手の指先の座標と重心位置が一致するように表示してもよい。以上のように、書画台204に置かれた原稿601に対して押さえ方が表示される。
以下、原稿の角や辺、中央がそれぞれ浮いた場合の押さえ方の表示のバリエーションについて、図13A、図13B、図14、図15を用いて説明する。
なお、図13A、図13B、図14、図15の具体例は、ユーザ1100がカメラスキャナ101で原稿をスキャンする場合、図11(a)のように、ユーザ1100はカメラスキャナ101に対して正面にいることを想定した表示例に対応する。
なお、図13A、図13B、図14、図15の具体例は、ユーザ1100がカメラスキャナ101で原稿をスキャンする場合、図11(a)のように、ユーザ1100はカメラスキャナ101に対して正面にいることを想定した表示例に対応する。
図13A、図13Bは、実施例1において、角が浮いた原稿に対する押さえ方の表示の一覧を示す図である。
図14は、実施例1において、辺が浮いた原稿に対する押さえ方の表示の一覧を示す図である。
図15は、実施例1において、中央が浮いた原稿に対する押さえ方の表示の一覧を示す図である。
なお、図13A、図13B、図14、図15において、ユーザ1100、カメラスキャナ101は、ユーザとカメラスキャナとの位置関係を明確にするための記載であり、本実施例の押さえ方の表示には含まれない。
図14は、実施例1において、辺が浮いた原稿に対する押さえ方の表示の一覧を示す図である。
図15は、実施例1において、中央が浮いた原稿に対する押さえ方の表示の一覧を示す図である。
なお、図13A、図13B、図14、図15において、ユーザ1100、カメラスキャナ101は、ユーザとカメラスキャナとの位置関係を明確にするための記載であり、本実施例の押さえ方の表示には含まれない。
図13Aの(a)〜(d)は、原稿の角のうち1箇所だけが浮いている場合の表示例を示す。この場合、浮き領域検出部411は、浮いている原稿の角を押さえる押さえ方を提示する。また、浮き領域検出部411は、浮き領域が左側にある場合と右側にある場合とで、表示するアイコンを切替え、重心位置に指先が一致するようにそれぞれアイコン801を表示する。
図13Bの(e)〜(j)は、原稿の角のうち2箇所が浮いている場合の表示例を示す。この場合、浮き領域は複数検出されるため、浮き領域検出部411は、浮き領域毎にそれぞれ、アイコン801を角が1箇所だけが浮いている場合と同様の処理で表示する。即ち、浮き領域検出部411は、浮いている原稿の各角を押さえる押さえ方を提示する。なお、図13Bの(g)や(h)のように、2箇所の角の浮き領域が右側又は左側で両方検出された場合、浮き領域検出部411は、図13(g)では左下の角に右手の指アイコン、図13(h)では右下の角に左手のアイコンを表示する。
図14の(a)〜(d)は、原稿の辺のうち1箇所だけが浮いている場合の表示例を示す。この場合、浮いている辺の両端を押さえる押さえ方を提示する。図14の(a)〜(d)で表示するアイコン801は、辺に含まれる2箇所の角が浮いているものと同様のものを表示する。即ち、図13Bの(e)〜(h)と同様のアイコンを表示する。また、アイコンの表示位置は浮き領域の短辺の中央とする。
図14(e)と図14(f)は、原稿の辺のうち2箇所が浮いている場合の表示例を示す。図14(e)のように左右の辺がそれぞれ浮いている場合、辺の中央を押さえるよう促すメッセージ800とアイコン801を表示する。図14(f)のように上下の辺がそれぞれ浮いている場合、ユーザの位置からは押さえづらいため、原稿を90度回転後、辺の中央を押さえるよう促すメッセージ800を表示する。アイコン801の表示位置は例えば、原稿の回転を考慮し、書画台204の辺に近い個所に表示する。
図15の(a)〜(c)は、中央が浮いている場合の表示例を示す図である。図15(a)のように原稿の中央が縦長(ユーザの正面方向)に浮いている場合、例えば原稿を伸ばしながら(引っ張りながら)両辺の中央を押さえるよう促すメッセージ800を表示する。また、図15(b)のように原稿を90度回転後、辺の中央を押さえるよう促すメッセージ800を表示してもよい。アイコン801は、浮き領域から所定以上離れた個所にそれぞれ表示する。図15(c)のように原稿の中央が横長に浮いている場合、辺の中央を押さえるよう促すメッセージ800を表示する。アイコン801は、浮き領域の短辺の中央にそれぞれ表示する。
以上ように、実施例1によれば、浮き領域を特定し、浮き領域毎に適切な押さえ方をユーザに対して提示することができる。これにより、ユーザは原稿をスキャンする際、様々な浮き原稿に対して適切な押さえ方を容易に実施することができる。
上記実施例1で示したように原稿の浮き領域を検出する場合、浮き領域が複数検出される場合がある。例えば、3か所以上の浮き領域が検出された場合、ユーザの両手では押さえきれない可能性がある。本実施例2では、浮き領域毎に優先度を決定し、優先度の高い浮き領域のみ押さる押さえ方を表示する仕組みを提供する。
図9は、実施例2において原稿の浮き領域を検出する処理(浮き領域検出処理)の一例を説明するフローチャートである。このフローチャートに示す処理は、浮き領域検出部411により実行される。すなわち、図9に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。なお、図5と同一の処理については同一のステップ番号を付与し、詳細な説明を省略する。
S501,S501の処理の後、浮き領域検出部411は、S900に処理を進める。S900において、浮き領域検出部411は、上記S501で検出された浮き領域が所定数より多いか否か判定する。本実施例では、所定数を「2」として説明する。
上記S900において、浮き領域検出部411が、検出された浮き領域が所定数より多くないと判定した場合(S900でNoの場合)、S502に処理を進める。一方、浮き領域検出部411が、検出された浮き領域が所定数より多いと判定した場合(S900でYesの場合)、S901に処理を進める。
S901において、浮き領域検出部411は、S501検出された浮き領域毎に優先度を付与する。優先度は、浮き領域内のコンテンツの有無や浮き領域内の浮きの大きさによって決定する。コンテンツのある浮き領域を補正せずそのまま撮像すると、コンテンツが歪んでしまう。そのため、浮き領域検出部411は、優先度を決定する際、浮きの大きさよりもコンテンツの有無を優先する。また、浮き領域内のコンテンツの有無は、コンテンツ有無判定部413によって判定する。また、浮き領域内の浮きの大きさは、事前に取得された書画台204に何も置かれていない状態の距離画像との差分画像における差分の最大値を用いる。
次にS902において、浮き領域検出部411は、優先度の高い浮き領域を上述した所定数(ここでは「2」)分だけ取得する。浮き領域検出部411は、S902で取得した浮き領域に対してのみS502〜S508の処理を実行し、浮きの種類を特定して押さえ方を表示するように制御する。
図10は、浮き領域が所定数より多く検出された場合の処理を説明するための図である。
図10(a)は浮き領域が所定数より多く検出された様子を示す。また、図10(b)は検出された浮き領域に対して優先度を付与した結果の一例を示す。なお、図10(b)における浮き領域1、浮き領域2、浮き領域3は、図10(a)における浮き領域1000、浮き領域1001、浮き領域1002とそれぞれ対応している。
図10(c)は優先度の高い浮き領域に対する押さえ方の表示例を示す。
図10(a)は浮き領域が所定数より多く検出された様子を示す。また、図10(b)は検出された浮き領域に対して優先度を付与した結果の一例を示す。なお、図10(b)における浮き領域1、浮き領域2、浮き領域3は、図10(a)における浮き領域1000、浮き領域1001、浮き領域1002とそれぞれ対応している。
図10(c)は優先度の高い浮き領域に対する押さえ方の表示例を示す。
図9のS901では、浮き領域検出部411は、まずコンテンツの有無を比較し、コンテンツが含まれる浮き領域1を最も高い優先度を設定する。次に、浮き領域検出部411は、浮き領域2と浮き領域3を浮きの大きさで比較し、浮きの大きい浮き領域2を2番目に高い優先度を設定する。さらに、浮き領域検出部411は、最後に残った浮き領域3を3番目に高い優先度を設定する。S902では、浮き領域検出部411は、優先度の高い浮き領域1と浮き領域2を取得する。その後、浮き領域検出部411は、S502、S503において、上記S902で取得した浮き領域における浮きの種類を特定する。そして、浮き領域検出部411は、S505〜S507において、図10(c)のように優先度の高い浮き領域1と浮き領域2に対する押さえ方のみを表示する。
以上のように、実施例2によれば、浮き領域毎に優先度を付与し、優先度の高い浮き領域のみ押さえ方を提示することができる。これにより、ユーザは原稿をスキャンする際、複数の浮きのある原稿の中でも特に押さえた方が良い個所を押さえながらスキャンすることを容易に実施することができる。
上述した実施例1では、ユーザ1100がカメラスキャナ101で原稿をスキャンする場合、図11(a)のように、ユーザ1100はカメラスキャナ101に対して正面にいることを想定としていた。しかし、図11(b)のように、ユーザ1100はカメラスキャナ101に対して横にいる可能性がある。このときユーザ1100が原稿1101の辺が隠れないように一本の指で押さえたとしても、図11(b)のようにカメラスキャナ101と原稿1101の間にユーザの左手が入り、撮像時に原稿が手で遮られる場合がある。この状態で、カメラ部202で書画台204の原稿1101を撮像すると、図11(c)のような撮像画像1102が得られる。撮像画像1102では、ユーザの左手により原稿の辺が大きく隠れてしまっている。このようになる理由として、カメラ部202がユーザの視点とは異なる方向から原稿を撮像しているためである。
例えば、書画台204の、ユーザから見て奥側の領域、且つ、カメラスキャナ101(カメラ部202)から見て手前側の領域、即ち図11(d)の領域1103に浮き領域が含まれると、撮像時に原稿が原稿を押さえるユーザの手で遮られる場合がある。そこで、本実施例3では、カメラスキャナと原稿の間に、原稿を押さえるユーザの手や指が入らないよう、カメラスキャナに対するユーザの位置を検出し、ユーザの位置、浮き領域の位置、及び浮きの種類に応じて浮き領域の押さえ方を表示する仕組みを提供する。
図12は、実施例3において原稿の浮き領域を検出する処理(浮き領域検出処理)の一例を説明するフローチャートである。このフローチャートに示す処理は、浮き領域検出部411により実行される。すなわち、図9に示す処理は、CPU302がHDD305に格納されるカメラスキャナ101の制御用プログラムをRAM303にロードして実行することにより実現される。なお、図5と同一の処理については同一のステップ番号を付与し、詳細な説明を省略する。
まず、S1200において、浮き領域検出部411は、カメラスキャナ101に対するユーザの位置を取得する。取得するユーザの位置として、図11(a)や図11(b)のように正面か横にいるか、正面にいるかを取得する。ユーザの位置は以下のように取得する。まず、浮き領域検出部411は、人物検出用RGBカメラ360を用いて撮像画像を取得し、撮像画像に対して公知の顔検出技術を適用する。さらに、浮き領域検出部411は、検出された顔の位置が画像の中央の領域など、所定の領域に含まれている場合、ユーザの位置を正面と判定する。それ以外の領域であれば、ユーザの位置を横と判定する。ユーザの位置を横と判定した場合、浮き領域検出部411は、ユーザがカメラスキャナ101から見て左右いずれ側にいるかも判定する。S1200の処理の後、浮き領域検出部411は、S500に処理を進める。
浮き領域検出部411は、浮きの種類が「辺」であると判定した場合(S504で「辺」の場合)、S1201において、ユーザの位置に応じた辺の押さえ方をプロジェクタ207によって書画台204に表示(投影)する。
また、浮き領域検出部411は、浮きの種類が「角」であると判定した場合(S504で「角」の場合)、S1202において、ユーザの位置に応じた角の押さえ方をプロジェクタ207によって書画台204に表示(投影)する。
また、浮き領域検出部411は、浮きの種類が「中央」であると判定した場合(S504で「中央」の場合)、S1203において、ユーザの位置に応じた中央の押さえ方をプロジェクタ207によって書画台204に表示(投影)する。
また、浮き領域検出部411は、浮きの種類が「角」であると判定した場合(S504で「角」の場合)、S1202において、ユーザの位置に応じた角の押さえ方をプロジェクタ207によって書画台204に表示(投影)する。
また、浮き領域検出部411は、浮きの種類が「中央」であると判定した場合(S504で「中央」の場合)、S1203において、ユーザの位置に応じた中央の押さえ方をプロジェクタ207によって書画台204に表示(投影)する。
なお、浮き領域検出部411は上記S1201、S1202又はS1203を実行する際、スキャン時に原稿が原稿を押さえるユーザの手で遮られる可能性のある領域(以下「影領域」)に浮き領域が含まれるか否かを判定する。ここで影領域とは、例えば、図11(c)の1103のような、ユーザから見て奥側の領域、且つカメラスキャナ101(カメラ部202)から見て手前側の領域等である。
浮き領域検出部411は、上記影領域に浮き領域が含まれると判定した場合、ユーザに対して、正面に移動してから原稿を押さえるよう促すメッセージを表示し、ユーザが正面に移動した後の原稿の押さえ方を表示するように制御する。一方、影領域に浮き領域が含まれないと判定した場合は、浮き領域検出部411は、実施例1と同様のメッセージを表示し、実施例1と同様に、ユーザの現在の位置からの原稿の押さえ方を表示するように制御する。
なお、表示する押さえ方の具体例として、ユーザが正面にいる場合は実施例1と同様の表示をするため説明を省略する。以下、ユーザが横にいる場合の原稿の押さえ方の表示の具体例を、図16A、図16B、図17、図18を用いて説明する。
図16A、図16Bは、実施例3において、ユーザが横にいる場合において、角が浮いた原稿に対する押さえ方の表示の一覧を示す図である。
図17は、実施例3において、ユーザが横にいる場合において、辺が浮いた原稿に対する押さえ方の表示の一覧を示す図である。
図18は、実施例3において、ユーザが横にいる場合において、中央が浮いた原稿に対する押さえ方の表示の一覧を示す図である。
これらの表示例は全て、図11(b)のように、カメラスキャナ101から見て右側にユーザがいる場合、つまりユーザから見て左側にカメラスキャナ101がある場合に対応し、ユーザから見たときの書画台204における表示例である。なお、図16A、図16B、図17、図18において、ユーザ1100、カメラスキャナ101は、ユーザとカメラスキャナとの位置関係を明確にするための記載であり、本実施例の押さえ方の表示には含まれない。
図17は、実施例3において、ユーザが横にいる場合において、辺が浮いた原稿に対する押さえ方の表示の一覧を示す図である。
図18は、実施例3において、ユーザが横にいる場合において、中央が浮いた原稿に対する押さえ方の表示の一覧を示す図である。
これらの表示例は全て、図11(b)のように、カメラスキャナ101から見て右側にユーザがいる場合、つまりユーザから見て左側にカメラスキャナ101がある場合に対応し、ユーザから見たときの書画台204における表示例である。なお、図16A、図16B、図17、図18において、ユーザ1100、カメラスキャナ101は、ユーザとカメラスキャナとの位置関係を明確にするための記載であり、本実施例の押さえ方の表示には含まれない。
図16Aの(a)〜(d)は、原稿の角のうち1箇所だけが浮いている場合の表示例を示す図である。実施例1との差分として、影領域に浮き領域が含まれる図16(a)の場合、浮き領域検出部411は、ユーザに対して正面に移動してから角を押さえるよう促すメッセージ800を表示する。また、この場合、浮き領域検出部411は、ユーザが正面に移動した後の押さえ方を提示するようなアイコン801を表示する。図16A(a)の表示の場合、ユーザが正面に移動した後の押さえ方は、図13A(b)と同様の押さえ方になる。即ち、移動後のユーザから見て原稿の右奥を右手の指で押さえる押さえ方が提示される。
図16Bの(e)〜(j)は、原稿の角のうち2箇所が浮いている場合の表示例を示す。実施例1との差分として、影領域に浮き領域が含まれる図16Bの(f)、(g)及び(j)の場合、浮き領域検出部411は、ユーザに対して正面に移動してから角を押さえるよう促すメッセージ800を表示する。また、この場合、浮き領域検出部411は、ユーザが正面に移動した後の押さえ方を提示するようなアイコン801を表示する。図16Bの(f)、(g)、(j)の表示の場合、ユーザが正面に移動した後の押さえ方は、それぞれ図13Bの(h)、(f)、(i)と同様の押さえ方になる。
図17の(a)〜(d)は、原稿の辺のうち1箇所だけが浮いている場合の表示例を示す。実施例1との差分として、影領域に浮き領域が含まれる図17の(a)、(c)の場合、浮き領域検出部411は、ユーザに対して正面に移動してから角を押さえるよう促すメッセージ800を表示する。また、この場合、浮き領域検出部411は、ユーザが正面に移動した後の押さえ方を提示するようなアイコン801を表示する。図17の(a)、(c)の表示の場合、ユーザが正面に移動した後の押さえ方は、それぞれ図14の(c)、(b)と同様の押さえ方になる。
図17の(e)、(f)は、原稿の辺のうち2箇所が浮いている場合の表示例を示す。実施例1との差分として、影領域に浮き領域が含まれる図17の(e)の場合、浮き領域検出部411は、ユーザに対して正面に移動したのち、原稿を90度回転させて辺の中央を押さえるよう促すメッセージ800を表示する。また、この場合、浮き領域検出部411は、ユーザが正面に移動した後の押さえ方を提示するようなアイコン801を表示する。図17の(e)の表示の場合、ユーザが正面に移動した後の押さえ方は、図14の(f)と同様の押さえ方になる。
また、実施例1との差分として、影領域に浮き領域が含まれる図17の(f)の場合、浮き領域検出部411は、ユーザに対して正面に移動したのち、辺の中央を押さえるよう促すメッセージ800を表示する。また、この場合、浮き領域検出部411は、ユーザが正面に移動した後の押さえ方を提示するようなアイコン801を表示する。図17の(f)の表示の場合、ユーザが正面に移動した後の押さえ方は、図14の(e)と同様の押さえ方になる。
図18の(a)、(b)は、原稿の中央が浮いている場合の表示例を示す。実施例1との差分として、影領域に浮き領域が含まれる図18の(a)の場合、浮き領域検出部411は、ユーザに対して正面に移動してから辺を押さえるよう促すメッセージ800を表示する。また、この場合、浮き領域検出部411は、ユーザが正面に移動した後の押さえ方を提示するようなアイコン801を表示する。図18の(a)の表示の場合、ユーザが正面に移動した後の押さえ方は、図15の(c)と同様の押さえ方になる。
また、実施例1との差分として、影領域に浮き領域が含まれる図18の(b)の場合、浮き領域検出部411は、ユーザに対して正面に移動し、原稿を伸ばしながら辺を押さえるよう促すメッセージ800を表示する。また、この場合、浮き領域検出部411は、ユーザが正面に移動した後の押さえ方を提示するようなアイコン801を表示する。図18の(b)の表示の場合、ユーザが正面に移動した後の押さえ方は、図15の(a)と同様の押さえ方になる。
以上のように、実施例3によれば、カメラスキャナ101に対するユーザの位置に応じて、浮き領域毎に適切な押さえ方をユーザに対して提示することができる。これにより、ユーザは原稿をスキャンする際、カメラスキャナと原稿の間に手が入らない押さえ方を容易に実施することができる。
以上、各実施例によれば、浮き領域毎に浮きの種類を特定し、浮きの種類に応じた適切な原稿の押さえ方をユーザに提示することができる。したがって、ユーザは原稿の浮きに対して適切な押さえ方を容易に把握し、適切な押さえ方で原稿を押さえてスキャンすることができる。この結果、スタンド型スキャナで原稿の読み取りを行う場合に、原稿のエッジがユーザの手や指で隠れた状態で読み取られてしまう事態の発生を抑えることができる。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
1 ハンドスキャナハウジング
2 入力書面
3 1次元イメージセンサ
4 ワイドレンズ
5 照明ランプ
2 入力書面
3 1次元イメージセンサ
4 ワイドレンズ
5 照明ランプ
Claims (18)
- 載置される原稿から画像データを読み取る原稿読取装置であって、
前記原稿が載置されている領域の距離情報を取得する取得手段と、
前記取得手段により取得された距離情報に基づいて、前記領域に載置された原稿の浮き領域を検出する検出手段と、
前記検出手段により検出された浮き領域ごとに、前記原稿の浮きの種類を特定する特定手段と、
前記原稿の浮きの種類に応じて、前記原稿の浮きを補正するための原稿の押さえ方を提示する提示手段と、
を有することを特徴とする原稿読取装置。 - 前記浮き領域が所定数より多い場合、前記各浮き領域に優先度を設定する設定手段を有し、
前記提示手段は、前記浮き領域が所定数より多い場合には、前記設定手段により設定された優先度の高い前記所定数の浮き領域をユーザが押さえるべき領域とする押さえ方を提示することを特徴とする請求項1に記載の原稿読取装置。 - 前記設定手段は、前記優先度を、浮き領域内のコンテンツの有無、及び、浮き領域内の浮きの大きさに基づいて決定することを特徴とする請求項2に記載の原稿読取装置。
- 前記原稿読取装置に対するユーザの位置を検出する検出手段を有し、
前記提示手段は、前記検出手段により検出されたユーザの位置が前記原稿読取装置の正面でない場合、前記浮き領域が所定の領域に含まれるか否かに応じて、前記原稿の押さえ方の提示を切り換えることを特徴とする請求項1〜3のいずれか1項に記載の原稿読取装置。 - 前記提示手段は、前記検出手段により検出されたユーザの位置が前記原稿読取装置の正面でない場合、前記浮き領域が所定の領域に含まれる場合には、ユーザが前記原稿読取装置の正面に移動することの提示と、該移動後の位置からユーザが前記原稿を押さえる押さえ方の提示を行うことを特徴とする請求項4に記載の原稿読取装置。
- 前記提示手段は、前記原稿の浮きの種類が前記原稿の角が浮いている種類の場合には、該浮いている原稿の角を押さえる押さえ方を提示することを特徴とする請求項1〜5のいずれか1項に記載の原稿読取装置。
- 前記提示手段は、前記原稿の浮きの種類が前記原稿の1つの辺が浮いている種類の場合には、該浮いている辺の両端を押さえる押さえ方を提示することを特徴とする請求項1〜5のいずれか1項に記載の原稿読取装置。
- 前記提示手段は、前記原稿の浮きの種類が前記原稿の複数の辺が浮いている種類の場合には、該浮いている各辺の中央を押さえる押さえ方を提示することを特徴とする請求項1〜5のいずれか1項に記載の原稿読取装置。
- 前記提示手段は、前記原稿の浮きの種類が前記原稿の中央が浮いている種類の場合には、該原稿の両辺の中央を押さえる押さえ方を提示することを特徴とする請求項1〜5のいずれか1項に記載の原稿読取装置。
- 前記提示手段は、前記原稿の中央にできた浮き領域がユーザの正面方向に伸びている場合には、該原稿の前記ユーザの正面方向に伸びる両辺の中央を引っ張りながら押さえる押さえ方、又は、該原稿を90度回転させ、該回転後の原稿の前記ユーザの正面方向に伸びる両辺の中央を押さえる押さえ方を提示することを特徴とする請求項9に記載の原稿読取装置。
- 前記提示手段は、前記原稿の中央にできた浮き領域がユーザの正面方向と直交する方向に伸びている場合には、該原稿の前記ユーザの正面方向に伸びる両辺の中央を押さえる押さえ方を提示することを特徴とする請求項9に記載の原稿読取装置。
- 前記提示手段は、前記原稿の押さえ方を示す情報を、前記原稿を載置する領域に投影することにより押さえ方を提示することを特徴とする請求項1〜11のいずれか1項に記載の原稿読取装置。
- 前記原稿の押さえ方を示す情報は、前記原稿の押さえ方を説明するメッセージと、前記原稿の押さえ方を示す画像の少なくともいずれかを含むことを特徴とする請求項12項に記載の原稿読取装置。
- 前記原稿の押さえ方を示す画像は、原稿を押さえる指のアイコンを含むことを特徴とする請求項13に記載の原稿読取装置。
- 前記提示手段は、前記指のアイコンを前記原稿の浮き領域に投影することを特徴とする請求項14に記載の原稿読取装置。
- 前記提示手段は、前記浮き領域の位置に応じて、右手の指に対応するアイコンと左手の指に対応するアイコンを切替えて投影することを特徴とする請求項15に記載の原稿読取装置。
- 載置される原稿から画像データを読み取る原稿読取装置の制御方法であって、
前記原稿が載置されている領域の距離情報を取得する取得ステップと、
前記取得ステップで取得された距離情報に基づいて、前記領域に載置された原稿の浮き領域を検出する検出ステップと、
前記検出ステップで検出された浮き領域ごとに、前記原稿の浮きの種類を特定する特定ステップと、
前記原稿の浮きの種類に応じて、前記原稿の浮きを補正するための原稿の押さえ方を提示する提示ステップと、
を有することを特徴とする原稿読取装置の制御方法。 - コンピュータを、請求項1〜16のいずれか1項に記載の手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017090932A JP2018191094A (ja) | 2017-05-01 | 2017-05-01 | 原稿読取装置、原稿読取装置の制御方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017090932A JP2018191094A (ja) | 2017-05-01 | 2017-05-01 | 原稿読取装置、原稿読取装置の制御方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018191094A true JP2018191094A (ja) | 2018-11-29 |
Family
ID=64478800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017090932A Pending JP2018191094A (ja) | 2017-05-01 | 2017-05-01 | 原稿読取装置、原稿読取装置の制御方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018191094A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086502A (zh) * | 2022-06-06 | 2022-09-20 | 中亿启航数码科技(北京)有限公司 | 一种非接触式扫描装置 |
-
2017
- 2017-05-01 JP JP2017090932A patent/JP2018191094A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086502A (zh) * | 2022-06-06 | 2022-09-20 | 中亿启航数码科技(北京)有限公司 | 一种非接触式扫描装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5680976B2 (ja) | 電子黒板システム及びプログラム | |
JP6723814B2 (ja) | 情報処理装置、その制御方法、プログラム、及び記憶媒体 | |
JP2014143548A (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
KR20150020065A (ko) | 최적 문자 인식을 위한 모바일 문서 획득 지원 | |
US9888209B1 (en) | Remote communication system, method for controlling remote communication system, and storage medium | |
US20160054806A1 (en) | Data processing apparatus, data processing system, control method for data processing apparatus, and storage medium | |
JP2016103137A (ja) | ユーザインタフェース装置、画像処理装置及び制御用プログラム | |
US9979858B2 (en) | Image processing apparatus, image processing method and program | |
US9392263B2 (en) | 3D scanner, 3D scan method, computer program, and storage medium | |
JP2019016843A (ja) | 原稿読取装置、原稿読取装置の制御方法、及びプログラム | |
JP2018191094A (ja) | 原稿読取装置、原稿読取装置の制御方法、及びプログラム | |
US10116809B2 (en) | Image processing apparatus, control method, and computer-readable storage medium, which obtains calibration image information with which to correct image data | |
JP2018207342A (ja) | 画像読取装置、その制御方法、並びにプログラム | |
JP5550111B2 (ja) | 撮像装置、撮像方法、及びプログラム | |
US10270929B2 (en) | Image processing apparatus, control method, and recording medium | |
US10044904B2 (en) | Apparatus, image reading method, and storage medium for reading an image of a target object | |
JP2018191258A (ja) | 画像読取装置、画像読取方法及びプログラム | |
JP6203070B2 (ja) | スキャンシステムおよびその制御方法、並びにプログラム | |
US20230379442A1 (en) | Information processing apparatus, projection method, and non-transitory computer readable medium | |
JP7212207B1 (ja) | 画像処理システム、画像処理方法、及びプログラム | |
JP6157068B2 (ja) | 情報処理装置及びその制御方法 | |
JP6779798B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2017022590A (ja) | 画像処理装置、画像処理装置の制御方法、及びプログラム | |
JP2017123561A (ja) | 画像処理装置、画像処理装置の画像処理方法、画像処理装置の制御方法、及びプログラム | |
JP2017129525A (ja) | 計測装置及びその制御方法、並びにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20180306 |