BETA

Matクラスからデータを取り出してダンプする

投稿日:2020-06-09
最終更新:2020-06-25
private string Dump(Array data, List<int> indices, int dimension = 0)  
{  
    string result = "[ ";  

    for (var i = 0; i < data.GetLength(dimension); i++)  
    {  
        if (dimension == data.Rank - 1)  
        {  
            var temp = data.GetValue(indices.Concat(new int[] { i }).ToArray()).ToString();  

            temp = Regex.Replace(temp, @"(Vec[2346][bdfisw] )|([xyz]:)", "");  
            temp = Regex.Replace(temp, @"\(", "[");  
            temp = Regex.Replace(temp, @"\)", "]");  

            result += temp;  

            if (i != data.GetLength(dimension) - 1) result += ", ";  
        }  
        else  
        {  
            result += Dump(data, indices.Concat(new int[] { i }).ToList(), dimension + 1);                      

            if (i != data.GetLength(dimension) - 1) result += ", ";  
        }  
    }  

    return result += " ]";  
}  

private void Test()  
{  
    byte[,] array = { { 255, 255, 255, 255, 255, 255, 255, 255 },   
                      { 255, 255, 255, 255, 255, 255, 255, 255 },   
                      { 255, 255,   0,   0,   0,   0, 255, 255 },   
                      { 255, 255, 255, 255, 255, 255, 255, 255 },   
                      { 255, 255, 255, 255, 255, 255, 255, 255 },   
    };  

    Mat mat = InputArray.Create(array).GetMat();  

    mat.GetRectangularArray(out byte[,] data);  

    string dump = Dump(data, new List<int>());  

    Console.WriteLine(dump);  
}  

結果:
[ [ 255, 255, 255, 255, 255, 255, 255, 255 ],
[ 255, 255, 255, 255, 255, 255, 255, 255 ],
[ 255, 255, 0, 0, 0, 0, 255, 255 ],
[ 255, 255, 255, 255, 255, 255, 255, 255 ],
[ 255, 255, 255, 255, 255, 255, 255, 255 ] ]

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@u4xiの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう