Sayfalar

Salı, Temmuz 24, 2012

OpenCv 2.x ' Giriş - Kurulum -

OpenCv  açık kaynak kodlu ticari kullanım içinde uygun bir lisansa ( BSD ) sahip bir Bilgisayarlı görü kütüphanesidir.
Daha Önce OpenCv ye giriş niteliğinde bir dizi yazı yazmıştık.  Yazdığımız yazılar kısmen güncelliğini yitirmiştir. Her ne kadar eskiye uyumluluk adına eski C API muhafaza edilsede, OpenCv 2. versiyonundan itibaren  C++ API sistemine geçilmiştir.
Bu durumda yazılarımızın da yeni C++ API larına göre yenilenmesi gerekmekteydi fakat fırsat bulupda yazmaya bir türlü başlayamamıştım. Bu gün kurulumundan başlayayım bakalım İnşallah fırsat bulup  seriyi tamamlayabilirim.


OpenCv Kurulumu :

Bu an itibarıyla OpenCv nin en güncel sürümü ; OpenCv 2.4.2 ve Windows için olan kurulumunu anlatacağım.

1) Sourceforge daki sitesine gittiğimizde windows için hazırlanmış OpenCv 2.4.2 nin kendi kendini açan sıkıştırılmış halde bir paketine ulaşıyoruz. Öncelikle bunu indiriyoruz.
 http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.2/OpenCV-2.4.2.exe/download

2)  Programı çalıştırıp  C de uygun bir isimde dizin oluşturup oraya açın

Ben "C:\OpenCV-2.4.2\" dizinine kurdum.

3) Paketin içinde hem Mingw hemde VS ile derlenmiş halde kütüphanelere ulaşabiliyorsunuz. Bizim için gerekli olan dizinleri şöyle bir listeleyim. Çünkü  IDE ayarlarında lazım olacak. IDE ayarıda ne diyorsanız Kütüphane Kullanımı yazımızı okuyun.
Başlık ( include ) Dosyaları için ;  C:\OpenCV-2.4.2\opencv\build\include
Mingw Kütüphane Dosyaları için  ;  C:\OpenCV-2.4.2\opencv\build\x86\mingw\lib
Mingw DLL Dosyaları için  ;  C:\OpenCV-2.4.2\opencv\build\x86\mingw\bin
 
Bende Visual Studio nun 2010  express versiyonu olduğundan ona uygun olarak


VS Kütüphane Dosyaları için; C:\OpenCV-2.4.2\opencv\build\x86\vc10\lib
VS DLL Dosyaları için; C:\OpenCV-2.4.2\opencv\build\x86\vc10\bin
VS  TBB için DLL Dosyaları ; C:\OpenCV-2.4.2\opencv\build\common\tbb\ia32\vc10

Paketin içinde malesef derlenmiş halde Örnek programlar bulunmamaktadır. Eğer Örnek programları derlemek istiyorsanız, ya teker teker derleyeceksiniz yada  Cmake ile Örneklerinde derlenmesini işaretleyip  Kütüphaneyi  derleyeceksiniz. Bu konuyu Daha öneck bir yazımızda anlattığımızdan girmiyoruz. Yapmak isteyen o yazıya müracaat etsin. Sitemli OpenCv 2.0 kurulumu

4)  Eğer derleyici olarak Mingw32 kullanıyorsanız, size tavsiyem; öncelikle derleyicinizin en güncel ve kararlı dağıtımını indirip sisteminize kurun. güncel olmayan yada kararlı olmayan sürümler bazen uyumsuzluklar gösterip problem çıkarabiliyor. IDE ayarlarına başlayabiliriz Öncelikle CodeBlocks ile başlıyalım.

Bir konsol uygulaması açalım. ( Create New Project -> Console Application'ı seçin )


Project->Build Options->Search directories -> Compiler
kısmına Başlık dosyalarımızın dizinini yazıyoruz


 
Project->Build Options->Search directories -> Linker
kısmına Mingw için Kütüphane dosyalarının dizinini yazıyoruz


 Project->Build Options->Linker Settings den OpenCv de çoğu işimizi göremize yetecek kütüphane dosyalarını ekliyoruz




Kütüphane isimlerinde Derleyicisine ve versiyonuna göre ufak tefek değişiklikler olmakla birlikte genel olarak bize lazım olan kütüphaneler
Core : OpenCv nin çekirdek kısmı temel yapıları sınıfları ve fonksiyonları barındırır.
Highgui  :  Görüntü ve video dosyalrının okunup yazılması ekranda gösterilmesi işlerini yapar
Imgproc: Genel görüntü işleme sınıfları fonksiyonlarını barındırır.

Mingw32 için ve bu Opencv nin 2.4.2 versiyonu için bu kütüphanelerin adı
  • libopencv_core242.dll
  • libopencv_highgui242.dll
  • libopencv_imgproc242.dll
şeklinde geçiyor.
bu kütüphaneleride link listemize ekledikten sonra programımızı yazıp derleyebiliriz.
Bütün bu ayarları tekrar tekrar yapmamak için bu projemizi Template olarak saklıyoruz.
File-> Save Project as a Template
Yeni bir proje açacağımız zamanda bu template' i kullanıyoruz...


5)  Eğer Visual Studio Kullanıyorsak bir önceki maddede anlatılanların hepsini VS için yapıyoruz. Önce Bir Win32 Consol projesi açın
Project Property Page de


