【发布时间】:2016-07-30 18:37:47
【问题描述】:
我正在尝试使用 MLApp 类,特别是 feval 函数从 C# 调用 MATLAB 函数。
由于我是初学者,我浏览了互联网并找到了调用 MATLAB 函数的帮助。我只是简单地调用了一个 MATLAB 函数,它以两个整数作为输入,MATLAB 正确地返回和和差。但我真正需要这样做的原因是将图像发送到 MATLAB 函数并执行一些分析。
到目前为止,我还没有在互联网上找到任何有用的东西。如果可以,可以使用此类将图像传递给 MATLAB 函数吗?如果不是还有什么其他方法?
MATLAB
function [x,y] = myfunc(a,b)
x = a + b;
y = a-b;
C#
MLApp.MLApp matlab = new MLApp.MLApp();
matlab.Execute(@"cd 'D:\Program Files\MATLAB\MATLAB Production Server\R2015a\bin'");
object result = null;
matlab.Feval("myfunc", 2, out result, 3, 2);
object[] res = result as object[];
Console.WriteLine(res[0]);
Console.WriteLine(res[1]);
Console.ReadLine();
【问题讨论】:
-
您要发送什么“图像”?如果它是文件系统上的图像,您可以使用 Matlab 打开它。或者你想发送一个代表图像的 C# 对象?这也没有任何意义,因为您无法在 Matlab 中对其进行任何操作。
-
我正在尝试设计一个应用程序的前端,它从用户获取图像并使用 matlab 函数计算一些图像特征,我想将输入图像发送到已经定义的 matlab 函数并获取评估的特征的返回值。
-
*Visual Studio C# 的前端
-
您的 GUI 会显示图像,并且您有一些按钮,例如“在其上添加一些效果”。当用户按下按钮时,您想将图像发送到 matlab 以应用效果,然后将其发送回 C# 以再次显示?问题是 Matlab 有一个图像的内部表示,例如image = imread('path_to_the_image_file') 并且 C# 也有一个。你不能简单地从一个转换到另一个。您可以在每个步骤之间将文件保存到临时文件中,然后仅发送路径,或者您可以检查将图像映射到 byterestream 并发送该 bytestrem 的可能性。
-
我确实找到了这个链接,该链接解释了我需要使用 MCR domoreinlesstime.wordpress.com/2013/01/26/access-matlab-from-c 做什么,但存在一些混淆,并且 MWNumericArray 不断抛出异常。
标签: c# matlab matlab-deployment com-automation