转自: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%A8OpenCV

    笔者属于Mac小白,最近刚入手一台macbook air,一直没有时间搭建编程环境,这两天终于挤出时间开始使用Mac系统。目前的编程工具主要为eclipse以及xcode,笔者首先选择了使用xcode,由于本人长期使用C++从事图像处理方面的工作,所以安装opencv就成了编程开始前的第一步。
 
系统环境:ML10.8.2
XCode版本:4.5.2 
OpenCV版本:2.4.3
Eclipse版本:Juno Service Release 1
 
在这里特别提醒大家:
    opencv中文官方网站介绍的“opencv在Mac OS系统下的安装方法”已经严重过期,我已经试过了,失败,而且这个方法不是opencv for mac的,而是opencv for IOS的,希望大家不要再走弯路尝试了。
 

为了方便刚刚接触mac的朋友,我在这里首先说明下opencv在mac下的形式。主要有两种:1. OpenCV for Mac  2. OpenCV for IOS 其中IOS的版本是为了让你的opencv使用在iphone或者ipad项目中的,即是给编写跑在IOS系统中的程序用的。而MAC的版本是给编写跑在MAC系统中的程序用的,这点非常重要,大家一定要根据自己的需求,而下载对应的版本。笔者就是因为开始弄不清楚这两个版本的区别而走了很多的弯路,现在和大家分享,希望有所帮助。

 
下面附上opencv官方网站的两个版本的下载链接:
目前的版本为2.4.3 http://opencv.org/downloads.html
好了,下面进入正题,笔者首先介绍OpenCV for Mac,即编写在mac系统上可以运行的C++程序。
 
一、安装OpenCV for MAC
 

1.     首先下载opencv for mac安装源文件,解压缩

2.     安装cmake程序。笔者使用的是Homebrew,在终端中输入:“brew install cmake”,自动安装cmake。

3.     进入存放解压后的opencv文件夹,新建一个空的文件夹release,进入该文件夹,编译安装opencv,使用命令如下:

       mkdir release
       cd release
       cmake -G "Unix Makefiles" ..
       make
       sudo make install
4.     安装好的lib文件存放在“/usr/local/lib”文件夹,h文件存放在“/usr/local/include”。
       至此,opencv for Mac 安装完毕,参考的网址如下:
 
二、在MAC下使用OpenCV
 

1. 新建test.cpp文件,代码如下

#include <iostream>
#include <string>
using namespace std; #include <opencv2/opencv.hpp>
using namespace cv; int main()
{
string path = "/Users/zhangxin/images/bear.jpg";
Mat img = imread(path); imshow(path, img);
waitKey(); return ;
}
 

2. 新建CMakeLists.txt文件,代码如下:

配置环境变量:

在~/.bash_profile中添加:

export OpenCV_INCLUDE_DIRS=/usr/local/include
export OpenCV_LIBS=/usr/local/lib

编写CMakeLists.txt文件:

project(test)
find_package(OpenCV REQUIRED)
include_directories( ${OpenCV_INCLUDE_DIRS})
add_executable(test test.cpp)
target_link_libraries(test ${OpenCV_LIBS})
 

3. 编译两个文件

cd <DisplayImage_directory>

   cmake .
   make

4. 运行编译好的结果

./test
 
三、在XCode中使用OpenCV
 
1. 创建一个空的command line工程。
2. 在main.cpp中粘贴以下代码:
//
//  main.cpp

//  FbyCharacterNormalization

//

//  Created by Boyuan Feng on 13-1-24.

//  Copyright (c) 2013年 Boyuan Feng. All rights reserved.

//
 
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv/cvaux.hpp>
#include <fstream>
using namespace std;
 
#define BYTE unsigned char
 

int main(int argc, const char * argv[])

{
    // insert code here...
#if 1
    //get the image from the directed path
           IplImage* img = cvLoadImage("/Users/boyuanfeng/aaa.bmp", 1);
           //NSLog(img);
           //create a window to display the image
           cvNamedWindow("picture", 1);
           //show the image in the window
           cvShowImage("picture", img);
           //wait for the user to hit a key
           cvWaitKey(0);
           //delete the image and window
           cvReleaseImage(&img);
           cvDestroyWindow("picture");
#endif
           //return
           return 0;
}
 
3. 添加lib文件:右键点击工程名,选择“Add files to..”,在文件选择对话框弹出来时输入“/”,在弹出的路径框中输入:/usr/local/lib,全选该文件夹下的全部dylib文件,添加至工程。
5. 添加lib文件查找支持: 点击工程名文件,进入“Build Settings”选项卡,在“Library Search Paths”栏中输入“/usr/local/lib”
6. 添加头文件:点击工程名文件,进入“Build Settings”选项卡,在“Header Search Paths”栏中输入:“/usr/local/include   /usr/local/include/opencv”
7. 编译运行整个工程,运行成功~~
 
四、在Eclipse中使用OpenCV
 
