/// <summary> /// M x N の行列として初期化し、指定した配列からデータをコピーする /// </summary> /// <param name="arr">この行列にコピーされるデータ</param> #else /// <summary> /// Initializes as M x N matrix and copies array data to this /// </summary> /// <param name="arr">Source array data to be copied to this</param> #endif public static Mat <TElem> FromArray(TElem[,] arr) { if (arr == null) { throw new ArgumentNullException(nameof(arr)); } if (arr.Length == 0) { throw new ArgumentException("arr.Length == 0"); } var rows = arr.GetLength(0); var cols = arr.GetLength(1); var mat = new Mat <TElem>(rows, cols); if (!mat.SetRectangularArray(arr)) { throw new OpenCvSharpException("Failed to copy pixel data into cv::Mat"); } return(mat); }