如何使用C++代码调用matlab自定义函数
问题描述:
如果我在matlab文件add.m
中定义add(a,b)
函数,我该如何从C++代码调用它? 一个这样简单的例子: add.m:如何使用C++代码调用matlab自定义函数
function y=add(a,b)
y=a+b;
end
C++代码:
int main(){
// call add(a,b) ?
}
Acturally,我需要在我cpp的代码,使用起来更加compilicate MATLAB功能,如cp2tform()
和imtransform()
。
答
您可以从C/C++程序中调用MATLAB引擎。见例如external interfaces reference R2016b或online documentation on the MATLAB Engine。当在C/C++代码中使用Matlab引擎时,只需在a
和b
与engPutVariable
命令通过Matlab后调用engEvalString(MyEngine,"add(a,b)");
。
谢谢,但我想转换不能通过'matlab coder'转换'cf2tform'函数。 – Fire
我不知道那是什么方法,也找不到它在线。但我真的怀疑你可以从C++中调用任何.m文件。另外,我会在OpenCV中寻找类似的功能。例如,http://docs.opencv.org/2.4/modules/imgproc/doc/geometric_transformations.html?highlight=warpaffine可能包含与'imtransform'类似的函数。 – smttsp
你真好,再次感谢。但我需要在matlab中使用“相似变换”,详细地说,将一个具有5个点(src点)的图像转换为另一个模板图像(dst个点),该方法在opencv中不是简单的'仿射变换'。另一个困惑是'estimateRigidTransform'(opencv api)不能接受5点变换,但有时候不能产生'变换矩阵'(T_mat = 0)。 – Fire