MAC平台下Xcode配置使用OpenCV的具体方法 (2016最新)

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.com/Homebrew/install/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

点击工程,选择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 (这里包含了所需要的库文件).

2.2.3

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

至此,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版本问题还是什么原因,配置过程相对来说要稍简单一些.

最后上一张自己跑出来的图

这篇文章算是小弟的处女作,各位读者如果哪里有疑问或者问题,各位大大们如果有什么好的意见或者建议,欢迎与小弟交流沟通,小弟不胜感激??????

时间: 2024-10-21 01:12:48

MAC平台下Xcode配置使用OpenCV的具体方法 (2016最新)的相关文章

Mac平台下的Qt程序在Windows下执行编译运行出现的中文乱码问题

Mac平台下的Qt程序在Windows下执行编译运行时,QString::asprintf()部分会出现的中文乱码问题,之前已经使用QStringLiteral宏解决了一个中文乱码问题: 但是此种情形单凭QStringLiteral宏解决不了. 原因: mac下采用MinGW编译,在Windows下可能是MinGW,也可能是MSV2017等VS编译器编译.如果win平台下是MinGW编译,在mac下写好的程序在win平台下运行不会出现乱码: 如果win下是MSV2017编译就会出现中文乱码,需要

[openCV]Mac平台下openCV的搭建(Xcode + openCV 2.4.10)

1.序言 从今天开始,开始使用Mac来跑openCV了.开始感觉其实应该开发阻力不是太大样子,事实上来讲,其实比Windows要繁琐一些呢.现时点的配置为 os x yosemite 10.10.3 openCV 2.4.10(现时点的最新版本为:3.0 RC1) Xcode Version 6.3.2 (6D2105) 在这个配置下,我按照如下步骤搭建了我的openCV平台. 2.配置环境的步骤 2.1 openCV的选择 刚才也说了,现时点openCV的最近版本为openCV 3.0 RC1

mac平台下LuaJIT-2.1.0-beta2 编译android i686-linux-android-clang: Command not found

今天更新luajit2.1beta2时,编译android一直报错. /Applications/Xcode.app/Contents/Developer/usr/bin/make -C src make[1]: /Users/apple/android/android-ndk-r10c//toolchains/x86-4.9/prebuilt/darwin-x86_64/bin/i686-linux-android-clang: Command not found make[1]: /User

MAC平台下mysql的安装

1.下载mysql(DMG格式64位的版本) http://dev.mysql.com/downloads/mysql/5.5.html 2.安装mysql 运行dmg,会发现里面有4个文件.首先点击安装mysql-5.5.27-osx10.6-x86_64.pkg,这是MySQL主安装包.一般情况下,安装文件会自动把MySQL安装到/usr/local下的同名文件夹下.如运行“mysql-5.5.27-osx10.6-x86_64.dmg”会把MySQL安装到“/usr/local/mysql

Windows平台下Python2.7中pip的安装方法

本文允许转载,转载请保留全文! [请先阅读][说明&总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 文件下载 需要下载并运行ez_setup.py和get-pip.py 地址分别为: ez_setup.py: https://pypi.python.org/pypi/setuptools get-pip.py: https://pip.pypa.io/en/latest/installing.html 2. ez_setup.py执行失败

win7平台下React-Native Android:Unable to upload some APKs

一.问题描述 根据网络上的Win7平台下React-native配置教程配置好开发环境的过程中,在艰难进行到react-native run-android这一步时,发现一直出现错误,截图如下: 错误的说明信息表明是 Ubable to upload some APKs.经过网上搜索最后在这里(http://www.hacksparrow.com/react-native-android-unable-to-upload-some-apks.html)得到了一个比较全面的答案,我简单地翻译一下原

Windows平台下Git服务器搭建

该文章转自:http://www.codeceo.com/article/windows-git-server.html 第一步:下载Java,下载地址:http://www.java.com/zh_CN/ 第二步:安装Java.安装步骤不再详述. 第三步:配置Java环境变量. 右键”计算机” => ”属性” => ”高级系统设置” => ”高级” => “环境变量” => “系统变量”. 新建: 变量名:JAVA_HOME 变量值:D:\Program Files (x8

《转》Windows平台下Git服务器搭建

该文章转自:http://www.codeceo.com/article/windows-git-server.html Windows平台下Git服务器搭建 第一步:下载Java,下载地址:http://www.java.com/zh_CN/ 第二步:安装Java.安装步骤不再详述. 第三步:配置Java环境变量. 右键”计算机” => ”属性” => ”高级系统设置” => ”高级” => “环境变量” => “系统变量”. 新建: 变量名:JAVA_HOME 变量值:D

(转)在Mac下使用OpenCV, 在Xcode下使用OpenCV (非常基础,详细)

转自:http://blog.sciencenet.cn/home.php?COLLCC=3456986939&COLLCC=3456885714&mod=space&uid=702148&do=blog&quickforward=1&id=657754%20%E5%9C%A8Mac%E4%B8%8B%E4%BD%BF%E7%94%A8OpenCV%EF%BC%8C%20%E5%9C%A8Xcode%E4%B8%8B%E4%BD%BF%E7%94%A8Ope