MAC下配置OpenCV的具體方法(2016年最新)


1.序言:

非經本人同意,謝絕轉載,原文地址:MAC下配置OpenCV的具體方法 (2016年最新)

1.1 背景

        本人小白一枚,不過因為最近在從事機器視覺方面的工作,所以接觸到OpenCV.

        因為工作需求,本人要在MAC端使用OpenCV實現一些視覺功能,配置環境成了最大的阻礙,網上查了很多相關資料和博客,都因為版本環境問題屢試屢敗,不過經歷重重嘗試,筆者最終還是配置成功並運行了自己的源碼.當然成功的關鍵還是因為筆者站在了巨人的肩膀上,借鑒了很多網上的教程,為了不誤導大家配置的過程,參考文章的地址統一放在文章里,望各位大大看見之后能夠理解,廢話不說進入正題.

1.2 環境說明

        如果讀者的工作環境和筆者的環境相同或類似,那都可以直接按照下面的方法來實現:     

        先上圖說明下筆者的環境:

        mac系統:

        Xcode版本:

    

        OpenCV版本:(筆者在寫這篇文章的時候OpenCV官網的版本已經出到了3.1,不過為什么不使用最新版本,其實並不是我不想用😭,下面會說明原因)

 

2.具體步驟:

2.1 准備工作

2.1.1  

        首先從官網下載OpenCV(筆者按照網上的其他教程提前下載好之后都出現了各種問題,如果你已經下了也無所謂,反正后面也不用它),mac上只要有Xcode就好了.

2.1.2  

        下載安裝Homebrew,下面簡稱brew,想深入了解brew的朋友可以自行百度或者進入官網查看,筆者給出理解是:brew是一個可以下載、更新並卸載 Mac 上的一些軟件工具的軟件包管理器,很強大(個人理解的很膚淺,沒能將brew的強大描述出來,歡迎各位專業人士幫忙點評指導,小弟在此跪謝),brew的下載安裝不能再簡單,按着下面的步驟來就可以.

        (🙋有朋友可能會問,安裝brew干嘛用的啊??:它就是之后用來自動下載OpenCV庫的,所以第一步我說了不用自己從OpenCV官網下載.🙋那么就有朋友又會問自己在官網下載不行么??:反正小弟是沒有成功)  以下操作都是在終端進行.(在終端依次執行下面紅色腳本命令即可!)

        1) 打開終端:回車/回車/回車(個人習慣,讀者不用管)復制粘貼下面腳本:

        ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

        安裝過的童鞋就不用再安了,如果安裝過再執行這條命令就會提示你:你的電腦已經安裝過brew,如你想要重新安裝必須要先執行下面的腳本:

        ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

        想必大家也知道什么意思了.腳本最后的install就是安裝,uninstall就是卸載.

        這里有肥兔大大的一篇隨筆可以看下:Homebrew簡介及安裝(看看就行,操作還是按筆者的步驟來).

        出現Installation successful 就說明已經安裝成功了,輸入執行brew help能查看brew的具體用法.

        2) 為了保證套件的完整,接着執行官網的建議腳本,安裝wget.(其實我也不知道這個東西是干嘛,反正有好沒壞,最后成功了):

        brew install wget

        直接復制粘貼,然后讓brew自己裝吧,真的是好方便.等待安裝完成,都很快的.這里由於我安過了,所以:

        3) 接着裝cmake,這個是必須要裝的,具體作用問度娘.

        brew install cmake

        同樣直接復制粘貼,如果你想自己敲也是沒有任何問題的.  同樣筆者已經裝過了:

        4) 重點:這里就是不同於網上大部分mac配置opencv方法之處,讓brew幫我們下載OpenCV,而不是自己上OpenCV官網下載,切記,我從頭到尾都不會讓讀者上官網去下載,因為我沒有成功,這里感謝提出這種方法的朋友mac下配置openCV(看看就行,畢竟文章很早了).

        brew install opencv

        這里直接執行這個命令可能會報一個小小的錯,不過無關緊要,大概意思就是不能直接找到這個命令,終端會自己接着找,然后會告訴你正確的命令應該怎么寫,由於當時沒有截圖,所以具體命令我不記得了,實在抱歉,大家只要稍微有點英語基礎,大概看下終端彈出來的描述,就能夠知道具體應該執行的命令行了,這里應該是會提示出兩個命令,選擇關鍵字是opencv的執行即可,執行后brew會自動下載opencv,上圖:

        這就是我最后裝的OpenCV的版本,這就是為什么我不用最新的版本(因為根本沒得選😂),不過大家放心,brew既然選擇了這個版本自然有他的理由,讀者也不用糾結這個問題,舊一點的版本不一定就不好.

        至此,該下載的都下載好了,准備工作就ok了!!上一張最后下好的本地目錄:

        /usr/local/Cellar目錄下的文件都是brew幫我們下載好的,里面的cmake,wget,opencv是我們自己下載的,其他的都是brew幫我們下的(應該都是有用的東西,什么都不要我們管,很方便有沒有).

2.2 在Xcode中使用OpenCV

2.2.1

        創建一個空的command line 工程:選擇OS X -> Application -> Command Line Tool->Next;填寫自己的product名,選擇語言為C++,選擇自己存放的目錄,ok!

2.2.2

        點擊工程,選擇TARGETS->右側選擇All->Build Settings -> 搜索框輸入search paths ->選擇search paths下面的Header Search Parhs ->雙擊后面的詳細信息添加指定路徑:/usr/local/include (大家可以點擊空白桌面按shift+command+g前往該目錄下查看,這里目錄里有剛才下好的OpenCV庫的頭文件)

        選擇search paths下面的Library Search Parhs ->雙擊添加指定路徑:/usr/local/lib (這里包含了所需要的庫文件).

2.2.3 

        右擊工程new一個group,然后打開/usr/local/Cellar/opencv/2.4.12_2/lib目錄(同樣點擊下空白桌面,然后shift+command+g)這個目錄之前帶大家看過一次就是brew幫我們下載的opencv目錄下的lib目錄,然后大家按照文件種類排序可以看到一些.dylib文件,將這些.dylib文件拖入剛才新建的文件夾下.我這里是18個文件,網上有說要加所有后綴是dylib文件,其實左下角帶箭頭的那些不用管.

 

        至此,mac Xcode里配置OpenCV就大功告成了!!!是不是很簡單你都不敢相信,接下來你就可以在main.cpp文件里編譯你的OpenCV工程了!!!

        這里獻上一段zhoufan大大的測試代碼,測試用代碼如下所示,從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; }

 

        這里聲明:后期xcode里的配置工作也有一些地方參考了zhoufan大大的博客文章 [openCV]Mac平台下openCV的搭建(Xcode + openCV 2.4.10)

3.結言:

        配置工程總是經過很多次嘗試才成功的,本文與其他網文中關於Xcode里的配置略有不同,僅僅是加了2個Search路徑,剩下的都是默認值,不做改變,沒有改變Apple LLVM Language C++,也沒有往Link Binary With Libraries里加入其它的庫類,僅僅是下載下來的18個OpenCV庫,不知道是因為Xcode版本問題還是什么原因,配置過程相對來說要稍簡單一些.

最后上一張自己跑出來的圖

 

讀者如果哪里有疑問或者問題,歡迎與本人聯系!

非經本人同意,謝絕轉載,原文地址:MAC下配置OpenCV的具體方法 (2016年最新)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM