Ubuntu'da OpenCv-Python Nasıl Kurulur?




Bu yazının içeriğinde Ubuntu 16.04: OpenCv 3'ün kurulumu ve Python ortamının ayarlanması anlatılacaktır. Eğer Python kurulumuna ihtiyacınız yok ama sadece OpenCV kurmak istiyorsanız yine işinize yarayacaktır.
#Adım 1# Ön Gereklilikler:
Kuruluma başlamadan önce ufak bir hatırlatma. Ubuntu'ya python kurulu olarak geliyor. Yine de terminal üzerinde python komutu ile python2 versiyonunu python3 komutu ile de python3 versiyonunuzu öğrenebilirsiniz.Gerekli kontrollerden sonra şimdi sıra geldi paketlerin ve kütüphanelerin güncellenmesine. Aşağıdaki kodlar yardımı ile güncelleştimeleri yapıyoruz:
$ sudo apt-get update
$ sudo apt-get upgrade
Güncelleştirmeler bittikten sonra terminal üzerinde reboot komutu ile bilgisayarımızı yeniden başlatıyoruz ki güncellemeler uygulanabilsin. Şimdi sıra geliştirici kütüphanelerinin yüklenmesinde:
$sudo apt-get install build-essential cmake pkg-config
Daha sonra OpenCV için gerekli olan JPEG,PNG,TIFF gibi görüntü formatlarının yüklenmesi ve işlenmesi için gerekli kütüphaneleri yüklüyoruz:
$sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
Şimdi sırada video işlemek için gerekli olan kütüphanelerin kurulmasında:
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev
OpenCV GUI için gerekli olan highgui modulünün kurulması için:
$ sudo apt-get install libgtk-3-dev
OpenCV matris işlemleri için değişken fonksiyonlarının optimizasyonunu yapan kütüphaneleri kuruyoruz:
$ sudo apt-get install libatlas-base-dev gfortran
Python 2.7 ve Python 3.5 için geliştirici başlık ve kütüphanelerini kuruyoruz:(cmake komutunun ileriki işlem basamaklarında Python ile birleştirilebilmesi için zorunludur.)
$ sudo apt-get install python2.7-dev python3.5-dev
#Adım 2# OpenCV'nin indirilmesi:
Bu kurulum sırasında en güncel openCV sürümü 3.2 idi. Siz OpenCV'nin sitesinden veya github adresinden son sürüm numarasını öğrenip sadece rakamlarını değiştirerek en güncel sürüme sahip olabilirsiniz.
$ cd ~
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.2.0.zip
$ unzip opencv.zip
$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.2.0.zip
$ unzip opencv_contrib.zip
#Adım 3# Python Ortamının Kurulması:
$ cd ~
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
Şimdi Python ortamında her proje için ayrı, bağımsız çevre oluşturan diye kısaca tanımlayabileceğim virtualenv ve virtualenvwrapper'ı kuruyoruz:
$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf ~/get-pip.py ~/.cache/pip
Bu kurulumdan sonra ~/.bashrc dosyasını yeniden güncellememiz lazım. Bir çok yolu var bu işlemin  ama en kısa yolu cat komutlarının kullanılması:
$ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
$ echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
$ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
Düzenledikten sonra işlemlerin geçerli olması için yeniden yükleme yapılması gerekiyor:
$ source ~/.bashrc
Komutu ile bu işlemide yapmış bulunmaktayız. Sıradaki işleme geçmeden önce hangi Python versiyonunu kullanacağımıza karar vermemiz gerekiyor; Python 2.7 mi yoksa Python 3 mü? Karar verdikten sonra şimdi sıra Python ortamının kurulmasında: Python 2.7 kullanmaya karar verdiyseniz:
$ mkvirtualenv cv -p python2
Eğer Python 3 kullanmak istiyorsanız:
$ mkvirtualenv cv -p python3
Bu işlemden sonra eğer herşey istenildiği gibi yolunda gitmişse terminalin başlangıç kısmında (cv) ifadesinin görünmesi lazım kullanıcı isminin önünde. Eğer bir şekilde görünmüyorsa veya reboot işlemi yaptıysanız:
$ workon cv
komutu ile yeniden (cv) ile işlem yapıyor olmalısınız.Bundan sonraki işlemlerin doğruluğu için (cv) içinde olduğunuza emin olmalısınız.
#Adım 4# Numpy'ı Python içine kurmak:
Yine birçok yolu olduğu gibi en kolay yolu:
$ pip install numpy
Tekrar ediyorum (cv) ifadesinin terminalde görüldüğünden emin olmalısınız.Bu noktadan sonra OpenCV için ihtiyaç duyduğumuz ön şartları yerine getirmiş olduk. OpenCV'yi yüklemek ve çalıştırmak için hazırız.
$ cd ~/opencv-3.2.0/
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D INSTALL_C_EXAMPLES=OFF \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/modules \
    -D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
    -D BUILD_EXAMPLES=ON ..
