画像処理方法および画像処理装置
【課題】歪み補正後の絵柄の形状が折れ線状にならず、滑らかに変化する形状に補正可能な画像処理方法および画像処理装置を提供する。
【解決手段】歪み補正後画像の着目画素を表す極座標の角度OTより、着目画像を間に挟む2軸に設定された歪み量テーブルA,Bを選択し、距離ORに応じた歪み量A,Bを算出する。角度OTの三角関数から補間係数を求めて歪み量A,Bを補間し、補間歪み量Cを用いて距離ORを補正する。角度OTと補正した距離IRとで表される極座標を直交座標に変換して、歪み補正前画像の着目画素を表す参照座標を得る。
【解決手段】歪み補正後画像の着目画素を表す極座標の角度OTより、着目画像を間に挟む2軸に設定された歪み量テーブルA,Bを選択し、距離ORに応じた歪み量A,Bを算出する。角度OTの三角関数から補間係数を求めて歪み量A,Bを補間し、補間歪み量Cを用いて距離ORを補正する。角度OTと補正した距離IRとで表される極座標を直交座標に変換して、歪み補正前画像の着目画素を表す参照座標を得る。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、撮像データの画像中に生じた歪みを補正する画像処理方法および画像処理装置に関するものである。
【背景技術】
【0002】
デジタルカメラ等でデジタル画像を撮像すると、レンズの歪曲収差(ディストーション)の影響でデジタル画像中の像が歪む場合がある。この現象は、構造がシンプルなレンズを使用したカメラに発生しやすい。このようなデジタル画像中の像の歪みを、デジタル画像処理によって補正する手法がこれまでにも提案されてきた。
【0003】
例えば、特許文献1に記載された歪曲補正装置は、歪みを補正した後に出力する画像中の着目する画素に対応する参照座標を、歪みが有る補正前の画像の中から算出し、算出した参照座標に基づいて補正前の画像中の画素を補間することにより、補正後画像中の画素の座標を算出している。補正前の画像中から参照座標を算出する際には、ディストーションデータと呼ばれる歪み量を表すデータを参照している。しかし、このディストーションデータは、画像の中心からの距離のみに依存して歪み量が変化するような形状の歪みしか表すことができない。
【0004】
図10に示すように、レンズ100とイメージセンサの受光面101とは必ずしも正対しておらず、図中に傾きφとして表すようにわずかに傾いている場合が多い。受光面101の傾きφがない場合には、画像中で同じ歪み量となる点の軌跡は図11(a)に示す同心円状になるが、傾きφがある場合には同心円状にならず、図11(b)に示す歪んだ円状になる。図11(b)のような歪み形状は画像の中心からの距離が同じでも歪み量が異なるため、特許文献1の補正方法で正しく補正することができなかった。
【0005】
図11(b)のような、歪みの形状が中心からの距離以外の要因で変化する歪みを補正する方法として、特許文献2に記載されている方法がある。図12は、特許文献2に係る撮像装置による歪み補正方法を説明する図である。この方法では、予め、画像中に中心Oから外側に向かって放射状に伸びる複数の軸L1〜L8を設定する。各軸上に、中心Oからの距離に対する歪み量を指定して、歪み量曲線を作成する。この歪み量曲線は、軸毎に独立に設定することができる。そして、撮像装置は、各軸について作成した歪み量曲線の近似式を用いて撮像画像の歪み補正処理を行う。これにより、画像の中心からの距離以外の要因で変化する歪みを補正することができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第4104571号公報
【特許文献2】特開2008−227582号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献2では各軸上に対して独立に歪み量を指定する方法にしては開示されているが、各軸上にない画素の歪み量を算出する具体的な方法については開示されていない。
【0008】
例えば、図12に示すように軸L1上のA点およびB点と軸L8上のC点およびD点とで囲まれた領域ABCD内の歪み量を、A点、B点、C点およびD点にてそれぞれ指定されている歪み量を用いた線形補間で表すとすると、同じ歪み量の軌跡は図12中の点線で表される線分の形状となる。同じ歪み量の軌跡の形状は円弧状になることが多いため、線形補間により算出した歪み量に従って画像を補正すると、上記領域ABCDの境界で歪み補正後の絵柄が折れ線形状に変化してしまう。
【0009】
この発明は上記のような問題点を解決するためになされたものであり、画像上の歪み中心位置からの距離以外の要因によって変化する歪みを補正する際に、歪み補正後の絵柄の形状が折れ線状にならず、滑らかに変化する形状に補正可能な画像処理方法および画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
この発明に係る画像処理方法は、撮像データを歪み補正して得られる歪み補正後画像上の所定位置に歪み中心座標を設定する歪み中心座標設定ステップと、歪み補正後画像上において歪み中心から放射状に伸びる複数の直線毎に、歪み中心からの距離に応じた歪み量を指定した歪み量テーブルを設定する歪み量テーブル設定ステップと、歪み補正後画像上の着目画素の直交座標を極座標に変換して、歪み中心を中心とした距離と角度で表す極座標変換ステップと、極座標上の角度に基づいて、複数の直線のうちから着目画素を間に挟む2直線を選択し、当該2直線に設定された2つの歪み量テーブルを選択する歪み量テーブル選択ステップと、歪み量テーブル選択ステップで選択した2つの歪み量テーブルから、極座標の距離に応じた歪み量をそれぞれ選択する歪み量選択ステップと、極座標上の角度を表す三角関数から補間係数を求めて歪み量選択ステップで選択した2つの歪み量を補間し、補間歪み量を算出する歪み量補間ステップと、歪み量補間ステップで算出した補間歪み量を用いて極座標の距離を補正して直交座標に変換する直交座標変換ステップと、撮像データの画像上の、直交座標変換ステップで変換した直交座標近傍の画素値を補間して、歪み補正後画像上の着目画素の画素値に設定する画素値設定ステップとを備えるものである。
【0011】
この発明に係る画像処理装置は、撮像データを歪み補正して得られる歪み補正後画像上の所定位置に歪み中心座標を設定し、当該歪み補正後画像上の着目画素の直交座標を極座標に変換して、歪み中心を中心とした距離と角度で表す極座標変換部と、歪み補正後画像上において歪み中心から放射状に伸びる複数の直線毎に、歪み中心からの距離に応じた歪み量を指定した歪み量テーブルを設定し、極座標変換部が変換した極座標に基づいて、着目画素を間に挟む2直線の歪み量テーブルから2つの歪み量を取得し、極座標上の角度を表す三角関数から補間係数を求めて2つの歪み量を補間して補間歪み量を算出し、当該補間歪み量を用いて極座標の距離を補正して直交座標に変換する参照座標算出部と、撮像データの画像上の、参照座標算出部が変換した直交座標近傍の画素値を補間して、歪み補正後画像上の着目画素の画素値に設定する画素補間処理部とを備えるものである。
【発明の効果】
【0012】
この発明によれば、歪み補正後画像上の着目画素を示す極座標に基づいて、着目画素を間に挟む2直線の歪み量テーブルから2つの歪み量を取得し、極座標上の角度を表す三角関数から求まる補間係数で補間するようにしたので、画像上の歪み中心位置からの距離以外の要因によって変化する歪みを補正する際に、歪み補正後の絵柄の形状が折れ線状にならず、滑らかに変化する形状に補正できる画像処理方法および画像処理装置を提供することができる。
【図面の簡単な説明】
【0013】
【図1】この発明の実施の形態1に係る撮像装置の構成を示すブロック図である。
【図2】実施の形態1に係る撮像装置のうち、画像処理部の動作を示すフローチャートである。
【図3】実施の形態1に係る撮像装置において、歪み補正後画像に設定される歪み量テーブルを説明する図である。
【図4】実施の形態1による参照座標算出部の動作を示すブロック図である。
【図5】実施の形態1による参照座標算出部の動作を示すフローチャートである。
【図6】実施の形態1の参照座標算出部による、極座標の角度OTを用いて歪み量を補間する方法の概要を示す図である。
【図7】実施の形態1の参照座標算出部による、極座標の角度OTを用いて歪み量を補間する方法の概要を示す続きの図である。
【図8】この発明の実施の形態2に係る撮像装置において、歪み補正後画像に設定される歪み量テーブルを説明する図である。
【図9】実施の形態2による参照座標算出部の動作を示すブロック図である。
【図10】撮像装置のレンズとイメージセンサ受光面の位置関係を示す図である。
【図11】撮像画像の歪みを説明する図であり、図11(a)はレンズに対しイメージセンサ受光面が正対する場合の同じ歪み量の軌跡を示し、図11(b)はレンズに対しイメージセンサ受光面が傾いた場合の同じ歪み量の軌跡を示す。
【図12】特許文献2に係る撮像装置の歪み補正方法を説明する図である。
【発明を実施するための形態】
【0014】
実施の形態1.
図1に示す撮像装置1は、レンズ2と、レンズ2の集光を光電変換して撮像画像(デジタルデータ)を出力するイメージセンサ3と、撮像画像に生じる歪みを補正する画像処理部4と、歪み補正に必要な情報を記憶したメモリ8とを備える。なお、レンズ2およびイメージセンサ3を有して撮像画像を生成するデジタルカメラ本体と、画像処理部4およびメモリ8を有して撮像画像の歪曲収差を補正する画像処理装置とを別体で構成してもよい。
【0015】
この画像処理部4は、極座標変換部5、参照座標算出部6および画素補間処理部7からなり、撮像画像、即ち歪み補正前画像中の歪曲収差を補正するために、歪み補正後画像の着目画素の画素値を算出する。図2は、画像処理部4の動作を示すフローチャートである。撮像画像を歪み補正して歪み補正後画像を生成する際の補正対象となる着目画素の座標が画像処理部4に入力されると、先ず画像処理部4がメモリ8に記憶されている歪み中心座標および画素アスペクト比を参照して、着目画素を直交座標から極座標に変換する(ステップST1)。次に、参照座標算出部6がメモリ8に記憶されている歪み量パラメータを参照して、極座標に対応する歪み補正前画像(即ち、撮像画像)中の参照座標を算出する(ステップST2)。最後に、画素補間処理部7が、算出した参照座標と、イメージセンサ3が出力する歪み補正前画像中の画素値とを用いて補間演算を行い、歪み補正後画像の着目画素の画素値を算出する(ステップST3)。
【0016】
ステップST1において、極座標変換部5は下式(1)および式(2)に従って、歪み補正後画像の着目画素を表す直交座標に対応する極座標を算出する。この際、極座標変換部5は、歪み中心座標(CX,CY)および画素アスペクト比ASPをメモリ8から取得する。
【0017】
OR=SQRT(POW((OX−CX)×ASP,2)+POW(OY−CY,2))
・・・(1)
OT=atan((OY−CY)÷(OX−CX)×ASP):OX≠CXの場合
OT= 90:OX=CXかつOY>CYの場合
OT=270:OX=CXかつOY<CYの場合
OT= 0:OX=CXかつOY=CYの場合
・・・(2)
(OR,OT) :歪み補正後画像着目画素の極座標
(OX,OY) :歪み補正後画像着目画素の座標
(CX,CY) :歪み中心座標
ASP :画素アスペクト比(水平÷垂直)
SQRT(p) :pの平方根を算出する関数
POW(p,q):pのq乗の値を算出する関数
atan(p) :pの逆正接を算出する関数
【0018】
外部から指示される歪み補正後画像着目画素の座標(OX,OY)は、画像データの水平方向と垂直方向を直交するX軸とY軸の座標で表した直交座標である。同様に、歪み中心(CX,CY)も直交座標である。一方、極座標変換部5が変換する極座標(OR,OT)は、歪み中心座標(CX,CT)を中心とした着目画素座標(OX,OY)までの距離ORと、歪み中心を通る始線からの傾きを示す角度OTとで表す。
【0019】
なお、歪み中心座標の算出は公知の方法を用いればよく、キャリブレーション処理として撮像装置1で碁盤の目状の被写体を撮像したときの碁盤の目の歪み具合から歪み中心座標(CX,CT)を算出すればよい。本実施の形態1では、予め算出した歪み中心座標(CX,CT)をメモリ8に保持しておく。
【0020】
また、本実施の形態1では歪み中心座標(CX,CT)からの距離に応じて歪み量を算出する方式であるため、画素自体が正方形でない場合(例えば、イメージセンサ3の1画素の形状が正方形でない場合)には、画像データの水平方向と垂直方向の距離が異なり、歪み量を正しく算出することができない。そのため、上式(1)および式(2)では、水平方向または垂直方向に対して画素アスペクト比に応じた係数ASPを乗じて、正しい距離が算出できるようにする。
【0021】
続くステップST2において、参照座標算出部6は、歪み補正後画像の着目極座標とメモリ8に保持されている歪み量パラメータを参照して、歪み補正前画像の参照座標を算出する。
【0022】
図3は、参照座標算出部6の参照座標算出方法を説明する図である。画像中の歪み中心座標(CX,CY)から周辺へ放射状に伸び、かつ、互いに直交する4方向の軸10−1〜10−4に対して、歪み中心からの距離に応じた歪み量を保持する歪み量テーブル20−1〜20−4を予め設定しておく。歪み量テーブル20−1〜20−4は、入力値の距離に対する出力値の歪み量の組が、複数組、入力値の昇順に並んだ構造となっている。入力値である距離と出力値である歪み量は離散的に変化し、また、複数組の間でも離散的に変化する。
また、歪み量テーブルに歪み量として設定する値は、歪み補正後の歪み中心からの距離に対する歪み補正前の歪み中心からの距離の比率を用いる。また、この比率の代わりに、歪み補正前の歪み中心からの距離と、歪み補正後の歪み中心からの距離との差を用いてもよい。
【0023】
歪み量パラメータとしては、軸10−1〜10−4に対してそれぞれ独立に設定された歪み量テーブルの他、歪み中心を通る水平方向の軸(図3に示す破線であって、上述した始線に相当する)に対する軸10−1の傾きθも予め設定しておく。
【0024】
着目極座標(OR,OT)で表される着目画素が軸10−1〜10−4の真上にない場合、この着目画素を間に挟む位置にくる2本の軸に設定された歪み量テーブルの値を補間して歪み量を得る必要がある。以下、歪み量の補間方法を説明する。
【0025】
図4は、参照座標算出部6の動作を説明するブロック図である。図5は、参照座標算出部6の動作を説明するフローチャートである。
参照座標算出部6は、先の極座標変換処理(ステップST1)で得られた着目画素の角度OTと、メモリ8に予め設定された軸10−1の傾きθとを参照して、着目画素を間に挟む2軸のうちの一方の軸に設定された歪み量テーブルを選択して歪み量テーブルAとする(ステップST2−1A)。ここでは、歪み中心から見て、歪み中心と着目画素をつなぐ直線の左側にくる軸に設定された歪み量テーブルを歪み量テーブルAとし、この直線の右側にくる軸に設定された歪み量テーブルを歪み量テーブルBとする。先ず、歪み量テーブルA選択の条件を以下に列挙する。
0度<=OT−θ< 90度の場合:歪み量テーブル20−1を選択
90度<=OT−θ<180度の場合:歪み量テーブル20−2を選択
180度<=OT−θ<270度の場合:歪み量テーブル20−3を選択
270度<=OT−θ<360度の場合:歪み量テーブル20−4を選択
【0026】
参照座標算出部6は同様に、着目極座標の角度OTとメモリ8に予め設定された軸10−1の傾きθとを参照して、着目画素を間に挟む2軸のうちの他方の軸(即ち、歪み中心から見て、歪み中心と着目画素をつなぐ直線の右側にくる軸)に設定された歪み量テーブルを選択して歪み量テーブルBとする(ステップST2−1B)。歪み量テーブルB選択の条件を以下に列挙する。
0度<=OT−θ< 90度の場合:歪み量テーブル20−2を選択
90度<=OT−θ<180度の場合:歪み量テーブル20−3を選択
180度<=OT−θ<270度の場合:歪み量テーブル20−4を選択
270度<=OT−θ<360度の場合:歪み量テーブル20−1を選択
【0027】
続いて参照座標算出部6は、着目極座標の距離ORを参照して、歪み量テーブルAから歪み量Aを算出する(ステップST2−2A)。参照座標算出部6は、距離ORが歪み量テーブルAの入力値である距離と一致する場合には、対応する出力値である歪み量をそのまま歪み量Aとして算出する。
一方、距離ORが歪み量テーブルAの入力値である距離と一致しない場合には、近傍の入力値および出力値を補間して歪み量Aを算出する。補間方法としては、距離に対する線形補間、スプライン補間等があり、どの方法を用いても構わない。一例として、下式(3)に線形補間による歪み量Aの算出式を示す。
【0028】
DA=(TAO[N+1]−TAO[N])÷(TAI[N+1]−TAI[N])
×(OR−TAI[N])+TAO[N]
・・・(3)
ただし、ORがTAI[N]の最大要素以上の場合は、DAをTAO[N]の最大要素とする。
DA :歪み量A
OR :極座標の距離OR
TAI[N]:歪み量テーブルA入力値(距離)の第N要素
TAO[N]:歪み量テーブルA出力値(歪み量)の第N要素
N :TAI[N]<=OR<TAI[N+1]を満たす要素番号N
【0029】
参照座標算出部6は同様に、着目極座標の距離ORを参照して、歪み量テーブルBから歪み量Bを算出する(ステップST2−2B)。また、参照座標算出部6は歪み量Aの処理と同様、距離ORが歪み量テーブルBの入力値である距離と一致する場合には、対応する出力値である歪み量を歪み量Bとして算出する。また、距離ORが歪み量テーブルBの入力値である距離と一致しない場合には、近傍の入力値および出力値を補間して歪み量Bを算出する。補間方法としては、距離に対する線形補間、スプライン補間等があり、どの方法を用いても構わない。一例として、下式(4)に線形補間による歪み量Bの算出式を示す。
【0030】
DB=(TBO[M+1]−TBO[M])÷(TBI[M+1]−TBI[M])
×(OR−TBI[M])+TBO[M]
・・・(4)
ただし、ORがTBI[M]の最大要素以上の場合は、DBをTBO[M]の最大要素とする。
DB :歪み量B
OR :極座標の距離OR
TBI[M]:歪み量テーブルB入力値(距離)の第M要素
TBO[M]:歪み量テーブルB出力値(歪み量)の第M要素
M :TBI[M]<=OR<TBI[M+1]を満たす要素番号M
【0031】
続いて、参照座標算出部6は歪み量A,Bを補間して、着目極座標の位置に相当する補間歪み量Cを算出する(ステップST2−3)。即ち、着目画素を間に挟む2軸のうちの一方の軸に設定された歪み量テーブルAから算出した歪み量Aと、他方の軸に設定された歪み量テーブルBから算出した歪み量Bとを、角度OTを用いて補間して、着目画素の補間歪み量Cを算出する。
【0032】
図6および図7に、角度OTを用いた補間方法の概要を示す。図示例は、Z軸がレンズ2の光軸である場合に、イメージセンサ3の受光面βが、光軸Zに垂直な面αから角度φだけ傾いている場合の様子を表している。このとき面αは、X−Y平面と一致しており、受光面βの傾きの中心軸はY軸と一致している。
【0033】
X−Y平面をZ軸を中心にしてθ度回転したX’−Y’平面(Y’軸は不図示)上で、X’−Y’平面と受光面βとの間の角度をμ度とする。角度θは、上述した軸10−1の傾きである。図7に示すように、φ度の傾きがない面αでの歪み中心からの距離を1とすると、φ度傾いた受光面βにおける歪み中心からの距離を下式(5)で表すことができる。
tan(μ)=cos(θ)÷cos(φ) ・・・(5)
【0034】
参照座標算出部6は、上式(5)に従い、歪み量間の補間係数に、角度OTの三角関数を用いることで、補間後の同一歪み量の軌跡の形状を円弧状にすることができ、滑らかに変化する形状になる。
【0035】
下式(6)は、歪み量Aと歪み量Bから、補間によって補間歪み量Cを算出する式の具体例である。下式(6)では余弦を返す関数を用いて表すが、同じ内容であれば、正弦を返す関数を用いてもよいし、正接を返す関数を用いてもよい。
【0036】
DC=DA×|cos(OT−θ)|+DB×(1−|cos(OT−θ)|)
・・・(6)
DA :歪み量A
DB :歪み量B
DC :補間歪み量C
OT :極座標の角度OT
θ :軸10−1の傾き
cos(p):pの余弦を返す関数
|p| :pの絶対値
【0037】
このように、着目極座標(OR,OT)で表される着目画素が軸10−1〜10−4の真上にない場合には、この着目画素を間に挟む位置にくる2本の軸に設定された歪み量テーブルの値を補間して、補間歪み量Cを算出する。補間の際には2本の軸からの角度を使用しており、補間係数は0:1〜1:0の間で変化することになる。
一方、着目画素が軸10−1〜10−4のいずれかの軸の真上に存在する場合には、補間係数が0:1または1:0になるので、当該軸に設定された歪み量テーブルを参照して距離ORに対応する歪み量をそのまま補間歪み量Cとして取得できる。
【0038】
続いて参照座標算出部6は、算出した補間歪み量Cを用いて、着目極座標の距離ORを補正し、歪み補正前画像における歪み中心からの距離IRを算出する(ステップST2−4)。歪み量テーブル20−1〜20−4に歪み量として設定されている値が、歪み補正後の歪み中心からの距離に対する歪み補正前の歪み中心からの距離の比率である場合の、距離IR算出式を下式(7)に示す。
【0039】
IR=OR×DC ・・・(7)
IR:歪み補正前画像における歪み中心からの距離
OR:歪み補正後画像における歪み中心からの距離(着目極座標)
DC:補間歪み量C
【0040】
また、ステップST2−4において、歪み量テーブル20−1〜20−4に歪み量として設定されている値が、歪み補正前の歪み中心からの距離と、歪み補正後の歪み中心からの距離との差である場合には、参照座標算出部6は上式(7)に代えて下式(8)を用いる。
【0041】
IR=OR+DC ・・・(8)
IR:歪み補正前画像における歪み中心からの距離
OR:歪み補正後画像における歪み中心からの距離(着目極座標)
DC:補間歪み量C
【0042】
続いて参照座標算出部6は、算出した補正前画像の着目極座標の距離IRと、補正後画像の着目極座標の角度OTとを直交座標に変換して、参照座標(IX,IY)を算出する(ステップST2−5)。着目極座標の距離IRおよび角度OTを参照座標(IX,IY)に変換する式(9)および式(10)を以下に示す。なお、参照座標は1画素未満の単位まで算出して、後段の画素補間処理部7による補間演算(ステップST3)にて使用する。
【0043】
IX=IR×cos(OT)+CX ・・・(9)
ただし、IR=0の場合は、IX=CXとする。
IY=IR×sin(OT)+CY ・・・(10)
ただし、IR=0の場合は、IY=CYとする。
OT :歪み補正後画像着目極座標の角度
IR :歪み補正前画像着目極座標の距離
(IX,IY):歪み補正前画像着目画素の参照座標(直交座標)
(CX,CY):歪み中心座標
cos(p) :pの余弦を算出する関数
sin(p) :pの正弦を算出する関数
【0044】
最後にステップST3において、画素補間処理部7が、イメージセンサ3が出力する歪み補正前画像中から、算出した参照座標(IX,IY)の近傍の画素値を取得して補間演算を行い、歪み補正後画像の着目画素の画素値を算出する。補間演算時には、参照座標の1画素未満の値を補間係数として使用する。画素補間処理における画素値の補間演算は、線形補間、バイキュービック補間、またはその他の方法でも構わない。
一方、歪み補正前画像の着目画素における直交座標がちょうど整数値となる場合(即ち参照座標が1画素となる場合)には、補間係数を1:0とすることで直交座標位置の画素の画素値をそのまま着目画素の画素値として用いることができる。
【0045】
なお、極座標変換部5、参照座標算出部6および画素補間処理部7の各部をそれぞれ専用の回路で構成してもよいし、各部の処理内容を記述しているプログラムをメモリに格納し、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等のマイクロプロセッサがメモリ中のプログラムを実行するように構成してもよい。
【0046】
以上より、実施の形態1に係る画像処理方法によれば、極座標変換部5が、撮像データを歪み補正して得られる歪み補正後画像上に歪み中心座標を設定する歪み中心座標設定ステップと、参照座標算出部6が、歪み補正後画像上において歪み中心から放射状に、互いに直交する角度方向に伸びる4本の軸10−1〜10−4を設定し、当該直線毎に、歪み中心からの距離に応じた歪み量を指定した歪み量テーブル20−1〜20−4を設定する歪み量テーブル設定ステップと、参照座標算出部6が、歪み補正後画像上の着目画素の直交座標を極座標に変換して、歪み中心を中心とした距離と角度で表す極座標変換ステップと、参照座標算出部6が、極座標上の角度に基づいて、4本の軸10−1〜10−4のうちから着目画素を間に挟む2軸を選択し、当該2軸に設定された2つの歪み量テーブルを選択する歪み量テーブル選択ステップと、参照座標算出部6が、歪み量テーブル選択ステップで選択した2つの歪み量テーブルから、極座標の距離に応じた歪み量をそれぞれ選択する歪み量選択ステップと、極座標上の角度を表す三角関数から補間係数を求めて歪み量選択ステップで選択した2つの歪み量を補間し、補間歪み量を算出する歪み量補間ステップと、参照座標算出部6が、歪み量補間ステップで算出した補間歪み量を用いて極座標の距離を補正して直交座標に変換する直交座標変換ステップと、画素補間処理部7が、撮像データの画像上の、直交座標変換ステップで変換した直交座標近傍の画素値を補間して、歪み補正後画像上の着目画素の画素値に設定する画素値設定ステップとを備えるように構成した。このため、画像上の歪み中心位置からの距離以外の要因によって変化する歪みを補正する際に、歪み補正後の絵柄の形状が折れ線状にならず、滑らかに変化する形状に補正できる。
【0047】
また、実施の形態1によれば、極座標変換部5が、極座標変換ステップにおいて直交座標から極座標に変換するときに画素アスペクト比を用いて補正するように構成したので、イメージセンサ3の1画素の形状が正方形でない場合にも、着目画素の正しい極座標を得ることができ、結果として歪み補正精度を向上できる。
【0048】
実施の形態2.
本実施の形態2に係る撮像装置1は、図1に示す撮像装置1と図面上では同様の構成であるため、以下では図1を援用して説明する。本実施の形態2では、メモリ8に保持しておく歪み量パラメータが上記実施の形態1とは異なっており、そのために参照座標算出部6の動作も異なる。以下、異なる部分を中心に説明する。
【0049】
図8は、参照座標算出部6の参照座標算出方法を説明する図である。画像中の歪み中心座標(CX,CY)から任意の方向へ伸びるK本の軸10−1〜10−Kに対して、歪み中心からの距離に応じた歪み量を保持する歪み量テーブル20−1〜20−Kを予め設定しておく。歪み量テーブル20−1〜20−Kは、上記実施の形態1と同様に、入力値の距離に対する出力値の歪み量の組が、複数組、入力値の昇順に並んだ構造となっている。入力値である距離と出力値であるゆがみ量は離散的に変化し、また、複数組の間でも離散的に変化する。
【0050】
また、上記実施の形態1では軸10−1のみに傾きθを設定するようにしたが、本実施の形態2では軸10−1〜10−Kに対してそれぞれの傾きθ1〜θKを設定する。
【0051】
図9は、実施の形態2に係る参照座標算出部6の動作を示すブロック図であり、実施の形態1における図4に対応している。
参照座標算出部6は、先の極座標変換処理(図2に示すステップST1)で得られた歪み補正後画像の着目画素の角度OTと、メモリ8に予め設定された各軸10−1〜10−Kの傾きθ1〜θKとを参照して、着目画素を間に挟む2軸のうちの一方の軸(即ち、歪み中心から見て、歪み中心と着目画素をつなぐ直線の左側にくる軸)に設定された歪み量テーブルを選択して歪み量テーブルAとする(ステップST2−1A’)。歪み量テーブルA選択の条件を以下に列挙する。
θ1<=OT<θ2の場合:歪み量テーブル10−1を選択
θ2<=OT<θ3の場合:歪み量テーブル10−2を選択
: : :
θK<=OTまたはOT<θ1の場合:歪み量テーブル10−Kを選択
【0052】
参照座標算出部6は同様に、着目極座標の角度OTとメモリ8に予め設定された軸10−1〜10−Kの傾きθ1〜θKとを参照して、着目画素を間に挟む2軸のうちの他方の軸(即ち、歪み中心から見て、歪み中心と着目画素をつなぐ直線の左側にくる軸)に設定された歪み量テーブルを選択して歪み量テーブルBとする(ステップST2−1B’)。歪み量テーブルB選択の条件を以下に列挙する。
θ1<=OT<θ2の場合:歪み量テーブル10−2を選択
θ2<=OT<θ3の場合:歪み量テーブル10−3を選択
: : :
θK<=OTまたはOT<θ1の場合:歪み量テーブル10−1を選択
【0053】
続くステップST2−2A,ST2−2Bは、図4に示すステップST2−2A,ST2−2Bと同様の処理のため説明を省略する。
【0054】
続いて参照座標算出部6は、下式(11)を用いて歪み量A,Bを補間して、着目極座標の位置に相当する補間歪み量Cを算出する(ステップST2−3’)。
【0055】
DC=DA×(|cos(OT−θ1)|−|cos(θB−θ1)|)
÷(|cos(θA−θ1)|−|cos(θB−θ1)|)
+DB×(|cos(OA−θ1)|−|cos(θT−θ1)|)
÷(|cos(θA−θ1)|−|cos(θB−θ1)|)
・・・(11)
DA :歪み量A
DB :歪み量B
DC :補間歪み量C
OT :極座標の角度OT
θA :歪み量テーブルAが設定された軸Aの傾き
θB :歪み量テーブルBが設定された軸Bの傾き
cos(p):pの余弦を返す関数
|p| :pの絶対値
【0056】
続くステップST2−4,ST2−5は、図4に示すステップST2−4,ST2−5と同様の処理のため説明を省略する。
【0057】
以上より、実施の形態2に係る画像処理方法によれば、参照座標算出部6は、歪み量テーブル設定ステップで、歪み補正後画像上において歪み中心から放射状に伸びる複数の軸10−1〜10−K毎に、歪み中心からの距離に応じた歪み量を指定した歪み量テーブル20−1〜20−Kを設定し、歪み量テーブル選択ステップで、極座標上の角度に基づいて、複数の軸10−1〜10−Kのうちから着目画素を間に挟む2軸を選択するように構成した。このため、上記実施の形態1と同様に、画像上の歪み中心位置からの距離以外の要因によって変化する歪みを補正する際に、歪み補正後の絵柄の形状が折れ線状にならず、滑らかに変化する形状に補正できる。また、上記実施の形態1では4本だった軸をK本まで増やすことで、より細かな歪み形状にも対応することができる。
【0058】
また、実施の形態2においても、上記実施の形態1と同様に、極座標変換部5が極座標変換ステップにおいて直交座標から極座標に変換するときに画素アスペクト比を用いて補正するように構成してもよい。この構成であれば、イメージセンサ3の1画素の形状が正方形でない場合にも、着目画素の正しい極座標を得ることができ、結果として歪み補正精度を向上できる。
【0059】
上記実施の形態1,2では、歪みが変化する原因として、図6に示すようなレンズ光軸に対するイメージセンサ受光面の傾きを例に挙げて説明したが、その他にも、レンズの形状に微小な歪みがある場合、イメージセンサ受光面自体が平面から微小に歪んでいる場合にも歪みの形状が中心からの距離以外の要因で変化する。そのような場合にも、上記実施の形態1,2に係る画像処理方法を用いれば画像データの歪みを補正することができる。ただし、歪みが変化する原因に応じて歪み中心座標(CX,CT)の設定位置も変える必要がある。
なお、本願発明の範囲内において、実施の形態を適宜組合せ、変更、省略等することが可能である。
【符号の説明】
【0060】
1 撮像装置、2 レンズ、3 イメージセンサ、4 画像処理部、5 極座標変換部、6 参照座標算出部、7 画素補間処理部、8 メモリ、10−1〜10−K,L1〜L8 軸、20−1〜20−K 歪み量テーブル、100 レンズ、101 イメージセンサの受光面。
【技術分野】
【0001】
この発明は、撮像データの画像中に生じた歪みを補正する画像処理方法および画像処理装置に関するものである。
【背景技術】
【0002】
デジタルカメラ等でデジタル画像を撮像すると、レンズの歪曲収差(ディストーション)の影響でデジタル画像中の像が歪む場合がある。この現象は、構造がシンプルなレンズを使用したカメラに発生しやすい。このようなデジタル画像中の像の歪みを、デジタル画像処理によって補正する手法がこれまでにも提案されてきた。
【0003】
例えば、特許文献1に記載された歪曲補正装置は、歪みを補正した後に出力する画像中の着目する画素に対応する参照座標を、歪みが有る補正前の画像の中から算出し、算出した参照座標に基づいて補正前の画像中の画素を補間することにより、補正後画像中の画素の座標を算出している。補正前の画像中から参照座標を算出する際には、ディストーションデータと呼ばれる歪み量を表すデータを参照している。しかし、このディストーションデータは、画像の中心からの距離のみに依存して歪み量が変化するような形状の歪みしか表すことができない。
【0004】
図10に示すように、レンズ100とイメージセンサの受光面101とは必ずしも正対しておらず、図中に傾きφとして表すようにわずかに傾いている場合が多い。受光面101の傾きφがない場合には、画像中で同じ歪み量となる点の軌跡は図11(a)に示す同心円状になるが、傾きφがある場合には同心円状にならず、図11(b)に示す歪んだ円状になる。図11(b)のような歪み形状は画像の中心からの距離が同じでも歪み量が異なるため、特許文献1の補正方法で正しく補正することができなかった。
【0005】
図11(b)のような、歪みの形状が中心からの距離以外の要因で変化する歪みを補正する方法として、特許文献2に記載されている方法がある。図12は、特許文献2に係る撮像装置による歪み補正方法を説明する図である。この方法では、予め、画像中に中心Oから外側に向かって放射状に伸びる複数の軸L1〜L8を設定する。各軸上に、中心Oからの距離に対する歪み量を指定して、歪み量曲線を作成する。この歪み量曲線は、軸毎に独立に設定することができる。そして、撮像装置は、各軸について作成した歪み量曲線の近似式を用いて撮像画像の歪み補正処理を行う。これにより、画像の中心からの距離以外の要因で変化する歪みを補正することができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第4104571号公報
【特許文献2】特開2008−227582号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献2では各軸上に対して独立に歪み量を指定する方法にしては開示されているが、各軸上にない画素の歪み量を算出する具体的な方法については開示されていない。
【0008】
例えば、図12に示すように軸L1上のA点およびB点と軸L8上のC点およびD点とで囲まれた領域ABCD内の歪み量を、A点、B点、C点およびD点にてそれぞれ指定されている歪み量を用いた線形補間で表すとすると、同じ歪み量の軌跡は図12中の点線で表される線分の形状となる。同じ歪み量の軌跡の形状は円弧状になることが多いため、線形補間により算出した歪み量に従って画像を補正すると、上記領域ABCDの境界で歪み補正後の絵柄が折れ線形状に変化してしまう。
【0009】
この発明は上記のような問題点を解決するためになされたものであり、画像上の歪み中心位置からの距離以外の要因によって変化する歪みを補正する際に、歪み補正後の絵柄の形状が折れ線状にならず、滑らかに変化する形状に補正可能な画像処理方法および画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
この発明に係る画像処理方法は、撮像データを歪み補正して得られる歪み補正後画像上の所定位置に歪み中心座標を設定する歪み中心座標設定ステップと、歪み補正後画像上において歪み中心から放射状に伸びる複数の直線毎に、歪み中心からの距離に応じた歪み量を指定した歪み量テーブルを設定する歪み量テーブル設定ステップと、歪み補正後画像上の着目画素の直交座標を極座標に変換して、歪み中心を中心とした距離と角度で表す極座標変換ステップと、極座標上の角度に基づいて、複数の直線のうちから着目画素を間に挟む2直線を選択し、当該2直線に設定された2つの歪み量テーブルを選択する歪み量テーブル選択ステップと、歪み量テーブル選択ステップで選択した2つの歪み量テーブルから、極座標の距離に応じた歪み量をそれぞれ選択する歪み量選択ステップと、極座標上の角度を表す三角関数から補間係数を求めて歪み量選択ステップで選択した2つの歪み量を補間し、補間歪み量を算出する歪み量補間ステップと、歪み量補間ステップで算出した補間歪み量を用いて極座標の距離を補正して直交座標に変換する直交座標変換ステップと、撮像データの画像上の、直交座標変換ステップで変換した直交座標近傍の画素値を補間して、歪み補正後画像上の着目画素の画素値に設定する画素値設定ステップとを備えるものである。
【0011】
この発明に係る画像処理装置は、撮像データを歪み補正して得られる歪み補正後画像上の所定位置に歪み中心座標を設定し、当該歪み補正後画像上の着目画素の直交座標を極座標に変換して、歪み中心を中心とした距離と角度で表す極座標変換部と、歪み補正後画像上において歪み中心から放射状に伸びる複数の直線毎に、歪み中心からの距離に応じた歪み量を指定した歪み量テーブルを設定し、極座標変換部が変換した極座標に基づいて、着目画素を間に挟む2直線の歪み量テーブルから2つの歪み量を取得し、極座標上の角度を表す三角関数から補間係数を求めて2つの歪み量を補間して補間歪み量を算出し、当該補間歪み量を用いて極座標の距離を補正して直交座標に変換する参照座標算出部と、撮像データの画像上の、参照座標算出部が変換した直交座標近傍の画素値を補間して、歪み補正後画像上の着目画素の画素値に設定する画素補間処理部とを備えるものである。
【発明の効果】
【0012】
この発明によれば、歪み補正後画像上の着目画素を示す極座標に基づいて、着目画素を間に挟む2直線の歪み量テーブルから2つの歪み量を取得し、極座標上の角度を表す三角関数から求まる補間係数で補間するようにしたので、画像上の歪み中心位置からの距離以外の要因によって変化する歪みを補正する際に、歪み補正後の絵柄の形状が折れ線状にならず、滑らかに変化する形状に補正できる画像処理方法および画像処理装置を提供することができる。
【図面の簡単な説明】
【0013】
【図1】この発明の実施の形態1に係る撮像装置の構成を示すブロック図である。
【図2】実施の形態1に係る撮像装置のうち、画像処理部の動作を示すフローチャートである。
【図3】実施の形態1に係る撮像装置において、歪み補正後画像に設定される歪み量テーブルを説明する図である。
【図4】実施の形態1による参照座標算出部の動作を示すブロック図である。
【図5】実施の形態1による参照座標算出部の動作を示すフローチャートである。
【図6】実施の形態1の参照座標算出部による、極座標の角度OTを用いて歪み量を補間する方法の概要を示す図である。
【図7】実施の形態1の参照座標算出部による、極座標の角度OTを用いて歪み量を補間する方法の概要を示す続きの図である。
【図8】この発明の実施の形態2に係る撮像装置において、歪み補正後画像に設定される歪み量テーブルを説明する図である。
【図9】実施の形態2による参照座標算出部の動作を示すブロック図である。
【図10】撮像装置のレンズとイメージセンサ受光面の位置関係を示す図である。
【図11】撮像画像の歪みを説明する図であり、図11(a)はレンズに対しイメージセンサ受光面が正対する場合の同じ歪み量の軌跡を示し、図11(b)はレンズに対しイメージセンサ受光面が傾いた場合の同じ歪み量の軌跡を示す。
【図12】特許文献2に係る撮像装置の歪み補正方法を説明する図である。
【発明を実施するための形態】
【0014】
実施の形態1.
図1に示す撮像装置1は、レンズ2と、レンズ2の集光を光電変換して撮像画像(デジタルデータ)を出力するイメージセンサ3と、撮像画像に生じる歪みを補正する画像処理部4と、歪み補正に必要な情報を記憶したメモリ8とを備える。なお、レンズ2およびイメージセンサ3を有して撮像画像を生成するデジタルカメラ本体と、画像処理部4およびメモリ8を有して撮像画像の歪曲収差を補正する画像処理装置とを別体で構成してもよい。
【0015】
この画像処理部4は、極座標変換部5、参照座標算出部6および画素補間処理部7からなり、撮像画像、即ち歪み補正前画像中の歪曲収差を補正するために、歪み補正後画像の着目画素の画素値を算出する。図2は、画像処理部4の動作を示すフローチャートである。撮像画像を歪み補正して歪み補正後画像を生成する際の補正対象となる着目画素の座標が画像処理部4に入力されると、先ず画像処理部4がメモリ8に記憶されている歪み中心座標および画素アスペクト比を参照して、着目画素を直交座標から極座標に変換する(ステップST1)。次に、参照座標算出部6がメモリ8に記憶されている歪み量パラメータを参照して、極座標に対応する歪み補正前画像(即ち、撮像画像)中の参照座標を算出する(ステップST2)。最後に、画素補間処理部7が、算出した参照座標と、イメージセンサ3が出力する歪み補正前画像中の画素値とを用いて補間演算を行い、歪み補正後画像の着目画素の画素値を算出する(ステップST3)。
【0016】
ステップST1において、極座標変換部5は下式(1)および式(2)に従って、歪み補正後画像の着目画素を表す直交座標に対応する極座標を算出する。この際、極座標変換部5は、歪み中心座標(CX,CY)および画素アスペクト比ASPをメモリ8から取得する。
【0017】
OR=SQRT(POW((OX−CX)×ASP,2)+POW(OY−CY,2))
・・・(1)
OT=atan((OY−CY)÷(OX−CX)×ASP):OX≠CXの場合
OT= 90:OX=CXかつOY>CYの場合
OT=270:OX=CXかつOY<CYの場合
OT= 0:OX=CXかつOY=CYの場合
・・・(2)
(OR,OT) :歪み補正後画像着目画素の極座標
(OX,OY) :歪み補正後画像着目画素の座標
(CX,CY) :歪み中心座標
ASP :画素アスペクト比(水平÷垂直)
SQRT(p) :pの平方根を算出する関数
POW(p,q):pのq乗の値を算出する関数
atan(p) :pの逆正接を算出する関数
【0018】
外部から指示される歪み補正後画像着目画素の座標(OX,OY)は、画像データの水平方向と垂直方向を直交するX軸とY軸の座標で表した直交座標である。同様に、歪み中心(CX,CY)も直交座標である。一方、極座標変換部5が変換する極座標(OR,OT)は、歪み中心座標(CX,CT)を中心とした着目画素座標(OX,OY)までの距離ORと、歪み中心を通る始線からの傾きを示す角度OTとで表す。
【0019】
なお、歪み中心座標の算出は公知の方法を用いればよく、キャリブレーション処理として撮像装置1で碁盤の目状の被写体を撮像したときの碁盤の目の歪み具合から歪み中心座標(CX,CT)を算出すればよい。本実施の形態1では、予め算出した歪み中心座標(CX,CT)をメモリ8に保持しておく。
【0020】
また、本実施の形態1では歪み中心座標(CX,CT)からの距離に応じて歪み量を算出する方式であるため、画素自体が正方形でない場合(例えば、イメージセンサ3の1画素の形状が正方形でない場合)には、画像データの水平方向と垂直方向の距離が異なり、歪み量を正しく算出することができない。そのため、上式(1)および式(2)では、水平方向または垂直方向に対して画素アスペクト比に応じた係数ASPを乗じて、正しい距離が算出できるようにする。
【0021】
続くステップST2において、参照座標算出部6は、歪み補正後画像の着目極座標とメモリ8に保持されている歪み量パラメータを参照して、歪み補正前画像の参照座標を算出する。
【0022】
図3は、参照座標算出部6の参照座標算出方法を説明する図である。画像中の歪み中心座標(CX,CY)から周辺へ放射状に伸び、かつ、互いに直交する4方向の軸10−1〜10−4に対して、歪み中心からの距離に応じた歪み量を保持する歪み量テーブル20−1〜20−4を予め設定しておく。歪み量テーブル20−1〜20−4は、入力値の距離に対する出力値の歪み量の組が、複数組、入力値の昇順に並んだ構造となっている。入力値である距離と出力値である歪み量は離散的に変化し、また、複数組の間でも離散的に変化する。
また、歪み量テーブルに歪み量として設定する値は、歪み補正後の歪み中心からの距離に対する歪み補正前の歪み中心からの距離の比率を用いる。また、この比率の代わりに、歪み補正前の歪み中心からの距離と、歪み補正後の歪み中心からの距離との差を用いてもよい。
【0023】
歪み量パラメータとしては、軸10−1〜10−4に対してそれぞれ独立に設定された歪み量テーブルの他、歪み中心を通る水平方向の軸(図3に示す破線であって、上述した始線に相当する)に対する軸10−1の傾きθも予め設定しておく。
【0024】
着目極座標(OR,OT)で表される着目画素が軸10−1〜10−4の真上にない場合、この着目画素を間に挟む位置にくる2本の軸に設定された歪み量テーブルの値を補間して歪み量を得る必要がある。以下、歪み量の補間方法を説明する。
【0025】
図4は、参照座標算出部6の動作を説明するブロック図である。図5は、参照座標算出部6の動作を説明するフローチャートである。
参照座標算出部6は、先の極座標変換処理(ステップST1)で得られた着目画素の角度OTと、メモリ8に予め設定された軸10−1の傾きθとを参照して、着目画素を間に挟む2軸のうちの一方の軸に設定された歪み量テーブルを選択して歪み量テーブルAとする(ステップST2−1A)。ここでは、歪み中心から見て、歪み中心と着目画素をつなぐ直線の左側にくる軸に設定された歪み量テーブルを歪み量テーブルAとし、この直線の右側にくる軸に設定された歪み量テーブルを歪み量テーブルBとする。先ず、歪み量テーブルA選択の条件を以下に列挙する。
0度<=OT−θ< 90度の場合:歪み量テーブル20−1を選択
90度<=OT−θ<180度の場合:歪み量テーブル20−2を選択
180度<=OT−θ<270度の場合:歪み量テーブル20−3を選択
270度<=OT−θ<360度の場合:歪み量テーブル20−4を選択
【0026】
参照座標算出部6は同様に、着目極座標の角度OTとメモリ8に予め設定された軸10−1の傾きθとを参照して、着目画素を間に挟む2軸のうちの他方の軸(即ち、歪み中心から見て、歪み中心と着目画素をつなぐ直線の右側にくる軸)に設定された歪み量テーブルを選択して歪み量テーブルBとする(ステップST2−1B)。歪み量テーブルB選択の条件を以下に列挙する。
0度<=OT−θ< 90度の場合:歪み量テーブル20−2を選択
90度<=OT−θ<180度の場合:歪み量テーブル20−3を選択
180度<=OT−θ<270度の場合:歪み量テーブル20−4を選択
270度<=OT−θ<360度の場合:歪み量テーブル20−1を選択
【0027】
続いて参照座標算出部6は、着目極座標の距離ORを参照して、歪み量テーブルAから歪み量Aを算出する(ステップST2−2A)。参照座標算出部6は、距離ORが歪み量テーブルAの入力値である距離と一致する場合には、対応する出力値である歪み量をそのまま歪み量Aとして算出する。
一方、距離ORが歪み量テーブルAの入力値である距離と一致しない場合には、近傍の入力値および出力値を補間して歪み量Aを算出する。補間方法としては、距離に対する線形補間、スプライン補間等があり、どの方法を用いても構わない。一例として、下式(3)に線形補間による歪み量Aの算出式を示す。
【0028】
DA=(TAO[N+1]−TAO[N])÷(TAI[N+1]−TAI[N])
×(OR−TAI[N])+TAO[N]
・・・(3)
ただし、ORがTAI[N]の最大要素以上の場合は、DAをTAO[N]の最大要素とする。
DA :歪み量A
OR :極座標の距離OR
TAI[N]:歪み量テーブルA入力値(距離)の第N要素
TAO[N]:歪み量テーブルA出力値(歪み量)の第N要素
N :TAI[N]<=OR<TAI[N+1]を満たす要素番号N
【0029】
参照座標算出部6は同様に、着目極座標の距離ORを参照して、歪み量テーブルBから歪み量Bを算出する(ステップST2−2B)。また、参照座標算出部6は歪み量Aの処理と同様、距離ORが歪み量テーブルBの入力値である距離と一致する場合には、対応する出力値である歪み量を歪み量Bとして算出する。また、距離ORが歪み量テーブルBの入力値である距離と一致しない場合には、近傍の入力値および出力値を補間して歪み量Bを算出する。補間方法としては、距離に対する線形補間、スプライン補間等があり、どの方法を用いても構わない。一例として、下式(4)に線形補間による歪み量Bの算出式を示す。
【0030】
DB=(TBO[M+1]−TBO[M])÷(TBI[M+1]−TBI[M])
×(OR−TBI[M])+TBO[M]
・・・(4)
ただし、ORがTBI[M]の最大要素以上の場合は、DBをTBO[M]の最大要素とする。
DB :歪み量B
OR :極座標の距離OR
TBI[M]:歪み量テーブルB入力値(距離)の第M要素
TBO[M]:歪み量テーブルB出力値(歪み量)の第M要素
M :TBI[M]<=OR<TBI[M+1]を満たす要素番号M
【0031】
続いて、参照座標算出部6は歪み量A,Bを補間して、着目極座標の位置に相当する補間歪み量Cを算出する(ステップST2−3)。即ち、着目画素を間に挟む2軸のうちの一方の軸に設定された歪み量テーブルAから算出した歪み量Aと、他方の軸に設定された歪み量テーブルBから算出した歪み量Bとを、角度OTを用いて補間して、着目画素の補間歪み量Cを算出する。
【0032】
図6および図7に、角度OTを用いた補間方法の概要を示す。図示例は、Z軸がレンズ2の光軸である場合に、イメージセンサ3の受光面βが、光軸Zに垂直な面αから角度φだけ傾いている場合の様子を表している。このとき面αは、X−Y平面と一致しており、受光面βの傾きの中心軸はY軸と一致している。
【0033】
X−Y平面をZ軸を中心にしてθ度回転したX’−Y’平面(Y’軸は不図示)上で、X’−Y’平面と受光面βとの間の角度をμ度とする。角度θは、上述した軸10−1の傾きである。図7に示すように、φ度の傾きがない面αでの歪み中心からの距離を1とすると、φ度傾いた受光面βにおける歪み中心からの距離を下式(5)で表すことができる。
tan(μ)=cos(θ)÷cos(φ) ・・・(5)
【0034】
参照座標算出部6は、上式(5)に従い、歪み量間の補間係数に、角度OTの三角関数を用いることで、補間後の同一歪み量の軌跡の形状を円弧状にすることができ、滑らかに変化する形状になる。
【0035】
下式(6)は、歪み量Aと歪み量Bから、補間によって補間歪み量Cを算出する式の具体例である。下式(6)では余弦を返す関数を用いて表すが、同じ内容であれば、正弦を返す関数を用いてもよいし、正接を返す関数を用いてもよい。
【0036】
DC=DA×|cos(OT−θ)|+DB×(1−|cos(OT−θ)|)
・・・(6)
DA :歪み量A
DB :歪み量B
DC :補間歪み量C
OT :極座標の角度OT
θ :軸10−1の傾き
cos(p):pの余弦を返す関数
|p| :pの絶対値
【0037】
このように、着目極座標(OR,OT)で表される着目画素が軸10−1〜10−4の真上にない場合には、この着目画素を間に挟む位置にくる2本の軸に設定された歪み量テーブルの値を補間して、補間歪み量Cを算出する。補間の際には2本の軸からの角度を使用しており、補間係数は0:1〜1:0の間で変化することになる。
一方、着目画素が軸10−1〜10−4のいずれかの軸の真上に存在する場合には、補間係数が0:1または1:0になるので、当該軸に設定された歪み量テーブルを参照して距離ORに対応する歪み量をそのまま補間歪み量Cとして取得できる。
【0038】
続いて参照座標算出部6は、算出した補間歪み量Cを用いて、着目極座標の距離ORを補正し、歪み補正前画像における歪み中心からの距離IRを算出する(ステップST2−4)。歪み量テーブル20−1〜20−4に歪み量として設定されている値が、歪み補正後の歪み中心からの距離に対する歪み補正前の歪み中心からの距離の比率である場合の、距離IR算出式を下式(7)に示す。
【0039】
IR=OR×DC ・・・(7)
IR:歪み補正前画像における歪み中心からの距離
OR:歪み補正後画像における歪み中心からの距離(着目極座標)
DC:補間歪み量C
【0040】
また、ステップST2−4において、歪み量テーブル20−1〜20−4に歪み量として設定されている値が、歪み補正前の歪み中心からの距離と、歪み補正後の歪み中心からの距離との差である場合には、参照座標算出部6は上式(7)に代えて下式(8)を用いる。
【0041】
IR=OR+DC ・・・(8)
IR:歪み補正前画像における歪み中心からの距離
OR:歪み補正後画像における歪み中心からの距離(着目極座標)
DC:補間歪み量C
【0042】
続いて参照座標算出部6は、算出した補正前画像の着目極座標の距離IRと、補正後画像の着目極座標の角度OTとを直交座標に変換して、参照座標(IX,IY)を算出する(ステップST2−5)。着目極座標の距離IRおよび角度OTを参照座標(IX,IY)に変換する式(9)および式(10)を以下に示す。なお、参照座標は1画素未満の単位まで算出して、後段の画素補間処理部7による補間演算(ステップST3)にて使用する。
【0043】
IX=IR×cos(OT)+CX ・・・(9)
ただし、IR=0の場合は、IX=CXとする。
IY=IR×sin(OT)+CY ・・・(10)
ただし、IR=0の場合は、IY=CYとする。
OT :歪み補正後画像着目極座標の角度
IR :歪み補正前画像着目極座標の距離
(IX,IY):歪み補正前画像着目画素の参照座標(直交座標)
(CX,CY):歪み中心座標
cos(p) :pの余弦を算出する関数
sin(p) :pの正弦を算出する関数
【0044】
最後にステップST3において、画素補間処理部7が、イメージセンサ3が出力する歪み補正前画像中から、算出した参照座標(IX,IY)の近傍の画素値を取得して補間演算を行い、歪み補正後画像の着目画素の画素値を算出する。補間演算時には、参照座標の1画素未満の値を補間係数として使用する。画素補間処理における画素値の補間演算は、線形補間、バイキュービック補間、またはその他の方法でも構わない。
一方、歪み補正前画像の着目画素における直交座標がちょうど整数値となる場合(即ち参照座標が1画素となる場合)には、補間係数を1:0とすることで直交座標位置の画素の画素値をそのまま着目画素の画素値として用いることができる。
【0045】
なお、極座標変換部5、参照座標算出部6および画素補間処理部7の各部をそれぞれ専用の回路で構成してもよいし、各部の処理内容を記述しているプログラムをメモリに格納し、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等のマイクロプロセッサがメモリ中のプログラムを実行するように構成してもよい。
【0046】
以上より、実施の形態1に係る画像処理方法によれば、極座標変換部5が、撮像データを歪み補正して得られる歪み補正後画像上に歪み中心座標を設定する歪み中心座標設定ステップと、参照座標算出部6が、歪み補正後画像上において歪み中心から放射状に、互いに直交する角度方向に伸びる4本の軸10−1〜10−4を設定し、当該直線毎に、歪み中心からの距離に応じた歪み量を指定した歪み量テーブル20−1〜20−4を設定する歪み量テーブル設定ステップと、参照座標算出部6が、歪み補正後画像上の着目画素の直交座標を極座標に変換して、歪み中心を中心とした距離と角度で表す極座標変換ステップと、参照座標算出部6が、極座標上の角度に基づいて、4本の軸10−1〜10−4のうちから着目画素を間に挟む2軸を選択し、当該2軸に設定された2つの歪み量テーブルを選択する歪み量テーブル選択ステップと、参照座標算出部6が、歪み量テーブル選択ステップで選択した2つの歪み量テーブルから、極座標の距離に応じた歪み量をそれぞれ選択する歪み量選択ステップと、極座標上の角度を表す三角関数から補間係数を求めて歪み量選択ステップで選択した2つの歪み量を補間し、補間歪み量を算出する歪み量補間ステップと、参照座標算出部6が、歪み量補間ステップで算出した補間歪み量を用いて極座標の距離を補正して直交座標に変換する直交座標変換ステップと、画素補間処理部7が、撮像データの画像上の、直交座標変換ステップで変換した直交座標近傍の画素値を補間して、歪み補正後画像上の着目画素の画素値に設定する画素値設定ステップとを備えるように構成した。このため、画像上の歪み中心位置からの距離以外の要因によって変化する歪みを補正する際に、歪み補正後の絵柄の形状が折れ線状にならず、滑らかに変化する形状に補正できる。
【0047】
また、実施の形態1によれば、極座標変換部5が、極座標変換ステップにおいて直交座標から極座標に変換するときに画素アスペクト比を用いて補正するように構成したので、イメージセンサ3の1画素の形状が正方形でない場合にも、着目画素の正しい極座標を得ることができ、結果として歪み補正精度を向上できる。
【0048】
実施の形態2.
本実施の形態2に係る撮像装置1は、図1に示す撮像装置1と図面上では同様の構成であるため、以下では図1を援用して説明する。本実施の形態2では、メモリ8に保持しておく歪み量パラメータが上記実施の形態1とは異なっており、そのために参照座標算出部6の動作も異なる。以下、異なる部分を中心に説明する。
【0049】
図8は、参照座標算出部6の参照座標算出方法を説明する図である。画像中の歪み中心座標(CX,CY)から任意の方向へ伸びるK本の軸10−1〜10−Kに対して、歪み中心からの距離に応じた歪み量を保持する歪み量テーブル20−1〜20−Kを予め設定しておく。歪み量テーブル20−1〜20−Kは、上記実施の形態1と同様に、入力値の距離に対する出力値の歪み量の組が、複数組、入力値の昇順に並んだ構造となっている。入力値である距離と出力値であるゆがみ量は離散的に変化し、また、複数組の間でも離散的に変化する。
【0050】
また、上記実施の形態1では軸10−1のみに傾きθを設定するようにしたが、本実施の形態2では軸10−1〜10−Kに対してそれぞれの傾きθ1〜θKを設定する。
【0051】
図9は、実施の形態2に係る参照座標算出部6の動作を示すブロック図であり、実施の形態1における図4に対応している。
参照座標算出部6は、先の極座標変換処理(図2に示すステップST1)で得られた歪み補正後画像の着目画素の角度OTと、メモリ8に予め設定された各軸10−1〜10−Kの傾きθ1〜θKとを参照して、着目画素を間に挟む2軸のうちの一方の軸(即ち、歪み中心から見て、歪み中心と着目画素をつなぐ直線の左側にくる軸)に設定された歪み量テーブルを選択して歪み量テーブルAとする(ステップST2−1A’)。歪み量テーブルA選択の条件を以下に列挙する。
θ1<=OT<θ2の場合:歪み量テーブル10−1を選択
θ2<=OT<θ3の場合:歪み量テーブル10−2を選択
: : :
θK<=OTまたはOT<θ1の場合:歪み量テーブル10−Kを選択
【0052】
参照座標算出部6は同様に、着目極座標の角度OTとメモリ8に予め設定された軸10−1〜10−Kの傾きθ1〜θKとを参照して、着目画素を間に挟む2軸のうちの他方の軸(即ち、歪み中心から見て、歪み中心と着目画素をつなぐ直線の左側にくる軸)に設定された歪み量テーブルを選択して歪み量テーブルBとする(ステップST2−1B’)。歪み量テーブルB選択の条件を以下に列挙する。
θ1<=OT<θ2の場合:歪み量テーブル10−2を選択
θ2<=OT<θ3の場合:歪み量テーブル10−3を選択
: : :
θK<=OTまたはOT<θ1の場合:歪み量テーブル10−1を選択
【0053】
続くステップST2−2A,ST2−2Bは、図4に示すステップST2−2A,ST2−2Bと同様の処理のため説明を省略する。
【0054】
続いて参照座標算出部6は、下式(11)を用いて歪み量A,Bを補間して、着目極座標の位置に相当する補間歪み量Cを算出する(ステップST2−3’)。
【0055】
DC=DA×(|cos(OT−θ1)|−|cos(θB−θ1)|)
÷(|cos(θA−θ1)|−|cos(θB−θ1)|)
+DB×(|cos(OA−θ1)|−|cos(θT−θ1)|)
÷(|cos(θA−θ1)|−|cos(θB−θ1)|)
・・・(11)
DA :歪み量A
DB :歪み量B
DC :補間歪み量C
OT :極座標の角度OT
θA :歪み量テーブルAが設定された軸Aの傾き
θB :歪み量テーブルBが設定された軸Bの傾き
cos(p):pの余弦を返す関数
|p| :pの絶対値
【0056】
続くステップST2−4,ST2−5は、図4に示すステップST2−4,ST2−5と同様の処理のため説明を省略する。
【0057】
以上より、実施の形態2に係る画像処理方法によれば、参照座標算出部6は、歪み量テーブル設定ステップで、歪み補正後画像上において歪み中心から放射状に伸びる複数の軸10−1〜10−K毎に、歪み中心からの距離に応じた歪み量を指定した歪み量テーブル20−1〜20−Kを設定し、歪み量テーブル選択ステップで、極座標上の角度に基づいて、複数の軸10−1〜10−Kのうちから着目画素を間に挟む2軸を選択するように構成した。このため、上記実施の形態1と同様に、画像上の歪み中心位置からの距離以外の要因によって変化する歪みを補正する際に、歪み補正後の絵柄の形状が折れ線状にならず、滑らかに変化する形状に補正できる。また、上記実施の形態1では4本だった軸をK本まで増やすことで、より細かな歪み形状にも対応することができる。
【0058】
また、実施の形態2においても、上記実施の形態1と同様に、極座標変換部5が極座標変換ステップにおいて直交座標から極座標に変換するときに画素アスペクト比を用いて補正するように構成してもよい。この構成であれば、イメージセンサ3の1画素の形状が正方形でない場合にも、着目画素の正しい極座標を得ることができ、結果として歪み補正精度を向上できる。
【0059】
上記実施の形態1,2では、歪みが変化する原因として、図6に示すようなレンズ光軸に対するイメージセンサ受光面の傾きを例に挙げて説明したが、その他にも、レンズの形状に微小な歪みがある場合、イメージセンサ受光面自体が平面から微小に歪んでいる場合にも歪みの形状が中心からの距離以外の要因で変化する。そのような場合にも、上記実施の形態1,2に係る画像処理方法を用いれば画像データの歪みを補正することができる。ただし、歪みが変化する原因に応じて歪み中心座標(CX,CT)の設定位置も変える必要がある。
なお、本願発明の範囲内において、実施の形態を適宜組合せ、変更、省略等することが可能である。
【符号の説明】
【0060】
1 撮像装置、2 レンズ、3 イメージセンサ、4 画像処理部、5 極座標変換部、6 参照座標算出部、7 画素補間処理部、8 メモリ、10−1〜10−K,L1〜L8 軸、20−1〜20−K 歪み量テーブル、100 レンズ、101 イメージセンサの受光面。
【特許請求の範囲】
【請求項1】
撮像データの画像中に生じた歪みを補正する画像処理方法において、
前記撮像データを歪み補正して得られる歪み補正後画像上の所定位置に歪み中心座標を設定する歪み中心座標設定ステップと、
前記歪み補正後画像上において前記歪み中心から放射状に伸びる複数の直線毎に、前記歪み中心からの距離に応じた歪み量を指定した歪み量テーブルを設定する歪み量テーブル設定ステップと、
前記歪み補正後画像上の着目画素の直交座標を極座標に変換して、前記歪み中心を中心とした距離と角度で表す極座標変換ステップと、
前記極座標の角度に基づいて、前記複数の直線のうちから前記着目画素を間に挟む2直線を選択し、当該2直線に設定された2つの歪み量テーブルを選択する歪み量テーブル選択ステップと、
前記歪み量テーブル選択ステップで選択した2つの歪み量テーブルから、前記極座標の距離に応じた歪み量をそれぞれ選択する歪み量選択ステップと、
前記極座標上の角度を表す三角関数から補間係数を求めて前記歪み量選択ステップで選択した2つの歪み量を補間し、補間歪み量を算出する歪み量補間ステップと、
前記歪み量補間ステップで算出した補間歪み量を用いて前記極座標の距離を補正して直交座標に変換する直交座標変換ステップと、
前記撮像データの画像上の、前記直交座標変換ステップで変換した直交座標近傍の画素値を補間して、前記歪み補正後画像上の着目画素の画素値に設定する画素値設定ステップとを備えることを特徴とする画像処理方法。
【請求項2】
前記歪み量テーブル設定ステップは、前記歪み補正後画像上において歪み中心から放射状に、互いに直交する角度方向に伸びる4本の直線を設定し、当該直線毎に、前記歪み中心からの距離に応じた歪み量を指定した歪み量テーブルを設定することを特徴とする請求項1記載の画像処理方法。
【請求項3】
前記極座標変換ステップは、直交座標から極座標に変換するときに画素アスペクト比を用いて補正することを特徴とする請求項1または請求項2記載の画像処理方法。
【請求項4】
撮像データの画像中に生じた歪みを補正する画像処理装置において、
前記撮像データを歪み補正して得られる歪み補正後画像上の所定位置に歪み中心座標を設定し、当該歪み補正後画像上の着目画素の直交座標を極座標に変換して、前記歪み中心を中心とした距離と角度で表す極座標変換部と、
前記歪み補正後画像上において前記歪み中心から放射状に伸びる複数の直線毎に、前記歪み中心からの距離に応じた歪み量を指定した歪み量テーブルを設定し、前記極座標変換部が変換した前記極座標に基づいて、前記着目画素を間に挟む2直線の歪み量テーブルから2つの歪み量を取得し、前記極座標上の角度を表す三角関数から補間係数を求めて当該2つの歪み量を補間して補間歪み量を算出し、当該補間歪み量を用いて前記極座標の距離を補正して直交座標に変換する参照座標算出部と、
前記撮像データの画像上の、前記参照座標算出部が変換した直交座標近傍の画素値を補間して、前記歪み補正後画像上の着目画素の画素値に設定する画素補間処理部とを備えることを特徴とする画像処理装置。
【請求項1】
撮像データの画像中に生じた歪みを補正する画像処理方法において、
前記撮像データを歪み補正して得られる歪み補正後画像上の所定位置に歪み中心座標を設定する歪み中心座標設定ステップと、
前記歪み補正後画像上において前記歪み中心から放射状に伸びる複数の直線毎に、前記歪み中心からの距離に応じた歪み量を指定した歪み量テーブルを設定する歪み量テーブル設定ステップと、
前記歪み補正後画像上の着目画素の直交座標を極座標に変換して、前記歪み中心を中心とした距離と角度で表す極座標変換ステップと、
前記極座標の角度に基づいて、前記複数の直線のうちから前記着目画素を間に挟む2直線を選択し、当該2直線に設定された2つの歪み量テーブルを選択する歪み量テーブル選択ステップと、
前記歪み量テーブル選択ステップで選択した2つの歪み量テーブルから、前記極座標の距離に応じた歪み量をそれぞれ選択する歪み量選択ステップと、
前記極座標上の角度を表す三角関数から補間係数を求めて前記歪み量選択ステップで選択した2つの歪み量を補間し、補間歪み量を算出する歪み量補間ステップと、
前記歪み量補間ステップで算出した補間歪み量を用いて前記極座標の距離を補正して直交座標に変換する直交座標変換ステップと、
前記撮像データの画像上の、前記直交座標変換ステップで変換した直交座標近傍の画素値を補間して、前記歪み補正後画像上の着目画素の画素値に設定する画素値設定ステップとを備えることを特徴とする画像処理方法。
【請求項2】
前記歪み量テーブル設定ステップは、前記歪み補正後画像上において歪み中心から放射状に、互いに直交する角度方向に伸びる4本の直線を設定し、当該直線毎に、前記歪み中心からの距離に応じた歪み量を指定した歪み量テーブルを設定することを特徴とする請求項1記載の画像処理方法。
【請求項3】
前記極座標変換ステップは、直交座標から極座標に変換するときに画素アスペクト比を用いて補正することを特徴とする請求項1または請求項2記載の画像処理方法。
【請求項4】
撮像データの画像中に生じた歪みを補正する画像処理装置において、
前記撮像データを歪み補正して得られる歪み補正後画像上の所定位置に歪み中心座標を設定し、当該歪み補正後画像上の着目画素の直交座標を極座標に変換して、前記歪み中心を中心とした距離と角度で表す極座標変換部と、
前記歪み補正後画像上において前記歪み中心から放射状に伸びる複数の直線毎に、前記歪み中心からの距離に応じた歪み量を指定した歪み量テーブルを設定し、前記極座標変換部が変換した前記極座標に基づいて、前記着目画素を間に挟む2直線の歪み量テーブルから2つの歪み量を取得し、前記極座標上の角度を表す三角関数から補間係数を求めて当該2つの歪み量を補間して補間歪み量を算出し、当該補間歪み量を用いて前記極座標の距離を補正して直交座標に変換する参照座標算出部と、
前記撮像データの画像上の、前記参照座標算出部が変換した直交座標近傍の画素値を補間して、前記歪み補正後画像上の着目画素の画素値に設定する画素補間処理部とを備えることを特徴とする画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2012−53740(P2012−53740A)
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願番号】特願2010−196641(P2010−196641)
【出願日】平成22年9月2日(2010.9.2)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願日】平成22年9月2日(2010.9.2)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
[ Back to top ]