Я полагаю, что то, что вы просите, обычно называется "размытием по Гауссу" в приложениях для редактирования фотографий. Это просто результат размытия изображения с использованием гауссовой функции, что приводит к снижению визуального шума и детализации. Вы можете прочитать больше о функциях Gaussian Blur и Gaussian * в целом, в превосходных статьях Википедии, посвященных предметам, включая природу формул и то, как эти функции обычно реализуются. Используемый базовый алгоритм, как правило, тот же, но есть несколько различных подходов к его реализации, в основном, для ускорения вычислительной задачи.
Если вы ищете код, который уже написан для применения размытия по Гауссу, проверьте следующие ссылки:
Если вы ищете встраиваемое решение, которое не требует от вас написания или написания кода самостоятельно, есть пара отличных платформ с открытым исходным кодом:
Что касается того, как применить размытие по Гауссу к графу в массиве, вам потребуется предоставить более подробную информацию, если вы хотите получить более конкретную помощь (например, опубликовать код, представляющий рассматриваемые объекты графа).
Ради полноты я собираюсь предположить, что у вас есть серия 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);
}
}