mac 安裝opencv homebrew安裝
0 Homebrew是啥?
“Homebrew installs the stuff you need that Apple didn’t.——Homebrew 使 OS X 更完整”。
Homebrew的官網[1](多語言版本)簡單明瞭地介紹瞭如何安裝和使用這個工具,並提供了自己的Wiki。
1 安裝Homebrew
brew的安裝很簡單,使用一條ruby命令即可,Mac系統上已經預設安裝了ruby。
gerryyang@mba:bin$ruby
--version
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
關於安裝brew的詳細說明可以參考其github上的wiki說明[2]:
"
Installation
The suggested and easiest way to install Homebrew is on the homepage. We don’t duplicate it here because it is asecurity risk to list it on a user-editable wiki.
The standard script installs Homebrew to /usr/local
so that you don’t
need sudo
brew install
. It is acareful script, it can be run even if you have stuff installed to/usr/local
already. It tells you exactly what it will do before itdoes it too. And you have to confirm everything it will
do before itstarts.
There are other ways to install Homebrew which provide you with moreflexibility. They are listed below the requirements.
- gerryyang@mba:~$ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
- It appears Homebrew is already installed. If your intent is to reinstall you
- should do the following before running this installer again:
- rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup
由於我的系統上已經安裝過brew,因此再次執行安裝命令會提示我brew已經存在。
2 Homebrew的用法
檢視brew的具體用法:
- gerryyang@mba:~$brew
- Example usage:
- brew [info | home | options ] [FORMULA...]
- brew install FORMULA...
- brew uninstall FORMULA...
- brew search [foo]
- brew list [FORMULA...]
- brew update
- brew upgrade [FORMULA...]
- brew pin/unpin [FORMULA...]
- Troubleshooting:
- brew doctor
- brew install -vd FORMULA
- brew [--env | --config]
- Brewing:
- brew create [URL [--no-fetch]]
- brew edit [FORMULA...]
- open https://github.com/Homebrew/homebrew/wiki/Formula-Cookbook
- Further help:
- man brew
- brew home
- gerryyang@mba:~$
在安裝好brew後,只需要一條命令就可以安裝OpenCV了:
1
|
|
通常情況下這樣做就應該會安裝成功,但我在公司和家裡面的電腦嘗試的時候,brew都會報一些錯誤,我遇到的都是一些小問題,按照brew的提示資訊,解決掉相應的問題即可。
安裝成功後,你應該可以在“/usr/local/include”目錄下找到名為opencv和opencv2的目錄,這裡面是OpenCV相關的標頭檔案。你也可以在“/usr/local/lib”目錄下找到許多以libopencv_開頭的.dylib檔案,這些是OpenCV的連結庫檔案。
這裡有一個技巧,因為 /usr 目錄在對話方塊中預設不是可見的,可以按快捷鍵 command + shift + G,在彈出的“前往資料夾”對話方塊中輸入 /usr/local/lib ,即可跳轉到目標資料夾。如下圖所示:
下一步是我自己試出來的,對於Lion作業系統,你需要在Build Settings中,將“C++ Language Dialect”設定成C++11,將“C++ Standard Library”設定成libstdc++ ,如下圖所示。個人感覺是由於XCode預設設定的GNU++11、libc++與OpenCV庫有一些相容性問題,我在更改該設定前老是出現編譯錯誤。後續版本在Montain Lion系統中解決了這個問題,不用進行這一步了。
把上面的設定都做好後,就可以在需要的使用OpenCV庫的地方,加上opencv的標頭檔案引用即可:
1
|
|
注意,如果你的原始檔副檔名是.m的,你還需要改成.mm,這樣編譯器才知道你將會在該檔案混合使用C++語言和Objective-C語言。
OpenCV處理圖象需要的格式是cv::Mat類,而MacOS的圖象格式預設是NSImage,所以你需要知道如何在cv::Mat與NSImage之前相互轉換。如下是一個NSImage的Addition,你肯定會需要它的。該程式碼來自stackoverflow上的這個貼子。
NSImage+OpenCV.h 檔案:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
NSImage+OpenCV.mm檔案:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |