применение формулы сглаживания - PullRequest
4 голосов
/ 16 ноября 2010

Как применить формулу сглаживания по Гассу для графика, который находится в массиве?

эти массивы сопоставлены с цветом и нанесены на график.Мне нужен линейный градиент цвета после применения сглаживания по Гассу ..

Я хочу знать точную формулу сглаживания по Гассу.

1 Ответ

9 голосов
/ 16 ноября 2010

Я полагаю, что то, что вы просите, обычно называется "размытием по Гауссу" в приложениях для редактирования фотографий. Это просто результат размытия изображения с использованием гауссовой функции, что приводит к снижению визуального шума и детализации. Вы можете прочитать больше о функциях Gaussian Blur и Gaussian * в целом, в превосходных статьях Википедии, посвященных предметам, включая природу формул и то, как эти функции обычно реализуются. Используемый базовый алгоритм, как правило, тот же, но есть несколько различных подходов к его реализации, в основном, для ускорения вычислительной задачи.

Если вы ищете код, который уже написан для применения размытия по Гауссу, проверьте следующие ссылки:

Если вы ищете встраиваемое решение, которое не требует от вас написания или написания кода самостоятельно, есть пара отличных платформ с открытым исходным кодом:

  • Библиотека изображений C # предлагает размытие по Гауссу среди множества фильтров обработки изображений и невероятно прост в использовании.

  • AForge.NET Framework обеспечивает размытие по Гауссу в качестве одного из многих фильтров в своей обширной библиотеке обработки изображений.


Что касается того, как применить размытие по Гауссу к графу в массиве, вам потребуется предоставить более подробную информацию, если вы хотите получить более конкретную помощь (например, опубликовать код, представляющий рассматриваемые объекты графа).

Ради полноты я собираюсь предположить, что у вас есть серия 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);
    }
}
...