【发布时间】:2010-11-04 03:36:15
【问题描述】:
这应该是计算 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; }
}
【问题讨论】:
-
查看 McWafflestix 发布的链接。我曾经在 C++ 中执行此操作,但是当我尝试将我的 lib 迁移到 C# 时,我在那个站点上学习了 C# 工具来快速访问像素。
标签: c# performance image-processing histogram