2015年9月20日日曜日

第20回 画像の幾何学変換処理入門(その2)で学ぶ!

この記事は参考記事を援用して、筆者の考えも交えつつ、記述しています。

前回は画像の幾何学的変換について、簡単な線形代数を適用して2×2行列の一次変換処理が行える画像の幾何変換処理(移動、回転、拡大・縮小、鏡面変換)を説明しました。
今回はもう少しこれらの処理を深掘りして、アフィン変換および変換の際の補間処理の基礎を前回用いたTransformJを用いて説明します。 

画像のアフィン変換


前回説明していますが、一次変換の一般式は次の通りでした。
(このあたり、どういうこと?と思う方は、前回の第19回をご参照ください。)


(式1)

アフィン変換は、前回の一次変換を任意に組み合わせたものです。
その一般式は次のようになります。

(式2)

一次変換式と比べて、項が増えています。この項でアフィン変換を行なっているわけですね。
この式2で、b=c=e=f=0ならば拡大縮小、a=d=1b=c=0ならば平行移動、a=db= - c、α(2乗)+b(2乗)=1、e=f=0のときは回転となります。

ここで式1に倣って、式2を掛け算だけで表現する場合、次元を増やした3×3行列で式を変形することが可能となり、その 一般式は以下のようになります。 


ここで前述した平行移動を説明するアフィン変換は、次のように表されます。


このように、二次元の線形幾何変換について、次元を1つ増やして、三次元行列で表現する方法を同次座標による行列表現と称します。
以下は、各変換を説明した同次座標による一般式です。

①拡大縮小


②回転


③x=aを中心に鏡映変換


④y=bを中心に鏡映変換


⑤x=a、y=bを中心に鏡映変換


⑥水平方向にスキュー


⑦垂直方向にスキュー


画像の補間処理について 


ここまで、ImageJによる変換処理は、画像に対して線形変換式を用い、それぞれの画素を再配置しただけでした。再配置する場合、画像を変換しているために、必ずしも変換前のそれぞれの画素が変換後の整数の位置に収まりません。このため、変換後の画素を、一定の法則のもとで位置補正しなければなりません。この再配置のことを一般的に補間処理(interpolation)”と称しています。補間方法はいろいろな手法が研究されています。例えば、TransformJでは次のような補間方法が選択可能です。


このうち、以下に一般的なものを試していきます。
処理に利用した画像はこちらです。


(横断するtearが少しわかります)

1.ニアレストネイバー(最近隣内挿法)

もっとも単純な補間です。
今でも臨床で計測などの画像解析アルゴリズムに利用されています。
ニアレストネイバーは図に示すように、内挿したい点に最も近い格子点の画像データを求める点の画像データとする方法で、求めたい点Pは、P=P (i,j)です。ここで、i = [ u + 0.5 ] j = [ v + 0.5 ] となり、位置のズレは最大1/2画素となります。

2.バイリニア補間(共一次内挿法) 

バイリニア法は次の図に示す通り、内挿した画素の4近傍の値を用いて補間位置を求めます。
このアルゴリズムは平均位置を求めるため、スムージング効果があります。


3.バイキュービック補間(三次畳み込み内挿法)

バイキュービック補間は、次の図に示す通り、内挿したい点の画素を周囲16点の畳み込み関数を用いて計算します。



数式で表すと次のようになります。

このうち、f(x)とx1~~x4、y1~y4はそれぞれ以下の通りです。



この補間方法はバイリニア補間よりもさらにシャープで自然な画像になります。
よく、インターポレーション機能(平滑化処理)に利用されています。
たまに、マトリクスサイズが決まっているのに、拡大しても滑らかな画像がありますよね。
これが実はバイキュービック補間だったりします。

今回は前回に引き続き画像の幾何学変換処理としてアフィン変換およびその補間処理を説明しました。
次回は、その応用について述べていきます!
(祝、20回!)


参考記事:「山本修司:ImageJで学ぶ実践医用・バイオ画像処理.INNERVISION(21・8) 2006, p99-101

0 件のコメント:

コメントを投稿