Mac平台下Opencv開發環境搭建


  OpenCV(Open Source Computer Vision Library),是一個開源的跨平台的計算機視覺庫,它實現了圖像處理和計算機視覺領域的很多通用算法,可以在多種計算機平台上運行,支持C++、C#、Python等語言,也提供了Ruby、Matlab等語言的接口。OpenCV是基於BSD許可證發布的,因此它可以免費應用於科研或商業領域。

  可以在這個地址了解更多以及下載OpenCV安裝包:http://opencv.org, 其GitHub倉庫地址為:https://github.com/opencv/opencv,那里有主倉庫,拓展模塊倉庫和實驗測試倉庫,大家可以看上面的readme文件和代碼來進行學習。

  因為我使用的是Mac電腦,懶得每次都要打開windows虛擬機使用Visual Studio編程,所以,決定在os x系統使用xcode來進行編譯運行,下面介紹一下整個流程步驟。

  1. 安裝

    在OpenCV官網下載的安裝包適用於Linux/Mac,因此需要使用CMake工具來進行編譯安裝,嘗試了幾次,都在最后的鏈接那里失敗了,在StackOverFlow查了下才發現,目前opencv只支持使用xcode6版本的編譯鏈接器,我使用的是xcode7的,為了避免不必要地麻煩,就不采取編譯安裝方式了,去homebrew搜索一下,可以下載:

    

    現在執行"brew install opencv",等待即可安裝完成,安裝后路徑是:/usr/local/opt/opencv3,我們可以設置一個OPENCV3_HOME環境變量,方便以后快速打開這個文件夾。該文件夾下有opencv的核心和擴展模塊,目錄結構如下:

    

    在lib目錄下是opencv的庫,在include目錄下包含了兩個子目錄:opencv和opencv2,opencv里面包含了opencv1.x的核心頭文件,opencv2安裝模塊功能組織,包括核心模塊、圖像處理模塊、2D功能模塊、高層GUI圖像用戶界面模塊、機器學習模塊等。

    注意,這里安裝的是3.1.0版本的OpenCV,在官網可以看到,這個版本只支持64位編譯器,如果在windows平台開發,建議選擇現在還很常用的2.4.9版本,隨着64位機基本普及,使用3.0版本更方便,不用再包含一堆的lib了,只要幾個就夠了。

    2. 環境配置

    開發平台IDE的環境大同小異,基本都是選擇編程語言后就確定了編譯器,然后是頭文件路徑的設定和庫文件路徑的設定讓編譯器能找到就行,然后就可以進行編譯鏈接成最終的可執行文件了,按照這個思想,就不難處理問題了。

    2.1 新建xcode項目

      一般教程都會新建command line形式的項目,我不太喜歡這樣的單個功能單個項目的形式,這樣學下來就很多項目了,也麻煩,畢竟演示給別人看的時候,用gui軟件形式比命令行軟件形式更好看吧😁,這里新建工程就使用cocoa application形式吧。

      打開XCode,新建工程,選擇macOS模式,點擊"cocoa application",下一步,輸入工程名和語言,這里選擇object-c,下一步,選擇工程存放路徑,點擊"done"即可。

      

    2.2 配置工程頭文件和庫文件搜索路徑,如下圖順序所示:

      

    在Library Search Paths記得要加上“$(PROJECT_DIR)”,這樣在工程里添加的庫框架也能搜索到,另外,因為OpenCV使用C/C++編寫的,還需要引入C++動態鏈接庫:

    在Build Phase的Link Binary With Libraries下,添加時搜索:"libstdc++",選中后點擊"Add"即可:

    

    最后,再添加對opencv庫的引用,添加完成后如下圖所示:

    

      到這里,開發環境就配置完成了,在visual studio也差不多,都是配置編譯時搜索頭文件和庫文件的路徑,這里就不重復了。

    3. 測試opencv功能

    這里使用這個工程,主要是為了測試opencv的功能函數,把公共的功能提取出來,然后方便以后移植到android和ios平台下,所有,工程目錄組織如下:

    

    在imgprocess目錄下是通用的圖像處理函數,images目錄是默認實例圖片,其他文件就是cocoa編程的文件了,重點是imgprocess目錄的類文件。

    我們再Main.storyboard里搭建大概的用戶界面程序,如下:

    

    ImageView和Button的IBoutlet和IBAction關聯和iOS開發一樣,這里就不多說了。

    編寫圖像處理頭文件,如下:

    

    這里特別要注意圈住的地方,需要加上才能編譯連接通過。

    這里聲明了一些圖像處理函數,現在來看看cpp文件的實現:

    

    圖像處理部分函數准備好了,現在來驗證一下,這里看看灰度變化怎么樣:

    函數如下:

    

    執行結果:

    

    功能沒問題~~

    接下去就是其他處理函數的編寫和測試了,測試完成后,基本很小的修改就可以移植到android和ios平台了。

    在打開照片文件選擇圖片那里,代碼如下:

    

    好了,在mac平台搭建opencv開發環境到此結束,后面不斷完善先,有時間再補充這部分。

 


免責聲明!

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



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