這里面的OpenCV是給mac系統用的,如果是用在iOS,那么直接在官網下載iOS的framework就行了。
本來昨晚下班早早的,想想配置一下OpenCV來玩玩,誰知道搞了3個小時都沒搞定!github不翻墻連不上去,翻墻軟件全局模式掛了。按著網上的方法來安裝OpenCV3.2,試了幾次都是在下載一個ippcvxxx文件上面出錯,連不上github。隨后重要在網上找到了下載鏈接,把下載包仍了進去,但是仍然報錯。后面開竅去試了下3.1版本,cmake的generate過了。洗澡回來make,這次仍然報錯,說找不到QTKit頭文件。百度下來一看,都是說Seirra把某個庫文件給改了,嘗試了一種把QTKit文件扔進去的辦法,根本不行。我想翻桌子!睡覺。。。。
下面記錄一下這個過程里面用到的東西和坑。
這里的Cmake是編譯opencv用的,實際測試發現這種安裝方法不可行。你可以嘗試下不裝的情況下,用homebrew能不能安裝opencv。 這個上網去下了一個dmg,安裝了,但是要終端里面可以用的話得另外配置。打開cmake,選擇Tools菜單->How to install for command line use. 里面提到了三種方法,我試了第一種就可以用了。
首先安裝3.2.0會卡在下載ippicv_macosx_20151201.tgz文件上面,如果你可以翻墻,那么可以試試,否則呵呵。嘗試過下載這個文件后,仍在對應的目錄,但是仍然報其他錯誤。GG 嘗試安裝3.1版本,這個make的時候找不到QTKit,系統是Seirra應該就會出現這個問題。網上的方法太困難了,需要找到Capitan的QTKit文件,然后在什么模式下進行替換。想想萬一把電腦搞崩了就更慘了。所以沒有繼續嘗試。至此Cmake安裝OpenCV全部GG.
網上有另外一種安裝OpenCV的方法,就是使用HomeBrew,但是家里的網 brew update失敗。這就是我剛剛說的連不上github。所以只能第二天去公司嘗試。還好,公司可以update。 首先要更新HomeBrew的一個tag,之前我這里的tag只有兩個,根本找不到OpenCV。
brew tap homebrew/science更新成功之后,安裝OpenCV3
brew install opencv3順利的話,上面兩個命令之后就可以安裝完OpenCV了。安裝成功之后,有幾個配置的提示。按照需求配置一下,反正我是全配置的。省得以后又找不到command什么的。注意安裝完后終端會有提示lib和header的位置,下面會提到。 昨晚上費了3個小時也沒裝上的OpenCV3.2,今天兩個命令就搞定了,想死的心都有。今晚回去再看看家里的電腦行不行,畢竟Seirra的系統怕還是裝不上。(Seirra測試可以裝)
作為一個iOS開發者,XCode必備了。所以想著就用它來玩OpenCV就好了。網上找了一些教程來搞,發現前面找的都不靠譜。首先是OpenCV的安裝方法不一樣,導致OpenCV庫的位置根本不同,網上教程的把/usr/local/lib里面的dylib庫都扔進工程,根本不行。編譯會報鏈接錯誤,沒定義cv::String之類的。
這里說一下我的方法: 首先,根據HomeBrew安裝OpenCV的時候,最后提示的鏈接庫和頭文件的位置來看(不排除以后版本會變換地址,所以一切以安裝的時候提示為準)
For compilers to find this software you may need to set: LDFLAGS: -L/usr/local/opt/opencv3/lib CPPFLAGS: -I/usr/local/opt/opencv3/include可以找到/usr/local/opt/opencv3的文件夾,但是發現這個文件夾只是一個鏈接,它指向的位置是/usr/local/Cellar/opencv3/3.2.0。打開這個文件夾,可以看到OpenCV的庫和頭文件之類的。 打開里面的lib文件夾,可以看到很多的dylib,但是有很多是鏈接文件,作用應該就是重命名定向。 include文件夾里面則是包含了所有的頭文件。 下面用XCode玩OpenCV。 新建XCode的command Line工程。 這里只有一個main.m文件,因為OpenCV用到的是C和C++,所以要把.m文件改為.mm文件。直接重命名main.m就行了。 然后在main.mm里面改為下面的代碼,這里為了簡潔,刪除了其他不必要的代碼,比如Foundation之類的庫。如果你需要加上Foundation,這里有一個坑。就是要把
#import <Foundation/Foundation.h>放到其他include的后面,否則會報錯。之前弄OpenCV for iOS的時候,這個坑搞了好久。
//main.mm#include <opencv2/opencv.hpp>int main(int argc, const char * argv[]) { //get the image from the directed path IplImage* img = cvLoadImage("your image path", 1);//這里要替換成你的圖片地址 //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"); return 0;}然后轉到項目的Build Setting里面。在搜索里面搜head,下面列表里面找到Header Search Paths項目。在這個項目里面雙擊添加OpenCV頭文件所在的目錄,就是上面提到的/usr/local/Cellar/opencv3/3.2.0/include。 接下來是添加dylib到工程,這個不能在Library Search Paths里面添加目錄了。貌似是動態庫的原因? 為了好看,先轉移到工程的finder下面,新建一個opencvLib目錄來存放dylib。然后將/usr/local/Cellar/opencv3/3.2.0/lib里面的dylib(不包括鏈接文件)都拷貝到剛剛建立的目錄,我這里一共是16個。然后再把這個opencvLib目錄拖到XCode工程里面。這時可以在工程的Build Phases里面看到Link binary with libraries存在了剛剛添加的dylib庫了。
然后運行。這樣就可以彈一個窗顯示你的圖片了。 至此,XCode可以運行起OpenCV。 下面就是慢慢學習了。
新聞熱點
疑難解答