(57)【要約】      （修正有）【課題】動体の軌跡を途切れさせずに複数の画像から１枚の画像を生成するための技術を提供する。【解決手段】画像処理装置は、複数フレームの撮像画像から選択した画素を用いて１枚の合成画像を生成する。複数フレームの撮像画像のうち、少なくとも２つのフレーム間における移動ベクトルを算出する。合成画像の画素に対応する移動ベクトルに基づいて、該合成画像を補正する。【選択図】図３
2019213164.tif 000002
【特許請求の範囲】
【請求項１】
複数フレームの撮像画像から選択した画素を用いて１枚の合成画像を生成する生成手段と、
前記複数フレームの撮像画像のうち、少なくとも２つのフレーム間における移動ベクトルを算出する算出手段と、
前記合成画像の画素に対応する移動ベクトルに基づいて、該合成画像を補正する補正手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記補正手段は、前記合成画像の着目画素として前記生成手段が選択した画素について前記算出手段が算出した移動ベクトルを、前記着目画素の画素値を補正するために参照することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記補正手段は、前記合成画像における画素の画素値を、該画素と、該画素に対応する移動ベクトルの方向に該画素から離間した画素と、を結ぶ線分が通過する画素の画素値に基づいて補正することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記補正手段は、前記合成画像における画素の画素値と、該画素に対応する移動ベクトルの方向に該画素から離間した画素の画素値と、に基づいて、該離間した画素の画素値を補正することを特徴とする請求項１または２に記載の画像処理装置。
【請求項５】
前記補正手段は、前記合成画像における着目画素に対応する移動ベクトルの方向に該着目画素から離間した画素の画素値に対して、前記着目画素と該離間した画素とを結ぶ線分と該離間した画素との間の距離に応じた重み付けを行い、該重み付けした画素値に基づいて該着目画素の画素値を補正することを特徴とする請求項１または２に記載の画像処理装置。
【請求項６】
前記生成手段は、前記複数フレームの撮像画像の着目画素位置における画素のうち最大の輝度値を有する画素を選択し、該選択した画素を前記合成画像の該着目画素位置における画素として選択することを特徴とする請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記生成手段は、前記複数フレームの撮像画像の着目画素位置における画素のうち最小の輝度値を有する画素を選択し、該選択した画素を前記合成画像の該着目画素位置における画素として選択することを特徴とする請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項８】
前記算出手段は、前記撮像画像と該撮像画像の前のフレームの撮像画像との間のフレーム間における移動ベクトルを算出することを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項９】
前記算出手段は、前記撮像画像と該撮像画像の後のフレームの撮像画像との間のフレーム間における移動ベクトルを算出することを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項１０】
前記算出手段は、フレーム間における移動ベクトルを前記撮像画像の露光時間及びフレームレートに基づいて修正することを特徴とする請求項１乃至９の何れか１項に記載の画像処理装置。
【請求項１１】
前記生成手段は、逆γ変換した複数フレームの撮像画像から選択した画素を用いて１枚の合成画像を生成し、
前記算出手段は、前記逆γ変換した複数フレームの撮像画像のうち、少なくとも２つのフレーム間における移動ベクトルを算出し、
前記補正手段は、前記合成画像の画素として前記生成手段が選択した画素について前記算出手段が算出した移動ベクトルに基づいて該合成画像を補正し、該補正した合成画像と、前記逆γ変換した複数フレームの撮像画像の平均画像と、をαブレンドした結果をγ変換することを特徴とする請求項１乃至１０の何れか１項に記載の画像処理装置。
【請求項１２】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の生成手段が、複数フレームの撮像画像から選択した画素を用いて１枚の合成画像を生成する生成工程と、
前記画像処理装置の算出手段が、前記複数フレームの撮像画像のうち、少なくとも２つのフレーム間における移動ベクトルを算出する算出工程と、
前記画像処理装置の補正手段が、前記合成画像の画素に対応する移動ベクトルに基づいて、該合成画像を補正する補正工程と
を備えることを特徴とする画像処理方法。
【請求項１３】
コンピュータを、請求項１乃至１１の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の画像から１枚の画像を生成するための技術に関するものである。
【背景技術】
【０００２】
近年、連写して得た画像や動画像の各フレームの画像を位置合わせして合成する技術が発展してきている。この技術は、例えば、星空の星が動く軌跡を連写して得た複数枚の画像を比較明合成することで１枚の画像を作成したり、動画像の複数フレームの画像を足し合わせることで流し撮りのような画像を作成する技術である。
【０００３】
特許文献１には、複数の画像を比較明合成した時に発生する、明るい光の軌跡の途切れを低減する技術が開示されている。この技術によれば、複数の画像を加算平均して光跡の重複部分を作った画像を比較明合成することで、比較明合成に起因する途切れを低減することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２３３２３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では、フレーム間に非露光期間があるため、複数の画像を合成すると動体の軌跡が途切れてしまうという問題がある。本発明では、動体の軌跡を途切れさせずに複数の画像から１枚の画像を生成するための技術を提供する。
【課題を解決するための手段】
【０００６】
本発明の一様態は、複数フレームの撮像画像から選択した画素を用いて１枚の合成画像を生成する生成手段と、前記複数フレームの撮像画像のうち、少なくとも２つのフレーム間における移動ベクトルを算出する算出手段と、前記合成画像の画素に対応する移動ベクトルに基づいて、該合成画像を補正する補正手段とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明の構成によれば、動体の軌跡を途切れさせずに複数の画像から１枚の画像を生成することができる。
【図面の簡単な説明】
【０００８】
【図１】コンピュータ装置１０００のハードウェア構成例を示すブロック図。
【図２】画像処理装置の機能構成例を示すブロック図。
【図３】画像処理装置１００が行う処理のフローチャート。
【図４】撮像画像、動体マップ、合成画像、合成動体マップ、補正後合成画像の一例を示す図。
【図５】形態１，２を説明する図。
【図６】形態３を説明する図。
【図７】形態５を説明する図。
【図８】画像処理装置の機能構成例を示すブロック図。
【図９】画像処理装置１００２が行う処理のフローチャート。
【図１０】撮像画像、動体マップ、合成画像、合成動体マップ、補正後合成画像、平均画像、ブレンド合成画像の一例を示す図。
【図１１】α値を変更したときのブレンド合成画像の一例を示す図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施形態の１つである。
【００１０】
［第１の実施形態］
本実施形態では、被写体（対象物）を撮像することで得られる複数フレームの撮像画像から１枚の画像を合成画像として生成する（複数フレームの撮像画像を合成して１枚の合成画像を生成する）。被写体の撮像画像は、該被写体の動画像を構成する各フレームの画像であっても良いし、該被写体を連写することで得られる各フレームの画像であっても良い。ここで、被写体の撮像画像が、該被写体の動画像を構成する各フレームの画像であっても、該被写体を連写することで得られる各フレームの画像であっても、フレーム間には非露光期間が存在する。然るに、このような複数フレームの撮像画像を合成すると、つなぎ目での途切れが見えてしまう。本実施形態では、このような途切れを低減するべく、生成した合成画像を補正する。
【００１１】
以下では、取り扱う画像は何れも、各画素の画素値の色成分がＲＧＢである画像（各画素の画素値が、Ｒ成分の画素値、Ｇ成分の画素値、Ｂ成分の画素値を含む画像）であるとする。しかし、以下で取り扱う画像の各画素の画素値の色成分はＲＧＢに限らず、他の色成分（例えば、ＹＵＶ、ＸＹＺ、Ｌａｂ）であっても良い。
【００１２】
本実施形態に係る画像処理装置の機能構成例を図２に示す。図２に示した機能構成を有する画像処理装置１００が複数フレームの撮像画像から１枚の合成画像を生成するために行う処理について、図３のフローチャートに従って説明する。
【００１３】
ステップＳ３０１では、入力部２０１は、同一の被写体を撮像した複数フレームの撮像画像を取得する。複数フレームの撮像画像の取得元については特定の取得元に限らない。例えば入力部２０１は、同一の被写体の動画像を撮像している若しくは該同一の被写体を連写している撮像装置から出力される各フレームの撮像画像を取得するようにしても良い。また入力部２０１は、予め画像処理装置１００の内部若しくは外部のメモリ装置に格納されている各フレームの撮像画像を該メモリ装置から取得するようにしても良い。なお、それぞれの撮像画像には、該撮像画像に固有の識別情報が添付されているものとするが、撮像画像の識別情報は該撮像画像に添付されていることに限らず、撮像画像と対応付けられていれば良い。
【００１４】
ステップＳ３０１で取得した撮像画像の一例を図４（Ａ）に示す。図４（Ａ）に示した撮像画像４０１Ａ、４０１Ｂ、４０１Ｃは、ステップＳ３０１で取得した連続する３フレームの撮像画像の一例であり、暗闇で光源が移動するような被写体を撮像することで得られる、連続する３フレームの撮像画像である。
【００１５】
ステップＳ３０２では、抽出部２０２は、ステップＳ３０１で取得したそれぞれの撮像画像から、処理対象となる画像領域（処理対象領域）を抽出する。処理対象領域は、後述する画像合成の内容に応じて決まる。
【００１６】
例えば、後述する画像合成として、複数の撮像画像の着目画素位置（ｘ、ｙ）の画素のうち最大の輝度値を有する画素を選択して合成画像における着目画素位置（ｘ、ｙ）の画素とする合成（比較明合成）を行うとする。この場合、ステップＳ３０２では、抽出部２０２は、ステップＳ３０１で取得したそれぞれの撮像画像について、該撮像画像において閾値以上の輝度値を有する画素によって構成される領域を処理対象領域として抽出する。
【００１７】
また例えば、後述する画像合成として、複数の撮像画像の着目画素位置（ｘ、ｙ）の画素のうち最小の輝度値を有する画素を選択して合成画像における着目画素位置（ｘ、ｙ）の画素とする合成（比較暗合成）を行うとする。この場合、ステップＳ３０２では、抽出部２０２は、ステップＳ３０１で取得したそれぞれの撮像画像について、該撮像画像において閾値未満の輝度値を有する画素によって構成される領域を処理対象領域として抽出する。
【００１８】
なお、ステップＳ３０２における処理の目的は、撮像画像において処理対象領域を特定することにあるため、同様の目的を達成できるのであれば、他の処理によって該目的を達成するようにしても良い。例えば、抽出部２０２は、撮像画像において処理対象領域を構成する画素にはマスク値「１」、処理対象領域を構成しない画素にはマスク値「０」を割り当てることで、各画素のマスク値を保持する２値画像を生成しても良い。
【００１９】
また、撮像画像における処理対象領域は、撮像画像の部分領域であることに限らず、撮像画像の全体領域であっても良く、その場合、ステップＳ３０２における処理は省略することができる。
【００２０】
ステップＳ３０３では、算出部２０３は、ステップＳ３０１で取得した各フレームの撮像画像について、隣接するフレーム間における処理対象領域の移動ベクトルを画素ごとに保持する動体マップを生成する。例えば算出部２０３は、フレームＡの撮像画像（撮像画像Ａ）と、フレームＡと隣接するフレームＢ（フレームＡと隣接する前後フレームの何れか一方）の撮像画像（撮像画像Ｂ）と、の間における処理対象領域の移動ベクトルを画素ごとに保持する動体マップを、「撮像画像Ａに対する動体マップ」として生成する。
【００２１】
例えば、撮像画像Ａ中の画素位置（ｘ、ｙ）における画素が処理対象領域を構成する画素であり、該画素がフレームＡの直前のフレームＢの撮像画像Ｂ中の画素位置（ｘ’，ｙ’）から移動した画素である場合、撮像画像Ａの動体マップ中の位置（ｘ，ｙ）には（Ｖｘ，Ｖｙ）＝（ｘ−ｘ’，ｙ−ｙ’）が登録される。また例えば、撮像画像Ａ中の画素位置（ｘ、ｙ）における画素が処理対象領域を構成する画素であり、該画素がフレームＡの直後のフレームＢの撮像画像Ｂ中の画素位置（ｘ’，ｙ’）に移動している場合、撮像画像Ａの動体マップ中の位置（ｘ，ｙ）には（Ｖｘ，Ｖｙ）＝（ｘ’−ｘ，ｙ’−ｙ）が登録される。なお、撮像画像Ａ中の画素位置（ｘ、ｙ）における画素が処理対象領域を構成する画素ではない場合には、撮像画像Ａの動体マップ中の位置（ｘ，ｙ）には（Ｖｘ，Ｖｙ）＝（０，０）等の値が登録される。
【００２２】
図４（Ａ）の撮像画像に対応する動体マップの一例を図４（Ｂ）に示す。図４（Ｂ）の動体マップ４０２Ａ，４０２Ｂ，４０２Ｃはそれぞれ、図４（Ａ）の撮像画像４０１Ａ、４０１Ｂ、４０１Ｃに対応する動体マップの一例である。
【００２３】
ここで、非露光期間を効果的に埋めるためには、算出部２０３は、（Ｖｘ，Ｖｙ）の代わりに以下の式で表される（Ｖｘ’，Ｖｙ’）を動体マップ中の位置（ｘ、ｙ）に登録するようにしても良い。
【００２４】
（Ｖ’ｘ，Ｖ’ｙ）＝（（１−Ｔｖ×ｆｐｓ）×Ｖｘ，（１−Ｔｖ×ｆｐｓ）×Ｖｙ）
ここで、Ｔｖは複数フレームの撮像画像の撮像時における露光時間［ｓｅｃ］、ｆｐｓは複数フレームの撮像画像のフレームレート（取得周波数：撮像画像間の時間差の逆数）［ｆｐｓ，ｆｒａｍｅ／ｓｅｃ］である。たとえば、露光時間Ｔｖ＝１／６０［ｓｅｃ］で、フレームレートｆｐｓ＝３０［ｆｐｓ］の場合、（Ｖｘ’，Ｖｙ’）は以下の式で得られる。
【００２５】
（Ｖ’ｘ，Ｖ’ｙ）＝（（１−３０／６０）×Ｖｘ，（１−３０／６０）×Ｖｙ）＝（０．５×Ｖｘ，０．５×Ｖｙ）
つまり、（Ｖｘ’，Ｖｙ’）は（Ｖｘ，Ｖｙ）を露光時間及びフレームレートに基づいて修正したものである。以下では、動体マップ中の位置（ｘ，ｙ）に登録したものが（Ｖｘ，Ｖｙ）であっても（Ｖｘ’，Ｖｙ’）であっても、（Ｖｘ，Ｖｙ）と表記する。
【００２６】
ステップＳ３０４では、生成部２０４は、ステップＳ３０１で取得した複数フレームの撮像画像から選択した画素を用いて１枚の合成画像を生成する（画像合成）。画像合成には上記の通り、比較明合成や比較暗合成などがある。図４（Ｃ）の４０３は、図４（Ａ）の撮像画像４０１Ａ、４０１Ｂ，４０１Ｃを用いて比較明合成を行うことで得られる合成画像の一例である。合成画像４０３は「撮像画像４０１Ａの処理対象領域から選択された画素の領域」（領域Ａ）、「撮像画像４０１Ｂの処理対象領域から選択された画素の領域」（領域Ｂ）、「撮像画像４０１Ｃの処理対象領域から選択された画素の領域」（領域Ｃ）を有する。また生成部２０４は、合成画像の各画素に対し、該画素の選択もとの撮像画像の識別情報を対応付ける。
【００２７】
ステップＳ３０５では、合成部２０５は、合成画像を構成する各画素に対応付けられた識別情報に対応する撮像画像の動体マップから、合成画像に対応する動体マップを合成動体マップとして生成する。例えば、合成部２０５は、合成画像中の画素位置（ｓ、ｔ）における画素に対応付けられている識別情報に対応する撮像画像の動体マップ中の位置（ｓ、ｔ）における要素（Ｖｓ，Ｖｔ）を、合成動体マップ中の位置（ｓ、ｔ）に登録する。
【００２８】
図４（Ｃ）の合成動体マップ４０４は、合成画像４０３に対応する合成動体マップの一例である。合成動体マップ４０４は、動体マップ４０２Ａにおいて領域Ａに対応する部分（斜線部分）、動体マップ４０２Ｂにおいて領域Ｂに対応する部分（斜線部分）、動体マップ４０２Ｃにおいて領域Ｃに対応する部分（斜線部分）、を有する。
【００２９】
ステップＳ３０６では、補正部２０６は、ステップＳ３０４で生成した合成画像に対して、ステップＳ３０５で生成した合成動体マップを用いた画像補正処理を行うことで、該合成画像を補正した補正後合成画像を生成する。ステップＳ３０５で生成した合成動体マップを用いた画像補正処理には様々な処理があり、以下では幾つかの例について説明する。
【００３０】
＜単方向の動体マップを使った画像補正処理（形態１）＞
図５（Ｂ）は合成画像を示しており、以下では合成画像中の画素５０１（画素位置は（ｘＡ，ｙＡ））を処理対象画素とし、該処理対象画素に対する画像補正処理について説明する。図５（Ａ）は、図５（Ｂ）に示した合成画像に対応する合成動体マップを表しており、合成動体マップ中の位置（ｘＡ，ｙＡ）における要素５０２として移動ベクトルＶＡ（Ｖｘ，Ｖｙ）が登録されているものとする。ここでは具体例を挙げて説明するために、（Ｖｘ，Ｖｙ）＝（−３，３）とする。
【００３１】
この場合、補正部２０６は先ず、合成画像中の画素位置（ｘ，ｙ）＝（ｘＡ＋α，ｙＡ＋Ｒｏｕｎｄ（α×Ｖｙ／Ｖｘ））における画素を特定する（｜Ｖｘ｜≧｜Ｖｙ｜の場合）。ここで、αはＶｘと同符号で０≦｜α｜≦｜Ｖｘ｜を満たす整数、Ｒｏｕｎｄ（ｘ）はｘに最も近い整数を表す。図５（Ｂ）の場合、画素５０１の画素位置から移動ベクトルＶＡの方向に移動ベクトルＶＡの大きさだけ離間した位置と、画素５０１の画素位置と、を結ぶ線分が通過する画素（画素５０１、画素５０３、画素５０４、画素５０５）を特定する。図５（Ｂ）においてＡ，Ｂ，Ｃ，Ｄはそれぞれ、画素５０１の画素値、画素５０３の画素値、画素５０４の画素値、画素５０５の画素値、である。
【００３２】
もし、｜Ｖｘ｜＜｜Ｖｙ｜の場合には、補正部２０６は、合成画像中の画素位置（ｘ，ｙ）＝（ｘＡ＋Ｒｏｕｎｄ（β×Ｖｘ／Ｖｙ），ｙＡ＋β）における画素を特定する。ここで、βはＶｙと同符号で０≦｜β｜≦｜Ｖｙ｜を満たす整数である。
【００３３】
そして補正部２０６は、ステップＳ３０５における画像合成が比較明合成であった場合には、画素５０１の画素値ＡをＡ’＝Ｍａｘ（Ａ，Ｂ，Ｃ，Ｄ）を満たすＡ’に更新する。以下、Ｍａｘ（）は、（）内の要素のうち最大の値を返す関数である。
【００３４】
補正部２０６は、このような画像補正処理を合成画像を構成する各画素について行うことで、該合成画像を補正する。図５（Ｃ）は、図５（Ｂ）の画素５０１，５０３，５０４，５０５のそれぞれに対して上記の画像補正処理を行った結果、画素値Ａ，Ｂ，Ｃ，Ｄがそれぞれ画素値Ａ’，Ｂ’，Ｃ’，Ｄ’に更新された結果を示している。図４（Ｃ）の合成画像４０３に対して上記の（形態１）の画像補正処理を行うことで、図４（Ｃ）の「途切れた光跡が繋がっている補正後合成画像４０５」が得られる。
【００３５】
＜単方向の動体マップを使った画像補正処理（形態２）＞
（形態１）の画像補正処理は、移動ベクトル上にある画素の画素値に基づいて処理対象画素の画素値を更新していたが、（形態２）の画像補正処理では、移動ベクトル上にある画素（処理対象画素を除く）の画素値を、処理対象画素の画素値に基づいて更新する。
【００３６】
例えば、図５（Ｂ）、（Ｃ）の例では、Ｂ’＝Ｍａｘ（Ａ，Ｂ），Ｃ’＝Ｍａｘ（Ａ，Ｃ），Ｄ’＝Ｍａｘ（Ａ，Ｄ）とする。この処理では非露光期間が長く開いた場合でも途切れを繋げることが可能になる。
【００３７】
＜双方向の動体マップを使った画像補正処理（形態３）＞
上記の例では算出部２０３は、フレームＡの撮像画像（撮像画像Ａ）に対する動体マップとして、撮像画像Ａと、フレームＡと隣接する前後フレームの何れか一方の撮像画像と、の間における動体マップを生成した。しかし算出部２０３は、撮像画像Ａに対する動体マップとして、撮像画像ＡとフレームＡと隣接する前フレームの撮像画像との間における動体マップ、撮像画像ＡとフレームＡと隣接する後フレームの撮像画像との間における動体マップ、の２つを生成しても良い。以下では、「撮像画像Ａと、フレームＡと隣接する前フレームの撮像画像と、の間における動体マップ」を前動体マップ、「撮像画像Ａと、フレームＡと隣接する後フレームの撮像画像と、の間における動体マップ」を後動体マップと称する。前動体マップ及び後動体マップの生成方法については第１の実施形態にて説明した通りである。
【００３８】
そして合成部２０５は、上記の合成動体マップの生成と同様の方法でもって、それぞれの撮像画像に対する前動体マップを合成した前合成動体マップ、それぞれの撮像画像に対する後動体マップを合成した後合成動体マップ、を生成する。
【００３９】
前合成動体マップ及び後合成動体マップを用いて合成画像の画像補正処理を行うことで、例えば、円運動のように曲がった軌跡もより自然に補正することができる。補正部２０６が前合成動体マップ及び後合成動体マップを用いて行う合成画像の画像補正処理について図６を例に取り説明する。
【００４０】
図６（Ｂ）は合成画像を示しており、画素６０１（画素値はＡ、画素位置は（ｘＡ，ｙＡ））を処理対象画素とする。また、図６（Ｂ）に示す如く、画素６０４の画素値はＢ、画素６０５の画素値はＣ、画素６０６の画素値はＤ、画素６０７の画素値はＥ、である。
【００４１】
また、図６（Ａ）の上側には、図６（Ｂ）の合成画像の前合成動体マップを示しており、画素５０１の（前フレームからの）移動ベクトルＶ１Ａは、前合成動体マップにおける位置（ｘＡ，ｙＡ）に要素６０２として登録されている。図６（Ａ）の下側には、図６（Ｂ）の合成画像の後合成動体マップを示しており、画素５０１の（後フレームへの）移動ベクトルＶ２Ａは、後合成動体マップにおける位置（ｘＡ，ｙＡ）に要素６０３として登録されている。以下では具体的な説明を行うために、Ｖ１Ａ＝（Ｖｘ，Ｖｙ）＝（−４，４）、Ｖ２Ａ＝（Ｖｘ，Ｖｙ）＝（４，０）とする。
【００４２】
この場合、前方向、後方向に移動ベクトルの半分ずつ処理すれば良いので、Ｖ１Ａ，Ｖ２Ａのそれぞれの大きさを半分にして、０．５×Ｖ１Ａ＝（Ｖｘ，Ｖｙ）＝（−２，２）、０．５×Ｖ２Ａ＝（Ｖｘ，Ｖｙ）＝（２，０）とする。そして０．５×Ｖ１Ａ＝（Ｖｘ，Ｖｙ）＝（−２，２）を用いて合成画像中の画素位置（ｘ，ｙ）＝（ｘＡ＋α，ｙＡ＋Ｒｏｕｎｄ（α×Ｖｙ／Ｖｘ））（｜Ｖｘ｜＜｜Ｖｙ｜の場合、（ｘＡ＋Ｒｏｕｎｄ（β×Ｖｘ／Ｖｙ），ｙＡ＋β））における画素を特定する。同様に０．５×Ｖ２Ａ＝（Ｖｘ，Ｖｙ）＝（２，０）を用いて合成画像中の画素位置（ｘ，ｙ）＝（ｘＡ＋α，ｙＡ＋Ｒｏｕｎｄ（α×Ｖｙ／Ｖｘ））（｜Ｖｘ｜＜｜Ｖｙ｜の場合、（ｘＡ＋Ｒｏｕｎｄ（β×Ｖｘ／Ｖｙ），ｙＡ＋β））における画素を特定する。その結果、図６（Ｂ）に示す如く、移動ベクトル（０．５×Ｖ１Ａ）上の画素（画素６０４，６０５）、移動ベクトル（０．５×Ｖ２Ａ）上の画素（画素６０６，６０７）を特定することができる。そして、画像合成が比較明合成であった場合には、画素６０１の画素値ＡをＡ’＝Ｍａｘ（Ａ，Ｂ，Ｃ，Ｄ，Ｅ）を満たすＡ’に更新する。
【００４３】
補正部２０６は、このような画像補正処理を合成画像を構成する各画素について行うことで、該合成画像を補正する。図６（Ｃ）は、図６（Ｂ）の画素６０１，６０４，６０５，６０６，６０７のそれぞれに対して上記の画像補正処理を行った結果、画素値Ａ，Ｂ，Ｃ，Ｄ，Ｅがそれぞれ画素値Ａ’，Ｂ’，Ｃ’，Ｄ’，Ｅ’に更新された結果を示している。図４（Ｃ）の合成画像４０３に対して上記の（形態３）の画像補正処理を行うことで、図４（Ｃ）の「途切れた光跡が繋がっている補正後合成画像４０５」が得られる。形態３では、光跡の動きが当直直線運動ではなく加速度運動をしている場合に、単方向処理よりもつなぎ目を目立たなくさせる効果がある。
【００４４】
＜双方向の動体マップを使った画像補正処理（形態４）＞
（形態３）の画像補正処理は、移動ベクトル上にある画素の画素値に基づいて処理対象画素の画素値を更新していたが、（形態４）の画像補正処理では、移動ベクトル上にある画素（処理対象画素を除く）の画素値を、処理対象画素の画素値に基づいて更新する。
【００４５】
例えば、図６（Ｂ）、（Ｃ）の例では、Ｂ’＝Ｍａｘ（Ａ，Ｂ），Ｃ’＝Ｍａｘ（Ａ，Ｃ），Ｄ’＝Ｍａｘ（Ａ，Ｄ）、Ｅ’＝Ｍａｘ（Ａ，Ｅ）とする。この処理では非露光期間が長く開いた場合でも途切れを繋げることが可能になる。
【００４６】
＜小数精度の画素位置を考慮した画像補正処理（形態５）＞
上記の例では、合成画像において移動ベクトルに基づく線分が通過する画素を特定していた。しかし、線分は画素の中心位置近傍を通過する場合にもあれば、画素の一部を通過する場合もあり、また、線分の端部が位置する画素の場合、線分は該画素の一部しか通らない。
【００４７】
そこで本実施形態では、補正部２０６は、合成画像において移動ベクトルに基づく線分が通過する画素を特定する場合には、先ず、合成画像において以下の式に従って得られる画素位置（ｘ，ｙ）における画素を特定する（｜Ｖｘ｜≧｜Ｖｙ｜の場合）。
【００４８】
（ｘ，ｙ）＝（ｘＡ＋α，ｙＡ＋Ｆｌｏｏｒ（αＶｙ／Ｖｘ））  若しくは
（ｘ、ｙ）＝（ｘＡ＋α，ｙＡ＋Ｃｅｉｌ（αＶｙ／Ｖｘ））
なお、補正部２０６は、｜Ｖｘ｜＜｜Ｖｙ｜の場合には、合成画像において以下の式に従って得られる画素位置（ｘ，ｙ）における画素を特定する。
【００４９】
（ｘ，ｙ）＝（ｘＡ＋Ｆｌｏｏｒ（βＶｘ／Ｖｙ），ｙＡ＋β）  若しくは
（ｘ、ｙ）＝（ｘＡ＋Ｃｅｉｌ（βＶｘ／Ｖｙ），ｙＡ＋β）
そして補正部２０６は、特定した各画素の画素値に対して、該画素と線分との間の距離に応じた重み付けを行い、該重み付けを行った画素値に基づいて、処理対象画素の画素値を決定する。本形態における画像補正処理について図７に示す具体例を挙げて説明する。
【００５０】
図７（Ｂ）は合成画像を示しており、以下では合成画像中の画素７０１（画素位置は（ｘＡ，ｙＡ））を処理対象画素とし、該処理対象画素に対する画像補正処理について説明する。図７（Ａ）は、図７（Ｂ）に示した合成画像に対応する合成動体マップを表しており、合成動体マップ中の位置（ｘＡ，ｙＡ）における要素７０２として移動ベクトルＶＡ（Ｖｘ，Ｖｙ）が登録されているものとする。ここでは具体例を挙げて説明するために、（Ｖｘ，Ｖｙ）＝（−２．５，１．５）とする。補正部２０６は上記の式に従って画素の特定処理を行うことで、画素７０３ａ〜７０３ｆ（それぞれ画素値がＢ１，Ｂ２，Ｃ１，Ｃ２，Ｄ１，Ｄ２）を特定する。
【００５１】
そして補正部２０６は、ステップＳ３０５の画像合成が比較明合成であった場合、画素７０１の画素値ＡをＡ’＝Ｍａｘ（ｂ×Ｂ１＋（１−ｂ）×Ｂ２，ｃ×Ｃ１＋（１−ｃ）×Ｃ２，α×（ｄ×Ｄ１＋（１−ｄ）×Ｄ２））を満たすＡ’に更新する。
【００５２】
ここで、ｂ、ｃ、ｄはそれぞれ、画素値に対する重み値であり、図７の場合は、画素と線分との間の縦方向の距離が小さいほど大きくなり、画素と線分との間の縦方向の距離が大きいほど小さくなる。図７の場合は、ｂ＝０．６、ｃ＝０．２、ｄ＝０．８、α＝｜−２．５｜−｜−２．０｜＝０．５である。ここで、D1、D2は通過する線分の長さが１以下なので、重みαがかけている。このように設定すれば斜めの光跡の補正処理を行ったときのギザギザが低減できる。なお、線分との距離に応じた重み値の計算方法は特定の計算方向に限らない。
【００５３】
＜防振との組み合わせをする場合＞
画像に対して電子防振処理を行う場合、電子防振後の画像を入力として処理を行えばよい。また、算出部２０３の結果を用いて防振を行う場合は、動体マップに基づいた電子防振後の画像を生成部２０４で合成し、動体マップは防振後の画像同士の動体マップになるよう防振分を差し引く変換をすれば良い。
【００５４】
本実施形態では主に比較明合成について例に挙げて説明したが、この処理はMaxをMinに変えると比較暗合成にも適用できる。また、Maxの代わりにMedianなど、範囲内の画素値の１つを選択する処理に適用しても良い。
【００５５】
また、補正部２０６による補正後合成画像の出力先については特定の出力先に限らず、例えば、画像処理装置の内部若しくは外部のメモリを出力先としても良いし、表示装置、投影装置を出力先としても良いし、印刷機能を有する装置を出力先としても良い。
【００５６】
また、本実施形態では、ステップＳ３０５で生成した合成動体マップを用いた画像補正処理として幾つかの形態を説明したが、これらの形態は一例であり、適宜変形／変更しても良い。また、これらの形態はその一部若しくは全部を適宜組み合わせても構わないし、選択的に使用しても良い。
【００５７】
［第２の実施形態］
以下では第１の実施形態との差分について説明し、以下で特に触れない限りは第１の実施形態と同様であるものとする。本実施形態では、第１の実施形態に係る処理によって生成された補正後合成画像を用いて透明度を調整する。
【００５８】
上述した第１の実施形態を夜景画像の比較明合成に用いた場合、途切れた動体の軌跡を繋げることができる。しかし、実際に同じ場面で長秒の露光を行うと、動体の軌跡には後ろの背景が透けて半透明に映るのに対して、第１の実施形態にて生成される補正後合成画像では軌跡の部分が不透明になる。そこで本実施形態では、複数フレームの撮像画像の平均画像と補正後合成画像とをαブレンドすることで、補正後合成画像における動体の軌跡の透明度を調整することを可能にする。
【００５９】
本実施形態に係る画像処理装置の機能構成例について、図８のブロック図を用いて説明する。図８において、図２に示した機能部と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。図８に示した画像処理装置１００２の構成は、図２に示した構成に、逆γ変換部８０２、平均部８０３、αブレンド部８０９、γ変換部８１０を加えたものである。本実施形態では主に、逆γ変換部８０２及びγ変換部８１０によって、第１の実施形態に係る処理によって生成される補正後合成画像における光の強さを調整し、αブレンド部８０９で透明度を調整する。画像処理装置１００２による補正後合成画像の生成処理について、同処理のフローチャートを示す図９に従って説明する。
【００６０】
ステップＳ９０１では、入力部２０１は上記のステップＳ３０１と同様に、同一の被写体を撮像した複数フレームの撮像画像を取得する。ステップＳ９０１で取得した撮像画像の一例を図１０（Ａ）に示す。図１０（Ａ）に示した撮像画像１００１Ａ、１００１Ｂ、１００１Ｃは、ステップＳ９０１で取得した連続する３フレームの撮像画像の一例である。図１０（Ａ）に示した撮像画像１００１Ａ、１００１Ｂ、１００１Ｃは、暗闇で光源が移動するような被写体（移動する光源の背後に構造物がある例）を撮像することで得られる、連続する３フレームの撮像画像である。
【００６１】
ステップＳ９０２では、逆γ変換部８０２は、ステップＳ９０１にて取得したそれぞれの撮像画像に対して逆γ変換を行う。逆γ変換は変換前のＲＧＢ画素値と変換後のＲＧＢ画素値のテーブルに基づいて行っても良いし、数式に基づいて行っても良い。
【００６２】
ステップＳ９０３では、平均部８０３は、逆γ変換されたそれぞれの撮像画像の平均画像を生成する。複数の画像の平均画像は、例えば、複数の画像における同一の画素位置（ｘ、ｙ）の画素値の平均値を平均画像における画素位置（ｘ、ｙ）の画素値とすることで生成される。図１０（Ｄ）の１００６は、撮像画像１００１Ａ，１００１Ｂ，１００１Ｃの平均画像の一例である。この「複数の画像」の枚数が多くなると、平均画像中の動きのある部分の光跡はどんどん薄くなり、ほとんど見えなくなっていく。
【００６３】
ステップＳ９０４〜Ｓ９０８の各ステップにおける処理は、撮像画像が逆γ変換されていることを除けば、それぞれ上記のステップＳ３０２〜Ｓ３０６と同様であるため、説明を省略する。
【００６４】
ここで、撮像画像１００１Ａ，１００１Ｂ，１００１Ｃのそれぞれの動体マップは、図１０（Ｂ）の動体マップ１００２Ａ，１００２Ｂ，１００２Ｃである。また、撮像画像１００１Ａ，１００１Ｂ，１００１Ｃの合成画像は、図１０（Ｃ）の合成画像１００３であり、動体マップ１００２Ａ，１００２Ｂ，１００２Ｃの合成動体マップは、図１０（Ｃ）の合成動体マップ１００４である。また、合成画像１００３の補正後合成画像は、図１０（Ｄ）の補正後合成画像１００５である。補正後合成画像１００５では合成画像１００３の光跡の途切れが繋がっている。
【００６５】
ステップＳ９０９では、αブレンド部８０９は、ステップＳ９０３で生成した平均画像と、ステップＳ９０８で生成した補正後合成画像と、をαブレンドして、ブレンド合成画像を生成する。αブレンドは平均画像をＲＧＢave、補正後合成画像をＲＧＢsyn、ブレンド合成画像をＲＧＢoutとすると、ＲＧＢout＝（１−α）×ＲＧＢave＋α×ＲＧＢsyn  （０≦α≦１）と表現できる。平均画像１００６と補正後合成画像１００５とのαブレンドの結果であるブレンド合成画像の一例は、図１０（Ｄ）のブレンド合成画像１００７である。
【００６６】
そしてステップＳ９１０では、γ変換部８１０は、ステップＳ９０９で生成したブレンド合成画像をγ変換（ステップＳ９０２の逆γ変換の逆変換）する。γ変換したブレンド合成画像の出力先については第１の実施形態と同様、特定の出力先に限らない。
【００６７】
光跡の強さと透明度はαブレンドのαと逆γ変換・γ変換の変換テーブル（または変換式）を変えることで調整できる。例えば、上記のα値を大きくしていくと、ブレンド合成画像は図１１の１１０１、１１０２、１１０３のように光跡は明るく不透明になってゆく。さらに、γを変えると明るさごとに透明度を調整できる。
【００６８】
このように、本実施形態では、平均画像と、第１の実施形態にて生成された補正後合成画像と、をαブレンドすることで補正後合成画像における動体の軌跡の透明度を調整することができる。
【００６９】
なお、本実施形態では平均画像は撮像画像の平均画像としたが、平均の代わりにMedianをとっても良い。また、画素値の上位と下位を除く部分の平均（刈り込み平均）を取るようにしても良い。また、第１，２の実施形態は、画像など異なる色空間での画像に対して適用することが可能であり、また、ＲＡＷ画像に対してベイヤーごとに適用しても良い。
【００７０】
［第３の実施形態］
図２，８に示した各機能部はハードウェアで実装しても良いが、ソフトウェア（コンピュータプログラム）で実装しても良い。後者の場合、このコンピュータプログラムを実行可能なプロセッサを有するコンピュータ装置は、上記の画像処理装置１００，１００２に適用することができる。画像処理装置１００，１００２に適用可能なコンピュータ装置１０００のハードウェア構成例について、図１のブロック図を用いて説明する。
【００７１】
ＣＰＵ１０１は、ＲＡＭ１０２やＲＯＭ１０３に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりＣＰＵ１０１は、画像処理装置１００，１００２全体の動作制御を行うと共に、画像処理装置１００，１００２が行うものとして上述した各処理を実行若しくは制御する。
【００７２】
ＲＡＭ１０２は、ＲＯＭ１０３、記憶部１０４からロードされたコンピュータプログラムやデータを格納するためのエリア、入力インターフェース１０５を介して外部から受信したデータを格納するためのエリア、を有する。また、ＲＡＭ１０２は、ＣＰＵ１０１が各種の処理を実行する際に用いるワークエリアを有する。このようにＲＡＭ１０２は、各種のエリアを適宜提供することができる。ＲＯＭ１０３には、コンピュータ装置１０００の起動プログラムや設定データなど、書換不要の情報が格納されている。
【００７３】
記憶部１０４は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。記憶部１０４には、ＯＳ（オペレーティングシステム）や、画像処理装置１００，１００２が行うものとして上述した各処理をＣＰＵ１０１に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。記憶部１０４に保存されているコンピュータプログラムには、図２，８に示した各機能部の機能をＣＰＵ１０１に実現させるためのコンピュータプログラムが含まれている。また、記憶部１０４に保存されているデータには、上記の説明において予め用意されているものとして説明したデータが含まれている。記憶部１０４に保存されているコンピュータプログラムやデータは、ＣＰＵ１０１による制御に従って適宜ＲＡＭ１０２にロードされ、ＣＰＵ１０１による処理対象となる。なお、記憶部１０４には、ハードディスクドライブ装置以外にも、光ディスクドライブ装置やフラッシュメモリなどを適用することができる。
【００７４】
入力インターフェース１０５は、ＵＳＢやＩＥＥＥ１３９４などのシリアルバスインターフェースである。入力インターフェース１０５には、外部メモリ１０８が接続されており、ＣＰＵ１０１はこの入力インターフェース１０５を介して外部メモリ１０８への情報の読み書きを行う。
【００７５】
外部メモリ１０８は、コンピュータ装置１０００に対して着脱可能なメモリ装置であり、例えば、ハードディスクドライブ装置、メモリカード、ＣＦカード、ＳＤカード、ＵＳＢメモリを適用することができる。
【００７６】
ＣＰＵ１０１は、記憶部１０４や外部メモリ１０８から上記の撮像画像を読み出しても良いし、入力インターフェース１０５に撮像装置を接続し、該撮像装置から入力インターフェース１０５を介して撮像画像を取得するようにしても良い。
【００７７】
出力インターフェース１０６は、ＤＶＩやＨＤＭＩなどの映像出力端子である。出力インターフェース１０６には表示装置１０９が接続されている。表示装置１０９は、液晶画面やタッチパネル画面などにより構成されており、ＣＰＵ１０１による処理結果を画像や文字などでもって表示することができる。
【００７８】
ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、記憶部１０４、入力インターフェース１０５、出力インターフェース１０６は何れも、バス１０７に接続されている。なお、画像処理装置１００，１００２に適用可能なコンピュータ装置のハードウェア構成は図１に示した構成に限らない。例えば、各種のユーザ操作をコンピュータ装置に入力するための操作部を設けても良いし、コンピュータ装置による処理結果を外部の装置に対して出力するために通信インターフェースを設けても良い。また、画像処理装置１００，１００２は、撮像装置等の装置に組み込まれる組み込み装置であっても構わない。
【００７９】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８０】
２０１：入力部  ２０２：抽出部  ２０３：算出部  ２０４：生成部  ２０５：合成部  ２０６：補正部
【図１】
2019213164.tif 000003
【図２】
2019213164.tif 000004
【図３】
2019213164.tif 000005
【図４】
2019213164.tif 000006
【図５】
2019213164.tif 000007
【図６】
2019213164.tif 000008
【図７】
2019213164.tif 000009
【図８】
2019213164.tif 000010
【図９】
2019213164.tif 000011
【図１０】
2019213164.tif 000012
【図１１】
2019213164.tif 000013