Python ve OpenCv İle WebCam’den Aldığınız Görüntüyü İşlemek

0 95

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.

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

Bu web sitesi deneyiminizi geliştirmek için çerezleri kullanır. Bununla iyi olduğunuzu varsayacağız, ancak isterseniz vazgeçebilirsiniz. Kabul etmek Mesajları Oku