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

注意: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

最新文章

  1. R爬虫知识点
  2. fnc.tld学习编写
  3. CentOS6.6安装及配置vsftpd文件服务器
  4. [poj2348]Euclid&#39;s Game(博弈论+gcd)
  5. 莫队算法 2038: [2009国家集训队]小Z的袜子(hose)
  6. geohash算法原理及实现方式
  7. ACM - 概率、期望题目 小结(临时)
  8. IE8 CSS hack 测试
  9. struts2.1笔记06:struts2开发环境的搭建实际操作出现的问题
  10. MemoryStream类
  11. KafkaSpout 浅析
  12. 【Java基础】Jar包结构结构分析和操作具体解释
  13. hdu-3487-Play with Chain-(splay 区间翻转,切割,插入)
  14. Myeclipse7.5 下载 安装 注冊 注冊码 100%成功
  15. [Python笔记][第二章Python序列-复杂的数据结构]
  16. sql优化原则
  17. DataGrid 得到DataGridRow 和DataGridColumn
  18. ●POJ 1509 Glass Beads
  19. Git简单生成生成公钥和私钥方法
  20. EntityFramework Reverse POCO Code First 反向生成器

热门文章

  1. 外媒关注:中国版Twitter新浪微博推出微米对抗微信
  2. AsyncTask doinbackground onProgressUpdate onCancelled onPostExecute的基本使用
  3. Unity3D 多平台_预编译相关宏定义
  4. 算法笔记_044:表达式计算求值(Java)
  5. mindmanager2018官方下载地址
  6. 〖Linux〗不知谁写的,很实用的Linux命令
  7. 用sqldevelop进行连接linux中ret Hat 6.2 中的oracle步骤
  8. Android中涉及到的焦点问题,focusable,clickable,enabled
  9. Swift2.0-异常处理(Exception handler)
  10. Ubuntu系统使用命令禁用触摸板等输入设备