Ок, мне нужно создать два массива, как это:Как создать массив в цикле
double[][] TrainPatterns = {
new double[] { 0.0, 0.0 },
new double[] { 0.0, 1.0 },
new double[] { 0.0, 2.0 }
};
double[][] TrainResults = {
new double[] { 0.0 },
new double[] { 1.0 },
new double[] { 1.0 }
};
Но с 100 пунктов каждый.
Я читаю значения для массивов из изображения (TrainPatterns содержит координаты x и y пикселя, TrainResults содержит цвет пикселя, 0 для черного, 1 для белого).
Я перебор изображения, как это:
Bitmap objBitmap = new Bitmap("im.bmp");
for (int y = 0; y < objBitmap.Height; y++)
{
for (int x = 0; x < objBitmap.Width; x++)
{
// here I need to insert new double[] { (double)x, (double)y } to the
// TrainPatterns array
Color col = objBitmap.GetPixel(x, y);
if (col.R == 255 && col.G == 255 && col.B == 255)
{
// white color
// here I need to insert new double[] { 1.0 } to the
// TrainResults
}
if (col.R == 0 && col.G == 0 && col.B == 0)
{
// black color
// here I need to insert new double[] { 0.0 } to the
// TrainResults
}
}
}
Как я могу добавлять элементы в этих массивы динамически для цикла? Я знаю, что изображение имеет ширину 10 пикселей и высоту 10 пикселей, поэтому я знаю, что у массивов будет длина 100.
Я просто задать несколько глупых вопросов. 1) Почему вы сохраняете каждую координату? Поскольку массив плотный, вы можете просто удерживать значения, причем их положение диктует координату. 2) Почему вы сохраняете каждый результат как одноэлементный 'double []'?Не могли бы вы просто использовать «двойник»? 3) Не могли бы вы использовать битмап в качестве структуры данных, используя GetPixel и SetPixel в качестве аксессуаров? 4) В качестве альтернативы вы могли бы сохранить весь битмап в виде двух длин (с достаточным пространством для 128 бит)? –