一、MAC上集成OpenCV
1. 環(huán)境準備
- 安裝Homebrew
- 安裝CMake
brew install cmake
2. 下載OpenCV https://opencv.org/releases/
- 下載iOS pack(framework)放到
/usr/local/Frameworks - 下載Sources
3. 構(gòu)建OpenCV
- 進入OpenCV源碼解壓后的文件夾
- 執(zhí)行命令
- mkdir build
- cd build
- cmake -G "Unix Makefiles" ..
- make (make -j6 #并行運行6個作業(yè))
- sudo make install
3. 新建項目測試
- 新建Command Line Tools項目 選擇C++語言
- 在項目build setting -> search path進行配置
- Always search User paths : true
- Framework search path: /usr/local/Frameworks(這個路徑要對應下載的openCV.framework所在位置)
- Header Search Paths :/usr/local/include
- Library Search Paths : /usr/local/lib
- 在項目中新建opencv文件夾,將 /usr/local/lib中opencv相關(guān)動態(tài)庫加入到項目中(要區(qū)分版本,可以用到哪個添加哪個)
- 測試運行
#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main( int argc, char** argv ){
string imageName("/Users/xxx/Desktop/image2.jpeg");
Mat image;
image = imread(imageName.c_str(), IMREAD_COLOR);
if( image.empty() ){
cout << "Could not open or find the image" << std::endl ;
return -1;
}
namedWindow( "Display window", WINDOW_AUTOSIZE );
imshow( "Display window", image );
waitKey(0);
return 0;
}
3. 錯誤解決
如果報錯Library not loaded xxx, 可能是因為版本不對導致
例如Library not loaded: /usr/local/opt/x265/lib/libx265.165.dylib, 而本地實際版本為libx265.169.dylib
則進入動態(tài)庫所在目錄,執(zhí)行ln -s libx265.169.dylib libx265.165.dylib 建立鏈接
4. 簡便安裝方式
brew install opencv
安裝包在/Library/Caches/Homebrew,解壓后的文件夾都在/usr/local/Cellar。
暫時好像只有OpenCV OpenCV@2 OpenCV@3,官網(wǎng)最新正式版本已經(jīng)到了4.x版本
二、iOS上集成OpenCV
iOS項目集成OpenCV,可以直接使用Cocoapods集成,現(xiàn)在已經(jīng)更新4.1.0版本,也可以使用官網(wǎng)下載的opencv.framework來繼承。
注意事項:
- OpenCV相關(guān)的頭文件必須在
#import "ViewController.h"之前導入,否則連接錯誤。 - OpenCV源碼為C++,所以使用到的文件都需要將后綴名改為
.mm