Как получить красный компонент из изображения C#

#c# #winforms

#c# #winforms

Вопрос:

Как получить красный компонент из изображения на C # (Windows forms). Я хочу получить красный компонент в новой матрице. Я пробовал что-то подобное с bmp:

 byte[,] MatrixImage= new byte[256, 256]; // is my matrix where every pixel of my image is stored
byte[,] MatrixRed= new byte[256, 256]; 
Bitmap bmp = new Bitmap(256, 256);

for (int i = 0; i < 256; i  )
            {
                for (int j = 0; j < 256; j  )
                {      
                    var red = Color.FromArgb(MatrixImage[i, j], 0, 0);
                    bmp.SetPixel(i, j, red);
                    var getRedPixel = bmp.GetPixel(i, j);
                    MatrixRed[i, j] = (byte)getRedPixel;

                }
            }

 

Ответ №1:

GetPixel возвращает цветной объект, поэтому вы, вероятно, ищете это: MatrixRed[i, j] = (байт)(getRedPixel.R);

Комментарии:

1. У меня больше нет ошибок. Но почему мой образ такой: ibb.co/CsJ1QZs ?

2. byte[,] MatrixImage= новый байт [256, 256]; Эта строка не может быть исправлена. Почему исходное изображение должно иметь тот же размер массива, что и изображение, в котором в качестве канала используется только красный

3. Я предполагаю, что массив содержит всю информацию об изображении, поэтому вы можете смешивать каналы вместе.