Добрый вечер. Пытаюсь разобраться с тем, как сложить или перемножить матрицу, которая задается по условию, с матрицей цветов. Только судя по всему Bitmap или Color вообще не прокатывают. Возможно кто-нибудь знает, как преобразовать матрицу цветов (result[0]) в трехмерную, а затем обратно или может есть еще способ записывать матрицу matr по типу Color или вроде того. Само по себе задание это действия с матричным фильтром. Вроде бы не так уж и сложно на словах, но конструкцию подходящую найти не получается.
private void filtr3_Click(object sender, EventArgs e)
{
Bitmap im = (Bitmap)firstimage.Image;
Bitmap[] result = new Bitmap[] { new Bitmap(im.Width, im.Height) };
Bitmap[] outputimg = new Bitmap[] { new Bitmap(im.Width, im.Height) };
//Color[] outputimg = new Color[im.Width, im.Height];
Color[,] input = new Color[im.Width, im.Height];
int width = im.Width;
int height = im.Height;
// StreamWriter steamWriter = new StreamWriter("D:/Программы/kursovKIT/kursovKIT/1.txt");
int[,] cl = new int[im.Width, im.Height];
int[,] matr = new int[,]{ { -1, -2, -1 },
{ -2, 13, -2 },
{ -1, -2, -1 } };
for (int i = 0; i < width; i++)
{
for (int j = 0; j < height; j++)
{
Color color = im.GetPixel(i, j);
double R = color.R;
double G = color.G;
double B = color.B;
int r = Convert.ToInt32(R);
int g = Convert.ToInt32(G);
int b = Convert.ToInt32(B);
result[0].SetPixel(i, j, Color.FromArgb(color.A, r, g, b));
for (int i1 = 0; i1 < width; i1 += 3)
{
for (int j1 = 0; j1 < height; j1 += 3)
{
outputimg[0] = result[0]*matr[3,3];
}
}
}
}
// pictureBox1.Image = im;
}