Sayfalar

Çarşamba, Ağustos 09, 2017

Windowsda Python için OpenCv kurulumu

 



Yazımınızın ana konusuna geçmeden bir duyuru ve bir soruyala başlayalım.

Önce duyurumuz.
OpenCv 3.3 yayınlandı ;  En bariz fark DNN kısmının  contribden ana dağıtıma aktarılması olarak görünüyor, Darısı epeydir contribde duran diğer kısımlara diyelim. Yeniliklere bakarsak
  • DNN : zaten var olan bir kısımdı ama ana dağıtıma girdi. Ve elbette gelişti. Örneklere göre Caffe 1 , Torch ve Tensorflow modellerini çalışıtrabiliyor.  Bence çok önemli ve yeni derin öğrenme kütüphaneleri desteğiyle güncel tutulması gereken bir kısım. Sadece eğitilmiş modeli kullanmakda eziyet olabiliyor.  DNN ile bu problem bir nebze olsun çözülüyor.
  •  "a language for image processing and computational photography" diye bahsedilen halide desteği gelmiş. Daha net bir şey görünmüyor ama  siftah yapmışlar :)
  • C++ 11 desteği gelmiş
  • Intel Media SDK ile video okuma yazma işlemlerinde donanım hızlanması sağlanmış 
  • Pek çok özellik eklemsi ve hata ayıklaması yapılmış.
Yeri gelmişken bahsedelim OpenCv ilk olarak Intelin Rusyadaki ArGe labaratuvarlarında ortaya çıktı. Ama Intel doğru bir strateji kuramadı. Pek çok hata yaptı
      OpenCv yi,  sattığı IPP kütüphanesine bir payanda gibi sığ bir düşüncesi vardı. Millet opencv öğrenecek  daha hızlı çalıştırabilmek için IPP satın alacaktı hesapta olmadı.
      Sonra bütün bütün elini ayağını çekdi. Buda ayrı bir hataydı. OpenCv gelişmeye devam etti.
 Intel yaptığı hatadan şimdi opencv nin ana geliştiricisi konumunda olan itseez 'i satın alarak dönmeye çalışıyor. İnşallah yine hatalı stratejilere yönelip opencv nin gelişimini engelleyecek adımlar atmaz...

Sorumuza gelirsek. 
"Pythonun pek çok kütüphane desteği var görüntü işleme için opencv kulllanmasak olmazmı ?"
 Benim şahsi görüşüme göre OLMAZ. OpenCv C++ tabanlı olmasıyla, hız olarak kullanmayı düşündüğünüz diğer kütüphanelerin pek çoğunun önüne geçer. İlaveten  OpenCv görüntü işleme ve bilgisayarlı görü alanındaki büyük çoğunluk  tarafından standart kabul edilen bir kütüphanedir. Bu size kaynak bolluğu olarak hemen gelir. OpenCv  kullanarak geliştireceğiniz bir uygulamayı pek çok değişik dile de taşıyabilirsiniz.

Gelelim ana konumuza.

Pythonda OpenCv  kütüphanesini nasıl kuracaksınız?

İlk seçenek OpenCv yi derlemek. Nispeten zor bir yol. Internette derlemenin uzun uzun anlatıldığı pek çok örnek görebilirsiniz, kitabımızda da var. Python için dikkat etmeniz gereken şey  python un kullandığınız versiyon için olan seçeneklerin dolu olması.  



mesela resimde benim derleme için kullandığım cmake dosyasından

derleme sonrasında cv2.pyd  bir dosya oluşturuluyor. Bu dosyayı pythonu kurduğunuz dizin altında
lib/site-packages 
dizinine atın. Eğer derlemeyi statik  yapmaıysanız,  opencv'in dinamik kütüphanelerininde ulaşılabilir yerde - baknız path tanımı - olması lazım.

İkinci ve daha kolay, derlenmiş hazır dağıtımı kullanmak.

Öncelikle sisteminizde Python 2.7.x 64 kurulu olmalı hatta tavsiyemiz. Anaconda dağıtımını kullanmanız.

Python hazırsa artık opencv ye geçelim.
opencv.org/releases.html
adresinden window için derlenmiş dağıtımı indirin


idirdiğiniz dosyayı çalıştırın dosya aslında sadece sıkıştırılmış dosyayı açıyor. Kendinizce uygun gördüğünüz bir dizine açın.

açtığınız dizinde  'opencv\build\python\2.7\x64' kısmında cv2.pyd dosyasını bulun.
lib/site-packages 
dizinine atın. Bu dağıtım statik olarak derlendiğinden sadece
opencv\build\bin
dizininde bulunan  "opencv_ffmpeg330_64.dll"  kütüphanesine bağlıdır.  Bunuda windows -path tanımlı - bir yere taşımanız gerekiyor. mesela pythonu kurduğunuz dizin.

Evet artık opencv python içinden kullanıma hazır.


deneme yapalım
komut satırından pythonu çalıştırın
import cv2
cv2.__version__
yazın  kurulumunzda bir hata yoksa size yüklü olan opencv nin versiyonunu gösteririr.

 Artık python içinden opencv 'yi kullanmaya başlaya bilirsiniz.  Geçen yazımızda bildirmiştik, kitabımızdaki opencv örneklerinin python versiyonlarını yazıyoruz. Yeni dersler eklendi. Yukardaki adımları yaptıysanız. Python örneklerini githubdan klonlayıp inceleyebilirsiniz



 Yazımızın sonuna geldik. her türlü görüş ve önerilerinizi bekleriz.

3 yorum:

Adsız dedi ki...

Merhaba;
Opencv3.3 visual studio 2015 için mi destekliyor sadece? VS2013 için denedim ama hata alıyorum bir bilginiz var mı bu konuda?

Ali Osman Kepir dedi ki...

Python 2.7.x demişsiniz ama 3.x neden olmuyor?

birol kuyumcu dedi ki...

python 2.7 ile 3.x arasında bir uyum yok
3.x için dağıtılan derlenmiş pakette bu yazı yazıldığında python3 için paket yoktu