Cmake komutu ile OpenCV'yi istediğimiz işlemleri yapması için ayarlıyoruz. Bu kurulumda OpenCV 3.2 için işlem yapıldı siz kendi versiyonunuz için işlem yapabilirsiniz. Bu işlemlerinde hatasız yapıldığını kabul ediyorum ve şimdi sıra derleme(compile) işleminde:
$ make -j4
Bu komut yardımı ile derleme işlemini başlatıyoruz. İşlemci gücüne göre biraz zaman alabilir. "-j" kaç tane işlemcinin kullanılacağını seçmemize imkan tanır eğer bilgisayarınız "-j4" ile hata verdiyse kendi işlemci gücünüze göre şekillendirip kodu yeniden çalıştırabilirsiniz.
#Adım 5# OpenCV3'ü kurma işlemi:
$ sudo make install
$ sudo ldconfig
OpenCV Kurulumu İçin Son Adımlar:
Python 2.7 için:
$ ls -l /usr/local/lib/python2.7/site-packages/
total 1972
-rw-r--r-- 1 root staff 2016608 Sep 15 09:11 cv2.so
Yukarıdaki kontrol işleminden sonra. Son adım olarak sym-link cv2.so yapıyoruz
$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
Python 3 için:
$ ls -l /usr/local/lib/python3.5/site-packages/
total 1972
-rw-r--r-- 1 root staff 2016816 Sep 13 17:24 cv2.cpython-35m-x86_64-linux-gnu.so
Kurulum sırasında cv2.so bulunamıyor hatasını engellemek için:
$ cd /usr/local/lib/python3.5/site-packages/
$ sudo mv cv2.cpython-35m-x86_64-linux-gnu.so cv2.so
Yine yukarıdaki kontrol işleminden sonra. Son adım olarak sym-link cv2.so yapıyoruz.
$ cd ~/.virtualenvs/cv/lib/python3.5/site-packages/
$ ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so
OpenCV kurulumu bu kadar. Ancak son bir kontrol işlemimiz kaldı. Şimdiye kadar yaptığımız işlemler hatasız olmuşsa:
$ cd ~
$ workon cv
$ python
Python 3.5.2 (default, Jul  5 2016, 12:43:10) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.1.0'
>>>
Şeklinde bir çıktı alıyor olmamız lazım. 

12 yorum:

  1. Tüm adımları yukarıda yazdığınız gibi uyguluyorum fakat
    /usr/local/lib/python2.7/site-packages/
    bu konumda hiç dosya bulunmuyor. bunun sebebi ne olabilir? bu sorunu nasıl çöze bilirim?

    Daha önce ubuntuya opencv kurmuştum fakat şuan kuramıyorum. yardımcı olursanız sevinirim.
    iyi günler.

    YanıtlaSil
    Yanıtlar
    1. Merhabalar, Kurulumu bağlamak için cv2.so bazı durumlarda; /usr/local/lib/python2.7/dist-packages içine kurulabiliyor. Orayı kontrol edebilirsiniz. Kolay gelsin

      Sil
    2. Bu yorum yazar tarafından silindi.

      Sil
    3. Kurulumun "5.Adımı" tam olarak ihtiyacınız olan kısım. Eğer kurulumu yukarıdaki anlatıma göre gerçekleştirirseniz, her seferinde aynı kodları eklemek zorunda kalmazsınız. İyi çalışmalar.

      Sil
  2. Bu yorum yazar tarafından silindi.

    YanıtlaSil
  3. Hata mesajın "imshow" fonksiyonunun input almadığını söylüyor. Kameranın doğru çalışıp çalışmadığını kontrol edebilirsin. Eğer kamerada bir sorun yok ise kamera parametresini kontrol etmelisin (0) değeri atamışsınız ama harici bir usb camera kullanıyorsanız (1) veya başka bir değer olabilir. Kolay gelsin

    YanıtlaSil
  4. pip install komutu ile yapılan kurulum default olan ayarlar ile kurulum yapar. Temelde bir farklılık olmamasına karşın ihtiyacımıza göre şekillendirmiş oluyoruz yukarıdaki anlatım yardımı ile.

    YanıtlaSil
  5. ubuntu 14.04.5LTS kullanıyorum.
    opencv3.0.0 kurmaya çalışıyorum. (daha doğrusu diğer denediğim sürümlerde de aynı hatayı alıyorum.)

    cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_C_EXAMPLES=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D BUILD_EXAMPLES=ON ..

    cmake -D komutlarından sonra aldığım çıktı;
    https://i.hizliresim.com/yzNoWn.png

    kuruluma devam ettiğimde usr/local/lib/python2.7/site-packages ve /usr/local/lib/python2.7/dist-packages adreslerinde cv2.so dosyasını bulamıyorum, diğer dosyalarda da cv2.so dosyasını arattığımda dosya bulunamıyor.

    yardımcı olursanız sevinirim

    YanıtlaSil
    Yanıtlar
    1. Merhaba,
      Gönderdiğin ekran resminde bir hata görünmüyor. Sadece "libraries ve Numpy" ı kurmadığınız veya eksik/yanlış kurduğunuz anlaşılıyor. cv2.so dosyası çözümü için "Kurulum sırasında cv2.so bulunamıyor hatasını engellemek" şeklinde bir güncelleme yaptım yukarıdaki yazıya. Çözüm olur diye tahmin ediyorum. iyi çalışmalar

      Sil
  6. Hocam merhaba,
    Şuan 3.5 altında 3.6 yapmak içinsudo apt-get install python2.7-dev python3.6-dev yapmam yeterli olur mu acaba ? Teşekkürler. İyi çalışmalar.

    YanıtlaSil
    Yanıtlar
    1. Merhabalar Mazhar,
      Evet yeterli olur. Kolay gelsin.

      Sil