ubuntu20.04安装opencv3.1.0方法及报错问题

1.安装依赖库

sudo apt install build-essential cmake git pkg-config libgtk-3-dev \
    libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
    libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
    gfortran openexr libatlas-base-dev python3-dev python3-numpy \
    libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev \
    libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

2.在官网或者github上下载opencv3.1.0

官网:Releases - OpenCV

github:GitHub - opencv/opencv at 3.1.0

3.解压并复制到主目录下重命名为opencv,打开终端

cd pencv

mkidr build && cd build

4.使用cmake命令配置opencv构建

cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_C_EXAMPLES=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_GENERATE_PKGCONFIG=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib/modules \
    -D BUILD_EXAMPLES=ON 
    -DENABLE_PRECOMPILED_HEADERS=OFF ..

出现下面长时间下载不完的情况时,或者没有下载下来,出现下面第二个图报错时,直接使用提供的链接下载,将下载好的ippicv_linux_20151201.tgz放在3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/目录下

ippicv_linux_20151201.tgz-深度学习文档类资源-优快云下载在

回到build下,删除里面的文件重新第4步

 如果出现上面图中vtk的错误,是因为VTK7.0版本后将 vtkRenderingOpenGL改成vtkRenderingOpenGL2
解决方法:

在opencv/cmake目录下,将OpencvDetectVTK.cmake文件中前几行的对应模块名后面加个2,具体如下:

将  

 find_package(VTK QUIET COMPONENTS vtkRenderingOpenGL vtkInteractionStyle vtkRenderingLOD vtkIOPLY vtkFiltersTexture vtkRenderingFreeType vtkIOExport NO_MODULE)

改成

 find_package(VTK QUIET COMPONENTS vtkRenderingOpenGL2 vtkInteractionStyle vtkRenderingLOD vtkIOPLY vtkFiltersTexture vtkRenderingFreeType vtkIOExport NO_MODULE)

重新回到build目录下,删除里面的文件重新执行第4步

 出现上图中问题,需要下载相应版本的opencv_contrib,链接:GitHub - opencv/opencv_contrib at 3.1.0

并把名字改为opencv_contrib(没有改名字还会出现同样地错误),放在opencv(如果opencv的名字没改还是会出现这个问题)目录下,位置要和图中红线的位置一样。

重新回到build目录下,删除里面的文件重新执行第4步

5.编译

make -j4

如果在make时出现stdlib.h:没有那个文件和目录错误时,是第4步cmake时没有添加

-DENABLE_PRECOMPILED_HEADERS=OFF

如果没有出现错误或者已经添加可以忽略

出现报错 error: 'CODEC_FLAG_GLOBAL_HEADER' was not declared in this scope时,opencv/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

如果没有出现错误可以忽略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值