Filter gaussian dari awal python

Standar deviasi untuk kernel Gaussian. Deviasi standar dari filter Gaussian diberikan untuk setiap sumbu sebagai urutan, atau sebagai nomor tunggal, dalam hal ini sama untuk semua sumbu.

urutan int atau urutan int, opsional

Urutan filter sepanjang setiap sumbu diberikan sebagai urutan bilangan bulat, atau sebagai nomor tunggal. Urutan 0 sesuai dengan konvolusi dengan kernel Gaussian. Urutan positif sesuai dengan konvolusi dengan turunan dari Gaussian

keluaran array atau dtype, opsional

Larik untuk menempatkan output, atau tipe d dari larik yang dikembalikan. Secara default, array dengan tipe yang sama dengan input akan dibuat

mode str atau urutan, opsional

Parameter mode menentukan bagaimana larik input diperluas saat filter tumpang tindih dengan batas. Dengan melewati urutan mode dengan panjang yang sama dengan jumlah dimensi array masukan, mode yang berbeda dapat ditentukan sepanjang sumbu masing-masing. Nilai default adalah 'mencerminkan'. Nilai-nilai yang valid dan perilaku mereka adalah sebagai berikut

'mencerminkan' (d c b a. abcd. dcb a)

Input diperluas dengan merefleksikan tepi piksel terakhir. Mode ini juga terkadang disebut sebagai simetri setengah sampel

'konstan' (k k k k. abcd. k k k k)

Input diperluas dengan mengisi semua nilai di luar tepi dengan nilai konstanta yang sama, yang ditentukan oleh parameter cval

'terdekat' (a a a a. abcd. d d d d)

Input diperluas dengan mereplikasi piksel terakhir

'cermin' (d c b. abcd. c b a)

Input diperluas dengan mencerminkan pusat piksel terakhir. Mode ini juga terkadang disebut sebagai simetris sampel utuh

'bungkus' (a b c d. abcd. abcd)

Input diperpanjang dengan membungkus ke tepi yang berlawanan

Untuk konsistensi dengan fungsi interpolasi, nama mode berikut juga dapat digunakan

'konstanta-kisi'

Ini adalah sinonim untuk 'konstan'

'grid-mirror'

Ini adalah sinonim untuk 'mencerminkan'

'kotak-bungkus'

Ini adalah sinonim untuk 'bungkus'

cval skalar, opsional

Nilai untuk mengisi melewati tepi input jika mode 'konstan'. Standarnya adalah 0. 0

potong mengambang, opsional

Potong filter pada banyak standar deviasi ini. Standarnya adalah 4. 0

radius Tidak ada atau int atau urutan int, opsional

Jari-jari kernel Gaussian. Jari-jari diberikan untuk setiap sumbu sebagai urutan, atau sebagai angka tunggal, dalam hal ini sama untuk semua sumbu. Jika ditentukan, ukuran kernel di sepanjang setiap sumbu akan menjadi 2*radius + 1, dan truncate diabaikan. Standarnya adalah Tidak Ada

Pengembalian . gaussian_filter ndarray

Mengembalikan array dengan bentuk yang sama seperti input

Catatan

Filter multidimensi diimplementasikan sebagai rangkaian filter konvolusi 1-D. Array perantara disimpan dalam tipe data yang sama dengan output. Oleh karena itu, untuk jenis keluaran dengan presisi terbatas, hasilnya mungkin tidak tepat karena hasil antara dapat disimpan dengan presisi yang tidak memadai

Filter Gaussian adalah filter low pass yang digunakan untuk mengurangi noise (komponen frekuensi tinggi) dan mengaburkan area gambar. Filter diimplementasikan sebagai Kernel Simetris berukuran Ganjil (versi DIP dari Matriks) yang dilewatkan melalui setiap piksel Wilayah Kepentingan untuk mendapatkan efek yang diinginkan. Kernel tidak sulit menuju perubahan warna drastis (tepi) karena itu piksel ke arah tengah kernel memiliki bobot lebih ke arah nilai akhir daripada pinggiran. Filter Gaussian dapat dianggap sebagai perkiraan Fungsi Gaussian (matematika). Pada artikel ini kita akan mempelajari metode pemanfaatan Filter Gaussian untuk mengurangi noise pada gambar menggunakan bahasa pemrograman Python

Kami akan menggunakan gambar berikut untuk demonstrasi

Filter gaussian dari awal python

Tangkapan layar segmen windows explorer

Proses Menerapkan filter Gauss

Dalam proses penggunaan Filter Gaussian pada sebuah citra kita terlebih dahulu menentukan ukuran Kernel/Matriks yang akan digunakan untuk menghilangkan citra tersebut. Ukuran umumnya angka ganjil, i. e. hasil keseluruhan dapat dihitung pada piksel pusat. Kernel juga simetris dan karenanya memiliki jumlah baris dan kolom yang sama. Nilai-nilai di dalam kernel dihitung dengan fungsi Gaussian, yaitu sebagai berikut

