Python ve OpenCv İle WebCam’den Aldığınız Görüntüyü İşlemek
Python ve açık kaynak kodlu OpenCV görüntü işleme kütüphanesi kullanarak hazırladımız görüntü işleme uygulamalarına devam ediyoruz.
Bu örnek uygulamamızda OpenCV ile biilgisayarın webcam’inden aldığımız görüntüyü 4 farklı işlemden geçirerek tek bir pencere içinde göstereceğiz.
Görüntüyü grileştirme, blurlaştırma, treshold işlemi, canny ve Laplacian işlemlerinden geçireceğiz. Bu işlemlerin sonuçlarınıda numpy kütüphanesi yardımıyla tek bir pencere içerisinde göstereceğiz.
OpenCv ile Temel Görüntü İşlemleri Örnek Uygulaması
OpenCV ve Numpy kütüphanesini kullandığımız python kodumuz alttaki gibi.
import numpy as np import cv2 from matplotlib import pyplot as plt cap = cv2.VideoCapture(0) while(True): # Capture frame-by-frame ret, frame = cap.read() if frame is None: continue frame = cv2.resize(frame, (320,240)) # Our operations on the frame come here gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray.copy(),threshold1=50, threshold2=150,apertureSize = 3) #sobel laplacian = cv2.Laplacian(gray.copy(),cv2.CV_8U,13) #kernel = np.ones((3,3),np.uint8) #laplacian = cv2.dilate(laplacian,kernel,iterations = 1) im_th1 = cv2.adaptiveThreshold(gray.copy(), 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, \ cv2.THRESH_BINARY, 5, 2) # Display the resulting frame #edges = cv2.Canny(gray.copy(),threshold1=50, threshold2=150,apertureSize = 3) tempImg = cv2.medianBlur(gray, 5) im_th1 = cv2.adaptiveThreshold(tempImg, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, \ cv2.THRESH_BINARY, 5, 2) blur = cv2.GaussianBlur(im_th1, (5, 5), 0) _, im_th2 = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) numpy_horizontal = np.hstack((gray, edges, laplacian, im_th2)) cv2.imshow('Numpy Horizontal', numpy_horizontal) if cv2.waitKey(1) & 0xFF == ord('q'): break # When everything done, release the capture cap.release() cv2.destroyAllWindows()
Bu kodu çalıştırdığımızda bilgisayarımıza bağlı webcam açlıcak ve anlık olarak webcamden gelen görüntüyü işlemden geçirerek ekranda görüntülenecek. Kodumuzu çalıştırdığımız da elde edeceğimiz görüntüyü videomuzda görebillirsiniz.
Bu işlemler yardımıyla yüz tanıma, çizgi izleme, plaka okuma, yazı tanıma gibi uygulamalar yapılabilir.
Yukarıdaki ekran yakalamayı SnagIt programıyla gerçekleşitrdik. Sizde Temmuz ayına kadar Snagit programını ücretsiz kullanabilirsiniz. En iyi ekran yakalama programlarını listelediğimiz yazımıza da göz atabilirsiniz.
Sitemizde Python ve OpenCV kullanarak hazırladığımız yüz tanıma uygulaması örneği ve farklı OpenCV örnek kodlarını bulabilirsiniz.
Python öğrenmek isteyenler için hazırladığımız Python derslerine de göz atabilirsiniz.
Yorumlarınız ve sorularınızı bizimle paylaşın.