画像処理装置、画像処理方法、および、画像処理プログラム
【課題】複数の画像データから生成される高解像度画像の画質の改善。
【解決手段】CPU200は、時系列に並ぶ複数の画像データF(a)を取得する。CPU200は、複数の画像データF(a)が表す各画像f(a)間における被写体の位置ずれを補正するための補正量を算出し、その補正量を用いて複数の画像データF(a)における被写体の位置ずれを補正する。CPU200は、複数の画像データF(a)ごとに設定される重み付けW(a,i)を算出する。重み付けW(a,i)は、生成される高解像度画像データが表す画像の画質を低下させる可能性の大きさを表す指標に応じて、指標が大きい画像データほど小さく、指標が小さい画像データほど大きく設定される。CPU200は、補正された複数の画像データF(a)を、重み付けW(a,i)を用いて合成して、高解像度画像データを生成する。
【解決手段】CPU200は、時系列に並ぶ複数の画像データF(a)を取得する。CPU200は、複数の画像データF(a)が表す各画像f(a)間における被写体の位置ずれを補正するための補正量を算出し、その補正量を用いて複数の画像データF(a)における被写体の位置ずれを補正する。CPU200は、複数の画像データF(a)ごとに設定される重み付けW(a,i)を算出する。重み付けW(a,i)は、生成される高解像度画像データが表す画像の画質を低下させる可能性の大きさを表す指標に応じて、指標が大きい画像データほど小さく、指標が小さい画像データほど大きく設定される。CPU200は、補正された複数の画像データF(a)を、重み付けW(a,i)を用いて合成して、高解像度画像データを生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理に関し、特に、比較的低解像度の複数の画像データから高解像度の画像データを生成する技術に関する。
【背景技術】
【0002】
デジタルビデオカメラで生成された動画像データを構成するフレーム画像や、デジタルスチルカメラによって連続撮影された画像データのように、時系列に並ぶ複数の近似した画像データが取得される場合がある。これらの近似した複数の画像データを元画像データとして、元画像データより高解像度の画像データを生成する技術が知られている(例えば、特許文献1)。
【0003】
【特許文献1】特開平11−164264号公報
【特許文献2】特開2000−244851号公報
【0004】
上記技術では、例えば、元画像データとして、動画像データを構成する連続する複数のフレーム画像を用いる場合において、フレーム画像の画像データを解析して、各フレーム画像間の移動ベクトル(いわゆるフレーム画像間のずれに相当する)を画素ピッチより細かい単位で算出する。そして、算出した移動ベクトルに基づいて、各フレーム画像を重ね合わせて、高解像度の画像データを生成している。
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、合成に用いる複数のフレーム画像の中には、生成される高解像度画像に対して、画質低下を引き起こす情報を与えるデータが含まれている場合がある。例えば、合成に用いるフレーム画像の一部に、合成の基準となるフレーム画像に対する「動き」が発生している場合がある。「動き」とは、手ぶれによる被写体の揺れのように、フレーム画像全体の一様な変化ではなく、フレーム画像中における一部の被写体の局所的な変化を意味している。このような「動き」が生じているフレーム画像は、「動き」が生じている部分において、基準となるフレーム画像と被写体が一致するように正確に重ね合わせることができない。この結果、「動き」が生じているフレーム画像は、「動き」のある被写体の2重像を生じさせるなど、生成される高解像度画像の画質を低下させてしまうおそれがあった。
【0006】
また、上記課題は、デジタルビデオカメラで生成された動画像データを用いる場合に限らず、デジタルスチルカメラで連続撮影された複数の画像データを用いる場合などにも共通した課題であった。
【0007】
本発明は、上記課題を解決するためになされたものであり、複数の画像データに基づいてより高解像度の画像データを生成する場合に、生成される高解像度画像の画質を改善することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために本発明の第1の態様は、それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理装置を提供する。本発明の第1の態様に係る画像処理装置は、前記複数の画像データを取得する画像データ取得手段と、前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出する補正量算出手段と、前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正する位置ずれ補正手段と、前記高解像度画像データの生成に用いた場合に生成される前記高解像度画像データが表す画像の画質を低下させる可能性が大きい画像データほど小さく、前記可能性が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定する重み付け設定手段と、前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成する高解像度画像生成手段とを備えることを特徴とする。
【0009】
本発明の第1の態様に係る画像処理装置によれば、時系列に並ぶ複数の画像データを合成して高解像度画像データを生成する際に、各画像データごとに設定される重み付けを用いて合成が行われる。重み付けは、生成される高解像度画像データ(以下、生成データという。)が表す画像(以下、生成画像という。)の画質を低下させる可能性の大きさ大きい画像データほど小さく、可能性が小さい画像データほど大きく設定される。したがって、生成画像の画質を低下させる可能性の高い画像データが生成データに与える影響が小さくなる。この結果、生成画像の画質低下を低減することができる。
【0010】
本発明の第1の態様に係る画像処理装置において、前記重み付けの設定は、前記複数の画像データのそれぞれに関連付けられた指標であって、前記画質を低下させる可能性の大きさを表す指標を用いて実行されるても良い。かかる場合には、生成画像の画質を低下させる可能性の大きさを表す指標を用いて、適切な、重み付けを設定することができる。
【0011】
本発明の第1の態様に係る画像処理装置において、前記指標は、前記複数の画像データの中から選択された基準画像データに対する各画像データの時間的距離を含み、前記重み付け設定手段は、前記時間的距離が大きい画像データほど小さく、前記時間的距離が小さい画像データほど大きい重み付けを設定する時間的距離別重み付け設定手段を備えても良い。合成の基準となる画像データと時間的に離れた画像データは、前述した「動き」等が生じている可能性が高い。「動き」は生成画像の画質低下を引き起こす。合成する際、時間的距離に応じて設定された重み付けを用いることにより、このような生成画像の画質を低下させる可能性の高い画像データが、生成データに与える影響を小さくすることができる。
【0012】
本発明の第1の態様に係る画像処理装置において、前記指標は、前記複数の画像データの中から選択された基準画像データが表す画像と各画像データが表す画像との間における前記補正量の大きさを含み、前記重み付け設定手段は、前記補正量が大きい画像データほど小さく、前記補正量が小さい画像データほど大きい重み付けを設定する位置ずれ量別重み付け設定手段を備えても良い。合成の基準となる画像データが表す画像との間に生じている位置ずれが大きい画像の画像データは、前述した「動き」等が生じている可能性が高い。「動き」は生成画像の画質低下を引き起こす。合成する際、算出された補正量の大きさは、位置ずれの大きさを表すから、補正量に応じて設定された重み付けを用いることにより、このような生成画像の画質を低下させる可能性の高い画像データが、生成データに与える影響を小さくすることができる。
【0013】
本発明の第1の態様に係る画像処理装置において、前記指標は、前記生成される高解像度画像データを構成する生成画素データごとに設定されるものであって、前記補正された各画像データを構成する前記画素データのうち前記生成画素データの最近接にある画素データと、前記生成画素データとの画素間距離を含み、前記重み付け設定手段は、前記画素間距離が大きい画像データほど小さく、前記画素間距離が小さい画像データほど大きい重み付けを設定する画素間距離別重み付け設定手段を備えても良い。位置ずれ補正後において、生成画素データと、構成画素データのうち生成画素データの最近接にある画素データとの画素間距離が長い画像データは、その生成画素データに対して画質低下を引き起こす情報を与える可能性が高い。合成する際、生成画素データごとに、上述した画素間距離に応じて設定された重み付けを用いることにより、このような情報を与える可能性の高い画像データの生成画素データに対する影響を小さくすることができる。この結果、生成画像の画質低下を低減することができる。
【0014】
本発明の第1の態様に係る画像処理装置において、前記高解像度画像生成手段は、前記生成される高解像度画像データが表す画像を構成する画素の位置を設定する画素設定手段と、前記設定された位置における画素値であって、前記補正された複数の画像データの中の一の画像データに基づいて算出される画素値である単一画像参照画素値を、各画像データごとにそれぞれ算出する単一画像参照画素値算出手段と、前記重み付けを用いて算出される前記単一画像参照画素値の重み付き平均値を画素値として、前記設定された位置における画素データを生成する画素データ生成手段とを備えても良い。
【0015】
かかる場合には、各画像データに基づいて算出された単一画像データ参照値について、上述した重み付けを用いた重み付き平均値を算出する。そして、生成データを構成する画素データの画素値には、算出された重み付き平均値が用いられる。したがって、画素データの生成において、生成画像の画質を低下させる可能性の高い画像データの影響が小さくなる。この結果、生成画像の画質低下を低減することができる。
【0016】
本発明の第1の態様に係る画像処理装置は、さらに、前記指標の値と前記重み付けの値との対応関係が予め記録されたテーブルを記憶する記憶手段を備え、前記重み付けは、前記テーブルを参照して設定されても良い。また、前記重み付けは、前記指標と前記重み付けとの間の関係を示す所定の関係式を用いて設定されても良い。かかる場合には、テーブルを参照して、あるいは、所定の関係式を用いて簡単に、上述した重み付けを用いた高解像度画像データの生成を実行できる。
【0017】
本発明の第1の態様に係る画像処理装置において、前記複数の画像データの合成は、前記補正された複数の画像データの中の一の画像データであって、その画像データの表す画像の各画素が、生成される高解像度画像データの表す画像の座標空間において、前記補正された複数の画像データの中の他の画像データの表す画像の各画素と同一の座標に位置する重複画像データが存在する場合には、前記高解像度画像データの生成は、前記重複画像データを用いないで実行されても良い。一の画像データの表す画像の各画素と他の画像データの表す画像の各画素が、生成される高解像度画像データの表す画像の座標空間において、同一の座標に位置する場合、すなわち、画素位置が重複する場合、このような画像データを2つとも合成しても生成画像データの高解像度化に貢献しない。このような、重複画像データが存在する場合には、重複画像データを用いないでデータの高解像度画像データの生成を実行することにより、高解像度画像データの生成に係る処理負荷の軽減を図ることができる。また、合成に使用する画像データが少なくなることで、2重像となる危険性も低減することができる。
【0018】
本発明の第1の態様に係る画像処理装置において、前記他の画像データが表す画像と前記一の画像データが表す画像との間における前記補正量が、所定の判定条件を満たす場合に、前記一の画像データは前記重複画像データであると判断しても良い。かかる場合には、算出された各画像間における補正量を用いて、簡便に重複画像データが存在するか否かを判断することができる。
【0019】
本発明の第2の態様は、それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理方法を提供する。本発明の第2の態様に係る画像処理方法は、前記複数の画像データを取得し、前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出し、前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正し、前記高解像度画像データの生成に用いた場合に前記生成される高解像度画像データが表す画像の画質を低下させる可能性が大きい画像データほど小さく、前記可能性が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定し、前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成することを特徴とする。
【0020】
本発明の第3の態様は、それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理方法を提供する。本発明の第3の態様に係る画像処理方法は、前記複数の画像データを取得し、前記複数の画像データが表す各画像間における被写体を補正するための補正量を算出し、前記複数の画像データの中から選択された基準画像データに対する各画像データの時間的距離が大きい画像データほど小さく、前記時間的距離が小さい画像データほど大きい重み付け、前記複数の画像データの中から選択された基準画像データが表す画像と各画像データが表す画像との間における前記補正量が大きい画像データほど小さく、前記補正量が小さい画像データほど大きい重み付け、の少なくとも1つの重み付けを前記複数の画像データのそれぞれについて設定し、前記算出された補正量に基づいて、前記複数の画像データについて前記位置ずれを補正すると共に、前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成することを特徴とする。
【0021】
本発明の第4の態様は、それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理方法を提供する。本発明の第4の態様に係る画像処理方法は、前記複数の画像データを取得し、前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出し、前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正し、前記生成される高解像度画像データを構成する生成画素データごとに設定されるものであって、前記補正された各画像データを構成する前記画素データのうち前記生成画素データの最近接にある画素データと、前記生成画素データとの画素間距離を算出し、前記画素間距離が大きい画像データほど小さく、前記画素間距離が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定し、前記設定された重み付けと前記各画像データを用いて、生成画素データの画素値を算出することによって、前記高解像度画像データを生成することを特徴とする。
【0022】
本発明の第5の態様は、それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理をコンピュータに実行させるコンピュータプログラムを提供する。本発明の第5の態様に係るコンピュータプログラムは、前記複数の画像データを取得する画像データ取得機能と、前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出する補正量算出機能と、前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正する位置ずれ補正機能と、前記高解像度画像データの生成に用いた場合に生成される前記高解像度画像データが表す画像の画質を低下させる可能性が大きい画像データほど小さく、前記可能性が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定する重み付け設定機能と、前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成する高解像度画像生成機能とをコンピュータに実現させることを特徴とする。
【0023】
本発明の第2〜第4の態様に係る画像処理方法および本発明の第5の態様に係るコンピュータプログラムによれば、本発明の第1の態様に係る画像処理装置と同様の作用効果を得ることができる。また、本発明の第2の態様に係る画像処理方法および本発明の第3の態様に係るコンピュータプログラムは、本発明の第1の態様に係る画像処理装置と同様にして種々の態様にて実現され得る。また、本発明の第3の態様に係るコンピュータプログラムは、コンピュータプログラムを記録したコンピュータが読み取り可能な記録媒体としても実現され得る。
【発明を実施するための最良の形態】
【0024】
以下、本発明にかかる画像処理装置について、図面を参照しつつ、実施例に基づいて説明する。
【0025】
A.第1の実施例
・画像処理システムの構成:
図1は、本発明の第1の実施例に係る画像処理装置を含む画像処理システムの一例を示す説明図である。本発明の第1の実施例に係る画像処理装置を適用可能な画像処理システムの構成について図1を参照して説明する。
【0026】
画像処理システムは、画像データを生成する撮像装置としてのディジタルビデオカメラ10、ディジタルビデオカメラ10にて生成された複数の画像データから、高解像度の画像データを生成する画像処理装置としてのパーソナルコンピュータ20、画像データを用いて画像を出力する出力装置としてのカラープリンタ30を備えている。また、出力装置としては、プリンタ30の他に、例えば、LCDディスプレイのモニタ25、表示装置40が用いられ得る。
【0027】
ディジタルビデオカメラ10は、設定されたフレームレートで、時系列に並ぶ複数の画像データGD1〜GDn(以下、フレーム画像データという。)を生成するカメラである。画像データは、光の情報をディジタルデバイス(CCDや光電子倍増管)に結像させ、デジタル信号に変換することによって生成される。ディジタルビデオカメラ10は、生成された複数のフレーム画像データGD1〜GDnを1つの画像ファイルGF(動画ファイル)として、光学ディスクLD(例えば、DVD−RAM等)に保存する。もちろん、画像ファイルGFの保存には、光学ディスクLDのみならず、デジタルビデオテープや、メモリカードMC等、種々の記録媒体が用いられ得る。
【0028】
パーソナルコンピュータ20は、一般的に用いられるタイプのコンピュータであり、高解像度の画像データを生成する処理を含む画像処理プログラムを実行するCPU200、CPU200における演算結果、画像データ等を一時的に格納するRAM201、画像処理プログラムを格納するハードディスクドライブ(HDD)202を備えている。パーソナルコンピュータ20は、DVD等の光学ディスクLD用のディスクドライブ205、メモリカードMCを装着するためのカードスロット203、ディジタルビデオカメラ10からの接続ケーブルを接続するための入出力端子204を備えている。
【0029】
プリンタ30は、画像データをカラー画像として出力可能なプリンタであり、例えば、シアン、マゼンタ、イエロー、ブラックの4色の色インクを印刷媒体上に噴射してドットパターンを形成することによって画像を形成するインクジェット方式のプリンタである。あるいは、カラートナーを印刷媒体上に転写・定着させて画像を形成する電子写真方式のプリンタである。色インクには、上記4色に加えて、ライトシアン(薄いシアン)、ライトマゼンタ(薄いマゼンタ)、レッド、ブルーを用いても良い。
【0030】
表示装置40は、画像データの画像を表示するための表示ディスプレイ45を有し、例えば、電子式の写真フレームとして機能する表示装置である。表示ディスプレイ45は、例えば、液晶表示ディスプレイ、有機EL表示ディスプレイが用いられ得る。
【0031】
プリンタ30および表示装置40は、スタンドアローンにて画像処理、画像出力を実行するため、パーソナルコンピュータ20が備える画像処理機能を備えても良い。かかる場合には、プリンタ30、表示装置40は、パーソナルコンピュータ20を介さずに、例えば、メモリーカードMC等の記憶媒体、あるいは、ケーブルを介してディジタルビデオカメラ10から画像データを取得し、プリンタ30、表示装置40がそれぞれ本実施例における画像処理装置として機能することができる。
【0032】
以下の説明では、ディジタルビデオカメラ10で生成された画像データが、パーソナルコンピュータ20に送出され、パーソナルコンピュータ20にて高解像度の画像データを生成する画像処理が実行される場合について説明する。
【0033】
・パーソナルコンピュータ20の機能的構成:
図2は、本実施例に係るパーソナルコンピュータ20(CPU200)の機能ブロック図である。図2を参照してパーソナルコンピュータ20(CPU200)の機能的構成の概要について説明する。
【0034】
画像データ取得部M210は、画像ファイルGFに記録されたフレーム画像データGD1〜GDnの中から選択された時系列に並ぶ複数のフレーム画像データを取得する。
【0035】
補正量算出部M220は、画像データ取得部M210が取得した複数のフレーム画像データが表す各画像間に生じている位置ずれ(以下、単に、位置ずれという。)を補正するための補正量(以下、単に、位置ずれ補正量という。)を算出する。そして、位置ずれ補正部M230は、補正量算出部M220から取得した位置ずれ補正量を用いて、上述した位置ずれを補正する。
【0036】
重み付け設定部M240は、複数のフレーム画像データごとに重み付けW(a,i)を設定する。重み付け設定部M240は、画素間距離別重み付け設定部M241、時間的距離別重み付け設定部M242、位置ずれ量別重み付け設定部M243を備える。画素間距離別重み付け設定部M241、時間的距離別重み付け設定部M242、位置ずれ量別重み付け設定部M243によって、それぞれ、画素間距離を考慮した画素間距離別重み付けWs(a,i)、時間的距離を考慮した時間的距離別重み付けWt(a)、位置ずれ補正量の大きさを考慮した位置ずれ量別重み付けWu(a)が設定される。これらの3つの重み付けWs(a,i)、Wt(a)、Wu(a)を要素として、最終的な重み付けW(a,i)が設定される。これらの重み付けW(a,i)、Ws(a,i)、Wt(a)、Wu(a)については、後述する。
【0037】
高解像度画像生成部M250は、重み付け設定部M240から取得した重み付けW(a,i)を用いて、複数のフレーム画像データを合成して、フレーム画像データより解像度の高い高解像度画像データ(生成データ)を生成する。高解像度画像生成部M250は、画素設定部M251と、単一画像参照画素値算出部M252、画素データ生成部M253を備える。
【0038】
画素設定部M251は、生成データが表す画像G(生成画像)を構成する画素の位置を設定する。すなわち、生成画像の注目画素G(i)を設定する。単一画像参照画素値算出部M252は、複数のフレーム画像データの中の一のデータに基づいて算出される注目画素G(i)の画素値(以下、単一画像参照画素値という。)を、各フレーム画像データごとにそれぞれ算出する。画素データ生成部M253は、最終的に注目画素G(i)の画素値を生成し、注目画素G(i)の画素データを生成する。重み付けW(a,i)を用いて算出される単一画像参照画素値の重み付き平均値が、最終的に注目画素G(i)の画素値とされる。
【0039】
・パーソナルコンピュータ20における画像処理:
図3〜図14を参照してパーソナルコンピュータ20において実行される画像処理について説明する。
【0040】
図3は、本実施例に係る画像処理の処理ルーチンを示すフローチャートである。パーソナルコンピュータ20(CPU200)は、ユーザーの指示に従って、本画像処理のプログラムを起動する。CPU200は、ユーザの指示に従って光学ディスクLD等から画像ファイルGFを読み出し、画像ファイルGFに記録されたフレーム画像データGD1〜GDnが表す動画像を再生する。
【0041】
動画像の再生中に、ユーザによってフレーム画像データの取得指示が入力されると、CPU200は、動画像データMDを構成するフレーム画像データGD1〜GDnの中から、連続する複数のフレーム画像データを取得する(ステップS10)。各フレーム画像データは、ドットマトリクス状の各画素の階調値(以下、「画素値」とも呼ぶ。)を示す階調データ(以下、「画素データ」とも呼ぶ。)で構成されている。画素データは、3つの画素値Y(輝度)、Cb(ブルーの色差)、Cr(レッドの色差)からなるYCbCrデータや、3つの画素値R(レッド)、G(グリーン)、B(ブルー)からなるRGBデータ等が用いられ得る。本実施例では、CPU200は、ユーザーに指示されたフレーム画像データと、そのフレームと時系列に並ぶ前後10フレーム分ずつのフレーム画像データ(合計21フレーム分)を取得するものとする。CPU200は、取得した21個のフレーム画像データをRAM201に一時的に格納する。
【0042】
以下の説明では、取得した21個のフレーム画像データの番号(以下、「フレーム番号」とも呼ぶ。)をaとし、フレーム番号aのフレーム画像データをフレーム画像データF(a)(a=-10〜+10)と呼ぶこととする。そして、フレーム画像データF(a)が表す画像を画像f(a)(a=-10〜+10)と呼ぶこととする。また、ユーザーにより選択されたフレーム画像データF(0)、すなわち、取得された21個のフレーム画像データF(a)のうち時系列的に中間にあるフレーム画像データF(0)を、特に基準フレーム画像データとも呼ぶこととする。
【0043】
ユーザによって、取得したフレーム画像について、高解像度の静止画像を生成する指示が入力されると、まず、CPU200は、21個のフレーム画像データF(a)が表す各画像間における被写体の位置ずれ(以下、単に位置ずれという。)を解消する補正(以下、位置ずれ補正という。)のための補正量を算出する(ステップS20)。ここで、位置ずれおよび位置ずれ補正について説明しておく。
【0044】
図4は、基準フレーム画像データF(0)が表す画像f(0)とそれ以外の一のフレーム画像データF(a)が表す画像f(a)間の位置ずれを示す説明図である。また、図5は、基準フレーム画像データF(0)を基準として、フレーム画像データF(a)に対して行う位置ずれ補正について示す説明図である。位置ずれ補正量を算出するにあたっては、基準フレーム画像データF(0)を基準とする。すなわち、フレーム画像データF(0)に対する位置ずれ補正量を、前後10ずつ計20個のフレーム画像データF(a )(a=-10〜-1,1〜10)について、それぞれ算出するものとする。
【0045】
位置ずれは、画像の横方向および縦方向の並進のずれ(以下、単に、並進ずれという。)と、画像の中心を軸とした回転のずれ(以下、単に、回転ずれという。)との組み合わせで表される。図4では、基準となる画像f(0)に対する、画像f(a)のずれ量を分かり易く示すため、画像f(0)の縁と、画像f(a)の縁とを重ねて示すとともに、画像f(0)が表す画像上の中心位置に仮想の十字画像X0を追記し、この十字画像X0が、画像f(a)と同様にずれたとして、画像f(a)上に、ずれた結果の画像である十字画像Xaを示すようにしている。更に、このずれ量を、より分かり易く示すために、画像f(0)および十字画像X0を太い実線で示すとともに、画像f(a)および十字画像Xaを細い破線で示すようにしている。
【0046】
本実施例では、図4に示すように、並進ずれ量として横方向を「um」、縦方向を「vm」と表し、回転ずれ量を「δm」と表し、画像f(a)の画像f(0)に対するずれ量を「uma」、「vma」、「δma」と表すこととする。例えば、基準フレーム画像データF(0)の画像f(0)より時系列的に3つ後のフレーム画像データF(3)が表す画像f(3)の、画像f(0)に対するずれ量は、um3、vm3、δm3と表される。
【0047】
また、補正とは、画像の各画素の位置を、横方向にuの移動、縦方向にvの移動、およびδの回転を施した位置に移動させるように、フレーム画像データにおいて各画素データの座標を変換することを意味する。uは、横方向の並進補正量を表し、vは、縦方向の並進補正量を表している。そして、δは、回転補正量を表している。
【0048】
フレーム画像データF(0)に対するフレーム画像データF(a)の位置ずれ補正量を「ua」、「va」、「δa」と表すこととすると、位置ずれ補正量と、上述した位置ずれとの間には、ua=−uma、va=−vma、δa=−δmaの関係が成り立つ。例えば、フレーム画像F(3)についての位置ずれ補正量u3、v3、δ3は、u3=−um3、v3=−vm3、δ3=−δm3で表される。
【0049】
以上説明したように、例えば、図5に示すように、位置ずれ補正量ua、va、δaを用いて、フレーム画像データF(a)に対して補正を実行するすることにより、画像f(a)と基画像f(0)の被写体を互いに一致させることができる。すなわち、補正後のフレーム画像データF(a)が表す画像f(a)と、画像f(0)とを重ね合わせると、図5に示すように、補正後の画像f(a)は、画像f(0)に対して部分一致する。なお、この補正の結果を分かり易く示すため、図5においても、図4と同じ仮想の十字画像X0および十字画像Xaを表記しており、図5に示すように、補正の結果として、十字画像Xaは十字画像X0と一致することとなる。
【0050】
なお、上述の「部分一致する」とは、以下のことを意味するものである。すなわち、図5に示すように、例えば、ハッチングを施した領域P1は、画像f(a)にのみ存在する領域であり、画像f(0)には、該当する領域は存在しない。このように、上述の補正を行ったとしても、ずれに起因して、画像f(0)にのみ、または、f(a)にのみ存在する領域が生じてしまうため、画像f(a)は、画像f(0)に対して完全一致することはなく、部分一致することとなる。
【0051】
図3に戻って、位置ずれ補正量ua、va、δaの算出処理について説明する。後に生成される生成画像Gにおいて十分な画質を確保するためには、位置ずれ補正量は、画像f(a)の画素単位より細かい精度(いわゆるサブピクセルレベルの精度)で算出される必要がある。例えば、並進補正量ua、vaは、1/16画素単位で、回転補正量δaは、1/100度単位で算出される。従って、位置ずれ補正量の算出には、画素単位よりも細かい精度で補正量を算出可能な解析手法が用いられる。本実施例では、CPU200は、補正対象であるフレーム画像データF(a)と基準となるフレーム画像データF(0)の各画素データの画素値(例えば輝度値)を用いて、勾配法(グラディエント法)を実行することによって、位置ずれ補正量を算出する。以下では、先ず、勾配法について説明する。
【0052】
図6および図7を参照して、勾配法について説明する。図6は、勾配法による位置ずれ補正量の算出方法について説明する第1の説明図である。図7は、勾配法による位置ずれ補正量の算出方法について説明する第2の説明図である。図6において、黒い丸は、基準となる画像f(0)の画素を表し、例えば、(x1i、y1i)は、画像f(0)の中心を原点とする直交座標上における画素の座標を表している。そして、白い丸は、画像f(0)と部分一致するように重ねられた画像f(a)の画素P_tar(x2i、y2i)を表し、座標(x2i,y2i)は、画像f(a)の中心を原点とする直交座標上における座標を表している。以下、画素P_tar(x2i、y2i)を着目画素iとして説明を進める。着目画素P_tar(x2i、y2i)は、画像f(0)と部分一致するように重ねられた場合に、画像f(0)の画素P_ref(x1i、y1i)の近傍の位置(x1i+Δxi、y1i+Δyi)に位置すると仮定する。ここで、iは、各画素を区別する番号である。
【0053】
まず、着目画素P_tar(x2i、y2i)に対応する画像f(0)の画素P_ref(x1i、y1i)と、その上下左右にある4つの画素P_ref(x1i+1、y1i)、P_ref(x1i-1、y1i)、P_ref(x1i、y1i+1)、P_ref(x1i、y1i-1)が、参照画素として選択される。
【0054】
図7(a)は、画像f(a)と画像f(0)とを部分一致するように重ねた場合において、着目画素P_tar(x2i、y2i)と画素P_ref(x1i、y1i)とのx1軸上の距離Δxiを推定する方法を示している。まず、画素P_ref(x1i、y1i)と、左右に隣接する画素P_ref(x1i-1、y1i)、P_ref(x1i+1、y1i)の輝度値B_ref(x1i、y1i)、B_ref(x1i-1、y1i)、B_ref(x1i+1、y1i)とを用いて、輝度勾配ΔBxiが算出される。ΔBxiは、図7(a)において直線R1の傾きで表される量で、画素P_ref(x1i、y1i)の近傍における輝度勾配である。例えば、3つの画素値を用いて、近似直線を求めてその傾きをΔBxiとして用いても良いし、単に、左右の画素値を結ぶ直線の傾き{B_ref(x1i+1、y1i)−B_ref(x1i-1、y1i)}/2をΔBxiとして用いても良い。
【0055】
そして、着目する画素P_tar(x2i、y2i)の輝度値B_tar(x2i、y2i)が、図7(a)に示す直線R1上にあるものと仮定すると、
ΔBxi・Δxi=B_tar(x2i、y2i)−B_ref(x1i、y1i)が成立する。ここで、B_tar(x2i、y2i)およびB_ref(x1i、y1i)を単にB_tar、B_refで表すと、
ΔBxi・Δxi - (B_tar - B_ref)= 0 …(1)
が成立する。
【0056】
図7(b)は、画像f(a)と画像f(0)とを部分一致するように重ねた場合において、着目画素P_tar(x2i、y2i)と画素P_ref(x1i、y1i)とのy1軸上の距離Δyiを推定する方法を示している。上述したΔxの推定と同様の手法により、
ΔByi・Δyi - (B_tar - B_ref)= 0 …(2)
の式が導ける。ここで、式(1)、および、式(2)を満たすΔxi、Δyiを求めれば、着目画素P_tar(x2i、y2i)の画像f(0)上における位置がわかることになる。
【0057】
この考え方を拡張して、画像f(a)を構成する全ての画素について、共通する補正量(ua、va、δa)を求めるには、最小自乗法を用いて、以下のS2を最小にすることを考えれば良い。
S2=Σ{ΔBxi・Δxi+ΔByi・Δyi−(B_tar - B_ref)}2 ...(3)
【0058】
ここで、補正量(ua、va、δa)と、各画素iについてのΔxi、Δyiとの関係について考える。図8は、画素の回転補正量を模式的に示す説明図である。画像f(0)の座標(x1,y1)の原点Oからの距離をrとし、x1軸からの回転角度をθとすると、r,θは、下式で表される。
r=(x12+y12)1/2 …(4)
θ=tan-1(y1/x1) …(5)
【0059】
ここで、画像f(a)は、画像f(0)に対する並進ずれはなく、回転ずれのみが発生しているものとし、画像f(a)における座標(x2,y2)の画素が、画像f(0)上の座標(x1,y1)の位置から回転補正量δだけ回転した座標(x1',y1')にあるとする。この回転補正量δaによるx1軸方向の移動量Δxとy1軸方向の移動量Δyは、下式により求められる。
Δx=x1'−x1≒−r・δa・sinθ=−δa・y1 …(6)
Δy=y1'−y1≒r・δa・cosθ=δa・x1 …(7)
【0060】
したがって、上記式(3)における各画素iについてのΔxi、Δyiは、補正量(u,v、δ)を用いて、下式のように表すことができる。
Δxi=ua−δa・y1i …(8)
Δyi=va+δa・x1i …(9)
ここで、x1iおよびy1iは、画像f(0)における画素P_ref(x1i、y1i)の座標である。
【0061】
上記式(8),(9)を上記式(3)に代入すると、下式が得られる。
S2=Σ{ΔBxi・(ua−δa・y1i)+ΔByi・(va+δa・x1i)−(B_tar - B_ref)}2 …(10)
【0062】
すなわち、画像f(a)の全画素について、対応する座標値と輝度値を式(18)に代入したときに、S2を最小にする補正量(ua,va,δa)を最小自乗法によって求めることができる。
【0063】
ここで、図6に戻って説明を続ける。位置ずれ補正量が、20個の画像f(a)(a=-10〜-1,1〜10)の全てについて算出されると、CPU200は、算出された位置ずれ補正量を用いて、フレーム画像データF(a)(a=-10〜-1,1〜10)に対して位置ずれ補正を実行する(ステップS30)。この結果、画像f(a)(a=-10〜-1,1〜10)と基準となる画像f(0)の計21個の画像を、部分一致するように重ね合わせることができる(図5参照)。
【0064】
CPU200は、続いて、重ね合わせた21個のフレーム画像データF(a)を合成して、フレーム画像データF(a)より高解像度の画像を表す画像データ(以下、高解像度画像データという。)を生成する処理(以下、高解像度画像合成処理という。)を実行する(ステップS40)。
【0065】
図9は、高解像度画像合成処理の処理ルーチンを示すフローチャートである。CPU200は、高解像度画像合成処理を開始すると、先ず、生成する高解像度画像データ(以下、生成データという。)が表す画像(以下、生成画像という。)Gを構成する画素の位置を設定する。そして、位置を設定した画素のうち画素データを生成する注目画素G(i)を設定する(ステップS401)。iは、各画素を区別する番号である。ここで、生成画像Gおよび生成画像Gを構成する画素について説明しておく。
【0066】
図10は、基準となる画像f(0)と画像f(1)〜f(3)とを、位置ずれ補正して部分一致するように重ね合わせた一例を拡大して示す説明図である。実際には、21個の画像を重ね合わせるが、図10においては、図を解りやすくするため、f(0)〜f(3)の4つの画像のみを示し、他の画像については示していない。図10では、生成画像Gの各画素が黒丸で示されているとともに、画像f(0)の各画素が白抜きの四辺形で示され、画像f(1)〜f(3)の各画素が、ハッチングを施した四辺形で示されている。なお、生成画像Gの画素密度は、画像f(0)に対して、縦横1.5倍密に設定されるものとする。また、生成画像Gの各画素は、2画素おきに画像f(0)の各画素に重なる位置にあるものとする。ただし、生成画像Gの画素が、必ずしも画像f(0)の各画素に重なる位置にある必要はない。例えば、生成画像Gの各画素のすべてが、画像f(0)の各画素の中間に位置する等、種々の位置とすることができる。また、生成画像Gの画素密度も、縦横1.5倍に限定されるものではなく、自由に設定することができる。
【0067】
高解像度画像合成処理では、上述した生成画像Gを構成する全ての画素を順番に注目画素として、それぞれ画素値を算出して画素データを生成していく。注目画素G(i)は、例えば、生成画像Gの左上端の画素から右上端の画素まで、次に1つ下の列の左端の画素から右端の画素までという順番に設定される。以下では、図10の中央に位置する画素を注目画素G(i)として設定した場合を例に説明を進める。
【0068】
注目画素G(i)が設定されると、CPU200は、参照するフレーム画像データF(a)を設定する(ステップS402)。本処理では、1つの注目画素G(i)の画素値を算出するにあたり、合成に用いるフレーム画像データF(a)を順番に1つずつ参照していく。例えば、フレーム画像データF(-10)から順番に、F(-9),F(-8),F(-7),....,F(9),F(10)と設定すれば良い。
【0069】
CPU200は、次に、設定された一のフレーム画像データ(以下、参照画像データという。)F(a)に基づいて、注目画素G(i)の画素値Ia(a,i)を算出する(ステップS403)。以下、画素値Ia(a,i)を単一画像データ参照値と呼ぶ。単一画像データ参照値Ia(a,i)は、バイ・リニア法等の補完処理によって算出される。
【0070】
図11は、バイ・リニア法による補間処理について示す説明図である。CPU200は、図11に示すように、画像f(a)を構成する画素であって注目画素G(i)を囲む4つの画素f(a,j),f(a,j+1),f(a,k),f(a,k+1)で区画される領域を、注目画素G(i)で4つの区画に分割する。そして、CPU200は、4つの画素f(a,j),f(a,j+1),f(a,k),f(a,k+1)の画素値を、それぞれの画素の対角に位置する区画の面積比によって重み付けして加算することにより、単一画像データ参照値Ia(a,i)を算出する。なお、画素f(a,j)は、f(a)のj番目の画素を示している。kはj番目の画素に画像f(a)の横方向の画素数を加えた画素の番号を示している。
【0071】
なお、画素値補間処理の方法については、バイ・リニア法の他、バイ・キュービック法、ニアレストネイバ法等の種々の補間方法を用いることができる。
【0072】
CPU200は、続いて、生成データを合成する際に、算出した単一画像データ参照値Ia(a,i)に対して用いる重み付けW(a,i)を算出する(ステップS404)。重み付けW(a,i)は、各フレーム画像データF(a)を生成画像データの生成に用いた場合に、生成画像Gの画質を低下させる可能性が大きいフレーム画像データF(a)ほど小さく、可能性が小さいフレーム画像データF(a)ほど大きく設定される。重み付けW(a,i)の設定には、各フレーム画像データF(a)と関連付けられた指標であって、生成画像Gの画質を低下させる可能性の大きさを表す指標(以下、単に、指標という。)を用いて実行される。
【0073】
具体的には、重み付けW(a,i)は、画素間距離別重み付けWs(a,i)と、時間的距離別重み付けWt(a)と、位置ずれ量別重み付けWu(a)を用いて、以下の式(11)によって与えられる。
W(a,i) = Ws(a,i) × Wt (a) × Wu(a) …(11)
画素間距離別重み付けWs(a,i)と、時間的距離別重み付けWt(a)と、位置ずれ量別重み付けWu(a)は、それぞれ、算出に用いられる指標が異なる。以下、これらの重み付けについて説明する。
【0074】
画素間距離別重み付けWs(a,i)は、注目画素G(i)と、画像f(a)の画素であって注目画素G(i)の最近接にある画素(図11において、記号F(a,j)で示す画素)との画素間距離(図11において記号L(a,i)で示す距離)を上述した指標として、設定される重み付けである。したがって、画素間距離別重み付けWs(a,i)は、注目画素G(i)ごとに、そして、参照するフレーム画像データF(a)ごとに、それぞれ異なる値となる。
【0075】
図12は、画素間距離別重み付けWs(a,i)の算出について説明する説明図である。画素間距離別重み付けWs(a,i)は、画素間距離L(a,i)が大きいほど小さく、画素間距離L(a,i)が小さいほど大きく設定される。例えば、図12(a)に示すように、画素間距離L(a,i)の増加に対して、画素間距離別重み付けWs(a,i)は直線的に減少することとしても良い。ただし、Wsは負の値を取れないので、所定の画素間距離以上では、重み付けWs(a,i) = 0とする。また、図12(b)に示すように、指数関数(例えば、式(12))を用いて、画素間距離別重み付けWs(a,i)を算出しても良い。
Ws(a,i) = exp{-L(a,i)/α}(αは定数) …(12)
【0076】
時間的距離別重み付けWt(a)は、合成の基準となるフレーム画像データF(0)と、参照するフレーム画像データF(a)との時間的距離を上述した指標として、設定される重み付けである。時間的距離とは、一のフレーム画像データの生成時と他のフレーム画像データの生成時との時間差を意味する。時間的距離は、フレーム番号が時系列的に順番に振られていれば、基準となるフレーム画像データF(0)のフレーム番号と、参照するフレーム画像データF(a)のフレーム番号の差分で表すことができるので、時間的距離別重み付けWt(a)は、結局、フレーム番号aの関数として定まる値である。
【0077】
図13は、時間的距離別重み付けWt(a)の算出について説明する説明図である。時間的距離別重み付けWt(a)、時間的距離が大きいほど小さく、時間的距離が小さいほど大きく設定される。すなわち、フレーム番号aの絶対値|a|が大きいほど小さく、小さいほど大きく設定される。例えば、図13(a)に示すように、|a|の増加に対して、時間的距離別重み付けWt(a)は直線的に減少することとしても良い。また、図13(b)に示すように、正規分布関数を用いて、時間的距離別重み付けWt(a)を算出しても良い。
【0078】
図14は、時間的距離別重み付けWt(a)を記録したテーブルを示す概略図である。時間的距離別重み付けWt(a)は、結局、フレーム番号aごとに定まる値であるので、図13において記号Pt1またはPt2で示す数値とフレーム番号との対応関係を、予めテーブルとしてプログラム内に記録しておいても良い。この場合は、CPU200は、テーブルを参照することによって、時間的距離別重み付けWt(a)を取得する。
【0079】
位置ずれ量別重み付けWu(a)は、ステップS20において算出された基準画像f(0)に対する参照とする画像f(a)の位置ずれ補正量(ua,va,δa)の大きさΔM(a)を上述した指標として、設定される重み付けである。位置ずれ補正量の大きさΔM(a)には、例えば、並進ずれに対応する補正量のみを考慮して、以下の式(13)により算出することができる。
ΔM(a) = (ua2+va2)1/2 …(13)
もちろん、回転ずれに対応する補正量δaも考慮しても良い。
【0080】
位置ずれ量別重み付けWu(a)は、位置ずれ補正量の大きさΔM(a)が大きいほど小さく、位置ずれ補正量の大きさΔM(a)が小さいほど大きく設定される。例えば、第1の補正量Ws(a,i)と同様に、位置ずれ補正量ΔM(a)の増加に対して、位置ずれ量別重み付けWu(a)は直線的に減少することとしても良いし、指数関数(例えば、式(14))を用いて、画素間距離別重み付けWs(a,i)を算出しても良い。
Wu(a) = exp{-ΔM(a)/β}(βは定数) …(14)
【0081】
以上説明したように、CPU200は、式(11)〜(14)を用いて、重み付けW(a,i)を算出することができる。
【0082】
図9に戻って説明を続ける。CPU200は、重み付けW(a,i)を算出すると、21個の全てのフレーム画像データF(a)を参照したか否かを判断する(ステップS405)。まだ参照していないフレーム画像データF(a)があると判断した場合(ステップS405:NO)には、CPU200は、ステップS402に戻ってそのフレーム画素データを参照して、上述したステップS403〜S404を繰り返す。
【0083】
全てのフレームデータを参照したと判断した場合(ステップS405:YES)には、CPU200は、最終的に注目画素G(i)の画素値I(i)を算出して注目画素G(i)の画素データを生成する処理(ステップS406)に移る。この時点で、上述したS403〜S404の繰り返しによって、注目画素G(i)について、各フレーム画像データF(a)(a = -10〜+10)のそれぞれを参照した合計21個の単一画像データ参照値Ia(a,i)と、これにそれぞれ対応する21個の重み付けW(a,i)が算出されている。注目画素G(i)の最終的な画素値I(i)は、21個の単一画像データ参照値Ia(a,i)の重み付き平均値として与えられる。具体的には、CPU200は、これらの値を以下の式(15)に代入することによって、注目画素G(i)の最終的な画素値I(i)を算出する。
【0084】
【数1】
【0085】
式(15)の分母は、重み付けの総和が1になるように規格化する係数である。従って、重み付けW(a,i)は、絶対値自体には意味はなく、各重み付け間の相対的な比率にのみ意味があるものである。CPU200は、注目画素G(i)の最終的な画素値I(i)を算出すると、その注目画素G(i)については処理を終了する。
【0086】
CPU200は、次に、生成画像Gを構成する全ての画素について画素値I(i)を算出したか否かを判断する(ステップS407)。まだ画素値I(i)が生成されていない画素が存在すると判断した場合(ステップS407:NO)には、CPU200は、ステップS401に戻って、画素値I(i)が生成されていない画素を新たな注目画素G(i)に設定して、上述したステップS402〜S406を繰り返す。
【0087】
全ての画素について、画素値I(i)が生成されたと判断した場合(ステップS407:YES)には、CPU200は、本処理を終了する。この結果、高解像度画像データ(生成データ)の生成が完了したことになる。生成された高解像度画像データは、プリンタ30によって印刷画像として出力される、あるいは、表示装置40やモニタ25によって表示画像として出力される等、ユーザーの利用に供される。
【0088】
以上説明したように、本実施例に係る画像処理によれば、複数のフレーム画像データF(a)を合成して、より高解像度の画像データ(生成データ)を生成する際、生成データの各画素データは、重み付けW(a,i)を用いた単一画像データ参照値Ia(a,i)の重み付き平均値として求められる。言い換えれば、重み付けW(a,i)は、生成データに対する一のフレーム画像データF(a)の寄与度を表す値である。したがって、重み付けW(a,i)を調整すれば、生成データにおける各フレーム画像データの影響を、フレーム画像データF(a)ごとに変化させることができる。そして、重み付けW(a,i)は、各フレーム画像データが、生成画像Gの画質を低下させる可能性が大きい画像データほど小さく、可能性が小さい画像データほど大きく設定される。この結果、生成画像Gの画質を低下させる可能性の高いフレーム画像データF(a)が生成データに与える影響が小さくなる。したがって、生成画像Gの画質低下を低減することができる。また、重み付けW(a,i)は、生成画像Gの画質を低下させる可能性の大きさを表す指標を用いることによって、適切に設定される。
【0089】
さらに、重み付けW(a,i)について具体的に述べると、重み付けW(a,i)には、上述した画素間距離L(a,i)を上述した指標として設定される画素間距離別重み付けWs(a,i)が成分として含まれている。画素間距離L(a,i)が大きいフレーム画像データF(a)は、注目画素G(i)から比較的離れた位置にしか画素を持たないのであるから、このようなフレーム画像データF(a)に基づいて算出された単一画像データ参照値Ia(a,i)は、最終的に生成される注目画素G(i)の画素値I(i)に対して画質低下を引き起こす情報を与えて、生成画像Gの画質を低下させる可能性が高いといえる。画素間距離別重み付けWs(a,i)は、画素間距離L(a,i)が大きいほど小さく、画素間距離L(a,i)が小さいほど大きく設定される。この結果、生成画像Gの画質を低下させる可能性の高いフレーム画像データF(a)が生成データに与える影響が小さくなる。したがって、生成画像Gの画質低下を低減することができる。
【0090】
また、重み付けW(a,i)には、上述した時間的距離(具体的には、フレーム番号の絶対値|a|)を上述した指標として設定される時間的距離別重み付けWt(a)が成分として含まれている。基準となるフレーム画像データF(0)との時間的距離が大きいフレーム画像データF(a)が表す画像f(a)は、基準画像f(0)からみて、上述したいわゆる「動き」が生じている可能性が高くなる。したがって、時間的距離が大きいフレーム画像データF(a)に基づいて算出された単一画像データ参照値Ia(a,i)は、最終的に生成される注目画素G(i)の画素値I(i)に対して画質低下を引き起こす情報(例えば、「動き」が生じている被写体の情報)を与えて、生成画像Gの画質を低下させる可能性が高いといえる。時間的距離別重み付けWt(a)は、フレーム画像データF(0)との時間的距離が大きいほど小さく、時間的距離が小さいほど大きく設定される。この結果、生成画像Gの画質を低下させる可能性の高いフレーム画像データF(a)が生成データに与える影響が小さくなる。したがって、生成画像Gの画質低下を低減することができる。
【0091】
また、重み付けW(a,i)には、上述した位置ずれ補正量の大きさΔM(a)を上述した指標として設定される位置ずれ量別重み付けWu(a)が成分として含まれている。基準となるフレーム画像データF(0)との位置ずれ補正量が大きいフレーム画像データF(a)が表す画像f(a)は、やはり、基準画像f(0)からみて、上述したいわゆる「動き」が生じている可能性が高くなる。特に、撮像装置が動いたことによって発生する視差により被写体位置が相対的に変化する「動き」が生じる可能性が高くなる。したがって、位置ずれ補正量の大きさΔM(a)が大きいフレーム画像データF(a)に基づいて算出された単一画像データ参照値Ia(a,i)は、やはり、最終的に生成される注目画素G(i)の画素値I(i)に対して画質低下を引き起こす情報を与え、生成画像Gの画質を低下させる可能性が高いといえる。位置ずれ量別重み付けWu(a)は、基準となるフレーム画像データF(0)との位置ずれ補正量の大きさΔM(a)が大きいほど小さく、位置ずれ補正量の大きさΔM(a)が小さいほど大きく設定される。この結果、生成画像Gの画質を低下させる可能性の高いフレーム画像データF(a)が生成データに与える影響が小さくなる。したがって、生成画像Gの画質低下を低減することができる。
【0092】
以上を言い換えれば、本実施例に係る画像処理装置は、各フレーム画像データF(a)が、生成画像Gの画質を低下させる可能性の大きさを表す指標として、1.画素間距離L(a,i) 2.時間的距離|a| 3.位置ずれ補正量の大きさΔM(a)の3つを用いている。そして、これらに応じた適切な重み付けW(a,i)を設定することによって、生成データの合成において、画質低下を起こしやすいフレーム画像データF(a)の合成比率を低く、画質低下を起こしにくいフレーム画像データF(a)の合成比率を高くしている。この結果、生成画像Gの画質低下を抑え、画質の向上を図ることができる。
【0093】
上述した重み付けW(a,i)の算出は、重み付けとリスクの大きさを表す指標との対応関係をが予め記録されたテーブル(図14参照)や、簡便な算出式(式12等参照)を用いて実行されるので、容易かつ迅速に算出可能である。
【0094】
B.第2の実施例:
図15〜図17を参照して、本発明に係る第2の実施例について説明する。第2の実施例に係る画像処理システムの構成およびパーソナルコンピュータ20(CPU200)の機能的構成は、図1および図2を参照して説明した第1の実施例に係る画像処理システムの構成およびパーソナルコンピュータ20(CPU200)の機能的構成と同一であるので、その説明を省略して、以下の説明では同一の符号を用いる。
【0095】
・パーソナルコンピュータ20における画像処理:
図15は、本実施例に係る画像処理の処理ルーチンを示すフローチャートである。図3を参照して説明した第1の実施例に係る画像処理の処理ルーチンと同一のステップについては、図3と同一の符号を付し、その説明を省略する。
【0096】
第1の実施例に係る画像処理と異なる点は、第2の実施例においては、ステップS25で示すフレーム画像データ選択処理が追加されている点である。以下、このフレーム画像データ選択処理について説明する。
【0097】
図16は、フレーム画像データ選択処理の処理ルーチンを示すフローチャートである。本処理が開始されると、CPU200は、注目するフレーム画像データF(a)を設定する(ステップS251)。本処理では、全てのフレーム画像データF(a)に順番に注目し、それぞれのフレーム画像データF(a)について、後のステップS40における高解像度画像合成処理に用いるか否かを判断していく。例えば、フレーム画像データF(-10)から順番に、F(-9),F(-8),F(-7),....,F(9),F(10)と設定すれば良い。
【0098】
CPU200は、続いて、ステップ20において、注目するフレーム画像データF(a)について算出された位置ずれ補正量(ua,va,δa)が、以下の条件式(16)〜(18)を全て満たすか否かを判定する。
|δa|<δ_th …(16)
|B(ua)|<u_th …(17)
|B(va)|<v_th …(18)
【0099】
ここで、B(x)は、それぞれxに最も近い整数とxとの差を表す。例えば、B(1.2)=0.2、B(0.9)=0.1である。δ_th、u_th、v_thは、それぞれ予め設定された閾値であり、例えば、δ_th=0.01(degree)、u_th=1/8(画素単位)、v_th=1/8(画素単位)に設定される。CPU200は、位置ずれ補正量(ua,va,δa)が、以下の条件式(16)〜(18)を全て満たすと判定した場合(ステップS252:YESかつステップS253:YESかつステップS254:YES)には、注目するフレーム画像データF(a)を、高解像度画像合成処理に用いないと判断する(ステップS255)。
【0100】
一方で、CPU200は、位置ずれ補正量(ua,va,δa)が、以下の条件式(16)〜(18)のいずれか1つを満たさないと判定した場合(ステップS252:NOまたはステップS253:NOまたはステップS254:NO)には、注目するフレーム画像データF(a)を、高解像度画像合成処理に用いると判断する(ステップS256)。
【0101】
ここで、高解像度画像合成処理に用いないと判断されるフレーム画像データF(a)と、用いないと判断されるフレーム画像データF(a)のそれぞれについて説明する。図17は、基準となる画像f(0)と画像f(4)、f(5)とを、位置ずれ補正して部分一致するように重ね合わせた一例を拡大して示す説明図である。図17においては、図を解りやすくするため、f(0),f(4),f(5)の3つの画像のみを示し、他の画像については示していない。
【0102】
図17における画像f(4)は、上述した式(16)〜(18)に示す所定の条件を満たし、高解像度画像合成処理に用いないと判断されるフレーム画像データF(a)が表す画像の一例である。画像f(4)の画素と、基準となる画像f(0)の画素とは、生成画像の座標空間(位置ずれ補正後の座標空間)において、同一の座標に位置している。ここで、「同一の座標に位置している」とは、厳密に座標が一致していることを要求する訳ではなく、画素単位より細かい所定の精度(例えば、1/8画素単位)で座標が一致していることを意味する。このような画像を表す画像データ(図17の例では、フレーム画像データF(4))を重複画像データと呼ぶこととする。
【0103】
重複画像データが表す画像(図17の例では、画像f(4))は、生成される高解像度画像G(図17中、黒丸で示す画素からなる画像)に対して、基準画像f(0)と同じ情報を与えるにすぎず、高解像度画像Gの生成に貢献しない。
【0104】
一方、図17における画像f(5)は、高解像度画像合成処理に用いると判断されるフレーム画像データF(a)が表す画像の一例である。画像f(5)の画素は、基準となる画像f(0)と、生成画像の座標空間において、異なる座標に位置している。すなわち、画像f(5)の画素は、基準となる画像f(0)の画素間を埋める位置に存在している。このような画像は、生成される高解像度画像Gに対して、基準画像f(0)とは異なる情報を与えるので、高解像度画像Gの生成に貢献する。
【0105】
図16に戻って説明を続ける。CPU200は、注目するフレーム画像データF(a)を高解像度画像合成処理に用いるか否かを判断すると、20個の全てのフレーム画像データF(a)(a = -10〜-1,+1〜+10)について、上述した判断をしたか否かを判断する(ステップS257)。まだ、判断していないフレーム画像データF(a)があると判断した場合(ステップS257:NO)には、CPU200は、ステップS251に戻ってそのフレーム画像データF(a)に注目して、上述したステップS252〜S256を繰り返す。全てのフレーム画像データF(a)について上述した判断を終えた場合(ステップS257:YES)には、本処理を終了して、図15に示す処理ルーチンにリターンする。
【0106】
以上説明したように、本実施例に係る画像処理装置によれば、第1の実施例に係る画像処理装置と同様の効果に加えて、以下の効果が得られる。高解像度画像Gの生成に貢献しないフレーム画像データである重複画像データが存在する場合には、重複画像データを高解像度画像合成処理(ステップS40)に用いないため、高解像度画像合成処理に係る処理負荷の軽減を図ることができる。さらに、合成に使用するフレーム画像データが少なくなることで、2重像となる危険性も低減することができる。
【0107】
C.変形例:
上記実施例において、重み付けW(a,i)には、3つの要素が考慮されているが、これらのうち、1つまたは2つのみの要素を考慮しても良い。すなわち、上記実施例では、式(11)に示すように、重み付けW(a,i)は、画素間距離を考慮した画素間距離別重み付けWs(a,i)と、時間的距離を考慮した時間的距離別重み付けWt(a)と、位置ずれ補正量の大きさを考慮した位置ずれ量別重み付けWu(a)の積として算出されるが、変形例として、例えば、画素間距離別重み付けのみを採用して、以下の式(18)によってW(a,i)を算出しても良く、第1と時間的距離別重み付けを採用して、以下の式(19)によってW(a,i)を算出しても良い。
W(a,i) = Ws(a,i) …(18)
W(a,i) = Ws(a,i) × Wt (a) …(19)
かかる場合には、考慮した要素に起因した生成画像Gの画質低下を低減することができる。
【0108】
また、画素間距離別重み付けWs(a,i)は、生成画像Gを構成する各画素ごと、各フレーム画像データF(a)ごとに(つまり、画素数×フレーム画像データ数個)設定される必要があるが、位置ずれ量別重み付けWu(a)および時間的距離別重み付けWt(a)は、各フレーム画像データF(a)ごと(つまり、フレーム画像データ数個)のみの設定で良い。従って、位置ずれ量別重み付けWu(a)および時間的距離別重み付けWt(a)のみを用いる場合には、画像処理のルーチンにおいて、一度だけ算出するだけで良い。例えば、図3で示すフローチャートのステップ30の後、ステップ40の前に重み付けを一度だけ算出すれば、以後、高解像度画像合成処理では、算出した重み付けをそのまま用いれば良い。
【0109】
上記実施例では、位置ずれ補正量の大きさが大きい程、位置ずれ量別重み付けWu(a)を小さくしているが、閾値を予め設定しておき、位置ずれ補正量の大きさが閾値以上である場合には、そのフレーム画像データF(a)は、高解像度画像合成処理に用いない、あるいは、重み付けWu(a)を0にすることとしても良い。かかる場合には、「動き」が生じやすく、生成画像の画質低下の原因となる可能性の高いフレーム画像データF(a)を排除し、生成画像Gの画質低下を低減することができる。
【0110】
上記実施例では、ディジタルビデオカメラ10によって生成された動画像データから複数のフレーム画像データを取得しているが、高解像度画像データの生成に用いる複数の画像データの取得態様は、これに限られるものではない。例えば、ディジタルスチルカメラの動画撮影モードで撮像された動画像データや、連写機能を備えたディジタルスチルカメラで連続撮影された複数の静止画像データ等、時系列に並ぶ複数の画像データであれば良い。連写機能とは、一般的に、メモリーカードにデータを転送しないで、ディジタルスチルカメラ内部の高速なメモリー(バッファメモリー)に画像データをため込むことで、複数のカットを高速で連続して撮影する機能をいう。
【0111】
上記実施例に係る画像処理装置では、位置ずれ補正量は、勾配法によって算出しているが、他の算出方法を用いても良い。例えば、周知のパターンマッチ法により位置ずれ補正量を大ざっぱに(例えば、画素単位の精度で)算出した後、勾配法により位置ずれ補正量を高い精度で(画素単位より細かい精度で)算出しても良い。
【0112】
また、ディジタルビデオカメラ10に角速度センサ等を備え、これらによってフレーム画像データ生成時におけるディジタルビデオカメラ10の向きの変化に関する情報(いわゆる手ぶれ情報)を取得し、画像処理装置にフレーム画像データと共に出力しても良い。かかる場合には、その向きの変化に関する情報を用いて位置ずれ補正量を算出できる。
【0113】
以上、実施例、変形例に基づき本発明に係る画像処理について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【図面の簡単な説明】
【0114】
【図1】第1の実施例に係る画像処理装置を含む画像処理システムの一例を示す説明図。
【図2】第1の実施例に係るパーソナルコンピュータ20(CPU200)の機能ブロック図。
【図3】第1の実施例に係る画像処理の処理ルーチンを示すフローチャート。
【図4】基準となる画像f(0)に対する画像f(a)の位置ずれを示す説明図。
【図5】フレーム画像データF(0)を基準として、フレーム画像データF(a)に対して行う位置ずれ補正について示す説明図。
【図6】勾配法による位置ずれ補正量の算出方法について説明する第1の説明図。
【図7】勾配法による位置ずれ補正量の算出方法について説明する第2の説明図。
【図8】画素の回転補正量を模式的に示す説明図。
【図9】高解像度画像合成処理の処理ルーチンを示すフローチャート。
【図10】f(0)〜f(3)を位置ずれ補正して重ね合わせた一例を、拡大して示す説明図。
【図11】バイ・リニア法による補間処理について示す説明図。
【図12】画素間距離別重み付けWs(a,i)の算出について説明する説明図。
【図13】時間的距離別重み付けWt(a)の算出について説明する説明図。
【図14】時間的距離別重み付けWt(a)を記録したテーブルを示す概略図。
【図15】第2の実施例に係る画像処理の処理ルーチンを示すフローチャート。
【図16】フレーム画像データ選択処理の処理ルーチンを示すフローチャート。
【図17】画像f(0)、f(4)、f(5)を、位置ずれ補正して重ね合わせた一例を、拡大して示す説明図。
【符号の説明】
【0115】
10…ディジタルビデオカメラ(DVC)
20…パーソナルコンピュータ
200…中央演算装置(CPU)
201…ランダムアクセスメモリ(RAM)
202…ハードディスク(HDD)
203…カードスロット
204…入出力端子
205…光学ディスクドライブ
25…モニタ
30…プリンタ
40…表示装置
45…表示部
MC…メモリカード
LD…光学ディスク
M210…画像データ取得部
M220…補正量算出部
M230…位置ずれ補正部
M240…重み付け設定部
M241…画素間距離別重み付け設定部
M242…時間的距離別重み付け設定部
M243…位置ずれ量別重み付け設定部
M250…高解像度画像生成部
M251…画素位置設定部
M252…単一画像参照画素値算出部
M253…画素データ生成部
【技術分野】
【0001】
本発明は、画像処理に関し、特に、比較的低解像度の複数の画像データから高解像度の画像データを生成する技術に関する。
【背景技術】
【0002】
デジタルビデオカメラで生成された動画像データを構成するフレーム画像や、デジタルスチルカメラによって連続撮影された画像データのように、時系列に並ぶ複数の近似した画像データが取得される場合がある。これらの近似した複数の画像データを元画像データとして、元画像データより高解像度の画像データを生成する技術が知られている(例えば、特許文献1)。
【0003】
【特許文献1】特開平11−164264号公報
【特許文献2】特開2000−244851号公報
【0004】
上記技術では、例えば、元画像データとして、動画像データを構成する連続する複数のフレーム画像を用いる場合において、フレーム画像の画像データを解析して、各フレーム画像間の移動ベクトル(いわゆるフレーム画像間のずれに相当する)を画素ピッチより細かい単位で算出する。そして、算出した移動ベクトルに基づいて、各フレーム画像を重ね合わせて、高解像度の画像データを生成している。
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、合成に用いる複数のフレーム画像の中には、生成される高解像度画像に対して、画質低下を引き起こす情報を与えるデータが含まれている場合がある。例えば、合成に用いるフレーム画像の一部に、合成の基準となるフレーム画像に対する「動き」が発生している場合がある。「動き」とは、手ぶれによる被写体の揺れのように、フレーム画像全体の一様な変化ではなく、フレーム画像中における一部の被写体の局所的な変化を意味している。このような「動き」が生じているフレーム画像は、「動き」が生じている部分において、基準となるフレーム画像と被写体が一致するように正確に重ね合わせることができない。この結果、「動き」が生じているフレーム画像は、「動き」のある被写体の2重像を生じさせるなど、生成される高解像度画像の画質を低下させてしまうおそれがあった。
【0006】
また、上記課題は、デジタルビデオカメラで生成された動画像データを用いる場合に限らず、デジタルスチルカメラで連続撮影された複数の画像データを用いる場合などにも共通した課題であった。
【0007】
本発明は、上記課題を解決するためになされたものであり、複数の画像データに基づいてより高解像度の画像データを生成する場合に、生成される高解像度画像の画質を改善することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために本発明の第1の態様は、それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理装置を提供する。本発明の第1の態様に係る画像処理装置は、前記複数の画像データを取得する画像データ取得手段と、前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出する補正量算出手段と、前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正する位置ずれ補正手段と、前記高解像度画像データの生成に用いた場合に生成される前記高解像度画像データが表す画像の画質を低下させる可能性が大きい画像データほど小さく、前記可能性が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定する重み付け設定手段と、前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成する高解像度画像生成手段とを備えることを特徴とする。
【0009】
本発明の第1の態様に係る画像処理装置によれば、時系列に並ぶ複数の画像データを合成して高解像度画像データを生成する際に、各画像データごとに設定される重み付けを用いて合成が行われる。重み付けは、生成される高解像度画像データ(以下、生成データという。)が表す画像(以下、生成画像という。)の画質を低下させる可能性の大きさ大きい画像データほど小さく、可能性が小さい画像データほど大きく設定される。したがって、生成画像の画質を低下させる可能性の高い画像データが生成データに与える影響が小さくなる。この結果、生成画像の画質低下を低減することができる。
【0010】
本発明の第1の態様に係る画像処理装置において、前記重み付けの設定は、前記複数の画像データのそれぞれに関連付けられた指標であって、前記画質を低下させる可能性の大きさを表す指標を用いて実行されるても良い。かかる場合には、生成画像の画質を低下させる可能性の大きさを表す指標を用いて、適切な、重み付けを設定することができる。
【0011】
本発明の第1の態様に係る画像処理装置において、前記指標は、前記複数の画像データの中から選択された基準画像データに対する各画像データの時間的距離を含み、前記重み付け設定手段は、前記時間的距離が大きい画像データほど小さく、前記時間的距離が小さい画像データほど大きい重み付けを設定する時間的距離別重み付け設定手段を備えても良い。合成の基準となる画像データと時間的に離れた画像データは、前述した「動き」等が生じている可能性が高い。「動き」は生成画像の画質低下を引き起こす。合成する際、時間的距離に応じて設定された重み付けを用いることにより、このような生成画像の画質を低下させる可能性の高い画像データが、生成データに与える影響を小さくすることができる。
【0012】
本発明の第1の態様に係る画像処理装置において、前記指標は、前記複数の画像データの中から選択された基準画像データが表す画像と各画像データが表す画像との間における前記補正量の大きさを含み、前記重み付け設定手段は、前記補正量が大きい画像データほど小さく、前記補正量が小さい画像データほど大きい重み付けを設定する位置ずれ量別重み付け設定手段を備えても良い。合成の基準となる画像データが表す画像との間に生じている位置ずれが大きい画像の画像データは、前述した「動き」等が生じている可能性が高い。「動き」は生成画像の画質低下を引き起こす。合成する際、算出された補正量の大きさは、位置ずれの大きさを表すから、補正量に応じて設定された重み付けを用いることにより、このような生成画像の画質を低下させる可能性の高い画像データが、生成データに与える影響を小さくすることができる。
【0013】
本発明の第1の態様に係る画像処理装置において、前記指標は、前記生成される高解像度画像データを構成する生成画素データごとに設定されるものであって、前記補正された各画像データを構成する前記画素データのうち前記生成画素データの最近接にある画素データと、前記生成画素データとの画素間距離を含み、前記重み付け設定手段は、前記画素間距離が大きい画像データほど小さく、前記画素間距離が小さい画像データほど大きい重み付けを設定する画素間距離別重み付け設定手段を備えても良い。位置ずれ補正後において、生成画素データと、構成画素データのうち生成画素データの最近接にある画素データとの画素間距離が長い画像データは、その生成画素データに対して画質低下を引き起こす情報を与える可能性が高い。合成する際、生成画素データごとに、上述した画素間距離に応じて設定された重み付けを用いることにより、このような情報を与える可能性の高い画像データの生成画素データに対する影響を小さくすることができる。この結果、生成画像の画質低下を低減することができる。
【0014】
本発明の第1の態様に係る画像処理装置において、前記高解像度画像生成手段は、前記生成される高解像度画像データが表す画像を構成する画素の位置を設定する画素設定手段と、前記設定された位置における画素値であって、前記補正された複数の画像データの中の一の画像データに基づいて算出される画素値である単一画像参照画素値を、各画像データごとにそれぞれ算出する単一画像参照画素値算出手段と、前記重み付けを用いて算出される前記単一画像参照画素値の重み付き平均値を画素値として、前記設定された位置における画素データを生成する画素データ生成手段とを備えても良い。
【0015】
かかる場合には、各画像データに基づいて算出された単一画像データ参照値について、上述した重み付けを用いた重み付き平均値を算出する。そして、生成データを構成する画素データの画素値には、算出された重み付き平均値が用いられる。したがって、画素データの生成において、生成画像の画質を低下させる可能性の高い画像データの影響が小さくなる。この結果、生成画像の画質低下を低減することができる。
【0016】
本発明の第1の態様に係る画像処理装置は、さらに、前記指標の値と前記重み付けの値との対応関係が予め記録されたテーブルを記憶する記憶手段を備え、前記重み付けは、前記テーブルを参照して設定されても良い。また、前記重み付けは、前記指標と前記重み付けとの間の関係を示す所定の関係式を用いて設定されても良い。かかる場合には、テーブルを参照して、あるいは、所定の関係式を用いて簡単に、上述した重み付けを用いた高解像度画像データの生成を実行できる。
【0017】
本発明の第1の態様に係る画像処理装置において、前記複数の画像データの合成は、前記補正された複数の画像データの中の一の画像データであって、その画像データの表す画像の各画素が、生成される高解像度画像データの表す画像の座標空間において、前記補正された複数の画像データの中の他の画像データの表す画像の各画素と同一の座標に位置する重複画像データが存在する場合には、前記高解像度画像データの生成は、前記重複画像データを用いないで実行されても良い。一の画像データの表す画像の各画素と他の画像データの表す画像の各画素が、生成される高解像度画像データの表す画像の座標空間において、同一の座標に位置する場合、すなわち、画素位置が重複する場合、このような画像データを2つとも合成しても生成画像データの高解像度化に貢献しない。このような、重複画像データが存在する場合には、重複画像データを用いないでデータの高解像度画像データの生成を実行することにより、高解像度画像データの生成に係る処理負荷の軽減を図ることができる。また、合成に使用する画像データが少なくなることで、2重像となる危険性も低減することができる。
【0018】
本発明の第1の態様に係る画像処理装置において、前記他の画像データが表す画像と前記一の画像データが表す画像との間における前記補正量が、所定の判定条件を満たす場合に、前記一の画像データは前記重複画像データであると判断しても良い。かかる場合には、算出された各画像間における補正量を用いて、簡便に重複画像データが存在するか否かを判断することができる。
【0019】
本発明の第2の態様は、それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理方法を提供する。本発明の第2の態様に係る画像処理方法は、前記複数の画像データを取得し、前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出し、前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正し、前記高解像度画像データの生成に用いた場合に前記生成される高解像度画像データが表す画像の画質を低下させる可能性が大きい画像データほど小さく、前記可能性が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定し、前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成することを特徴とする。
【0020】
本発明の第3の態様は、それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理方法を提供する。本発明の第3の態様に係る画像処理方法は、前記複数の画像データを取得し、前記複数の画像データが表す各画像間における被写体を補正するための補正量を算出し、前記複数の画像データの中から選択された基準画像データに対する各画像データの時間的距離が大きい画像データほど小さく、前記時間的距離が小さい画像データほど大きい重み付け、前記複数の画像データの中から選択された基準画像データが表す画像と各画像データが表す画像との間における前記補正量が大きい画像データほど小さく、前記補正量が小さい画像データほど大きい重み付け、の少なくとも1つの重み付けを前記複数の画像データのそれぞれについて設定し、前記算出された補正量に基づいて、前記複数の画像データについて前記位置ずれを補正すると共に、前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成することを特徴とする。
【0021】
本発明の第4の態様は、それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理方法を提供する。本発明の第4の態様に係る画像処理方法は、前記複数の画像データを取得し、前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出し、前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正し、前記生成される高解像度画像データを構成する生成画素データごとに設定されるものであって、前記補正された各画像データを構成する前記画素データのうち前記生成画素データの最近接にある画素データと、前記生成画素データとの画素間距離を算出し、前記画素間距離が大きい画像データほど小さく、前記画素間距離が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定し、前記設定された重み付けと前記各画像データを用いて、生成画素データの画素値を算出することによって、前記高解像度画像データを生成することを特徴とする。
【0022】
本発明の第5の態様は、それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理をコンピュータに実行させるコンピュータプログラムを提供する。本発明の第5の態様に係るコンピュータプログラムは、前記複数の画像データを取得する画像データ取得機能と、前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出する補正量算出機能と、前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正する位置ずれ補正機能と、前記高解像度画像データの生成に用いた場合に生成される前記高解像度画像データが表す画像の画質を低下させる可能性が大きい画像データほど小さく、前記可能性が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定する重み付け設定機能と、前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成する高解像度画像生成機能とをコンピュータに実現させることを特徴とする。
【0023】
本発明の第2〜第4の態様に係る画像処理方法および本発明の第5の態様に係るコンピュータプログラムによれば、本発明の第1の態様に係る画像処理装置と同様の作用効果を得ることができる。また、本発明の第2の態様に係る画像処理方法および本発明の第3の態様に係るコンピュータプログラムは、本発明の第1の態様に係る画像処理装置と同様にして種々の態様にて実現され得る。また、本発明の第3の態様に係るコンピュータプログラムは、コンピュータプログラムを記録したコンピュータが読み取り可能な記録媒体としても実現され得る。
【発明を実施するための最良の形態】
【0024】
以下、本発明にかかる画像処理装置について、図面を参照しつつ、実施例に基づいて説明する。
【0025】
A.第1の実施例
・画像処理システムの構成:
図1は、本発明の第1の実施例に係る画像処理装置を含む画像処理システムの一例を示す説明図である。本発明の第1の実施例に係る画像処理装置を適用可能な画像処理システムの構成について図1を参照して説明する。
【0026】
画像処理システムは、画像データを生成する撮像装置としてのディジタルビデオカメラ10、ディジタルビデオカメラ10にて生成された複数の画像データから、高解像度の画像データを生成する画像処理装置としてのパーソナルコンピュータ20、画像データを用いて画像を出力する出力装置としてのカラープリンタ30を備えている。また、出力装置としては、プリンタ30の他に、例えば、LCDディスプレイのモニタ25、表示装置40が用いられ得る。
【0027】
ディジタルビデオカメラ10は、設定されたフレームレートで、時系列に並ぶ複数の画像データGD1〜GDn(以下、フレーム画像データという。)を生成するカメラである。画像データは、光の情報をディジタルデバイス(CCDや光電子倍増管)に結像させ、デジタル信号に変換することによって生成される。ディジタルビデオカメラ10は、生成された複数のフレーム画像データGD1〜GDnを1つの画像ファイルGF(動画ファイル)として、光学ディスクLD(例えば、DVD−RAM等)に保存する。もちろん、画像ファイルGFの保存には、光学ディスクLDのみならず、デジタルビデオテープや、メモリカードMC等、種々の記録媒体が用いられ得る。
【0028】
パーソナルコンピュータ20は、一般的に用いられるタイプのコンピュータであり、高解像度の画像データを生成する処理を含む画像処理プログラムを実行するCPU200、CPU200における演算結果、画像データ等を一時的に格納するRAM201、画像処理プログラムを格納するハードディスクドライブ(HDD)202を備えている。パーソナルコンピュータ20は、DVD等の光学ディスクLD用のディスクドライブ205、メモリカードMCを装着するためのカードスロット203、ディジタルビデオカメラ10からの接続ケーブルを接続するための入出力端子204を備えている。
【0029】
プリンタ30は、画像データをカラー画像として出力可能なプリンタであり、例えば、シアン、マゼンタ、イエロー、ブラックの4色の色インクを印刷媒体上に噴射してドットパターンを形成することによって画像を形成するインクジェット方式のプリンタである。あるいは、カラートナーを印刷媒体上に転写・定着させて画像を形成する電子写真方式のプリンタである。色インクには、上記4色に加えて、ライトシアン(薄いシアン)、ライトマゼンタ(薄いマゼンタ)、レッド、ブルーを用いても良い。
【0030】
表示装置40は、画像データの画像を表示するための表示ディスプレイ45を有し、例えば、電子式の写真フレームとして機能する表示装置である。表示ディスプレイ45は、例えば、液晶表示ディスプレイ、有機EL表示ディスプレイが用いられ得る。
【0031】
プリンタ30および表示装置40は、スタンドアローンにて画像処理、画像出力を実行するため、パーソナルコンピュータ20が備える画像処理機能を備えても良い。かかる場合には、プリンタ30、表示装置40は、パーソナルコンピュータ20を介さずに、例えば、メモリーカードMC等の記憶媒体、あるいは、ケーブルを介してディジタルビデオカメラ10から画像データを取得し、プリンタ30、表示装置40がそれぞれ本実施例における画像処理装置として機能することができる。
【0032】
以下の説明では、ディジタルビデオカメラ10で生成された画像データが、パーソナルコンピュータ20に送出され、パーソナルコンピュータ20にて高解像度の画像データを生成する画像処理が実行される場合について説明する。
【0033】
・パーソナルコンピュータ20の機能的構成:
図2は、本実施例に係るパーソナルコンピュータ20(CPU200)の機能ブロック図である。図2を参照してパーソナルコンピュータ20(CPU200)の機能的構成の概要について説明する。
【0034】
画像データ取得部M210は、画像ファイルGFに記録されたフレーム画像データGD1〜GDnの中から選択された時系列に並ぶ複数のフレーム画像データを取得する。
【0035】
補正量算出部M220は、画像データ取得部M210が取得した複数のフレーム画像データが表す各画像間に生じている位置ずれ(以下、単に、位置ずれという。)を補正するための補正量(以下、単に、位置ずれ補正量という。)を算出する。そして、位置ずれ補正部M230は、補正量算出部M220から取得した位置ずれ補正量を用いて、上述した位置ずれを補正する。
【0036】
重み付け設定部M240は、複数のフレーム画像データごとに重み付けW(a,i)を設定する。重み付け設定部M240は、画素間距離別重み付け設定部M241、時間的距離別重み付け設定部M242、位置ずれ量別重み付け設定部M243を備える。画素間距離別重み付け設定部M241、時間的距離別重み付け設定部M242、位置ずれ量別重み付け設定部M243によって、それぞれ、画素間距離を考慮した画素間距離別重み付けWs(a,i)、時間的距離を考慮した時間的距離別重み付けWt(a)、位置ずれ補正量の大きさを考慮した位置ずれ量別重み付けWu(a)が設定される。これらの3つの重み付けWs(a,i)、Wt(a)、Wu(a)を要素として、最終的な重み付けW(a,i)が設定される。これらの重み付けW(a,i)、Ws(a,i)、Wt(a)、Wu(a)については、後述する。
【0037】
高解像度画像生成部M250は、重み付け設定部M240から取得した重み付けW(a,i)を用いて、複数のフレーム画像データを合成して、フレーム画像データより解像度の高い高解像度画像データ(生成データ)を生成する。高解像度画像生成部M250は、画素設定部M251と、単一画像参照画素値算出部M252、画素データ生成部M253を備える。
【0038】
画素設定部M251は、生成データが表す画像G(生成画像)を構成する画素の位置を設定する。すなわち、生成画像の注目画素G(i)を設定する。単一画像参照画素値算出部M252は、複数のフレーム画像データの中の一のデータに基づいて算出される注目画素G(i)の画素値(以下、単一画像参照画素値という。)を、各フレーム画像データごとにそれぞれ算出する。画素データ生成部M253は、最終的に注目画素G(i)の画素値を生成し、注目画素G(i)の画素データを生成する。重み付けW(a,i)を用いて算出される単一画像参照画素値の重み付き平均値が、最終的に注目画素G(i)の画素値とされる。
【0039】
・パーソナルコンピュータ20における画像処理:
図3〜図14を参照してパーソナルコンピュータ20において実行される画像処理について説明する。
【0040】
図3は、本実施例に係る画像処理の処理ルーチンを示すフローチャートである。パーソナルコンピュータ20(CPU200)は、ユーザーの指示に従って、本画像処理のプログラムを起動する。CPU200は、ユーザの指示に従って光学ディスクLD等から画像ファイルGFを読み出し、画像ファイルGFに記録されたフレーム画像データGD1〜GDnが表す動画像を再生する。
【0041】
動画像の再生中に、ユーザによってフレーム画像データの取得指示が入力されると、CPU200は、動画像データMDを構成するフレーム画像データGD1〜GDnの中から、連続する複数のフレーム画像データを取得する(ステップS10)。各フレーム画像データは、ドットマトリクス状の各画素の階調値(以下、「画素値」とも呼ぶ。)を示す階調データ(以下、「画素データ」とも呼ぶ。)で構成されている。画素データは、3つの画素値Y(輝度)、Cb(ブルーの色差)、Cr(レッドの色差)からなるYCbCrデータや、3つの画素値R(レッド)、G(グリーン)、B(ブルー)からなるRGBデータ等が用いられ得る。本実施例では、CPU200は、ユーザーに指示されたフレーム画像データと、そのフレームと時系列に並ぶ前後10フレーム分ずつのフレーム画像データ(合計21フレーム分)を取得するものとする。CPU200は、取得した21個のフレーム画像データをRAM201に一時的に格納する。
【0042】
以下の説明では、取得した21個のフレーム画像データの番号(以下、「フレーム番号」とも呼ぶ。)をaとし、フレーム番号aのフレーム画像データをフレーム画像データF(a)(a=-10〜+10)と呼ぶこととする。そして、フレーム画像データF(a)が表す画像を画像f(a)(a=-10〜+10)と呼ぶこととする。また、ユーザーにより選択されたフレーム画像データF(0)、すなわち、取得された21個のフレーム画像データF(a)のうち時系列的に中間にあるフレーム画像データF(0)を、特に基準フレーム画像データとも呼ぶこととする。
【0043】
ユーザによって、取得したフレーム画像について、高解像度の静止画像を生成する指示が入力されると、まず、CPU200は、21個のフレーム画像データF(a)が表す各画像間における被写体の位置ずれ(以下、単に位置ずれという。)を解消する補正(以下、位置ずれ補正という。)のための補正量を算出する(ステップS20)。ここで、位置ずれおよび位置ずれ補正について説明しておく。
【0044】
図4は、基準フレーム画像データF(0)が表す画像f(0)とそれ以外の一のフレーム画像データF(a)が表す画像f(a)間の位置ずれを示す説明図である。また、図5は、基準フレーム画像データF(0)を基準として、フレーム画像データF(a)に対して行う位置ずれ補正について示す説明図である。位置ずれ補正量を算出するにあたっては、基準フレーム画像データF(0)を基準とする。すなわち、フレーム画像データF(0)に対する位置ずれ補正量を、前後10ずつ計20個のフレーム画像データF(a )(a=-10〜-1,1〜10)について、それぞれ算出するものとする。
【0045】
位置ずれは、画像の横方向および縦方向の並進のずれ(以下、単に、並進ずれという。)と、画像の中心を軸とした回転のずれ(以下、単に、回転ずれという。)との組み合わせで表される。図4では、基準となる画像f(0)に対する、画像f(a)のずれ量を分かり易く示すため、画像f(0)の縁と、画像f(a)の縁とを重ねて示すとともに、画像f(0)が表す画像上の中心位置に仮想の十字画像X0を追記し、この十字画像X0が、画像f(a)と同様にずれたとして、画像f(a)上に、ずれた結果の画像である十字画像Xaを示すようにしている。更に、このずれ量を、より分かり易く示すために、画像f(0)および十字画像X0を太い実線で示すとともに、画像f(a)および十字画像Xaを細い破線で示すようにしている。
【0046】
本実施例では、図4に示すように、並進ずれ量として横方向を「um」、縦方向を「vm」と表し、回転ずれ量を「δm」と表し、画像f(a)の画像f(0)に対するずれ量を「uma」、「vma」、「δma」と表すこととする。例えば、基準フレーム画像データF(0)の画像f(0)より時系列的に3つ後のフレーム画像データF(3)が表す画像f(3)の、画像f(0)に対するずれ量は、um3、vm3、δm3と表される。
【0047】
また、補正とは、画像の各画素の位置を、横方向にuの移動、縦方向にvの移動、およびδの回転を施した位置に移動させるように、フレーム画像データにおいて各画素データの座標を変換することを意味する。uは、横方向の並進補正量を表し、vは、縦方向の並進補正量を表している。そして、δは、回転補正量を表している。
【0048】
フレーム画像データF(0)に対するフレーム画像データF(a)の位置ずれ補正量を「ua」、「va」、「δa」と表すこととすると、位置ずれ補正量と、上述した位置ずれとの間には、ua=−uma、va=−vma、δa=−δmaの関係が成り立つ。例えば、フレーム画像F(3)についての位置ずれ補正量u3、v3、δ3は、u3=−um3、v3=−vm3、δ3=−δm3で表される。
【0049】
以上説明したように、例えば、図5に示すように、位置ずれ補正量ua、va、δaを用いて、フレーム画像データF(a)に対して補正を実行するすることにより、画像f(a)と基画像f(0)の被写体を互いに一致させることができる。すなわち、補正後のフレーム画像データF(a)が表す画像f(a)と、画像f(0)とを重ね合わせると、図5に示すように、補正後の画像f(a)は、画像f(0)に対して部分一致する。なお、この補正の結果を分かり易く示すため、図5においても、図4と同じ仮想の十字画像X0および十字画像Xaを表記しており、図5に示すように、補正の結果として、十字画像Xaは十字画像X0と一致することとなる。
【0050】
なお、上述の「部分一致する」とは、以下のことを意味するものである。すなわち、図5に示すように、例えば、ハッチングを施した領域P1は、画像f(a)にのみ存在する領域であり、画像f(0)には、該当する領域は存在しない。このように、上述の補正を行ったとしても、ずれに起因して、画像f(0)にのみ、または、f(a)にのみ存在する領域が生じてしまうため、画像f(a)は、画像f(0)に対して完全一致することはなく、部分一致することとなる。
【0051】
図3に戻って、位置ずれ補正量ua、va、δaの算出処理について説明する。後に生成される生成画像Gにおいて十分な画質を確保するためには、位置ずれ補正量は、画像f(a)の画素単位より細かい精度(いわゆるサブピクセルレベルの精度)で算出される必要がある。例えば、並進補正量ua、vaは、1/16画素単位で、回転補正量δaは、1/100度単位で算出される。従って、位置ずれ補正量の算出には、画素単位よりも細かい精度で補正量を算出可能な解析手法が用いられる。本実施例では、CPU200は、補正対象であるフレーム画像データF(a)と基準となるフレーム画像データF(0)の各画素データの画素値(例えば輝度値)を用いて、勾配法(グラディエント法)を実行することによって、位置ずれ補正量を算出する。以下では、先ず、勾配法について説明する。
【0052】
図6および図7を参照して、勾配法について説明する。図6は、勾配法による位置ずれ補正量の算出方法について説明する第1の説明図である。図7は、勾配法による位置ずれ補正量の算出方法について説明する第2の説明図である。図6において、黒い丸は、基準となる画像f(0)の画素を表し、例えば、(x1i、y1i)は、画像f(0)の中心を原点とする直交座標上における画素の座標を表している。そして、白い丸は、画像f(0)と部分一致するように重ねられた画像f(a)の画素P_tar(x2i、y2i)を表し、座標(x2i,y2i)は、画像f(a)の中心を原点とする直交座標上における座標を表している。以下、画素P_tar(x2i、y2i)を着目画素iとして説明を進める。着目画素P_tar(x2i、y2i)は、画像f(0)と部分一致するように重ねられた場合に、画像f(0)の画素P_ref(x1i、y1i)の近傍の位置(x1i+Δxi、y1i+Δyi)に位置すると仮定する。ここで、iは、各画素を区別する番号である。
【0053】
まず、着目画素P_tar(x2i、y2i)に対応する画像f(0)の画素P_ref(x1i、y1i)と、その上下左右にある4つの画素P_ref(x1i+1、y1i)、P_ref(x1i-1、y1i)、P_ref(x1i、y1i+1)、P_ref(x1i、y1i-1)が、参照画素として選択される。
【0054】
図7(a)は、画像f(a)と画像f(0)とを部分一致するように重ねた場合において、着目画素P_tar(x2i、y2i)と画素P_ref(x1i、y1i)とのx1軸上の距離Δxiを推定する方法を示している。まず、画素P_ref(x1i、y1i)と、左右に隣接する画素P_ref(x1i-1、y1i)、P_ref(x1i+1、y1i)の輝度値B_ref(x1i、y1i)、B_ref(x1i-1、y1i)、B_ref(x1i+1、y1i)とを用いて、輝度勾配ΔBxiが算出される。ΔBxiは、図7(a)において直線R1の傾きで表される量で、画素P_ref(x1i、y1i)の近傍における輝度勾配である。例えば、3つの画素値を用いて、近似直線を求めてその傾きをΔBxiとして用いても良いし、単に、左右の画素値を結ぶ直線の傾き{B_ref(x1i+1、y1i)−B_ref(x1i-1、y1i)}/2をΔBxiとして用いても良い。
【0055】
そして、着目する画素P_tar(x2i、y2i)の輝度値B_tar(x2i、y2i)が、図7(a)に示す直線R1上にあるものと仮定すると、
ΔBxi・Δxi=B_tar(x2i、y2i)−B_ref(x1i、y1i)が成立する。ここで、B_tar(x2i、y2i)およびB_ref(x1i、y1i)を単にB_tar、B_refで表すと、
ΔBxi・Δxi - (B_tar - B_ref)= 0 …(1)
が成立する。
【0056】
図7(b)は、画像f(a)と画像f(0)とを部分一致するように重ねた場合において、着目画素P_tar(x2i、y2i)と画素P_ref(x1i、y1i)とのy1軸上の距離Δyiを推定する方法を示している。上述したΔxの推定と同様の手法により、
ΔByi・Δyi - (B_tar - B_ref)= 0 …(2)
の式が導ける。ここで、式(1)、および、式(2)を満たすΔxi、Δyiを求めれば、着目画素P_tar(x2i、y2i)の画像f(0)上における位置がわかることになる。
【0057】
この考え方を拡張して、画像f(a)を構成する全ての画素について、共通する補正量(ua、va、δa)を求めるには、最小自乗法を用いて、以下のS2を最小にすることを考えれば良い。
S2=Σ{ΔBxi・Δxi+ΔByi・Δyi−(B_tar - B_ref)}2 ...(3)
【0058】
ここで、補正量(ua、va、δa)と、各画素iについてのΔxi、Δyiとの関係について考える。図8は、画素の回転補正量を模式的に示す説明図である。画像f(0)の座標(x1,y1)の原点Oからの距離をrとし、x1軸からの回転角度をθとすると、r,θは、下式で表される。
r=(x12+y12)1/2 …(4)
θ=tan-1(y1/x1) …(5)
【0059】
ここで、画像f(a)は、画像f(0)に対する並進ずれはなく、回転ずれのみが発生しているものとし、画像f(a)における座標(x2,y2)の画素が、画像f(0)上の座標(x1,y1)の位置から回転補正量δだけ回転した座標(x1',y1')にあるとする。この回転補正量δaによるx1軸方向の移動量Δxとy1軸方向の移動量Δyは、下式により求められる。
Δx=x1'−x1≒−r・δa・sinθ=−δa・y1 …(6)
Δy=y1'−y1≒r・δa・cosθ=δa・x1 …(7)
【0060】
したがって、上記式(3)における各画素iについてのΔxi、Δyiは、補正量(u,v、δ)を用いて、下式のように表すことができる。
Δxi=ua−δa・y1i …(8)
Δyi=va+δa・x1i …(9)
ここで、x1iおよびy1iは、画像f(0)における画素P_ref(x1i、y1i)の座標である。
【0061】
上記式(8),(9)を上記式(3)に代入すると、下式が得られる。
S2=Σ{ΔBxi・(ua−δa・y1i)+ΔByi・(va+δa・x1i)−(B_tar - B_ref)}2 …(10)
【0062】
すなわち、画像f(a)の全画素について、対応する座標値と輝度値を式(18)に代入したときに、S2を最小にする補正量(ua,va,δa)を最小自乗法によって求めることができる。
【0063】
ここで、図6に戻って説明を続ける。位置ずれ補正量が、20個の画像f(a)(a=-10〜-1,1〜10)の全てについて算出されると、CPU200は、算出された位置ずれ補正量を用いて、フレーム画像データF(a)(a=-10〜-1,1〜10)に対して位置ずれ補正を実行する(ステップS30)。この結果、画像f(a)(a=-10〜-1,1〜10)と基準となる画像f(0)の計21個の画像を、部分一致するように重ね合わせることができる(図5参照)。
【0064】
CPU200は、続いて、重ね合わせた21個のフレーム画像データF(a)を合成して、フレーム画像データF(a)より高解像度の画像を表す画像データ(以下、高解像度画像データという。)を生成する処理(以下、高解像度画像合成処理という。)を実行する(ステップS40)。
【0065】
図9は、高解像度画像合成処理の処理ルーチンを示すフローチャートである。CPU200は、高解像度画像合成処理を開始すると、先ず、生成する高解像度画像データ(以下、生成データという。)が表す画像(以下、生成画像という。)Gを構成する画素の位置を設定する。そして、位置を設定した画素のうち画素データを生成する注目画素G(i)を設定する(ステップS401)。iは、各画素を区別する番号である。ここで、生成画像Gおよび生成画像Gを構成する画素について説明しておく。
【0066】
図10は、基準となる画像f(0)と画像f(1)〜f(3)とを、位置ずれ補正して部分一致するように重ね合わせた一例を拡大して示す説明図である。実際には、21個の画像を重ね合わせるが、図10においては、図を解りやすくするため、f(0)〜f(3)の4つの画像のみを示し、他の画像については示していない。図10では、生成画像Gの各画素が黒丸で示されているとともに、画像f(0)の各画素が白抜きの四辺形で示され、画像f(1)〜f(3)の各画素が、ハッチングを施した四辺形で示されている。なお、生成画像Gの画素密度は、画像f(0)に対して、縦横1.5倍密に設定されるものとする。また、生成画像Gの各画素は、2画素おきに画像f(0)の各画素に重なる位置にあるものとする。ただし、生成画像Gの画素が、必ずしも画像f(0)の各画素に重なる位置にある必要はない。例えば、生成画像Gの各画素のすべてが、画像f(0)の各画素の中間に位置する等、種々の位置とすることができる。また、生成画像Gの画素密度も、縦横1.5倍に限定されるものではなく、自由に設定することができる。
【0067】
高解像度画像合成処理では、上述した生成画像Gを構成する全ての画素を順番に注目画素として、それぞれ画素値を算出して画素データを生成していく。注目画素G(i)は、例えば、生成画像Gの左上端の画素から右上端の画素まで、次に1つ下の列の左端の画素から右端の画素までという順番に設定される。以下では、図10の中央に位置する画素を注目画素G(i)として設定した場合を例に説明を進める。
【0068】
注目画素G(i)が設定されると、CPU200は、参照するフレーム画像データF(a)を設定する(ステップS402)。本処理では、1つの注目画素G(i)の画素値を算出するにあたり、合成に用いるフレーム画像データF(a)を順番に1つずつ参照していく。例えば、フレーム画像データF(-10)から順番に、F(-9),F(-8),F(-7),....,F(9),F(10)と設定すれば良い。
【0069】
CPU200は、次に、設定された一のフレーム画像データ(以下、参照画像データという。)F(a)に基づいて、注目画素G(i)の画素値Ia(a,i)を算出する(ステップS403)。以下、画素値Ia(a,i)を単一画像データ参照値と呼ぶ。単一画像データ参照値Ia(a,i)は、バイ・リニア法等の補完処理によって算出される。
【0070】
図11は、バイ・リニア法による補間処理について示す説明図である。CPU200は、図11に示すように、画像f(a)を構成する画素であって注目画素G(i)を囲む4つの画素f(a,j),f(a,j+1),f(a,k),f(a,k+1)で区画される領域を、注目画素G(i)で4つの区画に分割する。そして、CPU200は、4つの画素f(a,j),f(a,j+1),f(a,k),f(a,k+1)の画素値を、それぞれの画素の対角に位置する区画の面積比によって重み付けして加算することにより、単一画像データ参照値Ia(a,i)を算出する。なお、画素f(a,j)は、f(a)のj番目の画素を示している。kはj番目の画素に画像f(a)の横方向の画素数を加えた画素の番号を示している。
【0071】
なお、画素値補間処理の方法については、バイ・リニア法の他、バイ・キュービック法、ニアレストネイバ法等の種々の補間方法を用いることができる。
【0072】
CPU200は、続いて、生成データを合成する際に、算出した単一画像データ参照値Ia(a,i)に対して用いる重み付けW(a,i)を算出する(ステップS404)。重み付けW(a,i)は、各フレーム画像データF(a)を生成画像データの生成に用いた場合に、生成画像Gの画質を低下させる可能性が大きいフレーム画像データF(a)ほど小さく、可能性が小さいフレーム画像データF(a)ほど大きく設定される。重み付けW(a,i)の設定には、各フレーム画像データF(a)と関連付けられた指標であって、生成画像Gの画質を低下させる可能性の大きさを表す指標(以下、単に、指標という。)を用いて実行される。
【0073】
具体的には、重み付けW(a,i)は、画素間距離別重み付けWs(a,i)と、時間的距離別重み付けWt(a)と、位置ずれ量別重み付けWu(a)を用いて、以下の式(11)によって与えられる。
W(a,i) = Ws(a,i) × Wt (a) × Wu(a) …(11)
画素間距離別重み付けWs(a,i)と、時間的距離別重み付けWt(a)と、位置ずれ量別重み付けWu(a)は、それぞれ、算出に用いられる指標が異なる。以下、これらの重み付けについて説明する。
【0074】
画素間距離別重み付けWs(a,i)は、注目画素G(i)と、画像f(a)の画素であって注目画素G(i)の最近接にある画素(図11において、記号F(a,j)で示す画素)との画素間距離(図11において記号L(a,i)で示す距離)を上述した指標として、設定される重み付けである。したがって、画素間距離別重み付けWs(a,i)は、注目画素G(i)ごとに、そして、参照するフレーム画像データF(a)ごとに、それぞれ異なる値となる。
【0075】
図12は、画素間距離別重み付けWs(a,i)の算出について説明する説明図である。画素間距離別重み付けWs(a,i)は、画素間距離L(a,i)が大きいほど小さく、画素間距離L(a,i)が小さいほど大きく設定される。例えば、図12(a)に示すように、画素間距離L(a,i)の増加に対して、画素間距離別重み付けWs(a,i)は直線的に減少することとしても良い。ただし、Wsは負の値を取れないので、所定の画素間距離以上では、重み付けWs(a,i) = 0とする。また、図12(b)に示すように、指数関数(例えば、式(12))を用いて、画素間距離別重み付けWs(a,i)を算出しても良い。
Ws(a,i) = exp{-L(a,i)/α}(αは定数) …(12)
【0076】
時間的距離別重み付けWt(a)は、合成の基準となるフレーム画像データF(0)と、参照するフレーム画像データF(a)との時間的距離を上述した指標として、設定される重み付けである。時間的距離とは、一のフレーム画像データの生成時と他のフレーム画像データの生成時との時間差を意味する。時間的距離は、フレーム番号が時系列的に順番に振られていれば、基準となるフレーム画像データF(0)のフレーム番号と、参照するフレーム画像データF(a)のフレーム番号の差分で表すことができるので、時間的距離別重み付けWt(a)は、結局、フレーム番号aの関数として定まる値である。
【0077】
図13は、時間的距離別重み付けWt(a)の算出について説明する説明図である。時間的距離別重み付けWt(a)、時間的距離が大きいほど小さく、時間的距離が小さいほど大きく設定される。すなわち、フレーム番号aの絶対値|a|が大きいほど小さく、小さいほど大きく設定される。例えば、図13(a)に示すように、|a|の増加に対して、時間的距離別重み付けWt(a)は直線的に減少することとしても良い。また、図13(b)に示すように、正規分布関数を用いて、時間的距離別重み付けWt(a)を算出しても良い。
【0078】
図14は、時間的距離別重み付けWt(a)を記録したテーブルを示す概略図である。時間的距離別重み付けWt(a)は、結局、フレーム番号aごとに定まる値であるので、図13において記号Pt1またはPt2で示す数値とフレーム番号との対応関係を、予めテーブルとしてプログラム内に記録しておいても良い。この場合は、CPU200は、テーブルを参照することによって、時間的距離別重み付けWt(a)を取得する。
【0079】
位置ずれ量別重み付けWu(a)は、ステップS20において算出された基準画像f(0)に対する参照とする画像f(a)の位置ずれ補正量(ua,va,δa)の大きさΔM(a)を上述した指標として、設定される重み付けである。位置ずれ補正量の大きさΔM(a)には、例えば、並進ずれに対応する補正量のみを考慮して、以下の式(13)により算出することができる。
ΔM(a) = (ua2+va2)1/2 …(13)
もちろん、回転ずれに対応する補正量δaも考慮しても良い。
【0080】
位置ずれ量別重み付けWu(a)は、位置ずれ補正量の大きさΔM(a)が大きいほど小さく、位置ずれ補正量の大きさΔM(a)が小さいほど大きく設定される。例えば、第1の補正量Ws(a,i)と同様に、位置ずれ補正量ΔM(a)の増加に対して、位置ずれ量別重み付けWu(a)は直線的に減少することとしても良いし、指数関数(例えば、式(14))を用いて、画素間距離別重み付けWs(a,i)を算出しても良い。
Wu(a) = exp{-ΔM(a)/β}(βは定数) …(14)
【0081】
以上説明したように、CPU200は、式(11)〜(14)を用いて、重み付けW(a,i)を算出することができる。
【0082】
図9に戻って説明を続ける。CPU200は、重み付けW(a,i)を算出すると、21個の全てのフレーム画像データF(a)を参照したか否かを判断する(ステップS405)。まだ参照していないフレーム画像データF(a)があると判断した場合(ステップS405:NO)には、CPU200は、ステップS402に戻ってそのフレーム画素データを参照して、上述したステップS403〜S404を繰り返す。
【0083】
全てのフレームデータを参照したと判断した場合(ステップS405:YES)には、CPU200は、最終的に注目画素G(i)の画素値I(i)を算出して注目画素G(i)の画素データを生成する処理(ステップS406)に移る。この時点で、上述したS403〜S404の繰り返しによって、注目画素G(i)について、各フレーム画像データF(a)(a = -10〜+10)のそれぞれを参照した合計21個の単一画像データ参照値Ia(a,i)と、これにそれぞれ対応する21個の重み付けW(a,i)が算出されている。注目画素G(i)の最終的な画素値I(i)は、21個の単一画像データ参照値Ia(a,i)の重み付き平均値として与えられる。具体的には、CPU200は、これらの値を以下の式(15)に代入することによって、注目画素G(i)の最終的な画素値I(i)を算出する。
【0084】
【数1】
【0085】
式(15)の分母は、重み付けの総和が1になるように規格化する係数である。従って、重み付けW(a,i)は、絶対値自体には意味はなく、各重み付け間の相対的な比率にのみ意味があるものである。CPU200は、注目画素G(i)の最終的な画素値I(i)を算出すると、その注目画素G(i)については処理を終了する。
【0086】
CPU200は、次に、生成画像Gを構成する全ての画素について画素値I(i)を算出したか否かを判断する(ステップS407)。まだ画素値I(i)が生成されていない画素が存在すると判断した場合(ステップS407:NO)には、CPU200は、ステップS401に戻って、画素値I(i)が生成されていない画素を新たな注目画素G(i)に設定して、上述したステップS402〜S406を繰り返す。
【0087】
全ての画素について、画素値I(i)が生成されたと判断した場合(ステップS407:YES)には、CPU200は、本処理を終了する。この結果、高解像度画像データ(生成データ)の生成が完了したことになる。生成された高解像度画像データは、プリンタ30によって印刷画像として出力される、あるいは、表示装置40やモニタ25によって表示画像として出力される等、ユーザーの利用に供される。
【0088】
以上説明したように、本実施例に係る画像処理によれば、複数のフレーム画像データF(a)を合成して、より高解像度の画像データ(生成データ)を生成する際、生成データの各画素データは、重み付けW(a,i)を用いた単一画像データ参照値Ia(a,i)の重み付き平均値として求められる。言い換えれば、重み付けW(a,i)は、生成データに対する一のフレーム画像データF(a)の寄与度を表す値である。したがって、重み付けW(a,i)を調整すれば、生成データにおける各フレーム画像データの影響を、フレーム画像データF(a)ごとに変化させることができる。そして、重み付けW(a,i)は、各フレーム画像データが、生成画像Gの画質を低下させる可能性が大きい画像データほど小さく、可能性が小さい画像データほど大きく設定される。この結果、生成画像Gの画質を低下させる可能性の高いフレーム画像データF(a)が生成データに与える影響が小さくなる。したがって、生成画像Gの画質低下を低減することができる。また、重み付けW(a,i)は、生成画像Gの画質を低下させる可能性の大きさを表す指標を用いることによって、適切に設定される。
【0089】
さらに、重み付けW(a,i)について具体的に述べると、重み付けW(a,i)には、上述した画素間距離L(a,i)を上述した指標として設定される画素間距離別重み付けWs(a,i)が成分として含まれている。画素間距離L(a,i)が大きいフレーム画像データF(a)は、注目画素G(i)から比較的離れた位置にしか画素を持たないのであるから、このようなフレーム画像データF(a)に基づいて算出された単一画像データ参照値Ia(a,i)は、最終的に生成される注目画素G(i)の画素値I(i)に対して画質低下を引き起こす情報を与えて、生成画像Gの画質を低下させる可能性が高いといえる。画素間距離別重み付けWs(a,i)は、画素間距離L(a,i)が大きいほど小さく、画素間距離L(a,i)が小さいほど大きく設定される。この結果、生成画像Gの画質を低下させる可能性の高いフレーム画像データF(a)が生成データに与える影響が小さくなる。したがって、生成画像Gの画質低下を低減することができる。
【0090】
また、重み付けW(a,i)には、上述した時間的距離(具体的には、フレーム番号の絶対値|a|)を上述した指標として設定される時間的距離別重み付けWt(a)が成分として含まれている。基準となるフレーム画像データF(0)との時間的距離が大きいフレーム画像データF(a)が表す画像f(a)は、基準画像f(0)からみて、上述したいわゆる「動き」が生じている可能性が高くなる。したがって、時間的距離が大きいフレーム画像データF(a)に基づいて算出された単一画像データ参照値Ia(a,i)は、最終的に生成される注目画素G(i)の画素値I(i)に対して画質低下を引き起こす情報(例えば、「動き」が生じている被写体の情報)を与えて、生成画像Gの画質を低下させる可能性が高いといえる。時間的距離別重み付けWt(a)は、フレーム画像データF(0)との時間的距離が大きいほど小さく、時間的距離が小さいほど大きく設定される。この結果、生成画像Gの画質を低下させる可能性の高いフレーム画像データF(a)が生成データに与える影響が小さくなる。したがって、生成画像Gの画質低下を低減することができる。
【0091】
また、重み付けW(a,i)には、上述した位置ずれ補正量の大きさΔM(a)を上述した指標として設定される位置ずれ量別重み付けWu(a)が成分として含まれている。基準となるフレーム画像データF(0)との位置ずれ補正量が大きいフレーム画像データF(a)が表す画像f(a)は、やはり、基準画像f(0)からみて、上述したいわゆる「動き」が生じている可能性が高くなる。特に、撮像装置が動いたことによって発生する視差により被写体位置が相対的に変化する「動き」が生じる可能性が高くなる。したがって、位置ずれ補正量の大きさΔM(a)が大きいフレーム画像データF(a)に基づいて算出された単一画像データ参照値Ia(a,i)は、やはり、最終的に生成される注目画素G(i)の画素値I(i)に対して画質低下を引き起こす情報を与え、生成画像Gの画質を低下させる可能性が高いといえる。位置ずれ量別重み付けWu(a)は、基準となるフレーム画像データF(0)との位置ずれ補正量の大きさΔM(a)が大きいほど小さく、位置ずれ補正量の大きさΔM(a)が小さいほど大きく設定される。この結果、生成画像Gの画質を低下させる可能性の高いフレーム画像データF(a)が生成データに与える影響が小さくなる。したがって、生成画像Gの画質低下を低減することができる。
【0092】
以上を言い換えれば、本実施例に係る画像処理装置は、各フレーム画像データF(a)が、生成画像Gの画質を低下させる可能性の大きさを表す指標として、1.画素間距離L(a,i) 2.時間的距離|a| 3.位置ずれ補正量の大きさΔM(a)の3つを用いている。そして、これらに応じた適切な重み付けW(a,i)を設定することによって、生成データの合成において、画質低下を起こしやすいフレーム画像データF(a)の合成比率を低く、画質低下を起こしにくいフレーム画像データF(a)の合成比率を高くしている。この結果、生成画像Gの画質低下を抑え、画質の向上を図ることができる。
【0093】
上述した重み付けW(a,i)の算出は、重み付けとリスクの大きさを表す指標との対応関係をが予め記録されたテーブル(図14参照)や、簡便な算出式(式12等参照)を用いて実行されるので、容易かつ迅速に算出可能である。
【0094】
B.第2の実施例:
図15〜図17を参照して、本発明に係る第2の実施例について説明する。第2の実施例に係る画像処理システムの構成およびパーソナルコンピュータ20(CPU200)の機能的構成は、図1および図2を参照して説明した第1の実施例に係る画像処理システムの構成およびパーソナルコンピュータ20(CPU200)の機能的構成と同一であるので、その説明を省略して、以下の説明では同一の符号を用いる。
【0095】
・パーソナルコンピュータ20における画像処理:
図15は、本実施例に係る画像処理の処理ルーチンを示すフローチャートである。図3を参照して説明した第1の実施例に係る画像処理の処理ルーチンと同一のステップについては、図3と同一の符号を付し、その説明を省略する。
【0096】
第1の実施例に係る画像処理と異なる点は、第2の実施例においては、ステップS25で示すフレーム画像データ選択処理が追加されている点である。以下、このフレーム画像データ選択処理について説明する。
【0097】
図16は、フレーム画像データ選択処理の処理ルーチンを示すフローチャートである。本処理が開始されると、CPU200は、注目するフレーム画像データF(a)を設定する(ステップS251)。本処理では、全てのフレーム画像データF(a)に順番に注目し、それぞれのフレーム画像データF(a)について、後のステップS40における高解像度画像合成処理に用いるか否かを判断していく。例えば、フレーム画像データF(-10)から順番に、F(-9),F(-8),F(-7),....,F(9),F(10)と設定すれば良い。
【0098】
CPU200は、続いて、ステップ20において、注目するフレーム画像データF(a)について算出された位置ずれ補正量(ua,va,δa)が、以下の条件式(16)〜(18)を全て満たすか否かを判定する。
|δa|<δ_th …(16)
|B(ua)|<u_th …(17)
|B(va)|<v_th …(18)
【0099】
ここで、B(x)は、それぞれxに最も近い整数とxとの差を表す。例えば、B(1.2)=0.2、B(0.9)=0.1である。δ_th、u_th、v_thは、それぞれ予め設定された閾値であり、例えば、δ_th=0.01(degree)、u_th=1/8(画素単位)、v_th=1/8(画素単位)に設定される。CPU200は、位置ずれ補正量(ua,va,δa)が、以下の条件式(16)〜(18)を全て満たすと判定した場合(ステップS252:YESかつステップS253:YESかつステップS254:YES)には、注目するフレーム画像データF(a)を、高解像度画像合成処理に用いないと判断する(ステップS255)。
【0100】
一方で、CPU200は、位置ずれ補正量(ua,va,δa)が、以下の条件式(16)〜(18)のいずれか1つを満たさないと判定した場合(ステップS252:NOまたはステップS253:NOまたはステップS254:NO)には、注目するフレーム画像データF(a)を、高解像度画像合成処理に用いると判断する(ステップS256)。
【0101】
ここで、高解像度画像合成処理に用いないと判断されるフレーム画像データF(a)と、用いないと判断されるフレーム画像データF(a)のそれぞれについて説明する。図17は、基準となる画像f(0)と画像f(4)、f(5)とを、位置ずれ補正して部分一致するように重ね合わせた一例を拡大して示す説明図である。図17においては、図を解りやすくするため、f(0),f(4),f(5)の3つの画像のみを示し、他の画像については示していない。
【0102】
図17における画像f(4)は、上述した式(16)〜(18)に示す所定の条件を満たし、高解像度画像合成処理に用いないと判断されるフレーム画像データF(a)が表す画像の一例である。画像f(4)の画素と、基準となる画像f(0)の画素とは、生成画像の座標空間(位置ずれ補正後の座標空間)において、同一の座標に位置している。ここで、「同一の座標に位置している」とは、厳密に座標が一致していることを要求する訳ではなく、画素単位より細かい所定の精度(例えば、1/8画素単位)で座標が一致していることを意味する。このような画像を表す画像データ(図17の例では、フレーム画像データF(4))を重複画像データと呼ぶこととする。
【0103】
重複画像データが表す画像(図17の例では、画像f(4))は、生成される高解像度画像G(図17中、黒丸で示す画素からなる画像)に対して、基準画像f(0)と同じ情報を与えるにすぎず、高解像度画像Gの生成に貢献しない。
【0104】
一方、図17における画像f(5)は、高解像度画像合成処理に用いると判断されるフレーム画像データF(a)が表す画像の一例である。画像f(5)の画素は、基準となる画像f(0)と、生成画像の座標空間において、異なる座標に位置している。すなわち、画像f(5)の画素は、基準となる画像f(0)の画素間を埋める位置に存在している。このような画像は、生成される高解像度画像Gに対して、基準画像f(0)とは異なる情報を与えるので、高解像度画像Gの生成に貢献する。
【0105】
図16に戻って説明を続ける。CPU200は、注目するフレーム画像データF(a)を高解像度画像合成処理に用いるか否かを判断すると、20個の全てのフレーム画像データF(a)(a = -10〜-1,+1〜+10)について、上述した判断をしたか否かを判断する(ステップS257)。まだ、判断していないフレーム画像データF(a)があると判断した場合(ステップS257:NO)には、CPU200は、ステップS251に戻ってそのフレーム画像データF(a)に注目して、上述したステップS252〜S256を繰り返す。全てのフレーム画像データF(a)について上述した判断を終えた場合(ステップS257:YES)には、本処理を終了して、図15に示す処理ルーチンにリターンする。
【0106】
以上説明したように、本実施例に係る画像処理装置によれば、第1の実施例に係る画像処理装置と同様の効果に加えて、以下の効果が得られる。高解像度画像Gの生成に貢献しないフレーム画像データである重複画像データが存在する場合には、重複画像データを高解像度画像合成処理(ステップS40)に用いないため、高解像度画像合成処理に係る処理負荷の軽減を図ることができる。さらに、合成に使用するフレーム画像データが少なくなることで、2重像となる危険性も低減することができる。
【0107】
C.変形例:
上記実施例において、重み付けW(a,i)には、3つの要素が考慮されているが、これらのうち、1つまたは2つのみの要素を考慮しても良い。すなわち、上記実施例では、式(11)に示すように、重み付けW(a,i)は、画素間距離を考慮した画素間距離別重み付けWs(a,i)と、時間的距離を考慮した時間的距離別重み付けWt(a)と、位置ずれ補正量の大きさを考慮した位置ずれ量別重み付けWu(a)の積として算出されるが、変形例として、例えば、画素間距離別重み付けのみを採用して、以下の式(18)によってW(a,i)を算出しても良く、第1と時間的距離別重み付けを採用して、以下の式(19)によってW(a,i)を算出しても良い。
W(a,i) = Ws(a,i) …(18)
W(a,i) = Ws(a,i) × Wt (a) …(19)
かかる場合には、考慮した要素に起因した生成画像Gの画質低下を低減することができる。
【0108】
また、画素間距離別重み付けWs(a,i)は、生成画像Gを構成する各画素ごと、各フレーム画像データF(a)ごとに(つまり、画素数×フレーム画像データ数個)設定される必要があるが、位置ずれ量別重み付けWu(a)および時間的距離別重み付けWt(a)は、各フレーム画像データF(a)ごと(つまり、フレーム画像データ数個)のみの設定で良い。従って、位置ずれ量別重み付けWu(a)および時間的距離別重み付けWt(a)のみを用いる場合には、画像処理のルーチンにおいて、一度だけ算出するだけで良い。例えば、図3で示すフローチャートのステップ30の後、ステップ40の前に重み付けを一度だけ算出すれば、以後、高解像度画像合成処理では、算出した重み付けをそのまま用いれば良い。
【0109】
上記実施例では、位置ずれ補正量の大きさが大きい程、位置ずれ量別重み付けWu(a)を小さくしているが、閾値を予め設定しておき、位置ずれ補正量の大きさが閾値以上である場合には、そのフレーム画像データF(a)は、高解像度画像合成処理に用いない、あるいは、重み付けWu(a)を0にすることとしても良い。かかる場合には、「動き」が生じやすく、生成画像の画質低下の原因となる可能性の高いフレーム画像データF(a)を排除し、生成画像Gの画質低下を低減することができる。
【0110】
上記実施例では、ディジタルビデオカメラ10によって生成された動画像データから複数のフレーム画像データを取得しているが、高解像度画像データの生成に用いる複数の画像データの取得態様は、これに限られるものではない。例えば、ディジタルスチルカメラの動画撮影モードで撮像された動画像データや、連写機能を備えたディジタルスチルカメラで連続撮影された複数の静止画像データ等、時系列に並ぶ複数の画像データであれば良い。連写機能とは、一般的に、メモリーカードにデータを転送しないで、ディジタルスチルカメラ内部の高速なメモリー(バッファメモリー)に画像データをため込むことで、複数のカットを高速で連続して撮影する機能をいう。
【0111】
上記実施例に係る画像処理装置では、位置ずれ補正量は、勾配法によって算出しているが、他の算出方法を用いても良い。例えば、周知のパターンマッチ法により位置ずれ補正量を大ざっぱに(例えば、画素単位の精度で)算出した後、勾配法により位置ずれ補正量を高い精度で(画素単位より細かい精度で)算出しても良い。
【0112】
また、ディジタルビデオカメラ10に角速度センサ等を備え、これらによってフレーム画像データ生成時におけるディジタルビデオカメラ10の向きの変化に関する情報(いわゆる手ぶれ情報)を取得し、画像処理装置にフレーム画像データと共に出力しても良い。かかる場合には、その向きの変化に関する情報を用いて位置ずれ補正量を算出できる。
【0113】
以上、実施例、変形例に基づき本発明に係る画像処理について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【図面の簡単な説明】
【0114】
【図1】第1の実施例に係る画像処理装置を含む画像処理システムの一例を示す説明図。
【図2】第1の実施例に係るパーソナルコンピュータ20(CPU200)の機能ブロック図。
【図3】第1の実施例に係る画像処理の処理ルーチンを示すフローチャート。
【図4】基準となる画像f(0)に対する画像f(a)の位置ずれを示す説明図。
【図5】フレーム画像データF(0)を基準として、フレーム画像データF(a)に対して行う位置ずれ補正について示す説明図。
【図6】勾配法による位置ずれ補正量の算出方法について説明する第1の説明図。
【図7】勾配法による位置ずれ補正量の算出方法について説明する第2の説明図。
【図8】画素の回転補正量を模式的に示す説明図。
【図9】高解像度画像合成処理の処理ルーチンを示すフローチャート。
【図10】f(0)〜f(3)を位置ずれ補正して重ね合わせた一例を、拡大して示す説明図。
【図11】バイ・リニア法による補間処理について示す説明図。
【図12】画素間距離別重み付けWs(a,i)の算出について説明する説明図。
【図13】時間的距離別重み付けWt(a)の算出について説明する説明図。
【図14】時間的距離別重み付けWt(a)を記録したテーブルを示す概略図。
【図15】第2の実施例に係る画像処理の処理ルーチンを示すフローチャート。
【図16】フレーム画像データ選択処理の処理ルーチンを示すフローチャート。
【図17】画像f(0)、f(4)、f(5)を、位置ずれ補正して重ね合わせた一例を、拡大して示す説明図。
【符号の説明】
【0115】
10…ディジタルビデオカメラ(DVC)
20…パーソナルコンピュータ
200…中央演算装置(CPU)
201…ランダムアクセスメモリ(RAM)
202…ハードディスク(HDD)
203…カードスロット
204…入出力端子
205…光学ディスクドライブ
25…モニタ
30…プリンタ
40…表示装置
45…表示部
MC…メモリカード
LD…光学ディスク
M210…画像データ取得部
M220…補正量算出部
M230…位置ずれ補正部
M240…重み付け設定部
M241…画素間距離別重み付け設定部
M242…時間的距離別重み付け設定部
M243…位置ずれ量別重み付け設定部
M250…高解像度画像生成部
M251…画素位置設定部
M252…単一画像参照画素値算出部
M253…画素データ生成部
【特許請求の範囲】
【請求項1】
それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理装置であって、
前記複数の画像データを取得する画像データ取得手段と、
前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出する補正量算出手段と、
前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正する位置ずれ補正手段と、
前記高解像度画像データの生成に用いた場合に生成される前記高解像度画像データが表す画像の画質を低下させる可能性が大きい画像データほど小さく、前記可能性が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定する重み付け設定手段と、
前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成する高解像度画像生成手段とを備える画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記重み付けの設定は、
前記複数の画像データのそれぞれに関連付けられた指標であって、前記画質を低下させる可能性の大きさを表す指標を用いて実行される画像処理装置。
【請求項3】
請求項2に記載の画像処理装置において、
前記指標は、
前記複数の画像データの中から選択された基準画像データに対する各画像データの時間的距離を含み、
前記重み付け設定手段は、
前記時間的距離が大きい画像データほど小さく、前記時間的距離が小さい画像データほど大きい重み付けを設定する時間的距離別重み付け設定手段を備える画像処理装置。
【請求項4】
請求項2または請求項3に記載の画像処理装置において、
前記指標は、
前記複数の画像データの中から選択された基準画像データが表す画像と各画像データが表す画像との間における前記補正量の大きさを含み、
前記重み付け設定手段は、
前記補正量が大きい画像データほど小さく、前記補正量が小さい画像データほど大きい重み付けを設定する位置ずれ量別重み付け設定手段を備える画像処理装置。
【請求項5】
請求項2ないし請求項4のいずれかに記載の画像処理装置において、
前記指標は、
前記生成される高解像度画像データを構成する生成画素データごとに設定されるものであって、前記補正された各画像データを構成する前記画素データのうち前記生成画素データの最近接にある画素データと、前記生成画素データとの画素間距離を含み、
前記重み付け設定手段は、
前記画素間距離が大きい画像データほど小さく、前記画素間距離が小さい画像データほど大きい重み付けを設定する画素間距離別重み付け設定手段を備える画像処理装置。
【請求項6】
請求項1ないし請求項5のいずれかに記載の画像処理装置において、
前記高解像度画像生成手段は、
前記生成される高解像度画像データが表す画像を構成する画素の位置を設定する画素設定手段と、
前記設定された位置における画素値であって、前記補正された複数の画像データの中の一の画像データに基づいて算出される画素値である単一画像参照画素値を、各画像データごとにそれぞれ算出する単一画像参照画素値算出手段と、
前記重み付けを用いて算出される前記単一画像参照画素値の重み付き平均値を画素値として、前記設定された位置における画素データを生成する画素データ生成手段とを備える画像処理装置。
【請求項7】
請求項2ないし請求項6のいずれかに記載の画像処理装置は、さらに、
前記指標の値と前記重み付けの値との対応関係が予め記録されたテーブルを記憶する記憶手段を備え、
前記重み付けは、前記テーブルを参照して設定される画像処理装置。
【請求項8】
請求項2ないし請求項6のいずれかに記載の画像処理装置において、
前記重み付けは、前記指標と前記重み付けとの間の関係を示す所定の関係式を用いて設定される画像処理装置。
【請求項9】
請求項1ないし請求項8のいずれかに記載の画像処理装置において、
前記複数の画像データの合成は、
前記補正された複数の画像データの中の一の画像データであって、その画像データの表す画像の各画素が、生成される高解像度画像データの表す画像の座標空間において、前記補正された複数の画像データの中の他の画像データの表す画像の各画素と同一の座標に位置する重複画像データが存在する場合には、
前記高解像度画像データの生成は、前記重複画像データを用いないで実行される画像処理装置。
【請求項10】
請求項9に記載の画像処理装置において、
前記他の画像データが表す画像と前記一の画像データが表す画像との間における前記補正量が、所定の判定条件を満たす場合に、前記一の画像データは前記重複画像データであると判断する画像処理装置。
【請求項11】
それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理方法であって、
前記複数の画像データを取得し、
前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出し、
前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正し、
前記高解像度画像データの生成に用いた場合に前記生成される高解像度画像データが表す画像の画質を低下させる可能性が大きい画像データほど小さく、前記可能性が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定し、
前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成する画像処理方法。
【請求項12】
それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理方法であって、
前記複数の画像データを取得し、
前記複数の画像データが表す各画像間における被写体を補正するための補正量を算出し、
前記複数の画像データの中から選択された基準画像データに対する各画像データの時間的距離が大きい画像データほど小さく、前記時間的距離が小さい画像データほど大きい重み付け、前記複数の画像データの中から選択された基準画像データが表す画像と各画像データが表す画像との間における前記補正量が大きい画像データほど小さく、前記補正量が小さい画像データほど大きい重み付け、の少なくとも1つの重み付けを前記複数の画像データのそれぞれについて設定し、
前記算出された補正量に基づいて、前記複数の画像データについて前記位置ずれを補正すると共に、前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成する画像処理方法。
【請求項13】
それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理方法であって、
前記複数の画像データを取得し、
前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出し、
前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正し、
前記生成される高解像度画像データを構成する生成画素データごとに設定されるものであって、前記補正された各画像データを構成する前記画素データのうち前記生成画素データの最近接にある画素データと、前記生成画素データとの画素間距離を算出し、
前記画素間距離が大きい画像データほど小さく、前記画素間距離が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定し、
前記設定された重み付けと前記各画像データを用いて、生成画素データの画素値を算出することによって、前記高解像度画像データを生成する画像処理装置。
【請求項14】
それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理をコンピュータに実行させるコンピュータプログラムであって、
前記複数の画像データを取得する画像データ取得機能と、
前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出する補正量算出機能と、
前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正する位置ずれ補正機能と、
前記高解像度画像データの生成に用いた場合に生成される前記高解像度画像データが表す画像の画質を低下させる可能性が大きい画像データほど小さく、前記可能性が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定する重み付け設定機能と、
前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成する高解像度画像生成機能とをコンピュータに実現させるコンピュータプログラム。
【請求項15】
請求項14に記載のコンピュータプログラムを記録したコンピュータが読み取り可能な記録媒体。
【請求項1】
それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理装置であって、
前記複数の画像データを取得する画像データ取得手段と、
前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出する補正量算出手段と、
前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正する位置ずれ補正手段と、
前記高解像度画像データの生成に用いた場合に生成される前記高解像度画像データが表す画像の画質を低下させる可能性が大きい画像データほど小さく、前記可能性が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定する重み付け設定手段と、
前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成する高解像度画像生成手段とを備える画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記重み付けの設定は、
前記複数の画像データのそれぞれに関連付けられた指標であって、前記画質を低下させる可能性の大きさを表す指標を用いて実行される画像処理装置。
【請求項3】
請求項2に記載の画像処理装置において、
前記指標は、
前記複数の画像データの中から選択された基準画像データに対する各画像データの時間的距離を含み、
前記重み付け設定手段は、
前記時間的距離が大きい画像データほど小さく、前記時間的距離が小さい画像データほど大きい重み付けを設定する時間的距離別重み付け設定手段を備える画像処理装置。
【請求項4】
請求項2または請求項3に記載の画像処理装置において、
前記指標は、
前記複数の画像データの中から選択された基準画像データが表す画像と各画像データが表す画像との間における前記補正量の大きさを含み、
前記重み付け設定手段は、
前記補正量が大きい画像データほど小さく、前記補正量が小さい画像データほど大きい重み付けを設定する位置ずれ量別重み付け設定手段を備える画像処理装置。
【請求項5】
請求項2ないし請求項4のいずれかに記載の画像処理装置において、
前記指標は、
前記生成される高解像度画像データを構成する生成画素データごとに設定されるものであって、前記補正された各画像データを構成する前記画素データのうち前記生成画素データの最近接にある画素データと、前記生成画素データとの画素間距離を含み、
前記重み付け設定手段は、
前記画素間距離が大きい画像データほど小さく、前記画素間距離が小さい画像データほど大きい重み付けを設定する画素間距離別重み付け設定手段を備える画像処理装置。
【請求項6】
請求項1ないし請求項5のいずれかに記載の画像処理装置において、
前記高解像度画像生成手段は、
前記生成される高解像度画像データが表す画像を構成する画素の位置を設定する画素設定手段と、
前記設定された位置における画素値であって、前記補正された複数の画像データの中の一の画像データに基づいて算出される画素値である単一画像参照画素値を、各画像データごとにそれぞれ算出する単一画像参照画素値算出手段と、
前記重み付けを用いて算出される前記単一画像参照画素値の重み付き平均値を画素値として、前記設定された位置における画素データを生成する画素データ生成手段とを備える画像処理装置。
【請求項7】
請求項2ないし請求項6のいずれかに記載の画像処理装置は、さらに、
前記指標の値と前記重み付けの値との対応関係が予め記録されたテーブルを記憶する記憶手段を備え、
前記重み付けは、前記テーブルを参照して設定される画像処理装置。
【請求項8】
請求項2ないし請求項6のいずれかに記載の画像処理装置において、
前記重み付けは、前記指標と前記重み付けとの間の関係を示す所定の関係式を用いて設定される画像処理装置。
【請求項9】
請求項1ないし請求項8のいずれかに記載の画像処理装置において、
前記複数の画像データの合成は、
前記補正された複数の画像データの中の一の画像データであって、その画像データの表す画像の各画素が、生成される高解像度画像データの表す画像の座標空間において、前記補正された複数の画像データの中の他の画像データの表す画像の各画素と同一の座標に位置する重複画像データが存在する場合には、
前記高解像度画像データの生成は、前記重複画像データを用いないで実行される画像処理装置。
【請求項10】
請求項9に記載の画像処理装置において、
前記他の画像データが表す画像と前記一の画像データが表す画像との間における前記補正量が、所定の判定条件を満たす場合に、前記一の画像データは前記重複画像データであると判断する画像処理装置。
【請求項11】
それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理方法であって、
前記複数の画像データを取得し、
前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出し、
前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正し、
前記高解像度画像データの生成に用いた場合に前記生成される高解像度画像データが表す画像の画質を低下させる可能性が大きい画像データほど小さく、前記可能性が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定し、
前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成する画像処理方法。
【請求項12】
それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理方法であって、
前記複数の画像データを取得し、
前記複数の画像データが表す各画像間における被写体を補正するための補正量を算出し、
前記複数の画像データの中から選択された基準画像データに対する各画像データの時間的距離が大きい画像データほど小さく、前記時間的距離が小さい画像データほど大きい重み付け、前記複数の画像データの中から選択された基準画像データが表す画像と各画像データが表す画像との間における前記補正量が大きい画像データほど小さく、前記補正量が小さい画像データほど大きい重み付け、の少なくとも1つの重み付けを前記複数の画像データのそれぞれについて設定し、
前記算出された補正量に基づいて、前記複数の画像データについて前記位置ずれを補正すると共に、前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成する画像処理方法。
【請求項13】
それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理方法であって、
前記複数の画像データを取得し、
前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出し、
前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正し、
前記生成される高解像度画像データを構成する生成画素データごとに設定されるものであって、前記補正された各画像データを構成する前記画素データのうち前記生成画素データの最近接にある画素データと、前記生成画素データとの画素間距離を算出し、
前記画素間距離が大きい画像データほど小さく、前記画素間距離が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定し、
前記設定された重み付けと前記各画像データを用いて、生成画素データの画素値を算出することによって、前記高解像度画像データを生成する画像処理装置。
【請求項14】
それぞれが複数の画素データから構成されると共に時系列に並ぶ複数の画像データから、前記複数の画像データより解像度の高い高解像度画像データを生成する画像処理をコンピュータに実行させるコンピュータプログラムであって、
前記複数の画像データを取得する画像データ取得機能と、
前記複数の画像データが表す各画像間における被写体の位置ずれを補正するための補正量を算出する補正量算出機能と、
前記算出された補正量を用いて、前記複数の画像データについて前記被写体の位置ずれを補正する位置ずれ補正機能と、
前記高解像度画像データの生成に用いた場合に生成される前記高解像度画像データが表す画像の画質を低下させる可能性が大きい画像データほど小さく、前記可能性が小さい画像データほど大きい重み付けを、前記複数の画像データのそれぞれについて設定する重み付け設定機能と、
前記設定された重み付けを用いて前記補正された複数の画像データを合成して、前記高解像度画像データを生成する高解像度画像生成機能とをコンピュータに実現させるコンピュータプログラム。
【請求項15】
請求項14に記載のコンピュータプログラムを記録したコンピュータが読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2006−33062(P2006−33062A)
【公開日】平成18年2月2日(2006.2.2)
【国際特許分類】
【出願番号】特願2004−204745(P2004−204745)
【出願日】平成16年7月12日(2004.7.12)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成18年2月2日(2006.2.2)
【国際特許分類】
【出願日】平成16年7月12日(2004.7.12)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]