19.3.05

Visual C++ 6.0 ile OpenCV kullanımı

OpenCV, görüntü işleme(aka. image processing) için Intel'in geliştirdiği bir kitaplık. Sonradan bunu kamusal alana(public) hibe ediyor; OpenCV, an itibariyle sourceforge'da geliştirilmekte.
Visual C++ ile birlikte OpenCV kullanmak yeni başlayanlar için gayet sancılı bir süreç olabiliyor. Sorunuz olursa çekinmeden sorun, ama tabi ki ilk önce RTFM!!
Bir adet de ayarları yapılmış, taslak workspace hediyesi.
Tüm bu işlere başlamadan önce tabi ki OpenCV'yi edinmek gerekiyor. gerekli dosyaları buradan edinebilirsiniz.

Visual C++ 6.0'ı açtıktan sonra File->New... diyerek yeni bir proje yaratalım.


Karşımıza gelen ekranda, Win32 Console Application seçilir; proje ismi de doldurulduktan sonra, bir sonraki adımda An empty project seçilir.


Workspace'imiz hazır. Şimdi sıra, OpenCV kitaplığının kullanılması için yapılması gereken ayarlara geldi.

Menüden Project->Settings... seçilir. Bu ekranda ayarları yaparken Settings for: All configurations'ın seçili olduğundan emin olun.
  1. C/C++sekmesi seçilir.
    Category->Preprocessor
    seçilir.
    Additional Include Directories şu şekilde ayarlanır:
    C:\Program Files\OpenCV\cv\include,C:\Program Files\OpenCV\cvaux\include,C:\Program Files\OpenCV\cxcore\include,C:\Program Files\OpenCV\otherlibs\highgui



    "C:\Program Files\OpenCV\" dizininin OpenCV'yi kurduğunuz dizin olduğunu söylememe gerek yok sanırım. (söyledim bile)

  2. Link sekmesi seçilir.
    Category->General seçilir.
    Object/library modules bölümüne şunlar eklenir:
    cv.lib highgui.lib cxcore.lib

    Category->Input seçilir.
    Object/library modules bölümüne şunlar eklenir(eklenmediyse):
    cv.lib highgui.lib cxcore.lib
    Additional library path bölümüne şu eklenir:
    C:\Program Files\OpenCV\lib




  3. Son olarak, File->New... seçip, Files sekmesinden yeni bir C++ Source File yaratılır. Bu sizin ana dosyanız olcak.



    yeni oluşturduğumuz dosyaya da OpenCV kitaplığını kullanmak için gerekli header dosyalarını yazmamız lazım:
    #include <cv.h>
    #include <highgui.h>
Viola! İşimiz bitti. artık görüntü işlemeye hazırız.

4 yorum:

Adsız dedi ki...

güzel olmuş

Unknown dedi ki...
Bu yorum yazar tarafından silindi.
Unknown dedi ki...

Öncelikle merhaba ve blogunuzdaki bilgi paylaşımı için de tebrik ve teşekkürler.
Gerçi bu mesajı ne zaman görüp göremeyeceğinizi bilemiyorum ancak yine de sorayım dedim. Ben OpenCV ile çok basit bir hareket takibi yapıyorum. Bunun için CamShift algoritmasını kullanıyorum. Bu yazdığım program üzerinde Win98SE kurulu olan bir tek kart bilgisayar (SBC) üzerinde koşacak. Kendi bilgisayarımda programı yazdım. (Aslında birkaç sample'ı gerektiği şekilde uyarladım denebilir) Sorunsuz bir şekilde çalıştırdım. Ancak bunu Win98SE kurulu bir bilgisayarda denemeye çalıştığımda program çöktü. Çöktüğü yer tam olarak cvCamShift() fonksiyonu. cvCamShift fonksiyonu cv100.dll'e bir çağrı yapıyor anlaşılan ve ardından göçüyor. Bunun üzerine opencv'nin kendi samplelarını denedim. Win98SE kurulu bilgisayarda camshiftdemo.exe programı da aynı yerde aynı hatayla çöktü. Bunun üzerine birkaç farklı sample daha denedim, onlar da çeşitli fonksiyonaların içerisindeyken çöktüler. (Bir kısmı ise sorunsuz çalıştı) Bilgisayar .dll'leri bulmada sorun yaşamıyor. Hatta en alt seviye önlem olarak tüm .dll'leri aynı klasöre dahi taşıdım.
Evet bütün bu uzun anlatımdan sonra soruma gelecek olursak;
OpenCV'nin .dll'leri sanırım Win98SE proseslerinin bir ya da daha fazlası ile sıkıntı yaşıyor. Yani cvCamShift metodunun kaderi midir Win98SE altında çökmek yoksa bunun önüne geçmek için birşeyler yapabilir miyim?

Çok uzun olduğunu biliyorum, umarım mesaj kutunuzu bu denli işgal ettiğim için bozulmazsınız.
Şimdiden teşekkürler..

Adsız dedi ki...

öncelikle çalışmalarınızda başarılar dilerim.open cv de image preprocessing(gamma correction,masking,dog filterin,contrast equalization)le ilgili bitirme ödevi aldım code bulmam gerekio ama bir türlü bulamadım.yardımcı olursanız sevinirim
smt_gk@hotmail.com