在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

在这里插入图片描述
这时候进入Downloads文件夹,会看到如下两个文件夹:

在这里插入图片描述

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&gt;
#include<opencv2/opencv.hpp&gt;

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进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注