Filter gaussian dari awal python

Fungsi gaussian 2 dimensi

Di mana,

x → nilai koordinat X

y → Nilai koordinat Y

???? . 13)

σ → Standar Deviasi

Dengan menggunakan fungsi di atas, kernel gaussian dengan berbagai ukuran dapat dihitung, dengan memberikan nilai yang sesuai. Aproksimasi Kernel Gaussian 3×3 (dua dimensi) dengan Standar Deviasi = 1, tampak sebagai berikut

Filter gaussian dari awal python

Menerapkan kernel Gaussian dengan Python

Kami akan menggunakan fungsi PIL (Python Imaging Library) bernama filter() untuk meneruskan seluruh gambar kami melalui kernel Gaussian yang telah ditentukan. Halaman bantuan fungsi adalah sebagai berikut

Sintaksis. Saring (Kernel)

Mengambil kernel (ditentukan sebelumnya atau kustom) dan setiap piksel gambar melaluinya (Konvolusi Kernel).  

Parameter. Saring Kernel

Kembali. Objek Gambar

Dalam contoh berikut, kami akan memburamkan gambar yang disebutkan di atas.  

Python3




# ImageFilter for using filter() function_

from PILimport Image, ImageFilter

 _

# Opening the image 

# (R prefixed to string in order to deal with '\' in paths)_

image= from0from1from2from3from4

 _

from6

from7

image= PIL0PIL1PIL2

 _

PIL_4

PIL5

Keluaran

Filter gaussian dari awal python

Gambar Buram

Penjelasan

Pertama, kami mengimpor modul Image dan ImageFilter (untuk menggunakan filter()) dari pustaka PIL. Kemudian kami membuat objek gambar dengan membuka gambar di jalur IMAGE_PATH (Ditentukan pengguna). Setelah itu kami memfilter gambar melalui fungsi filter, dan menyediakan ImageFilter. GaussianBlur (ditentukan sebelumnya dalam modul ImageFilter) sebagai argumennya. Dimensi kernel dari ImageFilter. GaussianBlur berukuran 5×5. Pada akhirnya kami menampilkan gambar.  

Catatan. Ukuran kernel dapat dimanipulasi dengan memberikan parameter (opsional) radius kernel. Ini mengubah baris berikut dari

gambar = gambar. filter(ImageFilter. GaussianBlur)

ke

gambar = gambar. filter(ImageFilter. GaussianBlur(radius=x))

dimana x => blur radius (ukuran kernel dalam satu arah, dari piksel tengah)

Memburamkan area kecil dalam gambar

Alih-alih keseluruhan gambar, bagian-bagian tertentu juga bisa dikaburkan secara selektif. Ini dapat dilakukan dengan terlebih dahulu memangkas wilayah gambar yang diinginkan, lalu meneruskannya melalui fungsi filter(). Outputnya (sub gambar buram) akan ditempelkan di atas gambar asli. Ini akan memberi kita hasil yang diinginkan.  

Untuk kodenya adalah sebagai berikut

Python3




from PILimport Image, ImageFilter

 _

image= from0from1from2import6from4

 _

import_9

Image, ImageFilter0= Image, ImageFilter2Image, ImageFilter3Image, ImageFilter4Image, ImageFilter3Image, ImageFilter4Image, ImageFilter7Image, ImageFilter4Image, ImageFilter7________6______0

Bagaimana Anda menggunakan filter Gaussian dengan Python?

Filter Gaussian adalah filter low pass yang digunakan untuk mengurangi noise (komponen frekuensi tinggi) dan mengaburkan area gambar. Filter diimplementasikan sebagai Kernel Simetris berukuran Ganjil (versi DIP dari Matriks) yang dilewatkan melalui setiap piksel Wilayah yang Diinginkan untuk mendapatkan efek yang diinginkan.

Apa itu python kernel Gaussian?

Kernel Gaussian juga digunakan dalam Gaussian Blurring . Gaussian Blurring adalah teknik smoothing yang menggunakan low pass filter yang bobotnya diturunkan dari fungsi Gaussian. Faktanya, ini adalah filter low pass yang paling banyak digunakan dalam aplikasi CV (computer vision).

Apa perbedaan antara filter kotak dan filter Gaussian?

Filter Gaussian mirip dengan filter kotak, kecuali bahwa nilai piksel tetangga diberi bobot yang berbeda, yang ditentukan oleh distribusi Gaussian spasial. The Gaussian filter is probably the most widely used noise reducing filter.

Bagaimana cara menggunakan Gaussian blur OpenCV?

Pemburaman Gaussian. Dalam metode ini, alih-alih filter kotak, kernel Gaussian digunakan. Itu dilakukan dengan fungsi, cv. .
Pemburaman median. Di sini, fungsi cv. medianBlur() mengambil median dari semua piksel di bawah area kernel dan elemen tengah diganti dengan nilai median ini. .
Penyaringan Bilateral. CV