(57)【要約】【課題】画面端部にノイズが発生するのを抑制しながら、回転振れを含む画像の振れを電子的に補正する。【解決手段】撮像部によって撮影された撮影画像を示す撮像データを入力する。撮像データの露光情報を入力する。撮影時の撮像部の回転振れを示す振れ情報を入力する。撮像部の撮像範囲外の画素と振れ情報が示す回転中心との距離を半径とする、回転中心を中心とする回転孤であって、回転孤上の画素と回転中心と撮像範囲外の画素とがなす角が振れ情報が示す回転角の範囲内である回転孤を得る。回転孤上の画素のうち、撮像部の撮像範囲内にあって撮像範囲外の画素に最近の画素の値を、撮像範囲外の画素の値として設定することで、撮像データから外挿後データを生成する。露光情報と、振れ情報が示す回転角と、外挿後データとに基づき、撮影画像の回転振れを補正する。【選択図】図１
2011004283.tif 000002
【特許請求の範囲】
【請求項１】
撮像部によって撮影された撮影画像を示す撮像データを入力する撮像データの入力手段と、
前記撮像データの露光情報を入力する露光情報の入力手段と、
前記撮影時の前記撮像部の回転振れを示す振れ情報の入力手段と、
前記撮像部の撮像範囲外の画素と前記振れ情報が示す回転中心との距離を半径とする、当該回転中心を中心とする回転孤であって、前記回転孤上の画素と前記回転中心と前記撮像範囲外の画素とがなす角が前記振れ情報が示す回転角の範囲内である回転孤上の画素のうち、前記撮像部の撮像範囲内にあって前記撮像範囲外の画素に最近の画素の値を、前記撮像範囲外の画素の値として設定することで、前記撮像データから外挿後データを生成する外挿手段と、
前記露光情報と、前記振れ情報が示す回転角と、前記外挿後データとに基づき、前記撮影画像の回転振れを補正する補正手段とを有することを特徴とする画像処理装置。
【請求項２】
前記撮像部のシャッタをランダムに開閉駆動し、前記露光情報を出力する駆動手段をさらに有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
撮像部によって撮影された撮影画像を示す撮像データを入力する撮像データの入力手段と、
前記撮像データの露光情報を入力する露光情報の入力手段と、
前記撮影時の前記撮像部の回転振れを示す振れ情報の入力手段と、
前記撮像部の撮像範囲外の画素と前記振れ情報が示す回転中心との距離を半径とする、当該回転中心を中心とする回転孤であって、前記回転孤上の画素と前記回転中心と前記撮像範囲外の画素とがなす角が前記振れ情報が示す回転角の範囲内である回転孤上の画素のうち、前記撮像部の撮像範囲内にあって前記撮像範囲外の画素に最近の画素を選択し、前記回転中心への距離が前記撮像範囲外の画素と等しく、かつ前記選択画素への距離が前記撮像範囲外の画素と等しい前記撮像部の撮像範囲内の画素の値を、前記撮像範囲外の画素の値として設定することで、前記撮像データから外挿後データを生成する外挿手段と、
前記露光情報と、前記振れ情報が示す回転角と、前記外挿後データとに基づき、前記撮影画像の回転振れを補正する補正手段とを有することを特徴とする画像処理装置。
【請求項４】
撮像部によって撮影された撮影画像を示す撮像データを入力する撮像データの入力工程と、
前記撮像データの露光情報を入力する露光情報の入力工程と、
前記撮影時の前記撮像部の回転振れを示す振れ情報の入力工程と、
前記撮像部の撮像範囲外の画素と前記振れ情報が示す回転中心との距離を半径とする、当該回転中心を中心とする回転孤であって、前記回転孤上の画素と前記回転中心と前記撮像範囲外の画素とがなす角が前記振れ情報が示す回転角の範囲内である回転孤上の画素のうち、前記撮像部の撮像範囲内にあって前記撮像範囲外の画素に最近の画素の値を、前記撮像範囲外の画素の値として設定することで、前記撮像データから外挿後データを生成する外挿工程と、
前記露光情報と、前記振れ情報が示す回転角と、前記外挿後データとに基づき、前記撮影画像の回転振れを補正する補正工程とを有することを特徴とする画像処理方法。
【請求項５】
撮像部によって撮影された撮影画像を示す撮像データを入力する撮像データの入力工程と、
前記撮像データの露光情報を入力する露光情報の入力工程と、
前記撮影時の前記撮像部の回転振れを示す振れ情報の入力工程と、
前記撮像部の撮像範囲外の画素と前記振れ情報が示す回転中心との距離を半径とする、当該回転中心を中心とする回転孤であって、前記回転孤上の画素と前記回転中心と前記撮像範囲外の画素とがなす角が前記振れ情報が示す回転角の範囲内である回転孤上の画素のうち、前記撮像部の撮像範囲内にあって前記撮像範囲外の画素に最近の画素を選択し、前記回転中心への距離が前記撮像範囲外の画素と等しく、かつ前記選択画素への距離が前記撮像範囲外の画素と等しい前記撮像部の撮像範囲内の画素の値を、前記撮像範囲外の画素の値として設定することで、前記撮像データから外挿後データを生成する外挿工程と、
前記露光情報と、前記振れ情報が示す回転角と、前記外挿後データとに基づき、前記撮影画像の回転振れを補正する補正工程とを有することを特徴とする画像処理方法。
【請求項６】
コンピュータを、請求項１乃至３の何れか１項に記載の画像処理装置が有する各手段として機能させるための、コンピュータプログラム。
【請求項７】
請求項６に記載のコンピュータプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回転振れが生じている画像を補正する技術に関する。
【背景技術】
【０００２】
近年の撮像装置の高画素化、高ズーム化に伴い、撮影時の手振れ等による撮影画像の振れが問題となってきており、従来より振れ補正機能付き撮像装置が広く使用されている。従来の振れ補正機能付き撮像装置は、振れによる角速度を検出するジャイロセンサと、振れを打ち消すようにレンズと撮像素子との相対的位置を制御する駆動装置とで光学的に振れを補正する方式を用いることが一般的である。しかし、例えばレンズの光軸のような撮影軸に対してカメラが回転した場合の振れ（以下、回転振れ）を補正することはできない。
【０００３】
一方、振れが生じない程度の露光時間、すなわち高速なシャッタスピードで取り込んだ複数の画像を電子的に位置合わせを行って重ね合わせることで、振れの影響のない画像を生成する方法（電子的振れ補正）も提案されている（例えば特許文献１）。特許文献１では、回転振れが小さいものとして、回転の振れベクトルを直線で近似し、複数画像間の相関を取ることで、回転の振れベクトル及びシフトベクトルを求めている。つまり、回転振れを直線近似して、シフト振れのベクトルと同様に扱う。さらには、指紋認証アプリケーション等からの要求から、回転を直線近似せずにそのまま捉え、高精度に複数の画像間の回転角度ズレを検出するための像ずれ検出アルゴリズムも近年盛んに研究が行われている（例えば、非特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２０３５０４号公報
【非特許文献】
【０００５】
【非特許文献１】計測自動制御学会東北支部第194回研究集会(2001.6.1)資料番号194-7
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１又は非特許文献１の手法で振れ補正を施すと画面端部にノイズが発生する為、画像品質が低下する。
本発明は、画面端部にノイズが発生するのを抑制しながら、回転振れを含む画像の振れを電子的に補正する事を目的とする。
【課題を解決するための手段】
【０００７】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。すなわち、
撮像部によって撮影された撮影画像を示す撮像データを入力する撮像データの入力手段と、
前記撮像データの露光情報を入力する露光情報の入力手段と、
前記撮影時の前記撮像部の回転振れを示す振れ情報の入力手段と、
前記撮像部の撮像範囲外の画素と前記振れ情報が示す回転中心との距離を半径とする、当該回転中心を中心とする回転孤であって、前記回転孤上の画素と前記回転中心と前記撮像範囲外の画素とがなす角が前記振れ情報が示す回転角の範囲内である回転孤上の画素のうち、前記撮像部の撮像範囲内にあって前記撮像範囲外の画素に最近の画素の値を、前記撮像範囲外の画素の値として設定することで、前記撮像データから外挿後データを生成する外挿手段と、
前記露光情報と、前記振れ情報が示す回転角と、前記外挿後データとに基づき、前記撮影画像の回転振れを補正する補正手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、画面端部にノイズが発生するのを抑制しながら、回転振れを含む画像の振れを電子的に補正できる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１の画像処理部の構成例を示すブロック図である。
【図２】画像処理部が実行する処理を説明するフローチャートである。
【図３】画像処理部の動作原理を概念的に表す図である。
【図４】PSFの作成を説明するフローチャートである。
【図５】一般的な回転運動におけるPSFの一例を示す図である。
【図６】連続シャッタ開の場合のPSFの形状と周波数特性とを示す図である。
【図７】シャッタ開ランダム制御時のPSF形状と周波数特性を示す図である。
【図８】シミュレーションで起こした回転振れを補正した画像を示す図である。
【図９】撮像装置の撮像部の構成例を示すブロック図である。
【図１０】シフト振れの補正を説明する図である。
【図１１】撮像データファイルの形式を示す図である。
【図１２】回転振れ方向と画素位置との関係を示す図である。
【図１３】回転振れと画素値との関係を示す図である。
【図１４】実施形態１に係る画素値の外挿方法を示す図である。
【図１５】ステップS205-2の詳細を示すフローチャートである。
【発明を実施するための形態】
【００１０】
［実施形態１］
［装置の構成］
図1は本実施形態の画像処理部100の構成例を示す。極座標変換部102は、撮像装置によって撮影された撮像データを端子101から入力し、入力した撮影画像を示す撮像データを極座標上の画像に変換する。その際、極座標変換部102は、端子110から入力される回転振れ情報が表す回転中心の位置座標に極座標の原点を一致させる。回転振れ情報は、撮影時の撮像部の回転振れを示す。なお、撮像データは、CCDやCMOSセンサ等の撮像デバイスから出力された信号をアナログ-ディジタル(A/D)変換したデモザイキング（現像処理）前のデータ（以下、RAWデータと呼ぶ場合がある）である。画素値外挿部120は、極座標変換部102から取得した撮像データについて、後述の方法により撮像範囲内の画素値を外挿して撮像範囲外の画素値を決定する。
【００１１】
振れ角度計測部105は、端子110から入力される回転振れ情報に基づき、振れによる撮像装置の回転角度を計測する。露光条件記録部107は、端子109から入力されるシャッタの開期間を示す情報（露光情報）を記録する。PSF作成部106は、振れ角度計測部105及び露光条件記録部107から情報を入力して、極座標上で点像分布関数(point spread function: PSF)を作成する。デコンボリューション部103は、PSF作成部106が作成したPSFを入力して、デコンボリューションを行う。実空間変換部104は、デコンボリューション部103が出力する画像を再び実空間に変換し、変換結果のRAWデータを端子108に出力する。
【００１２】
［画像処理］
図2のフローチャートを用いて画像処理部100が実行する処理を説明する。極座標変換部102は、撮像データを入力する(S201)。ここで、撮像デバイスの画素(x, y)に単位時間当りに入射する光の強度をI(x,y)、角速度をω(t)、露光時間をTとする。時刻tに、撮像装置にはI(x, y)を-θ(T-t)だけ回転させた情報が入射するので、撮像データIblur(x, y)は次式で表される。なお、座標系の原点は、前述したように、回転振れ情報が表す回転中心の位置座標に一致させる。
【００１３】
Iblur(x, y) = 1/T・∫th(t)I{x・cosθ(T-t)+y・sinθ(T-t), -x・sinθ(T-t)+y・cosθ(T-t)}dt
= 1/T・∫th(T-t)I{x・cosθ(t)+y・sinθ(t), -x・sinθ(t)+y・cosθ(t)}dt      …(1)
= 1/T・∫ωh(θ)/ω(θ)・I{x・cosθ+y・sinθ, -x・sinθ+y・cosθ}dθ      …(2)
= 1/T・∫ωh'(θ)・I{x・cosθ+y・sinθ, -x・sinθ+y・cosθ}dθ            …(3)
ここで、関数h(t)はシャッタの開閉を表し、シャッタ開は1、シャッタ閉は0、
積分範囲はt=0〜T、
積分範囲はω=0〜ω。
【００１４】
式(1)から式(2)の変形では、積分変数を変換した。ω(t)=dθ/dtである。また、ω(θ)は、tとθの関係を利用してθを変数に、ω(t)を書き直した関数である。同様に、h(θ)は、tとθの関係を利用してθを変数に、h(t)を書き直した関数である。また、式(3)において、h'(θ)=h(θ)/ω(θ)である。
【００１５】
次に、露光条件記録部107は、シャッタの開期間を示す露光情報を取得する(S202)。また、振れ角度計測部105は、振れ角度θと時間の関係を示す回転振れ情報を取得する(S203)。そして、PSF作成部106は、詳細は後述するが、振れ角度計測部105と露光条件記録部107から入力されるデータに基づき、極座標上のPSFであるh'(θ)を算出する(S204)。
【００１６】
極座標変換部102は、撮像データを極座標上の画像に変換する(S205)。前述したように、この変換における直交座標系の原点は、端子110から入力される回転振れ情報が示す回転の中心座標に一致させる。極座標変換により式(3)は式(4)に変換される。
Iblur(r, Θ) = 1/T・∫ωh'(θ)I(r, Θ-θ)dθ
= 1/T・(h' * I)(r, Θ)              …(4)
ここで、式(3)における(x, y)はr(cosΘ, sinΘ)である。
【００１７】
式(4)は、平行移動に対する振れと同じ式であり、PSFであるh'(θ)によるコンボリューションを行ったものと見做すことができる。ただし、式(4)は理論的な式であり、実際のデータはディジタル値であるから、実空間から極座標空間への変換には何らかの補間が必要になる。任意の補間方法を用いることができるが、ここではバイキュービック法を用いるものとする。
【００１８】
次に、画素値外挿部120は、後述の方法により撮像範囲内の画素値を外挿することで撮像範囲外の画素値を決定する（S205-2）。続けてデコンボリューション部103は、詳細は後述するが、PSF作成部106の算出結果を基に式(4)のコンボリューションを打ち消すデコンボリューションを行う(S206)。デコンボリューションのアルゴリズムは、既存の任意のアルゴリズムを用いればよい。例えば、周波数空間上での除算、Lucy-Richardsonのアルゴリズム、Wienerフィルタを用いたアルゴリズム、正則化フィルタを用いたアルゴリズム等が挙げられる。本実施形態では、詳細は後述するが、シャッタの開閉を制御することでh'(θ)の形状をコントロールし、周波数空間上で除算を行うものとする。
【００１９】
実空間変換部104は、デコンボリューションによってI(r, Θ)が得られるので、I(r, Θ)を実空間表示I(x, y)に逆変換する(S207)。この逆変換も、実空間から極座標空間への変換と同様、補間処理が必要になる。そして、実空間変換部104は、I(x, y)を補正後の撮像データとして出力端子108に出力する(S208)。
【００２０】
図3は画像処理部100の動作原理を概念的に表す。つまり、極座標変換によって、回転振れを角度Θ軸方向の振れ（横振れ）に変換し、画像の横ぶれをデコンボリューションによって除去する。そして、横振れを除去した画像を実空間に戻し、回転振れを除去した画像を得る。
【００２１】
［PSFの作成方法］
図4はPSFの作成(S204)を説明するフローチャートである。PSF作成部106は、振れ角度計測部105から振れ角度θと時間を示す情報を入力し、角度θを時間で微分して角速度ω(t)を算出する(S401)。角速度ω(t)とθ(t)と組み合わせることにより、角速度をθの関数として表すことが可能になる。これをω(θ)とする。
【００２２】
次に、PSF作成部106は、露光条件記録部107から入力したシャッタの開期間を示すシャッタ開閉情報を含む露光情報と、振れ角度計測部105から入力した振れ角度θと時間を示す情報に基づき、関数h(t)をθの関数として取得する(S402)。これをh(θ)とする。次にPSF作成部106は、取得した情報に基づき、h'(θ)=h(θ)/ω(θ)を算出して(S403)、h'(θ)をPSFとして出力する(S404)。式(3)に示すように、h'(θ)が極座標上のPSFである。
【００２３】
図5は一般的な回転運動におけるPSFの一例を示す図で、横軸は角度（ラジアン）、縦軸はPSFの値を示している。シャッタ開の条件を0≦t≦Tにおいてh(t)=1、それ以外はh(t)=0とし、加速運動をしているとすると、ω(θ)が増大するのでPSFであるh'(θ)の値は減少する。
【００２４】
［デコンボリューション］
式(4)を周波数空間上に変換すると次式が得られる。
Iblur(f, ρ) = 1/T・h'(f, ρ)I(f, ρ)      …(5)
ここで、fはrの周波数変換に対応する変数、
ρはΘの周波数変換に対応する変数。
H'(f, ρ)は既知であるから、周波数空間上でIblur(f, ρ)をh'(f, ρ)で除算すれば、I(f, ρ)は原理的には求まる。しかし、ここには問題点があり、等角速度運動による振れを考え、ω(θ)が一定であるとして説明する。
【００２５】
図6Aは通常の露光条件（シャッタ開の条件）である0≦t≦Tにおいてh(t)=1、それ以外はh(t)=0の場合（シャッタの開期間において連続的にシャッタ開）のPSFの形状を示す。図6Bは図6Aに示すPSFを周波数特性を示す図である。なお、図6Aにおいて、横軸は角度（ラジアン）、縦軸はPSFの値を表す。また、図6Bにおいて、横軸は角度（ラジアン）、縦軸はH'(f, ρ)の絶対値を表す。
【００２６】
図6Bを参照すると、周期的に絶対値が0になる周波数が現れる。これは、その周波数に対応する情報の消失を表し、このような状態でデコンボリューションを行えば、情報が消失した周波数が存在することに対応する波形が現れる。そこで、情報の消失した周波数の発生を防ぐ。言い換えれば、PSFの絶対値が0になる周波数の発生を防ぐために、シャッタの開期間において、シャッタの開閉タイミング及び開（または閉）の長さをランダムに制御して（以下、シャッタ開ランダム制御）、小刻みにシャッタを開閉駆動する。
【００２７】
図7Aはシャッタ開ランダム制御を行った場合のPSFの形状を示す図、図7Bは図7Aに示すPSFの周波数特性を示す図である。シャッタ開ランダム制御を行うと、図7Bに示すように、情報が消失する周波数は存在しないので、Iblur(f, ρ)をh'(f, ρ)で除算すれば、理論的に、完全なデコンボリューションが可能になる。なお、シャッタ開ランダム制御は、撮像装置のシャッタ駆動部が行う。図8Aはシミュレーションによって回転振れを起こした画像を示し、図8Bは画像処理部100によって回転振れを補正した画像を示す。
【００２８】
［画素値外挿部120の動作］
以下で、画素値外挿部120の外挿処理(S205-2)について図12〜図14を参照して説明する。図12は以下で参照する位置p0〜p7の位置を示す。この説明では、撮像部の露光開始時刻をt0とし、時刻t1を経て時刻t2に露光を終了するものとする。また、露光中には回転振れが発生している。回転振れの中心を円の中心とする同心円上に、点p0〜p7をとる。回転振れにより、被写体はp0からp7の方向へ移動するものとする。時刻t0においては、点p0〜p7には被写体x0〜x7が写っているものとする。図12において撮像部の撮像範囲は矩形領域内であるが、ここでは撮像範囲外の点p5〜p7に相当する撮像部上の位置に像が結像していることについても、写っていると表現するものとする。
【００２９】
図13は時刻とともに被写体が移動する様子を示す。時刻t0からt1の間に、被写体x0〜x7は回転振れ方向に移動し、時刻t1において、点p1〜p7には被写体x0〜x6が写っている。また、時刻t2においては、点p2〜p7には被写体x0〜x5が写っている。ここで、時刻t0からt2までの露光で得た画像は、時刻t0、t1、t2のそれぞれに各点p0〜p4に写っている被写体からの光の強度の和であると考える。すなわち、点p2の画素値は被写体x0,x1,x2からの光の強度の和に対応し、その他の点についても同様である。
【００３０】
すなわち、被写体x2からの光の強度は、点p2〜p4の各画素値に反映される。点p2〜p4の画素値に対してデコンボリューションを行うことにより、被写体x2からの光の強度、すなわち振れを補正した画像を得ることができる。しかしながら、被写体x3からの光の強度は点p3〜p5の各画素値に反映されるが、点p5は撮像範囲外のために画素値を取得することができない。この場合、点p5の画素値として何らかの値を設定する必要がある。最も単純でよく行われる方法は点p5の画素値を0とすることである。しかし、単純に画素値を0としてしまうと、点p5が撮像範囲内である場合に取得するであろう画素値とは大きく離れることが考えられ、デコンボリューションにより計算した例えば被写体x3からの光の強度も実際の値からはずれてしまう。結果として、画像の端部にノイズが生じることとなる。
【００３１】
そこで本実施形態では点p5（および点p6,p7）の画素値に、よりノイズの発生しにくい値を設定することで撮像データの外挿を行い、外挿後データを生成する。本実施形態では、点p5,p6,p7の画素値に、点p4の画素値を設定する。図14(b)の実空間画像を参照して説明する。図14(b)において、点p2〜p6は回転振れ中心からの距離が等しい。この時、撮像範囲外の点p5,p6に対して、点p4の画素値を設定する。より一般的には、撮像範囲外の点に対して、回転振れ中心を中心とする同心円上で最も近い撮像範囲内の画素値を設定すればよい。
【００３２】
回転振れの方向を考慮して撮像範囲外の点に設定する画素値を決定することが、より好ましい。例えば図12の点pxに対しては、最も近い画素値を設定するとpyの画素値を設定することとなる。しかしながら、矢印の方向に回転振れが発生している場合、例えば振れ補正後のp4の画素値を得るためにpxの画素値を用いるが、pyの画素値を得るためにはpxの画素値を用いないことが考えられる。この場合、p4の画素値をpxの画素値として設定することがより好ましい。詳しい処理については以下で紹介する。
【００３３】
ステップS205-2の一例としての処理を図15を参照して以下で具体的に述べる。ステップS205において撮像データは座標(r,θ)（0≦r≦Rmax、0≦θ＜360）で表される極座標空間へ変換されている。Rmaxは、撮像範囲内の画素の何れかが有する最も大きいrの値を示す。また、撮像範囲外の画素に対しては、画素値としてnullが設定されているものとする。画素値外挿部120は極座標空間上で撮像データに対して外挿処理を行う。以下のステップS205-2の処理は、全て画素値外挿部120が行う。
【００３４】
まず、極座標空間内の半径rの１つを選択する(S205-2a)。例えば、最も小さい半径r=0から、順に大きい半径を選択していけばよい。続いて、極座標空間内の角度θの１つを選択する(S205-2b)。例えば、最も小さい角度θ=0から、順に大きい角度を選択していけばよい。次に、選択したrとθとで表される選択画素(r,θ)の画素値がnullであるか否かを判断する(S205-2c)。nullであれば、ステップS205-2dへ進む。nullではなければ、ステップS205-2eへ進む。
ステップS205-2dでは、選択画素(r,θ)の画素値を設定する。このとき、端子110から入力される回転振れ情報を参照する。回転振れ情報には、一連のシャッタ開閉による露光の開始から終了までの撮像部の回転角の範囲を示す回転角情報が含まれている。例えば、露光開始から露光終了までの間に撮像部が＋方向にのみ+3°回転したとすると、回転角情報は[0,+3]となる。また、撮像部が-2°回転した後に+3°回転し、最終的に+1°回転したとすると、回転角情報は[-2,+1]となる。回転角情報が[-2,+1]の場合には、撮像開始時に画素(r,θ+2)〜(r,θ-1)に写っている被写体が露光開始から終了までの何れかにおいて画素(r,θ)にも写るため、これらの画素のうち撮像範囲内の画素値を画素(r,θ)とするのがよい。特に、画素(r,θ+2)〜(r,θ-1)のうち画素(r,θ)に最も近い撮像範囲内の画素値を画素(r,θ)の画素値とするのがよい。一般的には、回転振れ情報が[a,b]であるとき、選択画素(r,θ)の画素値は、画素(r,θ-a)〜(r,θ-b)のうち、画素値がnullではなくて角度の差分θ-θnが最も小さい画素(r,θn)の画素値を選択画素の画素値とする。画素(r,θ-a)〜(r,θ-b)は、回転孤を構成する。この回転孤上の画素と、回転振れの回転中心と、選択画素(r,θ)とがなす角度は、回転角情報が示す回転角の範囲内である。もし回転孤上に画素値がnullではない、すなわち撮像範囲内の画素が存在しない場合には、選択画素(r,θ)の画素値はnullのままでよい。中心から同一距離である２点の角度の差分が最も小さいことは、２点が最近であることと等価である。
【００３５】
次に、半径rの全ての画素を選択したか否かを判断する(S205-2e)。選択していなければステップS205-2bに戻り、次の角度θを選択する。選択していれば、ステップS205-2fに進む。ステップS205-2fでは、全ての半径rを選択したか否かを判断する。選択していれば、ステップS205-2の処理を終了する。選択していなければ、ステップS205-2aに戻り、次の半径rを選択する。以上のステップS205-2の処理により、撮像データについて撮像範囲外の画素値を外挿したデータを得ることができる。
【００３６】
ステップS205-2の外挿処理は、他の方法で行うことも可能である。ステップS206で行うデコンボリューション処理で用いる撮像範囲外の画素値が、撮像範囲内の画素値を用いて外挿されていればよい。本実施形態の方法では極座標空間上で0≦r≦Rmaxである撮像範囲外の全ての画素について処理を行ってからデコンボリューションを行う。しかし、デコンボリューション処理で撮像範囲外の画素値を必要とした時に、逐次必要な画素値を外挿処理で得るようにしてもよい。また、極座標変換前に、実空間画像に対して外挿処理を行ってもよい。
【００３７】
また、例えば回転振れ情報が[a,b]であるとき、選択画素(r,θ)に対して、画素(r,θ-a)〜(r,θ-b)のうち、画素値がnullではなくて角度の差分θ-θnが最も小さい画素(r,θn)を選択する。そして、選択画素(r,θ)の画素値を、画素(r,θn + (θn - θ))、すなわち画素(r, 2θn - θ)の画素値としてもよい。つまり、半径rの円上で画素(r,θn)について画素(r,θ)と対称な画素(r, 2θn - θ)の画素値を画素(r,θ)に設定すればよい。画素(r, 2θn - θ)と画素(r,θn)との間の角度差はθn-θであり、画素(r,θn)と画素(r,θ)との間の角度差もθn-θである。これら３つの画素の半径は等しいため、画素(r, 2θn - θ)と画素(r,θn)との間の距離と、画素(r,θn)と画素(r,θ)との間の距離も等しい。
【００３８】
［実施形態２］
以下、本発明に係る実施形態2の画像処理を説明する。なお、実施形態2において、実施形態1と略同様の構成については、同一符号を付して、その詳細説明を省略する。実施形態1においては、回転振れ以外の振れを考慮しない画像処理部100を説明した。実施形態2においては、回転振れ以外の振れも考慮する撮像装置を説明する。
【００３９】
図9は撮像装置の撮像部の構成例を示すブロック図である。被写体の反射光は、レンズ902及びシャッタ903を介して撮像デバイス904に結像する。A/D変換部905は、撮像デバイス904が出力するアナログ信号をディジタル信号の撮像データに変換する。
【００４０】
シャッタ駆動部906は、上述したシャッタ開ランダム制御を含め、シャッタ903の開閉条件を設定し、シャッタ903の開閉を駆動する。また、前述した露光情報を画像処理部100に出力する。姿勢検出部907は、撮像装置の振れを検出し、シフト振れと回転振れに分類し、シフト振れ情報を撮像デバイス904に出力し、回転振れ情報を画像処理部100に出力する。なお、姿勢検出部907は、動きを測定するデバイスでもよいし、複数画像を取得して、動きを推定するデバイスでもよい。
【００４１】
撮像デバイス904は、シフト振れ情報に従い撮像デバイス904自体を動かしてシフト振れを補正する。図10はシフト振れの補正を説明する図である。図10において、Δx、Δyは姿勢検出部907によって検出されたシフト振れ量である。撮像デバイス904は、シフト振れ量Δx、Δyと逆の動きを行いシフト振れを補正する。なお、シフト振れ補正は、撮像デバイス904の動きによる補正に限らず、レンズ902の動きによる補正でも構わない。画像処理部100は、上述したように、回転振れ情報と露光情報に基づき、シフト振れが除去された後の撮像データの回転振れを補正する。
【００４２】
このように、シフト振れは撮像部で補正し、撮像部で補正が困難な回転振れを画像処理部100によって補正する。従って、シフト振れに回転振れが組み合わさったような複雑な振れも適切に補正することができる。
【００４３】
［実施形態３］
以下、本発明にかかる実施形態3の画像処理を説明する。なお、実施形態3において、実施形態1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。実施形態3においては、実施形態1の画像処理部をソフトウェアとして実装する例を説明する。
【００４４】
図11は撮像データファイル1100の形式を示す。図11に示す撮像データファイル1100は、回転振れ情報が記録される回転振れ情報タグ1101、露光情報が記録される露光情報タグ1102、撮像データが記録される画像部1103を有する。
例えばパーソナルコンピュータのCPUは、ソフトウェアとして実装された画像処理部100を実行する。そして、撮像データファイル1100を入力すると、回転振れ情報タグ1101、露光情報タグ1102の情報に基づき、画像部1103の撮像データの回転振れを補正し、補正後の撮像データを出力する。このように、図11に示す形式の撮像データファイル1100を読み込み、撮像データの回転振れを補正することができる。
【００４５】
［他の実施形態］
本発明は、上記実施形態1〜3と同等の処理を、コンピュータプログラムでも実現できる。この場合、図１をはじめとする構成要素の各々は関数、もしくはＣＰＵが実行するサブルーチンで機能させれば良い。また、通常、コンピュータプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納されており、それを、コンピュータが有する読取装置（ＣＤ−ＲＯＭドライブ等）にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、係るコンピュータ可読記憶媒体も本発明の範疇にあることは明らかである。
【図１】
2011004283.tif 000003
【図２】
2011004283.tif 000004
【図３】
2011004283.tif 000005
【図４】
2011004283.tif 000006
【図５】
2011004283.tif 000007
【図６】
2011004283.tif 000008
【図７】
2011004283.tif 000009
【図９】
2011004283.tif 000010
【図１０】
2011004283.tif 000011
【図１１】
2011004283.tif 000012
【図１２】
2011004283.tif 000013
【図１３】
2011004283.tif 000014
【図１４】
2011004283.tif 000015
【図１５】
2011004283.tif 000016
【図８】
2011004283.tif 000017