OpenCV 3.1.0 和 Python 3.5
Posted
技术标签:
【中文标题】OpenCV 3.1.0 和 Python 3.5【英文标题】:OpenCV 3.1.0 with Python 3.5 【发布时间】:2017-02-24 09:10:30 【问题描述】:在遵循其他 SO 答案中推荐的几个不同教程、指南和步骤后,我没有设法在我的 Ubuntu 16.04 系统中安装 OpenCV 以与 Python 3.5 一起使用。
只要 OpenCV 3.1.0 正式支持 Python 3.x,我该如何正确安装呢?
【问题讨论】:
【参考方案1】:在收集了不同教程和指南的步骤和故障排除解决方案后,我设法在我的系统中适当地安装了 Python 3.5 和 OpenCV 库。
安装是在 virtualenv 下执行的,因此无需从您的系统中清理以前的安装尝试足迹。
按照此处介绍的步骤进行安装:
openCV 3.1.0 opencv_contrib 3.1.0 numpy scipy scikit matplotlib cython venv最后,如果您之前没有安装任何这些软件包,可能会占用多达 20Gb 的空间。
你需要 gcc-4.9+ 来编译 OpenCV,我用 gcc-5.4 测试过
安装 OpenCV 依赖项
sudo apt-get build-dep -y opencv
创建和设置虚拟环境
sudo apt-get install python3-venv
python3.5 -m venv python35-opencv31
source ~/python35-opencv31/bin/activate
pip install matplotlib
pip install numpy
pip install scipy
pip install scikit-learn
pip install cython
pip install -U scikit-image
编译 OpenCV 3.1.0 和 openvc_contrib 3.1.0
依赖关系
sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
获取存储库
mkdir ~/git
cd ~/git
git clone https://github.com/opencv/opencv.git
cd ./opencv
git checkout 3.1.0
cd ~/git
git clone https://github.com/Itseez/opencv_contrib.git
cd ./opencv_contrib
git checkout 3.1.0
确保可以找到一些库
ffmpeg 库
sudo -i
mkdir /usr/include/ffmpeg
cd /usr/include/ffmpeg
ln -sf /usr/include/x86_64-linux-gnu/libavcodec/*.h ./
ln -sf /usr/include/x86_64-linux-gnu/libavformat/*.h ./
ln -sf /usr/include/x86_64-linux-gnu/libswscale/*.h ./
如果在编译过程中尝试查找某些 ffmpeg 库时出现任何问题,请卸载 ffmpeg 和 build it from source。
python 与 opencv_contrib 模块的绑定
echo "\nfind_package(HDF5)\ninclude_directories(\$HDF5_INCLUDE_DIRS)" >> ~/git/opencv/modules/python/common.cmake
编译
source ~/python35-opencv31/bin/activate
mkdir ~/opencv3.1.0
cd ~/git/opencv/
mkdir release
cd ./release
export CC=$(which gcc)
export CXX=$(which g++)
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=~/opencv3.1.0 \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/git/opencv_contrib/modules \
-D BUILD_EXAMPLES=ON \
-D CUDA_NVCC_FLAGS="-D_FORCE_INLINES" ..
输出应包括以下内容:
-- Python 2:
-- Interpreter: /home/rodrigo/anaconda/bin/python2.7 (ver 2.7.12)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.12)
-- numpy: /home/rodrigo/anaconda/lib/python2.7/site-packages/numpy/core/include (ver 1.10.4)
-- packages path: lib/python2.7/site-packages
--
-- Python 3:
-- Interpreter: /home/rodrigo/python35-opencv/bin/python3 (ver 3.5.2)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython3.5m.so (ver 3.5.2)
-- numpy: /home/rodrigo/python35-opencv/lib/python3.5/site-packages/numpy/core/include (ver 1.11.2)
-- packages path: lib/python3.5/site-packages
--
-- Python (for build): /home/rodrigo/anaconda/bin/python2.7
现在:
make
如果成功,那么:
make install
将 OpenCV 库添加到您的 virtualenv
cd ~/python35-opencv31/lib/site-packages
ln -s ~/opencv3.1.0/lib/python3.5/site-packages/cv2.cpython-35m-x86_64-linux-gnu.so
完成!
测试它是否按预期工作:
cd ~
source ~/python35-opencv31/bin/activate
python
import cv2
cv2.__version__
它应该导入 cv2 并显示版本号 3.1.0。
【讨论】:
我在安装 OpenCV 时发现所有可能的 CFLAGS 有点麻烦。我肯定会推荐cmake-gui
之类的东西来寻求帮助。 sudo apt-get install cmake-qt-gui
以上是关于OpenCV 3.1.0 和 Python 3.5的主要内容,如果未能解决你的问题,请参考以下文章
python 在Python 3.5上的Mac OS Sierra上安装OpenCV
ubuntu 16.04 安装 opencv +contrib (3.2.0) + python 3.5
Python OpenCV:Python 2.7 到 Python 3.5 之间的 VideoCapture 差异
Python 3.5、OpenCV 3.2、Windows 7 64 位、Anaconda 3、“ImportError:DLL 加载失败”
我使用 python3.5 和 OpenCV 3.1.0,OpenCV 函数 cv2.countNonZero(img) 我得到一个错误 [重复]