画像補正装置
【課題】手振れセンサがなくても、入力画像の補正処理が実施可能な画像補正装置を提供することを目的とする。
【解決手段】本発明に係る画像補正装置は、入力画像から、当該注目画素に対する当該近傍画素の相対位置を示す画素単位の座標ごとの窓領域最大局所差分値を決定する最大局所差分値決定手段2と、窓領域最大局所差分値同士の差分を、最大局所差分勾配値として決定する勾配算出手段3とを備える。そして、最大局所差分勾配値のうち、所定値以上の最大局所差分勾配値に対応する座標の範囲をフィルタ係数存在範囲として求めるフィルタ範囲決定手段4と、フィルタ係数存在範囲内の最大局所差分勾配値に基づいて、当該フィルタ係数存在範囲内のフィルタ係数を算出するフィルタ係数決定手段5と、フィルタ係数を用いて、フィルタ処理の逆処理を入力画像に施す補正手段102とを備える。
【解決手段】本発明に係る画像補正装置は、入力画像から、当該注目画素に対する当該近傍画素の相対位置を示す画素単位の座標ごとの窓領域最大局所差分値を決定する最大局所差分値決定手段2と、窓領域最大局所差分値同士の差分を、最大局所差分勾配値として決定する勾配算出手段3とを備える。そして、最大局所差分勾配値のうち、所定値以上の最大局所差分勾配値に対応する座標の範囲をフィルタ係数存在範囲として求めるフィルタ範囲決定手段4と、フィルタ係数存在範囲内の最大局所差分勾配値に基づいて、当該フィルタ係数存在範囲内のフィルタ係数を算出するフィルタ係数決定手段5と、フィルタ係数を用いて、フィルタ処理の逆処理を入力画像に施す補正手段102とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルカメラ、プリンタ、パーソナルコンピュータ、テレビなどの画像撮影機器および画像表示機器に適用される画像補正装置に関し、特に、手振れ等に起因した画像劣化を画像処理によって補正する画像補正装置に関するものである。
【背景技術】
【0002】
従来から、デジタルカメラやカメラ付き携帯端末機器における絞り値、焦点距離、フォーカス等の収差による画像劣化や、手振れによる画像劣化を補正または修復する機能が、種々提案されている。例えば、特許文献1に記載されているように、レンズ等の光学系と、CCDやC−MOSセンサ等の撮像素子とを有する近年のデジタルカメラは、手振れを補正するために、光学系の振動を軽減する機械的な機構を備えている。また、特許文献2に記載されているように、撮像素子で撮影された画像の画像データを変換する演算回路を用いて、画像を補正する技術も提案されている。
【0003】
上記従来技術においては、手振れによりカメラが振動したときに、その振動をセンサで検出し、検出された信号、すなわち、手振れによるカメラの移動速度に基づいて補正量を算出する。そして、算出した補正量に基づいて、光学レンズおよび/または撮像素子を移動させたり、画像処理演算によって撮像素子の各画素の値を補正したりすることによって、手振れに起因する画像劣化を補正または防止する。その結果、手振れに起因する画像劣化を補正した画像または画像劣化を防止した画像が、フラッシュメモリ等の記憶媒体に記録される。
【0004】
【特許文献1】特開2001−188272号公報(第7頁、第1図)
【特許文献2】特開2000−224461号公報(第8〜9頁、第9〜10図)
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上述従来技術においては、撮影時におけるカメラの移動速度を検出するための手振れセンサが必要となるので、装置の構成が複雑になるという問題があった。また、手振れセンサの出力に基づいて画像劣化を補正する必要があるが、撮像装置と連動しないプリンタやパーソナルコンピュータのような画像表示機器に手振れ画像が入力された場合には、画像を補正できないという問題があった。
【0006】
本発明は、上記のような問題点を解決するためになされたものであり、手振れセンサがなくても、入力画像の補正処理が実施可能な画像補正装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る画像補正装置は、入力画像の画像領域の全部または一部からなる差分値決定領域内の各注目画素について、当該注目画素の画像データと、当該注目画素の周辺に設定される窓領域内の近傍画素の画像データとの差分からなる局所差分値を、当該注目画素に対する当該近傍画素の相対位置を示す画素単位の座標ごとに算出し、前記差分値決定領域内の全ての前記注目画素に関する前記座標ごとの前記局所差分値の最大値を、前記座標ごとの窓領域最大局所差分値として決定する最大局所差分値決定手段を備える。そして、前記座標の水平方向または垂直方向の少なくとも一方向において隣り合う前記窓領域最大局所差分値同士の差分を、最大局所差分勾配値として前記座標ごとに決定する勾配算出手段と、前記勾配算出手段で決定された前記最大局所差分勾配値のうち、所定値以上の前記最大局所差分勾配値に対応する前記座標の範囲をフィルタ係数存在範囲として求めるフィルタ範囲決定手段とを備える。そして、前記フィルタ範囲決定手段で決定された前記フィルタ係数存在範囲内の前記最大局所差分勾配値に基づいて、当該フィルタ係数存在範囲内のフィルタ係数を算出するフィルタ係数決定手段と、前記フィルタ係数算出手段で算出された前記フィルタ係数を用いて、フィルタ処理の逆処理を前記入力画像に施す補正手段とを備える。
【発明の効果】
【0008】
本発明の画像補正装置によれば、入力画像の劣化を表すフィルタ係数を入力画像のみから算出し、このフィルタ係数を用いて入力画像に補正処理を行う。そのため、手振れセンサがなくても、入力画像の補正処理を実施することができる。
【発明を実施するための最良の形態】
【0009】
<実施の形態1>
図1は、本実施の形態に係る画像補正装置の構成を示すブロック図である。図に示すように、本実施の形態に係る画像補正装置は、記憶手段100と、最大局所差分値決定手段2と、勾配算出手段3と、フィルタ範囲決定手段4と、フィルタ係数決定手段5と、補正手段102と、記憶手段103とを備える。最大局所差分値決定手段2、および、勾配算出手段3、および、フィルタ範囲決定手段4、および、フィルタ係数決定手段5は、劣化推定手段101を構成している。
【0010】
記憶手段100には、画像が記憶されている。最大局所差分値決定手段2には、記憶手段100から出力された画像が入力画像として入力される。最大局所差分値決定手段2は、記憶手段100から出力される入力画像の窓領域最大局所差分値を求める。勾配算出手段3は、最大局所差分値決定手段2から出力される窓領域最大局所差分値から最大局所差分勾配値を求める。フィルタ範囲決定手段4は、勾配算出手段3から出力される最大局所差分勾配値からフィルタ係数存在範囲を求める。
【0011】
フィルタ係数決定手段5は、勾配算出手段3から出力される最大局所差分勾配値と、フィルタ範囲決定手段4から出力されるフィルタ係数存在範囲とから、フィルタ係数を求める。補正手段102は、フィルタ係数決定手段5から出力されるフィルタ係数を用いて、記憶手段100から出力された入力画像を補正することにより、補正画像を生成する。記憶手段103は、補正手段102から出力される補正画像を記憶する。
【0012】
次に基本動作について説明する。一般に手振れや焦点ずれなどの劣化は、線形で表すことができると考えられる。つまり、劣化のある入力画像の画像データをy(i,j)(i,j;画素単位の座標、0≦i<I、0≦j<J)とし、入力画像の劣化を表す線形フィルタのフィルタ係数をa(n,m)(0≦n≦N、0≦m≦M)とし、劣化のない画像データをx(i,j)とすると、次式(1)の関係が成り立つ。
【0013】
【数1】
【0014】
本実施の形態に係る画像補正装置の劣化推定手段101は、記憶手段100からの入力画像の画像データy(i,j)(以下、入力画像y(i,j)と記すこともある)から、その入力画像の劣化を表すフィルタ係数a(n,m)を推定する。その後、本実施の形態に係る画像補正装置の補正手段102は、所定の範囲(n,m)(0≦n≦N、0≦m≦M)のフィルタ係数a(n,m)を用いて、フィルタ処理の逆処理を入力画像y(i,j)に施す。こうして、本実施の形態に係る画像補正装置は、劣化のない画像の画像データ(以下、画像x(i,j)と記すこともある)に相当する補正画像の画像データ(以下、補正画像w(i,j)と記すこともある)を得るように構成されている。
【0015】
以下、図1に従って、本実施の形態に係る画像補正装置の詳細な動作を説明する。まず、記憶手段100には、入力画像y(i,j)(0≦i<I、0≦j<J)が保存されている。記憶手段100から読み出された入力画像y(i,j)は、最大局所差分値決定手段2に入力される。本実施の形態に係る最大局所差分値決定手段2は、図2に示すように、I画素×J画素の入力画像の画像領域201の一部、例えば、中央の1/4程度の領域(Ic画素×Jc画素)を差分値決定領域202と定める。最大局所差分値決定手段2では、差分値決定領域202内の各注目画素203について、次式(2)で示される局所差分値d(i,j)(n,m)を求める。
【0016】
【数2】
【0017】
この式(2)において、y(i,j)(Is≦i≦Is+Ic,Js≦j≦Js+Jc)は、注目画素203についての画像データである。図3に示すように、窓領域204は、各注目画素203の周辺に予め設定される。式(2)に係るy(i+n,j+m)は、窓領域204内の近傍画素205の画像データである。座標(n,m)は、当該注目画素203に対する近傍画素205の相対位置を示す画素単位の座標である。
【0018】
図3に係る窓領域204は、注目画素203を基準(0,0)にして水平方向には左右(−N〜N)に広がるように設定され、垂直方向には上方向(0〜M)のみに広がるように設定されている。本実施の形態に係る窓領域204は、注目画素203において互いに隣接する第1,第2の窓領域を含む。本実施の形態では、第1の窓領域は、窓領域204の中心線から左側の窓領域204a(−N≦n≦0、0≦m≦M)であり、第2の窓領域は、窓領域204の中心線から右側の窓領域204b(0≦n≦N、0≦m≦M)であるものとする。なお、窓領域204の大きさは、後に述べるように、フィルタ係数の存在範囲に影響するので、画像補正装置を接続するシステム、手振れなどの劣化の起こり得る範囲、あるいは、補正対象とする劣化の範囲に合わせて設定する。
【0019】
以上のように、最大局所差分値決定手段2は、入力画像の画像領域201の一部からなる差分値決定領域202内の各注目画素203について、当該注目画素203の画像データy(i,j)と、当該注目画素203の周辺に設定される窓領域204内の近傍画素205の画像データy(i+n,j+m)との差分からなる局所差分値d(i,j)(n,m)を算出する。最大局所差分値決定手段2は、その局所差分値d(i,j)(n,m)を、注目画素203に対する近傍画素205の相対位置を示す画素単位の座標(n,m)ごとに算出する。
【0020】
次に、最大局所差分値決定手段2は、次式(3)のように、差分値決定領域202内の全ての注目画素203に関する座標(n,m)ごとの局所差分値d(i,j)(n,m)の最大値を、座標(n,m)ごとの窓領域最大局所差分値D(n,m)(−N≦n≦N,0≦m≦M)として決定する。
【0021】
【数3】
【0022】
なお、本実施の形態では、窓領域204は、水平方向には−N≦n≦Nとして左右方向に設定したのに対し、垂直方向には0≦m≦Mとして上方向のみに設定した。このように設定した理由は、基本的に、D(n,m)=D(−n,−m)が成り立つため、注目画素203を中心とする領域のうち、上半分または下半分または左半分または右半分のいずれかの領域を求めれば十分となるからである。
【0023】
こうして求められた窓領域最大局所差分値D(n,m)は、例えば、入力画像が手振れなどの劣化のない自然画像である場合、所定の閾値α(>0)を用いて、D(n,m)>α(ただし、(n,m)≠(0,0))となる特徴がある。例えば、入力画像が、画素(N’,M’)の範囲外で劣化していない場合、すなわち、式(1)において、a(n,m)=0(n>N’またはm>M’)の場合、D(n,m)>α(n<−N’またはn>N’またはm>M’)となる特徴がある。
【0024】
さらに、例えば、入力画像が水平方向のみの手振れにより劣化している場合、すなわち、式(1)において、a(n,m)=0(0≦n≦N、m>0),a(n,0)>0(0≦n≦N)の場合、窓領域最大局所差分値D(n,m)は、D(n,m)>α(0≦n≦N、m>0)となる。発明者は、以上のような特徴を有する窓領域最大局所差分値D(n,m)について考察を行った。その結果、座標(n,0)の水平方向において隣り合う窓領域最大局所差分値同士の差分からなる勾配値h(n)(=D(n+1,0)−D(n,0))は、フィルタ係数a(n,0)にほぼ比例する傾向があることを見出した。
【0025】
実際に、画像x(i,j)、つまり、手振れのない自然画像をもとに、N=4,M=0,a(n,0)=0.2(0≦n≦N)として、式(1)により、水平方向に劣化を有する入力画像y(i,j)を作成し、その窓領域最大局所差分値D(n,m)を求めた。そのときのDの結果は、D(0,0)=0,D(1,0)=43,D(2,0)=82,D(3,0)=116,D(4,0)=149,D(5,0)=178,D(6,0)=179,D(n,0)≧179(n>6)となった。
【0026】
それらの差分からなる勾配値h(n)(=D(n+1,0)−D(n,0))を求めると、h(0)=43,h(1)=39,h(2)=34,h(3)=33,h(4)=29,h(5)=1,h(n)<2(n>6)となった。このように、式(1)のフィルタ係数a(n,0)が一定の値(上の例では0.2)である場合には、勾配値h(0)〜h(4)もほぼ一定の値となった。
【0027】
次に、手振れのない自然画像x(i,j)をもとに、N=4,M=0として、式(1)により、水平方向に劣化を有する入力画像y(i,j)を作成し、その窓領域最大局所差分値D(n,m)を求めた。ただし、ここでは、上のように、式(1)のフィルタ係数a(n,0)を一定の値にするのではなく、a(0,0)=3/11,a(1,0)=2/11,a(2,0)=1/11,a(3,0)=2/11,a(4,0)=3/11とした。つまり、nの値の順に大、中、小、中、大の比重をつけた。そのときのDの結果は、D(0,0)=0,D(1,0)=55,D(2,0)=88,D(3,0)=104,D(4,0)=137,D(5,0)=176,D(6,0)=179,D(n,0)≧179(n>6)となった。
【0028】
それらの差分からなる勾配値h(n)を求めると、h(0)=55,h(1)=33,h(2)=16,h(3)=33,h(4)=39,h(5)=3,h(n)<2(n>6)となり、nの値の順に大、中、小、中、大の比重となった。このように、式(1)のフィルタ係数a(n,0)に応じて、勾配値h(0)〜h(4)も変化した。
【0029】
以上のことから、若干の誤差はあるものの、水平方向の手振れがある場合には、勾配値h(n)(=D(n+1,0)−D(n,0))から、手振れのフィルタ係数a(n,m)を推定することができる。
【0030】
同様に、例えば、入力画像が垂直方向のみの手振れにより劣化している場合、すなわち、式(1)において、a(n,m)=0(n>0),a(0,m)>0(0≦m≦M)の場合、窓領域最大局所差分値D(n,m)は、D(n,m)>α(n>0)となる。発明者は、座標(0,m)の垂直方向において隣り合う窓領域最大局所差分値同士の差分からなる勾配値h(m)(=D(0,m+1)−D(0,m))についても調べた。その結果、上述と同様に、勾配値h(m)は、フィルタ係数a(0,m)にほぼ比例する傾向があることを見出した。このような傾向により、垂直方向の手振れがある場合には、勾配値h(m)(=D(0、m+1)−D(0,m))から、手振れのフィルタ係数a(n,m)を推定することができる。
【0031】
なお、以上のように、座標の水平方向または垂直方向において隣り合う窓領域最大局所差分値D(n,m)同士の差分からなる勾配値hが、水平方向または垂直方向の手振れを表すフィルタ係数a(n,m)に比例することは、劣化のない画像x(i,j)を離散的な変換点を持つ画像としてモデル化することで、説明することができる。
【0032】
以上のようにすれば、フィルタ係数a(n,m)を推定することができる。そこで、本実施の形態に係る勾配算出手段3は、座標(n,m)の水平方向または垂直方向の少なくとも一方向において隣り合う窓領域最大局所差分値D(n,m)同士の差分を、最大局所差分勾配値h(n,m)として座標(n,m)ごとに決定して出力する。
【0033】
次に、このような動作を行う勾配算出手段3の構成について説明する。図4は、勾配算出手段3の構成例を示すブロック図である。図に示すように、勾配算出手段3は、入力画像評価手段301と、領域選択手段302と、勾配算出範囲決定手段303と、減算手段304と、最大値選択手段305とを備える。次に、勾配算出手段3が備える各手段の動作を図4に基づき説明する。
【0034】
まず、最大局所差分値決定手段2から出力される窓領域最大局所差分値D(n,m)(−N≦n≦N,0≦m≦M)は、入力画像評価手段301に入力される。入力画像評価手段301は、最大局所差分値決定手段2で決定された窓領域最大局所差分値D(n,m)(−N≦n≦N,0≦m≦M)に基づいて、手振れの範囲を推定するための所定の閾値αを決定する。
【0035】
所定の閾値αは、例えば、D(n,m)(−N≦n≦N,0≦m≦M)の最大値Dmaxと、予め定めた定数γ(0<γ≦1)とを用いて、α=Dmax・γとして決定してもよい。あるいは、D(n,m)(−N≦n≦N,0≦m≦M)の平均値と標準偏差をそれぞれ、Dave,Dσとし、α=Dave−Dσとしてもよい。
【0036】
本実施の形態に係る勾配算出手段3は、左側の窓領域204a内の窓領域最大局所差分値D(n,m)と、右側の窓領域204b内の窓領域最大局所差分値D(n,m)とに基づいて、左側の窓領域204aまたは右側の窓領域204bのいずれかを選択する。本実施の形態では、勾配算出手段3が備える領域選択手段302が、左側の窓領域204a内の窓領域最大局所差分値と、右側の窓領域204b内の窓領域最大局所差分値とに基づいて、左側の窓領域204aまたは右側の窓領域204bのうち、劣化特性が強く表れている窓領域を選択する。
【0037】
具体的には、例えば、領域選択手段302は、入力画像評価手段301から出力される所定の閾値αより小さくなる窓領域最大局所差分値D(n,m)の水平座標nの絶対値の最大値を、左側の窓領域204aおよび右側の窓領域204bについて比較する。すなわち、n_min=Max{n;D(−n,m)<α,0≦n≦N,0≦m≦M}と、n_max=Max{n;D(n,m)<α,0≦n≦N,0≦m≦M}とを比較する。そして、n_max>n_minであれば、図5(a)に示すように、右側の窓領域204b(0≦n≦N、0≦m≦M)を選択する。一方、そうでなければ、図5(b)に示すように、左側の窓領域204a(−N≦n≦0、0≦m≦M)を選択する。
【0038】
次に、勾配算出範囲決定手段303は、窓領域最大局所差分値D(n,m)と、入力画像評価手段301で決定された所定の閾値αとに基づいて、最大局所差分勾配値h(n,m)を算出すべき座標(n,m)の範囲を決定する。本実施の形態では、領域選択手段302で選択された窓領域204a,bの範囲が、勾配算出範囲決定手段303に出力される。そして、本実施の形態に係る勾配算出範囲決定手段303は、領域選択手段302で選択された領域の窓領域最大局所差分値D(n,m)について、以下の動作を行う。なお、以下において、勾配算出範囲決定手段303が決定する座標(n,m)の範囲を、勾配算出範囲と記すこともある。
【0039】
勾配算出範囲決定手段303は、入力画像評価手段301から出力される所定の閾値αより小さくなる窓領域最大局所差分値D(n,m)の垂直座標mの最大値を求める。すなわち、m_max=Max{m;D(n,m)<α,−N≦n≦N,0≦m≦M}を求める。そして、勾配算出範囲決定手段303は、領域選択手段302で右側の窓領域204bを選択した場合には、座標(n,m)の範囲(0≦n≦n_max、0≦m≦m_max)を勾配算出範囲とする。一方、勾配算出範囲決定手段303は、領域選択手段302で左側の窓領域204aを選択した場合には、座標(n,m)の範囲(−n_min≦n≦0、0≦m≦m_max)を勾配算出範囲とする。
【0040】
減算手段304は、領域選択手段302で選択した窓領域のうち、勾配算出範囲決定手段303で決定された勾配算出範囲内において、座標(n,m)の水平方向および垂直方向において隣り合う窓領域最大局所差分値D(n,m)同士の差分からなる勾配値を算出する。すなわち、勾配算出範囲が、0≦n≦n_max、0≦m≦m_maxである場合には、水平方向の勾配値dh(n,m)(=D(n+1,m)−D(n,m))と、垂直方向の勾配値dv(n,m)(=D(n,m+1)−D(n,m))とを算出する。勾配算出範囲が、−n_min≦n≦0、0≦m≦m_maxである場合には、水平方向の勾配値dh(n,m)(=D(n−1,m)−D(n,m))と、垂直方向の勾配値dv(n,m)(=D(n,m+1)−D(n,m))とを算出する。
【0041】
最大値選択手段305は、減算手段304から出力される2つの勾配値dh(n,m),dv(n,m)のうち、大きい方の値を選択して求める。すなわち、h’(n,m)=Max{dh(n,m),dv(n,m)}を求める。なお、表示の都合上、勾配算出範囲が0≦n≦n_max、0≦m≦m_maxであった場合には、次式(4)で表されるhに置き換え、勾配算出範囲が−n_min≦n≦0、0≦m≦m_maxであった場合には、次式(5)で表されるhに置き換えて、以下説明を行う。なお、次式(4)において、n_lim=n_maxであり、次式(5)において、n_lim=n_minである。
【0042】
【数4】
【0043】
【数5】
【0044】
最大値選択手段305は、以上により求めたh(n,m)(0≦n≦n_lim、0≦m≦m_max)を、最大局所差分勾配値として出力する。以上をまとまると、本実施の形態に係る勾配算出手段3は、座標(n,m)の水平方向または垂直方向の少なくとも一方向において隣り合う窓領域最大局所差分値D(n,m)同士の差分を、最大局所差分勾配値h(n,m)として所定の座標(n,m)ごとに決定して出力する。また、本実施の形態に係る勾配算出手段3は、領域選択手段302が選択した窓領域204a,b内の座標についてのみ、最大局所差分勾配値h(n,m)を算出する。また、本実施の形態に係る勾配算出手段3は、勾配算出範囲決定手段303で決定された範囲内の座標についてのみ、最大局所差分勾配値h(n,m)を算出する。
【0045】
こうして、勾配算出手段3から出力される最大局所差分勾配値h(n,m)は、上述したように、座標(n,m)の水平方向または垂直方向において隣り合う窓領域最大局所差分値D(n,m)の差分値となっている。そのため、この最大局所差分勾配値h(n,m)の値は、先に例示したように、入力画像y(i,j)の劣化を表すフィルタ係数a(n,m)の値に比例すると考えられる。しかしながら、先の例示において、h(5)、h(n)(n>6)が微小な値を有していたように、実際の劣化のある入力画像y(i,j)においては、フィルタ係数a(n,m)の存在範囲外であっても、最大局所差分勾配値h(n,m)は完全には0とならないことがある。
【0046】
そこで、図1に係るフィルタ範囲決定手段4は、勾配算出手段3で決定された最大局所差分勾配値h(n,m)のうち、予め定めた所定値ε(≧0)以上の最大局所差分勾配値に対応する座標(n,m)の範囲をフィルタ係数存在範囲として求める。すなわち、次式(6)で求まる範囲Sをフィルタ係数存在範囲として出力する。
【0047】
【数6】
【0048】
図1に係るフィルタ係数決定手段5は、フィルタ範囲決定手段4で決定されたフィルタ係数存在範囲S内の最大局所差分勾配値h(n,m)((n,m)∈S)に基づいて、当該フィルタ係数存在範囲S内のフィルタ係数a(n,m)を算出する。本実施の形態では、フィルタ係数決定手段5は、勾配算出手段3から出力される最大局所差分勾配値h(n,m)と、フィルタ範囲決定手段4から出力されるフィルタ係数存在範囲Sとに基づいて、定数Aを次式(7)から求める。
【0049】
【数7】
【0050】
そして、フィルタ係数決定手段5は、フィルタ係数存在範囲S内の最大局所差分勾配値h(n,m)と、定数Aとに基づいて、次式(8)の上側の式から、フィルタ係数存在範囲S内のフィルタ係数a(n,m)((n,m)∈S)を算出する。そして、フィルタ係数決定手段5は、残りの範囲内のフィルタ係数については、次式(8)の下側の式のように置き換えることにより、所定の範囲内の全てのフィルタ係数a(n,m)(0≦n≦N、0≦m≦M)を決定する。
【0051】
【数8】
【0052】
なお、上記において、フィルタ範囲決定手段4は、h(n,m)≧εとなる座標(n,m)のフィルタ係数存在範囲Sを求めたが、これに限るものではない。例えば、フィルタ範囲決定手段4は、h(n,m)<εとなる最大局所差分勾配値h(n,m)に対して、h(n,m)=0と値を置き換え、フィルタ係数存在範囲Sを、S={(n,m;0≦n≦n_lim、0≦m≦m_max)}として出力するように構成してもよい。この場合も、フィルタ係数決定手段5から出力されるフィルタ係数a(n,m)は、上述の構成と全く同じ結果になる。
【0053】
以上に説明した最大局所差分値決定手段2、および、勾配算出手段3、および、フィルタ範囲決定手段4、および、フィルタ係数決定手段5からなる劣化推定手段101は、入力画像y(i,j)(0≦i<I,0≦j<J)から、その入力画像の劣化を表す線形フィルタのフィルタ係数a(n,m)(0≦n≦N,0≦m≦M)を出力する。
【0054】
劣化推定手段101が備えるフィルタ係数決定手段5から出力されたフィルタ係数a(n,m)は、補正手段102に入力される。図1に係る補正手段102は、フィルタ係数a(n,m)を用いて、フィルタ処理の逆処理を入力画像y(i,j)に施し、補正画像w(i,j)として出力する。フィルタ処理の逆処理は、一般にデコンボリューションと呼ばれ、例えば、Richardson-Lucyアルゴリズムや、ウィーナフィルタなどの方式を使用することができる。
【0055】
補正手段102から出力される補正画像w(i,j)は、記憶手段103に書き込まれる。なお、記憶手段103は、記憶手段100と物理的に同じハードディスク、メモリなどの記憶装置を共用してもよい。
【0056】
以上のように、本実施の形態に係る画像補正装置は、入力画像y(i,j)のみから、その入力画像の劣化を表すフィルタ係数a(n,m)を推定し、このフィルタ係数を用いて、入力画像に補正処理を施すことができる。そのため、撮影時に劣化を特定する手振れセンサなどが不要となるという効果がある。また、撮像装置と連動しない画像表示機器に適用しても、画像の劣化を推定し、補正画像w(i,j)が得られるという効果がある。
【0057】
なお、本実施の形態においては、入力画像y(i,j)は、記憶手段100に記憶された画像であるものとして、劣化推定手段101および補正手段102に入力される構成とした。しかしこれに限るものではなく、入力画像y(i,j)は、CCD、CMOSなどの撮像装置の画像であるものとして、直接、劣化推定手段101および補正手段102に入力される構成であってもよい。
【0058】
また、本実施の形態に係る最大局所差分値決定手段2、勾配算出手段3、フィルタ範囲決定手段4、フィルタ係数決定手段5、および、補正手段102の各手段は、電子回路として構成してもよいし、マイクロコンピュータのようなプロセッサ上で動作するソフトウェアとして構成してもよい。
【0059】
また、本実施の形態に係る最大局所差分値決定手段2は、入力画像の画像領域201のうち、中央の1/4程度の領域を差分値決定領域202とした。しかし、差分値決定領域202はこれに限るものではなく、入力画像の画像領域201の全体または一部からなる任意の領域に設定してもよい。例えば、画像領域201の中心にいる人物に焦点を合わせて写真を撮影するような場合には、画面の中心では焦点が合い、画面の周辺部では遠景となって焦点が合わないことがある。このような場合には、本実施の形態で記述したように、入力画像の画像領域201の中央部の領域を差分値決定領域202とすることにより、中心にいる人物に合わせて、手振れによる入力画像の劣化を表すフィルタ係数a(n,m)を効果的に検出することができる。逆に、焦点の合っていない遠景のぼやけを補正したい場合には、画像領域201の全体、または、周辺部の領域を差分値決定領域202としてもよい。
【0060】
また、顔検出等の技術を用いて、画像領域201上において焦点を合わすべき位置を指定する手段をさらに備えている場合は、焦点を合わせた位置周辺の領域を差分値決定領域202とすることにより、上述のフィルタ係数a(n,m)を少ない演算量で検出することができる。
【0061】
また、本実施の形態においては、最大局所差分値決定手段2は、注目画素203から、水平方向に−N≦n≦N、垂直方向に0≦m≦Mの範囲を窓領域204として、窓領域最大局所差分値D(n,m)を求めた。しかし、窓領域204の範囲は、注目画素203から、水平方向に0≦n≦N、垂直方向に−M≦m≦Mとしても、上述と全く同じ効果を得ることができる。基本的に、D(n,m)=D(−n,−m)が成り立つため、−N≦n≦N、−M≦m≦Mの座標(n,m)の領域のうち、半分の領域を窓領域204とすることで、演算量を削減することができる。
【0062】
また、本実施の形態に係る勾配算出手段3は、領域選択手段302を備える構成とし、この領域選択手段302により、左側の窓領域204a(−N≦n≦0)および右側の窓領域204b(0≦n≦N)のうち、入力画像の劣化特性が強く表れている方を選択するとした。しかしこれに限るものではなく、勾配算出手段3は、左右の領域を選択せずに、窓領域204全体から、最大局所差分勾配値hを求めるものであってもよい。この場合の勾配算出手段3の構成を、図6を用いて以下説明する。
【0063】
図6に係る勾配算出手段3が備える勾配算出範囲決定手段303は、入力画像評価手段301で決定された所定の閾値αに基づいて、上述のn_min、n_max、m_maxを求める。そして、勾配算出範囲決定手段303は、座標(n,m)の範囲(−n_min≦n≦n_max、0≦m≦m_max)を勾配算出範囲とする。
【0064】
減算手段304は、勾配算出範囲決定手段303で決定した勾配算出範囲について、座標(n,m)の水平方向および垂直方向において隣り合う窓領域最大局所差分値D(n,m)同士の差分からなる勾配値を算出する。例えば、0≦n≦n_max、0≦m≦m_maxの範囲については、水平方向の勾配値dh1(n,m)(=D(n+1,m)−D(n,m))と、垂直方向の勾配値dv1(n,m)(=D(n,m+1)−D(n,m))とを算出する。−n_min≦n≦0、0≦m≦m_maxの範囲については、水平方向の勾配値dh2(n,m)(=D(n−1,m)−D(n,m))と、垂直方向の勾配値dv2(n,m)(=D(n,m+1)−D(n,m))とを算出する。
【0065】
最大値選択手段305は、減算手段304から出力される4つの勾配値から、次式(9)により、h(n,m)を求める(ただし、n_lim=Max{n_max,n_min})。そして、最大値選択手段305は、求めたh(n,m)(0≦n≦n_lim、0≦m≦m_max)を、最大局所差分勾配値として出力する。
【0066】
【数9】
【0067】
このように、勾配算出手段3が、領域選択手段302を備えず、左側の窓領域204aおよび右側の窓領域204bのうち、入力画像の劣化特性が強く表れている方を選択しなくても、最大局所差分勾配値h(n,m)を出力することができる。しかしながら、通常、入力画像の劣化が手振れ起因である場合、例えば、右上方向の手振れと、この方向と90度をなす左上方向の手振れとが互いに同程度の強度で混在することは少ない。そのため、本実施の形態のように、勾配算出手段3が、領域選択手段302により、左側の窓領域204aまたは右側の窓領域204bのいずれかの窓領域を選択することで、減算手段304の演算量を削減することができる。
【0068】
なお、この効果が得られる構成を説明するために、本実施の形態では、注目画素203において互いに隣接する第1,第2の窓領域は、左側の窓領域204aおよび右側の窓領域204bであるものとした。そして、勾配算出手段3は、領域選択手段302により、それらの窓領域204a,bのうち、入力画像の劣化特性が強く表れている窓領域を選択した。しかし、選択される窓領域は、左側の窓領域204aおよび右側の窓領域204bに限るものではない。
【0069】
例えば、最大局所差分値決定手段2において設定された窓領域204が、0≦n≦N(または−N≦n≦0)、−M≦m≦Mのように、水平方向が注目画素203の右方向(または左方向)に広がり、垂直方向は上下方向に広がるように設定されている場合を想定する。この場合、第1,第2の窓領域のいずれか一方は、窓領域204の中心から上側の窓領域(0≦m≦M)であるとし、他方は、窓領域204の中心から下側の窓領域(−M≦m≦0)であるとしてもよい。そして、勾配算出手段3は、領域選択手段302により、上下の窓領域のうち、入力画像の劣化特性が強く表れている窓領域を選択するものであってもよい。このように構成しても、上述と全く同じ効果を得ることができる。
【0070】
また、本実施の形態においては、領域選択手段302は、入力画像評価手段301で決定された所定の閾値αより小さくなる窓領域最大局所差分値D(n,m)の水平座標nの絶対値の最大値を、左側の窓領域204aおよび右側の窓領域204bについて比較し、その比較に基づいて、いずれか一方の窓領域を選択した。しかし、領域選択の方法はこれに限るものではない。窓領域最大局所差分値D(n,m)の値が小さいほど、手振れなどの画像劣化特性が表れるので、左右の窓領域204a,bのうち、D(n,m)の値が小さい領域を選択するように構成すればよい。
【0071】
例えば、左の窓領域204aにおけるD(n,m)の総和と、右の窓領域204bにおけるD(n,m)の総和とを比較して、窓領域を選択してもよい。すなわち、次式(10)により、左の窓領域204aにおけるD(n,m)の総和Dlと、右の窓領域204bにおけるD(n,m)の総和Drとを求める。そして、領域選択手段302は、Dl>Drならば、右の窓領域204bを選択し、Dl>Drでない場合には、左の窓領域204aを選択する。
【0072】
【数10】
【0073】
また、本実施の形態に係る勾配算出手段3は、入力画像評価手段301と、勾配算出範囲決定手段303とを備える構成とした。そして、勾配算出範囲決定手段303は、入力画像評価手段301から出力される所定の閾値αと、窓領域最大局所差分値D(n,m)とから、最大局所差分勾配値を算出すべき勾配算出範囲を決定した。しかし、これに限るものではなく、勾配算出手段3は、入力画像評価手段301および勾配算出範囲決定手段303を備えずに、窓領域204全体、左側の窓領域204a、右側の窓領域204bのいずれかを勾配算出範囲として決定する構成にしてもよい。
【0074】
図7は、入力画像評価手段301および勾配算出範囲決定手段303を備えない場合の勾配算出手段3の構成を示す図である。図7に係る勾配算出手段3では、まず、窓領域最大局所差分値D(n,m)が、領域選択手段302に入力される。領域選択手段302は、例えば、上の式(10)から、Dl、Drを求め、Dl>Drならば、右の窓領域204bを選択し、Dl>Drでない場合には、左の窓領域204aを選択する。
【0075】
次に、減算手段304は、領域選択手段302で選択した領域について、座標(n,m)の水平方向および垂直方向において隣り合う窓領域最大局所差分値D(n,m)同士の差分からなる勾配値を算出する。例えば、右側の窓領域204bが選択された場合には、座標(n,m)の範囲(0≦n≦N、0≦m≦M)について,水平方向の勾配値dh(n,m)(=D(n+1,m)−D(n,m))と、垂直方向の勾配値dv(n,m)(=D(n,m+1)−D(n,m))とを算出する。左側の窓領域204bが選択された場合には、座標(n,m)の範囲(−N≦n≦0、0≦m≦M)について,水平方向の勾配値dh(n,m)(=D(n−1,m)−D(n,m))と、垂直方向の勾配値dv(n,m)(=D(n,m+1)−D(n,m))とを算出する。
【0076】
最大値選択手段305は、減算手段304から出力される2つの勾配値dh(n,m),dv(n,m)のうち、大きい方の値を選択して求める。すなわち、h’(n,m)=Max{dh(n,m),dv(n,m)}を求める。左側の窓領域204bが選択された場合には、h(n,m)=h’(n,m)(0≦n≦N、0≦m≦M)とし、右側の窓領域204aが選択された場合には、h(n,m)=h’(n−N,m)(0≦n≦N、0≦m≦M)とする。そして、最大値選択手段305は、以上により求めたh(n,m)(0≦n≦N、0≦m≦M)を、最大局所差分勾配値として出力する。
【0077】
以上のような、図7に係る勾配算出手段3は、演算範囲が常に固定であるため、回路構成が簡単になるという特徴がある。しかしながら、発生し得る手振れの範囲が広く、窓領域204の範囲を決定する(N,M)を大きく設定する必要がある場合には、演算の処理量が多くなる。これに対し、本実施の形態に係る勾配算出手段3は、入力画像評価手段301と、勾配算出範囲決定手段303とを備えるため、入力画像に応じた所定の閾値αにより勾配算出範囲を制限することができる。そのため、減算手段304以降の演算における処理量(または回路規模ないし消費電力)を削減することができる。
【0078】
また、本実施の形態に係る勾配算出手段3は、座標(n,m)の水平方向および垂直方向において隣り合う窓領域最大局所差分値D(n,m)同士の差分を求め、その最大値を最大局所差分勾配値h(n,m)として出力するように構成した。しかしこれに限るものではなく、勾配算出手段3は、座標(n,m)の水平方向または垂直方向いずれか一方のみにおいて隣り合う窓領域最大局所差分値D(n,m)同士の差分を最大局所差分勾配値h(n,m)として出力するようにしてもよい。
【0079】
例えば、車載の撮像装置のブレのように、水平方向のブレはほとんど発生しないが、垂直方向のブレが強く発生する場合には、勾配算出手段3は、座標(n,m)の垂直方向のみにおいて隣り合う窓領域最大局所差分値D(n,m)の差分を、最大局所差分勾配値h(n,m)として出力するようにしてもよい。また、一般に、デジタルカメラを手持ちで撮影する場合にも、シャッターを押す動作により、垂直方向の手振れが発生しやすいため、上述と同様の構成にすればよい。勾配算出手段3をこのような構成することにより、水平方向における勾配値の算出を省略するため、演算量を削減できるという効果を得ることができる。また、撮像装置の構成や撮像装置の設置方法によっては、シャッターを押す方向が、保存される画像の水平方向となる場合がある。このような場合には、水平方向のみにおいて隣り合う窓領域最大局所差分値D(n,m)の差分を、最大局所差分勾配値h(n,m)として出力するように勾配算出手段3を構成すれば、上述と同様、演算量を削減することができる。
【0080】
<実施の形態2>
図8は、本実施の形態に係る画像補正装置の構成を示すブロック図である。なお、以下の実施の形態2に係る構成のうち、新たに説明しないものについては、実施の形態1と同じ構成については、同一の符号を付すものとする。図に示すように、本実施の形態に係る画像補正装置は、記憶手段100と、劣化推定手段101と、逆フィルタ設定手段6と、巡回型フィルタ手段7と、記憶手段103とを備える。逆フィルタ設定手段6、および、巡回型フィルタ手段7は、補正手段102を構成している。
【0081】
記憶手段100には、画像が記憶されている。劣化推定手段101には、記憶手段100から出力された画像が入力画像として入力される。劣化推定手段101は、この入力画像から、当該入力画像の劣化を表す線形フィルタを所定の範囲で求め、そのフィルタ係数を第1のフィルタ係数として出力する。本実施の形態にかかる補正手段102は、劣化推定手段101から出力される所定の範囲の2次元線形フィルタを示す第1のフィルタ係数を用いて、フィルタ処理の逆処理を入力画像に施す。
【0082】
補正手段102が備える逆フィルタ設定手段6は、劣化推定手段101からの第1のフィルタ係数に基づいて、巡回型フィルタ処理を行うための第2のフィルタ係数、および、入力画像の画素に対して巡回型フィルタ処理を施すべき順番を決定する。補正手段102が備える巡回型フィルタ手段7は、逆フィルタ設定手段6で決定した第2のフィルタ係数、および、順番に基づいて、記憶手段100からの入力画像に巡回型フィルタ処理を施す。こうして、巡回型フィルタ手段7は、フィルタ処理の逆処理に相当する巡回型フィルタ処理を、入力画像に施すことにより、補正画像を生成する。記憶手段103は、巡回型フィルタ手段7から出力される補正画像を記憶する。
【0083】
次に基本動作について説明する。実施の形態1で述べたように、一般に手振れや焦点ずれなどの劣化は、線形で表すことができると考えられる。つまり、劣化のある画像データをy(i,j)(i,j;画素単位の座標、0≦i<I、0≦j<J)とし、入力画像の劣化を表す線形フィルタのフィルタ係数をa(n,m)(0≦n≦N、0≦m≦M)とし、劣化のない画像データをx(i,j)とすると、式(1)の関係が成り立つ。本実施の形態に係る画像補正装置の劣化推定手段101は、実施の形態1と同様、入力画像y(i,j)から、その入力画像の劣化を表すフィルタ係数a(n,m)を推定する。ここでのフィルタ係数a(n,m)は、所定の範囲内の座標(n,m)ごとに与えられており、本実施の形態に係る所定の範囲の形状は、0≦n≦N、0≦m≦Mで表される長方形である。
【0084】
本実施の形態に係る画像補正装置の補正手段102は、所定の範囲の2次元線形フィルタを示す第1のフィルタ係数a(n,m)を用いて、フィルタ処理の逆処理を入力画像y(i,j)に施す。こうして、本実施の形態に係る画像補正装置は、劣化のない画像x(i,j)に相当する補正画像w(i,j)を得るように構成されている。
【0085】
以下、図8に従って、本実施の形態に係る画像補正装置の詳細な動作を説明する。まず、記憶手段100には、入力画像y(i,j)(0≦i<I、0≦j<J)が保存されている。記憶手段100から読み出された入力画像y(i,j)は、劣化推定手段101に入力される。劣化推定手段101は、入力画像y(i,j)から、入力画像の劣化を表す線形フィルタのフィルタ係数a(n,m)を求めて出力する。本実施の形態に係る劣化推定手段101は、実施の形態1に係る最大局所差分値決定手段2、および、勾配算出手段3、および、フィルタ範囲決定手段4、および、フィルタ係数決定手段5から構成されるものとする。
【0086】
劣化推定手段101から出力されたフィルタ係数a(n,m)と、記憶手段100からの入力画像y(i,j)とは、補正手段102に入力される。本実施の形態に係る画像補正装置が備える補正手段102は、所定の範囲(0≦n≦N、0≦m≦M)の線形フィルタのフィルタ係数である第1のフィルタ係数a(n,m)を用いて、フィルタ処理の逆処理を入力画像y(i,j)に施す。
【0087】
この動作を行うため、本実施の形態に係る補正手段102が備える逆フィルタ設定手段6および巡回型フィルタ手段7は、以下の動作を行う。まず、逆フィルタ設定手段6は、フィルタ係数a(n,m)に基づいて、巡回型フィルタ処理を行うための第2のフィルタ係数であるフィルタ係数b(n,m)、および、入力画像の画素に対して巡回型フィルタ処理を施すべき順番を決定する。なお、以下、入力画像y(i,j)の画素(i,j)に対して巡回型フィルタ処理を施すべき順番を、巡回型フィルタ処理の順番と記すこともある。次に、巡回型フィルタ手段7は、逆フィルタ設定手段6で決定したフィルタ係数b(n,m)、および、巡回型フィルタ処理の順番に基づいて、記憶手段100からの入力画像に巡回型フィルタ処理を施す。この処理により、補正手段102は、補正画像w(i,j)を生成し、補正画像w(i,j)を出力する。以下、逆フィルタ設定手段6および巡回型フィルタ手段7の動作について詳しく説明する。
【0088】
一般に、式(1)が成り立つ場合には、a(n,m)≠0を条件として、次式(11)が成り立つ。
【0089】
【数11】
【0090】
劣化がある入力画像y(i,j)から補正画像w(i,j)への変換は、式(11)を書き換えた次式(12)で表される2次元の巡回型フィルタ処理により実現できる。なお、式(12)に示されるb(n,m)は、巡回型フィルタ処理を行うためのフィルタ係数であり、b(0,0)=1/a(0,0)、b(n,m)=a(n,m)/a(0,0)((n,m)≠(0,0)、0≦n≦N、0≦m≦M)である。
【0091】
【数12】
【0092】
式(12)より、ある画素(i,j)の入力画像y(i,j)と、過去に求めた補正画像w(i−n,j−m)(0≦n≦N、0≦m≦M、(n,m)≠(0,0))とから、新しい補正画像w(i,j)が算出可能となる。式(12)で表される2次元の巡回型フィルタ処理とは、新しい補正画像の算出を、入力画像の画素(i,j)の水平方向および垂直方向それぞれについて「昇順」に巡回して行う処理を意味する。この2次元の巡回型フィルタ処理により、入力画像の全画素(i,j)(0≦i<I、0≦j<J)の補正画像w(i,j)を算出することが可能となる。
【0093】
ただし、2次元の巡回型フィルタ処理を行うためには、新しい補正画像w(i,j)の元となる過去の補正画像、つまり、式(12)の右辺の補正画像w(i,j)の初期値が必要である。次に、補正画像w(i,j)の初期値と、初期値を与えるべき画素(i,j)の範囲について説明する。式(12)により算出される補正画像w(i,j)と、劣化のない画像x(i,j)との間には、次式(13)で示される関係が成り立つ。
【0094】
【数13】
【0095】
この式(13)は、所定の範囲(0≦i<N、0≦j<M)内の全ての画素(i,j)において、w(i,j)=x(i,j)が成立する場合には、帰納的に、全ての画素(i,j)(0≦i<I、0≦j<J)について、w(i,j)=x(i,j)が成立することを意味する。すなわち、w(i,j)=x(i,j)(0≦i<N、0≦j<M)を初期値として与えれば、式(12)により、全ての画素(i,j)(0≦i<I、0≦j<J)において、劣化のない画像x(i,j)に相当する補正画像w(x,j)が得られることを意味する。
【0096】
しかしながら、実際には、劣化のない画像x(i,j)の値は不明であるため、本実施の形態では、補正画像w(i,j)の初期値として、w(i,j)=y(i,j)(0≦i<N、0≦j<M)と設定する。つまり、その範囲(0≦i<N、0≦j<M)内の入力画像の画素(i,j)については巡回型フィルタ処理をしないものとする。
【0097】
この場合、補正画像w(i,j)の初期値の誤差が、巡回型フィルタ処理により、画像全体に伝播するという問題がある。そこで、本実施の形態に係る逆フィルタ設定手段6は、フィルタ係数b(n,m)((n,m)≠(0,0))の絶対値を1未満に設定する。例えば、逆フィルタ設定手段6は、次式(14)により、絶対値が1未満に設定されるフィルタ係数b(n,m)を決定する。
【0098】
【数14】
【0099】
ただし、B=Max{|a(n,m)|;(n,m)≠(0,0),0≦n≦N,0≦m≦M}であり、C(0<C<1)は定数である。式(14)によりフィルタ係数b(n,m)((n,m)≠(0,0))を設定した後、フィルタのゲインが1となるように、b(0,0)を次式(15)により設定する。
【0100】
【数15】
【0101】
以上のように、フィルタ係数b(n,m)((n,m)≠(0,0))の絶対値を1より小さくすることにより、補正画像w(i,j)の初期値の誤差が、画像全体に伝播する影響を小さくすることができる。なお、実験によると、定数Cとして、0.5程度の値を設定したときには、誤差パターンを低減でき、かつ、十分な補正効果が得られた。
【0102】
上記の説明においては、a(0,0)≠0であると仮定し、初期値が設定されていない補正画像w(i,j)を、入力画像の画素(i,j)の水平方向および垂直方向それぞれについて昇順に算出した。しかし、a(0,0)=0の場合は、巡回型フィルタ処理の順番を、上述とは異なる順番に変更することで、上述と同様の処理が可能となる。例えば、入力画像の劣化が、水平、垂直、または、斜め方向のいずれか一方向の1次元のフィルタ処理で表されると仮定する。このように仮定した場合、所定の範囲(0≦n≦N、0≦m≦M)内の4隅の座標のフィルタ係数a(0,0)、a(N,0)、a(0,M)、a(N,M)のいずれかの値は、ほとんどの場合、非零となる。
【0103】
仮に、それらの値が非零とならなかったとしても、劣化推定手段101が、フィルタ係数a(N,0)、a(0,M)、a(N,M)が非零となる領域にあわせて、所定の範囲を定める係数N、Mを設定するようにすれば、それらのうちいずれか一つは、必ず非零となる。そこで、以下、フィルタ係数a(N,0)、a(0,M)、a(N,M)のいずれか一つが非零である場合について説明する。
【0104】
例えば、a(N,0)≠0の場合には、次式(16)により、フィルタ係数b(n,m)を設定する。
【0105】
【数16】
【0106】
ただし、B=Max{|a(n,m)|;(n,m)≠(N,0),0≦n≦N,0≦m≦M}であり、C(0<C<1)は定数である。式(16)によりフィルタ係数b(n,m)((n,m)≠(0,0))を設定した後、b(0,0)を式(15)により設定する。さらに、補正画像w(i,j)の初期値として、w(i,j)=y(i,j)(I−N≦i<I、0≦j<M)と設定する。そして、次式(17)で表される2次元の巡回型フィルタ処理を行う。
【0107】
【数17】
【0108】
式(17)より、ある画素(i,j)の入力画像y(i,j)と、過去に求めた補正画像w(i+n,j−m)(0≦n≦N、0≦m≦M、(n,m)≠(0,0))とから、新しい補正画像w(i,j)が算出可能となる。式(17)で表される2次元の巡回型フィルタ処理とは、新しい補正画像の算出を、入力画像の画素(i,j)の水平方向については「降順」、垂直方向については「昇順」に巡回して行う処理を意味する。
【0109】
以上、a(N,0)≠0の場合について説明したが、a(0,M)≠0の場合には、次式(18)により、フィルタ係数b(n,m)を設定する。
【0110】
【数18】
【0111】
ただし、B=Max{|a(n,m)|;(n,m)≠(0,M),0≦n≦N,0≦m≦M}であり、C(0<C<1)は定数である。式(18)によりフィルタ係数b(n,m)((n,m)≠(0,0))を設定した後、b(0,0)を式(15)により設定する。さらに、補正画像w(i,j)の初期値として、w(i,j)=y(i,j)(0≦i<N、J−M≦j<J)と設定する。そして、次式(19)で表される2次元の巡回型フィルタ処理を行う。
【0112】
【数19】
【0113】
式(19)より、ある画素(i,j)の入力画像y(i,j)と、過去に求めた補正画像w(i−n,j+m)(0≦n≦N、0≦m≦M、(n,m)≠(0,0))とから、新しい補正画像w(i,j)が算出可能となる。式(19)で表される2次元の巡回型フィルタ処理とは、新しい補正画像の算出を、入力画像の画素(i,j)の水平方向については「昇順」、垂直方向については「降順」に巡回して行う処理を意味する。
【0114】
以上、a(0,M)≠0の場合について説明したが、a(N,M)≠0の場合には、次式(20)により、フィルタ係数b(n,m)を設定する。
【0115】
【数20】
【0116】
ただし、B=Max{|a(n,m)|;(n,m)≠(N,M),0≦n≦N,0≦m≦M}であり、C(0<C<1)は定数である。式(20)によりフィルタ係数b(n,m)((n,m)≠(0,0))を設定した後、b(0,0)を式(15)により設定する。さらに、補正画像w(i,j)の初期値として、w(i,j)=y(i,j)(I−N≦i<I、J−M≦j<J)と設定する。そして、次式(21)で表される2次元の巡回型フィルタ処理を行う。
【0117】
【数21】
【0118】
式(21)より、ある画素(i,j)の入力画像y(i,j)と、過去に求めた補正画像w(i+n,j+m)(0≦n≦N、0≦m≦M、(n,m)≠(0,0))とから、新しい補正画像w(i,j)が算出可能となる。式(21)で表される2次元の巡回型フィルタ処理とは、新しい補正画像の算出を、入力画像の画素(i,j)の水平方向および垂直方向それぞれについて「降順」に巡回して行う処理を意味する。
【0119】
以上のような処理を行うべく、逆フィルタ設定手段6は、図9に示したフローチャートに従って動作するように構成する。まず、本実施の形態に係る逆フィルタ設定手段6は、所定の範囲(0≦n≦N、0≦m≦M)内の4隅の座標(n,m)(n=0またはN、m=0またはM)のうち、所定の値となるフィルタ係数a(n,m)(n=0またはN、m=0またはM)に対応する座標を求める。ここでの所定の値とは、0以外の値である。それから、本実施の形態に係る逆フィルタ設定手段6は、当該求めた座標(n,m)(n=0またはN、m=0またはM)に対応させた所定の順番を、巡回型フィルタ処理の順番として決定する(ステップS1)。
【0120】
本実施の形態では、座標(0,0)に対応させた所定の順番は、入力画像の画素の水平方向、垂直方向それぞれについて昇順とする。同様に、座標(N,0)に対応させた所定の順番は、入力画像の画素の水平方向については降順、垂直方向については昇順とする。座標(0,M)に対応させた所定の順番は、入力画像の画素の水平方向については昇順、垂直方向については降順とする。座標(N,M)に対応させた所定の順番は、入力画像の画素の水平方向、垂直方向それぞれについて降順とする。
【0121】
これにより、例えば、まず、a(0,0)の値を調べ、a(0,0)≠0であれば、「式(12)で表される巡回型フィルタ処理、つまり、巡回型フィルタ処理の順番は、水平方向、垂直方向それぞれについて昇順」と決定し、ステップS2へ進む。そうでない場合は、a(N,0)の値を調べ、a(N,0)≠0であれば、「式(17)で表される巡回型フィルタ処理、つまり、巡回型フィルタ処理の順番は、水平方向については降順、垂直方向については昇順」と決定し、ステップS3へ進む。そうでない場合は、a(0,M)の値を調べ、a(0,M)≠0であれば、「式(19)で表される巡回型フィルタ処理、つまり、巡回型フィルタ処理の順番は、水平方向については昇順、垂直方向については降順」と決定し、ステップS4へ進む。そうでない場合は、「式(21)で表される巡回型フィルタ処理、つまり、巡回型フィルタ処理の順番は、水平方向、垂直方向それぞれについて降順」と決定し、ステップS5へ進む。
【0122】
ステップS2では、式(14)により、b(n,m)((n,m)≠(0,0))を求め、ステップS6へ進む。ステップS3では、式(16)により、b(n,m)((n,m)≠(0,0))を求め、ステップS6へ進む。ステップS4では、式(18)により、b(n,m)((n,m)≠(0,0))を求め、ステップS6へ進む。ステップS5では、式(20)により、b(n,m)((n,m)≠(0,0))を求め、ステップS6へ進む。これらステップS2〜S5後のステップS6では、式(15)によりb(0,0)を求める。
【0123】
以上のようにして、本実施の形態に係る逆フィルタ設定手段6は、フィルタ係数a(n,m)に基づいて、巡回型フィルタ処理を行うためのフィルタ係数b(n,m)、および、入力画像y(i,j)の画素(i,j)に対して巡回型フィルタ処理を施すべき順番を決定する動作を行う。なお、本実施の形態では、式(14)、式(16)、式(18)、式(20)において、B=0となる場合、すなわち、フィルタ係数a(n,m)のうち非零の値が1つしか存在しない場合には、b(n,m)=0((n,m)≠0、0≦n≦N、0≦m≦M)と設定する。
【0124】
そして、本実施の形態の巡回型フィルタ手段7は、逆フィルタ設定手段6で決定したフィルタ係数b(n,m)(0≦n≦N、0≦m≦M)、および、巡回型フィルタ処理の順番に基づいて、入力画像y(i,j)にフィルタ処理の逆処理に相当する巡回型フィルタ処理を施す。そして、巡回型フィルタ手段7は、この処理により生成した補正画像w(i,j)を出力する。
【0125】
巡回型フィルタ手段7から出力される補正画像w(i,j)は、記憶手段103に書き込まれる。なお、記憶手段103は、記憶手段100と物理的に同じハードディスク、メモリなどの記憶装置を共用してもよい。なお、逆フィルタ設定手段6、巡回型フィルタ手段7の各手段は、電子回路として構成してもよいし、マイクロコンピュータのようなプロセッサ上で動作するソフトウェアとして構成してもよい。
【0126】
以上のような動作を行う本実施の形態に係る画像補正装置によれば、入力画像の劣化を表すフィルタ係数a(n,m)を用いて、フィルタ処理の逆処理を入力画像に施す補正処理を、簡単なフィルタ演算処理により行うことができる。これにより、従来のRichardson-Lucyアルゴリズムのように反復処理を行ったり、FFTと逆FFTを繰り返すなどの処理が不要となるので、補正手段102の処理量(または回路規模ないし消費電力)を削減することができる。また、本実施の形態に係る劣化推定手段101は、実施の形態1に係る劣化推定手段と同じであるため、実施の形態1の効果も得ることができる。
【0127】
なお、本実施の形態においては、フィルタ係数a(n,m)のうち非零の値が1つしか存在しない場合には、b(n,m)=0((n,m)≠0、0≦n≦N、0≦m≦M)と設定するとした。しかしこれに限るものではなく、フィルタ係数a(n,m)のうち、非零の値が1つしか存在しない場合には、入力画像y(i,j)を巡回型フィルタ手段7に通さず、入力画像y(i,j)をそのまま補正画像w(i,j)として出力するように構成してもよい。
【0128】
また、本実施の形態では、逆フィルタ設定手段6は、ステップS1において、4隅の座標のフィルタ係数a(n,m)(n=0またはN、m=0またはM)それぞれの値が非零であるかを順に判定した。そして、その判定に基づいて、逆フィルタ設定手段6は、非零の値をとるフィルタ係数の座標(n,m)(n=0またはN、m=0またはM)に対応させた所定の順番を、巡回型フィルタ処理の順番として決定した。しかし、これに限ったものではなく、逆フィルタ設定手段6は、ステップS1において、4隅の座標(n,m)のうち、最大の絶対値をとるフィルタ係数a(n,m)(n=0またはN、m=0またはM)に対応する座標を求める。それから、逆フィルタ設定手段6は、当該求めた座標(n,m)(n=0またはN、m=0またはM)に対応させた所定の順番を、巡回型フィルタ処理の順番として決定してもよい。
【0129】
このように構成すると、逆フィルタ設定手段6は、最大の絶対値をとるフィルタ係数がa(0,0)である場合には、「巡回型フィルタ処理の順番は、水平方向、垂直方向それぞれについて昇順」と決定し、ステップS2へ進む。最大の絶対値をとるフィルタ係数がa(N,0)である場合には、「巡回型フィルタ処理の順番は、水平方向については降順、垂直方向については昇順」と決定し、ステップS3へ進む。最大の絶対値をとるフィルタ係数がa(0,M)である場合には、「巡回型フィルタ処理の順番は、水平方向については昇順、垂直方向については降順」と決定し、ステップS4へ進む。最大の絶対値をとるフィルタ係数がa(N,M)である場合には、「巡回型フィルタ処理の順番は、水平方向、垂直方向それぞれについては降順」と決定し、ステップS5へ進む。それ以降の動作は、上述のステップS6以降の動作と同じである。
【0130】
以上のように、4隅の座標のうち、最大の絶対値をとるフィルタ係数a(n,m)(n=0またはN、m=0またはM)に対応する座標を求め、その座標に対応させた所定の順番を上述の順番として決定するように構成すると、逆処理の精度が高くなり、補正画像w(i,j)の画質を向上させることができる。
【0131】
なお、以上の本実施の形態に係る画像補正装置は、実施の形態1と同じ劣化推定手段101を備えるとし、その劣化推定手段101からのフィルタ係数a(n,m)が、逆フィルタ設定手段6に入力されていた。しかしこれに限るものではなく、例えば、撮像装置に取り付けた手振れセンサにより手振れを検出し、その検出結果が、所定の範囲の線形フィルタのフィルタ係数a(n,m)(0≦n≦N、0≦m≦M)として、逆フィルタ設定手段6に入力される構成であってもよい。この場合も、上述と同様に、入力画像の劣化を表すフィルタ係数a(n,m)を用いて、フィルタ処理の逆処理を入力画像に施す補正処理を、簡単なフィルタ演算処理により行うことができる。なお、予め対象とする撮像装置が決まっており、その撮像装置の焦点ずれによるぼやけの補正を望む場合もある。その場合には、予め想定した焦点深度による複数のぼやけ特性をフィルタ係数a(n,m)として保持し、焦点深度の値から切り換えたフィルタ係数a(n,m)を、逆フィルタ設定手段6に入力する構成にしてもよい。
【0132】
<実施の形態3>
本実施の形態に係る画像補正装置は、逆フィルタ設定手段6の動作において、実施の形態2に係る画像補正装置と異なる。実施の形態2では、例えば、入力画像の劣化が、水平、垂直、または、斜め方向のいずれか一方向の1次元のフィルタ処理で表されると仮定した。そして、実施の形態2に係る逆フィルタ設定手段6は、4隅の座標のいずれかの座標(n,m)(n=0またはN、m=0またはM)を基準に、フィルタ係数b(n,m)、および、巡回型フィルタ処理の順番を決定した。しかしながら、焦点ずれによるぼやけのような劣化がある場合には、フィルタ係数a(n,m)の値の分布が円形に広がり、4隅のフィルタ係数a(n,m)がいずれも0となる場合もある。また、直線的な手振れの場合であっても、手振れの特性によっては、4隅のフィルタ係数a(n,m)の値が小さくなり、逆処理の精度が低くなることもある。
【0133】
そこで、本実施の形態に係る逆フィルタ設定手段6は、所定の範囲内の座標(n,m)(0≦n≦N、0≦m≦M)のうち、最大の絶対値をとるフィルタ係数a(N0,M0)に対応する一の座標(N0,M0)を求める。そして、当該求めた一の座標(N0,M0)を基準に所定の範囲(0≦n≦N、0≦m≦M)を複数の区分範囲S1〜S4に区分する。それから、一の区分範囲Sk(k=1〜4のいずれか一つの値)内のフィルタ係数a(n,m)((n,m)∈Sk)の値に基づいて、対応する区分範囲内のフィルタ係数b(n,m)((n,m)∈Sk)を決定する。
【0134】
このような、本実施の形態に係る逆フィルタ設定手段6の動作を、図10のフローチャートに従って説明する。なお、ステップS11前の動作は、実施の形態2のステップS1前の動作と同じである。まず、逆フィルタ設定手段6は、所定の範囲内の座標(n,m)(0≦n≦N、0≦m≦M)のうち、最大の絶対値をとるフィルタ係数フィルタ係数a(N0,M0)に対応する一の座標(N0,M0)を求める(ステップS11)。
【0135】
次のステップでは、所定の範囲(0≦n≦N、0≦m≦M)を、複数の区分範囲S1〜S4に区分する。本実施の形態では、区分範囲S1={(n,m);0≦n≦N0、0≦m≦M0}、区分範囲S2={(n,m);N0≦n≦N、0≦m≦M0}、区分範囲S3={(n,m);0≦n≦N0、M0≦m≦M}、区分範囲S4={(n,m);N0≦n≦N、M0≦m≦M}である。
【0136】
そして、この区分範囲S1〜S4の中から、一の区分範囲Sk(k=1〜4のいずれか一つの値)を選択する。この一の区分範囲Skを選択する方法としては、例えば、最も範囲の広い区分範囲Skを選択する。すなわち、水平方向については、N0>N−N0ならば、区分範囲S1,S3を選択し、そうでない場合には、S2,S4を選択する。垂直方向については、M0>M−M0ならば、区分範囲S1,S2を選択し、そうでない場合には、S3,S4を選択する。この2つの判定により、4つの区分範囲S1〜S4から一の区分範囲Skを選択できる。なお、ここでは、区分範囲S1〜S4の範囲の広さに基づいて選択する方法を説明したが、これに限るものではなく、各区分範囲S1〜S4のフィルタ係数a(n,m)の値の総和を求め、総和の最も大きい区分範囲を、一の区分範囲Skとして選択してもよい。
【0137】
その後、選択した一の区分範囲Skを、これまでの説明で用いた所定の範囲(0≦n≦N、0≦m≦M)に置き換える(ステップS12)。例えば、区分範囲S1が選択された場合には、a(n,m)(0≦n≦N、0≦m≦M)=a(n,m)(0≦n≦N0、0≦m≦M0)と置き換えて、ステップS13へ進む。同様にして、区分範囲S2が選択された場合には、a(n,m)(0≦n≦N、0≦m≦M)=a(n+N0,m)(0≦n≦N−N0、0≦m≦M0)と置き換えて、ステップS13へ進む。また、区分範囲S3が選択された場合には、a(n,m)(0≦n≦N、0≦m≦M)=a(n,m+M0)(0≦n≦N0、0≦m≦M−M0)と置き換えて、ステップS13へ進む。また、区分範囲S4が選択された場合には、a(n,m)(0≦n≦N、0≦m≦M)=a(n+N0,m+M0)(0≦n≦N−N0、0≦m≦M−M0)と置き換えて、ステップS13へ進む。
【0138】
ステップS12の後、逆フィルタ設定手段6は、そのステップS12で選択された区分範囲Skに対応させた所定の順番を、巡回型フィルタ手段7で行う巡回型フィルタ処理の順番として決定する(ステップS13)。例えば、ステップS12で区分範囲S1が選択された場合には、フィルタ係数a(n,m)(0≦n≦N、0≦m≦M)のうち、フィルタ係数a(N,M)の値が最も大きい。そのため、その場合には、逆フィルタ設定手段6は、巡回型フィルタ処理の順番を、入力画像の画素の水平方向、垂直方向それぞれについて降順と決定し、ステップS17に進むようにする。また、ステップS12で区分範囲S2が選択された場合には、フィルタ係数a(n,m)(0≦n≦N、0≦m≦M)のうち、フィルタ係数a(0,M)の値が最も大きい。そのため、その場合には、逆フィルタ設定手段6は、巡回型フィルタ処理の順番を、入力画像の画素の水平方向については昇順、垂直方向については降順と決定し、ステップS16に進むようにする。
【0139】
また、ステップS12で区分範囲S3が選択された場合には、フィルタ係数a(n,m)(0≦n≦N、0≦m≦M)のうち、フィルタ係数a(N,0)の値が最も大きい。そのため、その場合には、逆フィルタ設定手段6は、巡回型フィルタ処理の順番を、入力画像の画素の水平方向については降順、垂直方向それぞれについて昇順と決定し、ステップS15に進むようにする。また、ステップS12で区分範囲S4が選択された場合には、フィルタ係数a(n,m)(0≦n≦N、0≦m≦M)のうち、フィルタ係数a(0,0)の値が最も大きい。そのため、その場合には、逆フィルタ設定手段6は、巡回型フィルタ処理の順番を、入力画像の画素の水平方向、垂直方向それぞれについて昇順と決定し、ステップS14に進むようにする。
【0140】
ステップS14〜ステップS17の動作は、実施の形態2のステップS2〜ステップS5の動作と同じである。こうして、逆フィルタ設定手段6は、ステップS12で置き換えたフィルタ係数a(n,m)(0≦n≦N,0≦m≦M)の値に基づいて、フィルタ係数b(n,m)(0≦n≦、N、0≦m≦M)を決定する。このことを、ステップS12で置き換える前のフィルタ係数a(n,m)((n,m)∈Sk)で言い換えると、逆フィルタ設定手段6は、一の区分範囲Sk(k=1〜4のいずれか一つ)内のフィルタ係数a(n,m)((n,m)∈Sk)の値に基づいて、対応する区分範囲内のフィルタ係数b(n,m)((n,m)∈Sk)を決定する。ステップS14〜ステップS17以降に行うステップS18以降の動作は、実施の形態2のステップS6以降の動作と同じである。
【0141】
以上のような本実施の形態に係る画像補正装置によれば、最大の絶対値をとるフィルタ係数a(N0,M0)の座標(N0,M0)を基準に、フィルタ処理の逆処理に相当する巡回型フィルタ処理を行う。そのため、入力画像の劣化を表すフィルタ係数a(n,m)(0≦n≦N、0≦m≦M)の値が、所定の範囲内の4隅の座標いずれにおいても小さい場合でも、精度の良い逆処理を行うことができ、補正画像の画質をよくすることができるという効果を得ることができる。
【0142】
なお、本実施の形態に係るステップS13では、区分範囲Skに対応させた所定の順番を、巡回型フィルタ処理の順番として決定した。しかしこれに限るものではなく、実施の形態2のステップS1と同様にしてもよい。例えば、逆フィルタ設定手段6は、ステップS12で新たに設定した範囲(0≦n≦N、0≦m≦M)、つまり、一の区分範囲Sk内の4隅の座標のうち、所定の値をとるフィルタ係数a(n,m)に対応する座標を基準に、巡回型フィルタ処理の順番を決定してもよい。
【0143】
<実施の形態4>
実施の形態3に係る画像補正装置では、劣化推定手段101から出力された所定の範囲内のフィルタ係数a(n,m)(0≦n≦N,0≦m≦M)のうち、一の区分範囲Sk(k=1〜4のいずれか一つの値)内のフィルタ係数a(n,m)((n,m)∈Sk)に基づいて、フィルタ係数b(n,m)を決定した。しかしながら、残りの区分範囲Sl(l≠k)内に、大きな値をもつフィルタ係数a(n,m)((n,m)∈Sl)が存在する場合もある。そこで、本実施の形態に係る画像補正装置は、実施の形態3に係る逆フィルタ設定手段6の動作を繰り返すことにより、複数の区分範囲Sk内のフィルタ係数a(n,m)((n,m)∈Sk)の値に基づいて、対応する区分範囲内のフィルタ係数b(n,m)((n,m)∈Sk)を決定する。
【0144】
このような逆フィルタ設定手段6を備える画像補正装置の動作を、図11のフローチャートに従って説明する。まず、画像補正装置は、入力画像の劣化を表すフィルタ係数a(n,m)を、所定の範囲(n,m)(0≦n≦N,0≦m≦M)内で求める(ステップS21)。フィルタ係数a(n,m)の求め方としては、例えば、実施の形態1に示した劣化推定手段101を用いる。
【0145】
次に、逆フィルタ設定手段6は、所定の範囲内の座標(n,m)(0≦n≦N、0≦m≦M)のうち、最大の絶対値をとるフィルタ係数a(N0,M0)に対応する一の座標(N0,M0)を求める(ステップS22)。なお、ステップS23〜ステップS29までの動作は、実施の形態3のステップS11〜ステップ18までの動作と同じであるため、説明を省略する。これにより、逆フィルタ設定手段6は、ステップS24において、巡回型フィルタ処理の順番を決定し、ステップS25〜S29において、一の区分範囲Sk内のフィルタ係数b(n,m)((n,m)∈Sk)を決定する。
【0146】
巡回型フィルタ手段7は、逆フィルタ設定手段6が決定した巡回型フィルタ処理の順番と、一の区分範囲Sk内のフィルタ係数b(n,m)((n,m)∈Sk)とに基づいて、入力画像に巡回型フィルタ処理を施し、補正画像を求める(ステップS30)。
【0147】
ステップS30後、残りの区分範囲Sl(l≠k)内のフィルタ係数a(n,m)((n,m)∈Sl)の値に基づいて、残存する劣化があるか否かを判断する(ステップS31)。ステップS31で、残存する劣化があると判断された場合には、逆フィルタ設定手段6は、残りの区分範囲Slから、一の区分範囲を選択し、ステップS24に戻る。ステップS31で、残存する劣化がないと判断された場合には、画像補正処理を終了する。なお、ループによる2回目以降の各ステップの動作は、初回とほぼ同じであるが、ステップS30では、前回のループで求めた補正画像に対して巡回型フィルタ処理を施す。
【0148】
以上のような本実施の形態に係る画像補正装置によれば、一の区分範囲Sk内のフィルタ係数a(n,m)((n,m)∈Sk)のみを用いて補正するだけではなく、残りの区分範囲Sl(l≠k)内にも大きな値をとるフィルタ係数a(n,m)((n,m)∈Sl)がある場合には、そのフィルタ係数を用いて、補正を行うことができる。
【0149】
なお、上述の本実施の形態においては、ステップS31において、残りの区分範囲Sl(l≠k)内のフィルタ係数a(n,m)((n,m)∈Sl)の値に基づいて、残存する劣化があるか否かを判断し、劣化がある場合には、ステップS24に戻るものとした。しかし、ループさせる方法は、これに限るものではない。例えば、ステップS31の処理において、入力画像の代わりに、ステップS30で求めた補正画像を用いてステップS21の処理を行い、再度、所定の範囲全体のフィルタ係数a(n,m)(0≦n≦N,0≦m≦M)を求める。そして、求めたフィルタ係数a(n,m)(0≦n≦N,0≦m≦M)の値に基づいて、残存する劣化があるか否かを判断し、劣化がある場合には、ステップS22に戻るものであってもよい。
【図面の簡単な説明】
【0150】
【図1】実施の形態1に係る画像補正装置の構成を示すブロック図である。
【図2】実施の形態1に係る差分値決定領域を示す概念図である。
【図3】実施の形態1に係る窓領域を示す概念図である。
【図4】実施の形態1に係る勾配算出手段の構成を示すブロック図である。
【図5】実施の形態1に係る勾配算出手段の動作を示す図である。
【図6】実施の形態1に係る勾配算出手段の構成を示すブロック図である。
【図7】実施の形態1に係る勾配算出手段の構成を示すブロック図である。
【図8】実施の形態2に係る画像補正装置の構成を示すブロック図である。
【図9】実施の形態2に係る画像補正装置の動作を示すフローチャートである。
【図10】実施の形態3に係る画像補正装置の動作を示すフローチャートである。
【図11】実施の形態4に係る画像補正装置の動作を示すフローチャートである。
【符号の説明】
【0151】
2 最大局所差分値決定手段、3 勾配算出手段、4 フィルタ範囲決定手段、5 フィルタ係数決定手段、6 逆フィルタ設定手段、7 巡回型フィルタ手段、100,103 記憶手段、101 劣化推定手段、102 補正手段、201 画像領域、202 差分値決定領域、203 注目画素、204,204a,204b 窓領域、205 近傍画素、301 入力画像評価手段、302 領域選択手段、303 勾配算出範囲決定手段、304 減算手段、305 最大値選択手段。
【技術分野】
【0001】
本発明は、デジタルカメラ、プリンタ、パーソナルコンピュータ、テレビなどの画像撮影機器および画像表示機器に適用される画像補正装置に関し、特に、手振れ等に起因した画像劣化を画像処理によって補正する画像補正装置に関するものである。
【背景技術】
【0002】
従来から、デジタルカメラやカメラ付き携帯端末機器における絞り値、焦点距離、フォーカス等の収差による画像劣化や、手振れによる画像劣化を補正または修復する機能が、種々提案されている。例えば、特許文献1に記載されているように、レンズ等の光学系と、CCDやC−MOSセンサ等の撮像素子とを有する近年のデジタルカメラは、手振れを補正するために、光学系の振動を軽減する機械的な機構を備えている。また、特許文献2に記載されているように、撮像素子で撮影された画像の画像データを変換する演算回路を用いて、画像を補正する技術も提案されている。
【0003】
上記従来技術においては、手振れによりカメラが振動したときに、その振動をセンサで検出し、検出された信号、すなわち、手振れによるカメラの移動速度に基づいて補正量を算出する。そして、算出した補正量に基づいて、光学レンズおよび/または撮像素子を移動させたり、画像処理演算によって撮像素子の各画素の値を補正したりすることによって、手振れに起因する画像劣化を補正または防止する。その結果、手振れに起因する画像劣化を補正した画像または画像劣化を防止した画像が、フラッシュメモリ等の記憶媒体に記録される。
【0004】
【特許文献1】特開2001−188272号公報(第7頁、第1図)
【特許文献2】特開2000−224461号公報(第8〜9頁、第9〜10図)
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上述従来技術においては、撮影時におけるカメラの移動速度を検出するための手振れセンサが必要となるので、装置の構成が複雑になるという問題があった。また、手振れセンサの出力に基づいて画像劣化を補正する必要があるが、撮像装置と連動しないプリンタやパーソナルコンピュータのような画像表示機器に手振れ画像が入力された場合には、画像を補正できないという問題があった。
【0006】
本発明は、上記のような問題点を解決するためになされたものであり、手振れセンサがなくても、入力画像の補正処理が実施可能な画像補正装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る画像補正装置は、入力画像の画像領域の全部または一部からなる差分値決定領域内の各注目画素について、当該注目画素の画像データと、当該注目画素の周辺に設定される窓領域内の近傍画素の画像データとの差分からなる局所差分値を、当該注目画素に対する当該近傍画素の相対位置を示す画素単位の座標ごとに算出し、前記差分値決定領域内の全ての前記注目画素に関する前記座標ごとの前記局所差分値の最大値を、前記座標ごとの窓領域最大局所差分値として決定する最大局所差分値決定手段を備える。そして、前記座標の水平方向または垂直方向の少なくとも一方向において隣り合う前記窓領域最大局所差分値同士の差分を、最大局所差分勾配値として前記座標ごとに決定する勾配算出手段と、前記勾配算出手段で決定された前記最大局所差分勾配値のうち、所定値以上の前記最大局所差分勾配値に対応する前記座標の範囲をフィルタ係数存在範囲として求めるフィルタ範囲決定手段とを備える。そして、前記フィルタ範囲決定手段で決定された前記フィルタ係数存在範囲内の前記最大局所差分勾配値に基づいて、当該フィルタ係数存在範囲内のフィルタ係数を算出するフィルタ係数決定手段と、前記フィルタ係数算出手段で算出された前記フィルタ係数を用いて、フィルタ処理の逆処理を前記入力画像に施す補正手段とを備える。
【発明の効果】
【0008】
本発明の画像補正装置によれば、入力画像の劣化を表すフィルタ係数を入力画像のみから算出し、このフィルタ係数を用いて入力画像に補正処理を行う。そのため、手振れセンサがなくても、入力画像の補正処理を実施することができる。
【発明を実施するための最良の形態】
【0009】
<実施の形態1>
図1は、本実施の形態に係る画像補正装置の構成を示すブロック図である。図に示すように、本実施の形態に係る画像補正装置は、記憶手段100と、最大局所差分値決定手段2と、勾配算出手段3と、フィルタ範囲決定手段4と、フィルタ係数決定手段5と、補正手段102と、記憶手段103とを備える。最大局所差分値決定手段2、および、勾配算出手段3、および、フィルタ範囲決定手段4、および、フィルタ係数決定手段5は、劣化推定手段101を構成している。
【0010】
記憶手段100には、画像が記憶されている。最大局所差分値決定手段2には、記憶手段100から出力された画像が入力画像として入力される。最大局所差分値決定手段2は、記憶手段100から出力される入力画像の窓領域最大局所差分値を求める。勾配算出手段3は、最大局所差分値決定手段2から出力される窓領域最大局所差分値から最大局所差分勾配値を求める。フィルタ範囲決定手段4は、勾配算出手段3から出力される最大局所差分勾配値からフィルタ係数存在範囲を求める。
【0011】
フィルタ係数決定手段5は、勾配算出手段3から出力される最大局所差分勾配値と、フィルタ範囲決定手段4から出力されるフィルタ係数存在範囲とから、フィルタ係数を求める。補正手段102は、フィルタ係数決定手段5から出力されるフィルタ係数を用いて、記憶手段100から出力された入力画像を補正することにより、補正画像を生成する。記憶手段103は、補正手段102から出力される補正画像を記憶する。
【0012】
次に基本動作について説明する。一般に手振れや焦点ずれなどの劣化は、線形で表すことができると考えられる。つまり、劣化のある入力画像の画像データをy(i,j)(i,j;画素単位の座標、0≦i<I、0≦j<J)とし、入力画像の劣化を表す線形フィルタのフィルタ係数をa(n,m)(0≦n≦N、0≦m≦M)とし、劣化のない画像データをx(i,j)とすると、次式(1)の関係が成り立つ。
【0013】
【数1】
【0014】
本実施の形態に係る画像補正装置の劣化推定手段101は、記憶手段100からの入力画像の画像データy(i,j)(以下、入力画像y(i,j)と記すこともある)から、その入力画像の劣化を表すフィルタ係数a(n,m)を推定する。その後、本実施の形態に係る画像補正装置の補正手段102は、所定の範囲(n,m)(0≦n≦N、0≦m≦M)のフィルタ係数a(n,m)を用いて、フィルタ処理の逆処理を入力画像y(i,j)に施す。こうして、本実施の形態に係る画像補正装置は、劣化のない画像の画像データ(以下、画像x(i,j)と記すこともある)に相当する補正画像の画像データ(以下、補正画像w(i,j)と記すこともある)を得るように構成されている。
【0015】
以下、図1に従って、本実施の形態に係る画像補正装置の詳細な動作を説明する。まず、記憶手段100には、入力画像y(i,j)(0≦i<I、0≦j<J)が保存されている。記憶手段100から読み出された入力画像y(i,j)は、最大局所差分値決定手段2に入力される。本実施の形態に係る最大局所差分値決定手段2は、図2に示すように、I画素×J画素の入力画像の画像領域201の一部、例えば、中央の1/4程度の領域(Ic画素×Jc画素)を差分値決定領域202と定める。最大局所差分値決定手段2では、差分値決定領域202内の各注目画素203について、次式(2)で示される局所差分値d(i,j)(n,m)を求める。
【0016】
【数2】
【0017】
この式(2)において、y(i,j)(Is≦i≦Is+Ic,Js≦j≦Js+Jc)は、注目画素203についての画像データである。図3に示すように、窓領域204は、各注目画素203の周辺に予め設定される。式(2)に係るy(i+n,j+m)は、窓領域204内の近傍画素205の画像データである。座標(n,m)は、当該注目画素203に対する近傍画素205の相対位置を示す画素単位の座標である。
【0018】
図3に係る窓領域204は、注目画素203を基準(0,0)にして水平方向には左右(−N〜N)に広がるように設定され、垂直方向には上方向(0〜M)のみに広がるように設定されている。本実施の形態に係る窓領域204は、注目画素203において互いに隣接する第1,第2の窓領域を含む。本実施の形態では、第1の窓領域は、窓領域204の中心線から左側の窓領域204a(−N≦n≦0、0≦m≦M)であり、第2の窓領域は、窓領域204の中心線から右側の窓領域204b(0≦n≦N、0≦m≦M)であるものとする。なお、窓領域204の大きさは、後に述べるように、フィルタ係数の存在範囲に影響するので、画像補正装置を接続するシステム、手振れなどの劣化の起こり得る範囲、あるいは、補正対象とする劣化の範囲に合わせて設定する。
【0019】
以上のように、最大局所差分値決定手段2は、入力画像の画像領域201の一部からなる差分値決定領域202内の各注目画素203について、当該注目画素203の画像データy(i,j)と、当該注目画素203の周辺に設定される窓領域204内の近傍画素205の画像データy(i+n,j+m)との差分からなる局所差分値d(i,j)(n,m)を算出する。最大局所差分値決定手段2は、その局所差分値d(i,j)(n,m)を、注目画素203に対する近傍画素205の相対位置を示す画素単位の座標(n,m)ごとに算出する。
【0020】
次に、最大局所差分値決定手段2は、次式(3)のように、差分値決定領域202内の全ての注目画素203に関する座標(n,m)ごとの局所差分値d(i,j)(n,m)の最大値を、座標(n,m)ごとの窓領域最大局所差分値D(n,m)(−N≦n≦N,0≦m≦M)として決定する。
【0021】
【数3】
【0022】
なお、本実施の形態では、窓領域204は、水平方向には−N≦n≦Nとして左右方向に設定したのに対し、垂直方向には0≦m≦Mとして上方向のみに設定した。このように設定した理由は、基本的に、D(n,m)=D(−n,−m)が成り立つため、注目画素203を中心とする領域のうち、上半分または下半分または左半分または右半分のいずれかの領域を求めれば十分となるからである。
【0023】
こうして求められた窓領域最大局所差分値D(n,m)は、例えば、入力画像が手振れなどの劣化のない自然画像である場合、所定の閾値α(>0)を用いて、D(n,m)>α(ただし、(n,m)≠(0,0))となる特徴がある。例えば、入力画像が、画素(N’,M’)の範囲外で劣化していない場合、すなわち、式(1)において、a(n,m)=0(n>N’またはm>M’)の場合、D(n,m)>α(n<−N’またはn>N’またはm>M’)となる特徴がある。
【0024】
さらに、例えば、入力画像が水平方向のみの手振れにより劣化している場合、すなわち、式(1)において、a(n,m)=0(0≦n≦N、m>0),a(n,0)>0(0≦n≦N)の場合、窓領域最大局所差分値D(n,m)は、D(n,m)>α(0≦n≦N、m>0)となる。発明者は、以上のような特徴を有する窓領域最大局所差分値D(n,m)について考察を行った。その結果、座標(n,0)の水平方向において隣り合う窓領域最大局所差分値同士の差分からなる勾配値h(n)(=D(n+1,0)−D(n,0))は、フィルタ係数a(n,0)にほぼ比例する傾向があることを見出した。
【0025】
実際に、画像x(i,j)、つまり、手振れのない自然画像をもとに、N=4,M=0,a(n,0)=0.2(0≦n≦N)として、式(1)により、水平方向に劣化を有する入力画像y(i,j)を作成し、その窓領域最大局所差分値D(n,m)を求めた。そのときのDの結果は、D(0,0)=0,D(1,0)=43,D(2,0)=82,D(3,0)=116,D(4,0)=149,D(5,0)=178,D(6,0)=179,D(n,0)≧179(n>6)となった。
【0026】
それらの差分からなる勾配値h(n)(=D(n+1,0)−D(n,0))を求めると、h(0)=43,h(1)=39,h(2)=34,h(3)=33,h(4)=29,h(5)=1,h(n)<2(n>6)となった。このように、式(1)のフィルタ係数a(n,0)が一定の値(上の例では0.2)である場合には、勾配値h(0)〜h(4)もほぼ一定の値となった。
【0027】
次に、手振れのない自然画像x(i,j)をもとに、N=4,M=0として、式(1)により、水平方向に劣化を有する入力画像y(i,j)を作成し、その窓領域最大局所差分値D(n,m)を求めた。ただし、ここでは、上のように、式(1)のフィルタ係数a(n,0)を一定の値にするのではなく、a(0,0)=3/11,a(1,0)=2/11,a(2,0)=1/11,a(3,0)=2/11,a(4,0)=3/11とした。つまり、nの値の順に大、中、小、中、大の比重をつけた。そのときのDの結果は、D(0,0)=0,D(1,0)=55,D(2,0)=88,D(3,0)=104,D(4,0)=137,D(5,0)=176,D(6,0)=179,D(n,0)≧179(n>6)となった。
【0028】
それらの差分からなる勾配値h(n)を求めると、h(0)=55,h(1)=33,h(2)=16,h(3)=33,h(4)=39,h(5)=3,h(n)<2(n>6)となり、nの値の順に大、中、小、中、大の比重となった。このように、式(1)のフィルタ係数a(n,0)に応じて、勾配値h(0)〜h(4)も変化した。
【0029】
以上のことから、若干の誤差はあるものの、水平方向の手振れがある場合には、勾配値h(n)(=D(n+1,0)−D(n,0))から、手振れのフィルタ係数a(n,m)を推定することができる。
【0030】
同様に、例えば、入力画像が垂直方向のみの手振れにより劣化している場合、すなわち、式(1)において、a(n,m)=0(n>0),a(0,m)>0(0≦m≦M)の場合、窓領域最大局所差分値D(n,m)は、D(n,m)>α(n>0)となる。発明者は、座標(0,m)の垂直方向において隣り合う窓領域最大局所差分値同士の差分からなる勾配値h(m)(=D(0,m+1)−D(0,m))についても調べた。その結果、上述と同様に、勾配値h(m)は、フィルタ係数a(0,m)にほぼ比例する傾向があることを見出した。このような傾向により、垂直方向の手振れがある場合には、勾配値h(m)(=D(0、m+1)−D(0,m))から、手振れのフィルタ係数a(n,m)を推定することができる。
【0031】
なお、以上のように、座標の水平方向または垂直方向において隣り合う窓領域最大局所差分値D(n,m)同士の差分からなる勾配値hが、水平方向または垂直方向の手振れを表すフィルタ係数a(n,m)に比例することは、劣化のない画像x(i,j)を離散的な変換点を持つ画像としてモデル化することで、説明することができる。
【0032】
以上のようにすれば、フィルタ係数a(n,m)を推定することができる。そこで、本実施の形態に係る勾配算出手段3は、座標(n,m)の水平方向または垂直方向の少なくとも一方向において隣り合う窓領域最大局所差分値D(n,m)同士の差分を、最大局所差分勾配値h(n,m)として座標(n,m)ごとに決定して出力する。
【0033】
次に、このような動作を行う勾配算出手段3の構成について説明する。図4は、勾配算出手段3の構成例を示すブロック図である。図に示すように、勾配算出手段3は、入力画像評価手段301と、領域選択手段302と、勾配算出範囲決定手段303と、減算手段304と、最大値選択手段305とを備える。次に、勾配算出手段3が備える各手段の動作を図4に基づき説明する。
【0034】
まず、最大局所差分値決定手段2から出力される窓領域最大局所差分値D(n,m)(−N≦n≦N,0≦m≦M)は、入力画像評価手段301に入力される。入力画像評価手段301は、最大局所差分値決定手段2で決定された窓領域最大局所差分値D(n,m)(−N≦n≦N,0≦m≦M)に基づいて、手振れの範囲を推定するための所定の閾値αを決定する。
【0035】
所定の閾値αは、例えば、D(n,m)(−N≦n≦N,0≦m≦M)の最大値Dmaxと、予め定めた定数γ(0<γ≦1)とを用いて、α=Dmax・γとして決定してもよい。あるいは、D(n,m)(−N≦n≦N,0≦m≦M)の平均値と標準偏差をそれぞれ、Dave,Dσとし、α=Dave−Dσとしてもよい。
【0036】
本実施の形態に係る勾配算出手段3は、左側の窓領域204a内の窓領域最大局所差分値D(n,m)と、右側の窓領域204b内の窓領域最大局所差分値D(n,m)とに基づいて、左側の窓領域204aまたは右側の窓領域204bのいずれかを選択する。本実施の形態では、勾配算出手段3が備える領域選択手段302が、左側の窓領域204a内の窓領域最大局所差分値と、右側の窓領域204b内の窓領域最大局所差分値とに基づいて、左側の窓領域204aまたは右側の窓領域204bのうち、劣化特性が強く表れている窓領域を選択する。
【0037】
具体的には、例えば、領域選択手段302は、入力画像評価手段301から出力される所定の閾値αより小さくなる窓領域最大局所差分値D(n,m)の水平座標nの絶対値の最大値を、左側の窓領域204aおよび右側の窓領域204bについて比較する。すなわち、n_min=Max{n;D(−n,m)<α,0≦n≦N,0≦m≦M}と、n_max=Max{n;D(n,m)<α,0≦n≦N,0≦m≦M}とを比較する。そして、n_max>n_minであれば、図5(a)に示すように、右側の窓領域204b(0≦n≦N、0≦m≦M)を選択する。一方、そうでなければ、図5(b)に示すように、左側の窓領域204a(−N≦n≦0、0≦m≦M)を選択する。
【0038】
次に、勾配算出範囲決定手段303は、窓領域最大局所差分値D(n,m)と、入力画像評価手段301で決定された所定の閾値αとに基づいて、最大局所差分勾配値h(n,m)を算出すべき座標(n,m)の範囲を決定する。本実施の形態では、領域選択手段302で選択された窓領域204a,bの範囲が、勾配算出範囲決定手段303に出力される。そして、本実施の形態に係る勾配算出範囲決定手段303は、領域選択手段302で選択された領域の窓領域最大局所差分値D(n,m)について、以下の動作を行う。なお、以下において、勾配算出範囲決定手段303が決定する座標(n,m)の範囲を、勾配算出範囲と記すこともある。
【0039】
勾配算出範囲決定手段303は、入力画像評価手段301から出力される所定の閾値αより小さくなる窓領域最大局所差分値D(n,m)の垂直座標mの最大値を求める。すなわち、m_max=Max{m;D(n,m)<α,−N≦n≦N,0≦m≦M}を求める。そして、勾配算出範囲決定手段303は、領域選択手段302で右側の窓領域204bを選択した場合には、座標(n,m)の範囲(0≦n≦n_max、0≦m≦m_max)を勾配算出範囲とする。一方、勾配算出範囲決定手段303は、領域選択手段302で左側の窓領域204aを選択した場合には、座標(n,m)の範囲(−n_min≦n≦0、0≦m≦m_max)を勾配算出範囲とする。
【0040】
減算手段304は、領域選択手段302で選択した窓領域のうち、勾配算出範囲決定手段303で決定された勾配算出範囲内において、座標(n,m)の水平方向および垂直方向において隣り合う窓領域最大局所差分値D(n,m)同士の差分からなる勾配値を算出する。すなわち、勾配算出範囲が、0≦n≦n_max、0≦m≦m_maxである場合には、水平方向の勾配値dh(n,m)(=D(n+1,m)−D(n,m))と、垂直方向の勾配値dv(n,m)(=D(n,m+1)−D(n,m))とを算出する。勾配算出範囲が、−n_min≦n≦0、0≦m≦m_maxである場合には、水平方向の勾配値dh(n,m)(=D(n−1,m)−D(n,m))と、垂直方向の勾配値dv(n,m)(=D(n,m+1)−D(n,m))とを算出する。
【0041】
最大値選択手段305は、減算手段304から出力される2つの勾配値dh(n,m),dv(n,m)のうち、大きい方の値を選択して求める。すなわち、h’(n,m)=Max{dh(n,m),dv(n,m)}を求める。なお、表示の都合上、勾配算出範囲が0≦n≦n_max、0≦m≦m_maxであった場合には、次式(4)で表されるhに置き換え、勾配算出範囲が−n_min≦n≦0、0≦m≦m_maxであった場合には、次式(5)で表されるhに置き換えて、以下説明を行う。なお、次式(4)において、n_lim=n_maxであり、次式(5)において、n_lim=n_minである。
【0042】
【数4】
【0043】
【数5】
【0044】
最大値選択手段305は、以上により求めたh(n,m)(0≦n≦n_lim、0≦m≦m_max)を、最大局所差分勾配値として出力する。以上をまとまると、本実施の形態に係る勾配算出手段3は、座標(n,m)の水平方向または垂直方向の少なくとも一方向において隣り合う窓領域最大局所差分値D(n,m)同士の差分を、最大局所差分勾配値h(n,m)として所定の座標(n,m)ごとに決定して出力する。また、本実施の形態に係る勾配算出手段3は、領域選択手段302が選択した窓領域204a,b内の座標についてのみ、最大局所差分勾配値h(n,m)を算出する。また、本実施の形態に係る勾配算出手段3は、勾配算出範囲決定手段303で決定された範囲内の座標についてのみ、最大局所差分勾配値h(n,m)を算出する。
【0045】
こうして、勾配算出手段3から出力される最大局所差分勾配値h(n,m)は、上述したように、座標(n,m)の水平方向または垂直方向において隣り合う窓領域最大局所差分値D(n,m)の差分値となっている。そのため、この最大局所差分勾配値h(n,m)の値は、先に例示したように、入力画像y(i,j)の劣化を表すフィルタ係数a(n,m)の値に比例すると考えられる。しかしながら、先の例示において、h(5)、h(n)(n>6)が微小な値を有していたように、実際の劣化のある入力画像y(i,j)においては、フィルタ係数a(n,m)の存在範囲外であっても、最大局所差分勾配値h(n,m)は完全には0とならないことがある。
【0046】
そこで、図1に係るフィルタ範囲決定手段4は、勾配算出手段3で決定された最大局所差分勾配値h(n,m)のうち、予め定めた所定値ε(≧0)以上の最大局所差分勾配値に対応する座標(n,m)の範囲をフィルタ係数存在範囲として求める。すなわち、次式(6)で求まる範囲Sをフィルタ係数存在範囲として出力する。
【0047】
【数6】
【0048】
図1に係るフィルタ係数決定手段5は、フィルタ範囲決定手段4で決定されたフィルタ係数存在範囲S内の最大局所差分勾配値h(n,m)((n,m)∈S)に基づいて、当該フィルタ係数存在範囲S内のフィルタ係数a(n,m)を算出する。本実施の形態では、フィルタ係数決定手段5は、勾配算出手段3から出力される最大局所差分勾配値h(n,m)と、フィルタ範囲決定手段4から出力されるフィルタ係数存在範囲Sとに基づいて、定数Aを次式(7)から求める。
【0049】
【数7】
【0050】
そして、フィルタ係数決定手段5は、フィルタ係数存在範囲S内の最大局所差分勾配値h(n,m)と、定数Aとに基づいて、次式(8)の上側の式から、フィルタ係数存在範囲S内のフィルタ係数a(n,m)((n,m)∈S)を算出する。そして、フィルタ係数決定手段5は、残りの範囲内のフィルタ係数については、次式(8)の下側の式のように置き換えることにより、所定の範囲内の全てのフィルタ係数a(n,m)(0≦n≦N、0≦m≦M)を決定する。
【0051】
【数8】
【0052】
なお、上記において、フィルタ範囲決定手段4は、h(n,m)≧εとなる座標(n,m)のフィルタ係数存在範囲Sを求めたが、これに限るものではない。例えば、フィルタ範囲決定手段4は、h(n,m)<εとなる最大局所差分勾配値h(n,m)に対して、h(n,m)=0と値を置き換え、フィルタ係数存在範囲Sを、S={(n,m;0≦n≦n_lim、0≦m≦m_max)}として出力するように構成してもよい。この場合も、フィルタ係数決定手段5から出力されるフィルタ係数a(n,m)は、上述の構成と全く同じ結果になる。
【0053】
以上に説明した最大局所差分値決定手段2、および、勾配算出手段3、および、フィルタ範囲決定手段4、および、フィルタ係数決定手段5からなる劣化推定手段101は、入力画像y(i,j)(0≦i<I,0≦j<J)から、その入力画像の劣化を表す線形フィルタのフィルタ係数a(n,m)(0≦n≦N,0≦m≦M)を出力する。
【0054】
劣化推定手段101が備えるフィルタ係数決定手段5から出力されたフィルタ係数a(n,m)は、補正手段102に入力される。図1に係る補正手段102は、フィルタ係数a(n,m)を用いて、フィルタ処理の逆処理を入力画像y(i,j)に施し、補正画像w(i,j)として出力する。フィルタ処理の逆処理は、一般にデコンボリューションと呼ばれ、例えば、Richardson-Lucyアルゴリズムや、ウィーナフィルタなどの方式を使用することができる。
【0055】
補正手段102から出力される補正画像w(i,j)は、記憶手段103に書き込まれる。なお、記憶手段103は、記憶手段100と物理的に同じハードディスク、メモリなどの記憶装置を共用してもよい。
【0056】
以上のように、本実施の形態に係る画像補正装置は、入力画像y(i,j)のみから、その入力画像の劣化を表すフィルタ係数a(n,m)を推定し、このフィルタ係数を用いて、入力画像に補正処理を施すことができる。そのため、撮影時に劣化を特定する手振れセンサなどが不要となるという効果がある。また、撮像装置と連動しない画像表示機器に適用しても、画像の劣化を推定し、補正画像w(i,j)が得られるという効果がある。
【0057】
なお、本実施の形態においては、入力画像y(i,j)は、記憶手段100に記憶された画像であるものとして、劣化推定手段101および補正手段102に入力される構成とした。しかしこれに限るものではなく、入力画像y(i,j)は、CCD、CMOSなどの撮像装置の画像であるものとして、直接、劣化推定手段101および補正手段102に入力される構成であってもよい。
【0058】
また、本実施の形態に係る最大局所差分値決定手段2、勾配算出手段3、フィルタ範囲決定手段4、フィルタ係数決定手段5、および、補正手段102の各手段は、電子回路として構成してもよいし、マイクロコンピュータのようなプロセッサ上で動作するソフトウェアとして構成してもよい。
【0059】
また、本実施の形態に係る最大局所差分値決定手段2は、入力画像の画像領域201のうち、中央の1/4程度の領域を差分値決定領域202とした。しかし、差分値決定領域202はこれに限るものではなく、入力画像の画像領域201の全体または一部からなる任意の領域に設定してもよい。例えば、画像領域201の中心にいる人物に焦点を合わせて写真を撮影するような場合には、画面の中心では焦点が合い、画面の周辺部では遠景となって焦点が合わないことがある。このような場合には、本実施の形態で記述したように、入力画像の画像領域201の中央部の領域を差分値決定領域202とすることにより、中心にいる人物に合わせて、手振れによる入力画像の劣化を表すフィルタ係数a(n,m)を効果的に検出することができる。逆に、焦点の合っていない遠景のぼやけを補正したい場合には、画像領域201の全体、または、周辺部の領域を差分値決定領域202としてもよい。
【0060】
また、顔検出等の技術を用いて、画像領域201上において焦点を合わすべき位置を指定する手段をさらに備えている場合は、焦点を合わせた位置周辺の領域を差分値決定領域202とすることにより、上述のフィルタ係数a(n,m)を少ない演算量で検出することができる。
【0061】
また、本実施の形態においては、最大局所差分値決定手段2は、注目画素203から、水平方向に−N≦n≦N、垂直方向に0≦m≦Mの範囲を窓領域204として、窓領域最大局所差分値D(n,m)を求めた。しかし、窓領域204の範囲は、注目画素203から、水平方向に0≦n≦N、垂直方向に−M≦m≦Mとしても、上述と全く同じ効果を得ることができる。基本的に、D(n,m)=D(−n,−m)が成り立つため、−N≦n≦N、−M≦m≦Mの座標(n,m)の領域のうち、半分の領域を窓領域204とすることで、演算量を削減することができる。
【0062】
また、本実施の形態に係る勾配算出手段3は、領域選択手段302を備える構成とし、この領域選択手段302により、左側の窓領域204a(−N≦n≦0)および右側の窓領域204b(0≦n≦N)のうち、入力画像の劣化特性が強く表れている方を選択するとした。しかしこれに限るものではなく、勾配算出手段3は、左右の領域を選択せずに、窓領域204全体から、最大局所差分勾配値hを求めるものであってもよい。この場合の勾配算出手段3の構成を、図6を用いて以下説明する。
【0063】
図6に係る勾配算出手段3が備える勾配算出範囲決定手段303は、入力画像評価手段301で決定された所定の閾値αに基づいて、上述のn_min、n_max、m_maxを求める。そして、勾配算出範囲決定手段303は、座標(n,m)の範囲(−n_min≦n≦n_max、0≦m≦m_max)を勾配算出範囲とする。
【0064】
減算手段304は、勾配算出範囲決定手段303で決定した勾配算出範囲について、座標(n,m)の水平方向および垂直方向において隣り合う窓領域最大局所差分値D(n,m)同士の差分からなる勾配値を算出する。例えば、0≦n≦n_max、0≦m≦m_maxの範囲については、水平方向の勾配値dh1(n,m)(=D(n+1,m)−D(n,m))と、垂直方向の勾配値dv1(n,m)(=D(n,m+1)−D(n,m))とを算出する。−n_min≦n≦0、0≦m≦m_maxの範囲については、水平方向の勾配値dh2(n,m)(=D(n−1,m)−D(n,m))と、垂直方向の勾配値dv2(n,m)(=D(n,m+1)−D(n,m))とを算出する。
【0065】
最大値選択手段305は、減算手段304から出力される4つの勾配値から、次式(9)により、h(n,m)を求める(ただし、n_lim=Max{n_max,n_min})。そして、最大値選択手段305は、求めたh(n,m)(0≦n≦n_lim、0≦m≦m_max)を、最大局所差分勾配値として出力する。
【0066】
【数9】
【0067】
このように、勾配算出手段3が、領域選択手段302を備えず、左側の窓領域204aおよび右側の窓領域204bのうち、入力画像の劣化特性が強く表れている方を選択しなくても、最大局所差分勾配値h(n,m)を出力することができる。しかしながら、通常、入力画像の劣化が手振れ起因である場合、例えば、右上方向の手振れと、この方向と90度をなす左上方向の手振れとが互いに同程度の強度で混在することは少ない。そのため、本実施の形態のように、勾配算出手段3が、領域選択手段302により、左側の窓領域204aまたは右側の窓領域204bのいずれかの窓領域を選択することで、減算手段304の演算量を削減することができる。
【0068】
なお、この効果が得られる構成を説明するために、本実施の形態では、注目画素203において互いに隣接する第1,第2の窓領域は、左側の窓領域204aおよび右側の窓領域204bであるものとした。そして、勾配算出手段3は、領域選択手段302により、それらの窓領域204a,bのうち、入力画像の劣化特性が強く表れている窓領域を選択した。しかし、選択される窓領域は、左側の窓領域204aおよび右側の窓領域204bに限るものではない。
【0069】
例えば、最大局所差分値決定手段2において設定された窓領域204が、0≦n≦N(または−N≦n≦0)、−M≦m≦Mのように、水平方向が注目画素203の右方向(または左方向)に広がり、垂直方向は上下方向に広がるように設定されている場合を想定する。この場合、第1,第2の窓領域のいずれか一方は、窓領域204の中心から上側の窓領域(0≦m≦M)であるとし、他方は、窓領域204の中心から下側の窓領域(−M≦m≦0)であるとしてもよい。そして、勾配算出手段3は、領域選択手段302により、上下の窓領域のうち、入力画像の劣化特性が強く表れている窓領域を選択するものであってもよい。このように構成しても、上述と全く同じ効果を得ることができる。
【0070】
また、本実施の形態においては、領域選択手段302は、入力画像評価手段301で決定された所定の閾値αより小さくなる窓領域最大局所差分値D(n,m)の水平座標nの絶対値の最大値を、左側の窓領域204aおよび右側の窓領域204bについて比較し、その比較に基づいて、いずれか一方の窓領域を選択した。しかし、領域選択の方法はこれに限るものではない。窓領域最大局所差分値D(n,m)の値が小さいほど、手振れなどの画像劣化特性が表れるので、左右の窓領域204a,bのうち、D(n,m)の値が小さい領域を選択するように構成すればよい。
【0071】
例えば、左の窓領域204aにおけるD(n,m)の総和と、右の窓領域204bにおけるD(n,m)の総和とを比較して、窓領域を選択してもよい。すなわち、次式(10)により、左の窓領域204aにおけるD(n,m)の総和Dlと、右の窓領域204bにおけるD(n,m)の総和Drとを求める。そして、領域選択手段302は、Dl>Drならば、右の窓領域204bを選択し、Dl>Drでない場合には、左の窓領域204aを選択する。
【0072】
【数10】
【0073】
また、本実施の形態に係る勾配算出手段3は、入力画像評価手段301と、勾配算出範囲決定手段303とを備える構成とした。そして、勾配算出範囲決定手段303は、入力画像評価手段301から出力される所定の閾値αと、窓領域最大局所差分値D(n,m)とから、最大局所差分勾配値を算出すべき勾配算出範囲を決定した。しかし、これに限るものではなく、勾配算出手段3は、入力画像評価手段301および勾配算出範囲決定手段303を備えずに、窓領域204全体、左側の窓領域204a、右側の窓領域204bのいずれかを勾配算出範囲として決定する構成にしてもよい。
【0074】
図7は、入力画像評価手段301および勾配算出範囲決定手段303を備えない場合の勾配算出手段3の構成を示す図である。図7に係る勾配算出手段3では、まず、窓領域最大局所差分値D(n,m)が、領域選択手段302に入力される。領域選択手段302は、例えば、上の式(10)から、Dl、Drを求め、Dl>Drならば、右の窓領域204bを選択し、Dl>Drでない場合には、左の窓領域204aを選択する。
【0075】
次に、減算手段304は、領域選択手段302で選択した領域について、座標(n,m)の水平方向および垂直方向において隣り合う窓領域最大局所差分値D(n,m)同士の差分からなる勾配値を算出する。例えば、右側の窓領域204bが選択された場合には、座標(n,m)の範囲(0≦n≦N、0≦m≦M)について,水平方向の勾配値dh(n,m)(=D(n+1,m)−D(n,m))と、垂直方向の勾配値dv(n,m)(=D(n,m+1)−D(n,m))とを算出する。左側の窓領域204bが選択された場合には、座標(n,m)の範囲(−N≦n≦0、0≦m≦M)について,水平方向の勾配値dh(n,m)(=D(n−1,m)−D(n,m))と、垂直方向の勾配値dv(n,m)(=D(n,m+1)−D(n,m))とを算出する。
【0076】
最大値選択手段305は、減算手段304から出力される2つの勾配値dh(n,m),dv(n,m)のうち、大きい方の値を選択して求める。すなわち、h’(n,m)=Max{dh(n,m),dv(n,m)}を求める。左側の窓領域204bが選択された場合には、h(n,m)=h’(n,m)(0≦n≦N、0≦m≦M)とし、右側の窓領域204aが選択された場合には、h(n,m)=h’(n−N,m)(0≦n≦N、0≦m≦M)とする。そして、最大値選択手段305は、以上により求めたh(n,m)(0≦n≦N、0≦m≦M)を、最大局所差分勾配値として出力する。
【0077】
以上のような、図7に係る勾配算出手段3は、演算範囲が常に固定であるため、回路構成が簡単になるという特徴がある。しかしながら、発生し得る手振れの範囲が広く、窓領域204の範囲を決定する(N,M)を大きく設定する必要がある場合には、演算の処理量が多くなる。これに対し、本実施の形態に係る勾配算出手段3は、入力画像評価手段301と、勾配算出範囲決定手段303とを備えるため、入力画像に応じた所定の閾値αにより勾配算出範囲を制限することができる。そのため、減算手段304以降の演算における処理量(または回路規模ないし消費電力)を削減することができる。
【0078】
また、本実施の形態に係る勾配算出手段3は、座標(n,m)の水平方向および垂直方向において隣り合う窓領域最大局所差分値D(n,m)同士の差分を求め、その最大値を最大局所差分勾配値h(n,m)として出力するように構成した。しかしこれに限るものではなく、勾配算出手段3は、座標(n,m)の水平方向または垂直方向いずれか一方のみにおいて隣り合う窓領域最大局所差分値D(n,m)同士の差分を最大局所差分勾配値h(n,m)として出力するようにしてもよい。
【0079】
例えば、車載の撮像装置のブレのように、水平方向のブレはほとんど発生しないが、垂直方向のブレが強く発生する場合には、勾配算出手段3は、座標(n,m)の垂直方向のみにおいて隣り合う窓領域最大局所差分値D(n,m)の差分を、最大局所差分勾配値h(n,m)として出力するようにしてもよい。また、一般に、デジタルカメラを手持ちで撮影する場合にも、シャッターを押す動作により、垂直方向の手振れが発生しやすいため、上述と同様の構成にすればよい。勾配算出手段3をこのような構成することにより、水平方向における勾配値の算出を省略するため、演算量を削減できるという効果を得ることができる。また、撮像装置の構成や撮像装置の設置方法によっては、シャッターを押す方向が、保存される画像の水平方向となる場合がある。このような場合には、水平方向のみにおいて隣り合う窓領域最大局所差分値D(n,m)の差分を、最大局所差分勾配値h(n,m)として出力するように勾配算出手段3を構成すれば、上述と同様、演算量を削減することができる。
【0080】
<実施の形態2>
図8は、本実施の形態に係る画像補正装置の構成を示すブロック図である。なお、以下の実施の形態2に係る構成のうち、新たに説明しないものについては、実施の形態1と同じ構成については、同一の符号を付すものとする。図に示すように、本実施の形態に係る画像補正装置は、記憶手段100と、劣化推定手段101と、逆フィルタ設定手段6と、巡回型フィルタ手段7と、記憶手段103とを備える。逆フィルタ設定手段6、および、巡回型フィルタ手段7は、補正手段102を構成している。
【0081】
記憶手段100には、画像が記憶されている。劣化推定手段101には、記憶手段100から出力された画像が入力画像として入力される。劣化推定手段101は、この入力画像から、当該入力画像の劣化を表す線形フィルタを所定の範囲で求め、そのフィルタ係数を第1のフィルタ係数として出力する。本実施の形態にかかる補正手段102は、劣化推定手段101から出力される所定の範囲の2次元線形フィルタを示す第1のフィルタ係数を用いて、フィルタ処理の逆処理を入力画像に施す。
【0082】
補正手段102が備える逆フィルタ設定手段6は、劣化推定手段101からの第1のフィルタ係数に基づいて、巡回型フィルタ処理を行うための第2のフィルタ係数、および、入力画像の画素に対して巡回型フィルタ処理を施すべき順番を決定する。補正手段102が備える巡回型フィルタ手段7は、逆フィルタ設定手段6で決定した第2のフィルタ係数、および、順番に基づいて、記憶手段100からの入力画像に巡回型フィルタ処理を施す。こうして、巡回型フィルタ手段7は、フィルタ処理の逆処理に相当する巡回型フィルタ処理を、入力画像に施すことにより、補正画像を生成する。記憶手段103は、巡回型フィルタ手段7から出力される補正画像を記憶する。
【0083】
次に基本動作について説明する。実施の形態1で述べたように、一般に手振れや焦点ずれなどの劣化は、線形で表すことができると考えられる。つまり、劣化のある画像データをy(i,j)(i,j;画素単位の座標、0≦i<I、0≦j<J)とし、入力画像の劣化を表す線形フィルタのフィルタ係数をa(n,m)(0≦n≦N、0≦m≦M)とし、劣化のない画像データをx(i,j)とすると、式(1)の関係が成り立つ。本実施の形態に係る画像補正装置の劣化推定手段101は、実施の形態1と同様、入力画像y(i,j)から、その入力画像の劣化を表すフィルタ係数a(n,m)を推定する。ここでのフィルタ係数a(n,m)は、所定の範囲内の座標(n,m)ごとに与えられており、本実施の形態に係る所定の範囲の形状は、0≦n≦N、0≦m≦Mで表される長方形である。
【0084】
本実施の形態に係る画像補正装置の補正手段102は、所定の範囲の2次元線形フィルタを示す第1のフィルタ係数a(n,m)を用いて、フィルタ処理の逆処理を入力画像y(i,j)に施す。こうして、本実施の形態に係る画像補正装置は、劣化のない画像x(i,j)に相当する補正画像w(i,j)を得るように構成されている。
【0085】
以下、図8に従って、本実施の形態に係る画像補正装置の詳細な動作を説明する。まず、記憶手段100には、入力画像y(i,j)(0≦i<I、0≦j<J)が保存されている。記憶手段100から読み出された入力画像y(i,j)は、劣化推定手段101に入力される。劣化推定手段101は、入力画像y(i,j)から、入力画像の劣化を表す線形フィルタのフィルタ係数a(n,m)を求めて出力する。本実施の形態に係る劣化推定手段101は、実施の形態1に係る最大局所差分値決定手段2、および、勾配算出手段3、および、フィルタ範囲決定手段4、および、フィルタ係数決定手段5から構成されるものとする。
【0086】
劣化推定手段101から出力されたフィルタ係数a(n,m)と、記憶手段100からの入力画像y(i,j)とは、補正手段102に入力される。本実施の形態に係る画像補正装置が備える補正手段102は、所定の範囲(0≦n≦N、0≦m≦M)の線形フィルタのフィルタ係数である第1のフィルタ係数a(n,m)を用いて、フィルタ処理の逆処理を入力画像y(i,j)に施す。
【0087】
この動作を行うため、本実施の形態に係る補正手段102が備える逆フィルタ設定手段6および巡回型フィルタ手段7は、以下の動作を行う。まず、逆フィルタ設定手段6は、フィルタ係数a(n,m)に基づいて、巡回型フィルタ処理を行うための第2のフィルタ係数であるフィルタ係数b(n,m)、および、入力画像の画素に対して巡回型フィルタ処理を施すべき順番を決定する。なお、以下、入力画像y(i,j)の画素(i,j)に対して巡回型フィルタ処理を施すべき順番を、巡回型フィルタ処理の順番と記すこともある。次に、巡回型フィルタ手段7は、逆フィルタ設定手段6で決定したフィルタ係数b(n,m)、および、巡回型フィルタ処理の順番に基づいて、記憶手段100からの入力画像に巡回型フィルタ処理を施す。この処理により、補正手段102は、補正画像w(i,j)を生成し、補正画像w(i,j)を出力する。以下、逆フィルタ設定手段6および巡回型フィルタ手段7の動作について詳しく説明する。
【0088】
一般に、式(1)が成り立つ場合には、a(n,m)≠0を条件として、次式(11)が成り立つ。
【0089】
【数11】
【0090】
劣化がある入力画像y(i,j)から補正画像w(i,j)への変換は、式(11)を書き換えた次式(12)で表される2次元の巡回型フィルタ処理により実現できる。なお、式(12)に示されるb(n,m)は、巡回型フィルタ処理を行うためのフィルタ係数であり、b(0,0)=1/a(0,0)、b(n,m)=a(n,m)/a(0,0)((n,m)≠(0,0)、0≦n≦N、0≦m≦M)である。
【0091】
【数12】
【0092】
式(12)より、ある画素(i,j)の入力画像y(i,j)と、過去に求めた補正画像w(i−n,j−m)(0≦n≦N、0≦m≦M、(n,m)≠(0,0))とから、新しい補正画像w(i,j)が算出可能となる。式(12)で表される2次元の巡回型フィルタ処理とは、新しい補正画像の算出を、入力画像の画素(i,j)の水平方向および垂直方向それぞれについて「昇順」に巡回して行う処理を意味する。この2次元の巡回型フィルタ処理により、入力画像の全画素(i,j)(0≦i<I、0≦j<J)の補正画像w(i,j)を算出することが可能となる。
【0093】
ただし、2次元の巡回型フィルタ処理を行うためには、新しい補正画像w(i,j)の元となる過去の補正画像、つまり、式(12)の右辺の補正画像w(i,j)の初期値が必要である。次に、補正画像w(i,j)の初期値と、初期値を与えるべき画素(i,j)の範囲について説明する。式(12)により算出される補正画像w(i,j)と、劣化のない画像x(i,j)との間には、次式(13)で示される関係が成り立つ。
【0094】
【数13】
【0095】
この式(13)は、所定の範囲(0≦i<N、0≦j<M)内の全ての画素(i,j)において、w(i,j)=x(i,j)が成立する場合には、帰納的に、全ての画素(i,j)(0≦i<I、0≦j<J)について、w(i,j)=x(i,j)が成立することを意味する。すなわち、w(i,j)=x(i,j)(0≦i<N、0≦j<M)を初期値として与えれば、式(12)により、全ての画素(i,j)(0≦i<I、0≦j<J)において、劣化のない画像x(i,j)に相当する補正画像w(x,j)が得られることを意味する。
【0096】
しかしながら、実際には、劣化のない画像x(i,j)の値は不明であるため、本実施の形態では、補正画像w(i,j)の初期値として、w(i,j)=y(i,j)(0≦i<N、0≦j<M)と設定する。つまり、その範囲(0≦i<N、0≦j<M)内の入力画像の画素(i,j)については巡回型フィルタ処理をしないものとする。
【0097】
この場合、補正画像w(i,j)の初期値の誤差が、巡回型フィルタ処理により、画像全体に伝播するという問題がある。そこで、本実施の形態に係る逆フィルタ設定手段6は、フィルタ係数b(n,m)((n,m)≠(0,0))の絶対値を1未満に設定する。例えば、逆フィルタ設定手段6は、次式(14)により、絶対値が1未満に設定されるフィルタ係数b(n,m)を決定する。
【0098】
【数14】
【0099】
ただし、B=Max{|a(n,m)|;(n,m)≠(0,0),0≦n≦N,0≦m≦M}であり、C(0<C<1)は定数である。式(14)によりフィルタ係数b(n,m)((n,m)≠(0,0))を設定した後、フィルタのゲインが1となるように、b(0,0)を次式(15)により設定する。
【0100】
【数15】
【0101】
以上のように、フィルタ係数b(n,m)((n,m)≠(0,0))の絶対値を1より小さくすることにより、補正画像w(i,j)の初期値の誤差が、画像全体に伝播する影響を小さくすることができる。なお、実験によると、定数Cとして、0.5程度の値を設定したときには、誤差パターンを低減でき、かつ、十分な補正効果が得られた。
【0102】
上記の説明においては、a(0,0)≠0であると仮定し、初期値が設定されていない補正画像w(i,j)を、入力画像の画素(i,j)の水平方向および垂直方向それぞれについて昇順に算出した。しかし、a(0,0)=0の場合は、巡回型フィルタ処理の順番を、上述とは異なる順番に変更することで、上述と同様の処理が可能となる。例えば、入力画像の劣化が、水平、垂直、または、斜め方向のいずれか一方向の1次元のフィルタ処理で表されると仮定する。このように仮定した場合、所定の範囲(0≦n≦N、0≦m≦M)内の4隅の座標のフィルタ係数a(0,0)、a(N,0)、a(0,M)、a(N,M)のいずれかの値は、ほとんどの場合、非零となる。
【0103】
仮に、それらの値が非零とならなかったとしても、劣化推定手段101が、フィルタ係数a(N,0)、a(0,M)、a(N,M)が非零となる領域にあわせて、所定の範囲を定める係数N、Mを設定するようにすれば、それらのうちいずれか一つは、必ず非零となる。そこで、以下、フィルタ係数a(N,0)、a(0,M)、a(N,M)のいずれか一つが非零である場合について説明する。
【0104】
例えば、a(N,0)≠0の場合には、次式(16)により、フィルタ係数b(n,m)を設定する。
【0105】
【数16】
【0106】
ただし、B=Max{|a(n,m)|;(n,m)≠(N,0),0≦n≦N,0≦m≦M}であり、C(0<C<1)は定数である。式(16)によりフィルタ係数b(n,m)((n,m)≠(0,0))を設定した後、b(0,0)を式(15)により設定する。さらに、補正画像w(i,j)の初期値として、w(i,j)=y(i,j)(I−N≦i<I、0≦j<M)と設定する。そして、次式(17)で表される2次元の巡回型フィルタ処理を行う。
【0107】
【数17】
【0108】
式(17)より、ある画素(i,j)の入力画像y(i,j)と、過去に求めた補正画像w(i+n,j−m)(0≦n≦N、0≦m≦M、(n,m)≠(0,0))とから、新しい補正画像w(i,j)が算出可能となる。式(17)で表される2次元の巡回型フィルタ処理とは、新しい補正画像の算出を、入力画像の画素(i,j)の水平方向については「降順」、垂直方向については「昇順」に巡回して行う処理を意味する。
【0109】
以上、a(N,0)≠0の場合について説明したが、a(0,M)≠0の場合には、次式(18)により、フィルタ係数b(n,m)を設定する。
【0110】
【数18】
【0111】
ただし、B=Max{|a(n,m)|;(n,m)≠(0,M),0≦n≦N,0≦m≦M}であり、C(0<C<1)は定数である。式(18)によりフィルタ係数b(n,m)((n,m)≠(0,0))を設定した後、b(0,0)を式(15)により設定する。さらに、補正画像w(i,j)の初期値として、w(i,j)=y(i,j)(0≦i<N、J−M≦j<J)と設定する。そして、次式(19)で表される2次元の巡回型フィルタ処理を行う。
【0112】
【数19】
【0113】
式(19)より、ある画素(i,j)の入力画像y(i,j)と、過去に求めた補正画像w(i−n,j+m)(0≦n≦N、0≦m≦M、(n,m)≠(0,0))とから、新しい補正画像w(i,j)が算出可能となる。式(19)で表される2次元の巡回型フィルタ処理とは、新しい補正画像の算出を、入力画像の画素(i,j)の水平方向については「昇順」、垂直方向については「降順」に巡回して行う処理を意味する。
【0114】
以上、a(0,M)≠0の場合について説明したが、a(N,M)≠0の場合には、次式(20)により、フィルタ係数b(n,m)を設定する。
【0115】
【数20】
【0116】
ただし、B=Max{|a(n,m)|;(n,m)≠(N,M),0≦n≦N,0≦m≦M}であり、C(0<C<1)は定数である。式(20)によりフィルタ係数b(n,m)((n,m)≠(0,0))を設定した後、b(0,0)を式(15)により設定する。さらに、補正画像w(i,j)の初期値として、w(i,j)=y(i,j)(I−N≦i<I、J−M≦j<J)と設定する。そして、次式(21)で表される2次元の巡回型フィルタ処理を行う。
【0117】
【数21】
【0118】
式(21)より、ある画素(i,j)の入力画像y(i,j)と、過去に求めた補正画像w(i+n,j+m)(0≦n≦N、0≦m≦M、(n,m)≠(0,0))とから、新しい補正画像w(i,j)が算出可能となる。式(21)で表される2次元の巡回型フィルタ処理とは、新しい補正画像の算出を、入力画像の画素(i,j)の水平方向および垂直方向それぞれについて「降順」に巡回して行う処理を意味する。
【0119】
以上のような処理を行うべく、逆フィルタ設定手段6は、図9に示したフローチャートに従って動作するように構成する。まず、本実施の形態に係る逆フィルタ設定手段6は、所定の範囲(0≦n≦N、0≦m≦M)内の4隅の座標(n,m)(n=0またはN、m=0またはM)のうち、所定の値となるフィルタ係数a(n,m)(n=0またはN、m=0またはM)に対応する座標を求める。ここでの所定の値とは、0以外の値である。それから、本実施の形態に係る逆フィルタ設定手段6は、当該求めた座標(n,m)(n=0またはN、m=0またはM)に対応させた所定の順番を、巡回型フィルタ処理の順番として決定する(ステップS1)。
【0120】
本実施の形態では、座標(0,0)に対応させた所定の順番は、入力画像の画素の水平方向、垂直方向それぞれについて昇順とする。同様に、座標(N,0)に対応させた所定の順番は、入力画像の画素の水平方向については降順、垂直方向については昇順とする。座標(0,M)に対応させた所定の順番は、入力画像の画素の水平方向については昇順、垂直方向については降順とする。座標(N,M)に対応させた所定の順番は、入力画像の画素の水平方向、垂直方向それぞれについて降順とする。
【0121】
これにより、例えば、まず、a(0,0)の値を調べ、a(0,0)≠0であれば、「式(12)で表される巡回型フィルタ処理、つまり、巡回型フィルタ処理の順番は、水平方向、垂直方向それぞれについて昇順」と決定し、ステップS2へ進む。そうでない場合は、a(N,0)の値を調べ、a(N,0)≠0であれば、「式(17)で表される巡回型フィルタ処理、つまり、巡回型フィルタ処理の順番は、水平方向については降順、垂直方向については昇順」と決定し、ステップS3へ進む。そうでない場合は、a(0,M)の値を調べ、a(0,M)≠0であれば、「式(19)で表される巡回型フィルタ処理、つまり、巡回型フィルタ処理の順番は、水平方向については昇順、垂直方向については降順」と決定し、ステップS4へ進む。そうでない場合は、「式(21)で表される巡回型フィルタ処理、つまり、巡回型フィルタ処理の順番は、水平方向、垂直方向それぞれについて降順」と決定し、ステップS5へ進む。
【0122】
ステップS2では、式(14)により、b(n,m)((n,m)≠(0,0))を求め、ステップS6へ進む。ステップS3では、式(16)により、b(n,m)((n,m)≠(0,0))を求め、ステップS6へ進む。ステップS4では、式(18)により、b(n,m)((n,m)≠(0,0))を求め、ステップS6へ進む。ステップS5では、式(20)により、b(n,m)((n,m)≠(0,0))を求め、ステップS6へ進む。これらステップS2〜S5後のステップS6では、式(15)によりb(0,0)を求める。
【0123】
以上のようにして、本実施の形態に係る逆フィルタ設定手段6は、フィルタ係数a(n,m)に基づいて、巡回型フィルタ処理を行うためのフィルタ係数b(n,m)、および、入力画像y(i,j)の画素(i,j)に対して巡回型フィルタ処理を施すべき順番を決定する動作を行う。なお、本実施の形態では、式(14)、式(16)、式(18)、式(20)において、B=0となる場合、すなわち、フィルタ係数a(n,m)のうち非零の値が1つしか存在しない場合には、b(n,m)=0((n,m)≠0、0≦n≦N、0≦m≦M)と設定する。
【0124】
そして、本実施の形態の巡回型フィルタ手段7は、逆フィルタ設定手段6で決定したフィルタ係数b(n,m)(0≦n≦N、0≦m≦M)、および、巡回型フィルタ処理の順番に基づいて、入力画像y(i,j)にフィルタ処理の逆処理に相当する巡回型フィルタ処理を施す。そして、巡回型フィルタ手段7は、この処理により生成した補正画像w(i,j)を出力する。
【0125】
巡回型フィルタ手段7から出力される補正画像w(i,j)は、記憶手段103に書き込まれる。なお、記憶手段103は、記憶手段100と物理的に同じハードディスク、メモリなどの記憶装置を共用してもよい。なお、逆フィルタ設定手段6、巡回型フィルタ手段7の各手段は、電子回路として構成してもよいし、マイクロコンピュータのようなプロセッサ上で動作するソフトウェアとして構成してもよい。
【0126】
以上のような動作を行う本実施の形態に係る画像補正装置によれば、入力画像の劣化を表すフィルタ係数a(n,m)を用いて、フィルタ処理の逆処理を入力画像に施す補正処理を、簡単なフィルタ演算処理により行うことができる。これにより、従来のRichardson-Lucyアルゴリズムのように反復処理を行ったり、FFTと逆FFTを繰り返すなどの処理が不要となるので、補正手段102の処理量(または回路規模ないし消費電力)を削減することができる。また、本実施の形態に係る劣化推定手段101は、実施の形態1に係る劣化推定手段と同じであるため、実施の形態1の効果も得ることができる。
【0127】
なお、本実施の形態においては、フィルタ係数a(n,m)のうち非零の値が1つしか存在しない場合には、b(n,m)=0((n,m)≠0、0≦n≦N、0≦m≦M)と設定するとした。しかしこれに限るものではなく、フィルタ係数a(n,m)のうち、非零の値が1つしか存在しない場合には、入力画像y(i,j)を巡回型フィルタ手段7に通さず、入力画像y(i,j)をそのまま補正画像w(i,j)として出力するように構成してもよい。
【0128】
また、本実施の形態では、逆フィルタ設定手段6は、ステップS1において、4隅の座標のフィルタ係数a(n,m)(n=0またはN、m=0またはM)それぞれの値が非零であるかを順に判定した。そして、その判定に基づいて、逆フィルタ設定手段6は、非零の値をとるフィルタ係数の座標(n,m)(n=0またはN、m=0またはM)に対応させた所定の順番を、巡回型フィルタ処理の順番として決定した。しかし、これに限ったものではなく、逆フィルタ設定手段6は、ステップS1において、4隅の座標(n,m)のうち、最大の絶対値をとるフィルタ係数a(n,m)(n=0またはN、m=0またはM)に対応する座標を求める。それから、逆フィルタ設定手段6は、当該求めた座標(n,m)(n=0またはN、m=0またはM)に対応させた所定の順番を、巡回型フィルタ処理の順番として決定してもよい。
【0129】
このように構成すると、逆フィルタ設定手段6は、最大の絶対値をとるフィルタ係数がa(0,0)である場合には、「巡回型フィルタ処理の順番は、水平方向、垂直方向それぞれについて昇順」と決定し、ステップS2へ進む。最大の絶対値をとるフィルタ係数がa(N,0)である場合には、「巡回型フィルタ処理の順番は、水平方向については降順、垂直方向については昇順」と決定し、ステップS3へ進む。最大の絶対値をとるフィルタ係数がa(0,M)である場合には、「巡回型フィルタ処理の順番は、水平方向については昇順、垂直方向については降順」と決定し、ステップS4へ進む。最大の絶対値をとるフィルタ係数がa(N,M)である場合には、「巡回型フィルタ処理の順番は、水平方向、垂直方向それぞれについては降順」と決定し、ステップS5へ進む。それ以降の動作は、上述のステップS6以降の動作と同じである。
【0130】
以上のように、4隅の座標のうち、最大の絶対値をとるフィルタ係数a(n,m)(n=0またはN、m=0またはM)に対応する座標を求め、その座標に対応させた所定の順番を上述の順番として決定するように構成すると、逆処理の精度が高くなり、補正画像w(i,j)の画質を向上させることができる。
【0131】
なお、以上の本実施の形態に係る画像補正装置は、実施の形態1と同じ劣化推定手段101を備えるとし、その劣化推定手段101からのフィルタ係数a(n,m)が、逆フィルタ設定手段6に入力されていた。しかしこれに限るものではなく、例えば、撮像装置に取り付けた手振れセンサにより手振れを検出し、その検出結果が、所定の範囲の線形フィルタのフィルタ係数a(n,m)(0≦n≦N、0≦m≦M)として、逆フィルタ設定手段6に入力される構成であってもよい。この場合も、上述と同様に、入力画像の劣化を表すフィルタ係数a(n,m)を用いて、フィルタ処理の逆処理を入力画像に施す補正処理を、簡単なフィルタ演算処理により行うことができる。なお、予め対象とする撮像装置が決まっており、その撮像装置の焦点ずれによるぼやけの補正を望む場合もある。その場合には、予め想定した焦点深度による複数のぼやけ特性をフィルタ係数a(n,m)として保持し、焦点深度の値から切り換えたフィルタ係数a(n,m)を、逆フィルタ設定手段6に入力する構成にしてもよい。
【0132】
<実施の形態3>
本実施の形態に係る画像補正装置は、逆フィルタ設定手段6の動作において、実施の形態2に係る画像補正装置と異なる。実施の形態2では、例えば、入力画像の劣化が、水平、垂直、または、斜め方向のいずれか一方向の1次元のフィルタ処理で表されると仮定した。そして、実施の形態2に係る逆フィルタ設定手段6は、4隅の座標のいずれかの座標(n,m)(n=0またはN、m=0またはM)を基準に、フィルタ係数b(n,m)、および、巡回型フィルタ処理の順番を決定した。しかしながら、焦点ずれによるぼやけのような劣化がある場合には、フィルタ係数a(n,m)の値の分布が円形に広がり、4隅のフィルタ係数a(n,m)がいずれも0となる場合もある。また、直線的な手振れの場合であっても、手振れの特性によっては、4隅のフィルタ係数a(n,m)の値が小さくなり、逆処理の精度が低くなることもある。
【0133】
そこで、本実施の形態に係る逆フィルタ設定手段6は、所定の範囲内の座標(n,m)(0≦n≦N、0≦m≦M)のうち、最大の絶対値をとるフィルタ係数a(N0,M0)に対応する一の座標(N0,M0)を求める。そして、当該求めた一の座標(N0,M0)を基準に所定の範囲(0≦n≦N、0≦m≦M)を複数の区分範囲S1〜S4に区分する。それから、一の区分範囲Sk(k=1〜4のいずれか一つの値)内のフィルタ係数a(n,m)((n,m)∈Sk)の値に基づいて、対応する区分範囲内のフィルタ係数b(n,m)((n,m)∈Sk)を決定する。
【0134】
このような、本実施の形態に係る逆フィルタ設定手段6の動作を、図10のフローチャートに従って説明する。なお、ステップS11前の動作は、実施の形態2のステップS1前の動作と同じである。まず、逆フィルタ設定手段6は、所定の範囲内の座標(n,m)(0≦n≦N、0≦m≦M)のうち、最大の絶対値をとるフィルタ係数フィルタ係数a(N0,M0)に対応する一の座標(N0,M0)を求める(ステップS11)。
【0135】
次のステップでは、所定の範囲(0≦n≦N、0≦m≦M)を、複数の区分範囲S1〜S4に区分する。本実施の形態では、区分範囲S1={(n,m);0≦n≦N0、0≦m≦M0}、区分範囲S2={(n,m);N0≦n≦N、0≦m≦M0}、区分範囲S3={(n,m);0≦n≦N0、M0≦m≦M}、区分範囲S4={(n,m);N0≦n≦N、M0≦m≦M}である。
【0136】
そして、この区分範囲S1〜S4の中から、一の区分範囲Sk(k=1〜4のいずれか一つの値)を選択する。この一の区分範囲Skを選択する方法としては、例えば、最も範囲の広い区分範囲Skを選択する。すなわち、水平方向については、N0>N−N0ならば、区分範囲S1,S3を選択し、そうでない場合には、S2,S4を選択する。垂直方向については、M0>M−M0ならば、区分範囲S1,S2を選択し、そうでない場合には、S3,S4を選択する。この2つの判定により、4つの区分範囲S1〜S4から一の区分範囲Skを選択できる。なお、ここでは、区分範囲S1〜S4の範囲の広さに基づいて選択する方法を説明したが、これに限るものではなく、各区分範囲S1〜S4のフィルタ係数a(n,m)の値の総和を求め、総和の最も大きい区分範囲を、一の区分範囲Skとして選択してもよい。
【0137】
その後、選択した一の区分範囲Skを、これまでの説明で用いた所定の範囲(0≦n≦N、0≦m≦M)に置き換える(ステップS12)。例えば、区分範囲S1が選択された場合には、a(n,m)(0≦n≦N、0≦m≦M)=a(n,m)(0≦n≦N0、0≦m≦M0)と置き換えて、ステップS13へ進む。同様にして、区分範囲S2が選択された場合には、a(n,m)(0≦n≦N、0≦m≦M)=a(n+N0,m)(0≦n≦N−N0、0≦m≦M0)と置き換えて、ステップS13へ進む。また、区分範囲S3が選択された場合には、a(n,m)(0≦n≦N、0≦m≦M)=a(n,m+M0)(0≦n≦N0、0≦m≦M−M0)と置き換えて、ステップS13へ進む。また、区分範囲S4が選択された場合には、a(n,m)(0≦n≦N、0≦m≦M)=a(n+N0,m+M0)(0≦n≦N−N0、0≦m≦M−M0)と置き換えて、ステップS13へ進む。
【0138】
ステップS12の後、逆フィルタ設定手段6は、そのステップS12で選択された区分範囲Skに対応させた所定の順番を、巡回型フィルタ手段7で行う巡回型フィルタ処理の順番として決定する(ステップS13)。例えば、ステップS12で区分範囲S1が選択された場合には、フィルタ係数a(n,m)(0≦n≦N、0≦m≦M)のうち、フィルタ係数a(N,M)の値が最も大きい。そのため、その場合には、逆フィルタ設定手段6は、巡回型フィルタ処理の順番を、入力画像の画素の水平方向、垂直方向それぞれについて降順と決定し、ステップS17に進むようにする。また、ステップS12で区分範囲S2が選択された場合には、フィルタ係数a(n,m)(0≦n≦N、0≦m≦M)のうち、フィルタ係数a(0,M)の値が最も大きい。そのため、その場合には、逆フィルタ設定手段6は、巡回型フィルタ処理の順番を、入力画像の画素の水平方向については昇順、垂直方向については降順と決定し、ステップS16に進むようにする。
【0139】
また、ステップS12で区分範囲S3が選択された場合には、フィルタ係数a(n,m)(0≦n≦N、0≦m≦M)のうち、フィルタ係数a(N,0)の値が最も大きい。そのため、その場合には、逆フィルタ設定手段6は、巡回型フィルタ処理の順番を、入力画像の画素の水平方向については降順、垂直方向それぞれについて昇順と決定し、ステップS15に進むようにする。また、ステップS12で区分範囲S4が選択された場合には、フィルタ係数a(n,m)(0≦n≦N、0≦m≦M)のうち、フィルタ係数a(0,0)の値が最も大きい。そのため、その場合には、逆フィルタ設定手段6は、巡回型フィルタ処理の順番を、入力画像の画素の水平方向、垂直方向それぞれについて昇順と決定し、ステップS14に進むようにする。
【0140】
ステップS14〜ステップS17の動作は、実施の形態2のステップS2〜ステップS5の動作と同じである。こうして、逆フィルタ設定手段6は、ステップS12で置き換えたフィルタ係数a(n,m)(0≦n≦N,0≦m≦M)の値に基づいて、フィルタ係数b(n,m)(0≦n≦、N、0≦m≦M)を決定する。このことを、ステップS12で置き換える前のフィルタ係数a(n,m)((n,m)∈Sk)で言い換えると、逆フィルタ設定手段6は、一の区分範囲Sk(k=1〜4のいずれか一つ)内のフィルタ係数a(n,m)((n,m)∈Sk)の値に基づいて、対応する区分範囲内のフィルタ係数b(n,m)((n,m)∈Sk)を決定する。ステップS14〜ステップS17以降に行うステップS18以降の動作は、実施の形態2のステップS6以降の動作と同じである。
【0141】
以上のような本実施の形態に係る画像補正装置によれば、最大の絶対値をとるフィルタ係数a(N0,M0)の座標(N0,M0)を基準に、フィルタ処理の逆処理に相当する巡回型フィルタ処理を行う。そのため、入力画像の劣化を表すフィルタ係数a(n,m)(0≦n≦N、0≦m≦M)の値が、所定の範囲内の4隅の座標いずれにおいても小さい場合でも、精度の良い逆処理を行うことができ、補正画像の画質をよくすることができるという効果を得ることができる。
【0142】
なお、本実施の形態に係るステップS13では、区分範囲Skに対応させた所定の順番を、巡回型フィルタ処理の順番として決定した。しかしこれに限るものではなく、実施の形態2のステップS1と同様にしてもよい。例えば、逆フィルタ設定手段6は、ステップS12で新たに設定した範囲(0≦n≦N、0≦m≦M)、つまり、一の区分範囲Sk内の4隅の座標のうち、所定の値をとるフィルタ係数a(n,m)に対応する座標を基準に、巡回型フィルタ処理の順番を決定してもよい。
【0143】
<実施の形態4>
実施の形態3に係る画像補正装置では、劣化推定手段101から出力された所定の範囲内のフィルタ係数a(n,m)(0≦n≦N,0≦m≦M)のうち、一の区分範囲Sk(k=1〜4のいずれか一つの値)内のフィルタ係数a(n,m)((n,m)∈Sk)に基づいて、フィルタ係数b(n,m)を決定した。しかしながら、残りの区分範囲Sl(l≠k)内に、大きな値をもつフィルタ係数a(n,m)((n,m)∈Sl)が存在する場合もある。そこで、本実施の形態に係る画像補正装置は、実施の形態3に係る逆フィルタ設定手段6の動作を繰り返すことにより、複数の区分範囲Sk内のフィルタ係数a(n,m)((n,m)∈Sk)の値に基づいて、対応する区分範囲内のフィルタ係数b(n,m)((n,m)∈Sk)を決定する。
【0144】
このような逆フィルタ設定手段6を備える画像補正装置の動作を、図11のフローチャートに従って説明する。まず、画像補正装置は、入力画像の劣化を表すフィルタ係数a(n,m)を、所定の範囲(n,m)(0≦n≦N,0≦m≦M)内で求める(ステップS21)。フィルタ係数a(n,m)の求め方としては、例えば、実施の形態1に示した劣化推定手段101を用いる。
【0145】
次に、逆フィルタ設定手段6は、所定の範囲内の座標(n,m)(0≦n≦N、0≦m≦M)のうち、最大の絶対値をとるフィルタ係数a(N0,M0)に対応する一の座標(N0,M0)を求める(ステップS22)。なお、ステップS23〜ステップS29までの動作は、実施の形態3のステップS11〜ステップ18までの動作と同じであるため、説明を省略する。これにより、逆フィルタ設定手段6は、ステップS24において、巡回型フィルタ処理の順番を決定し、ステップS25〜S29において、一の区分範囲Sk内のフィルタ係数b(n,m)((n,m)∈Sk)を決定する。
【0146】
巡回型フィルタ手段7は、逆フィルタ設定手段6が決定した巡回型フィルタ処理の順番と、一の区分範囲Sk内のフィルタ係数b(n,m)((n,m)∈Sk)とに基づいて、入力画像に巡回型フィルタ処理を施し、補正画像を求める(ステップS30)。
【0147】
ステップS30後、残りの区分範囲Sl(l≠k)内のフィルタ係数a(n,m)((n,m)∈Sl)の値に基づいて、残存する劣化があるか否かを判断する(ステップS31)。ステップS31で、残存する劣化があると判断された場合には、逆フィルタ設定手段6は、残りの区分範囲Slから、一の区分範囲を選択し、ステップS24に戻る。ステップS31で、残存する劣化がないと判断された場合には、画像補正処理を終了する。なお、ループによる2回目以降の各ステップの動作は、初回とほぼ同じであるが、ステップS30では、前回のループで求めた補正画像に対して巡回型フィルタ処理を施す。
【0148】
以上のような本実施の形態に係る画像補正装置によれば、一の区分範囲Sk内のフィルタ係数a(n,m)((n,m)∈Sk)のみを用いて補正するだけではなく、残りの区分範囲Sl(l≠k)内にも大きな値をとるフィルタ係数a(n,m)((n,m)∈Sl)がある場合には、そのフィルタ係数を用いて、補正を行うことができる。
【0149】
なお、上述の本実施の形態においては、ステップS31において、残りの区分範囲Sl(l≠k)内のフィルタ係数a(n,m)((n,m)∈Sl)の値に基づいて、残存する劣化があるか否かを判断し、劣化がある場合には、ステップS24に戻るものとした。しかし、ループさせる方法は、これに限るものではない。例えば、ステップS31の処理において、入力画像の代わりに、ステップS30で求めた補正画像を用いてステップS21の処理を行い、再度、所定の範囲全体のフィルタ係数a(n,m)(0≦n≦N,0≦m≦M)を求める。そして、求めたフィルタ係数a(n,m)(0≦n≦N,0≦m≦M)の値に基づいて、残存する劣化があるか否かを判断し、劣化がある場合には、ステップS22に戻るものであってもよい。
【図面の簡単な説明】
【0150】
【図1】実施の形態1に係る画像補正装置の構成を示すブロック図である。
【図2】実施の形態1に係る差分値決定領域を示す概念図である。
【図3】実施の形態1に係る窓領域を示す概念図である。
【図4】実施の形態1に係る勾配算出手段の構成を示すブロック図である。
【図5】実施の形態1に係る勾配算出手段の動作を示す図である。
【図6】実施の形態1に係る勾配算出手段の構成を示すブロック図である。
【図7】実施の形態1に係る勾配算出手段の構成を示すブロック図である。
【図8】実施の形態2に係る画像補正装置の構成を示すブロック図である。
【図9】実施の形態2に係る画像補正装置の動作を示すフローチャートである。
【図10】実施の形態3に係る画像補正装置の動作を示すフローチャートである。
【図11】実施の形態4に係る画像補正装置の動作を示すフローチャートである。
【符号の説明】
【0151】
2 最大局所差分値決定手段、3 勾配算出手段、4 フィルタ範囲決定手段、5 フィルタ係数決定手段、6 逆フィルタ設定手段、7 巡回型フィルタ手段、100,103 記憶手段、101 劣化推定手段、102 補正手段、201 画像領域、202 差分値決定領域、203 注目画素、204,204a,204b 窓領域、205 近傍画素、301 入力画像評価手段、302 領域選択手段、303 勾配算出範囲決定手段、304 減算手段、305 最大値選択手段。
【特許請求の範囲】
【請求項1】
入力画像の画像領域の全部または一部からなる差分値決定領域内の各注目画素について、当該注目画素の画像データと、当該注目画素の周辺に設定される窓領域内の近傍画素の画像データとの差分からなる局所差分値を、当該注目画素に対する当該近傍画素の相対位置を示す画素単位の座標ごとに算出し、前記差分値決定領域内の全ての前記注目画素に関する前記座標ごとの前記局所差分値の最大値を、前記座標ごとの窓領域最大局所差分値として決定する最大局所差分値決定手段と、
前記座標の水平方向または垂直方向の少なくとも一方向において隣り合う前記窓領域最大局所差分値同士の差分を、最大局所差分勾配値として前記座標ごとに決定する勾配算出手段と、
前記勾配算出手段で決定された前記最大局所差分勾配値のうち、所定値以上の前記最大局所差分勾配値に対応する前記座標の範囲をフィルタ係数存在範囲として求めるフィルタ範囲決定手段と、
前記フィルタ範囲決定手段で決定された前記フィルタ係数存在範囲内の前記最大局所差分勾配値に基づいて、当該フィルタ係数存在範囲内のフィルタ係数を算出するフィルタ係数決定手段と、
前記フィルタ係数算出手段で算出された前記フィルタ係数を用いて、フィルタ処理の逆処理を前記入力画像に施す補正手段とを備える、
画像補正装置。
【請求項2】
前記勾配算出手段は、
前記最大局所差分値決定手段で決定された前記窓領域最大局所差分値に基づいて、所定の閾値を決定する入力画像評価手段と、
前記窓領域最大局所差分値と、前記入力画像評価手段で決定された前記所定の閾値とに基づいて、前記最大局所差分勾配値を算出すべき前記座標の範囲を決定する勾配算出範囲決定手段とを備え、
前記勾配算出範囲決定手段で決定された前記範囲内の前記座標についてのみ、前記最大局所差分勾配値を算出する、
請求項1に記載の画像補正装置。
【請求項3】
前記窓領域は、前記注目画素において互いに隣接する第1,第2の窓領域を含み、
前記勾配算出手段は、
前記第1の窓領域内の前記窓領域最大局所差分値と、前記第2の窓領域内の前記窓領域最大局所差分値とに基づいて、前記第1,第2の窓領域のいずれかを選択し、当該選択した前記窓領域内の前記座標についてのみ、前記最大局所差分勾配値を算出する、
請求項1または請求項2に記載の画像補正装置。
【請求項4】
所定の範囲の2次元線形フィルタを示す第1のフィルタ係数を用いて、フィルタ処理の逆処理を入力画像に施す補正手段を備え、
前記補正手段は、
前記第1のフィルタ係数に基づいて、巡回型フィルタ処理を行うための第2のフィルタ係数、および、前記入力画像の画素に対して巡回型フィルタ処理を施すべき順番を決定する逆フィルタ設定手段と、
前記逆フィルタ設定手段で決定した前記第2のフィルタ係数、および、前記順番に基づいて、前記入力画像に巡回型フィルタ処理を施す巡回型フィルタ手段とを含む、
画像補正装置。
【請求項5】
前記所定の範囲は、長方形を示す座標で表され、
前記逆フィルタ設定手段は、
前記所定の範囲内の4隅の座標に対応する前記第1のフィルタ係数の値に基づいて、4隅の座標から1つの座標を選択し、当該選択した座標に対応させた所定の順番を前記順番として決定する、
請求項4に記載の画像補正装置。
【請求項6】
前記逆フィルタ設定手段は、
前記第2のフィルタ係数の絶対値を1未満に設定する、
請求項4または請求項5に記載の画像補正装置。
【請求項7】
前記逆フィルタ設定手段は、
前記所定の範囲内の座標のうち、最大の絶対値をとる前記第1のフィルタ係数に対応する一の前記座標を求め、当該求めた一の座標を基準に前記所定の範囲を区分してなる複数の区分範囲のうち、少なくとも一の前記区分範囲内の前記第1のフィルタ係数の値に基づいて、対応する前記区分範囲内の前記第2のフィルタ係数を決定する、
請求項4に記載の画像補正装置。
【請求項8】
入力画像の画像領域の全部または一部からなる差分値決定領域内の各注目画素について、当該注目画素の画像データと、当該注目画素の周辺に設定される窓領域内の近傍画素の画像データとの差分からなる局所差分値を、当該注目画素に対する当該近傍画素の相対位置を示す画素単位の座標ごとに算出し、前記差分値決定領域内の全ての前記注目画素に関する前記座標ごとの前記局所差分値の最大値を、前記座標ごとの窓領域最大局所差分値として決定する最大局所差分値決定手段と、
前記座標の水平方向または垂直方向の少なくとも一方向において隣り合う前記窓領域最大局所差分値同士の差分を、最大局所差分勾配値として前記座標ごとに決定する勾配算出手段と、
前記勾配算出手段で決定された前記最大局所差分勾配値のうち、所定値以上の前記最大局所差分勾配値に対応する前記座標の範囲をフィルタ係数存在範囲として求めるフィルタ範囲決定手段と、
前記フィルタ範囲決定手段で決定された前記フィルタ係数存在範囲内の前記最大局所差分勾配値に基づいて、当該フィルタ係数存在範囲内の第1のフィルタ係数を算出するフィルタ係数決定手段と、
前記第1のフィルタ係数に基づいて、巡回型フィルタ処理を行うための第2のフィルタ係数、および、前記入力画像の画素に対して巡回型フィルタ処理を施すべき順番を決定する逆フィルタ設定手段と、
前記逆フィルタ設定手段で決定した前記第2のフィルタ係数、および、前記順番に基づいて、前記入力画像に巡回型フィルタ処理を施す巡回型フィルタ手段とを含む、
画像補正装置。
【請求項1】
入力画像の画像領域の全部または一部からなる差分値決定領域内の各注目画素について、当該注目画素の画像データと、当該注目画素の周辺に設定される窓領域内の近傍画素の画像データとの差分からなる局所差分値を、当該注目画素に対する当該近傍画素の相対位置を示す画素単位の座標ごとに算出し、前記差分値決定領域内の全ての前記注目画素に関する前記座標ごとの前記局所差分値の最大値を、前記座標ごとの窓領域最大局所差分値として決定する最大局所差分値決定手段と、
前記座標の水平方向または垂直方向の少なくとも一方向において隣り合う前記窓領域最大局所差分値同士の差分を、最大局所差分勾配値として前記座標ごとに決定する勾配算出手段と、
前記勾配算出手段で決定された前記最大局所差分勾配値のうち、所定値以上の前記最大局所差分勾配値に対応する前記座標の範囲をフィルタ係数存在範囲として求めるフィルタ範囲決定手段と、
前記フィルタ範囲決定手段で決定された前記フィルタ係数存在範囲内の前記最大局所差分勾配値に基づいて、当該フィルタ係数存在範囲内のフィルタ係数を算出するフィルタ係数決定手段と、
前記フィルタ係数算出手段で算出された前記フィルタ係数を用いて、フィルタ処理の逆処理を前記入力画像に施す補正手段とを備える、
画像補正装置。
【請求項2】
前記勾配算出手段は、
前記最大局所差分値決定手段で決定された前記窓領域最大局所差分値に基づいて、所定の閾値を決定する入力画像評価手段と、
前記窓領域最大局所差分値と、前記入力画像評価手段で決定された前記所定の閾値とに基づいて、前記最大局所差分勾配値を算出すべき前記座標の範囲を決定する勾配算出範囲決定手段とを備え、
前記勾配算出範囲決定手段で決定された前記範囲内の前記座標についてのみ、前記最大局所差分勾配値を算出する、
請求項1に記載の画像補正装置。
【請求項3】
前記窓領域は、前記注目画素において互いに隣接する第1,第2の窓領域を含み、
前記勾配算出手段は、
前記第1の窓領域内の前記窓領域最大局所差分値と、前記第2の窓領域内の前記窓領域最大局所差分値とに基づいて、前記第1,第2の窓領域のいずれかを選択し、当該選択した前記窓領域内の前記座標についてのみ、前記最大局所差分勾配値を算出する、
請求項1または請求項2に記載の画像補正装置。
【請求項4】
所定の範囲の2次元線形フィルタを示す第1のフィルタ係数を用いて、フィルタ処理の逆処理を入力画像に施す補正手段を備え、
前記補正手段は、
前記第1のフィルタ係数に基づいて、巡回型フィルタ処理を行うための第2のフィルタ係数、および、前記入力画像の画素に対して巡回型フィルタ処理を施すべき順番を決定する逆フィルタ設定手段と、
前記逆フィルタ設定手段で決定した前記第2のフィルタ係数、および、前記順番に基づいて、前記入力画像に巡回型フィルタ処理を施す巡回型フィルタ手段とを含む、
画像補正装置。
【請求項5】
前記所定の範囲は、長方形を示す座標で表され、
前記逆フィルタ設定手段は、
前記所定の範囲内の4隅の座標に対応する前記第1のフィルタ係数の値に基づいて、4隅の座標から1つの座標を選択し、当該選択した座標に対応させた所定の順番を前記順番として決定する、
請求項4に記載の画像補正装置。
【請求項6】
前記逆フィルタ設定手段は、
前記第2のフィルタ係数の絶対値を1未満に設定する、
請求項4または請求項5に記載の画像補正装置。
【請求項7】
前記逆フィルタ設定手段は、
前記所定の範囲内の座標のうち、最大の絶対値をとる前記第1のフィルタ係数に対応する一の前記座標を求め、当該求めた一の座標を基準に前記所定の範囲を区分してなる複数の区分範囲のうち、少なくとも一の前記区分範囲内の前記第1のフィルタ係数の値に基づいて、対応する前記区分範囲内の前記第2のフィルタ係数を決定する、
請求項4に記載の画像補正装置。
【請求項8】
入力画像の画像領域の全部または一部からなる差分値決定領域内の各注目画素について、当該注目画素の画像データと、当該注目画素の周辺に設定される窓領域内の近傍画素の画像データとの差分からなる局所差分値を、当該注目画素に対する当該近傍画素の相対位置を示す画素単位の座標ごとに算出し、前記差分値決定領域内の全ての前記注目画素に関する前記座標ごとの前記局所差分値の最大値を、前記座標ごとの窓領域最大局所差分値として決定する最大局所差分値決定手段と、
前記座標の水平方向または垂直方向の少なくとも一方向において隣り合う前記窓領域最大局所差分値同士の差分を、最大局所差分勾配値として前記座標ごとに決定する勾配算出手段と、
前記勾配算出手段で決定された前記最大局所差分勾配値のうち、所定値以上の前記最大局所差分勾配値に対応する前記座標の範囲をフィルタ係数存在範囲として求めるフィルタ範囲決定手段と、
前記フィルタ範囲決定手段で決定された前記フィルタ係数存在範囲内の前記最大局所差分勾配値に基づいて、当該フィルタ係数存在範囲内の第1のフィルタ係数を算出するフィルタ係数決定手段と、
前記第1のフィルタ係数に基づいて、巡回型フィルタ処理を行うための第2のフィルタ係数、および、前記入力画像の画素に対して巡回型フィルタ処理を施すべき順番を決定する逆フィルタ設定手段と、
前記逆フィルタ設定手段で決定した前記第2のフィルタ係数、および、前記順番に基づいて、前記入力画像に巡回型フィルタ処理を施す巡回型フィルタ手段とを含む、
画像補正装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2010−79815(P2010−79815A)
【公開日】平成22年4月8日(2010.4.8)
【国際特許分類】
【出願番号】特願2008−250196(P2008−250196)
【出願日】平成20年9月29日(2008.9.29)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
【公開日】平成22年4月8日(2010.4.8)
【国際特許分類】
【出願日】平成20年9月29日(2008.9.29)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
[ Back to top ]