JP7106399B2 - 画像処理装置、画像処理方法、及びプログラム - Google Patents

画像処理装置、画像処理方法、及びプログラム Download PDF

Info

Publication number
JP7106399B2
JP7106399B2 JP2018165718A JP2018165718A JP7106399B2 JP 7106399 B2 JP7106399 B2 JP 7106399B2 JP 2018165718 A JP2018165718 A JP 2018165718A JP 2018165718 A JP2018165718 A JP 2018165718A JP 7106399 B2 JP7106399 B2 JP 7106399B2
Authority
JP
Japan
Prior art keywords
image
radius
virtual cylinder
focal length
image processing
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.)
Active
Application number
JP2018165718A
Other languages
English (en)
Other versions
JP2020039062A (ja
Inventor
亨 石橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2018165718A priority Critical patent/JP7106399B2/ja
Publication of JP2020039062A publication Critical patent/JP2020039062A/ja
Application granted granted Critical
Publication of JP7106399B2 publication Critical patent/JP7106399B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Studio Devices (AREA)
  • Stereoscopic And Panoramic Photography (AREA)

Description

本発明は、撮影された複数の画像を合成する画像処理技術に関する。
従来、撮像装置の撮影方向を順次変更しつつ隣接する撮影方向で互いに共通領域が写るようにして複数の画像を撮像し、隣接する画像同士の共通領域を順次重ね合わせて合成することで、広い撮影範囲の画像を生成する技術(特許文献1参照)が知られている。
一方、複数の画像を合成して広い撮影範囲の画像を生成する場合、撮影方式に応じて適切な合成処理方式を設定することが重要であり、特に、特許文献2には、撮影焦点距離を半径とする仮想円筒面上に円筒座標変換を行う技術が開示されている。
特開2005-328497号公報 特開平11-331696号公報
しかしながら円筒座標変換では、焦点距離が長いレンズよりも焦点距離が短い広角レンズほど、画像中心からの変換量が大きくなる。このため、撮影レンズとして広角レンズを用いた場合、順次撮影された複数の画像のうち、特に1枚目と最後に撮影した画像で使用できる部分が少なくなり、最終的に生成される合成画像の有効高さが狭くなるという問題がある。
そこで、本発明は、撮影された複数の画像を円筒座標変換して合成する場合に、撮影レンズの焦点距離に応じた画角を維持した合成画像を生成可能にすることを目的とする。
本発明の画像処理装置は、撮像装置の撮影方向を順次変更しつつ隣接する撮影方向で共通領域を含むように撮影された複数の画像を取得する取得手段と、仮想円筒の半径を決定する決定手段と、前記複数の各画像を、前記仮想円筒に投影された画像に円筒座標変換する変換手段と、隣接する撮影方向間の移動量を検出する検出手段と、前記検出された移動量に基づいて、前記円筒座標変換された各画像の位置合わせを行う位置合わせ手段と、前記位置合わせが行われた各画像の前記共通領域を重ね合わせて各画像を順次つなぐように合成する合成手段と、を有し、前記決定手段は、前記仮想円筒の半径を前記撮像装置が有する撮影レンズの焦点距離よりも大きい半径に決定することを特徴とする。
本発明によれば、撮影された複数の画像を円筒座標変換して合成する場合に、撮影レンズの焦点距離に応じた画角を維持した合成画像を生成可能となる。
実施形態の撮像装置の一構成例を示すブロック図である。 パノラマ撮影の概念の説明図である。 焦点距離と有効高さとの関係を示した図である。 焦点距離による円筒座標変換結果と合成結果の違いの説明図である。 撮影時の撮像装置の基本動作フローチャートである。 第1の実施形態に係るパノラマ撮影の処理フローチャートである。 パノラマ撮影時のデータフローダイアグラムである。 第2の実施形態に係るパノラマ撮影の処理フローチャートである。
以下、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
<第1の実施形態>
図1は、第1の実施形態に係る画像処理装置の一適用例としての撮像装置の概略構成を示すブロック図である。本実施形態の撮像装置は、様々な撮影機能を備えており、その一つとしてパノラマ撮影機能をも備えた、例えばデジタルカメラである。
図1に示した撮像装置の詳細な構成について説明する前に、以下の図2(a)および図2(b)から図4までを用いて、パノラマ撮影について説明する。
パノラマ撮影では、撮像装置の撮影方向を所望の方向(水平方向や垂直方向など)に順次変更しながら、全景のそれぞれ一部を構成する複数の画像を順番に連続的に撮影(いわゆる流し撮り連写のように撮影)することが行われる。つまりパノラマ撮影の際には、レリーズボタンを押した状態で撮像装置の撮影方向を所望の方向に移動させるようになされ、撮像装置では、レリーズボタンが押された状態が続いている間、連写撮影のように所定の時間毎に自動的な撮影を行う。またパノラマ撮影の際には、撮影方向を順次変更する所望の方向において隣接した撮影画角(隣接した撮影方向)内で、互いに一部の領域(共通領域とする。)が重複して写るように各画像が撮影される。なおパノラマ撮影において撮影方向を順次変更する際の所望の方向は、一般的には地面等と平行な水平方向となされるが、垂直方向(重力方向)等の他の方向になされる場合もある。本実施形態の説明では、撮影方向を順次変更する所望の方向が、一般的な水平方向となされた場合のパノラマ撮影を一例として挙げている。また撮像装置は、パノラマ撮影により取得した複数の画像に対し、後述するように、それぞれ歪曲等の補正処理と円筒座標変換処理を行い、さらに円筒座標変換後の画像の共通領域を重ね合わせるような合成処理を行ってパノラマ画像を生成する。本実施形態の撮像装置では、このようなパノラマ撮影機能によって、撮影レンズの画角よりも広い全景の撮影範囲のパノラマ画像を生成可能となされている。
図2(a)は、パノラマ撮影時において、撮像装置201の撮影方向を所望の方向に順次変更している様子を概略的に示した図である。図2(a)に示すように、パノラマ撮影時には、例えばユーザ200が回転の中心となって、撮像装置201の撮影方向を矢印210に示す所望の方向に順次変更する。なお、撮影方向の変更は、例えば雲台に撮像装置201を設置し、その雲台を水平方向等に回転駆動することにより行われてもよい。以下の説明では、ユーザ(又は雲台)を回転の中心として撮像装置の撮影方向を順次変更することを「スイング」と呼ぶことにする。そして、撮像装置201は、スイングにより所望の方向に変更された撮影方向毎に、それぞれ隣接する撮影画角内で互いに一部の領域(共通領域)が重複して写るようにして複数の画像を撮影する。これにより、撮像装置201により順次取得された各画像は、スイングの方向において隣接する画像同士でそれぞれ共通領域を有する画像となる。その後、撮像装置201は、それら各画像に対して歪曲補正と円筒座標変換処理を行い、円筒座標変換後の隣接する画像同士の共通領域を重ね合わせるようにして各画像を合成することによりパノラマ画像を生成する。言い換えると、パノラマ画像の合成処理は、スイングの方向において隣接する各画像から、スイング時の回転角度に応じてそれぞれ中心付近の部分画像を切り出し、それら切り出した部分画像を繋ぐような合成処理となっている。
図2(b)は、パノラマ撮影の対象となされた全景220と、撮像装置201をスイングさせて撮影された2枚の隣接した画像221,222と、それら2枚の画像221,222を共通領域で重ね合わせて合成した合成結果画像223の一例を示している。なお図2(b)の例では、パノラマ撮影の際の1枚目の画像221と、その画像221の次に撮影された2枚目の画像222のみを示している。画像221と画像222にはそれぞれ共通領域が含まれており、パノラマ画像の合成時には、それらの共通領域を重ね合わせて繋ぎ合わせるような合成が行われることにより、合成結果画像223が生成される。図2(b)の全景220のパノラマ画像を生成する場合には、前述同様にして全景220をカバーできる複数の各画像が撮影され、隣接する各画像同士の共通領域を順次重ね合わせて繋ぐような合成処理が行われる。
またパノラマ画像の生成の際には、各画像の合成処理に先立ち、各画像に対して、撮像装置の撮影レンズの歪曲等を補正する処理と、撮影レンズの焦点距離に応じた半径の仮想円筒上にマッピングするような円筒座標変換処理とが行われる。さらに円筒座標変換後の各画像について、スイングの方向において隣接する各画像の共通領域から特徴点を抽出し、その特徴点がどのくらい動いたかを表す移動ベクトルの検出が行われる。移動ベクトルは、水平成分(X成分、横方向成分)と垂直成分(Y成分、縦方向成分)とを含み、パノラマ撮影で取得された隣接画像同士の位置を一致させるための位置合わせパラメータとして検出される。そして、移動ベクトルからは例えばアフィン変換の係数が算出され、パノラマ画像の生成時には、そのアフィン変換係数を基に、特徴点が一致するように隣接画像同士の共通領域を重ね合わせるような合成処理が行われる。
以下、円筒座標変換について詳細に説明する。
円筒座標変換では、円筒変換パラメータの一つとして仮想円筒の半径が用いられる。円筒座標変換における仮想円筒の半径は、撮像装置が有する撮影レンズの焦点距離に対応した半径にすることが好ましい。このため、撮影レンズの焦点距離が短くなるほど、つまり広角レンズであるほど、仮想円筒の半径は小さくなる。
一般に、撮像された画像に対して撮影レンズの歪曲を補正する処理を行った後の着目点の座標(X,Y)は、円筒座標変換を行うことにより、仮想円筒上の座標(X・cosθ,Y・cosθ)へと投影される。つまり、円筒座標変換によって、撮像された画像は、仮想円筒上に投影した状態の画像に変換される。ここで、撮像装置が有する撮像素子の有効撮像エリア幅をw[mm]、撮影レンズの焦点距離をf[mm]とすると、画像中心と画像右端と角度θ[rad]との関係は、以下の式(1)で表される。
θ=arctan(w/2/f) 式(1)
また撮像素子の1画素のサイズ(画素ピッチ)をp[μm]、高さ方向の画素数をh[pix(ピクセル)]とすると、画像の有効高さH[pix]は、式(2)のようになる。
H=(h/2)・cosθ 式(2)
すなわち例えば、焦点距離fが小さくなると角度θが大きくなり、したがって有効高さHは小さくなる。
具体例として、撮像装置の撮像素子のサイズが幅22.32mmで高さ14.88mmのいわゆるAPS-Cサイズであり、画素ピッチが3.72μm、画素数が6000×4000ピクセルであるとする。この例において、撮影レンズの焦点距離fが例えば11mmである場合、式(1)および式(2)から、有効高さHは2809ピクセルとなり、撮像素子の高さ(4000ピクセル)の約70%になる。また例えば、撮影レンズの焦点距離fが18mmである場合、有効高さHは3400ピクセルとなり、撮像素子の高さ(4000ピクセル)の約85%になる。図3には、焦点距離fを横軸とし、撮像素子の高さに対する有効高さの割合[%]を縦軸として、撮影レンズの焦点距離fと有効高さの割合との対応点をプロットしたグラフを示している。図3に示すように、撮影レンズの焦点距離fが短くなるほど、撮像素子の高さに対する有効高さの割合が減る。つまりこれは、撮影レンズの焦点距離が短い広角レンズになるほど、円筒座標変換における座標変換量が大きくなることを表している。そしてこのことは、撮影レンズが広角レンズであるほど、円筒座標変換後の画像として使える領域が小さくなってしまうことを意味している。一方で、パノラマ撮影を行う際、ユーザは、広い範囲を撮影しようとして画角が広い広角レンズ、つまり撮影レンズの焦点距離を短くして撮影を行おうとするが、この場合、逆に画像として使用できる有効高さが減ってしまうことになる。
図4は、撮影レンズの焦点距離によって有効高さが変化し、パノラマ画像の高さ方向の大きさ(有効高さ)が変わる一例を示した図である。図4において、円筒座標変換前の元画像400に対し、例えば撮影レンズの焦点距離fが18mmである場合には、仮想円筒の半径を18mmとして円筒座標変換が行われる。画像401は、仮想円筒の半径を18mmとして元画像400を円筒座標変換した後の画像を表している。また例えば、撮影レンズの焦点距離が11mmである場合には、元画像400に対して、仮想円筒の半径を11mmとして円筒座標変換が行われる。画像402は、仮想円筒の半径を11mmとして元画像400を円筒座標変換した後の画像を表している。これら二つの画像を比較して分かるように、仮想円筒の半径が18mmの場合の円筒座標変換後の画像401よりも、仮想円筒の半径が短い11mmの場合の円筒座標変換後の画像402の方が、高さ方向において大きく変形(湾曲)した画像となる。このため、画像402は、画像401よりも、高さ方向において合成時に使用できる領域が小さくなる。すなわち、仮想円筒の半径を11mmとして円筒座標変換した複数の画像402を合成したパノラマ画像405は、仮想円筒の半径を18mmとして円筒座標変換した各画像401を合成したパノラマ画像404よりも有効高さが小さい画像になってしまう。
そこで、本実施形態の撮像装置は、撮影レンズの焦点距離より仮想円筒の半径を大きくして円筒座標変換を行い、焦点距離を仮想円筒の半径とした円筒座標変換よりも、有効高さを大きくすることを可能としている。本実施形態では、少なくとも、撮像装置がスイングされてパノラマ撮影を行った際の隣接する撮像方向間の移動量と、撮影レンズの焦点距離とに基づいて、仮想円筒の半径を決定する。なお、隣接撮影方向間の移動量は、例えば角速度センサからの情報を基に算出してもよいし、撮影された各画像から算出してもよい。隣接撮影方向間の移動量を、角速度センサの情報を基に算出する場合、または、撮影された画像を基に算出する場合の詳細については後述する。
以下、パノラマ撮影の際の隣接撮影方向間の移動量と撮影レンズの焦点距離とに基づく仮想円筒の半径の算出処理について説明する。
パノラマ撮影の際には、図2(a)で説明したように、ユーザ200等を中心として回転するように撮像装置201をスイングさせて撮像方向を順次変更しつつ、連写のように連続的な画像撮影が行われる。そして、パノラマ画像は、パノラマ撮影で取得された各画像から、隣接する撮影方向間におけるスイング時の回転の角度βに応じて各画像の中心付近の部分画像を切り出して順次合成することにより生成される。ここで、撮像素子の1画素のサイズが例えばp[μm]であり、前述した移動ベクトルのX方向の成分(大きさ)がx[pix]、仮想円筒の半径がR[mm]であるとすると、角度βは、式(3)により表される。
β=arctan(x・p/R/1000) 式(3)
したがって、パノラマ画像の合成に使用される部分画像における有効高さH[pix]は、式(4)で表される。
H=(h/2)・cos{arctan(x・p/R/1000)} 式(4)
また本実施形態では、例えば、仮想円筒の半径Rを焦点距離fと同じにした場合と、仮想円筒の半径Rを焦点距離fより大きくした場合とで、部分画像の有効高さが実質的に変わらない場合に、仮想円筒の半径Rを焦点距離fとは異なる値に変更可能とする。本実施形態では、隣接する画像の境界部分で位置ずれが無いか、もしくは気にならない程度に少ない場合に、部分画像の有効高さが実質的に変わらないとする。例えば、合成後のパノラマ画像を等倍で出力するならば、境界部分での位置ずれが例えば0.5~1ピクセル程度未満である場合に、部分画像の有効高さが実質的に変わらないとする。また例えば、パノラマ画像を縮小して出力するならば、縮小後において境界部分での位置ずれが0.5~1ピクセル程度未満である場合に、部分画像の有効高さが実質的に変わらないとする。なお、これらの数値は一例であり、適宜変更可能である。
本実施形態では、撮像素子の高さ方向の画素数をh[pix]、画素ピッチをp[μm]、仮想円筒の半径をR[mm]、焦点距離をf[mm]、移動ベクトルのX成分をx[pix]とした場合、式(5)と式(6)との差を基に判断する。すなわち式(5)の演算値と式(6)の演算値との差が、所定の閾値未満(例えば1ピクセル未満)である場合に、部分画像の有効高さが実質的に変わらないとする。
(h/2)・x・cos{arctan(x・p/R/1000)/2} 式(5)
(h/2)・x・cos{arctan(x・p/f/1000)/2} 式(6)
また前述の例では撮像素子の高さ方向の画素数をhピクセルとしたが、撮影時にはいわゆる手ぶれも発生するため、その手ぶれ分を考慮して、実際にはhピクセル全てが使用されることは少ない。すなわち、手ぶれによる移動分が撮像素子の高さ方向に対して例えば10%~30%程度になると想定した場合、実際のパノラマ画像は、撮像素子の高さ方向の画素数hに対して例えば90%~70%となるような高さにトリミングされて生成される。したがって、手ぶれ分を予め考慮して、式(5)と式(6)におけるhは、撮像素子の高さ方向の画素数の90%~70%として用いてもよい。
一例として、撮像素子の画素数が6000×4000ピクセル、1画素のサイズが3.72μm、手ぶれによる移動分が撮像素子上で20%程度、スイングによる隣接撮影方向間の移動量が画素数換算で145ピクセル相当であるとする。この場合、手ぶれ分を考慮した有効高さの画素数EP[pix]は、式(7)により表される。
EP=4000/2×0.8・cos{arctan(145・3.72/R/1000)} 式(7)
そしてこの時、仮想円筒の半径Rが例えば11mmの場合と14mmの場合とでは、それぞれの有効高さの差が0.8ピクセルとなり、前述した閾値未満(1ピクセル未満)となる。したがってこの場合、焦点距離fが11mmで撮影されていたとしても、仮想円筒の半径を14mmとした円筒座標変換を行っても問題ないことになる。
しかしながら、例えばスイングの速度が速くなり、隣接撮影方向間の移動量が画素数換算で前述した145ピクセルの2倍の290ピクセル相当になった場合、仮想円筒の半径Rが11mmの場合と14mmの場合とで有効高さの差は3.3ピクセルとなる。つまりこの時の有効高さの差(3.3ピクセル)は閾値(例えば1ピクセル)より大きくなる。この場合、パノラマ画像の合成を行うと、各画像の境界部分が段差となって見えてしまうようになる。したがって、パノラマ撮影時のスイングの速度が速く、隣接する撮影方向間での移動量が大きい場合には、仮想円筒の半径を変更しないようにするか、もしくは半径の変化量を小さくすることが必要となる。なお、パノラマ撮影を行う場合において、撮影開始前は撮像装置をスイングさせておらず、撮影開始直後から撮像装置のスイングが開始される。つまり、パノラマ撮影の開始時にはスイング速度が遅いため、前述のような有効高さの差が大きくなる問題が生ずることは略々ないと考えられる。
これに対し、パノラマ撮影の開始後、徐々にスイングの速度が速くなってくると前述した有効高さの差の問題が顕著になる。このため、本実施形態では、隣接する撮影方向間における移動量、つまりスイングの速度に応じて、円筒座標変換時の仮想円筒の半径を変えていくようにする。例えば焦点距離が11mmの撮影レンズで撮影した場合、撮影開始直後でスイング速度が遅い時の1枚目の画像の円筒座標変換時には仮想円筒の半径を15mmとし、2枚目では半径を13mm、3枚目以降では半径を11mmとするように半径を変える。こうすることで、撮影開始後にスイング速度が速くなったころには、仮想円筒の半径を撮影レンズの焦点距離と同じ値に戻せるため、スイングの速度に影響されることがなくなる。
また、パノラマ撮影を終了させる際にも前述同様に、スイングの速度に応じて仮想円筒の半径を変えるようにすることが望ましい。つまりパノラマ撮影を終了させる際には、スイング速度が遅くなっていくことになる。このため例えば、焦点距離が11mmの撮影レンズで撮影した場合、パノラマ撮影を終了させるためにスイングの速度が遅くなるにつれて、仮想円筒の半径を11mm、13mmのように順に大きくする。そして、パノラマ撮影時の最後の画像については、仮想円筒の半径を例えば15mmにするようなことを行う。
本実施形態では、前述したように、仮想円筒の半径を可変とし、1枚目に撮影した画像と最後に撮影した画像については半径を大きくして画像の有効高さを増やすことにより、パノラマ画像の有効高さが減ってしまうことを防止可能となる。パノラマ撮影において開始時と終了時以外の撮影途中の画像については、撮影レンズの焦点距離を仮想円筒の半径にする。
また、前述したような有効高さの減少が顕著になるのは、前述の図3に示したように、焦点距離(仮想円筒の半径)が概ね20mm程度以下になる場合である。そのため、焦点距離に対する閾値を予め用意しておき、その閾値よりも焦点距離が短い広角レンズでの撮影が行われる場合にのみ、本実施形態の手法を適用するようにしてもよい。また、閾値よりもさらに焦点距離が短い超広角側と広角側、もしくは閾値付近などで、仮想円筒の半径を大きくして、座標変換量を少なくするようなことも好ましい様態のひとつである。
以下、図1に示した本実施形態の撮像装置の構成について説明する。
図1において、撮影レンズ101は、フォーカスレンズやズームレンズを有し、被写体等の光学像を撮像センサ112の撮像面上に結像させる。撮影レンズ101は、撮像装置本体に着脱可能な交換レンズであってもよいし、撮像装置に固定されたレンズであってもよい。絞り103は、絞り駆動回路104により駆動され、撮影レンズ101を介した入射光量の調節を行う。絞り駆動回路104は、マイクロコンピュータ(以下、マイコンとする。)123により算出された絞り駆動量を基に、絞り103における光学的な絞り値を変化させる。AF(オートフォーカス)駆動回路102は、例えばDCモータやステッピングモータを有して構成され、マイコン123からのフォーカス制御信号を基に、撮影レンズ101のフォーカスレンズを駆動してピント合わせを行う。
主ミラー105は、撮影レンズ101から入射した光束を、ファインダ部側と撮像センサ112側とに切り替えるためのミラーである。主ミラー105は、常時はファインダ部側へと光束を反射させるように配されているが、撮像が行われる場合やライブビュー表示がなされる場合には、撮影レンズ101からの光束が撮像センサ112へと入射するように、上方に跳ね上げられる。この主ミラー105を跳ね上げる等のミラー駆動は、マイコン123による制御の下、ミラー駆動回路107により行われる。また、主ミラー105は、その中央部が光の一部を透過できるようにハーフミラーとなされている。
ペンタプリズム108はファインダ部の一部を構成しており、撮影レンズ101から入射して主ミラー105により反射した光束を不図示の接眼部に導くためのプリズムである。なお、不図示の接眼部は、それぞれ不図示のピント板、アイピースレンズなどが設けられて構成されている。
サブミラー106は、主ミラー105の中央部に設けられたハーフミラーを透過した光束を反射させて、不図示の焦点検出用のセンサや、露光量算出回路109に併設されている不図示の露光量検出用センサに導くためのミラーである。
露光量検出用のセンサは、主ミラー105の中央部のハーフミラーを透過してサブミラー106で反射されてきた入射光を光電変換して露光量算出回路109に送る。露光量算出回路109は、露光量検出用のセンサの検出出力から露光量を算出し、その算出した露光量の信号をマイコン123に出力する。マイコン123は、露光量の信号を基に、絞り駆動量、シャッタスピードや露光時間等を制御する。
焦点検出用のセンサは、主ミラー105の中央部のハーフミラーを透過してサブミラー106で反射されてきた光束を受光し、そのセンサ出力をマイコン123に送る。マイコン123は、そのセンサ出力からデフォーカス量を算出し、そのデフォーカス量を基にフォーカス演算を行ってフォーカス制御信号を生成し、そのフォーカス制御信号によりAF駆動回路102を制御する。
フォーカルプレーンシャッタ(以下、シャッタ110とする。)は、マイコン123による制御の下、シャッタ駆動回路111により駆動される。すなわち、シャッタ110の開口時間は、マイコン123により制御される。
撮像センサ112は、マイコン123により駆動制御がなされるCCDやCMOSセンサなどからなる撮像素子であり、撮影レンズ101によって結像された被写体像を電気信号に変換する。AD変換器115は、マイコン123による制御の下、撮像センサ112からのアナログ出力信号をデジタル信号に変換する。AD変換器115から出力されたデジタル信号は、画像処理回路116に送られる。
画像処理回路116は、デジタル化された画像データに対し、フィルタ処理、色変換処理、ガンマ処理などを行うと共に、JPEGなどへの圧縮処理を行い、メモリコントローラ119に出力する。その際、画像処理回路116は、処理途中の画像データを、メモリコントローラ119を介してバッファメモリ122に一時的に蓄積させることも可能である。また、画像処理回路116は、撮像センサ112により撮像された画像データや、メモリコントローラ119から入力される画像データを、表示駆動回路117を通して表示部118に出力することも可能である。画像処理回路116におけるこれらの機能の切り替えはマイコン123の指示により行われる。また、画像処理回路116は、必要に応じて、撮像センサ112による撮像がなされた際の露出情報やホワイトバランスなどの情報を、マイコン123に出力することも可能である。それらの情報を基に、マイコン123は、ホワイトバランスやゲイン調整の指示を行う。
また前述したパノラマ撮影などの連続撮影動作が行われた場合、画像処理回路116は、メモリコントローラ119を介して、撮影された未処理画像データをバッファメモリ122に一旦格納させた後に読み出して画像処理や圧縮処理を行う。これらバッファメモリ122への格納と画像処理、圧縮処理は、パノラマ撮影などの連続撮影動作が行われている間、続けられる。なお、連像撮影が可能な枚数は、バッファメモリ122の容量や、パノラマ撮影の際に撮像される画像サイズに応じた枚数となる。
画像処理回路116は、ゲートアレイなどのロジックデバイスにより実現され、輝度調整回路116a、ガンマ補正回路116b、現像回路116k、圧縮・伸長回路116lなどを有する。また、画像処理回路116は、移動量算出回路116c、位置合わせ回路116d、幾何変換回路116e、変倍回路116f、トリミング回路116g、合成回路116jなども有する。現像回路116kは、現像処理を行う。輝度調整回路116aは、デジタルゲインによって明るさを調整する。ガンマ補正回路116bは、ガンマ特性によって輝度を調整する。圧縮・伸長回路116lは、JPEGなどの一般的な画像形式への変換を行う。移動量算出回路116cは、例えばパノラマ撮影が行われた場合に、前述した隣接する撮影方向間の移動量を求める。また移動量算出回路116cは撮像装置のぶれ量についても算出する。位置合わせ回路116dは、例えばパノラマ撮影が行われた場合に、移動量算出回路116cにて算出された移動量を基に前述したように画像の位置合わせを行う。また位置合わせ回路116dはぶれ補正のための位置合わせも行う。幾何変換回路116eは、撮影レンズ101の歪曲収差補正、アフィン変換、射影変換、円筒座標変換などを行う。特にパノラマ撮影が行われた場合には、幾何変換回路116eは、前述したような歪曲収差補正や円筒座標変換を行う。変倍回路116fは、画像のサイズを変倍する。トリミング回路116gは、画像の一部を切り出す。合成回路116jは、複数の画像を合成する。特にパノラマ撮影が行われた場合、合成回路116jは、前述したように共通領域を重ね合わせて各画像を繋ぐようにしてパノラマ画像を合成する。本実施形態の撮像装置においてパノラマ撮影が行われた際の移動量算出回路116c、位置合わせ回路116d、幾何変換回路116e、変倍回路116f、トリミング回路116g、合成回路116jにおける動作の説明は後述する。
メモリコントローラ119は、メモリ120へのデータの書き込みと読み出し、バッファメモリ122への一時的なデータの蓄積等を制御する。なお、メモリ120は着脱可能なカード型等のメモリであってもよい。メモリコントローラ119は、画像処理回路116による処理がなされていない未処理の画像データをバッファメモリ122に格納し、画像処理回路116による処理済みのデジタル画像データをメモリ120に格納する。また、メモリコントローラ119は、バッファメモリ122やメモリ120から読み出した画像データを画像処理回路116に出力する。また、メモリコントローラ119は、メモリ120に記憶されている画像を、外部インターフェイス121を介してコンピュータ等の外部機器に出力することも可能となされている。
表示部118は、TFTや有機ELなどの表示デバイスである。表示駆動回路117は、VRAMとしても用いられるバッファメモリ122に格納された表示データを、メモリコントローラ119と画像処理回路116を介して受け取り、その表示データにより表示部118を駆動して画面上に画像等を表示させる。
操作部124は、各種のボタンやスイッチが接続されており、それらボタンやスイッチの状態を検知し、それら状態検知信号をマイコン123に伝える。マイコン123は、操作部124からの状態検知信号に応じて各部をコントロールする。
操作部124に接続された各種のスイッチのうち、スイッチ125(以後、SW1とする)とスイッチ126(以後、SW2とする)は、レリーズボタンの操作でオンオフするスイッチである。SW1のみがオンとなっている状態は、いわゆるレリーズボタン半押し状態である。このレリーズボタン半押し状態の時、マイコン123は、撮像装置のオートフォーカスの動作を開始させると共に測光動作を開始させる。SW1及びSW2が共にオンとなっている状態は、いわゆるレリーズボタンの全押し状態である。このレリーズボタン全押し状態の時、マイコン123は、撮像装置の画像撮影と記録を行わせる。また、レリーズボタン全押し状態が続いている間、マイコン123は、撮像装置に連続撮影動作を行わせる。前述したパノラマ撮影の際にはレリーズボタン全押し状態となされる。
また、操作部124には、不図示のボタンやスイッチとして、例えば、露出補正ボタン、絞りボタン、ISO設定ボタン、メニューボタン、セットボタン、フラッシュ設定ボタン、単写/連写/セルフタイマー切り替えボタンなども接続されている。また操作部124に接続された不図示のボタン等には、例えば、メニューや再生画像移動のための移動+(プラス)ボタンや移動-(マイナス)ボタン、表示画像拡大ボタン、表示画像縮小ボタン、再生スイッチ、消去ボタン、情報表示ボタンなども含まれる。なお、絞りボタンは、予め設定された絞り値にまで絞り103を絞り込ませる際に操作されるボタンである。消去ボタンは、撮影した画像を消去する際に操作されるボタンである。情報表示ボタンは、撮影や再生に関する情報表示を行う際に操作されるボタンである。また、操作部124には、例えば回転ダイアルが接続されていてもよい。例えば移動+(プラス)ボタンや移動-(マイナス)ボタンの各機能は回転ダイアルが備えてもよい。回転ダイアルの回転操作によって、より軽快に数値や機能を選択することが可能となる。
液晶駆動回路127は、外部液晶表示部128やファインダ内液晶表示部129を駆動する。マイコン123は、液晶駆動回路127に対して表示内容を送り、液晶駆動回路127が外部液晶表示部128やファインダ内液晶表示部129を駆動させることで、撮像装置の動作状態やメッセージ等を文字や画像を用いて表示させる。また、ファインダ内液晶表示部129には、不図示のLEDなどのバックライトが配置されており、そのLEDも液晶駆動回路127により駆動される。
マイコン123は、撮影前に設定されているISO感度、画像サイズ、画質に応じた、画像サイズの予測値データを基に、メモリコントローラ119を介してメモリ120の容量を確認した上で撮影可能残数を演算することができる。そして、マイコン123は、その撮影可能残数を表示部118に表示させる。また、マイコン123は、撮影可能残数を、必要に応じて外部液晶表示部128やファインダ内液晶表示部129に表示させることもできる。
不揮発性メモリ130は、EEPROMであり、撮像装置に電源が入れられていない状態でも、記憶内容を保存することができる。マイコン123の動作プログラムは、不揮発性メモリ130に格納されている。なお、例えばパノラマ撮影等により取得された画像に対する画像処理がソフトウェア構成によって実現される場合、本実施形態に係る画像処理プログラムも不揮発性メモリ130に格納され、マイコン123はその画像処理プログラムを実行する。
ジャイロセンサ133は、例えば2軸若しくは3軸の角速度センサであり、撮像装置における回転の角速度を検出し、その検出信号(以下、ジャイロ情報とする。)としてマイコン123に出力する。
温度計134は、温度を検出し、その検出信号をマイコン123に出力する。本実施形態の場合、温度計134は、ジャイロセンサ133付近に配置することが好ましいが、一般的に撮像装置やメモリ120等の保護のために撮像センサ112やメモリ120などの近傍に設置されている温度センサを流用してもよい。
外部インターフェイス121は、本実施形態の撮像装置と、コンピュータ等の外部機器とを接続する。
電源部131は、例えば着脱可能なバッテリを備えており、本実施形態の撮像装置の各部に必要な電力を供給する。
内部時計132は、時刻情報や撮像装置の動作に必要な時間情報を出力してマイコン123に出力する。マイコン123は、例えば内部時計132からの時刻情報に基づく撮影時刻データを、メモリ120に記録される画像ファイルに付加又は重畳することができる。
以下、図5フローチャートを用いて、本実施形態の撮像装置における基本的な撮影動作を説明する。図5のフローチャートに示した撮影動作は、マイコン123が撮像装置の各部を制御することにより行われる。撮影動作が開始される前には、予め露光量算出回路109により露光量が算出され、絞り量、蓄積時間(シャッタスピード)、ISO感度等が決定されているとする。なお、以下の説明では、図5のフローチャートの各処理ステップS501~ステップS507をS501~S507と略記する。
ユーザによりレリーズボタンが全押し状態となされてSW1及びSW2が共にオンの状態になると、S501として、マイコン123は、図5のフローチャートに示した撮影動作の制御を開始する。
撮影動作の制御を開始すると、マイコン123は、S502として、以下の一連の動作を行うように各部を制御する。先ず、マイコン123は、予め決められた絞り量を絞り駆動回路104に通知して、絞り103を目標の絞り量にする。また、マイコン123は、撮像センサ112、AD変換器115などを動作可能な状態にする撮影準備を行う。そして、マイコン123は、撮影準備が完了すると、ミラー駆動回路107を制御して主ミラー105を上方に跳ね上げさせ、またシャッタ駆動回路111を制御してシャッタ110の不図示の先幕を開けさせる。これにより、撮影レンズ101を介した被写体像が撮像センサ112上に結像されることになる。続いて、マイコン123は、シャッタ駆動回路111を制御して、予め設定された蓄積時間後にシャッタ110の不図示の後幕を閉じる。これにより、撮像センサ112には、蓄積時間の間だけ光が入ることになる。S502では、この一連の動作により、撮像センサ112の露光が行われる。
続いて、S503として、マイコン123は、撮像センサ112から出力されてAD変換器115で変換された画像データを、画像処理回路116を介し、さらにメモリコントローラ119を介してバッファメモリ122に格納させる。さらに、S504として、マイコン123は、メモリコントローラ119を介してバッファメモリ122から読み出した画像データを画像処理回路116に送り、現像回路116kによる現像処理を行わせる。またS504において、マイコン123は、画像処理回路116を制御し、ホワイトバランス処理や、ガンマ補正回路116bで暗部にゲインをかける処理などの画像処理を行わせてもよい。
次に、S505として、マイコン123による制御の下、画像処理回路116は、画像処理が施された画像データを圧縮・伸長回路116lによりJPEGなどの汎用的なデータフォーマットへと変換して、メモリ120に記録させる。その後、マイコン123は、レリーズボタンが全押し状態でなければ、S507として、図5のフローチャートの撮影動作の制御を終了する。
なお、メモリ120に記録される画像データは、画像処理回路116での画像処理や現像処理が行われていないRAWデータを、圧縮・伸長回路116lにより可逆圧縮したデータであってもよい。マイコン123は、操作部124を介したユーザからの指示を基に、メモリ120に記録する画像データをJPEG等の画像データか又は可逆圧縮されたRAWデータの何れにするかを決定する。
次に、図1に示した本実施形態の撮像装置において、パノラマ撮影が行われている場合の動作について説明する。
本実施形態の撮像装置はパノラマ撮影モードを含む種々の撮影モードでの動作が可能となされており、前述したパノラマ撮影は、ユーザが撮像装置の撮影モードをパノラマ撮影モードに設定することにより実行可能となる。
ユーザから操作部124を介してパノラマ撮影モードへの切り替え指示が入力されると、マイコン123は、撮像装置をパノラマ撮影モードに設定し、撮像センサ112とAD変換器115に電源が供給されるよう制御すると共に初期設定を行う。また、マイコン123は、ミラー駆動回路107を制御して主ミラー105を上げさせるとともに、シャッタ駆動回路111を制御してシャッタ110を開き、撮影レンズ101による被写体像等が撮像センサ112に結像されるようにする。これにより、撮像センサ112から読み出されてAD変換器115にてデジタル変換された画像信号は画像処理回路116に送られる。さらに、マイコン123は、画像処理回路116を制御し、現像回路116kによる現像処理、輝度調整回路116a、ガンマ補正回路116bによる画像処理、変倍回路116fによる変倍処理を行わせる。変倍回路116fにより表示に適した画像サイズへと変倍された画像は、表示部118に送られて表示される。撮像装置では、このような撮像センサ112による撮像から表示部118の表示までの処理が、1秒間に24回~60回繰り返して行われることにより、いわゆるライブビューの表示がなされる。
ここで、本実施形態の撮像装置においてパノラマ撮影を行う場合、ユーザは、パノラマ撮影の開始準備作業として、表示部118のライブビュー表示を確認しながら撮影レンズ101を所望の画角(所望の焦点距離)に設定する。さらに、ユーザは、全景220の撮影範囲内でメインとなる被写体に対して撮影レンズ101を向けた上でSW1を押下(レリーズボタンを半押し)する。ユーザによりSW1が押下されると、マイコン123は、パノラマ撮影の準備のために、撮像装置の各部を制御し、画角内の被写体に対する適切な露光量の算出と、画角内の被写体に対する焦点合わせとを行わせる。例えばライブビュー表示がなされている場合、マイコン123は、画像処理回路116に含まれる不図示の露光量算出回路により最適な露光量を算出させて、その露光量の情報を取得する。また例えばライブビューの表示がなされていない場合、マイコン123は、サブミラー106にて反射された光の受光信号に応じた最適な露光量を露光量算出回路109に算出させ、その算出された露光量の情報を取得する。そして、マイコン123は、露光量の情報を基に、絞り駆動回路104を介した絞り103の駆動制御、撮像センサ112の感度制御や蓄積時間の制御を行う。また、マイコン123は、AF駆動回路102を介して撮影レンズ101を駆動させることにより、画角内のメインの被写体に対して焦点を合わせるように制御する。これらパノラマ撮影のための開始準備が完了すると、マイコン123は、不図示のスピーカ等からの通知音の出力や通知表示等を行って、パノラマ撮影の開始準備が整ったことをユーザに知らせる。
次に、ユーザは、撮像装置を全景220のなかで、パノラマ撮影で撮り始めたい向きに撮影方向(撮影レンズ101)を向けた上で、SW2を押下(レリーズボタンを全押し)する。これにより、撮像装置では実際にパノラマ撮影がスタートし、画像の撮像が開始される。そして、パノラマ撮影が開始されると、撮像装置では、図5に示すフローチャートの処理を開始する。
以下、図5のフローチャートと図6に示すデータフローダイアグラムを用いて、パノラマ撮影時の撮像装置における処理の流れを説明する。図5のフローチャートおよび図6のデータフローダイアグラムに示した動作は、マイコン123が撮像装置の各部を制御することにより行われる。なお、図5に示すフローチャートの処理は、ハードウェア構成により実行されてもよいし、一部がソフトウェア構成で残りがハードウェア構成により実現されてもよい。ソフトウェア構成により処理が実行される場合、例えば不揮発性メモリ130に記憶されているプログラムをマイコン123が実行することにより実現される。本実施形態に係るプログラムは、不揮発性メモリ130に予め用意されていてもよく、また着脱可能な半導体メモリ等から読み出されたり、不図示のインターネット等のネットワークからダウンロードされたりしてもよい。
S601においてパノラマ撮影が開始されると、マイコン123は、先ずS602として、レンズ情報とセンサ情報とを取得する。レンズ情報には、撮影レンズ101における歪曲や周辺光量低下の補正時に使用されるレンズ補正データや、円筒座標変換の際に使用する焦点距離、画角の情報などが含まれる。それらレンズ情報は、例えば撮影レンズ101に内蔵された不図示のメモリあるいは不揮発性メモリ130等に保存されており、マイコン123は取得したレンズ情報を内部メモリに記憶する。センサ情報には、撮像センサ112の有効撮像エリアの縦横幅のサイズ、画素数、1画素あたりのサイズ、画素ピッチなどが含まれる。それらセンサ情報は、例えば不揮発性メモリ130等に予め保存されていても良いし、マイコン123が演算により求めても良い。マイコン123は、取得したセンサ情報を内部メモリに記憶する。
次にS603として、マイコン123は、撮像装置の各部を制御して1枚目の画像の撮影を行わせる。このときの撮像センサ112とAD変換器115は例えばライブビュー用の駆動に設定されているので、マイコン123は、これらを静止画撮影用の駆動に切り替える。またマイコン123は、絞り駆動回路104を介して絞り103を先ほど決めた露光量になるように調整し、さらにシャッタ駆動回路111を介してシャッタ110を開閉させて、撮像センサ112に被写体像が結像されるようにする。これにより、撮像センサ112では静止画の撮影が行われ、撮像センサ112から読み出された画像信号はAD変換器115でデジタル信号に変換される。そして、画像処理回路116では、AD変換器115からのデジタル信号に対し、不図示の回路により撮像センサ112のシェーディング補正処理のような最小限の画像処理を施す。この画像処理回路116による最小限の処理がなされた画像データは、1枚目のRAW画像のデータとして、メモリコントローラ119を介してバッファメモリ122に格納される。
また、S604において、マイコン123は、1枚目の画像の撮影から次の2枚目の画像の撮影が行われるまでに撮像装置がどのくらいスイング(回転)されたのかを検出可能にするために、ジャイロセンサ133を初期化(リセット)する。
S603においてバッファメモリ122に格納された1枚目のRAW画像データは、メモリコントローラ119により読み出されて画像処理回路116の現像回路116kに送られる。現像回路116kは、RAW画像に対して現像処理を行って、輝度(Y)と色差(UV)からなる1枚目のYUV画像に変換し、そのYUV画像データを幾何変換回路116eと変倍回路116fに送る。なお、S603で撮影された1枚目のRAW画像が、図7のデータフローダイアグラムのN枚目RAW画像705であるとすると、1枚目のYUV画像は、図7のN枚目RAW画像705を現像回路116kで現像したN枚目現像後画像706である。
画像処理回路116の変倍回路116fでは、1枚目のYUV画像に対し表示部118の画素数に応じた縮小処理が行われ、その縮小処理により得られた縮小画像がバッファメモリ122のVRAM領域に格納される。なお、1枚目のYUV画像が図7のN枚目現像後画像706であるとすると、VRAM領域708には、N枚目現像後画像706を変倍回路116fで縮小処理した縮小画像が格納される。そして、VRAM領域から読み出された1枚目のYUV画像は表示駆動回路117を介して表示部118の画面上に表示される。この表示を見ることにより、ユーザはパノラマ撮影において1枚目に撮影された画像を確認できる。
また画像処理回路116の幾何変換回路116eでは、S605の処理として、マイコン123を介して取得したレンズ補正データを用いて、YUV画像に対して撮影レンズ101の歪曲収差を補正する処理を施す。歪曲収差の補正処理は既存の技術であるためその説明は省略する。なお、1枚目のYUV画像が図7のN枚目現像後画像706であるとすると、図7のN枚目現像後画像706が幾何変換回路116eで歪曲収差補正された後の画像は、N枚目幾何変換後画像707である。このN枚目幾何変換後画像707はバッファメモリ122に格納され、次の画像が撮影されて後述する移動量算出回路116cでの移動量算出の際に、N-1枚目幾何変換後画像703としてバッファメモリ122から読み出されることになる。
次にS606において、マイコン123は、撮像装置の各部を制御して2枚目の静止画撮影を行わせる。2枚目の画像撮影の場合も1枚目の画像撮影と同様に、マイコン123は、露光量の制御、シャッタ駆動の制御を行う。そして、撮像センサ112から読み出された2枚目の画像信号も1枚目と同様、AD変換器115でデジタル信号に変換され、画像処理回路116で最小限の画像処理が施され、2枚目のRAW画像のデータとしてバッファメモリ122に格納される。なお、2枚目のRAW画像が撮影された場合、この2枚目のRAW画像は、図7のデータフローダイアグラムではN枚目RAW画像705となる。
またS606では、バッファメモリ122に格納された2枚目のRAW画像データも1枚目と同様、画像処理回路116の現像回路116により現像処理されて2枚目のYUV画像に変換される。S606で撮影された2枚目のRAW画像が、図7のN枚目RAW画像705であるとすると、2枚目のYUV画像は、図7のN枚目RAW画像705を現像回路116kで現像したN枚目現像後画像706となる。そして、2枚目のYUV画像も1枚目と同様、画像処理回路116の変倍回路116fにより縮小処理が行われて、VRAM領域に格納された後、表示駆動回路117を介して表示部118の画面上に表示される。この表示を見ることにより、ユーザはパノラマ撮影において2枚目に撮影された画像を確認できる。
さらにS607において、マイコン123は、ジャイロセンサ133からジャイロ情報(図7のデータフローダイアグラムではジャイロ情報724)を取得して不図示の内部メモリ等に記憶する。ここで、ジャイロ情報としては、撮像装置のヨー(Yaw)方向、ピッチ(Pitch)方向の2軸の情報を取得するが、光軸回りの回転であるロール(Roll)方向を加えた3軸の情報を取得することが好ましい。なお、ジャイロセンサ133からの出力そのものは角速度の情報であるが、パノラマ撮影では隣接する撮像方向間、つまり前回の撮影から今回の撮影までの間にどのくらいスイングされたかの検出が必要である。このため、マイコン123は、前回の撮影から今回の撮影までの間のスイングによる角速度を積分するような演算を2枚目以降の画像の撮影時においてそれぞれ実行して、隣接撮影方向間の回転角度を算出して不図示の内部メモリ等に記憶する。
次にS608において、移動量算出回路116cは、マイコン123から、前述したレンズ情報の焦点距離や画角の情報、センサ情報、スイング時の隣接撮影方向間の回転角度の情報を取得する。そして、移動量算出回路116cは、それらの情報を基に、前回の撮影から今回の撮影までの間つまり隣接する撮影方向間におけるスイングの回転角度を、画素単位で表される移動量に変換する。本実施形態において、このS608にて求められた移動量が、角速度センサからのジャイロ情報を基に算出される移動量である。
ここで、撮影レンズ101の焦点距離をf[mm]、撮像センサ112の有効撮像エリア幅をw[mm]とすると、歪曲収差補正後の画角α[°](もしくは歪曲収差の無いレンズの画角α)は、以下の式(8)により算出できる。
α=2×arctan(w/2/f) 式(8)
また撮像センサ112の1画素当たりのサイズをp[μm]、前回の撮影から今回の撮影までの間のスイング角をβ[°]とすると、移動量d[pix]は、式(9)により算出できる。
d=tan(β/2)×f/p×1000 式(9)
次にS609において、幾何変換回路116eでは、2枚目のYUV画像に対して1枚目と同様に歪曲収差を補正する処理が行われる。
続いてマイコン123は、S610として、幾何変換回路116eが円筒座標変換を行う際に用いる、仮想円筒の半径を算出する。
ここで、前述したように、撮影レンズ101が焦点距離の短い広角レンズになっている場合、その焦点距離を仮想円筒の半径にして円筒座標変換を行うと、画像の左右端近辺の座標変換量が大きくなり、高さ方向の有効画素数が少なくなってしまう。
このため、本実施形態では、前述したように、焦点距離fを仮想円筒の半径Rにした場合と、仮想円筒の半径Rを焦点距離fよりも大きくした場合とで、画像の上下端で実質的な差が生じない範囲で、仮想円筒の半径を大きくして円筒座標変換を行う。なお、仮想円筒の半径Rの算出処理は、最初に1度だけ行い、その後の仮想円筒の半径は固定の値としても良いし、本実施形態のように画像の撮影毎に行っても良い。さらには、最初に行った仮想円筒の半径の算出結果から、順次画像が撮影される毎に、仮想円筒の半径を徐々に焦点距離fの値に近づけていくことも好ましい様態の一つである。
続いてS611において、幾何変換回路116eにより円筒座標変換が行われる。本実施形態において、円筒座標変換と歪曲収差補正とは共に幾何変換回路116eで行われるため、幾何変換回路116eは、それら円筒座標変換と歪曲収差補正を前述した通り別に行ってもよいし、同時に行ってもよい。
なお、2枚目のYUV画像が図7のN枚目現像後画像706である場合、図7のN枚目現像後画像706が幾何変換回路116eで円筒座標変換および歪曲収差補正された後の画像は、N枚目幾何変換後画像707となる。このN枚目幾何変換後画像707はバッファメモリ122に格納され、次の画像(3枚目の画像)が撮影されて移動量算出回路116cで移動量が算出される際に、N-1枚目幾何変換後画像703としてバッファメモリ122から読み出されることになる。
次にS612として、移動量算出回路116cにより、N枚目幾何変換後画像707とN-1枚目幾何変換後画像703とを用いた移動量の算出処理が行われる。画像から移動量を算出する処理に関しては既知の方法を使用可能である。本実施形態では、移動量算出回路116cにおいて画像からエッジを検出して幾つかの特徴点を抽出し、さらに標本化することでアフィン変換の係数を算出する。このように、移動量算出回路116cでは、エッジを検出し、さらに特徴点を抽出することにより、撮影された画像の移動量を算出する。
ここで例えば、前回撮影された画像と今回撮影された画像との間で、特徴点1の座標が(x1,y1)から(u1,v1)にずれ、特徴点2の座標が(x2,y2)から(u2,v2)に、特徴点3の座標が(x3,y3)から(u3,v3)にずれたとする。この場合、前述した式(1)を基に連立方程式を作ると式(10)、式(11)のようになる。
Figure 0007106399000001
Figure 0007106399000002
これら式(10)、式(11)の方程式を解くことで、式中のa~fのアフィン係数を算出することが可能となる。そして、移動量算出回路116cは、4点以上の特徴点が抽出された場合には、それらの中で距離が近い特徴点を除外し、残りの特徴点を最小二乗法により正規化する。一方、3点の特徴点が抽出できなかった場合や、検出された3点の特徴点が直線状に並んでいる場合、あるいは3点のうち2点が近い場合、移動量算出回路116cは、移動量の算出を失敗したと判断する。また画像の特徴点を基に算出した移動量(アフィン係数)と、前述したジャイロ情報724を基に算出した移動量とが大きく異なる場合(例えば移動量の差分が閾値を超える場合)には、画像に繰り返しパターンや移動体が含まれていることが考えられる。このため、画像に基づく移動量とジャイロ情報に基づく移動量とが大きく異なっている場合、移動量算出回路116cは、画像の特徴点を基に算出した移動量をキャンセルして、別の条件下で再度移動量を算出してもよい。また画像に基づく移動量とジャイロ情報に基づく移動量とが大きく異なった場合、マイコン123は、撮影された画像を失敗画像として次の撮影(S606)を行うように制御したり、パノラマ撮影自体が失敗したものとして図6の処理を終了したりしてもよい。一方、画像に基づく移動量とジャイロ情報に基づく移動量との差が閾値未満であり、それら両移動量が略々一致している場合には、S613の処理に進む。
S613に進むと、位置合わせ回路116dは、移動量算出回路116cが画像を基に算出した移動量(アフィン係数)を基に、N枚目の画像とN-1枚目の画像の位置合わせを行わせる。本実施形態の場合、位置合わせ回路116dでは、アフィン係数を用いたアフィン変換により位置合わせを行う。なお図7の例の場合、位置合わせ回路116dによる位置合わせが行われた後の位置合わせ画像711が得られる。
次にS614として、合成回路116jは、位置合わせ画像711とそれ以前の合成処理済みの合成画像とを用いた合成処理が行われる。すなわち、画像処理回路116においてN枚目(N>2)の画像の処理が行われている場合、合成回路116jでは、N枚目の位置合わせ画像711と、それ以前のN-1枚目までで合成された合成画像710との合成が行われる。この合成回路116jによる合成画像712が、前述した共通領域を重ね合わせて繋いだ合成画像に相当する。なお、パノラマ撮影される範囲に例えば水面など全体に亘って動きのある被写体が存在する場合には、合成結果の品位が落ちることがあるため、合成される画像の境界部分の合成比率を変えることで品位向上を図ってもよい。
次にS615において、マイコン123は、SW2が押下されているか否かを判定し、SW2が押下されていると判定した場合には、S606に処理を戻して、次の画像の撮影を行わせる。一方、S615においてSW2が押下されていないと判定した場合、マイコン123は、パノラマ撮影のための画像撮影が終了したと判断してS616に処理を進める。
S616に進むと、マイコン123は、画像処理回路116の圧縮・伸長回路116lに対し、合成画像712(パノラマ画像)をJPEG等の汎用フォーマットへ圧縮する処理を行わせる。
その後、S617において、マイコン123は、合成画像712の圧縮データを、メモリコントローラ119を介してメモリ120に保存させる。なお、圧縮処理の前に、合成画像712の暗部を見易くするためにガンマ補正回路116bでγ補正を行ってもよく、また、画像全体の色調を統一するための色調補正を行ってもよい。また、合成画像のサイズが大きい場合には、予めユーザにより指定されたサイズになるように、変倍回路116fによる変倍処理が行われてもよい。さらに、手ぶれなどを考慮し、最大内接矩形或いは予め決められた領域でトリミング回路116gによる切り出しを行ってから、圧縮処理および保存処理を行ってもよい。
なおここでは、図2(a)に示したようにユーザ200が撮像装置201を正位置(横位置)に構えた状態で水平方向にスイングする例を挙げたが、撮像装置201を縦位置に構えた状態で水平方向にスイングする場合も本実施形態に含まれる。その他にも、ユーザが撮像装置を重力方向(縦方向)等の他の方向にスイングする場合も本実施形態に含まれる。
以上説明したように、本実施形態においては、撮像装置における隣接撮影方向間の移動量をジャイロ情報に基づいて算出し、その算出した移動量を基に仮想円筒の半径を決定している。そして、本実施形態では、仮想円筒の半径を撮影レンズの焦点距離よりも大きくすることで、円筒座標変換によって有効高さが小さくなるのを抑えている。これにより、本実施形態によれば、撮影方向を順次変更して撮影した複数の画像を円筒座標変換して合成する場合において、焦点距離の短いレンズを用いた際の広い画角を維持した合成画像を生成可能となる。
<第2の実施形態>
次に第2の実施形態について説明する。第2の実施形態に係る撮像装置の構成等は前述同様であるため、その図示と説明は省略する。
前述した第1の実施形態では、図6のフローチャートで説明したように、ジャイロ情報を基にスイング量(移動量)を算出し、その移動量に基づいて仮想円筒の半径を決定していた。これに対し、第2の実施形態では、撮影された画像から移動量を算出し、その移動量に基づいて仮想円筒の半径を決定する。図8には、パノラマ撮影された画像から隣接撮影方向間の移動量を算出し、その移動量に基づいて仮想円筒の半径を決定する処理を含む第2の実施形態のフローチャートを示す。なお、図8においてS801~S805は前述のS601~S605と同様であり、またS807はS606と、S808はS609と、S813~S819はS612~S619と概ね同様の処理であるため、それらの詳細な説明は省略する。以下、図6のフローチャートとは異なる処理を主に説明する。
図8のフローチャートの場合、マイコン123は、S805における歪曲補正処理の後、S806に処理を進める。
S806において、マイコン123は、撮影レンズ101の実焦点距離を仮想円筒の半径に決定し、1枚目の画像について、幾何変換回路116eによる円筒座標変換を行わせる。なお、S806における円筒座標変換は、後述するS810で行われる移動量算出において正確な移動量を算出するために行われる。このS806の後は、S807において前述のS606と同様に2枚目以降の撮影が行われ、次のS808において前述のS609と同様に歪曲補正処理が行われる。
S808の後のS809において、マイコン123は、2枚目以降の画像についても、撮影レンズ101の実焦点距離を仮想円筒の半径に決定し、画像処理回路116の幾何変換回路116eによる円筒座標変換を行わせる。このS809における円筒座標変換も、S806と同様に、後述するS810で行われる移動量算出で正確な移動量を算出するために行われる。
次にS810において、移動量算出回路116cは、前述のように実焦点距離に対応した仮想円筒半径を用いて円筒座標変換がなされた後のN枚目(今回)の画像とN-1枚目(前回)の画像とを用い、前述のS612と同様にして移動量を算出する。
次にS811において、マイコン123は、S810で画像から算出した移動量を基に、前述した第1の実施形態と同様にして、仮想円筒の半径を算出する。すなわち、第1の実施形態と同様に、焦点距離fを仮想円筒の半径Rにした場合と、仮想円筒の半径Rを焦点距離fよりも大きくした場合とで、画像の上下端で実質的な差が生じない範囲で、つまり閾値未満となる場合に、仮想円筒の半径を大きくする。
次にS812において、幾何変換回路116eでは、S811で算出された仮想円筒半径を用い、図6のS611と同様にして円筒座標変換を行う。すなわち、幾何変換回路116eでは、順次撮影された各画像に対し、S811で算出された仮想円筒半径を用いた円筒座標変換を行う。
次にS813において、移動量算出回路116cは、S812で円筒座標変換がなされた後のN枚目(今回)の画像とN-1枚目(前回)の画像とを用い、前述のS612と同様にして移動量を再算出する。S813で移動量の再計算を行うのは、S810で算出した移動量が実焦点距離の仮想円筒半径で円筒座標変換した画像から得られており、その時の仮想円筒半径はS811で算出した仮想円筒半径とは異なり、その結果、移動量も異なってくるからである。そのため、スイングの速度が速い場合など、S809とS812で円筒座標変換に用いた仮想円筒半径が同じかもしくは許容できる範囲の差である場合には、S813の再計算は省略可能である。また円筒座標変換の違いを考慮して、S809で算出した移動量(アフィン変換の係数)を変換しても良い。
その後、S814~S819では、前述のS613~S618と同様にして、位置合わせ、合成、終了判定、圧縮、保存、さらにパノラマ撮影の終了までの各処理が行われる。
以上説明したように、第2の実施形態では、撮影された各画像から、スイング時における隣接撮影方向間の移動量を算出し、その移動量を基に仮想円筒の半径を決定している。第2の実施形態の場合も第1の実施形態と同様に、仮想円筒の半径を撮影レンズ101の焦点距離よりも大きくすることにより、円筒座標変換によって有効高さが小さくなるのを最小限に抑えることが可能となる。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。本実施形態は、特に撮像センサや撮影レンズなどを備えず、SDカード等の外部メモリから画像と撮影時のレンズ情報を取得して合成する画像処理装置や、これらの処理をコンピュータ上で動作させるためのプログラム、あるいは記録媒体にも適用可能である。また、実施形態に係る撮像装置はデジタルカメラだけでなく、カメラ機能を備えたスマートフォンやタブレット端末等の各種携帯端末、車載カメラ、工業用カメラなどにも適用可能である。
本実施形態では、前述した実施形態の機能を実現するソフトウェアのプログラムコードを格納した記憶ないし記録媒体を、画像処理装置に供給することでも実現できる。算出部のコンピュータ(または、CPU、MPUなど)が記憶媒体に格納されたプログラムコードを読み出して前述した機能を実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラム、これを格納した記憶媒体は本発明を構成することになる。本発明のプログラムは、所定の結像光学系と所定の撮像部、コンピュータを備えた撮像装置のコンピュータにインストールすることによって、撮像装置を高精度の距離検出が可能なものとすることができる。本発明のコンピュータは、記憶媒体の他、インターネットを通じて頒布することも可能である。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
101:撮影レンズ、112:撮像センサ、116:画像処理回路、116c:移動量算出回路、116d:位置合わせ回路、116e:幾何変換回路、116f:変倍回路、116j:合成回路、116k:現像回路、116l:圧縮・伸長回路、123:マイクロコンピュータ、133:ジャイロセンサ

Claims (15)

  1. 撮像装置の撮影方向を順次変更しつつ隣接する撮影方向で共通領域を含むように撮影された複数の画像を取得する取得手段と、
    仮想円筒の半径を決定する決定手段と、
    前記複数の各画像を、前記仮想円筒に投影された画像に円筒座標変換する変換手段と、
    隣接する撮影方向間の移動量を検出する検出手段と、
    前記検出された移動量に基づいて、前記円筒座標変換された各画像の位置合わせを行う位置合わせ手段と、
    前記位置合わせが行われた各画像の前記共通領域を重ね合わせて各画像を順次つなぐように合成する合成手段と、を有し、
    前記決定手段は、前記仮想円筒の半径を前記撮像装置が有する撮影レンズの焦点距離よりも大きい半径に決定することを特徴とする画像処理装置。
  2. 前記決定手段は、少なくとも、前記移動量と、前記撮影レンズの焦点距離とを基に、前記仮想円筒の半径を算出することを特徴とする請求項1に記載の画像処理装置。
  3. 前記決定手段は、前記移動量が第1の閾値よりも小さい場合に、前記仮想円筒の半径を前記焦点距離より大きい半径に決定することを特徴とする請求項2に記載の画像処理装置。
  4. 前記決定手段は、前記撮影レンズの焦点距離を前記仮想円筒の半径にして前記円筒座標変換を行う場合と、前記仮想円筒の半径を前記撮影レンズの焦点距離より大きい半径にして前記円筒座標変換を行う場合とで、前記合成における前記画像の境界での位置ずれが第2の閾値未満となる場合に、前記仮想円筒の半径を前記焦点距離よりも大きい半径に決定することを特徴とする請求項2に記載の画像処理装置。
  5. 前記決定手段は、
    画像の高さをh[pix]、画素ピッチをp[μm]、前記仮想円筒の半径をR[mm]、前記焦点距離をf[mm]、前記移動量を表すベクトルのX成分をx[pix]としたとき、
    (h/2)・x・cos{arctan(x・p/R/1000)/2}の式と、
    (h/2)・x・cos{arctan(x・p/f/1000)/2}の式と
    の差が第2の閾値未満となる場合に、前記仮想円筒の半径を前記の焦点距離よりも大きい半径に決定することを特徴とする請求項4に記載の画像処理装置。
  6. 前記決定手段は、前記撮影レンズの焦点距離が第3の閾値よりも小さい場合に、前記仮想円筒の半径を前記焦点距離よりも大きい半径に決定する処理を実行することを特徴とする請求項1から5のいずれか1項に記載の画像処理装置。
  7. 前記決定手段は、前記画像ごとに前記仮想円筒の半径を異ならせることを特徴とする請求項1から6のいずれか1項に記載の画像処理装置。
  8. 前記決定手段は、1枚目に撮影された画像と最後に撮影された画像との少なくともいずれかの画像と、前記1枚目と前記最後の間に撮影された各画像とで、前記仮想円筒の半径を異ならせることを特徴とする請求項7に記載の画像処理装置。
  9. 前記検出手段は、前記撮像装置が有する角速度センサからの情報を取得し、前記角速度センサの情報に基づいて、前記移動量を算出することを特徴とする請求項1から8のいずれか1項に記載の画像処理装置。
  10. 前記検出手段は、隣接した撮影方向で撮影された画像の特徴点を基にさらに移動量を算出し、
    前記位置合わせ手段では、前記角速度センサの情報を基に算出された前記移動量と、前記特徴点を基に算出された移動量との差が、第4の閾値未満である場合に、前記特徴点を基に算出された移動量を用いて前記位置合わせを行うことを特徴とする請求項9に記載の画像処理装置。
  11. 前記検出手段は、隣接した異なる撮影方向で撮影された画像の特徴点と、前記撮影レンズの焦点距離と、前記撮像装置が有する撮像素子のサイズおよび画素数の情報とを基に、前記移動量を算出することを特徴とする請求項1から8のいずれか1項に記載の画像処理装置。
  12. 前記検出手段は、前記焦点距離を前記半径とした仮想円筒による前記円筒座標変換が行われた後の前記画像の特徴点を基に移動量を算出し、
    前記決定手段は、前記算出された移動量と、前記焦点距離と、前記撮像素子のサイズおよび画素数の情報とを基に、前記焦点距離よりも大きい前記仮想円筒の半径を決定し、
    さらに前記検出手段は、前記決定された半径の仮想円筒による前記円筒座標変換が行われた後の前記画像の特徴点を基に前記移動量を再計算することを特徴とする請求項11に記載の画像処理装置。
  13. 撮影レンズによる光学像を撮像する撮像素子と、
    所定の時間ごとに連続して画像を撮像する制御を行う制御手段と、
    請求項1から12のいずれか1項に記載の画像処理装置と、
    を有することを特徴とする撮像装置。
  14. 撮像装置の撮影方向を順次変更しつつ隣接する撮影方向で共通領域を含むように撮影された複数の画像を取得する取得工程と、
    仮想円筒の半径を決定する決定工程と、
    前記複数の各画像を、前記仮想円筒に投影された画像に円筒座標変換する変換工程と、
    隣接する撮影方向間の移動量を検出する検出工程と、
    前記検出された移動量に基づいて、前記円筒座標変換された各画像の位置合わせを行う位置合わせ工程と、
    前記位置合わせが行われた各画像の前記共通領域を重ね合わせて各画像を順次つなぐように合成する合成工程と、を有し、
    前記決定工程では、前記仮想円筒の半径を前記撮像装置が有する撮影レンズの焦点距離よりも大きい半径に決定することを特徴とする画像処理装置の画像処理方法。
  15. コンピュータを、請求項1から13のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
JP2018165718A 2018-09-05 2018-09-05 画像処理装置、画像処理方法、及びプログラム Active JP7106399B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018165718A JP7106399B2 (ja) 2018-09-05 2018-09-05 画像処理装置、画像処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018165718A JP7106399B2 (ja) 2018-09-05 2018-09-05 画像処理装置、画像処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2020039062A JP2020039062A (ja) 2020-03-12
JP7106399B2 true JP7106399B2 (ja) 2022-07-26

Family

ID=69738321

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018165718A Active JP7106399B2 (ja) 2018-09-05 2018-09-05 画像処理装置、画像処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP7106399B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001184484A (ja) 1999-12-24 2001-07-06 Sanyo Electric Co Ltd 画像合成方法および画像合成プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2013012893A (ja) 2011-06-29 2013-01-17 Panasonic Corp 画像変換装置、カメラ、画像変換方法およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001184484A (ja) 1999-12-24 2001-07-06 Sanyo Electric Co Ltd 画像合成方法および画像合成プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2013012893A (ja) 2011-06-29 2013-01-17 Panasonic Corp 画像変換装置、カメラ、画像変換方法およびプログラム

Also Published As

Publication number Publication date
JP2020039062A (ja) 2020-03-12

Similar Documents

Publication Publication Date Title
JP6659130B2 (ja) 画像処理装置、撮像装置、画像処理方法およびプログラム
JP7030442B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP7174120B2 (ja) 撮像装置、プログラム、記録媒体、及び制御方法
US20110109771A1 (en) Image capturing appratus and image capturing method
JP2007043637A (ja) 撮像装置、撮像プログラムおよび画像処理プログラム
JP7023662B2 (ja) 画像処理装置、撮像装置、画像処理装置の制御方法およびプログラム
JP2006174069A (ja) 撮影装置及び撮影方法
US10110819B2 (en) Imaging apparatus, and image blur correcting method of imaging apparatus
JP5248951B2 (ja) カメラ装置、画像撮影支援装置、画像撮影支援方法、及び画像撮影支援プログラム
CN110891140B (zh) 摄像装置、图像处理装置及其控制方法和存储介质
JP5495598B2 (ja) 撮像装置及びその制御方法
JP5693664B2 (ja) 撮像装置、撮像装置の制御方法及びプログラム
JP7106399B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP7102301B2 (ja) 撮像装置及びその制御方法、並びにプログラム
JP2011176460A (ja) 撮像装置
JP6869841B2 (ja) 画像処理装置、画像処理装置の制御方法、およびプログラム
JP7051586B2 (ja) 撮像装置、撮像方法およびプログラム
JP7100535B2 (ja) 撮像装置及び画像処理装置、それらの制御方法、プログラム、記憶媒体
JP4471364B2 (ja) 画像処理装置及び画像処理方法
JP2017085466A (ja) 撮像装置、及びその制御方法
JP2002305676A (ja) 電子カメラ
JP2019009574A (ja) 画像処理装置
JP2009229983A (ja) 拡大表示機能付きカメラおよびカメラの制御方法
JP2006229697A (ja) 撮像装置
JP2021129169A (ja) 回転位置補正装置および回転位置補正方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220601

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220713

R151 Written notification of patent or utility model registration

Ref document number: 7106399

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151