Ubuntu 20.04 安装opencv3.2.0 及报错解决方法

最近想要学习一下XTDrone里的目标检测与跟踪模块(正好推荐一下肖昆老师团队的项目----XTDrone,感兴趣可以去看看,确实很不错哟!),于是跟着文档往下做,结果发现在ubuntu20.04装Opencv就出问题,此篇文档仅仅记录一下,防止后面忘记。

首先说明一下为什么装3.2.0版本,起初我也是图方便,直接装最新版本,结果发现和后面的darknet_ros有冲突,darknet_ros一直编译不成功,经过测试,发现3.3之前的才行,猜测是因为XTDrone作者在写这块的时候opencv刚到3.3版本吧。闲话少说,接下来进入Opencv3.2安装步骤:

1、下载所需依赖

sudo apt-get install cmake

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

sudo apt-get install libgtk2.0-dev

sudo apt-get install pkg-config

2、去opencv官网下载3.2压缩包-sources:Releases - OpenCV

Ubuntu 20.04 安装opencv3.2.0 及报错解决方法_第1张图片

 3、解压到工作目录src文件夹下

Ubuntu 20.04 安装opencv3.2.0 及报错解决方法_第2张图片

3、进入opencv目录,输入以下命令(cmake 、make -j4、sudo make install都是在bild目录下运行的):

cd opencv

mkdir build

cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. 

make -j4

 在后面make编译的时候,可能会出现以下问题:

问题1:/usr/include/c++/9/cstdlib:75:15: fatal error: stdlib.h: 没有那个文件或目录 

解决方法:cmake时加上参数-D ENABLE_PRECOMPILED_HEADERS=OFF


问题2:error: 'CODEC_FLAG_GLOBAL_HEADER' was not declared in this scope 

解决方法:在opencv/opencv-3.2.0/modules/videoio/src/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:make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:56: modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o] Error 1make[1]: *** [CMakeFiles/Makefile2:21149: modules/python3/CMakeFiles/opencv_python3.dir/all] Error 2
解决方法:找到cv2.cpp,大约在730行,将
char* str = PyString_AsString(obj);
改为
char* str = (char *)PyString_AsString(obj);

Ubuntu 20.04 安装opencv3.2.0 及报错解决方法_第3张图片

 解决这些报错后,输入:

sudo make install

4、配置环境,将opencv的库加入路径

sudo gedit /etc/ld.so.conf

此时在打开的文件中加入/usr/loacl/lib,保存退出

在当前终端输入:

sudo ldconfig
sudo gedit /etc/bash.bashrc 



此时在打开的文件末尾加入PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH,保存退出 

source /etc/bash.bashrc

5、检查是否安装成功,输入:

pkg-config opencv --modversion

参考博客:Ubuntu20.04安装OpenCV3.20报错及解决_进一寸有一寸的欢喜239522的博客-CSDN博客JETSON TX2卸载原有的opencv安装opencv3.2_jetson 卸载4.1.1_Lqcx-spec的博客-CSDN博客Ubuntu20安装OpenCV3(图解亲测)_杨 戬的博客-CSDN博客

你可能感兴趣的:(ubuntu,linux,运维)