C# 實作複雜圖像處理演算法耗時且易出錯,MATLAB 提供豐富工具箱且語法簡潔。透過 MATLAB Builder NE 將 .m 檔編譯為 .NET Assembly,即可在 WPF 應用中直接呼叫,享有兩全其美:MATLAB 算法優勢 + WPF 豐富 UI。
deploytool 或從 Start 按鈕開啟 MATLAB > NE > deploytool。
JLFG)。
Iorig),再 Add Files 選入需編譯的 .m 函數檔(如 I_orig.m)。

distrib 與 src 兩資料夾。MWArray.dll:路徑通常為 MATLAB安裝目錄\toolbox\dotnetbuilder\bin\win32\v2.0\MWArray.dll(64位系統對應 win64)。distrib\JLFG.dll(你的組件名稱)。
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using JLFG; // 你的命名空間
public void ProcessImage(string imagePath)
{
var iorig = new Iorig(); // MATLAB 產生的類別
// 呼叫 MATLAB 函數:I_orig(inputPath)
// 注意:MATLAB 函數若有多輸出需用 MWArray[] 接收
iorig.I_orig(imagePath);
// MATLAB 以 imwrite 存檔,WPF 再載入顯示
ImgPro.Source = new BitmapImage(new Uri(@"C:\I_orig.jpg", UriKind.Absolute));
}
MATLAB 函數內部必須使用 imwrite 將結果存為圖檔,WPF 再透過 BitmapImage 載入顯示,無法直接回傳影像物件給 .NET。
Win7 32位正常;Win8.1 64位更換
MWArray.dll為 64 位版本仍報錯(見下圖)。歡迎有經驗的大神分享解決方案。

