圖像柱面投影


    最近有個圖像拼接的課程作業,上面要用到柱面投影,因此將柱面投影的映射函數作下學習記錄。

    

     先從這個示意圖開始分析,所謂柱面投影,是以一個一定半徑和高的圓柱內部中心作為投影中心,將源圖像平攤在圓柱側表面,就像上面圖b(俯視圖)所見一樣,圖像的每一個點與投影中心進行連線,線與圓柱測表面的交點便為該點的柱面投影點,因此關鍵是找出點與其對應投影點的位置關系。

     上圖a中已經畫出了坐標系,對於圖像我們只需看xy軸即可,坐標系為圖像的中心,投影后的圖像也是一樣。首先先分析原圖像和投影后圖像的寬高關系,從圖可以看出,投影后圖像的四個角會向內”彎折“,而其最大的高度仍然是原圖像的高(垂直中軸線上的點投影后位置不變),因此投影后圖像的高為原圖像高。而對於寬度,我們從圖b分析,上面的三角形的底長便是原圖像寬,而投影后寬度則為三角形腰與內部圓弧交點的距離,如下圖:

      紅色線段便是投影后的寬,三角形的腰為投影半徑(圓柱半徑),三角形頂角為投影角度。設投影角度為θ,半徑為r,則可得出投影寬為2rsin(θ/2)。

這里一般是設定投影角已知,根據投影角來計算半徑,即r=w/(2tan(θ/2)),w為原圖像寬。

      接下來計算位置間的函數關系,設原圖像某點坐標為(x,y),這里要注意圖像是以左上角為坐標原點,因此要轉換到以中心為原點的坐標系,所以坐標為(x-w/2,y-h/2),w、h為原圖像的寬高,設該點投影后坐標為(x',y'),則轉換坐標系為(x'-w'/2,y-h'/2)。前面已經得出w'=2rsin(θ/2),h'=h。先看x坐標的關系,從俯視圖圖b分析,上面的p點為原圖像點在x軸的位置,對應的投影點為其與投影中心O的連線與圓弧的交點,因此可以得出x'-w'/2=arctan((x-w/2)/r)*r。解出x'即可。

     對於y'的計算,我們看圖c這是圓柱的一個剖面圖,看下面的一個注解:

    

     如上圖說明的原圖像點與投影點的位置,P和P‘分別對應原圖和投影后圖的水平中心軸上的點,也就是說得出里外三角形高的相似關系,就能求出y',從上圖看出OP'距離為半徑r,OP就是圖b的OP長,設其為k,則k=sqrt((x-w/2)²+r²)。根據三角形相似性:(y-h/2)/(y'-h'/2)=k/r。可解出y'。

     最后,解得x',y'的公式如下:

 

   得出了投影后圖像的寬高以及投影點的坐標關系式,我們便可以用插值的方法生成柱面投影圖像了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM