齊次坐標(biāo)就是將一個(gè)原本是n維的向量用一個(gè)n+1維向量來(lái)表示句狼。 許多圖形應(yīng)用涉及到幾何變換许起,主要包括平移十偶、旋轉(zhuǎn)、縮放园细。以矩陣表達(dá)式來(lái)計(jì)算這些變換時(shí)扯键,平移是矩陣相加,旋轉(zhuǎn)和縮放則是矩陣相乘珊肃,綜合起來(lái)可以表示為 x=R?X+t(注:因?yàn)榱?xí)慣的原因荣刑,實(shí)際使用時(shí)一般使用變化矩陣左乘向量)(R 旋轉(zhuǎn)縮放矩陣,t 為平移矩陣伦乔,X為原向量厉亏,x 為變換后的向量)。
引入齊次坐標(biāo)的目的主要是合并矩陣運(yùn)算中的乘法和加法烈和,表示為x=P?X的形式爱只。即它提供了用矩陣運(yùn)算把二維、三維甚至高維空間中的一個(gè)點(diǎn)集從一個(gè)坐標(biāo)系變換到另一個(gè)坐標(biāo)系的有效方法招刹。
齊次坐標(biāo)
簡(jiǎn)而言之恬试,齊次坐標(biāo)就是用N+1維來(lái)代表N維坐標(biāo)
我們可以在一個(gè)2D笛卡爾坐標(biāo)末尾加上一個(gè)額外的變量w來(lái)形成2D齊次坐標(biāo)窝趣,因此,一個(gè)點(diǎn)(X,Y)在齊次坐標(biāo)里面變成了
(x,y,w)训柴,并且有
X = x/w
Y = y/w
例如哑舒,笛卡爾坐標(biāo)系下(1,2)的齊次坐標(biāo)可以表示為(1幻馁,2洗鸵,1),如果點(diǎn)(1仗嗦,2)移動(dòng)到無(wú)限遠(yuǎn)處膘滨,在笛卡爾坐標(biāo)下它變?yōu)?/p>
(∞,∞),然后它的齊次坐標(biāo)表示為(1稀拐,2火邓,0),因?yàn)?1/0, 2/0) = (∞,∞)德撬,我們可以不用”∞"來(lái)表示一個(gè)無(wú)窮遠(yuǎn)處的點(diǎn)了
為什么叫齊次坐標(biāo)贡翘?
我們把齊次坐標(biāo)轉(zhuǎn)化為笛卡爾坐標(biāo)的方法是前面n-1個(gè)坐標(biāo)分量分別除以最后一個(gè)分量即可。
轉(zhuǎn)化齊次坐標(biāo)到笛卡爾坐標(biāo)的過(guò)程中砰逻,我們有一個(gè)發(fā)現(xiàn)鸣驱,例如:
你會(huì)發(fā)現(xiàn)(1, 2, 3), (2, 4, 6) 和(4, 8, 12)對(duì)應(yīng)同一個(gè)Euclidean point (1/3, 2/3),任何標(biāo)量的乘積蝠咆,例如(1a, 2a, 3a) 對(duì)應(yīng) 笛卡爾空間里面的(1/3, 2/3) 踊东。因此,這些點(diǎn)是“齊次的”刚操,因?yàn)樗麄兇砹说芽栕鴺?biāo)系里面的同一個(gè)點(diǎn)闸翅。換句話說(shuō),齊次坐標(biāo)有規(guī)模不變性菊霜。
齊次坐標(biāo)的意義
圖像的縮放變換和旋轉(zhuǎn)變換坚冀,可以用矩陣乘法的形式來(lái)表達(dá)變換后的像素位置映射關(guān)系。
那么鉴逞,對(duì)于平移變換呢记某?平移變換表示的是位置變化的概念。如下圖所示构捡,一個(gè)圖像矩形從中心點(diǎn)[x1,y1]平移到了中心點(diǎn)[x2,y2]
處液南,整體大小和角度都沒(méi)有變化。在x方向和y方向上分別平移了tx和ty大小
這對(duì)于圖像中的每一個(gè)點(diǎn)都是成立的勾徽。寫(xiě)成矩陣的形式就是:
我們?cè)侔亚懊娴目s放變換和旋轉(zhuǎn)變換的矩陣形式寫(xiě)出來(lái):
縮放變換:
旋轉(zhuǎn)變換:
我們注意到滑凉,縮放變換和旋轉(zhuǎn)變換都可以表示成矩陣乘法的形式。實(shí)際上,圖像的幾何變換通常不是單一的畅姊,也就是說(shuō)經(jīng)常性的縮放咒钟、旋轉(zhuǎn)、平移一起變換若未。例如先放大2倍朱嘴,然后旋轉(zhuǎn)45度,然后再縮小0.5倍陨瘩。那么就可以表示成矩陣乘法串接的形式:
但是平移變換呢?從前面看到级乍,平移變換并不是矩陣乘法的形式舌劳,而是矩陣加法的形式!
那能不能把縮放變換玫荣、旋轉(zhuǎn)變換甚淡、平移變換統(tǒng)一成矩陣乘法的形式呢,這樣不管進(jìn)行多少次變換捅厂,都可以表示成矩陣連乘的形式贯卦,將極大的方便計(jì)算和降低運(yùn)算量。
這種方法就是“升維”焙贷,引入“齊次坐標(biāo)”撵割,將圖像從平面2D坐標(biāo)變成3D坐標(biāo)。我們看看平移變換的矩陣形式:
將其升維辙芍,變成3維啡彬,上式就可以表示成:
縮放變換:
旋轉(zhuǎn)變換:
終于統(tǒng)一了。以后所有的變換故硅,不管怎樣變換庶灿,變換多少次,都可以表示成一連串的矩陣相乘了吃衅,這是多么的方便往踢。
這就是引入齊次坐標(biāo)的作用,把各種變換都統(tǒng)一了起來(lái)徘层,即 把縮放峻呕,旋轉(zhuǎn),平移等變換都統(tǒng)一起來(lái)趣效,都表示成一連串的矩陣相乘的形式山上。保證了形式上的線性一致性。