如何将 OpenCV 与 MATLAB for macOS 链接起来

问题描述

我正在尝试通过 MATLAB 和 mex 命令运行使用 OpenCV 库的 C++ 代码(代码已经有一个 mexFunction)。

我已经安装了 OpenCV 库,我之前在 Python 中使用过它。我认为它应该适用于运行 C++ 代码。我正在运行此命令以在 MATLAB 上编译代码:

mex -setup
mex fileName.cpp -L/usr/local/lib -I/usr/local/include/

我也尝试过:

mex fileName.cpp -L/usr/local/lib -I/usr/local/include/ -llibopencv_core

但是我得到了不同的错误并且没有成功编译,例如:

错误:非常量表达式不能从类型“int”缩小到 初始化列表中的 'unsigned long' [-Wc++11-narrowing]

注意:插入显式强制转换以消除此问题 const long unsigned int

我觉得链接有问题。 如何在 macOS 上使用 Clang 编译器将 OpenCV 与 MATLAB 链接以运行 C++ 代码?

在 C++ 代码中: #include

和 opencv2 在里面 -I/usr/local/include/

在 /usr/local/lib 里面,我只能找到这些 opencv libraries

解决方法

1- 修复是通过使用 正确路径 到 opencv 库和 Include 文件夹,因为我的计算机上有几个 opencv 文件,这些文件是使用 pip 为 python 项目安装的,我更改了brew 安装的 opencv 文件夹的路径。 2- 我不仅添加了所有需要的 -l 文件 -llibopencv_core.顺便说一句,我需要删除 (lib) 表单 llibopencv_core 所以它变成这样 -lopencv_core 以便编译器 (clang) 可以看到它。

3- 最后,为了消除缩小错误,我对变量的类型进行了一些更改以使其保持一致,仅此而已(但是,一些编译器将其视为警告,无需任何更改即可正常工作)。

>

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...