Dalam tutorial ini, kita akan melihat cara menerapkan dua filter low-pass yang berbeda untuk memuluskan [menghilangkan noise dari] gambar. Kedua filter tersebut adalah filter2D dan boxFilter. Filter ini adalah filter 2D di luar angkasa
Menerapkan filter 2D ke gambar juga dikenal sebagai "operasi Konvolusi 2D". Filter ini biasanya disebut sebagai filter rata-rata
Kerugian utama dari filter ini adalah filter ini juga memperhalus bagian tepi gambar. Jika Anda tidak ingin menghaluskan tepinya, Anda dapat menerapkan "filter bilateral". Operasi filter bilateral mempertahankan tepinya
Sintaksis
Berikut ini adalah sintaks dari Filter2D dan BoxFilter
cv2.filter2D[img, ddepth, kernel] cv2.boxFilter[img, ddepth, ksize]
Parameter
img - Gambar input tempat operasi filter diterapkan
ddepth - Kedalaman gambar keluaran yang diinginkan. Jika "kedalaman = -1", ia mengembalikan gambar keluaran dengan kedalaman yang sama dengan gambar masukan
kernel − Kernel konvolusi. Di filter2D, kami melewatkan kernel sebagai larik numpy
ksize - Ukuran kernel. Di boxFilter, kami hanya mengirimkan ukuran kernel sebagai tuple
Langkah
Untuk melakukan operasi filter bilateral, Anda dapat mengikuti langkah-langkah yang diberikan di bawah ini −
Impor perpustakaan yang diperlukan. Dalam semua contoh Python berikut, pustaka Python yang diperlukan adalah OpenCV. Pastikan Anda sudah menginstalnya
import cv2_
Baca gambar input dan ubah menjadi gambar skala abu-abu
img = cv2.imread['vehicle.jpg'] img = cv2.cvtColor[img, cv2.COLOR_BGR2GRAY]
Tentukan kernel untuk menerapkan filter2D
Define kernel in case to apply filter2D. kernel = np.ones[[5,5],np.float32]/25
Terapkan pemfilteran filter2D atau boxFilter pada gambar masukan. Kami meneruskan ddepth, kernel, atau ksize sebagai argumen ke fungsi filter
Pernahkah Anda mencoba mengaburkan atau mempertajam gambar di Photoshop, atau dengan bantuan aplikasi seluler? . Di sini, kami akan menjelaskan cara menggunakan konvolusi di OpenCV untuk pemfilteran gambar.
Anda akan menggunakan kernel konvolusi 2D dan pustaka OpenCV Computer Vision untuk menerapkan teknik pengaburan dan penajaman yang berbeda pada gambar. Kami akan menunjukkan kepada Anda bagaimana menerapkan teknik ini, baik dengan Python dan C++
Mari kita mulai dengan melihat kode yang akan digunakan untuk memfilter gambar. Setiap baris kode akan dibahas secara detail agar Anda benar-benar memahaminya
Piton
import cv2 import numpy as np image = cv2.imread['test.jpg'] # Print error message if image is null if image is None: print['Could not read image'] # Apply identity kernel kernel1 = np.array[[[0, 0, 0], [0, 1, 0], [0, 0, 0]]] identity = cv2.filter2D[src=image, ddepth=-1, kernel=kernel1] cv2.imshow['Original', image] cv2.imshow['Identity', identity] cv2.waitKey[] cv2.imwrite['identity.jpg', identity] cv2.destroyAllWindows[] # Apply blurring kernel kernel2 = np.ones[[5, 5], np.float32] / 25 img = cv2.filter2D[src=image, ddepth=-1, kernel=kernel2] cv2.imshow['Original', image] cv2.imshow['Kernel Blur', img] cv2.waitKey[] cv2.imwrite['blur_kernel.jpg', img] cv2.destroyAllWindows[]_
Unduh Kode Untuk mengikuti tutorial ini dengan mudah, silakan unduh kode dengan mengklik tombol di bawah ini. Gratis
Unduh Kode
C++
// Import dependencies #include #include // Using namespaces to nullify use of c::function[]; syntax and std::function[]; syntax using namespace std; using namespace cv; int main[] { // Read Image Mat image = imread["test.jpg"]; // Print Error message if image is null if [image.empty[]] { cout