我在哪裏可以找到圖像失真的算法?有很多Blur和其他經典算法的信息,但更復雜的算法很少。特別是,我對旋流效應圖像失真算法感興趣。圖像失真算法的資源
回答
我找不到任何引用,但我可以給失真效果如何工作的基本思路。
關鍵到失真是一個函數,它有兩個座標(x,y)處的失真圖像中,並將其變換到座標(u,v)的原始圖像中這指定了失真的反函數,因爲它將失真的圖像帶回原始圖像
要生成失真圖像,一個在x和y上循環,根據(x,y)計算點(u,v) )使用逆變形函數,並且將(x,y)處的顏色分量設置爲與原始圖像中的(u,v)處的顏色分量相同。因爲(u,v)通常不是精確地位於像素的中心,而是位於像素之間的某個分數點處,所以通常使用插值(例如http://en.wikipedia.org/wiki/Bilinear_interpolation)來確定(u,v)處的顏色。
甲渦流基本上是一個旋轉,其中旋轉的角度是依賴於從圖像的中心的距離。一個例子是:
a = amount of rotation
b = size of effect
angle = a*exp(-(x*x+y*y)/(b*b))
u = cos(angle)*x + sin(angle)*y
v = -sin(angle)*x + cos(angle)*y
在這裏,我假定爲簡明起見,該渦流的中心在(0,0)。通過在失真函數之前從x和y減去旋轉位置座標並將它們添加到u和v之後,可以將漩渦放在任何位置。
周圍有各種渦流效應:一些(如上面所述)漩渦僅一局部區域,並且具有旋流朝向圖像的邊緣減小的量。其他的則增加了朝向圖像邊緣的旋轉。這種事情可以通過玩角度=線來完成,例如,
angle = a*(x*x+y*y)
看看ImageMagick。這是一個圖像轉換和編輯工具包,並具有所有流行語言的界面。
的-Displace運營商可以創建正確的置換貼圖的漩渦。
如果您由於某種原因不滿意ImageMagick的接口,可以隨時看看過濾器的源代碼,並從那裏走。
漩渦和像這樣的其他人是像素位置上的矩陣變換。您製作一張新圖像,並從您將當前位置乘以矩陣獲得的圖像位置獲取顏色。
該矩陣取決於當前位置。
這裏是展示如何做一個好CodeProject上也
http://www.codeproject.com/KB/GDI-plus/displacementfilters.aspx
有一個Java實現很多圖像過濾器在Jerry's Java Image Filters /效果的。也許你可以從那裏獲得靈感。
那裏有一個新的圖形庫有很多功能
- 1. 圖像失真的快速算法
- 2. JavaScript中的圖像失真算法
- 3. 旋轉和捏圖效果圖像,圖像失真算法
- 4. 計算圖像資源的URL
- 5. 圖像失真算法的錯誤行爲
- 6. C#圖像失真
- 7. SCSS圖像失真
- 8. Python的圖像失真
- 9. ScrollViewer中的圖像失真
- 10. 還原失真的圖像
- 11. WPF圖像資源
- 12. windows如何真正從資源中選擇正確的圖像?
- 13. 當圖像資源沒有圖像資源時,無法設置圖像視圖的背景顏色
- 14. ImageView的圖像資源
- 15. WinForms中的圖像資源
- 16. android中的圖像資源
- 17. 圖像資源的存在
- 18. 圖像資源的位置
- 19. OpenCV裁剪圖像失真
- 20. ImageContext返回圖像失真
- 21. iOS圖像處理(失真)
- 22. 圖像失真問題jCrop
- 23. 無法從資源中獲取圖像
- 24. GLR解析算法資源
- 25. 圖像視圖設置圖像資源
- 26. 橡皮筋算法的一維失真
- 27. php:顯示圖像資源
- 28. WinForms UserControl圖像資源
- 29. ASP.net Web資源與圖像
- 30. 設置圖像資源
我希望我能給予好評這個10倍。非常感謝你:) – fresskoma 2011-10-16 04:06:43