(57)【特許請求の範囲】
【請求項１】
画像を処理する処理部を有する画像処理装置において、
上記処理部は、
周波数空間において、初期画像データに補正画像データを加算することにより復元画像データを求める処理を行い、
上記初期画像データを「Ｉ０」とし、上記補正画像データを（Ａ）式で表される画像データとして、復元画像データを求める処理を行うことを特徴とする画像処理装置。
【数１】
0004763419.tif 000015
ただし、「ＩＭＧ′」は撮影画像データを表わす。「Ｈ」はフィードバック関数を表わす。「Ｇ」は変化要因を表わす。「ｎ」は復元画像データが原画像データに近似したものと推定できる任意の数を表わす。
【請求項２】
前記初期画像データを０とし、前記補正画像データを（Ｂ）式で表される画像データとして、復元画像データを求める処理を行うことを特徴とする請求項１記載の画像処理装置。
【数２】
0004763419.tif 000016
ただし、「ＩＭＧ′」は撮影画像データを表わす。「Ｈ」はフィードバック関数を表わす。「Ｇ」は変化要因を表わす。「ｎ」は復元画像データが原画像データに近似したものと推定できる任意の数を表わす。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
従来から、撮像部にＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅｓ）などの撮像素子を使用するカメラにより撮影を行った撮影画像は、撮影時の手ぶれ、撮影光学系の各種の収差、あるいは撮影光学系を構成するレンズの歪み等がある場合は、これが要因となり、撮影画像が劣化することが知られている。
【０００３】
このような撮影画像の劣化を防ぐ手段として、撮影画像の劣化の要因のうち、撮影時の手ぶれに関しては、レンズを動かす方式と撮影した画像を回路処理する方式の２つの方式が知られている。例えば、レンズを動かす方式としては、カメラの手ぶれを検出し、撮影光学系の中の所定のレンズを、検出した手ぶれによるカメラの移動に合わせて動かすことにより、撮像素子上における結像位置の移動を抑制する方式が知られている（特許文献1参照）。
【０００４】
また、回路処理する方式としては、カメラの撮影光学系の光軸の変動を角加速度センサ等により検出し、検出した角速度等から撮影時のぼけ状態を表す伝達関数を取得し、撮影画像に対し、取得した伝達関数の逆変換を行い、劣化のない画像を復元する方式が知られている（特許文献２参照）。
【０００５】
【特許文献１】特開平６−３１７８２４号公報（要約書参照）
【特許文献２】特開平１１−２４１２２号公報（要約書参照）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１記載の手ぶれ補正を採用したカメラは、モータ等のレンズを駆動するハードウェアのスペースが必要となり大型化してしまう。また、そのようなハードウェア自体やそのハードウェアを動かす駆動回路が必要となり、コストアップとなってしまう。
【０００７】
また、特許文献２記載の手ぶれ補正の場合は、上述した問題点はなくなるものの、次のような問題を有する。
【０００８】
第１に、取得する伝達関数は、角加速度センサ等により検出した角速度等に基づいて求めるものであり、ノイズやブレ情報誤差等に非常に弱く、これらのわずかな変動により、値が大きく変動する。そのため、逆変換で得られる復元画像は、手ぶれがない状態で写した画像とはほど遠いものとなり、実際上は利用できない。
【０００９】
第２に、ノイズ等を考慮した逆変換を行う場合、連立方程式の解の特異値分解等で解を推定する方法も採用できるが、その推定のための計算値が天文学的な大きさになり、現実的には解くことができなくなるリスクが高い。
【００１０】
そこで、本発明の課題は、画像を復元するに当たり、装置の大型化を防止すると共に、現実性のある回路処理方式を有する画像処理装置を提供し、併せて、処理時間の短縮化を図ることである。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の画像処理装置は、画像を処理する処理部を有する画像処理装置において、処理部は、周波数空間において、初期画像データに補正画像データを加算することにより復元画像データを求める処理を行うこととした。
【００１２】
本発明によれば、画像を復元するに当たり、装置の大型化を防止すると共に、現実性のある回路処理方式を有する画像処理装置を提供し、併せて、処理時間の短縮化を図ることができる。
【００１３】
また、他の発明は、上述の発明に加え、初期画像データを「Ｉ０」とし、補正画像データを（Ａ）式で表される画像データとして、復元画像データを求める処理を行うこととした。
【数１】
0004763419.tif 000002
ただし、「ＩＭＧ′」は撮影画像データを表わす。「Ｈ」はフィードバック関数を表わす。「Ｇ」は変化要因を表わす。「ｎ」は復元画像データが原画像データに近似したものと推定できる任意の数を表わす。
【００１４】
この構成を採用した場合、復元画像データを、初期画像データ「Ｉ０」に（Ａ）式で表される補正画像データを加算するという計算により求めるため、処理時間の短縮化をさらに図ることができる。
【００１５】
また、他の発明は、上述の発明に加え、初期画像データを０とし、補正画像データを（Ｂ）式で表される画像データとして、復元画像データを求める処理を行うこととした。
【数２】
0004763419.tif 000003
ただし、「ＩＭＧ′」は撮影画像データを表わす。「Ｈ」はフィードバック関数を表わす。「Ｇ」は変化要因を表わす。「ｎ」は復元画像データが原画像データに近似したものと推定できる任意の数を表わす。
【００１６】
この構成を採用した場合、初期画像データが０であるため、復元画像データを、（Ａ）式より項数の少ない（Ｂ）式により計算により求めるため、処理時間の短縮化をさらに図ることができる。
【発明の効果】
【００１７】
本発明によれば、画像を復元するに当たり、装置の大型化を防止すると共に、現実性のある回路処理方式を有する画像処理装置を提供し、併せて、処理時間の短縮化を図ることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の第１の実施の形態に係る画像処理装置１について図を参照しながら説明する。なお、この画像処理装置１は、撮像部にＣＣＤを使用した民生用のいわゆるデジタルカメラとしているが、撮像部にＣＣＤ等の撮像素子を用いる監視用カメラ、テレビ用カメラ用、内視鏡用カメラ等、他の用途のカメラとしたり、顕微鏡用、双眼鏡用、さらにはＮＭＲ撮影用等の画像診断装置等、カメラ以外の機器にも適用できる。
【００１９】
画像処理装置１は、人物等の被写体を撮影する撮像部２と、その撮像部２を駆動する制御系部３と、撮像部２で撮影された画像を処理する処理部４と、を有している。また、この実施の形態に係る画像処理装置１は、さらに処理部４で処理された画像を記録する記録部５と、角速度センサ等からなり、画像劣化等の変化の要因となる変化要因情報を検知する検出部６と、画像劣化等を生じさせる既知の変化要因情報を保存する要因情報保存部７を有する。
【００２０】
撮像部２は、レンズを有する撮影光学系やレンズを通過した光を電気信号に変換するＣＣＤやＣ−ＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）等の撮像素子を備える部分である。制御系部３は、撮像部２，処理部４、記録部５、検出部６および要因情報保存部７等、画像処理装置１内の各部を制御するものである。
【００２１】
処理部４は、画像処理プロセッサで構成されており、ＡＳＩＣ(Ａｐｐｌｉｃａｔｉｏｎ Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ)のようなハードウェアで構成されている。この処理部４は図示外の記録部を備え、この記録部に後述する処理用画像データにおける複素空間の高周波成分を有する画像データや、比較用画像データを生成する際の元となる任意の画像の画像データが保存されている。処理部４は、ＡＳＩＣのようなハードウェアとして構成されるのではなく、ソフトウェアで処理する構成としても良い。記録部５は、半導体メモリで構成されているが、ハードディスクドライブ等の磁気記録手段や、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等を使用する光記録手段等を採用しても良い。
【００２２】
検出部６は、図２に示すように、画像処理装置１の光軸であるＺ軸に対して垂直方向となるＸ軸、Ｙ軸の回りの速度を検出する２つの角速度センサを備えるものである。ところで、カメラで撮影する際の手ぶれは、Ｘ方向、Ｙ方向、Ｚ方向の各方向への移動やＺ軸回りの回動も生ずるが、各変動により最も大きな影響を受けるのは、Ｙ軸回りの回転とＸ軸回りの回転である。これら２つの変動は、ほんのわずかに変動しただけで、その撮影された画像は大きくぼける。このため、この実施の形態では、図２のＸ軸回りとＹ軸回りの２つの角速度センサのみを配置している。しかし、より完全を期すためＺ軸回りの角速度センサをさらに付加したり、Ｘ方向やＹ方向への移動を検出するセンサを付加しても良い。また、使用するセンサとしては、角速度センサではなく、角加速度センサとしても良い。
【００２３】
要因情報保存部７は、既知の劣化要因情報などの変化要因情報、例えば撮影光学系の収差等を保存しておく記録部である。なお、この実施の形態では、要因情報保存部７には、撮影光学系の収差やレンズのひずみの情報が保存されているが、後述する手ぶれによる画像の劣化を補正する際にはそれらの情報は、利用していない。
【００２４】
次に、以上のように構成された画像処理装置１の処理部４の処理方法を説明するに先立ち、本発明の考え方の概要を図３および図４に基づいて説明する。
【００２５】
図３中、「ｉ０」は、任意の初期画像のデータとする。「ｉ０′」は、初期画像データ「ｉ０」の劣化画像のデータを示し、比較のための比較用画像データである。「ｇ」は、検出部６で検出された変化要因関数（＝劣化要因情報（点像関数））である。「ｉｍｇ′」は、撮影画像のデータを指す。
【００２６】
「δ」は、撮影画像データ「ｉｍｇ′」と比較用画像データ「ｉ０′」とを比較して得た両画像データの差分のデータである。「ｈ」は、変化要因関数「ｇ」に基づくフィードバック関数である。「ｉ０＋ｎ」は、初期画像データ「ｉ０」に、差分のデータ「δ」を変化要因関数「ｇ」に基づいて配分して新たに生成した復元画像のデータ（復元画像データ）である。「ｉｍｇ」は、撮影された劣化画像である撮影画像データ「ｉｍｇ′」の元となった原画像のデータである。つまり、この原画像データ「ｉｍｇ」は、撮影画像データ「ｉｍｇ′」が変化する前の画像、または正しく撮影されたならば得られたはずの本来の画像のことである。具体的には、例えば、撮影操作時に手ぶれ等による画像の劣化がない状態で撮影されたと仮定したときの画像データである。ここで、「ｉｍｇ」と「ｉｍｇ′」の関係は、次の（Ｅ）式で現されるとする。
ｉｍｇ′＝ｉｍｇ＊ｇ  …（Ｅ）
「＊」は、重畳積分を表わす演算子である。
なお、差分のデータ「δ」は、対応する画素の単純な差分でも良い場合もあるが、一般的には、変化要因関数「ｇ」により異なり、次の（Ｆ）式で現される。
δ＝ｆ（ｉｍｇ′，ｉｍｇ，ｇ）…（Ｆ）
【００２７】
図３の処理ルーチンは、まず、任意の初期画像データ「ｉ０」を用意する（ステップＳ１０１）ことから始まる。この初期画像データ「ｉ０」としては、撮影画像データ「ｉｍｇ′」を用いても良く、また、黒ベタ、白ベタ、灰色ベタ、市松模様等どのような画像のデータを用いても良い。ステップＳ１０２で、（１）式の「ｉｍｇ」の代わりに初期画像データ「ｉ０」を入れ、変化要因関数「ｇ」により変化（劣化）させられた劣化画像である比較用画像データ「ｉ０′」を求める。次に、撮影画像データ「ｉｍｇ′」と比較用画像データ「ｉ０′」とを比較し、差分のデータ「δ」を算出する（ステップＳ１０３）。
【００２８】
次に、ステップＳ１０４で、この差分のデータ「δ」が所定値以上であるか否かを判断し、所定値以上であれば、ステップＳ１０５で復元画像のデータ（復元画像データ）を生成する処理を行う。すなわち、差分のデータ「δ」を、変化要因関数「ｇ」に基づくフィードバック関数「ｈ」に従って、初期画像データ「ｉ０」に配分し、復元画像データ「ｉ０＋ｎ」を生成する。その後、ステップＳ１０２において、初期画像データ「ｉ０」をステップＳ１０５で生成した復元画像データ「ｉ０＋ｎ」として比較用画像データ「ｉ０＋ｎ′」とを生成し、ステップＳ１０３で、撮像画像データ「ｉｍｇ′」と比較用画像データ「ｉ０＋ｎ′」を比較する。そうして、その比較の結果である差分のデータ「δ」の大きさをＳ１０４で判断する。
【００２９】
このように、ステップＳ１０４で、差分のデータ「δ」が所定値未満になるまで、スッテプＳ１０２，Ｓ１０３、Ｓ１０４，Ｓ１０５の処理を繰り返し、復元画像データ「ｉ０＋ｎ」を順次更新していく。なお、フィードバック関数「ｈ」は、ステップＳ１０３の差分のデータ「δ」が、前回の処理ルーチンのときよりも小さくなるようにする関数である。
【００３０】
ステップＳ１０４において、差分のデータ「δ」が所定値より小さい場合、処理を終了する（ステップＳ１０６）。そして、処理を終了した時点での復元画像データ「ｉ０＋ｎ」を原画像データ「ｉｍｇ」と推定する。
【００３１】
以上の処理方法の考え方をまとめると以下のようになる。すなわち、この処理方法においては、処理の解を逆問題としては解かず、合理的な解を求める最適化問題として解くのである。逆問題として解く場合、特許文献２の記載にもあるように、理論上は可能であるが、現実問題としては困難である。
【００３２】
最適化問題として解くということは、次の条件を前提としている。
すなわち、
（１）入力に対する出力は、一意に決まる。
（２）出力が同じであれば、入力は同じである。
（３）出力が同じになるように、入力を更新しながら反復処理することにより、解を収束させていく。
【００３３】
このことを換言すれば、図４（Ａ）（Ｂ）に示すように、撮影された画像である撮影画像データ「ｉｍｇ′」と近似である比較用画像データ「ｉ０′（ｉ０＋ｎ′）」を生成できれば、その生成の元のデータとなる初期画像データ「ｉ０」または復元画像データ「ｉ０＋ｎ」は、撮影画像データ「ｉｍｇ′」の元となる原画像データ「ｉｍｇ」に近似したものとなる。
【００３４】
ステップＳ１０４において、差分のデータ「δ」の判定基準となる値は、例えば、各データを８ビット（０〜２５５）で現した場合に「６」として、「６」より小さい、つまり「５」以下の時は、処理を終了することとする。
【００３５】
さらに、図３および図４に示す考え方の詳細を、図５，図６，図７，図８，図９，図１０，図１１および図１２に基づいて説明する。
【００３６】
（手ぶれの復元アルゴリズム）
手ぶれが無いとき、所定の画素に対応する光エネルギーは、露光時間中、その画素に集中する。また、手ぶれがある場合、光エネルギーは、露光時間中にぶれた画素に分散する。さらに、露光時間中のブレがわかれば、露光時間中のエネルギーの分散の仕方がわかるため、ぶれた画像からブレの無い画像を作ることが可能となる。
【００３７】
以下、簡単のため、横一次元で説明する。画素を左から順に、ｎ−１，ｎ，ｎ＋１，ｎ＋２，ｎ＋３，…，とし、ある画素「ｎ」に注目する。ブレが無いとき、露光時間中のエネルギーは、その画素に集中するため、エネルギーの集中度は「１．０」である。この状態を図５に示す。このときの撮影結果を、図６の表に示す。図６に示すものが、劣化しなかった場合の原画像データ「ｉｍｇ」となる。なお、各データは、ここでは、８ビット（０〜２５５）のデータで現している。
【００３８】
露光時間中にブレがあり、露光時間中の５０％の時間はｎ番目の画素に、３０％の時間はｎ＋１番目の画素に、２０％の時間はｎ＋２番目の画素に、それぞれブレていたとする。エネルギーの分散の仕方は、図７に示す表の通りとなる。変化要因関数「ｇ」は、このエネルギーの分散の仕方に対応した内容となっている。
【００３９】
ブレは、全ての画素で一様であるので、上ぶれ（縦ぶれ）が無いとすると、ブレの状況は、図８に示す表のとおりとなる。図８中の「撮影結果」として示されるデータが、原画像データ「ｉｍｇ」で、「ブレ画像」として示されるデータが、撮影画像データ「ｉｍｇ′」となる。具体的には、例えば「ｎ−３」の画素の「１２０」は、ぶれ情報である変化要因関数「ｇ」に基づき、「０．５」「０．３」「０．２」の配分比で、「ｎ−３」の画素に「６０」、「ｎ−２」の画素に「３６」、「ｎ−１」の画素に「２４」というように分散される。ここでは、「０．５」「０．３」「０．２」の配分比で分配することがフィードバック関数「ｈ」に対応する処理となっている。同様に、「ｎ−２」の画素のデータである「６０」は、「ｎ−２」に「３０」、「ｎ−１」に「１８」、「ｎ」に「１２」として分散する。
【００４０】
ステップＳ１０１に示す初期画像データ「ｉ０」としては、どのようなものでも採用できるが、ここでの説明に当たっては、例えば、撮影画像データ「ｉｍｇ′」を用いる。すなわち、ｉ０＝ｉｍｇ′として処理を開始する。図９の表中に「入力」とされたものが初期画像データ「ｉ０」に相当する。この初期画像データ「ｉ０」すなわち「ｉｍｇ′」に、ステップＳ１０２で変化要因関数「ｇ」を作用させる。すなわち、例えば、初期画像データ「ｉ０」の「ｎ−３」の画素の「６０」は、「ｎ−３」の画素に「３０」が、「ｎ−２」の画素に「１８」が、「ｎ−１」の画素に「１２」がそれぞれ割り振られる。他の画素についても同様に配分され、出力「ｉ０′」として示される比較用画像データ「ｉ０′」が生成される。このため、ステップＳ１０３の差分のデータ「δ」は、図９の最下欄に示すようになる。
【００４１】
この後、ステップＳ１０４にて差分のデータ「δ」の大きさを判断する。具体的には、差分のデータ「δ」が全て絶対値で５以下となった場合に処理を終了するが、図９に示す差分のデータ「δ」は、この条件に合わないため、ステップＳ１０５に進む。すなわち、差分のデータ「δ」をフィードバック関数「ｈ」を使用して、初期画像データ「ｉ０」に配分して、図１０中の「次回入力」として示される復元画像データ「ｉ０＋ｎ」を生成する。この場合、第１回目であるため、図１０では、ｉ０＋１と表している。
【００４２】
差分のデータ「δ」の配分は、例えば「ｎ−３」の画素のデータ「３０」に自分の所（＝「ｎ−３」の画素）の配分比である「０．５」をかけた「１５」を「ｎ−３」の画素に配分し、また「ｎ−２」の画素のデータ「１５」にその「ｎ−２」の画素にきているはずの配分比である「０．３」をかけた「４．５」を配分し、さらに、「ｎ−１」の画素のデータ「９．２」に、その「ｎ−１」の画素にきているはずの配分比である「０．２」をかけた「１．８４」を配分する。「ｎ−３」の画素に配分された総量は、「２１．３４」となり、この値を初期画像データ「ｉ０」（ここでは撮影画像データ「ｉｍｇ′」を使用）にプラスして、復元画像データ「ｉ０＋１」を生成している。
【００４３】
図１１に示すように、この復元画像データ「ｉ０＋１」がステップＳ１０２の入力画像のデータ（＝初期画像データ「ｉ０」）になり、ステップＳ１０２が実行され、ステップＳ１０３へと移行し、新しい差分のデータ「δ」を得る。その新しい差分のデータ「δ」の大きさをステップＳ１０４で判断し、所定値より大きい場合、ステップＳ１０５で新しい差分のデータ「δ」を前回の復元画像データ「ｉ０＋１」に配分し、新しい復元画像データ「ｉ０＋２」を生成する（図１２参照）。その後、ステップＳ１０２の遂行により、復元画像データ「ｉ０＋２」から新しい比較用画像データ「ｉ０＋２′」が生成される。このように、ステップＳ１０２，Ｓ１０３が実行された後、ステップＳ１０４へ行き、そこでの判断によりステップＳ１０５へ行ったり、ステップＳ１０６へ移行する。このような処理を繰り返す。
【００４４】
ここで説明している図３に示す処理ルーチンにおいては、ステップＳ１０４において、差分のデータ「δ」の大きさを判断する代わりに、Ｓ１０２からＳ１０５の処理ルーチンの処理回数を設定し、設定した回数の処理ルーチンを実行したときの復元画像データ「ｉ０＋ｎ」を原画像データ「ｉｍｇ」に近似したものとすることもできる。つまり、処理回数を、復元画像データ「ｉ０＋ｎ」が原画像データ「ｉｍｇ」に近似したと推定できる回数以上に設定することにより、差分のデータ「δ」の大きさの判断を行うことなく復元画像データ「ｉ０＋ｎ」を求めることができる。
【００４５】
そして、このように設定した回数の処理ルーチンを実行したときの復元画像データ「ｉ０＋ｎ」を原画像データ「ｉｍｇ」に近似したものとする処理の考え方を数式で表現すると次のようになる。なお、図３は、処理部４の処理方法の考え方を簡便に判りやすく説明するものである。そのため、この図３では、１つの画素に着目して説明しているものであるが、撮像部２の全撮像領域における復元画像データを求めるには、撮像領域の全画素について図３の処理ルーチンを実行する必要がある。
【００４６】
先ず、Ｓ１０１における初期画像データを「ｉ０」とすると、Ｓ１０２において、比較用画像データ「ｉ０′」は、初期画像データ「ｉ０」と変化要因関数「ｇ」の重畳積分として（１）式のように表される。
【数３】
0004763419.tif 000004
【００４７】
Ｓ１０３の差分のデータ「δ」は、（２）式のように表される。
【数４】
0004763419.tif 000005
【００４８】
Ｓ１０５の復元画像データ「ｉ０＋１」は、初期画像データ「ｉ０」に差分のデータ「δ」をフィードバック関数「ｈ」に基づいて配分したものとして（３）式のように表される。
【数５】
0004763419.tif 000006
【００４９】
そして次回の処理ルーチンでは、この（３）式の復元画像データ「ｉ０＋１」が、Ｓ１０２の「ｉ０」の代わりに入り、比較用画像データ「ｉ０＋１′」が、（４）式に表される形で生成される。
【数６】
0004763419.tif 000007
【００５０】
そうして、Ｓ１０３において、差分のデータ「δ」が、（５）式で表される。
【数７】
0004763419.tif 000008
【００５１】
そうすると、Ｓ１０５の復元画像データ「ｉ０＋２」は、（６）式のように表される。
【数８】
0004763419.tif 000009
【００５２】
以下同様に、「ｉ０＋３」，…を計算していくと、復元画像データ「ｉ０＋ｎ」は、（７）式のように表される。
【数９】
0004763419.tif 000010
【００５３】
つまり、復元画像データ「ｉ０＋ｎ」は、初期画像データ「ｉ０」に（７）式の「ｉ０」より後ろの項である（８）式を補正画像データとして加算したものと見ることができる。
【数１０】
0004763419.tif 000011
【００５４】
図３のステップＳ１０４の上述の説明において、差分のデータ「δ」の大きさを判断する代わりに、所定の設定回数以上の処理ルーチンを実行したときの復元画像データ「ｉ０＋ｎ」を、原画像データ「ｉｍｇ」に近似した画像データすることができる旨を説明した。しかしながら、上記（７）式を用いれば、図３の処理ルーチンを実行することなく、所定の設定回数のルーチンを行ったときと同じ復元画像データを計算により求めることができる。例えば、（７）式において、ｋ＝２０のときの計算値は、図３の処理ルーチンを２０回繰り返したときの復元画像データと等しくなる。
【００５５】
図３の処理ルーチンの回数を多くすれば多くするほど、復元画像データ「ｉ０＋ｎ」は、原画像データ「ｉｍｇ」に近づくが、処理に時間が長くなる。一方、上記の（７）式においては「ｋ」を大きくすることが、図３の処理ルーチンの回数を多くすることに相当することになる。しかしながら、「ｋ」を大きくしても計算時間は、「ｋ」に相当する回数の処理ルーチンを実行するのに比べて短いものとなる。
【００５６】
ところで、図３の処理ルーチンにおいて、初期画像データ「ｉ０」を黒ベタの画像、つまり、画像データを入力しない状態で開始することは、（７）式において、「ｉ０」を「０」にすることに相当する。
【００５７】
つまり、（７）式において、「ｉ０」＝「０」とすると、（７）式は、（９）式のように表される。
【数１１】
0004763419.tif 000012
【００５８】
つまり、復元画像データ「ｉ０＋ｎ」は、初期画像データ「ｉ０＝０」に（９）式を補正画像データとして加算したものと考えることができる。
【００５９】
なお、初期画像データ「ｉ０＝０」に（９）式を補正画像データとして加算して復元画像データ「ｉ０＋ｎ」を算出することと、（９）式についてｎ回の加算を行ったものを復元画像データ「ｉ０＋ｎ」とすることは等価である。つまり、初期画像データについては考えることなく、撮影画像データ「ｉｍｇ′」、変化要因関数「ｇ」およびフィードバック関数「ｈ」から、直接、復元画像データ「ｉ０＋ｎ」を算出することができる。
【００６０】
ところで、フィードバック関数「ｈ」については、例えば、手ぶれによるカメラの移動軌跡が図１３の線Ｌ（変化要因関数が「ｇ（ｘ，ｙ）」）で表されるとしたときに、フィードバック関数「ｈ」は、ｈ（−ｘ，−ｙ）＝ｇ（ｘ，ｙ）となる関数とすると、効率よく差分のデータ「δ」を小さくすることができる。
【００６１】
また、例えば、復元画像データ「ｉ０＋ｎ」を生成するとき、劣化等の変化要因の重心を算出し、その重心のみの差分、またはその差分の変倍を前回の復元画像データ「ｉ０＋ｎ−１」に加えることをフィードバック関数「ｈ」の内容としても良い。この考え方を図１４および図１５に基づいて以下に説明する。
【００６２】
図１４に示すように、原画像データ「ｉｍｇ」が画素１１〜１５，２１〜２５，３１〜３５，４１〜４５，５１〜５５で構成されているとき、図１４（Ａ）に示すように、画素３３に注目する。手ブレなどにより画素３３が画素３３，４３，５３，５２の位置へと動いていくと、劣化した画像である撮影画像データ「ｉｍｇ′」では、図１４（Ｂ）に示すように、画素３３，４３，５２，５３に初めの画素３３の影響が出る。
【００６３】
このような劣化の場合、画素３３が移動する際、画素４３の位置に最も長時間位置していたとすると、劣化、すなわち変化の要因の重心は、原画像データ「ｉｍｇ」中の画素３３に関しては撮影画像データ「ｉｍｇ′」では画素４３の位置にくる。これにより、差分のデータ「δ」は、図１５に示すように、撮影画像データ「ｉｍｇ′」と比較用画像データ「ｉ０′」のそれぞれの画素４３の差として計算する。その差分のデータ「δ」を、初期画像データ「ｉ０」や復元画像データ「ｉ０＋ｎ」の画素３３に加える。これが、フィードバック関数「ｈ」の内容になる。
【００６４】
また、先の例で言えば、「０．５」「０．３」「０．２」の３つの重心は、最も値が大きい「０．５」の位置であり、自分の位置となる。よって「０．３」や「０．２」の割り振りを考慮せず、差分のデータ「δ」の「０．５」または「０．５」の変倍分のみを自己の位置に割り振るようにすることになる。このような処理は、ブレのエネルギーが集中している場合に好適となる。つまり、この場合、自己の位置に差分のデータ「δ」の「０．５」または「０．５」の変倍分のみを割り振ることがフィードバック関数「ｈ」の内容になる。
【００６５】
ところで、（７）式と（９）式をフーリエ変換すると、（７）式は、（１０）式のように表され、また（９）式は、（１１）式のように表される。
【数１２】
0004763419.tif 000013
ただし、「Ｉ０＋ｎ」は、復元画像データ「ｉ０＋ｎ」をフーリエ変換した周波数空間における復元画像データを表わす。「Ｉ０」は、初期画像データ「ｉ０」をフーリエ変換した周波数空間における初期画像データを表わす。「ＩＭＧ′」は、撮影画像データ「ｉｍｇ′」をフーリエ変換した周波数空間における撮影画像データを表わす。「Ｈ」は、フィードバック関数「ｈ」をフーリエ変換した周波数空間におけるフィードバック関数を表わす。「Ｇ」は、変化要因「ｇ」をフーリエ変換した周波数空間における変化要因を表わす。
【００６６】
このように、（７）式、（９）式についてフーリエ変換を行った（１０）式、（１１）式を用いて周波数空間において計算をすることにより、（７）式、（９）式のような重畳積分を行うことなく、積算（掛け算）と加減算（加算と減算）により復元画像データ「Ｉ０＋ｎ」を算出することができる。このため、計算速度を先にしめした重畳積分を行う場合に比べて早くすることができる。
【００６７】
なお、（１０）式あるいは（１１）式により算出した復元画像データ「Ｉ０＋ｎ」については逆フーリエ変換により空間領域における画像データを求める。
【００６８】
なお、（１０）式と（１１）式において、ｋ→∞とすると、（１０）式と（１１）式はともに、（１２）式のように表される。
【数１３】
0004763419.tif 000014
この（１２）式の表すところは、原画像データ「ｉｍｇ」の周波数空間における原画像データを「ＩＭＧ」としたときの、ＩＭＧ・Ｇ＝ＩＭＧ′の逆変換に他ならない。
【００６９】
しかしながら、（１２）式のようにした場合、「Ｇ」が０または０に近い値のときは、復元画像データ（Ｉ∞）が不安定なものとなってしまうことが判る。ところが、（１０）式、（１１）式のように、ｎ回の加算を繰り返す等比級数にして復元画像データを求めるようにすると「Ｇ」が０または０に近い値のときであっても、安定した復元画像データを求めることができる。
【００７０】
上記（７）式、（９）式、（１０）式、（１１）式を用いて復元画像データを用いる処理を次のように応用してもよい。
【００７１】
データを図１６に示すように、撮影画像「データｉｍｇ′」が、画素１１〜１６，２１〜２６，３１〜３６，４１〜４６，５１〜５６，６１〜６６で構成されているとき、１つおきに画素を間引き、画素１１，１３，１５，３１，３３，３５，５１，５３，５５からなる４分の１の大きさの縮小された縮小撮影画像データ「Ｓｉｍｇ′」を生成する。
【００７２】
このように、撮影画像データ「ｉｍｇ′」を間引き、間引かれたデータである縮小撮影画像データ「Ｓｉｍｇ′」を生成し、その縮小撮影画像データ「Ｓｉｍｇ′」について、（７）式あるいは（９）式を用いて縮小撮影画像データ「Ｓｉｍｇ′」についての復元画像データ「Ｓｉ０＋ｎ」を求める。そして、この復元画像データ「Ｓｉ０＋ｎ」と縮小撮影画像データ「Ｓｉｍｇ′」についての伝達関数を求め、この伝達関数を拡大し、拡大した間を補間して、この修正した伝達関数を、縮小していない撮像領域全体の撮影画像データ「ｉｍｇ′」に対する伝達関数とする。そして、その修正した伝達関数を用いて、周波数空間でデコンボリューション計算（ボケを含む画像群から計算によってボケを除去する計算）を行い、復元画像データ「ｉ０＋ｎ」を求めるようにしてもよい。なお、復元画像データ「ｉ０＋ｎ」を（７）式の初期画像データ「ｉ０」として使用してよい。
【００７３】
あるいは、縮小された縮小撮影画像データ「Ｓｉｍｇ′」に対して（１０）式あるいは（１１）式を用いて、縮小撮影画像データ「Ｓｉｍｇ′」についての周波数空間における縮小撮影画像データ「ＳＩＭＧ′」と復元画像データ「ＳＩ０＋ｎ」を求める。そして、この縮小撮影画像データ「ＳＩＭＧ′」と復元画像データ「ＳＩ０＋ｎ」についての伝達関数を求め、この伝達関数を拡大し、拡大した間を補間して、この修正した伝達関数を、縮小していない撮像領域全体の撮影画像データ「ＩＭＧ′」に対する伝達関数とする。そうして、この伝達関数を用いて復元画像データ「Ｉ０＋ｎ」を求める。この復元画像データ「Ｉ０＋ｎ」を（１０）式の初期画像データ「Ｉ０」として使用してよい。
【００７４】
また、縮小撮影画像データ「Ｓｉｍｇ′」は、図１７に示すように、撮影画像データ「ｉｍｇ′」が、画素１１〜１６，２１〜２６，３１〜３６，４１〜４６，５１〜５６，６１〜６６で構成されているとき、その中央の領域である、画素３２，３３，３４，４２，４３，４４からなる領域を一部の領域としてもよい。ただし、縮小撮影画像データ「Ｓｉｍｇ′」をこのように取り出してくる場合は、取り出してくる領域が、変動領域よりも充分大きな領域とする必要がある。図５等に示した先の例では、３画素に渡って変動しているので、３画素以上の領域を取り出してくる必要がある。
【００７５】
なお、補正画像データとして加算する画像データは、（７）式、（９）式、（１０）式、（１１）式の計算式により算出したものに限らず、これらの計算式に補正を加えたもの、あるいは、（７）式、（９）式、（１０）式、（１１）式における補正画像データにさらに補正のための画像データを加減（プラス・マイナス）したものを用いることもできる。
【００７６】
また、上述した各処理方法は、プログラム化されても良い。また、プログラム化されたものが記憶媒体、例えばＣＤ（Ｃｏｍｐａｃｔ Ｄｉｓｃ）、ＤＶＤ、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ）メモリに入れられ、コンピュータによって読みとり可能とされても良い。この場合、画像処理装置１は、その記憶媒体内のプログラムを読み込む読み込み手段を持つこととなる。さらには、そのプログラム化されたものが画像処理装置１の外部のサーバに入れられ、必要によりダウンロードされ、使用されるようにしても良い。この場合、画像処理装置１は、その記憶媒体内のプログラムをダウンロードする通信手段を持つこととなる。
【００７７】
以上の説明においては、要因情報保存部７に保存されている情報を利用しなかったが、ここに保存されている既知の劣化要因（変化要因）、例えば、光学収差やレンズのひずみなどのデータを使用するようにしても良い。その場合、例えば、ブレの情報と光学収差の情報を合わせて１つの変化要因関数（劣化要因関数）として捉えて計算を行うのが好ましいが、ブレの情報による変化要因関数での計算を終了した後に光学収差の情報による変化要因関数での計算を行うようにしても良い。また、この要因情報保存部７を設置しないようにして、撮影時の動的要因、例えばブレのみに関する変化要因関数により画像を復元しても良い。
【００７８】
なお、変化要因関数「ｇ」としては、劣化要因の関数のみではなく、単に画像を変化させるものや、劣化とは逆に、画像を良くするものを含むものとする。また、角速度検出センサは、例えば、５μｓｅｃ毎に角速度を検出する。また、角速度検出センサで検出したブレの生データは、センサ自体の校正が不十分なときは、実際のブレとは対応しない。よって実際のブレに対応させるため、センサが校正されていないときは、センサで検出した生データに所定の倍率をかけたりする補正が必要とされる。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施の形態に係る画像処理装置の主要構成を示すブロック図である。
【図２】図１に示す画像処理装置の概要を示す外観斜視図で、角速度センサの配置位置を説明するための図である。
【図３】図１に示す画像処理装置の処理部で行う処理方法の考え方の概要を説明するためのフロー図である。
【図４】図３に示す処理方法の考え方の概念を説明するための図である。
【図５】図３に示す処理方法の考え方の概要を、手ぶれを例にして具体的に説明するための図で、手ぶれのないときのエネルギーの集中を示す表である。
【図６】図３に示す処理方法の考え方の概要を、手ぶれを例にして具体的に説明するための図で、手ぶれのないときの画像データを示す図である。
【図７】図３に示す処理方法の考え方の概要を、手ぶれを例にして具体的に説明するための図で、手ぶれが生じたときのエネルギーの分散を示す図である。
【図８】図３に示す処理方法の考え方の概要を、手ぶれを例にして具体的に説明するための図で、任意の画像から比較用画像データを生成する状況を説明するための図である。
【図９】図３に示す処理方法の考え方の概要を、手ぶれを例にして具体的に説明するための図で、比較用画像データと、処理対象となるぶれた原画像とを比較して、差分のデータを生成する状況を説明するための図である。
【図１０】図３に示す処理方法の考え方の概要を、手ぶれを例にして具体的に説明するための図で、差分のデータを配分し任意の画像に加えることで復元画像データを生成する状況を説明するための図である。
【図１１】図３に示す処理方法の考え方の概要を、手ぶれを例にして具体的に説明するための図で、生成された復元画像データから新たな比較用画像データを生成し、そのデータと処理対象となるぶれた原画像とを比較して差分のデータを生成する状況を説明するための図である。
【図１２】図３に示す処理方法の考え方の概要を、手ぶれを例にして具体的に説明するための図で、新たに生成された差分のデータを配分し、新たな復元画像データを生成する状況を説明するための図である。
【図１３】変化要因関数「ｇ」の一例を示す図である。
【図１４】変化要因関数の重心を利用してフィードバック関数を求める場合を説明するための図で、（Ａ）は原画像のデータ中の１つの画素に注目する状態を示す図で、（Ｂ）は撮影画像データを示す図中で、注目した画素のデータが拡がる状態を示す図である。
【図１５】図１４に示す処理方法である変化要因関数の重心を利用してフィードバック関数を求める場合を説明するための図である。
【図１６】実施の形態における変形例を説明するための図で、（Ａ）は処理対象となる撮影画像データを示し、（Ｂ）は（Ａ）のデータを間引いたデータを示す図である。
【図１７】実施の形態における他の変形例を説明するための図で、（Ａ）は処理対象となる撮影画像データを示し、（Ｂ）は（Ａ）のデータの一部を取り出したデータを示す図である。
【符号の説明】
【００８０】
１  画像処理装置
２  撮影部
３  制御系部
４  処理部
５  記録部
６  検出部
７  要因情報保存部
ｉ０，Ｉ０  初期画像のデータ（任意の画像のデータ）
ｉ０′，Ｉ０′  比較用画像データ
ｇ，Ｇ  変化要因（劣化要因）
ｉｍｇ′，ＩＭＧ′  撮影画像データ（撮影された画像）
ｈ，Ｈ  フィードバック関数
ｉ０＋ｎ，Ｉ０＋ｎ  復元画像データ
【図１】
0004763419.tif 000017
【図２】
0004763419.tif 000018
【図３】
0004763419.tif 000019
【図４】
0004763419.tif 000020
【図５】
0004763419.tif 000021
【図６】
0004763419.tif 000022
【図７】
0004763419.tif 000023
【図８】
0004763419.tif 000024
【図９】
0004763419.tif 000025
【図１０】
0004763419.tif 000026
【図１１】
0004763419.tif 000027
【図１２】
0004763419.tif 000028
【図１３】
0004763419.tif 000029
【図１４】
0004763419.tif 000030
【図１５】
0004763419.tif 000031
【図１６】
0004763419.tif 000032
【図１７】
0004763419.tif 000033