Ubuntu20.04下配置OpenCV2.4.13


环境如标题
参考文章:

https://blog.csdn.net/surgewong/article/details/39078251 【Ubuntu12安装OpenCV2】
https://www.cnblogs.com/woshijpf/p/3840530.html 【linux下编译OpenCV的方法】
https://stackoverflow.com/questions/45135/why-does-the-order-in-which-libraries-are-linked-sometimes-cause-errors-in-gcc/409470#409470 【gcc/g++编译详解】

你的点赞和评论对我真的很重要!!

一、安装OpenCV及相关依赖

1.OpenCV安装包,https://opencv.org/releases/page/3/
在该页面找到2.4.13,下载并解压到目录

2.build-essential 软件包为编译程序提供必需软件包的列表信息,如头文件与库函数位置,并安装gcc/g++/gdb/make 等基本编程工具

sudo apt-get install build-essential

3.以下依赖用于支持读写图片以及视频

sudo apt-get install libgtk2.0-dev libavcodec-dev libavformat-dev libtiff4-dev libswscale-dev libjasper-dev

4.安装cmake

sudo apt-get install cmake

5.安装pkg-config,用于提供从源代码中编译软件时查询已安装的库时使用的统一接口

sudo apt-get install pkg-config

补充
你可能会遇到如下问题

  1. 安装依赖时提示
    参考文章:https://blog.csdn.net/Collin_D/article/details/109067301

unable to locate libjasper-dev

解决方案:更新仓库源

sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"
sudo apt update
sudo apt install libjasper1 libjasper-dev
  1. 出现以下错误
    参考文章:https://stackoverflow.com/questions/46884682/error-in-building-opencv-with-ffmpeg

error: ‘CODEC_FLAG_GLOBAL_HEADER’ was not declared in this scope c->flags |= CODEC_FLAG_GLOBAL_HEADER;
……

解决方案:这是由于OpenCV的版本升级,预编译常量命名变化而导致的,因此需要你在OpenCV安装目录下找到cap_ffmpeg_impl.hpp,并在头部添加如下代码

#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)
#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
#define AVFMT_RAWPICTURE 0x0020

二、编译安装

据参考文章3可知,运行OpenCV主要有两种方法,CMake(一般用这个)和Command Line (可用于编译样例,检测OpenCV安装情况)。

1. cmake

(1)使用cmake来检测编译环境以及生成makefile以及其他project信息

cd opencv_dir 
mkdir build	//一般为命名为build或release
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. 
//CMAKE_BUILD_TYPE=RELEASE保证产生的makefile文件make生成的可执行文件带有调试信息,供gdb和gdbserver使用
//CMAKE_INSTALL_PREFIX设置编译路径

(2)make编译并安装

make -j$(nproc) //单纯make会很慢,$(nproc)指令表示能参与编译的最大内核线程数
//也可以自定义线程数如,make -j16	
sudo make install
(3)设置OpenCV环境变量(很重要!无论采用哪种编译方法都需要设置)

设置pkg-config的OpenCV库路径

export PKG_CONFIG_PATH=/..../OpenCV-dir/build/unix-install
//或者 export PKG_CONFIG_LIBDIR=/..../OpenCV-dir/build/unix-install
//LIBDIR环境变量优先级更高,一般用PATH设置即可
//该路径包含了opencv.pc文件,其中包含了头文件位置、库文件位置等信息

如果该目录下没有该文件则需要手动创建并配置,方法如下

cd /usr/local/lib
sudo mkdir pkgconfig
cd pkgconfig
sudo touch opencv.pc
sudo vi opencv.pc //vi、vim、gedit都行,爱用哪个用哪个

添加如下信息

# Package Information for pkg-config

prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir_old=${prefix}/include/opencv
includedir_new=${prefix}/include

Name: OpenCV
Description: Open Source Computer Vision Library
Version: 2.4.13.6
Libs: -L${exec_prefix}/lib -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -lrt -lpthread -lm -ldl
Cflags: -I${includedir_old} -I${includedir_new}

保存并退出,导入环境变量

export  PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

ps:导入环境变量的方法有很多,本文已经很长了,就不详细介绍了,简单提一下:
(1)直接导入库路径配置文件,在/etc/ld.so.conf.d下添加opencv.conf,并写入/usr/local/lib
(2)配置全局变量,在/etc/profile文件末尾追加

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
然后更新环境变量
source /etc/profile

(3)配置用户本地变量,在/etc/bash.bashrc文件末尾追加

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
然后更新环境变量
source /etc/profile

最后,更新系统库缓存

ldconfig

查看opencv是否配置成功

pkg-config --cflags opencv
pkg-config --libs opencv

2. Command Line(运行测试)

切换到OpenCV-dir/samples/c/(或者cpp)
(1)简单方案,编译所有样例

