opencv加入椒盐噪声

小编也是刚刚入门开始学习OpenCV,顺便就开始做笔记啦
有写错的地方希望大家纠正啊
话不多说,直接上代码

void noiseImage(Mat& inputImage, Mat& outputImage,int num)
{
	//参数准备
	outputImage = inputImage.clone();  //拷贝实参到临时变量
	int nRows = outputImage.rows; //行数
	int nCols = outputImage.cols;  //列数
	int x, y;
	for (int i = 0; i < num; i++) {//num个噪声
		int x = rand() % nRows;  	//不能超出行数和列数
		int y = rand() % nCols;
		if ((x + y) % 2 == 0) {
			outputImage.at<Vec3b>(x, y)[0] = 0;
			outputImage.at<Vec3b>(x, y)[1] = 0;
			outputImage.at<Vec3b>(x, y)[1] = 0;
		}
		else {
			outputImage.at<Vec3b>(x, y)[0] = 255;
			outputImage.at<Vec3b>(x, y)[1] = 255;
			outputImage.at<Vec3b>(x, y)[1] = 255;
		}
	}	   
}

注意:必须是彩色图像才可以
如果是灰度图,把上述的三通道改为单通道即可

这里使用at方法加入椒盐噪声,加入多少个噪声点由参数num决定 加入椒噪声就使得该点的像素值为 0 加入盐噪声就改变该店的像素值为255 至于改变的点,以及哪些加入椒噪声,哪些加入盐噪声,完全都是随机的,看懂代码就好了

好啦,这一片的分享就到这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值