学习《OpenCV 2 计算机视觉编程手册》第二章存取像素值案例--椒盐噪声
程序员文章站
2022-06-15 17:21:44
...
学习《OpenCV 2 计算机视觉编程手册》第二章存取像素值案例--椒盐噪声
椒盐噪声属于加性噪声中的脉冲噪声,随机将二值图像中的像素设为黑或白,形象地称为椒盐噪声,可用中值滤波器来清除(本节不讲),
下面是给一个图像添加椒盐噪声的代码:
#include<opencv2\core\core.hpp>
#include<opencv2\imgproc\imgproc.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<iostream>
using namespace cv;
using namespace std;
//椒盐噪声
void Salt(Mat &img ,int n)
{
for (int k = 0; k < n; k++)
{
int i=rand()%img.cols;
int j=rand()%img.rows;
if(img.channels()==1)//灰度图
{
img.at<uchar>(j,i)=255;
}
else if(img.channels()==3)//彩色图
{
img.at<Vec3b>(j,i)[0]=255;//B通道
img.at<Vec3b>(j,i)[1]=255;//G通道
img.at<Vec3b>(j,i)[2]=255;//R通道
}
}
}
int main()
{
Mat img=imread("img/1.jpg",1);
Salt(img,100);
namedWindow("单通道加椒盐噪声");
imshow("单通道加椒盐噪声",img);
waitKey();
return 0;
}
加上椒盐噪声后的效果图如下: