编译OpenCV4 + Python3 笔记

本文记录了在Ubuntu系统上编译OpenCV4与Python3结合使用的过程,涉及CUDA和cuDNN的集成。在Ubuntu 16.04上遇到gcc/g++兼容性问题,通过安装特定版本解决。同时,文章更新了不同时间点的编译技巧和注意事项,如Ubuntu 18.04上的CUDA10.1和OpenCV4.1.2的sfm模块错误,以及如何处理cuDNN支持。最后,提到了在Ubuntu20.04和新版本环境下的编译配置变化。
摘要由CSDN通过智能技术生成

OpenCV4 + Python3 (virtualenv) + CUDA + cuDNN

主要参考
https://www.pyimagesearch.com/2018/08/15/how-to-install-opencv-4-on-ubuntu/

Update: 20190513

在Ubuntu 16.04系统上,默认的gcc和g++已经升级到5.5,该版本的g++/gcc与OpenCV4.0.0+CUDA9.1的兼容性并不好,编译时会包类似于下方所列的错误

/usr/lib/gcc/x86_64-linux-gnu/4/include/avx512fintrin.h(xxxx): error: argument of type “const void *” is incompatible with parameter of type “const float *”

更改CMake的配置,使用更新版本的g++/gcc似乎解决了这个问题。

Ubuntu 16.04安装g++6的方法请参考:https://askubuntu.com/questions/746369/how-can-i-install-and-use-gcc-6-on-xenial
(sudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get update && sudo apt-get install gcc-6 g+±6)
配置CMake使用特定g++/gcc的方法请参考:https://gitlab.kitware.com/cmake/community/wikis/FAQ
(在CMake 命令行上增加 -D CMAKE_C_COMPILER=gcc-6 -D CMAKE_CXX_COMPILER=g+±6)

编译时CUDA部分会报较多的warning,还未检测CUDA部分代码工作是否正常。

是时候升级到Ubuntu18 + CUDA10了吧。

另外,目前使用的是OpenCV 4.1.0, 此时不必再手工复制编译好的文件到python的目录内了。

更新CMake

OpenCV4要求使用cmake 3.5.1以上版本,更新cmake使用的命令为

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:george-edison55/cmake-3.x
sudo apt-get update
sudo apt-get install cmake3 cmake3-data

CMake指令

Enable对CUDA的支持,最终的cmake指令为

cmake -DCMAKE_BUILD_TYPE
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值