欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学习《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;
}
加上椒盐噪声后的效果图如下:

学习《OpenCV 2 计算机视觉编程手册》第二章存取像素值案例--椒盐噪声