有没有办法将图像转换为0和1和1的多维数组

时间:2013-03-09 21:49:57

标签: c# winforms image-processing

我想将图像转换为0和1的多维数组。 图像将是:

enter image description here

我不想将这个图像存储到一个数组中,其中'black'存储为1,而'white'存储为数组中的0。该数组将是8行和6列:

int[,] imgArray = new int[8,6];

有没有办法在C#中实现这个目标?

1 个答案:

答案 0 :(得分:3)

如果您使用Bitmap,则可以像这样填充数组:

var bitmap = new Bitmap(@"C:\MyImage.png");
var imgArray = new int[bitmap.Width,bitmap.Height];
var blackArgb = Color.Black.ToArgb();
var whiteArgb = Color.White.ToArgb();
for (var i = 0; i < bitmap.Width; ++i)
{
    for (var j = 0; j < bitmap.Height; ++j)
    {
        var pixelCol = bitmap.GetPixel(i, j);
        if (pixelCol.ToArgb() == blackArgb)
        {
            imgArray[i, j] = 1;
        }
        else if (pixelCol.ToArgb() == whiteArgb)
        {
            imgArray[i, j] = 0;
        }
        else
            throw new InvalidOperationException("Pixel color must be black or white");
    }
}