添加噪声
- 添加高斯噪声
IplImage* AddGuassianNoise(IplImage* src)
{
IplImage* dst = cvCreateImage(cvGetSize(src),src->depth,src->nChannels);
IplImage* noise = cvCreateImage(cvGetSize(src),src->depth,src->nChannels);
CvRNG rng = cvRNG(-1);
cvRandArr(&rng,noise,CV_RAND_NORMAL,cvScalarAll(0),cvScalarAll(25));
cvAdd(src,noise,dst);
return dst;
}
- 添加椒盐噪声
IplImage* AddPepperSaltNoise(IplImage* src) //添加椒盐噪声,随机黑白点
{
IplImage* dst = cvCreateImage(cvGetSize(src),src->depth,src->nChannels);
cvCopy(src, dst);
for(int k=0; k<(src->height*src->width*P); k++)
{
int i = rand()%src->height;
int j = rand()%src->width;
int m = rand()%2;
CvScalar s = cvGet2D(src, i, j);
if(src->nChannels == 1)
{
if(m==0)
{
s.val[0] = 255;
}
else
{
s.val[0] = 0;
}
}
else if(src->nChannels==3)
{
if(m==