如何对阵列中的图形应用guassian平滑公式?
这些数组映射到一种颜色并绘制在图表上。 我想要使用guassian平滑后的线性渐变颜色..
我也想知道确切的guassian平滑配方。
答案 0 :(得分:9)
我相信你所要求的通常在照片编辑应用程序中被称为“高斯模糊”。它只是使用高斯函数模糊图像的结果,导致视觉噪声和细节的减少。您可以阅读有关这些主题的优秀维基百科文章中有关Gaussian blur和Gaussian functions的更多信息,包括公式的性质以及这些函数如何通常实现。使用的基本算法通常是相同的,但有几种不同的方法来实现它,主要是尝试计算加速任务。
如果您正在寻找已编写为应用高斯模糊的代码,请查看以下链接:
如果您正在寻找一种不需要您自己编写或阅读任何编码的插件解决方案,那么可以使用几个很棒的开源框架:
C# Image Library在其少数几个图像处理过滤器中提供Gaussian blur,并且非常易于使用。
AForge.NET Framework在其广泛的图像处理库中提供了Gaussian blur作为众多过滤器之一。
至于如何将高斯模糊应用于数组中的图形,如果您需要更具体的帮助(例如发布代表相关图形对象的代码),则需要提供更多详细信息。
为了完整起见,我假设你有一系列Images
,每个代表一个图表,存储在一个数组中。 (虽然,如果您只是使用标准数组,您可以考虑转移到强类型集合,例如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);
}
}