Codebox: Buat Filter Gambar dengan Perkalian Matriks - 💡 Fix My Ideas

Codebox: Buat Filter Gambar dengan Perkalian Matriks

Codebox: Buat Filter Gambar dengan Perkalian Matriks


Penulis: Ethan Holmes, 2019

Filter warna memungkinkan Anda untuk mengubah gambar dengan ... well ... memfilter warna dari suatu gambar. Meskipun Pemrosesan memiliki beberapa filter bawaan, sering kali berguna untuk dapat membuat filter khusus Anda sendiri. Misalnya, situs Anaglyph Methods Comparison merinci sejumlah filter berbeda yang berguna dalam membuat gambar 3D.

Seperti yang akan Anda lihat dari situs, filter pada dasarnya adalah transformasi matematis yang diterapkan pada komponen piksel merah, hijau, dan biru dalam sebuah gambar. Untuk membuat filter seperti yang ada di situs stereo anaglyph, kita perlu menarik setiap piksel pada gambar asli, menerapkan operasi matriks ke komponen warnanya, dan kemudian menggunakan nilai baru ini dalam piksel yang sesuai di gambar baru. Codebox ini menunjukkan kepada Anda cara membuat filter Anda sendiri seperti ini.

Namun, pertama-tama, sedikit ulasan untuk matematika yang tampak berpotensi berbulu. Matriks adalah susunan bilangan 2 dimensi yang disebut elemen. Matriks digunakan dalam banyak aplikasi yang berbeda, mewakili set persamaan, transformasi ke objek 3D, dan filter warna (seperti dalam contoh ini).

Matriks biasanya ditandai oleh dimensinya: jumlah elemen dalam barisnya (angka yang melintasi) dan kolom (angka yang naik dan turun). Dengan konvensi, jumlah baris selalu didahulukan. Gambar berikut menunjukkan 2 matriks. Di sebelah kiri adalah 2 baris oleh 3 matriks, yang umumnya hanya disebut matriks 2 × 3. Di sebelah kanan adalah 3 baris dengan 2 kolom matriks, juga disebut matriks 3 × 2:

Untuk mengalikan dua matriks bersama-sama (sebut saja mereka matriks A dan matriks B), jumlah kolom dalam matriks A harus sama dengan jumlah baris dalam matriks B. Ini penting - jika ini tidak benar, maka perkalian tidak didefinisikan . (Ini semacam pembagian dengan nol - itu tidak mungkin.)

Dengan asumsi kriteria ini terpenuhi, produk dari dua matriks (sebut saja matriks C) akan memiliki jumlah baris yang sama dengan matriks A dan jumlah kolom yang sama dengan matriks B. Elemen-elemen dalam matriks C sama dengan jumlah dari produk dari elemen kolom yang sesuai dalam A kali elemen baris dalam B. Ini agak rumit, tetapi gambar berikut seharusnya (semoga!) membuat ini sedikit lebih jelas:

Sketsa berikut, matrix_mult.pde, menggambarkan cara melakukan operasi dalam Memproses:

Ketika Anda menjalankan sketsa, Anda akan melihat output berikut:

[0][0] = 2.0 [0][1] = 0.0 [1][0] = 5.5 [1][1] = 2.0

Jadi, dengan perhitungan matematika dasar, kami siap untuk menulis kode filter. Kerutan yang tersisa adalah bahwa gambar dalam Pemrosesan ditahan dalam array warna satu dimensi, bukan array 2 dimensi koordinat (x, y), seperti dijelaskan dalam tutorial Gambar dan Piksel yang hebat oleh Daniel Shiffman. Dalam tutorial, ia memberikan formula yang bagus yang dapat Anda gunakan untuk memetakan koordinat (x, y) ke posisi dalam array gambar:

posisi dalam array = x + IMAGE_WIDTH * y

Gambar berikut ini akan membantu menggambarkan sebagian besar konsep yang bekerja di sini:

Tanpa basa-basi lagi, inilah sketsa bernama filter.pde untuk mengimplementasikan filter melalui perkalian matriks:

Lebih lanjut: Lihat semua kolom Codebox di sini

Di Gudang Pembuat:


Memulai Memproses Mempelajari pemrograman komputer dengan cara yang mudah dengan Processing, bahasa sederhana yang memungkinkan Anda menggunakan kode untuk membuat gambar, animasi, dan grafik interaktif. Kursus pemrograman biasanya dimulai dengan teori, tetapi buku ini memungkinkan Anda terjun langsung ke proyek-proyek kreatif dan menyenangkan. Ini ideal untuk siapa saja yang ingin belajar pemrograman dasar, dan berfungsi sebagai pengantar sederhana untuk grafik untuk orang-orang dengan beberapa keterampilan pemrograman.



Anda Mungkin Tertarik

Kid Membangun Robot BB-8 Di Luar Bola Pantai, Rol Deodoran, Magnet Speaker

Kid Membangun Robot BB-8 Di Luar Bola Pantai, Rol Deodoran, Magnet Speaker


Proyek Organisasi Shop bersama April Wilkerson

Proyek Organisasi Shop bersama April Wilkerson


5 Hal Ini Membuat Optimus Prime Cake Sebenarnya Berubah

5 Hal Ini Membuat Optimus Prime Cake Sebenarnya Berubah


Laboratorium Umum Menempatkan Keadilan Ekologis di Tangan Para Ilmuwan Warga Negara

Laboratorium Umum Menempatkan Keadilan Ekologis di Tangan Para Ilmuwan Warga Negara






Recent Posts