【问题标题】:Ubuntu, how to install OpenCV for python3?Ubuntu,如何为 python3 安装 OpenCV?
【发布时间】:2016-09-08 09:19:45
【问题描述】:

我想在 ubuntu 16.04 中为 python3 安装 OpenCV。拳头我尝试运行sudo apt-get install python3-opencv,这就是我几乎安装所有python软件的方式。这找不到存储库。安装确实有效,但是如果我这样做sudo apt-get install python-opencv 这个问题是通过不将三个添加到 python 中,它会为我不使用的 python 2 安装。我真的希望不必从源代码构建和安装,所以有没有办法获得存储库?我也试过用 pip3 安装,也找不到。

【问题讨论】:

  • 我认为你不能像在 python 2.x 上那样直接在 python 3.x 上安装 opencv。你应该按照这个简短的guide 或this 来帮助你从 git 完成安装
  • 好的,只是想确定一下。我现在正在安装源代码。

标签: python opencv ubuntu


【解决方案1】:

这将是一个冗长的答案,所以让我们开始吧:

第 1 步:安装先决条件: 升级任何预装的软件包:

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

安装用于编译 OpenCV 3.0 的开发者工具:

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

安装用于从磁盘读取各种图像和视频格式的库和包:

$ sudo apt-get install libjpeg8-dev libtiff5-dev libpng-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

安装 GTK,以便我们可以使用 OpenCV 的 GUI 功能:

$ sudo apt-get install libgtk2.0-dev

安装用于优化 OpenCV 内部各种功能的软件包,例如矩阵运算:

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

第 2 步:设置 Python(第 1 部分)

让我们下载为 Python 3 安装的 Python 包管理器 pip:

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

让我们使用我们新安装的 pip3 来设置 virtualenv 和 virtualenvwrapper:

$ sudo pip3 install virtualenv virtualenvwrapper

现在我们可以更新我们的 ~/.bashrc 文件(放在文件底部):

# virtualenv and virtualenvwrapper
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
$ source ~/.bashrc
$ mkvirtualenv cv

第 2 步:设置 Python(第 2 部分)

我们需要安装 Python 3.4+ 头文件和开发文件:

$ sudo apt-get install python3.4-dev

OpenCV 将图像表示为 NumPy 数组,因此我们需要将 NumPy 安装到我们的 cv 虚拟环境中:

$ pip install numpy

第 3 步:使用 Python 3.4+ 绑定构建和安装 OpenCV 3.0

$ cd ~
$ git clone https://github.com/opencv/opencv.git
$ cd opencv
$ git checkout 3.0.0
$ cd ~
$ git clone https://github.com/opencv/opencv_contrib.git
$ cd opencv_contrib
$ git checkout 3.0.0

是时候设置构建了:

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

让我们开始 OpenCV 编译过程:

$ make -j4

假设 OpenCV 3.0 编译无误,您现在可以在系统上安装它:

$ sudo make install
$ sudo ldconfig

第 4 步:符号链接 OpenCV 3.0

如果您已完成此步骤,OpenCV 3.0 现在应该安装在 /usr/local/lib/python3.4/site-packages/ 中。

在这里,我们的 OpenCV 绑定存储在名称 cv2.cpython-34m.so 下

但是,为了在我们的 cv 虚拟环境中使用 OpenCV 3.0,我们首先需要将 OpenCV 符号链接到 cv 环境的 site-packages 目录中,如下所示:(一定要注意cv2.cpython-34m.so)

$ cd ~/.virtualenvs/cv/lib/python3.4/site-packages/
$ ln -s /usr/local/lib/python3.4/site-packages/cv2.cpython-34m.so cv2.so

请注意我是如何将名称从 cv2.cpython-34m.so 更改为 cv2.so — 这样 Python 可以使用名称 cv2 导入我们的 OpenCV 绑定。

第 5 步:测试 OpenCV 3.0 和 Python 3.4+ 安装

$ workon cv
$ python
>>> import cv2
>>> cv2.__version__
'3.0.0'

希望对您有所帮助。另外,感谢 Adrian Rosebrock 的 post。它对我来说是一种魅力。

【讨论】:

  • 所以我安装了它,它似乎正在工作。我遇到的唯一问题是 Eclipse 中的 PyDev 似乎无法找到 cv2。我可以导入 cv2 并正常运行,但我发现在编码时无法使用 eclipse 中的自动完成 ctrl+Space 功能很烦人。我查看了/usr/local/lib/python3.5/dist-packages 并注意到只有一个 .so 文件用于 cv2,而不是像包中的其他库那样包含 python 文件的文件夹。有什么方法可以获取 cv2 的 python 文件,以便与 eclipse 很好地集成?
  • 它看起来像解决了here,另外,如果答案确实解决了您的原始问题,请将您的问题标记为已回答。谢谢。
  • 好吧,我实际上是通过将 cv2 添加到 pydev 中的强制内置插件来让它工作的。
  • 此安装与 cuda 8 不兼容。如果您有 cuda 8,请使用最新的 cv2 repo。
  • 我为 CUDA 8 做了这个,在 Ubuntu 14.04 上遇到了这个问题github.com/opencv/opencv/issues/8036 请看看
