我不想永远是小明,我也想成为小红。
椒盐噪点:随机的将部分像素设置为白色或黑色。如果部分像素丢失,那么这种噪点就会出现。
cout是输出,属于iostream,格式:cout<<
CV_[位数][带符号与否][类型前缀]C[通道数],如CV_8UC3表示使用8位的unsigned char型,每个像素由三个元素组成三通道。
rand()随机数生成函数
void“无类型”
rand()%X:%为取余数,该句作用:生成小于X的随机数
at(int y,int x)可以用来存取图像元素,但是必须声明图像的数据类型。【一定要y在前,x在后】
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
void salt(Mat &image, int n)//n为想改变的像素个数
{
for (int k=0; k < n; k++)
{
int i = rand()%image.cols;
int j = rand()%image.rows; if (image.channels() == 1)//为灰度图
{
image.at<uchar>(j,i)= 255;
}
else if (image.channels() == 3)//为RGB图
{
image.at<Vec3b>(j,i)[0] = 255;
image.at<Vec3b>(j,i)[1] = 255;
image.at<Vec3b>(j,i)[2] = 255;
}
}
}
int main()
{
Mat srcImage = imread("1.jpg");
salt(srcImage, 3000);
namedWindow("处理图");
imshow("处理图", srcImage);
waitKey(0);
return 0;
}