cd /.../opencv_dir/samples/c/
cd ./build_all.sh	//编译所有样例
cd ./find_obj

即可看到下图

(2)仅编译某个样例,使用如下的命令编译运行即可:

gcc -ggdb xxx.c -o xxx `pkg-config --cflags --libs opencv` //若文件为.c
g++ -ggdb xxx.cpp -o xxx `pkg-config --cflags --libs opencv` //若文件为.cpp
./xxx

-o 生成对象文件,其后紧跟要生成的对象文件名;
–cflags 引入各种头文件位置;
–libs 引入动态链接库;
另外,应当注意,gcc/g++采用比较严格的指令执行顺序(从左向右)。在最近的发行版本中,都默认使用了–as-needed参数,强制要求程序的对象文件必须出现在动态库之前并且它并不会因为参数顺序不对而报错,因此只有当-libs参数在xxx.cpp后时程序才能正常执行
也就是说,以g++为例

g++ -ggdb `pkg-config --cflags --libs opencv` xxx.cpp -o xxx  //错误
g++ -ggdb `pkg-config --cflags opencv` xxx.cpp -o xxx `pkg-config --libs opencv` //正确
g++ -ggdb xxx.cpp -o xxx `pkg-config --cflags --libs opencv` //正确

效果图

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 要在Ubuntu 20.04配置OpenCV,您可以按照以下步骤进行操作: 1. 打开终端并更新软件包列表: sudo apt update 2. 安装OpenCV所需的依赖项: sudo apt install build-essential cmake git libgtk2.-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev 3. 下载OpenCV源代码: git clone https://github.com/opencv/opencv.git 4. 创建一个build目录并进入: cd opencv mkdir build cd build 5. 使用CMake配置OpenCV: cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. 6. 编译OpenCV: make -j4 7. 安装OpenCV: sudo make install 8. 验证OpenCV是否正确安装: pkg-config --modversion opencv4 如果返回版本号,则表示OpenCV已成功安装。 希望这可以帮助您在Ubuntu 20.04配置OpenCV。 ### 回答2: 在Ubuntu 20.04配置OpenCV需要进行以下步骤: 1. 更新Ubuntu系统: sudo apt-get update sudo apt-get upgrade 2. 安装OpenCV所需的依赖项: sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev 3. 下载OpenCV源代码: git clone https://github.com/opencv/opencv.git cd opencv git checkout 4.5.0 4. 创建build目录并进行编译: cd mkdir build cd build cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ../opencv make -j4 sudo make install 5. 将OpenCV添加到系统库路径中: sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig 6. 确认OpenCV安装: pkg-config --cflags --libs opencv4 如果没有错误,应该输出以下内容: -I/usr/local/include/opencv4/opencv -I/usr/local/include/opencv4/ -I/usr/local/include -L/usr/local/lib -lopencv_gapi -lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_phase_unwrapping -lopencv_quality -lopencv_rgb2gray -lopencv_saliency -lopencv_shape -lopencv_stereo -lopencv_structured_light -lopencv_superres -lopencv_videostab -lopencv_dnn -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_face -lopencv_plot -lopencv_reg -lopencv_xfeatures2d -lopencv_videoio -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_photo -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_ximgproc -lopencv_calib3d -lopencv_core 7. 安装Python 3的OpenCV: sudo apt-get install python3-opencv 以上就是在Ubuntu 20.04配置OpenCV的步骤。如果一切正常,OpenCV将成功安装并可供使用。 ### 回答3: Ubuntu 20.04是一个重要的Linux操作系统版本,同时也是一种广泛使用的开发环境。在这个操作系统上,拥有合适的软件编程工具是非常必要的,比如配置OpenCVOpenCV是一个基于开源的计算机视觉库,它能够提供一些强大的工具,以便开发人员可以进行图像和视频处理等多种计算机视觉任务。下面就是在Ubuntu 20.04上如何配置OpenCV: 1.首先安装必要的依赖包。打开终端,输入以下命令: sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev 2.在终端中输入以下命令从GitHub上获取OpenCV源代码: git clone https://github.com/opencv/opencv.git 3.获取OpenCV的贡献代码。这部分代码让你可以用更多的算法完成更高级的图像和视频处理任务。在终端中输入以下命令: git clone https://github.com/opencv/opencv_contrib.git 4.创建OpenCV构建项目文件: cd opencv mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules .. 5.进行编译过程: make -j8 6.最后安装OpenCV: sudo make install 7.确认OpenCV是否被正确安装,在终端中输入以下代码: pkg-config --modversion opencv4 8.在编译自己的代码时需要指向OpenCV的路径: sudo g++ -o main main.cpp `pkg-config --cflags --libs opencv4` 最后需要注意的是,以上操作过程中需要使用sudo管理员权限运行命令。当然,最好在管理员用户下完成以上步骤,以便能够将OpenCV正确安装到你的Ubuntu 20.04系统中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值