mac下编译安装opencv

来源:互联网 发布:java 日志监控框架 编辑:程序博客网 时间:2024/05/16 17:59

这篇博文总结一个在Mac os10.11上和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

设置环境变量:exportPATH=/Applications/CMake.app/Contents/bin:$PATH

通过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)

<code style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif;"><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">g</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">++</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;"> example</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">.</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">cpp </span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">-</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">o example </span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">`</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">pkg</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">-</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">config </span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">--</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">cflags </span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">--</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">libs opencv</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">`</span></code>
然后就恭喜你compile成功啦~:)

不过这样做完之后还有个问题:无法成功解码视频(.avi目前)。仿佛是需要去Compile一个视频解码器才行,还没有试过。


- Python:

感觉对Python的支持貌似是最好的,只需要在.bash_profile里面加上:

export PYTHONPATH=/path/to/OpenCV/lib/:$PYTHONPATH  (需要依照自己的环境进行相应修改)

在lib那个文件夹里面有python的.so文件。之后再进入python就可以直接import cv和cv2了;)

在Python里面不存在那个视频无法解码的问题,支持很好。

0 0
原创粉丝点击