VC++ Directories kısmında
Include Directories 'e OpenCV başlık dizinini
Library Directories 'e  VS için olan kütüphane dizinini ekleyin



Burda dikkat etmemiz gereken ve VS ye has olan Projenin Debug veya Release olarak derlenmesine bağlı olarak farklı kütüphaneler kullanılıyor.
Debug için
opencv_core242d.lib
opencv_highgui242d.lib
opencv_imgproc242d.lib

Release için
opencv_core242.lib
opencv_highgui242.lib
opencv_imgproc242.lib


6)  Artık programınız derlenecektir fakat derlediğiniz programı çalıştırmaya kalktığımızda dll dosyasını bulamadığından. Çalışma zamanı hatası verir.  Bundan kurtulmanın yolu dll dosyaların bulunduğu adrese "PATH"  vermektir.
Ben Windwows 7 için anlatıyorum

 Denetim Masası ->Sistem Güvenlik ->Sistem->Gelişmiş Sistem Ayarları
Gelişmiş sekmesinde -> Ortam değişkenleri ->PATH
kısmına DLL dizinlerimizi (bakınız  3. madde ) arasına ; koyarak ekleyin.

7)   Bütün herşeyi doğru yaptısanız  Ders1 i indirin ve projenize ekleyin 
Programımız artık çalışacaktır. Yanlışlıklar, eksikler yada anlaşılmayan yerler için bildirimde bulunun gereken düzeltmeleri yapalım...


Not : Tarih vermem pek mümkün değil ama Eğer vakit bulabilirsem bu yazı dizisi Ders 1'in açıklamasıyla başlayıp benzeri ufak öğrenmelik uygulamalarla devam edecektir.

14 yorum:

Adsız dedi ki...

Allah razı olsun hocam sonunda bitti kurulum oh be :)peki bi sorum olcak fltk ile bunu nasıl kullanabiliriz ikisinide aynı proje dahil ederek kullanılabilirmi ?

birol kuyumcu dedi ki...

FLTK ilede kullanabilirsiniz Elbette Fakat Fl_OpenCv nin yeni OpenCv API 'ına adapte edilmesi lazım

Mert dedi ki...

Gerçekten çok yararlı bir bilgi ben kurana kadar neler çektim başkaları problem yaşamasın kurulum konusunda

Unknown dedi ki...

Merhabalar

İzninizle Opencv Konusunda size Sormak istediğim bir konu var.

C# ile opencv kullanarak görüntü işleme konusunda basit bir proje geliştiriyorum. Open cv ile bilgisayara bağlı kameraları bir combobox üzerinde listelemek istiyorum. Amacım olurda bilgisayara birden fazla kamera bağlanırsa kulanıcının listeden istediği kamerayı seçmesi. Birtürlü yapamadım. Bu konuda sizin bilginiz varmı?

birol kuyumcu dedi ki...

OpenCv nin benim bildiğim böyle bir özelliği yok
http://code.google.com/p/videoinputsharp/
bunu deneyin

agustos dedi ki...

Merhaba,
Kurulumu yaptım,sizin örnek kodunuzu çalıştırmak istediğimde 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file hatası verdi, sebebi nedir?

birol kuyumcu dedi ki...

Bahsettiğiniz konunun OpenCv ile alakası yok
o hata kodunu googleda aratırsanız
değişik önerilerde bulunuyorlar

Fatih Ahmet ŞENEL dedi ki...

Anlatımınız için teşekkürler, benim size danışmak istediğim konu opencv kütüphanesini visual studio form uygulamalarında kullanmak mümkün mü? Console uygulaması olarak çalışıyor ancak form uygulamasına geçince hata veriyor.

birol kuyumcu dedi ki...

Hata nedir ?

Unknown dedi ki...

Hocam merhaba öncelikle yazınız için çok teşekkür ederim. Size bir sorum olacak.
Görüntü işleme ile ilgili her şeyi matlab üzerinde yapıyorduk. Ancak işin içine gerçek zaman girince opencv ye dönmek zorunda kaldık. Opencv'yi bilgisayarıma kurdum. Burda anlattığınız gibi kütüphane eklemelerini yaptım. Ancak <> hatasını alıyorum. Bir haftadır bunla uğraşıyorum yapamadım. Google'da çözümü yok lütfen yardım edermisiniz?

birol kuyumcu dedi ki...

hatayı detaylı anlatın
ne kast ettiğinizi anlamadım

Unknown dedi ki...

Ben hatayı yazmıştım ama sorun çıkmış heralde:
‘Unable to start program c:/users/hp/documents/visiual studio 2010/projects/ilk/Debug/ilk.exe sistem belirtilen dosyayı bulamıyor’
hatasını alıyorum ve bir türlü çözemedim.

birol kuyumcu dedi ki...

Problemin OpenCv ile alakası yok
VisualStudio ilgili araştırmanızı yapın

"ilk.exe" bulunamadı diyor

Adsız dedi ki...

merhaba,
ben tüm bu işlemleri, opencvyi kullanmak istediğim her projede tekrar tekrar yapmak istemiyorum. Bu konuda nasıl bir yol izleyebilirim?