Category Archives: OpenCV

Developing Realsense Application on UP Squared Board

Install Ubuntu 16.04:

Flash the image on a USB stick and install on Up2 Board.

Update the system:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

At this point I received some errors like:

W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915

I installed the missing firmware files which I downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915.

sudo cp kbl_guc_ver9_14.bin /lib/firmware/i915 
sudo cp bxt_guc_ver8_7.bin /lib/firmware/i915

 

sudo update-grub && sudo reboot

# verify that you have a supported kernel version (4.4.0-.., 4.8.0-.., 4.10.0-.. , 4.13.0-..or 4.15.0-.. as of May 2018)
uname -r

 

Install CMake

Download the source code from https://cmake.org/download/.

./bootstrap
make
make install

 

Install OpenCV

# To build
sudo apt-get install build-essential 
sudo apt-get install git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

# To process images:
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

# To process videos:
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev

# For GUI:
sudo apt-get install libgtk-3-dev

# For optimization
sudo apt-get install libatlas-base-dev gfortran pylint

# To build for Python2 and Python3
sudo apt-get install python2.7-dev python3.5-dev
wget https://github.com/opencv/opencv/archive/3.4.0.zip -O opencv-3.4.0.zip

wget https://github.com/opencv/opencv_contrib/archive/3.4.0.zip -O opencv_contrib-3.4.0.zip

sudo apt-get install unzip
unzip opencv-3.4.0.zip
unzip opencv_contrib-3.4.0.zip

cd  opencv-3.4.0
mkdir build
cd build

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.0/modules -DOPENCV_ENABLE_NONFREE=True ..


# Build
# Up2 Board has 2 cores
make -j2

# Install in the location /usr/local using command
sudo make install

# Reinitialize static libs using the following command
sudo ldconfig

Build librealsense

sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev

git clone https://github.com/IntelRealSense/librealsense

cd librealsense
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/ 
sudo udevadm control --reload-rules && udevadm trigger 

# patch the kernel
./scripts/patch-realsense-ubuntu-lts.sh

# Build
mkdir build && cd build
cmake ../ -DBUILD_EXAMPLES=true -DBUILD_CV_EXAMPLES=true

sudo make uninstall
make clean
make -j2
sudo make install

Install QtCreator:

wget http://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-linux-x64-5.7.0.run

chmod +x qt-opensource-linux-x64-5.7.0.run
./qt-opensource-linux-x64-5.7.0.run

sudo apt-get install libfontconfig1

Launch Qt Creator

 

Resources:

 

TODO:

  • Check why OpenCV was not built for Python3.
  • Configure QtCreator

CMake ile basit bir OpenCV örneği derlemek

Öncelikle OpenCV’yi yüklemeniz gerekiyor. Eğer Mac kullanıyorsanız Homebrew kullanarak nasıl yükleyeceğinizi görmek için şu yazıma göz atabilirsiniz: http://mustafa.aldemir.net/mac-os-x-el-capitan-uzerinde-opencv3-yuklemek/

 

CMakeLists:

cmake_minimum_required(VERSION 2.8)
project(Project1)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_PREFIX_PATH "/usr/local/opt/opencv3/share/OpenCV")

set(SOURCE_FILES main.cpp)

find_package(OpenCV REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS})

add_executable(cv_project1 main.cpp)

target_link_libraries(cv_project1 ${OpenCV_LIBS})

 

 

main.cpp:

#include <opencv2/core/utility.hpp>
#include <iostream>

using namespace std;


const char* keys =
        {
                        "{ b build | | print complete build info }"
                        "{ h help  | | print this help           }"
        };

int main(int argc, const char* argv[])
{
    cv::CommandLineParser parser(argc, argv, keys);

    if (parser.has("help"))
    {
        parser.printMessage();
    }
    else if (!parser.check())
    {
        parser.printErrors();
    }
    else if (parser.has("build"))
    {
        std::cout << cv::getBuildInformation() << std::endl;
    }
    else
    {
        std::cout << "Welcome to OpenCV " << CV_VERSION << std::endl;
    }

    return 0;
}

