首頁 web前端 PS教程 影像變形演算法:實作Photoshop液化工具箱中向前變形工具

影像變形演算法:實作Photoshop液化工具箱中向前變形工具

Mar 21, 2017 pm 05:15 PM
photoshop

很多時候,我們需要對一個影像的局部進行調整,這個調整必須是平滑的、可互動的。 Photoshop液化濾鏡中向前變形工具就是這樣一個工具,很好用。類似工具有美圖秀秀的瘦臉功能。本文描述這類工具背後的原理與演算法。

先以美圖秀秀為例子,簡單描述下向前變形功能。

首先,用滑鼠控制一個圓形的選取範圍。

影像變形演算法:實作Photoshop液化工具箱中向前變形工具

然後,點擊滑鼠左鍵,往某個方向拖曳,就可以產生光滑的向前變形圖片:

影像變形演算法:實作Photoshop液化工具箱中向前變形工具

透過這個工具,可對圖片的局部進行調整,自由度比較大,因此比較實用。

下面講講這類演算法的原理。

影像變形演算法:實作Photoshop液化工具箱中向前變形工具

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

Andreas Gustafsson 的Interactive Image Warping 一文給出了這個逆變換公式:

影像變形演算法:實作Photoshop液化工具箱中向前變形工具

這個變形演算法的特點是:

1 只有越圓形選區內的圖像變形越大,越靠近邊緣的變形越小,邊界處無變形

3 變形是平滑的

具體實現步驟如下:

1 對於圓形選區裡的每一像素,取出其R,G,B各分量,存入3個Buff(rBuff, gBuff, bBuff)中(也即,三個Buff分別存儲選區內的原圖像的R,G,B三個通道的數值)

2 對於圓形選區裡的每一個像素X,

2.1 根據上面的公式,算出它變形前的位置座標精確值U

2.2 用插值方法,根據U的位置,和rBuff, gBuff, bBuff中的數值,計算U所在位置處的R,G,B等分量

2.3 將R,G,B等分量合成新的像素,作為X處的像素值

代碼我就不貼了,真正對這功能有需求的,根據上面的文字可以很容易寫出來——解決這類問題,重要的不是程式碼,而是想法和演算法。

下面是我的實作示範:

 

影像變形演算法:實作Photoshop液化工具箱中向前變形工具上圖中,左上角是原圖,右下角是變形後的圖。紅色圓圈圈起來的是變形區域。可以看見,變形很光滑。我在上面的演算法中引入了變形強度s(strength),上圖中strength=20。

引入strength,公式就得修改下,以下是我的修改版公式:

影像變形演算法:實作Photoshop液化工具箱中向前變形工具 看結果-

原圖:

影像變形演算法:實作Photoshop液化工具箱中向前變形工具

原圖:

影像變形演算法:實作Photoshop液化工具箱中向前變形工具

🎜🎜

變形,strength=120:

 影像變形演算法:實作Photoshop液化工具箱中向前變形工具

photoshop與美圖秀裡這個功能可以連續的進行變形。我猜測,這個連續的變形是由一系列基礎變形串聯起來的,也就是,滑鼠從M0拖到Mn位置,並不是只計算M0->Mn這個變換,而是在滑鼠軌跡上引入一系列中間點,M1,M2…Mn-1,然後,對影像進行M0->M1,M1->M2,…,Mn-1->Mn等一系列變換。

更多圖像變形演算法:實現Photoshop液化工具箱中向前變形工具相關文章請關注PHP中文網!


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1317
25
PHP教程
1268
29
C# 教程
1246
24
Photoshop的價值:權衡成本與其功能 Photoshop的價值:權衡成本與其功能 Apr 11, 2025 am 12:02 AM

Photoshop值得投資,因為它提供了強大的功能和廣泛的應用場景。 1)核心功能包括圖像編輯、圖層管理、特效製作和色彩調整。 2)適合專業設計師和攝影師,但業餘愛好者可考慮替代品如GIMP。 3)訂閱AdobeCreativeCloud可按需使用,避免一次性高額支出。

高級Photoshop教程:大師修飾和合成 高級Photoshop教程:大師修飾和合成 Apr 17, 2025 am 12:10 AM

Photoshop的高級修圖與合成技術包括:1.使用圖層、蒙版和調整層進行基礎操作;2.通過調整圖像像素值實現修圖效果;3.利用多圖層和蒙版進行複雜合成;4.應用“液化”工具調整面部特徵;5.使用“頻率分離”技術進行細膩修圖,這些技術能提升圖像處理水平並實現專業級效果。

Photoshop的主要特徵:深度潛水 Photoshop的主要特徵:深度潛水 Apr 19, 2025 am 12:08 AM

Photoshop的關鍵功能包括圖層與蒙版、調整工具、濾鏡與效果。 1.圖層與蒙版允許獨立編輯圖像部分。 2.調整工具如亮度/對比度可修改圖像色調和亮度。 3.濾鏡與效果可快速添加視覺效果。掌握這些功能可以幫助創意專業人士實現創意願景。

使用Photoshop:創意可能性和實際用途 使用Photoshop:創意可能性和實際用途 Apr 22, 2025 am 12:09 AM

Photoshop在實際應用中非常實用且具有創造性。 1)它提供基本編輯、修復和合成功能,適合初學者和專業人士。 2)高級功能如內容識別填充和圖層樣式可提升圖像效果。 3)掌握快捷鍵和優化圖層結構能提高工作效率。

Photoshop免費嗎?了解訂閱計劃 Photoshop免費嗎?了解訂閱計劃 Apr 12, 2025 am 12:11 AM

Photoshop不是免費的,但有幾種方式可以低成本或免費使用:1.免費試用期為7天,期間可體驗所有功能;2.學生和教師優惠可將成本減半,需提供學校證明;3.CreativeCloud套餐適合專業用戶,包含多種Adobe工具;4.PhotoshopElements和Lightroom為低成本替代方案,功能較少但價格更低。

Photoshop的核心目的:創意圖像設計 Photoshop的核心目的:創意圖像設計 Apr 10, 2025 am 09:29 AM

Photoshop在創意圖像設計中的核心用途是其強大的功能和靈活性。 1)它允許設計師通過圖層、蒙版和濾鏡將創意轉化為視覺現實。 2)基本用法包括裁剪、調整大小和顏色校正。 3)高級用法如圖層樣式、混合模式和智能對象可創建複雜效果。 4)常見錯誤包括圖層管理不當和濾鏡使用過度,可通過整理圖層和合理使用濾鏡解決。 5)性能優化和最佳實踐包括合理使用圖層、定期保存文件和使用快捷鍵。

Photoshop:調查免費試用和折扣選項 Photoshop:調查免費試用和折扣選項 Apr 14, 2025 am 12:06 AM

你可以通過以下方式以最經濟的方式獲得Photoshop的使用權:1.利用7天的免費試用期體驗軟件功能;2.尋找學生或教師折扣,以及季節性促銷;3.使用第三方網站上的優惠券;4.訂閱AdobeCreativeCloud的月度或年度計劃。

設計師的Photoshop:創建視覺概念 設計師的Photoshop:創建視覺概念 Apr 13, 2025 am 12:09 AM

在Photoshop中創建視覺概念可以通過以下步驟實現:1.創建新文檔,2.添加背景層,3.使用畫筆工具繪製基本形狀,4.調整顏色和亮度,5.添加文本和圖形,6.使用蒙版進行局部編輯,7.應用濾鏡效果,這些步驟幫助設計師從零開始構建完整的視覺作品。

See all articles