有的時候用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 files\matlab\r2012a\toolbox\dotnetbuilder\bin\win32\v2.0」,這個也就是前面會根據不同人安裝的matlab路徑不一樣而不一樣,後面基本是一樣的,同時引用distrib資料夾下的jlfg.dll檔案。
在wpf的**中進行引用
using寫實現部分**mathworks.matlab.net.arrays;
using
mathworks.matlab.net.utility;
using jlfg;
");中間的兩行**為呼叫實現部分,第一行**是獲取的路徑,最後一行是展示影象用的。
因為matlab輸出是直接用figure輸出,因此需要imwrite進行儲存,因此才有了最後一句的呼叫影象路徑。
最終的實現效果
但是,有乙個問題出現了,就是我實現的過程用的是win7 32位的的系統,沒有問題,用win8.1 64位系統就不好使,雖然更換了mwarray.dll的路徑為64位的路徑,依然不好使,出現如下錯誤,有知道如何解決這個問題的大神,請告知方法,在此謝謝了。
MATLAB呼叫C C 函式的方法
已有 8167 次閱讀 2010 5 5 13 42 個人分類 遙感程式開發 系統分類 科研筆記 通過matlab將c c 函式編譯成mex函式,在matlab中就可以呼叫了。1,首先裝編譯器 matlab裡鍵入mex setup,選擇你要編譯c 的編譯器 2,寫c 函式 函式的形式必須是 void...
matlab呼叫c 函式
經常會遇到乙個問題,就是怎麼用matlab來呼叫已經寫好的c 下面就學習一下。首先要明白呼叫c 需要用到mex,他主要和matlab的主要介面,介面的主要入口為如下函式 void mexfunction int nlhs,mxarray plhs,int nrhs,const mxarray prh...
C 呼叫Matlab函式
開發環境 visual studio 2019,netframework 4.5,matlab 2018b 基本思路 將.m檔案 matlab函式 打包為.dll檔案以供c 呼叫 matlab端操作 編寫matlab函式 function x linear equation solve a,b 求解...