[问题] 高斯白噪声与高斯噪声的差别

楼主: andy8050802 (阿卢)   2016-09-24 11:56:36
初次学习影像处理,在网上看到对影像加入高斯噪音(噪声),想要变成加入高斯"白"噪声
的话,应该修改什么呢?因为不知两者有何差别希望各位大大指导谢谢!
以下为看见的程式码~
/// <summary>
/// 对一幅图形进行高斯噪音处理。
/// </summary>
/// <param name="img"></param>
/// <param name="u">数学期望</param>
/// <param name="a">方差</param>
/// <returns></returns>
static public Bitmap goss_noise(Image img, double u, double a)
{
int width = img.Width;
int height = img.Height;
Bitmap bitmap2 = new Bitmap(img);
Rectangle rectangle1 = new Rectangle(0, 0, width, height);
PixelFormat format = bitmap2.PixelFormat;
BitmapData data = bitmap2.LockBits(rectangle1, ImageLockMode.ReadWrite, format
);
IntPtr ptr = data.Scan0;
int numBytes = width * height * 4;
byte[] rgbValues = new byte[numBytes];
Marshal.Copy(ptr, rgbValues, 0, numBytes);
Random random1 = new Random();
for (int i = 0; i < numBytes; i += 4)
{
for (int j = 0; j < 3; j++)
{
double z;
z = random1.NextDouble() - 0.5 + u;
double pz = gossp(z, u, a);
double r = random1.NextDouble();
// Debug.WriteLineIf(pz < 0.1, string.Format("z={0}\tpz={1}\tr={2}", z,pz,r));
if (r <= pz)
{
double p = rgbValues[i + j];
p = p + z * 128;
if (p > 255)
p = 255;
if (p < 0)
p = 0;
rgbValues[i + j] = (byte)p;
}
}
}

Links booklink

Contact Us: admin [ a t ] ucptt.com