在Mac下使用OpenCV, 在Xcode下使用OpenCV (非常基礎,詳細)

 者屬於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 -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.1.0  -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工程,大功告成~~*^_^*
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章