▼页尾

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;
}
}
}

posted @ 2011-07-28 12:00  xiatwhu  阅读(8665)  评论(1编辑  收藏  举报
▲页首
西