Как максимально быстро узнать среднее значение RGB в изображении
Делаю свой ambylight. Устройство arduino. Ширину изображения делю на 72.Высоту беру 200. У меня 72 led. Далее из каждого промежутка 50*200 я хочу получить среднее rgb, чтобы отослать его в Serial. Проблема. Проход между пикселями занимает много времени. Как ускорить этот процесс?
var lst= new List<Color>();
using (Graphics g = Graphics.FromImage(bmp))
{
g.CopyFromScreen(screenLeft, screenTop, 0, 0, bmp.Size);
var width = g.VisibleClipBounds.Width;
var rng = Convert.ToInt32(width / 72);
for (int i = 0; i < width; i+=rng)
{
int r = 0;
int g = 0;
int b = 0;
int total = 0;
for (int j = 0; j < 200; j++)
{
Color clr = bmp.GetPixel(i, j);
r += clr.R;
g += clr.G;
b += clr.B;
total++;
}
r /= total;
g /= total;
b /= total;
lst.Add(Color.FromArgb(r, g, b));
}
}
