本文編輯時間:2021-01-18
當前最新版本:opencv4.5.1+opencv_contrib4.5.1
opencv4.5.1安裝
直接使用homebrew安裝:brew install -s opencv
有關opencv_contrib的問題
見這里:https://github.com/Homebrew/homebrew-core/blob/master/Formula/opencv.rb 這是使用brew安裝時執行的命令,我們可以看到它下載了opencv
和opencv_contrib
兩個包,同時查看cmake指令,這里挑幾個來看:
- 第71行:啟用了
non-free
算法的編譯; - 第72行:啟用了
opencv_contrib
編譯;
所以,homebrew默認安裝opencv_contrib,不需要考慮重新編譯opencv+opencv_contrib,這也就是為什么說brew安裝是最簡單的方法。
自己在這個地方停留了很長時間,在尋找如何補全編譯,后來在官方文檔中看到了這個文件,解決了自己的問題。
在MacBook Air with M1上,下載包文件+編譯時間在7分鍾左右;
安裝后的目錄分析
現階段,M1原生的homebrew的安裝目錄只能為/opt/homebrew
。homebrew安裝的包都在/opt/homebrew/Cellar
下,opencv也不例外,具體為/opt/homebrew/Cellar/opencv/4.5.1_2
,其文件結構如下:
4.5.1_2
|__bin
|
|__include
| |__opencv4
| |__opencv2
| |__opecv.hpp
| |__videoio.hpp
| |__...
|__lib
| |__libopencv_xxx.dylib
| |__...
|
|__share
這里只展開了include/opencv4/opencv2
和lib
文件夾下的部分內容,我們可以大概看出:
include/opencv4/opencv2
:C++中#include <opencv2/opencv.hpp>
正是這里的目錄。這里面不僅包含了opencv的頭文件,更有像videoio
,surface_matching
等來自contrib庫的文件夾和文件;lib
:配置Library Path
正是這個目錄。
下面結合Xcode來看一下這些目錄怎么用。
Xcode調用方法
參考鏈接:https://zhuanlan.zhihu.com/p/113873616
這里面有關Xcode的配置需要改三處:
- 第一次導入
dylib
文件時,目錄應該是上面的/lib
文件夾處; - 設置
Search Path
時,目錄應該是如下圖所示:
執行測試代碼,出圖即可。
執行官方源碼自帶的../samples/cpp/example_cmake
- 獲取源碼:不需要從官網上再去下載。在
~/Library/Caches/Homebrew
目錄下,就有brew下載的緩存,搜索opencv
即可找到opencv和opencv_contrib的tar壓縮文件; - 終端下進入opencv源碼的上述路徑。刪除:除了
CMakeList.txt
和example.cpp
以外的文件。 - 執行:
cmke .
,成功后執行make
,最后運行./opencv_example
即可。 - 第一次執行,終端會請求攝像頭權限,允許即可,然后屏幕會出現顯示框,左上角有
Hello opencv
字樣,顯示內容為黑色。此時在顯示框內部用鍵盤隨便輸入按鍵便會自動退出。 - 第二次執行,顯示框將會顯示你筆記本攝像頭的內容,說明本例程運行成功。