椒盐噪声和中值滤波
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Salt-and-pepper noise
1.产生椒盐噪声
在图像中随机选取6000个点,3000设为白色,3000个设为黑色,产生椒盐噪声
%----------------------------------------------------------------------------------------------------------------------------% %----------------------------------------------------------------------------------------------------------------------------% #include
#include
#include
void salt(cv::Mat &image,int n)
{
for(int k=0;k { int i=rand()%image.cols; int j=rand()%image.rows; if(image.channels()==1) { image.at }else if (image.channels() == 3) { image.at image.at image.at } }//产生3000个白点 for(int k=0;k { int i=rand()%image.cols; int j=rand()%image.rows; if(image.channels()==1) { image.at }else if (image.channels() == 3) { image.at image.at image.at } } }//产生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 #include #include int main(){ IplImage * image = cvLoadImage("wks.jpg"); //cvNamedWindow("before"); //cvShowImage("before",image); IplImage * im_gray = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 1); cvCvtColor(image, im_gray, CV_BGR2GRAY); cvNamedWindow("Gray"); cvShowImage("Gray",im_gray); cvSaveImage("im_gray.jpg",im_gray); IplImage * im_median_filter = cvCreateImage(cvSize(image->width,image->height), IPL_DEPTH_8U, 1); cvSmooth(im_gray, im_median_filter, CV_MEDIAN);//默认窗口大小为*3 cvNamedWindow("after");