opencv中值滤波和低通滤波器对椒盐噪声处理的效果比较

opencv中值滤波和低通滤波器对椒盐噪声处理的效果比较

效果:

通过比较我们可以看出,中值滤波器有很好的保留了图像的边界信息

代码:

void showimage(const std::string &str,const cv::Mat &image){

	namedWindow(str,CV_WINDOW_AUTOSIZE);
	imshow(str,image);
}

Mat salt(const cv::Mat &image,int n){

	Mat result = image.clone();
	for (int i = 0; i<n;++i)
	{
		int row = rand()%result.rows;
		int col = rand()%result.cols;
		result.at<Vec3b>(row,col)[0] = 255;
		result.at<Vec3b>(row,col)[1] = 255;
		result.at<Vec3b>(row,col)[2] = 255;

	}
	return result;
}

int _tmain(int argc, _TCHAR* argv[])
{

	Mat image = imread("boldt.jpg");
	showimage("image",image);
	Mat saltimage = salt(image,500);
	showimage("saltimage",saltimage);
	Mat medianimage,blurimage;
	blur(saltimage,blurimage,Size(5,5));
	showimage("blurimage",blurimage);
	medianBlur(saltimage,medianimage,5);
	showimage("medianimage",medianimage);
	waitKey(0);
	return 0;
}

opencv中值滤波和低通滤波器对椒盐噪声处理的效果比较,布布扣,bubuko.com

时间: 2024-10-03 06:56:59

opencv中值滤波和低通滤波器对椒盐噪声处理的效果比较的相关文章

中值滤波与图像锐化

本文主要包括以下内容 中值滤波及其改进算法 图像锐化, 包括梯度算子.拉普拉斯算子.高提升滤波和高斯-拉普拉斯变换 本章的典型囊例分析 对椒盐噪声的平滑效果比较 Laplacian与LoG算子的锐化效果比较 中值滤波 中值滤波本质上是一种统计排序滤波器. 对于原图像中某点(i,j), 中值滤波以该点为中 心的邻域内的所有像素的统计排序中值作为(i, j) 点的响应. 中值不同于均值, 是指排序队列中位于中间位置的元素的值,例如=采用3x3 中值滤披 器, 某点.(i,j) 的8 个邻域的一系列像

图像平滑技术之盒滤波、均值滤波、中值滤波、高斯滤波、双边滤波的原理概要及OpenCV代码实现

图像平滑是指直接对源图像的每个像素数据做邻域运算以达到平滑图像的目的.实质上主要就是通达卷积核算子实现的,卷积核算子的相关知识大家可以参考我写的博文http://blog.csdn.net/wenhao_ir/article/details/51691410 图像平滑也称为模糊或滤波,是图像处理中常用的技术之一,进行平滑处理时需要用到滤波器核(其实就是卷积核算子),根据滤波器核函数来实现不同的滤波技术.下面介绍几种 常用的图像平滑方法的大概原理及OpenCV下的实现代码. 一.盒滤波(均值滤波)

均值滤波,中值滤波,最大最小值滤波

http://blog.csdn.net/fastbox/article/details/7984721 讨论如何使用卷积作为数学工具来处理图像,实现图像的滤波,其方法包含以下几种,均值 滤波,中值滤波,最大最小值滤波,关于什么是卷积以及理解卷积在图像处理中作用参见这 里–http://blog.csdn.net/jia20003/article/details/7038938 均值滤波: 均值滤波,是图像处理中最常用的手段,从频率域观点来看均值滤波是一种低通滤波器,高 频信号将会去掉,因此可以

均值滤波,中值滤波,最大值滤波,最小值滤波

均值滤波: 均值滤波是图像处理中常用的手段,从频率域观点来看均值滤波是一种低通滤波器,高频信号将被去掉,因此可以帮助消除图像尖锐噪声,实现图像平滑,模糊等功能.理想的均值滤波是用每个像素和它周围像素计算出来的均值替换图像中每个像素.采样Kernel数据通常是3x3的矩阵,如下所示: 从左到右,从上到下计算图像中的每个像素,最终得到处理后的图像.均值滤波可以加上两个参数,即迭代次数,kernel数据大小. 一个相同大小的kernel,经过多次迭代效果会越来越好. 同样:迭代次数相同,均值滤波的效果

opencv初学习-椒盐噪声-中值滤波-均值滤波-腐蚀膨胀

#include <opencv2\opencv.hpp>#include <opencv2\highgui\highgui.hpp>#include <opencv2\imgcodecs\imgcodecs.hpp>#include<iostream>#include<vector>#include<algorithm>#include<math.h>#include<iomanip>void salt(cv

【OPENCV入门之六】非线性滤波(中值滤波、双边滤波)

参考网站: http://blog.csdn.net/poem_qianmo/article/details/23184547 在很多情况下,比如在噪声是散粒噪声而不是高斯噪声时(图像偶尔会出现很大的值的时候),在这种情况下,用高斯滤波器对图像进行模糊的话,噪声是不会被去除的,它们只是转换为更为柔和但仍然可见的散粒.而用非线性滤波会更好些. 1.中值滤波(Median filter)--medianBlur函数 该方法在去除脉冲噪声.斑点噪声(speckle noise).椒盐噪声(salt-a

基于Opencv的自适应中值滤波函数selfAdaptiveMedianBlur()

终于搞出来了:) #include <iostream> #include <opencv2/opencv.hpp> #include <vector> #include <algorithm> using namespace cv; using namespace std; //下面的宏,定义了在矩阵src的第m行.n列,ks*ks覆盖的矩形区域内的像素,并将像素压到矢量v中 //该覆盖区域的左上角坐标为(m,n),宽为ks,高为ks,要求src必须是单通

自适应中值滤波(基于C++和OpenCV)Kinect深度图

<span style="font-family:Microsoft YaHei;font-size:14px;">#include <opencv2/opencv.hpp> #include <vector> #define uint unsigned int using namespace cv; const uint rowNumber = 480; const uint colNumber = 640; void AutoMedianFilt

数字图像处理之快速中值滤波算法

快速中值滤波算法 中值滤波算法: 在图像处理中,在进行如边缘检测这样的进一步处理之前,通常需要首先进行一定程度的降噪.中值滤波是一种非线性数字滤波器技术,经常用于去除图像或者其它信号中的噪声.这个设计思想就是检查输入信号中的采样并判断它是否代表了信号,使用奇数个采样组成的观察窗实现这项功能.观察窗口中的数值进行排序,位于观察窗中间的中值作为输出.然后,丢弃最早的值,取得新的采样,重复上面的计算过程.中值滤波是图像处理中的一个常用步骤,它对于斑点噪声和椒盐噪声来说尤其有用.保存边缘的特性使它在不希