Mac下安装及配置OpenCV环境(Xcode)
OpenCV (Open Source Computer Vision Library)
OpenCV是Intel开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。支持Windows、Linux、Mac OS、IOS、Android,提供了C++、C、Java、Python、Matlab的接口(但C++ 的接口较丰富)
应用领域 :人机互动 、物体识别 、图像分割 、人脸识别 、动作识别 、运动跟踪 、机器人
安装OpenCV
根据自己的 Mac 是否安装有下面的工具选择性安装
使用 brew 安装 cmake
在之前的博客中已经写到过关于 Mac 下安装 brew 以及如何更换成国内的镜像。
如果安装有 xcode,则已经安装有 cmake。
brew install cmake
cmake可以根据不同的平台生成对应的makefile,然后就可以使用make指令快速便捷的编译你需要的程序。
使用 brew 安装 OpenCV
brew install opencv# 目前是OpenCV4.4
# 安装其它版本brew install opencv@3brew install opencv@2
brew info opencv# 查看当前版本
配置环境
其实就是在各种IDE中引入这个库,但其中有很多坑,还有就是我肯定无法保证能解决你的问题,但是最好是能给你一个参考。
Xcode 中配置 OpenCV
C++麻烦的是,#include 进的东西,在编译时都需要自己配置好路径,这无疑增添了很多麻烦。
新建命令行
选择C++
配置项目的头文件和库文件路径
选择 Build Settings 选择卡,修改 Header Search Paths 和 Library Search Path
因为我使用 brew 默认下载的是 OpenCV4 ,因为每个人的情况不同,所以其配置的路径也不一定相同:
# Header Search Path:/usr/local/include/usr/local/include/opencv4# Library Search Path:/usr/local/lib
点击项目,选择 Build Phases 选项卡,添加库文件
在 Finder 中找到 OpenCV 的二进制库文件。
打开 Finder ,按下
Shift + command + G
,输入路径/usr/local/Cellar/opencv
, 然后点击版本目录(比如我的是 4.4.0_1),然后点击打开lib
,最后,搜索当前文件夹下的所有.dylib
文件,拖入其中即可
写点代码试个水
//// main.cpp// newOpencv//// Created by 蒋秋山 on 2020/9/29.//#include#include#include#includeusing namespace cv;using namespace std;// 视频来源于摄像头VideoCapture capture(0);Mat edges;int main(int argc, const char * argv[]) { while (true) { Mat frame; // 每一帧 capture >> frame; // 转为灰度图 cvtColor(frame, edges, COLOR_BGR2GRAY); blur(edges, edges, Size(7, 7)); Canny(edges, edges, 0, 30, 3); // 边缘检测并显示边缘 imshow("Read Video", edges); // 等待用户输入 if(waitKey(30) >= 0) break; } return 0;}
不幸的是编译能通过但运行出错~
原因在于 Mac 的安全策略,在未经用户同意的情况下,Xcode 无法调用摄像头。
解决无法调用摄像头的问题
方法一:
可以直接打开其生成的二进制文件,来调用用户摄像头,但其中需要两次双击打开,第一次通过弹窗确认调用摄像头权限,第二次才能正常运行。
方法二:
在项目的任意一个文件夹下新建一个 Info.plist 文件然后添加一个键
Privacy - Camera Usage Description
,其值设置为YES
,将文件复制或者剪切到二进制文件所在目录(二进制文件在 Products 目录下,右键那个二进制文件可以到达其所在目录)「Mac 下默认隐藏了那个目录,所以一般不容易直接找到」。最后编译运行两次,一次同意调用摄像头,然后就可以用了。
后面会出一篇如何在 CLion 和 PyCharm 中配置 OpenCV 环境