ubuntu下用eclipse編譯opencv程序(超級詳細)

我是菜鳥,寫的文檔是傻瓜式操作,敬請指正。


系統:VMwareWorkstation裏的虛擬機ubuntu16.04,64位系統。

 

1、安裝openCV

1.1、下載openCV

      https://github.com/opencv/opencv/archive/2.4.11.zip

    這是官網的下載鏈接,你們可以自己去官網下載最新版的(以爲我的鏈接可能失效。另外,下文的鏈接你們也可以去官網下載最新版)。下載後解壓到任意一個文件夾(右擊,提取到此處)。

1.2 、安裝cmake

    下載鏈接:

    https://cmake.org/files/v3.8/cmake-3.8.0.tar.gz

    下載後解壓,安裝先看README文件進行安裝。我的版本是直接在終端裏運行:     ./bootstrap && make && make install

2、安裝openCV (轉載,原文

   


    進入解壓後的OpenCV文件夾,並運行

    cmake .

    注意後面有一個點

在Linux下安裝openCV 並將其整合到Eclipse當中

    ②.運行make

    ③.運行sudo make install

    ④配置環境變量

    運行

    sudo gedit /etc/ld.so.conf.d/opencv.conf(注:該文件爲linux中的動態鏈接庫的配置文件)

    在文件中添加

    /usr/local/lib

    並保存

在Linux下安裝openCV 並將其整合到Eclipse當中

運行下面的命令來配置library:

sudo ldconfig(注:用上面的動態鏈接庫配置文件來配置動態鏈接庫)打開另一個文件

sudo gedit ~/.bashrc

在最後面添上:

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

export PKG_CONFIG_PATH

在Linux下安裝openCV 並將其整合到Eclipse當中


在終端運行

sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config

然後重啓。


3、安裝eclipse (部分轉載,原文

3.1、安裝java JDK

    下載地址:

    解壓安裝後,

1.下載jdk , 地址

    http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz

2.下載 eclipse for c++,地址

   http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/luna/SR2/eclipse-cpp-luna-SR2-linux-gtk-x86_64.tar.gz

3.將jdk解壓到 /opt/jvm/文件夾中

操作步驟:

sudo mkdir /opt/jvm

sudo tar zxvf jdk-8u77-linux-x64.tar.gz -C /opt/jvm

4.配置jdk的環境變量,打開 /etc/profile文件(sudo vim /etc/profile),在文件末尾添加下語句:

export JAVA_HOME=/opt/jvm/jdk1.8.0_77

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

保存後退出。

使其立即生效:sudo source /etc/profile

查看是否安裝成功:java -version  出現

說明jdk安裝成功。


5.安裝 eclipse  將其解壓(建議不要解壓到root的文件夾,因爲容易使下面的快捷方式沒有圖標,~爲你的路徑,如果不修改,就是用戶home路徑)

sudo tar zxvf eclipse-jee-mars-2-linux-gtk-x86_64.tar.gz -C ~


6.創建eclipse桌面快捷方式圖標。

cd 桌面

sudo touch eclipse.desktop

sudo vim eclipse.desktop

輸入以下內容:(~爲你的安裝路徑)

[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse
Exec=~eclipse/eclipse
Icon=~eclipse/icon.xpm
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;


保存。

執行:sudo chmod u+x eclipse.desktop 將其變爲可執行文件.

在~/eclipse/文件夾中創建一個指向JRE路徑的軟鏈接。

打開 Eclipse

到此eclipse就全部安裝完啦。


4、在eclipse裏配置openCV

   4.1、檢測攝像頭

   在終端中輸入cheese,打開cheese後看是否有攝像頭採集的圖像。如果有,則進入4.2,否則繼續看。

   在VMware Workstation裏選擇 虛擬機->可移動設備 ,在裏面吧攝像頭切換到虛擬機裏(有對號就是在虛擬機裏),虛擬機裏最好只能掛載一個攝像頭(我有兩個攝像頭,一個筆記本攝像頭,一個usb攝像頭)。

   輸入:cd /dev

              cat vi*

   確認只有一個video0,因爲我門只想要一個攝像頭。

   輸入cheese,發現可以採集圖像。我在用usb採集圖像時,碰見圖像直接卡住不懂,如下圖:

  我的建議是,如果在上面只看到一個video0,那麼這個問題就是電腦抽風了。我百度谷歌了好久都麼用,重啓電腦都沒有用。最後關機,睡了一覺,第二天自己好了。

    4.2、寫openCV程序(部分轉載,原文

配置方法如下:

1,新建一個c++項目:new->project->c++project->Hello World C++ Project(toolchains:linux C++),然後一路next

2,右鍵點擊新建的項目,在項目屬性的C++ Build->Settings,這裏要對編譯器參數進行設置。在GCC C++ Compiler->includeincludepaths中新增一個/usr/local/include/opencv,需要注意這裏的路徑在Linux上安裝opencvinclude的路徑,可以直接照搬(建議先自己去該路徑下看看有沒有東西)。

3,在GCC C++ Linker->Librarieslibraries中分別加入opencv_core, opencv_highgui, opencv_imgproc,opencv_ml(注意這個一次只能添加一個,默認的已經帶-l了。建議去改下面的路徑下看看,乾脆把所有模塊全添加了);並在下面的library search path一項中新增爲/usr/local/lib,與第2步的注意事項相同。

如此三步,就完成了eclipse下配置opencv的步驟!步驟23的效果如下


 測試用例:



//============================================================================
// Name        : opencvTest.cpp
// Author      :
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/video/background_segm.hpp>

using namespace std;
using namespace cv;

int main()
{
    cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
    VideoCapture capture(0);

    while(1)
    {
        Mat frame;
        capture>>frame;
        imshow("讀取視頻",frame);
        waitKey(30);

    }
    return 0;
}

測試結果:




  





   

 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章