アプリ版:「スタンプのみでお礼する」機能のリリースについて

同次変換 アフィン変換


現在、座標変換について勉強しています。

そこで、同次変換とアフィン変換の違いがわかりません。
両者は同じではないのでしょうか?

また、射影変換と透視変換も同じように思います。
両者に違いはあるのでしょうか?

たくさんの名前がついた変換が存在していて難しいです。

ご回答何卒よろしくお願い致します。

A 回答 (4件)

以前グーグルのストリートビューを例に回答した者です。


そのときはちょっと回答が中途半端になってしまいました。。。

まず、「変換」という言葉から説明します。変換とは、
ある空間から同じ空間への写像のうち、その空間の構造を保つもののことです。
空間の構造とは、空間に備わっている概念(性質)のことで、
「直線」「平行」「長さの比」「長さ」「角度」「原点」などがあります。
(変換を考えるときには、さらに全単射に限定しているときが多いです。)

たとえば、ユークリッド変換はユークリッド空間の構造を保つ変換ですが、
ユークリッド空間は長さや角度の概念を考える空間なので、
ユークリッド変換によって変換される前と後の図形では、
対応する部分の長さや角度が等しくなります。
たとえば、正方形はユークリッド空間により必ず同じ大きさの正方形に変換されます。
つまり変換前後の図形は互いに合同となるので、別名、合同変換とも呼ばれます。
もちろん、ユークリッド空間の中でも、合同に移さない変換を考えることはできます。
ただ、それはユークリッド変換と呼ばれないだけのことです。

このような観点で数学的に明確に定義されている変換として、
射影変換、アフィン変換、ユークリッド変換があります。
この3者の関係は、射影変換の特殊なものがアフィン変換、
アフィン変換のさらに特殊なものがユークリッド変換となります。
つまり、この中ではユークリッド変換が一番多くの性質を保ちます。

この3つの変換の対象となる空間は、
言うまでもなく射影空間、アフィン空間、ユークリッド空間です。
この3つの空間は「直線」という構造を持つという点で共通しています。
変換前後で直線が曲線になったりする変換は許されません。

一方、この3つの空間は「原点」という構造を持たないという点でも共通しています。
あれ、ユークリッド空間には原点があるんじゃないの?と思われるかもしれません。
これは座標系の原点であって、自由に選べるものです。本質的には原点はありません。
原点を持たないということは、変換前後で特定の一点を保存(固定)しなくてもよい、
つまり、全ての点がずれてしまうような変換が許されるということです。
特に、ユークリッド変換においては、このような変換を「並進」とか「平行移動」
と呼んでいます。

さて、「同次変換」という言葉は、CGとかロボットの文献でしか見かけませんが、
上のような数学的な変換の種類を指すものではなく、もっと形式的なものだと思います。

2次元ユークリッド変換は、並進、回転、鏡映の3つの要素の合成でできています。
このうち回転と鏡映だけは2次の正方行列で書けますが、並進だけは無理です。
なぜならば、一般に正方行列による線型変換 f は線型性によりf(0)=0となるものであり、
変換前後で常に保存される点ができてしまい、全ての点をずらせないからです。

ここで、並進も含めてなんとか行列を使って表現できないかと考えだされたのが、
「n個の成分を持つn次元空間の座標を、(n+1)次の正方行列を使って変換する」
というアイディアです。同次変換とはこのように1次元多い行列で表現された変換を
形式的にさす言葉のようです。ですから、射影変換、アフィン変換、ユークリッド変換
に関わらず用いられます。逆に、同じ変換でも成分ごとにバラして書き下した場合は
敢えて同次変換とは呼ばれないように思います。

ちなみに、射影変換はそもそもが1次元多い行列で定義されるものであるので、
これの特殊バージョンであるアフィン変換やユークリッド変換が
同じく1次元多い行列で表現できるのは当然のことなのです。
「同次(斉次)」とはどういう意味か、も含めて、このあたりはもう一つされている
質問にも関連してきますので、時間があればそちらで回答したいと思います。

この回答への補足

ご回答ありがとうございます。
お礼が遅くなり申し訳御座いません。

変換という言葉は理解できました。

同次変換とは、1次元多い行列で表現された変換をさすのですね。
一次元多い理由は、並進を表すためなのですね。

数学的に定義される変換は、ユークリッド変換、アフィン変換、射影変換の
3つなのですね。理解できました。

ユークリッド変換について私は理解できていないのですが、これは線形変換と
は異なりますよね。線形変換であれば、並進は含みませんから。
アフィン変換は、線形変換に並進を加えたものだと認識しております。
アフィン変換とユークリッド変換の違いはなんでしょうか?
ユークリッド変換の方がアフィン変換より集合的に大きいことはわかるのですが・・・

また追加質問で大変恐縮なのですが、
同次変換を、
X
Y
Z
1
と表している記述を良く見ます。
具体例を挙げると、
基準座標系を(x y z 1)、対象座標系(X Y Z 1)
と表す。

対象座標系は基準座標系をx軸にθ回転、x軸に3平行移動した
ものとする。

X x|1   0      0 3 |
Y= y|0 cosθ   sinθ 0 | 
Z z|0 -sinθ cosθ 0 |
1 1|0  0 0 1 |
のように表されると思います。

ここで、同次変換を
X
Y
Z
W
と表すとすると、変換行列の4列目は、どのようにあらわされるのでしょうか?
X x|1   0      0 ? |
Y= y|0 cosθ   sinθ ? | 
Z z|0 -sinθ cosθ ? |
W ?|0  0 0 ? |

以上、申し訳ありませんがご回答よろしくお願い致します。

補足日時:2011/08/27 19:53
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
再度新規質問させて頂きましたので、ご回答頂ければ幸いです。
よろしくお願い致します。

お礼日時:2011/09/02 04:40

No.2 補足へ



アフィン変換は平行線を平行線に変換します。
#と定義されています。

同次変換は、同次変換行列の最下行の設定により
平行線を平行ではない線に変換できるので
アフィン変換ではないと思います。
    • good
    • 0

No.1 補足へ



射影変換=透視変換=投影変換

ですね。

射影と投影は projective/projection の訳語です。

この回答への補足

ご回答ありがとうございます。

アフィン変換は投影変換を含まないと言うことは、同次変換は投影変換を含むと言うことでしょうか?

ご回答よろしくお願い致します。

補足日時:2011/08/11 12:25
    • good
    • 1

アフィン変換は投影変換を含まないと思います。



なので、同じものではないに1票!

この回答への補足

ご回答ありがとうございます。
投影変換とはなんでしょうか?

補足日時:2011/08/10 22:22
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!