(57)【特許請求の範囲】
【請求項１】
複数の画像から、前記複数の画像よりも解像度の高い合成画像を生成する画像処理をコンピュータで実現するためのプログラムであって、
前記複数の画像を取得する取得ステップと、
前記複数の画像の位置合わせを行い、前記複数の画像の位置合わせ結果に基づく補間処理により、前記複数の画像よりも解像度の高い補間画像を生成する補間ステップと、
前記複数の画像間の位置合わせの精度を判定する判定ステップと、
前記精度に基づいて、前記複数の画像のうち少なくとも１つの画像と、前記補間画像とを合成する際の重み付けを、前記位置合わせの精度が低いほど、前記複数の画像の重みを大きくするように決定する決定ステップと、
前記決定ステップにおいて決定した前記重み付けを用いて、前記複数の画像のうち少なくとも１つの画像と、前記補間画像とを合成して前記合成画像を生成する合成ステップと
を備えることを特徴とする画像処理プログラム。
【請求項２】
請求項１に記載の画像処理プログラムにおいて、
前記判定ステップでは、前記複数の画像を所定の数に分割した領域毎の位置合わせ精度と、前記複数の画像に含まれる画素毎の位置合わせ精度との少なくとも一方に基づいて、前記精度を判定する
ことを特徴とする画像処理プログラム。
【請求項３】
請求項１に記載の画像処理プログラムにおいて、
前記決定ステップでは、前記精度に基づいて、前記合成ステップにおける重み付けの分布を示す重み付け情報を算出し、
前記合成ステップでは、前記重み付け情報を用いて、前記合成画像を生成する
ことを特徴とする画像処理プログラム。
【請求項４】
請求項１から請求項３の何れか１項に記載の画像処理プログラムによる処理を実行する制御部を備えることを特徴とする画像処理装置。
【請求項５】
被写体を撮像して、画像を生成する撮像部と、
請求項４に記載の画像処理装置とを備え、
前記制御部は、前記取得ステップにおいて、前記撮像部により生成した複数の画像を、前記複数の画像として取得する
ことを特徴とする撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラム、画像処理装置および撮像装置に関する。
【背景技術】
【０００２】
従来より、位置ずれを含む複数の画像から、相対的に解像度の高い合成画像を生成する画像処理が行われている。例えば、特許文献１の発明は、複数枚の低解像度画像について位置合わせを行い、例えばサブピクセル程度の微少な位置ずれ量に基づいて、相対的に解像度の高い合成画像を生成している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１２７２４４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上述した画像処理においては、動いている物体（動体）と静止している物体（静止物体）とが被写体に含まれる場合に、位置合わせの判定が正しく行われない場合がある。また、特許文献１の発明で用いられている手法である２値化の閾値を用いて位置合わせを行う場合、動体と静止物体とが２値的に判別されるため、合成画像に段差のような部分が発生してしまう場合がある。
【０００５】
本発明は、上記問題に鑑みてなされたものであり、位置ずれを含む複数の画像から、それらの画像よりも解像度の高い合成画像を生成する画像処理において、被写界に動体と静止物体とが含まれている場合であっても、好ましい合成画像を生成することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像処理プログラムは、複数の画像から、前記複数の画像よりも解像度の高い合成画像を生成する画像処理をコンピュータで実現するためのプログラムであって、前記複数の画像を取得する取得ステップと、前記複数の画像の位置合わせを行い、前記複数の画像の位置合わせ結果に基づく補間処理により、前記複数の画像よりも解像度の高い補間画像を生成する補間ステップと、前記複数の画像間の位置合わせの精度を判定する判定ステップと、前記精度に基づいて、前記複数の画像のうち少なくとも１つの画像と、前記補間画像とを合成する際の重み付けを、前記位置合わせの精度が低いほど、前記複数の画像の重みを大きくするように決定する決定ステップと、前記決定ステップにおいて決定した前記重み付けを用いて、前記複数の画像のうち少なくとも１つの画像と、前記補間画像とを合成して前記合成画像を生成する合成ステップとを備える。
【０００７】
なお、前記判定ステップでは、前記複数の画像を所定の数に分割した領域毎の位置合わせ精度と、前記複数の画像に含まれる画素毎の位置合わせ精度との少なくとも一方に基づいて、前記精度を判定しても良い。
【０００８】
また、前記決定ステップでは、前記精度に基づいて、前記合成ステップにおける重み付けの分布を示す重み付け情報を算出し、前記合成ステップでは、前記重み付け情報を用いて、前記合成画像を生成しても良い。
【０００９】
本発明の画像処理装置は、上述したいずれかの画像処理プログラムによる処理を実行する制御部を備える。
【００１０】
本発明の撮像装置は、被写体を撮像して、画像を生成する撮像部と、上述した画像処理装置とを備え、前記制御部は、前記取得ステップにおいて、前記撮像部により生成した複数の画像を、前記複数の画像として取得する。
【発明の効果】
【００１１】
本発明によれば、位置ずれを含む複数の画像から、それらの画像よりも解像度の高い合成画像を生成する画像処理において、被写界に動体と静止物体とが含まれている場合であっても、好ましい合成画像を生成することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態のコンピュータ１の構成を示す図である。
【図２】本実施形態における画像処理を実行する際の制御部１５の動作について説明するフローチャートである。
【図３】本実施形態における画像処理を実行する際の制御部１５の動作について説明する別のフローチャートである。
【図４】本実施形態における画像処理を実行する際の制御部１５の動作について説明するフローチャートである。
【図５】本実施形態における画像処理を実行する際の制御部１５の動作について説明する別のフローチャートである。
【図６】本実施形態における画像処理の流れを説明する模式図である。
【図７】本実施形態の撮像装置の一例である電子カメラ１００の構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を用いて本発明の実施形態について説明する。以下では、コンピュータを例に挙げて説明を行う。
【００１４】
図１は、本実施形態のコンピュータ１の構成を示す図である。コンピュータ１は、図１に示すように、取得部１１と記録部１２と画像表示部１３と操作部１４と制御部１５とを備える。取得部１１は、有線、無線、記録媒体用のドライブなどを介して、電子カメラなどの外部機器や記録媒体から画像データを取得する。記録部１２は、画像データなどを記録する。画像表示部１３は、液晶表示素子などの画像表示素子を備える。操作部１４は、電源釦、マウス、キーボードなどを含む。制御部１５は、各部を統合的に制御する。また、制御部１５は、各処理を実行するためのプログラムを予め記録している。なお、このプログラムは、有線、無線を経由したインターネットを介して取得したものであっても良いし、記録媒体などを介して取得したものであっても良い。
【００１５】
制御部１５は、取得部１１により取得した画像や、記録部１５に記録された画像に対して、位置ずれを含む複数の画像から、それらの画像よりも解像度の高い合成画像を生成する画像処理を施す。
【００１６】
このような画像処理を実行する際の制御部１５の動作について、図２〜図５のフローチャートと、図６の模式図を参照して説明する。
【００１７】
図２は、処理の全体の流れを示すフローチャートである。
【００１８】
ステップＳ１において、制御部１５は、操作部１４を介したユーザによる指示にしたがって、処理対象となる複数の低解像度画像を取得する。なお、処理対象となる複数の低解像度画像は、略同一の被写体を撮像し、位置ずれを含む複数の画像であれば、動画像（圧縮および非圧縮を含む）であっても良いし、静止画像であっても良いし、動画像と静止画像との両方であっても良い。また、各種画像の形式は、どのような形式（例えば、ＲＡＷ形式など）であっても良い。
【００１９】
ステップＳ２において、制御部１５は、ステップＳ１で取得した複数の低解像度画像のうち、基準となる低解像度画像（以下、「基準画像」と称する）と、その他の低解像度画像との間で位置合わせ処理を行う。位置合わせ処理の詳細は後述する。
【００２０】
ステップＳ３において、制御部１５は、ステップＳ２で行った位置合わせ処理の結果に基づいて、位置合わせマップを作成する。位置合わせマップは、上述した位置合わせの精度に基づき、後述する合成処理時の重み付けの分布を示す情報である。位置合わせマップの作成の詳細は後述する。
【００２１】
ステップＳ４において、制御部１５は、ステップＳ２で行った位置合わせ処理の結果に基づいて、ステップＳ１で取得した複数の低解像度画像に対する補間処理を行い、補間画像を生成する。補間処理は、公知のどのような手法を用いて行っても良い。
【００２２】
なお、この補間画像は、補間処理により、ステップＳ１で取得した複数の低解像度画像よりも画素数が多くなる。そのため、補間画像は、ステップＳ１で取得した複数の低解像度画像よりもサイズが大きくなる。
【００２３】
ステップＳ５において、制御部１５は、ステップＳ３で作成した位置合わせマップに基づいて、ステップＳ２で行った位置合わせ処理の基準画像と、ステップＳ４で生成した補間画像とに対する合成処理を行う。合成処理は、所定の繰り返し演算を行う超解像処理である。合成処理の詳細は後述する。
【００２４】
ステップＳ６において、制御部１５は、ステップＳ５における合成処理により生成した合成画像の画像データを、記録部１２に記録し、一連の処理を終了する。なお、必要に応じて、制御部１５は、記録前の合成画像に対して、圧縮処理を行っても良い。
【００２５】
図３は、図２のフローチャートのステップＳ２で説明した位置合わせ処理の詳細を示すフローチャートである。
【００２６】
ステップＳ１１において、制御部１５は、位置合わせの基準となる低解像度画像（上述した基準画像）を取得する。
【００２７】
ステップＳ１２において、制御部１５は、位置合わせの対象となる低解像度画像を取得する。
【００２８】
ステップＳ１３において、制御部１５は、位置合わせ処理を行う。位置合わせ処理は、公知のどのような手法（例えば、Ｌｕｃａｓ−Ｋａｎａｄｅ法、ＨＳ法、Ｂｌｏｃｋ  Ｍａｔｃｈｉｎｇ法など）を用いて行っても良い。例えば、制御部１５は、基準画像と位置合わせの対象となる低解像度画像とをそれぞれ所定の領域に分割し、分割領域ごとに画素値の差分値を求めることにより、位置合わせ処理を行う。また、制御部１５は、例えば、特徴点を用いる手法で位置合わせ処理を行っても良い。さらに、位置合わせ処理を多重解像処理しても良い。
【００２９】
ステップＳ１４において、制御部１５は、ステップＳ１３で行った位置合わせ処理の結果に基づいて、エラー値を算出する。エラー値とは、ステップＳ１３における位置合わせの精度を示す値であり、画素ごとに算出される。
【００３０】
制御部１５は、まず、上述した領域ごとに、領域内に含まれる画素ごとの差分値に基づいて、領域レベルのエラー値Ｅｂを求める。さらに、画素ごとの差分値に基づいて、画素レベルのエラー値Ｅｐとする。なお、差分値からエラー値を求める際には、例えば、累積値や平均値を算出する。
そして、次式を用いて、任意の画素のエラー値Ｅを算出する。
【００３１】
Ｅ＝Ｅｂ×Ｅｐ  …（式１）
なお、この方法は一例であり、領域レベルのエラー値Ｅｂのみを用いても良いし、画素レベルのエラー値Ｅｐのみを用いても良い。また、領域レベルのエラー値Ｅｂと画素レベルのエラー値Ｅｐとの両方を重み付け加算してエラー値Ｅとしても良い。
【００３２】
ステップＳ１５において、制御部１５は、図２のフローチャートのステップＳ１で取得した複数の低解像度画像の全てについて位置合わせ処理を終了したか否かを判定する。制御部１５は、全ての低解像度画像について位置合わせ処理を終了したと判定すると、位置合わせ処理を終了し、図２のフローチャートのステップＳ３に進む。一方、全ての低解像度画像について位置合わせ処理を終了していないと判定すると、；の低解像度画像を処理対象とし、ステップＳ１２に戻る。
【００３３】
図４は、図２のフローチャートのステップＳ３で説明した位置合わせマップ作成の詳細を示すフローチャートである。位置合わせマップは、上述したように、合成処理時の重み付けの分布を示す情報である。制御部１５は、図３のフローチャートで説明した位置合わせ処理において算出されたエラー値を、図２のフローチャートで説明した補間画像のスケールにマッピングすることにより、位置合わせマップを作成する。
【００３４】
ステップＳ２１において、制御部１５は、図３のフローチャートのステップＳ１４で算出したエラー値を取得する。
【００３５】
ステップＳ２２において、制御部１５は、ステップＳ２１で取得したエラー値Ｅを規格化する。制御部１５は、エラー値Ｅに対して正規化係数を乗じ、エラー値Ｅが０〜１の値に収まるように正規化する。なお、制御部１５は、正規化係数を乗じても１を超える場合は、その値を１に置き換える。
【００３６】
ステップＳ２３において、制御部１５は、ステップＳ２２で説明した規格化を、全ての画素について行ったか否かを判定する。制御部１５は、規格化を、全ての画素について行ったと判定すると、ステップＳ２４に進む。一方、規格化を、全ての画素について行っていないと判定すると、次の領域を処理対象とし、ステップＳ２２に戻る。
【００３７】
ステップＳ２４において、制御部１５は、ステップＳ２２で規格化を行ったエラー値に対して、平滑化処理を行い、図２のフローチャートのステップＳ４に進む。この平滑化処理により、位置合わせマップに基づく重み付けが滑らかに変化するようになる。
【００３８】
なお、ステップＳ２２で説明した規格化に先立って平滑化処理を行っても良い。すなわち、取得したエラー値に対して平滑化処理を行った後に規格化しても良い。
【００３９】
また、平滑化処理を省略しても良い。図３のステップＳ１４で説明したように、エラー値Ｅは、領域レベルのエラー値Ｅｂと画素レベルのエラー値Ｅｐとに基づいて算出されている。領域レベルのエラー値Ｅｂを用いることにより、平滑化処理を行わなくても、エラー値の変化はある程度滑らかになる。
【００４０】
図５は、図２のフローチャートのステップＳ５で説明した合成処理の詳細を示すフローチャートである。
【００４１】
ステップＳ３１において、制御部１５は、基準画像（図２のフローチャートステップＳ２参照）を取得する。
【００４２】
ステップＳ３２において、制御部１５は、ステップＳ３１で取得した基準画像に対して拡大処理を行う。図２のフローチャートのステップＳ４において説明したように、補間画像は、ステップＳ１で取得した複数の低解像度画像（基準画像を含む）よりもサイズが大きくなる。そのため、後述するステップＳ３４において、基準画像と補間画像との合成処理を行う際に、それらの画像のサイズをそろえておく必要がある。そこで、制御部１５は、基準画像に対して拡大処理を行い、補間画像と同サイズに拡大する。
【００４３】
ステップＳ３３において、制御部１５は、補間画像（図２のフローチャートステップＳ４参照）と位置合わせマップ（図３のフローチャート参照）とを取得する。
【００４４】
ステップＳ３４において、制御部１５は、位置合わせマップにしたがって、基準画像と補間画像とを重み付け加算する。重み付け加算後の画像データＤは、次式を用いて行われる。
【００４５】
Ｄ＝補間画像の画像データ×（１−Ｅ）＋基準画像の画像データ×Ｅ  …（式２）
制御部１５は、上述した式２にしたがって、重み付け加算を画素ごとに行う。
【００４６】
ステップＳ３５において、制御部１５は、ステップＳ３４で説明した重み付け加算処理を、全ての画素について行ったか否かを判定する。制御部１５は、全ての画素について行ったと判定すると、ステップＳ３６に進む。一方、全ての画素について行っていないと判定すると、次の画素を処理対象とし、ステップＳ３４に戻る。
【００４７】
ステップＳ３６において、制御部１５は、ステップＳ３１で取得した基準画像を更新する。
【００４８】
ステップＳ３７において、制御部１５は、繰り返し処理を終了するか否かを判定する。制御部１５は、繰り返し処理を終了すると判定すると、図２のフローチャートのステップＳ６に進む。一方、繰り返し処理を終了しないと判定すると、ステップＳ３４に戻る。ただし、制御部１５は、次の処理においては、ステップＳ３６で更新された基準画像を対象として処理を行う。なお、繰り返し処理を終了するか否かの判定は予め定められた条件にしたがって行われる。制御部１５は、例えば、処理の回数や、所定の評価値と閾値との比較などの条件にしたがって、繰り返し処理を終了するか否かの判定を行う。
【００４９】
なお、図５で説明した合成処理は一例であり、本発明はこの例に限定されない。上述した方法以外に、どのような最適化手法を用いても良い。例えば、最急降下法や共役勾配法を用いても良い。
【００５０】
図２〜図５のフローチャートの処理を行う際に生成される画像や各種情報について、図６の模式図を参照して説明する。
【００５１】
例えば、図２のフローチャートのステップＳ１において、図６Ａ~図６Ｃに示す複数の低解像度画像を取得したとする。図６Ａ~図６Ｃの画像は、背景に建物があり、その手前を車が左から右に横切っていく複数の画像である。これらの画像のうち、図６Ａの画像を基準画像として、図２のフローチャートのステップＳ２およびステップＳ４の処理を行って生成されるのが、図６Ｄの補間画像である。補間画像は、図６Ｄに示すように、基準画像よりもサイズが大きく、また、動体である車の部分については、位置合わせが正しく行われないため、欠落した画像になる。
【００５２】
また、図２のフローチャートのステップＳ３の処理を行って作成されるのが、図６Ｅの位置合わせマップである。位置合わせマップは、図６Ｅに示すように、エラー値Ｅが大きいほど白く表現され、エラー値Ｅが小さいほど黒く表現されている。図６Ｅにおいて白い部分（エラー値が大きい部分）は、動体である車の部分に対応し、図６Ｅにおいて黒い部分（エラー値が小さい部分）は、静止物体である建物などの部分に対応する。
【００５３】
さらに、図２のフローチャートのステップＳ５の処理を行って生成されるのが、図６Ｆの合成画像である。合成画像は、図６Ｆに示すように、静止物体である建物部分は、補間画像（図６Ｄ）により高解像化され、動体である車の部分は、基準画像により、欠落することがない。
【００５４】
以上説明したように、本実施形態によれば、位置ずれを含む複数の画像を取得して位置合わせを行い、補間処理により補間画像を生成する。そして、位置合わせの精度を判定し、判定した精度に基づいて複数の画像のうち少なくとも１つの画像と、補間画像とを合成する際の重み付けを決定する。そして、決定した重み付けにしたがった最適化手法により、複数の画像のうち少なくとも１つの画像と、補間画像とを合成して合成画像を生成する。したがって、被写界に動体と静止物体とが含まれている場合において、動体の部分については、初期に取得した位置合わせの対象となる画像の情報をより多く反映させ、静止物体の部分については、補間画像の情報をより多く反映させることができる。そのため、位置ずれを含む複数の画像から、それらの画像よりも解像度の高い合成画像を生成する画像処理において、被写界に動体と静止物体とが含まれている場合であっても、好ましい合成画像を生成することができる。
【００５５】
なお、本実施形態において、図２のフローチャートのステップＳ１で取得する複数の低解像度画像は、どのようなものであっても良い。例えば、ベイヤー配列の複数の画像を取得しても良いし、補間処理済みの複数の画像を取得しても良い。
【００５６】
また、本実施形態では、合成画像として静止画像を生成する場合を例に挙げて説明したが、合成画像として動画像を生成する場合にも本発明を同様に応用することができる。
【００５７】
また、本実施形態で説明した位置合わせマップは、本実施形態で説明した合成処理以外の目的で利用しても良い。例えば、動体抽出処理などに利用しても良い。
【００５８】
また、本実施形態では、コンピュータを例に挙げて説明したが、本発明はこの例に限定されない。例えば、上述した実施形態で説明したプログラムによる処理を実行する電子カメラなどの撮像装置も、本発明の具体的態様として有用である。
【００５９】
図７は、このような撮像装置の一例である電子カメラ１００の構成を示すブロック図である。
【００６０】
電子カメラ１００は、図７に示すように、撮影レンズ部１１１、ＣＣＤ等の撮像素子１１２を含む撮像部１１３、画像を表示する液晶モニタなどを備えた画像表示部１１４、画像を記録する記録媒体などからなる記録部１１５、不図示のレリーズボタンなどを有し、ユーザ操作を受け付ける操作部１１６、各部を制御する制御部１１７を備える。撮像部１１３、記録部１１５、制御部１１７は、バスを介して相互に接続される。また、制御部１１７の出力は、バスを介して画像表示部１１４にも接続される。また、操作部１１６の出力は、制御部１１７に接続される。
【００６１】
制御部１１７は、撮像部１１３により生成した画像（動画像および静止画像を含む）や、記録部１１５に記録された画像（動画像および静止画像を含む）を、上述した実施形態の図２のフローチャートのステップＳ１における複数の低解像度画像として取得し、図２から図５のフローチャートで説明した処理の一部または全部を実行するためのプログラムを記録する。
【００６２】
そして、制御部１１７は、図２から図５のフローチャートで説明した処理と同様の処理を行う。
【００６３】
このように、被写体を撮像して、画像を生成する撮像部と、上述した実施形態において説明した画像処理プログラムによる処理を実行する制御部とを備え、撮像部により生成した複数の画像を、上述した実施形態における複数の低解像度画像として取得し、同様の処理を行うことにより、上述した実施形態と同様の効果を得ることができる。
【符号の説明】
【００６４】
１…コンピュータ、１１…取得部、１２・１１５…記録部、１４・１１６…操作部、１５・１１７…制御部、１００…電子カメラ、１１３…撮像部
【図１】
0005527035.tif 000002
【図２】
0005527035.tif 000003
【図３】
0005527035.tif 000004
【図４】
0005527035.tif 000005
【図５】
0005527035.tif 000006
【図７】
0005527035.tif 000007
【図６】
0005527035.tif 000008