Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
GaussianBlur.cs
1using System;
2
4{
8 public static partial class ConvolutionOperations
9 {
16 public static Matrix<float> GaussianBlur(this Matrix<float> M, int KernelWidth)
17 {
18 return M.Convolute(GaussianBlurKernel(KernelWidth));
19 }
20
28 public static Matrix<float> GaussianBlur(this Matrix<float> M, int KernelWidth, float Sigma)
29 {
30 return M.Convolute(GaussianBlurKernel(KernelWidth, Sigma));
31 }
32
39 public static Matrix<int> GaussianBlur(this Matrix<int> M, int KernelWidth)
40 {
41 return M.Convolute(GaussianBlurKernel(KernelWidth));
42 }
43
51 public static Matrix<int> GaussianBlur(this Matrix<int> M, int KernelWidth, float Sigma)
52 {
53 return M.Convolute(GaussianBlurKernel(KernelWidth, Sigma));
54 }
55
62 public static IMatrix GaussianBlur(this IMatrix M, int KernelWidth)
63 {
64 return M.Convolute(GaussianBlurKernel(KernelWidth));
65 }
66
74 public static IMatrix GaussianBlur(this IMatrix M, int KernelWidth, float Sigma)
75 {
76 return M.Convolute(GaussianBlurKernel(KernelWidth, Sigma));
77 }
78
83 public static Matrix<float> GaussianBlurKernel(int KernelWidth)
84 {
85 return GaussianBlurKernel(KernelWidth, 0.3f * ((KernelWidth - 1) * 0.5f - 1) + 0.8f);
86 }
87
94 public static Matrix<float> GaussianBlurKernel(int KernelWidth, float Sigma)
95 {
96 Matrix<float> Kernel = new Matrix<float>(KernelWidth, KernelWidth);
97 float d = -(KernelWidth - 1) * 0.5f;
98 float x, x2, y, s2;
99 int i, j;
100
101 s2 = 1.0f / (Sigma * Sigma * 2);
102
103 for (i = 0; i < KernelWidth; i++)
104 {
105 x = i + d;
106 x2 = x * x;
107
108 for (j = 0; j < KernelWidth; j++)
109 {
110 y = j + d;
111
112 Kernel[i, j] = (float)Math.Exp(-(x2 + y * y) * s2);
113 }
114 }
115
116 return Kernel;
117 }
118
119 }
120}
Implements a Matrix, basic component for computations in Image Processing and Computer Vision.
Definition: Matrix.cs:12
static Matrix< int > GaussianBlur(this Matrix< int > M, int KernelWidth)
Blurs an image using Gaussian Blur.
Definition: GaussianBlur.cs:39
static Matrix< int > GaussianBlur(this Matrix< int > M, int KernelWidth, float Sigma)
Blurs an image using Gaussian Blur.
Definition: GaussianBlur.cs:51
static IMatrix GaussianBlur(this IMatrix M, int KernelWidth)
Blurs an image using Gaussian Blur.
Definition: GaussianBlur.cs:62
static Matrix< float > GaussianBlurKernel(int KernelWidth)
Creates a kernel matrix for a Gaussian Blur operation.
Definition: GaussianBlur.cs:83
static IMatrix GaussianBlur(this IMatrix M, int KernelWidth, float Sigma)
Blurs an image using Gaussian Blur.
Definition: GaussianBlur.cs:74
static Matrix< float > GaussianBlur(this Matrix< float > M, int KernelWidth, float Sigma)
Blurs an image using Gaussian Blur.
Definition: GaussianBlur.cs:28
static Matrix< float > GaussianBlur(this Matrix< float > M, int KernelWidth)
Blurs an image using Gaussian Blur.
Definition: GaussianBlur.cs:16
static Matrix< float > GaussianBlurKernel(int KernelWidth, float Sigma)
Creates a kernel matrix for a Gaussian Blur operation.
Definition: GaussianBlur.cs:94
Interface for matrices.
Definition: IMatrix.cs:9