【问题标题】:guassian smoothening formula application高斯平滑公式应用
【发布时间】:2011-05-10 15:29:09
【问题描述】:
如何对数组中的图形应用高斯平滑公式?
这些数组被映射到一种颜色并绘制在图表上。
我想要应用高斯平滑后颜色的线性渐变..
我也想知道准确的高斯平滑公式。
【问题讨论】:
标签:
c#
.net
image-processing
image-manipulation
gaussian
【解决方案1】:
我相信您所要求的通常在照片编辑应用程序中被称为“高斯模糊”。它只是使用高斯函数模糊图像的结果,从而减少了视觉噪声和细节。您可以阅读更多关于 Gaussian blur 和 Gaussian functions 的内容,这些内容一般都在 Wikipedia 上专门针对这些主题的优秀文章中,包括公式的性质以及这些函数通常是如何实现的。使用的基本算法大体相同,但有几种不同的实现方法,主要是尝试在计算上加速任务。
如果您正在寻找已经编写的应用高斯模糊的代码,请查看以下链接:
如果您正在寻找一种不需要您自己编写或阅读任何编码的插入式解决方案,可以使用一些很棒的开源框架:
至于如何将高斯模糊应用于数组中的图形,如果您需要更具体的帮助(例如发布代表相关图形对象的代码),则需要提供更多详细信息。
为了完整起见,我假设您有一系列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);
}
}