• WPF调用Matlab函数方法


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

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

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

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

    首先,生成Matlab的.DLL文件

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

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

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

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

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

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

    在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进行保存,因此才有了最后一句的调用图像路径。

    最终的实现效果

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

  • 相关阅读:
    zw版【转发·台湾nvp系列Delphi例程】HALCON FillUp2
    zw版【转发·台湾nvp系列Delphi例程】HALCON FillUp1
    zw版【转发·台湾nvp系列Delphi例程】HALCON FillUpShape2
    zw版【转发·台湾nvp系列Delphi例程】HALCON DivImage2
    zw版【转发·台湾nvp系列Delphi例程】HALCON FillUpShape1
    zw版【转发·台湾nvp系列Delphi例程】HALCON DivImage1
    phpstorm10.0.1和webstorm11注册
    制作自己的Cydia发布源
    theos的makefile写法
    wdcp v3 Forbidden :You don't have permission to access /phpmyadmin on this server
  • 原文地址:https://www.cnblogs.com/ZXdeveloper/p/3949470.html
Copyright © 2020-2023  润新知