opencv mac os 环境初始化
总体参考
http://www.cnblogs.com/freeweb/p/5794447.html
但是过程中遇到了一些mac os 的问题记录下来
以下说明在Linux下Python和OpenCV结合安装的过程,Python要使用OpenCV模块,则必须导入OpenCV提供的包,所以要提供Python支持,首先在安装OpenCV前安装必要的组件,一般列表如下:
1、gcc g++一般系统自带
2、cmake 编译OpenCV时使用,需要手动安装
3、pkg-config命令,一般系统自带,如果缺少,使用 yum -y install pkg-config 安装
4、Python 2.x,系统自带
5、NumPy 一个用于大型矩阵处理的库,这个必须!如果不安装则后面OpenCV安装后也编译不出来Python的模块,其他库可以后来安装
最后一步是安装OpenCV
由于我的mac os gcc,python2.7 已经有。
第一步,安装pk-config
http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz 下载解压
./configure --with-internal-glib
make
sudo make install
完成
第二步,安装cmake
首先去cmake,官网,下载Mac操作系统对应的安装包https://cmake.org/download/
我下载的3.10.1直接下载.dmg。
安装完成之后,运行cmake图形界面程序,在左上角的选项栏中选择Tools,点击How to install for Command Line Use。之后弹出来一个消息框:
One may add CMake to the PATH:
PATH="/Applications/CMake.app/Contents/bin":"$PATH"
Or, to install symlinks to '/usr/local/bin', run:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install
Or, to install symlinks to another directory, run:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install=/path/to/bin
官方给出了三种安装cmake command line tool 的方法,即终端能够识别cmake命令的方法。我选择了官方给出的第二种方法,即复制sudo"/Applications/CMake.app/Contents/bin/cmake-gui" --install 命令到终端,然后运行,之后再在终端打cmake命令,就不会再提示什么command not found之类的错误了,到此安装成功了
完成
第三步,NumPy安装
https://sourceforge.net/projects/numpy/?source=typ_redirect 下载
解压后在源码路径下
python setup.py install
安装完成。
第四步,安装OpenCV,
官方网站为:http://opencv.org/ 下载源码 我下载的是3.4.0,解压
cd opencv-3.4.0/
mkdir build
cd build
cmake ..
make -j 4
sudo make install
ll /usr/local/lib/python2.7/site-packages/
root admin 3276452 12 30 21:19 cv2.so
看到 sv2.so说明安装成功
如果这时启动python交互命令行,import cv2
报错, ImportError: No module named cv2
第五步,解决 ImportError: No module named cv2 问题
>>> import site
>>> site.getsitepackages()
['/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/Library/Python/2.7/site-packages']
把 /usr/local/lib/python2.7/site-packages/cv2.so 拷贝到site.getsitepackages() 对应目录即可。
我只拷贝到了 /Library/Python/2.7/site-packages。
第六步,hello word
#!/usr/bin/python
# -*- coding:utf-8 -*-
import cv2
image = cv2.imread("/Users/rachelluo/Downloads/IMG_4432.JPG")
print image
cv2.imwrite("./a.jpg", image)