Mac OS X为Python3安装OpenCV

由于研究需要和个人兴趣,最近在Python环境下做些图像处理的事情,OpenCV是一个功能强大的计算机视觉库,所以就在MacPro上搭建开发环境。

OpenCV简介

OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的IPP进行加速处理。(引用自维基百科https://zh.wikipedia.org/wiki/OpenCV

OpenCV是采用C++编写的,但是拥有面向Python等的接口。OpenCV发展至今,有2.x版本和3.x版本两个分支,而且两个版本分支并不兼容(这个与Python倒是十分相似),由于3.x版本在运行速度和功能上都更为强大,所以我选择安装3.x版本3.4.15(2018年6月23日),最新的可以在其官网 https://opencv.org/上查。

Mac Pro Python3环境安装OpenCV 3.x

之所以写这篇文章,一方面是我自己对这些都掌握得还不够熟练,希望为自己留一个参考;另一方面也是发现网上有诸多不同的方法和教程,做一个方法的梳理。

环境介绍

  1. 硬件是2013年的Mac Pro,也就是所谓的“垃圾桶”;
  2. 操作系统是macOs High Sierra(版本10.13.5);
  3. Python是采用Anaconda安装的Python 3.6.5;
  4. 希望安装OpenCV 3.4.15。

虽然我是想做些图像处理甚至用深度学习做些计算机视觉的事情,但是遗憾的是,我发现深度学习的框架如TensorFlow并不支持Mac系统下的GPU加速,而且Mac Pro用的是A家的显卡,就更不用想了。
OpenCV官方文档里对Mac OS并不怎么重视,与Python的环境搭建,主要是针对Python2的,我果然又是选择了一条弯路……

安装方法

其实,如果只是为Python安装OpenCV的模块,其实是件并不复杂的事情,但是如果是自己安装OpenCV,然后再和Python连起来,就会变得稍微复杂一些,根据安装的容易程度,依次推荐三种方法:

  1. conda install方法。安装的命令可以从以下两种中选一个,具体可参考 https://anaconda.org/conda-forge/opencv
  • conda install -c conda-forge opencv
  • conda install -c conda-forge/label/broken opencv
  1. pip install方法。安装的命令可以可以从以下两种选一个,具体可参考 https://pypi.org/project/opencv-python/
  • pip install opencv-python
  • pip install opencv-contrib-python-headless
  1. 手动绑定方法。假设Mac电脑已经安装好xcode、homebrew和python3等软件,并采用默认的路径配置。
    1. 安装OpenCV,命令为brew install opencv;
    2. 将OpenCV添加到系统路径中,命令为(路径可能因为python版本不同
1
echo /usr/local/opt/opencv/lib/python3.6/site-packages >> /usr/local/lib/python3.6/site-packages/opencv3.pth
3. 将安装好的Python与OpenCV绑定,在终端中输入命令:
1
ln -s /usr/local/opt/opencv@3/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so cv2.so

安装结果

采用以上三种方法均可以完成python3的OpenCV模块的安装,如果安装成果,则可以在python的命令行中运行:

1
2
>>> import cv2
>>> print(cv2.__version__)

并看到以下结果:
15298594033657

可能错误

我在安装过程中遇到了以下几个错误:

  1. 不同安装方式的冲突问题。 我先采用方法3进行了安装,然后又用方法1进行安装,结果方法1的配置被覆盖导致安装错误。解决办法是重新进行安装。
  2. 库版本不兼容的问题 网上也有提到过freetype版本不兼容的问题,我也遇到了,问题如下图:
    15298604000310
    解决这个问题的方法为先卸载版本不兼容的freetype,然后重新安装OpenCV(可参考https://www.jianshu.com/p/5bd5c96b5acf),命令为:
1
2
3
conda uninstall freetype
conda install -y -c conda-forge opencv
python -c "import cv2"