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

QED*_*QED 7 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?

干杯

ray*_*ica 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文件夹.在这个文件夹中,您将看到许多动态链接的库,这些库基本上是来自OpenCV的库,MATLAB MEX最终将作为CV工具箱访问的一部分.

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

>> cd (matlabroot)/bin/
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

  • @Divakar - 第2部分 - 截至去年年底,OpenCV在Github上创建了一个MATLAB分支,允许创建MATLAB包装器及其相关的编译文件,以便您可以直接在MATLAB中使用OpenCV.从本质上讲,这使得Kota Yamaguchi的作品无法发挥作用,但我在OpenCV决定创建MATLAB分支之前使用了他的库.检查:https://github.com/Itseez/opencv.这样做的好处是你可以访问**所有**方法,而MATLAB只使用完整OpenCV库的一个子集. (2认同)
  • 书签那些链接,kool东西!谢谢你们!如果只有这个opencv under-the-hood-play也可以在其他操作系统上确定,对许多用户来说非常有用,因为不是每个人都有幸拥有MAC :)在第2部分,MATLAB也对GPU做了同样的事情.这是一个漫长但相似的故事. (2认同)