Ubuntn16.04安裝opencv3.1(特別註意環境變量)
參考: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(特別註意環境變量)