ubuntu20.04安装opencv4.5.1

  • 1、保证系统中各个软件和软件源都是更新过的
  • 2、安装OpenCV依赖的库
  • 3、下载OpenCV源代码
  • 4、配置和编译OpenCV
  • 5、编译安装OpenCV
  • 6、设置库的搜索路径
  • 7、将/etc/ld.so.conf.d中的数据读入缓存
  • 8、添加pkg-config环境变量
  • 9、测试opencv
    • 9.1、测试方式一
    • 9.2、测试方式二
  • 10、卸载OpenCV4(通过源码编译安装)
  • 11、编写CMakeLists.txt
  • 12、安装OpenCV_contrib

操作系统:Ubuntu 20.04
OpenCV版本:OpenCV 4.5.1

1、保证系统中各个软件和软件源都是更新过的

执行下面命令:

#更新源
sudo apt-get update
#更新已安装的包
sudo apt-get upgrade

2、安装OpenCV依赖的库

打开终端,安装以下软件包

sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev

3、下载OpenCV源代码

接下来获取 OpenCV 的 source 文件,直接到官网下载:https://opencv.org/releases/

点击对应版本的 Source 即可下载

下载成功后解压,解压到哪个文件夹都可以

下载完后解压缩并重命名为opencv(源码包大小大概90M):

unzip opencv.zip
mv opencv-master opencv

4、配置和编译OpenCV

1)进入到下载好的opencv目录中,新建目录build并进入build目录:

cd opencv
mkdir build
cd build

因为OpenCV在debug和release两种模式下生产的库文件不尽相同,debug模式因为添加了很多调试信息,文件大小相对会大一些,所以这里分别编译debug和release两种模式下的OpenCV。 对于debug模式,执行如下命令:

cmake -D CMAKE_BUILD_TYPE=Debug -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=/usr/local/OpenCV/Debug -D WITH_FFMPEG=ON ..

这里有个地方需要注意,命令最后是两个点,是上一层目录的意思,因为Cmakelist.txt在build的上层目录中。安装路径通过CMAKE_INSTALL_PREFIX设置为/usr/local/OpenCV/Debug,默认是/usr/local。而编译类型通过CMAKE_BUILD_TYPE=DEBUG设为DEBUG,默认是RELEASE。对于Release下的编译,只需要更改这两个部分即可,即:

cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=/usr/local/OpenCV/Release -D WITH_FFMPEG=ON ..

5、编译安装OpenCV

使用make编译

make -j8

说明:-j8中的8指同时使用8个进程,可以根据电脑的进程数调整此值

使用make安装

sudo make install

默认安装路径为:
/usr/local/bin - executable files
/usr/local/lib - libraries (.so)
/usr/local/cmake/opencv4 - cmake package
/usr/local/include/opencv4 - headers
/usr/local/share/opencv4 - other files (e.g. trained cascades in XML format)

6、设置库的搜索路径

/etc/ld.so.conf.d/加入对于库的.conf文件,首先新建opencv.conf

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

opencv.conf中加入函数库所在的目录:

    /usr/local/OpenCV/Debug/lib/usr/local/OpenCV/Release/lib

也可以在ld.so.conf文件中

sudo gedit /etc/ld.so.conf

加入上述目录。其实ld.so.conf中写着如下代码:

include /etc/ld.so.conf.d/*.conf

说明ld.so.conf是包含ld.so.conf.d中所有的.conf文件的。

7、将/etc/ld.so.conf.d中的数据读入缓存

接下来利用ldconfig命令,将/etc/ld.so.conf.d中的数据读入缓存

sudo ldconfig

8、添加pkg-config环境变量

然后添加pkg-config环境变量,便于pkg-config找到*.pc文件。因为我们生成了两个版本的OpenCV,为了便于区分,分别把Debug和Release下lib/pkgconfig下(/usr/local/OpenCV/Debug/lib/pkgconfig,/usr/local/OpenCV/Release/lib/pkgconfig)对应的*.pc文件改名为opencv-debug和opencv-release。

sudo mv opencv4.pc opencv4_release.pc
sudo mv opencv4.pc opencv4_debug.pc

然后把这两个路径设置在环境变量中,

sudo gedit /etc/profile

把以下代码写入文件的最后并保存。

export PKG_CONFIG_PATH=/usr/local/OpenCV/Debug/lib/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/usr/local/OpenCV/Release/lib/pkgconfig:$PKG_CONFIG_PATH

或者,直接把这两文件放到一起,然后放到某个位置,再把这个路径设置到环境变量中。pkg-config的默认搜索路径是/usr/local/lib/config,所以可以直接放在这个路径下,无需设置环境变量。

保存并退出后激活:

source /etc/profile

验证是否成功:

pkg-config --libs opencv4_debug
-L/usr/local/OpenCV/Debug/lib -lopencv_gapi -lopencv_highgui -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_video -lopencv_calib3d -lopencv_features2d -lopencv_dnn -lopencv_flann -lopencv_videoio -lopencv_imgcodecs -lopencv_imgproc -lopencv_core
pkg-config --libs opencv4_release
-L/usr/local/OpenCV/Release/lib -lopencv_gapi -lopencv_highgui -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_video -lopencv_calib3d -lopencv_features2d -lopencv_dnn -lopencv_flann -lopencv_videoio -lopencv_imgcodecs -lopencv_imgproc -lopencv_core

这样OpenCV的安装就完成了,可以参考Using OpenCV with gcc and CMake中讲解的OpenCV使用方法尝试测试几个简单的程序试试。

9、测试opencv

9.1、测试方式一

cd 到/opencv/samples/cpp/example_cmake目录下,依次执行以下命令:

cmake .
make
./opencv_example

cmake有可能会报错,原因是找不到Opencv的配置文件。解决办法:打开CMakeLists.txt
#加入这行代码,指向OpenCVConfig.cmake

set (OpenCV_DIR  /home/****/opencv/opencv-4.5.1/build)#opencv的安装路径
find_package(OpenCV REQUIRED)

