Cara menerapkan kernel filter

8

Filter yang dapat digunakan untuk sinyal digital seperti audio, video atau pemrosesan gambar dapat didefinisikan menggunakan matriks ("kernel") yang membebani area sekitarnya (ini adalah deskripsi yang saya baca dalam catatan kuliah dari orang lain).

Kernel

(111111111)
mendefinisikan filter erode .

Bisakah Anda memberi tahu saya bagaimana kernel ini diterapkan pada misalnya gambar (dan karena itu bidang piksel 2D)? Terima kasih sebelumnya!

muffel
sumber
Istilah erode "filter" sedikit keliru di sini karena ini merupakan operasi yang sangat tidak linier. Filter dalam arti yang lebih ketat mengacu pada operasi invarian waktu linier. Konvolusi dengan kernel adalah filter, menerapkan proses erode tidak
Hilmar
1
IMO, jawabannya adalah satu baris: konvolusi. Konvolusi penelitian dan persamaan matematika serta implementasi konvolusi dan itulah yang dilakukan. (dalam hal ini Anda akan melakukan konvolusi 2d).
Trevor Boyd Smith
1
Saya pikir pertanyaan sebenarnya adalah "bagaimana Anda memfilter sesuatu dengan filter FIR?" atau "bagaimana konvolusi bekerja?" atau "bagaimana Anda menerapkan konvolusi?".
Trevor Boyd Smith
Ini bukan kernel, tetapi elemen penataan. Oleh karena itu, ini diterapkan sepenuhnya berbeda. Lihat jawaban @ kolentebert di bawah ini. Sederhananya, itu adalah bentuk yang Anda overlay pada gambar untuk mengekstrak maxima / minima lokal.
sansuiso

Jawaban:

2

Filter erode Anda salah. Tautan yang Anda berikan mengatakan seharusnya menemukan maksimum piksel yang berdekatan, dan array Anda tidak melakukan ini. Sebaliknya, ini memberikan jumlah piksel yang berdekatan. Jika Anda menormalkan hasilnya (karena semua penambahan ini akan meningkatkan kecerahan), maka Anda akan menemukan bahwa filter Anda rata-rata merata piksel yang berdekatan.

Apa yang biasanya Anda lakukan adalah mengambil gambar Anda dan menggabungkan blok 3x3 (atau seberapa besar filternya) dengan filter Anda. Anda juga dapat melakukan ini secara paralel, untuk kecepatan.

Emre
sumber
5

Dalam pemrosesan gambar, untuk menerapkan filter seperti itu, Anda akan mengulangi semua piksel dari gambar input dan di setiap langkah letakkan filter mask di atas gambar sehingga pusatnya terletak di piksel Anda saat ini. Anda kemudian "mengevaluasi" piksel dalam lingkungan yang ditutupi oleh topeng dalam beberapa cara dan menulis hasilnya kembali ke piksel saat ini.

Untuk konvolusi normal, Anda mengalikan setiap elemen filter dengan nilai piksel yang sesuai, menjumlahkan hasilnya dan menulis jumlahnya ke piksel saat ini.

Erosi adalah operasi morfologis, dan Anda akan menerapkannya (pada gambar biner) dengan memeriksa apakah semua "1" nilai topeng Anda terletak di atas "1" piksel dalam gambar. Jika demikian, Anda menulis "1" ke piksel saat ini (jika tidak, "0").

Dalam kedua kasus tersebut, pastikan untuk selalu membaca piksel input Anda dari versi gambar yang dimodifikasi (daripada memodifikasi gambar di tempat).

koletenbert
sumber