OpenCV系列(一)--Mac下OpenCV的安装和配置(遇见的坑与填坑)

it2022-05-05  120

先安装Homebrew

Homebrew官方网址:https://brew.sh/

官方安装方法:

/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” 1 官方卸载方法:

/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)” 1 亲测可用。

如果报错 安装homebrew报错curl: (7) Failed to connect to raw.githubusercontent.com port 443: Operation

解决方案:https://www.jianshu.com/p/68efabd2e32b


安装相关

1、安装wget 方法:输入如下命令

brew install wget

2、安装cmake 方法:输入如下命令

brew install cmake

执行该命令的时候报错如下: Error: cmake: “cxx11” is not a recognized standard 解决方案:我在网上没有找到解决方案,我的解决方案就是卸载Homebrew重新安装了一遍。从新走了一遍成功了。 3 、安装OpenCV

brew install opencv

Opencv安装的位置为 :/usr/local/Cellar/opencv 这里我等了小半天,好像下载完了一直在编译


在xcode中构建OpenCV工程

打开xcode新建一个c++工程如下: 下一步: 下一步: 配置依赖路径 按上图步骤依次执行:12345(6是后面自动生产的) Build Settings -> 搜索框输入search paths ->选择search paths下面的: Always Search User Paths 设置 Yes Framework Search Paths ->双击后面的详细信息添加指定路径/usr/local/lib Header Search Paths ->双击后面的详细信息添加指定路径:/usr/local/include 与 /usr/local/Cellar/opencv/4.1.0_2/include/opencv4(分两次添加) Library Search Paths ->双击添加指定路径:/usr/local/lib

上图中的第6步:添加包 添加包。 右击工程(黄色的工程文件夹,不是蓝色的那个)new一个group,命名为head。然后打开/usr/local/Cellar/opencv/3.4.2/lib目录(之前brew自动下载的opencv目录下的lib目录),然后按照文件种类排序可以看到一些.dylib文件,将这些.dylib文件拖入刚才新建的文件夹下.我这里是43个文件(原参考文章18个),网上有说要加所有后缀是dylib文件,其实左下角带箭头的那些不用管。

弹出选项选择如下 效果如下:

这样我们就可以测试代码了main.cpp添加如下代码

#include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; int main(int argc, const char * argv[]) { Mat image; image = imread("/Users/mile/Downloads/mile.jpg",1); namedWindow("test", WINDOW_AUTOSIZE); imshow("test", image); Mat gray; cvtColor(image, gray, COLOR_RGBA2GRAY); namedWindow("gray"); imshow("gray", gray); waitKey(0); return 0; }

测试效果如下:

opencv Mac下Xcode中遇见的坑与填坑

问题一、error: ‘CV_WINDOW_AUTOSIZE’ was not declared in this scope 解决方案:导包#include <opencv2/highgui/highgui.hpp> 或者上面导包出现了问题再试试。

问题二、unknown type name ‘IpIImage’

解决方案:上面的第六步解决

问题三、 Showing Recent Issues ? Undefined symbol: cv::namedWindow(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int)

您收到链接器错误。我认为这是因为你没有链接到 opencv 需要的正确的库。

正确的库是 pkg-config ,所以我建议:

brew install pkg-config

然后您可能需要重新安装opencv

先卸载

brew uninstall opencv

再安装

brew install opencv

OK 这样应该就可以了。


最新回复(0)