MAC平台下Xcode配置使用OpenCV的具体方法

  1. 打开终端,复制粘贴下面脚本:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

你的电脑如果已经安装过brew了,如你想要重新安装必须要先卸载homebrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
  1. 为了保证套件的完整,接着执行官网的建议脚本,安装wget:
    brew install wget

  2. 接下来就利用Homebrew来安装cmake:

    brew update
    brew upgrade
    brew install cmake

  3. 重点:安装opencv
    第一种方法:利用homebrew安装opencv

brew search opencv
brew install opencv
// 安装完成之后检查一下依赖:
brew info opencv

Easy install for beginners

brew install opencv3 --with-contrib 

For intermediate and advanced users.

brew install opencv3 --with-contrib --with-cuda --with-ffmpeg --with-tbb --with-qt5
brew install opencv3 --with-contrib --with-cuda --with-gphoto2 --with-gstreamer --with-jasper --with-libdc1394 --with-opengl --with-openni2 --with-tbb --with-vtk --with-java  --without-opencl

第二种方法:
去官网上下载OpenCV,链接地址http://opencv.org/downloads.html (国内可能略卡,打不开的请自行墙)
选择“OpenCV for Linux/Mac”进行下载
打开下载目录,双击解压opencv-3.1.0,到该路径下,然后新建一个release文件夹,再进到release文件夹下。

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

然后输入make就开始编译了,在OS上编译速度就是比Win上快。大概十分钟编译完毕,最后输入sudo make install进行安装,安装花的时间也挺久的,要十来分钟。

至此OpenCV就算安装完毕了。
在路径/usr/local/include下会生成opencv与opencv2子文件夹,里面包含了许多opencv的头文件。
在路径/usr/local/lib下也会生成opencv的相关的库。
关于如何查找这个“/usr/local”,打开Finder,按住Command+Shift+G,然后输入/usr/local回车就进去啦,OS下很多文件是隐藏的,通过这种方法就能进去,其它方法百度上很多,就不一一列举了。

创建工程

击工程,选择TARGETS->右侧选择All->Build Settings -> 搜索框输入search paths ->选择search paths下面的Header Search Parhs ->双击后面的详细信息添加指定路径:/usr/local/include (大家可以点击空白桌面按shift+command+g前往该目录下查看,这里目录里有刚才下好的OpenCV库的头文件)
选择search paths下面的Library Search Parhs ->双击添加指定路径:/usr/local/lib (这里包含了所需要的库文件).

111.png

222.png

右击工程new一个group,然后打开/usr/local/Cellar/opencv/2.4.13/lib目录(同样点击下空白桌面,然后shift+command+g)这个目录之前带大家看过一次就是brew帮我们下载的opencv目录下的lib目录,然后大家按照文件种类排序可以看到一些.dylib文件,将这些.dylib文件拖入刚才新建的文件夹下.我这里是18个文件,网上有说要加所有后缀是dylib文件,其实左下角带箭头的那些不用管.

至此,mac Xcode里配置OpenCV就大功告成了!!!是不是很简单你都不敢相信,接下来你就可以在main.cpp文件里编译你的OpenCV工程了!!!

这里献上一段测试代码:

//
//  main.cpp
//  OpenCV_1
//
//  Created by 龙虾 on 2016/11/17.
//  Copyright © 2016年 龙虾. All rights reserved.
//

#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, const 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;
}


推荐阅读更多精彩内容