现在的位置: 首页 > 综合 > 正文

在Mac下使用OpenCV, 在Xcode下使用OpenCV

2018年05月28日 ⁄ 综合 ⁄ 共 4882字 ⁄ 字号 评论关闭
文章目录

近期工作需要,要在mac和ios上分别用opencv做一些图像匹配的工作,本人菜鸟,接触mac和ios刚刚一个月,很多基础东西都不懂,于是网上搜索相关文章逐步尝试,最终在下方文章帮助下调试成功。

本人系统环境:Mac OS X 10.7.5; XCode版本:4.5.2; OpenCV版本2.4.6

由于本人菜鸟,所以下边用红色字把部分内容进行了更详细的说明,以防不熟悉的朋友也有所茫然~~

需要说明的是,在opencv官网上下载响应版本的opencv时,对于mac版本,我先下载了最新版本2.4.7,但是编译过程中总会提示两个错误,具体表现就是在xcode中build调用opencv的程序时总是找不到各个头文件,手动把头文件放到应该存放的位置后,又有其他错误。后来下载了2.4.6版本,按照下方步骤一和三,安装成功,程序调试成功。(步骤二、四目前没用到)

===================================================================================================================================

原文地址:http://wuzhaoxi1992511.blog.163.com/blog/static/18375811820132213544889/   感谢作者分享,下边是转载内容:

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

2013-03-02 13:35:44|  分类: Mac
OS
|字号 订阅

转自: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。【本人没有安装Homebrew,直接下载了cmake的安装文件,手动安装就行了
3.     进入存放解压后的opencv文件夹【这里需要命令行,在终端输入“cd”,然后把opencv解压缩后的文件夹拖到终端,然后松开鼠标即可,回车】,新建一个空的文件夹release【这句和下边的“mkdir
release”是一个意思,要么手动在opencv文件夹里新建release文件夹,要么用
“mkdir release”命令建立,执行其一即可
,进入该文件夹【这里的“进入”是指命令行进入,即下边的“cd
release”,我开始傻傻的双击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. 新建DisplayImage.cpp文件,代码如下

#include <cv.h>

#include <highgui.h>

using namespace cv;
int main( int argc, char** argv )
{
  Mat image;
  image = imread( argv[1], 1 );
 
  if( argc != 2 || !image.data )
    {

      printf( "No image data \n" );

      return -1;
    }
 

  namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );

  imshow( "Display Image", image );

 
  waitKey(0);
 
  return 0;
}
 

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

   project( DisplayImage )
   find_package( OpenCV REQUIRED )
   add_executable( DisplayImage DisplayImage )
   target_link_libraries( DisplayImage ${OpenCV_LIBS} )
 

3. 编译两个文件   cd <DisplayImage_directory>

   cmake .
   make

4. 运行编译好的结果

./DisplayImage lena.jpg
 
三、在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工程,大功告成~~*^_^*

抱歉!评论已关闭.