(57)【特許請求の範囲】
【請求項１】
一の入力画像信号から画素値を取得する画素値取得部と、
隣接画素間の画素値の差分値を算出する差分値算出部と、
入力画像の全部または一部の中の複数方向の理論差分値の分散を算出する分散算出部と、
分散算出部で算出された複数方向の分散を比較することでブレ方向を検出するブレ方向検出部と、
を有し、
ブレ方向検出部は、
入力画像の全部または一部の中の複数方向の理論差分値の分散を極座標表示した場合に、その座標を連ねることによって描かれる多角形の二次モーメントの値を演算する方向演算手段と、
方向演算手段で演算された値の中で最大値となった方向をブレ方向として選択する選択手段と、
を有する画像処理装置。
【請求項２】
ブレ方向検出部にて検出されたブレ方向に並んだ画素中に比較的画素値が均一で隣どうしである二つの部分を探索する探索部と、
探索部で該当する部分が探索された場合には、遷移領域内における理論差分値の最大絶対値を傾きとしてブレ幅を算出するブレ幅算出部と、
を有する請求項１に記載の画像処理装置。
【請求項３】
前記画素値と検出されたブレ方向と算出されたブレ幅とに基づいて画像の補正を行う画像補正部と、
補正された画像を出力する補正画像出力部と、
を有する請求項２に記載の画像処理装置。
【請求項４】
一の入力画像信号から画素値を取得する画素値取得ステップと、
隣接画素間の画素値の差分値を算出する差分値算出ステップと、
入力画像の全部または一部の中の複数方向の理論差分値の分散を算出する分散算出ステップと、
分散算出ステップで算出された複数方向の分散を比較することでブレ方向を検出するブレ方向検出ステップと、
を有し、
ブレ方向検出ステップは、
入力画像の全部または一部の中の複数方向の理論差分値の分散を極座標表示した場合に、その座標を連ねることによって描かれる多角形の二次モーメントの値を演算する方向演算サブステップと、
方向演算サブステップで演算された値の中で最大値となった方向をブレ方向として選択する選択サブステップと、
を有する画像処理方法。
【請求項５】
ブレ方向検出ステップにて検出されたブレ方向に並んだ画素中に比較的画素値が均一で隣どうしである二つの部分を探索する探索ステップと、
探索ステップで該当する部分が探索された場合には、遷移領域内における理論差分値の最大絶対値を傾きとしてブレ幅を算出するブレ幅算出ステップと、
を有する請求項４に記載の画像処理方法。
【請求項６】
前記画素値と検出されたブレ方向と算出されたブレ幅とに基づいて画像の補正を行う画像補正ステップと、
補正された画像を出力する補正画像出力ステップと、
を有する請求項５に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブレ画像を補正する装置及び方法に関する。
【背景技術】
【０００２】
一般的にカメラ等の撮影装置で被写体を撮影すると、撮影装置が動くことによって生じる手ブレや被写体が動くことによって生じる被写体ブレなど、複数のブレが発生することがある。手ブレを防ぐ方法としては、三脚で撮影装置を固定して撮影する方法や、撮影装置に振動ジャイロ機構を組み込んでブレを打ち消す方向に補正レンズや撮像素子を動かして補正する方法が知られている。また、被写体ブレを補正する方法としては、特許文献１に示されているように、連続的に撮影された複数の画像から画像間の位置ずれを検出し、当該位置ずれに基づいて被写体ブレを補正する方法が一般に知られている。また、一般的なブレ防止の方法として、シャッター速度を上げる方法も知られている。
【特許文献１】特開２００８−１６８８５
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、補正レンズや撮像素子を動かすことによる補正は、手ブレを補正するのには有効であるが、被写体ブレには有効ではない。また、連続的に撮影された複数の画像を用いて被写体ブレを補正する方法では、撮影後において、一の画像のみから補正を行うことができない。また、シャッター速度を上げる方法では、光量が減少するため感度が低下するという問題がある。
【課題を解決するための手段】
【０００４】
以上の課題を解決するため、本発明は、一の入力画像から当該画像に含まれる複数のブレのブレ方向及びブレ幅を検出し、補正を行うことが可能な機能を有する画像処理装置を提供する。
【発明の効果】
【０００５】
本発明の画像処理装置により、撮影後においても一の入力画像に基づいて複数のブレを補正することが可能になる。
【発明を実施するための最良の形態】
【０００６】
以下に、本発明の実施例を説明する。実施例と請求項の相互の関係は、以下のとおりである。実施例１、２は主に請求項１、請求項４などに関し、実施例３は主に請求項２、請求項５などに関し、実施例４は主に請求項３、請求項６などに関する。なお、本発明はこれら実施例に何ら限定されるものではなく、その要旨を逸脱しない範囲内において、様々な態様で実施しうる。
【実施例１】
【０００７】
<概要>
本実施例の画像処理装置は、一の入力画像から当該画像に含まれる複数のブレ部分に対して、当該部分ごとのブレ方向を検出する機能を有するものである。例えば、図１に示すように、Ｆ１レースにおいて高速で走るレーシングカーをカメラで追いかけながら撮った場合、レーシングカーが高速で移動することによる被写体ブレや、レーシングカーを追いかけて撮ったことによる手ブレが生じてしまう。このように複数の種類のブレが生じた場合でも、本実施例の画像処理装置は、当該一の入力画像のみによってブレ方向を検出することが可能であるため、結果として精度の高いブレ補正を行うことができる。
【０００８】
<構成>
図２は、本実施例の画像処理装置の機能ブロックの一例を示す図である。本件発明の構成要素である各部は、ハードウェア、ソフトウェア、ハードウェアとソフトウェアの両者、のいずれかによって構成される。例えば、これらを実現する一例として、コンピュータを利用する場合には、ＣＰＵ、メインメモリ、バス、インターフェイス、周辺機器などから構成されるハードウェアと、これらのハードウェア上にて実現可能なソフトウェアを挙げることができる。具体的には、メインメモリ上に展開されたプログラムを順次実行することで、メインメモリ上のデータや、インターフェイスを介して入力されるデータの加工、蓄積、出力などにより各部の機能が実現される。
【０００９】
同図において、本実施例の「画像処理装置」０２００は、「画素値取得部」０２０１と、「差分値算出部」０２０２と、「分散算出部」０２０３と、「ブレ方向検出部」０２０４とからなる。なお、本発明は、装置として実現できるのみでなく、方法としても実現可能である。（本明細書の全体を通して同様である。）
【００１０】
「画素値取得部」は、一の入力画像信号から画素値を取得するように構成されている。
ここで、画素値としては、例えば、光の三原色（赤、青、緑）や色の三原色（シアン、マゼンタ、イエロー）の輝度値が一般的に考えられるが、透明度等も同様に考えられる。また、画像信号の入力を受付ける方法としては、ＣＣＤ等によってデジタルデータ化された画像信号をインターフェイスを介して受け付け、ビデオメモリに格納する方法が考えられる。また、画素値の情報は各画素の座標と対応させて取得することが可能である。
【００１１】
「差分値算出部」は、隣接画素間の画素値の差分値を算出するように構成されている。
ここで、画素値の差分値の算出方法としては、注目する一の画素と隣接する画素との差分を直接的に取る方法が考えられるが、一の画素を中心とする中心差分やその他の差分形式を取る方法も同様に可能である。ここで、差分処理は画像全体又は一部に対してのみ行うことや、所定の方向のみを選択して行うことも可能である。例えば、一部の領域のみのブレを補正したい場合は、当該領域の差分値のみを算出する構成とすることも可能である。
【００１２】
「分散算出部」は、入力画像の全部または一部の中の複数方向の理論差分値の分散を算出するように構成されている。ここで、「理論差分値」とは、隣接画素間の画素値の差分値から導出可能な任意方向の画素値の差分値をいう。つまり、一の画素に対する隣接画素間の画素値の差分値は当該隣接画素の数に限られるが、理論差分値は当該制限を有することはなく、任意方向に対して求めることができる。具体的な方法としては、各隣接画素間の画素値の差分値に基づいて補間処理をすることで、任意方向の理論差分値を求める方法が考えられる。また、「複数方向」としては、任意方向を設定することが可能であり、細かく（例えば１度ずつ）設定する構成も可能であるし、粗く（例えば２０度ずつ）設定する構成も可能である。ここで、「入力画像の全部」について分散を算出する場合としては、入力画像の一様なブレを補正する場合が考えられる。また、「入力画像の一部」について分散を算出する場合としては、複数の被写体ブレを各々補正する場合が考えられる。この場合、図３に示すように元画像から注目する一部の画像領域（ブロック）を切り出して画像処理を行うことになる。ブロックの切り出し方としては、注目するブレの領域を包含するように切り出す方法が考えられる。また、入力画像を複数の領域に分割する場合に、それぞれのブロックに重なり合う領域を設けることも可能である。これにより、各領域のブレを各々補正した場合でも補正後にスムーズに各領域を結合することが可能になる。
【００１３】
以下、入力画像から取り出したブロックに対して理論差分値の分散を算出する一例を示す。図４は、分散を算出する複数方向を、入力画像の右水平方向を０度として１１．２５度ずつ１８０度まで設定した場合を想定している。まず、当該複数方向の理論差分値が隣接画素間の画素値の差分値から導出される。続いて、各方向の理論差分値の分散が算出される。ここで、一の方向の分散を求める方法としては、一の方向を向いた一又は複数の仮想直線上の理論差分値の分散値を計算する方法が考えられる。ここで、当該方向での各理論差分値をｘｉとすると、当該分散値は
【数１】
0004966220.tif 000002
と表わされる。ここで、ｎは分散値を計算するために利用した画素の数、ｘバーは仮想直線上の理論差分値の平均値を表す。ここで、一の方向に対して複数の仮想直線を設定した場合は、各仮想直線上での分散値を求め、当該複数の分散値を平均又は加算したものを一の方向に対する分散の指標とすることが考えられる。なお、ここでは分散を示す一の指標として分散値を挙げたが、分散の程度を示すその他の統計的な値を用いることも同様に可能である。
また、「ブレ方向検出部」は、分散算出部で算出された複数方向の分散を比較することでブレ方向を検出するように構成されている。具体的な例としては、ブレ方向では理論差分値の分散が小さくなる傾向が高いため、分散が小さい方向をブレ方向として選択する方法が考えられる。なお、分散の小さい方向が必ずしもブレ方向と一致しない場合があるが、これに対する処理方法として、実施例２で詳しく説明する分散分布から求められる二次モーメントに基づく方法がある。
【００１４】
<具体的な構成>
次に、本実施例の画像処理装置のそれぞれのハードウェア構成部の働きについて説明する。図５は、本実施例の装置のハードウェア構成の一例を示す概略図である。この図を利用して、画像処理装置のそれぞれのハードウェア構成部の働きについて説明する。この図にあるように、画像処理装置は、画素値取得部と差分値算出部と分散算出部とブレ方向検出部である「ＣＰＵ」０５０１と「メインメモリ」０５０２を備える。また、画像処理装置はプログラム等を保持するための「記憶装置」０５０３を備えている。また、画像入力を受付ける「インターフェイス」０５０４、受付けた入力画像をメインメモリで処理可能なデータに変換する「ビデオメモリ」０５０５、ブレ方向の情報等を表示する「ディスプレイ」０５０６を備えている。これらはシステムバスなどによって相互に接続され、情報の送受信や処理を行う。
【００１５】
記憶装置はＣＰＵによって実行される各種プログラムなどを記憶している。またメインメモリは、プログラムがＣＰＵによって実行される際の作業領域であるワーク領域を提供する。また、このメインメモリや記憶装置にはそれぞれ複数のメモリアドレスが割り当てられており、ＣＰＵで実行されるプログラムは、そのメモリアドレスを特定しアクセスすることで相互にデータのやりとりを行い、処理を行うことが可能になっている。また、以下の説明では、プログラムは予めメインメモリのワーク領域に展開して常駐させておく構成としているが、必要な場合に記憶装置から適宜呼び出す構成とすることも可能である。
【００１６】
インターフェイスを介して入力された一の画像信号はビデオメモリの所定のアドレスに格納され、メインメモリで処理可能な画像データに変換される。画素値取得プログラムは、ビデオメモリからの画像データをメインメモリの所定のアドレスに格納し、画素値を画素ごとに取得するための処理をＣＰＵにて実行し、処理結果である画素値をメインメモリの所定のアドレスに格納する。次に差分値算出プログラムは、メインメモリ上の画素値を参照して、隣接画素間の差分値を算出するための処理をＣＰＵにて実行し、処理結果をメインメモリの所定のアドレスに格納する。次に分散算出プログラムは、入力画像の全部または一部の中の複数方向の理論差分値の分散を算出するための処理をＣＰＵにて実行する。ここで入力画像の一部における複数方向の分散を算出する場合は入力画像から当該一部の領域を切り出すための前処理を実行する。次にブレ方向検出プログラムは、分散算出プログラムで算出された複数方向の分散を比較することでブレ方向を検出するための処理をＣＰＵにて実行する。具体的には、分散が一番小さくなる方向を選択するための処理を実行する。
【００１７】
<処理の流れ>
図６に示すのは、本実施例の画像処理装置における処理の流れの一例を説明するためのフローチャート図である。同図の処理の流れは以下のステップからなる。最初に、ステップＳ０６０１では、入力画像信号を受け付けたか否か判断する。ここでの判断が、受け付けたとの判断である場合は、ステップＳ０６０２に進む。ここでの判断が、受け付けていないとの判断である場合は、待機する。ステップＳ０６０２では、入力画像信号から画素値を取得する。この処理は、主に画素値取得部によって実行される。ステップＳ０６０３では、隣接画素間の画素値の差分値を算出する。この処理は、主に差分値算出部によって実行される。ステップＳ０６０４では、入力画像の全部または一部の中の複数方向の理論差分値の分散を算出する。この処理は、主に分散算出部によって実行される。ステップＳ０６０５では、算出された複数方向の分散を比較することでブレ方向を検出する。この処理は、主にブレ方向検出部によって実行される。
【００１８】
以上の処理は、方法、計算機に実行させるためのプログラム、またはこのプログラムが記録された読み取り可能な記録媒体として実施され得る（本明細書の全体を通して同様である）。
【００１９】
<効果>
以上のように、本実施例の画像処理装置は、一の入力画像から複数のブレ部分のブレ方向を検出することが可能である。これにより、画像の撮影後においても当該一の画像のみによって精度の高いブレ補正を行うことが可能になる。
【実施例２】
【００２０】
<概要>
本実施例の画像処理装置は、実施例１と同様に、一の入力画像から当該画像に含まれる複数のブレ部分に対して、当該部分ごとのブレ方向を検出する機能を有するものである。さらに、本実施例の画像処理装置は、ブレ方向を検出する際に、画像の性質の影響を受けにくい分散分布の二次モーメントを利用するため、より高い精度でブレ方向を検出することが可能になる。
【００２１】
<構成>
図７は、本実施例の画像処理装置の機能ブロックの一例を示す図である。同図において、本実施例の「画像処理装置」０７００は、「画素値取得部」０７０１と、「差分値算出部」０７０２と、「分散算出部」０７０３と、「ブレ方向検出部」０７０４とからなり、「ブレ方向検出部」は、「方向演算手段」０７０５と「選択手段」０７０６とを有する。構成は基本的に実施例１に記載の装置の構成と同じであるため、相違点となる方向演算手段と選択手段について以下詳述する。
【００２２】
「方向演算手段」は、入力画像の全部または一部の中の複数方向の理論差分値の分散を極座標表示した場合に、その座標を連ねることによって描かれる多角形の二次モーメントの値を演算するように構成されている。  
また、「選択手段」は、方向演算手段で演算された値の中で最大値となった方向をブレ方向として選択するように構成されている。
図８は分散の指標の一つである分散値を極座標表示した場合を示している。この図では角度が０度の方向で、分散値が小さくなっていることがわかる。この場合、０度の方向がブレ方向である可能性が高い。しかし、この図の斜線で表わされた多角形について、各方向を軸と仮定した場合の各二次モーメントの値を比較することにより、ブレ方向の検出精度をさらに高めることが可能である。一般的な二次モーメントの式は、軸からの距離をｒｉ、その距離にある物体の質量をｍｉとすると、
【数２】
0004966220.tif 000003
と表わされるが、ここでは多角形を構成する物体は均一であると仮定するため、ｍｉ＝１とする。そして、当該二次モーメントの値が最大となった方向をブレ方向として選択する。
【００２３】
ここで、二次モーメントの値が最大になる方向を見つける方法としては、実際に数式２で表わされる値を各方向について演算する方法が考えられるが、二次モーメントの角度に関する一次微分量（差分量）及び二次微分量（差分量）から二次モーメントの値が最大となる極値を見つける方法も同様に考えられる。
【００２４】
<具体的な構成>
図９は、本実施例の画像処理装置のハードウェア構成の一例を示す概略図である。その構成は、基本的に図５を用いて説明した実施例１の装置のハードウェア構成と共通する。ただし、本実施例の画像処理装置は、方向演算プログラムと選択プログラムがブレ方向検出プログラムに内包されている。
【００２５】
インターフェイスを介して入力された一の画像信号はビデオメモリの所定のアドレスに格納され、メインメモリで処理可能な画像データに変換される。画素値取得プログラムは、ビデオメモリからの画像データをメインメモリの所定のアドレスに格納し、画素値を画素ごとに取得するための処理をＣＰＵにて実行し、処理結果である画素値をメインメモリの所定のアドレスに格納する。次に差分値算出プログラムは、メインメモリ上の画素値を参照して、隣接画素間の差分値を算出するための処理をＣＰＵにて実行し、処理結果をメインメモリの所定のアドレスに格納する。次に分散算出プログラムは、入力画像の全部または一部の中の複数方向の理論差分値の分散を算出するための処理をＣＰＵにて実行する。ここで入力画像の一部における複数方向の分散を算出する場合は入力画像から当該一部の領域を切り出すための前処理を実行する。次に方向演算プログラムは、分散算出プログラムで算出された複数方向の理論差分値の分散を極座標表示した場合に、その座標を連ねることによって描かれる多角形の二次モーメントの値を演算するための処理をＣＰＵにて実行し、処理結果をメインメモリの所定のアドレスに格納する。次に選択プログラムは、方向演算プログラムで演算された中で最大値となった方向をブレ方向として選択するための処理をＣＰＵにて実行し、処理結果であるブレ方向をメインメモリの所定のアドレスに格納する。
【００２６】
<処理の流れ>
図１０に示すのは、本実施例の画像処理装置における処理の流れの一例を説明するためのフローチャート図である。同図の処理の流れは以下のステップからなる。最初に、ステップＳ１００１では、入力画像信号を受け付けたか否か判断する。ここでの判断が、受け付けたとの判断である場合は、ステップＳ１００２に進む。ここでの判断が、受け付けていないとの判断である場合は、待機する。ステップＳ１００２では、入力画像信号から画素値を取得する。この処理は、主に画素値取得部によって実行される。ステップＳ１００３では、隣接画素間の画素値の差分値を算出する。この処理は、主に差分値算出部によって実行される。ステップＳ１００４では、入力画像の全部または一部の中の複数方向の理論差分値の分散を算出する。この処理は、主に分散算出部によって実行される。ステップＳ１００５では、複数方向の理論差分値の分散を極座標表示することで描かれる多角形の二次モーメントの値を演算する。この処理は、主にブレ方向検出部の方向演算手段によって実行される。ステップＳ１００６では、演算された二次モーメントの値の中で最大値となった方向をブレ方向として選択する。この処理は、主にブレ方向検出部の選択手段によって実行される。
【００２７】
<効果>
以上のように、本実施例の画像処理装置は、一の入力画像から複数のブレ部分のブレ方向を高い精度で検出することが可能である。これにより、画像の撮影後においても当該一の画像のみによって精度の高いブレ補正を行うことが可能になる。
【実施例３】
【００２８】
<概要>
本実施例の画像処理装置は、実施例１と同様に、一の入力画像から当該画像に含まれる複数のブレ部分に対して、当該部分ごとのブレ方向を検出する機能を有するものである。さらに、本実施例の画像処理装置は、ブレ方向の検出結果からブレ幅を算出することも可能である。
【００２９】
<構成>
図１１は、本実施例の画像処理装置の機能ブロックの一例を示す図である。同図において、本実施例の「画像処理装置」１１００は、「画素値取得部」１１０１と、「差分値算出部」１１０２と、「分散算出部」１１０３と、「ブレ方向検出部」１１０４と、「探索部」１１０５と「ブレ幅算出部」１１０６とを有する。構成は基本的に実施例１に記載の装置の構成と同じであるため、相違点となる探索部とブレ幅算出部について以下詳述する。
【００３０】
「探索部」は、ブレ方向検出部にて検出されたブレ方向に並んだ画素中に比較的画素値が均一で隣どうしである二つの部分を探索するように構成されている。図１２は、探索部によって探索された二つの部分を概念的に表した図である。ここでは、画素値が均一な領域を安定部といい、隣どうしである二つの安定部に挟まれた領域を遷移領域という。比較的画素が均一であるか否かは、例えば、ある一定数の画素を含む領域において画素値の分散値が所定の閾値以下になっていることを用いる方法や、理論差分値の絶対値が所定の閾値以下になっていることを用いる方法が考えられる。また、隣どうしである安定部を探索する方法としては、ある一の安定部を持つ領域の近い側から別の安定部を探索していく方法が考えられる。また、隣どうしである安定部を探索する条件として、当該二つの安定部のブレ方向が近いか否かを条件として加える構成も可能である。
【００３１】
「ブレ幅算出部」は、探索部で該当する部分が探索された場合には、遷移領域内における理論差分値の最大絶対値を傾きとしてブレ幅を算出するように構成されている。図１３は、ブレ幅の算出方法を概念的に説明する図である。図の例では、ブレが発生しなかったならば画素値がほほ階段上に変化していたはずの領域を示している。ここで、ブレが発生すると、隣どうしである安定部の間に一定の幅を持つ遷移領域が発生することになる。当該遷移領域の幅はブレ幅に対応するため、安定部１と安定部２の画素値の差と遷移領域の傾き（理論差分値）から当該ブレ幅を算出することができる。なお、すべてのブレ領域において画素値が階段上に変化していたとは限らないため、画素値の理論差分値の最大絶対値を傾きとすることで、必要以上に大きくブレ幅を算出しないようにしている。
【００３２】
<具体的な構成>
図１４は、本実施例の画像処理装置のハードウェア構成の一例を示す概略図である。その構成は、基本的に図５を用いて説明した実施例１の装置のハードウェア構成と共通する。ただし、本実施例の画像処理装置は、ＣＰＵとメインメモリは探索部とブレ幅算出部としての機能をも備える。
【００３３】
インターフェイスを介して入力された一の画像信号はビデオメモリの所定のアドレスに格納され、メインメモリで処理可能な画像データに変換される。画素値取得プログラムは、ビデオメモリからの画像データをメインメモリの所定のアドレスに格納し、画素値を画素ごとに取得するための処理をＣＰＵにて実行し、処理結果である画素値をメインメモリの所定のアドレスに格納する。次に差分値算出プログラムは、メインメモリ上の画素値を参照して、隣接画素間の差分値を算出するための処理をＣＰＵにて実行し、処理結果をメインメモリの所定のアドレスに格納する。次に分散算出プログラムは、入力画像の全部または一部の中の複数方向の理論差分値の分散を算出するための処理をＣＰＵにて実行する。ここで入力画像の一部における複数方向の分散を算出する場合は入力画像から当該一部の領域を切り出すための前処理を実行する。次にブレ方向検出プログラムは、分散算出プログラムで算出された複数方向の分散を比較することでブレ方向を検出するための処理をＣＰＵにて実行する。具体的には、分散の指標が一番小さくなる方向を選択するための処理を実行する。次に探索プログラムは、検出されたブレ方向に並んだ画素中に比較的画素値が均一で隣どうしである二つの部分を探索する。具体的には、一定の画素数を含む領域の画素値の分散が所定の閾値以下になっているか否か、又は各画素の理論差分値の絶対値が所定の閾値以下になっているか否かを判断するための処理を行う。次に、ブレ幅算出プログラムは、検出された二つの部分の画素値の差と当該部分間の遷移領域内の理論差分値の最大絶対値を取得し、ブレ幅を算出する。
【００３４】
<処理の流れ>
図１５に示すのは、本実施例の画像処理装置における処理の流れの一例を説明するためのフローチャート図である。同図の処理の流れは以下のステップからなる。最初に、ステップＳ１５０１では、入力画像信号を受け付けたか否か判断する。ここでの判断が、受け付けたとの判断である場合は、ステップＳ１５０２に進む。ここでの判断が、受け付けていないとの判断である場合は、待機する。ステップＳ１５０２では、入力画像信号から画素値を取得する。この処理は、主に画素値取得部によって実行される。ステップＳ１５０３では、隣接画素間の画素値の差分値を算出する。この処理は、主に差分値算出部によって実行される。ステップＳ１５０４では、入力画像の全部または一部の中の複数方向の理論差分値の分散を算出する。この処理は、主に分散算出部によって実行される。ステップＳ１５０５では、算出された複数方向の分散を比較することでブレ方向を検出する。この処理は、主にブレ方向検出部によって実行される。ステップＳ１５０６では、ブレ方向に並んだ画素中に比較的画素値が均一で隣どうしである二つの部分を探索する。この処理は、主に探索部によって実行される。ステップＳ１５０７では、遷移領域内における理論差分値の最大絶対値を傾きとしてブレ幅を算出する。この処理は、主にブレ幅算出部によって実行される。
【００３５】
<効果>
以上のように、本実施例の画像処理装置は、一の入力画像から複数のブレ部分のブレ方向とブレ幅で検出することが可能である。これにより、画像の撮影後においても当該一の画像のみによって精度の高いブレ補正を行うことが可能になる。
【実施例４】
【００３６】
<概要>
本実施例の画像処理装置は、実施例３と同様に、一の入力画像から当該画像に含まれる複数のブレ部分に対して、当該部分ごとのブレ方向とブレ幅を検出する機能を有するものである。そして、本実施例の画像処理装置は、さらに、画素値とブレ方向とブレ幅に基づいて画像の補正を行い、補正画像を出力することが可能な機能を有するものである。
【００３７】
<構成>
図１６は、本実施例の画像処理装置の機能ブロックの一例を示す図である。同図において、本実施例の「画像処理装置」１６００は、「画素値取得部」１６０１と、「差分値算出部」１６０２と、「分散算出部」１６０３と、「ブレ方向検出部」１６０４と、「探索部」１６０５と、「ブレ幅算出部」１６０６と、「画像補正部」１６０７と、「補正画像出力部」１６０８とを有する。構成は基本的に実施例３に記載の装置の構成と同じであるため、相違点となる画像補正部と補正画像出力部について以下詳述する。
【００３８】
「画像補正部」は、前記画素値と検出されたブレ方向と算出されたブレ幅とに基づいて画像の補正を行うように構成されている。図１７（ａ）はブレ補正が行われたブレ補正画像の画素値の様子を表し、図１７（ｂ）はブレ補正が行われていない入力画像そのものの画素値の様子を表す。ここでは、ｉ番目の画素のブレ補正前の画素値をＬｉ、ブレ補正後の画素値をＬ０ｉと表わす。Ｌ０ｉ−３、Ｌ０ｉ−２、Ｌ０ｉ−１はブレ方向と反対の安定部にあるため、ブレが発生しても画素値はほとんど変化しない。しかし、Ｌ０ｉ、Ｌ０ｉ＋１、Ｌ０ｉ＋２、Ｌ０ｉ＋３はブレ方向と同じ安定部にあるため、ブレが発生すると変化することになる。ブレが等速で生じたと仮定すると、各画素の関係は、下式のように表わされる。
【数３】
0004966220.tif 000004
これらの式では、ブレの影響を受けにくい安定部１の特徴から、Ｌ０ｉ−１≒Ｌｉ−１、Ｌ０ｉ−２≒Ｌｉ−２、Ｌ０ｉ−３≒Ｌｉ−３、の関係を仮定している。これらの式を変形すると、
【数４】
0004966220.tif 000005
と書ける。これらの式からＬ０ｉ、Ｌ０ｉ＋１、Ｌ０ｉ＋２、Ｌ０ｉ＋３が順次求まる。つまり、ブレ補正後の画素値が求まることになる。
【００３９】
「補正画像出力部」は、補正された画像を出力するように構成されている。画像の出力方法としては、例えば、ディスプレイ等に補正画像を出力表示する方法や、インターフェイスを介して外部の出力機器に対して出力する方法等が考えられる。なお、画像を出力する際に、各ブレ領域のブレ方向やブレ幅等の情報を合わせて出力する構成も可能である。
【００４０】
<具体的な構成>
図１８は、本実施例の画像処理装置のハードウェア構成の一例を示す概略図である。その構成は、基本的に図１４を用いて説明した実施例３の装置のハードウェア構成と共通する。ただし、本実施例の画像処理装置は、ＣＰＵとメインメモリが画像補正部と補正画像出力部としての機能をも備える。
【００４１】
インターフェイスを介して入力された一の画像信号はビデオメモリの所定のアドレスに格納され、メインメモリで処理可能な画像データに変換される。画素値取得プログラムは、ビデオメモリからの画像データをメインメモリの所定のアドレスに格納し、画素値を画素ごとに取得するための処理をＣＰＵにて実行し、処理結果である画素値をメインメモリの所定のアドレスに格納する。次に差分値算出プログラムは、メインメモリ上の画素値を参照して、隣接画素間の差分値を算出するための処理をＣＰＵにて実行し、処理結果をメインメモリの所定のアドレスに格納する。次に分散算出プログラムは、入力画像の全部または一部の中の複数方向の理論差分値の分散を算出するための処理をＣＰＵにて実行する。ここで入力画像の一部における複数方向の分散を算出する場合は入力画像から当該一部の領域を切り出すための前処理を実行する。次にブレ方向検出プログラムは、分散算出プログラムで算出された複数方向の分散を比較することでブレ方向を検出するための処理をＣＰＵにて実行する。具体的には、分散の指標が一番小さくなる方向を選択するための処理を実行する。次に探索プログラムは、検出されたブレ方向に並んだ画素中に比較的画素値が均一で隣どうしである二つの部分を探索する。具体的には、一定の画素数を含む領域の画素値の分散の指標が所定の閾値以下になっているか否か、又は各画素の理論差分値の絶対値が所定の閾値以下になっているか否かを判断するための処理を行う。次に、ブレ幅算出プログラムは、検出された二つの部分の画素値の差と当該部分間の遷移領域内の理論差分値の最大絶対値を取得し、ブレ幅を算出する。画像補正プログラムは、画素値と検出されたブレ方向と算出されたブレ幅に基づいて画像の補正を行う処理をＣＰＵにて実行し、処理結果をメインメモリの所定のアドレスに格納する。補正画像出力プログラムは、補正された画像を出力するための処理をＣＰＵにて実行し、処理結果をディスプレイに出力する。具体的には、出力データをビデオメモリに伝送し、ビデオメモリにおいてディスプレイで表示可能な信号に変換する。
【００４２】
<処理の流れ>
図１９に示すのは、本実施例の画像処理装置における処理の流れの一例を説明するためのフローチャート図である。同図の処理の流れは以下のステップからなる。最初に、ステップＳ１９０１では、入力画像信号を受け付けたか否か判断する。ここでの判断が、受け付けたとの判断である場合は、ステップＳ１９０２に進む。ここでの判断が、受け付けていないとの判断である場合は、待機する。ステップＳ１９０２では、入力画像信号から画素値を取得する。この処理は、主に画素値取得部によって実行される。ステップＳ１９０３では、隣接画素間の画素値の差分値を算出する。この処理は、主に差分値算出部によって実行される。ステップＳ１９０４では、入力画像の全部または一部の中の複数方向の理論差分値の分散を算出する。この処理は、主に分散算出部によって実行される。ステップＳ１９０５では、算出された複数方向の分散を比較することでブレ方向を検出する。この処理は、主にブレ方向検出部によって実行される。ステップＳ１９０６では、ブレ方向に並んだ画素中に比較的画素値が均一で隣どうしである二つの部分を探索する。この処理は、主に探索部によって実行される。ステップＳ１９０７では、遷移領域内における理論差分値の最大絶対値を傾きとしてブレ幅を算出する。この処理は、主にブレ幅算出部によって実行される。ステップＳ１９０８では、画素値とブレ方向とブレ幅とに基づいて画像の補正を行う。この処理は、主に画像補正部によって実行される。ステップＳ１９０９では、補正された画像を出力する。この処理は、主に補正画像出力部によって実行される。
【００４３】
<効果>
以上のように、本実施例の画像処理装置は、一の入力画像から複数のブレ部分のブレ方向とブレ幅を検出し、当該情報に基づいてブレ補正を行い、補正画像を出力することが可能である。これにより、画像の撮影後においても当該一の画像のみによって精度の高いブレ補正を行うことが可能になる。
【図面の簡単な説明】
【００４４】
【図１】実施例１に係る画像処理装置の概要を示す図
【図２】実施例１に係る画像処理装置の機能ブロックの一例を示す図
【図３】元画像から注目する一部のブロックを切り出す処理の概要を示す図
【図４】取り出したブロックの理論差分値の分散を算出する方法の一例を示す図
【図５】実施例１に係る画像処理装置のハードウェア構成の一例を示す概略図
【図６】実施例１に係る画像処理装置における処理の流れの一例を示す図
【図７】実施例２に係る画像処理装置の機能ブロックの一例を示す図
【図８】複数方向の理論差分値の分散を極座標表示した図
【図９】実施例２に係る画像処理装置のハードウェア構成の一例を示す概略図
【図１０】実施例２に係る画像処理装置における処理の流れの一例を示す図
【図１１】実施例３に係る画像処理装置の機能ブロックの一例を示す図
【図１２】探索部によって探索された二つの部分を概念的に表した図
【図１３】ブレ幅の算出方法を概念的に説明する図
【図１４】実施例３に係る画像処理装置のハードウェア構成の一例を示す概略図
【図１５】実施例３に係る画像処理装置における処理の流れの一例を示す図
【図１６】実施例４に係る画像処理装置の機能ブロックの一例を示す図
【図１７】ブレが発生した場合と補正した場合の画素値の様子を座標を付して示す図
【図１８】実施例４に係る画像処理装置のハードウェア構成の一例を示す概略図
【図１９】実施例４に係る画像処理装置における処理の流れの一例を示す図
【符号の説明】
【００４５】
０２００、０７００、１１００、１６００    画像処理装置
０２０１、０７０１、１１０１、１６０１    画素値取得部
０２０２、０７０２、１１０２、１６０２    差分値算出部
０２０３、０７０３、１１０３、１６０３    分散算出部
０２０４、０７０４、１１０４、１６０４    ブレ方向検出部
０７０５    方向算出手段
０７０６    選択手段
１１０５、１６０５    探索部
１１０６、１６０６    ブレ幅算出部
１６０７    画像補正部
１６０８    補正画像出力部
【図１】
0004966220.tif 000006
【図２】
0004966220.tif 000007
【図３】
0004966220.tif 000008
【図４】
0004966220.tif 000009
【図５】
0004966220.tif 000010
【図６】
0004966220.tif 000011
【図７】
0004966220.tif 000012
【図８】
0004966220.tif 000013
【図９】
0004966220.tif 000014
【図１０】
0004966220.tif 000015
【図１１】
0004966220.tif 000016
【図１２】
0004966220.tif 000017
【図１３】
0004966220.tif 000018
【図１４】
0004966220.tif 000019
【図１５】
0004966220.tif 000020
【図１６】
0004966220.tif 000021
【図１７】
0004966220.tif 000022
【図１８】
0004966220.tif 000023
【図１９】
0004966220.tif 000024