Mac OS X 安装 OpenCV2.4.3【详述】

最近给MacBook装OpenCV走了很多弯路,读了很多帖子和Blog,但感觉都和我遇到的情况有些不同,他们的博客也写的很简略,所以出于以上几点原因加上想做一下备忘,写了这篇很详细很冗长的Blog。

-----------------------------------------------------------------------------------------------------------

【环境】黑苹果 Snow Leopard 10.6.8 + XCode4.2 + OpenCV2.4.3

【方法】Homebrew 安装 OpenCV 2.4.3

=============================================================

摘要:

(1)用Homebrew为MacOS X安装 Opencv + XCode 调用Opencv详细步骤

(2)为什么不用MacPorts安装Opencv

(3)黑苹果装Opencv遇到的一些事情

=============================================================

【# 1 #】用Homebrew为MacOS X安装 Opencv + XCode 调用Opencv详细步骤

步骤概要(下文有对这些步骤的超级详述,不懂哪里,看哪里)

【#】如果你的机器已经装了macports,那么在安装homebrew前要先卸载掉macports,二者不兼容

【a】安装Homebrew

【b】用brew selfupdate  更新 Homebrew

【c】用brew install cmake  安装cmake

【d】用brew install opencv 安装opencv

【e】将XCode的编译器改为LLVM GCC 4.2

【f】将opencv的动态库手动拖入“工程”中

【g】运行你的opencv程序!

对上述步骤的超级详述:

