设为首页 收藏本站
查看: 1083|回复: 0

[经验分享] MAC平台下Xcode配置使用OpenCV的具体方法 (2016最新)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-10 09:04:58 | 显示全部楼层 |阅读模式

1.序言:

1.1 背景

      本人小白一枚,不过因为最近在从事机器视觉方面的工作,所以接触到OpenCV.

      因为工作需求,本人要在MAC端使用OpenCV实现一些视觉功能,配置环境成了最大的阻碍,网上查了很多相关资料和博客,都因为版本环境问题屡试屡败,不过经历重重尝试,笔者最终还是配置成功并运行了自己的源码.当然成功的关键还是因为笔者站在了巨人的肩膀上,借鉴了很多网上的教程,为了不误导大家配置的过程,参考文章的地址统一放在文章里,望各位大大看见之后能够理解,废话不说进入正题.

1.2 环境说明

      如果读者的工作环境和笔者的环境相同或类似,那都可以直接按照下面的方法来实现:     

      先上图说明下笔者的环境:

      mac系统:

      Xcode版本:

   

      OpenCV版本:(笔者在写这篇文章的时候OpenCV官网的版本已经出到了3.1,不过为什么不使用最新版本,其实并不是我不想用??,下面会说明原因??)


2.具体步骤:

2.1 准备工作

2.1.1  

       首先不要从官网下载OpenCV(笔者按照网上的其他教程提前下载好之后都出现了各种问题,如果你已经下了也无所谓,反正后面也不用它??),mac上只要有Xcode就好了.

2.1.2  

      下载安装Homebrew,下面简称brew,想深入了解brew的朋友可以自行百度或者进入官网查看,笔者给出理解是:brew是一个可以下载、更新并卸载 Mac 上的一些软件工具的软件包管理器,很强大(个人理解的很肤浅,没能将brew的强大描述出来,欢迎各位专业人士帮忙点评指导,小弟在此跪谢????),brew的下载安装不能再简单,按着下面的步骤来就可以.

       (??有朋友可能会问,安装brew干嘛用的啊??答:它就是之后用来自动下载OpenCV库的,所以第一步我说了不用自己从OpenCV官网下载.??那么就有朋友又会问自己在官网下载不行么??答:反正小弟是没有成功)  以下操作都是在终端进行.(在终端依次执行下面红色脚本命令即可!)

      1) 打开终端:回车/回车/回车(个人习惯,读者不用管)复制粘贴下面脚本:

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

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

      ruby -e "$(curl -fsSL https://raw.githubusercontent.co ... ll/master/uninstall)"

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

     这里有肥兔大大的一篇随笔可以看下:Homebrew简介及安装(看看就行,操作还是按笔者的步骤来).

      出现Installation successful 就说明已经安装成功了,输入执行brew help能查看brew的具体用法.

      2) 为了保证套件的完整,接着执行官网的建议脚本,安装wget.(其实我也不知道这个东西是干嘛,反正有好没坏,最后成功了):

      brew install wget

      直接复制粘贴,然后让brew自己装吧,真的是好方便.等待安装完成,都很快的.这里由于我安过了,所以:

      3) 接着装cmake,这个是必须要装的,具体作用问度娘.

      brew install cmake

      同样直接复制粘贴,如果你想自己敲也是没有任何问题的.  同样笔者已经装过了:

      4) 重点:这里就是不同于网上大部分mac配置opencv方法之处,让brew帮我们下载OpenCV,而不是自己上OpenCV官网下载,切记,我从头到尾都不会让读者上官网去下载,因为我没有成功,这里感谢提出这种方法的大大mac下配置openCV(看看就行,毕竟文章很早了).

      brew install opencv

      这里直接执行这个命令可能会报一个小小的错,不过无关紧要,大概意思就是不能直接找到这个命令,终端会自己接着找,然后会告诉你正确的命令应该怎么写,由于当时没有截图,所以具体命令我不记得了,实在抱歉,大家只要稍微有点英语基础,大概看下终端弹出来的描述,就能够知道具体应该执行的命令行了,这里应该是会提示出两个命令,选择关键字是opencv的执行即可,执行后brew会自动下载opencv,上图:

      这就是我最后装的OpenCV的版本,这就是为什么我不用最新的版本(因为根本没得选??????),不过大家放心,brew既然选择了这个版本自然有他的理由,读者也不用纠结这个问题,旧一点的版本不一定就不好.

     至此,该下载的都下载好了,准备工作就ok了!!上一张最后下好的本地目录:

      /usr/local/Cellar目录下的文件都是brew帮我们下载好的,里面的cmake,wget,opencv是我们自己下载的,其他的都是brew帮我们下的(应该都是有用的东西,什么都不要我们管,很方便有没有).

2.2 在Xcode中使用OpenCV

2.2.1

     创建一个空的command line 工程:选择OS X -> Application -> Command Line Tool->Next;填写自己的product名,选择语言为C++,选择自己存放的目录,ok!

2.2.2


安装好 OpenCV 后,在 /usr/local/include 下应该能看到 opencv2 文件夹,在 /usr/local/lib 下能看到这样的文件:这说明已经安装成功了。
打开/usr/local/Cellar/opencv/2.4.13.1/lib目录(同样点击下空白桌面,然后shift+command+g)这个目录之前带大家看过一次就是brew帮我们下载的opencv目录下的lib目录,然后大家按照文件种类排序可以看到一些.dylib文件:
这说明已经安装成功了。
打开 Xcode,对工程进行如下设置










然后在.cpp文件内添加 #include <opencv2/opencv.hpp> 即可。





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

       这里献上一段zhoufan大大的测试代码,测试用代码如下所示,从Mac自带的摄像头读入图像,然后canny提取了边缘然后显示。

////  main.cpp//  Camera_Capture////  Created by zhoufan on 15/5/24.//  Copyright (c) 2015年 zhoufan. 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, 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;}

      这里声明:后期xcode里的配置工作也有一些地方参考了zhoufan大大的博客文章 [openCV]Mac平台下openCV的搭建(Xcode + openCV 2.4.10)

3.结言:

      配置工程总是经过很多次尝试才成功的,本文与其他网文中关于Xcode里的配置略有不同,仅仅是加了2个Search路径,剩下的都是默认值,不做改变,没有改变Apple LLVM Language C++,也没有往Link Binary With Libraries里加入其它的库类,仅仅是下载下来的18个OpenCV库,不知道是因为Xcode版本问题还是什么原因,配置过程相对来说要稍简单一些.






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-298243-1-1.html 上篇帖子: mac下php环境apache httpd-vhosts.conf 下篇帖子: Vagrant 1.8.7 不能下载box的bug
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表