私はMATLAB dllを使用しています。入力として int[,] 型の行列を取り、出力は :object{double[,]} 型です。
private void pic_edges(int[,] array)
{
Class1 obj = new Class1();
object res = null;
res = obj.edge_dll(1, array, .5);
}
名前 ; 価値 ; タイプ
解像度; {オブジェクト[1]} ; オブジェクト{オブジェクト[]}
[0] ; {ダブル[450,600]} ; オブジェクト{ダブル[、]}
object{double[,]} を int[,] または double[,] に変更したいと思います。しかし、どのように???
int[,] pic=null;
double[,] pic2=nu1l;
編集 :
私は次のコードを使用しました:(「今、名前を付けてはならない彼」に感謝します)
var objectArray = obj.edge_dll(1, array, .5);
double[,] pic3 = (double[,]) objectArray[0];
そしてそれは正しく変換されます。
double[,] を int [,] に変換する方法
私はこのコードを使用しました:(しかし、もっと良い方法はありますか??)
int[,] pic4 =new int[pic3.GetLength(0),pic3.GetLength(1)];
for (var i = 0; i < pic3.GetLength(0); i++)
for (var j = 0; j < pic3.GetLength(1); j++)
pic4[i, j] = (int)pic3[i, j];