在Mac上安装编译OpenCV (for Cpp / Java / Android / Python)
这篇博文总结一个在Mac(MountainLion)上和OpenCV有关的Setup工作。
如果只希望用OpenCV for Android,可以直接按照这里的教程做:http://docs.opencv.org/trunk/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html
对于JavaCV或者用Cpp/C Compile的情况,可以依照下面的步骤:
准备工作:
如果需要在Mac上进行OpenCV相关的事情,首先需要下载:
目前最新版地址(2.4.3):http://nchc.dl.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.3/OpenCV-2.4.3.tar.bz2
下载之后,需要通过cmake来编译。没有cmake的话需要去安装cmake:http://www.cmake.org/files/v2.8/cmake-2.8.10.2-Darwin64-universal.dmg
通过cmake编译OpenCV的步骤:
1)解压缩并进入opencv的目录
2)sudo cmake -G "Unix Makefiles"
3)sudo make -j8
4)sudo make install
以上步骤之后,OpenCV已经被Compile完成,并且相应的library被放到了目录:/usr/local/include/opencv 里面。
以上工作结束之后,可以根据需要来执行一下的不同部分。
-- JavaCV:
下载找到并下载JavaCV的最新Code:http://code.google.com/p/javacv/downloads/list
注意其中32/64位版本要和上面的OpenCV相对应
剩下的就依照GoogleCode里面教程一步步做就好。很容易。
-- OpenCV by Cpp:(参考的这里:http://stackoverflow.com/questions/8394678/compiling-a-basic-opencv-program-on-mac-os-x-10-7)
首先下载并安装pkg-config: http://nchc.dl.sourceforge.net/project/macpkg/PkgConfig/0.26/PkgConfig.pkg
这个pkg-config安装完之后,并没有自动添加到$path里面,需要用户手动添加:
1)找到pkg-config的path(可以在spot-light里面输入pkg-config来运行,看看它的path是什么)。记住这个path
2)编辑 ~/.bash_profile,把上面的path加到$path里面。即,添加这一行在这个文件内:export PATH=/opt/pkgconfig/bin/:$PATH
在这里我的pkg-config文件在/opt/pkgconfig/bin/里面。
然后对自己电脑里面的文件做一个search,找到所有 *.pc的文件:sudo find / -name *.pc > pcfiles.txt
然后进去那个pcfiles.txt(刚刚search的结果保存这里了),找到和opencv有关的,以及其它你觉得有用的,放到PKG_CONFIG_PATH这个variable里面:
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig/:$PKG_CONFIG_PATH
(以上这一行同样添加进~/.bash_profile这个文件内)
以上步骤结束之后,需要重新开启一个新的terminal(所以以上的那些自定义的path才能够被load进对应的variable)。然后,写一个test的opencv的cpp文件。在你需要include header的时候,可以直接放比如:#include "highgui.h"
然后通过以下command来compile:(假设你的cpp文件叫做example.cpp)
g++ example.cpp -o example `pkg-config --cflags --libs opencv`
然后就恭喜你compile成功啦~:)不过这样做完之后还有个问题:无法成功解码视频(.avi目前)。仿佛是需要去Compile一个视频解码器才行,还没有试过。
- Python:
感觉对Python的支持貌似是最好的,只需要在.bash_profile里面加上:
export PYTHONPATH=/path/to/OpenCV/lib/:$PYTHONPATH (需要依照自己的环境进行相应修改)
在lib那个文件夹里面有python的.so文件。之后再进入python就可以直接import cv和cv2了;)
在Python里面不存在那个视频无法解码的问题,支持很好。