Mac平台下Opencv开发环境搭建
OpenCV(Open Source Computer Vision Library),是一個(gè)開源的跨平臺(tái)的計(jì)算機(jī)視覺庫,它實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺領(lǐng)域的很多通用算法,可以在多種計(jì)算機(jī)平臺(tái)上運(yùn)行,支持C++、C#、Python等語言,也提供了Ruby、Matlab等語言的接口。OpenCV是基于BSD許可證發(fā)布的,因此它可以免費(fèi)應(yīng)用于科研或商業(yè)領(lǐng)域。
可以在這個(gè)地址了解更多以及下載OpenCV安裝包:http://opencv.org, 其GitHub倉庫地址為:https://github.com/opencv/opencv,那里有主倉庫,拓展模塊倉庫和實(shí)驗(yàn)測(cè)試倉庫,大家可以看上面的readme文件和代碼來進(jìn)行學(xué)習(xí)。
因?yàn)槲沂褂玫氖荕ac電腦,懶得每次都要打開windows虛擬機(jī)使用Visual Studio編程,所以,決定在os x系統(tǒng)使用xcode來進(jìn)行編譯運(yùn)行,下面介紹一下整個(gè)流程步驟。
1. 安裝
在OpenCV官網(wǎng)下載的安裝包適用于Linux/Mac,因此需要使用CMake工具來進(jìn)行編譯安裝,嘗試了幾次,都在最后的鏈接那里失敗了,在StackOverFlow查了下才發(fā)現(xiàn),目前opencv只支持使用xcode6版本的編譯鏈接器,我使用的是xcode7的,為了避免不必要地麻煩,就不采取編譯安裝方式了,去homebrew搜索一下,可以下載:
現(xiàn)在執(zhí)行"brew install opencv",等待即可安裝完成,安裝后路徑是:/usr/local/opt/opencv3,我們可以設(shè)置一個(gè)OPENCV3_HOME環(huán)境變量,方便以后快速打開這個(gè)文件夾。該文件夾下有opencv的核心和擴(kuò)展模塊,目錄結(jié)構(gòu)如下:
在lib目錄下是opencv的庫,在include目錄下包含了兩個(gè)子目錄:opencv和opencv2,opencv里面包含了opencv1.x的核心頭文件,opencv2安裝模塊功能組織,包括核心模塊、圖像處理模塊、2D功能模塊、高層GUI圖像用戶界面模塊、機(jī)器學(xué)習(xí)模塊等。
注意,這里安裝的是3.1.0版本的OpenCV,在官網(wǎng)可以看到,這個(gè)版本只支持64位編譯器,如果在windows平臺(tái)開發(fā),建議選擇現(xiàn)在還很常用的2.4.9版本,隨著64位機(jī)基本普及,使用3.0版本更方便,不用再包含一堆的lib了,只要幾個(gè)就夠了。
2. 環(huán)境配置
開發(fā)平臺(tái)IDE的環(huán)境大同小異,基本都是選擇編程語言后就確定了編譯器,然后是頭文件路徑的設(shè)定和庫文件路徑的設(shè)定讓編譯器能找到就行,然后就可以進(jìn)行編譯鏈接成最終的可執(zhí)行文件了,按照這個(gè)思想,就不難處理問題了。
2.1 新建xcode項(xiàng)目
一般教程都會(huì)新建command line形式的項(xiàng)目,我不太喜歡這樣的單個(gè)功能單個(gè)項(xiàng)目的形式,這樣學(xué)下來就很多項(xiàng)目了,也麻煩,畢竟演示給別人看的時(shí)候,用gui軟件形式比命令行軟件形式更好看吧?,這里新建工程就使用cocoa application形式吧。
打開XCode,新建工程,選擇macOS模式,點(diǎn)擊"cocoa application",下一步,輸入工程名和語言,這里選擇object-c,下一步,選擇工程存放路徑,點(diǎn)擊"done"即可。
2.2 配置工程頭文件和庫文件搜索路徑,如下圖順序所示:
在Library Search Paths記得要加上“$(PROJECT_DIR)”,這樣在工程里添加的庫框架也能搜索到,另外,因?yàn)镺penCV使用C/C++編寫的,還需要引入C++動(dòng)態(tài)鏈接庫:
在Build Phase的Link Binary With Libraries下,添加時(shí)搜索:"libstdc++",選中后點(diǎn)擊"Add"即可:
最后,再添加對(duì)opencv庫的引用,添加完成后如下圖所示:
到這里,開發(fā)環(huán)境就配置完成了,在visual studio也差不多,都是配置編譯時(shí)搜索頭文件和庫文件的路徑,這里就不重復(fù)了。
3. 測(cè)試opencv功能
這里使用這個(gè)工程,主要是為了測(cè)試opencv的功能函數(shù),把公共的功能提取出來,然后方便以后移植到android和ios平臺(tái)下,所有,工程目錄組織如下:
在imgprocess目錄下是通用的圖像處理函數(shù),images目錄是默認(rèn)實(shí)例圖片,其他文件就是cocoa編程的文件了,重點(diǎn)是imgprocess目錄的類文件。
我們?cè)費(fèi)ain.storyboard里搭建大概的用戶界面程序,如下:
ImageView和Button的IBoutlet和IBAction關(guān)聯(lián)和iOS開發(fā)一樣,這里就不多說了。
編寫圖像處理頭文件,如下:
這里特別要注意圈住的地方,需要加上才能編譯連接通過。
這里聲明了一些圖像處理函數(shù),現(xiàn)在來看看cpp文件的實(shí)現(xiàn):
圖像處理部分函數(shù)準(zhǔn)備好了,現(xiàn)在來驗(yàn)證一下,這里看看灰度變化怎么樣:
函數(shù)如下:
執(zhí)行結(jié)果:
功能沒問題~~
接下去就是其他處理函數(shù)的編寫和測(cè)試了,測(cè)試完成后,基本很小的修改就可以移植到android和ios平臺(tái)了。
在打開照片文件選擇圖片那里,代碼如下:
好了,在mac平臺(tái)搭建opencv開發(fā)環(huán)境到此結(jié)束,后面不斷完善先,有時(shí)間再補(bǔ)充這部分。
?
轉(zhuǎn)載于:https://www.cnblogs.com/linjk/p/6029306.html
總結(jié)
以上是生活随笔為你收集整理的Mac平台下Opencv开发环境搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【miscellaneous】IP多播技
- 下一篇: OpenCV circle函数