前言:
而今小伙伴们对“opencvpython安装”大概比较珍视,大家都想要了解一些“opencvpython安装”的相关内容。那么小编在网络上收集了一些关于“opencvpython安装””的相关内容,希望兄弟们能喜欢,姐妹们快快来了解一下吧!本文以Ubuntu(适用于18,20,22版本,其他的未进行测试)为例,介绍了编译安装OpenCV的最佳实践。其他平台比如windows,只需要参考本文的思路做稍微调整即可。
一、为什么需要编译安装OpenCV
如果没有特别的要求,采用命令行方式,就可以快速的进行OpenCV的安装。
sudo apt-get install libopencv-devsudo apt-get install python3-opencv sudo apt-get install libopencv-contrib-dev
采用pip方式安装脚本如下
pip install opencv-python opencv-contrib-python -i
这样安装的OpenCV基本可以满足一般的开发需求,但是也存在以下的不足:
(1)安装的OpenCV不是最新的版本,尤其是contrib版本变化很快,部分最新的功能(有些新的背景提取,跟踪算法)会有所缺失。
(2)没有CUDA加速支持。
(3)如果apt不支持特定的CPU(比如arm)或者操作系统,就只能编译安装了。
如果我们的开发正好需要以上能力,建议通过源码编译方式安装。
二、OpenCV+CUDA有什么用处
OpenCV支持通过GPU实现CUDA加速执行,实现对OpenCV图像处理程序的加速运行,当前支持加速的模块包括如下:
图像背景分割视频编解码特征2D卷积滤波图像处理对象检测光流双目视觉...
在程序中调用CUDA也比较简单,这里先看看示例代码,基本上和在CPU上的图形操作函数类似,只是使用了CUDA模块内的函数。关于OpenCV+CUDA以后会专门展开进行说明。
Size mosaicSize(100, 100); // 调整后的大小cv::cuda::resize(GpuFrame, GpuFrame, mosaicSize, 1, 0, 0); // 使用CUDA缩放图片
如果代码中没有cuda支持的需要,就没必要安装cuda模块了。
三、踩坑点
(1)不要在conda环境下编译安装
由于conda环境修改了部分环境变量,编译安装OpenCV过程中,经常发生冲突,我踩了不少坑,才发现这个问题。切记切记,不要在conda环境下编译安装。如果已经安装了conda,建议将 ~/.bashrc文件中以下内容注释。
gedit ~/.bashrc
注释以下内容
# >>> conda initialize >>># !! Contents within this block are managed by 'conda init' !!__conda_setup="$('/home/chen/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"if [ $? -eq 0 ]; then eval "$__conda_setup"else if [ -f "/home/chen/anaconda3/etc/profile.d/conda.sh" ]; then . "/home/chen/anaconda3/etc/profile.d/conda.sh" else export PATH="/home/chen/anaconda3/bin:$PATH" fifiunset __conda_setup# <<< conda initialize <<<
(2)需要从git上下载部分文件和模型
使用源码编译过程中,有些模块需要从git下载部分模型和一系列文件,由于网络的原因,这些下载基本都会超时,导致编译失败。
我在这里提供一个已经打包好的OpenCV4.8包,包括了源码和下载文件。直接按照后面的安装脚本步骤一步一步执行就可以了。无需联网下载文件。
共享链接:
提取码: kugj
本共享长期有效。如果失效,烦请留言或者私信,重新发送地址。
四、保姆级编译安装步骤
(1)创建OpenCV4.8目录(可以是别的名字,不要包括中文),在该目录中,将百度网盘下载的OpenCV源码(包括opencv.zip和opencv_contrib.zip)分别解压到各自目录中。cmake.txt是cmake的命令行,可以下载后作为参考。
(2)在OpenCV4.8目录中创建一个build目录。创建后的目录结构如下。以后的所有操作都在build目录中进行!!!
(3)安装依赖文件
我是都安装了。假如自己了解各个模块的作用,可以进行取舍。根据自己的情况少装,或者不装部分包。
sudo apt install make gcc cmake build-essential sudo apt install libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-devsudo apt install ffmpeg
(4)cmake预编译
-D WITH_CUDA=1表示带CUDA的编译。其他的编译选项如果不是很了解,可以不用动。
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D WITH_CUDA=1 -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D OPENCV_GENERATE_PKGCONFIG=1 ../opencv
(5)make编译
-j8表示用8个线程编译,可以根据CPU能力改为-j4,-j16等等。根据机器情况不同,编译大约需要1-2个小时
编译过程如果有需要,可以随时用ctrl+C中断,然后重新执行make命令,编译工作从中断的地方继续,不会有任何影响。
make -j8
(6)安装编译文件
将编译后的文件安装在 CMAKE_INSTALL_PREFIX 指定的目录中
sudo make install
(7)大功告成。
标签: #opencvpython安装