Предполагается, что это вычисляет гистограмму 8-битного изображения в градациях серого. С тестовым растровым изображением 1024x770 CreateTime составляет около 890 мс. Как я могу заставить это идти (намного, намного) быстрее?
РЕДАКТИРОВАТЬ: я должен упомянуть, что это еще не вычисляет гистограмму, а только получает значения из растрового изображения. Так что я действительно должен был спросить, каков самый быстрый способ получить все значения пикселей из 8-битного изображения в градациях серого?
public class Histogram {
private static int[,] values;
public Histogram(Bitmap b) {
var sw = Stopwatch.StartNew();
values = new int[b.Width, b.Height];
for (int w = 0; w < b.Width; ++w) {
for (int h = 0; h < b.Height; ++h) {
values[w, h] = b.GetPixel(w, h).R;
}
}
sw.Stop();
CreateTime = (sw.ElapsedTicks /
(double)Stopwatch.Frequency) * 1000;
}
public double CreateTime { get; set; }
}