Mac OS X El Capitan üzerinde OpenCV3 Yüklemek

Linux’tan Mac’e geçenler aptitude’un eksikliğini hep hissetmişlerdir. Homebrew ve Macports Apple’ın bu açığını kapatmak üzere geliştirilen projeler. Ben birkaç denemeden sonra Homebrew’i tercih ettim. Kullanımı oldukça kolay ve açık kodlu olduğu için ne yaptığını anlamak da oldukça kolay.

https://github.com/Homebrew adresinde Homebrew’in kendi kodunu ve pek çok tarif bulmak mümkün. Örneğin homebrew-science reposunda bilimsel işler için kullanılan programları yüklemek için hazırlanmış tarifler var, OpenCV de burada.

opencv3.rb tarifine göz atarsak önce Github’dan opencv ve opencv_contrib projelerini indirileceği linkleri belirttiğini sonra da vereceğiniz argümanlara göre hangi özelliklerin derlemeye dahil edileceğini ayarladığını görebiliriz.

Bu kadar temel bilgiden sonra, şimdi Mac üzerinde OpenCV3 yüklemek için yapmamız gerekenlere gelelim.

Öncelikle Homebrew’in kendisi yüklenmeli:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 

Düzgün yüklenip yüklenmediğini kontrol edelim:

brew update

 

Sonra da OpenCV yükleyelim:

brew install opencv3

 

Sisteminizde bulunmayan bazı başka bileşenlerin de yüklenmesi gerekebilir. Bu yüzden bu komutun biraz zaman almasına şaşırmayın.

Eğer OpenCV’yi Ffmpeg desteğiyle derlemek isterseniz yükleme komutunu şöyle değiştirmeniz gerekecek:

brew install opencv --with-ffmpeg

Contrib paketini de yüklemek isterseniz şu komutu kullanmanız gerekecek:

brew install opencv --with-ffmpeg --with-contrib

Homebrew bazı programları, bir güvenlik önlemi olarak, keg-only yüklüyor, yani derlediği programları /usr/local/Cellar klasörüne koyuyor, ve /usr/local/bin, /usr/local/lib klasörlerine linklemiyor. OpenCV de bu şekilde yükleniyor. Bu yüzden geliştirdiğiniz kodu derleyebilmeniz için şu iki satıra ihtiyacınız olabilir:

LDFLAGS: -L/usr/local/opt/opencv3/lib
CPPFLAGS: -I/usr/local/opt/opencv3/include

 

Ubuntu Linux’ta OpenCV

Kurulum

Önce Ubuntu’muzun güncel olduğundan emin olalım:

sudo apt-get update
sudo apt-get upgrade

Gerekli paketleri kuralım:

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev

OpenCV’nin resmi sitesinden veya Github’dan kaynak kodlarını indirelim.

OpenCV’yi derlemek ve yüklemek için:

mkdir build
cd build
cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
make

sudo make install

OpenCV için birkaç ayar yapmak gerekiyor. /etc/ld.so.conf.d/opencv.conf adında bir dosya oluşturup içine şu satırı yazalım:

/usr/local/lib

Ve şu komutu çalıştıralım:

sudo ldconfig

/etc/bash.bashrc dosyasının sonuna da şunları ekleyelim:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

Tamamdır, şimdi bilgisayarı kapatıp açabiliriz.

Örnek Uygulama

Şimdi de basit bir örnek deneyelim…

 

 

 

kaynaklar:

  • http://miloq.blogspot.com/2012/12/install-opencv-ubuntu-linux.html
  • http://stackoverflow.com/questions/15320267/package-opencv-was-not-found-in-the-pkg-config-search-path
  • http://www.youtube.com/watch?v=_eo-kjC05Io
  • http://mechomaniac.com/OpenCVBallTracking
  • http://docs.opencv.org/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.html