5

如何对数组中的图形应用高斯平滑公式?

这些数组被映射到一种颜色并绘制在图表上。我想要应用高斯平滑后颜色的线性渐变..

我也想知道确切的高斯平滑公式。

4

1 回答 1

11

我相信您所要求的通常在照片编辑应用程序中被称为“高斯模糊”。它只是使用高斯函数模糊图像的结果,从而减少了视觉噪声和细节。您可以阅读更多关于高斯模糊高斯函数的信息,阅读关于这些主题的优秀维基百科文章,包括公式的性质以及这些函数的常见实现方式。使用的基本算法通常是相同的,但有几种不同的实现方法,主要是尝试在计算上加速任务。

如果您正在寻找已经编写的应用高斯模糊的代码,请查看以下链接:

如果您正在寻找一种不需要您自己编写或阅读任何编码的插入式解决方案,那么有几个很棒的开源框架可供使用:


至于如何将高斯模糊应用于数组中的图形,如果您需要更具体的帮助(例如发布表示相关图形对象的代码),您将需要提供更多详细信息。

为了完整起见,我将假设您有一系列 Images,每个代表一个图形,存储在一个数组中。(虽然,如果您只是使用标准数组,您可能会考虑转移到强类型集合,例如 a List<Image>。)要将效果应用于您的图形,您可以简单地遍历数组中的每个图像并应用必要的您确定的特定实现的代码:

public void SmoothGraphs(List<Image> graphs)
{
    foreach (Image graph in graphs)
    {
        //Apply your Gaussian blur method to the image

        //(for example, with AForge.NET, you might use the following code:)
        GaussianBlur filter = new GaussianBlur(4, 11);
        filter.ApplyInPlace(graph);
    }
}
于 2010-11-16T07:05:26.743 回答