这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » OpenVINO生态社区 » 【原创】在Ubuntu中安装OpenCV-Python(三)

共3条 1/1 1 跳转至

【原创】在Ubuntu中安装OpenCV-Python(三)

高工
2020-06-25 10:59:11     打赏

Ubuntu中安装OpenCV-Python

Fedora差不多,Ubuntu安装OpenCV基本上和它是一致的,所以在安装方法上基本上大体相同,有一些不一样的地方我会着重写出来,下面的步骤是在Ubuntu 16.0418.0464位)测试的。Ubuntu 18.04一个主要变化是他们完全放弃了Python 2.7。如果需要,你仍然可以安装Python 2.7 ,但现在Python 3是操作系统上的默认设置。所以本教程主要针对于Python 3

安装Python 3.6

让我们熟悉Ubuntu 18.04上的Python 3。要在Ubuntu 18.04上运行Python 3,必须显式调用python3。让我们先看看系统上安装了哪个版本:

$ python3 --version
Python 3.6.5

现在,让我们启动一个Python3 shell来测试一下:

$ python3
>> print("OpenCV + Ubuntu 18.04!")
OpenCV + Ubuntu 18.04!
>> quit()

这很简单,所以我们接下来继续在Ubuntu18.04上安装OpenCV

Ubuntu 18.04上安装OpenCV依赖项

所有步骤都将在终端/命令行中完成。 在我们开始之前,打开终端或通过SSH连接。从那里,我们需要使用apt-get  软件包管理器刷新/升级预安装的软件包/库:

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

接着安装开发人员工具:

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

如果已经拥有 pkg-config安装在Ubuntu 18.04上,那么需要确保将其包含在install命令中以确保完整性。

接下来,我们需要安装一些特定于OpenCV的先决条件。OpenCV是图像处理/计算机视觉库,因此它需要能够加载标准图像文件格式,例如JPEGPNGTIFF等:

$ sudo apt-get install libjpeg-dev libpng-dev libtiff-dev

现在让我们尝试安装 libjasper-dev

$ sudo apt-get install libjasper-dev

如果收到有关的错误 libjasper-dev丢失,然后按照以下说明进行操作:

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

接下来,我们安装视频包,需要以下软件包,以便可以使用相机流并处理视频文件:

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

OpenCVhighgui模块依赖于GTK库进行GUI操作。highgui模块可以创建基本的GUI,以显示图像,处理敲击/鼠标单击以及创建滑块和轨迹栏。高级GUI应使用TKWxQT构建,接下来安装GTK

$ sudo apt-get install libgtk-3-dev

我建议使用以下两个库来优化各种OpenCV功能:

$ sudo apt-get install libatlas-base-dev gfortran

最后,我们的最后一个要求是安装Python 3库:

$ sudo apt-get install python3.6-dev

下载官方的OpenCV来源

由于我们将继续在终端中工作,因此使用以下命令下载官方的OpenCV版本:

$ CD〜
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/3.4.4.zip

其次是 opencv_contrib模块,这个模块将非常有用,因为它包含了很多的OpenCV最重要的算法,contrib存储库包含SIFTSURF等算法。过去,这些实现已包含在OpenCV 2.4的默认安装中。但是,它们从OpenCV 3+开始就被迁移了,contrib模块中包含正在积极开发的模块和/或已申请专利的模块(对于商业/工业用途不是免费的),SIFTSURF算法便属于此类。:

$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.4.4.zip

重要提示:OpenCV OpenCV_contrib版本必须相同。

现在,让我们解压缩存档文件:

$ unzip opencv.zip
$ unzip opencv_contrib.zip

                                               image.png

现在,继续并重命名目录:

$ mv opencv-3.4.4 opencv
$ mv opencv_contrib-3.4.4 opencv_contrib

配置Python 3环境

我们要配置Python 3开发环境的第一步是安装pipPython软件包管理器)。

要安装pip,只需在终端中输入以下内容:

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python3 get-pip.py

利用虚拟环境进行Python开发

我建议最好使用虚拟环境进行开发,为什么?

虚拟环境可以隔离地处理项目,而不必浪费资源消耗,例如VMDocker映像

例如,也许有一个Python + OpenCV项目,它需要较旧版本的scikit-learnv0.14),但如果我们想为所有较新的项目继续使用最新版本的scikit-learn0.19)。

