(57)【特許請求の範囲】
【請求項１】
手ぶれによる、対象画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１のステップ、
前記第１のステップにより決定された座標変換行列を利用して対象画像上の各画素位置における手ぶれベクトルを推定する第２のステップ、
対象画像上の各画素値に対し、その位置の前記第２のステップで推定された手ぶれベクトルに応じたボケ補正を施す第３のステップ、
予め用意された、手ぶれの速度が一様でない手ぶれパターンを含む複数の典型的な手ぶれパターンの点広がり関数に対応した複数のボケ補正関数の中から、前記第３のステップにおいてボケ補正に利用するためのボケ補正関数をユーザが選択する第４のステップ
を含むことを特徴とする手ぶれ画像補正方法。
【請求項２】
手ぶれによる、対象画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１のステップ、
前記第１のステップにより決定された座標変換行列を利用して対象画像上の各画素位置における手ぶれベクトルを推定する第２のステップ、
対象画像上の各画素値に対し、その位置の前記第２のステップで推定された手ぶれベクトルに応じたボケ補正を施す第３のステップ、
対象画像の手ぶれによる点広がり関数を推定する第４のステップ、
前記第４のステップにより推定された点広がり関数に最も類似した点広がり関数を、予め用意された複数の典型的な点広がり関数の中から選択する第５のステップ、
前記第５のステップで選択された典型的点広がり関数に対応したボケ補正関数を、予め用意された複数のボケ補正関数の中から選択する第６のステップ
を含み、
前記第６のステップで選択されたボケ関数が前記第３のステップにおいてボケ補正に用いられることを特徴とする手ぶれ画像補正方法。
【請求項３】
手ぶれによる、対象画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１のステップ、
前記第１のステップにより決定された座標変換行列を利用して対象画像上の各画素位置における手ぶれベクトルを推定する第２のステップ、
対象画像上の各画素値に対し、その位置の前記第２のステップにより推定された手ぶれベクトルに応じたボケ補正を施す第３のステップ、
予め用意された点広がり関数のグラフをディスプレイの画面に表示する第４のステップ、
前記画面に表示された点広がり関数のグラフをポインティングデバイスの操作に従って編集する第５のステップ、
前記第５のステップによる編集後の点広がり関数のグラフに対応して、前記第３のステップにおいてボケ補正に用いられるボケ補正関数を修正する第６のステップ
を含むことを特徴とする手ぶれ画像補正方法。
【請求項４】
手ぶれによる、対象画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１のステップ、
前記第１のステップにより決定された座標変換行列を利用して対象画像上の各画素位置における手ぶれベクトルを推定する第２のステップ、
対象画像上の各画素値に対し、その位置の前記第２のステップで推定された手ぶれベクトルに応じたボケ補正を施す第３のステップ、
対象画像の手ぶれによる点広がり関数のグラフをディスプレイの画面に表示する第４のステップ、
前記画面に表示された点広がり関数のグラフをポインティングデバイスの操作に従って編集する第５のステップ、
前記第５のステップによる編集後の点広がり関数に対応したボケ補正関数を生成する第６のステップ
を含み、
前記第６のステップにより生成されたボケ補正関数が前記第３のステップにおいてボケ補正に用いられることを特徴とする手ぶれ画像補正方法。
【請求項５】
前記第１のステップは、対象画像上の複数の位置における手ぶれの方向及び大きさを、対象画像に基づいて推定するステップを含み、当該ステップにより推定された手ぶれの方向及び大きさに基づいて、手ぶれによる、対象画像上の画素の回転及び平行移動を表す座標変換行列を決定することを特徴とする、請求項１から４のいずれか１項に記載の手ぶれ画像補正方法。
【請求項６】
前記第３のステップにおいて、手ぶれベクトルに沿った補間演算によってボケ補正が行われることを特徴とする請求項１から５のいずれか１項に記載の手ぶれ画像補正方法。
【請求項７】
請求項１から６のいずれか１項に記載の手ぶれ画像補正方法の各ステップをコンピュータに実行させるためのプログラムが記録されたコンピュータ読み取り可能記録媒体。
【請求項８】
被写体を撮像素子により撮像しデジタル画像を得る撮像装置であって、
手ぶれによる、デジタル画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１の手段、
前記第１の手段により決定された座標変換行列を利用してデジタル画像上の各画素位置における手ぶれベクトルを推定する第２の手段、
デジタル対象画像上の各画素値に対し、その位置の前記第２の手段により推定された手ぶれベクトルに応じたボケ補正を施す第３の手段、
予め用意された、手ぶれの速度が一様でない手ぶれパターンを含む複数の典型的な手ぶれパターンの点広がり関数に対応した複数のボケ補正関数の中から、前記第３の手段においてボケ補正に利用するためのボケ補正関数をユーザが選択するための第４の手段
を含むことを特徴とする撮像装置。
【請求項９】
被写体を撮像素子により撮像しデジタル画像を得る撮像装置であって、
手ぶれによる、デジタル画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１の手段、
前記第１の手段により決定された座標変換行列を利用してデジタル画像上の各画素位置における手ぶれベクトルを推定する第２の手段、
デジタル画像上の各画素値に対し、その位置の前記第２の手段により推定された手ぶれベクトルに応じたボケ補正を施す第３の手段、
デジタル画像の手ぶれによる点広がり関数を推定する第４の手段、
前記第４の手段により推定された点広がり関数に最も類似した点広がり関数を、予め用意された複数の典型的な点広がり関数の中から選択する第５の手段、
前記第５の手段により選択された典型的点広がり関数に対応したボケ補正関数を、予め用意された複数のボケ補正関数の中から選択する第６の手段
を含み、
前記第６の手段で選択されたボケ関数が前記第３の手段においてボケ補正に用いられることを特徴とする撮像装置。
【請求項１０】
被写体を撮像素子により撮像しデジタル画像を得る撮像装置であって、
手ぶれによる、デジタル画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１の手段、
前記第１の手段により決定された座標変換行列を利用してデジタル画像上の各画素位置における手ぶれベクトルを推定する第２の手段、
デジタル画像上の各画素値に対し、その位置の前記第２の手段により推定された手ぶれベクトルに応じたボケ補正を施す第３の手段、
予め用意された点広がり関数のグラフをディスプレイの画面に表示する第４の手段、
前記画面に表示された点広がり関数のグラフをポインティングデバイスの操作に従って編集する第５の手段、
前記第５の手段による編集後の点広がり関数のグラフに対応して、前記第３の手段においてボケ補正に用いられるボケ補正関数を修正する第６の手段
を含むことを特徴とする撮像装置。
【請求項１１】
被写体を撮像素子により撮像しデジタル画像を得る撮像装置であって、
手ぶれによる、デジタル画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１の手段、
前記第１の手段により決定された座標変換行列を利用してデジタル画像上の各画素位置における手ぶれベクトルを推定する第２の手段、
デジタル画像上の各画素値に対し、その位置の前記第２の手段により推定された手ぶれベクトルに応じたボケ補正を施す第３の手段、
デジタル画像の手ぶれによる点広がり関数のグラフをディスプレイの画面に表示する第４の手段、
前記画面に表示された点広がり関数のグラフをポインティングデバイスの操作に従って編集する第５の手段、
前記第５の手段による編集後の点広がり関数に対応したボケ補正関数を生成する第６の手段
を含み、
前記第６の手段により生成されたボケ補正関数が前記第３の手段においてボケ補正に用いられることを特徴とする撮像装置。
【請求項１２】
前記第１の手段は、デジタル画像上の複数の位置における手ぶれの方向及び大きさを、デジタル画像に基づいて推定する手段を含み、当該手段により推定された手ぶれの方向及び大きさに基づいて、手ぶれによる、デジタル画像上の画素の回転及び平行移動を表す座標変換行列を決定することを特徴とする、請求項８から１１のいずれか１項に記載の撮像装置。
【請求項１３】
前記第３の手段において、手ぶれベクトルに沿った補間演算によってボケ補正が行われることを特徴とする請求項８から１２のいずれか１項に記載の撮像装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、手ぶれによる画像の劣化を補正する技術に関する。
【０００２】
【従来の技術】
デジタルカメラ等で被写体を撮影する際、露光中のカメラの動き、いわゆる手ぶれによるボケが撮影画像に生じる。手ぶれによる画像の劣化を避けるため、従来から様々な技術が開発されてきた。
【０００３】
例えば、手ぶれの動きを検知するための加速度センサ等をカメラに装備しておき、同センサの検出信号を画像の動きに換算し、その画像の動きを補償する方向にカメラの光学系（プリズム、レンズ、あるいは撮像素子）を機械的に移動させる方法が知られている（例えば特許第２６３７４６４号）。
【０００４】
手ぶれによる仮想的な点状被写体の画像上での動きがボケに相当し、しばしば点広がり関数と呼ばれる。撮影時におけるシャッターの開口率の経時変化と、加速度センサ等で検出したカメラ光軸の動きとから、点広がり関数を推定し、その逆補正を画像全体に施すことによって手ぶれを補正する方法も知られている（特開平７−２２６９０５号）。
【０００５】
さらに、加速度センサ等を利用しないで、画像から手ぶれを推定する研究も古くからなされている。例えば文献「A．O．Aboutalib  and  L．M．Silverman；Rotation  of  Motion  Degraded  Images；IEEE  Trans．Circuits  and  Systems，p．278，1957」に、ぶれの大きさの推定に自己相関関数を利用できることが記載されている。また、手ぶれの生じた方向では、ぶれが均一であると近似できれば一様な濃度（輝度）であるはずであるから、ぶれ方向に画像の自己相関関数をとり、これを微分すると、ぶれ量に相当する間隔で微分値が極小を示し、ぶれのない方向では零点で極大を示すので、ぶれの大きさを推定できることが文献「Y．Yitzhaky  and  N．S．Kopeika；Identification  of  Blur  Parameters  from  Motion  Blurred  Images；Graphical  Models  and  Image  Processing  Vol．59，pp．310−320，1997」に、記載されている。ぶれ方向の推定に関しては、例えば文献「R．Fabian  and  D．Malah；Robust  Identification  and  Out−Of−Focus  Blur  Parameters  from  Blurred  and  Noisy  Images；Graphical  Models  and  Image  Processing，Vol．53，pp.403−412，1991」に、空間周波数分布を利用する方法が述べられている。
【０００６】
【発明が解決しようとする課題】
撮影時にカメラが光軸周りに回転したような場合、画像上の手ぶれが不均一になる。本発明の目的は、そのような不均一な回転及び平行移動を含む手ぶれが生じた場合にも、前記特許第２６３７４６４号のような機械的な操作によらずにシャープな画像を復元可能な手ぶれ画像補正方法及び撮像装置を提供することにある。本発明のもう一つの目的は、光軸のぶれを検出するための加速度センサ等を持たない普通のカメラで撮影した画像に対しても、不均一な手ぶれを精度よく補正可能な手ぶれ画像補正方法を提供することにある。本発明の他の目的は、光軸のぶれを検出するための加速度センサ等を装備しなくとも、不均一な手ぶれを精度よく補正した画像を得られる撮像装置を提供することにある。
【０００７】
手ぶれの速度は、手ぶれの最初から最後まで一様であるとは限らない。手ぶれの速度が時間的に変化すると、点広がり関数の形も変化する。本発明の他の目的は、手ぶれの速度が時間的に変動した場合にも、適切な手ぶれ補正が可能な手ぶれ画像補正方法及び撮像装置を提供することにある。
【０００８】
シャッターの開口率の経時変化による光量の変化をそのまま反映した画像データが得られることを前提にした、特開平７−２２６９０５号のような方法では、良好な手ぶれ補正が期待できない場合がある。この問題は、近年普及してきたデジタルカメラでは特に顕著である。一般的なデジタルカメラにおいては、レンズ系で結像された光像がＣＣＤのような撮像素子によって電気信号に変換されるが、この電気信号は外部の明るさや色の偏り（晴天の夕方は赤が強く、蛍光灯の下では青が強い）等の撮影環境条件に応じて補正されるため、シャッターの開口率の経時変化による光量の変化をそのまま反映した画像データが得られるものではないからである。本発明のもう一つの目的は、上に述べたような撮影環境条件に応じた補正が行われた場合にも、適切な手ぶれ補正が可能な手ぶれ画像補正方法及び撮像装置を提供することにある。
【０００９】
【課題を解決するための手段】
請求項１乃至７記載の発明によれば、改良された手ぶれ画像補正方法が提供される。その特徴は以下の通りである。
【００１０】
請求項１記載の発明による手ぶれ画像補正方法は、
手ぶれによる、対象画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１のステップ、
前記第１のステップにより決定された座標変換行列を利用して対象画像上の各画素位置における手ぶれベクトルを推定する第２のステップ、
対象画像上の各画素値に対し、その位置の前記第２のステップで推定された手ぶれベクトルに応じたボケ補正を施す第３のステップ、
予め用意された、手ぶれの速度が一様でない手ぶれパターンを含む複数の典型的な手ぶれパターンの点広がり関数に対応した複数のボケ補正関数の中から、前記第３のステップにおいてボケ補正に利用するためのボケ補正関数をユーザが選択する第４のステップを含むことを特徴とする。
【００１１】
請求項２記載の発明による手ぶれ画像補正方法は、
手ぶれによる、対象画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１のステップ、
前記第１のステップにより決定された座標変換行列を利用して対象画像上の各画素位置における手ぶれベクトルを推定する第２のステップ、
対象画像上の各画素値に対し、その位置の前記第２のステップで推定された手ぶれベクトルに応じたボケ補正を施す第３のステップ、
対象画像の手ぶれによる点広がり関数を推定する第４のステップ、
前記第４のステップにより推定された点広がり関数に最も類似した点広がり関数を、予め用意された複数の典型的な点広がり関数の中から選択する第５のステップ、
前記第５のステップで選択された典型的点広がり関数に対応したボケ補正関数を、予め用意された複数のボケ補正関数の中から選択する第６のステップ
を含み、
前記第６のステップで選択されたボケ関数が前記第３のステップにおいてボケ補正に用いられることを特徴とする。
【００１２】
請求項３記載の発明による手ぶれ画像補正方法は、
手ぶれによる、対象画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１のステップ、
前記第１のステップにより決定された座標変換行列を利用して対象画像上の各画素位置における手ぶれベクトルを推定する第２のステップ、
対象画像上の各画素値に対し、その位置の前記第２のステップにより推定された手ぶれベクトルに応じたボケ補正を施す第３のステップ、
予め用意された点広がり関数のグラフをディスプレイの画面に表示する第４のステップ、
前記画面に表示された点広がり関数のグラフをポインティングデバイスの操作に従って編集する第５のステップ、
前記第５のステップによる編集後の点広がり関数のグラフに対応して、前記第３のステップにおいてボケ補正に用いられるボケ補正関数を修正する第６のステップを含むことを特徴とする。
【００１３】
請求項４記載の発明による手ぶれ画像補正方法は、
手ぶれによる、対象画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１のステップ、
前記第１のステップにより決定された座標変換行列を利用して対象画像上の各画素位置における手ぶれベクトルを推定する第２のステップ、
対象画像上の各画素値に対し、その位置の前記第２のステップで推定された手ぶれベクトルに応じたボケ補正を施す第３のステップ、
対象画像の手ぶれによる点広がり関数のグラフをディスプレイの画面に表示する第４のステップ、
前記画面に表示された点広がり関数のグラフをポインティングデバイスの操作に従って編集する第５のステップ、
前記第５のステップによる編集後の点広がり関数に対応したボケ補正関数を生成する第６のステップを含み、
前記第６のステップにより生成されたボケ補正関数が前記第３のステップにおいてボケ補正に用いられることを特徴とする。
【００１４】
請求項５記載の発明の特徴は、請求項１から４のいずれか１項に記載の発明による手ぶれ画像補正方法において、前記第１のステップは、対象画像上の複数の位置における手ぶれの方向及び大きさを、対象画像に基づいて推定するステップを含み、当該ステップにより推定された手ぶれの方向及び大きさに基づいて、手ぶれによる、対象画像上の画素の回転及び平行移動を表す座標変換行列を決定することである。
【００１５】
請求項６記載の発明の特徴は、請求項１から５のいずれか１項に記載の発明による手ぶれ画像補正方法において、前記第３のステップで、手ぶれベクトルに沿った補間演算によってボケ補正が行われることである。
【００１６】
請求項８乃至１３記載の発明によれば、被写体を撮像素子により撮像しデジタル画像を得る、改良された撮像装置が提供される。その特徴は以下の通りである。
【００１７】
請求項８記載の発明による撮像装置は、
手ぶれによる、デジタル画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１の手段、
前記第１の手段により決定された座標変換行列を利用してデジタル画像上の各画素位置における手ぶれベクトルを推定する第２の手段、
デジタル対象画像上の各画素値に対し、その位置の前記第２の手段により推定された手ぶれベクトルに応じたボケ補正を施す第３の手段、
予め用意された、手ぶれの速度が一様でない手ぶれパターンを含む複数の典型的な手ぶれパターンの点広がり関数に対応した複数のボケ補正関数の中から、前記第３の手段においてボケ補正に利用するためのボケ補正関数をユーザが選択するための第４の手段
を含むことを特徴とする。
【００１８】
請求項９記載の発明による撮像装置は、
手ぶれによる、デジタル画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１の手段、
前記第１の手段により決定された座標変換行列を利用してデジタル画像上の各画素位置における手ぶれベクトルを推定する第２の手段、
デジタル画像上の各画素値に対し、その位置の前記第２の手段により推定された手ぶれベクトルに応じたボケ補正を施す第３の手段、
デジタル画像の手ぶれによる点広がり関数を推定する第４の手段、
前記第４の手段により推定された点広がり関数に最も類似した点広がり関数を、予め用意された複数の典型的な点広がり関数の中から選択する第５の手段、
前記第５の手段により選択された典型的点広がり関数に対応したボケ補正関数を、予め用意された複数のボケ補正関数の中から選択する第６の手段
を含み、
前記第６の手段で選択されたボケ関数が前記第３の手段においてボケ補正に用いられることを特徴とする。
【００１９】
請求項１０記載の発明による撮像装置は、
手ぶれによる、デジタル画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１の手段、
前記第１の手段により決定された座標変換行列を利用してデジタル画像上の各画素位置における手ぶれベクトルを推定する第２の手段、
デジタル画像上の各画素値に対し、その位置の前記第２の手段により推定された手ぶれベクトルに応じたボケ補正を施す第３の手段、
予め用意された点広がり関数のグラフをディスプレイの画面に表示する第４の手段、
前記画面に表示された点広がり関数のグラフをポインティングデバイスの操作に従って編集する第５の手段、
前記第５の手段による編集後の点広がり関数のグラフに対応して、前記第３の手段においてボケ補正に用いられるボケ補正関数を修正する第６の手段
を含むことを特徴とする。
【００２０】
請求項１１記載の発明による撮像装置は、
手ぶれによる、デジタル画像上の画素の回転及び平行移動を表す座標変換行列を決定する第１の手段、
前記第１の手段により決定された座標変換行列を利用してデジタル画像上の各画素位置における手ぶれベクトルを推定する第２の手段、
デジタル画像上の各画素値に対し、その位置の前記第２の手段により推定された手ぶれベクトルに応じたボケ補正を施す第３の手段、
デジタル画像の手ぶれによる点広がり関数のグラフをディスプレイの画面に表示する第４の手段、
前記画面に表示された点広がり関数のグラフをポインティングデバイスの操作に従って編集する第５の手段、
前記第５の手段による編集後の点広がり関数に対応したボケ補正関数を生成する第６の手段
を含み、
前記第６の手段により生成されたボケ補正関数が前記第３の手段においてボケ補正に用いられることを特徴とする。
【００２１】
請求項１２記載の発明の特徴は、請求項８から１１のいずれか１項に記載の発明による撮像装置において、前記第１の手段は、デジタル画像上の複数の位置における手ぶれの方向及び大きさを、デジタル画像に基づいて推定する手段を含み、当該手段により推定された手ぶれの方向及び大きさに基づいて、手ぶれによる、デジタル画像上の画素の回転及び平行移動を表す座標変換行列を決定することである。
【００２２】
請求項１３の発明の特徴は、請求項８から１２のいずれか１項に記載の発明による撮像装置において、前記第３の手段で手ぶれベクトルに沿った補間演算によってボケ補正が行われることである。
【００２３】
【発明の実施の形態】
本発明による手ぶれ画像補正のための処理手順の一例を図１に示す。図１において、１００は手ぶれによりボケが生じた画像が入力されるステップ、１０１は入力画像上の画素の、手ぶれによる回転及び平行移動を表す座標変換行列が決定されるステップ、１０２は、その座標変換行列を利用して、入力画像上の各画素位置における、手ぶれベクトル（手ぶれによる「ぶれ」の方向と大きさ）が推定されるステップ、１０３は入力画像上の各画素値に対し、その位置の推定された手ぶれベクトルに応じたボケ補正が施され、手ぶれによるボケが補正された画像が生成されるステップ、１０４は補正画像が出力されるステップである。なお、本発明による手ぶれ画像補正の処理手順は後述のように種々変更可能である。
【００２４】
《座標変換行列の決定：ステップ１０１》
ステップ１０１の具体的な処理内容を説明する。
画像を撮影する際の手ぶれにより、画像上の画素は本来の位置から移動する。このような微少なぶれは、アフィン変換で表すことができるから、本来の画素の座標値（ｘ，ｙ）と、その手ぶれにより変化した座標値（Ｘ，Ｙ）との間に、次式が成り立つ。
【００２５】
【数１】
0004345940.tif 000002
式中、θは回転角度、σx，σyはｘ，ｙ方向の平行移動量を表す。手ぶれによる回転角度θは一般に十分に小さいため、（１）式は（２）式のように近似してもよいし、（３）式のようにさらに強い近似をしてもよい。
【００２６】
【数２】
0004345940.tif 000003
【数３】
0004345940.tif 000004
【００２７】
ステップ１０１においては、（１）式、（２）式又は（３）式の座標変換行列の３つのパラメータ（θ，σx，σy）を決定する。入力画像をカメラで撮影する際に、加速度センサやジャイロセンサ等を利用し、カメラの光軸のぶれ量と光軸周りの回転角度を検出することができる場合には、その検出結果を例えばステップ１００で画像の付加情報として入力し、その付加情報に基づき直接的に３つのパラメータ（θ，σx，σy）を決定できる。本発明の一実施例によれば、そのような方法が採用される。
【００２８】
しかし、そのようなセンサが装備されていない一般的なカメラが利用される場合には、上に述べたような方法は利用不可能である。そこで、本発明の他の一実施例によれば、入力画像上の２カ所以上における（ｘ，ｙ）と（Ｘ，Ｙ）の組を推定し、換言すれば、図２にＢ１，Ｂ２，Ｂ３として示すような手ぶれの方向と大きさ（手ぶれベクトル）を推定し、それを（１）式、（２）式又は（３）式に代入することにより、座標変換行列のパラメータ（θ，σx，σy）を決定する。その具体的な処理手順の一例を以下に述べる。
【００２９】
最初に、入力画像上の適当な点を少なくとも２つ選ぶ。これは、処理プログラムによって自動的に行われるようにしてもよいし、画像を表示させた適当なディスプレイの画面上で、ユーザがポインティングデバイスを利用して指定するようにしてもよい。
【００３０】
次に、選ばれた各点における、手ぶれの方向を推定する。例えば、選ばれた各点の近傍領域について空間周波数分布を測定し、その高周波数分布の減少率が最大の方向を手ぶれの方向と推定する。このような方法は、本出願人の特願平９−１８０８４６号（特開平１１−０２７５７４号）、あるいは前記のR.Fabianらの文献等に詳しい。
【００３１】
次に、選ばれた各点における手ぶれの大きさを推定する。例えば、選ばれた各点の近傍領域について、推定された手ぶれの方向に画像の自己相関関数をとり、これを手ぶれ方向に微分すると、手ぶれの大きさに相当する間隔で微分値が極小を示すため、その極小点の間隔から、ぶれの大きさを推定する。この方法は、前記のY.Yitzhakyらの文献等に詳しい。
【００３２】
このような推定を終わると、選ばれた各点のｘ，ｙ座標値（ｘ，ｙ）と、それを推定した手ぶれ方向へ、推定した手ぶれの大きさだけ移動した点のｘ，ｙ座標値（Ｘ，Ｙ）との組を、前記（１）式、（２）式又は（３）式に代入することによりパラメータ（θ，σx，σy）を求める。これで、（１）式、（２）式又は（３）式の座標変換行列が決定された。
【００３３】
なお、入力画像を適当なディスプレイの画面に拡大表示し、ユーザが画面上で手ぶれによる画像のぶれを判断し、適当な２点以上と、そのぶれにより移動した点とをポインティングデバイスを利用して直接的に指示し、指示された座標値を用いて、パラメータ（θ，σx，σy）を求めるという方法も可能である。この簡便な方法によっても、熟練したユーザであれば、それなりの精度でパラメータの決定が可能である。
【００３４】
《各画素位置の手ぶれベクトルの推定：ステップ１０２》
次にステップ１０２においては、ステップ１０１によって決定された座標変換行列を用い、入力画像上の各画素位置（ｘ，ｙ）における手ぶれベクトルＢ（ｘ，ｙ）（手ぶれによる動きベクトル）を推定する。すなわち、（１）式、（２）式又は（３）式に（ｘ，ｙ）を代入して（Ｘ，Ｙ）を計算し、次式によりＢ（ｘ，ｙ）を求める。
【００３５】
【数４】
0004345940.tif 000005
【００３６】
《ボケ補正：ステップ１０３》
ステップ１０３においては、入力画像の各画素値に対し、その位置の推定された手ぶれベクトルに応じたボケ補正を施し、手ぶれによるボケを補償した補正画像を生成する。
【００３７】
手ぶれが一様な動きによって導入された場合、手ぶれによるボケは（５）式のような１次元の点広がり関数で表され、また、このような手ぶれによるボケは（６）式のようなボケ補正関数で補正できることが知られている。この２式中、ｔは手ぶれの距離である。ａはボケの長さであり、これは手ぶれベクトルの長さに相当する。ただし、手ぶれの速度が一様でないと点広がり関数及びボケ補正関数は多少違ったものになるので、より高精度な手ぶれ補正のためには、手ぶれのパターンに応じてボケ補正関数を選択又は修正できるようにするのが望ましいが、これについては後述する。
【００３８】
【数５】
0004345940.tif 000006
【数６】
0004345940.tif 000007
【００３９】
本発明の一実施例によれば、入力画像上の各画素（ｉc，ｊc）に関し、その位置の手ぶれベクトルＢに沿った１次元の補間演算を行って補正画素値Ｖ（ｉc，ｊc）を計算する。具体的には
【数７】
0004345940.tif 000008
式中、θは手ぶれベクトルＢのｘ軸に対しなす角度である。また、次の関係が成り立つ。
【数８】
0004345940.tif 000009
Ｓはボケの及ぶ範囲の画素であり、ａx，ａyを手ぶれベクトルＢのｘ，ｙ成分の長さとすると、（７）式を次のように書くことができる。
【数９】
0004345940.tif 000010
【００４０】
（７）式及び（９）式におけるｐ（）は、手ぶれベクトルＢに沿った前後の画素値から算出される、手ぶれベクトルＢ上又はその延長線上の補間画素値であり、これを（９）式に代入することにより補正画素値Ｖ（ｉc，ｊc）が求まる。なお、補間関数
Ｉ（ｘ）＝ｈ-1（ｘ）
が成り立つものとする。
【００４１】
もし、注目画素の隣接画素のみを利用するのであれば、補間関数Ｉ（ｘ）は、図３に記号「＊」で示すような、手ぶれベクトルＢに沿った両側の画素から算出する。ここで、補間画素値ｐ（）は、図３に記号「＝」で示した仮想画素の値である。この画素値も、補間関数Ｉ（ｘ）によって求めることができる（ただし、このときはａ＝１）。ｘ，ｙの値は一般的には任意でよいが、効率的な計算を行うには、画素ピッチを１とし、
【数１０】
0004345940.tif 000011
と置くことができる（図３は、そのような場合である）。したがって、（９）式は次のように書き直すことができる。
【数１１】
0004345940.tif 000012
また、手ぶれベクトルＢの両側の画素のみを利用するならば、条件式  ｉ，ｊ  Ａ
は次のように表すことができる。
【数１２】
0004345940.tif 000013
式中、［ｘ］はｘを越えない整数を表す。
【００４２】
以上に述べた本発明による手ぶれ画像補正方法は、画像内に不均一な手ぶれ（回転と平行移動）がある場合にも、実空間処理により高精度な手ぶれ補正が可能である。画像の回転等の前処理や後処理を含まないため、そのような処理に伴う画質劣化が生じない。また、そのような前処理や後処理を含まないうえに、手ぶれベクトルに沿った補間画素値をテーブル参照方式で高速に計算できるから、全体として高速な処理が可能である。
【００４３】
さて、（５）式の点広がり関数は、図４の（Ａ）のようなグラフとして表すことができる。図４において、横軸はぶれの距離ｔ、縦軸はレスポンスの大きさである。実際の手ぶれは速度が一様でないことが多く、点広がり関数は図４（Ａ）に示したグラフとは多少異なったものになる。しかし、手ぶれのパターンはいくつかの類型に分類可能である。いくつかの典型的な手ぶれパターンに対応した点広がり関数のグラフを図４の（Ｃ），（Ｄ）及び（Ｅ）に示す。（Ｃ）のグラフは最初はゆっくりで次第に速くなる手ぶれパターンに対応した点広がり関数を表し、（Ｄ）のグラフは、それと逆に最初は速く、次第に遅くなる手ぶれパターンに対応した点広がり関数を表す。（Ｅ）のグラフは、最初と最後がゆっくりで中間で動きが速い手ぶれパターンに対応した点広がり関数を表す。慣れてくると、画像を観測すれば、かなりの正確さで、どのような手ぶれパターンに該当するか見当をつけることができる。
【００４４】
本発明の一実施例によれば、図４の（Ａ），（Ｃ），（Ｄ），（Ｅ）のような複数の典型的な手ぶれパターンの点広がり関数に対応したボケ補正関数が例えばテーブルの形で用意され、その中からボケ補正に利用するためのボケ補正関数がユーザによって選択される。図１に示した処理フローとの関連では、そのようなボケ補正関数の選択のためのステップは、ボケ補正処理ステップ１０３の内部、又はそれより前の段階に置かれる。
【００４５】
また、本発明の別の実施例によれば、そのようなボケ補正関数の選択が自動的に行われる。そのための手順の一例を図５に示す。
【００４６】
図５のステップ２００において、入力画像の手ぶれによる点広がり関数を推定する。光軸のぶれを検出するための加速度センサ等を装備したカメラが入力画像の撮影に利用される場合には、そのセンサによって光軸の経時変化を検出し、カメラのシャッター開放のタイミングと重畳させて、直接的に入力画像の点広がり関数を推定できる。そのようなカメラが利用されない場合は、入力画像から点広がり関数を推定する。具体的には、被写体上の１点のぶれによって形成される尾引き画像に沿った濃度（輝度）分布を観測すればよい。より正確な推定のためには、例えば、画像中の滑らかな背景部分に隣接する高コントラスト部分（通常、エッジと呼ばれる部分）に、前記のY.Yitzhakyらの論文に述べられている方法を利用すればよい。
【００４７】
次のステップ２０１において、予め用意された複数の典型的手ぶれパターンに対応する点広がり関数の中から、前ステップで推定された点広がり関数に最も類似したものを選択する。この選択の基準としては距離を利用できる。例えば次のような距離Ｄjが最小の点広がり関数ｈj（ｔ）が選択される。
【数１３】
0004345940.tif 000014
式中、ｈ（ｔ）は推定した点広がり関数、ｈj（ｔ）は予め用意された点広がり関数である。
【００４８】
予め用意された典型的手ぶれパターンの点広がり関数のそれぞれに対応した複数のボケ補正関数も予め用意される。ステップ２０２において、用意された複数のボケ補正関数の中から、前ステップで選択された点広がり関数に対応したボケ補正関数が選択される。このようにして選択されたボケ補正関数が、図１のボケ補正処理ステップ１０３で利用されることになる。
【００４９】
本発明の一実施例によれば、ユーザが、ディスプレイ上で、点広がり関数を確認して必要な編集をすることにより、ボケ補正処理に利用するためのボケ補正関数を修正することができる。その手順を図６に示す。
【００５０】
図６のステップ３００において、予め用意されている点広がり関数を適当なディスプレイの画面に表示する。ステップ３０１において、ユーザは適当なポインティングデバイスを利用して、画面上で点広がり関数に対し必要な編集を行う。例えば、図４の（Ａ）に示すような点広がり関数のグラフが表示されている場合に、ポインティングデバイスを利用して、例えば図４の（Ｂ）に示すようにグラフを編集することができる。なお、ステップ３００で表示される点広がり関数を、ユーザが複数の点広がり関数の中から選択できるようにしてもよい。
【００５１】
ステップ３０２において、前ステップにおける点広がり関数の編集内容を反映させるように、予め用意されているボケ補正関数を修正する。このようにして修正後のボケ補正関数が図１のボケ編集処理ステップ１０３に利用される。
【００５２】
本発明の別の実施例について、図６を援用して説明する。ステップ３００において、入力画像の手ぶれによる点広がり関数をグラフィック表示する。具体的は、例えば、入力画像中の均一な背景部分について、ぶれ方向に直交する方向に輝度を投影することにより図４に示したようなグラフを直接得られるので、それを適当なディスプレイに表示する。このようにして測定された点広がり関数は、しばしば測定誤差を伴うので、ステップ３０１において、ユーザはポインティングデバイスを利用してディスプレイの画面上で点広がり関数に対し必要な修正を行う。ステップ３０２において、修正後の点広がり関数に対応したボケ補正関数を生成する。この生成されたボケ補正関数がボケ補正処理に用いられる。
【００５３】
本発明は、例えば図７に示すようなＣＰＵ４００、メモリ４０１、ディスプレイ４０２、マウス等のポインティングデバイス４０３、ＣＤ−ＲＯＭ等の記録媒体４０４のためのドライブ４０５、ハードディスク等の補助記憶装置４０６、外部インターフェース４０７等をシステムバス４０９で相互接続したような構成のコンピュータを利用し、ソフトウェアにより実施し得る。図１、図５及び図６に関連して説明した処理のためのプログラム４１０、図５又は図６に関連して説明したような点広がり関数やボケ補正関数のテーブル４１１は、例えば、それらが記録された記録媒体４０４よりドライブ４０５によってメモリ４０１に読み込まれる。あるいは、プログラム４１０及びテーブル４１１は補助記憶装置４０６に一旦保存され、処理実行時に補助記憶装置４０６からメモリ４０１に読み込まれる。処理対象の画像データは、例えば、それを撮影したデジタルカメラ４０８より、外部インターフェース４０７を通じてメモリ４０１に読み込まれる。図６に関連して説明した点広がり関数のグラフィック表示及びその編集には、ディスプレイ４０２とポインティングデバイス４０３が利用される。
【００５４】
本発明の別の実施の形態によれば、図１，図５及び図６に関連して説明した処理のための機能がデジタルカメラ等の撮像装置に実装される。図８は、そのようなデジタルカメラの一例の概略ブロック図である。図８において、５００は不図示の光学系を介して光学像が結像されるＣＣＤイメージセンサ、５０２はＣＣＤイメージセンサ５００から出力されるアナログ画像信号の増幅やデジタル信号への変換等を行う信号回路部、５０２は画像データ等の記憶のためのデータメモリ、５０３はデジタル画像データの圧縮／伸長やビデオ信号への変換等を行うデジタル信号プロセッサ、５０４は液晶ディスプレイパネル等を用いたモニタディスプレイである。５０６はカメラ内部の制御等を行うためのマイクロコンピュータであり、ＣＰＵ５１０やＲＯＭ５１１、ＲＡＭ５１２、その他の不図示の外部インターフェース等からなる。５０７はユーザがマイクロコンピュータ５０６へ各種指示を入力するための操作部である。
【００５５】
操作部５０７の撮影ボタンが押されない状態では、デジタル信号プロセッサ５０３は、信号回路部５０１から連続的に出力されるデジタル画像データをビデオ信号に変換してモニタディスプレイ５０４に出力するため、ユーザは視野内の映像をモニタディスプレイ５０４で監視することができる。ユーザが操作部５０７上の撮影ボタンを押すと、マイクロコンピュータ５０６の制御により、信号回路部５０１より出力される画像１枚分のデジタル画像データがデータメモリ５０２に一時的に保存される。次に、この画像データがデジタル信号プロセッサ５０３へ転送され、必要な階調補正等が施された後に圧縮される。得られた圧縮画像データはデータメモリ５０２へ転送される。外部のパソコン等への画像データ出力が操作部５０７より指示されると、マイクロコンピュータ５０６の制御により、データメモリ５０２内の圧縮画像データがデジタル信号プロセッサ５０３へ転送されて伸長される。伸長された画像データは再びデータメモリ５０２に書き込まれる。そして、この画像データがマイクロプロセッサ５０６の制御により外部のパソコン等へ転送される。このようなデジタルカメラ内部の一般的な制御は、ＲＯＭ５１１に格納されたプログラムに従って遂行される。
【００５６】
ここに示すデジタルカメラにおいては、図１，図５及び図６に関連して説明した処理ステップのための手段がソフトウェアにより実装される。すなわち、図１、図５及び図６に関連して説明した各処理ステップをマイクロコンピュータ５０６に実行させるためのプログラム５２０や、図５又は図６に関連して説明したような点広がり関数やボケ補正関数のテーブル５２１もＲＯＭ５１１（又はＲＡＭ５１２）に格納されている。ユーザが、操作部５０７の操作により手ぶれ補正を指示すると、マイクロコンピュータ５０６は、プログラム５２０に従って、データメモリ５０２上の圧縮画像データをデジタル信号プロセッサ５０３へ転送して伸長させ、伸長された画像データをデータメモリ５０２に格納させる。この伸長された画像データのビデオ信号もデジタル信号プロセッサ５０３より出力されるので、その画像データの画像をモニタディスプレイ５０４上でユーザは確認できる。そして、マイクロプロセッサ５０６は、データメモリ５０２上の伸長された画像データに対し、以上に説明したような本発明による手ぶれ画像補正処理を実行する。データメモリ５０２上に得られた補正後の画像データはデジタル信号プロセッサ５０３へ転送され、そのビデオ信号がモニタディプレイ５０４へ与えられ、ユーザは手ぶれ補正後の画像を確認できる。ユーザが、操作部５０７で指示することにより、前述のようなボケ補正関数の選択や点広がり関数の編集を行うことができる。この場合、マイクロコンピュータ５０６は、ボケ補正関数の選択のためのイメージや点広がり関数をデジタル信号プロセッサ５０３を介してモニタディスプレイ５０４に表示させる。ユーザは、操作部５０７に設けられたポインティングデバイス（不図示）を操作することにより、モニタディスプレイ５０４の画面上で、ボケ補正関数の選択や点広がり関数の編集を指示することができる。
【００５７】
【発明の効果】
以上の説明から明らかなように、請求項１乃至６、８乃至１３の各項記載の発明によれば、不均一な回転及び平行移動を含む手ぶれが生じた場合にも、適切な手ぶれ補正が可能である。また、手ぶれ補正のために画像の回転等の前処理や後処理を必要としないため、そのような処理に伴う画質劣化も生じない。したがって、不均一な手ぶれ画像から、手ぶれを補正した高画質の画像を復元可能である。請求項６又は１３記載の発明によれば、手ぶれ補正のための計算をテーブル参照方式等で高速に行うことができ、しかも画像の回転等の前処理や後処理も不要であるため、全体として高速な処理が可能である。請求項５記載の発明によれば、画像の複数位置での手ぶれの方向及び大きさを、画像そのものから推定するため、加速度センサ等を持たないカメラで撮影された画像に対しても、適切な手ぶれ補正が可能である。請求項１２記載の発明によれば、撮像装置に加速度センサ等を設けなくとも、撮像した画像に対し手ぶれ補正を適切に行うことができる。請求項１又は８記載の発明によれば、ユーザが、画像を観察し、適切と判断したボケ補正関数を選択して手ぶれ補正を行わせ、また、必要と判断した場合にはボケ補正関数を選び直すことができるため、様々な手ぶれパターンに対応可能になる。また、請求項２又は９によれば、ユーザが関与することなく、画像撮影時の手ぶれパターンに対応したボケ補正関数を利用し適切な手ぶれ補正が可能になる。また、請求項３，４、１０又は１１記載の発明によれば、ユーザが、特開平７−２２６９０５号に関連して説明したような撮影環境条件に応じた補正の違いや、手ぶれパターンの違いに応じて、点広がり関数を任意に編集しボケ補正関数を最適化することができる。請求項７記載の発明によれば、上に述べたような手ぶれ画像補正やボケ補正関数の最適化等をコンピュータを利用し実施可能になる、等々の効果を得られる。
【図面の簡単な説明】
【図１】  本発明による手ぶれ画像補正の処理手順の一例を示すフローチャートである。
【図２】  座標変換行列の決定に関連した、画像上の複数の位置における手ぶれベクトルを示す図である。
【図３】  手ぶれベクトルに沿った１次元の補間演算の説明のための図である。
【図４】  典型的な手ぶれパターンに対応した点広がり関数の例及び点広がり関数の編集例を示す図である。
【図５】  ボケ補正関数の自動選択手順の一例を説明するためのフローチャートである。
【図６】  点広がり関数の編集によりボケ補正関数を修正する手順を説明するためのフローチャートである。
【図７】  本発明のソフトウェアによる実施のためのコンピュータの一例を示すブロック図である。
【図８】  本発明によるデジタルカメラの一例を示すブロック図である。
【符号の説明】
４００  ＣＰＵ
４０１  メモリ
４０２  ディスプレイ装置
４０３  ポインティングデバイス
４１０  手ぶれ画像補正のためのプログラム
４１１  点広がり関数及びボケ補正関数のテーブル
５００  ＣＣＤイメージセンサ
５０１  信号回路部
５０２  データメモリ
５０３  デジタル信号プロセッサ
５０４  モニタディスプレイ
５０６  マイクロコンピュータ
５０７  ポインティングデバイスを含む操作部
５２０  手ぶれ画像補正のためのプログラム
５２１  点広がり関数及びボケ補正関数のテーブル
【図１】
0004345940.tif 000015
【図２】
0004345940.tif 000016
【図３】
0004345940.tif 000017
【図４】
0004345940.tif 000018
【図５】
0004345940.tif 000019
【図６】
0004345940.tif 000020
【図７】
0004345940.tif 000021
【図８】
0004345940.tif 000022