Widget HTML Atas


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:

  1. Membaca Citra: Menggunakan PIL (Python Imaging Library) untuk membaca citra.
  2. Konversi ke Grayscale: Mengonversi citra ke grayscale.
  3. Definisikan Kernel Prewitt: Menentukan kernel Prewitt untuk deteksi tepi horizontal dan vertikal.
  4. Terapkan Konvolusi: Melakukan operasi konvolusi dengan kernel Prewitt pada citra.
  5. Gabungkan Hasil: Menggabungkan hasil deteksi tepi horizontal dan vertikal.
  6. 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

  1. Pastikan Anda telah menginstal Pillow. Jika belum, install dengan pip install Pillow.
  2. 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.