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