Skip to content

[opencv-python]编译与安装

仓库skvark/opencv-python配置了Python OpenCV包编译环境

相比较于自编译的Python实现,skvark/opencv-python有以下优点:

  1. 可以通过pip方式安装预编译包
  2. 编译得到的cv2文件能够提供相应的Python定义(就是PyCharm编程时可以点击函数查看相关定义

其缺点就是实现速度比自编译包慢(参考OpenCV-4.4.0安装

pip安装

skvark/opencv-python提供了多种形式的预编译包

$ pip install opencv-python
$ pip install opencv-contrib-python
$ pip install opencv-python-headless
$ pip install opencv-contrib-python-headless

其中*-contrib-*表示包含了第三方模块,*-headless表示不包含GUI函数,适用于服务器版本/Docker版本

也可以指定版本安装,比如

$ pip install opencv-contrib-python==4.4.0.46

编译安装

当前想要通过加载中文字体,需要使用freetype库,OpenCV集成了该模块,不过在skvark/opencv-python中默认没有编译,需要自编译实现

  1. 下载源码
git clone --recursive https://github.com/skvark/opencv-python.git
  1. 设置CMake符号
export CMAKE_ARGS="-DWITH_FREETYPE=ON"
  1. 设置第三方模块编译
export ENABLE_CONTRIB=1 
  1. 编译
pip wheel . --verbose. 

编译完成后即可生成对应的wheel - opencv_contrib_python-4.4.0.46-cp37-cp37m-linux_x86_64.whl

  1. 安装
pip install opencv_contrib_python-4.4.0.46-cp37-cp37m-linux_x86_64.whl

问题一:xfeatures2d/boostdesc: Download failed: 28;"Timeout was reached"

参考安装opencv时,xfeatures2d模块缺失boostdesc_bgm.i文件,下载超时问题

问题二: ippicv_2020_lnx_intel64_20191018_general.tgz

参考ubuntu安装opencv无法下载IPPICV的问题 ippicv_2020_lnx_intel64_20191018_general.tgz