(#)卸载MacPorts:

在Terminal中输入: sudo port -f uninstall installed
在Terminal中输入: sudo rm -rf \
/opt/local \
/Applications/DarwinPorts \
/Applications/MacPorts \
/Library/LaunchDaemons/org.macports.* \
/Library/Receipts/DarwinPorts*.pkg \
/Library/Receipts/MacPorts*.pkg \
/Library/StartupItems/DarwinPortsStartup \
/Library/Tcl/darwinports1.0 \
/Library/Tcl/macports1.0 \
~/.macports

(1)安装Homebrew:(需要Ruby)

注:因为snow leopard 上已经自带Ruby了,所有可以不用自己安装Ruby(通过ruby -v 这条命令在Terminal终端上可以查看装在你机器上的Ruby的版本,也可以用这个方法看一下,你的机器上是否已经装好Ruby啦,如果没有装Ruby则要安装Ruby,安装步骤可以google,很简单)。

看一下Homebrew的官网: http://mxcl.github.com/homebrew/ 进入后,将其拉到最下面,可以看到安装方法,你只要在Terminal(终端)中输入:

ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"

注:不要在前面加sudo否则会有错误提示,但没事,再输入一次正确的即可。

(2)更新Homebrew,在Terminal中输入:brew selfupdate  然后回车,即可

(3)安装cmake, 在Terminal中输入: brew install cmake 然后回车,即可

(4)安装opencv, 在Terminal中输入: brew install opencv 然后回车, 即可

(5)等待其安装完成,至此opencv已经安装在你的macbook上啦,现在的版本是opencv2.4.3

(6)打开XCode,新建一个Command Line Tool 工程,下一步选“C++”

(7)现在你可以写一个小的opencv程序试一下:例如

#include

#include

#include

int main(int argc, char** argv)

{

        cvNamedWindow("Image", CV_WINDOW_AUTOSIZE);

        IplImage *img=cvLoadImage("/Users/用户名/Pictures/hello.jpg", CV_LOAD_IMAGE_ANYCOLOR); //一定注意:在mac下,这里要填写对你图片的路径哦!

        cvShowImage("image", img);

        cvWaitKey(0);

        cvReleaseImage(&img);

        cvDestroyWindow("image");

        return 0;

}

大家会发现,现在的XCode已经可以自动完成OpenCV的库函数啦,但如果编译的话还会有很多错误,往下看。

(8)把编译器改为“LLVM GCC 4.2”:

点击你的“项目”(左边最上面蓝色的那个,点一下),然后右边会出一大堆东东,中间偏左,有PROJECT 和 TARGETS 字样,点击 灰色的PROJECT下面你的“工程”,然后在右面上侧选择“All”,然后往下看,找到“Build Options”那块,第二项(第二条)就是编译器,它默认的是"Apple LLVM Compiler 3.0", 你点一下这个东东,它会弹出选项,选LLVM GCC 4.2即可。之后你在点击PROJECT下面的TARGETS那个黑色的东东,看一下它的“Build Options”,现在应该也被改为了LLVM GCC 4.2 啦。

(9)将OpenCV的动态库手动拖入项目:

在XCode中你的工程下建立一个NewGroup(方法:右键你的工程(左上,蓝色的那个)然后点击“New Group”)

然后,打开你的“Finder”(就是你mac下面那个条上,长的像人脸那个图标)然后此时,你同时按住  Shift  Command  g  这三个建, 然后会弹出来一个对话框,你在里输入“/usr/local”然后回车,它会转入local文件夹下,然后你按如下顺寻进入: Cellar-->opencv-->2.4.3-->lib  你现在已经进到了lib文件夹啦,你会看到一大堆以“dylib”结尾的文件,这些就是“动态库”,然后你找到以下三个动态库:

       [a]    libopencv_core.2.4.3.dylib  

       [b]    libopencv_highgui.2.4.3.dylib

       [c]    libopencv_ml.2.4.3.dylib

把它们选中后(按住command建就可以多选)点住,直接拖到你在XCode中刚建好的那个NewGroup文件夹里,然后XCode会弹出个对话框,注意,不要勾选 “Copy items into destination group's folder (if needed)”, 然后点击“Finish”

(10)运行你写的opencv程序

OK,至此,你已经完成了全部工作,会到你的XCode下,运行你的程序,一切搞定!


-----------------------------------------------------------------------------------------------------------

【# 2 #】为什么不用MacPorts安装OpenCV:

很多帖子上的人都是用macports安装的opencv,可能也很成功,但不懂他们是怎么弄的,如果哪位大鸟在喝咖啡的时候偶然看到这篇如此自虐的Blog,请勿喷.........本小鸟只是想给大家多提供一种mac下玩opencv的途径。

一开始我也用MacPorts装OpenCV,也很方便,但没装成功,这是根本原因

(1)macports它不显示进度条和百分之几啊,有的时候下一个大的东东(例如10M的那种,呵呵),它就停在那啦,你也不知道它是还在工作啊,还是卡死在那里啦,让人总有种不踏实的感觉,心里上的折磨

(2)macports的站点貌似有些不稳定,有的时候貌似很容易断掉,尤其在天朝这种网络环境下,十分折磨

(3)我的macports无法用port upgrade outdate这条命令

(4)我的macports用port install opencv来装opencv,只是将其下载下来并解压,没有对其源码进行编译,后来我又用port build opencv来编译我的opencv,但最后貌似还是没将opencv安装成功,但也不一定,因为期间又有好多事情发生,有兴趣的且和我的macports有同样弊病的朋友们可以试一下,先port install opencv 然后再 port build opencv看看行不行,试过的留个言哈。

(5)macports检查不了你的机器上,不是用macports安装的那些软件,例如我的Apple LLVM Compiler是跟这XCode一起安装在mac上的,没用macports,但用port build opencv时,macports仍然要再下一遍Apple LLVM Compiler,然后安装它,然后才能用build命令,但Homebrew就不会这样。

(6)安装macports时,要断网安装,否则安装的最后一分钟,可能2个小时都过不去。

总之用Homebrew也是一个不错的选择,看你怎么想啦........

-----------------------------------------------------------------------------------------------------------

【# 3 #】黑苹果装OpenCV遇到的一些事情:

为什么要用黑苹果,原因很简单,因为还没买苹果呢。

(1)我的snow leopard下没有  /usr/local  这个文件夹,真的没有用Terminal查看也没有,安装了Homebrew后才有了这个文件夹,而且还看不到,可能是被系统给隐藏了,因为Homebrew下载安装的软件都在这个文件夹下,所以这个文件夹对我来说很重要,想要转到  /usr/local  文件夹下可以这样(上文已经提到过了,这里赘述一下: 同时按住   Shift   command(windows键盘的那个windows标志建)  g   这三个毽子,然后在它弹出的对话框中输入: /usr/local  然后回车即可。

(2)mac下安完opencv后写了一个”获得摄像头“的程序,用的是CvCapture *camera=cvCreateCameraCapture(0); 结果其返回“空指针”,后来才发现是因为当时,黑苹果下的摄像头没有驱动起来,之后, 重启电脑就好使啦。

(3)一开始我都是用如  “./hello.jpg”  来加载我的“项目”目录下的图片,但返回空指针,后来知道,在mac下貌似用不了相对路径,只能用  "/Users/用户名/........"  这种才行。

=============================================================

一下写了这么多,只是想打造一个稍微详细点的教程,因为在为mac安装opencv的过程中也看到很多帖子和博客,都写的很简单,很简短,很模糊,所以感觉很折磨,故现在写了这么一篇较为详细的mac下安装opencv的Blog.

如果大家还有什么关于这方面的问题或见解或方法,可以留言或Email我。

【邮@箱】lzninchina   (at)   sina   点卡姆



你可能感兴趣的:(黑苹果,Cpp,OpenCV,camera,mac,homebrew,xcode)