官方MATLAB计算机视觉工具箱实际上是OpenCV吗?

时间:2014-07-30 17:35:38

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

我无法提醒您注意计算机视觉工具箱的MATLAB文档有一种非常熟悉的感觉,就好像它是对OpenCV文档和示例的重写一样。

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

这是opencv doc: http://docs.opencv.org/

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

干杯

1 个答案:

答案 0 :(得分:9)

大多数情况下,MATLAB使用OpenCV库作为其CV工具箱。但是,我想要注意的是,计算机视觉工具箱还实现了一些独立于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 libopencv 1}}),您将看到>> cd (matlabroot)/bin/ 文件夹。在这个文件夹中,您将看到许多动态链接的库,这些库基本上是来自OpenCV的库,MATLAB MEX最终将作为CV工具箱访问的一部分。

要在MATLAB中导航,请在MATLAB命令提示符中输入:

libopencv

..然后进入适用于您的操作系统的文件夹,最后转到{{1}}文件夹。

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

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

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