画像合成装置
【構成】撮像面の動きベクトルは、動き検出回路44によって検出される。CPU30は、検出された動きベクトルの水平成分を繰り返し積算して、水平方向における積算動きベクトルを算出する。CPU30はまた、検出された動きベクトルの垂直成分が取り込み条件を満足するか否かを水平方向における積算動きベクトルが既定範囲に属する期間に繰り返し判別し、さらに水平方向における積算動きベクトルが既定範囲の上限に達したか否かを繰り返し判別する。いずれか一方の判別結果がNOからYESに更新されると、CPU30は、画像合成のために静止画取り込み処理を実行し、その後に水平方向における積算動きベクトルの算出処理を再起動する。
【効果】合成画像の作成に関する操作性が向上する。
【効果】合成画像の作成に関する操作性が向上する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画像合成装置に関し、特にパノラマモードを有するディジタルカメラに適用され、複数の被写界像を部分的に重複する態様で合成する、画像合成装置に関する。
【背景技術】
【0002】
この種の装置の一例が、特許文献1に開示されている。この背景技術によれば、撮像面の移動量がジャイロ部やGPS部の出力に基づいて検出される。パノラマ画像の作成に用いる複数の画像は、検出された移動量を参照して、画像間に適度な重なりが生じるタイミングで撮影される。垂直方向における撮像面のブレ量はこのような撮影処理と並列して繰り返し検出され、検出されたブレ量が閾値を上回ると警告が発生される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平2006−217478号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、垂直方向における撮像面のブレを抑制する対策は、警告の発生に留まる。このため、背景技術では操作性に限界がある。
【0005】
それゆえに、この発明の主たる目的は、合成画像の作成に関する操作性を向上させることができる、画像合成装置を提供することである。
【課題を解決するための手段】
【0006】
この発明に従う画像合成装置(10:実施例で相当する参照符号。以下同じ)は、水平方向および垂直方向の一方における撮像面の動き量を繰り返し積算する第1積算手段(S35, S37)、水平方向および垂直方向の他方における撮像面の動きが取り込み条件を満足するか否かを第1積算手段の積算値が既定範囲に属する期間に繰り返し判別する第1判別手段(S43~S47)、第1積算手段の積算値が既定範囲の上限に達したか否かを第1判別手段の判別処理と並列して繰り返し判別する第2判別手段(S45)、第1判別手段の判別結果および/または第2判別手段の判別結果の否定的な結果から肯定的な結果への更新に対応して撮像面で生成された被写界像を画像合成のために取り込む取り込み手段(S49)、および取り込み手段の取り込み処理に関連して第1積算手段を再起動する再起動手段(S59)を備える。
【0007】
好ましくは、第1判別手段によって注目される方向における撮像面の動き量を積算する第2積算手段(S35, S39)がさらに備えられ、取り込み条件は第2積算手段の積算値が基準を下回るという条件を含む。
【0008】
好ましくは、取り込み手段によって取り込まれた被写界像から指定エリアに属する一部の被写界像を切り出す切り出し手段(S57)、および第1積算手段によって注目される方向における指定エリアの大きさを取り込み手段の起動時点における第1積算手段の積算値を参照して調整する調整手段(S51)がさらに備えられる。
【0009】
さらに好ましくは、調整手段は第1積算手段の積算値の増大に応じて指定エリアの大きさを増大させる。
【0010】
好ましくは、取り込み手段の取り込み処理に関連して撮像面の水平位置および垂直位置を示す位置情報を作成する作成手段(S53)、および取り込み手段によって取り込まれた複数の被写界像を作成手段によって作成された位置情報を参照して合成する合成手段(S65, S71)がさらに備えられる。
【0011】
さらに好ましくは、取り込み手段によって取り込まれた被写界像の数が指定値に達したとき合成手段を起動する第1起動手段(S55)、および第1判別手段によって注目される方向における撮像面の動きがエラー条件に合致するとき取り込み手段によって取り込まれた被写界像の数を参照して合成手段を起動する第2起動手段(S41, S69)がさらに備えられる。
【0012】
この発明に従う画像合成プログラムは、画像合成装置(10)のプロセッサ(30)に、水平方向および垂直方向の一方における撮像面の動き量を繰り返し積算する積算ステップ(S35, S37)、水平方向および垂直方向の他方における撮像面の動きが取り込み条件を満足するか否かを積算手段の積算値が既定範囲に属する期間に繰り返し判別する第1判別ステップ(S43~S47)、積算手段の積算値が既定範囲の上限に達したか否かを第1判別手段の判別処理と並列して繰り返し判別する第2判別ステップ(S45)、第1判別ステップの判別結果および/または第2判別ステップの判別結果の否定的な結果から肯定的な結果への更新に対応して撮像面で生成された被写界像を画像合成のために取り込む取り込みステップ(S49)、および取り込みステップの取り込み処理に関連して積算ステップを再起動する再起動ステップ(S59)を実行させるための、画像合成プログラムである。
【0013】
この発明に従う画像合成方法は、画像合成装置(10)によって実行される画像合成方法であって、水平方向および垂直方向の一方における撮像面の動き量を繰り返し積算する積算ステップ(S35, S37)、水平方向および垂直方向の他方における撮像面の動きが取り込み条件を満足するか否かを積算手段の積算値が既定範囲に属する期間に繰り返し判別する第1判別ステップ(S43~S47)、積算手段の積算値が既定範囲の上限に達したか否かを第1判別手段の判別処理と並列して繰り返し判別する第2判別ステップ(S45)、第1判別ステップの判別結果および/または第2判別ステップの判別結果の否定的な結果から肯定的な結果への更新に対応して撮像面で生成された被写界像を画像合成のために取り込む取り込みステップ(S49)、および取り込みステップの取り込み処理に関連して積算ステップを再起動する再起動ステップ(S59)を備える。
【発明の効果】
【0014】
この発明によれば、水平方向および垂直方向の一方を第1方向と定義し、水平方向および垂直方向の他方を第2方向と定義した場合、被写界像の取り込み処理は、第1方向における撮像面の動き量の積算値が既定範囲に属する期間において第2方向における撮像面の動き量が既定条件を満足したとき、或いは第1方向における撮像面の動き量の積算値が既定範囲の上限に達したときに実行される。
【0015】
第1方向における撮像面の動き量の積算値が既定範囲に属する期間において第2方向における撮像面の動き量が既定条件を満足したときに取り込み処理を実行することで、第2方向における被写界像のぶれを抑制することができる。また、第1方向における撮像面の動き量の積算値が既定範囲の上限に達したときに取り込み処理を実行することで、第1方向における合成画像の連続性を確保することができる。こうして、合成画像の作成に関する操作性が向上する。
【0016】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0017】
【図1】この発明の基本的構成を示すブロック図である。
【図2】この発明の一実施例の構成を示すブロック図である。
【図3】測光エリアおよびフォーカスエリアの割り当て状態の一例を示す図解図である。
【図4】パノラマモードで捉えられる被写界の一例を示す図解図である。
【図5】短冊画像データST_0の切り出し動作の一例を示す図解図である。
【図6】(A)は静止画取り込み処理の実行タイミングの一例を示す図解図であり、(B)は静止画取り込み処理の実行タイミングの他の一例を示す図解図である。
【図7】図2実施例に適用されるレジスタの構成の一例を示す図解図である。
【図8】短冊画像データST_2およびST_3の切り出し動作の一例を示す図解図である。
【図9】静止画取り込み処理が実行される時点で捉えられる被写界の分布状態の一例を示す図解図である。
【図10】短冊画像データST_4の切り出し動作の一例を示す図解図である。
【図11】画像合成処理の一部を示す図解図である。
【図12】画像合成処理の他の一部を示す図解図である。
【図13】画像合成処理によって作成されたパノラマ画像データの一例を示す図解図である。
【図14】図2実施例に適用されるCPUの動作の一部を示すフロー図である。
【図15】図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【図16】図2実施例に適用されるCPUの動作のその他の一部を示すフロー図である。
【図17】図2実施例に適用されるCPUの動作のさらにその他の一部を示すフロー図である。
【図18】図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【発明を実施するための形態】
【0018】
以下、この発明の実施の形態を図面を参照しながら説明する。
[基本的構成]
【0019】
図1を参照して、この発明の画像合成装置は、基本的に次のように構成される。第1積算手段1は、水平方向および垂直方向の一方における撮像面の動き量を繰り返し積算する。第1判別手段2は、水平方向および垂直方向の他方における撮像面の動きが取り込み条件を満足するか否かを第1積算手段1の積算値が既定範囲に属する期間に繰り返し判別する。第2判別手段3は、第1積算手段1の積算値が既定範囲の上限に達したか否かを第1判別手段2の判別処理と並列して繰り返し判別する。取り込み手段4は、第1判別手段2の判別結果および/または第2判別手段3の判別結果の否定的な結果から肯定的な結果への更新に対応して撮像面で生成された被写界像を画像合成のために取り込む。再起動手段5は、取り込み手段4の取り込み処理に関連して第1積算手段1を再起動する。
【0020】
水平方向および垂直方向の一方を第1方向と定義し、水平方向および垂直方向の他方を第2方向と定義した場合、被写界像の取り込み処理は、第1方向における撮像面の動き量の積算値が既定範囲に属する期間において第2方向における撮像面の動きが取り込み条件を満足したとき、或いは第1方向における撮像面の動き量の積算値が既定範囲の上限に達したときに実行される。
【0021】
第1方向における撮像面の動き量の積算値が既定範囲に属する期間において第2方向における撮像面の動きが取り込み条件を満足したときに取り込み処理を実行することで、第2方向における被写界像のぶれを抑制することができる。また、第1方向における撮像面の動き量の積算値が既定範囲の上限に達したときに取り込み処理を実行することで、第1方向における合成画像の連続性を確保することができる。こうして、合成画像の作成に関する操作性が向上する。
[実施例]
【0022】
図2を参照して、この実施例のディジタルカメラ10は、ドライバ18aおよび18bによってそれぞれ駆動されるフォーカスレンズ12および絞り機構14を含む。フォーカスレンズ12および絞り機構14を経た被写界の光学像は、撮像装置16の撮像面に照射され、光電変換を施される。これによって、被写界像を表す電荷が生成される。
【0023】
電源が投入されると、CPU30は、スルー画像処理を実行するべく、ドライバ18cに露光動作および電荷読み出し動作の繰り返しを命令する。ドライバ18cは、SG(Signal Generator)20から周期的に発生する垂直同期信号Vsyncに応答して、撮像面にプリ露光を施し、これによって生成された電荷をラスタ走査態様で読み出す。撮像装置16からは、読み出された電荷に基づく生画像データが周期的に出力される。
【0024】
信号処理回路22は、撮像装置16から出力された生画像データに白バランス調整,色分離,YUV変換などの処理を施し、これによって作成されたYUV形式の画像データをバスBS1を介してメモリ制御回路32に与える。メモリ制御回路32は、与えられた画像データをバスBS2を介してSDRAM34の動画像エリア34mに書き込む。
【0025】
動画像エリア34mに格納された画像データは、メモリ制御回路32によって繰り返し読み出され、バスBS1を介してドライバ36に与えられる。LCDドライバ36は、与えられた画像データに基づいてLCDモニタ38を駆動する。この結果、被写界のリアルタイム動画像(スルー画像)がモニタ画面に表示される。
【0026】
図3を参照して、撮像面の中央には測光エリアEAが割り当てられる。輝度評価回路24は、信号処理回路22から出力されたYデータのうち測光エリアEAに属するYデータを、垂直同期信号Vsyncが発生する毎に積分する。積分値つまり輝度評価値は、垂直同期信号Vsyncの発生周期で輝度評価回路24から出力される。CPU30は、輝度評価回路24から出力された輝度評価値に基づいて適正EV値を算出するべく、簡易AE処理を繰り返し実行する。算出された適正EV値を定義する絞り量および露光時間は、ドライバ18bおよび18cにそれぞれ設定される。この結果、LCDモニタ38に表示されるスルー画像の明るさが適度に調整される。
【0027】
キー入力装置28上のシャッタボタン28sが半押しされると、輝度評価回路24から出力された輝度評価値に基づいて最適EV値を算出するべく、厳格AE処理が実行される。算出された最適EV値を定義する絞り量および露光時間は、上述と同様、ドライバ18bおよび18cにそれぞれ設定される。
【0028】
厳格AE処理が完了すると、フォーカス評価回路26の出力に基づくAF処理が実行される。フォーカス評価回路26は、信号処理回路22から出力されたYデータのうちフォーカスエリアFA(図3参照)に属するYデータの高周波成分を、垂直同期信号Vsyncが発生する毎に積分する。積分値つまりAF評価値は、垂直同期信号Vsyncの発生周期でフォーカス評価回路26から出力される。
【0029】
CPU30は、フォーカス評価回路26からAF評価値を取り込み、いわゆる山登り処理によって合焦点を探索する。フォーカスレンズ12は、垂直同期信号Vsyncが発生する毎に光軸方向に移動し、その後に合焦点に配置される。
【0030】
シャッタボタン28sが全押しされると、CPU30は静止画取り込み処理を実行するべく、対応する命令をメモリ制御回路32に与える。メモリ制御回路32は、シャッタボタン28sが全押しされた時点の被写界を表す1フレームの画像データを動画像エリア34mから静止画像エリア34sに複製する。
【0031】
撮像モードは、シャッタボタン28sの操作に先立つモードキー28mの操作によって、通常モードおよびパノラマモードのいずれか一方に設定される。設定された撮像モードが通常モードであれば、CPU30は、記録処理を実行するべく、対応する命令をメモリ制御回路32に与える。メモリ制御回路32は、静止画取り込み処理によって複製された1フレームの画像データを静止画像エリア34sから読み出し、読み出された画像データをファイル形式で記録媒体40に記録する。記録処理が完了すると、上述のスルー画像処理および簡易AE処理が再開される。
【0032】
モードキー28mの操作によって設定された撮像モードがパノラマモードであれば、パノラマ画像データを作成するべく、次の処理がCPU30によって実行される。
【0033】
まず、変数KおよびHw_Kが“0”および“Hth1”に設定される。ここで、変数Kは、静止画像エリア34sに複製された画像データに割り当てられるフレーム番号に相当する。また、変数Hw_Kは第Kフレームの画像データから切り出す短冊画像データST_Kの幅を定義する係数に相当する。さらに、“Hth1”は、次回以降の静止画取り込み処理の実行タイミングを制御するために参照される閾値の1つである。
【0034】
変数KおよびHw_Kが決定されると、静止画像エリア34sに複製された第Kフレームの画像データから短冊画像データST_Kが切り出される。K=0については、切り出し位置は左端に設定され、切り出し幅は“Hw_K+A+{W−(Hw_K+A)}/2”に設定される。この結果、短冊画像データST_0は、図5に示す要領で切り出される。
【0035】
短冊画像データST_Kの切り出しが完了すると、積算動きベクトルVttlおよびHttlが“0”に設定され、変数Kがインクリメントされる。ここで、積算動きベクトルVttlは垂直方向における撮像面の動きベクトルの積算値を示し、積算動きベクトルHttlは水平方向における撮像面の動きベクトルの積算値を示す。
【0036】
図2に示す動き検出回路44は、信号処理回路22から出力されたYデータに基づいて撮像面の動きベクトルを繰り返し検出する。検出された動きベクトルは、垂直同期信号Vsyncが発生する毎にCPU30によって取り込まれる。
【0037】
取り込まれた動きベクトルの水平成分は水平動きベクトルHvctとして抽出され、抽出された水平動きベクトルHvctは積算動きベクトルHttlに積算される。また、取り込まれた動きベクトルの垂直成分は垂直動きベクトルVvctとして抽出され、抽出された垂直動きベクトルVvctは積算動きベクトルVttlに積算される。
【0038】
積算動きベクトルVttlの絶対値は閾値Vth1およびVth2の各々と比較され、積算動きベクトルHttlは閾値Hth1およびHth2の各々と比較される。ここで、閾値Hth2は閾値Hth1よりも大きく、閾値Vth2は閾値Vth1よりも大きい。具体的には、閾値Hth1は水平画角の10%に相当し、閾値Hth2は水平画角の30%に相当する。また、閾値Vth1は垂直画角の5%に相当し、閾値Th2は垂直画角の200%に相当する。
【0039】
積算動きベクトルHttlが既定範囲(=閾値Hth1から閾値Hth2までの範囲)に属する期間において積算動きベクトルVttlの絶対値が閾値Vth1を下回ると、その時点で静止画取り込み処理が実行される(図6(A)参照)。
【0040】
また、積算動きベクトルHttlが既定範囲に属する期間にわたって積算動きベクトルVttlの絶対値が閾値Vth1以上でかつ閾値Vth2未満の値を維持すれば、積算動きベクトルHttlが閾値Hth2に達した時点で静止画取り込み処理が実行される(図6(B)参照)。
【0041】
静止画取り込み処理が実行された結果、第Kフレームの画像データが動画像エリア34mから静止画像エリア34sに複製される。続いて、積算動きベクトルHttlが変数Hw_Kに設定され、変数Hw_Kおよび積算動きベクトルVttlが図7に示すレジスタ30rのK番目のカラムに設定される。
【0042】
変数Kが“4”未満であれば、静止画像エリア34sに複製された第Kフレームの画像データから短冊画像データST_Kが切り出される。K=1〜3については、切り出し位置は中央に設定され、切り出し幅は“Hw_K+A”に設定される。この結果、短冊画像データST_2およびST_3は図8に示す要領で切り出される。図8から分かるように、切り出された短冊画像データST_2およびST_3の間には、“(Hw_2−Hw_3)/2+A”に相当する幅のマージンが確保される。
【0043】
短冊画像データST_Kの切り出しが完了すると、積算動きベクトルHttlが“0”に設定され、変数Kがインクリメントされる。次フレームの静止画取り込み処理の実行タイミングは、その後に検出された水平動きベクトルHvctの積算値に基づいて制御される。
【0044】
図9を参照して、フレームF_0に対応してシャッタボタン28sを全押しし、その後に撮像面を垂直方向に微動させながら水平方向に移動させた場合、第1フレームの静止画取り込み処理はフレームF_1に対応して実行され、第2フレームの静止画取り込み処理はフレームF_2に対応して実行され、第3フレームの静止画取り込み処理はフレームF_3に対応して実行され、そして第4フレームの静止画取り込み処理はフレームF_4に対応して実行される。
【0045】
図9によれば、第1フレームの静止画取り込み処理は、積算動きベクトルHttlが既定範囲の上限(=Hth2)に達した時点で実行される。このとき、積算動きベクトルVttlは閾値Vth1の絶対値以上の値を示す。第2フレームの静止画取り込み処理は、積算動きベクトルHttlが既定範囲に属する期間において積算動きベクトルVttlが閾値Vth1を下回った時点で実行される。
【0046】
第3フレームの静止画取り込み処理は、積算動きベクトルHttlが既定範囲の上限(=Hth2)に達した時点で実行される。このとき、積算動きベクトルVttlは閾値Vth1の絶対値以上の値を示す。第4フレームの静止画取り込み処理は、積算動きベクトルHttlが既定範囲に属する期間において積算動きベクトルVttlが閾値Vth1を下回った時点で実行される。
【0047】
変数Kが“4”に達したときも、静止画像エリア34sに複製された第Kフレームの画像データから短冊画像データST_Kが切り出される。ただし、K=4については、切り出し位置は右端に設定され、切り出し幅は“Hw_K+A+{W−(Hw_K+A)}/2”に設定される。この結果、短冊画像データST_4は図10に示す要領で切り出される。
【0048】
短冊画像データST_4の切り出しが完了すると、パノラマ画像作成処理が実行される。切り出された短冊画像データST_0〜ST_4は、レジスタ30rに設定された変数Hw_1〜Hw_4と4つの積算動きベクトルVttlとを参照して、図11に示す要領で合成される。合成された画像データには図12に示す要領で切り出し枠CF1が定義され、一部の画像データが切り出し枠CF1に沿って切り出される。この結果、図13に示すパノラマ画像データが得られる。こうして作成されたパノラマ画像データはその後、ファイル形式で記録媒体40に記録される。
【0049】
なお、積算動きベクトルVttlが閾値Vth2に達すると、変数Kが“1”以上である場合つまり少なくとも2フレームの画像データが静止画像エリア34sに複製されている場合に、上述と同様のパノラマ画像作成処理が実行される。これによって生成されたパノラマ画像データもまた、ファイル形式で記録媒体40に記録される。なお、変数Kが“0”を示す状態で積算動きベクトルVttlが閾値Vth2に達すると、エラー処理が実行される。
【0050】
CPU30は、図14〜図18に示す撮像タスクに従う処理を実行する。この撮像タスクに対応する制御プログラムは、フラッシュメモリ42に記憶される。
【0051】
図14を参照して、ステップS1ではスルー画像処理を実行する。この結果、被写界を表す画像データが動画像エリア34mに繰り返し書き込まれ、これに基づくスルー画像がLCDモニタ38に表示される。ステップS3ではシャッタボタン28sが半押しされたか否かを判別し、判別結果がNOである限りステップS5の簡易AE処理を繰り返す。この結果、スルー画像の明るさが適度に調整される。シャッタボタン28sが半押しされると、ステップS7で厳格AE処理を実行し、ステップS9でAF処理を実行する。ステップS7の処理によってスルー画像の明るさが最適値に調整され、ステップS9の処理によってフォーカスレンズ12が合焦点に配置される。
【0052】
ステップS11ではシャッタボタン28sが全押しされたか否かを判別し、ステップS13ではシャッタボタン28sの操作が解除されたか否かを判別する。ステップS13でYESであればステップS3に戻り、ステップS11でYESであればステップS15で静止画取り込み処理を実行する。ステップS15の処理の結果、シャッタボタン28sが全押しされた時点の1フレームの画像データが動画像エリア34mから静止画像エリア34sに複製される。
【0053】
ステップS17では、現時点の撮像モードが通常モードおよびパノラマモードのいずれであるかを判別する。現時点の撮像モードが通常モードであれば、ステップS17からステップS19に進み、記録処理を実行する。この結果、静止画像エリア34sに複製された1フレームの画像データがファイル形式で記録媒体40に記録される。記録処理が完了すると、ステップS1に戻る。
【0054】
現時点の撮像モードがパノラマモードであれば、ステップS17でYESと判断し、ステップS21で変数Kを“0”に設定するとともに、ステップS23で変数Hw_Kを“Hth1”に設定する。ステップS25では、静止画像エリア34sに複製された第Kフレームの画像データから短冊画像データST_Kを切り出す。このとき、切り出し位置は左端に設定され、切り出し幅は“Hw_K+A+{W−(Hw_K+A)}/2”に設定される。
【0055】
ステップS27では積算動きベクトルVttlを“0”に設定し、ステップS29では積算動きベクトルHttlを“0”に設定する。ステップS31では変数Kをインクリメントし、ステップS33では垂直同期信号Vsyncが発生したか否かを判別する。判別結果がNOからYESに更新されると、動き検出回路44によって生成された動きベクトルをステップS35で取り込む。ステップS37では、取り込まれた動きベクトルの水平成分を水平動きベクトルHvctとして抽出し、抽出された水平動きベクトルHvctを積算動きベクトルHttlに積算する。ステップS39では、取り込まれた動きベクトルの垂直成分を垂直動きベクトルVvctとして抽出し、抽出された垂直動きベクトルVvctを積算動きベクトルVttlに積算する。
【0056】
ステップS41では積算動きベクトルVttlの絶対値が閾値Vth2未満であるか否かを判別し、ステップS43では積算動きベクトルHttlが閾値Hth1以上であるか否かを判別する。また、ステップS45では積算動きベクトルHttlが閾値Hth2以上であるか否かを判別し、ステップS47では積算動きベクトルVttlの絶対値が閾値Vth1未満であるか否かを判別する。
【0057】
ステップS41,S43およびS45の判別結果がいずれもYESであれば、ステップS49に進む。また、ステップS45の判別結果がNOであっても、ステップS41,S43およびS47の判別結果がYESであれば、ステップS49に進む。一方、ステップS41の判別結果がYESでかつステップS43の判別結果がNOであるか、或いはステップS41およびS43の判別結果がYESでかつステップS45およびS47の判別結果がNOであれば、ステップS33に戻る。他方、ステップS41の判別結果がNOであれば、ステップS69に進む。
【0058】
ステップS49では、上述したステップS15と同様の静止画取り込み処理を実行する。これによって、第Kフレームの画像データが静止画像エリア34sに複製される。ステップS51では積算動きベクトルHttlを変数Hw_Kに設定し、ステップS53では変数Hw_Kおよび積算動きベクトルVttlをレジスタ30rのK番目のカラムに設定する。ステップS55では変数Kが“4”に達したか否かを判別し、判別結果がNOであればステップS57に進む一方、判別結果がYESであればステップS63に進む。
【0059】
ステップS57では、静止画像エリア34sに複製された第Kフレームの画像データから短冊画像データST_Kを切り出す。このとき、切り出し位置は中央に設定され、切り出し幅は“Hw_K+A”に設定される。ステップS57の処理が完了すると、ステップS59〜S61でステップS29〜S31と同様の処理を実行し、その後にステップS33に戻る。
【0060】
ステップS63では、静止画像エリア34sに複製された第Kフレームの画像データから短冊画像データST_Kを切り出す。このとき、切り出し位置は右端に設定され、切り出し幅は“Hw_K+A+{W−(Hw_K+A)}/2”に設定される。ステップS63の処理が完了すると、ステップS65でパノラマ画像作成処理を実行する。ステップS67では、ステップS65で作成されたパノラマ画像データに記録処理を施す。パノラマ画像データは、ファイル形式で記録媒体40に記録される。記録処理が完了すると、ステップS3に戻る。
【0061】
ステップS69では、変数Kが“1”以上であるか否かを判別する。判別結果がYESであれば、ステップS71〜S73で上述したステップS65〜S67と同様の処理を実行し、その後にステップS3に戻る。判別結果がNOであれば、ステップS75でエラー処理を実行し、その後にステップS3に戻る。
【0062】
以上の説明から分かるように、撮像面の動きベクトルは動き検出回路44によって検出される。CPU30は、検出された動きベクトルの水平成分に相当する水平動きベクトルHvctを繰り返し積算して、積算動きベクトルHttlを算出する(S37)。CPU30はまた、垂直方向における撮像面の動きが取り込み条件(=積算動きベクトルVttlの絶対値が閾値Vth1を下回るという条件)を満足するか否かを積算動きベクトルHttlが既定範囲(=閾値Hth1から閾値Hth2までの範囲)に属する期間に繰り返し判別し(S43~S47)、これと並列して積算動きベクトルHttlが既定範囲の上限に達したか否かを繰り返し判別する(S45)。いずれか一方の判別結果がNOからYESに更新されると、CPU30は、画像合成のために静止画取り込み処理を実行し(S49)、その後に積算動きベクトルHttlの算出処理を再起動する(S59)。
【0063】
積算動きベクトルHttlが既定範囲に属する期間において垂直方向における撮像面の動きが取り込み条件を満足したときに静止画取り込み処理を実行することで、垂直方向における静止画像のぶれを抑制することができる。また、積算動きベクトルHttlが既定範囲の上限に達したときに静止画取り込み処理を実行することで、水平方向における合成画像の連続性を確保することができる。こうして、合成画像の作成に関する操作性が向上する。
【0064】
なお、この実施例では、撮像面のパン動作と並列して取り込まれた複数の静止画像を水平方向において結合するようにしているが、撮像面のチルト動作と並列して取り込まれた複数の静止画像を垂直方向において結合するようにしてもよい。
【0065】
また、この実施例では画像合成装置としてディジタルカメラを想定しているが、この発明は撮像機能を有する様々な電子機器(たとえばカメラ付携帯電話機)に適用することができる。
【0066】
さらに、この実施例の撮像装置としては、CCD型のイメージセンサやCMOS型のイメージセンサを適用することができる。
【符号の説明】
【0067】
10 …ディジタルカメラ
16 …撮像装置
30 …CPU
42 …フラッシュメモリ
44 …動き検出回路
【技術分野】
【0001】
この発明は、画像合成装置に関し、特にパノラマモードを有するディジタルカメラに適用され、複数の被写界像を部分的に重複する態様で合成する、画像合成装置に関する。
【背景技術】
【0002】
この種の装置の一例が、特許文献1に開示されている。この背景技術によれば、撮像面の移動量がジャイロ部やGPS部の出力に基づいて検出される。パノラマ画像の作成に用いる複数の画像は、検出された移動量を参照して、画像間に適度な重なりが生じるタイミングで撮影される。垂直方向における撮像面のブレ量はこのような撮影処理と並列して繰り返し検出され、検出されたブレ量が閾値を上回ると警告が発生される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平2006−217478号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、垂直方向における撮像面のブレを抑制する対策は、警告の発生に留まる。このため、背景技術では操作性に限界がある。
【0005】
それゆえに、この発明の主たる目的は、合成画像の作成に関する操作性を向上させることができる、画像合成装置を提供することである。
【課題を解決するための手段】
【0006】
この発明に従う画像合成装置(10:実施例で相当する参照符号。以下同じ)は、水平方向および垂直方向の一方における撮像面の動き量を繰り返し積算する第1積算手段(S35, S37)、水平方向および垂直方向の他方における撮像面の動きが取り込み条件を満足するか否かを第1積算手段の積算値が既定範囲に属する期間に繰り返し判別する第1判別手段(S43~S47)、第1積算手段の積算値が既定範囲の上限に達したか否かを第1判別手段の判別処理と並列して繰り返し判別する第2判別手段(S45)、第1判別手段の判別結果および/または第2判別手段の判別結果の否定的な結果から肯定的な結果への更新に対応して撮像面で生成された被写界像を画像合成のために取り込む取り込み手段(S49)、および取り込み手段の取り込み処理に関連して第1積算手段を再起動する再起動手段(S59)を備える。
【0007】
好ましくは、第1判別手段によって注目される方向における撮像面の動き量を積算する第2積算手段(S35, S39)がさらに備えられ、取り込み条件は第2積算手段の積算値が基準を下回るという条件を含む。
【0008】
好ましくは、取り込み手段によって取り込まれた被写界像から指定エリアに属する一部の被写界像を切り出す切り出し手段(S57)、および第1積算手段によって注目される方向における指定エリアの大きさを取り込み手段の起動時点における第1積算手段の積算値を参照して調整する調整手段(S51)がさらに備えられる。
【0009】
さらに好ましくは、調整手段は第1積算手段の積算値の増大に応じて指定エリアの大きさを増大させる。
【0010】
好ましくは、取り込み手段の取り込み処理に関連して撮像面の水平位置および垂直位置を示す位置情報を作成する作成手段(S53)、および取り込み手段によって取り込まれた複数の被写界像を作成手段によって作成された位置情報を参照して合成する合成手段(S65, S71)がさらに備えられる。
【0011】
さらに好ましくは、取り込み手段によって取り込まれた被写界像の数が指定値に達したとき合成手段を起動する第1起動手段(S55)、および第1判別手段によって注目される方向における撮像面の動きがエラー条件に合致するとき取り込み手段によって取り込まれた被写界像の数を参照して合成手段を起動する第2起動手段(S41, S69)がさらに備えられる。
【0012】
この発明に従う画像合成プログラムは、画像合成装置(10)のプロセッサ(30)に、水平方向および垂直方向の一方における撮像面の動き量を繰り返し積算する積算ステップ(S35, S37)、水平方向および垂直方向の他方における撮像面の動きが取り込み条件を満足するか否かを積算手段の積算値が既定範囲に属する期間に繰り返し判別する第1判別ステップ(S43~S47)、積算手段の積算値が既定範囲の上限に達したか否かを第1判別手段の判別処理と並列して繰り返し判別する第2判別ステップ(S45)、第1判別ステップの判別結果および/または第2判別ステップの判別結果の否定的な結果から肯定的な結果への更新に対応して撮像面で生成された被写界像を画像合成のために取り込む取り込みステップ(S49)、および取り込みステップの取り込み処理に関連して積算ステップを再起動する再起動ステップ(S59)を実行させるための、画像合成プログラムである。
【0013】
この発明に従う画像合成方法は、画像合成装置(10)によって実行される画像合成方法であって、水平方向および垂直方向の一方における撮像面の動き量を繰り返し積算する積算ステップ(S35, S37)、水平方向および垂直方向の他方における撮像面の動きが取り込み条件を満足するか否かを積算手段の積算値が既定範囲に属する期間に繰り返し判別する第1判別ステップ(S43~S47)、積算手段の積算値が既定範囲の上限に達したか否かを第1判別手段の判別処理と並列して繰り返し判別する第2判別ステップ(S45)、第1判別ステップの判別結果および/または第2判別ステップの判別結果の否定的な結果から肯定的な結果への更新に対応して撮像面で生成された被写界像を画像合成のために取り込む取り込みステップ(S49)、および取り込みステップの取り込み処理に関連して積算ステップを再起動する再起動ステップ(S59)を備える。
【発明の効果】
【0014】
この発明によれば、水平方向および垂直方向の一方を第1方向と定義し、水平方向および垂直方向の他方を第2方向と定義した場合、被写界像の取り込み処理は、第1方向における撮像面の動き量の積算値が既定範囲に属する期間において第2方向における撮像面の動き量が既定条件を満足したとき、或いは第1方向における撮像面の動き量の積算値が既定範囲の上限に達したときに実行される。
【0015】
第1方向における撮像面の動き量の積算値が既定範囲に属する期間において第2方向における撮像面の動き量が既定条件を満足したときに取り込み処理を実行することで、第2方向における被写界像のぶれを抑制することができる。また、第1方向における撮像面の動き量の積算値が既定範囲の上限に達したときに取り込み処理を実行することで、第1方向における合成画像の連続性を確保することができる。こうして、合成画像の作成に関する操作性が向上する。
【0016】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0017】
【図1】この発明の基本的構成を示すブロック図である。
【図2】この発明の一実施例の構成を示すブロック図である。
【図3】測光エリアおよびフォーカスエリアの割り当て状態の一例を示す図解図である。
【図4】パノラマモードで捉えられる被写界の一例を示す図解図である。
【図5】短冊画像データST_0の切り出し動作の一例を示す図解図である。
【図6】(A)は静止画取り込み処理の実行タイミングの一例を示す図解図であり、(B)は静止画取り込み処理の実行タイミングの他の一例を示す図解図である。
【図7】図2実施例に適用されるレジスタの構成の一例を示す図解図である。
【図8】短冊画像データST_2およびST_3の切り出し動作の一例を示す図解図である。
【図9】静止画取り込み処理が実行される時点で捉えられる被写界の分布状態の一例を示す図解図である。
【図10】短冊画像データST_4の切り出し動作の一例を示す図解図である。
【図11】画像合成処理の一部を示す図解図である。
【図12】画像合成処理の他の一部を示す図解図である。
【図13】画像合成処理によって作成されたパノラマ画像データの一例を示す図解図である。
【図14】図2実施例に適用されるCPUの動作の一部を示すフロー図である。
【図15】図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【図16】図2実施例に適用されるCPUの動作のその他の一部を示すフロー図である。
【図17】図2実施例に適用されるCPUの動作のさらにその他の一部を示すフロー図である。
【図18】図2実施例に適用されるCPUの動作の他の一部を示すフロー図である。
【発明を実施するための形態】
【0018】
以下、この発明の実施の形態を図面を参照しながら説明する。
[基本的構成]
【0019】
図1を参照して、この発明の画像合成装置は、基本的に次のように構成される。第1積算手段1は、水平方向および垂直方向の一方における撮像面の動き量を繰り返し積算する。第1判別手段2は、水平方向および垂直方向の他方における撮像面の動きが取り込み条件を満足するか否かを第1積算手段1の積算値が既定範囲に属する期間に繰り返し判別する。第2判別手段3は、第1積算手段1の積算値が既定範囲の上限に達したか否かを第1判別手段2の判別処理と並列して繰り返し判別する。取り込み手段4は、第1判別手段2の判別結果および/または第2判別手段3の判別結果の否定的な結果から肯定的な結果への更新に対応して撮像面で生成された被写界像を画像合成のために取り込む。再起動手段5は、取り込み手段4の取り込み処理に関連して第1積算手段1を再起動する。
【0020】
水平方向および垂直方向の一方を第1方向と定義し、水平方向および垂直方向の他方を第2方向と定義した場合、被写界像の取り込み処理は、第1方向における撮像面の動き量の積算値が既定範囲に属する期間において第2方向における撮像面の動きが取り込み条件を満足したとき、或いは第1方向における撮像面の動き量の積算値が既定範囲の上限に達したときに実行される。
【0021】
第1方向における撮像面の動き量の積算値が既定範囲に属する期間において第2方向における撮像面の動きが取り込み条件を満足したときに取り込み処理を実行することで、第2方向における被写界像のぶれを抑制することができる。また、第1方向における撮像面の動き量の積算値が既定範囲の上限に達したときに取り込み処理を実行することで、第1方向における合成画像の連続性を確保することができる。こうして、合成画像の作成に関する操作性が向上する。
[実施例]
【0022】
図2を参照して、この実施例のディジタルカメラ10は、ドライバ18aおよび18bによってそれぞれ駆動されるフォーカスレンズ12および絞り機構14を含む。フォーカスレンズ12および絞り機構14を経た被写界の光学像は、撮像装置16の撮像面に照射され、光電変換を施される。これによって、被写界像を表す電荷が生成される。
【0023】
電源が投入されると、CPU30は、スルー画像処理を実行するべく、ドライバ18cに露光動作および電荷読み出し動作の繰り返しを命令する。ドライバ18cは、SG(Signal Generator)20から周期的に発生する垂直同期信号Vsyncに応答して、撮像面にプリ露光を施し、これによって生成された電荷をラスタ走査態様で読み出す。撮像装置16からは、読み出された電荷に基づく生画像データが周期的に出力される。
【0024】
信号処理回路22は、撮像装置16から出力された生画像データに白バランス調整,色分離,YUV変換などの処理を施し、これによって作成されたYUV形式の画像データをバスBS1を介してメモリ制御回路32に与える。メモリ制御回路32は、与えられた画像データをバスBS2を介してSDRAM34の動画像エリア34mに書き込む。
【0025】
動画像エリア34mに格納された画像データは、メモリ制御回路32によって繰り返し読み出され、バスBS1を介してドライバ36に与えられる。LCDドライバ36は、与えられた画像データに基づいてLCDモニタ38を駆動する。この結果、被写界のリアルタイム動画像(スルー画像)がモニタ画面に表示される。
【0026】
図3を参照して、撮像面の中央には測光エリアEAが割り当てられる。輝度評価回路24は、信号処理回路22から出力されたYデータのうち測光エリアEAに属するYデータを、垂直同期信号Vsyncが発生する毎に積分する。積分値つまり輝度評価値は、垂直同期信号Vsyncの発生周期で輝度評価回路24から出力される。CPU30は、輝度評価回路24から出力された輝度評価値に基づいて適正EV値を算出するべく、簡易AE処理を繰り返し実行する。算出された適正EV値を定義する絞り量および露光時間は、ドライバ18bおよび18cにそれぞれ設定される。この結果、LCDモニタ38に表示されるスルー画像の明るさが適度に調整される。
【0027】
キー入力装置28上のシャッタボタン28sが半押しされると、輝度評価回路24から出力された輝度評価値に基づいて最適EV値を算出するべく、厳格AE処理が実行される。算出された最適EV値を定義する絞り量および露光時間は、上述と同様、ドライバ18bおよび18cにそれぞれ設定される。
【0028】
厳格AE処理が完了すると、フォーカス評価回路26の出力に基づくAF処理が実行される。フォーカス評価回路26は、信号処理回路22から出力されたYデータのうちフォーカスエリアFA(図3参照)に属するYデータの高周波成分を、垂直同期信号Vsyncが発生する毎に積分する。積分値つまりAF評価値は、垂直同期信号Vsyncの発生周期でフォーカス評価回路26から出力される。
【0029】
CPU30は、フォーカス評価回路26からAF評価値を取り込み、いわゆる山登り処理によって合焦点を探索する。フォーカスレンズ12は、垂直同期信号Vsyncが発生する毎に光軸方向に移動し、その後に合焦点に配置される。
【0030】
シャッタボタン28sが全押しされると、CPU30は静止画取り込み処理を実行するべく、対応する命令をメモリ制御回路32に与える。メモリ制御回路32は、シャッタボタン28sが全押しされた時点の被写界を表す1フレームの画像データを動画像エリア34mから静止画像エリア34sに複製する。
【0031】
撮像モードは、シャッタボタン28sの操作に先立つモードキー28mの操作によって、通常モードおよびパノラマモードのいずれか一方に設定される。設定された撮像モードが通常モードであれば、CPU30は、記録処理を実行するべく、対応する命令をメモリ制御回路32に与える。メモリ制御回路32は、静止画取り込み処理によって複製された1フレームの画像データを静止画像エリア34sから読み出し、読み出された画像データをファイル形式で記録媒体40に記録する。記録処理が完了すると、上述のスルー画像処理および簡易AE処理が再開される。
【0032】
モードキー28mの操作によって設定された撮像モードがパノラマモードであれば、パノラマ画像データを作成するべく、次の処理がCPU30によって実行される。
【0033】
まず、変数KおよびHw_Kが“0”および“Hth1”に設定される。ここで、変数Kは、静止画像エリア34sに複製された画像データに割り当てられるフレーム番号に相当する。また、変数Hw_Kは第Kフレームの画像データから切り出す短冊画像データST_Kの幅を定義する係数に相当する。さらに、“Hth1”は、次回以降の静止画取り込み処理の実行タイミングを制御するために参照される閾値の1つである。
【0034】
変数KおよびHw_Kが決定されると、静止画像エリア34sに複製された第Kフレームの画像データから短冊画像データST_Kが切り出される。K=0については、切り出し位置は左端に設定され、切り出し幅は“Hw_K+A+{W−(Hw_K+A)}/2”に設定される。この結果、短冊画像データST_0は、図5に示す要領で切り出される。
【0035】
短冊画像データST_Kの切り出しが完了すると、積算動きベクトルVttlおよびHttlが“0”に設定され、変数Kがインクリメントされる。ここで、積算動きベクトルVttlは垂直方向における撮像面の動きベクトルの積算値を示し、積算動きベクトルHttlは水平方向における撮像面の動きベクトルの積算値を示す。
【0036】
図2に示す動き検出回路44は、信号処理回路22から出力されたYデータに基づいて撮像面の動きベクトルを繰り返し検出する。検出された動きベクトルは、垂直同期信号Vsyncが発生する毎にCPU30によって取り込まれる。
【0037】
取り込まれた動きベクトルの水平成分は水平動きベクトルHvctとして抽出され、抽出された水平動きベクトルHvctは積算動きベクトルHttlに積算される。また、取り込まれた動きベクトルの垂直成分は垂直動きベクトルVvctとして抽出され、抽出された垂直動きベクトルVvctは積算動きベクトルVttlに積算される。
【0038】
積算動きベクトルVttlの絶対値は閾値Vth1およびVth2の各々と比較され、積算動きベクトルHttlは閾値Hth1およびHth2の各々と比較される。ここで、閾値Hth2は閾値Hth1よりも大きく、閾値Vth2は閾値Vth1よりも大きい。具体的には、閾値Hth1は水平画角の10%に相当し、閾値Hth2は水平画角の30%に相当する。また、閾値Vth1は垂直画角の5%に相当し、閾値Th2は垂直画角の200%に相当する。
【0039】
積算動きベクトルHttlが既定範囲(=閾値Hth1から閾値Hth2までの範囲)に属する期間において積算動きベクトルVttlの絶対値が閾値Vth1を下回ると、その時点で静止画取り込み処理が実行される(図6(A)参照)。
【0040】
また、積算動きベクトルHttlが既定範囲に属する期間にわたって積算動きベクトルVttlの絶対値が閾値Vth1以上でかつ閾値Vth2未満の値を維持すれば、積算動きベクトルHttlが閾値Hth2に達した時点で静止画取り込み処理が実行される(図6(B)参照)。
【0041】
静止画取り込み処理が実行された結果、第Kフレームの画像データが動画像エリア34mから静止画像エリア34sに複製される。続いて、積算動きベクトルHttlが変数Hw_Kに設定され、変数Hw_Kおよび積算動きベクトルVttlが図7に示すレジスタ30rのK番目のカラムに設定される。
【0042】
変数Kが“4”未満であれば、静止画像エリア34sに複製された第Kフレームの画像データから短冊画像データST_Kが切り出される。K=1〜3については、切り出し位置は中央に設定され、切り出し幅は“Hw_K+A”に設定される。この結果、短冊画像データST_2およびST_3は図8に示す要領で切り出される。図8から分かるように、切り出された短冊画像データST_2およびST_3の間には、“(Hw_2−Hw_3)/2+A”に相当する幅のマージンが確保される。
【0043】
短冊画像データST_Kの切り出しが完了すると、積算動きベクトルHttlが“0”に設定され、変数Kがインクリメントされる。次フレームの静止画取り込み処理の実行タイミングは、その後に検出された水平動きベクトルHvctの積算値に基づいて制御される。
【0044】
図9を参照して、フレームF_0に対応してシャッタボタン28sを全押しし、その後に撮像面を垂直方向に微動させながら水平方向に移動させた場合、第1フレームの静止画取り込み処理はフレームF_1に対応して実行され、第2フレームの静止画取り込み処理はフレームF_2に対応して実行され、第3フレームの静止画取り込み処理はフレームF_3に対応して実行され、そして第4フレームの静止画取り込み処理はフレームF_4に対応して実行される。
【0045】
図9によれば、第1フレームの静止画取り込み処理は、積算動きベクトルHttlが既定範囲の上限(=Hth2)に達した時点で実行される。このとき、積算動きベクトルVttlは閾値Vth1の絶対値以上の値を示す。第2フレームの静止画取り込み処理は、積算動きベクトルHttlが既定範囲に属する期間において積算動きベクトルVttlが閾値Vth1を下回った時点で実行される。
【0046】
第3フレームの静止画取り込み処理は、積算動きベクトルHttlが既定範囲の上限(=Hth2)に達した時点で実行される。このとき、積算動きベクトルVttlは閾値Vth1の絶対値以上の値を示す。第4フレームの静止画取り込み処理は、積算動きベクトルHttlが既定範囲に属する期間において積算動きベクトルVttlが閾値Vth1を下回った時点で実行される。
【0047】
変数Kが“4”に達したときも、静止画像エリア34sに複製された第Kフレームの画像データから短冊画像データST_Kが切り出される。ただし、K=4については、切り出し位置は右端に設定され、切り出し幅は“Hw_K+A+{W−(Hw_K+A)}/2”に設定される。この結果、短冊画像データST_4は図10に示す要領で切り出される。
【0048】
短冊画像データST_4の切り出しが完了すると、パノラマ画像作成処理が実行される。切り出された短冊画像データST_0〜ST_4は、レジスタ30rに設定された変数Hw_1〜Hw_4と4つの積算動きベクトルVttlとを参照して、図11に示す要領で合成される。合成された画像データには図12に示す要領で切り出し枠CF1が定義され、一部の画像データが切り出し枠CF1に沿って切り出される。この結果、図13に示すパノラマ画像データが得られる。こうして作成されたパノラマ画像データはその後、ファイル形式で記録媒体40に記録される。
【0049】
なお、積算動きベクトルVttlが閾値Vth2に達すると、変数Kが“1”以上である場合つまり少なくとも2フレームの画像データが静止画像エリア34sに複製されている場合に、上述と同様のパノラマ画像作成処理が実行される。これによって生成されたパノラマ画像データもまた、ファイル形式で記録媒体40に記録される。なお、変数Kが“0”を示す状態で積算動きベクトルVttlが閾値Vth2に達すると、エラー処理が実行される。
【0050】
CPU30は、図14〜図18に示す撮像タスクに従う処理を実行する。この撮像タスクに対応する制御プログラムは、フラッシュメモリ42に記憶される。
【0051】
図14を参照して、ステップS1ではスルー画像処理を実行する。この結果、被写界を表す画像データが動画像エリア34mに繰り返し書き込まれ、これに基づくスルー画像がLCDモニタ38に表示される。ステップS3ではシャッタボタン28sが半押しされたか否かを判別し、判別結果がNOである限りステップS5の簡易AE処理を繰り返す。この結果、スルー画像の明るさが適度に調整される。シャッタボタン28sが半押しされると、ステップS7で厳格AE処理を実行し、ステップS9でAF処理を実行する。ステップS7の処理によってスルー画像の明るさが最適値に調整され、ステップS9の処理によってフォーカスレンズ12が合焦点に配置される。
【0052】
ステップS11ではシャッタボタン28sが全押しされたか否かを判別し、ステップS13ではシャッタボタン28sの操作が解除されたか否かを判別する。ステップS13でYESであればステップS3に戻り、ステップS11でYESであればステップS15で静止画取り込み処理を実行する。ステップS15の処理の結果、シャッタボタン28sが全押しされた時点の1フレームの画像データが動画像エリア34mから静止画像エリア34sに複製される。
【0053】
ステップS17では、現時点の撮像モードが通常モードおよびパノラマモードのいずれであるかを判別する。現時点の撮像モードが通常モードであれば、ステップS17からステップS19に進み、記録処理を実行する。この結果、静止画像エリア34sに複製された1フレームの画像データがファイル形式で記録媒体40に記録される。記録処理が完了すると、ステップS1に戻る。
【0054】
現時点の撮像モードがパノラマモードであれば、ステップS17でYESと判断し、ステップS21で変数Kを“0”に設定するとともに、ステップS23で変数Hw_Kを“Hth1”に設定する。ステップS25では、静止画像エリア34sに複製された第Kフレームの画像データから短冊画像データST_Kを切り出す。このとき、切り出し位置は左端に設定され、切り出し幅は“Hw_K+A+{W−(Hw_K+A)}/2”に設定される。
【0055】
ステップS27では積算動きベクトルVttlを“0”に設定し、ステップS29では積算動きベクトルHttlを“0”に設定する。ステップS31では変数Kをインクリメントし、ステップS33では垂直同期信号Vsyncが発生したか否かを判別する。判別結果がNOからYESに更新されると、動き検出回路44によって生成された動きベクトルをステップS35で取り込む。ステップS37では、取り込まれた動きベクトルの水平成分を水平動きベクトルHvctとして抽出し、抽出された水平動きベクトルHvctを積算動きベクトルHttlに積算する。ステップS39では、取り込まれた動きベクトルの垂直成分を垂直動きベクトルVvctとして抽出し、抽出された垂直動きベクトルVvctを積算動きベクトルVttlに積算する。
【0056】
ステップS41では積算動きベクトルVttlの絶対値が閾値Vth2未満であるか否かを判別し、ステップS43では積算動きベクトルHttlが閾値Hth1以上であるか否かを判別する。また、ステップS45では積算動きベクトルHttlが閾値Hth2以上であるか否かを判別し、ステップS47では積算動きベクトルVttlの絶対値が閾値Vth1未満であるか否かを判別する。
【0057】
ステップS41,S43およびS45の判別結果がいずれもYESであれば、ステップS49に進む。また、ステップS45の判別結果がNOであっても、ステップS41,S43およびS47の判別結果がYESであれば、ステップS49に進む。一方、ステップS41の判別結果がYESでかつステップS43の判別結果がNOであるか、或いはステップS41およびS43の判別結果がYESでかつステップS45およびS47の判別結果がNOであれば、ステップS33に戻る。他方、ステップS41の判別結果がNOであれば、ステップS69に進む。
【0058】
ステップS49では、上述したステップS15と同様の静止画取り込み処理を実行する。これによって、第Kフレームの画像データが静止画像エリア34sに複製される。ステップS51では積算動きベクトルHttlを変数Hw_Kに設定し、ステップS53では変数Hw_Kおよび積算動きベクトルVttlをレジスタ30rのK番目のカラムに設定する。ステップS55では変数Kが“4”に達したか否かを判別し、判別結果がNOであればステップS57に進む一方、判別結果がYESであればステップS63に進む。
【0059】
ステップS57では、静止画像エリア34sに複製された第Kフレームの画像データから短冊画像データST_Kを切り出す。このとき、切り出し位置は中央に設定され、切り出し幅は“Hw_K+A”に設定される。ステップS57の処理が完了すると、ステップS59〜S61でステップS29〜S31と同様の処理を実行し、その後にステップS33に戻る。
【0060】
ステップS63では、静止画像エリア34sに複製された第Kフレームの画像データから短冊画像データST_Kを切り出す。このとき、切り出し位置は右端に設定され、切り出し幅は“Hw_K+A+{W−(Hw_K+A)}/2”に設定される。ステップS63の処理が完了すると、ステップS65でパノラマ画像作成処理を実行する。ステップS67では、ステップS65で作成されたパノラマ画像データに記録処理を施す。パノラマ画像データは、ファイル形式で記録媒体40に記録される。記録処理が完了すると、ステップS3に戻る。
【0061】
ステップS69では、変数Kが“1”以上であるか否かを判別する。判別結果がYESであれば、ステップS71〜S73で上述したステップS65〜S67と同様の処理を実行し、その後にステップS3に戻る。判別結果がNOであれば、ステップS75でエラー処理を実行し、その後にステップS3に戻る。
【0062】
以上の説明から分かるように、撮像面の動きベクトルは動き検出回路44によって検出される。CPU30は、検出された動きベクトルの水平成分に相当する水平動きベクトルHvctを繰り返し積算して、積算動きベクトルHttlを算出する(S37)。CPU30はまた、垂直方向における撮像面の動きが取り込み条件(=積算動きベクトルVttlの絶対値が閾値Vth1を下回るという条件)を満足するか否かを積算動きベクトルHttlが既定範囲(=閾値Hth1から閾値Hth2までの範囲)に属する期間に繰り返し判別し(S43~S47)、これと並列して積算動きベクトルHttlが既定範囲の上限に達したか否かを繰り返し判別する(S45)。いずれか一方の判別結果がNOからYESに更新されると、CPU30は、画像合成のために静止画取り込み処理を実行し(S49)、その後に積算動きベクトルHttlの算出処理を再起動する(S59)。
【0063】
積算動きベクトルHttlが既定範囲に属する期間において垂直方向における撮像面の動きが取り込み条件を満足したときに静止画取り込み処理を実行することで、垂直方向における静止画像のぶれを抑制することができる。また、積算動きベクトルHttlが既定範囲の上限に達したときに静止画取り込み処理を実行することで、水平方向における合成画像の連続性を確保することができる。こうして、合成画像の作成に関する操作性が向上する。
【0064】
なお、この実施例では、撮像面のパン動作と並列して取り込まれた複数の静止画像を水平方向において結合するようにしているが、撮像面のチルト動作と並列して取り込まれた複数の静止画像を垂直方向において結合するようにしてもよい。
【0065】
また、この実施例では画像合成装置としてディジタルカメラを想定しているが、この発明は撮像機能を有する様々な電子機器(たとえばカメラ付携帯電話機)に適用することができる。
【0066】
さらに、この実施例の撮像装置としては、CCD型のイメージセンサやCMOS型のイメージセンサを適用することができる。
【符号の説明】
【0067】
10 …ディジタルカメラ
16 …撮像装置
30 …CPU
42 …フラッシュメモリ
44 …動き検出回路
【特許請求の範囲】
【請求項1】
水平方向および垂直方向の一方における撮像面の動き量を繰り返し積算する第1積算手段、
前記水平方向および前記垂直方向の他方における前記撮像面の動きが取り込み条件を満足するか否かを前記第1積算手段の積算値が既定範囲に属する期間に繰り返し判別する第1判別手段、
前記第1積算手段の積算値が前記既定範囲の上限に達したか否かを前記第1判別手段の判別処理と並列して繰り返し判別する第2判別手段、
前記第1判別手段の判別結果および/または前記第2判別手段の判別結果の否定的な結果から肯定的な結果への更新に対応して前記撮像面で生成された被写界像を画像合成のために取り込む取り込み手段、および
前記取り込み手段の取り込み処理に関連して前記第1積算手段を再起動する再起動手段を備える、画像合成装置。
【請求項2】
前記第1判別手段によって注目される方向における前記撮像面の動き量を積算する第2積算手段をさらに備え、
前記取り込み条件は前記第2積算手段の積算値が基準を下回るという条件を含む、請求項1記載の画像合成装置。
【請求項3】
前記取り込み手段によって取り込まれた被写界像から指定エリアに属する一部の被写界像を切り出す切り出し手段、および
前記第1積算手段によって注目される方向における前記指定エリアの大きさを前記取り込み手段の起動時点における前記第1積算手段の積算値を参照して調整する調整手段をさらに備える、請求項1または2記載の画像合成装置。
【請求項4】
前記調整手段は前記第1積算手段の積算値の増大に応じて前記指定エリアの大きさを増大させる、請求項3記載の画像合成装置。
【請求項5】
前記取り込み手段の取り込み処理に関連して前記撮像面の水平位置および垂直位置を示す位置情報を作成する作成手段、および
前記取り込み手段によって取り込まれた複数の被写界像を前記作成手段によって作成された位置情報を参照して合成する合成手段をさらに備える、請求項1ないし4のいずれかに記載の画像合成装置。
【請求項6】
前記取り込み手段によって取り込まれた被写界像の数が指定値に達したとき前記合成手段を起動する第1起動手段、および
前記第1判別手段によって注目される方向における前記撮像面の動きがエラー条件に合致するとき前記取り込み手段によって取り込まれた被写界像の数を参照して前記合成手段を起動する第2起動手段をさらに備える、請求項5記載の画像合成装置。
【請求項7】
画像合成装置のプロセッサに、
水平方向および垂直方向の一方における撮像面の動き量を繰り返し積算する積算ステップ、
前記水平方向および前記垂直方向の他方における前記撮像面の動きが取り込み条件を満足するか否かを前記積算手段の積算値が既定範囲に属する期間に繰り返し判別する第1判別ステップ、
前記積算手段の積算値が前記既定範囲の上限に達したか否かを前記第1判別手段の判別処理と並列して繰り返し判別する第2判別ステップ、
前記第1判別ステップの判別結果および/または前記第2判別ステップの判別結果の否定的な結果から肯定的な結果への更新に対応して前記撮像面で生成された被写界像を画像合成のために取り込む取り込みステップ、および
前記取り込みステップの取り込み処理に関連して前記積算ステップを再起動する再起動ステップを実行させるための、画像合成プログラム。
【請求項8】
画像合成装置によって実行される画像合成方法であって、
水平方向および垂直方向の一方における撮像面の動き量を繰り返し積算する積算ステップ、
前記水平方向および前記垂直方向の他方における前記撮像面の動きが取り込み条件を満足するか否かを前記積算手段の積算値が既定範囲に属する期間に繰り返し判別する第1判別ステップ、
前記積算手段の積算値が前記既定範囲の上限に達したか否かを前記第1判別手段の判別処理と並列して繰り返し判別する第2判別ステップ、
前記第1判別ステップの判別結果および/または前記第2判別ステップの判別結果の否定的な結果から肯定的な結果への更新に対応して前記撮像面で生成された被写界像を画像合成のために取り込む取り込みステップ、および
前記取り込みステップの取り込み処理に関連して前記積算ステップを再起動する再起動ステップを備える、画像合成方法。
【請求項1】
水平方向および垂直方向の一方における撮像面の動き量を繰り返し積算する第1積算手段、
前記水平方向および前記垂直方向の他方における前記撮像面の動きが取り込み条件を満足するか否かを前記第1積算手段の積算値が既定範囲に属する期間に繰り返し判別する第1判別手段、
前記第1積算手段の積算値が前記既定範囲の上限に達したか否かを前記第1判別手段の判別処理と並列して繰り返し判別する第2判別手段、
前記第1判別手段の判別結果および/または前記第2判別手段の判別結果の否定的な結果から肯定的な結果への更新に対応して前記撮像面で生成された被写界像を画像合成のために取り込む取り込み手段、および
前記取り込み手段の取り込み処理に関連して前記第1積算手段を再起動する再起動手段を備える、画像合成装置。
【請求項2】
前記第1判別手段によって注目される方向における前記撮像面の動き量を積算する第2積算手段をさらに備え、
前記取り込み条件は前記第2積算手段の積算値が基準を下回るという条件を含む、請求項1記載の画像合成装置。
【請求項3】
前記取り込み手段によって取り込まれた被写界像から指定エリアに属する一部の被写界像を切り出す切り出し手段、および
前記第1積算手段によって注目される方向における前記指定エリアの大きさを前記取り込み手段の起動時点における前記第1積算手段の積算値を参照して調整する調整手段をさらに備える、請求項1または2記載の画像合成装置。
【請求項4】
前記調整手段は前記第1積算手段の積算値の増大に応じて前記指定エリアの大きさを増大させる、請求項3記載の画像合成装置。
【請求項5】
前記取り込み手段の取り込み処理に関連して前記撮像面の水平位置および垂直位置を示す位置情報を作成する作成手段、および
前記取り込み手段によって取り込まれた複数の被写界像を前記作成手段によって作成された位置情報を参照して合成する合成手段をさらに備える、請求項1ないし4のいずれかに記載の画像合成装置。
【請求項6】
前記取り込み手段によって取り込まれた被写界像の数が指定値に達したとき前記合成手段を起動する第1起動手段、および
前記第1判別手段によって注目される方向における前記撮像面の動きがエラー条件に合致するとき前記取り込み手段によって取り込まれた被写界像の数を参照して前記合成手段を起動する第2起動手段をさらに備える、請求項5記載の画像合成装置。
【請求項7】
画像合成装置のプロセッサに、
水平方向および垂直方向の一方における撮像面の動き量を繰り返し積算する積算ステップ、
前記水平方向および前記垂直方向の他方における前記撮像面の動きが取り込み条件を満足するか否かを前記積算手段の積算値が既定範囲に属する期間に繰り返し判別する第1判別ステップ、
前記積算手段の積算値が前記既定範囲の上限に達したか否かを前記第1判別手段の判別処理と並列して繰り返し判別する第2判別ステップ、
前記第1判別ステップの判別結果および/または前記第2判別ステップの判別結果の否定的な結果から肯定的な結果への更新に対応して前記撮像面で生成された被写界像を画像合成のために取り込む取り込みステップ、および
前記取り込みステップの取り込み処理に関連して前記積算ステップを再起動する再起動ステップを実行させるための、画像合成プログラム。
【請求項8】
画像合成装置によって実行される画像合成方法であって、
水平方向および垂直方向の一方における撮像面の動き量を繰り返し積算する積算ステップ、
前記水平方向および前記垂直方向の他方における前記撮像面の動きが取り込み条件を満足するか否かを前記積算手段の積算値が既定範囲に属する期間に繰り返し判別する第1判別ステップ、
前記積算手段の積算値が前記既定範囲の上限に達したか否かを前記第1判別手段の判別処理と並列して繰り返し判別する第2判別ステップ、
前記第1判別ステップの判別結果および/または前記第2判別ステップの判別結果の否定的な結果から肯定的な結果への更新に対応して前記撮像面で生成された被写界像を画像合成のために取り込む取り込みステップ、および
前記取り込みステップの取り込み処理に関連して前記積算ステップを再起動する再起動ステップを備える、画像合成方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2011−182151(P2011−182151A)
【公開日】平成23年9月15日(2011.9.15)
【国際特許分類】
【出願番号】特願2010−43762(P2010−43762)
【出願日】平成22年3月1日(2010.3.1)
【出願人】(000001889)三洋電機株式会社 (18,308)
【Fターム(参考)】
【公開日】平成23年9月15日(2011.9.15)
【国際特許分類】
【出願日】平成22年3月1日(2010.3.1)
【出願人】(000001889)三洋電機株式会社 (18,308)
【Fターム(参考)】
[ Back to top ]