請大神幫我看這個圖片變形公式

來源:互聯網
上載者:User
這是一個圖片的運算,http://blog.csdn.net/jia_zhengshen/article/details/12008371

需要看的只有第38頁那個公式以及4.4.1那一段話

另外這是一個中文網頁,也引用了那個公式,並有一些解釋會更易懂
http://blog.csdn.net/jia_zhengshen/article/details/12008371

目前已經可實現圖片內像素(pixel)替換來讓圖片產生變形
但不太能理解那個公式怎麽算,整理一下我的問題大致如下:

1. 圖片原有的pixel座標(變形前)是U或是X?
2. 就我目前的理解,我用for迴圈掃過每一個pixel,這每一個pixel即是公式內X的座標,求出U之後,開始做變形動作,將原有X改變為U,此思考方向是否正確?



回複討論(解決方案)

這篇博文說的比你給的清楚 http://www.cnblogs.com/xiaotie/archive/2009/12/08/1619046.html

[/url]
陰影圓環代表一個半徑為 rmax 的圓形選區。其中,C點是滑鼠點下時的點,也就是圓形選區的圓心。滑鼠從C拖到M,致使映像中的點U變換到點X。所以, 關鍵問題是找到上面這個變換的逆變換??給出點X時,可以求出它變換前的座標U(精確的浮點座標),然後用變化前映像在U點附近的像素進行插值,求出U的像素值。如此對圓形選區內的每一個像素進行求值,便可得出變換後的映像。
而這個計算公式就是

這篇博文說的比你給的清楚 http://www.cnblogs.com/xiaotie/archive/2009/12/08/1619046.html

[/url]
陰影圓環代表一個半徑為 rmax 的圓形選區。其中,C點是滑鼠點下時的點,也就是圓形選區的圓心。滑鼠從C拖到M,致使映像中的點U變換到點X。所以, 關鍵問題是找到上面這個變換的逆變換??給出點X時,可以求出它變換前的座標U(精確的浮點座標),然後用變化前映像在U點附近的像素進行插值,求出U的像素值。如此對圓形選區內的每一個像素進行求值,便可得出變換後的映像。
而這個計算公式就是



謝謝回覆,這篇我也看了,真的很讓我困惑,"關鍵問題是找到上面這個變換的逆變換??給出點X時,可以求出它變換前的座標U" 我就是不理解這一句話的意思,為什麽U既然是變換前的座標,不是早已知道的座標嗎(原始圖片pixel座標)?所以我們要求的是X? 如果是X 那方程式就會變成 X = ??? 將會變得非常複雜...

如此應該怎麽運算?

非也
從 u 點變換到 x 點時,如果是線性變換(平移)那麼 u 點的座標就是已知的
但你做的是變形(非線性變換),所以你只知道變換後的點 x 並不知道變換前的點 u 在哪裡,因此需要計算
就好比某人現在 到達台北,但你並不知道他是從台南還是高雄來的,需要通過他的旅途時間來推算他來自哪個城市

哇!! 你好?害,?知道台?的地名!!??

我能理解你?的例子,非常清楚,但?法?是有疑惑,首先我?不知道?形後的位置X,我只知道pixel原始位置U
可否?xuzuning具??明怎??算?

假?我已?用for?圈得到?影?形?域?所有pixel座?,??座?是公式?的x?是u?

使用繁體字並沒什麼問題,一般都認識,不過寫就不一定了

首先, 滑鼠從C拖到M,M 就是確定的了,那麼以 M 為圓心 rmax 為半徑的圓中的每一個點都是確定的了
這一點應該是沒有問題的了吧?
其次,由於是非線性變形,所以圓M中的每一個點並不和圓C中相應位置的點一一對應(如果一一對應就不是變形了)
這一點應該是沒有問題的了吧?

因此我們就需要根據圓M中的點 x 計算出圓C中的點 u 的具體座標
如果不變形的話 就是平移了
正因為有了係數 才產生了變形

非常清楚的解說,謝謝!

所以公式中的X = 圓移動後的圓內單點座標,故此座標也是已知,將全部數值(X,rmax,m,c)放入公式後求出U
我這樣理解是否正確?
求出的U pixel替換掉X pixel是否就是變形後的結果?

對,求出的 u 就是
但需要注意的是:u 是個小數(不大可能計算得到整數的),所他並不真實存在,需要通過周邊四個項數計算(插值)出具體的像素值

好的,具體瞭解了,真的非常感謝您,幫了我一個大忙

雖然對於插值還不瞭解,但這部分我自己解決應該沒問題

實做出來或是做不出來都會再讓您知道後續結果的

再次感謝~

要給分出現error 500訊息..晚點再試試看好了

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.