1. 程式人生 > >Ubuntn16.04安裝opencv3.1(特別註意環境變量)

Ubuntn16.04安裝opencv3.1(特別註意環境變量)

down con 修改環境變量 config sta name ubunt 可執行文件 ash

參考:http://lib.csdn.net/article/opencv/25737; http://blog.csdn.net/yiranyhy/article/details/72935499; http://tscsh.blog.163.com/blog/static/200320103201382711380403/

1、安裝依賴的庫

sudo apt-get install build-essential
    # 必須的,gcc編譯環境
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
    # 必須的,包括cmake等工具

sudo apt
-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev # 可選的,看個人需要,總共5M左右

2、下載源碼

opencv3.1的下載地址:https://github.com/opencv/opencv/archive/3.1.0.zip

3、使用cmake安裝

  • 解壓源碼包,得到opencv-3.1.0.zip
  • 然後建立編譯目標文件夾
unzip opencv-3.1.0.zip
cd opencv-3.1.0 mkdir build

使用cmake生成Makefile :

cd opencv-3.1.0/build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
    # 生成後的Makefile在build文件夾中,而需要的CMakeLists.txt在 ".."中,即上一級文件夾中(opencv-3.1.0

在Configure過程中,若出現
– ICV: Downloadingippicv_linux_20151201.tgz…

則下載 ippicv_linux_20151201.tgz, 下載地址:http://download.csdn.net/detail/yehuohan/9511463

替換掉 opencv-3.1.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b 下的同名文件即可,註意替換後,重新編譯

4、安裝OpenCv

在opencv3.1.0/build下,終端運行:

make -j4
    # 或者make-j8 表示4核8核的4個或8個線程編譯
sudo make install
    # 安裝

5、修改環境變量(非常重要)

安裝完後,修改環境變量:

sudo gedit /etc/ld.so.conf.d/opencv.conf

寫入/usr/local/lib,保存

sudo ldconfig

sudo gedit /etc/bash.bashrc

在文末增加:

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

保存

PS:按照上面的方法進行設置環境變量當然是沒有問題的,但是如果在服務器上的時候,每個人自己的路徑不一樣,可以用下面動態添加的辦法:

通過shell命令export實現:

echo $PATH 用於查看當前PATH的值

export PATH=$PATH:#####

用於設置PATH的值

如要將/home/houjx加入到PATH中可以用

export PATH=$PATH:/home/houjx

可看到如下結果:

[email protected]:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
[email protected]:~$ export PATH=$PATH:/home/houjx
[email protected]:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/houjx
[email protected]:~$
註:但應該註意這樣設置(方法二)的PATH變量只是對於現在的Terminal有效,關閉當前的

Terminal在開啟一個,其對應的PATH是不變的,還

是/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

6、opencv程序測試實例

  • 建立文件夾test
  • 編寫test.cpp
#include <opencv2/opencv.hpp>       // 註意:使用"/",和windows不同
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main()
{
    Mat img = imread("pic.jpg");
    if(img.empty())
    {
        cout<<"error";
        return -1;
    }
    imshow("mypic",img);
    waitKey();
    return 0;
}

使用Makefile生成opencv工程

  • main.cpp使用之前的即,建立如下Makefile文件
#Makefile

#使用g++編譯,且以C++11標準
CXX = g++ -Wall -std=c++11

#opencv需要的參數
CFLAGS =`pkg-config opencv --cflags` `pkg-config opencv --libs`
#只使用上面這一名,會提示"libippicv.a"這個庫找不到,所以自己添加上
UFLAGS = -L /usr/local/share/OpenCV/3rdparty/lib/ -l ippicv

#可執行文件名稱
TARGET = test

#源文件
SOURCE = test.cpp

TARGET:
    $(CXX) -o $(TARGET) $(SOURCE) $(CFLAGS) $(UFLAGS)
  • 然後make,即可編譯,接著就可以運行了
cd opencv-3.1.0/build    #進入build文件

make  #進行編譯

./test  #生成test可執行文件,運行

Ubuntn16.04安裝opencv3.1(特別註意環境變量)