這是一個圖片的運算,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訊息..晚點再試試看好了