该测试需要电脑有摄像头,如果启动摄像头看到了画面,说明安装成功。

9.2、测试方式二

在终端输入指令 pkg-config --modversion opencv4 即可看到OpenCV版本信息输出

sudo cp -f /usr/local/OpenCV/Debug/lib/pkgconfig/opencv4_debug.pc /usr/lib/pkgconfig/
pkg-config --modversion opencv4_debug
sudo cp -f /usr/local/OpenCV/Release/lib/pkgconfig/opencv4_release.pc /usr/lib/pkgconfig/
pkg-config --modversion opencv4_release

以下部分摘自:https://blog.csdn.net/qq_45915007/article/details/113000097.

10、卸载OpenCV4(通过源码编译安装)

1)找到源码路径,在终端中进入到build目录,依次执行:

sudo make uninstall
cd ..
sudo rm -r build

2)在/usr/local下搜索opencv4

sudo find ./ -name opencv4*

将找到的opencv相关项删除即可,大概删除以下项:

sudo rm -r /usr/local/include/opencv4
sudo rm -r /usr/local/lib/pkgconfig/opencv4.pc
sudo rm -r /usr/local/lib/cmake/opencv4
sudo rm -r /usr/local/share/licenses/opencv4
sudo rm -r /usr/local/share/opencv4

11、编写CMakeLists.txt

在Ubuntu下,我们经常使用编写Cmake的方式来编译CV项目,CMakeLists.txt的语法比较简单,网上也有很多例子。
一个简单的参考示例如下:

# Time: xx:xx xx.x.xx
# Author: xxx
# This is a file - "CMakeLists.txt" for OpenCV Project
cmake_minimum_required ( VERSION 3.15 )set(PROJECT_NAME Lambda)
set(SRC Lambda.cpp)project(${PROJECT_NAME})find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIB_DIRS})add_executable(${PROJECT_NAME} ${SRC})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

将CMakeLists.txt放置在源文件同级目录下,并执行以下指令

# 不一定要创建build文件夹,但是为了简洁,还是创建比较好
mkdir build
cd build
cmake ..
make
# 这里是你的可执行性文件名的名字
./Lambda

12、安装OpenCV_contrib

将下载好的opencv_contrib-4.5.1的压缩包解压到opencv下opencv-4.5.1的包中,然后在build文件夹下执行

cd build
cmake -D CMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=/usr/local/OpenCV/Debug -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D WITH_TBB=ON -D WITH_EIGEN=ON -D WITH_FFMPEG=ON  -D WITH_CUDA=ON -D OPENCV_ENABLE_NONFREE=ON ..
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/OpenCV/Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D WITH_TBB=ON -D WITH_EIGEN=ON -D WITH_FFMPEG=ON  -D WITH_CUDA=ON -D OPENCV_ENABLE_NONFREE=ON ..

这时会报错

make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:63: modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o] Error 1
make[2]: Leaving directory '/home/pi/projects/opencv/build'
make[1]: *** [CMakeFiles/Makefile2:14259: modules/python3/CMakeFiles/opencv_python3.dir/all] Error 2
make[1]: Leaving directory '/home/pi/projects/opencv/build'

我们需要手动执行gen脚本(在我的情况下,从/ build上一级,从/opencv开始)。

因此,如果在/build中:

cd ..
python ./modules/python/src2/gen2.py ./build/modules/python_bindings_generator ./build/modules/python_bindings_generator/headers.txt
cd build
sudo make install

来源:
链接: https://github.com/opencv/opencv/issues/10771#issuecomment-376861139.
链接: https://github.com/opencv/opencv/issues/10771#issuecomment-379949822.

使用make编译安装OpenCV

make -j8

说明:-j8中的8指同时使用8个进程,可以根据电脑的进程数调整此值

使用make安装

sudo make install
sudo mv opencv4.pc opencv4_release.pc
sudo mv opencv4.pc opencv4_debug.pc

偶尔报错的时候,可以先make clean
然后再make -j8

