如何用C语言对图像加入高斯噪声和椒盐噪声?

最好有噪声公式和源码
下边是一个反色的源程序,麻烦改几个函数,加入高斯噪声和椒盐噪声
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define Width 256
#define Height 256
main()
{
FILE *FileOpen(),*in,*out;
unsigned char *image0,*image1;
unsigned char head[1078];
int i,j,nLen;
image0=(unsigned char *)malloc(Width*Height);
image1=(unsigned char *)malloc(Width*Height);
in=FileOpen("pgirl.bmp","rb");
out=FileOpen("pgirlr.bmp","wb");
fread(head,1078,1,in);
fwrite(head,1078,1,out);
fread(image0,Width*Height,1,in);
for(i=0;i<Width;i++)
for(j=0;j<Height;j++)
{
nLen=i*Width+j;
image1[nLen]=255-image0[nLen];
}/*反色,或者在这里进行自己的处理*/
fwrite(image1,Width*Height,1,out);
fclose(in);
fclose(out);
/*Display the result*/
free(image0);
free(image1);
return 0;
}

自己产生[x,y] 2维随机数,用分布函数为权,取用点的个数就可以了。如考虑中心对称,用极座标[r,sita] 也许更方便。

2维椒盐噪声,即产生[x,y,1] 和 [x,y,0], 1 是白点,0是黑点。

计算机的伪随机数,就是白噪声,均匀分布。
温馨提示:答案为网友推荐,仅供参考
相似回答