今天嘗試用Xcode集成opencv動態庫來處理圖片,將opencv的安裝和在Xcode上的配置記錄下來,以供參考。
一、opencv的安裝
1.首先檢查有沒有安裝cmake ,終端上cmake --version 檢查版本情況確定。如果沒有安裝,先安裝一下:
brew install cmake
2.安裝opencv
官方下載頁: https://opencv.org/releases.html
github下載:git clone https://github.com/opencv/opencv.git
或者 brew install opencv
二、構建opencv
1. opencv文件夾下創建一個release子文件夾
cd ~/opencv
mkdir release
2.配置環境
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
3.開始安裝
make -j6
make
sudo make install ,這一步編譯opencv動態庫和一些頭文件,耗時較久,安裝成功后,查找/usr/local/lib,會看到libopencv_core(版本號).dylib,表明安裝成功。
三.開始Xcode工程
1.新建Xcode工程,選擇mac下的命令行(Command line tool),語言選擇C++
2.配置Xcode,Target-->Build Setting -->搜索框里輸入“search”,找到search path ,Header Search Path 添加 /usr/local/inculde ,頭文件的鏈接。
Library Search Path 添加/usr/local/lib,庫文件的鏈接。
3.添加需要用到的庫。
Target --> Build Phase --> Linking Binary With Librarys --> Add Other --> Add Files
然后鍵盤 / 前往文件夾 usr/local/lib ,添加需要用到的庫 。作為首次使用opencv的新手,建議都添加。如果不知道添加哪個,可以 cd 到之前創建的release文件夾下的子目錄lib,
里面都是打包好的動態庫。
4.在Xcode工程目錄下創建libs子文件夾,把lib下的庫托進去。
四、測試庫函數。
#include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace cv; int main(){ Mat srcImage = imread("/Users/vk/Desktop/openvk/2.jpg"); imshow("Original Image", srcImage); Mat grayImage,edge; //轉換為灰度圖 cvtColor(srcImage, grayImage, COLOR_BGR2GRAY); //降噪 blur(grayImage, edge, Size(3,3)); //運行Canny算子,3為threshold1,9為threshold2 Canny(edge, edge, 3, 9); imshow("After canny", edge); waitKey(0); return 0; }
如果報錯“未能發現 #include <opencv2/opencv.hpp>”,定位到/usr/local/include里的opencv4,把opencv4里的opencv2字文件夾復制出來,到opencv4同級,錯誤就沒了。
或者#include <opencv4/opencv2/opencv.hpp>
上面代碼測試出來的邊緣檢測如下所示: