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