将位图图像转换为矩阵

Pay*_*yam 5 c# bitmap matrix

在C#中,我需要将已经转换为Bitmap的图像转换为图像宽度和高度的矩阵,该矩阵由位图数据的uint8组成.换句话说,将位图数据放在矩阵中并将它们转换为uint8,这样我就可以对矩阵行和列进行计算.

Rah*_*thi 6

尝试这样的事情:

public Color[][] GetBitMapColorMatrix(string bitmapFilePath)
{
    bitmapFilePath = @"C:\9673780.jpg";
    Bitmap b1 = new Bitmap(bitmapFilePath);

    int hight = b1.Height;
    int width = b1.Width;

    Color[][] colorMatrix = new Color[width][];
    for (int i = 0; i < width; i++)
    {
        colorMatrix[i] = new Color[hight];
        for (int j = 0; j < hight; j++)
        {
            colorMatrix[i][j] = b1.GetPixel(i, j);
        }
    }
    return colorMatrix;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果你想要它慢,你使用`GetPixel`.如果图像不是_small_,则必须使用`Bitmap.Lockbits()`然后直接访问基础数据.根据图像的大小,使用专用库(AForge.Net,Streamwave,OpenCV,IPP ......)也可能有意义. (3认同)