ubuntu16.04 安裝opencv3.2.0以及opencv_contrib-3.2.0


1.需要的包:
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

近期需要在ubuntu18.04系統上安裝opencv但是在安裝依賴包的過程中,有一個依賴包,libjasper-dev在使用命令

    sudo apt-get install libjaster-dev

提示:errorE: unable to locate libjasper-dev

后來google到解決辦法,復制到這里

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

成功的解決了問題,其中libjasper1是libjasper-dev的依賴包

2.下載安裝包opencv-3.2.0.zip, opencv_contrib-3.2.0.zip

上opencv官網下載http://opencv.org/。

解壓安裝包到你想要的地方,本文以存放主文件加下。
例如 /home/imagealg/software/opencv/

下載 opencv_contrib的方法見下面網址

https://www.cnblogs.com/aiwuzhi/p/7334514.html

3. 利用終端進入opencv3文件夾,代碼如下:

cd ~/opencv-3.0.0

4. 新建build文件夾存放opencv的編譯文件,進入build文件夾代碼如下

mkdir build
cd build

5. 配置opencv文件,代碼如下:
不安裝opencv_contrib-3.2.0
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
安裝opencv_contrib-3.2.0
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/imagealg/software/opencv/opencv_contrib-3.2.0/modules/ ..
或者使用cmake-gui用圖形界面編譯。

其中/usr/local 是指將要install的路徑,一般默認為/usr/local
其中OPENCV_EXTRA_MODULES_PATH=/home/user/opencv_contrib-3.2.0/modules/ .. 是指opencv_contrib-3.2.0中modules所在的路徑,后面的兩點不可省略

cmake過程中可能遇到的問題:
如果網絡不好,出現ippicv_linux_20151201.tgz無法在終端下載的情況,則可以先單獨下載ippicv_linux_20151201.tgz之后,把其移動到終端所提示的路徑(終端會提示該路徑找不到文件),如路徑/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/
移動的時候,可以另外打開一個終端操作:
sudo mv ippicv_linux_20151201.tgz /opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e
如果同樣有其他類似的文件無法下載,方法同上。
for file: [/DATA/software/opencv/opencv-3.2.0/opencv_contrib-3.2.0/modules/dnn/.download/bd5e3eed635a8d32e2b99658633815ef/v3.1.0/protobuf-cpp-3.1.0.tar.gz]

錯誤:Unsupported gpu architecture 'compute_20'

如果是cuda9.0 cuda版本是9.0,估計就是版本問題,網上有人說把cuda降到8.0以下。這個方法真是扯淡~

其實只要在編譯的時候加一句話就好了

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler
 

關鍵就是在最后指定使用Kepler

--------------------- 本文來自 HandsomeHans 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/renhanchi/article/details/80493232?utm_source=copy 

 

6. 進行編譯,代碼如下:

sudo make -j4

7. 安裝opencv庫到系統,代碼如下:

sudo make install

這樣OpenCV就可以使用了。

8 配置opencv.conf file ,加入環境變量
sudo gedit /etc/ld.so.conf.d/opencv.conf

在opencv.conf里面加入命令
/usr/local/lib

更新庫目錄
sudo ldconfig

打開文件bash.bashrc
sudo gedit /etc/bash.bashrc
加入下面兩行
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

9 最后 sudo ldconfig -v 如果有共享庫輸出的話,就證明成功了。

10 程序測試 

編譯不通過請注銷或者重啟電腦試試
測試代碼:opencvtest.cpp

 
            

#include <opencv2/opencv.hpp>

using namespace cv;

using namespace std;

int main()
{

Mat img = imread("dazu.jpg");
if(img.empty())
{
cout<<"error";
return -1;
}
imshow("mypic",img);
waitKey();
return 0;
}

 

注意:linux下面的目錄形式為/.../....

所以“#include <opencv2\core\core.hpp>” 會找不到頭文件

編譯方式:
1 命令行
g++  opencvtest.cpp -o opencvtest  `pkg-config  --cflags --libs opencv` 

2 借助cmake,寫CMakeLists.txt

cmake_minimum_required(VERSION 2.8)

project(opencvtest)

find_package( OpenCV REQUIRED )

add_executable( opencvtest opencvtest.cpp )

target_link_libraries( opencvtest ${OpenCV_LIBS} )

之后 執行

cmake .
make
 運行
./ opencvtest

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM