[Snippets]Passing a Bitmap from C# to a MatLab dll
此篇著重在C#傳遞灰階的bitmap影像資料給matlab dll的程式碼,至於如何編譯與使用matlab dll請參考本站文章build .net assembly dll for c# use by MATLAB r2011a和matlab dll usage on Visual Studio 2011。
C#
```Bitmap bitmap = gray.ToBitmap();
int width = bitmap.Width;
int height = bitmap.Height;
double[,] = new double[height, width];
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
Color pixelColor = bitmap.GetPixel(i, j);
double b = (pixelColor.R + pixelColor.G + pixelColor.B) / 3; //the Brightness component
bnew.SetValue(b, j, i);
}
}
e.goGetRecognizedClass((MWNumericArray)bnew); // 假設有個goGetRecognizedClass的matlab函式
以上的Code Snippets適用在二維影像,若是三維影像 (color image),只要將bnew變成三維 -> for迴圈改成三層 -> 把GetPixel得到的R、G、B值分別丟進bnew而非取平均即可。