1. 程式人生 > >影象處理(一)影象變形(1)矩形全景影象還原-Siggraph 2014

影象處理(一)影象變形(1)矩形全景影象還原-Siggraph 2014

最近發現,看過的文章,沒幾天就忘了,於是開始寫點東西記錄一下,所學習過的演算法。廢話不多說,今天看了這篇文獻“Rectangling Panoramic Images via Warping”,所以做一下記錄。

這篇文獻演算法分為兩步:

1、第一步需要通過計算影象最小能量線,對影象進行預變性。

看懂這篇文章首先要看懂Seam Carving,這個演算法作者有原始碼,可以下載下來好好解讀一下演算法原理。通過這一步可以把影象放大為矩形影象,這一步又稱之為區域性變形。在這一步每一次迭代的過程中,源影象上的每個畫素點都會有可能移動位置,假設input影象的源畫素點I(x,y)經過Seam Carving演算法放大後,位置移動到I'(x,y),那麼我們可以計算得其運動場(光流場),u(x,y)=I‘(x,y)-I(x,y)。演算法第一步的目的便是要計算出input影象變為local warping影象後,每個畫素點的u(x,y)運動向量。


2、第二步對local warping影象矩形進行網格劃分

記錄劃分後,每個格子頂點的座標v(x,y),ok,通過第一步我們知道了每個畫素點經過u(x,y)運動場,變形後才有了local warping 影象,接著我們把影象local warping通過

-u(x,y)運動場,變形回去,同時記錄下v(x,y)每個頂點的新位置v’(x,y),其實這一步不需要對影象的資料進行變形,只需要定劃分的網格根據-u(x,y)進行直接變形,記錄下每個網格頂點的新位置。


3、接著我們以這些網格頂點新位置v’(x,y)為控制頂點,利用相似變換的變形方法,對最開始的input 影象進行全域性變形。變形的控制頂點為v’(x,y),變形後的位置為v(x,y),據此可以得到全域性的影象變形結果

學習這篇文獻,需要先好好學習:“Seam Carving for Content-Aware Image Resizing”和“As-rigid-as-possible_shape_manipulation”這兩篇文獻網上可以下載到作者寫的原始碼,所以比較容易學會,搞定這兩篇paper,這篇文獻就簡單多了。Seam Carving for Content-Aware Image Resizing的演算法可以參考我的另一篇文章:http://blog.csdn.net/hjimce/article/details/44916869