ubuntu20.04安装opencv4相关推荐

  1. ubuntu20.04安装opencv4.7

    一.准备工作 step1:安装cmake 执行以下命令安装最新的cmake sudo apt-get update sudo apt-get upgrade sudo apt-get install ...

  2. ubuntu20.04安装opencv4.3.0中出现的问题

    进行make编译过程中 1.在安装过程中出现许多问题,因此汇总一下解决问题方法 注意:进行make编译,可能需要很久,make -jn表示用n个系统内核进行编译,如果你知道自己的系统内核数目可以手写, ...

  3. 优麒麟Ubuntu20.04安装各种问题

    优麒麟Ubuntu用了六年了,版本旧了,所以按照20.04版. 1.adobe-flashplugin的安装极其慢 慎重啊!需要好几个小时,无法忍受啊! 2.dpkg被中断的解决方法 关闭掉Ubunt ...

  4. Ubuntu18.04安装OpenCV4.3.0和环境配置(支持编译CUDA并安装配置python-opencv)

    Ubuntu18.04安装OpenCV4.3.0和环境配置 下载源文件 安装依赖 编译安装 环境配置 动态库配置 配置OpenCV的`PKG-CONFIG`环境 Python-OpenCV环境[如果安 ...

  5. ubuntu20.04 安装 Qt5.12步骤

    转载链接:ubuntu20.04 安装 Qt5.12_仙海寻波的博客-CSDN博客_ubuntu20.04安装qt第一步 下载 Qt5.12.9安装包使用清华镜像进行下载:https://mirror ...

  6. 了解Docker、Ubuntu20.04安装docker教程

    Docker 的前世今生 https://my.oschina.net/u/4126211/blog/4517028 Ubuntu20.04安装docker教程 https://blog.csdn.n ...

  7. ubuntu20.04安装ROS及常见问题

    ubuntu20.04安装ROS及常见问题 一.ubuntu安装参考(双系统) 1.ios镜像官网下载地址: https://releases.ubuntu.com/?_ga=2.239339907. ...

  8. Ubuntu20.04安装,并Linux微信等

    Ubuntu20.04安装,并Linux微信等 一.Ubuntu20.04双硬盘双系统安装 电脑状况:256G+260G双固态硬盘,其中256G(sda)分C.D盘安装win10,460G(sdb)硬 ...

  9. ubuntu20.04安装小鹤双拼输入法挂接音形改简体中文Rime

    ubuntu20.04安装小鹤双拼输入法挂接音形改简体中文Rime 方案1,按照这个挂接方法,原始的繁体等其他的也还在: 替换方案 方案2 修改成默认简体中文: 更改皮肤 设置-区域与语言-改成中文- ...

  10. 微星主板 Ubuntu20.04安装以及配置

    1 设置U盘启动 1)插入使用软碟通制作好的U盘,开机按del键进入BIOS: 2)Boot Option 中 选择U盘启动: 3)设置硬盘BBS(我也不知道是什么): 4)点击左边Settings, ...

最新文章

  1. Web API之基于H5客户端分段上传大文件
  2. 贝叶斯网络之父Judea Pearl力荐、LeCun点赞,这篇长论文全面解读机器学习中的因果关系...
  3. Hibernate与 MyBatis的比较
  4. AI新浪潮:截止2022年,全球74%的计算将来自端侧
  5. J-4 Java语言基础
  6. java web 之间通信,【Java】Web发展中通信的方式有哪些呢?
  7. 一位像素艺术家用39张动图,将大自然的唯美尽收眼底…
  8. 前端学习(3276):js中this的使用
  9. laravel支付宝sdk接入
  10. ECCV 2020 Oral 中谷歌论文盘点,点云与3D方向工作居多
  11. 小白学数据分析-----ARPDAU的价值
  12. php学习去哪,php可以从哪里学习
  13. 关于指令执行周期的细节思考
  14. 关于macOS自定义终端命令的方法
  15. 真分布式SolrCloud+Zookeeper+tomcat搭建、索引Mysql数据库、IK中文分词器配置以及web项目中solr的应用(1)
  16. No package python27 available
  17. java 163邮箱发邮件_java用163邮箱发邮件的方式,步骤有哪些?
  18. 从零搭建Spring Boot脚手架(2):增加通用的功能(转载)
  19. 极光推送的简单实现方法
  20. harness记忆_Java Microbenchmarking Harness的动手实践

热门文章

  1. 【HTML+CSS】移动端布局之流式布局
  2. BS架构和CS架构的区别
  3. 微信小程序服务通知 模板消息
  4. 微信小程序排名规则大揭秘
  5. 英伟达显卡老版本驱动下载网址
  6. 微信小程序npm安装有赞UI 组件库
  7. Xshell7绿色版使用公钥对免密连接虚拟机(centos7.9-保姆级)
  8. 【游戏策划】Excel的使用技巧(一)
  9. java中null字符串与字符串长度为0的区别
  10. 银灿IS916也可以量产三驱三启动成功教程