画像を 0 と 1 の多次元配列に変換したいと考えています。画像は次のようになります。
この画像を、「黒」が 1 として格納され、「白」が 0 として配列に格納されている配列に格納したくありません。配列は 8 行 6 列になります。
int[,] imgArray = new int[8,6];
C#でこれを達成する方法はありますか?
画像を 0 と 1 の多次元配列に変換したいと考えています。画像は次のようになります。
この画像を、「黒」が 1 として格納され、「白」が 0 として配列に格納されている配列に格納したくありません。配列は 8 行 6 列になります。
int[,] imgArray = new int[8,6];
C#でこれを達成する方法はありますか?
を使用している場合は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");
}
}