私はすでに LockBits および UnlockBits 関数を使用しており、Image のバイト配列を 1D 配列に取り込んでいます。(白黒/二値化画像のみを考慮)
それを2D配列(サイズの画像の高さと幅)にする方法はありますか? 配列を「.txt」ファイルに書き込んで表示できますか?
画像を1D配列に取り込むために使用したコードは次のとおりです。
Public void function(Bitmap image){
{
byte[] arr1D;
byte[] arr2D;
BitmapData data = image.LockBits(new Rectangle(0, 0, img_w, img_h), ImageLockMode.ReadOnly, image.PixelFormat);
try
{
IntPtr ptr = data.Scan0;
int bytes = Math.Abs(data.Stride) * image.Height;
byte[] rgbValues = new byte[bytes];
arr1D = rgbValues;
Marshal.Copy(ptr, rgbValues, 0, bytes);
}
finally
{
image.UnlockBits(data);
}
}
画像はバイナリなので、Byte 配列の値は 255 と 0 のみです。
画像全体を 1D 配列に抽出する代わりに、行ごとにピクセルを 2D 配列に抽出できるメソッド/コードはありますか?テキスト ファイルに書き込んで後で確認できますか?
プログラミング言語 : C#
例: (値 255 が 1 に置き換えられた場合)
結果出力: 1D 配列: (6px X 6px 画像)
0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0
予想される出力: 2D 配列: (6px X 6px 画像)
0 0 1 1 0 0
0 0 1 1 0 0
1 1 1 1 1 1
1 1 1 1 1 1
0 0 1 1 0 0
0 0 1 1 0 0
誰かがC#でのコードを手伝ってくれませんか?