Edge dapat didefinisikan sebagai batas dari sebuah objek dalam gambar. Contoh, kita mengenali gambar seekor anjing dari gambar garis batas atau outline yang membentuk anjing.
Edge detection adalah topik yang penting di area computer vision. Edge dapat di definisikan sebagai perubahan seketika atau diskonuitas dari sebuah image.
Berikut algoritma edge detection yang umum digunakan
- Sobel: untuk mempertegas vertical atau horizontal edges
- Canny: tingkat akurasi edge detection tinggi.
Kita tidak akan bahas mendalam algoritma diatas, karena topik tersebut ada di ranah matematika.
Canny adalah algoritma yang tinggi akurasinya, berikut proses algoritma Canny dalam melakukan edge detection:
- Mengaplikasikan gaussian blur
- Mencari intensitas gradient dari sebuah image
- Mengaplikasikan non-maximum supression, seperti membuang pixel selain edge.
- Hysteresis, mengaplikasikan threshold, misalnya pixel dalam range upper dan lower threshold dianggap sebagai edge.
import cv2
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
img = cv2.imread('france001.jpg', 0)
height, width = img.shape
sobelX = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=5)
sobelY = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=5)
sobelOR = cv2.bitwise_or(sobelX, sobelY)
plt.imshow(sobelOR, cmap='gray')
canny = cv2.Canny(img, 20, 170)
plt.imshow(canny)

Image download di https://drive.google.com/file/d/1NDlBWom4AdsIxHFW_lfGSVm7xL2OmbXZ/view?usp=sharing
FIle colab https://colab.research.google.com/drive/1PLHoXayA-X-wRhYaHZEm5ik9Emo5T6YX?usp=sharing