今天尝试用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>
上面代码测试出来的边缘检测如下所示: