OpenCV2 椒盐噪声
椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声往往由图像切割引起。
我们用程序来模拟椒盐噪声,随机选取一些像素,把这些像素设为白色。
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <cstdlib>
void salt(cv::Mat&, int n=3000);
int main(){
cv::Mat image = cv::imread("E:/Image/Lena.jpg");
salt(image, 10000);
cv::namedWindow("image");
cv::imshow("image",image);
cv::waitKey(0);
}
void salt(cv::Mat& image, int 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{
image.at<cv::Vec3b>(j,i)[0] = 255;
image.at<cv::Vec3b>(j,i)[1] = 255;
image.at<cv::Vec3b>(j,i)[2] = 255;
}
}
}