Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
235 views
in Technique[技术] by (71.8m points)

c# - guassian smoothening formula application

How to apply guassian smoothening formula for a graph which is in array?

these array are mapped to a color and plotted on the graph. i want the linear gradient of color after applying guassian smoothening..

I want to know the exact guassian smoothening formula too.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I believe what you're asking for is typically called a "Gaussian blur" in photo-editing applications. It is simply the result of blurring an image using a Gaussian function, resulting in a reduction of visual noise and detail. You can read more about the Gaussian blur and Gaussian functions in general on the excellent Wikipedia articles devoted to the subjects, including the nature of the formulae and how these functions are commonly implemented. The basic algorithm used is generally the same, but there are a few different approaches to implementing it, mainly attempting to speed up the task computationally.

If you're looking for code that's already written to apply a Gaussian blur, check out these links:

If you're looking for a drop-in solution that doesn't require you to do or read any coding yourself, there are a couple of great, open-source frameworks available:


As far as how to apply a Gaussian blur to a graph in an array, you're going to need to provide more details if you want more specific help (like posting the code representing the graph objects in question).

For the sake of completeness, I'm going to assume that you have a series of Images, each representing a graph, stored in an array. (Although, if you're just using a standard array, you might consider moving to a strongly-typed collection, like a List<Image>.) To apply the effect to your graphs, you can simply iterate through each image in the array and apply the necessary code for the specific implementation you settle upon:

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);
    }
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...