详细Ubuntu虚拟环境源码安装Opencv4.0

Opencv4 在2018年11月发布,相当于Opencv3版本有了许多提升,比如支持C++11,更多的模块,尤其是支持深度神经网络模块。但是在编译的时候遇见了许多坑,参考了许多博客,最后编译成功,现在分享一下经验。

Step #1:在Ubuntu16.04下载Opencv4的依赖包
我的系统是Ubuntu16.04,安装前需要很多依赖包,如果没有安装后续的使用中会提示ImportError:libz.so.1:Version “ZLIB_1.2.9” not found类似的报错。
先更新下apt-get:

$sudo apt-get update
$sudo apt-get upgrade

下载一些开发工具包:

$ sudo apt-get install build-essential cmake unzip pkg-config

图片以及视频处理的包:

$ sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev

以及其他的一些包:

$ sudo apt-get install libgtk-3-dev
$ sudo apt-get install libatlas-base-dev gfortran
$sudo apt-get install python-dev

Step #2:下载Opencv4
需要下载opencv与opencv_contrib。新版的opencv有一些功能需要有扩展包中实现。
同样也可以使用命令行下载:

$ cd ~
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.0.0.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.0.0.zip

如果下载不了,我上传到百度云,提取码:ztkz
百度云链接
将两个zip解压并重命名:

$ unzip opencv.zip
$ unzip opencv_contrib.zip
$ mv opencv-4.0.0 opencv
$ mv opencv_contrib-4.0.0 opencv_contrib

这里建议将opencv与opencv_contrib放到同一文件夹中,之前看相关博客说这需要在同一级文件夹中Cmake编译才能找到opencv_contrib。

Step #3:配置Python3的虚拟环境
我使用了虚拟环境配置python3版本,这一块大家可以参考:
虚拟环境的配置
最终配置好虚拟环境后,使用source打开虚拟环境:
在这里插入图片描述
可以看到打开虚拟环境后命令行最前面有你虚拟环境的名字显示。
在虚拟环境中需要下载numpy包,这里使用的pip,不是apt-get:

$ pip install numpy

Step #4 Cmake配置并编译
使用Cmake开发工具编译,按照惯例:

$ cd ~/opencv
$ mkdir build
$ cd build

运行Cmake
这里有既可以使用CMAKE-GUI,也可以使用命令行运行,但是我之前也是用了GUI运行Cmake,但是总是遇见许多错误,这次使用命令行:

$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
	-D CMAKE_INSTALL_PREFIX=/usr/local \
	-D INSTALL_PYTHON_EXAMPLES=ON \
	-D INSTALL_C_EXAMPLES=OFF \
	-D OPENCV_ENABLE_NONFREE=ON \
	-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
	-D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
	-D BUILD_EXAMPLES=ON ..

需要注意的是,CMAKE_INSTALL_PREFIX是cmake运行后的生成文件夹,opencv编译成功后的cv2.so文件在这个路径下,由于我在服务器中使用,发现使用/usr/local路径后即是后续编译成功也生成不了我的文件,所以这里我是在/home/目录下新建了一个文件夹,/home/zoukai/Downloads/opencv_install。上述的OPENCV_EXTRA_MODULES_PATH就是刚刚与opencv一起下载的opencv_contrib文件夹的路径,PYTHON_EXECUTABLE即是虚拟环境中的路径,看我上面打开的虚拟路径,这里需要换成/usr/local/venv/zk35/bin/python
编译成功后会有:
在这里插入图片描述
若成功最后会有configuring done,Generation done出现,但是还需要你查看运行出现的Python3中的Interpreter(解释器)是否是你虚拟环境中的python。
Compile Opencv4
使用make编译

make -j4

-j4即是使用4核编译,使用的核越多,编译速度越快,但是也要防止因为多核编译报错。需要一些时间等待编译。

在这里插入图片描述
当上述的运行完毕后,需要使用两个命令行下载Opencv4中的文件:

$ sudo make install
$ sudo ldconfig

Step #5:链接Opencv4到Python3的虚拟环境
打开虚拟环境,并查看虚拟环境中的python版本:

$ source /usr/local/venv/zk35/bin/activate
$ python --version
Python 3.5.2

当上述编译成功后,会在CMAKE_INSTALL_PREFIX=/usr/local路径下的lib/python/中生成cv2.cpython-35m-x86_64-linux-gnu.so文件,可以将这个文件重命名为从cv2.so文件,必须要有这个文件才算编译成功,然后需要在虚拟环境的lib/python3.5/site-packages链接上这个文件:

$ cd ~/.virtualenvs/cv/lib/python3.5/site-packages/
$ ln -s /usr/local/python/cv2 cv2
$ cd ~

已经链接上了
Step #6:测试Opencv4
再重新打开一个命令窗口,先使用

$ sudo updatedb

在虚拟环境中使用python导入cv2:
在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值