我正在使用Matlab进行图像处理项目.我们应该在手机上运行我们的程序(打算成为一个应用程序).然后我们被要求将我们的代码转换为C或C++语言,这样我们就可以了解执行需要多长时间然后选择一个平台.到目前为止,我们还没有弄清楚如何进行这种转换..任何关于如何将Matlab转换为C或C++的想法?
Stu*_*etz 14
您需要意识到的第一件事是将代码从一种语言移植到另一种语言(特别是与Matlab和C++不同的语言)通常是非常重要且耗时的.您需要很好地了解这两种语言,并且您需要在两者中都有类似的设施.在Matlab和C++的情况下,Matlab为您提供了许多在没有使用库的情况下在C++中不可用的东西.因此,首先要确定您需要在C++中使用哪些库.(你可以自己写一些东西,但如果你自己写完所有东西,你会在那里待很长时间.)
如果您正在进行图像处理,我强烈建议您在http://www.itk.org上查找类似ITK的内容- 我用C++编写了两次图像处理软件,一次没有ITK(自己编写所有内容)和一次使用,并且使用ITK的版本更快完成,表现更好,工作乐趣十倍.FWIW.
Ste*_*fan 12
Matlab可以为您创建C代码.
请参阅:http: //www.mathworks.com/products/featured/embeddedmatlab/
但是,生成的代码依赖于matlab库.所以你可能不能将它用于手机.但无论如何它可能会节省你一些时间.
我还使用MATLAB Coder将由几百行MATLAB组成的一些函数转换为C.这包括使用MATLAB的特征值求解器和矩阵求逆函数.
尽管Coder能够生成C代码(理论上它是相同的),但它非常复杂,臃肿,无法破译,而且效率极低.它实际上创建了大约10倍的代码行.我最终手动转换它,以便我以后能够理解C代码并进行进一步的更改/更新.然而,这个任务可能非常繁琐/危险,因为Matlab中的数组索引是基于1的,而C中的数组索引是基于0的.正如我所经历的那样,您可能会在代码中添加错误.你还必须将任何向量/矩阵算法转换为处理标量的循环(或使用某种类型的C矩阵代数包)
MathWorks提供了一种名为MATLAB Coder的产品,声称可以生成"MATLAB®代码中可读和可移植的C和C++代码".我自己没有尝试过,所以我不能评论它是如何实现这些目标的.
关于图像处理工具箱,此列表(可能是针对R2016b)显示了已为代码生成启用了哪些功能以及它们可能具有的任何限制.
嗯,从 matlab 到 c/c++ 并没有直接转换,您需要了解该语言以及 matlab 和 c/c++ 之间的差异,然后开始用 c/c++ 进行编码。编写一些代码并进行一些测试,直到它起作用。