椒盐噪声和中值滤波.docx
文本预览下载声明
Salt-and-pepper noise
1. 产生椒盐噪声
在图像中随机选取6000个点,3000设为白色,3000个设为黑色,产生椒盐噪声
%----------------------------------------------------------------------------------------------------------------------------%
%----------------------------------------------------------------------------------------------------------------------------%
#include opencv2/core/core.hpp
#include opencv2/highgui/highgui.hpp
#include cv.h
void salt(cv::Mat image,int n)
{
for(int k=0;kn;k++)
{
int i=rand()%image.cols;
int j=rand()%image.rows;
if(image.channels()==1)
{
image.atuchar(j,i)=255;
}else if (image.channels() == 3) {
image.atcv::Vec3b(j,i)[0]= 255;
image.atcv::Vec3b(j,i)[1]= 255;
image.atcv::Vec3b(j,i)[2]= 255;
}
}//产生3000个白点
for(int k=0;kn;k++)
{
int i=rand()%image.cols;
int j=rand()%image.rows;
if(image.channels()==1)
{
image.atuchar(j,i)=0;
}else if (image.channels() == 3) {
image.atcv::Vec3b(j,i)[0]= 0;
image.atcv::Vec3b(j,i)[1]= 0;
image.atcv::Vec3b(j,i)[2]= 0;
}
}
}//产生3000个黑点
int main()
{
cv::Mat image;
image = cv::imread(lena.jpg);
salt(image,3000);
cv::namedWindow(WK);
cv::imshow(WK,image);
cv::waitKey(0);
return 1;
}
%----------------------------------------------------------------------------------------------------------------------------%
%----------------------------------------------------------------------------------------------------------------------------%
2. 中值滤波
利用opencv中的cvSmooth对图像进行中值滤波。
%----------------------------------------------------------------------------------------------------------------------------%
%----------------------------------------------------------------------------------------------------------------------------%
#include opencv2/core/core.hpp
#include opencv2/highgui/highgui.hpp
#include cv.h
int main(){
IplImage * image = cvLoadImage(wks.jpg);
//cv
显示全部