Bagaimana cara menggunakan Pillow untuk membuat efek distorsi barel pada gambar?
Oct 30, 2025
Tinggalkan pesan
Distorsi barel adalah efek gambar menakjubkan yang dapat mengubah foto biasa menjadi mahakarya visual yang menawan. Sebagai pemasok bantal, Anda mungkin bertanya-tanya apa hubungannya bantal dengan distorsi gambar. Nah, sementara fokus utama kami adalah menyediakan bantal berkualitas tinggi seperti tersebutBantal Bulu Angsa Putih Berkualitas Tinggi Hotel,Bantal Tempat Tidur Berisi Serat Berongga Hotel Poliester 100% Lembut Premium, DanBantal Serat Poliester 100% Berkualitas Tinggi Hotel, kami juga memahami pentingnya kreativitas di berbagai bidang, termasuk pengolahan gambar. Di blog ini, kita akan mempelajari cara menggunakan pustaka Pillow dengan Python untuk membuat efek distorsi barel pada gambar.
Apa itu Distorsi Barel?
Distorsi barel adalah jenis distorsi optik di mana garis lurus di dunia nyata tampak melengkung ke luar seperti sisi barel. Efek ini biasanya terlihat pada lensa sudut lebar, namun juga dapat dibuat secara artifisial untuk tujuan artistik. Dalam fotografi dan desain grafis, distorsi barel dapat menambah kesan kedalaman, berlebihan, dan keceriaan pada gambar.
Prasyarat
Sebelum kita mulai membuat efek distorsi barel, Anda perlu memiliki yang berikut ini:
- Python diinstal: Anda dapat mengunduh Python dari situs resmi Python (python.org).
- Perpustakaan bantal: Pillow adalah Perpustakaan Pencitraan Python yang kuat. Anda dapat menginstalnya menggunakan
pip pasang bantal.
Memahami Perpustakaan Bantal
Bantal adalah cabang dari Python Imaging Library (PIL). Ini menyediakan berbagai kemampuan pemrosesan gambar, termasuk membuka, memanipulasi, dan menyimpan berbagai format file gambar. Dengan Pillow, Anda dapat melakukan tugas seperti mengubah ukuran, memotong, memutar, dan menerapkan berbagai filter pada gambar.
Matematika di Balik Distorsi Barel
Untuk menciptakan efek distorsi barel, kita perlu memahami transformasi matematis yang terlibat. Ide dasarnya adalah memetakan setiap piksel pada gambar keluaran ke posisi yang sesuai pada gambar masukan. Fungsi pemetaan distorsi barel dapat didefinisikan sebagai berikut:
Misalkan ((x,y)) adalah koordinat piksel pada gambar keluaran, dan ((x_0,y_0)) adalah koordinat piksel yang bersangkutan pada gambar masukan. Transformasi distorsi barel dapat direpresentasikan dengan persamaan berikut:
[r = \sqart[ (x - c_x)^^^^^^^2+(yang - y)^2}]
[r_0 = r(1 + kr^2)]
[\theta=\arctan2(y - c_y,x - c_x)]
[x_0 = c_x + r_0\cos(\theta)]
[the_0 = dari + r_0\theta)]


dimana ((c_x,c_y)) adalah pusat gambar, (r) adalah jarak dari pusat gambar keluaran ke piksel ((x,y)), (r_0) adalah jarak dari pusat gambar masukan ke piksel yang bersangkutan ((x_0,y_0)), dan (k) adalah koefisien distorsi. Nilai positif (k) akan menimbulkan efek distorsi barel.
Menerapkan Distorsi Barel dengan Bantal
Berikut kode Python untuk membuat efek distorsi barel menggunakan Pillow:
dari impor PIL Gambar def barel_distorsi(gambar, k): lebar, tinggi = gambar.ukuran center_x = lebar / 2 center_y = tinggi / 2 hasil = Gambar.baru('RGB', (lebar, tinggi)) untuk y dalam rentang(tinggi): untuk x dalam rentang(lebar): r = ((x - center_x) ** 2+(y - center_y) ** 2) ** 0,5 r0 = r * (1 + k * r ** 2) theta = math.atan2(y - center_y, x - center_x) x0 = int(center_x + r0 * math.cos(theta)) y0 = int(center_y + r0 * math.sin(theta)) if 0 <= x0 < lebar dan 0 <= y0 < tinggi: pixel = image.getpixel((x0, y0)) result.putpixel((x, y), pixel) mengembalikan hasil impor matematika # Buka gambar image = Image.open('your_image.jpg') # Tentukan koefisien distorsi k = 0,000001 # Terapkan efek distorsi barel distorsi_image = barel_distorsi(gambar, k) # Simpan gambar yang terdistorsi distort_image.save('distorted_image.jpg')
Penjelasan Kode
- Definisi Fungsi: Itu
barel_distorsifungsi mengambil gambar dan koefisien distorsi (k) sebagai input. Ini membuat gambar baru dengan ukuran yang sama dengan gambar masukan dan kemudian melakukan iterasi pada setiap piksel pada gambar keluaran. - Pemetaan Piksel: Untuk setiap piksel ((x,y)) pada gambar keluaran, ia menghitung jarak (r) dari pusat gambar, menerapkan transformasi distorsi barel untuk mendapatkan (r_0), dan kemudian menghitung koordinat yang sesuai ((x_0,y_0)) pada gambar masukan.
- Penugasan Piksel: Jika koordinat yang dihitung ((x_0,y_0)) berada dalam batas gambar masukan, ia mendapatkan nilai piksel dari gambar masukan dan menetapkannya ke piksel yang sesuai pada gambar keluaran.
- Kode Utama: Kode utama membuka gambar, menentukan koefisien distorsi (k), menerapkan efek distorsi barel menggunakan
barel_distorsiberfungsi, dan menyimpan gambar yang terdistorsi.
Menyesuaikan Koefisien Distorsi
Koefisien distorsi (k) mengontrol kekuatan efek distorsi barel. Nilai (k) yang lebih besar akan menghasilkan distorsi yang lebih nyata, sedangkan nilai (k) yang lebih kecil akan menghasilkan efek yang lebih halus. Anda dapat bereksperimen dengan nilai (k) yang berbeda untuk mendapatkan tampilan yang diinginkan.
Kesimpulan
Dengan menggunakan pustaka Pillow, kita dapat dengan mudah membuat efek distorsi barel pada gambar. Efek ini dapat digunakan dalam berbagai aplikasi, seperti fotografi, desain grafis, dan video game. Sebagai pemasok bantal, kami percaya bahwa kreativitas tidak terbatas pada produk kami. Apakah Anda sedang merancang gambar promosi untuk kamiBantal Bulu Angsa Putih Berkualitas Tinggi Hotelatau mengerjakan proyek seni pribadi, efek distorsi barel dapat menambahkan sentuhan unik pada gambar Anda.
Jika Anda tertarik untuk membeli bantal berkualitas tinggi kami, kami mengundang Anda untuk menghubungi kami untuk pengadaan dan negosiasi. Kami menawarkan berbagai macam bantal untuk memenuhi berbagai kebutuhan Anda, mulai dari kelembutan kamiBantal Tempat Tidur Berisi Serat Berongga Hotel Poliester 100% Lembut Premiumuntuk ketahanan kitaBantal Serat Poliester 100% Berkualitas Tinggi Hotel.
Referensi
- Dokumentasi resmi bantal: Pillow.readthedocs.io
- Situs web resmi Python: python.org
