[openCV]Mac平台下openCV的搭建(Xcode + openCV 2.4.10),opencvxcode

來源:互聯網
上載者:User

[openCV]Mac平台下openCV的搭建(Xcode + openCV 2.4.10),opencvxcode
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更新後,我再嘗試更新吧,那時候有還是有問題的話,我再把放上來。

  • openCV下載連結:http://opencv.org/downloads.html
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的時候,還是會彈出一些warning, 或許在以後的開發中,會有些問題吧。嘛,到時候再說咯。

原文發於部落格: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 初版

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.