2013-03-25 96 views
2

我正在一个Qt项目,需要我来使用Matlab C++共享库。我基本上正在使用我获得的图像,并且我需要稍后对它们进行进一步的处理。从C++调用Matlab与刷新输入

我在C平台上获取图像对我来说绝对有必要,然后在需要时调用Matlab进行处理。我的图像以高速进入:大约每秒100帧。

问题是,只要我在一个循环中调用Matlab,我就能够处理获取的图像,但不是实时的。在Matlab中随后的调用之间需要一到两秒的时间。我假设它正在清除其他图像并只绘制一些图像。

你能否给我一个建议,让我可以调用一次Matlab函数,并且实时改变我的输入。我不打算使用Matlab引擎,因为那需要我在每台计算机上安装Matlab,我的项目运行。

+0

你的意思是说你使用matlab到C接口从matlab代码建立一个共享库。并调用共享库来处理您的图像? – 2013-03-25 07:49:30

+0

@Min Lin ..是的,这正是我的项目的全部内容。图像以每秒100帧的速度来到我身边,我需要能够在Qt中使用SDK进行参数化以及使用构建的matlab库进行的所有处理。 – Alok 2013-03-25 08:16:14

+0

我不太明白这一点“我只能调用Matlab函数一次,而且我的输入每次都会改变。”你的问题是如何以每秒100帧的速度实现? – 2013-03-25 08:41:38

回答

1

您是否正在使用MATLAB编译器创建一个MATLAB代码库,期望能够每秒调用它100次?

这不会发生 - 调用库的开销太高。这听起来像你的图书馆也可能正在做一些阴谋,这可能也需要很长时间。

你也许可以看看使用MATLAB编码器将你的MATLAB图像处理算法转换为C代码,然后将C代码直接整合到你的主代码中。 MATLAB编码器支持大部分图像处理工具箱,计算机视觉系统工具箱和大部分与信号处理相关的工具箱都支持该工具箱。

+0

我同意@Sam Roberts。我没有得到它在每秒100帧。但是我意识到加载数据需要更长的时间。此外,Calling Plot函数也很耗时。我在代码上工作,通过引用传递数据,加载数据的次数最少,并在必要时调用绘图函数,我可以快速获得它看起来像一个实时视频。最初,我的一个数据每次都从一个mat文件中加载。这花了很多时间。 是的,我打算用C++数学/计算机视觉/图形库来替换图书馆。 感谢您的意见。 – Alok 2013-03-26 07:20:29