Jak mogę przyspieszyć tę klasę histogramów?
Ma to na celu obliczenie histogramu 8-bitowego obrazu w skali szarości. Przy testowej bitmapie 1024x770, CreateTime kończy się na około 890ms. Jak mogę to zrobić szybciej (w inny sposób)?
EDYCJA: Powinienem wspomnieć, że to jeszcze nie oblicza histogramu, tylko pobiera wartości z mapy bitowej. Naprawdę powinienem był zapytać, jaki jest najszybszy sposób pobierania wszystkich wartości pikseli z 8-bitowego obrazu w skali szarości?
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; }
}