热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Ubuntu18.04上安装opencv3.4.1

对于安装opencv有的人一次就成功,而有人安装了N多次才成功。我就是那个安装了N多次的人,每次遇到了很多安装错误,只能通过到网上搜教程资料,解决方法;通过一次次的试错,最终完成了安装。再此提醒第一次

对于安装opencv有的人一次就成功,而有人安装了N多次才成功。我就是那个安装了N多次的人,每次遇到了很多安装错误,只能通过到网上搜教程资料,解决方法;通过一次次的试错,最终完成了安装。再此提醒第一次安装或则安装失败没有头绪的小伙伴,请注重官方安装教程:

https://docs.opencv.org/master/d9/df8/tutorial_root.html

安装环境是:ubuntu 18.04

安装的opencv版本为3.4.1(其他版本也行,安装过程类似)

opencv安装的依赖包有:

Required Packages

  • GCC 4.4.x or later
  • CMake 2.8.7 or higher
  • Git
  • GTK+2.x or higher, including headers (libgtk2.0-dev)
  • pkg-config
  • Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
  • ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
  • [optional] libtbb2 libtbb-dev
  • [optional] libdc1394 2.x
  • [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
  • [optional] CUDA Toolkit 6.5 or higher

1 首先更新数据

1 sudo apt-get update
2 sudo apt-get upgrade

2 安装依赖包

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

3 下载openc3.4.1数据包

https://github.com/opencv/opencv/releases

根据安装版本选择性下载

4 解压

sudo unzip opencv-3.4.1.zip

5 使用CMAKE安装opencv

安装时要注意你所在目录

进入文件夹,创建BUILD文件夹,进入BUILD文件夹

1 cd opencv-3.4.1
2 mkdir build
3 cd build

设置cmake编译参数,或者直接编译使用默认参数

[option] sudo cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
[option] sudo camke ..

其他安装选项请参考官网教程:

 

编译过程可能时间较长,也可能会出现编译错误而无法进行。

6 进行MAKE创建编译

make -j7

后面的参数-j7 表示的是使用7核进行编译,而它的服务器有10核20个线程;所有可以使用更更多的核进行编写操作,这样速度会快一些。

build的指令运行也同样时间会比较长。

7 成功后,进行安装

make install

在此如果你未出现错误,说明你已经安装好了opencv库,但还需要配置环境。

8 配置环境

在配置之前,由于修改系统配置文件需要权限,请将身份转变成root

sudo -s

修改opencv.conf文件

sudo gedit /etc/ld.so.conf.d/opencv.conf

文本可能为空白,在文本里添加opencv库的安装路径

/usr/local/lib

保存,若无法保存请确定你的身份root;关闭后,会出现警告无需担心。

更新系统共享链接库

sudo ldconfig

再修改bash.bashrc文件

sudo gedit /etc/bash.bashrc

在末尾加入

1 PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
2 export PKG_CONFIG_PATH  

保存退出,然后执行如下命令使得配置生效

source /etc/bash.bashrc

在此就已经完成配置

验证是否配置成功

查看opencv版本

pkg-config --modversion opencv

9 编辑测试程序,测试是否安装成功

opencv_demo.cpp

 1 #include 
 2 #include 
 3 
 4 using namespace std;
 5 using namespace cv;
 6 
 7 int main(void)
 8 {
 9   Mat src_image_ = imread("test.jpg");     // 读取当前目录下的test.jpg图片,如果保存请使用绝对路径
10   imshow("src_image_", src_image_);       // 打开图片文件
11   waitKey(5000);                          // 停留5秒钟
12 
13   return 0;
14 }

 

CMakeLists.txt文件

1 cmake_minimum_required(VERSION 3.5)
2 project(test1)
3 set(CMAKE_CXX_STANDARD 11)
4 set(CMAKE_CXX_STANDARD_REQUIRED ON)
5 
6 add_executable(${PROJECT_NAME} opencv_demo.cpp)
7 target_link_libraries(${PROJECT_NAME} opencv_core opencv_highgui opencv_imgcodecs)

 

运行程序

1 mkdir build   # 创建目录
2 cd build       # 进入目录
3 cmake ..     # cmake自动查找父目录下的CMakeLists.txt文件
4 make          # 编译生成test1可执行文件
5 ./test1       # 运行可执行文件, 至于代码中打开的图片是相对于test1可执行文件的相对路径

 

如果运行成功,则安装成功;若出现编译错误请到网上搜索错误原因和解决方式。


推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • linux qt打开常用文件格式,设置Linux Qt文件默认打开方式为QtCreator
    Linux自定义文件打开方式也可参照文本抱歉,本文前段时间写的ubuntu下的Qt工程文件默认打开方式是不好用的,因为其他的文本文件也会受到影响,强迫症患者,每次打开Qt工程都是先 ... [详细]
  • 我无法续订几天前过期的RHELDeveloper帐户订阅。我执行了以下步骤,但是,订 ... [详细]
author-avatar
saanenkim
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有