MAC系统安装opencv

来源:互联网 发布:js监听按钮点击事件 编辑:程序博客网 时间:2024/06/13 23:48

1.Homebrew安装

Homebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,可以说就是mac下的apt-get、yum神器。

Homebrew的安装非常简单,打开终端复制、粘贴以下命令,回车就可以了

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


安装过的童鞋就不用再安了,如果安装过再执行这条命令就会提示你:你的电脑已经安装过brew,如你想要重新安装必须要先执行下面的脚本:

      ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

      想必大家也知道什么意思了.脚本最后的install就是安装,uninstall就是卸载.

Homebrew常用的

搜索软件:brew search 软件名,如brew search wget

安装软件:brew install 软件名,如brew install wget

卸载软件:brew remove 软件名,如brew remove wget

更多的?自己去官网找 http://brew.sh/index_zh-cn.html

2. 安装cmake

在终端中输入:“brew install cmake”,自动安装cmake。

3.下载opencv for mac安装源文件,解压缩到opencv文件夹

    进入存放解压后的opencv文件夹,新建一个空的文件夹release,进入该文件夹,编译安装opencv,使用命令如下:

       mkdir release
       cd release
       cmake -G "Unix Makefiles" ..        (注意后面的..其实就是上以级目录,那是 openCV source folder)
    完成之后进行安装
       make(扫描编译依赖包,需要一段时间)
       sudo make install

安装好的lib文件存放在“/usr/local/lib”文件夹,h文件存放在“/usr/local/include”。
       至此,opencv for Mac 安装完毕,参考的网址如下:
       http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation
       http://tilomitra.com/opencv-on-mac-osx/
  •      在路径/usr/local/include下会生成opencv与opencv2子文件夹,里面包含了许多opencv的头文件。
  •      在路径/usr/local/lib下也会生成opencv的相关的库。

4.openCV的卸载

     卸载也挺简单,回到release目录下,执行命令sudo make uninstall就妥妥的了。然后,需要手动清理一下/usr/local/这个目录下,关于opencv的一些相关文件。

5.在Xcode下建立一个openCV project

  • 首先打开事先准备好的Xcode,在下面这个一个界面里选择OS X -> Application -> Command Line Tool
技术分享


  • 填写自己的product的名字,然后选则语言为C++。

技术分享

  • 需要为新建的工程指定Header搜索路径。这里,填入/usr/local/include/usr/local/include/opencv就可以了。

技术分享

  • 需要为新建的工程指定Library搜索路径。这里,填入/usr/local/lib

技术分享


  • 对工程进行如下设置 (点击“+”->“Add Other”->"shift+command+G"找到/usr/local/lib目录下的库文件)

    转到路径/usr/local/lib内去寻找程序必须的.dylib文件,这里为了方便,我将所有的.dylib文件都添加入了工程内。

  • 复制下面代码可以试运行。
#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;IplImage* doCanny(IplImage* image_input,                  double lowThresh,                  double highThresh,                  double aperture){    if(image_input->nChannels != 1)        return (0);    IplImage* image_output = cvCreateImage(cvGetSize(image_input),                                           image_input->depth,                                           image_input->nChannels);    cvCanny(image_input,image_output,lowThresh,highThresh,aperture);    return(image_output);}int main(int argc, char* argv[]){    cvNamedWindow("Camera" , CV_WINDOW_AUTOSIZE );    CvCapture* capture = cvCreateCameraCapture(CV_CAP_ANY);    assert(capture != NULL);    IplImage *frame = 0;    frame = cvQueryFrame(capture);    IplImage *frame_edge = cvCreateImage(cvGetSize(frame),                                         IPL_DEPTH_8U,                                         1);    while(1)    {        frame = cvQueryFrame(capture);        if(!frame) break;        cvConvertImage(frame,frame_edge,0);        frame = cvCloneImage(frame_edge);        frame_edge = doCanny(frame_edge,70,90,3);        cvShowImage("Camera",frame_edge);        char c = cvWaitKey(15);        if(c == 27)  break;    }    cvReleaseCapture(&capture);    cvReleaseImage( &frame_edge );    cvReleaseImage( &frame);    return (int)0;}