Dokumen ini membahas tentang deteksi tepi pada citra menggunakan algoritma Canny. Metode deteksi tepi dibagi menjadi dua kategori yaitu operator gradien pertama dan operator turunan kedua. Algoritma Canny digunakan untuk mendeteksi tepi citra kucing dengan mengaburkan citra untuk menghilangkan noise, menandai tepian pada gradien besar, menandai maksimum lokal sebagai tepi, dan menemukan tepian a
2. PENDAHULUAN
Citra menyimpan informasi
Saat proses akuisisi bisa terjadi eror sehingga terdapat
informasi yang hilang
Infromasi yang hilang biasanya ditandai dengan penurunan
kualitas citra (tidak sesuai dengan benda/keadaan aslinya)
3. DETEKSI TEPI
Tepi: daerah yang memiliki perubahan nilai intensitas drastis
pada jarak singkat (diskontinuitas graylevel).
Deteksi tepi: operasi matematis yang bertujuan mendeteksi
tepi yang membatasi dua wilayah citra homogen dengan
kecerahan berbeda.
4. DETEKSI TEPI
Tujuan:
1. Memberikan batas-batas pada obyek dalam citra
2. Mengubah citra menjadi bentuk sinyal
3. Mendapatkan fitur-fitur citra.
5. METODE DETEKSI
TEPI
Dapat dikelompokkan menjadi dua kategori besar:
Operator Gradien Pertama
• Operator gradien-selisih terpusat
• Operator Robert, operator Sobel
• Operator Canny
• Operator Prewitt.
Operator Turunan Kedua
• Operator Lapacian
• Operator Laplacian of Gaussian.
8. OPERATOR CANNY
Algoritma ini berjalan dalam lima langkah terpisah:
• Smoothing: mengaburkan citra untuk menghilangkan noise
• Finding gradien: tepian ditandai pada gradien yang besar
• Non-maksimum suppresion: hanya maksima lokal yang
ditandai sebagai tepi
• Edge tracking by hysteresis: tepian final ditemukan dengan
menekan semua sisi yang tidak terhubung dengan tepian
yang sangat kuat.
10. SOURCE CODE
# -*- coding: utf-8 -*-
import cv2
import numpy as np
# fungsi kosong, untuk parameter supaya
bisa bikin trackbar
def nothing(x):
pass
# baca gambar
img = cv2.imread('kucing.jpg', 0)
# membuat window dan trackbar
cv2.namedWindow('image')
cv2.createTrackbar('minimum','image',0,5
00,nothing)
cv2.createTrackbar('maksimum','image',0,
500,nothing)
# loop utama
while(1):
# keluar waktu tombol ESC ditekan
k = cv2.waitKey(1) & 0xFF
if k == 27:
break
# mengambil nilai minimum dan
maksimum dari trackbar
min =
cv2.getTrackbarPos('minimum','image')
max =
cv2.getTrackbarPos('maksimum','image')
# menghitung tepi dengan algoritma
Canny, menampilkan hasil
hasil = cv2.Canny(img, min, max)
cv2.imshow('image', hasil)
# tutup jendela
cv2.destroyAllWindows()