【解决方案2】:

我发现了这个:

https://pypi.python.org/pypi/opencv-python

车轮上的 OpenCV

'用于 Python 的非官方 OpenCV 包。'

Ubuntu 16.04 的安装很轻松

pip3 install opencv-python

检查安装

python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.2.0'

不知道为什么没有提到这一点。也许它是新上市的?

【讨论】:

  • 很轻松,但是当我调用 imshow() 时,OpenCV 说该功能没有实现,我需要重建包。
  • 对我来说还需要 sudo apt-get install -y python-qt4
  • 在服务器(无头)环境中,我还需要运行:apt-get install libglib2.0-0 以使其工作
  • 这似乎无法安装opencv version2系列。
【解决方案3】:

假设您安装了 Python3.x,我使用以下方法解决了它:

1:在 Ubuntu 上安装 OpenCV 所需的侧包(仅适用于:Ubuntu 16.04):

apt-get update
apt-get install -y libglib2.0.0 libsm6
apt-get install libxext6
apt-get install -y libxrender-dev

2:在python3.x上安装OpenCV:

pip3 install opencv-contrib-python

【讨论】:

    【解决方案4】:

    在 python3 环境中使用 conda:

    先在python3环境下安装conda,如果还没有激活的话:

    conda create --name py3k python=3
    source activate py3k
    

    现在可以在conda环境安装opencv了:

    pip install pillow
    conda install -c menpo opencv3=3.1.0
    

    在 Python 中导入:

    import cv2
    

    【讨论】:

    • 我已经尝试了几个小时的不同解决方案。我不断收到 cv2.imshow() 错误。现在我已经尝试过了,它终于可以工作了。谢谢!
    【解决方案5】:

    Ubuntu 18.04 及更高版本

    在 Ubuntu 18.04 及更高版本中,可以使用以下命令从默认 Ubuntu 存储库安装 OpenCV(开放计算机视觉)库的 Python 3 绑定:

    sudo apt install python3-opencv  
    

    开放式计算机视觉库是针对各种计算机视觉问题的算法和示例代码的集合。该库与 IPL(英特尔的图像处理库)兼容,如果可用,可以使用 IPP(英特尔的集成性能基元)以获得更好的性能。

    【讨论】:

      【解决方案6】:

      这是因为你的机器上安装了多个python。你应该把python3设为默认,因为默认是python2.7

      【讨论】:

      • 好吧,我认为这不是问题所在。为什么我不能像使用其他所有库一样为 python3 安装它。
      • 只需要在cmake/OpenCVDetectPython.cmake中设置默认python:set(PYTHON_DEFAULT_EXECUTABLE "${PYTHON3_EXECUTABLE}")
      【解决方案7】:

      流行的建议解决方案为我创造了奇迹,opencv 的 sudo apt install 无法正确安装。第 4 步的另一个注意事项(这可能会让其他人的生活更轻松)。现在看起来很简单,但我花了很长时间才解决问题(因为我是新手)。

      步骤 4a:运行以下代码以找出 cv2 文件的安装位置。您的文件名也可能略有不同。 仅仅因为您在 OP 所说的位置找不到它,并不意味着安装不起作用。

      > $ find /usr/ -iname cv2.*
      > /usr/lib/python3/dist-packages/cv2.cpython-38-x86_64-linux-gnu.so
      

      步骤 4b:SymLink OpenCV 3.0 同上

      > $ cd ~/anaconda3/virtualenv/lib/python3.8/site-packages/
      > $ ln -s /usr/lib/python3/dist-packages/cv2.cpython-38-x86_64-linux-gnu.so cv2.so
      

      【讨论】:

      • 这太棒了!谢谢。
      【解决方案8】:

      ubuntu 18.04之后,使用

      sudo apt install python3-opencv
      

      小心,自动启动 Anaconda 环境可能涵盖正常的 apt 安装,这花了我几个小时才找到。把它放在这里,以防像我这样的新手发现它不起作用。

      【讨论】:

        【解决方案9】:
        sudo pip3 install opencv-python opencv-contrib-python
        

        【讨论】:

        • 将sudo 与pip install 一起使用是不安全的。请改用虚拟环境。
        猜你喜欢
        • 1970-01-01
        • 2016-07-12
        • 2012-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-27
        • 2015-08-20
        • 1970-01-01
        相关资源
        最近更新 更多