【Ubuntu-Opencv】Ubuntu14.04 Opencv3.3.0 安裝配置及測試

Ubuntu14.04 Opencv3.3.0 安裝配置及測試

網上有許多的Opencv的安裝方法,不過找到一個適合自己的安裝路數才最爲重要,筆者整理了一下自己的安裝配置測試過程,僅供學習參考。

a. 安裝前的準備工作

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

b. 安裝opencv

首先下載opencv源碼,下載地址https://opencv.org/releases.html,注意選擇下載source源碼,我這裏下載的是opencv3.3.0版本
cd opencv-3.3.0
mkdir release
cd release
cmake .. 或者

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

(我是用的前面的cmake)

【PS update 2018.4.30】
如果是opencv_contrib也要使用,那麼需要先下載好文件,cmake的執行命令也就變成

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules/ ..  

【PS update 2018.7.24】
如果安裝了anaconda3,希望通過編譯完成自動生成cv2,那麼可以使用以下命令:

cmake -D WITH_IPP=OFF -D PYTHON_DEFAULT_EXECUTABLE=~/anaconda3/bin/python3 -D BUILD_opencv_python3=ON -D BUILD_opencv_python2=OFF -D PYTHON3_EXCUTABLE=~/anaconda3/bin/python3 -D PYTHON3_INCLUDE_DIR=~/anaconda3/include/python3.6m -D PYTHON3_LIBRARY=~/anaconda3/lib/libpython3.6m.so.1.0 -D PYTHON_NUMPY_PATH=~/anaconda3/lib/python3.6/site-packages ..

貌似上面這個沒起作用,我安裝完成後,使用了以下命令,完成python3 opencv3.4.2 生成cv2
sudo pip3 install opencv_python

【PS update 2018.7.26】
如果你電腦支持GPU,並且安裝好了cuda9.0,然後開始編譯opencv3.4.*,你或許會遇到“compute_60”, “compute_61”的問題提示
這裏寫圖片描述
這個問題主要是因爲你的計算機的計算能力沒有達到opencv默認的60和61的要求而導致的,可以通過設置參數-D CUDA_GENERATION=Kepler來解決,相關命令如下:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules/ -D CUDA_GENERATION=Kepler ..  

這裏寫圖片描述
make 或者 make -j8 (-j8是指你電腦可用的內核數,有的是j4,不指定也沒關係,我用的前面的make)
這裏寫圖片描述
sudo make install (注意一定要加sudo,否則會報出permission問題)
這裏寫圖片描述
(安裝結束後,可以用該條命令查看opencv版本,注意這裏–modversion是雙橫線)

pkg-config –modversion opencv

這裏寫圖片描述

【PS】opencv還有一種cmake-gui安裝方式,就是有界面選項,不用直接命令行安裝的方式,不過要安裝qt-cmake-gui工具,具體的可以參考在ubuntu下使用cmake進行opencv的配置和Windows下進行使用cmake編譯源代碼比較,opencv3進行g++例子程序編譯、動態庫的製作ubuntu下cmake3.4的安裝(有GUI界面)以及Ubuntu + CUDA9 + CUDNN7 + OpenCV3.4 + contrib +CAFFE-master

【PS update 2018.5.3】
在安裝opencv + opencv_contrib過程中你或許會遇到下面這個問題:
這裏寫圖片描述
解決辦法可參考
[1] ubuntu16.04編譯opencv3.4.1和contrib遇到的錯誤及解決方法 (已實測)不過雖然解決了上述問題,在make的時候還是會出現其他問題,最後沒有辦法,筆者重新在github上下載了最新的opencv和opencv_contrib重新cmake後解決該問題,至於是什麼原因造成的,我到現在也是一頭霧水。
終於找到原因了:錯在opencv和opencv_contrib不是同一個版本

c. 至此,opencv已經安裝完成了,不過不要認爲這樣就萬事大吉了,別忘了配置環境變量

sudo gedit /etc/ld.so.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
)
這裏寫圖片描述
source /etc/bash.bashrc 使得配置生效

走到這裏纔算得上是真正安裝opencv結束

d. 來個短代碼demo測試一下

cd opencv-3.3.0
mkdir demo
cd demo
sudo gedit DisplayImage.cpp

#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
    if ( argc != 2 )
    {
        printf("usage: DisplayImage.out <Image_Path>\n");
        return -1;
    }
    Mat image;
    image = imread( argv[1], 1 );
    if ( !image.data )
    {
        printf("No image data \n");
        return -1;
    }
    namedWindow("Display Image", WINDOW_AUTOSIZE );
    imshow("Display Image", image);
    waitKey(0);
    return 0;
}

sudo gedit CMakeLists.txt (注意:這裏的CMakeLists一定要書寫正確,否則無法使用cmake政策編譯)
要填寫的內容如下:
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
這裏寫圖片描述

然後就可以編譯測試程序了
cmake .
make
./DisplayImage yourImagefilePath
這裏寫圖片描述
這裏寫圖片描述

【PS update 2018.7.25】
在Opencv 3.4.*版本上進行測試,按照上述cmake .. 得到的opencv,在運行一個example的時候會爆出如下錯誤
error: #error “OpenCV 4.x+ requires enabled C++11 support”
這裏寫圖片描述
解決辦法: 在每次cmake .. example的時候,加上-D CMAKE_CXX_FLAGS=”-std=c++11” 進行編譯,就不會報錯啦。


參考鏈接:
【1】: http://www.cnblogs.com/txg198955/p/5990295.html
【2】: http://blog.csdn.net/Function_K/article/details/77899546
【3】: https://www.cnblogs.com/emouse/archive/2013/02/22/2922940.html
【4】: http://blog.csdn.net/Function_K/article/details/77899546

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