如何对数组中的图应用高斯平滑公式?
这些数组被映射到一种颜色,并绘制在图形上。我想要在应用高斯平滑之后颜色的线性渐变。
我也想知道确切的高斯平滑公式。
发布于 2010-11-16 15:05:27
我相信你所要求的在照片编辑应用程序中通常被称为“高斯模糊”。它只是使用高斯函数模糊图像的结果,从而减少了视觉噪声和细节。您可以在维基百科上阅读更多关于Gaussian blur和Gaussian functions的一般优秀文章,包括公式的性质以及这些函数通常是如何实现的。使用的基本算法通常是相同的,但有一些不同的方法来实现它,主要是试图在计算上加快任务的速度。
如果您正在寻找已编写的应用高斯模糊的代码,请查看以下链接:
如果您正在寻找一个不需要您自己编写或阅读任何代码的即用型解决方案,那么有几个很棒的开源框架可供选择:
至于如何将高斯模糊应用于数组中的图形,如果您需要更具体的帮助(如发布表示有问题的图形对象的代码),则需要提供更多详细信息。
为了完整起见,我假设您有一系列的Images,每个都表示一个图,存储在一个数组中。(不过,如果只使用标准数组,则可以考虑转移到强类型集合,如List
。)要将效果应用于图形,您可以简单地迭代数组中的每个图像,并为您确定的特定实现应用必要的代码:
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);
}
}https://stackoverflow.com/questions/4191557
复制相似问题