在MacBook上安装C++实现的OpenCV可以选择Homebrew和源码安装两种方式,这里我选择了源码安装,选择源码方式安装,你必须使用其它方式安装cmake,因为我还使用anaconda建立独立环境配置了Python-OpenCV环境,故我使用了conda install cmake
安装了cmake
。你还可以选择安装Homebrew
来使用brew install cmake
安装cmake。
下面我们一起来开始配置OpenCV-C++环境:
一、安装OpenCV
1.获取OpenCV源码
在你的工作目录下(自己选择,我是在“下载”文件夹下进行克隆的)使用git clone
获取源码:
如果显示克隆失败,这很正常,重复操作,或者换网后再重复操作,手机热点也是不错的选择。
你也可以直接从我的百度网盘分享链接中下载:
链接: https://pan.baidu.com/s/1Z9_Ap7Jm-rpBxVKV_1dEOw?pwd=emv4 提取码: emv4
git clone https://github.com/opencv/opencv.git
当你成功克隆完项目源码后,完全可以按照OpenCV官网给的操作(https://docs.opencv.org/4.x/d0/db2/tutorial_macos_install.html)进行安装,实际上我就是按照官网的操作进行安装的,而且我下面写的安装步骤也是我按照官网的操作进行安装的流程。
2.新建编译文件夹
代码克隆后,会在你选的路径下出现一个opencv文件夹,源码就在这个不文件夹里,在与opencv文件夹平级的文件夹进行编译,什么意思?比如我克隆的代码路径是./Downloads/opencv,那么我就在Downloads文件夹下创建编译文件夹,这样做是为了保持源码清洁,这很重要!
先使用cd
命令进入Downloads文件夹,再使用mkdir
创建编译文件夹并使用cd
进入此文件夹,可看如下截图:
mkdir build
cd build
3.使用cmake从源码构建opencv
构建类型-DCMAKE_BUILD_TYPE
也可以设置成Release
模型,是否构建例程-DBUILD_EXAMPLES
可以设置为ON
,如果想设置更多参数,可参考上面的官网链接。
cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_EXAMPLES=OFF ../opencv
cmake
成功如下截图所示:
特别提醒: 截图中的“Install to:”指示的是安装路径。
4.使用make生成opencv
make -j7
这里的-j7指的是7个线程运行。
make
成功如下截图所示:
5.安装opencv
sudo make install
输入开机密码后开始安装,没有报错则opencv成功安装到/usr/local/文件夹中
在/usr/local/文件夹中看到如下四个文件夹则表明安装成功,前三个文件夹里都是opencv相关文件,第四个share文件夹是系统原有文件夹。
二、在Xcode中构建OpenCV工程
1.创建一个工程:
2.点击Next,然后给工程命名,语言选择C++,组织者身份也是自定义:
3.再次点击Next,选择工程存储位置,我选择存储在CPP这个文件夹下:
4.点击Create:
5.项目创建完成,接下来就是核心工作:配置OpenCV环境了
根据下面截图中的提示,在“Header Search Paths
”的“Debug
”模式中输入“/usr/local/include/
”和“/usr/local/include/opencv4/
”。
同样,在“Header Search Paths
”下方的“Library Search Paths
”的“Debug
”模式中输入“/usr/local/lib/
”截图如下:
接着,在“Linking - General
”下方的“Runpath Search Paths
”中输入“/usr/local/lib/
”,截图如下:
还没完,还有一步:右键单击的工程名,选择“Add Files to "Opencv_test"...
”
单击后,出现下面的窗口:
然后,按键盘上的“/”键,输入“/usr/local/lib/”:
然后回车,到如下页面:
选中lib文件夹,然后点击Add
然后工程目录下会出现一个lib文件夹,此文件夹中会包含链接的库:
6.测试工程
在你的main.cpp文件中编写opencv相关代码,测试环境是否构建成功。你可以选择下面这段代码,但是务必更改图片文件的路径!
#include<iostream>
#include<opencv2/opencv.hpp>
int main()
{
std::string image_path = "/Users/freespirit/Pictures/Nayeon.png";
cv::Mat gray_img = cv::imread(image_path, 1);
if (gray_img.empty())
{
std::cout << "no file" << std::endl;
return 0;
}
cv::imshow("image", gray_img);
cv::waitKey(0);
return 0;
}
测试成功截图如下:
7.消除警告
你注意到虽然测试程序成功运行了,但是在左侧的警告栏中出现了40个警告(Empty paragraph passed to '@param' command
)!这是由于这些源码中的@
注释在Xcode或者说是在MacOS系统中不合适引起的(因为在Windows下的Visual Studio C++中没有这样的问题),按照下面截图中的提示在“Build Settings
”-“Apple Clang - Custom Compiler Flags
”-“Other Warning Flags
”中输入“-Wno-documentation
”。
这样操作之后,并没有消除全部警告,还剩下七个警告(Arithmetic between different enumeration types ('......' and '......') is deprecated
),这是Xcode已经弃用了不同枚举类型之间的算术运算而OpenCV源代码中还存在这样的运算导致的警告,警告截图如下:
解决方法与上一个方法相同,按照下面截图中的提示在“Build Settings
”-“Apple Clang - Custom Compiler Flags
”-“Other Warning Flags
”中输入“-Wno-deprecated
”。
对您有用的话,请一键三连呀 >_<
原文地址:https://blog.csdn.net/weixin_43662044/article/details/134248723
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_20166.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!