Tuesday, November 3, 2015

Mendeteksi garis akhir (edge) dari object dengan menggunakan python dan opencv

Catatan kali ini berisi tentang program untuk mendeteksi garis akhir alias edge (entah apa namanya kalo di translate bahasa Indonesia) dari sebuah object. Software ini menggunakan python dan opencv package untuk image processingnya.

Kodenya adalah sebagai berikut:

import cv2
import sys

if __name__ == '__main__':
print __doc__

try: fn = sys.argv[1]
except: fn = 0

def nothing(*arg):
pass

#buat window
cv2.namedWindow('edge')
#buat trackbar
cv2.createTrackbar('thrs1', 'edge', 2000, 5000, nothing)
cv2.createTrackbar('thrs2', 'edge', 4000, 5000, nothing)

#face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
#eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')

#ambil data video
cap = cv2.VideoCapture(-1)
while True:
flag, img = cap.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
thrs1 = cv2.getTrackbarPos('thrs1', 'edge')
thrs2 = cv2.getTrackbarPos('thrs2', 'edge')
edge = cv2.Canny(gray, thrs1, thrs2, apertureSize=5)
vis = img.copy()
vis /= 2
vis[edge != 0] =(0, 255, 255)
#tampilkan jendela gray dan edge
cv2.imshow('gray',gray)
cv2.imshow('edge', vis)
ch = cv2.waitKey(5)
if ch == 27:
break
cv2.destroyAllWindows()


Compile dan jalankan, maka akan muncul jendela tampilan seperti dibawah ini:



















catatan:

Tentunya ada beberapa hal yang harus dipersiapkan, diantaranya adalah webcam, dan software python itu sendiri. Karena saya menggunakan ubuntu 14.04, software python sudah disediakan oleh OS ubuntu. Saya hanya perlu webcam yang linux friendly dan menginstal package opencv ke python yang saya miliki.

Satu hal lagi, saya menggunakan pycharm sebagai IDE programing python.


 Selamat mencatat!!

No comments:

Post a Comment