public void TestMatND() { using (MatND<float> mat = new MatND<float>(3, 5, 1)) { mat.SetRandNormal(new MCvScalar(), new MCvScalar(255)); MatND<double> matD = mat.Convert<double>(); MCvMatND matND = matD.MCvMatND; int rows = matND.dim[0].Size; int cols = matND.dims >= 2 ? matND.dim[1].Size : 1; int channels = matND.dims >= 3 ? matND.dim[2].Size : 1; Matrix<double> matrix = new Matrix<double>(rows, cols, channels); CvInvoke.cvCopy(matD, matrix, IntPtr.Zero); //using (MatrixViewer viewer = new MatrixViewer()) { //viewer.Matrix = matrix; //viewer.ShowDialog(); } } }