美文网首页
包教包会 | (2018最新)mac下配置opencv2.X+x

包教包会 | (2018最新)mac下配置opencv2.X+x

作者: KoalaT | 来源:发表于2018-05-15 18:45 被阅读0次

    1. 背景

    踩了无数坑之后,终于把opencv2.X+xcode的环境弄好了,看了很多配置的博客,都是时间比较早的,所以我写篇文章总结一下,让大家少走弯路吧。(小白一枚,有错轻拍)

    2. 环境

    mac系统


    mac系统.png

    xcode


    xcode版本.png
    opencv版本
    opencv版本.png

    3. opencv安装

    3.1安装homebrew和其它

    3.1.1 homebrew没有安装的朋友,先安装homebrew安装过的忽略

    打开终端,输入以下命令:
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    出现install successful就表明安装成功

    image.png

    3.1.2 安装wget

    命令:
    brew install wget
    我这里已经安装过了

    image.png

    3.1.3 继续安装cmake

    命令:
    brew install cmake
    我这里已经安装过了

    image.png

    3.2 通过homebrew安装opencv2.X

    重头戏来了
    如果想要安装opencv3,输入命令
    brew install opencv
    如果想要安装opencv2,输入命令
    brew install opencv@2
    这里就是个小坑,因为2和3的语法变化还是蛮大的,所以在安装前一定要注意!!

    安装成功的图.png
    默认路径为:/usr/local/Cellar/opencv@2
    到这里opencv算是安装成功了。

    4.xcode配置

    直接上图:

    4.1

    image.png

    4.2

    image.png

    4.3

    image.png

    4.4

    image.png

    4.5

    image.png

    Header Search paths:头文件路径
    library search paths:opencv里lib文件位置
    这里值得注意的是:

    1. 一定要查看自己安装的opencv的头文件目录,很多人和我的路径并不一样,其他人微博上有header search paths在/usr/local/inlucde路径下的,所以一定要找到自己opencv和opencv2的文件夹!如果这里出错,在xcode写完代码后opencv头文件时会报错,表明opencv/opencv2 not found
      这里是我的路径:

      image.png
    2. library search paths的路径,这里就是在opencv@2文件夹下的lib(这里按默认安装位置的话应该和我的路径一致)


      image.png

    4.5 在项目目录下新建group并命名(我命名为head)

    image.png

    4.6 按command+空格输入/usr/local/Cellar进入Cellar目录然后进入opencv的lib目录下

    image.png
    image.png

    4.7 把所有右下角不带箭头的.dylib文件全部拖入刚刚新建的group里

    如图中的这些文件,我一共有18个文件


    image.png

    拖好之后就是这样


    image.png

    4.8 然后就可以开始写代码了

    image.png

    5. 实例代码(从Mac自带的摄像头读入图像,然后canny提取了边缘然后显示。)

    从大佬那里偷来的代码,博客上都有

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

    结果:


    image.png

    6. over

    不知道有没有讲清楚,希望大家一次配置成功!如有问题请随时指教!

    相关文章

      网友评论

          本文标题:包教包会 | (2018最新)mac下配置opencv2.X+x

          本文链接:https://www.haomeiwen.com/subject/iusydftx.html