以下、本発明の実施形態に係る撮影装置を図面を参照して説明する。
実施形態に係る撮影装置の構成を図1に示す。
撮影装置は、書画カメラ1と、プロジェクタ2と、を備える。書画カメラ1とプロジェクタ2とは、ビデオ映像ケーブル31を介して接続される。
書画カメラ1は、撮影対象を撮影するためのカメラシステムであり、カメラ部11と、支柱12と、台座13と、を備える。カメラ部11は、原稿4を撮影するためのものである。カメラ部11には、デジタルカメラが用いられる。支柱12は、カメラ部11を取り付けるためのものである。
台座13は、支柱12を支えるためのものであり、図2に示すように、台座13のほぼ中央部には十字マーク14が刻印されている。十字マーク14は、原稿4が載置されているか否かを識別するために刻印されたものである。
カメラ部11は、撮影対象として、台座13に載置された原稿4を撮影するものである。書画カメラ1は、カメラ部11が撮影して得られた撮影画像から原稿4部分(用紙)による原稿画像4qを切り出し、斜め撮影歪みの検出処理を行って、撮影画像中の原稿画像4qを、あたかも原稿4を正面から撮影したような画像に変換し、スクリーン3に投影する。
このため、書画カメラ1は、図3に示すように、画像データ生成部21と、データ処理部22と、からなる。画像データ生成部21は、原稿4を撮影して原稿画像4qのデータを取り込むためのものである。
データ処理部22は、画像データ生成部21から、撮影対象の画像データを取得して、プロジェクタ2に出力するための画像の処理を行うものである。
画像データ生成部21は、光学レンズ装置101と、イメージセンサ102と、から構成される。
光学レンズ装置101は、原稿4を撮影するために、光を集光するレンズなどで構成されたものであり、焦点、露出、ホワイトバランス等のカメラ設定パラメータを調整するための周辺回路を備える。
イメージセンサ102は、光学レンズ装置101が光を集光することによって結像した画像を、デジタル化した画像データとして取り込むためのものであり、CCD等によって構成される。
尚、画像データ生成部21は、高解像度画像撮影と低解像度画像撮影とが可能なものである。低解像度画像撮影は、例えば、画像解像度がXGA(1024×768ドット)程度で行われる撮影であり、解像度は低いものの、画像を30fps(フレーム/秒)の速さで動画撮影と画像読み出しとが可能になる。
一方、高解像度画像撮影は、読み取り速度は遅くなるものの、カメラ部11の最大画素数で行われる画像撮影である。例えば、カメラ部11の撮影可能な最大の画素数が400万画素である場合、高解像度画像撮影では、400万画素で画像撮影が行われる。
データ処理部22は、メモリ201と、ビデオ出力装置202と、画像処理装置203と、操作部204と、支柱傾き変化検出部205と、プログラムコード記憶装置206と、CPU207と、から構成される。
メモリ201は、画像データ、各種フラグの値、閾値等を記憶するものである。メモリ201は、これらのデータが書き込まれる領域として、図4に示すように、センサ画像記憶領域201aと、処理画像記憶領域201bと、表示画像記憶領域201cと、作業データ記憶領域201dと、閾値記憶領域201eと、を有する。
センサ画像記憶領域201aは、イメージセンサ102が取り込んだ画像データを、撮影する毎に一時記憶するための領域である。処理画像記憶領域201bは、画像処理装置203が処理に必要な画像データを書き込むための領域である。作業データ記憶領域201dは、座標データ、各種フラグを記憶するための領域である。閾値記憶領域201eは、各種判定に用いる閾値を記憶するための領域である。
図3に戻り、ビデオ出力装置202は、メモリ201の表示画像記憶領域201cに記憶された画像データに基づいてRGB信号を生成するものである。ビデオ出力装置202は、生成したRGB信号をプロジェクタ2に出力する。
画像処理装置203は、CPU207に制御されて、メモリ201のセンサ画像記憶領域201aに一時記憶された画像データに対して画像処理を行うためのものである。画像処理装置203は、以下のような画像処理を行う。
単機能画像処理
(1)縮小画像の作成処理
(2)2値エッジ画像の作成処理
(3)矩形取得処理
(4)画像変換処理
(5)画像の鮮明化処理
(6)画像の圧縮処理
複合機能処理
(7)原稿有無判定処理
(8)台座登録処理
(9)動画投影処理
(10)原稿投影処理
(1)〜(6)の処理は、単機能の画像処理であり、(7)〜(10)の処理は、(1)〜(6)のうちのいくつかの画像処理機能を組み合わせた複合機能処理である。この(1)〜(10)までの処理を具体的に説明する。
(1)縮小画像の作成
縮小画像の作成処理は、元画像からいくつかの近傍の画素(画素値)を平均化して縮小画像の画素を求め、図5(a)に示すような画素数を減らした(輝度)縮小画像を作成する処理である。この処理は、台座13による台座画像13q、原稿画像4qの輪郭取得に必要な処理である。
縮小画像q(k,l)は、数5に従い、その周辺近傍9点の画素値の平均で求められる。尚、縮小画像q(k,l)は、縮小画像の座標(k,l)における画素の画素値を表す。
例えば、元画像がXGA(1024×768)の画像であり、縮小画像が17万画素の画像(480×360)であるときは、Xbmax=1024,Ybmax=768,Xsmax=480,Ysmax=360として縮小画像q(k,l)が計算される。
(2)2値エッジ画像の作成処理
2値エッジ画像の作成処理は、図5(a)に示すような縮小画像から、エッジを検出し、図5(b)に示すような輪郭によって形成されるエッジ画像を作成する処理である。この処理は、台座画像13q、原稿画像4qの輪郭取得に必要な処理である。
エッジ画像を作成するには、例えば、Robertsフィルタと呼ばれるエッジ検出用のフィルタを用いる。このRobertsフィルタとは、2つの4近傍画素の重み付けを行って2つのフィルタΔ1、Δ2を取得し、平均化することによって、画像のエッジを検出するフィルタである。
ある着目した座標(x,y)の画素の画素値f(x,y)にRobertsフィルタを適用すると、変換後の画素値g(x,y)は、次の数6によって表される。
画像処理装置203は、このようにして得られたエッジ画像を2値化する。画像処理装置203は、画素値g(x,y)を予め設定された閾値g_thと比較することにより、エッジ画像の2値化を行う。
閾値g_thは、固定値であってもよいし、可変閾値法等の方法によって求められた可変値であってもよく、メモリ201の閾値記憶領域210eに予め記憶される。画像処理装置203は、数6に基づいて得られたエッジ画像の画素値g(x,y)から、数7を用いてエッジ2値画像の座標(x,y)における画素値h(x,y)を求める。
(3)矩形取得処理
矩形取得処理は、撮影画像から台座画像13q又は原稿画像4qの輪郭によって特定される形状としての矩形を取得する処理である。この処理は、台形登録処理、原稿投影処理に必要な処理である。
画像処理装置203は、台座13による台座画像13q、原稿画像4qの輪郭を取得するため、生成したエッジ2値画像に対して、ハフ変換を行い、原稿画像4qの輪郭を形成する直線を検出する。
ハフ変換とは、図6(a)に示すようなX−Y平面上の直線を構成する点を、次の数8によって表される図6(b)に示すようなρ-θ平面上に投票して、ρ-θ平面上の投票数に変換する変換手法である。
各点の座標(x,y)において角度θを0から360°まで変化させた場合、同一直線はρ-θ平面では一点で表される。このため、投票数の多いρ-θ座標を直線と判断することができる。この際、投票数は、直線上のピクセル数になるため、直線の長さとみなすことができる。したがって、投票数の極端に少ないρ-θ座標は、短い直線を表し、直線の候補から除外される。
ハフ変換を用いる手法では、調査対象の点、角度θが多くなるに従って、処理速度が低下するため、検出できる角度の精度が得られるまで画像を縮小した方が好ましい。この理由から矩形取得に用いる画像は縮小画像が用いられる。これにより、調査対象を減らすことができる。
さらに、以下の方法により調査角度を減らすことができる。
調査対象であるエッジ画像において画像中心を原点とした座標系で考えると、ρはマイナスの値も取ることになるため、角度θを0°≦θ<180°の範囲で測定すれば、ρは残りの180°≦θ<0°の範囲で負になる。
しかし、撮影対象の中心が画像の中心近辺に位置する場合、実際に撮影される撮影対象(四角形)の各辺は、上下左右に存在することになる。この場合、ρ-θ平面上の投票数を0°≦θ<180°の範囲で調査するよりは、以下の数9で表される範囲で測定した方が、より効率的である。
また、ρの値が正の値か負の値かによって、辺の上下、または辺の左右を特定することが可能である。従って、撮影対象の中心が画像の中心近辺に位置する場合、輪郭を構成する辺をより効率的に選択することが可能となる。
カメラ部11が原稿4をほぼ真上から撮影する場合、原稿画像4qの形状(四角形)の歪は少なくなる。原稿画像4q(用紙)の相対する辺は平行であり、縦横の辺はほぼ直交する。
直線は各辺を形成するため、相対する辺も特定される。この中から、角度が同一の直線同士を平行とみなすことができる。さらにこれらの直線と直交する直線のうち、2本の平行線が存在すれば、四角形(長方形)が特定される。
特定される四角形が複数存在すれば、これらの四角形(長方形)のそれぞれの面積を求め、そのなかで最大面積の四角形を原稿画像4qの形状として特定される。四角形の面積は上下辺のρをそれぞれ、ρt(正値), ρb(負値)、また左右の辺のρをρl(正値),ρr(負値)とすると、四角形の面積は数10で表される。
このようにして、特定された4本の直線をρ-θ座標系からX−Y座標系に変換して、4つの交点(x0,y0),(x1,y1),(x2,y2),(x3,y3)を求める。このようにして、画像処理装置203は、矩形取得処理を行う。
(4)画像変換処理(切り抜き、射影補正)
画像変換処理は、画像の切り抜きと射影補正等を含む処理である。切り抜き処理は、抽出した矩形の4つの頂点に基づいて、撮影画像から原稿画像4qを切り抜く処理である。通常、補正を行わずに切り抜かれた原稿画像4qは歪んだものになる。
射影補正処理は、切り取った原稿画像4qを射影変換することにより、原稿画像4qの歪みを補正する処理である。画像処理装置203は、この歪みを補正するため、画像の空間変換に幅広く応用されているアフィン変換を用いる。画像処理装置203は、原稿画像4q等の元画像から、射影補正画像とのアフィン変換の関係を示すアフィンパラメータAを抽出し、この変換Aを用いて、求める射影補正画像の各画素P(u,v)に対応する元画像の画素点p(x,y)を求めることによって射影補正を行う。
次に、アフィン変換についての基本的な考え方(実現方法)を説明する。
画像の空間変換にアフィン変換が幅広く応用されている。本実施形態では、3次元のカメラパラメータを用いずに2次元アフィン変換を用いて射影変換を行う。変換前の座標(u,v)の点は、移動、拡大縮小、回転などの変換が行われることによって変換後の座標(x,y)になる。変換前の座標(u,v)と変換後の座標(x,y)とは、次の数11によって関係付けられる。射影変換はこのアフィン変換により行われる。
最終的な座標(x,y)は、次の数12によって算出される。
数12は、射影変換するための式であり、座標(x,y)は、z'の値に従い、0に向かって縮退する。即ち、z'に含まれるパラメータが射影に影響を及ぼすことになる。このパラメータはa13,a23,a33である。また、他のパラメータは、パラメータa33で正規化されることができるので、a33を1としてもよい。
図7は、カメラ部11が四角形の撮影対象(台座13、原稿4)を撮影した場合、撮影画像上の四角形と実際の撮影対象の形状との関係について説明するための図である。図中に各頂点の座標を示す。
図7において、A(Au,Av,Aw)ベクトルとB(Bu,Bv,Bw)ベクトルとは、3次元座標系U−V−Wにおいて、撮影対象をベクトルで表したものである。また、S(Su,Sv,Sw)ベクトルは、3次元座標系U−V−Wの原点と撮影対象との距離を示す。
図7に示す撮影画像の仮想投影スクリーンSは、カメラ部11で撮影された画像が投影されるスクリーン3を仮想的に示したものであり、撮影対象の画像は、この仮想投影スクリーンSに射影される。仮想投影スクリーン上の座標系を(x,y)とすると、この仮想投影スクリーンS上に投影される画像がカメラ部11に撮影される画像に対応する。
仮想投影スクリーンSは、W軸上から距離fだけ離れて垂直に位置するものとする。撮影対象上の任意の点P(u,v,w)と原点とを直線で結び、その直線と仮想投影スクリーンSと交差する点があるものとして、その交点のX−Y座標をp(x,y)とする。このとき、座標pは、射影変換より次の数13によって表される。
数13より、図7に示すように4つの頂点P0,P1,P2,P3と仮想投影スクリーンSへの投影点p0,p1,p2,p3との関係から、次の数14に示す関係が求められる。
このとき、射影係数α、βは次の数15によって表される。
次に、射影変換について説明する。撮影対象上の任意の点P=(x,y)は、S,A,Bベクトルを用いて、次の数16によって表される。
この数16に、数14の関係式を代入すると、座標xとyとは、次の数17によって表される。
この関係を、アフィン変換の式(数11)に当てはめると、座標(x',y',z')は、次の数18によって表される。
この数18にm,nを代入することにより、撮影画像の対応点(x,y)が求められる。対応点(x,y)は、整数値とは限らないので、画像補間法などを用いて画素の値を求めればよい。
上記m,nは、予め補正画像p(u,v)を出力する画像サイズ(0≦u<umax, 0≦v<vmax)を与えて、その画像サイズに合わせて画像を調整する方法により求めることが考えられる。この方法によれば、m,nは次の数19によって表される。
しかし、作成される補正画像の縦横比と撮影対象の縦横比とは一致しない。ここで、補正画像p(u,v)とm、nの値との関係は、数13、14から、次の数20によって表される。
カメラパラメータであるレンズの焦点距離fが既知であれば、数20に従って、縦横比kを求めることができる。従って、補正画像p(u,v)の画像サイズを(0≦u<umax, 0≦v<vmax)であるとすると、次の数21に従ってm、nを求めることにより、撮影対象と同じ縦横比kを得ることができる。
尚、カメラが固定焦点である場合、レンズの焦点距離fの値を、予め得ることができる。ズームレンズ等が存在する場合には、レンズの焦点距離fの値は、レンズのズーム倍率によって変化する。この場合、例えば、そのズーム倍率とレンズの焦点距離fとの関係を示すテーブルを予め作成して記憶し、ズーム倍率に基づいて焦点距離fを読み出し、数16,数17に従って、射影変換を行う。
以上から、入力画像p(x,y)から、出力画像P(u,v)の値を得るためには、まず、4つの頂点(x0,y0),(x1,y1),(x2,y2),(x3,y3)から、数15でα、βを求める。つぎに数20に従ってkを算出する。
次に、数21で出力画像の座標値(u,v)から(m,n)を求め、この(m,n)を数18に代入して、(x',y',z')を求め、数12から入力画像の対応画素の座標(x,y)を得る。
尚、対応画素の座標(x,y)は、整数になるとは限らない。このため、対応座標の画素座標は近傍の画素の座標から補間等を行って求められる。補間方法としてバイリニア法を用いればよい。バイリニア法による補間方法は、一方の画像(画像p)の座標点(x,y)と対応する他方の画像(射影変換画像P)の座標点(u,v)を探し出し、一方の画像の座標点(x,y)の周辺4点の画素値から他方の画像の座標点(u,v)の画素値を求める方法である。バイリニア方による補間法を用いた場合、画素座標は数22に従って求められる。
(5)画像の鮮明化処理
画像の鮮明化処理は、切り出した画像を、輝度引き伸ばし、カラー補正等を行うことにより、視認性の優れた画像に修正する処理である。
画像処理装置203は、画像の鮮明化処理を行うため、切り出した画像から、画像効果補正用パラメータを抽出する。この画像効果補正用パラメータは、輝度ヒストグラムの最大値、最小値、ピーク値、色差ヒストグラムのピーク値、平均値といった画像効果処理に必要な変数である。画像処理装置203は、抽出した画像効果補正用パラメータを、画像が鮮明化されるような値に変換することにより画像の鮮明化処理を行う。
(6)画像の圧縮
画像の圧縮処理は、プロジェクタ2に送り出す画像データを圧縮する処理である。
(7)原稿有無判定処理
原稿有無判定処理は、台座13に原稿4が載置されているか否かを判定する処理である。この処理は、台座登録処理を行う前と書画撮影を行う前とにおいて行われる。
画像処理装置203は、原稿4の有無判定を行うため、縮小画像の作成処理を実行して、撮影画像から、図8(a)に示すような縮小画像qを生成する。次に、画像処理装置203は、2値エッジ画像の作成処理を実行して図8(b)に示すようなエッジ画像qjを作成し、台座13に刻印された十字マーク14に対応する十字エッジ画像14jの検出処理を行う。
画像処理装置203は、エッジ画像qjの中央部分を縦走査方向と横走査方向とに走査して画素数のヒストグラムを作成して、十字エッジ画像14jの検出処理を実行する。画像処理装置203は、図8(b)に示すように、中央部分Area_1内の2値エッジ画像をfj(x,y)として、2値エッジ画像fj(x,y)を縦走査方向に走査して、中央部分Area_1(x1≦x≦x2,y1≦y≦y2)の縦走査方向の画素数をカウントする。
同様に、画像処理装置203は、中央部分Area_1内の2値エッジ画像fj(x,y)を横走査方向に走査して、中央部分Area_1の横走査方向の画素数をカウントする。縦走査方向、横走査方向のカウント数は、次の数23によって表される。
数23に従って、画像処理装置203は、図8(c)に示すように、中央部分Area_1の縦走査方向の画素数のヒストグラムHvを作成する。横走査方向についても、画像処理装置201は、同様にヒストグラムHhを作成する。
ヒストグラムHvの場合、画像処理装置203は、数23に従って作成したヒストグラムHvの画素数に対して、図8(c)の破線で示すような閾値Hv_thを設定する。この閾値Hv_thは、十字エッジ画像14jによる縦走査方向の画素数のピーク値を検出するために予め設定された閾値である。メモリ201は、この閾値Hv_thと、横走査方向のヒストグラムHvの画素数に対して予め設定された閾値Hh_thと、を閾値記憶領域201eに記憶する。
画像処理装置203は、ヒストグラムHv,Hhに基づいて十字エッジ画像14jの検出処理を行う。図8(b)に示すように、撮影画像に十字エッジ画像14jが含まれている場合、図8(c)に示すように、十字エッジ画像14jの幅に対応する間隔で、予め設定された閾値Hv_thを越えるような2つのピーク値が現れる。
縦走査方向、横走査方向において、それぞれ、2つのピーク値が閾値Hv_th、Hh_thを越えた場合、画像処理装置203は、十字エッジ画像14jが検出されたと判定する。一方、それぞれ、閾値Hv_th、Hh_thを越えるような2つのピーク値がなければ、画像処理装置203は、十字エッジ画像14jが検出されなかったと判定する。画像処理装置203は、十字エッジ画像14jが検出されなかったと判定した場合、台座13に原稿4が載置されていると判定する。
一方、十字エッジ画像14jが検出されたと判定した場合、この十字マーク14が台座13に刻印されたものなのか、原稿4に記載されたものなのかを判定する必要がある。このため、画像処理装置203は、十字マーク14を除いた台座13の領域部分のエッジ数に基づいて、台座13に原稿4が載置されているか否かを判定する。
まず、画像処理装置203は、図9(a)に示すようなマスクパターンwを用いて図9(b)に示すような台座切り出し画像tを取得する。このマスクパターンwは、台座画像13qの輪郭内側であって領域Area_1を除いた領域Area_2を有する。マスクパターンwは、一種の2値画像であり、領域Area_2の画素値が1となるようなパターンである。
尚、台座登録処理を行う前の原稿有無判定処理では、台座13の位置が不明であるため、画像処理装置203は、予め設定されたマスクパターンwを用いて台座切り出し画像tを取得する。メモリ201は、処理画像記憶領域201bにこのマスクパターンwを予め記憶する。
一方、書画撮影を行う前の原稿有無判定処理では、画像処理装置203は、後述する台座登録処理において生成されたマスクパターンwを用いて台座切り出し画像tを取得する。このマスクパターンwによって生成された台座切り出し画像tの外側の境界は、取得した台座画像13qの輪郭から、マージンを有するように設定される。また内側の境界は、カメラ部11の傾きが変わっても、十字エッジ画像14jが除去されるように設定される。
また、メモリ201の処理画像記憶領域201bに記憶されたマスクパターンwの領域Area_2は、台座登録処理において生成されたマスクパターンwと比較して、狭くなるように設定されている。
このように設定されるのは、台座13の位置が不明であるため、台座画像13qによる輪郭、十字エッジ画像14jを検出しないようにするためである。即ち、領域Area_2によって囲まれた領域は、台座登録処理において生成されたマスクパターンwと比較して広くなっており、また、領域Area_2の外側の境界は、台座登録処理において生成されたマスクパターンwの境界よりも内側に設定されている。
台座切り出し画像tを取得するための演算式は、次の数24によって表され、画像処理装置203は、数24に従って、台座切り出し画像tを取得する。
領域Area_2内のエッジの画素値を1とすると、台座切り出し画像tは、その領域内のエッジ情報を表すことになる。
画像処理装置203は、このマスクパターンwを用いて生成した台座切り出し画像tを取得し、さらに、台座切り出し画像t内のエッジを構成する画素の画素数を計数する。台座切り出し画像t内のエッジ総数Ecountは、数25によって表され、画像処理装置203は、数25に従って、エッジ総数Ecountを取得する。
ここで、台座13にごみが付着していたり、台座13に傷があったりすると、ごみや傷等によるエッジを、原稿4に記載された文字や図形によるエッジであると誤判定してしまう。このような誤判定を防止するため、画像処理装置203は、予め設定された閾値Ecount_thと検出したエッジ総数Ecountとを比較して、台座13に原稿4が載置されているか否かを判定する。
傷等による画像のエッジ数は、台座13に原稿4が載置された場合に検出されたエッジの数と比較して著しく少なくなる。従って、閾値Ecount_thとエッジ総数Ecountとを比較することにより、検出されたエッジが台座13に付着したごみや、台座13の傷等によるものなのか、原稿4に記載された文字や図形によるものなのかを判定することができる。
メモリ201は、この閾値Ecount_thを予め閾値記憶領域201eに記憶する。エッジ総数Ecountが閾値Ecount_th以上であれば、検出されたエッジは、原稿4に記載された文字や図形によるものであり、画像処理装置203は、台座13に原稿4が載置されていることを示すため、原稿4の有無判別用の原稿有無結果フラグのフラグ値をセットして、このフラグ値をメモリ201の作業データ記憶領域201dに記録する。
一方、画像処理装置203は、エッジ総数Ecountが閾値Ecount_th未満であれば、検出されたエッジが台座13に付着したごみや、台座13の傷等によるものと判定する。即ち、画像処理装置203は、台座13に原稿4が載置されていないと判定する。
(8)台座登録処理
台座登録処理は、書画撮影を始める前に、予め、図8(a)に示すような縮小画像qと図9(a)に示すようなマスクパターンwとを作成して登録する処理である。
画像処理装置203は、原稿4が載置されていない状態で台座13を撮影して得られた撮影画像から縮小画像を生成する。この場合、画像処理装置203は、センサ画像記憶領域201aに記憶されている低解像度画像を用いて縮小画像を生成する。画像処理装置203は、この縮小画像をメモリ201の処理画像記憶領域201bに保存する。画像処理装置203は、保存した画像を、台座13とともに台座13に載置された原稿4を撮影したときの撮影画像と比較するための比較画像rに用いる。
次に、画像処理装置203は、マスクデータwを生成するため、縮小画像qから台座画像13qの輪郭を取得する。画像処理装置203は、取得した台座画像13qの輪郭によって特定される台座13の形状としての矩形の4つの頂点を求める。画像処理装置203は、求めた4つの頂点座標をメモリ201の作業データ記憶領域201dに格納する。
画像処理装置203は、取得した台座画像13qの輪郭から図9(a)に示すようなマスクパターンwを作成する。前述のように、画像処理装置203は、領域Area_2の外側の境界を、取得した台座画像13qの輪郭からマージンを有するように設定する。また、画像処理装置203は、カメラ部11の傾きが変わっても、十字エッジ画像14jが除去されるように、内側の境界を設定する。画像処理装置203は、このように作成したマスクパターンwをメモリ201の処理画像記憶領域201bに保存する。
尚、画像処理装置203は、台座画像13qの輪郭の取得に失敗した場合、台座登録結果判別用のフラグとして、台座登録結果フラグのフラグ値をリセットして、このフラグ値をメモリ201の作業データ記憶領域201dに記録する、一方、成功した場合、画像処理装置203は、台座登録結果フラグのフラグ値をセットして、このフラグ値を作業データ記憶領域201dに記録する。
(9)動画投影処理
動画投影処理は、原稿4が載置される前、あるいは原稿4の差し替えを行っているときに、プロジェクタ2を介してリアルタイムに現在の画像を投影する処理である。
画像処理装置203は、画像データ生成部21から取り込まれた低解像度画像をメモリ201のセンサ画像記憶領域201aから読み出し、同じメモリ201内の表示画像記憶領域201cにコピーして画像圧縮処理を行う。
(10)原稿投影処理
原稿投影処理は、原稿4が載置されて静止しているときに、プロジェクタ2に図23(c)に示すような変換画像をスクリーン3に投影させる処理である。
画像処理装置203は、図23(c)に示すような変換画像を生成するため、画像変換処理を実行して原稿4の画像を切り出す。この際、台座画像13qの輪郭が原稿画像4qの輪郭の認識に影響を及ぼすため、画像処理装置203は、図10(a)に示すような縮小画像q(本画像)に含まれる台座画像13qの輪郭を除去する。
この台座画像13qの輪郭を除去する処理について説明する。
台座画像13qの輪郭を除去するには、低解像度画像が用いられる。画像処理装置203は、原稿投影処理時に、台座13及び原稿4の撮影を行い、撮影によって低解像度画像を取得し、縮小画像の作成処理を実行する。画像処理装置203は、図10(a)に示すような縮小画像q(本画像)を生成する。画像処理装置203は、この縮小画像qとメモリ201の処理画像記憶領域201bに保存した比較画像rとの差分画像を生成することにより、台座画像13qの輪郭を除去し、原稿画像4qの輪郭を特定する。
尚、縮小画像qは、縮小画像qの各画素の画素値を表すものとする。後述する差分画像d、2値エッジ画像g1、エッジ画像gについても同様にそれぞれの各画素の画素値を表すものとする。
画像処理装置203は、生成した縮小画像qと、メモリ201の処理画像記憶領域201bに保存した比較画像rとの縮小した差分画像dを生成する。
差分画像dを生成する場合、比較画像rを取得したときと、原稿投影処理の実行時とで、照明等の撮影状態が異なっている場合がある。また、カメラ部11の位置ずれが発生している場合もある。
画像処理装置203は、このように撮影条件が異なっている場合、あるいは、位置ずれが発生している場合であっても、差分画像dを正しく生成するため、まず、縮小画像の画素数を640×480として、差分画像の差分エラー評価式を次の数26に示すように定義し、差分エラーE(i,j)を求める。
そして、画像処理装置203は、数26において、iを、i=−3から+3まで変化させ,また、jを、j=−3から+3を変化させ、差分エラーEr(i<j)が最小となるような(i,j)の組み合わせを探す。
このようにして得られた(i,j)が画像のずれベクトルになる。画像処理装置203は、数28に従って画像のずれベクトル(i,j)を取得すると、このずれベクトル(i,j)に基づいて画像ずれを補正した差分画像dを生成する。画像ずれを補正した差分画像dは、次の数27によって表される。
例えば、縮小画像q、比較画像rが、それぞれ、図10(a)、(b)に示すような画像であるとすると、画像処理装置203は、数26、数27に従って、図10(c)に示すような差分画像dを生成する。
この比較画像rと縮小画像qとの間の差が小さければ、振動による若干の画像ずれは、差分画像dを生成することによって補正され、台座13等の画像成分は除去される。
しかし、カメラ部11が回転して位置が大きくずれたり、照明環境が変わったりした場合、台座画像13qの輪郭の除去が不十分な場合もある。
このため、画像処理装置203は、エッジフィルタを第2のフィルタとして用いて、さらに台座画像13qの輪郭を除去する処理を行う。このエッジフィルタとして、画像処理装置203は、細いエッジには応答せずに、ある程度の幅を有する境界部に反応するようなフィルタを用いる。
まず、画像処理装置203は、2値エッジ画像の作成処理を実行して、図10(d)に示すような2値エッジ画像g1を作成する。2値エッジ画像g1は、図10(c)に示す差分画像dに含まれているエッジからなるエッジ画像である。
画像処理装置203は、2値エッジ画像g1(i,j)=1となるような座標(i,j)を探し、差分画像dの座標(i,j)におけるエッジ量g2(i,j)を、次の数28に従って求める。
数28に示す式は、各画素のうち、ある画素に着目して、その画素値を、縦方向の前後に、それぞれ、4点ずつ検査して、その最大値を求める式である。検査した領域が着目画素の周辺領域になる。この数30に従って求められたエッジ量g2(i,j)は、検査した画素の画素値の変化が大きいほど、大きな値になる。一方、残存する台座画像13qの輪郭のように、隣り合う2点間でのみ変化するような細かいエッジでは、エッジ量g2(i,j)は、さほど大きな値を示さない。
次に、画像処理装置203は、エッジ量g2(i,j)と、エッジ量g2(i,j)に対して予め設定された閾値g2_thとを比較し、2値エッジ画像g1に対し、数29に従ってフィルタリングを行う。
尚、メモリ201は、この閾値g2_thを、閾値記憶領域201eに予め記憶する。エッジ量g2(i,j)と閾値g2_thとの比較の結果、エッジ量g2(i,j)が閾値g2_th未満となるような座標(k,l)におけるエッジ画像g1は、細いエッジを表す。
このため、画像処理装置203は、このような画素の画素値を0にクリアする。このようなフィルタリングを行うことにより、画像処理装置203は、最終的な座標(x,y)における画像として、図10(e)に示すように、残存する台座画像13qの輪郭が除去(削除)されたエッジ画像gを取得する。
画像処理装置203は、台座画像13qの輪郭によるエッジを除去すると、エッジ画像gから、原稿画像4qの矩形領域(4つの頂点)を取得する。原稿画像4qの輪郭の取得に成功した場合、画像処理装置203は、取得した矩形領域の4頂点を原稿画像4qを切り出す際の4頂点として、その座標データをメモリ201の作業データ記憶領域201dに記憶する。また、画像処理装置203は、矩形取得結果判別用のフラグとして、矩形取得結果フラグのフラグ値をセットし、このフラグ値をメモリ201の作業データ記憶領域201dに記録する。
一方、画像処理装置203は、原稿画像4qの輪郭の取得に失敗した場合、台座画像13qの輪郭を切り出しの4頂点として、その座標データをメモリ201の作業データ記憶領域201dに記憶する。また、画像処理装置203は、矩形取得結果フラグのフラグ値をリセットし、このフラグ値をメモリ201の作業データ記憶領域201dに記録する。
次に、画像処理装置203は、取得された頂点座標の値を、高解像度画像の座標系に変換する。例えば、エッジ画像gから取得した4つの頂点をそれぞれ(xi,yi) (i=0,1,2,3)とする。また、低解像度画像の縮小画像の画素サイズを(xsmax x ysmax)、高解像度画像の画素サイズを(xhmax x yhmax)であるとすると、高解像度画像での矩形輪郭の頂点(x'i,y'i) (i=0,1,2,3)は次の数30で求められる。
画像処理装置203は、この座標データと高解像度画像データとを用いて、前述の画像変換処理を実行して原稿画像4qの切り出しと正面画像への補正を行う。また、画像処理装置203は、補正された画像に対して、前述の画像の鮮明化処理を実行して、原稿画像4qを視認性の高い画像に変換する。
画像処理装置203は、このように変換した画像データを、メモリ201内の表示画像記憶領域201cに記録し、記録した画像データに対して、前述の画像の圧縮処理を実行する。
図3に戻り、操作部204は、ユーザの操作情報を取得するためのものであり、撮影装置の機能を制御するためのスイッチ、キーとして、電源スイッチと、モードスイッチと、シャッターと、画像調整キーと、撮影/解除キーと、キャリブレーションキーと、を備える(図示せず)。
電源スイッチは、書画カメラ1の電源をオン(ON)、オフ(OFF)するためのものである。
モードスイッチは、撮影モードとして動画動作モード又は静止画モードへの設定を指示するためのスイッチである。動画動作モードは、低解像度でカメラ撮影を行うモードであり、リアルタイム性を重視したモードである。動画動作モードが指定されると、現在の画像がリアルタイムに投影される。静止画モードは、高解像度でカメラ撮影を行うモードであり、解像度を重視するモードである。静止画モードが指定されると、現在の画像が高解像度で投影される。
シャッターは、撮影時に押下するスイッチである。画像調整キーは、画像処理を行うとき又は画像処理された画像の調整を行うときに操作するキーであり、複数のキーからなる。
キャリブレーションキーは、キャリブレーションを要求するときにユーザが操作するキーである。キャリブレーションは、撮影によって得られた画像から、台座画像13qの輪郭を調べ、この台座画像13qの輪郭を登録する処理である。台座画像13qの輪郭を登録して、この輪郭をマスクすることにより、原稿画像4qの切り出しを精度良く行うことが可能になる。
操作部204は、ユーザがスイッチ、キーを操作したときの操作情報をCPU207に出力する。また、メモリ201は、キャリブレーションの要求の有無を判別するためのキャリブレーション要求フラグのフラグ値を作業データ記憶領域201dに記憶する。そして、操作部204は、キャリブレーションキーが押下されると、メモリ201の作業データ記憶領域201dに記憶されたキャリブレーション要求フラグのフラグ値をセットする。
支柱傾き変化検出部205は、図1に示す支柱12の傾きなどを切り替えた場合に、その支柱12の傾きの変化を検出するためのものである。支柱傾き変化検出部205は、例えば、重力加速度計等を備え、機構的に支柱12の動作を検出する。支柱傾き変化検出部205は、支柱12の傾きの変化を検出した場合、メモリ201の作業データ記憶領域201dに記憶されているキャリブレーション要求フラグのフラグ値をセットする。
プログラムコード記憶装置206は、CPU207が実行するプログラムを記憶するためのものであり、ROM等によって構成される。
CPU207は、プログラムコード記憶装置206に格納されているプログラムに従って、各部を制御する。
具体的には、CPU207は、後述するカメラ基本処理を実行する。CPU207は、カメラ基本処理において、各部の初期化を行う。即ち、CPU207は、光学レンズ装置101の周辺回路の初期化、光学レンズ装置101の焦点、ズームレンズ位置、絞りなどのカメラ設定と、ビデオ出力装置202等の初期化と、を行う。
また、CPU207は、メモリ201の初期化、通信、画像処理等に用いるデータの初期化、キャリブレーション要求フラグのセット、動画動作モードのセットを行う。
さらに、CPU207は、カメラ撮影を行うための条件に関する各データの初期化として、カメラのフォーカス、シャッター速度(露光時間)、絞りなどの露出、ホワイトバランス、ISO感度等の初期化、オートフォーカス測定、測光などを行い、撮影が最適になる条件を探して初期化を行う。
CPU207は、このような初期化を行うと、低解像度でのカメラ撮影を行い、画像変化量MDを求め、被写体に動きがあったか否かを判定する。この画像変化量MDは、新たに撮影した画像が前回撮影した時の画像と比較してどれぐらい変化したかを示す量である。CPU207は、次の数31に基づいて、画像変化量MDを求める。
尚、全画素の総和を求めるには、計算量が多いので、CPU207は、いくつかの画素を抜き出して画像変化量MDを求めるようにしてもよい。
CPU207は、撮影範囲内の被写体に動きがあるか否かの判定を、この画像変化量MDと予め設定された閾値MD_thとを比較することにより行う。閾値MD_thは、この判定を行うために予め設定されたものであり、メモリ201は、この閾値MD_thを閾値記憶領域201eに記憶する。
原稿4を差し替えた場合、撮影画像は変化し、画像変化量MDは閾値MD_thを越える。CPU207は、画像変化量MDが閾値MD_thを越えていれば、撮影範囲内の被写体に動きがあると判定し、閾値MD_th以下であれば、撮影範囲内の被写体に動きがないと判定する。
CPU207は、撮影範囲内の被写体に動きがあると判定すると、撮影モードを動画動作モードに設定する。
CPU207は、動画動作モードにおいて、例えば、画像解像度がXGA(1024×768ドット)程度の画像を30fps(フレーム/秒)の速さで動画投影を行なうように、各部を制御する。また、CPU207は、動画動作モードに設定すると、画像処理装置203に動画投影処理を実行させる。
一方、原稿4が台座13に載置されたまま、スクリーン3に原稿画像4qを投影している場合のように、撮影範囲内の被写体に動きがないと判定すると、CPU207は、静止処理を実行する。
CPU207は、静止処理において、メモリ201の作業データ記憶領域201dに記憶されているキャリブレーション要求フラグのフラグ値に基づいてキャリブレーション要求の有無を判定する。
キャリブレーション要求フラグがセットされていれば、CPU207は、キャリブレーション要求があったと判定して、画像処理装置203に、原稿有無判定処理、台座登録処理を実行させる。
尚、CPU207は、画像処理装置203に台座登録処理を実行させる前に、撮影条件を最適化して画像データ生成部21に低解像度撮影を行わせる。CPU207は、このときの撮影条件を基準撮影条件としてメモリ201の作業データ記憶領域201dに記憶する。
そして、CPU207は、差分画像を生成するときに、この基準撮影条件を作業データ記憶領域201dから読み出して、読み出した基準撮影条件で画像データ生成部21に低解像度撮影を行わせる。
このように、CPU207は、台座登録処理において比較画像rを生成するときの撮影条件と差分画像dを生成するときの撮影条件とが同じになるように画像データ生成部21を制御し、良好な差分画像dを取得できるようにする。
次に、CPU207は、メモリ201の作業データ記憶領域201dに記憶されている台座登録結果フラグ、原稿有無結果フラグ、矩形取得結果フラグの各フラグ値に基づいて、各処理結果の成功、失敗を判別する。
CPU207は、キャリブレーション要求フラグがセットされたまま、台座登録結果フラグがリセットされている場合、台座登録に失敗したと判定して、警告を発する。警告は、例えば、音声による警告であっても、書画カメラ1の液晶ディスプレイ(図示せず)への表示による警告であってもよい。
CPU207は、セットされたキャリブレーション要求フラグがリセットされると、画像処理装置203に、原稿有無判定処理を実行させ、撮影モードを静止画モードに設定する。
CPU207は、静止画モードにおいて、カメラ部11で高解像度の画像撮影を行わせる。そして、CPU207は、動画動作モード時よりも解像度が高く、より鮮明な原稿画像4qを取得する。そして、CPU207は、この高解像度の静止画像の投影を行うように、各部を制御する。即ち、カメラ部11が撮影解像度300万画素のカメラである場合、CPU207は、切り出した投影画像としてXGA(1024×768)の静止画像を生成するにように各部を制御する。
図1に戻り、プロジェクタ2は、書画撮影の場合に、書画カメラ1から供給された画像データを投影光に変換し、スクリーン3にこの投影光を照射して原稿画像4qをスクリーン3上に結像させるものである。
次に本実施形態に係る撮影装置の動作を説明する。
ユーザが書画カメラ1の電源をONすると、書画カメラ1のCPU207は、プログラムコード記憶装置206からプログラムコードを読み出してカメラ基本処理を実行する。
このカメラ基本投影処理の内容を図11に示すフローチャートに従って説明する。
CPU207は、光学レンズ装置101の周辺回路を制御して、光学レンズ装置101の焦点、ズームレンズ位置、絞りなどのカメラ設定と、ビデオ出力装置202等の初期化と、を行う(ステップS11)。
CPU207は、メモリ201の初期化、通信、画像処理等に用いるデータの初期化を行うとともに、キャリブレーション要求フラグをセットし、撮影モードを動画動作モードにセットする(ステップS12)。
次に、CPU207は、撮影が最適になる条件を探して最適条件となるように、各データの初期化を行う(ステップS13)。
CPU207は、画像データ生成部21を制御して、低解像度でのカメラ撮影を行わせる(ステップS14)。
CPU207は、既にメモリ201のセンサ画像記憶領域201aに記憶されている前回の画像データと、イメージセンサ102が新たに取り込んだ画像データとの画像変化量MDを、数36を用いて求める(ステップS15)。
CPU207は、次に撮影する画像と比較するための画像データとして、イメージセンサ102が取り込んだ画像データをメモリ201のセンサ画像記憶領域201aに記憶させる(ステップS16)。
CPU207は、メモリ201の閾値記憶領域201eから閾値MD_thを読み出し、求めた画像変化量MDと読み出した閾値MD_thとを比較することにより、撮影範囲内の被写体に動きがあるか否かを判定する(ステップS17)。
画像変化量MDが閾値MD_thを越えている場合、CPU207は、撮影範囲内の被写体に動きがあると判定する(ステップS17においてYes)。この場合、CPU207は、撮影モードを動画動作モードに設定する(ステップS18)。
CPU207は、撮影モードを動画動作モードに設定すると、画像処理装置203に動画投影処理を実行させる(ステップS19)。画像処理装置203は、図12に示すフローチャートに従って動画投影処理を実行する。
即ち、画像処理装置203は、低解像度画像データを、メモリ201のセンサ画像記憶領域201aから読み出して、同じメモリ201内の表示画像記憶領域201cにコピーする(ステップS31)。
画像処理装置203は、メモリ201内の表示画像記憶領域201cに記憶された画像データを圧縮する(ステップS32)。
ビデオ出力装置202は、圧縮した画像データをプロジェクタ2に供給する(ステップS33)。
画像処理装置203が動画投影処理を実行すると、CPU207は、再度、画像データ生成部21を制御して、低解像度でのカメラ撮影を行わせ、画像変化量MDを求めて撮影画像の保存を行う(図11のステップS14〜S16)。
画像変化量MDが閾値MD_th以下の場合、CPU207は、撮影範囲内の被写体に動きがないと判定する(ステップS17においてNo)。この場合、CPU207は、撮影モードが動画動作モードであるか否かを判定する(ステップS20)。
被写体に動きがなく、撮影モードも動画動作モードではないと判定した場合(ステップS17においてNo、ステップS20においてNo)、CPU207は、撮影モードが静止画モードになっているか否かを判定する(ステップS21)。
静止画モードになっていると判定した場合(ステップS21においてYes)、CPU207は、高解像度の静止画像を既に取得しているとして、現在の静止画像をメモリ201のセンサ画像記憶領域201aに保持し続ける。
静止画モードにはなっていないと判定した場合(ステップS21においてNo)、現在、動画投影を行っている状態であるので、CPU207は、再度、画像処理装置203に動画投影処理を実行させる(ステップS19)。
一方、被写体に動きがなく、撮影モードが動画動作モードであると判定した場合(ステップS17においてNo、ステップS20においてYes)、CPU207は、動いていた被写体が静止したと判定する。CPU207は、このように判定すると、図13に示すフローチャートに従って静止処理を実行する(ステップS22)。
CPU207は、メモリ201の作業データ記憶領域201dに記憶されているキャリブレーション要求フラグのフラグ値を参照し、この値に基づいて、キャリブレーション要求の有無を判定する(ステップS41)。
キャリブレーション要求フラグがセットされている場合、CPU207は、キャリブレーション要求があったと判定する(ステップS41においてYes)。この場合、CPU207は、画像処理装置203に原稿有無判定処理を実行させる(ステップS42)。
画像処理装置203は、図14に示すフローチャートに従って原稿有無判定処理を実行する。
即ち、画像処理装置203は、撮影画像から、図8(a)に示すような縮小画像qを生成する(ステップS61)。
画像処理装置203は、図8(b)に示すようなエッジ画像qjを作成する(ステップS62)。
画像処理装置203は、エッジ画像qjから、数23を用いて、縦走査方向と横走査方向とのヒストグラムHh,Hvを作成し、ピーク値を検出し、十字マークの検出処理を行う(ステップS63)。
画像処理装置203は、メモリ201の閾値記憶領域201eから閾値Hv_th,Hh_thを読み出し、それぞれ、縦走査方向のピーク値と閾値Hv_th、横走査方向のピーク値と閾値Hh_th、を比較し、その比較結果に基づいて、十字マークが検出されたか否かを判定する(ステップS64)。
画像処理装置203は、縦走査方向のピーク値が閾値Hv_th以下であるか、横走査方向のピーク値が閾値Hh_th以下である場合(ステップS64においてNo)、十字マークは検出されなかったと判定する。
画像処理装置203は、十字マークが検出されなかったと判定すると、台座13に原稿4が載置されていると判定して原稿有無結果フラグをセットする(ステップS69)。画像処理装置203は、このフラグ値をメモリ201の作業データ記憶領域201dに記録する。
一方、十字マークが検出されたと判定した場合(ステップS64のYes)、画像処理装置203は、さらに、この十字マークが台座13に刻印されたものなのか、原稿4に記載されたものなのかを判定する。このため、画像処理装置203は、マスクパターンwとエッジ画像qjとから、数24を用いて、台座切り出しエッジ画像tを作成する(ステップS65)
このとき、台座登録処理前であるため、画像処理装置203は、メモリ201の処理画像記憶領域201bから、予め記憶されているマスクパターンwを読み出して台座切り出しエッジ画像tを作成する。前述のように、台座登録処理前では、台座13の位置が不明であるため、予め記憶されたマスクパターンwの領域Area_2は、台座登録処理において生成されたマスクパターンwのものと比較して、狭くなるように設定されている。
画像処理装置203は、この台座切り出しエッジ画像tから、エッジを構成する画素の画素数をカウントし、数25に従って、エッジ総数Ecountを取得する(ステップS66)。
画像処理装置203は、取得したエッジ総数Ecountと閾値Ecount_thとを比較してエッジ総数Ecountが閾値Ecount_th未満か否かを判定する(ステップS67)。
カウントしたエッジ総数Ecountが閾値Ecount_th未満であると判定した場合(ステップS67においてYes)、画像処理装置203は、台座13に原稿4は載置されていないものとして原稿有無結果フラグのフラグ値をリセットし、このフラグ値をメモリ201の作業データ記憶領域201dに記録する(ステップS68)。
一方、カウントしたエッジ総数Ecountが閾値Ecount_th以上と判定した場合(ステップS67においてNo)、画像処理装置203は、台座13に原稿4は載置されているものとして原稿有無結果フラグのフラグ値をセットし、このフラグ値をメモリ201の作業データ記憶領域201dに記録する。(ステップS69)。
CPU207は、原稿有無結果フラグのフラグ値に基づいて、台座13に原稿4が載置されているか否かを判定する(図13のステップS43)。
原稿有無結果フラグがセットされている場合、CPU207は、台座13に原稿4が載置されていると判定し(ステップS43においてYes)、この静止処理を終了させる。
一方、原稿有無結果フラグがリセットされている場合、CPU207は、台座13に原稿4は載置されていないと判定する(ステップS43においてNo)。このように判定すると、CPU207は、撮影条件の最適化を行う(ステップS44)。
CPU207は、最適化された撮影条件の下で画像データ生成部21に低解像度画像の撮影を行わせる(ステップS45)。CPU207は、イメージセンサ102が取り込んだ画像データをメモリ201のセンサ画像記憶領域201aに記憶させる。
CPU207は、このときの撮影条件を、差分画像dの生成時に用いる基準撮影条件として、この基準撮影条件をメモリ201の作業データ記憶領域201dに保存する。
CPU207は、画像処理装置203に台座登録処理を実行させる(ステップS47)。画像処理装置203は、図15に示すフローチャートに従って台座登録処理を実行する。
即ち、画像処理装置203は、メモリ201のセンサ画像記憶領域201aから、低解像度画像を読み出し、読み出した低解像度画像から、縮小画像qを生成する(ステップS71)。
画像処理装置203は、生成した縮小画像qを比較画像rに用いるため、この縮小画像qをメモリ201の処理画像記憶領域201bに保存する(ステップS72)。
画像処理装置203は、図16に示すフローチャートに従って、矩形取得処理処理を実行する(ステップS73)。
画像処理装置203は、メモリ201の処理画像記憶領域201bから縮小画像qを読み出し、読み出した縮小画像qから、2値エッジ画像qjを作成する(ステップS81)。
画像処理装置203は、直線を検出するため、数8を用いてハフ変換を行う(ステップS82)。
画像処理装置203は、45°≦θ<135°の範囲において、上下の辺を形成する直線の候補として、ρが+、−それぞれにおいて、投票数が多い複数の座標を取得する(ステップS83)。このとき、ρが+である候補は上辺に対応し、ρが−である候補は下辺に対応する。
画像処理装置203は、135°≦θ<225°の範囲において、左右の辺を形成する直線の候補として、投票数が多い複数の座標を取得する(ステップS84)。このとき、ρが+である候補は左辺に対応し、ρが−である候補は右辺に対応する。
画像処理装置203は、X軸方向の候補、Y軸方向の候補のうち、ρの値が正と負とで互いに異なり、角度θが設定範囲内のものを検索し、その条件に合致する中で、数10に従って面積の計算をして、最大面積のものを選択する(ステップS85)。
画像処理装置203は、このような条件に適合する4つの直線を検索できたか否かを判定する(ステップS86)。
検索できたと判定した場合(ステップS86においてYes)、画像処理装置203は、検索された4つの直線の交点を求める(ステップS87)。画像処理装置203は、矩形取得に成功したものとして矩形取得結果フラグのフラグ値をセットし、このフラグ値をメモリ201の作業データ記憶領域201dに記録する(ステップS88)。
検索できなかったと判定した場合(ステップS86においてNo)、画像処理装置203は、原稿4の位置が正確に特定できないため、矩形取得に失敗したものとして矩形取得結果フラグのフラグ値をリセットし、このフラグ値をメモリ201の作業データ記憶領域201dに記録する(ステップS89)。
画像処理装置203は、矩形取得結果フラグのフラグ値に基づいて台座画像13qの輪郭を検出できたか否かを判定する(図15のステップS74)。
矩形取得結果フラグがリセットされている場合、画像処理装置203は、台座画像13qの輪郭検出に失敗したと判定する(ステップS74においてNo)。このように判定すると、画像処理装置203は、台座登録結果フラグのフラグ値をリセットし、このフラグ値をメモリ201の作業データ記憶領域201dに記録する。
一方、矩形取得結果フラグがセットされている場合、画像処理装置203は、台座画像13qの輪郭検出に成功したと判定する(ステップS74においてYes)。このように判定すると、画像処理装置203は、取得した輪郭から頂点を求め、求めた頂点の座標をメモリ201に保存する(ステップS76)。
画像処理装置203は、取得した輪郭からマスクパターンwを生成し、生成したマスクパターンwをメモリ201の処理画像記憶領域201bに保存する(ステップS77)。
画像処理装置203は、台座登録結果フラグのフラグ値をセットし、このフラグ値をメモリ201の作業データ記憶領域201dに記録する(ステップS78)。
このようにして、画像処理装置203が台座登録処理を実行すると、CPU207は、メモリ201の作業データ記憶領域201dに記録された台座登録結果フラグのフラグ値に基づいて、台座13の登録が成功したか否かを判定する(図13のステップS48)。
台座登録結果フラグがセットされている場合、CPU207は、台座13の登録に成功したと判定する(ステップS48においてYes)。このように判定すると、CPU207は、メモリ201の作業データ記憶領域201dに記憶されているキャリブレーション要求フラグのフラグ値をリセットする(ステップS49)。
一方、作業データ記憶領域201dに記憶されているキャリブレーション要求フラグがセットされ、台座登録結果フラグがリセットされている場合、CPU207は、台座13の登録に失敗したと判定する(ステップS48においてNo)。このように判定すると、CPU207は、台座13が正しい状態になっているか否か、ユーザに注意を促すため、警告を発する(ステップS50)。
次に、キャリブレーション要求フラグがリセットされている場合、CPU207は、キャリブレーション要求はないと判定する(ステップS41においてNo)。この場合、CPU207は、原稿有無判定処理を画像処理装置203に実行させる(ステップS51)。
このとき、マスクパターンwは、既に台座登録処理において作成済みであるため、画像処理装置203は、作成されたマスクパターンwをメモリ201の処理画像記憶領域201bから読み出す。そして、画像処理装置203は、台座登録処理において作成されたマスクパターンwを用いて台座切り出し画像tを取得し、原稿有無判定処理を実行する。
CPU207は、原稿有無結果フラグのフラグ値に基づいて、台座13に原稿4が載置されているか否かを判定する(ステップS52)。
原稿有無結果フラグがリセットされている場合、CPU207は、台座13に原稿4が載置されていないと判定し(ステップS52においてNo)、この静止処理を終了させる。
一方、原稿有無結果フラグがセットされている場合、CPU207は、台座13に原稿4が載置されていると判定する(ステップS52においてYes)。そして、CPU207は、メモリ201の作業データ記憶領域201dから、保存されている基準撮影条件を読み出す(ステップS53)。
CPU207は、読み出した基準撮影条件で画像データ生成部21に低解像度撮影を行わせ、台座13に原稿4が載置されている状態で撮影によって得られた低解像度画像をメモリ201の処理画像記憶領域201bに記憶する(ステップS54)。
CPU207は、撮影モードを静止画モードに設定する(ステップS55)。
CPU207は、原稿4が台座13に載置されて撮影された結果の画像が最適になるような撮影条件を調べ、調べた撮影条件を満足するように撮影条件の最適化を行い、この撮影条件を画像データ生成部21にセットする(ステップS56)。
CPU207は、画像データ生成部21を制御して高解像度での画像撮影を行い、得られた高解像度画像を原稿画像4q切り出し用の画像として、メモリ201の処理画像記憶領域201bに記憶する(ステップS57)。
CPU207は、画像処理装置203にて原稿投影処理を実行させる(ステップS58)。画像処理装置203は、図17に示すフローチャートに従って、原稿投影処理を実行する。
即ち、画像処理装置203は、台座13に原稿4が載置されている状態の低解像度画像を、メモリ201の処理画像記憶領域201bから読み出し、この低解像度画像から、縮小画像qを生成する(ステップS91)。
画像処理装置203は、台座登録処理においてメモリ201の処理画像記憶領域201bに保存した画像を比較画像rとして読み出す。そして、画像処理装置203は、台座13に原稿4が載置されている状態の縮小画像qと読み出した比較画像rとを用いて、数26に示す差分エラーEr(i,j)が最小となるずれベクトル(i,j)を探す。画像処理装置203は、検出されたずれベクトル(i,j)を用い、数27に従って、差分画像dを生成する(ステップS92)。
画像処理装置203は、生成した差分画像dに対して2値エッジ画像の作成処理を実行し、差分画像dの2値エッジ画像g1を作成する(ステップS93)。
画像処理装置203は、2値エッジ画像g1をスキャンし、2値エッジ画像g1(i,j)=1となる座標(i,j)を探す。画像処理装置203は、2値エッジ画像g1(i,j)=1となる座標(i,j)において、数28に従い、差分画像dのエッジ量g2を求める。
画像処理装置203は、2値エッジ画像g1に対し、数29に従ってフィルタリングを行い、台座画像13qの輪郭が除去された画像gを取得する(ステップS94)。
画像処理装置203は、取得した画像gに対して矩形取得処理を実行し、原稿画像4qの輪郭に対応する形状としての矩形を取得する(ステップS95)。
画像処理装置203は、矩形取得結果フラグのフラグ値に基づいて原稿画像4qの矩形を取得できたか否かを判定する(ステップS96)。
矩形取得結果フラグがセットされている場合、画像処理装置203は、原稿画像4qの矩形を取得できたと判定する(ステップS96においてYes)。この場合、画像処理装置203は、検出された原稿画像4qの矩形領域の4つの頂点を切り出しを行うための4頂点として設定する(ステップS97)。
矩形取得結果フラグがリセットされている場合、画像処理装置203は、原稿画像4qの矩形を取得できなかったと判定する(ステップS96においてNo)。この場合、画像処理装置203は、台座画像13qの輪郭を切り出し領域として設定し、台座画像13qの輪郭によって特定される矩形の4つの頂点を切り出しの4頂点として設定する(ステップS98)。
画像処理装置203は、数30に従い、設定された4つの頂点座標の値を高解像度画像の座標系に変換し、変換した座標と、高解像度画像データとに基づいて、原稿画像4qの切り出しと正面画像への補正を行う(ステップS99)。
ここで、原稿4が台座13の縁に合わせて載置された場合の切り出しまでの処理を図18に基づいて説明する。
原稿4が台座13の縁に合わせて載置された場合、画像処理装置203は、本画像として、図18(a)に示すような縮小画像qを生成する(ステップS91の処理)。
画像処理装置203は、この縮小画像qと比較画像rとを用いて、数27に従って、図18(b)に示すような差分画像dを生成する(ステップS92の処理)。
画像処理装置203は、図18(b)に示すような差分画像dから、エッジフィルタによるフィルタリングを行うことにより、図18(c)に示すような画像gを取得する(ステップS94の処理)。そして、画像処理装置203は、画像変換処理を実行して、図18(d)に示すような原稿画像4qを切り出す(ステップS95〜S99の処理)。
画像処理装置203は、補正された正面画像に対して画像の鮮明化処理を行い、正面画像を視認性の高い画像に変換する(ステップS100)。
画像処理装置203は、画像の鮮明化処理を行った正面画像のデータを、メモリ201の表示画像記憶領域201cに記録する(ステップS101)。
画像処理装置203は、表示画像記憶領域201cに記録された画像データに対し、画像の圧縮処理を行う(ステップS101)。
ビデオ出力装置202は、表示画像記憶領域201cに記憶された画像データをプロジェクタ2に供給する(ステップS102)。プロジェクタ2は、供給された画像データに従って画像をスクリーン3に投影する。
画像処理装置203がこのような原稿投影処理を実行すると、CPU207は、撮影条件を基準に戻す(図13のステップS59)。
CPU207は、このようにして静止処理を実行すると、再度、図11のステップS14〜S22を実行する。
以上説明したように、本実施形態によれば、画像処理装置203は、予め、台座13に原稿4が載置されていない状態で撮影を行って比較画像rを取得する。そして、画像処理装置203は、台座13に原稿4が載置された状態の縮小画像qと比較画像rとを比較して、差分画像dを取得する。画像処理装置203は、差分画像dを用いて台座画像13qの輪郭を除去し、原稿画像4qの輪郭を取得するようにした。
従って、原稿4が台座13の縁に合わせて載置された場合であっても、原稿画像4qの輪郭を正しく取得することができる。
また、CPU207は、比較画像rを生成するときの撮影条件と差分画像dを生成するときの撮影条件とを、基準撮影条件として一致させて、画像データ生成部21に低解像度撮影を行わせるようにした。従って、画像処理装置203は、良好な差分画像dを生成することができる。
一方、CPU207は、鮮明な原稿画像4qを切り出すことができるように、画像データ生成部21に高解像度撮影を行わせるようにした。従って、画像処理装置203は、高解像度撮影によって得られた高解像度画像に基づいて高品質の表示画像の作成することができる。このように、2つの画像を用いて差分画像と切り出し用の画像とを生成するため、良好な差分画像の作成と、高品質な表示画像の作成の両立が可能になる。
また、画像処理装置203は、差分画像qと比較画像rとの差分エラーが最小となるようにずれベクトルを求め、画像ずれを補正して差分画像dを取得するようにした。従って、振動等により、台座13が元の位置から若干ずれたとしても、正しく原稿画像4qの輪郭が抽出できる。このため、従来と比較して、キャリブレーションを繰り返し行う必要がなく、キャリブレーションを行う回数を低減することができる。
さらに、得られた差分画像dに対して、第2のフィルタとしてのエッジフィルタを適用するようにした。従って、撮影状態によって、残存する台座画像13qの輪郭による細い線等をほぼすべて排除して、原稿画像4qの輪郭だけを良好に抽出することができる。
尚、本発明を実施するにあたっては、種々の形態が考えられ、上記実施形態に限られるものではない。
上記実施形態では、縮小画像、比較画像を単色の画像として説明した。しかし、縮小画像、比較画像は、カラー画像の場合もある。この場合、画像処理装置203は、色距離を用いて差分画像を生成する。尚、ここでは、縮小画像をQ、比較画像をRとして説明する。
まず、台座13及び原稿4を撮影することによって得られた縮小画像Qを、R(Red;赤),G(Green;緑),B(Blue;青)の3次元の各画素値で表すものとする。台座13のみを撮影することによって得られた比較画像Rも3次元のカラー画像とする。縮小画像Qと比較画像Rとの差分画像は、1次元の画像になる。
画素座標を(x,y)として、縮小画像Qの各画素値をベクトルで表記してQ(x,y)とし、ベクトルの各成分であるRGB画素値を、Q(x,y)=(Qr(x,y),Qg(x,y),Qb(x,y))と表記する。
同様に、比較画像Rの画素座標(x,y)における各画素値をR(x,y)、そのRGB成分を、それぞれ、Rr(x,y),Rg(x,y),Rb(x,y)と表記する。差分画像の画素座標(x,y)における画素値はスカラー量となり、この画素値をD(x,y)と表記する。
前述のように、画像処理装置203は、台座画像13qの輪郭を除去するため、縮小画像Qと比較画像Rとの差分画像を生成する。画像処理装置203は、この差分画像を生成するため、縮小画像Qと比較画像Rとの色距離を各画素毎に求め、求めた各色距離を差分画像の各差分データとする。
ある画素に着目したときに、比較する2つの画像の3次元ベクトルが全く同じ値になれば、色距離は0になる。しかし、比較する2つの画像の色が異なっている場合、2つの画像の3次元ベクトルの距離が大きくなるに従って、色距離は大きくなる。
従って、比較する2つの画像に全く同じものが映っている場合、対応する画素における色距離は0になり、差分データも0になる。一方、比較する2つの画像に異なっているものが映っていれば、その画素値の差(距離)が大きくなる従って、色距離は大きくなり、差分データも大きくなる。即ち、色距離と差分データとは1対1に対応する。
図19(a)、(b)にそれぞれ示す比較画像Rと縮小画像Qとを比較した場合、台座13に原稿4が載置されていない領域の差分データは0となることが期待される。一方、原稿4は、台座13の色と異なるため、原稿4が載置される領域の差分データは、大きな値になることが期待される。
しかし、台座13のみを撮影するときと台座13に原稿4を載置して撮影するときとでは、台座画像13qの色が同じになるとは限らない。これは、画像品質が最適となるように撮影が行われるからである。
通常、カメラ撮影では、平均の明るさ(EV値)が一定になるように、画像品質は、自動的に最適調整される。結果として、得られた縮小画像Qの場合は、原稿画像4qが最適の明るさになり、比較画像Rの場合は、台座画像13qが最適の明るさになるように調整される。
従って、縮小画像Qと比較画像Rとを比較すると、原稿画像4qの部分の差分データは0となり、台座画像13qの部分の色距離が、期待値よりも大きくなり、その差分データ(値)は異なるものになってしまう。この差分値は、原稿4の色によって変わってくるので、このままでは、差分画像が不安定になってしまう。
そこで、2つの画像のうち、一方の画像からもう一方の画像の画素値を予測し、一方の画像の画素値の変換を行う。本実施形態では、縮小画像Qと同じ条件になるように比較画像Rの画素値を変換するものとする。また、この変換によって作成される画像を予測比較画像R'とし、この変換を比較画像の予測変換と記す。
この予測変換の方法としては、2つの方法が考えられる。まず、第1は、原稿4が載置されない領域の明るさの変化を予測する方法である。図19(a)は、比較画像Rを示し、図19(b)は、縮小画像Qを示す。尚、図19(a)の比較画像Rには、台座画像13qと十字エッジ画像14jとが存在する。また、縮小画像Qには、原稿画像4qが存在する。また、図19(a)、(b)の斜線で示す領域Area_3は、原稿4が載置されない領域である。
比較画像Rと縮小画像Qとを比較すると、この領域Area_3において映っている被写体は同じであると考えられる。このため、この領域Area_3の画素データを用い、比較画像Rと縮小画像Qとの両領域Area_3の画像品質が対応するように、明るさの変化を予測して、比較画像Rの予測変換を行う。
この領域の座標集合が(xi,yi)(i=0,1,2,・・・,m)とすると、次の数32に示す関係式が成り立つような予測パラメータKr,Cr,Kg,Cg,Kb,Cbを求める。
数32は、線形関数であり、予測パラメータは、例えば、ハウスホルダーQR分解法等の最小2乗誤差解手法によって容易に求められる。画像処理装置203は、この予測パラメータから、次の数33に従い、予測比較画像R'を作成する。
よって、R'(x,y)=(R'r(x,y),R'g(x,y),R'b(x,y))となる。
第2の方法は、明るさの比を撮影パラメータで表し、この撮影パラメータから、予測比較画像R'を作成する方法である。撮影パラメータの中で、明るさに関係するパラメータは、シャッター速度、CCD感度と、絞り値と、である。
シャッター速度は、露出時間に対応し、Tで表すものとする。CCD感度は、ISO100を1とした場合の感度比であり、Gで表すものとする。そして、絞り値は、Fで表すものとする。
比較画像Rを得るときのパラメータを、それぞれ、Tr,Gr,Frとし、縮小画像Qを得るときのパラメータを、それぞれ、Tq,Gq,Fqとすると、明るさの比Kは、概略的に次の数34に示す関係式で表される。
これらのパラメータから、比較画像Rと縮小画像Qとの画像品質が対応するように、次の数35に従って予測比較画像R'を作成する。
第2の予測方法と第1の予測方法とを比較すると、第2の予測方法では、撮影パラメータから簡単に予測パラメータを求めることができる。但し、数35に示す式には、オフセットパラメータCr,Cg,Cbが含まれないので、オフセット変動が大きい場合には、第1の予測方法の方が好ましい。しかし、通常、このオフセットパラメータCr,Cg,Cbが大きくなることはないので、第2の予測方法で予測比較画像R'を作成しても、予測値と真の値とが大きく異なることはない。
画像処理装置203は、生成した縮小画像Qと予測比較画像R'から、数36に従って、差分画像を生成する。
第1の予測変換の方法を用いて差分画像を生成する場合、画像処理装置203は、図20に示すフローチャートに従って、差分画像生成処理(1)を実行する。
即ち、画像処理装置203は、台座13に原稿4が載置されている状態の低解像度画像を、メモリ201の処理画像記憶領域201bから読み出し、この低解像度画像から、縮小画像Qを生成する(ステップS111)。
画像処理装置203は、台座登録処理においてメモリ201の処理画像記憶領域201bに保存した画像を比較画像Rとして読み出す。画像処理装置203は、数32に従い、予測パラメータKr,Cr,Kg,Cg,Kb,Cbを求める(ステップS112)。
画像処理装置203は、数33に従い、予測比較画像R'を作成する(ステップS113)。
画像処理装置203は、数36に従い、差分画像を生成する(ステップS114)。そして、画像処理装置203は、図17に示すフローチャートのステップS94から、原稿投影処理を実行する。
次に、第2の予測変換の方法を用いて差分画像を生成する場合、画像処理装置203は、図21に示すフローチャートに従って、差分画像生成処理(2)を実行する。
画像処理装置203は、縮小画像Qを生成する(ステップS121)。
画像処理装置203は、台座登録処理においてメモリ201の処理画像記憶領域201bに保存した画像を比較画像Rとして読み出し、光学レンズ装置101から、撮影パラメータTr,Gr,Fr,Tq,Gq,Fqを取得する(ステップS122)。
画像処理装置203は、取得した撮影パラメータTr,Gr,Fr,Tq,Gq,Fqを用い、数34に従って、明るさの比Kを求める(ステップS123)。
画像処理装置203は、明るさの比Kを用い、数35に従って、予測比較画像R'を作成する(ステップS124)。
画像処理装置203は、数36に従い、差分画像を生成する(ステップS114)。そして、画像処理装置203は、図17に示すフローチャートのステップS94から、原稿投影処理を実行する。
このように、色距離を用いて差分画像を生成することにより、比較画像と縮小画像とが必ずしも同じ条件で撮影されなくてもよいので、撮影時間が短くなり、かつ、差分データを高品質に取得できる。
また、第1の予測変換の方法を用いることにより、2つの撮影画像から、差分データを予測でき、2つの画像の明るさ予測を明るさの勾配だけでなくホワイトバランス等の影響による明るさのオフセットも予測するので、精度のよい差分画像を生成することができ、結果として良好な原稿画像4qの輪郭を取得することができる。
また、第2の予測変換の方法を用いることにより、異なる撮影条件での撮影パラメータから差分画像を生成することができるので、簡単に、かつ高速に良好な差分画像を生成することができる。
次に、撮影装置は、コンピュータを備えたものであってもよい。そして、コンピュータが、書画カメラ1の機能を備え、コンピュータが画像処理等を行うようにしてもよい。このようにすれば、カメラ部11には、汎用のデジタルカメラを用いることもできる。
上記実施形態では、プログラムが、それぞれメモリ等に予め記憶されているものとして説明した。しかし、撮影装置を、装置の全部又は一部として動作させ、あるいは、上述の処理を実行させるためのプログラムを、フレキシブルディスク、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
1・・・書画カメラ、2・・・プロジェクタ、3・・・スクリーン、4・・・原稿、11・・・カメラ部、13・・・台座、201・・・メモリ、202・・・ビデオ出力装置、203・・・画像処理装置、204・・・操作部、205・・・支柱傾き変化検出部、207・・・CPU