当前位置: > Ubuntu >

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

时间:2019-01-02 16:03来源:CSDN 作者:IT
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
1
-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:
 
 

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容