OpenCv’de Temel Video ve Kamera İşlemleri

Merhaba arkadaşlar, Mobilhanem.com sitemizde Python ile Görüntü İşleme Dersleri eğitim serisine kaldığımız yerden devam ediyoruz. Geçen dersimizde OpenCv’de Çizgi, Daire ve Metin Ekleme’den bahsettik. Python ile Görüntü İşleme dersinde bu hafta ise OpenCv’de Temel Video ve Kamera İşlemleri konularından  bahsedeceğiz. Eğer bir önceki dersimizi inceleme fırsatınız olmadıysa OpenCv’de Çizgi, Daire ve Metin Ekleme dersimize  buradan ulaşabilirsiniz.

Görüntü işleme çalışmaları sabit resimler üzerinde yapıldığı gibi canlı olarak toplanan görüntüler üzerinde de  yapılabilir.  Canlı ortamlardan kamera ile alınan veriler (resim veya video görüntüleri ) üzerinden çeşitli görüntü işleme yöntemleri uygulanarak analiz yapılabilmektedir. Güvenlik amaçlı anlık yüz tanıma sistemi veya otoparkta araç giriş çıkışlarında kullanılan plaka tanıma sistemleri bu kısım için örnek olarak sunabiliriz. Genel bir bilgiden sonra dersimize başlayalım.

Temel Video ve Kamera İşlemleri dersimizde işleyeceğimiz konu başlıklarını sıralayalım.

  • Kameradan Görüntü Alma ve Video Okuma İşlemi
  • Video Boyutlandırma ve Gri Tonlama İşlemi
  • Video Çözünürlüğü ve Skalalama İşlemi
  • Video Kaydetme ve Döndürme İşlemi

Kameradan Görüntü Alma

Pycharm’da yeni bir Python dosyası oluşturalım. Opencv kütüphanemizi de projemize dahil edelim ve kameradan görüntü alma ve video okuma işlemine başlayalım.

import cv2

Kütüphanemizi ekledikten sonra VideoCapture fonksiyonu ile kameramızı hazır hale getirelim.

kamera = cv2.VideoCapture(0)

VideoCapture fonksiyonun içerisinde yer alan parametre dahili ve harici kameralarınızı belirlemek için kullanılmaktadır. Bilgisayarınızın kamerasını kullanmak için 0(sıfır), harici kameranız için ise 1 (bir) değerlerini kullanabilirsiniz. Birden fazla kamera bağlantısı var ise bu sayıyı artırarak sırasıyla kullanabilirsiniz.

import cv2

kamera = cv2.VideoCapture(0)

while (True):
    ret, videoGoruntu = kamera.read()
    cv2.imshow("Bilgisayar Kamerasi", videoGoruntu)
    if cv2.waitKey(50) & 0xFF == ord('x'):
        break

kamera.release()
cv2.destroyAllWindows()

Yukarıdaki kod bloğunda kameramızın devamlı olarak çalışmasını istediğimiz için while döngüsü içerisinde  read fonksiyonunu kullanarak kameramızdaki görüntüyü okuyoruz. Okuduğumuz bu görüntüyü resim okuma işlemlerinde de kullandığımız imshow fonksiyonu ile  ekranımızda gösteriyoruz.

Şartımıza (If) gelecek olursak waitKey fonksiyonunda 50 ms’de herhangi bir tuşa basmamız kontrol edilecektir.  Biz sonlandırma tuşumuzu ‘x’ olarak belirleyelim. Şartımız sağlanırsa ( klavyemizdeki x tuşuna basma durumu)  break komutu devreye geçecek ve döngümüzden çıkılacaktır. Kullandığımız kamera.release fonksiyonumuz ile de kameramız devre dışı kalacaktır. En son ki satırda kullandığımız destroyAllWindows fonksiyonu ile de tüm pencerelerimizi kapatmış olacağız.

Video Okuma İşlemi

Bu kısımda ise elimizde var olan herhangi bir video kaydına erişerek okuma işlemi yapacağız.  Aynı projemiz üzerinden devam edebiliriz. Bu kısımda ilk önce videomuzu kopyala/yapıştır yöntemi ile proje dosyamıza dahil edelim.

Video Dahil Edildi

 

Projemize “video.mp4” dosyamızı dahil ettik. Şimdi kod satırımızdaki düzenlemeye geçebiliriz.

import cv2

okunanVideo = cv2.VideoCapture('video.mp4')

while (True):
    ret, videoGoruntu = okunanVideo.read()
    cv2.imshow("Video Okuma Islemi", videoGoruntu)
    if cv2.waitKey(50) & 0xFF == ord('x'):
        break

okunanVideo.release()
cv2.destroyAllWindows()

Videomuzu okuma işlemini gerçekleştirmek için yukarıdaki kod bloğumuzda bulunan videoCapture fonksiyonuna videonuzun ismi ve uzantısını yazmanız yeterli olacaktır. Video okuma işlemimiz kameradan görüntü alma işlemimiz ile benzerdir. Şuan için projemizde değişen tek kısım videoCapture  fonksiyonuna gönderdiğimiz parametredir.

 

Mobilhanem.com da Python ile Görüntü İşleme serisinde bir dersin daha sonuna geldik. Bu hafta Python ile Görüntü İşleme dersimizde OpenCv’de Temel Video ve Kamera İşlemleri’ nden bahsettik. Umarım sizin için faydalı bir yazı olmuştur. Bir sonraki  OpenCv’de Video Boyutlandırma ve Gri Tonlama İşlemi  dersinde görüşmek üzere. Eksik ya da yanlış gördüğünüz bir şey varsa lütfen iletişime geçmekten çekinmeyin. Sorularınızı buradan sorabilirsiniz.

Tüm Görüntü İşleme Dersleri için tıklayınız.

Kaynak: Link

21

Yunus Emre Aydın

Yazılım Mühendisi

3 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?