[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。我一开始也选择了使用openCV 3.0 RC1,然而在配置完之后,程序编译无法通过,有一个头文件貌似无法找到。当时也忘记了截图,后续等3.0 RC1更新后,我再尝试更新吧,那时候有还是有问题的话,我再把截图放上来。

2.2 安装openCV的前置准备

  • 安装brew

    这个软件挺强大的,是Mac平台下一个套件的管理工具。可以使用一个命令,就可以来install与uninstall一个套件。其官网(http://brew.sh/index_zh-cn.html)写了入手的方法。

    在终端窗口中,输入如下脚本

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

  • 安装CMake

    CMake是一个跨平台的编译工具,这个也是一个必须的工具。由于我们安装了Homebrew,此时就可以在终端里输入以下命令,来install CMake。

    sudo brew install cmake

这里需要权限。

  • IDE的选择:Xcode的安装

    其实这里有很多的选择,我选择了使用Apple自带的Xcode去进行openCV的运行。这里挺简单的,直接download就可以了。

2.3 openCV的安装

从这里开始进行openCV的安装,首先将下载好的zip文件解压,放到特定的路径下。终端内,通过命令cd进入到该路径下。然后执行下列代码

  cd <path-opencv>
  mkdir release
  cd release
  cmake -G "Unix Makefiles" ..
  make 

按照以上步骤,可以将openCV安装好。这里有个问题,我使用openCV 2.4.10安装的时候,有个地方会跳两个Error。

error: comparison of array ‘this->latestPoints‘ not equal to a null pointer is always true
  [-Werror,-Wtautological-pointer-compare]
if (latestPoints != NULL)

error: address of array ‘this->latestCounts‘ will always evaluate to ‘true‘ [-Werror,-Wpointer-bool-conversion]
if( latestCounts )

这两个Error来自于calibfilter.cpp这个文件,需要修改里面的一部分代码之后,就能通过安装了。具体的可以参考这个博客,说的很详细了。

在MacOS10.10安装OpenCV2.4.10遇到的问题和解决办法

按照这里面的链接,在指定的几个地方修改代码之后,就可以安装上openCV 2.4.10了。

  • 在路径/usr/local/include下会生成opencv与opencv2子文件夹,里面包含了许多opencv的头文件。
  • 在路径/usr/local/lib下也会生成opencv的相关的库。

2.4 openCV的卸载

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

3.在Xcode下建立一个openCV project

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

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

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

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

  • 这里其实还需要check一下 C++ standard library 是否为libstdc++。
  • 最后,为工程添加所必须的.dylib文件。在工程下新建个文件夹openCV_Frameworks,右键选择Add Files to..

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

  • 到此为止,mac下使用Xcode就可以开是进行openCV的开发了。测试用代码如下所示,从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;
}

执行结果如下图所示。

4.结言

到此,已经可以在Xcode下愉快的和openCV君玩耍了。其实想说的是,在安装openCV 2.4.10的时候,还是会弹出一些warring, 或许在以后的开发中,会有些问题吧。嘛,到时候再说咯。

原文发于博客:http://blog.csdn.net/thnh169/

参考文献

[1]Develop With OpenCV on Mac :http://hujiaweibujidao.github.io/blog/2014/03/13/develop-with-opencv-on-mac-os-x/

[2]OpenCV 2.4.6 + mac Xcode 4.6 安裝教學 : http://vincecc.blogspot.jp/2013/09/opencv-246-mac-xcode-46.html

[3]在MacOS10.10安装OpenCV2.4.10遇到的问题和解决办法 : http://blog.sina.com.cn/s/blog_6a740b360102ve3s.html

[4]OpenCV on Mac OSX: A step-by-step guide :

http://tilomitra.com/opencv-on-mac-osx/

[5]在MacOS和iOS系统中使用OpenCV : http://blog.devtang.com/blog/2012/10/27/use-opencv-in-ios/

=============更新日志===================

2015 - 5 - 25 初版

时间: 2024-11-05 21:49:05

[openCV]Mac平台下openCV的搭建(Xcode + openCV 2.4.10)的相关文章

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

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

《转》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平台下的Qt程序在Windows下执行编译运行出现的中文乱码问题

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

Windows 平台下Git 服务器搭建

由于项目中一直在使用git作为版本管理,自己对git的理解.使用都还不是怎么的熟悉,所以准备深入了解一下git及一些常用命令的使用,于是干脆把服务端架上,通过自己的PC作为服务端同时作为客户端的角色进行折腾了...本文主要介绍在Windows平台下Git服务器的搭建,如下: 一:下载java,地址:http://www.java.com/zh_CN/ 二:安装Java.安装步骤不再详述. 三:配置Java环境变量. 右键 计算机->属性->高级系统设置->高级->环境变量->

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

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

Windows平台下PHP环境搭建

在Windows平台上搭建PHP的开发环境可以下载WAMP(Windows.Apache.MySQL.PHP的首字母缩写)集成化安装包.这样就不需要单独安装Apache.MySQL和PHP了. 这款软件在安装的过程中就已经把Apache.MySQL.PHP继承好了,而且也做好了相应的配置,除此之外,还加上了SQLitemanager和Phpmyadmin,省去了很多复杂的配置过程,让我们能把更多的时间放在程序开发上.更值得高兴地是这款软件也是完全免费的,大家可以登录http://www.wamp

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

转载: Oracle10g下载地址--多平台下的32位和64位 2012-07-31 10:18:44

前段时间ORACLE把10G的下载从官网拿掉了 ,许多童鞋不知道ORACLE 10g 的下载地址,这里我附上oracle 10g 下载的链接,方便大家下载.      点击链接使用迅雷即可下载.           4种包的介绍:                     ***_database_*.zip                 是oracle数据库 服务端 软件的安装包,如果你要创建一个数据库,请下载这个版本                     ***_client_*.zip