试编写对图像进行椒盐噪声加噪处理的c语言程序
时间: 2023-10-26 09:18:38 浏览: 91
以下是一个简单的对图像进行椒盐噪声加噪处理的C语言程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
int main(int argc, char** argv)
{
if (argc != 2)
{
printf("Usage: %s <image>\n", argv[0]);
return -1;
}
// 加载图像
IplImage* img = cvLoadImage(argv[1], CV_LOAD_IMAGE_GRAYSCALE);
if (!img)
{
printf("Unable to load image %s\n", argv[1]);
return -1;
}
// 添加椒盐噪声
srand(time(NULL));
for (int i = 0; i < img->height * img->width / 10; i++)
{
int x = rand() % img->width;
int y = rand() % img->height;
int value = rand() % 2 == 0 ? 0 : 255;
CV_IMAGE_ELEM(img, uchar, y, x) = value;
}
// 保存图像
cvSaveImage("noisy_image.jpg", img);
// 显示图像
cvNamedWindow("Original", CV_WINDOW_AUTOSIZE);
cvNamedWindow("Noisy", CV_WINDOW_AUTOSIZE);
cvShowImage("Original", img);
IplImage* noisy_img = cvLoadImage("noisy_image.jpg", CV_LOAD_IMAGE_GRAYSCALE);
cvShowImage("Noisy", noisy_img);
cvWaitKey(0);
// 释放图像
cvReleaseImage(&img);
cvReleaseImage(&noisy_img);
return 0;
}
```
该程序使用OpenCV库加载图像,并通过随机生成像素坐标的方式为图像添加椒盐噪声。最后,程序将添加噪声后的图像保存到文件中,并在窗口中显示原始图像和添加噪声后的图像。
阅读全文