【问题标题】:How to link OpenCV with MATLAB for macOS如何将 OpenCV 与 MATLAB for macOS 链接
【发布时间】:2021-05-30 13:08:37
【问题描述】:

我正在尝试通过 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

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

在 C++ 代码中: #include

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

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

【问题讨论】:

  • 只有当您将编译器设置为错误而不是警告时,缩小转换才是错误。您可能在编译命令中遗漏了-lopencv 或类似内容。需要更多信息。
  • 你用 python 试过 opencv 但是你是怎么安装 opencv 的?
  • @CrisLuengo 感谢您的回复,我尝试添加 -lopencv 但仍然有错误,是的,我相信我错过了一些东西,但它是什么?
  • @YunusTemurlenk 据我所知,我使用过 pip install opencv-python
  • 你使用 pip 安装的库仅适用于 python。您不能将它们与 c++ 一起使用。

标签: c++ matlab opencv clang mex


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 2013-11-12
    相关资源
    最近更新 更多