Pazar, Şubat 09, 2014

Qt ile OpenCv kullanmak 2

Geçen yazımızda OpenCv kütüphanesini derlemiştik. Derleme sonucu OpenCv dll dosyaları ve bu dll leri çağırabilmeniz için kendi programlarınıza link etmeniz gereken kütüphane dosyaları. Kütüphane dosyalrının uzantısı mingw ile derlediğimizden "*.a " dır.

Yazdığımız programın çalışabilmesi için OpenCv dll lerinin ulaşılabilir olması gerekir. Yani ya programımızla birlikte yan yana yada İşletimsisteminin yol tanımı - PATH- olan dizinlerinden birinde olması lazım.

Bu işlem için
  • Denetim Masası 
  • Gelişmiş Sistem Ayarları
  • Ortam Değişkenleri
  • "PATH " ı seçip düzenleye basın
  • Gelen satrın sonuna ";" yazıp kendi derlediğiniz yerin adresini yazın
  • Benin bilgisayarım için "C:\opencv-2.4.8\opencv\build\bin"

 Şimdi  Qt Creator' u açıp yeni bir Proje dosyası oluşturalım




"Qt Widgets Application " seçiyoruz
Projemize bir isim verip konum belirliyoruz


Derleyici ve build dizinleri için düzenlemeler ben değiştirmedim
Base Class seçeneği ben QDialog'u seçdim ama zorunlu değil konu Qt GUI yapısıyla alakalı. Uygulamanızın GUI yapısı ve Qt bilginize göre kendiniz ayarlarsınız.

Sonuç olarak artık Projemiz oluşturulmuştur. Projemizde OpenCv kütüphanelerini kullana bilmemiz için Başlık ve kütüphane dosyalarının konumu ile bağlamamız gereken kütüphane  dosyalarını yazmamız gerekiyor Qt Creator için bu kısım proje dosyamızda bulunuyor


Orjinal proje dosyamız bu şekilde görünmektedir.
Biz kendi sistemimize göre başlık ve kütüphane dosyaları için ilavelerde bulununca

bu şekilde görünüyor. Siz dizin ayarlarını kendi sisteminize göre değiştire bilirsiniz.
kütüphane olarak biz sadece temel OpenCv kütüphanelerini ekledik siz kullanacağınız diğerlerinide ekleyebilirsiniz.

Anlatmamız gereken son şey de OpenCv deki bir görüntünün Qt ekranında gösterilmesi. Biz bu işlem için "Mat2QImage" diye bir fonksiyon yazdık ve basit bir uygulama projesi oluşturduk

Uygulama
  • 1 QPushButton ve 1 QLabel dan oluşuyor
  • Düğmeye basılınca VideoCapture oluşturulup kamera açılıyor. 
  • Kamera görüntüsünü güncellemek için bir timer oluşturuluyor
  • Görüntü güncelleme kısmında  VideoCapture  nesnesinden bir frame okunuyor
  • bu frame (cv::Mat şeklinde )  "Mat2QImage"  fonksiyonuyla  QImage e dönüştürülüyor
  • QImage nesnesi Label'ın  setPixmap metıduyla ekrana aktarılıyor... 
Örnek Uygulamayı İndirmek için ; QtCv.zip

Bu yazı dizimizinde sonuna geldik sorularınız için profil sayfasındaki adresden yada yorum olarak ulaşabilirsiniz...


Hiç yorum yok: