【问题标题】:Is the official MATLAB computer vision toolbox actually OpenCV?官方的 MATLAB 计算机视觉工具箱真的是 OpenCV 吗?
【发布时间】:2014-09-22 11:32:24
【问题描述】:

我不禁注意到计算机视觉工具箱的 MATLAB 文档有一种非常熟悉的感觉,就好像它是对 OpenCV 文档和示例的重新编写一样。

这是 MATLAB 工具箱文档: http://www.mathworks.co.uk/products/computer-vision/

这是 opencv 文档: http://docs.opencv.org/

现在我目前没有 MATLAB,所以我无法真正检查。有谁知道它是否真的是 MEX OpenCV?

干杯

【问题讨论】:

标签: matlab opencv image-processing computer-vision matlab-cvst


【解决方案1】:

MATLAB 大部分情况下在其 CV 工具箱的底层使用 OpenCV 库。但是,我想指出,计算机视觉工具箱还实现了一些独立于 OpenCV 库的功能,但该工具箱提供的大部分功能都使用 OpenCV 功能。正如 Amro 在下面的评论中所引用的:

与许多其他领域一样,MATLAB 以易于使用的格式包装知名库(想想 BLAS/LAPACK、FFTW、SparseSuite,仅举几例!)。因此,尽管 MATLAB 确实在其 CVST 工具箱中使用了 OpenCV,但它添加了许多其他 OpenCV 中没有的算法(以 M 代码或更低级别的语言实现)。

此外,如果您已经在此平台上编写了代码,并且如果您正在开发 MATLAB 产品并希望充分利用 OpenCV,那么您当然可以将 OpenCV 代码与 MATLAB 进行交互。有关详细信息,请参阅此链接(由 Amro 提供):http://www.mathworks.com/discovery/matlab-opencv.html

在最终运行的计算机视觉工具箱中调用的一些 MEX 函数最终调用 OpenCV C++ 方法。在安装 MATLAB 的文件夹中,如果您实际查看 bin/os/ 文件夹,其中 os 是您正在使用的操作系统(对我来说,它是 maci64),您会看到 @987654327 @ 文件夹。在此文件夹中,您将看到许多动态链接库,这些库基本上是来自 OpenCV 的库,作为 CV 工具箱一部分的 MATLAB MEX 函数最终可以访问这些库。

要在 MATLAB 中导航到此处,请在 MATLAB 命令提示符中键入:

>> cd (matlabroot)/bin/

.. 然后进入适用于您的操作系统的文件夹,最后进入libopencv 文件夹。

在调用 OpenCV 库中的函数时,您还将看到正在使用的 OpenCV 版本,并且版本号附加在每个文件的末尾。因此,如果您想将 OpenCV 用于您的任何 MEX 函数,也许最简单的方法是使用预加载到 MATLAB 中的版本来避免任何编译/设置问题。有了这个,请确保您访问了此版本 OpenCV 的相应文档。

因此,对于工具箱中使用 OpenCV 的那些函数,这实际上是一个三步过程:

  1. Computer Vision Toolbox 提供 MATLAB 包装器供您调用函数。
  2. 在这些 MATLAB 包装器中,可能有一些预处理步骤,然后会传递给 MEX 函数。 MATLAB 的 CV 工具箱中可能有一些函数,您只是直接调用 MEX 函数,而 MATLAB 包装器可能只包含您正在调用的函数的文档字符串。
  3. 在 MEX 代码中,他们从 OpenCV 库调用 OpenCV 函数,然后输出您需要的结果。现在,我不太确定哪些 MATLAB CV 函数本身调用了 OpenCV 函数,但我知道绝大多数 MATLAB CV 工具箱确实在后台调用了 OpenCV。

【讨论】:

  • 哇!不知道所有这些有用的信息。想知道其他操作系统是否也是如此! +1
  • @Divakar - 哈哈谢谢 :) 我在尝试安装由 Kota Yamaguchi 编写的 OpenCV MATLAB 包装器时偶然发现了这一点,以便我可以直接在 MATLAB 中使用 OpenCV 库:vision.is.tohoku.ac.jp/~kyamagu/software/mexopencv .我不得不对文件进行大量修改和修改,其中包括更改libopencv 文件夹中的一些动态链接库。当我看到这一点时,我打开了 MATLAB 在他们的 CV 工具箱中调用的一些 MEX 文件,我发现他们的文件中有 OpenCV 调用。真的是偶然发现的!
  • @Divakar - 第 2 部分 - 截至去年年底,OpenCV 在 Github 上创建了一个 MATLAB 分支,允许创建 MATLAB 包装器及其相关的编译文件,以便您可以直接在MATLAB。从本质上讲,这让 Kota Yamaguchi 的工作失去了意义,但在 OpenCV 决定创建一个 MATLAB 分支之前,我使用了他的库。检查:github.com/Itseez/opencv。这样做的好处是您可以访问库必须提供的所有方法,而 MATLAB 仅使用完整 OpenCV 库的一个子集。
  • 为这些链接添加了书签,很酷的东西!谢谢你!如果在其他操作系统上也能确定这种 opencv 幕后操作,这对许多用户来说可能非常有用,因为并不是每个人都有幸拥有 MAC :) 在第 2 部分,MATLAB 也对 GPU 做了同样的事情,嗯,这是一个漫长但相似的故事。
  • 事实上,再三考虑,我在 opencv 包装器上复制了您非常有用的 cmets 以供以后查找! :)
猜你喜欢
  • 2011-09-13
  • 1970-01-01
  • 2014-07-02
  • 2015-01-30
  • 2017-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-11
相关资源
最近更新 更多