使用虚拟环境,就可以分别处理这两个软件版本依赖性,而仅仅使用Python的系统安装是无法实现的。

继续安装虚拟环境和虚拟环境包装器,现在:

$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf〜/ get-pip.py〜/ .cache / pip

要完成安装,我们需要更新我们的 / .bashrc文件。

使用终端文本编辑器(vi文件/vim文件或Nano文件)将以下行添加到~/.bashrc文件:

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

或者,可以直接通过bash命令追加行:

$ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
$ echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
$ echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
$ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc

接下来,将~/.bashrc文件作为源文件:

$ source ~/.bashrc

创建一个虚拟环境来保存OpenCV和其他软件包

我们现在可以为OpenCV创建Python3虚拟环境:

$ mkvirtualenv cv -p python3

此行只创建一个名为cvPython3虚拟环境。 我们可以随心所欲地给你的环境命名,我们可以在系统上拥有任意数量的虚拟环境!让我们使用workon命令验证我们是否处于cv环境中:

$ workon cv

在环境中安装NumPy

让我们将第一个包安装到环境中:NumPyNumPy是使用PythonOpenCV的必要,我们只需使用pip(cvPython虚拟环境处于激活状态时)

$ pip install numpy

Ubuntu 18.04配置和编译OpenCV

现在我们要搬家了,我们已经准备好编译和安装OpenCV。不过,在开始之前,让我们先确保我们处于cv虚拟环境中:

$ workon cv

虚拟环境是激活的,并且非常重要的,这就是为什么我不断重申这一点。 如果在进入下一步之前没有在cvPython虚拟环境中,那么构建文件将不会正确生成。

使用CMake配置OpenCV

让我们使用cmake命令设置我们的OpenCV版本:

$ cd ~/opencv
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_CUDA=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_EXAMPLES=ON ..

注意: 如果遇到与stdlib.h相关的问题:在本教程的cmakemake阶段没有此类文件或目录,则还需要在CMake中包括以下选项:-D ENABLE_PRECOMPILED_HEADERS = OFF 在这种情况下,我建议删除构建目录,重新创建它,然后使用上面的选项重新运行cmake 这将解决stdlib.h错误。

Ubuntu 18.04上编译OpenCV

让我们使用make命令编译OpenCV,根据处理器/核心的数量,可以通过更改命令中的标志来缩短编译时间。我的计算机有4个内核,所以我使用的是-j4标志。 你可以更新数字或完全关闭该标志:

$ make -j4

image.png

此过程可能需要30分钟或更长时间,如果编译阻塞并挂起,则可能是由于线程占用情况造成的。 万一遇到此问题,只需删除构建目录,重新创建它,然后重新运行cmakemake

安装和验证OpenCV

成功完成100%编译后,现在可以安装OpenCV

$ sudo make install
$ sudo ldconfig

为了验证安装完成度,在终端中输入以下命令:

$ pkg-config --modversion opencv
3.4.4

完成Python+OpenCV+Ubuntu 18.04安装

我们已经到了最后关头,请各位坚持下来。

此时,OpenCVPython 3绑定位于以下文件夹中:

$ ls /usr/local/python/cv2/python-3.6
cv2.cpython-36m-x86_64-linux-gnu.so

让我们将它们简单地重命名为cv2.so

$ cd /usr/local/python/cv2/python-3.6
$ sudo mv cv2.cpython-36m-x86_64-linux-gnu.so cv2.so

我们的最后一个子步骤是将我们的OpenCV cv2.so绑定符号链接到我们的cv虚拟环境中:

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

Ubuntu 18.04上测试OpenCV 3安装

要验证我们的OpenCV+Ubuntu安装是否完成,启动Python,导入OpenCV,然后查询版本(如果您同时安装了多个版本的OpenCV,这将非常有用)

$ cd ~
$ workon cv
$ python
Python 3.6.5
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.4.4'
>>> quit()

至此,安装已经完全搞定,可以开始快乐的OpenCV之旅了。

 


对计算机视觉感兴趣?这个社区推荐给你~

>>点击了解OpenVINO生态开发社区




关键词: OpenCV-Python     Ubuntu    

高工
2020-06-25 23:12:40     打赏
2楼

感谢分享


工程师
2020-06-25 23:27:27     打赏
3楼

学到了


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]