[OPENCV] Ubuntu 14.04 安裝 + Eclipse 整合

這篇文章要介紹給大家如何在 ubuntu 14.04當中安裝上 OpenCV 3.3
另外還要加上Eclipse的整合

Install OpenCV_3.3 on Ubuntu_14.04


首先下載 OpenCV 3.3的source code


在當中點選 source code 下載

接著將下載回來的source code解壓縮

準備編譯環境

更多詳細的內容可以參照

為了能夠編譯過下載回來的 source code, 需要安裝以下 package (最低限度)

[compiler[ build-essential
[make] cmake
[config] pkg-config
[gui] libgtk2.0-dev
[codec] libavcodec-dev libavformat-dev libswscale-dev

所以一次性的安裝就是
sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

編譯

安裝好所需要的library and tools之後, 我們來到source code目錄下, 先準備好一個build的目錄
之後要放我們所編譯出來的object and file

mkdir build
cd build

接著使用 cmake 來產生出相對應的 make file

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

然後開始編譯 (使用 4個 thread build)

make -j4

成功就會像這樣

安裝

sudo make install

因為在編譯的時候選擇
CMAKE_INSTALL_PREFIX=/usr/local
所以安裝的檔案都會在以下幾個資料夾下
/usr/local/include
/usr/local/lib
/usr/local/share

安裝成功如圖


Integrate into Eclipse


準備

首先下載最新版本的Eclipse
http://www.eclipse.org/downloads/eclipse-packages/

記得選擇 C/C++版本的喵

一開始先使用 File -> New -> C++ project 開啟一個 hello world的專案
Project name就請打上 HelloWorld吧~

導入OpenCV

一開始先打開 terminal, 確定一下OpenCV相關的套件是否也成功安裝了

pkg-config --cflags opencv
-I/usr/local/include/opencv -I/usr/local/include

pkg-config --libs opencv
-L/usr/local/lib -lopencv_dnn -lopencv_ml -lopencv_objdetect -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core

接著在 eclipse的設定當中, 加入這些選項
  • Compiler

  • Linker


因為參數的變動, Linker的參數排列方式也需要改變一下, 先選到 Linker

簡單的把 FLAGS 移到最後面就可以了 

${COMMAND} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} ${FLAGS} 

移完會變成這樣



測試OpenCV

現在我們替換掉本來的 HelloWorld 成OpenCV版的 HelloWorld吧


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char **argv) {
    Mat img(480, 640, CV_8U);
    putText(img, "Hello World!", Point(200, 250), 0, 1.0,
            Scalar(255, 255, 0));
    imshow("Window", img);
    waitKey();
    return 0;
}

然後再使用Eclipse的編輯以及Run跑跑看
你是否也看到了這樣的畫面了? 喵~


如果, 你沒辦法跑出這畫面, 反倒是出現了這種error

error while loading shared libraries: libopencv_highgui.so.3.3: cannot open shared object file: No such file or directory

這問題是因為opencv的library沒有被load進來
只要加上這幾行, 把之前編譯過的libary加入到 ld 裡面就可以了
打開 terminal, 接著輸入


sudo sh -c "echo '/usr/local/lib' > /etc/ld.so.conf"
sudo ldconfig

再試試~ 看到hello world了嗎~
喵~

沒有留言:

張貼留言

OpenGL 閱讀筆記 (二) OpenGL基本操作

這邊虎喵跳過glfw/glew的初始化, 先來提一下OpenGL的基本操作方式 前面也提到過, OpenGL是一個類C的語言, 因此使用C/C++的攻城獅們應該會感到很熟悉. OpenGL的基本動作循環如下: 每一行code的解釋如下: // 本地變數,...