Homography

單應性


圖一

單應性變換是剛性變換,仿射變換之外的另一種變換模式一種較為複雜可處理範圍更廣泛的變換。單應性變換除了不保留點跟點之間的距離,也沒有平行不變性,但是有保留共線性。

基本上可以粗略的把單應性變換分成三類。在這一篇文章裡使用針孔照相機拍照的方式做一個直覺上的解釋。第一類是物體的投影。以圖一為例,若從原點做投影,把前面的小圖投影到後面的大圖,小圖跟大圖之間就可以做單應性變換。最簡單的理解方式是在拍完照片後,我們照片裡的圖像跟現實中被拍攝的物體可以直接做聯繫。

圖三

圖二

第二類可以視為是第一類的延伸。若拿相機從兩個不同角度拍攝同樣的物體,得出的兩張照片就可以互相做單應性變換跟另外一張圖做比較。以圖二為例,兩張照片拍攝的都是擺在同一張桌面上的書。圖中的紅,黃,綠,橘是要做變換需要找出的相對應四個點。這四個點是做範例用,不一定是要這四個點,而且對應的點是越多越好。找出左圖的(x1, y1)和右圖(x2, y2)之後,就可以找出相對應的單應性矩陣,把圖二右邊的圖變換成圖三右邊的圖。

圖四

第三類是全景的應用,可以視為是第二類的更進階延伸。在拍攝全景圖時,相機在旋轉拍攝時,拍攝到一張接著一張的圖。在拍完之後,會再做處理把這些圖一張一張的連接起來。連接的方式基本上是上一段提到的方式的延伸。如圖四所示,上面的左右兩張是相機在旋轉時拍到的前後兩張圖,在這兩張圖裡面找出同樣都有出現的物體。在圖四中,這個物體是山峰,接著就可以運用上面提到的同一個物體兩個不同角度的變換方式做處理。當然這只是一個初步的解釋,真的要實現全景圖還有很多細節要處理。舉例來說,在做第二類的變換時,只有跟物體在同一個平面上的景象會被正確的變換。

圖五

圖六

單應性變換是一種很常被使用到的變換方式,不只在醫療影像中常常會被使用到,在日常影 像

的處理上,也常常會碰見,例如在廣告的置放上。如圖五,六,七所示,如果要把圖五的廣告投放到圖六的影像中,呈現出圖七的結果時,使用到的就會是單應性變換。

圖七


參考文獻:

https://docs.opencv.org/master/d9/dab/tutorial_homography.html#projective_transformations
https://www.learnopencv.com/homography-examples-using-opencv-python-c/