1. 按照正常的步骤,使用eclipse建立一个Mac C++工程,包含一个cpp文件,代码如xcode中的代码相同即可。
2. 右击工程名, 选择“Properties”,在属性配置页中选择,点击C/C++ Build, 在下拉选项中选择 Settings. 在右边的选项卡中选择 Tool Settings。
3. 在GCC C++ Compiler选项列表中选择Includes,在Include paths(-l)中添加安装好的opencv的头文件存放目录:/usr/local/include/
4. 在MacOS X C++Linker选项列表中选择Library,在Library search path (-L)中添加安装好的opencv Lib文件存放目录:/usr/local/lib/
5. 在MacOS X C++Linker选项列表中选择Library, 在Libraries(-l) 中依次点击“+”号,添加需要使用的Lib文件(通常情况下,使用前三个):
opencv_core opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_features2d opencv_calib3d opencv_objdetect opencv_contrib opencv_legacy opencv_flann
6. 重新build all工程,大功告成~~*^_^*

(转)在Mac下使用OpenCV, 在Xcode下使用OpenCV (非常基础,详细)的更多相关文章

  1. Mac Xcode下配置OpenGL

    暂时搁置一下iOS,又要去弄一些杂七杂八的东西了,毕竟是学校的作业,还是要完成的. 作业是让我们用OpenGL做一个茶壶- -.而且要三维立体能旋转的那种. 好吧这些都不是重点,重点是我最终决定在Ma ...

  2. IOS+openCV在Xcode的入门开发(转)

    看这篇文章之前先看看这个地址:OpenCV iOS开发(一)——安装 昨天折腾了一天,终于搞定了openCV+IOS在Xcode下的环境并且实现一个基于霍夫算法的圆形识别程序.废话不多说,下面就是具体 ...

  3. IOS+openCV在Xcode的入门开发

    昨天折腾了一天,终于搞定了openCV+IOS在Xcode下的环境并且实现一个基于霍夫算法的圆形识别程序.废话不多说,下面就是具体的折腾流程: ---------------------------- ...

  4. 【从零学习openCV】IOS7下的openCV开发起步(Xcode5.1.1&amp;openCV2.49)

    前言: 开发IOS7已经有一月的时间了.近期在准备推研的事,有点想往CV方向发展.于是開始自学openCV. 关注CSDN已经非常久了.也从非常多博主那学到了非常多知识,于是我也从这周开启自己的blo ...

  5. 在MacOSX下使用Github管理Xcode代码

    版本控制应该算是每个程序员所必备的技能,这个重要性,我就不多说了哈.现在版本控制基本上就是两种途径:SVN和Git.对于SVN我并不是非常了解,只知道在Windows下非常实用,但是在MacOSX下, ...

  6. 【从零学习openCV】IOS7下的人脸检測

    前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app,总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习ope ...

  7. Xcode下的中文乱码问题

    Xcode下的中文乱码问题 转载自:http://linyehui.me/2014/07/09/convert-gbk-to-utf8-on-mac.html =========== 问题原因 绝大部 ...

  8. Windows 以及 Xcode下编译调试 libcurl 源码

    curl 这个工具大家都很熟悉. 前几天因为要跟踪curl的实现细节, 不得不设法搭建curl的调试工程. 我们分别在windows visual studio 和 mac 上的 xcode 下搭建调 ...

  9. xcode下的DerivedData

    在模拟器运行的情况下经常会出现以下的错误: error: remove /Users/mac/Library/Developer/Xcode/DerivedData/YuQing-amkrrucjrn ...

随机推荐

  1. PHP文件下载方式

    <?php// 不能是中文目录,其实如果是 .rar, .zip 类的这些文件,直接连接就可以下载了!function download($file_dir,$file_name)//参数说明: ...

  2. H5小内容(五)

    Geolocation(地理定位)   基本内容     地理定位 - 地球的经度和纬度的相交点     实现地理定位的方式       GPS - 美国的,依靠卫星定位       北斗定位 - 纯 ...

  3. rownum

    rownum是一个伪列,oracle数据库会对查找到的数据 从1 开始递增指定每行的rownum值, 当查询条件里有 rownum时(比如 where rownum>2),数据库会依次从数据集里 ...

  4. tomcat配置虚拟目录的步骤

    1.在tomcat中.....\conf\Catalina\localhost中创建一个test.xml文件 2.然后在\conf的server.xml中的 <Host > 元素里面 添加 ...

  5. SimpleXML解析xml文件

    SimpleXML 扩展提供了一种获取 XML 元素的名称和文本的简单方式. 与 DOM 或 Expat 解析器相比,SimpleXML 仅仅用几行代码就可以从 XML 元素中读取文本数据. Simp ...

  6. 一个小程序[Socrates]中学到的Perl点滴

    1. 抓取网页源文件,只要三行代码 use LWP::Simple; $url='http://music.baidu.com/top/dayhot'; $page=get($url) or die ...

  7. slivelight5和数据库交互

    最近开始研究sliverlight和数据库交互了,无奈网上资料较少,查阅了大量资料终于成功了,但是我记得还有别的方法,希望大家讨论一下 数据访问层我的用的是ado.net实体数据模型 然后新建了一个w ...

  8. IntelliJ IDEA 使用随笔

    注册的地址:http://idea.iteblog.com/key.php

  9. sharepoint 2013 安装配置PowerView

    安装sharepoint 2013 网络上有很多说明.这里列出两个实例: 1.说得比较详细,并提供了下载连接:http://www.sqlant.com/2012/10/sharepoint-2013 ...

  10. JAVA与编译语言及解释语言的关系

    转自JAVA结合了编译和解释执行的优点 编译型语言是一次性编译成机器码,脱离开发环境独立运行,所以运行效率较高,但是由于编译成的是特定平台上机器码,所以可移植性差. 编译型语言的典型代表有C.C++. ...