Pillow如何對(duì)圖像執(zhí)行波浪形變扭曲

小億
92
2024-05-23 11:02:12

要對(duì)圖像執(zhí)行波浪形變扭曲,可以使用Pillow庫(kù)中的Image類和ImageFilter類來(lái)實(shí)現(xiàn)。以下是一個(gè)示例代碼:

from PIL import Image, ImageFilter

# 打開(kāi)圖像文件
img = Image.open('example.jpg')

# 定義波浪形變扭曲函數(shù)
def wave_distortion(x, y, amplitude, frequency):
    return x, y + amplitude * math.sin(2 * math.pi * frequency * x / img.width)

# 創(chuàng)建一個(gè)新的空白圖像
new_img = Image.new('RGB', img.size)

# 扭曲圖像
for y in range(img.height):
    for x in range(img.width):
        new_x, new_y = wave_distortion(x, y, amplitude=5, frequency=0.1)
        if 0 <= new_x < img.width and 0 <= new_y < img.height:
            pixel = img.getpixel((int(new_x), int(new_y))
            new_img.putpixel((x, y), pixel)

# 保存扭曲后的圖像
new_img.save('distorted_image.jpg')

# 顯示扭曲后的圖像
new_img.show()

在上面的代碼中,我們首先打開(kāi)了一個(gè)圖像文件,然后定義了一個(gè)波浪形變扭曲函數(shù)wave_distortion,接著創(chuàng)建了一個(gè)新的空白圖像,并在循環(huán)中扭曲了原始圖像的每個(gè)像素。最后,保存和顯示了扭曲后的圖像。您可以調(diào)整amplitudefrequency參數(shù)來(lái)控制波浪形變扭曲的效果。

0