首頁 > 軟體

Mac下使用OpenCV與在Xcode下使用OpenCV詳解

2020-06-16 17:33:58

最近剛入手一台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的,希望大家不要再走彎路嘗試了。

http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=7524&start=0

http://www.linuxidc.com/Linux/2016-09/135031.htm

為了方便剛剛接觸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 安裝完畢,參考的網址如下:

      http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation

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

二、在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工程,大功告成~~*^_^*

Mac平台上OpenCV開發環境搭建 http://www.linuxidc.com/Linux/2016-09/135028.htm

Mac OS X安裝OpenCV並設定到Xcode和Eclipse上  http://www.linuxidc.com/Linux/2016-09/135029.htm

--------------------------------------分割線 --------------------------------------

OpenCV官方教學中文版(For Python) PDF  http://www.linuxidc.com/Linux/2015-08/121400.htm

Ubuntu Linux下安裝OpenCV2.4.1所需包 http://www.linuxidc.com/Linux/2012-08/68184.htm

Ubuntu 12.04 安裝 OpenCV2.4.2 http://www.linuxidc.com/Linux/2012-09/70158.htm

CentOS下OpenCV無法讀取視訊檔 http://www.linuxidc.com/Linux/2011-07/39295.htm

Ubuntu 12.04下安裝OpenCV 2.4.5總結 http://www.linuxidc.com/Linux/2013-06/86704.htm

Ubuntu 10.04中安裝OpenCv2.1九步曲 http://www.linuxidc.com/Linux/2010-09/28678.htm

基於QT和OpenCV的臉部辨識系統 http://www.linuxidc.com/Linux/2011-11/47806.htm


IT145.com E-mail:sddin#qq.com