wpf matlab混编,WPF调用Matlab函数的方法

有的时候用C#写图像处理方法,比较费事,不如Matlab简单,但是Matlab又做不出WPF那样的好看界面,怎么办呢。

今天正好我要实现这个功能,就顺便写个小例子,给需要的人做个借鉴。

想要用WPF调用Matlab代码,就用到了Matlab生成.DLL文件的功能。

注:我的VS版本是2013,Matlab版本是2012a,两个软件不算新也不算老,应该是现在普遍用的版本

首先,生成Matlab的.DLL文件

在matlab的左下角选择start-matlab-NE-deploytool,或者直接在command界面输入deploytool。

13dc6d991b7714862fd513aa92c04402.png

在弹出的对话框里,输入你需要输入的内容,可以默认,也可以手动填入,Type选项一定要选择.NET Assembly选项。

194012cd11cf8064211a6ce0006bc39f.png

在Matlab窗口右侧会出现一个对话框,点击Add Class增加一个Class,名字自己填写,然后点击Add Files,选择需要的生成DLL的Matlab函数文件。

5dc420589a1e51637df1621abe2ffb1b.png

b4f0834e1fe0f0aebc9b95ff8de46809.png

3c129ac803ef99564566069a187e42f4.png

62d9f3daa76580b950ca46a1d792c146.png

然后点击Build按钮,等待进度条走完

6aae34edff944ba094a9c2282a4fc4df.png

当进度条走完以后,在刚才的目录下会生成一个以name命名的文件夹,此文件夹下会有两个文件夹,分别是distrib和src。

在WPF程序下进行引用,浏览,找到MWArray.dll,我的路径是“D:\Program Files\MATLAB\R2012a\toolbox\dotnetbuilder\bin\win32\v2.0”,这个也就是前面会根据不同人安装的Matlab路径不一样而不一样,后面基本是一样的,同时引用distrib文件夹下的JLFG.dll文件。

e677df48de86c6b8da694e595bb62d6b.png

在WPF的代码中进行引用

using MathWorks.MATLAB.NET.Arrays;

using MathWorks.MATLAB.NET.Utility;

using JLFG;

写实现部分代码

string proPath = selPath();

JLFG.Iorig iorig = new Iorig();

iorig.I_orig(proPath);

ImgPro.Source = BitImg("C:\\I_orig.jpg");

中间的两行代码为调用实现部分,第一行代码是获取图片的路径,最后一行是展示图像用的。

因为Matlab输出是直接用Figure输出,因此需要imwrite进行保存,因此才有了最后一句的调用图像路径。

最终的实现效果

f605d4e48d893665d33e31c98b591d9a.png

但是,有一个问题出现了,就是我实现的过程用的是Win7 32位的的系统,没有问题,用Win8.1 64位系统就不好使,虽然更换了MWArray.dll的路径为64位的路径,依然不好使,出现如下错误,有知道如何解决这个问题的大神,请告知方法,在此谢谢了。

20d62510af588384a5533cf6d060466f.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值