Deteksi Tepi dengan Metode Prewitt
Praktikum PCD Menengah ke-4
Untuk membuat program deteksi tepi menggunakan metode Prewitt tanpa menggunakan pustaka OpenCV, kita dapat mengikuti langkah-langkah serupa dengan metode Sobel, tetapi dengan menggunakan kernel Prewitt. Metode Prewitt juga merupakan teknik deteksi tepi yang menggunakan konvolusi, tetapi dengan kernel yang berbeda.
Langkah-langkah:
- Membaca Citra: Menggunakan PIL (Python Imaging Library) untuk membaca citra.
- Konversi ke Grayscale: Mengonversi citra ke grayscale.
- Definisikan Kernel Prewitt: Menentukan kernel Prewitt untuk deteksi tepi horizontal dan vertikal.
- Terapkan Konvolusi: Melakukan operasi konvolusi dengan kernel Prewitt pada citra.
- Gabungkan Hasil: Menggabungkan hasil deteksi tepi horizontal dan vertikal.
- Simpan atau Tampilkan Hasil: Menyimpan atau menampilkan citra hasil deteksi tepi.
Kode Program
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | from PIL import Image import numpy as np def prewitt_filter(img): # Konversi ke grayscale gray = img.convert("L") # Konversi ke array numpy pixels = np.array(gray) # Kernel Prewitt prewitt_x = np.array([[-1, 0, 1], [-1, 0, 1], [-1, 0, 1]]) prewitt_y = np.array([[1, 1, 1], [0, 0, 0], [-1, -1, -1]]) # Inisialisasi hasil height, width = pixels.shape edge_x = np.zeros((height, width)) edge_y = np.zeros((height, width)) # Terapkan Konvolusi for i in range(1, height-1): for j in range(1, width-1): region = pixels[i-1:i+2, j-1:j+2] edge_x[i, j] = np.sum(region * prewitt_x) edge_y[i, j] = np.sum(region * prewitt_y) # Menghitung magnitudo gradien magnitude = np.sqrt(edge_x**2 + edge_y**2) magnitude = np.uint8(magnitude) # Mengembalikan citra hasil return Image.fromarray(magnitude) # Membaca citra img = Image.open('path_ke_citra_anda.jpg') # Ganti dengan path ke citra Anda # Terapkan Prewitt Filter result = prewitt_filter(img) # Tampilkan hasil result.show() |
Catatan
- Pastikan Anda telah menginstal Pillow. Jika belum, install dengan pip install Pillow.
- Ganti 'path_ke_citra_anda.jpg' dengan path ke file citra yang ingin Anda proses.
Kode ini akan menerapkan filter Prewitt pada citra yang dipilih dan menampilkan hasil deteksi tepinya. Anda dapat menyesuaikan atau mengembangkan kode ini lebih lanjut untuk memenuhi kebutuhan praktikum Anda.