Rumah hujung hadapan web Tutorial 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 只有圆形选区内的图像才进行变形

2 越靠近圆心,变形越大,越靠近边缘的变形越小,边界处无变形

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液化工具箱中向前变形工具

变形,strength=20:

图像变形算法:实现Photoshop液化工具箱中向前变形工具

变形,strength=120:

 图像变形算法:实现Photoshop液化工具箱中向前变形工具

photoshop与美图秀秀里这个功能可以连续的进行变形。我猜测,这个连续的变形是由一系列基础变形串联起来的,也就是,鼠标从M0拖到Mn位置,并不是只计算M0->Mn这个变换,而是在鼠标轨迹上引入一系列中间点,M1,M2…Mn-1,然后,对图像进行M0->M1,M1->M2,…,Mn-1->Mn等一系列变换。

更多图像变形算法:实现Photoshop液化工具箱中向前变形工具相关文章请关注PHP中文网!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana saya menggunakan Photoshop untuk mencipta grafik media sosial? Bagaimana saya menggunakan Photoshop untuk mencipta grafik media sosial? Mar 18, 2025 pm 01:41 PM

Butiran artikel menggunakan Photoshop untuk grafik media sosial, meliputi persediaan, alat reka bentuk, dan teknik pengoptimuman. Ia menekankan kecekapan dan kualiti dalam penciptaan grafik.

Bagaimanakah saya menggunakan alat pemindahan kandungan dan kandungan yang menyedari kandungan Photoshop dengan berkesan? Bagaimanakah saya menggunakan alat pemindahan kandungan dan kandungan yang menyedari kandungan Photoshop dengan berkesan? Mar 13, 2025 pm 07:35 PM

Artikel membincangkan menggunakan alat pengisian kandungan dan memindahkan kandungan Photoshop dengan berkesan, menawarkan petua untuk memilih kawasan sumber, mengelakkan kesilapan, dan menyesuaikan tetapan untuk hasil yang optimum.

Bagaimanakah saya menyediakan imej untuk kegunaan web di Photoshop (saiz fail, resolusi, ruang warna)? Bagaimanakah saya menyediakan imej untuk kegunaan web di Photoshop (saiz fail, resolusi, ruang warna)? Mar 13, 2025 pm 07:28 PM

Artikel membincangkan penyediaan imej untuk kegunaan web di Photoshop, memberi tumpuan kepada mengoptimumkan saiz fail, resolusi, dan ruang warna. Isu utama adalah mengimbangi kualiti imej dengan masa pemuatan cepat.

Bagaimana saya menentukur monitor saya untuk warna yang tepat di Photoshop? Bagaimana saya menentukur monitor saya untuk warna yang tepat di Photoshop? Mar 13, 2025 pm 07:31 PM

Artikel membincangkan pemantauan menentukur untuk warna yang tepat dalam Photoshop, alat untuk penentukuran, kesan penentukuran yang tidak wajar, dan kekerapan semula. Isu utama adalah memastikan ketepatan warna.

Apakah sebab mengapa PS terus menunjukkan pemuatan? Apakah sebab mengapa PS terus menunjukkan pemuatan? Apr 06, 2025 pm 06:39 PM

PS "Memuatkan" Masalah disebabkan oleh akses sumber atau masalah pemprosesan: Kelajuan bacaan cakera keras adalah perlahan atau buruk: Gunakan CrystaldiskInfo untuk memeriksa kesihatan cakera keras dan menggantikan cakera keras yang bermasalah. Memori yang tidak mencukupi: Meningkatkan memori untuk memenuhi keperluan PS untuk imej resolusi tinggi dan pemprosesan lapisan kompleks. Pemandu kad grafik sudah lapuk atau rosak: Kemas kini pemandu untuk mengoptimumkan komunikasi antara PS dan kad grafik. Laluan fail terlalu panjang atau nama fail mempunyai aksara khas: Gunakan laluan pendek dan elakkan aksara khas. Masalah PS sendiri: Pasang semula atau membaiki pemasang PS.

Bagaimanakah saya menyediakan imej untuk cetak menggunakan Photoshop (resolusi, profil warna)? Bagaimanakah saya menyediakan imej untuk cetak menggunakan Photoshop (resolusi, profil warna)? Mar 18, 2025 pm 01:36 PM

Artikel ini membimbing untuk menyediakan imej untuk dicetak di Photoshop, memberi tumpuan kepada resolusi, profil warna, dan ketajaman. Ia berpendapat bahawa profil 300 ppi dan CMYK adalah penting untuk cetakan yang berkualiti.

Bagaimanakah saya menyediakan imej untuk web menggunakan Photoshop (mengoptimumkan saiz fail, resolusi)? Bagaimanakah saya menyediakan imej untuk web menggunakan Photoshop (mengoptimumkan saiz fail, resolusi)? Mar 18, 2025 pm 01:35 PM

Artikel membincangkan mengoptimumkan imej untuk web menggunakan Photoshop, memberi tumpuan kepada saiz fail dan resolusi. Isu utama adalah mengimbangi kualiti dan masa beban.

Bagaimana saya membuat gif animasi di photoshop? Bagaimana saya membuat gif animasi di photoshop? Mar 18, 2025 pm 01:38 PM

Artikel membincangkan membuat dan mengoptimumkan GIF animasi di Photoshop, termasuk menambah bingkai kepada GIF yang sedia ada. Fokus utama adalah untuk mengimbangi kualiti dan saiz fail.

See all articles