在Octave中使用OpenCV库

时间:2013-11-25 22:04:01

标签: c++ opencv octave

有人可以提供一些有关查找/生成在Octave中使用的OpenCV包装器的见解吗?

我找到了一些讨论此问题的旧网页,但未能弄明白!

编辑:

在此页面中:http://octave-swig.sourceforge.net/octave-opencv.html 它说最新版本:“2008年3月27日:这些绑定已经集成到OpenCV中。最新的资源现在只能从OpenCV CVS获得。”

但OpenCV 2.4.6不支持Octave。似乎在某些时候(OpenCV 2.0)在OpenCV的cmake文件中有一个“带八度支持的构建”。但是,随着OpenCV附带的cmakelists.txt中不存在该选项!

3 个答案:

答案 0 :(得分:1)

Matlab interface generator中第一种方法是opencv contrib。这个存储库提供了为OpenCV函数生成MEX包装器的代码 - 这些MEX也适用于八度音,但是为了正确设置,你需要为OpenCV本身提供CMake文件(即你应该从源代码构建它)。

正如@McMa所提到的,有一个很好的链接来收集已经创建的Matlab / Octave接口:MEXOpenCV - 你可以简单地使用现有的源来创建适合八度的MEX。

对于这两种方法,当您已经拥有带Matlab接口的C / C ++源代码(即带有 mexFunction 的C / C ++文件)时,您可以将它们编译为 MEX 使用以下命令(在linux环境中,但我认为在windows中没有太大区别):

@name

其中mkoctfile --mex -l<opencv lib name> <source name>是必需的模块(类似-l<opencv lib name>),而-lopencv_core -lopencv_imgproc是您的源文件(带 mexFunction )名称。

有关<source name>的更多信息,请参阅octave documentation page

答案 1 :(得分:0)

我会使用Octave的MEX接口:

https://www.gnu.org/software/octave/doc/interpreter/Mex_002dFiles.html

你可以从Octave调用C ++(我想是OpenCV库)。

Pd积:

这个链接似乎是一个更好的选择: https://www.gnu.org/software/octave/doc/interpreter/Oct_002dFiles.html#Oct_002dFiles&lt; - 十月文件

答案 2 :(得分:0)

我在MatLab中使用编译为MEX文件的OpenCV函数,它运行顺畅。由于MEX函数看起来几乎完全相同,MatLab和Octave,并且取决于编译器和其他此类细节,像这样的集合

MEXOpenCV

可能直接起作用,也可能是一个很好的起点。